From 58afb9ba5bfd2be4a8c6e67bf87d38db63f1f20e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 26 Feb 2024 09:33:14 +0000 Subject: [PATCH 001/504] initial cursorless-neovim project files --- packages/cursorless-neovim/package.json | 30 ++++++++++++++++++++++++ packages/cursorless-neovim/src/index.ts | 19 +++++++++++++++ packages/cursorless-neovim/tsconfig.json | 13 ++++++++++ pnpm-lock.yaml | 6 +++++ tsconfig.json | 3 +++ 5 files changed, 71 insertions(+) create mode 100644 packages/cursorless-neovim/package.json create mode 100644 packages/cursorless-neovim/src/index.ts create mode 100644 packages/cursorless-neovim/tsconfig.json diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json new file mode 100644 index 0000000000..75e8acbe64 --- /dev/null +++ b/packages/cursorless-neovim/package.json @@ -0,0 +1,30 @@ +{ + "name": "@cursorless/cursorless-neovim", + "version": "1.0.0", + "description": "cursorless in neovim", + "main": "./out/index.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "keywords": [], + "author": "", + "license": "MIT", + "type": "module", + "types": "./out/index.d.ts", + "exports": { + ".": { + "cursorless:bundler": "./src/index.ts", + "default": "./out/index.js" + } + }, + "dependencies": { + "@cursorless/common": "workspace:*" + } +} diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts new file mode 100644 index 0000000000..02bdbe016c --- /dev/null +++ b/packages/cursorless-neovim/src/index.ts @@ -0,0 +1,19 @@ +// import { +// cursorlessCommandIds, +// } from "./common"; +// const common = require("./common"); + +module.exports = (plugin) => { + // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation + // plugin.setOptions({ dev: false }); + plugin.setOptions({ dev: true }); + + plugin.registerFunction( + "TALON", + () => { + console.warn("BBBBB"); + return plugin.nvim.setLine("BBBBB"); + }, + { sync: false }, + ); +}; diff --git a/packages/cursorless-neovim/tsconfig.json b/packages/cursorless-neovim/tsconfig.json new file mode 100644 index 0000000000..4fc64f396b --- /dev/null +++ b/packages/cursorless-neovim/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [ + { + "path": "../common" + } + ], + "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44dbb01d84..acc52c0880 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,6 +297,12 @@ importers: specifier: ^11.1.1 version: 11.1.2 + packages/cursorless-neovim: + dependencies: + '@cursorless/common': + specifier: workspace:* + version: link:../common + packages/cursorless-org: dependencies: '@cursorless/cheatsheet': diff --git a/tsconfig.json b/tsconfig.json index e05ff589f5..79346e8ff9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,6 +14,9 @@ { "path": "./packages/cursorless-engine" }, + { + "path": "./packages/cursorless-neovim" + }, { "path": "./packages/cursorless-org" }, From 0fe3fb7f393a681ddc3bfd3bc44b3f1846c234bc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 26 Feb 2024 17:57:34 +0000 Subject: [PATCH 002/504] initial working extension being imported in neovim successfully :) --- packages/common/package.json | 6 +++--- packages/cursorless-neovim/package.json | 6 +++--- packages/cursorless-neovim/src/index.ts | 15 ++++++++++----- packages/cursorless-neovim/src/lib/temp.ts | 5 +++++ 4 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 packages/cursorless-neovim/src/lib/temp.ts diff --git a/packages/common/package.json b/packages/common/package.json index d7694b04d8..946553650e 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/common", "version": "0.1.0", "description": "Common utilities for use anywhere in our codebase", - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -34,7 +34,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "bin": { diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 75e8acbe64..1c7725efda 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-neovim", "version": "1.0.0", "description": "cursorless in neovim", - "main": "./out/index.ts", + "main": "./out/index.cjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -21,7 +21,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "dependencies": { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 02bdbe016c..16ed111cbe 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,9 +1,11 @@ // import { // cursorlessCommandIds, // } from "./common"; -// const common = require("./common"); +// import { temp } from "./lib/temp"; -module.exports = (plugin) => { +import { cursorlessCommandIds } from "@cursorless/common"; + +export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation // plugin.setOptions({ dev: false }); plugin.setOptions({ dev: true }); @@ -11,9 +13,12 @@ module.exports = (plugin) => { plugin.registerFunction( "TALON", () => { - console.warn("BBBBB"); - return plugin.nvim.setLine("BBBBB"); + console.warn("TALON"); + console.warn(cursorlessCommandIds[1]); + plugin.nvim.setLine(cursorlessCommandIds[1]); + // return plugin.nvim.setLine("TALON"); + // return plugin.nvim.setLine(temp[2]); }, { sync: false }, ); -}; +} diff --git a/packages/cursorless-neovim/src/lib/temp.ts b/packages/cursorless-neovim/src/lib/temp.ts new file mode 100644 index 0000000000..02f8ae2c75 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/temp.ts @@ -0,0 +1,5 @@ +export const temp = [ + "cursorless.command", + "cursorless.internal.updateCheatsheetDefaults", + "cursorless.private.logQuickActions", +]; From c8e6b26dd61ace23eb4d2c70d6f9d148f795fbc1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 06:46:52 +0000 Subject: [PATCH 003/504] add engine dependency --- packages/cursorless-neovim/package.json | 3 ++- pnpm-lock.yaml | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 1c7725efda..b43cbac16f 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -25,6 +25,7 @@ } }, "dependencies": { - "@cursorless/common": "workspace:*" + "@cursorless/common": "workspace:*", + "@cursorless/cursorless-engine": "workspace:*" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index acc52c0880..62b795c652 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,6 +302,9 @@ importers: '@cursorless/common': specifier: workspace:* version: link:../common + '@cursorless/cursorless-engine': + specifier: workspace:* + version: link:../cursorless-engine packages/cursorless-org: dependencies: From cc2dc182d35960263395f649b2e05e8c3b289d38 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 06:48:33 +0000 Subject: [PATCH 004/504] add engine dependency tsconfig --- packages/cursorless-neovim/tsconfig.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/cursorless-neovim/tsconfig.json b/packages/cursorless-neovim/tsconfig.json index 4fc64f396b..8f5961799f 100644 --- a/packages/cursorless-neovim/tsconfig.json +++ b/packages/cursorless-neovim/tsconfig.json @@ -7,6 +7,9 @@ "references": [ { "path": "../common" + }, + { + "path": "../cursorless-engine" } ], "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] From 7c6bc7a9daba803acf4bdfd89da4cdc705b9ba8d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 07:06:12 +0000 Subject: [PATCH 005/504] build cursorless-engine into cjs too --- packages/cursorless-engine/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-engine/package.json b/packages/cursorless-engine/package.json index c348c3f08c..9d8ea9d806 100644 --- a/packages/cursorless-engine/package.json +++ b/packages/cursorless-engine/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-engine", "version": "0.1.0", "description": "The core Cursorless engine, which is responsible for parsing and executing commands, allocating hats, etc", - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -43,7 +43,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "type": "module" From 9ab745ab86913efcba8f070249be7289f4dc4336 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 10:23:48 +0000 Subject: [PATCH 006/504] demoes successful import of cursorless engine --- packages/cursorless-engine/package.json | 6 +++--- packages/cursorless-neovim/src/index.ts | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-engine/package.json b/packages/cursorless-engine/package.json index 9d8ea9d806..c348c3f08c 100644 --- a/packages/cursorless-engine/package.json +++ b/packages/cursorless-engine/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-engine", "version": "0.1.0", "description": "The core Cursorless engine, which is responsible for parsing and executing commands, allocating hats, etc", - "main": "./out/index.cjs", + "main": "./out/index.js", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -43,7 +43,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.cjs" + "default": "./out/index.js" } }, "type": "module" diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 16ed111cbe..e4fd6111f8 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -4,6 +4,7 @@ // import { temp } from "./lib/temp"; import { cursorlessCommandIds } from "@cursorless/common"; +import { createCursorlessEngine } from "@cursorless/cursorless-engine"; export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -15,7 +16,8 @@ export default function entry(plugin: any) { () => { console.warn("TALON"); console.warn(cursorlessCommandIds[1]); - plugin.nvim.setLine(cursorlessCommandIds[1]); + // plugin.nvim.setLine(cursorlessCommandIds[2]); + plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); // return plugin.nvim.setLine("TALON"); // return plugin.nvim.setLine(temp[2]); }, From 694475cd754c7ebeeb9248d5a1b316e26ad06ab0 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 10:32:44 +0000 Subject: [PATCH 007/504] revert Cursorless engine package.json --- packages/cursorless-engine/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-engine/package.json b/packages/cursorless-engine/package.json index c348c3f08c..9d8ea9d806 100644 --- a/packages/cursorless-engine/package.json +++ b/packages/cursorless-engine/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-engine", "version": "0.1.0", "description": "The core Cursorless engine, which is responsible for parsing and executing commands, allocating hats, etc", - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -43,7 +43,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "type": "module" From 06d9ab04f19a9743b19120e1bd57f6002c7ad92e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 14:57:25 +0000 Subject: [PATCH 008/504] template code to call Cursorless engine --- packages/cursorless-neovim/src/index.ts | 15 +++++++++ .../src/lib/cursorlessEngine.ts | 31 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 packages/cursorless-neovim/src/lib/cursorlessEngine.ts diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index e4fd6111f8..aa0c5e2b98 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -5,6 +5,7 @@ import { cursorlessCommandIds } from "@cursorless/common"; import { createCursorlessEngine } from "@cursorless/cursorless-engine"; +import { initializeCursorlessEngine } from "./lib/cursorlessEngine"; export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -23,4 +24,18 @@ export default function entry(plugin: any) { }, { sync: false }, ); + + plugin.registerFunction( + "A", + () => { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); + + console.warn("A"); + console.warn(currentDateStr); + plugin.nvim.setLine(currentDateStr); + initializeCursorlessEngine(); + }, + { sync: false }, + ); } diff --git a/packages/cursorless-neovim/src/lib/cursorlessEngine.ts b/packages/cursorless-neovim/src/lib/cursorlessEngine.ts new file mode 100644 index 0000000000..ea3bd3f72c --- /dev/null +++ b/packages/cursorless-neovim/src/lib/cursorlessEngine.ts @@ -0,0 +1,31 @@ +import { createCursorlessEngine } from "@cursorless/cursorless-engine"; +import { TreeSitter } from "@cursorless/cursorless-engine"; + +export function initializeCursorlessEngine() { + debugger; + const treeSitter: TreeSitter = {} as any; + const ide = {} as any; + const hats = {} as any; + const commandServerApi = {} as any; + const fileSystem = {} as any; + const normalizedIde = {} as any; + + const { + commandApi, + storedTargets, + hatTokenMap, + scopeProvider, + snippets, + injectIde, + runIntegrationTests, + addCommandRunnerDecorator, + customSpokenFormGenerator, + } = createCursorlessEngine( + treeSitter, + normalizedIde, + hats, + commandServerApi, + fileSystem, + ); + debugger; +} From fe3550a6abc2ed3761c68c7c16e4cc864f86a2ed Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 15:26:06 +0000 Subject: [PATCH 009/504] add lodash dependency --- packages/cursorless-neovim/package.json | 3 ++- pnpm-lock.yaml | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index b43cbac16f..31b38c124f 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -26,6 +26,7 @@ }, "dependencies": { "@cursorless/common": "workspace:*", - "@cursorless/cursorless-engine": "workspace:*" + "@cursorless/cursorless-engine": "workspace:*", + "lodash": "4.17.21" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62b795c652..3361d1f4cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -305,6 +305,9 @@ importers: '@cursorless/cursorless-engine': specifier: workspace:* version: link:../cursorless-engine + lodash: + specifier: 4.17.21 + version: 4.17.21 packages/cursorless-org: dependencies: From befe49a546bbd0d29a400771716d6649b57ab375 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 15:50:32 +0000 Subject: [PATCH 010/504] more lodash --- packages/cursorless-neovim/package.json | 5 ++++- pnpm-lock.yaml | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 31b38c124f..081cea1fc6 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -27,6 +27,9 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", - "lodash": "4.17.21" + "lodash": "^4.17.21" + }, + "devDependencies": { + "@types/lodash": "4.14.181" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3361d1f4cb..5696b3351b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,10 @@ importers: lodash: specifier: 4.17.21 version: 4.17.21 + devDependencies: + '@types/lodash': + specifier: 4.14.181 + version: 4.14.181 packages/cursorless-org: dependencies: From e30c861b1e251ee1dbfe67b188dc0f63d0f742c4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 16:31:05 +0000 Subject: [PATCH 011/504] added NeovimIDE: Exception has occurred: Error: Error: onDidChangeTextDocument Not implemented --- packages/cursorless-neovim/src/index.ts | 2 +- .../src/lib/ide/NeovimCapabilities.ts | 21 +++ .../src/lib/ide/NeovimClipboard.ts | 13 ++ .../src/lib/ide/NeovimConfiguration.ts | 70 ++++++++ .../src/lib/ide/NeovimGlobalState.ts | 15 ++ .../src/lib/ide/NeovimIDE.ts | 150 ++++++++++++++++++ .../src/lib/ide/NeovimMessages.ts | 12 ++ ...{cursorlessEngine.ts => initCursorless.ts} | 3 +- 8 files changed, 284 insertions(+), 2 deletions(-) create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts create mode 100644 packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts rename packages/cursorless-neovim/src/lib/{cursorlessEngine.ts => initCursorless.ts} (89%) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index aa0c5e2b98..743c58fd1e 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -5,7 +5,7 @@ import { cursorlessCommandIds } from "@cursorless/common"; import { createCursorlessEngine } from "@cursorless/cursorless-engine"; -import { initializeCursorlessEngine } from "./lib/cursorlessEngine"; +import { initializeCursorlessEngine } from "./lib/initCursorless"; export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts b/packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts new file mode 100644 index 0000000000..cb6591a8ee --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts @@ -0,0 +1,21 @@ +import { Capabilities } from "@cursorless/common"; + +export class NeovimCapabilities implements Capabilities { + commands = { + clipboardCopy: undefined, + toggleLineComment: undefined, + indentLine: undefined, + outdentLine: undefined, + rename: undefined, + quickFix: undefined, + revealDefinition: undefined, + revealTypeDefinition: undefined, + showHover: undefined, + showDebugHover: undefined, + extractVariable: undefined, + fold: undefined, + highlight: { acceptsLocation: true }, + unfold: undefined, + showReferences: undefined, + }; +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts b/packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts new file mode 100644 index 0000000000..4f0c324bf6 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts @@ -0,0 +1,13 @@ +import type { Clipboard } from "@cursorless/common"; + +export default class NeovimClipboard implements Clipboard { + private clipboardContents: string = ""; + + async readText(): Promise { + return this.clipboardContents; + } + + async writeText(value: string): Promise { + this.clipboardContents = value; + } +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts b/packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts new file mode 100644 index 0000000000..7214ba5447 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts @@ -0,0 +1,70 @@ +import { get } from "lodash"; +import { Notifier } from "@cursorless/common"; +import { + Configuration, + ConfigurationScope, + CONFIGURATION_DEFAULTS, + CursorlessConfigKey, + CursorlessConfiguration, +} from "@cursorless/common"; +import { GetFieldType, Paths } from "@cursorless/common"; + +interface ConfigurationScopeValues { + scope: ConfigurationScope; + values: Partial; +} + +export default class NeovimConfiguration implements Configuration { + private notifier = new Notifier(); + private mocks: CursorlessConfiguration = { + ...CONFIGURATION_DEFAULTS, + }; + private scopes: ConfigurationScopeValues[] = []; + + constructor() { + this.onDidChangeConfiguration = this.onDidChangeConfiguration.bind(this); + } + + getOwnConfiguration>( + path: Path, + scope?: ConfigurationScope, + ): GetFieldType { + if (scope != null) { + for (const { scope: candidateScope, values } of this.scopes) { + if (scopeMatches(candidateScope, scope)) { + return get(values, path) ?? get(this.mocks, path); + } + } + } + + return get(this.mocks, path); + } + + onDidChangeConfiguration = this.notifier.registerListener; + + mockConfiguration( + key: T, + value: CursorlessConfiguration[T], + ): void { + this.mocks[key] = value; + this.notifier.notifyListeners(); + } + + mockConfigurationScope( + scope: ConfigurationScope, + values: Partial, + noNotification: boolean = false, + ): void { + this.scopes.push({ scope, values }); + if (!noNotification) { + this.notifier.notifyListeners(); + } + } +} + +function scopeMatches( + candidateScope: ConfigurationScope, + scope: ConfigurationScope, +): boolean { + return candidateScope.languageId === scope.languageId; +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts b/packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts new file mode 100644 index 0000000000..f852288141 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts @@ -0,0 +1,15 @@ +import type { State, StateData, StateKey } from "@cursorless/common"; +import { STATE_DEFAULTS } from "@cursorless/common"; + +export default class NeovimGlobalState implements State { + private readonly data: StateData = { ...STATE_DEFAULTS }; + + get(key: K): StateData[K] { + return this.data[key]; + } + + set(key: K, value: StateData[K]): Promise { + this.data[key] = value; + return Promise.resolve(); + } +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts b/packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts new file mode 100644 index 0000000000..c1fcd21795 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts @@ -0,0 +1,150 @@ +// adapted from packages\common\src\ide\fake\FakeIDE.ts +import { pull } from "lodash"; +import type { EditableTextEditor, TextEditor } from "@cursorless/common"; +import { GeneralizedRange } from "@cursorless/common"; +import { TextDocument } from "@cursorless/common"; +import type { TextDocumentChangeEvent } from "@cursorless/common"; +import { FlashDescriptor } from "@cursorless/common"; +import { QuickPickOptions } from "@cursorless/common"; +import { + Event, + TextEditorSelectionChangeEvent, + TextEditorVisibleRangesChangeEvent, +} from "@cursorless/common"; +import type { + Disposable, + IDE, + OpenUntitledTextDocumentOptions, + RunMode, + WorkspaceFolder, +} from "@cursorless/common"; +import { NeovimCapabilities } from "./NeovimCapabilities"; +import NeovimClipboard from "./NeovimClipboard"; +import NeovimConfiguration from "./NeovimConfiguration"; +import NeovimGlobalState from "./NeovimGlobalState"; +import NeovimMessages from "./NeovimMessages"; + +export default class NeovimIDE implements IDE { + configuration: NeovimConfiguration = new NeovimConfiguration(); + messages: NeovimMessages = new NeovimMessages(); + globalState: NeovimGlobalState = new NeovimGlobalState(); + clipboard: NeovimClipboard = new NeovimClipboard(); + capabilities: NeovimCapabilities = new NeovimCapabilities(); + + runMode: RunMode = "test"; + cursorlessVersion: string = "0.0.0"; + workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; + private disposables: Disposable[] = []; + private assetsRoot_: string | undefined; + private quickPickReturnValue: string | undefined = undefined; + + async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { + // empty + } + + async setHighlightRanges( + _highlightId: string | undefined, + _editor: TextEditor, + _ranges: GeneralizedRange[], + ): Promise { + // empty + } + + onDidOpenTextDocument: Event = dummyEvent; + onDidCloseTextDocument: Event = dummyEvent; + onDidChangeActiveTextEditor: Event = dummyEvent; + onDidChangeVisibleTextEditors: Event = dummyEvent; + onDidChangeTextEditorSelection: Event = + dummyEvent; + onDidChangeTextEditorVisibleRanges: Event = + dummyEvent; + + public mockAssetsRoot(_assetsRoot: string) { + this.assetsRoot_ = _assetsRoot; + } + + get assetsRoot(): string { + if (this.assetsRoot_ == null) { + throw Error("Field `assetsRoot` has not yet been mocked"); + } + + return this.assetsRoot_; + } + + get activeTextEditor(): TextEditor | undefined { + throw Error("activeTextEditor Not implemented"); + } + + get activeEditableTextEditor(): EditableTextEditor | undefined { + throw Error("activeEditableTextEditor Not implemented"); + } + + get visibleTextEditors(): TextEditor[] { + throw Error("environment Not implemented"); + } + + public getEditableTextEditor(_editor: TextEditor): EditableTextEditor { + throw Error("getEditableTextEditor Not implemented"); + } + + public findInDocument(_query: string, _editor: TextEditor): Promise { + throw Error("findInDocument Not implemented"); + } + + public findInWorkspace(_query: string): Promise { + throw Error("findInWorkspace Not implemented"); + } + + public openTextDocument(_path: string): Promise { + throw Error("openTextDocument Not implemented"); + } + + public openUntitledTextDocument( + _options: OpenUntitledTextDocumentOptions, + ): Promise { + throw Error("openUntitledTextDocument Not implemented"); + } + + public setQuickPickReturnValue(value: string | undefined) { + this.quickPickReturnValue = value; + } + + public async showQuickPick( + _items: readonly string[], + _options?: QuickPickOptions, + ): Promise { + return this.quickPickReturnValue; + } + + public showInputBox(_options?: any): Promise { + throw Error("TextDocumentChangeEvent Not implemented"); + } + + executeCommand(_command: string, ..._args: any[]): Promise { + throw new Error("executeCommand Method not implemented."); + } + + public onDidChangeTextDocument( + _listener: (event: TextDocumentChangeEvent) => void, + ): Disposable { + throw Error("onDidChangeTextDocument Not implemented"); + } + + disposeOnExit(...disposables: Disposable[]): () => void { + this.disposables.push(...disposables); + + return () => pull(this.disposables, ...disposables); + } + + exit(): void { + this.disposables.forEach((disposable) => disposable.dispose()); + } +} + +function dummyEvent() { + return { + dispose() { + // empty + }, + }; +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts b/packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts new file mode 100644 index 0000000000..ee71484c44 --- /dev/null +++ b/packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts @@ -0,0 +1,12 @@ +import type { MessageId, Messages, MessageType } from "@cursorless/common"; + +export default class NeovimMessages implements Messages { + async showMessage( + _type: MessageType, + _id: MessageId, + _message: string, + ..._options: string[] + ): Promise { + return undefined; + } +} diff --git a/packages/cursorless-neovim/src/lib/cursorlessEngine.ts b/packages/cursorless-neovim/src/lib/initCursorless.ts similarity index 89% rename from packages/cursorless-neovim/src/lib/cursorlessEngine.ts rename to packages/cursorless-neovim/src/lib/initCursorless.ts index ea3bd3f72c..268d3fc13a 100644 --- a/packages/cursorless-neovim/src/lib/cursorlessEngine.ts +++ b/packages/cursorless-neovim/src/lib/initCursorless.ts @@ -1,5 +1,6 @@ import { createCursorlessEngine } from "@cursorless/cursorless-engine"; import { TreeSitter } from "@cursorless/cursorless-engine"; +import NeovimIDE from "./ide/NeovimIDE"; export function initializeCursorlessEngine() { debugger; @@ -8,7 +9,7 @@ export function initializeCursorlessEngine() { const hats = {} as any; const commandServerApi = {} as any; const fileSystem = {} as any; - const normalizedIde = {} as any; + const normalizedIde = new NeovimIDE(); const { commandApi, From 0d9aced7a36e1e7fd89091c4a1cb2a5c21c01d4d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 27 Feb 2024 17:30:29 +0000 Subject: [PATCH 012/504] better way to build cursorless-neovim into commonjs and to embed dependency packages internally --- packages/common/package.json | 6 +++--- packages/cursorless-engine/package.json | 6 +++--- packages/cursorless-neovim/package.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/common/package.json b/packages/common/package.json index 946553650e..d7694b04d8 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/common", "version": "0.1.0", "description": "Common utilities for use anywhere in our codebase", - "main": "./out/index.cjs", + "main": "./out/index.js", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -34,7 +34,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.cjs" + "default": "./out/index.js" } }, "bin": { diff --git a/packages/cursorless-engine/package.json b/packages/cursorless-engine/package.json index 9d8ea9d806..c348c3f08c 100644 --- a/packages/cursorless-engine/package.json +++ b/packages/cursorless-engine/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-engine", "version": "0.1.0", "description": "The core Cursorless engine, which is responsible for parsing and executing commands, allocating hats, etc", - "main": "./out/index.cjs", + "main": "./out/index.js", "scripts": { "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -43,7 +43,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.cjs" + "default": "./out/index.js" } }, "type": "module" diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 081cea1fc6..6acfb3575d 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -3,10 +3,11 @@ "version": "1.0.0", "description": "cursorless in neovim", "main": "./out/index.cjs", + "private": true, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.cjs --format=cjs", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -16,7 +17,6 @@ "keywords": [], "author": "", "license": "MIT", - "type": "module", "types": "./out/index.d.ts", "exports": { ".": { From 4bec03a259a7ffbb98f8468092b1e259c961d25f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 28 Feb 2024 12:26:34 +0000 Subject: [PATCH 013/504] Added a lot of code. exception at NeovimIDE.get visibleTextEditors --- packages/cursorless-neovim/package.json | 3 +- packages/cursorless-neovim/src/extension.ts | 137 ++++++++++++++++++ .../src/{lib => }/ide/NeovimCapabilities.ts | 0 .../src/{lib => }/ide/NeovimClipboard.ts | 0 .../src/{lib => }/ide/NeovimConfiguration.ts | 0 .../src/{lib => }/ide/NeovimGlobalState.ts | 0 .../src/{lib => }/ide/NeovimMessages.ts | 0 .../src/ide/neovim/NeovimFileSystem.ts | 100 +++++++++++++ .../src/{lib/ide => ide/neovim}/NeovimIDE.ts | 18 ++- .../src/ide/neovim/hats/NeovimHats.ts | 52 +++++++ packages/cursorless-neovim/src/index.ts | 4 +- .../src/lib/initCursorless.ts | 32 ---- packages/cursorless-neovim/src/lib/temp.ts | 5 - .../meta-updater/src/updatePackageJson.ts | 6 +- pnpm-lock.yaml | 5 +- 15 files changed, 312 insertions(+), 50 deletions(-) create mode 100644 packages/cursorless-neovim/src/extension.ts rename packages/cursorless-neovim/src/{lib => }/ide/NeovimCapabilities.ts (100%) rename packages/cursorless-neovim/src/{lib => }/ide/NeovimClipboard.ts (100%) rename packages/cursorless-neovim/src/{lib => }/ide/NeovimConfiguration.ts (100%) rename packages/cursorless-neovim/src/{lib => }/ide/NeovimGlobalState.ts (100%) rename packages/cursorless-neovim/src/{lib => }/ide/NeovimMessages.ts (100%) create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts rename packages/cursorless-neovim/src/{lib/ide => ide/neovim}/NeovimIDE.ts (89%) create mode 100644 packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts delete mode 100644 packages/cursorless-neovim/src/lib/initCursorless.ts delete mode 100644 packages/cursorless-neovim/src/lib/temp.ts diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 6acfb3575d..3dd91ccd23 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -30,6 +30,7 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@types/lodash": "4.14.181" + "@types/lodash": "4.14.181", + "@types/vscode": "1.66.0" } } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts new file mode 100644 index 0000000000..7fb781b740 --- /dev/null +++ b/packages/cursorless-neovim/src/extension.ts @@ -0,0 +1,137 @@ +import { + Disposable, + FakeIDE, + getFakeCommandServerApi, + IDE, + isTesting, + NormalizedIDE, + Range, + ScopeProvider, + ScopeType, + TextDocument, +} from "@cursorless/common"; +import { + CommandHistory, + createCursorlessEngine, + TestCaseRecorder, + TreeSitter, +} from "@cursorless/cursorless-engine"; +// import { +// CursorlessApi, +// getCommandServerApi, +// getParseTreeApi, +// ParseTreeApi, +// toVscodeRange, +// } from "@cursorless/vscode-common"; +import * as crypto from "crypto"; +import * as os from "os"; +import * as path from "path"; +import * as vscode from "vscode"; +// import { constructTestHelpers } from "./constructTestHelpers"; +// import { FakeFontMeasurements } from "./ide/vscode/hats/FakeFontMeasurements"; +// import { FontMeasurementsImpl } from "./ide/vscode/hats/FontMeasurementsImpl"; +import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; +import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +// import { +// createVscodeScopeVisualizer, +// VscodeScopeVisualizer, +// } from "./ide/vscode/VSCodeScopeVisualizer"; +// import { KeyboardCommands } from "./keyboard/KeyboardCommands"; +// import { registerCommands } from "./registerCommands"; +// import { ReleaseNotes } from "./ReleaseNotes"; +// import { revisualizeOnCustomRegexChange } from "./revisualizeOnCustomRegexChange"; +// import { ScopeTreeProvider } from "./ScopeTreeProvider"; +// import { +// ScopeVisualizer, +// ScopeVisualizerListener, +// VisualizationType, +// } from "./ScopeVisualizerCommandApi"; +// import { StatusBarItem } from "./StatusBarItem"; +// import { vscodeApi } from "./vscodeApi"; +// import { storedTargetHighlighter } from "./storedTargetHighlighter"; +import { Language, SyntaxNode, Tree } from "web-tree-sitter"; + +// TODO: move to extension.ts? and pass a neovimPlugin object? +export async function activate() { + debugger; + + // const parseTreeApi = await getParseTreeApi(); + + const { neovimIDE, hats, fileSystem } = await createNeovimIde(); + + const normalizedIde = + neovimIDE.runMode === "production" + ? neovimIDE + : new NormalizedIDE( + neovimIDE, + new FakeIDE(), + neovimIDE.runMode === "test", + ); + + // const commandServerApi = + // vscodeIDE.runMode === "test" + // ? getFakeCommandServerApi() + // : await getCommandServerApi(); + const commandServerApi = getFakeCommandServerApi(); + + const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); + + const { + commandApi, + storedTargets, + hatTokenMap, + scopeProvider, + snippets, + injectIde, + runIntegrationTests, + addCommandRunnerDecorator, + customSpokenFormGenerator, + } = createCursorlessEngine( + treeSitter, + normalizedIde, + hats, + commandServerApi, + fileSystem, + ); + debugger; +} + +async function createNeovimIde() { + const neovimIDE = new NeovimIDE(); + + const hats = new NeovimHats(neovimIDE); + await hats.init(); + + // FIXME: Inject this from test harness. Would need to arrange to delay + // extension initialization, probably by returning a function from extension + // init that has parameters consisting of test configuration, and have that + // function do the actual initialization. + const cursorlessDir = isTesting() + ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) + : path.join(os.homedir(), ".cursorless"); + + const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir); + await fileSystem.initialize(); + + return { neovimIDE, hats, fileSystem }; +} + +function createTreeSitter(/* parseTreeApi: ParseTreeApi */): TreeSitter { + return { + getNodeAtLocation(document: TextDocument, range: Range) { + return null as unknown as SyntaxNode; + }, + + getTree(document: TextDocument) { + return null as unknown as Tree; + }, + + loadLanguage(languageId: string) { + return Promise.resolve(false); + }, + getLanguage(languageId: string): Language | undefined { + return undefined; + }, + }; +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts b/packages/cursorless-neovim/src/ide/NeovimCapabilities.ts similarity index 100% rename from packages/cursorless-neovim/src/lib/ide/NeovimCapabilities.ts rename to packages/cursorless-neovim/src/ide/NeovimCapabilities.ts diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts b/packages/cursorless-neovim/src/ide/NeovimClipboard.ts similarity index 100% rename from packages/cursorless-neovim/src/lib/ide/NeovimClipboard.ts rename to packages/cursorless-neovim/src/ide/NeovimClipboard.ts diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts b/packages/cursorless-neovim/src/ide/NeovimConfiguration.ts similarity index 100% rename from packages/cursorless-neovim/src/lib/ide/NeovimConfiguration.ts rename to packages/cursorless-neovim/src/ide/NeovimConfiguration.ts diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts b/packages/cursorless-neovim/src/ide/NeovimGlobalState.ts similarity index 100% rename from packages/cursorless-neovim/src/lib/ide/NeovimGlobalState.ts rename to packages/cursorless-neovim/src/ide/NeovimGlobalState.ts diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts b/packages/cursorless-neovim/src/ide/NeovimMessages.ts similarity index 100% rename from packages/cursorless-neovim/src/lib/ide/NeovimMessages.ts rename to packages/cursorless-neovim/src/ide/NeovimMessages.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts new file mode 100644 index 0000000000..588493de02 --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -0,0 +1,100 @@ +import { + Disposable, + FileSystem, + PathChangeListener, + RunMode, +} from "@cursorless/common"; +import { /* isAbsolute, */ join } from "path"; +// import * as vscode from "vscode"; + +export class NeovimFileSystem implements FileSystem { + public readonly cursorlessTalonStateJsonPath: string; + public readonly cursorlessCommandHistoryDirPath: string; + + constructor( + private readonly runMode: RunMode, + private readonly cursorlessDir: string, + ) { + this.cursorlessTalonStateJsonPath = join(this.cursorlessDir, "state.json"); + this.cursorlessCommandHistoryDirPath = join( + this.cursorlessDir, + "commandHistory", + ); + } + + public async initialize(): Promise { + // try { + // await vscode.workspace.fs.createDirectory( + // vscode.Uri.file(this.cursorlessDir), + // ); + // } catch (err) { + // console.log("Cannot create cursorlessDir", this.cursorlessDir, err); + // } + } + + /** + * Reads a file that comes bundled with Cursorless, with the utf-8 encoding. + * {@link path} is expected to be relative to the root of the extension + * bundle. If the file doesn't exist, returns `undefined`. + * + * Note that in development mode, it is possible to supply an absolute path to + * a file on the local filesystem, for things like hot-reloading. + * + * @param path The path of the file to read + * @returns The contents of path, decoded as UTF-8 + */ + public async readBundledFile(path: string): Promise { + return undefined; + // try { + // return this.decoder.decode( + // await vscode.workspace.fs.readFile(this.resolveBundledPath(path)), + // ); + // } catch (err) { + // if ( + // err instanceof Error && + // "code" in err && + // err.code === "FileNotFound" + // ) { + // return undefined; + // } + // throw err; + // } + } + + private resolveBundledPath(path: string) { + // if (isAbsolute(path)) { + // if (this.runMode !== "development") { + // throw new Error( + // "Absolute paths are not supported outside of development mode", + // ); + // } + // + // return vscode.Uri.file(path); + // } + // + // return vscode.Uri.joinPath(this.extensionContext.extensionUri, path); + } + + public watchDir(path: string, onDidChange: PathChangeListener): Disposable { + return dummyEvent(); + // // return { dispose: () => {} }; + // // FIXME: Support globs? + // const watcher = vscode.workspace.createFileSystemWatcher( + // new vscode.RelativePattern(path, "**"), + // ); + // + // watcher.onDidChange(onDidChange); + // watcher.onDidCreate(onDidChange); + // watcher.onDidDelete(onDidChange); + // + // return watcher; + } +} + +function dummyEvent() { + return { + dispose() { + // empty + }, + }; +} diff --git a/packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts similarity index 89% rename from packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index c1fcd21795..6f6a522fc5 100644 --- a/packages/cursorless-neovim/src/lib/ide/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -18,13 +18,13 @@ import type { RunMode, WorkspaceFolder, } from "@cursorless/common"; -import { NeovimCapabilities } from "./NeovimCapabilities"; -import NeovimClipboard from "./NeovimClipboard"; -import NeovimConfiguration from "./NeovimConfiguration"; -import NeovimGlobalState from "./NeovimGlobalState"; -import NeovimMessages from "./NeovimMessages"; +import { NeovimCapabilities } from "../NeovimCapabilities"; +import NeovimClipboard from "../NeovimClipboard"; +import NeovimConfiguration from "../NeovimConfiguration"; +import NeovimGlobalState from "../NeovimGlobalState"; +import NeovimMessages from "../NeovimMessages"; -export default class NeovimIDE implements IDE { +export class NeovimIDE implements IDE { configuration: NeovimConfiguration = new NeovimConfiguration(); messages: NeovimMessages = new NeovimMessages(); globalState: NeovimGlobalState = new NeovimGlobalState(); @@ -80,7 +80,7 @@ export default class NeovimIDE implements IDE { } get visibleTextEditors(): TextEditor[] { - throw Error("environment Not implemented"); + throw Error("visibleTextEditors Not implemented"); } public getEditableTextEditor(_editor: TextEditor): EditableTextEditor { @@ -127,7 +127,9 @@ export default class NeovimIDE implements IDE { public onDidChangeTextDocument( _listener: (event: TextDocumentChangeEvent) => void, ): Disposable { - throw Error("onDidChangeTextDocument Not implemented"); + console.warn("onDidChangeTextDocument Not implemented"); + // throw Error("onDidChangeTextDocument Not implemented"); + return dummyEvent(); } disposeOnExit(...disposables: Disposable[]): () => void { diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts new file mode 100644 index 0000000000..d9a9d15b5e --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -0,0 +1,52 @@ +import { + HatRange, + Hats, + HatStyleMap, + HatStyleName, + Listener, + Notifier, + Range, + TextEditor, +} from "@cursorless/common"; +// import { toVscodeRange, VscodeApi } from "@cursorless/vscode-common"; +// import * as vscode from "vscode"; +import { Disposable } from "vscode"; +// import { VscodeHatStyleName } from "../hatStyles.types"; +// import VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager"; +import type { NeovimIDE } from "../NeovimIDE"; +// import { VscodeTextEditorImpl } from "../VscodeTextEditorImpl"; +// import { FontMeasurements } from "./FontMeasurements"; +// import VscodeHatRenderer from "./VscodeHatRenderer"; + +export class NeovimHats implements Hats { + enabledHatStyles: HatStyleMap; + isEnabled: boolean; + private enabledHatStyleNotifier: Notifier<[HatStyleMap]> = new Notifier(); + private isEnabledNotifier: Notifier<[boolean]> = new Notifier(); + + constructor(private ide: NeovimIDE) { + this.enabledHatStyles = {}; + // TODO: we don't support hats yet + this.isEnabled = false; + } + + async init() {} + + async setHatRanges(hatRanges: HatRange[]): Promise {} + + onDidChangeEnabledHatStyles(listener: Listener<[HatStyleMap]>): Disposable { + return this.enabledHatStyleNotifier.registerListener(listener); + } + + onDidChangeIsEnabled(listener: Listener<[boolean]>): Disposable { + return this.isEnabledNotifier.registerListener(listener); + } +} + +function dummyEvent() { + return { + [Symbol.dispose]() { + // empty + }, + }; +} diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 743c58fd1e..2233bb0e84 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -5,7 +5,7 @@ import { cursorlessCommandIds } from "@cursorless/common"; import { createCursorlessEngine } from "@cursorless/cursorless-engine"; -import { initializeCursorlessEngine } from "./lib/initCursorless"; +import { activate } from "./extension"; export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -34,7 +34,7 @@ export default function entry(plugin: any) { console.warn("A"); console.warn(currentDateStr); plugin.nvim.setLine(currentDateStr); - initializeCursorlessEngine(); + activate(); }, { sync: false }, ); diff --git a/packages/cursorless-neovim/src/lib/initCursorless.ts b/packages/cursorless-neovim/src/lib/initCursorless.ts deleted file mode 100644 index 268d3fc13a..0000000000 --- a/packages/cursorless-neovim/src/lib/initCursorless.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { createCursorlessEngine } from "@cursorless/cursorless-engine"; -import { TreeSitter } from "@cursorless/cursorless-engine"; -import NeovimIDE from "./ide/NeovimIDE"; - -export function initializeCursorlessEngine() { - debugger; - const treeSitter: TreeSitter = {} as any; - const ide = {} as any; - const hats = {} as any; - const commandServerApi = {} as any; - const fileSystem = {} as any; - const normalizedIde = new NeovimIDE(); - - const { - commandApi, - storedTargets, - hatTokenMap, - scopeProvider, - snippets, - injectIde, - runIntegrationTests, - addCommandRunnerDecorator, - customSpokenFormGenerator, - } = createCursorlessEngine( - treeSitter, - normalizedIde, - hats, - commandServerApi, - fileSystem, - ); - debugger; -} diff --git a/packages/cursorless-neovim/src/lib/temp.ts b/packages/cursorless-neovim/src/lib/temp.ts deleted file mode 100644 index 02f8ae2c75..0000000000 --- a/packages/cursorless-neovim/src/lib/temp.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const temp = [ - "cursorless.command", - "cursorless.internal.updateCheatsheetDefaults", - "cursorless.private.logQuickActions", -]; diff --git a/packages/meta-updater/src/updatePackageJson.ts b/packages/meta-updater/src/updatePackageJson.ts index acfdd77f23..4bd1402899 100644 --- a/packages/meta-updater/src/updatePackageJson.ts +++ b/packages/meta-updater/src/updatePackageJson.ts @@ -76,7 +76,11 @@ export async function updatePackageJson( ...input, name, license: "MIT", - type: name === "@cursorless/cursorless-org-docs" ? undefined : "module", + type: + name === "@cursorless/cursorless-org-docs" || + name === "@cursorless/cursorless-neovim" + ? undefined + : "module", scripts: await getScripts(input.scripts, name, packageDir, isRoot, isLib), ...exportFields, ...extraFields, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5696b3351b..d44a67d891 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -306,12 +306,15 @@ importers: specifier: workspace:* version: link:../cursorless-engine lodash: - specifier: 4.17.21 + specifier: ^4.17.21 version: 4.17.21 devDependencies: '@types/lodash': specifier: 4.14.181 version: 4.14.181 + '@types/vscode': + specifier: 1.66.0 + version: 1.66.0 packages/cursorless-org: dependencies: From bd7d217c4ca9db78135577ae6c981632c286035a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 28 Feb 2024 12:39:34 +0000 Subject: [PATCH 014/504] move files to match vscode package --- .../src/ide/{ => neovim}/NeovimCapabilities.ts | 0 .../src/ide/{ => neovim}/NeovimClipboard.ts | 0 .../src/ide/{ => neovim}/NeovimConfiguration.ts | 0 .../src/ide/{ => neovim}/NeovimGlobalState.ts | 0 packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 10 +++++----- .../src/ide/{ => neovim}/NeovimMessages.ts | 0 6 files changed, 5 insertions(+), 5 deletions(-) rename packages/cursorless-neovim/src/ide/{ => neovim}/NeovimCapabilities.ts (100%) rename packages/cursorless-neovim/src/ide/{ => neovim}/NeovimClipboard.ts (100%) rename packages/cursorless-neovim/src/ide/{ => neovim}/NeovimConfiguration.ts (100%) rename packages/cursorless-neovim/src/ide/{ => neovim}/NeovimGlobalState.ts (100%) rename packages/cursorless-neovim/src/ide/{ => neovim}/NeovimMessages.ts (100%) diff --git a/packages/cursorless-neovim/src/ide/NeovimCapabilities.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/NeovimCapabilities.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts diff --git a/packages/cursorless-neovim/src/ide/NeovimClipboard.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/NeovimClipboard.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts diff --git a/packages/cursorless-neovim/src/ide/NeovimConfiguration.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimConfiguration.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/NeovimConfiguration.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimConfiguration.ts diff --git a/packages/cursorless-neovim/src/ide/NeovimGlobalState.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimGlobalState.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/NeovimGlobalState.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimGlobalState.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 6f6a522fc5..7f096a7ecb 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -18,11 +18,11 @@ import type { RunMode, WorkspaceFolder, } from "@cursorless/common"; -import { NeovimCapabilities } from "../NeovimCapabilities"; -import NeovimClipboard from "../NeovimClipboard"; -import NeovimConfiguration from "../NeovimConfiguration"; -import NeovimGlobalState from "../NeovimGlobalState"; -import NeovimMessages from "../NeovimMessages"; +import { NeovimCapabilities } from "./NeovimCapabilities"; +import NeovimClipboard from "./NeovimClipboard"; +import NeovimConfiguration from "./NeovimConfiguration"; +import NeovimGlobalState from "./NeovimGlobalState"; +import NeovimMessages from "./NeovimMessages"; export class NeovimIDE implements IDE { configuration: NeovimConfiguration = new NeovimConfiguration(); diff --git a/packages/cursorless-neovim/src/ide/NeovimMessages.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimMessages.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/NeovimMessages.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimMessages.ts From 64c2e1e02c4bf7cd64f24aae3780a4f8d11f172f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 28 Feb 2024 16:50:22 +0000 Subject: [PATCH 015/504] adding the text document, the text editor, and the text line for now --- packages/cursorless-neovim/package.json | 3 +- packages/cursorless-neovim/src/extension.ts | 1 - .../src/ide/neovim/NeovimIDE.ts | 27 +- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 74 ++++++ .../src/ide/neovim/NeovimTextEditorImpl.ts | 236 ++++++++++++++++++ .../src/ide/neovim/NeovimTextLineImpl.ts | 37 +++ pnpm-lock.yaml | 7 + 7 files changed, 374 insertions(+), 11 deletions(-) create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 3dd91ccd23..45846d84f2 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -27,7 +27,8 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", - "lodash": "^4.17.21" + "lodash": "^4.17.21", + "vscode-uri": "3.0.6" }, "devDependencies": { "@types/lodash": "4.14.181", diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 7fb781b740..4c046c57a4 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -26,7 +26,6 @@ import { import * as crypto from "crypto"; import * as os from "os"; import * as path from "path"; -import * as vscode from "vscode"; // import { constructTestHelpers } from "./constructTestHelpers"; // import { FakeFontMeasurements } from "./ide/vscode/hats/FakeFontMeasurements"; // import { FontMeasurementsImpl } from "./ide/vscode/hats/FontMeasurementsImpl"; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 7f096a7ecb..53b593c97e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -23,13 +23,14 @@ import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; +import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; export class NeovimIDE implements IDE { - configuration: NeovimConfiguration = new NeovimConfiguration(); - messages: NeovimMessages = new NeovimMessages(); - globalState: NeovimGlobalState = new NeovimGlobalState(); - clipboard: NeovimClipboard = new NeovimClipboard(); - capabilities: NeovimCapabilities = new NeovimCapabilities(); + readonly configuration: NeovimConfiguration; + readonly globalState: NeovimGlobalState; + readonly messages: NeovimMessages; + readonly clipboard: NeovimClipboard; + readonly capabilities: NeovimCapabilities; runMode: RunMode = "test"; cursorlessVersion: string = "0.0.0"; @@ -38,6 +39,14 @@ export class NeovimIDE implements IDE { private assetsRoot_: string | undefined; private quickPickReturnValue: string | undefined = undefined; + constructor() { + this.configuration = new NeovimConfiguration(); + this.globalState = new NeovimGlobalState(); + this.messages = new NeovimMessages(); + this.clipboard = new NeovimClipboard(); + this.capabilities = new NeovimCapabilities(); + } + async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { // empty } @@ -79,7 +88,7 @@ export class NeovimIDE implements IDE { throw Error("activeEditableTextEditor Not implemented"); } - get visibleTextEditors(): TextEditor[] { + get visibleTextEditors(): NeovimTextEditorImpl[] { throw Error("visibleTextEditors Not implemented"); } @@ -127,9 +136,9 @@ export class NeovimIDE implements IDE { public onDidChangeTextDocument( _listener: (event: TextDocumentChangeEvent) => void, ): Disposable { - console.warn("onDidChangeTextDocument Not implemented"); - // throw Error("onDidChangeTextDocument Not implemented"); - return dummyEvent(); + // console.warn("onDidChangeTextDocument Not implemented"); + throw Error("onDidChangeTextDocument Not implemented"); + // return dummyEvent(); } disposeOnExit(...disposables: Disposable[]): () => void { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts new file mode 100644 index 0000000000..292207761d --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -0,0 +1,74 @@ +import { + EndOfLine, + Position, + Range, + Selection, + TextDocument, + TextLine, +} from "@cursorless/common"; +// import { +// fromVscodeEndOfLine, +// fromVscodePosition, +// toVscodePosition, +// toVscodeRange, +// } from "@cursorless/vscode-common"; +// import * as vscode from "vscode"; +import type { URI } from "vscode-uri"; +// import { +// fromVscodePosition, +// toVscodePosition, +// toVscodeRange, +// } from "../../vscodeUtil"; +import NeovimTextLineImpl from "./NeovimTextLineImpl"; + +export class NeovimTextDocumentImpl implements TextDocument { + get uri(): URI { + return this.document.uri; + } + + get languageId(): string { + return this.document.languageId; + } + + get version(): number { + return this.document.version; + } + + get lineCount(): number { + return this.document.lineCount; + } + + get range(): Range { + const { end } = this.document.lineAt(this.document.lineCount - 1).range; + return new Range(0, 0, end.line, end.character); + } + + get eol(): EndOfLine { + return "LF"; + // return fromVscodeEndOfLine(this.document.eol); + } + + constructor(private document: TextDocument) {} + + public lineAt(lineOrPosition: number | Position): TextLine { + return new NeovimTextLineImpl( + this.document.lineAt( + typeof lineOrPosition === "number" + ? lineOrPosition + : lineOrPosition.line, + ), + ); + } + + public offsetAt(position: Position): number { + return this.document.offsetAt(position); + } + + public positionAt(offset: number): Position { + return this.document.positionAt(offset); + } + + public getText(range?: Range): string { + return this.document.getText(range != null ? range : undefined); + } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts new file mode 100644 index 0000000000..f9833c3d0f --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -0,0 +1,236 @@ +import { + BreakpointDescriptor, + EditableTextEditor, + Position, + Range, + RevealLineAt, + Selection, + sleep, + TextDocument, + TextEditor, + TextEditorEdit, + TextEditorOptions, +} from "@cursorless/common"; +// import { +// fromVscodeRange, +// fromVscodeSelection, +// toVscodePositionOrRange, +// toVscodeRange, +// toVscodeSelection, +// } from "@cursorless/vscode-common"; +// import * as vscode from "vscode"; +// import vscodeEdit from "./VscodeEdit"; +// import vscodeFocusEditor from "./VscodeFocusEditor"; +// import { vscodeFold, vscodeUnfold } from "./VscodeFold"; +import { NeovimIDE } from "./NeovimIDE"; +// import { vscodeInsertSnippet } from "./VscodeInsertSnippets"; +// import { +// vscodeEditNewNotebookCellAbove, +// vscodeEditNewNotebookCellBelow, +// } from "./VscodeNotebooks"; +// import vscodeOpenLink from "./VscodeOpenLink"; +// import { vscodeRevealLine } from "./VscodeRevealLine"; +import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; + +// import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; + +export class NeovimTextEditorImpl implements EditableTextEditor { + readonly document: TextDocument; + + constructor( + public readonly id: string, + private ide: NeovimIDE, + private editor: TextEditor, + ) { + this.document = new NeovimTextDocumentImpl(editor.document); + } + + get vscodeEditor(): TextEditor { + return this.editor; + } + + get selections(): Selection[] { + return this.editor.selections; + } + + set selections(selections: Selection[]) { + // this.editor.selections = selections.map(toVscodeSelection); + } + + get visibleRanges(): Range[] { + return this.editor.visibleRanges; + } + + get options(): TextEditorOptions { + return this.editor.options; + } + + set options(options: TextEditorOptions) { + // this.editor.options = options; + } + + get isActive(): boolean { + return false; + // return this.editor === vscode.window.activeTextEditor; + } + + public isEqual(other: TextEditor): boolean { + return this.id === other.id; + } + + public async revealRange(range: Range): Promise { + return Promise.resolve(); + // this.editor.revealRange(toVscodeRange(range)); + } + + public revealLine(lineNumber: number, at: RevealLineAt): Promise { + return Promise.resolve(); + // return vscodeRevealLine(this, lineNumber, at); + } + + public edit( + callback: (editBuilder: TextEditorEdit) => void, + options?: { undoStopBefore: boolean; undoStopAfter: boolean }, + ): Promise { + return Promise.resolve(false); + // return vscodeEdit(this.editor, callback, options); + } + + public focus(): Promise { + return Promise.resolve(); + // return vscodeFocusEditor(this.ide, this); + } + + public editNewNotebookCellAbove(): Promise< + (selection: Selection) => Selection + > { + return Promise.resolve((selection) => selection); + // return vscodeEditNewNotebookCellAbove(this); + } + + public editNewNotebookCellBelow(): Promise { + return Promise.resolve(); + // return vscodeEditNewNotebookCellBelow(this); + } + + public openLink(location?: Position | Range): Promise { + return Promise.resolve(false); + // return vscodeOpenLink( + // this, + // location != null ? toVscodePositionOrRange(location) : undefined, + // ); + } + + public fold(ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeFold(this.ide, this, ranges); + } + + public unfold(ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeUnfold(this.ide, this, ranges); + } + + public toggleBreakpoint(descriptors?: BreakpointDescriptor[]): Promise { + return Promise.resolve(); + // return vscodeToggleBreakpoint(this, descriptors); + } + + public async toggleLineComment(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.commentLine"); + } + + public async clipboardCopy(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.clipboardCopyAction"); + } + + public async clipboardPaste(_ranges?: Range[]): Promise { + return Promise.resolve(); + // We add these sleeps here to workaround a bug in VSCode. See #1521 + // await sleep(100); + // await vscode.commands.executeCommand("editor.action.clipboardPasteAction"); + // await sleep(100); + } + + public async indentLine(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.indentLines"); + } + + public async outdentLine(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.outdentLines"); + } + + public async insertLineAfter(ranges?: Range[]): Promise { + return Promise.resolve(); + // if (ranges != null) { + // this.selections = ranges.map((range) => range.toSelection(false)); + // } + // await this.focus(); + // await vscode.commands.executeCommand("editor.action.insertLineAfter"); + } + + public insertSnippet(snippet: string, ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeInsertSnippet(this, snippet, ranges); + } + + public async rename(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.rename"); + } + + public async showReferences(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("references-view.find"); + } + + public async quickFix(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.quickFix"); + // await sleep(100); + } + + public async revealDefinition(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.revealDefinition"); + } + + public async revealTypeDefinition(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.goToTypeDefinition"); + } + + public async showHover(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.showHover"); + } + + public async showDebugHover(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.debug.action.showDebugHover"); + } + + public async extractVariable(_range?: Range): Promise { + return Promise.resolve(); + // if (this.document.languageId === "python") { + // // Workaround for https://github.com/microsoft/vscode-python/issues/20455 + // await vscode.commands.executeCommand("editor.action.codeAction", { + // kind: "refactor.extract", + // }); + // await sleep(250); + // await vscode.commands.executeCommand("selectNextCodeAction"); + // await vscode.commands.executeCommand("acceptSelectedCodeAction"); + // } else { + // await vscode.commands.executeCommand("editor.action.codeAction", { + // kind: "refactor.extract.constant", + // preferred: true, + // }); + // } + + // await sleep(250); + } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts new file mode 100644 index 0000000000..74862c8740 --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts @@ -0,0 +1,37 @@ +import { Range, TextLine } from "@cursorless/common"; +// import { fromVscodeRange } from "../../vscodeUtil"; +// import * as vscode from "vscode"; + +export default class NeovimTextLineImpl implements TextLine { + constructor(private line: TextLine) {} + + get lineNumber(): number { + return this.line.lineNumber; + } + + get text(): string { + return this.line.text; + } + + get range(): Range { + // return fromVscodeRange(this.line.range); + return this.line.range; + } + + get rangeIncludingLineBreak(): Range { + // return fromVscodeRange(this.line.rangeIncludingLineBreak); + return this.line.rangeIncludingLineBreak; + } + + get firstNonWhitespaceCharacterIndex(): number { + return this.line.firstNonWhitespaceCharacterIndex; + } + + get lastNonWhitespaceCharacterIndex(): number { + return this.line.text.trimEnd().length; + } + + get isEmptyOrWhitespace(): boolean { + return this.line.isEmptyOrWhitespace; + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d44a67d891..17b47635f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,9 @@ importers: lodash: specifier: ^4.17.21 version: 4.17.21 + vscode-uri: + specifier: 3.0.6 + version: 3.0.6 devDependencies: '@types/lodash': specifier: 4.14.181 @@ -16181,6 +16184,10 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 + /vscode-uri@3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + dev: false + /vscode-uri@3.0.7: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} dev: false From 3f4123950ce1012c8c263396d66e3f0fe3e9ac75 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:53:24 +0000 Subject: [PATCH 016/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/extension.ts | 6 ------ .../src/ide/neovim/NeovimTextDocumentImpl.ts | 1 - .../src/ide/neovim/NeovimTextEditorImpl.ts | 1 - .../cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts | 3 --- 4 files changed, 11 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 4c046c57a4..09226cfafe 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -1,19 +1,13 @@ import { - Disposable, FakeIDE, getFakeCommandServerApi, - IDE, isTesting, NormalizedIDE, Range, - ScopeProvider, - ScopeType, TextDocument, } from "@cursorless/common"; import { - CommandHistory, createCursorlessEngine, - TestCaseRecorder, TreeSitter, } from "@cursorless/cursorless-engine"; // import { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 292207761d..951bb2ce65 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -2,7 +2,6 @@ import { EndOfLine, Position, Range, - Selection, TextDocument, TextLine, } from "@cursorless/common"; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index f9833c3d0f..690bf233f1 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -5,7 +5,6 @@ import { Range, RevealLineAt, Selection, - sleep, TextDocument, TextEditor, TextEditorEdit, diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index d9a9d15b5e..12cb6123ae 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -2,11 +2,8 @@ import { HatRange, Hats, HatStyleMap, - HatStyleName, Listener, Notifier, - Range, - TextEditor, } from "@cursorless/common"; // import { toVscodeRange, VscodeApi } from "@cursorless/vscode-common"; // import * as vscode from "vscode"; From 85134c86b2e982a5efe7d28ec5dd43b64302d6f2 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 28 Feb 2024 23:21:36 +0000 Subject: [PATCH 017/504] import neovim in cursorless-neovim + testing calling into ts from lua --- packages/cursorless-neovim/package.json | 1 + packages/cursorless-neovim/src/extension.ts | 4 +- packages/cursorless-neovim/src/index.ts | 63 ++++++++- pnpm-lock.yaml | 144 ++++++++++++++++++++ 4 files changed, 206 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 45846d84f2..5e5582e0df 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -28,6 +28,7 @@ "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", "lodash": "^4.17.21", + "neovim": "4.11.0", "vscode-uri": "3.0.6" }, "devDependencies": { diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 4c046c57a4..89c947983c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -50,11 +50,13 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { vscodeApi } from "./vscodeApi"; // import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; +import { NvimPlugin } from "neovim"; // TODO: move to extension.ts? and pass a neovimPlugin object? -export async function activate() { +export async function activate(plugin: NvimPlugin) { debugger; + const client = plugin.nvim; // NeovimClient // const parseTreeApi = await getParseTreeApi(); const { neovimIDE, hats, fileSystem } = await createNeovimIde(); diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 2233bb0e84..ee0957d125 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -15,8 +15,12 @@ export default function entry(plugin: any) { plugin.registerFunction( "TALON", () => { - console.warn("TALON"); - console.warn(cursorlessCommandIds[1]); + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); + + console.warn( + "TALON(): " + cursorlessCommandIds[1] + " " + currentDateStr, + ); // plugin.nvim.setLine(cursorlessCommandIds[2]); plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); // return plugin.nvim.setLine("TALON"); @@ -31,10 +35,59 @@ export default function entry(plugin: any) { const currentDate: Date = new Date(); const currentDateStr: string = currentDate.toLocaleString(); - console.warn("A"); - console.warn(currentDateStr); + console.warn("A(): " + currentDateStr); plugin.nvim.setLine(currentDateStr); - activate(); + activate(plugin); + }, + { sync: false }, + ); + + plugin.registerFunction( + "B", + (args: any) => { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); + + console.warn("B(): " + currentDateStr); + console.warn("B(): " + args); // B(): lines,1,18,9,9,10,0 + // console.warn("B(): " + args[0]); // B(): lines,1,18,9,9,10,0 + // console.warn("B(): " + args[0][0]); // "lines" + // console.warn("B(): " + typeof args); // object + // console.warn("B(): " + typeof args[0]); // object + // console.warn("B(): " + typeof args[0][0]); // string + + // https://neovim.io/doc/user/api.html#nvim_buf_attach() + // https://neovim.io/doc/user/api.html#api-buffer-updates + // https://vi.stackexchange.com/questions/26971/most-efficient-way-to-call-a-vim-script-function-with-lua-neovim + const [ + headerStr, + bufferHandle, + changedTick, + firstLineChanged, + lastLineChanged, + lastLineInUpdatedRange, + byteCountPreviousContents, + // ] = args[0]; // assumes vim.api.nvim_call_function("B", {...}) + ] = args; // assumes vim.fn.B(...) + console.warn( + `B(): headerStr=${headerStr}, bufferHandle=${bufferHandle}, changedTick=${changedTick}, firstLineChanged=${firstLineChanged}, lastLineChanged-1=${ + lastLineChanged - 1 + }, lastLineInUpdatedRange=${lastLineInUpdatedRange}, byteCountPreviousContents=${byteCountPreviousContents}`, + ); + + // activate(); + }, + { sync: false }, + ); + + plugin.registerFunction( + "C", + (args: any) => { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); + + console.warn("C(): " + currentDateStr); + console.warn("C(): " + args); }, { sync: false }, ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17b47635f8..9f1e46bb53 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,9 @@ importers: lodash: specifier: ^4.17.21 version: 4.17.21 + neovim: + specifier: 4.11.0 + version: 4.11.0 vscode-uri: specifier: 3.0.6 version: 3.0.6 @@ -2093,6 +2096,11 @@ packages: dev: false optional: true + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -2100,6 +2108,14 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + dev: false + /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -3569,6 +3585,11 @@ packages: engines: {node: '>= 10.*'} dev: true + /@msgpack/msgpack@2.8.0: + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + dev: false + /@next/env@13.5.4: resolution: {integrity: sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==} dev: false @@ -5214,6 +5235,10 @@ packages: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + dev: false + /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -6813,10 +6838,24 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false + /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: false @@ -6828,6 +6867,13 @@ packages: resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + dev: false + /combine-promises@1.2.0: resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} engines: {node: '>=10'} @@ -7758,6 +7804,10 @@ packages: resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} dev: false + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + dev: false + /encode-registry@3.0.0: resolution: {integrity: sha512-2fRYji8K6FwYuQ6EPBKR/J9mcqb7kIoNqt1vGvJr3NrvKfncRiNm00Oxo6gi/YJF8R5Sp2bNFSFdGKTG0rje1Q==} engines: {node: '>=10'} @@ -8584,6 +8634,10 @@ packages: bser: 2.1.1 dev: true + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + dev: false + /feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} @@ -8708,6 +8762,10 @@ packages: /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + dev: false + /follow-redirects@1.15.5: resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} engines: {node: '>=4.0'} @@ -9816,6 +9874,10 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} @@ -10871,6 +10933,10 @@ packages: engines: {node: '>= 8'} dev: true + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + dev: false + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true @@ -11019,6 +11085,18 @@ packages: chalk: 4.1.2 is-unicode-supported: 0.1.0 + /logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.4.1 + dev: false + /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -12189,6 +12267,16 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /neovim@4.11.0: + resolution: {integrity: sha512-8JJr7fr43xvldrrM0Y+Oij5JNdHrpi8x/EulEGexshMMWWGgBqL+QN2IbYkwWv8UyArQRbJnawqeuEH7OEu43g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@msgpack/msgpack': 2.8.0 + semver: 7.5.4 + winston: 3.11.0 + dev: false + /next@13.5.4(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==} engines: {node: '>=16.14.0'} @@ -12618,6 +12706,12 @@ packages: dependencies: wrappy: 1.0.2 + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + dependencies: + fn.name: 1.1.0 + dev: false + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -14533,6 +14627,11 @@ packages: is-regex: 1.1.4 dev: true + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -14824,6 +14923,12 @@ packages: transitivePeerDependencies: - supports-color + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + /sinon@11.1.2: resolution: {integrity: sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==} deprecated: 16.1.1 @@ -15056,6 +15161,10 @@ packages: stackframe: 1.3.4 dev: false + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: false + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -15501,6 +15610,10 @@ packages: minimatch: 3.1.2 dev: true + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + dev: false + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -15626,6 +15739,11 @@ packages: engines: {node: '>=12'} dev: true + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + dev: false + /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} @@ -16607,6 +16725,32 @@ packages: /wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + /winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} + dependencies: + logform: 2.6.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + dev: false + + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.4 + is-stream: 2.0.1 + logform: 2.6.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.4.3 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.7.0 + dev: false + /workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true From a1cd776bf261f1903213c9a6b2e5e3e9e48a04f1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 29 Feb 2024 13:31:19 +0000 Subject: [PATCH 018/504] add ExtensionContext class including the neovim client --- packages/cursorless-neovim/src/extension.ts | 18 +- .../src/ide/neovim/NeovimExtensionContext.ts | 42 +++++ .../src/ide/neovim/NeovimFileSystem.ts | 2 + .../src/ide/neovim/NeovimIDE.ts | 3 +- .../src/ide/neovim/hats/NeovimHats.ts | 6 +- .../src/types/ExtensionContext.ts | 168 ++++++++++++++++++ 6 files changed, 232 insertions(+), 7 deletions(-) create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts create mode 100644 packages/cursorless-neovim/src/types/ExtensionContext.ts diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 33f4c6988f..8325c4bd07 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -20,6 +20,8 @@ import { import * as crypto from "crypto"; import * as os from "os"; import * as path from "path"; +import { ExtensionContext } from "./types/ExtensionContext"; +import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; // import { constructTestHelpers } from "./constructTestHelpers"; // import { FakeFontMeasurements } from "./ide/vscode/hats/FakeFontMeasurements"; // import { FontMeasurementsImpl } from "./ide/vscode/hats/FontMeasurementsImpl"; @@ -51,9 +53,11 @@ export async function activate(plugin: NvimPlugin) { debugger; const client = plugin.nvim; // NeovimClient + const extensionContext = new NeovimExtensionContext(plugin); // const parseTreeApi = await getParseTreeApi(); - const { neovimIDE, hats, fileSystem } = await createNeovimIde(); + const { neovimIDE, hats, fileSystem } = + await createNeovimIde(extensionContext); const normalizedIde = neovimIDE.runMode === "production" @@ -92,10 +96,10 @@ export async function activate(plugin: NvimPlugin) { debugger; } -async function createNeovimIde() { - const neovimIDE = new NeovimIDE(); +async function createNeovimIde(context: ExtensionContext) { + const neovimIDE = new NeovimIDE(context); - const hats = new NeovimHats(neovimIDE); + const hats = new NeovimHats(neovimIDE, context); await hats.init(); // FIXME: Inject this from test harness. Would need to arrange to delay @@ -106,7 +110,11 @@ async function createNeovimIde() { ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) : path.join(os.homedir(), ".cursorless"); - const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir); + const fileSystem = new NeovimFileSystem( + context, + neovimIDE.runMode, + cursorlessDir, + ); await fileSystem.initialize(); return { neovimIDE, hats, fileSystem }; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts new file mode 100644 index 0000000000..5ae13d9a9d --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts @@ -0,0 +1,42 @@ +import { NeovimClient, NvimPlugin } from "neovim"; +import { ExtensionContext } from "../../types/ExtensionContext"; + +export class NeovimExtensionContext extends ExtensionContext { + private client: NeovimClient; + + // get extensionMode(): ExtensionMode { + // return this.context.extensionMode; + // } + + // get subscriptions(): { dispose(): any }[] { + // return this.context.subscriptions; + // } + + // get extensionPath(): string { + // return this.context.extensionPath; + // } + + // get storagePath(): string | undefined { + // return this.context.storagePath; + // } + + // get globalStoragePath(): string { + // return this.context.globalStoragePath; + // } + + // get logPath(): string { + // return this.context.logPath; + // } + + constructor( + // private context: ExtensionContext, + plugin: NvimPlugin, + ) { + super(); + this.client = plugin.nvim as NeovimClient; + } + + // asAbsolutePath(relativePath: string): string { + // throw new Error("Method not implemented."); + // } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 588493de02..1ebc44b3d4 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -6,12 +6,14 @@ import { } from "@cursorless/common"; import { /* isAbsolute, */ join } from "path"; // import * as vscode from "vscode"; +import { ExtensionContext } from "../../types/ExtensionContext"; export class NeovimFileSystem implements FileSystem { public readonly cursorlessTalonStateJsonPath: string; public readonly cursorlessCommandHistoryDirPath: string; constructor( + private readonly extensionContext: ExtensionContext, private readonly runMode: RunMode, private readonly cursorlessDir: string, ) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 53b593c97e..84b30d0194 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -18,6 +18,7 @@ import type { RunMode, WorkspaceFolder, } from "@cursorless/common"; +import { ExtensionContext } from "../../types/ExtensionContext"; import { NeovimCapabilities } from "./NeovimCapabilities"; import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; @@ -39,7 +40,7 @@ export class NeovimIDE implements IDE { private assetsRoot_: string | undefined; private quickPickReturnValue: string | undefined = undefined; - constructor() { + constructor(private extensionContext: ExtensionContext) { this.configuration = new NeovimConfiguration(); this.globalState = new NeovimGlobalState(); this.messages = new NeovimMessages(); diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index 12cb6123ae..3d3cf7468b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -7,6 +7,7 @@ import { } from "@cursorless/common"; // import { toVscodeRange, VscodeApi } from "@cursorless/vscode-common"; // import * as vscode from "vscode"; +import { ExtensionContext } from "../../../types/ExtensionContext"; import { Disposable } from "vscode"; // import { VscodeHatStyleName } from "../hatStyles.types"; // import VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager"; @@ -21,7 +22,10 @@ export class NeovimHats implements Hats { private enabledHatStyleNotifier: Notifier<[HatStyleMap]> = new Notifier(); private isEnabledNotifier: Notifier<[boolean]> = new Notifier(); - constructor(private ide: NeovimIDE) { + constructor( + private ide: NeovimIDE, + ExtensionContext: ExtensionContext, + ) { this.enabledHatStyles = {}; // TODO: we don't support hats yet this.isEnabled = false; diff --git a/packages/cursorless-neovim/src/types/ExtensionContext.ts b/packages/cursorless-neovim/src/types/ExtensionContext.ts new file mode 100644 index 0000000000..efb92824a2 --- /dev/null +++ b/packages/cursorless-neovim/src/types/ExtensionContext.ts @@ -0,0 +1,168 @@ +// originally from vscode + +/** + * The ExtensionMode is provided on the `ExtensionContext` and indicates the + * mode the specific extension is running in. + */ +export enum ExtensionMode { + /** + * The extension is installed normally (for example, from the marketplace + * or VSIX) in the editor. + */ + Production = 1, + + /** + * The extension is running from an `--extensionDevelopmentPath` provided + * when launching the editor. + */ + Development = 2, + + /** + * The extension is running from an `--extensionTestsPath` and + * the extension host is running unit tests. + */ + Test = 3, +} + +/** + * An extension context is a collection of utilities private to an + * extension. + * + * An instance of an `ExtensionContext` is provided as the first + * parameter to the `activate`-call of an extension. + */ +export class ExtensionContext { + /** + * An array to which disposables can be added. When this + * extension is deactivated the disposables will be disposed. + * + * *Note* that asynchronous dispose-functions aren't awaited. + */ + // readonly subscriptions: { dispose(): any }[]; + /** + * A memento object that stores state in the context + * of the currently opened {@link workspace.workspaceFolders workspace}. + */ + // readonly workspaceState: Memento; + /** + * A memento object that stores state independent + * of the current opened {@link workspace.workspaceFolders workspace}. + */ + // readonly globalState: Memento & { + // /** + // * Set the keys whose values should be synchronized across devices when synchronizing user-data + // * like configuration, extensions, and mementos. + // * + // * Note that this function defines the whole set of keys whose values are synchronized: + // * - calling it with an empty array stops synchronization for this memento + // * - calling it with a non-empty array replaces all keys whose values are synchronized + // * + // * For any given set of keys this function needs to be called only once but there is no harm in + // * repeatedly calling it. + // * + // * @param keys The set of keys whose values are synced. + // */ + // setKeysForSync(keys: readonly string[]): void; + // }; + /** + * A storage utility for secrets. Secrets are persisted across reloads and are independent of the + * current opened {@link workspace.workspaceFolders workspace}. + */ + // readonly secrets: SecretStorage; + /** + * The uri of the directory containing the extension. + */ + // readonly extensionUri: Uri; + /** + * The absolute file path of the directory containing the extension. Shorthand + * notation for {@link TextDocument.uri ExtensionContext.extensionUri.fsPath} (independent of the uri scheme). + */ + // readonly extensionPath: string; + /** + * Gets the extension's environment variable collection for this workspace, enabling changes + * to be applied to terminal environment variables. + */ + // readonly environmentVariableCollection: EnvironmentVariableCollection; + /** + * Get the absolute path of a resource contained in the extension. + * + * *Note* that an absolute uri can be constructed via {@linkcode Uri.joinPath} and + * {@linkcode ExtensionContext.extensionUri extensionUri}, e.g. `vscode.Uri.joinPath(context.extensionUri, relativePath);` + * + * @param relativePath A relative path to a resource contained in the extension. + * @return The absolute path of the resource. + */ + // asAbsolutePath(relativePath: string): string; + /** + * The uri of a workspace specific directory in which the extension + * can store private state. The directory might not exist and creation is + * up to the extension. However, the parent directory is guaranteed to be existent. + * The value is `undefined` when no workspace nor folder has been opened. + * + * Use {@linkcode ExtensionContext.workspaceState workspaceState} or + * {@linkcode ExtensionContext.globalState globalState} to store key value data. + * + * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from + * an uri. + */ + // readonly storageUri: Uri | undefined; + /** + * An absolute file path of a workspace specific directory in which the extension + * can store private state. The directory might not exist on disk and creation is + * up to the extension. However, the parent directory is guaranteed to be existent. + * + * Use {@linkcode ExtensionContext.workspaceState workspaceState} or + * {@linkcode ExtensionContext.globalState globalState} to store key value data. + * + * @deprecated Use {@link ExtensionContext.storageUri storageUri} instead. + */ + // readonly storagePath: string | undefined; + /** + * The uri of a directory in which the extension can store global state. + * The directory might not exist on disk and creation is + * up to the extension. However, the parent directory is guaranteed to be existent. + * + * Use {@linkcode ExtensionContext.globalState globalState} to store key value data. + * + * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from + * an uri. + */ + // readonly globalStorageUri: Uri; + /** + * An absolute file path in which the extension can store global state. + * The directory might not exist on disk and creation is + * up to the extension. However, the parent directory is guaranteed to be existent. + * + * Use {@linkcode ExtensionContext.globalState globalState} to store key value data. + * + * @deprecated Use {@link ExtensionContext.globalStorageUri globalStorageUri} instead. + */ + // readonly globalStoragePath: string; + /** + * The uri of a directory in which the extension can create log files. + * The directory might not exist on disk and creation is up to the extension. However, + * the parent directory is guaranteed to be existent. + * + * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from + * an uri. + */ + // readonly logUri: Uri; + /** + * An absolute file path of a directory in which the extension can create log files. + * The directory might not exist on disk and creation is up to the extension. However, + * the parent directory is guaranteed to be existent. + * + * @deprecated Use {@link ExtensionContext.logUri logUri} instead. + */ + // readonly logPath: string; + /** + * The mode the extension is running in. This is specific to the current + * extension. One extension may be in `ExtensionMode.Development` while + * other extensions in the host run in `ExtensionMode.Release`. + */ + // readonly extensionMode: ExtensionMode; + /** + * The current `Extension` instance. + */ + // readonly extension: Extension; +} From 03a7d0d00a9eb7d88bc1ff0cf61b9264c7603a1c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 29 Feb 2024 15:31:18 +0000 Subject: [PATCH 019/504] accessing the client crashes neovim at the moment --- packages/cursorless-neovim/src/extension.ts | 22 +++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 8325c4bd07..28b46975d3 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -46,16 +46,34 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { vscodeApi } from "./vscodeApi"; // import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { NvimPlugin } from "neovim"; +import { NeovimClient, NvimPlugin } from "neovim"; // TODO: move to extension.ts? and pass a neovimPlugin object? export async function activate(plugin: NvimPlugin) { debugger; - const client = plugin.nvim; // NeovimClient + // TODO: any access to "client" crashes neovim after a short time + + // const client = plugin.nvim as NeovimClient; // NeovimClient const extensionContext = new NeovimExtensionContext(plugin); // const parseTreeApi = await getParseTreeApi(); + // try { + // const message = await client.request("nvim_buf_attach", [0, true, {}]); + // const buf = await client.buffer; + // const ret = client.isApiReady; + // console.log("isApiReady ", ret); + // const ret = await client.request("nvim_set_current_line", ["hello world"]); + // console.log("request ", ret); + // const type = await client.request("nvim_buf_get_option", [ + // buf.id, + // "filetype", + // ]); + // console.log("request success", type); // "python" if test.py is open + // } catch (error) { + // console.warn("request failed", error); + // } + const { neovimIDE, hats, fileSystem } = await createNeovimIde(extensionContext); From c32b850dbe68e19f2bdd1329a96f7e8017f7dc2b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 29 Feb 2024 17:18:16 +0000 Subject: [PATCH 020/504] this still crashes --- packages/cursorless-neovim/src/extension.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 28b46975d3..6c389ccd39 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -53,8 +53,9 @@ export async function activate(plugin: NvimPlugin) { debugger; // TODO: any access to "client" crashes neovim after a short time + // https://github.com/neovim/neovim/issues/23781 - // const client = plugin.nvim as NeovimClient; // NeovimClient + const client = (await plugin.nvim) as NeovimClient; // NeovimClient const extensionContext = new NeovimExtensionContext(plugin); // const parseTreeApi = await getParseTreeApi(); @@ -62,7 +63,7 @@ export async function activate(plugin: NvimPlugin) { // const message = await client.request("nvim_buf_attach", [0, true, {}]); // const buf = await client.buffer; // const ret = client.isApiReady; - // console.log("isApiReady ", ret); + // console.log("isApiReady ", ret); // true // const ret = await client.request("nvim_set_current_line", ["hello world"]); // console.log("request ", ret); // const type = await client.request("nvim_buf_get_option", [ @@ -73,6 +74,10 @@ export async function activate(plugin: NvimPlugin) { // } catch (error) { // console.warn("request failed", error); // } + const ret = await client.window; + console.log("window ", ret); + const lines = (await client.buffer).lines; + console.log("lines ", lines); const { neovimIDE, hats, fileSystem } = await createNeovimIde(extensionContext); From a319f29e63820146688b2c189a4de5ae77f9add4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 5 Mar 2024 15:38:00 +0000 Subject: [PATCH 021/504] this doesn't crash --- packages/cursorless-neovim/src/extension.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 6c389ccd39..c03e5fcb9f 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -60,24 +60,24 @@ export async function activate(plugin: NvimPlugin) { // const parseTreeApi = await getParseTreeApi(); // try { - // const message = await client.request("nvim_buf_attach", [0, true, {}]); - // const buf = await client.buffer; - // const ret = client.isApiReady; - // console.log("isApiReady ", ret); // true + const message = await client.request("nvim_buf_attach", [0, true, {}]); + const buf = await client.buffer; + const ret = client.isApiReady; + console.warn("isApiReady ", ret); // true // const ret = await client.request("nvim_set_current_line", ["hello world"]); - // console.log("request ", ret); + // console.warn("request ", ret); // const type = await client.request("nvim_buf_get_option", [ // buf.id, // "filetype", // ]); - // console.log("request success", type); // "python" if test.py is open + // console.warn("request success", type); // "python" if test.py is open // } catch (error) { // console.warn("request failed", error); // } - const ret = await client.window; - console.log("window ", ret); + const window = await client.window; + console.warn("window ", window); const lines = (await client.buffer).lines; - console.log("lines ", lines); + console.warn("lines ", lines); const { neovimIDE, hats, fileSystem } = await createNeovimIde(extensionContext); From e720f8073d11e442146bc144be11c00f16e7f587 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 5 Mar 2024 15:53:18 +0000 Subject: [PATCH 022/504] bumped neovim version --- packages/cursorless-neovim/package.json | 2 +- pnpm-lock.yaml | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 5e5582e0df..29ca21cc24 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -28,7 +28,7 @@ "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", "lodash": "^4.17.21", - "neovim": "4.11.0", + "neovim": "5.0.1", "vscode-uri": "3.0.6" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9f1e46bb53..43ef160359 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -309,8 +309,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 neovim: - specifier: 4.11.0 - version: 4.11.0 + specifier: 5.0.1 + version: 5.0.1 vscode-uri: specifier: 3.0.6 version: 3.0.6 @@ -12267,13 +12267,12 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /neovim@4.11.0: - resolution: {integrity: sha512-8JJr7fr43xvldrrM0Y+Oij5JNdHrpi8x/EulEGexshMMWWGgBqL+QN2IbYkwWv8UyArQRbJnawqeuEH7OEu43g==} + /neovim@5.0.1: + resolution: {integrity: sha512-dGrk2r+uQDZHB8yFKBuHUBqwP1akbCGUQt+Re7nRaS3uhOvsKYUvikg5qBRdcxoWMvvHIqp1EVihskKAk93mPw==} engines: {node: '>=10'} hasBin: true dependencies: '@msgpack/msgpack': 2.8.0 - semver: 7.5.4 winston: 3.11.0 dev: false From fd4a2ed7fb140b874137dc8d338de3a3bf4ce7f8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 6 Mar 2024 05:59:01 +0000 Subject: [PATCH 023/504] move context to index.ts --- .gitignore | 2 ++ packages/cursorless-neovim/src/extension.ts | 11 ++++------- .../src/ide/neovim/NeovimExtensionContext.ts | 2 +- packages/cursorless-neovim/src/index.ts | 6 +++++- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 90e5d79bb0..30c3531a23 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ next-env.d.ts # test subset config packages/test-harness/testSubsetGrep.properties + +old \ No newline at end of file diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c03e5fcb9f..08b3e67559 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -46,17 +46,15 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { vscodeApi } from "./vscodeApi"; // import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { NeovimClient, NvimPlugin } from "neovim"; +// import { NeovimClient, NvimPlugin } from "neovim"; -// TODO: move to extension.ts? and pass a neovimPlugin object? -export async function activate(plugin: NvimPlugin) { +export async function activate(context: NeovimExtensionContext) { debugger; // TODO: any access to "client" crashes neovim after a short time // https://github.com/neovim/neovim/issues/23781 - const client = (await plugin.nvim) as NeovimClient; // NeovimClient - const extensionContext = new NeovimExtensionContext(plugin); + const client = context.client; // NeovimClient // const parseTreeApi = await getParseTreeApi(); // try { @@ -79,8 +77,7 @@ export async function activate(plugin: NvimPlugin) { const lines = (await client.buffer).lines; console.warn("lines ", lines); - const { neovimIDE, hats, fileSystem } = - await createNeovimIde(extensionContext); + const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); const normalizedIde = neovimIDE.runMode === "production" diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts index 5ae13d9a9d..8f6668f8eb 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts @@ -2,7 +2,7 @@ import { NeovimClient, NvimPlugin } from "neovim"; import { ExtensionContext } from "../../types/ExtensionContext"; export class NeovimExtensionContext extends ExtensionContext { - private client: NeovimClient; + readonly client: NeovimClient; // get extensionMode(): ExtensionMode { // return this.context.extensionMode; diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index ee0957d125..6136e987aa 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -5,6 +5,8 @@ import { cursorlessCommandIds } from "@cursorless/common"; import { createCursorlessEngine } from "@cursorless/cursorless-engine"; +import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; +import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; export default function entry(plugin: any) { @@ -37,7 +39,9 @@ export default function entry(plugin: any) { console.warn("A(): " + currentDateStr); plugin.nvim.setLine(currentDateStr); - activate(plugin); + + const extensionContext = new NeovimExtensionContext(plugin); + activate(extensionContext); }, { sync: false }, ); From 2c90fe5af3a362d44c49a84241152d075fd67fa6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 6 Mar 2024 06:41:14 +0000 Subject: [PATCH 024/504] working buffer notification test --- packages/cursorless-neovim/src/extension.ts | 68 ++++++++++++++------- 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 08b3e67559..cd94a9e864 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -58,8 +58,17 @@ export async function activate(context: NeovimExtensionContext) { // const parseTreeApi = await getParseTreeApi(); // try { - const message = await client.request("nvim_buf_attach", [0, true, {}]); + // const message = await client.request("nvim_buf_attach", [ + // 0, + // true, + // { + // on_lines: () => { + // console.warn("on_lines"); + // }, + // }, + // ]); const buf = await client.buffer; + buf.listen("lines", receivedBufferEvent); const ret = client.isApiReady; console.warn("isApiReady ", ret); // true // const ret = await client.request("nvim_set_current_line", ["hello world"]); @@ -72,10 +81,10 @@ export async function activate(context: NeovimExtensionContext) { // } catch (error) { // console.warn("request failed", error); // } - const window = await client.window; - console.warn("window ", window); - const lines = (await client.buffer).lines; - console.warn("lines ", lines); + // const window = await client.window; + // console.warn("window ", window); + // const lines = (await client.buffer).lines; + // console.warn("lines ", lines); const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); @@ -96,26 +105,41 @@ export async function activate(context: NeovimExtensionContext) { const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); - const { - commandApi, - storedTargets, - hatTokenMap, - scopeProvider, - snippets, - injectIde, - runIntegrationTests, - addCommandRunnerDecorator, - customSpokenFormGenerator, - } = createCursorlessEngine( - treeSitter, - normalizedIde, - hats, - commandServerApi, - fileSystem, - ); + // const { + // commandApi, + // storedTargets, + // hatTokenMap, + // scopeProvider, + // snippets, + // injectIde, + // runIntegrationTests, + // addCommandRunnerDecorator, + // customSpokenFormGenerator, + // } = createCursorlessEngine( + // treeSitter, + // normalizedIde, + // hats, + // commandServerApi, + // fileSystem, + // ); debugger; } +function receivedBufferEvent( + buffer: Buffer, + tick: number, + firstLine: number, + lastLine: number, + linedata: string[], + more: boolean, +): void { + console.warn( + `receivedBufferEvent(): buffer=${buffer}, tick=${tick}, firstLine=${firstLine}, lastLine-1=${ + lastLine - 1 + }, linedata=${linedata}, more=${more}`, + ); +} + async function createNeovimIde(context: ExtensionContext) { const neovimIDE = new NeovimIDE(context); From 23f3d4894c75cf08d0a0c300788e86b2a1a7b3ae Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 6 Mar 2024 09:59:55 +0000 Subject: [PATCH 025/504] initial buffer manager receiving buffer changes --- packages/cursorless-neovim/src/extension.ts | 50 ++++----- .../src/types/BufferManager.ts | 100 ++++++++++++++++++ 2 files changed, 119 insertions(+), 31 deletions(-) create mode 100644 packages/cursorless-neovim/src/types/BufferManager.ts diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index cd94a9e864..1503a9f99a 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -46,31 +46,34 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { vscodeApi } from "./vscodeApi"; // import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; +import { BufferManager } from "./types/BufferManager"; // import { NeovimClient, NvimPlugin } from "neovim"; export async function activate(context: NeovimExtensionContext) { debugger; - // TODO: any access to "client" crashes neovim after a short time - // https://github.com/neovim/neovim/issues/23781 + const client = context.client; + + const bufferManager = new BufferManager(context); + + /** + * "attach" to Nvim buffers to subscribe to buffer update events. + * This is similar to TextChanged but more powerful and granular. + * + * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() + */ + const buffers = await client.buffers; + buffers.forEach((buf) => { + console.warn("listening for changes in buffer: ", buf.id); + buf.listen("lines", bufferManager.receivedBufferEvent); + }); - const client = context.client; // NeovimClient // const parseTreeApi = await getParseTreeApi(); // try { - // const message = await client.request("nvim_buf_attach", [ - // 0, - // true, - // { - // on_lines: () => { - // console.warn("on_lines"); - // }, - // }, - // ]); - const buf = await client.buffer; - buf.listen("lines", receivedBufferEvent); - const ret = client.isApiReady; - console.warn("isApiReady ", ret); // true + // const buf = await client.buffer; + // const ret = client.isApiReady; + // console.warn("isApiReady ", ret); // true // const ret = await client.request("nvim_set_current_line", ["hello world"]); // console.warn("request ", ret); // const type = await client.request("nvim_buf_get_option", [ @@ -125,21 +128,6 @@ export async function activate(context: NeovimExtensionContext) { debugger; } -function receivedBufferEvent( - buffer: Buffer, - tick: number, - firstLine: number, - lastLine: number, - linedata: string[], - more: boolean, -): void { - console.warn( - `receivedBufferEvent(): buffer=${buffer}, tick=${tick}, firstLine=${firstLine}, lastLine-1=${ - lastLine - 1 - }, linedata=${linedata}, more=${more}`, - ); -} - async function createNeovimIde(context: ExtensionContext) { const neovimIDE = new NeovimIDE(context); diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts new file mode 100644 index 0000000000..76cf821012 --- /dev/null +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -0,0 +1,100 @@ +//adapted from vscode-neovim\src\buffer_manager.ts + +import { TextDocument, TextEditor } from "@cursorless/common"; +import { Buffer, NeovimClient } from "neovim"; +import { ATTACH } from "neovim/lib/api/Buffer"; +import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; + +// TODO: comment taken from vscode-neovim so needs review +// Integration notes: +// 1. Each document corresponds to a buffer +// 2. Each editor corresponds to a window +// 3. Generally, an editor corresponds to a document, so the buffer and window in neovim have a one-to-one relationship +// 4. When visibleTextEditors change => create a buffer and window in neovim +// 5. When activeTextEditor changes => set the current window in neovim + +/** + * Manages neovim windows & buffers and maps them to Cursorless editors & documents + */ +export class BufferManager /* implements Disposable */ { + /** + * TODO: change it to mapping of neovim buffer id -> Cursorless document + * Mapping of Cursorless document -> neovim buffer id + */ + private textDocumentToBufferId: Map = new Map(); + /** + * Mapping of neovim window id -> Cursorless editor + */ + private winIdToEditor: Map = new Map(); + + /** + * Buffer event delegate + */ + public onBufferEvent?: ( + bufId: number, + tick: number, + firstLine: number, + lastLine: number, + linedata: string[], + more: boolean, + ) => void; + + private get client() { + return this.context.client; + } + public constructor( + private context: NeovimExtensionContext /* private main: MainController */, + ) { + this.context = context; + } + + public getTextDocumentForBufferId(id: number): TextDocument | undefined { + const doc = [...this.textDocumentToBufferId].find( + ([, bufId]) => id === bufId, + )?.[0]; + // return doc && !doc.isClosed ? doc : undefined; + return doc; + } + + public getBufferIdForTextDocument(doc: TextDocument): number | undefined { + return this.textDocumentToBufferId.get(doc); + } + + public getEditorFromWinId(winId: number): TextEditor | undefined { + // try first noColumnEditors + // const noColumnEditor = [...this.textEditorToWinId].find( + // ([, id]) => id === winId, + // ); + // if (noColumnEditor) { + // return noColumnEditor[0]; + // } + return this.winIdToEditor.get(winId); + } + + /** + * @see https://neovim.io/doc/user/api.html#api-buffer-updates + */ + public receivedBufferEvent = ( + buffer: Buffer, + tick: number, + firstLine: number, + lastLine: number, + linedata: string[], + more: boolean, + ): void => { + // this.onBufferEvent?.(buffer.id, tick, firstLine, lastLine, linedata, more); + // // Ensure the receivedBufferEvent callback finishes before we fire + // // the event notifying the doc provider of any changes + // (async () => { + // const uri = this.buildExternalBufferUri(await buffer.name, buffer.id); + // logger.log(uri, LogLevel.debug, `received buffer event for ${uri}`); + // this.bufferProvider.documentDidChange.fire(uri); + // return uri; + // })().then(undefined, (e) => { + // logger.log(undefined, LogLevel.error, `failed to notify document change: ${e}`); + // }); + console.warn( + `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, + ); + }; +} From 8e27a5976e263c9f86a9a78edd500e068c7f0f0f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 6 Mar 2024 17:36:25 +0000 Subject: [PATCH 026/504] work in progress --- packages/common/src/types/TextDocument.ts | 12 +-- packages/cursorless-engine/src/core/Debug.ts | 4 +- packages/cursorless-neovim/src/events.ts | 3 + packages/cursorless-neovim/src/extension.ts | 62 ++++++++++---- .../src/ide/neovim/NeovimEvents.ts | 58 +++++++++++++ .../src/ide/neovim/NeovimIDE.ts | 10 ++- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 53 ++++++++---- .../src/ide/neovim/NeovimTextEditorImpl.ts | 4 +- .../src/ide/neovim/NeovimTextLineImpl.ts | 30 ++++--- packages/cursorless-neovim/src/index.ts | 2 + .../src/singletons/bufmgr.singleton.ts | 30 +++++++ .../src/singletons/context.singleton.ts | 30 +++++++ .../src/types/BufferManager.ts | 82 +++++++++++++++++-- 13 files changed, 317 insertions(+), 63 deletions(-) create mode 100644 packages/cursorless-neovim/src/events.ts create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts create mode 100644 packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts create mode 100644 packages/cursorless-neovim/src/singletons/context.singleton.ts diff --git a/packages/common/src/types/TextDocument.ts b/packages/common/src/types/TextDocument.ts index 94b0b11d88..4ef40c1b97 100644 --- a/packages/common/src/types/TextDocument.ts +++ b/packages/common/src/types/TextDocument.ts @@ -8,34 +8,34 @@ export interface TextDocument { * *Note* that most documents use the `file`-scheme, which means they are files on disk. However, **not** all documents are * saved on disk and therefore the `scheme` must be checked before trying to access the underlying file or siblings on disk. */ - readonly uri: URI; + uri: URI; /** * The identifier of the language associated with this document. */ - readonly languageId: string; + languageId: string; /** * The version number of this document (it will strictly increase after each * change, including undo/redo). */ - readonly version: number; + version: number; /** * The number of lines in this document. */ - readonly lineCount: number; + lineCount: number; /** * The range of the text document. */ - readonly range: Range; + range: Range; /** * The {@link EndOfLine end of line} sequence that is predominately * used in this document. */ - readonly eol: EndOfLine; + eol: EndOfLine; /** * Returns a text line denoted by the line number. Note diff --git a/packages/cursorless-engine/src/core/Debug.ts b/packages/cursorless-engine/src/core/Debug.ts index 8d9ff5c597..4aad7bcded 100644 --- a/packages/cursorless-engine/src/core/Debug.ts +++ b/packages/cursorless-engine/src/core/Debug.ts @@ -38,7 +38,9 @@ export class Debug { log(...args: any[]) { if (this.active) { - console.log(...args); + // TODO: this is likely to crash neovim for now so disabling + // console.log(...args); + console.warn(...args); } } diff --git a/packages/cursorless-neovim/src/events.ts b/packages/cursorless-neovim/src/events.ts new file mode 100644 index 0000000000..e03b96272d --- /dev/null +++ b/packages/cursorless-neovim/src/events.ts @@ -0,0 +1,3 @@ +import { EventEmitter } from "node:events"; + +export const eventEmitter = new EventEmitter(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 1503a9f99a..0d84cff85c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -47,6 +47,9 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; import { BufferManager } from "./types/BufferManager"; +import { injectBufferManager } from "./singletons/bufmgr.singleton"; +import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; +// import { EventEmitter } from "node:events"; // import { NeovimClient, NvimPlugin } from "neovim"; export async function activate(context: NeovimExtensionContext) { @@ -55,6 +58,7 @@ export async function activate(context: NeovimExtensionContext) { const client = context.client; const bufferManager = new BufferManager(context); + injectBufferManager(bufferManager); /** * "attach" to Nvim buffers to subscribe to buffer update events. @@ -64,10 +68,34 @@ export async function activate(context: NeovimExtensionContext) { */ const buffers = await client.buffers; buffers.forEach((buf) => { + console.warn("creating document for buffer: ", buf.id); + // const uri = bufferManager.buildExternalBufferUri("changeme", buf.id); + const document = new NeovimTextDocumentImpl(buf); + bufferManager.externalTextDocuments.add(document); console.warn("listening for changes in buffer: ", buf.id); buf.listen("lines", bufferManager.receivedBufferEvent); }); + // const myEmitter = new EventEmitter(); + + // // First listener + // myEmitter.on("event", function firstListener() { + // console.warn("Helloooo! first listener"); + // }); + // // Second listener + // myEmitter.on("event", function secondListener(arg1, arg2) { + // console.warn(`event with parameters ${arg1}, ${arg2} in second listener`); + // }); + // // Third listener + // myEmitter.on("event", function thirdListener(...args) { + // const parameters = args.join(", "); + // console.warn(`event with parameters ${parameters} in third listener`); + // }); + + // console.warn(myEmitter.listeners("event")); + + // myEmitter.emit("event", 1, 2, 3, 4, 5); + // const parseTreeApi = await getParseTreeApi(); // try { @@ -108,23 +136,23 @@ export async function activate(context: NeovimExtensionContext) { const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); - // const { - // commandApi, - // storedTargets, - // hatTokenMap, - // scopeProvider, - // snippets, - // injectIde, - // runIntegrationTests, - // addCommandRunnerDecorator, - // customSpokenFormGenerator, - // } = createCursorlessEngine( - // treeSitter, - // normalizedIde, - // hats, - // commandServerApi, - // fileSystem, - // ); + const { + commandApi, + storedTargets, + hatTokenMap, + scopeProvider, + snippets, + injectIde, + runIntegrationTests, + addCommandRunnerDecorator, + customSpokenFormGenerator, + } = createCursorlessEngine( + treeSitter, + normalizedIde, + hats, + commandServerApi, + fileSystem, + ); debugger; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts new file mode 100644 index 0000000000..1c5a9f0e78 --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -0,0 +1,58 @@ +// // import { fromVscodeRange } from "@cursorless/vscode-common"; +// // import * as vscode from "vscode"; +// import type { +// TextDocumentChangeEvent, +// TextDocumentChangeReason, +// TextDocumentContentChangeEvent, +// } from "@cursorless/common"; +// import { Event } from "@cursorless/common"; +// import type { Disposable } from "@cursorless/common"; +// import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; +// import { neovimContext } from "../../singletons/context.singleton"; +// import { bufferManager } from "../../singletons/bufmgr.singleton"; +import { + Disposable, + Position, + Range, + TextDocumentChangeEvent, + TextDocumentContentChangeEvent, +} from "@cursorless/common"; + +import { Buffer } from "neovim"; +import { eventEmitter } from "../../events"; + +export function neovimOnDidChangeTextDocument( + listener: (event: TextDocumentChangeEvent) => void, +): Disposable { + eventEmitter.on("onDidChangeTextDocument", listener); + return dummyEvent(); +} + +export function fromNeovimContentChange( + buffer: Buffer, + firstLine: number, + lastLine: number, + linedata: string[], +): TextDocumentContentChangeEvent[] { + const result = []; + for (let i = 0; i <= lastLine - firstLine; ++i) { + const line = firstLine + i; + const text = linedata[i]; + console.warn(`fromNeovimContentChange(): line=${line}, text=${text}`); + result.push({ + range: new Range(new Position(line, 0), new Position(line, text.length)), + rangeOffset: 0, + rangeLength: 0, + text: text, + }); + } + return result; +} + +function dummyEvent() { + return { + dispose() { + // empty + }, + }; +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 84b30d0194..b39b32b391 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -25,6 +25,8 @@ import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; +import { eventEmitter } from "../../events"; +import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -33,6 +35,8 @@ export class NeovimIDE implements IDE { readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; + // runMode: RunMode = "production"; + // runMode: RunMode = "development"; runMode: RunMode = "test"; cursorlessVersion: string = "0.0.0"; workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; @@ -135,11 +139,11 @@ export class NeovimIDE implements IDE { } public onDidChangeTextDocument( - _listener: (event: TextDocumentChangeEvent) => void, + listener: (event: TextDocumentChangeEvent) => void, ): Disposable { // console.warn("onDidChangeTextDocument Not implemented"); - throw Error("onDidChangeTextDocument Not implemented"); - // return dummyEvent(); + // throw Error("onDidChangeTextDocument Not implemented"); + return neovimOnDidChangeTextDocument(listener); } disposeOnExit(...disposables: Disposable[]): () => void { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 951bb2ce65..cf47c607c2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -12,62 +12,79 @@ import { // toVscodeRange, // } from "@cursorless/vscode-common"; // import * as vscode from "vscode"; -import type { URI } from "vscode-uri"; +import { URI } from "vscode-uri"; // import { // fromVscodePosition, // toVscodePosition, // toVscodeRange, // } from "../../vscodeUtil"; import NeovimTextLineImpl from "./NeovimTextLineImpl"; +import { bufferManager } from "../../singletons/bufmgr.singleton"; +import { neovimContext } from "../../singletons/context.singleton"; +import { Buffer } from "neovim"; export class NeovimTextDocumentImpl implements TextDocument { + private buffer: Buffer; + private _uri: URI; + private _languageId: string; + private _version: number; + private _lineCount: number; + get uri(): URI { - return this.document.uri; + return this._uri; } get languageId(): string { - return this.document.languageId; + return this._languageId; } get version(): number { - return this.document.version; + return this._version; } get lineCount(): number { - return this.document.lineCount; + return this._lineCount; } get range(): Range { - const { end } = this.document.lineAt(this.document.lineCount - 1).range; + const { end } = this.lineAt(this.lineCount - 1).range; return new Range(0, 0, end.line, end.character); } get eol(): EndOfLine { - return "LF"; - // return fromVscodeEndOfLine(this.document.eol); + return "LF"; // TODO: update } - constructor(private document: TextDocument) {} + constructor(buffer: Buffer) { + this.buffer = buffer; + this._uri = URI.parse(`neovim://${buffer.id}`); + this._languageId = "plaintext"; // TODO: update + this._version = 1; + this._lineCount = this.buffer.length as unknown as number; // TODO: update + } public lineAt(lineOrPosition: number | Position): TextLine { return new NeovimTextLineImpl( - this.document.lineAt( - typeof lineOrPosition === "number" - ? lineOrPosition - : lineOrPosition.line, - ), - ); + this.buffer, + typeof lineOrPosition === "number" ? lineOrPosition : lineOrPosition.line, + ); // TODO: update } public offsetAt(position: Position): number { - return this.document.offsetAt(position); + return 0; // TODO: update + // return this.document.offsetAt(position); } public positionAt(offset: number): Position { - return this.document.positionAt(offset); + return new Position(0, 0); // TODO: update + // return this.document.positionAt(offset); } public getText(range?: Range): string { - return this.document.getText(range != null ? range : undefined); + const lines = this.buffer.lines as unknown as string[]; // TODO: update + if (range != null) { + return lines.slice(range.start.line, range.end.line + 1).join("\n"); // TODO: update + } + return lines.join("\n"); // TODO: update } } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 690bf233f1..58819e6d8e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -30,6 +30,7 @@ import { NeovimIDE } from "./NeovimIDE"; // import vscodeOpenLink from "./VscodeOpenLink"; // import { vscodeRevealLine } from "./VscodeRevealLine"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; +import { Buffer } from "neovim"; // import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; @@ -40,8 +41,9 @@ export class NeovimTextEditorImpl implements EditableTextEditor { public readonly id: string, private ide: NeovimIDE, private editor: TextEditor, + private buffer: Buffer, ) { - this.document = new NeovimTextDocumentImpl(editor.document); + this.document = new NeovimTextDocumentImpl(this.buffer); } get vscodeEditor(): TextEditor { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts index 74862c8740..f2cf76ca34 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts @@ -1,37 +1,47 @@ import { Range, TextLine } from "@cursorless/common"; // import { fromVscodeRange } from "../../vscodeUtil"; // import * as vscode from "vscode"; +import { Buffer } from "neovim"; export default class NeovimTextLineImpl implements TextLine { - constructor(private line: TextLine) {} + private buffer: Buffer; + private _lineNumber: number; + + constructor(buffer: Buffer, lineNumber: number) { + this.buffer = buffer; + this._lineNumber = lineNumber; + } get lineNumber(): number { - return this.line.lineNumber; + return this._lineNumber; } get text(): string { - return this.line.text; + const lines = this.buffer.getLines({ + start: this.lineNumber, + end: this.lineNumber + 1, + strictIndexing: true, + }) as unknown as string[]; // TODO: update + return lines[0]; } get range(): Range { - // return fromVscodeRange(this.line.range); - return this.line.range; + return new Range(this.lineNumber, 0, this.lineNumber, this.text.length); // TODO: update } get rangeIncludingLineBreak(): Range { - // return fromVscodeRange(this.line.rangeIncludingLineBreak); - return this.line.rangeIncludingLineBreak; + return new Range(this.lineNumber, 0, this.lineNumber, this.text.length + 1); // TODO: update } get firstNonWhitespaceCharacterIndex(): number { - return this.line.firstNonWhitespaceCharacterIndex; + return this.text.trimStart().length; } get lastNonWhitespaceCharacterIndex(): number { - return this.line.text.trimEnd().length; + return this.text.trimEnd().length; //TODO: update } get isEmptyOrWhitespace(): boolean { - return this.line.isEmptyOrWhitespace; + return this.firstNonWhitespaceCharacterIndex === this.text.length; } } diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 6136e987aa..95535988de 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -8,6 +8,7 @@ import { createCursorlessEngine } from "@cursorless/cursorless-engine"; import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; +import { injectContext } from "./singletons/context.singleton"; export default function entry(plugin: any) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -41,6 +42,7 @@ export default function entry(plugin: any) { plugin.nvim.setLine(currentDateStr); const extensionContext = new NeovimExtensionContext(plugin); + injectContext(extensionContext); activate(extensionContext); }, { sync: false }, diff --git a/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts b/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts new file mode 100644 index 0000000000..7f427615b2 --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts @@ -0,0 +1,30 @@ +import { BufferManager } from "../types/BufferManager"; + +/** + * This is the `bufmgr` singleton + */ +let bufmgr_: BufferManager | undefined; + +/** + * Injects an {@link BufferManager} object that can be used to interact with the neovim buffer. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param bufmgr The BufferManager to inject + */ +export function injectBufferManager(bufmgr: BufferManager | undefined) { + bufmgr_ = bufmgr; +} + +/** + * Gets the singleton used to interact with the extension. + * @throws Error if the bufmgr hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The bufmgr object + */ +export function bufferManager(): BufferManager { + if (bufmgr_ == null) { + throw Error("Tried to access bufferManager before it was injected"); + } + + return bufmgr_; +} diff --git a/packages/cursorless-neovim/src/singletons/context.singleton.ts b/packages/cursorless-neovim/src/singletons/context.singleton.ts new file mode 100644 index 0000000000..abeec91546 --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/context.singleton.ts @@ -0,0 +1,30 @@ +import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; + +/** + * This is the `context` singleton + */ +let context_: NeovimExtensionContext | undefined; + +/** + * Injects an {@link NeovimExtensionContext} object that can be used to interact with the extension. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param context The context to inject + */ +export function injectContext(context: NeovimExtensionContext | undefined) { + context_ = context; +} + +/** + * Gets the singleton used to interact with the extension. + * @throws Error if the context hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The context object + */ +export function neovimContext(): NeovimExtensionContext { + if (context_ == null) { + throw Error("Tried to access neovimContext before it was injected"); + } + + return context_; +} diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 76cf821012..2438064796 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -1,22 +1,38 @@ //adapted from vscode-neovim\src\buffer_manager.ts -import { TextDocument, TextEditor } from "@cursorless/common"; +import { + TextDocument, + TextDocumentChangeEvent, + TextEditor, +} from "@cursorless/common"; import { Buffer, NeovimClient } from "neovim"; import { ATTACH } from "neovim/lib/api/Buffer"; import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; +// import { Disposable, Uri } from "vscode"; +import { eventEmitter } from "../events"; +import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; +import { fromNeovimContentChange } from "../ide/neovim/NeovimEvents"; -// TODO: comment taken from vscode-neovim so needs review +const BUFFER_SCHEME = "neovim"; + +// TODO: wip comment taken from vscode-neovim so needs review // Integration notes: -// 1. Each document corresponds to a buffer -// 2. Each editor corresponds to a window -// 3. Generally, an editor corresponds to a document, so the buffer and window in neovim have a one-to-one relationship -// 4. When visibleTextEditors change => create a buffer and window in neovim -// 5. When activeTextEditor changes => set the current window in neovim +// 1. Each Cursorless "TextDocument" corresponds to a neovim "Buffer" +// 2. Each Cursorless "TextEditor" corresponds to a neovim "Window" +// 3. Generally, an "TextEditor" corresponds to a "TextDocument", +// so the "Buffer" and "Window" in neovim have a one-to-one relationship +// 4. When visibleTextEditors change => create a "Buffer" and "Window" in neovim +// 5. When activeTextEditor changes => set the current "Window" in neovim /** * Manages neovim windows & buffers and maps them to Cursorless editors & documents */ export class BufferManager /* implements Disposable */ { + // TODO: all the text documents are external/internal in our case + /** + * Text documents originated externally, as consequence of neovim command, like :help or :PlugStatus + */ + public externalTextDocuments: WeakSet = new Set(); /** * TODO: change it to mapping of neovim buffer id -> Cursorless document * Mapping of Cursorless document -> neovim buffer id @@ -74,6 +90,7 @@ export class BufferManager /* implements Disposable */ { /** * @see https://neovim.io/doc/user/api.html#api-buffer-updates */ + // TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? public receivedBufferEvent = ( buffer: Buffer, tick: number, @@ -96,5 +113,56 @@ export class BufferManager /* implements Disposable */ { console.warn( `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, ); + + const document = this.getTextDocumentForBufferId( + buffer.id, + ) as NeovimTextDocumentImpl; + eventEmitter.emit("onDidChangeTextDocument", { + document: document, + contentChanges: fromNeovimContentChange( + buffer, + firstLine, + lastLine, + linedata, + ), + // reason: fromNeovimReason(...), + }); + }; + + // public async onDidChangeTextDocument( + // event: TextDocumentChangeEvent, + // ): Promise { + // const disposable = { + // dispose: () => { + // // empty + // }, + // }; + + // const id = this.getBufferIdForTextDocument(event.document); + // const buffers = await this.context.client.buffers; + // const buf = buffers.find((b) => b.id === id); + // if (!buf) { + // console.warn(`external buffer ${id} not found`); + // return disposable; + // } + // buf.listen("lines", this.receivedBufferEvent); + // return dummyEvent(); + // } + + // public buildExternalBufferUri(name: string, id: number): Uri { + // // These might not *always* be file names, but they often are (e.g. for :help) so + // // make sure we properly convert slashes for the path component, especially on Windows + // return Uri.file(name).with({ + // scheme: BUFFER_SCHEME, + // authority: id.toString(), + // }); + // } +} + +function dummyEvent() { + return { + dispose: () => { + // empty + }, }; } From 33ac5b68c62310e0bb705f6e4611ca812aae8103 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 14:29:18 +0000 Subject: [PATCH 027/504] initial text editor implementation --- packages/cursorless-neovim/package.json | 1 + packages/cursorless-neovim/src/extension.ts | 39 +++++++++++-------- .../src/ide/neovim/NeovimEvents.ts | 2 +- .../src/ide/neovim/NeovimIDE.ts | 34 +++++++++++++--- .../src/ide/neovim/NeovimTextEditorImpl.ts | 30 +++++++++----- .../src/types/BufferManager.ts | 4 +- pnpm-lock.yaml | 3 ++ 7 files changed, 79 insertions(+), 34 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 29ca21cc24..6e752917b5 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -33,6 +33,7 @@ }, "devDependencies": { "@types/lodash": "4.14.181", + "@types/uuid": "8.3.4", "@types/vscode": "1.66.0" } } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 0d84cff85c..b1c1ebbc43 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -60,22 +60,6 @@ export async function activate(context: NeovimExtensionContext) { const bufferManager = new BufferManager(context); injectBufferManager(bufferManager); - /** - * "attach" to Nvim buffers to subscribe to buffer update events. - * This is similar to TextChanged but more powerful and granular. - * - * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - */ - const buffers = await client.buffers; - buffers.forEach((buf) => { - console.warn("creating document for buffer: ", buf.id); - // const uri = bufferManager.buildExternalBufferUri("changeme", buf.id); - const document = new NeovimTextDocumentImpl(buf); - bufferManager.externalTextDocuments.add(document); - console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", bufferManager.receivedBufferEvent); - }); - // const myEmitter = new EventEmitter(); // // First listener @@ -119,6 +103,29 @@ export async function activate(context: NeovimExtensionContext) { const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); + // start of test + + // initialize the text editor + neovimIDE.fromNeovimEditor(await client.window); + + /** + * "attach" to Nvim buffers to subscribe to buffer update events. + * This is similar to TextChanged but more powerful and granular. + * + * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() + */ + const buffers = await client.buffers; + buffers.forEach((buf) => { + console.warn("creating document for buffer: ", buf.id); + // const uri = bufferManager.buildExternalBufferUri("changeme", buf.id); + const document = new NeovimTextDocumentImpl(buf); + bufferManager.textDocumentToBufferId.set(document, buf.id); + console.warn("listening for changes in buffer: ", buf.id); + buf.listen("lines", bufferManager.receivedBufferEvent); + }); + + // end of test + const normalizedIde = neovimIDE.runMode === "production" ? neovimIDE diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index 1c5a9f0e78..75bde55dbf 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -35,7 +35,7 @@ export function fromNeovimContentChange( linedata: string[], ): TextDocumentContentChangeEvent[] { const result = []; - for (let i = 0; i <= lastLine - firstLine; ++i) { + for (let i = 0; i < lastLine - firstLine; ++i) { const line = firstLine + i; const text = linedata[i]; console.warn(`fromNeovimContentChange(): line=${line}, text=${text}`); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index b39b32b391..a098cc33f0 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -1,5 +1,5 @@ // adapted from packages\common\src\ide\fake\FakeIDE.ts -import { pull } from "lodash"; +// and packages\cursorless-vscode\src\ide\vscode\VscodeIDE.ts import type { EditableTextEditor, TextEditor } from "@cursorless/common"; import { GeneralizedRange } from "@cursorless/common"; import { TextDocument } from "@cursorless/common"; @@ -18,6 +18,8 @@ import type { RunMode, WorkspaceFolder, } from "@cursorless/common"; +import { pull } from "lodash"; +import { v4 as uuid } from "uuid"; import { ExtensionContext } from "../../types/ExtensionContext"; import { NeovimCapabilities } from "./NeovimCapabilities"; import NeovimClipboard from "./NeovimClipboard"; @@ -27,6 +29,7 @@ import NeovimMessages from "./NeovimMessages"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { eventEmitter } from "../../events"; import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; +import { Window } from "neovim"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -34,6 +37,7 @@ export class NeovimIDE implements IDE { readonly messages: NeovimMessages; readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; + public editorMap; // TODO: move to private? // runMode: RunMode = "production"; // runMode: RunMode = "development"; @@ -50,6 +54,7 @@ export class NeovimIDE implements IDE { this.messages = new NeovimMessages(); this.clipboard = new NeovimClipboard(); this.capabilities = new NeovimCapabilities(); + this.editorMap = new Map(); } async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { @@ -86,19 +91,27 @@ export class NeovimIDE implements IDE { } get activeTextEditor(): TextEditor | undefined { - throw Error("activeTextEditor Not implemented"); + // throw Error("activeTextEditor Not implemented"); + return this.getActiveTextEditor(); } get activeEditableTextEditor(): EditableTextEditor | undefined { - throw Error("activeEditableTextEditor Not implemented"); + // throw Error("activeEditableTextEditor Not implemented"); + return this.getActiveTextEditor(); + } + + private getActiveTextEditor() { + return this.fromNeovimEditor(this.editorMap.keys().next().value); // TODO: update } get visibleTextEditors(): NeovimTextEditorImpl[] { - throw Error("visibleTextEditors Not implemented"); + return Array.from(this.editorMap.values()); + // throw Error("visibleTextEditors Not implemented"); } - public getEditableTextEditor(_editor: TextEditor): EditableTextEditor { - throw Error("getEditableTextEditor Not implemented"); + public getEditableTextEditor(editor: TextEditor): EditableTextEditor { + return editor as EditableTextEditor; + // throw Error("getEditableTextEditor Not implemented"); } public findInDocument(_query: string, _editor: TextEditor): Promise { @@ -146,6 +159,15 @@ export class NeovimIDE implements IDE { return neovimOnDidChangeTextDocument(listener); } + public fromNeovimEditor(editor: Window): NeovimTextEditorImpl { + if (!this.editorMap.has(editor)) { + const impl = new NeovimTextEditorImpl(uuid(), this, editor); + impl.initialize(); + this.editorMap.set(editor, impl); + } + return this.editorMap.get(editor)!; + } + disposeOnExit(...disposables: Disposable[]): () => void { this.disposables.push(...disposables); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 58819e6d8e..292a222d46 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -30,28 +30,38 @@ import { NeovimIDE } from "./NeovimIDE"; // import vscodeOpenLink from "./VscodeOpenLink"; // import { vscodeRevealLine } from "./VscodeRevealLine"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -import { Buffer } from "neovim"; +import { Buffer, Window } from "neovim"; // import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; export class NeovimTextEditorImpl implements EditableTextEditor { - readonly document: TextDocument; + // readonly document: TextDocument; + private _document: TextDocument; constructor( public readonly id: string, private ide: NeovimIDE, - private editor: TextEditor, - private buffer: Buffer, + private editor: Window, ) { - this.document = new NeovimTextDocumentImpl(this.buffer); + this._document = undefined as unknown as TextDocument; // TODO: update } - get vscodeEditor(): TextEditor { + public async initialize() { + this._document = new NeovimTextDocumentImpl(await this.editor.buffer); + } + + get document(): TextDocument { + return this._document; + } + + // neovim terminology for editor is window + get neovimEditor(): Window { return this.editor; } get selections(): Selection[] { - return this.editor.selections; + return []; // TODO: update + // return this.editor.selections; } set selections(selections: Selection[]) { @@ -59,11 +69,13 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } get visibleRanges(): Range[] { - return this.editor.visibleRanges; + return []; // TODO: update + // return this.editor.visibleRanges; } get options(): TextEditorOptions { - return this.editor.options; + return {}; // TODO: update + // return this.editor.options; } set options(options: TextEditorOptions) { diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 2438064796..f4ba2b34a1 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -32,12 +32,12 @@ export class BufferManager /* implements Disposable */ { /** * Text documents originated externally, as consequence of neovim command, like :help or :PlugStatus */ - public externalTextDocuments: WeakSet = new Set(); + // public externalTextDocuments: WeakSet = new Set(); /** * TODO: change it to mapping of neovim buffer id -> Cursorless document * Mapping of Cursorless document -> neovim buffer id */ - private textDocumentToBufferId: Map = new Map(); + public textDocumentToBufferId: Map = new Map(); /** * Mapping of neovim window id -> Cursorless editor */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43ef160359..f5bde4e787 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -318,6 +318,9 @@ importers: '@types/lodash': specifier: 4.14.181 version: 4.14.181 + '@types/uuid': + specifier: 8.3.4 + version: 8.3.4 '@types/vscode': specifier: 1.66.0 version: 1.66.0 From 45248c874e3a1def5b4aceed647ebae25031e802 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 14:58:30 +0000 Subject: [PATCH 028/504] start cleaning exported functions --- packages/cursorless-neovim/src/index.ts | 41 ++++++++++--------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 95535988de..6010ef56a9 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,36 +1,29 @@ -// import { -// cursorlessCommandIds, -// } from "./common"; -// import { temp } from "./lib/temp"; - -import { cursorlessCommandIds } from "@cursorless/common"; -import { createCursorlessEngine } from "@cursorless/cursorless-engine"; +// import { createCursorlessEngine } from "@cursorless/cursorless-engine"; import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; import { injectContext } from "./singletons/context.singleton"; -export default function entry(plugin: any) { +function loadNode(plugin: NvimPlugin) { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); + + console.warn("loadNode(): " + currentDateStr); + // plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); +} + +/** + * Extension entrypoint called by node-client on Cursorless startup. + * - Register the functions that are exposed to neovim. + */ +export default function entry(plugin: NvimPlugin) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation // plugin.setOptions({ dev: false }); plugin.setOptions({ dev: true }); - plugin.registerFunction( - "TALON", - () => { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); - - console.warn( - "TALON(): " + cursorlessCommandIds[1] + " " + currentDateStr, - ); - // plugin.nvim.setLine(cursorlessCommandIds[2]); - plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); - // return plugin.nvim.setLine("TALON"); - // return plugin.nvim.setLine(temp[2]); - }, - { sync: false }, - ); + plugin.registerFunction("CursorlessLoadNode", () => loadNode(plugin), { + sync: false, + }); plugin.registerFunction( "A", From 8d8f2b4c677c0694aa6ecc58d2ea9c8cbb5cf864 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 15:17:46 +0000 Subject: [PATCH 029/504] remove dead code for now --- packages/cursorless-neovim/src/index.ts | 90 +++++++------------------ 1 file changed, 25 insertions(+), 65 deletions(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 6010ef56a9..f01e01d48b 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -4,17 +4,10 @@ import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; import { injectContext } from "./singletons/context.singleton"; -function loadNode(plugin: NvimPlugin) { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); - - console.warn("loadNode(): " + currentDateStr); - // plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); -} - /** * Extension entrypoint called by node-client on Cursorless startup. * - Register the functions that are exposed to neovim. + * Note that this function need to start with the capital letter to be callable from neovim. */ export default function entry(plugin: NvimPlugin) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -26,68 +19,35 @@ export default function entry(plugin: NvimPlugin) { }); plugin.registerFunction( - "A", - () => { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); - - console.warn("A(): " + currentDateStr); - plugin.nvim.setLine(currentDateStr); - - const extensionContext = new NeovimExtensionContext(plugin); - injectContext(extensionContext); - activate(extensionContext); - }, + "CursorlessLoadExtension", + () => loadExtension(plugin), { sync: false }, ); +} - plugin.registerFunction( - "B", - (args: any) => { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); - - console.warn("B(): " + currentDateStr); - console.warn("B(): " + args); // B(): lines,1,18,9,9,10,0 - // console.warn("B(): " + args[0]); // B(): lines,1,18,9,9,10,0 - // console.warn("B(): " + args[0][0]); // "lines" - // console.warn("B(): " + typeof args); // object - // console.warn("B(): " + typeof args[0]); // object - // console.warn("B(): " + typeof args[0][0]); // string +/** + * Load node.exe inside nvim.exe. + * This is useful for debugging purpose so we can attach to node. + */ +function loadNode(plugin: NvimPlugin) { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); - // https://neovim.io/doc/user/api.html#nvim_buf_attach() - // https://neovim.io/doc/user/api.html#api-buffer-updates - // https://vi.stackexchange.com/questions/26971/most-efficient-way-to-call-a-vim-script-function-with-lua-neovim - const [ - headerStr, - bufferHandle, - changedTick, - firstLineChanged, - lastLineChanged, - lastLineInUpdatedRange, - byteCountPreviousContents, - // ] = args[0]; // assumes vim.api.nvim_call_function("B", {...}) - ] = args; // assumes vim.fn.B(...) - console.warn( - `B(): headerStr=${headerStr}, bufferHandle=${bufferHandle}, changedTick=${changedTick}, firstLineChanged=${firstLineChanged}, lastLineChanged-1=${ - lastLineChanged - 1 - }, lastLineInUpdatedRange=${lastLineInUpdatedRange}, byteCountPreviousContents=${byteCountPreviousContents}`, - ); + console.warn("loadNode(): " + currentDateStr); + // plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); +} - // activate(); - }, - { sync: false }, - ); +/** + * Load the cursorless engine. + */ +function loadExtension(plugin: NvimPlugin) { + const currentDate: Date = new Date(); + const currentDateStr: string = currentDate.toLocaleString(); - plugin.registerFunction( - "C", - (args: any) => { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); + console.warn("loadExtension(): " + currentDateStr); + // plugin.nvim.setLine(currentDateStr); - console.warn("C(): " + currentDateStr); - console.warn("C(): " + args); - }, - { sync: false }, - ); + const extensionContext = new NeovimExtensionContext(plugin); + injectContext(extensionContext); + activate(extensionContext); } From bae3da87abf87e7e5aa3dc7e551522a1024bf175 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 15:18:04 +0000 Subject: [PATCH 030/504] take into account all lines being changed --- packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index 75bde55dbf..bfe8807cad 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -35,7 +35,8 @@ export function fromNeovimContentChange( linedata: string[], ): TextDocumentContentChangeEvent[] { const result = []; - for (let i = 0; i < lastLine - firstLine; ++i) { + // we can't just subtract lastLine - firstLine + for (let i = 0; i < linedata.length; ++i) { const line = firstLine + i; const text = linedata[i]; console.warn(`fromNeovimContentChange(): line=${line}, text=${text}`); From 82e1c95696611ec3f462ac1856ed0e4167b1e68d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 17:01:45 +0000 Subject: [PATCH 031/504] more clean up --- packages/cursorless-neovim/src/extension.ts | 114 +++++------------- .../src/ide/neovim/NeovimTextEditorImpl.ts | 2 +- packages/cursorless-neovim/src/index.ts | 2 +- 3 files changed, 30 insertions(+), 88 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index b1c1ebbc43..f22d1f3f34 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -10,122 +10,64 @@ import { createCursorlessEngine, TreeSitter, } from "@cursorless/cursorless-engine"; -// import { -// CursorlessApi, -// getCommandServerApi, -// getParseTreeApi, -// ParseTreeApi, -// toVscodeRange, -// } from "@cursorless/vscode-common"; import * as crypto from "crypto"; import * as os from "os"; import * as path from "path"; import { ExtensionContext } from "./types/ExtensionContext"; import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; -// import { constructTestHelpers } from "./constructTestHelpers"; -// import { FakeFontMeasurements } from "./ide/vscode/hats/FakeFontMeasurements"; -// import { FontMeasurementsImpl } from "./ide/vscode/hats/FontMeasurementsImpl"; import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -// import { -// createVscodeScopeVisualizer, -// VscodeScopeVisualizer, -// } from "./ide/vscode/VSCodeScopeVisualizer"; -// import { KeyboardCommands } from "./keyboard/KeyboardCommands"; -// import { registerCommands } from "./registerCommands"; -// import { ReleaseNotes } from "./ReleaseNotes"; -// import { revisualizeOnCustomRegexChange } from "./revisualizeOnCustomRegexChange"; -// import { ScopeTreeProvider } from "./ScopeTreeProvider"; -// import { -// ScopeVisualizer, -// ScopeVisualizerListener, -// VisualizationType, -// } from "./ScopeVisualizerCommandApi"; -// import { StatusBarItem } from "./StatusBarItem"; -// import { vscodeApi } from "./vscodeApi"; -// import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; import { BufferManager } from "./types/BufferManager"; -import { injectBufferManager } from "./singletons/bufmgr.singleton"; +import { + bufferManager, + injectBufferManager, +} from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; -// import { EventEmitter } from "node:events"; -// import { NeovimClient, NvimPlugin } from "neovim"; +/** + * Simulates the extension entrypoint to match cursorless-vscode + */ export async function activate(context: NeovimExtensionContext) { - debugger; + debugger; // NOTE: helps debugging const client = context.client; - const bufferManager = new BufferManager(context); - injectBufferManager(bufferManager); - - // const myEmitter = new EventEmitter(); - - // // First listener - // myEmitter.on("event", function firstListener() { - // console.warn("Helloooo! first listener"); - // }); - // // Second listener - // myEmitter.on("event", function secondListener(arg1, arg2) { - // console.warn(`event with parameters ${arg1}, ${arg2} in second listener`); - // }); - // // Third listener - // myEmitter.on("event", function thirdListener(...args) { - // const parameters = args.join(", "); - // console.warn(`event with parameters ${parameters} in third listener`); - // }); - - // console.warn(myEmitter.listeners("event")); - - // myEmitter.emit("event", 1, 2, 3, 4, 5); + const bufmgr = new BufferManager(context); + injectBufferManager(bufmgr); + // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); - // try { - // const buf = await client.buffer; - // const ret = client.isApiReady; - // console.warn("isApiReady ", ret); // true - // const ret = await client.request("nvim_set_current_line", ["hello world"]); - // console.warn("request ", ret); - // const type = await client.request("nvim_buf_get_option", [ - // buf.id, - // "filetype", - // ]); - // console.warn("request success", type); // "python" if test.py is open - // } catch (error) { - // console.warn("request failed", error); - // } - // const window = await client.window; - // console.warn("window ", window); - // const lines = (await client.buffer).lines; - // console.warn("lines ", lines); - const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); - // start of test + // Hack for now + // We only initialize one editor(current window) with existing documents(open files i.e. buffers) + // TODO: we need to support updating editors and documents on the fly - // initialize the text editor + // initialize the editor neovimIDE.fromNeovimEditor(await client.window); + // initialize the documents + const buffers = await client.buffers; + buffers.forEach((buf) => { + console.warn("creating document for buffer: ", buf.id); + const document = new NeovimTextDocumentImpl(buf); + bufmgr.textDocumentToBufferId.set(document, buf.id); + }); + /** * "attach" to Nvim buffers to subscribe to buffer update events. * This is similar to TextChanged but more powerful and granular. * * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() */ - const buffers = await client.buffers; buffers.forEach((buf) => { - console.warn("creating document for buffer: ", buf.id); - // const uri = bufferManager.buildExternalBufferUri("changeme", buf.id); - const document = new NeovimTextDocumentImpl(buf); - bufferManager.textDocumentToBufferId.set(document, buf.id); console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", bufferManager.receivedBufferEvent); + buf.listen("lines", bufferManager().receivedBufferEvent); }); - // end of test - const normalizedIde = neovimIDE.runMode === "production" ? neovimIDE @@ -190,18 +132,18 @@ async function createNeovimIde(context: ExtensionContext) { function createTreeSitter(/* parseTreeApi: ParseTreeApi */): TreeSitter { return { getNodeAtLocation(document: TextDocument, range: Range) { - return null as unknown as SyntaxNode; + return null as unknown as SyntaxNode; // TODO: update }, getTree(document: TextDocument) { - return null as unknown as Tree; + return null as unknown as Tree; // TODO: update }, loadLanguage(languageId: string) { - return Promise.resolve(false); + return Promise.resolve(false); // TODO: update }, getLanguage(languageId: string): Language | undefined { - return undefined; + return undefined; // TODO: update }, }; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 292a222d46..94575addc1 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -46,7 +46,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { this._document = undefined as unknown as TextDocument; // TODO: update } - public async initialize() { + public async initialize(): Promise { this._document = new NeovimTextDocumentImpl(await this.editor.buffer); } diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index f01e01d48b..0081e61300 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,6 +1,6 @@ // import { createCursorlessEngine } from "@cursorless/cursorless-engine"; import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; -import { NeovimClient, NvimPlugin } from "neovim"; +import { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { injectContext } from "./singletons/context.singleton"; From 6a2d3dfdc7e9bffe50bdabc09df1e187c183790e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 17:51:30 +0000 Subject: [PATCH 032/504] comments --- packages/cursorless-neovim/src/extension.ts | 13 +++++++++---- .../cursorless-neovim/src/types/BufferManager.ts | 8 ++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index f22d1f3f34..8c041162ed 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -25,6 +25,7 @@ import { injectBufferManager, } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; +import { ATTACH } from "neovim/lib/api/Buffer"; /** * Simulates the extension entrypoint to match cursorless-vscode @@ -63,10 +64,14 @@ export async function activate(context: NeovimExtensionContext) { * * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() */ - buffers.forEach((buf) => { - console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", bufferManager().receivedBufferEvent); - }); + buffers.forEach( + /* async */ (buf) => { + console.warn("listening for changes in buffer: ", buf.id); + buf.listen("lines", bufferManager().receivedBufferEvent); + // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function + // await buf[ATTACH](true); + }, + ); const normalizedIde = neovimIDE.runMode === "production" diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index f4ba2b34a1..ed83cdfa81 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -91,14 +91,14 @@ export class BufferManager /* implements Disposable */ { * @see https://neovim.io/doc/user/api.html#api-buffer-updates */ // TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? - public receivedBufferEvent = ( + /* async */ public receivedBufferEvent = ( buffer: Buffer, tick: number, firstLine: number, lastLine: number, linedata: string[], more: boolean, - ): void => { + ): /* Promise< */ void /* > */ => { // this.onBufferEvent?.(buffer.id, tick, firstLine, lastLine, linedata, more); // // Ensure the receivedBufferEvent callback finishes before we fire // // the event notifying the doc provider of any changes @@ -117,6 +117,10 @@ export class BufferManager /* implements Disposable */ { const document = this.getTextDocumentForBufferId( buffer.id, ) as NeovimTextDocumentImpl; + // const contents = await document.getText(); + // console.warn( + // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, + // ); eventEmitter.emit("onDidChangeTextDocument", { document: document, contentChanges: fromNeovimContentChange( From d5ade6dd88201890c1353d71b6c9b98b0e5e25cc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 7 Mar 2024 17:53:28 +0000 Subject: [PATCH 033/504] async required --- packages/common/src/types/TextDocument.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 4 +- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 4 +- .../src/types/BufferManager.ts | 93 ++++++++++--------- 4 files changed, 52 insertions(+), 51 deletions(-) diff --git a/packages/common/src/types/TextDocument.ts b/packages/common/src/types/TextDocument.ts index 4ef40c1b97..7b7c4e84be 100644 --- a/packages/common/src/types/TextDocument.ts +++ b/packages/common/src/types/TextDocument.ts @@ -88,5 +88,5 @@ export interface TextDocument { * @param range Include only the text included by the range. * @return The text inside the provided range or the entire text. */ - getText(range?: Range): string; + getText(range?: Range): /* Promise< */ string /* > */; } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 8c041162ed..15bd386dc2 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -19,7 +19,7 @@ import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { BufferManager } from "./types/BufferManager"; +import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; import { bufferManager, injectBufferManager, @@ -67,7 +67,7 @@ export async function activate(context: NeovimExtensionContext) { buffers.forEach( /* async */ (buf) => { console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", bufferManager().receivedBufferEvent); + buf.listen("lines", receivedBufferEvent); // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function // await buf[ATTACH](true); }, diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index cf47c607c2..f8aaee20d3 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -80,8 +80,8 @@ export class NeovimTextDocumentImpl implements TextDocument { // return this.document.positionAt(offset); } - public getText(range?: Range): string { - const lines = this.buffer.lines as unknown as string[]; // TODO: update + public /* async */ getText(range?: Range): /* Promise< */ string /* > */ { + const lines = /* await */ this.buffer.lines as unknown as string[]; // TODO: update if (range != null) { return lines.slice(range.start.line, range.end.line + 1).join("\n"); // TODO: update } diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index ed83cdfa81..2fe8919848 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -12,6 +12,7 @@ import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; import { eventEmitter } from "../events"; import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { fromNeovimContentChange } from "../ide/neovim/NeovimEvents"; +import { bufferManager } from "../singletons/bufmgr.singleton"; const BUFFER_SCHEME = "neovim"; @@ -87,52 +88,6 @@ export class BufferManager /* implements Disposable */ { return this.winIdToEditor.get(winId); } - /** - * @see https://neovim.io/doc/user/api.html#api-buffer-updates - */ - // TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? - /* async */ public receivedBufferEvent = ( - buffer: Buffer, - tick: number, - firstLine: number, - lastLine: number, - linedata: string[], - more: boolean, - ): /* Promise< */ void /* > */ => { - // this.onBufferEvent?.(buffer.id, tick, firstLine, lastLine, linedata, more); - // // Ensure the receivedBufferEvent callback finishes before we fire - // // the event notifying the doc provider of any changes - // (async () => { - // const uri = this.buildExternalBufferUri(await buffer.name, buffer.id); - // logger.log(uri, LogLevel.debug, `received buffer event for ${uri}`); - // this.bufferProvider.documentDidChange.fire(uri); - // return uri; - // })().then(undefined, (e) => { - // logger.log(undefined, LogLevel.error, `failed to notify document change: ${e}`); - // }); - console.warn( - `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, - ); - - const document = this.getTextDocumentForBufferId( - buffer.id, - ) as NeovimTextDocumentImpl; - // const contents = await document.getText(); - // console.warn( - // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, - // ); - eventEmitter.emit("onDidChangeTextDocument", { - document: document, - contentChanges: fromNeovimContentChange( - buffer, - firstLine, - lastLine, - linedata, - ), - // reason: fromNeovimReason(...), - }); - }; - // public async onDidChangeTextDocument( // event: TextDocumentChangeEvent, // ): Promise { @@ -163,6 +118,52 @@ export class BufferManager /* implements Disposable */ { // } } +/** + * @see https://neovim.io/doc/user/api.html#api-buffer-updates + */ +// TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? +export async function receivedBufferEvent( + buffer: Buffer, + tick: number, + firstLine: number, + lastLine: number, + linedata: string[], + more: boolean, +): Promise { + // this.onBufferEvent?.(buffer.id, tick, firstLine, lastLine, linedata, more); + // // Ensure the receivedBufferEvent callback finishes before we fire + // // the event notifying the doc provider of any changes + // (async () => { + // const uri = this.buildExternalBufferUri(await buffer.name, buffer.id); + // logger.log(uri, LogLevel.debug, `received buffer event for ${uri}`); + // this.bufferProvider.documentDidChange.fire(uri); + // return uri; + // })().then(undefined, (e) => { + // logger.log(undefined, LogLevel.error, `failed to notify document change: ${e}`); + // }); + console.warn( + `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, + ); + + const document = bufferManager().getTextDocumentForBufferId( + buffer.id, + ) as NeovimTextDocumentImpl; + // const contents = await document.getText(); + // console.warn( + // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, + // ); + eventEmitter.emit("onDidChangeTextDocument", { + document: document, + contentChanges: fromNeovimContentChange( + buffer, + firstLine, + lastLine, + linedata, + ), + // reason: fromNeovimReason(...), + }); +} + function dummyEvent() { return { dispose: () => { From f410e43b2a1c7297505738d794aaca9caae8733d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:03:01 +0000 Subject: [PATCH 034/504] [pre-commit.ci lite] apply automatic fixes --- .gitignore | 2 +- packages/cursorless-neovim/src/extension.ts | 6 +----- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 1 - .../src/ide/neovim/NeovimTextDocumentImpl.ts | 2 -- .../src/ide/neovim/NeovimTextEditorImpl.ts | 2 +- packages/cursorless-neovim/src/types/BufferManager.ts | 9 ++------- 6 files changed, 5 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 30c3531a23..d1dae63533 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,4 @@ next-env.d.ts # test subset config packages/test-harness/testSubsetGrep.properties -old \ No newline at end of file +old diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 15bd386dc2..4cff6e7bf8 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -20,12 +20,8 @@ import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; -import { - bufferManager, - injectBufferManager, -} from "./singletons/bufmgr.singleton"; +import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; -import { ATTACH } from "neovim/lib/api/Buffer"; /** * Simulates the extension entrypoint to match cursorless-vscode diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index a098cc33f0..b7c8a6410a 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -27,7 +27,6 @@ import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import { eventEmitter } from "../../events"; import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; import { Window } from "neovim"; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index f8aaee20d3..2463f74e59 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -19,8 +19,6 @@ import { URI } from "vscode-uri"; // toVscodeRange, // } from "../../vscodeUtil"; import NeovimTextLineImpl from "./NeovimTextLineImpl"; -import { bufferManager } from "../../singletons/bufmgr.singleton"; -import { neovimContext } from "../../singletons/context.singleton"; import { Buffer } from "neovim"; export class NeovimTextDocumentImpl implements TextDocument { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 94575addc1..e51d54493e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -30,7 +30,7 @@ import { NeovimIDE } from "./NeovimIDE"; // import vscodeOpenLink from "./VscodeOpenLink"; // import { vscodeRevealLine } from "./VscodeRevealLine"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -import { Buffer, Window } from "neovim"; +import { Window } from "neovim"; // import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 2fe8919848..6f87f04037 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -1,12 +1,7 @@ //adapted from vscode-neovim\src\buffer_manager.ts -import { - TextDocument, - TextDocumentChangeEvent, - TextEditor, -} from "@cursorless/common"; -import { Buffer, NeovimClient } from "neovim"; -import { ATTACH } from "neovim/lib/api/Buffer"; +import { TextDocument, TextEditor } from "@cursorless/common"; +import { Buffer } from "neovim"; import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; // import { Disposable, Uri } from "vscode"; import { eventEmitter } from "../events"; From 7eca85c807c621ad5fd870c321ab5e3b0f90ce17 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 8 Mar 2024 16:58:36 +0000 Subject: [PATCH 035/504] glue command-server to cursorless --- cursorless-talon/src/apps/neovim_vscode.py | 2 + packages/cursorless-neovim/src/extension.ts | 7 +- .../src/ide/neovim/NeovimIDE.ts | 4 +- packages/cursorless-neovim/src/index.ts | 8 ++ .../cursorless-neovim/src/registerCommands.ts | 109 ++++++++++++++++++ .../src/singletons/cmdapi.singleton.ts | 30 +++++ 6 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 cursorless-talon/src/apps/neovim_vscode.py create mode 100644 packages/cursorless-neovim/src/registerCommands.ts create mode 100644 packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts diff --git a/cursorless-talon/src/apps/neovim_vscode.py b/cursorless-talon/src/apps/neovim_vscode.py new file mode 100644 index 0000000000..df3b6de14e --- /dev/null +++ b/cursorless-talon/src/apps/neovim_vscode.py @@ -0,0 +1,2 @@ + +raise BaseException("please use cursorless-talon from https://github.com/saidelike/cursorless-talon/tree/neovim") diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 15bd386dc2..754ad8e9ed 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -26,12 +26,13 @@ import { } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { ATTACH } from "neovim/lib/api/Buffer"; +import { injectCommandApi } from "./singletons/cmdapi.singleton"; /** * Simulates the extension entrypoint to match cursorless-vscode */ export async function activate(context: NeovimExtensionContext) { - debugger; // NOTE: helps debugging + // debugger; // NOTE: helps debugging const client = context.client; @@ -107,7 +108,9 @@ export async function activate(context: NeovimExtensionContext) { commandServerApi, fileSystem, ); - debugger; + injectCommandApi(commandApi); + // debugger; // NOTE: helps debugging + console.warn("activate(): Cursorless extension loaded"); } async function createNeovimIde(context: ExtensionContext) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index a098cc33f0..36fc0b22af 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -40,8 +40,8 @@ export class NeovimIDE implements IDE { public editorMap; // TODO: move to private? // runMode: RunMode = "production"; - // runMode: RunMode = "development"; - runMode: RunMode = "test"; + runMode: RunMode = "development"; // enable debug logs + // runMode: RunMode = "test"; cursorlessVersion: string = "0.0.0"; workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 0081e61300..ee3bf3670b 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -3,6 +3,7 @@ import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; import { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { injectContext } from "./singletons/context.singleton"; +import { handleCommandInternal } from "./registerCommands"; /** * Extension entrypoint called by node-client on Cursorless startup. @@ -51,3 +52,10 @@ function loadExtension(plugin: NvimPlugin) { injectContext(extensionContext); activate(extensionContext); } + +// TODO: support return value +// export function handleCommand(command: string, ...rest: any[]): Promise { +export function handleCommand(...args: any): void { + console.warn(`handleCommand(): args=${args}`); + handleCommandInternal(...args); +} diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts new file mode 100644 index 0000000000..cbae0dfa38 --- /dev/null +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -0,0 +1,109 @@ +import { + CURSORLESS_COMMAND_ID, + CursorlessCommandId, + FileSystem, + isTesting, +} from "@cursorless/common"; +import { commandApi } from "./singletons/cmdapi.singleton"; +// import { +// CommandApi, +// TestCaseRecorder, +// analyzeCommandHistory, +// showCheatsheet, +// updateDefaults, +// } from "@cursorless/cursorless-engine"; +// import * as vscode from "vscode"; +// import { ScopeVisualizer } from "./ScopeVisualizerCommandApi"; +// import { showDocumentation, showQuickPick } from "./commands"; +// import { VscodeIDE } from "./ide/vscode/VscodeIDE"; +// import { VscodeHats } from "./ide/vscode/hats/VscodeHats"; +// import { KeyboardCommands } from "./keyboard/KeyboardCommands"; +// import { logQuickActions } from "./logQuickActions"; + +// export function registerCommands( +// extensionContext: vscode.ExtensionContext, +// vscodeIde: VscodeIDE, +// commandApi: CommandApi, +// fileSystem: FileSystem, +// testCaseRecorder: TestCaseRecorder, +// scopeVisualizer: ScopeVisualizer, +// keyboardCommands: KeyboardCommands, +// hats: VscodeHats, +// ): void { +export function handleCommandInternal(...allArguments: any[]): void { + console.warn(`handleCommandInternal(): allArguments =${allArguments}`); + const [command, ...rest] = allArguments as [string, ...unknown[]]; + + const commands: Record any> = { + // The core Cursorless command + [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { + // try { + return await commandApi().runCommandSafe(...args); + // } catch (e) { + // // if (!isTesting()) { + // // const err = e as Error; + // // console.error(err.stack); + // // vscodeIde.handleCommandError(err); + // // } + // throw e; + // } + }, + // Cheatsheet commands + ["cursorless.showCheatsheet"]: dummyCommandHandler, + ["cursorless.internal.updateCheatsheetDefaults"]: dummyCommandHandler, + // Testcase recorder commands + ["cursorless.recordTestCase"]: dummyCommandHandler, + ["cursorless.recordOneTestCaseThenPause"]: dummyCommandHandler, + ["cursorless.pauseRecording"]: dummyCommandHandler, + ["cursorless.resumeRecording"]: dummyCommandHandler, + ["cursorless.takeSnapshot"]: dummyCommandHandler, + // Other commands + ["cursorless.showQuickPick"]: dummyCommandHandler, + ["cursorless.showDocumentation"]: dummyCommandHandler, + ["cursorless.private.logQuickActions"]: dummyCommandHandler, + // Hats + ["cursorless.toggleDecorations"]: dummyCommandHandler, + ["cursorless.recomputeDecorationStyles"]: dummyCommandHandler, + // Scope visualizer + ["cursorless.showScopeVisualizer"]: dummyCommandHandler, + ["cursorless.hideScopeVisualizer"]: dummyCommandHandler, + // Command history + ["cursorless.analyzeCommandHistory"]: dummyCommandHandler, + // General keyboard commands + ["cursorless.keyboard.escape"]: dummyCommandHandler, + // Targeted keyboard commands + ["cursorless.keyboard.targeted.targetHat"]: dummyCommandHandler, + ["cursorless.keyboard.targeted.targetScope"]: dummyCommandHandler, + ["cursorless.keyboard.targeted.targetSelection"]: dummyCommandHandler, + ["cursorless.keyboard.targeted.clearTarget"]: dummyCommandHandler, + ["cursorless.keyboard.targeted.runActionOnTarget"]: dummyCommandHandler, + // Modal keyboard commands + ["cursorless.keyboard.modal.modeOn"]: dummyCommandHandler, + ["cursorless.keyboard.modal.modeOff"]: dummyCommandHandler, + ["cursorless.keyboard.modal.modeToggle"]: dummyCommandHandler, + }; + + if (command !== "cursorless.command") { + console.warn( + `handleCommandInternal(): command=${command} is not supported`, + ); + return; + } + + commands["cursorless.command"](...rest); + // TODO: make the below notation work + // const HandlerFunction = (command: string) => { + // commands[command](...rest); + // }; + + // HandlerFunction(command); + // extensionContext.subscriptions.push( + // ...Object.entries(commands).map(([commandId, callback]) => + // vscode.commands.registerCommand(commandId, callback), + // ), + // ); +} + +export async function dummyCommandHandler(...args: any[]) { + console.warn(`dummyCommandHandler(): args=${args}`); +} diff --git a/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts new file mode 100644 index 0000000000..783bf03e45 --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts @@ -0,0 +1,30 @@ +import { CommandApi } from "@cursorless/cursorless-engine"; + +/** + * This is the `cmdapi` singleton + */ +let cmdapi_: CommandApi | undefined; + +/** + * Injects an {@link CommandApi} object that can be used to run Cursorless commands. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param cmdapi The CommandApi to inject + */ +export function injectCommandApi(cmdapi: CommandApi | undefined) { + cmdapi_ = cmdapi; +} + +/** + * Gets the singleton used to run Cursorless commands. + * @throws Error if the cmdapi hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The cmdapi object + */ +export function commandApi(): CommandApi { + if (cmdapi_ == null) { + throw Error("Tried to access commandApi before it was injected"); + } + + return cmdapi_; +} From e9f6f130d35f98f14933cbac54a8d8b06af2d6e5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:14:48 +0000 Subject: [PATCH 036/504] [pre-commit.ci lite] apply automatic fixes --- cursorless-talon/src/apps/neovim_vscode.py | 5 +++-- packages/cursorless-neovim/src/extension.ts | 1 - packages/cursorless-neovim/src/registerCommands.ts | 7 +------ 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/cursorless-talon/src/apps/neovim_vscode.py b/cursorless-talon/src/apps/neovim_vscode.py index df3b6de14e..4474dc87ef 100644 --- a/cursorless-talon/src/apps/neovim_vscode.py +++ b/cursorless-talon/src/apps/neovim_vscode.py @@ -1,2 +1,3 @@ - -raise BaseException("please use cursorless-talon from https://github.com/saidelike/cursorless-talon/tree/neovim") +raise BaseException( + "please use cursorless-talon from https://github.com/saidelike/cursorless-talon/tree/neovim" +) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index b37f24ade9..1918cc5b59 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -22,7 +22,6 @@ import { Language, SyntaxNode, Tree } from "web-tree-sitter"; import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; -import { ATTACH } from "neovim/lib/api/Buffer"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; /** diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index cbae0dfa38..9d7f4dcdba 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,9 +1,4 @@ -import { - CURSORLESS_COMMAND_ID, - CursorlessCommandId, - FileSystem, - isTesting, -} from "@cursorless/common"; +import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; // import { // CommandApi, From 81874359c77e7f9b3816cf74495b89afd3c2eb5e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 15:27:53 +0000 Subject: [PATCH 037/504] supports return value for the commands (tested with hardcoded value) --- packages/cursorless-neovim/src/index.ts | 8 +++----- packages/cursorless-neovim/src/registerCommands.ts | 10 ++++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index ee3bf3670b..910cf8a390 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -8,7 +8,7 @@ import { handleCommandInternal } from "./registerCommands"; /** * Extension entrypoint called by node-client on Cursorless startup. * - Register the functions that are exposed to neovim. - * Note that this function need to start with the capital letter to be callable from neovim. + * Note that these function need to start with a capital letter to be callable from neovim. */ export default function entry(plugin: NvimPlugin) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation @@ -53,9 +53,7 @@ function loadExtension(plugin: NvimPlugin) { activate(extensionContext); } -// TODO: support return value -// export function handleCommand(command: string, ...rest: any[]): Promise { -export function handleCommand(...args: any): void { +export function handleCommand(...args: any): Promise { console.warn(`handleCommand(): args=${args}`); - handleCommandInternal(...args); + return handleCommandInternal(...args); } diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 9d7f4dcdba..75792ecc49 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -25,7 +25,7 @@ import { commandApi } from "./singletons/cmdapi.singleton"; // keyboardCommands: KeyboardCommands, // hats: VscodeHats, // ): void { -export function handleCommandInternal(...allArguments: any[]): void { +export function handleCommandInternal(...allArguments: any[]): Promise { console.warn(`handleCommandInternal(): allArguments =${allArguments}`); const [command, ...rest] = allArguments as [string, ...unknown[]]; @@ -33,7 +33,9 @@ export function handleCommandInternal(...allArguments: any[]): void { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { // try { - return await commandApi().runCommandSafe(...args); + const result = await commandApi().runCommandSafe(...args); + // const result = ["hello world"]; // simulate the result of "bring " + return result; // } catch (e) { // // if (!isTesting()) { // // const err = e as Error; @@ -82,10 +84,10 @@ export function handleCommandInternal(...allArguments: any[]): void { console.warn( `handleCommandInternal(): command=${command} is not supported`, ); - return; + return new Promise((resolve) => []); } - commands["cursorless.command"](...rest); + return commands["cursorless.command"](...rest); // TODO: make the below notation work // const HandlerFunction = (command: string) => { // commands[command](...rest); From acc18e85d375c2276432e2f2e4d0d743b086f095 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 19:50:05 +0000 Subject: [PATCH 038/504] hardcoding for now --- .../cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index e51d54493e..335585ae5f 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -69,7 +69,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } get visibleRanges(): Range[] { - return []; // TODO: update + return [new Range(0, 0, 10, 0)]; // TODO: update // return this.editor.visibleRanges; } From 8cc7ee112f7bbe16e68bdc38643cc7195f515855 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 21:30:55 +0000 Subject: [PATCH 039/504] importing deasync --- packages/cursorless-neovim/package.json | 3 +- packages/cursorless-neovim/src/extension.ts | 40 ++++++++++++++ pnpm-lock.yaml | 59 +++++++++++++++++++++ 3 files changed, 101 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 6e752917b5..39c503035a 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@kaciras/deasync --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -27,6 +27,7 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", + "@kaciras/deasync": "1.0.3", "lodash": "^4.17.21", "neovim": "5.0.1", "vscode-uri": "3.0.6" diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 1918cc5b59..336a721313 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,6 +24,28 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; +// import { callbackify } from "node:util"; +// import * as deasync from "deasync"; + +// function awaitSync(promise: Promise): T { +// return deasync(callbackify(() => promise))(); +// } + +// function asyncFn( +// p: string, +// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +// ) { +// const res = "hello " + p; +// const err = null; +// return cb && cb(err, res); +// } +// import { deasync } from "@kaciras/deasync"; +import { deasync } from "@kaciras/deasync"; + +const sleep = deasync((timeout: number, callback: any) => { + setTimeout(() => callback(null, "wake up!"), timeout); +}); + /** * Simulates the extension entrypoint to match cursorless-vscode */ @@ -35,6 +57,24 @@ export async function activate(context: NeovimExtensionContext) { const bufmgr = new BufferManager(context); injectBufferManager(bufmgr); + const lines1 = await client.buffer.lines; + const lines2 = client.buffer.lines; + // const lines = awaitSync(client.buffer.lines); + // const lines3 = deasync(callbackify(() => client.buffer.lines); + console.warn("Timestamp before: " + performance.now()); + console.warn(sleep(1000)); + console.warn("Timestamp after: " + performance.now()); + + // /** Use as async */ + // asyncFn("async world", (err: any, res: any) => { + // console.warn("asyncFn callback:", res); + // }); + + // /** Use as sync! */ + // const syncFn = deasync(asyncFn); + // const result = syncFn("sync world"); + // console.log("syncFn result:", result); + // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5bde4e787..e366cd467a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -305,6 +305,9 @@ importers: '@cursorless/cursorless-engine': specifier: workspace:* version: link:../cursorless-engine + '@kaciras/deasync': + specifier: 1.0.3 + version: 1.0.3 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -3528,6 +3531,17 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@kaciras/deasync@1.0.3: + resolution: {integrity: sha512-6ODifUTZkNMtjOPCpzz6FBoQQ8uqq9PuNM0eOT7CxXDc+1nXOdraTQf0WUymOeKtQo0rsyXMrbFqdDW6APPmqg==} + engines: {node: '>=14'} + requiresBuild: true + dependencies: + follow-redirects: 1.15.5 + tar-fs: 2.1.1 + transitivePeerDependencies: + - debug + dev: false + /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} @@ -6665,6 +6679,10 @@ packages: optionalDependencies: fsevents: 2.3.3 + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -7829,6 +7847,12 @@ packages: iconv-lite: 0.6.3 optional: true + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -8853,6 +8877,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + /fs-extra@11.1.0: resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} engines: {node: '>=14.14'} @@ -12115,6 +12143,10 @@ packages: minipass: 3.3.6 yallist: 4.0.0 + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + /mkdirp-infer-owner@2.0.0: resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} engines: {node: '>=10'} @@ -13766,6 +13798,13 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false @@ -15558,6 +15597,26 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /tar@6.1.15: resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} From bfe18e70837ee0ad0fd2862b228deb979d86196a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 22:26:20 +0000 Subject: [PATCH 040/504] testing @kaciras/deasync --- packages/cursorless-neovim/src/extension.ts | 64 ++++++++++++++++----- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 336a721313..d84b2a09a2 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,12 +24,14 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; -// import { callbackify } from "node:util"; +import { Buffer } from "neovim"; + +import { callbackify } from "node:util"; // import * as deasync from "deasync"; -// function awaitSync(promise: Promise): T { -// return deasync(callbackify(() => promise))(); -// } +function awaitSync(promise: Promise): T { + return deasync(callbackify(() => promise))(); +} // function asyncFn( // p: string, @@ -39,12 +41,36 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; // const err = null; // return cb && cb(err, res); // } + +// ---------- + // import { deasync } from "@kaciras/deasync"; -import { deasync } from "@kaciras/deasync"; -const sleep = deasync((timeout: number, callback: any) => { - setTimeout(() => callback(null, "wake up!"), timeout); -}); +// const sleep = deasync((timeout: number, callback: any) => { +// setTimeout(() => callback(null, "wake up!"), timeout); +// }); + +// async function sleep3(timeout: number, callback: any) { +// setTimeout(() => callback(null, "wake up!"), timeout); +// } +// const sleep2 = deasync(sleep3); + +// async function get_fake_lines(buffer: Buffer, callback: any) { +// callback(null, ["hello"]); +// } +// const get_fake_lines2 = deasync(get_fake_lines); + +// async function get_lines(buffer: Buffer, callback: any) { +// callback(null, await buffer.lines); +// } +// const get_lines2 = deasync(get_lines); + +// async function get_lines3(buffer: Buffer, callback: any) { +// callback(null, buffer.lines); +// } +// const get_lines4 = deasync(get_lines3); + +// ---------- /** * Simulates the extension entrypoint to match cursorless-vscode @@ -53,17 +79,25 @@ export async function activate(context: NeovimExtensionContext) { // debugger; // NOTE: helps debugging const client = context.client; + const buffer = await client.buffer; const bufmgr = new BufferManager(context); injectBufferManager(bufmgr); - const lines1 = await client.buffer.lines; - const lines2 = client.buffer.lines; - // const lines = awaitSync(client.buffer.lines); + // ---------- + // @kaciras/deasync + // console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 + // console.warn(sleep(1000)); + // console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 + // const lines1 = await buffer.lines; // returned an array + // const lines2 = buffer.lines; // return a promise + // const lines3 = get_fake_lines2(buffer); // returns an array + // // const lines4 = get_lines2(buffer); // hangs / never returns + // const lines5 = get_lines4(buffer); // return a promise + // ---------- + + // const lines = awaitSync(buffer.lines); // hangs // const lines3 = deasync(callbackify(() => client.buffer.lines); - console.warn("Timestamp before: " + performance.now()); - console.warn(sleep(1000)); - console.warn("Timestamp after: " + performance.now()); // /** Use as async */ // asyncFn("async world", (err: any, res: any) => { @@ -145,7 +179,7 @@ export async function activate(context: NeovimExtensionContext) { fileSystem, ); injectCommandApi(commandApi); - // debugger; // NOTE: helps debugging + debugger; // NOTE: helps debugging console.warn("activate(): Cursorless extension loaded"); } From fe7e268007a41a3a73f5da1e0c568042a6deef67 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 22:35:20 +0000 Subject: [PATCH 041/504] more tests --- packages/cursorless-neovim/src/extension.ts | 65 +++++++++++---------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index d84b2a09a2..b0643de187 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -26,12 +26,12 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { Buffer } from "neovim"; -import { callbackify } from "node:util"; +// import { callbackify } from "node:util"; // import * as deasync from "deasync"; -function awaitSync(promise: Promise): T { - return deasync(callbackify(() => promise))(); -} +// function awaitSync(promise: Promise): T { +// return deasync(callbackify(() => promise))(); +// } // function asyncFn( // p: string, @@ -44,31 +44,31 @@ function awaitSync(promise: Promise): T { // ---------- -// import { deasync } from "@kaciras/deasync"; +import { awaitSync, deasync } from "@kaciras/deasync"; -// const sleep = deasync((timeout: number, callback: any) => { -// setTimeout(() => callback(null, "wake up!"), timeout); -// }); +const sleep = deasync((timeout: number, callback: any) => { + setTimeout(() => callback(null, "wake up!"), timeout); +}); -// async function sleep3(timeout: number, callback: any) { -// setTimeout(() => callback(null, "wake up!"), timeout); -// } -// const sleep2 = deasync(sleep3); +async function sleep3(timeout: number, callback: any) { + setTimeout(() => callback(null, "wake up!"), timeout); +} +const sleep2 = deasync(sleep3); -// async function get_fake_lines(buffer: Buffer, callback: any) { -// callback(null, ["hello"]); -// } -// const get_fake_lines2 = deasync(get_fake_lines); +async function get_fake_lines(buffer: Buffer, callback: any) { + callback(null, ["hello"]); +} +const get_fake_lines2 = deasync(get_fake_lines); -// async function get_lines(buffer: Buffer, callback: any) { -// callback(null, await buffer.lines); -// } -// const get_lines2 = deasync(get_lines); +async function get_lines(buffer: Buffer, callback: any) { + callback(null, await buffer.lines); +} +const get_lines2 = deasync(get_lines); -// async function get_lines3(buffer: Buffer, callback: any) { -// callback(null, buffer.lines); -// } -// const get_lines4 = deasync(get_lines3); +async function get_lines3(buffer: Buffer, callback: any) { + callback(null, buffer.lines); +} +const get_lines4 = deasync(get_lines3); // ---------- @@ -86,14 +86,15 @@ export async function activate(context: NeovimExtensionContext) { // ---------- // @kaciras/deasync - // console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 - // console.warn(sleep(1000)); - // console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 - // const lines1 = await buffer.lines; // returned an array - // const lines2 = buffer.lines; // return a promise - // const lines3 = get_fake_lines2(buffer); // returns an array - // // const lines4 = get_lines2(buffer); // hangs / never returns - // const lines5 = get_lines4(buffer); // return a promise + console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 + console.warn(sleep(1000)); + console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 + const lines1 = await buffer.lines; // returned an array + const lines2 = buffer.lines; // return a promise + const lines3 = get_fake_lines2(buffer); // returns an array + // const lines4 = get_lines2(buffer); // hangs / never returns + const lines5 = get_lines4(buffer); // return a promise + // const lines6 = awaitSync(buffer.lines); // hangs / never returns // ---------- // const lines = awaitSync(buffer.lines); // hangs From 4e78f4da5a55756ffabc4df04f2204a8a28a2597 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 22:55:19 +0000 Subject: [PATCH 042/504] testing deasync --- packages/cursorless-neovim/package.json | 4 +- packages/cursorless-neovim/src/extension.ts | 92 ++++++++++----------- pnpm-lock.yaml | 33 ++++++++ 3 files changed, 82 insertions(+), 47 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 39c503035a..b66e8449ba 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@kaciras/deasync --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@kaciras/deasync --external:deasync --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -28,11 +28,13 @@ "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", "@kaciras/deasync": "1.0.3", + "deasync": "0.1.29", "lodash": "^4.17.21", "neovim": "5.0.1", "vscode-uri": "3.0.6" }, "devDependencies": { + "@types/deasync": "0.1.5", "@types/lodash": "4.14.181", "@types/uuid": "8.3.4", "@types/vscode": "1.66.0" diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index b0643de187..f39061bad8 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -27,48 +27,48 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { Buffer } from "neovim"; // import { callbackify } from "node:util"; -// import * as deasync from "deasync"; +import deasync from "deasync"; // function awaitSync(promise: Promise): T { // return deasync(callbackify(() => promise))(); // } -// function asyncFn( -// p: string, -// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -// ) { -// const res = "hello " + p; -// const err = null; -// return cb && cb(err, res); -// } +function asyncFn( + p: string, + cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +) { + const res = "hello " + p; + const err = null; + return cb && cb(err, res); +} // ---------- -import { awaitSync, deasync } from "@kaciras/deasync"; +// import { awaitSync, deasync } from "@kaciras/deasync"; -const sleep = deasync((timeout: number, callback: any) => { - setTimeout(() => callback(null, "wake up!"), timeout); -}); +// const sleep = deasync((timeout: number, callback: any) => { +// setTimeout(() => callback(null, "wake up!"), timeout); +// }); -async function sleep3(timeout: number, callback: any) { - setTimeout(() => callback(null, "wake up!"), timeout); -} -const sleep2 = deasync(sleep3); +// async function sleep3(timeout: number, callback: any) { +// setTimeout(() => callback(null, "wake up!"), timeout); +// } +// const sleep2 = deasync(sleep3); -async function get_fake_lines(buffer: Buffer, callback: any) { - callback(null, ["hello"]); -} -const get_fake_lines2 = deasync(get_fake_lines); +// async function get_fake_lines(buffer: Buffer, callback: any) { +// callback(null, ["hello"]); +// } +// const get_fake_lines2 = deasync(get_fake_lines); -async function get_lines(buffer: Buffer, callback: any) { - callback(null, await buffer.lines); -} -const get_lines2 = deasync(get_lines); +// async function get_lines(buffer: Buffer, callback: any) { +// callback(null, await buffer.lines); +// } +// const get_lines2 = deasync(get_lines); -async function get_lines3(buffer: Buffer, callback: any) { - callback(null, buffer.lines); -} -const get_lines4 = deasync(get_lines3); +// async function get_lines3(buffer: Buffer, callback: any) { +// callback(null, buffer.lines); +// } +// const get_lines4 = deasync(get_lines3); // ---------- @@ -86,29 +86,29 @@ export async function activate(context: NeovimExtensionContext) { // ---------- // @kaciras/deasync - console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 - console.warn(sleep(1000)); - console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 - const lines1 = await buffer.lines; // returned an array - const lines2 = buffer.lines; // return a promise - const lines3 = get_fake_lines2(buffer); // returns an array - // const lines4 = get_lines2(buffer); // hangs / never returns - const lines5 = get_lines4(buffer); // return a promise - // const lines6 = awaitSync(buffer.lines); // hangs / never returns + // console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 + // console.warn(sleep(1000)); + // console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 + // const lines1 = await buffer.lines; // returned an array + // const lines2 = buffer.lines; // return a promise + // const lines3 = get_fake_lines2(buffer); // returns an array + // // const lines4 = get_lines2(buffer); // hangs / never returns + // const lines5 = get_lines4(buffer); // return a promise + // // const lines6 = awaitSync(buffer.lines); // hangs / never returns // ---------- // const lines = awaitSync(buffer.lines); // hangs // const lines3 = deasync(callbackify(() => client.buffer.lines); - // /** Use as async */ - // asyncFn("async world", (err: any, res: any) => { - // console.warn("asyncFn callback:", res); - // }); + /** Use as async */ + asyncFn("async world", (err: any, res: any) => { + console.warn("asyncFn callback:", res); + }); // "asyncFn callback: hello async world" - // /** Use as sync! */ - // const syncFn = deasync(asyncFn); - // const result = syncFn("sync world"); - // console.log("syncFn result:", result); + /** Use as sync! */ + const syncFn = deasync(asyncFn); + const result = syncFn("sync world"); // "hello sync world" + console.warn("syncFn result:", result); // "syncFn result: hello sync world" // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e366cd467a..f13a2f9897 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,9 @@ importers: '@kaciras/deasync': specifier: 1.0.3 version: 1.0.3 + deasync: + specifier: 0.1.29 + version: 0.1.29 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -318,6 +321,9 @@ importers: specifier: 3.0.6 version: 3.0.6 devDependencies: + '@types/deasync': + specifier: 0.1.5 + version: 0.1.5 '@types/lodash': specifier: 4.14.181 version: 4.14.181 @@ -4909,6 +4915,10 @@ packages: dependencies: '@types/node': 18.18.9 + /@types/deasync@0.1.5: + resolution: {integrity: sha512-mLov/tw+fOX4ZsrT9xuHOJv8xToOpNsp6W4gp8VDHy2qniJ58izyOzHlisnz5r8HdZ+WItDHtANWZy/W0JEJwg==} + dev: true + /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: @@ -6253,6 +6263,12 @@ packages: resolution: {integrity: sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==} engines: {node: '>=0.8'} + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: false + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -7415,6 +7431,15 @@ packages: /dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + /deasync@0.1.29: + resolution: {integrity: sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==} + engines: {node: '>=0.11.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + node-addon-api: 1.7.2 + dev: false + /debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: false @@ -8695,6 +8720,10 @@ packages: webpack: 5.89.0(esbuild@0.17.11)(webpack-cli@5.1.4) dev: false + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -12366,6 +12395,10 @@ packages: lower-case: 2.0.2 tslib: 2.6.2 + /node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + dev: false + /node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} From aabc408175c6f897fedf5ccef34b530f68c32326 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 23:14:26 +0000 Subject: [PATCH 043/504] testing more --- packages/cursorless-neovim/src/extension.ts | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index f39061bad8..0b195fcf0a 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -42,6 +42,24 @@ function asyncFn( return cb && cb(err, res); } +function asyncFn2( + buffer: Buffer, + cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +) { + const res = buffer.lines; + const err = null; + return cb && cb(err, res); +} + +async function asyncFn3( + buffer: Buffer, + cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +) { + const res = await buffer.lines; + const err = null; + return cb && cb(err, res); +} + // ---------- // import { awaitSync, deasync } from "@kaciras/deasync"; @@ -110,6 +128,24 @@ export async function activate(context: NeovimExtensionContext) { const result = syncFn("sync world"); // "hello sync world" console.warn("syncFn result:", result); // "syncFn result: hello sync world" + /** Use as async */ + const lines7 = asyncFn2(buffer, (err: any, res: any) => { + return res; + }); // returns a promise (pending) + + /** Use as sync! */ + const syncFn2 = deasync(asyncFn2); + const lines8 = syncFn2(buffer); // returns a promise (pending) + + /** Use as async */ + const lines9 = asyncFn3(buffer, (err: any, res: any) => { + return res; + }); // returns a promise (pending) + + /** Use as sync! */ + const syncFn3 = deasync(asyncFn3); + // const lines10 = syncFn3(buffer); // hangs/never returns + // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); From 99d4031954899763799d908a917c58e2265b9fc8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 23:26:50 +0000 Subject: [PATCH 044/504] more tests --- packages/cursorless-neovim/src/extension.ts | 126 +++++++++++--------- 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 0b195fcf0a..b244015275 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -26,39 +26,36 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { Buffer } from "neovim"; -// import { callbackify } from "node:util"; -import deasync from "deasync"; +// ---------- -// function awaitSync(promise: Promise): T { -// return deasync(callbackify(() => promise))(); -// } +// import deasync from "deasync"; -function asyncFn( - p: string, - cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -) { - const res = "hello " + p; - const err = null; - return cb && cb(err, res); -} +// function asyncFn( +// p: string, +// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +// ) { +// const res = "hello " + p; +// const err = null; +// return cb && cb(err, res); +// } -function asyncFn2( - buffer: Buffer, - cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -) { - const res = buffer.lines; - const err = null; - return cb && cb(err, res); -} +// function asyncFn2( +// buffer: Buffer, +// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +// ) { +// const res = buffer.lines; +// const err = null; +// return cb && cb(err, res); +// } -async function asyncFn3( - buffer: Buffer, - cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -) { - const res = await buffer.lines; - const err = null; - return cb && cb(err, res); -} +// async function asyncFn3( +// buffer: Buffer, +// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, +// ) { +// const res = await buffer.lines; +// const err = null; +// return cb && cb(err, res); +// } // ---------- @@ -90,6 +87,17 @@ async function asyncFn3( // ---------- +import { callbackify } from "node:util"; +import deasync from "deasync"; + +function myAwaitSync(promise: Promise): T { + return deasync(callbackify(() => promise))(); +} + +function getLinesSync(buffer: Buffer): string[] { + return deasync(callbackify(() => buffer.lines))(); +} + /** * Simulates the extension entrypoint to match cursorless-vscode */ @@ -115,36 +123,38 @@ export async function activate(context: NeovimExtensionContext) { // // const lines6 = awaitSync(buffer.lines); // hangs / never returns // ---------- - // const lines = awaitSync(buffer.lines); // hangs - // const lines3 = deasync(callbackify(() => client.buffer.lines); - - /** Use as async */ - asyncFn("async world", (err: any, res: any) => { - console.warn("asyncFn callback:", res); - }); // "asyncFn callback: hello async world" - - /** Use as sync! */ - const syncFn = deasync(asyncFn); - const result = syncFn("sync world"); // "hello sync world" - console.warn("syncFn result:", result); // "syncFn result: hello sync world" - - /** Use as async */ - const lines7 = asyncFn2(buffer, (err: any, res: any) => { - return res; - }); // returns a promise (pending) - - /** Use as sync! */ - const syncFn2 = deasync(asyncFn2); - const lines8 = syncFn2(buffer); // returns a promise (pending) - - /** Use as async */ - const lines9 = asyncFn3(buffer, (err: any, res: any) => { - return res; - }); // returns a promise (pending) + // ---------- + // /** Use as async */ + // asyncFn("async world", (err: any, res: any) => { + // console.warn("asyncFn callback:", res); + // }); // "asyncFn callback: hello async world" + + // /** Use as sync! */ + // const syncFn = deasync(asyncFn); + // const result = syncFn("sync world"); // "hello sync world" + // console.warn("syncFn result:", result); // "syncFn result: hello sync world" + + // /** Use as async */ + // const lines7 = asyncFn2(buffer, (err: any, res: any) => { + // return res; + // }); // returns a promise (pending) + + // /** Use as sync! */ + // const syncFn2 = deasync(asyncFn2); + // const lines8 = syncFn2(buffer); // returns a promise (pending) + + // /** Use as async */ + // const lines9 = asyncFn3(buffer, (err: any, res: any) => { + // return res; + // }); // returns a promise (pending) + + // /** Use as sync! */ + // const syncFn3 = deasync(asyncFn3); + // // const lines10 = syncFn3(buffer); // hangs/never returns + // ---------- - /** Use as sync! */ - const syncFn3 = deasync(asyncFn3); - // const lines10 = syncFn3(buffer); // hangs/never returns + // const lines11 = getLinesSync(buffer); // hangs/never returns + // const lines12 = myAwaitSync(buffer.lines); // hangs/never returns // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); From fc1da8a26a78763b33e027106f31a537f2ce9696 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 12 Mar 2024 23:36:06 +0000 Subject: [PATCH 045/504] even more tests --- packages/cursorless-neovim/src/extension.ts | 52 +++++++++++++++++---- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index b244015275..85e9edbde8 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -87,16 +87,46 @@ import { Buffer } from "neovim"; // ---------- -import { callbackify } from "node:util"; -import deasync from "deasync"; +// import { callbackify } from "node:util"; +// import deasync from "deasync"; -function myAwaitSync(promise: Promise): T { - return deasync(callbackify(() => promise))(); -} +// function myAwaitSync(promise: Promise): T { +// return deasync(callbackify(() => promise))(); +// } -function getLinesSync(buffer: Buffer): string[] { - return deasync(callbackify(() => buffer.lines))(); -} +// function getLinesSync(buffer: Buffer): string[] { +// return deasync(callbackify(() => buffer.lines))(); +// } + +// ---------- + +// // https://github.com/jakwuh/deasync-promise/blob/master/index.js +// import { runLoopOnce } from "deasync"; + +// function MyDeasync(promise: Promise) { +// let result, +// error, +// done = false; +// promise +// .then( +// function (res) { +// result = res; +// }, +// function (err) { +// error = err; +// }, +// ) +// .then(function () { +// done = true; +// }); +// while (!done) { +// runLoopOnce(); +// } +// if (error) { +// throw error; +// } +// return result; +// } /** * Simulates the extension entrypoint to match cursorless-vscode @@ -153,8 +183,14 @@ export async function activate(context: NeovimExtensionContext) { // // const lines10 = syncFn3(buffer); // hangs/never returns // ---------- + // ---------- // const lines11 = getLinesSync(buffer); // hangs/never returns // const lines12 = myAwaitSync(buffer.lines); // hangs/never returns + // ---------- + + // ---------- + // const lines13 = MyDeasync(buffer.lines); // hangs/never returns + // ---------- // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); From 053d2213f9b6bcb07a28014c709c62f11050752c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:37:37 +0000 Subject: [PATCH 046/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/extension.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 85e9edbde8..6882c88105 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,8 +24,6 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; -import { Buffer } from "neovim"; - // ---------- // import deasync from "deasync"; From 5e9cadb9b5d74090098e6d5e1ccf441b92be7292 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 14 Mar 2024 12:10:07 +0000 Subject: [PATCH 047/504] commented import --- packages/cursorless-neovim/src/extension.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 6882c88105..f6ab55e84a 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,6 +24,8 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; +// import { Buffer } from "neovim"; + // ---------- // import deasync from "deasync"; From 94a02452a5fc691e6b02ff786a012055a9078cf7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 14 Mar 2024 12:14:20 +0000 Subject: [PATCH 048/504] delete the deasync tests --- packages/cursorless-neovim/src/extension.ts | 156 -------------------- 1 file changed, 156 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index f6ab55e84a..ae5975a88d 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,110 +24,6 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; -// import { Buffer } from "neovim"; - -// ---------- - -// import deasync from "deasync"; - -// function asyncFn( -// p: string, -// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -// ) { -// const res = "hello " + p; -// const err = null; -// return cb && cb(err, res); -// } - -// function asyncFn2( -// buffer: Buffer, -// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -// ) { -// const res = buffer.lines; -// const err = null; -// return cb && cb(err, res); -// } - -// async function asyncFn3( -// buffer: Buffer, -// cb: { (err: any, res: any): void; (arg0: null, arg1: string): any }, -// ) { -// const res = await buffer.lines; -// const err = null; -// return cb && cb(err, res); -// } - -// ---------- - -// import { awaitSync, deasync } from "@kaciras/deasync"; - -// const sleep = deasync((timeout: number, callback: any) => { -// setTimeout(() => callback(null, "wake up!"), timeout); -// }); - -// async function sleep3(timeout: number, callback: any) { -// setTimeout(() => callback(null, "wake up!"), timeout); -// } -// const sleep2 = deasync(sleep3); - -// async function get_fake_lines(buffer: Buffer, callback: any) { -// callback(null, ["hello"]); -// } -// const get_fake_lines2 = deasync(get_fake_lines); - -// async function get_lines(buffer: Buffer, callback: any) { -// callback(null, await buffer.lines); -// } -// const get_lines2 = deasync(get_lines); - -// async function get_lines3(buffer: Buffer, callback: any) { -// callback(null, buffer.lines); -// } -// const get_lines4 = deasync(get_lines3); - -// ---------- - -// import { callbackify } from "node:util"; -// import deasync from "deasync"; - -// function myAwaitSync(promise: Promise): T { -// return deasync(callbackify(() => promise))(); -// } - -// function getLinesSync(buffer: Buffer): string[] { -// return deasync(callbackify(() => buffer.lines))(); -// } - -// ---------- - -// // https://github.com/jakwuh/deasync-promise/blob/master/index.js -// import { runLoopOnce } from "deasync"; - -// function MyDeasync(promise: Promise) { -// let result, -// error, -// done = false; -// promise -// .then( -// function (res) { -// result = res; -// }, -// function (err) { -// error = err; -// }, -// ) -// .then(function () { -// done = true; -// }); -// while (!done) { -// runLoopOnce(); -// } -// if (error) { -// throw error; -// } -// return result; -// } - /** * Simulates the extension entrypoint to match cursorless-vscode */ @@ -140,58 +36,6 @@ export async function activate(context: NeovimExtensionContext) { const bufmgr = new BufferManager(context); injectBufferManager(bufmgr); - // ---------- - // @kaciras/deasync - // console.warn("Timestamp before: " + performance.now()); // Timestamp before: 8993.982 - // console.warn(sleep(1000)); - // console.warn("Timestamp after: " + performance.now()); // Timestamp after: 10008.3358 - // const lines1 = await buffer.lines; // returned an array - // const lines2 = buffer.lines; // return a promise - // const lines3 = get_fake_lines2(buffer); // returns an array - // // const lines4 = get_lines2(buffer); // hangs / never returns - // const lines5 = get_lines4(buffer); // return a promise - // // const lines6 = awaitSync(buffer.lines); // hangs / never returns - // ---------- - - // ---------- - // /** Use as async */ - // asyncFn("async world", (err: any, res: any) => { - // console.warn("asyncFn callback:", res); - // }); // "asyncFn callback: hello async world" - - // /** Use as sync! */ - // const syncFn = deasync(asyncFn); - // const result = syncFn("sync world"); // "hello sync world" - // console.warn("syncFn result:", result); // "syncFn result: hello sync world" - - // /** Use as async */ - // const lines7 = asyncFn2(buffer, (err: any, res: any) => { - // return res; - // }); // returns a promise (pending) - - // /** Use as sync! */ - // const syncFn2 = deasync(asyncFn2); - // const lines8 = syncFn2(buffer); // returns a promise (pending) - - // /** Use as async */ - // const lines9 = asyncFn3(buffer, (err: any, res: any) => { - // return res; - // }); // returns a promise (pending) - - // /** Use as sync! */ - // const syncFn3 = deasync(asyncFn3); - // // const lines10 = syncFn3(buffer); // hangs/never returns - // ---------- - - // ---------- - // const lines11 = getLinesSync(buffer); // hangs/never returns - // const lines12 = myAwaitSync(buffer.lines); // hangs/never returns - // ---------- - - // ---------- - // const lines13 = MyDeasync(buffer.lines); // hangs/never returns - // ---------- - // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); From 73a7e2e4293fdbf66a11a75863343a7f61e9147a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 14 Mar 2024 23:18:11 +0000 Subject: [PATCH 049/504] initial changes to use InMemory document / editor --- packages/cursorless-neovim/src/extension.ts | 36 +- .../ide/neovim/InMemoryTextDocumentImpl.ts | 357 ++++++++++++++++++ .../src/ide/neovim/InMemoryTextEditorImpl.ts | 254 +++++++++++++ .../src/ide/neovim/InMemoryTextLineImpl.ts | 46 +++ .../src/ide/neovim/NeovimIDE.ts | 115 +++--- .../cursorless-neovim/src/registerCommands.ts | 25 ++ .../src/singletons/ide.singleton.ts | 32 ++ .../src/types/BufferManager.ts | 2 +- 8 files changed, 802 insertions(+), 65 deletions(-) create mode 100644 packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts create mode 100644 packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts create mode 100644 packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts create mode 100644 packages/cursorless-neovim/src/singletons/ide.singleton.ts diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index ae5975a88d..bf3531a0e4 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -23,6 +23,8 @@ import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; +import { injectIde as injectIde2 } from "./singletons/ide.singleton"; +import { updateTextEditor } from "./registerCommands"; /** * Simulates the extension entrypoint to match cursorless-vscode @@ -40,21 +42,10 @@ export async function activate(context: NeovimExtensionContext) { // const parseTreeApi = await getParseTreeApi(); const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); + injectIde2(neovimIDE); // TODO: this is duplicating what Cursorless engine does but for NeovimIDE - // Hack for now - // We only initialize one editor(current window) with existing documents(open files i.e. buffers) - // TODO: we need to support updating editors and documents on the fly - - // initialize the editor - neovimIDE.fromNeovimEditor(await client.window); - - // initialize the documents - const buffers = await client.buffers; - buffers.forEach((buf) => { - console.warn("creating document for buffer: ", buf.id); - const document = new NeovimTextDocumentImpl(buf); - bufmgr.textDocumentToBufferId.set(document, buf.id); - }); + // initialize the editor since it is needed before we can attach? + // updateTextEditor(); /** * "attach" to Nvim buffers to subscribe to buffer update events. @@ -62,14 +53,15 @@ export async function activate(context: NeovimExtensionContext) { * * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() */ - buffers.forEach( - /* async */ (buf) => { - console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", receivedBufferEvent); - // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function - // await buf[ATTACH](true); - }, - ); + // const buffers = await client.buffers; + // buffers.forEach( + // /* async */ (buf) => { + // console.warn("listening for changes in buffer: ", buf.id); + // buf.listen("lines", receivedBufferEvent); + // // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function + // // await buf[ATTACH](true); + // }, + // ); const normalizedIde = neovimIDE.runMode === "production" diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts new file mode 100644 index 0000000000..0bc986438b --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts @@ -0,0 +1,357 @@ +import { + EndOfLine, + Position, + Range, + TextDocument, + TextLine, +} from "@cursorless/common"; +// import { +// fromVscodeEndOfLine, +// fromVscodePosition, +// toVscodePosition, +// toVscodeRange, +// } from "@cursorless/vscode-common"; +// import * as vscode from "vscode"; +import { URI } from "vscode-uri"; +// import { +// fromVscodePosition, +// toVscodePosition, +// toVscodeRange, +// } from "../../vscodeUtil"; +import InMemoryTextLineImpl from "./InMemoryTextLineImpl"; + +export class InMemoryTextDocumentImpl implements TextDocument { + private _uri: URI; + private _languageId: string; + private _version: number; + private _lineCount: number; + private _eol: string; + + private _lines: string[]; + private _lineStarts: PrefixSumComputer | null; + private _cachedTextValue: string | null; + + get uri(): URI { + return this._uri; + } + + get languageId(): string { + return this._languageId; + } + + get version(): number { + return this._version; + } + + get lineCount(): number { + return this._lineCount; + } + + get range(): Range { + // TODO: use vscode implementation or josh's? + // const { end } = this.lineAt(this.lineCount - 1).range; + // return new Range(0, 0, end.line, end.character); + return new Range( + 0, + 0, + this._lines.length, + this._lines[this._lines.length - 1].length, + ); + } + + get eol(): EndOfLine { + return this._eol === "\n" ? "LF" : "CRLF"; + } + + constructor( + uri: URI, // URI.parse(`neovim://${id}`); + languageId: string, // "plaintext"; // TODO: update + version: number, // 1 + eol: string, // "\n"; // TODO: update + lines: string[], + ) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._lineCount = lines.length; // TODO: update + this._eol = eol; + this._lines = lines; + + this._lineStarts = null; + this._cachedTextValue = null; + } + + public lineAt(lineOrPosition: number | Position): TextLine { + let line: number | undefined; + if (lineOrPosition instanceof Position) { + line = lineOrPosition.line; + } else if (typeof lineOrPosition === "number") { + line = lineOrPosition; + } + + if ( + typeof line !== "number" || + line < 0 || + line >= this._lines.length || + Math.floor(line) !== line + ) { + throw new Error("Illegal value for `line`"); + } + + return new InMemoryTextLineImpl( + line, + this._lines[line], + line === this._lines.length - 1, + ); + } + + public offsetAt(position: Position): number { + position = this._validatePosition(position); + this._ensureLineStarts(); + return ( + this._lineStarts!.getPrefixSum(position.line - 1) + position.character + ); + } + + public positionAt(offset: number): Position { + offset = Math.floor(offset); + offset = Math.max(0, offset); + + this._ensureLineStarts(); + const out = this._lineStarts!.getIndexOf(offset); + + const lineLength = this._lines[out.index].length; + + // Ensure we return a valid position + return new Position(out.index, Math.min(out.remainder, lineLength)); + } + + public getText(range?: Range): string { + if (range === undefined) { + if (this._cachedTextValue == null) { + this._cachedTextValue = this._lines.join(this._eol); + } + return this._cachedTextValue; + } + + range = this._validateRange(range); + + if (range.isEmpty) { + return ""; + } + + if (range.isSingleLine) { + return this._lines[range.start.line].substring( + range.start.character, + range.end.character, + ); + } + + const lineEnding = this._eol, + startLineIndex = range.start.line, + endLineIndex = range.end.line, + resultLines: string[] = []; + + resultLines.push( + this._lines[startLineIndex].substring(range.start.character), + ); + for (let i = startLineIndex + 1; i < endLineIndex; i++) { + resultLines.push(this._lines[i]); + } + resultLines.push( + this._lines[endLineIndex].substring(0, range.end.character), + ); + + return resultLines.join(lineEnding); + } + + // ---- range math + + private _validateRange(range: Range): Range { + if (!(range instanceof Range)) { + throw new Error("Invalid argument"); + } + + const start = this._validatePosition(range.start); + const end = this._validatePosition(range.end); + + if (start === range.start && end === range.end) { + return range; + } + return new Range(start.line, start.character, end.line, end.character); + } + + private _validatePosition(position: Position): Position { + if (!(position instanceof Position)) { + throw new Error("Invalid argument"); + } + + if (this._lines.length === 0) { + return position.with(0, 0); + } + + let { line, character } = position; + let hasChanged = false; + + if (line < 0) { + line = 0; + character = 0; + hasChanged = true; + } else if (line >= this._lines.length) { + line = this._lines.length - 1; + character = this._lines[line].length; + hasChanged = true; + } else { + const maxCharacter = this._lines[line].length; + if (character < 0) { + character = 0; + hasChanged = true; + } else if (character > maxCharacter) { + character = maxCharacter; + hasChanged = true; + } + } + + if (!hasChanged) { + return position; + } + return new Position(line, character); + } + + private _ensureLineStarts(): void { + if (!this._lineStarts) { + const eolLength = this._eol.length; + const linesLength = this._lines.length; + const lineStartValues = new Uint32Array(linesLength); + for (let i = 0; i < linesLength; i++) { + lineStartValues[i] = this._lines[i].length + eolLength; + } + this._lineStarts = new PrefixSumComputer(lineStartValues); + } + } +} + +// ---- math helpers + +export function toUint32(v: number): number { + if (v < 0) { + return 0; + } + const maxUint32 = 4294967295; // 2^32 - 1 + if (v > maxUint32) { + return maxUint32; + } + return v | 0; +} + +export class PrefixSumComputer { + /** + * values[i] is the value at index i + */ + private values: Uint32Array; + + /** + * prefixSum[i] = SUM(heights[j]), 0 <= j <= i + */ + private prefixSum: Uint32Array; + + /** + * prefixSum[i], 0 <= i <= prefixSumValidIndex can be trusted + */ + private readonly prefixSumValidIndex: Int32Array; + + constructor(values: Uint32Array) { + this.values = values; + this.prefixSum = new Uint32Array(values.length); + this.prefixSumValidIndex = new Int32Array(1); + this.prefixSumValidIndex[0] = -1; + } + + public getCount(): number { + return this.values.length; + } + + public getTotalSum(): number { + if (this.values.length === 0) { + return 0; + } + return this._getPrefixSum(this.values.length - 1); + } + + /** + * Returns the sum of the first `index + 1` many items. + * @returns `SUM(0 <= j <= index, values[j])`. + */ + public getPrefixSum(index: number): number { + if (index < 0) { + return 0; + } + + index = toUint32(index); + return this._getPrefixSum(index); + } + + private _getPrefixSum(index: number): number { + if (index <= this.prefixSumValidIndex[0]) { + return this.prefixSum[index]; + } + + let startIndex = this.prefixSumValidIndex[0] + 1; + if (startIndex === 0) { + this.prefixSum[0] = this.values[0]; + startIndex++; + } + + if (index >= this.values.length) { + index = this.values.length - 1; + } + + for (let i = startIndex; i <= index; i++) { + this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i]; + } + this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index); + return this.prefixSum[index]; + } + + public getIndexOf(sum: number): PrefixSumIndexOfResult { + sum = Math.floor(sum); + + // Compute all sums (to get a fully valid prefixSum) + this.getTotalSum(); + + let low = 0; + let high = this.values.length - 1; + let mid = 0; + let midStop = 0; + let midStart = 0; + + while (low <= high) { + mid = (low + (high - low) / 2) | 0; + + midStop = this.prefixSum[mid]; + midStart = midStop - this.values[mid]; + + if (sum < midStart) { + high = mid - 1; + } else if (sum >= midStop) { + low = mid + 1; + } else { + break; + } + } + + return new PrefixSumIndexOfResult(mid, sum - midStart); + } +} + +export class PrefixSumIndexOfResult { + _prefixSumIndexOfResultBrand: void = undefined; + + constructor( + public readonly index: number, + public readonly remainder: number, + ) { + this.index = index; + this.remainder = remainder; + } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts new file mode 100644 index 0000000000..a96c3f5eea --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -0,0 +1,254 @@ +import { + BreakpointDescriptor, + EditableTextEditor, + Position, + Range, + RevealLineAt, + Selection, + TextDocument, + TextEditor, + TextEditorEdit, + TextEditorOptions, +} from "@cursorless/common"; +// import { +// fromVscodeRange, +// fromVscodeSelection, +// toVscodePositionOrRange, +// toVscodeRange, +// toVscodeSelection, +// } from "@cursorless/vscode-common"; +// import * as vscode from "vscode"; +// import vscodeEdit from "./VscodeEdit"; +// import vscodeFocusEditor from "./VscodeFocusEditor"; +// import { vscodeFold, vscodeUnfold } from "./VscodeFold"; +import { NeovimIDE } from "./NeovimIDE"; +// import { vscodeInsertSnippet } from "./VscodeInsertSnippets"; +// import { +// vscodeEditNewNotebookCellAbove, +// vscodeEditNewNotebookCellBelow, +// } from "./VscodeNotebooks"; +// import vscodeOpenLink from "./VscodeOpenLink"; +// import { vscodeRevealLine } from "./VscodeRevealLine"; +import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; +import { Window } from "neovim"; +import { InMemoryTextDocumentImpl } from "./InMemoryTextDocumentImpl"; +import { URI } from "vscode-uri"; + +// import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; + +// XXX continue here + +export class InMemoryTextEditorImpl implements EditableTextEditor { + readonly document: TextDocument; + + constructor( + public readonly id: string, + private ide: NeovimIDE, + private editor: Window, + bufferId: number, + lines: string[], + ) { + // TODO: don't hardcode arguments + this.document = new InMemoryTextDocumentImpl( + URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), + "plaintext", + 1, + "\n", + lines, + ); + } + + // neovim terminology for editor is window + get neovimEditor(): Window { + return this.editor; + } + + get selections(): Selection[] { + return []; // TODO: update + // return this.editor.selections; + } + + set selections(selections: Selection[]) { + // this.editor.selections = selections.map(toVscodeSelection); + } + + get visibleRanges(): Range[] { + // TODO: the Window has visible range + return [new Range(0, 0, 10, 0)]; // TODO: update + // return this.editor.visibleRanges; + } + + get options(): TextEditorOptions { + return {}; // TODO: update + // return this.editor.options; + } + + set options(options: TextEditorOptions) { + // this.editor.options = options; + } + + get isActive(): boolean { + return true; + // return this.editor === vscode.window.activeTextEditor; + } + + public isEqual(other: TextEditor): boolean { + return this.id === other.id; + } + + public async revealRange(range: Range): Promise { + return Promise.resolve(); + // this.editor.revealRange(toVscodeRange(range)); + } + + public revealLine(lineNumber: number, at: RevealLineAt): Promise { + return Promise.resolve(); + // return vscodeRevealLine(this, lineNumber, at); + } + + public edit( + callback: (editBuilder: TextEditorEdit) => void, + options?: { undoStopBefore: boolean; undoStopAfter: boolean }, + ): Promise { + return Promise.resolve(false); + // return vscodeEdit(this.editor, callback, options); + } + + public focus(): Promise { + return Promise.resolve(); + // return vscodeFocusEditor(this.ide, this); + } + + public editNewNotebookCellAbove(): Promise< + (selection: Selection) => Selection + > { + return Promise.resolve((selection) => selection); + // return vscodeEditNewNotebookCellAbove(this); + } + + public editNewNotebookCellBelow(): Promise { + return Promise.resolve(); + // return vscodeEditNewNotebookCellBelow(this); + } + + public openLink(location?: Position | Range): Promise { + return Promise.resolve(false); + // return vscodeOpenLink( + // this, + // location != null ? toVscodePositionOrRange(location) : undefined, + // ); + } + + public fold(ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeFold(this.ide, this, ranges); + } + + public unfold(ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeUnfold(this.ide, this, ranges); + } + + public toggleBreakpoint(descriptors?: BreakpointDescriptor[]): Promise { + return Promise.resolve(); + // return vscodeToggleBreakpoint(this, descriptors); + } + + public async toggleLineComment(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.commentLine"); + } + + public async clipboardCopy(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.clipboardCopyAction"); + } + + public async clipboardPaste(_ranges?: Range[]): Promise { + return Promise.resolve(); + // We add these sleeps here to workaround a bug in VSCode. See #1521 + // await sleep(100); + // await vscode.commands.executeCommand("editor.action.clipboardPasteAction"); + // await sleep(100); + } + + public async indentLine(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.indentLines"); + } + + public async outdentLine(_ranges?: Range[]): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.outdentLines"); + } + + public async insertLineAfter(ranges?: Range[]): Promise { + return Promise.resolve(); + // if (ranges != null) { + // this.selections = ranges.map((range) => range.toSelection(false)); + // } + // await this.focus(); + // await vscode.commands.executeCommand("editor.action.insertLineAfter"); + } + + public insertSnippet(snippet: string, ranges?: Range[]): Promise { + return Promise.resolve(); + // return vscodeInsertSnippet(this, snippet, ranges); + } + + public async rename(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.rename"); + } + + public async showReferences(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("references-view.find"); + } + + public async quickFix(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.quickFix"); + // await sleep(100); + } + + public async revealDefinition(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.revealDefinition"); + } + + public async revealTypeDefinition(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.goToTypeDefinition"); + } + + public async showHover(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.action.showHover"); + } + + public async showDebugHover(_range?: Range): Promise { + return Promise.resolve(); + // await vscode.commands.executeCommand("editor.debug.action.showDebugHover"); + } + + public async extractVariable(_range?: Range): Promise { + return Promise.resolve(); + // if (this.document.languageId === "python") { + // // Workaround for https://github.com/microsoft/vscode-python/issues/20455 + // await vscode.commands.executeCommand("editor.action.codeAction", { + // kind: "refactor.extract", + // }); + // await sleep(250); + // await vscode.commands.executeCommand("selectNextCodeAction"); + // await vscode.commands.executeCommand("acceptSelectedCodeAction"); + // } else { + // await vscode.commands.executeCommand("editor.action.codeAction", { + // kind: "refactor.extract.constant", + // preferred: true, + // }); + // } + + // await sleep(250); + } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts new file mode 100644 index 0000000000..190eb31a62 --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts @@ -0,0 +1,46 @@ +import { Range, TextLine } from "@cursorless/common"; + +export default class InMemoryTextLineImpl implements TextLine { + private readonly _lineNumber: number; + private readonly _text: string; + private readonly _isLastLine: boolean; + + constructor(lineNumber: number, text: string, isLastLine: boolean) { + this._lineNumber = lineNumber; + this._text = text; + this._isLastLine = isLastLine; + } + + get lineNumber(): number { + return this._lineNumber; + } + + get text(): string { + return this._text; + } + + get range(): Range { + return new Range(this._lineNumber, 0, this._lineNumber, this._text.length); + } + + get rangeIncludingLineBreak(): Range { + if (this._isLastLine) { + return this.range; + } + return new Range(this._lineNumber, 0, this._lineNumber + 1, 0); + } + + get firstNonWhitespaceCharacterIndex(): number { + //TODO@api, rename to 'leadingWhitespaceLength' + return /^(\s*)/.exec(this._text)![1].length; + } + + get lastNonWhitespaceCharacterIndex(): number { + const all = this.text.match(/\S/g); + return all ? this.text.lastIndexOf(all[all.length - 1]) : 0; + } + + get isEmptyOrWhitespace(): boolean { + return this.firstNonWhitespaceCharacterIndex === this._text.length; + } +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 39238a3f70..a0c8fbd3d1 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -29,6 +29,7 @@ import NeovimMessages from "./NeovimMessages"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; import { Window } from "neovim"; +import { InMemoryTextEditorImpl } from "./InMemoryTextEditorImpl"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -37,11 +38,12 @@ export class NeovimIDE implements IDE { readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; public editorMap; // TODO: move to private? + private activeWindow: Window | undefined; + cursorlessVersion: string = "0.0.0"; // runMode: RunMode = "production"; runMode: RunMode = "development"; // enable debug logs // runMode: RunMode = "test"; - cursorlessVersion: string = "0.0.0"; workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; @@ -53,11 +55,16 @@ export class NeovimIDE implements IDE { this.messages = new NeovimMessages(); this.clipboard = new NeovimClipboard(); this.capabilities = new NeovimCapabilities(); - this.editorMap = new Map(); + // this.editorMap = new Map(); + this.editorMap = new Map(); + this.activeWindow = undefined; } - async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { - // empty + async showQuickPick( + _items: readonly string[], + _options?: QuickPickOptions, + ): Promise { + return this.quickPickReturnValue; } async setHighlightRanges( @@ -68,17 +75,8 @@ export class NeovimIDE implements IDE { // empty } - onDidOpenTextDocument: Event = dummyEvent; - onDidCloseTextDocument: Event = dummyEvent; - onDidChangeActiveTextEditor: Event = dummyEvent; - onDidChangeVisibleTextEditors: Event = dummyEvent; - onDidChangeTextEditorSelection: Event = - dummyEvent; - onDidChangeTextEditorVisibleRanges: Event = - dummyEvent; - - public mockAssetsRoot(_assetsRoot: string) { - this.assetsRoot_ = _assetsRoot; + async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { + // empty } get assetsRoot(): string { @@ -100,10 +98,13 @@ export class NeovimIDE implements IDE { } private getActiveTextEditor() { - return this.fromNeovimEditor(this.editorMap.keys().next().value); // TODO: update + return this.activeWindow && this.editorMap.has(this.activeWindow) + ? this.editorMap.get(this.activeWindow) + : undefined; } - get visibleTextEditors(): NeovimTextEditorImpl[] { + // get visibleTextEditors(): NeovimTextEditorImpl[] { + get visibleTextEditors(): InMemoryTextEditorImpl[] { return Array.from(this.editorMap.values()); // throw Error("visibleTextEditors Not implemented"); } @@ -131,17 +132,6 @@ export class NeovimIDE implements IDE { throw Error("openUntitledTextDocument Not implemented"); } - public setQuickPickReturnValue(value: string | undefined) { - this.quickPickReturnValue = value; - } - - public async showQuickPick( - _items: readonly string[], - _options?: QuickPickOptions, - ): Promise { - return this.quickPickReturnValue; - } - public showInputBox(_options?: any): Promise { throw Error("TextDocumentChangeEvent Not implemented"); } @@ -150,32 +140,73 @@ export class NeovimIDE implements IDE { throw new Error("executeCommand Method not implemented."); } - public onDidChangeTextDocument( - listener: (event: TextDocumentChangeEvent) => void, - ): Disposable { - // console.warn("onDidChangeTextDocument Not implemented"); - // throw Error("onDidChangeTextDocument Not implemented"); - return neovimOnDidChangeTextDocument(listener); - } + onDidChangeTextDocument: Event = dummyEvent; + // TODO: code below was tested successfully so can be reenabled when needed + // public onDidChangeTextDocument( + // listener: (event: TextDocumentChangeEvent) => void, + // ): Disposable { + // // console.warn("onDidChangeTextDocument Not implemented"); + // // throw Error("onDidChangeTextDocument Not implemented"); + // return neovimOnDidChangeTextDocument(listener); + // } + + onDidOpenTextDocument: Event = dummyEvent; + onDidCloseTextDocument: Event = dummyEvent; + onDidChangeActiveTextEditor: Event = dummyEvent; + onDidChangeVisibleTextEditors: Event = dummyEvent; + onDidChangeTextEditorSelection: Event = + dummyEvent; + onDidChangeTextEditorVisibleRanges: Event = + dummyEvent; - public fromNeovimEditor(editor: Window): NeovimTextEditorImpl { + // public mockAssetsRoot(_assetsRoot: string) { + // this.assetsRoot_ = _assetsRoot; + // } + + // public setQuickPickReturnValue(value: string | undefined) { + // this.quickPickReturnValue = value; + // } + + // public fromNeovimEditor(editor: Window): NeovimTextEditorImpl { + // if (!this.editorMap.has(editor)) { + // const impl = new NeovimTextEditorImpl(uuid(), this, editor); + // impl.initialize(); + // this.editorMap.set(editor, impl); + // } + // return this.editorMap.get(editor)!; + // } + + fromNeovimEditor( + editor: Window, + bufferId: number, + lines: string[], + ): InMemoryTextEditorImpl { if (!this.editorMap.has(editor)) { - const impl = new NeovimTextEditorImpl(uuid(), this, editor); - impl.initialize(); - this.editorMap.set(editor, impl); + this.toNeovimEditor(editor, bufferId, lines); } return this.editorMap.get(editor)!; } + toNeovimEditor(editor: Window, bufferId: number, lines: string[]): void { + const impl = new InMemoryTextEditorImpl( + uuid(), + this, + editor, + bufferId, + lines, + ); + this.editorMap.set(editor, impl); + } + disposeOnExit(...disposables: Disposable[]): () => void { this.disposables.push(...disposables); return () => pull(this.disposables, ...disposables); } - exit(): void { - this.disposables.forEach((disposable) => disposable.dispose()); - } + // exit(): void { + // this.disposables.forEach((disposable) => disposable.dispose()); + // } } function dummyEvent() { diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 75792ecc49..cf30131406 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,5 +1,11 @@ import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; +import { neovimContext } from "./singletons/context.singleton"; +import { ide } from "./singletons/ide.singleton"; +import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; +import { bufferManager } from "./singletons/bufmgr.singleton"; +import { InMemoryTextDocument } from "./types/text_document"; +import { URI } from "vscode-uri"; // import { // CommandApi, // TestCaseRecorder, @@ -15,6 +21,24 @@ import { commandApi } from "./singletons/cmdapi.singleton"; // import { KeyboardCommands } from "./keyboard/KeyboardCommands"; // import { logQuickActions } from "./logQuickActions"; +/** + * Initialize the current editor (and current document). + * We always overwrite the current editor from scratch for now + * because we reinitialize it for every command we receive + * + * TODO: We only initialize one editor(current window) with one document(current buffer) + * we need to support updating editors and documents on the fly + */ +export async function updateTextEditor() { + const client = neovimContext().client; + const window = await client.window; + const buffer = await window.buffer; + console.warn( + `creating editor/document for window:${window.id} buffer:${buffer.id}`, + ); + ide().toNeovimEditor(window, buffer.id, await buffer.lines); +} + // export function registerCommands( // extensionContext: vscode.ExtensionContext, // vscodeIde: VscodeIDE, @@ -33,6 +57,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { // try { + updateTextEditor(); const result = await commandApi().runCommandSafe(...args); // const result = ["hello world"]; // simulate the result of "bring " return result; diff --git a/packages/cursorless-neovim/src/singletons/ide.singleton.ts b/packages/cursorless-neovim/src/singletons/ide.singleton.ts new file mode 100644 index 0000000000..6c2ca47ffc --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/ide.singleton.ts @@ -0,0 +1,32 @@ +// TODO: should we access the one from cursorless-engine instead? +// or pass it as an argument where it is needed? +import { NeovimIDE } from "../ide/neovim/NeovimIDE"; + +/** + * This is the `ide` singleton + */ +let ide_: NeovimIDE | undefined; + +/** + * Injects an {@link IDE} object that can be used to interact with the IDE. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param ide The ide to inject + */ +export function injectIde(ide: NeovimIDE | undefined) { + ide_ = ide; +} + +/** + * Gets the singleton used to interact with the IDE. + * @throws Error if the IDE hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The IDE object + */ +export function ide(): NeovimIDE { + if (ide_ == null) { + throw Error("Tried to access ide before it was injected"); + } + + return ide_; +} diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 6f87f04037..0a3f326a32 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -15,7 +15,7 @@ const BUFFER_SCHEME = "neovim"; // Integration notes: // 1. Each Cursorless "TextDocument" corresponds to a neovim "Buffer" // 2. Each Cursorless "TextEditor" corresponds to a neovim "Window" -// 3. Generally, an "TextEditor" corresponds to a "TextDocument", +// 3. Generally, a "TextEditor" corresponds to a "TextDocument", // so the "Buffer" and "Window" in neovim have a one-to-one relationship // 4. When visibleTextEditors change => create a "Buffer" and "Window" in neovim // 5. When activeTextEditor changes => set the current "Window" in neovim From bca04561d0ff834c0bea1a38ffa67ba14452f5c4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 14 Mar 2024 23:41:20 +0000 Subject: [PATCH 050/504] cleanup --- packages/cursorless-neovim/src/extension.ts | 2 +- .../ide/neovim/InMemoryTextDocumentImpl.ts | 22 +-- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 141 ++++-------------- .../src/ide/neovim/NeovimIDE.ts | 8 +- 4 files changed, 41 insertions(+), 132 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index bf3531a0e4..c04343fbf3 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -45,7 +45,7 @@ export async function activate(context: NeovimExtensionContext) { injectIde2(neovimIDE); // TODO: this is duplicating what Cursorless engine does but for NeovimIDE // initialize the editor since it is needed before we can attach? - // updateTextEditor(); + updateTextEditor(); /** * "attach" to Nvim buffers to subscribe to buffer update events. diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts index 0bc986438b..f880c7cbc7 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts @@ -5,19 +5,7 @@ import { TextDocument, TextLine, } from "@cursorless/common"; -// import { -// fromVscodeEndOfLine, -// fromVscodePosition, -// toVscodePosition, -// toVscodeRange, -// } from "@cursorless/vscode-common"; -// import * as vscode from "vscode"; import { URI } from "vscode-uri"; -// import { -// fromVscodePosition, -// toVscodePosition, -// toVscodeRange, -// } from "../../vscodeUtil"; import InMemoryTextLineImpl from "./InMemoryTextLineImpl"; export class InMemoryTextDocumentImpl implements TextDocument { @@ -64,16 +52,16 @@ export class InMemoryTextDocumentImpl implements TextDocument { } constructor( - uri: URI, // URI.parse(`neovim://${id}`); - languageId: string, // "plaintext"; // TODO: update - version: number, // 1 - eol: string, // "\n"; // TODO: update + uri: URI, + languageId: string, + version: number, + eol: string, lines: string[], ) { this._uri = uri; this._languageId = languageId; this._version = version; - this._lineCount = lines.length; // TODO: update + this._lineCount = lines.length; this._eol = eol; this._lines = lines; diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index a96c3f5eea..5bb767c415 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -10,34 +10,11 @@ import { TextEditorEdit, TextEditorOptions, } from "@cursorless/common"; -// import { -// fromVscodeRange, -// fromVscodeSelection, -// toVscodePositionOrRange, -// toVscodeRange, -// toVscodeSelection, -// } from "@cursorless/vscode-common"; -// import * as vscode from "vscode"; -// import vscodeEdit from "./VscodeEdit"; -// import vscodeFocusEditor from "./VscodeFocusEditor"; -// import { vscodeFold, vscodeUnfold } from "./VscodeFold"; import { NeovimIDE } from "./NeovimIDE"; -// import { vscodeInsertSnippet } from "./VscodeInsertSnippets"; -// import { -// vscodeEditNewNotebookCellAbove, -// vscodeEditNewNotebookCellBelow, -// } from "./VscodeNotebooks"; -// import vscodeOpenLink from "./VscodeOpenLink"; -// import { vscodeRevealLine } from "./VscodeRevealLine"; -import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { Window } from "neovim"; import { InMemoryTextDocumentImpl } from "./InMemoryTextDocumentImpl"; import { URI } from "vscode-uri"; -// import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; - -// XXX continue here - export class InMemoryTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; @@ -64,32 +41,27 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } get selections(): Selection[] { - return []; // TODO: update - // return this.editor.selections; + throw Error("get selections Not implemented"); } set selections(selections: Selection[]) { - // this.editor.selections = selections.map(toVscodeSelection); + throw Error("set selections Not implemented"); } get visibleRanges(): Range[] { - // TODO: the Window has visible range - return [new Range(0, 0, 10, 0)]; // TODO: update - // return this.editor.visibleRanges; + throw Error("visibleRanges Not implemented"); } get options(): TextEditorOptions { - return {}; // TODO: update - // return this.editor.options; + throw Error("get options Not implemented"); } set options(options: TextEditorOptions) { - // this.editor.options = options; + throw Error("set options Not implemented"); } get isActive(): boolean { - return true; - // return this.editor === vscode.window.activeTextEditor; + throw Error("isActive Not implemented"); } public isEqual(other: TextEditor): boolean { @@ -97,158 +69,107 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } public async revealRange(range: Range): Promise { - return Promise.resolve(); - // this.editor.revealRange(toVscodeRange(range)); + throw Error("revealRange Not implemented"); } public revealLine(lineNumber: number, at: RevealLineAt): Promise { - return Promise.resolve(); - // return vscodeRevealLine(this, lineNumber, at); + throw Error("revealLine Not implemented"); } public edit( callback: (editBuilder: TextEditorEdit) => void, options?: { undoStopBefore: boolean; undoStopAfter: boolean }, ): Promise { - return Promise.resolve(false); - // return vscodeEdit(this.editor, callback, options); + throw Error("edit Not implemented"); } public focus(): Promise { - return Promise.resolve(); - // return vscodeFocusEditor(this.ide, this); + throw Error("focus Not implemented"); } public editNewNotebookCellAbove(): Promise< (selection: Selection) => Selection > { - return Promise.resolve((selection) => selection); - // return vscodeEditNewNotebookCellAbove(this); + throw Error("editNewNotebookCellAbove Not implemented"); } public editNewNotebookCellBelow(): Promise { - return Promise.resolve(); - // return vscodeEditNewNotebookCellBelow(this); + throw Error("editNewNotebookCellBelow Not implemented"); } public openLink(location?: Position | Range): Promise { - return Promise.resolve(false); - // return vscodeOpenLink( - // this, - // location != null ? toVscodePositionOrRange(location) : undefined, - // ); + throw Error("openLink Not implemented"); } public fold(ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeFold(this.ide, this, ranges); + throw Error("fold Not implemented"); } public unfold(ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeUnfold(this.ide, this, ranges); + throw Error("unfold Not implemented"); } public toggleBreakpoint(descriptors?: BreakpointDescriptor[]): Promise { - return Promise.resolve(); - // return vscodeToggleBreakpoint(this, descriptors); + throw Error("toggleBreakpoint Not implemented"); } public async toggleLineComment(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.commentLine"); + throw Error("toggleLineComment Not implemented"); } public async clipboardCopy(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.clipboardCopyAction"); + throw Error("clipboardCopy Not implemented"); } public async clipboardPaste(_ranges?: Range[]): Promise { - return Promise.resolve(); - // We add these sleeps here to workaround a bug in VSCode. See #1521 - // await sleep(100); - // await vscode.commands.executeCommand("editor.action.clipboardPasteAction"); - // await sleep(100); + throw Error("clipboardPaste Not implemented"); } public async indentLine(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.indentLines"); + throw Error("indentLine Not implemented"); } public async outdentLine(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.outdentLines"); + throw Error("outdentLine Not implemented"); } public async insertLineAfter(ranges?: Range[]): Promise { - return Promise.resolve(); - // if (ranges != null) { - // this.selections = ranges.map((range) => range.toSelection(false)); - // } - // await this.focus(); - // await vscode.commands.executeCommand("editor.action.insertLineAfter"); + throw Error("insertLineAfter Not implemented"); } public insertSnippet(snippet: string, ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeInsertSnippet(this, snippet, ranges); + throw Error("insertSnippet Not implemented"); } public async rename(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.rename"); + throw Error("rename Not implemented"); } public async showReferences(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("references-view.find"); + throw Error("showReferences Not implemented"); } public async quickFix(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.quickFix"); - // await sleep(100); + throw Error("quickFix Not implemented"); } public async revealDefinition(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.revealDefinition"); + throw Error("revealDefinition Not implemented"); } public async revealTypeDefinition(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.goToTypeDefinition"); + throw Error("revealTypeDefinition Not implemented"); } public async showHover(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.showHover"); + throw Error("showHover Not implemented"); } public async showDebugHover(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.debug.action.showDebugHover"); + throw Error("showDebugHover Not implemented"); } public async extractVariable(_range?: Range): Promise { - return Promise.resolve(); - // if (this.document.languageId === "python") { - // // Workaround for https://github.com/microsoft/vscode-python/issues/20455 - // await vscode.commands.executeCommand("editor.action.codeAction", { - // kind: "refactor.extract", - // }); - // await sleep(250); - // await vscode.commands.executeCommand("selectNextCodeAction"); - // await vscode.commands.executeCommand("acceptSelectedCodeAction"); - // } else { - // await vscode.commands.executeCommand("editor.action.codeAction", { - // kind: "refactor.extract.constant", - // preferred: true, - // }); - // } - - // await sleep(250); + throw Error("extractVariable Not implemented"); } } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index a0c8fbd3d1..f3d4c3e883 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -64,7 +64,7 @@ export class NeovimIDE implements IDE { _items: readonly string[], _options?: QuickPickOptions, ): Promise { - return this.quickPickReturnValue; + throw Error("XXX Not implemented"); } async setHighlightRanges( @@ -72,11 +72,11 @@ export class NeovimIDE implements IDE { _editor: TextEditor, _ranges: GeneralizedRange[], ): Promise { - // empty + throw Error("XXX Not implemented"); } async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { - // empty + throw Error("XXX Not implemented"); } get assetsRoot(): string { @@ -103,7 +103,6 @@ export class NeovimIDE implements IDE { : undefined; } - // get visibleTextEditors(): NeovimTextEditorImpl[] { get visibleTextEditors(): InMemoryTextEditorImpl[] { return Array.from(this.editorMap.values()); // throw Error("visibleTextEditors Not implemented"); @@ -188,6 +187,7 @@ export class NeovimIDE implements IDE { } toNeovimEditor(editor: Window, bufferId: number, lines: string[]): void { + this.activeWindow = editor; const impl = new InMemoryTextEditorImpl( uuid(), this, From c7b3da2dd576c36a9d1bc06bf943695bf2e44069 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 15 Mar 2024 01:28:49 +0000 Subject: [PATCH 051/504] implement visible ranges for current window/buffer --- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 5 +- .../src/ide/neovim/NeovimIDE.ts | 34 ++++++++++--- .../cursorless-neovim/src/registerCommands.ts | 49 +++++++++++++++++-- 3 files changed, 75 insertions(+), 13 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index 5bb767c415..ec1d705d63 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -24,6 +24,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { private editor: Window, bufferId: number, lines: string[], + public visibleRanges: Range[], ) { // TODO: don't hardcode arguments this.document = new InMemoryTextDocumentImpl( @@ -48,10 +49,6 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { throw Error("set selections Not implemented"); } - get visibleRanges(): Range[] { - throw Error("visibleRanges Not implemented"); - } - get options(): TextEditorOptions { throw Error("get options Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index f3d4c3e883..3f5c6cf113 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -1,6 +1,6 @@ // adapted from packages\common\src\ide\fake\FakeIDE.ts // and packages\cursorless-vscode\src\ide\vscode\VscodeIDE.ts -import type { EditableTextEditor, TextEditor } from "@cursorless/common"; +import type { EditableTextEditor, Range, TextEditor } from "@cursorless/common"; import { GeneralizedRange } from "@cursorless/common"; import { TextDocument } from "@cursorless/common"; import type { TextDocumentChangeEvent } from "@cursorless/common"; @@ -64,7 +64,7 @@ export class NeovimIDE implements IDE { _items: readonly string[], _options?: QuickPickOptions, ): Promise { - throw Error("XXX Not implemented"); + throw Error("showQuickPick Not implemented"); } async setHighlightRanges( @@ -72,11 +72,26 @@ export class NeovimIDE implements IDE { _editor: TextEditor, _ranges: GeneralizedRange[], ): Promise { - throw Error("XXX Not implemented"); + throw Error("setHighlightRanges Not implemented"); } async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { - throw Error("XXX Not implemented"); + // TODO: find how to flash the target ranges (similar to vscode) + // we know we can do that with a "yank" vim operation but we want to do it for any cursorless operation + /* e.g. "bring row one" gives: + at NeovimIDE. (cursorless-neovim\out\index.cjs:44601:13) + at Generator.next () + at cursorless-neovim\out\index.cjs:63:61 + at new Promise () + at __async (cursorless-neovim\out\index.cjs:47:10) + at NeovimIDE.flashRanges (cursorless-neovim\out\index.cjs:44600:12) + at NormalizedIDE.flashRanges (cursorless-neovim\out\index.cjs:22910:26) + at NormalizedIDE.flashRanges (cursorless-neovim\out\index.cjs:23611:79) + at flashTargets (cursorless-neovim\out\index.cjs:38187:15) + at Bring.decorateTargets (cursorless-neovim\out\index.cjs:38318:7) + */ + // it is not mandatory to implement for now so we can just log a warning + console.warn("flashRanges Not implemented"); } get assetsRoot(): string { @@ -179,14 +194,20 @@ export class NeovimIDE implements IDE { editor: Window, bufferId: number, lines: string[], + visibleRanges: Range[], ): InMemoryTextEditorImpl { if (!this.editorMap.has(editor)) { - this.toNeovimEditor(editor, bufferId, lines); + this.toNeovimEditor(editor, bufferId, lines, visibleRanges); } return this.editorMap.get(editor)!; } - toNeovimEditor(editor: Window, bufferId: number, lines: string[]): void { + toNeovimEditor( + editor: Window, + bufferId: number, + lines: string[], + visibleRanges: Range[], + ): void { this.activeWindow = editor; const impl = new InMemoryTextEditorImpl( uuid(), @@ -194,6 +215,7 @@ export class NeovimIDE implements IDE { editor, bufferId, lines, + visibleRanges, ); this.editorMap.set(editor, impl); } diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index cf30131406..3bf2d4acee 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,11 +1,17 @@ -import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; +import { + CURSORLESS_COMMAND_ID, + CursorlessCommandId, + Position, + Range, +} from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; import { neovimContext } from "./singletons/context.singleton"; import { ide } from "./singletons/ide.singleton"; import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { bufferManager } from "./singletons/bufmgr.singleton"; -import { InMemoryTextDocument } from "./types/text_document"; import { URI } from "vscode-uri"; +import { NeovimClient } from "neovim/lib/api/client"; +import { Window } from "neovim/lib/api/Window"; // import { // CommandApi, // TestCaseRecorder, @@ -33,10 +39,47 @@ export async function updateTextEditor() { const client = neovimContext().client; const window = await client.window; const buffer = await window.buffer; + const lines = await buffer.lines; console.warn( `creating editor/document for window:${window.id} buffer:${buffer.id}`, ); - ide().toNeovimEditor(window, buffer.id, await buffer.lines); + // const result = await client.call("WindowGetVisibleLines", []); + const luaCode = ` + local ret = {vim.fn.line('w0'), vim.fn.line('w$')} + return ret +`; + const visibleRanges = await windowGetVisibleRanges(window, client, lines); + ide().toNeovimEditor(window, buffer.id, lines, visibleRanges); +} + +/** + * Get the current visible ranges in the window(editor) (vertically). + * This accounts only for vertical scrolling, and not for horizontal scrolling. + * TODO: support any window as atm only supports the current window + */ +async function windowGetVisibleRanges( + window: Window, + client: NeovimClient, + lines: string[], +): Promise { + // Get the first and last visible lines of the current window + // w0/w$ are indexed from 1, similarly to what is shown in neovim + const luaCode = ` + local ret = {vim.fn.line('w0'), vim.fn.line('w$')} + return ret +`; + const [firstLine, lastLine] = (await client.executeLua( + luaCode, + [], + )) as Array; + // we need to subtract 1 to get the correct 0-based line numbers + return [ + new Range( + new Position(firstLine - 1, 0), + // subtract -1 to the line length to get the correct 0-based column number + new Position(lastLine - 1, lines[lastLine].length - 1), + ), + ]; } // export function registerCommands( From 1502255901c5b7af71a81f08aa164844800a120f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 01:30:11 +0000 Subject: [PATCH 052/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/extension.ts | 3 +-- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 2 -- packages/cursorless-neovim/src/registerCommands.ts | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c04343fbf3..f04e163f35 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -19,9 +19,8 @@ import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; +import { BufferManager } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; -import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { injectIde as injectIde2 } from "./singletons/ide.singleton"; import { updateTextEditor } from "./registerCommands"; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 3f5c6cf113..f031dc197f 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -26,8 +26,6 @@ import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; -import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; import { Window } from "neovim"; import { InMemoryTextEditorImpl } from "./InMemoryTextEditorImpl"; diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 3bf2d4acee..e0e47ff787 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -7,9 +7,6 @@ import { import { commandApi } from "./singletons/cmdapi.singleton"; import { neovimContext } from "./singletons/context.singleton"; import { ide } from "./singletons/ide.singleton"; -import { NeovimTextDocumentImpl } from "./ide/neovim/NeovimTextDocumentImpl"; -import { bufferManager } from "./singletons/bufmgr.singleton"; -import { URI } from "vscode-uri"; import { NeovimClient } from "neovim/lib/api/client"; import { Window } from "neovim/lib/api/Window"; // import { From 78c30ed243f34eee3f2220a39f856b70c7059e75 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 15 Mar 2024 14:00:03 +0000 Subject: [PATCH 053/504] fix line index --- packages/cursorless-neovim/src/extension.ts | 2 +- .../cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 11 ++++++++--- packages/cursorless-neovim/src/registerCommands.ts | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c04343fbf3..a131ef4414 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -98,7 +98,7 @@ export async function activate(context: NeovimExtensionContext) { fileSystem, ); injectCommandApi(commandApi); - debugger; // NOTE: helps debugging + // debugger; // NOTE: helps debugging console.warn("activate(): Cursorless extension loaded"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 3f5c6cf113..0e93409d76 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -113,9 +113,14 @@ export class NeovimIDE implements IDE { } private getActiveTextEditor() { - return this.activeWindow && this.editorMap.has(this.activeWindow) - ? this.editorMap.get(this.activeWindow) - : undefined; + const editor = + this.activeWindow && this.editorMap.has(this.activeWindow) + ? this.editorMap.get(this.activeWindow) + : undefined; + if (editor === undefined) { + console.warn("getActiveTextEditor: editor is undefined"); + } + return editor; } get visibleTextEditors(): InMemoryTextEditorImpl[] { diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 3bf2d4acee..ef7d03f267 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -76,8 +76,8 @@ async function windowGetVisibleRanges( return [ new Range( new Position(firstLine - 1, 0), - // subtract -1 to the line length to get the correct 0-based column number - new Position(lastLine - 1, lines[lastLine].length - 1), + // subtract -1 to the line.length to get the correct 0-based column number + new Position(lastLine - 1, lines[lastLine - 1].length - 1), ), ]; } From 812e094d4f9089a3b6a922c01f9a73f876b468ac Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 15 Mar 2024 15:09:52 +0000 Subject: [PATCH 054/504] call lua code --- packages/cursorless-neovim/src/registerCommands.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index ef7d03f267..9638239b78 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -43,11 +43,6 @@ export async function updateTextEditor() { console.warn( `creating editor/document for window:${window.id} buffer:${buffer.id}`, ); - // const result = await client.call("WindowGetVisibleLines", []); - const luaCode = ` - local ret = {vim.fn.line('w0'), vim.fn.line('w$')} - return ret -`; const visibleRanges = await windowGetVisibleRanges(window, client, lines); ide().toNeovimEditor(window, buffer.id, lines, visibleRanges); } @@ -63,16 +58,13 @@ async function windowGetVisibleRanges( lines: string[], ): Promise { // Get the first and last visible lines of the current window - // w0/w$ are indexed from 1, similarly to what is shown in neovim - const luaCode = ` - local ret = {vim.fn.line('w0'), vim.fn.line('w$')} - return ret -`; + // Note they are indexed from 1, similarly to what is shown in neovim + const luaCode = "return WindowGetVisibleLines()"; const [firstLine, lastLine] = (await client.executeLua( luaCode, [], )) as Array; - // we need to subtract 1 to get the correct 0-based line numbers + // subtract 1 with the lines to get the correct 0-based line numbers return [ new Range( new Position(firstLine - 1, 0), From cb505c8f740d31115c9a0599405c7e998d9f62c0 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 15 Mar 2024 17:25:08 +0000 Subject: [PATCH 055/504] add support for cursor selection --- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 8 +- .../src/ide/neovim/NeovimIDE.ts | 12 ++- packages/cursorless-neovim/src/neovimUtil.ts | 73 +++++++++++++++++++ .../cursorless-neovim/src/registerCommands.ts | 32 +------- 4 files changed, 94 insertions(+), 31 deletions(-) create mode 100644 packages/cursorless-neovim/src/neovimUtil.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index ec1d705d63..14bdfe0851 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -17,6 +17,7 @@ import { URI } from "vscode-uri"; export class InMemoryTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; + private _selections: Selection[]; constructor( public readonly id: string, @@ -25,6 +26,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { bufferId: number, lines: string[], public visibleRanges: Range[], + selections: Selection[], ) { // TODO: don't hardcode arguments this.document = new InMemoryTextDocumentImpl( @@ -34,6 +36,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { "\n", lines, ); + this._selections = selections; } // neovim terminology for editor is window @@ -42,10 +45,13 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } get selections(): Selection[] { - throw Error("get selections Not implemented"); + return this._selections; // TODO: this should work, but needs testing + // throw Error("get selections Not implemented"); } set selections(selections: Selection[]) { + // TODO: need to reflect on the neovim side + // this._selections = selections; throw Error("set selections Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 0e93409d76..4d9370d823 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -1,6 +1,11 @@ // adapted from packages\common\src\ide\fake\FakeIDE.ts // and packages\cursorless-vscode\src\ide\vscode\VscodeIDE.ts -import type { EditableTextEditor, Range, TextEditor } from "@cursorless/common"; +import type { + EditableTextEditor, + Range, + Selection, + TextEditor, +} from "@cursorless/common"; import { GeneralizedRange } from "@cursorless/common"; import { TextDocument } from "@cursorless/common"; import type { TextDocumentChangeEvent } from "@cursorless/common"; @@ -200,9 +205,10 @@ export class NeovimIDE implements IDE { bufferId: number, lines: string[], visibleRanges: Range[], + selections: Selection[], ): InMemoryTextEditorImpl { if (!this.editorMap.has(editor)) { - this.toNeovimEditor(editor, bufferId, lines, visibleRanges); + this.toNeovimEditor(editor, bufferId, lines, visibleRanges, selections); } return this.editorMap.get(editor)!; } @@ -212,6 +218,7 @@ export class NeovimIDE implements IDE { bufferId: number, lines: string[], visibleRanges: Range[], + selections: Selection[], ): void { this.activeWindow = editor; const impl = new InMemoryTextEditorImpl( @@ -221,6 +228,7 @@ export class NeovimIDE implements IDE { bufferId, lines, visibleRanges, + selections, ); this.editorMap.set(editor, impl); } diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimUtil.ts new file mode 100644 index 0000000000..8f209aad83 --- /dev/null +++ b/packages/cursorless-neovim/src/neovimUtil.ts @@ -0,0 +1,73 @@ +import { Position, Range, Selection } from "@cursorless/common"; +import { NeovimClient } from "neovim/lib/api/client"; +import { Window } from "neovim/lib/api/Window"; + +/** + * Get the current "selections" in the window(editor) + * + * TODO: at the moment we only support one selection because vim only support one cursor + * TODO: support any window as atm only supports the current window + */ +export async function bufferGetSelections( + window: Window, + client: NeovimClient, +): Promise { + const luaCode = "return BufferGetSelection()"; + // Note lines are indexed from 1, similarly to what is shown in neovim + // and columns are also indexed from 1 + // const [startLine, startCol, endLine, endCol, reverse] = (await client.executeLua( + // luaCode, + // [], + // )) as Array; + const result = (await client.executeLua(luaCode, [])) as Array< + number | boolean + >; + // console.warn(`bufferGetSelection(): result=${result}`); + const startLine = result[0] as number, + startCol = result[1] as number, + endLine = result[2] as number, + endCol = result[3] as number, + reverse = result[4] as boolean; + // subtract 1 to the lines/columns to get the correct 0-based line/column numbers + if (reverse === true) { + return [ + new Selection( + new Position(endLine - 1, endCol - 1), + new Position(startLine - 1, startCol - 1), + ), + ]; + } + return [ + new Selection( + new Position(startLine - 1, startCol - 1), + new Position(endLine - 1, endCol - 1), + ), + ]; +} + +/** + * Get the current "visible" ranges in the window(editor) (vertically). + * This accounts only for vertical scrolling, and not for horizontal scrolling. + * TODO: support any window as atm only supports the current window + */ +export async function windowGetVisibleRanges( + window: Window, + client: NeovimClient, + lines: string[], +): Promise { + // Get the first and last visible lines of the current window + // Note they are indexed from 1, similarly to what is shown in neovim + const luaCode = "return WindowGetVisibleLines()"; + const [firstLine, lastLine] = (await client.executeLua( + luaCode, + [], + )) as Array; + // subtract 1 to the lines to get the correct 0-based line numbers + return [ + new Range( + new Position(firstLine - 1, 0), + // subtract -1 to the line.length to get the correct 0-based column number + new Position(lastLine - 1, lines[lastLine - 1].length - 1), + ), + ]; +} diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 9638239b78..e2dea2af1c 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -3,6 +3,7 @@ import { CursorlessCommandId, Position, Range, + Selection, } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; import { neovimContext } from "./singletons/context.singleton"; @@ -12,6 +13,7 @@ import { bufferManager } from "./singletons/bufmgr.singleton"; import { URI } from "vscode-uri"; import { NeovimClient } from "neovim/lib/api/client"; import { Window } from "neovim/lib/api/Window"; +import { bufferGetSelections, windowGetVisibleRanges } from "./neovimUtil"; // import { // CommandApi, // TestCaseRecorder, @@ -43,35 +45,9 @@ export async function updateTextEditor() { console.warn( `creating editor/document for window:${window.id} buffer:${buffer.id}`, ); + const selections = await bufferGetSelections(window, client); const visibleRanges = await windowGetVisibleRanges(window, client, lines); - ide().toNeovimEditor(window, buffer.id, lines, visibleRanges); -} - -/** - * Get the current visible ranges in the window(editor) (vertically). - * This accounts only for vertical scrolling, and not for horizontal scrolling. - * TODO: support any window as atm only supports the current window - */ -async function windowGetVisibleRanges( - window: Window, - client: NeovimClient, - lines: string[], -): Promise { - // Get the first and last visible lines of the current window - // Note they are indexed from 1, similarly to what is shown in neovim - const luaCode = "return WindowGetVisibleLines()"; - const [firstLine, lastLine] = (await client.executeLua( - luaCode, - [], - )) as Array; - // subtract 1 with the lines to get the correct 0-based line numbers - return [ - new Range( - new Position(firstLine - 1, 0), - // subtract -1 to the line.length to get the correct 0-based column number - new Position(lastLine - 1, lines[lastLine - 1].length - 1), - ), - ]; + ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); } // export function registerCommands( From 75f8efea62c23bcb0e97baa255529c9d2ac25a67 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 16 Mar 2024 06:44:28 +0000 Subject: [PATCH 056/504] import utils from talon.nvim --- packages/cursorless-neovim/src/neovimUtil.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimUtil.ts index 8f209aad83..ee497132f6 100644 --- a/packages/cursorless-neovim/src/neovimUtil.ts +++ b/packages/cursorless-neovim/src/neovimUtil.ts @@ -12,17 +12,14 @@ export async function bufferGetSelections( window: Window, client: NeovimClient, ): Promise { - const luaCode = "return BufferGetSelection()"; + const luaCode = `return require("talon.cursorless").buffer_get_selection()`; // Note lines are indexed from 1, similarly to what is shown in neovim // and columns are also indexed from 1 - // const [startLine, startCol, endLine, endCol, reverse] = (await client.executeLua( - // luaCode, - // [], - // )) as Array; const result = (await client.executeLua(luaCode, [])) as Array< number | boolean >; // console.warn(`bufferGetSelection(): result=${result}`); + // TODO: there must be a more beautiful way to get the returned values with the right types const startLine = result[0] as number, startCol = result[1] as number, endLine = result[2] as number, @@ -56,8 +53,8 @@ export async function windowGetVisibleRanges( lines: string[], ): Promise { // Get the first and last visible lines of the current window - // Note they are indexed from 1, similarly to what is shown in neovim - const luaCode = "return WindowGetVisibleLines()"; + // Note they are indexed from 1, similarly to what is shown in neovim* + const luaCode = `return require("talon.cursorless").window_get_visible_lines()`; const [firstLine, lastLine] = (await client.executeLua( luaCode, [], From bdab2aab3a7b0b6d280a8e1c5180e1b2a17d8f4f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 16 Mar 2024 13:23:41 +0000 Subject: [PATCH 057/504] FEAT: set cursor selection in neovim --- packages/common/src/types/TextEditor.ts | 1 + .../src/util/setSelectionsAndFocusEditor.ts | 12 ++++++----- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 14 +++++++++++-- .../src/ide/neovim/NeovimTextEditorImpl.ts | 4 ++++ packages/cursorless-neovim/src/neovimUtil.ts | 20 +++++++++++++++++++ .../src/ide/vscode/VscodeTextEditorImpl.ts | 5 +++++ 6 files changed, 49 insertions(+), 7 deletions(-) diff --git a/packages/common/src/types/TextEditor.ts b/packages/common/src/types/TextEditor.ts index 6eb46fb015..54bfd97ed5 100644 --- a/packages/common/src/types/TextEditor.ts +++ b/packages/common/src/types/TextEditor.ts @@ -55,6 +55,7 @@ export interface TextEditor { export interface EditableTextEditor extends TextEditor { selections: Selection[]; + setSelections(selections: Selection[]): Promise; options: TextEditorOptions; diff --git a/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts b/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts index 2f7f845261..7c92f46d2e 100644 --- a/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts +++ b/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts @@ -20,13 +20,15 @@ export async function setSelectionsAndFocusEditor( await editor.focus(); } -export function setSelectionsWithoutFocusingEditor( +export async function setSelectionsWithoutFocusingEditor( editor: EditableTextEditor, selections: Selection[], ) { - editor.selections = uniqWithHash( - selections, - (a, b) => a.isEqual(b), - (s) => s.concise(), + await editor.setSelections( + uniqWithHash( + selections, + (a, b) => a.isEqual(b), + (s) => s.concise(), + ), ); } diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index 14bdfe0851..c9f08ec322 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -14,6 +14,8 @@ import { NeovimIDE } from "./NeovimIDE"; import { Window } from "neovim"; import { InMemoryTextDocumentImpl } from "./InMemoryTextDocumentImpl"; import { URI } from "vscode-uri"; +import { bufferSetSelections } from "../../neovimUtil"; +import { neovimContext } from "../../singletons/context.singleton"; export class InMemoryTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; @@ -50,11 +52,19 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } set selections(selections: Selection[]) { - // TODO: need to reflect on the neovim side - // this._selections = selections; + this.setSelections(selections); throw Error("set selections Not implemented"); } + async setSelections(selections: Selection[]): Promise { + // We assume setting it on the neovim never fails + // as we cache the selections in the editor too + this._selections = selections; + await bufferSetSelections(neovimContext().client, selections); + console.warn(`setSelections() done`); + // throw Error("set selections Not implemented"); + } + get options(): TextEditorOptions { throw Error("get options Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 335585ae5f..e8e3d3f55a 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -87,6 +87,10 @@ export class NeovimTextEditorImpl implements EditableTextEditor { // return this.editor === vscode.window.activeTextEditor; } + async setSelections(selections: Selection[]): Promise { + throw Error("set selections Not implemented"); + } + public isEqual(other: TextEditor): boolean { return this.id === other.id; } diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimUtil.ts index ee497132f6..e2ff1eb782 100644 --- a/packages/cursorless-neovim/src/neovimUtil.ts +++ b/packages/cursorless-neovim/src/neovimUtil.ts @@ -42,6 +42,26 @@ export async function bufferGetSelections( ]; } +export async function bufferSetSelections( + // window: Window, + client: NeovimClient, + selections: Selection[], +) { + if (selections.length !== 1) { + throw new Error("bufferSetSelections() only supports one selection"); + } + + // cursorless has 0-based lines/columns, but neovim has 1-based lines/columns + // const luaCode = `return require("talon.cursorless").select_range(${ + const luaCode = `return require("talon.cursorless").select_range(${ + selections[0].start.line + 1 + }, ${selections[0].start.character + 1}, ${selections[0].end.line + 1}, ${ + selections[0].end.character + 1 + })`; + await client.executeLua(luaCode, []); + console.warn(`bufferSetSelections() done`); +} + /** * Get the current "visible" ranges in the window(editor) (vertically). * This accounts only for vertical scrolling, and not for horizontal scrolling. diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index 15733f6969..25a3fac777 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -72,6 +72,11 @@ export class VscodeTextEditorImpl implements EditableTextEditor { return this.editor === vscode.window.activeTextEditor; } + async setSelections(selections: Selection[]): Promise { + // TODO: we need to fix vscode to work the same way as neovim + throw Error("set selections Not implemented"); + } + public isEqual(other: TextEditor): boolean { return this.id === other.id; } From c24f6ff1d977b4903078fcc0fa1e4ba50145f8e1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 17 Mar 2024 08:14:58 +0000 Subject: [PATCH 058/504] feat: "take" action working --- packages/cursorless-neovim/src/extension.ts | 2 +- .../ide/neovim/InMemoryTextDocumentImpl.ts | 25 +++++++++++++++++ .../src/ide/neovim/InMemoryTextEditorImpl.ts | 9 ++++-- .../src/ide/neovim/InMemoryTextLineImpl.ts | 28 +++++++++++++++++-- packages/cursorless-neovim/src/index.ts | 3 +- packages/cursorless-neovim/src/neovimUtil.ts | 15 ++++++---- .../cursorless-neovim/src/registerCommands.ts | 4 +-- packages/cursorless-neovim/test/paints.txt | 3 ++ .../cursorless-neovim/test/paints_unix.txt | 3 ++ 9 files changed, 76 insertions(+), 16 deletions(-) create mode 100644 packages/cursorless-neovim/test/paints.txt create mode 100644 packages/cursorless-neovim/test/paints_unix.txt diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index ffa332925c..a7e073b5bb 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -44,7 +44,7 @@ export async function activate(context: NeovimExtensionContext) { injectIde2(neovimIDE); // TODO: this is duplicating what Cursorless engine does but for NeovimIDE // initialize the editor since it is needed before we can attach? - updateTextEditor(); + await updateTextEditor(); /** * "attach" to Nvim buffers to subscribe to buffer update events. diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts index f880c7cbc7..4153b3dd92 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts @@ -76,6 +76,7 @@ export class InMemoryTextDocumentImpl implements TextDocument { } else if (typeof lineOrPosition === "number") { line = lineOrPosition; } + // console.warn(`lineAt() line=${line}`); if ( typeof line !== "number" || @@ -94,14 +95,23 @@ export class InMemoryTextDocumentImpl implements TextDocument { } public offsetAt(position: Position): number { + // console.warn( + // `offsetAt() position=(${position.line},${position.character})`, + // ); position = this._validatePosition(position); this._ensureLineStarts(); + // console.warn( + // `offsetAt() returning ${ + // this._lineStarts!.getPrefixSum(position.line - 1) + position.character + // }`, + // ); return ( this._lineStarts!.getPrefixSum(position.line - 1) + position.character ); } public positionAt(offset: number): Position { + // console.warn(`positionAt() offset=${offset}`); offset = Math.floor(offset); offset = Math.max(0, offset); @@ -116,19 +126,31 @@ export class InMemoryTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { + // console.warn(`getText() range=undefined`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } + // console.warn(`getText() returning cached value=${this._cachedTextValue}`); return this._cachedTextValue; + } else { + // console.warn( + // `getText() range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character})`, + // ); } range = this._validateRange(range); if (range.isEmpty) { + // console.warn(`getText() returning empty`); return ""; } if (range.isSingleLine) { + // console.warn( + // `getText() returning single line ${this._lines[ + // range.start.line + // ].substring(range.start.character, range.end.character)}`, + // ); return this._lines[range.start.line].substring( range.start.character, range.end.character, @@ -150,6 +172,9 @@ export class InMemoryTextDocumentImpl implements TextDocument { this._lines[endLineIndex].substring(0, range.end.character), ); + // console.warn( + // `getText() returning multiple lines ${resultLines.join(lineEnding)}`, + // ); return resultLines.join(lineEnding); } diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index c9f08ec322..5ad32d592f 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -35,9 +35,11 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), "plaintext", 1, - "\n", + //"\n", + "\r\n", lines, ); + // console.warn(`InMemoryTextEditorImpl(): lines=${lines}`); this._selections = selections; } @@ -61,7 +63,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { // as we cache the selections in the editor too this._selections = selections; await bufferSetSelections(neovimContext().client, selections); - console.warn(`setSelections() done`); + // console.warn(`setSelections() done`); // throw Error("set selections Not implemented"); } @@ -82,6 +84,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } public async revealRange(range: Range): Promise { + // TODO: implement it to support multiple editors throw Error("revealRange Not implemented"); } @@ -97,6 +100,8 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { } public focus(): Promise { + // TODO: implement it to support multiple editors + // return Promise.resolve(); throw Error("focus Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts index 190eb31a62..3ffa616ae5 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts @@ -6,6 +6,9 @@ export default class InMemoryTextLineImpl implements TextLine { private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { + // console.warn( + // `InMemoryTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}, eol='${eol}'`, + // ); this._lineNumber = lineNumber; this._text = text; this._isLastLine = isLastLine; @@ -16,28 +19,47 @@ export default class InMemoryTextLineImpl implements TextLine { } get text(): string { + // console.warn(`InMemoryTextLineImpl.text()='${this._text}'`); return this._text; } get range(): Range { + // console.warn( + // `InMemoryTextLineImpl.range(): range=(${this._lineNumber}, 0), (${this._lineNumber}, ${this._text.length})`, + // ); return new Range(this._lineNumber, 0, this._lineNumber, this._text.length); } get rangeIncludingLineBreak(): Range { if (this._isLastLine) { + // console.warn( + // `InMemoryTextLineImpl.rangeIncludingLineBreak(): last line=(${this.range.start.line}, ${this.range.start.character}), (${this.range.end.line}, ${this.range.end.character})`, + // ); return this.range; } + // console.warn( + // `InMemoryTextLineImpl.rangeIncludingLineBreak(): range=(${ + // this._lineNumber + // }, 0), ${this._lineNumber + 1}, 0})`, + // ); return new Range(this._lineNumber, 0, this._lineNumber + 1, 0); } get firstNonWhitespaceCharacterIndex(): number { //TODO@api, rename to 'leadingWhitespaceLength' - return /^(\s*)/.exec(this._text)![1].length; + const index = /^(\s*)/.exec(this._text)![1].length; + // console.warn( + // `InMemoryTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, + // ); + return index; } get lastNonWhitespaceCharacterIndex(): number { - const all = this.text.match(/\S/g); - return all ? this.text.lastIndexOf(all[all.length - 1]) : 0; + const index = this.text.trimEnd().length; + // console.warn( + // `InMemoryTextLineImpl.lastNonWhitespaceCharacterIndex index=${index}`, + // ); + return index; } get isEmptyOrWhitespace(): boolean { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 910cf8a390..9835839974 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -45,7 +45,7 @@ function loadExtension(plugin: NvimPlugin) { const currentDate: Date = new Date(); const currentDateStr: string = currentDate.toLocaleString(); - console.warn("loadExtension(): " + currentDateStr); + console.warn("loadExtension(cursorless-neovim): " + currentDateStr); // plugin.nvim.setLine(currentDateStr); const extensionContext = new NeovimExtensionContext(plugin); @@ -54,6 +54,5 @@ function loadExtension(plugin: NvimPlugin) { } export function handleCommand(...args: any): Promise { - console.warn(`handleCommand(): args=${args}`); return handleCommandInternal(...args); } diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimUtil.ts index e2ff1eb782..d9e4f0be5d 100644 --- a/packages/cursorless-neovim/src/neovimUtil.ts +++ b/packages/cursorless-neovim/src/neovimUtil.ts @@ -51,13 +51,16 @@ export async function bufferSetSelections( throw new Error("bufferSetSelections() only supports one selection"); } - // cursorless has 0-based lines/columns, but neovim has 1-based lines/columns + // cursorless has 0-based lines/columns, but neovim has 1-based lines and 0-based columns + // also, experience shows we need to subtract 1 from the end character to stop on it in visual mode (instead of after it) + // https://neovim.io/doc/user/api.html#nvim_win_set_cursor() // const luaCode = `return require("talon.cursorless").select_range(${ - const luaCode = `return require("talon.cursorless").select_range(${ - selections[0].start.line + 1 - }, ${selections[0].start.character + 1}, ${selections[0].end.line + 1}, ${ - selections[0].end.character + 1 - })`; + const luaCode = `select_range(${selections[0].start.line + 1}, ${ + selections[0].start.character + }, ${selections[0].end.line + 1}, ${selections[0].end.character - 1})`; + console.warn( + `bufferSetSelections() selections=${selections[0].start.line},${selections[0].start.character},${selections[0].end.line},${selections[0].end.character} luaCode=${luaCode}`, + ); await client.executeLua(luaCode, []); console.warn(`bufferSetSelections() done`); } diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index fc997b8fdf..acd4299e08 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -39,6 +39,7 @@ export async function updateTextEditor() { const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; + // console.warn(`updateTextEditor(): lines=${lines}`); console.warn( `creating editor/document for window:${window.id} buffer:${buffer.id}`, ); @@ -58,14 +59,13 @@ export async function updateTextEditor() { // hats: VscodeHats, // ): void { export function handleCommandInternal(...allArguments: any[]): Promise { - console.warn(`handleCommandInternal(): allArguments =${allArguments}`); const [command, ...rest] = allArguments as [string, ...unknown[]]; const commands: Record any> = { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { // try { - updateTextEditor(); + await updateTextEditor(); const result = await commandApi().runCommandSafe(...args); // const result = ["hello world"]; // simulate the result of "bring " return result; diff --git a/packages/cursorless-neovim/test/paints.txt b/packages/cursorless-neovim/test/paints.txt new file mode 100644 index 0000000000..68d8383cbd --- /dev/null +++ b/packages/cursorless-neovim/test/paints.txt @@ -0,0 +1,3 @@ +0123 5678 +01 345 789abcdef +aaaa bbbb cccc diff --git a/packages/cursorless-neovim/test/paints_unix.txt b/packages/cursorless-neovim/test/paints_unix.txt new file mode 100644 index 0000000000..ebac808404 --- /dev/null +++ b/packages/cursorless-neovim/test/paints_unix.txt @@ -0,0 +1,3 @@ +0123 5678 +01 345 789abcdef +aaaa bbbb cccc From f08669735d03ef2b3e17340b55e75762af94dfa9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 17 Mar 2024 08:23:28 +0000 Subject: [PATCH 059/504] feat: use talon.nvim select_range function --- packages/cursorless-neovim/src/neovimUtil.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimUtil.ts index d9e4f0be5d..cf3ca658c0 100644 --- a/packages/cursorless-neovim/src/neovimUtil.ts +++ b/packages/cursorless-neovim/src/neovimUtil.ts @@ -54,10 +54,11 @@ export async function bufferSetSelections( // cursorless has 0-based lines/columns, but neovim has 1-based lines and 0-based columns // also, experience shows we need to subtract 1 from the end character to stop on it in visual mode (instead of after it) // https://neovim.io/doc/user/api.html#nvim_win_set_cursor() - // const luaCode = `return require("talon.cursorless").select_range(${ - const luaCode = `select_range(${selections[0].start.line + 1}, ${ - selections[0].start.character - }, ${selections[0].end.line + 1}, ${selections[0].end.character - 1})`; + const luaCode = `return require("talon.cursorless").select_range(${ + selections[0].start.line + 1 + }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ + selections[0].end.character - 1 + })`; console.warn( `bufferSetSelections() selections=${selections[0].start.line},${selections[0].start.character},${selections[0].end.line},${selections[0].end.character} luaCode=${luaCode}`, ); From 231103121f42fd49a2a1c0448c16227bb380844e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 17 Mar 2024 08:59:01 +0000 Subject: [PATCH 060/504] cleanup: renaming, moving stuff --- packages/cursorless-neovim/TODO.md | 11 ++++ packages/cursorless-neovim/src/extension.ts | 52 ++++++++++++------- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 2 +- packages/cursorless-neovim/src/index.ts | 15 ++++-- .../src/{neovimUtil.ts => neovimApi.ts} | 1 + .../cursorless-neovim/src/registerCommands.ts | 45 ++++------------ 6 files changed, 69 insertions(+), 57 deletions(-) create mode 100644 packages/cursorless-neovim/TODO.md rename packages/cursorless-neovim/src/{neovimUtil.ts => neovimApi.ts} (97%) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md new file mode 100644 index 0000000000..c9ff1df0c9 --- /dev/null +++ b/packages/cursorless-neovim/TODO.md @@ -0,0 +1,11 @@ +# features + +- integrate tests for cursorless-neovim? + - use same yaml files? + - local tests before integrating to CI? + +# cleanup + +- fix neovim terminology + - extension => plugin + - editor => window (any place remaining?) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index a7e073b5bb..294817db42 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -19,14 +19,45 @@ import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { BufferManager } from "./types/BufferManager"; +import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { injectIde as injectIde2 } from "./singletons/ide.singleton"; +import { neovimContext } from "./singletons/context.singleton"; import { updateTextEditor } from "./registerCommands"; +/** + * Subscribe to buffer updates, e.g. when the text changes. + * TODO: keeping this code as it was previously tested and it works but need to see when it + * will be useful (to update hats?) + */ +export async function subscribeBufferUpdates() { + const client = neovimContext().client; + + // initialize the editor since it is needed before we can attach? + await updateTextEditor(); + + /** + * "attach" to Nvim buffers to subscribe to buffer update events. + * This is similar to TextChanged but more powerful and granular. + * + * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() + */ + const buffers = await client.buffers; + buffers.forEach( + /* async */ (buf) => { + console.warn("listening for changes in buffer: ", buf.id); + buf.listen("lines", receivedBufferEvent); + // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function + // await buf[ATTACH](true); + }, + ); +} + /** * Simulates the extension entrypoint to match cursorless-vscode + * NOTE: this is not the real cursorless-neovim extension entrypoint (which is called at Neovim startup) + * Instead, this function is called from talon.nvim to initialize the Cursorless engine. */ export async function activate(context: NeovimExtensionContext) { // debugger; // NOTE: helps debugging @@ -43,24 +74,7 @@ export async function activate(context: NeovimExtensionContext) { const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); injectIde2(neovimIDE); // TODO: this is duplicating what Cursorless engine does but for NeovimIDE - // initialize the editor since it is needed before we can attach? - await updateTextEditor(); - - /** - * "attach" to Nvim buffers to subscribe to buffer update events. - * This is similar to TextChanged but more powerful and granular. - * - * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - */ - // const buffers = await client.buffers; - // buffers.forEach( - // /* async */ (buf) => { - // console.warn("listening for changes in buffer: ", buf.id); - // buf.listen("lines", receivedBufferEvent); - // // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function - // // await buf[ATTACH](true); - // }, - // ); + //await subscribeBufferUpdates(); const normalizedIde = neovimIDE.runMode === "production" diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index 5ad32d592f..3fbdcb678e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -14,7 +14,7 @@ import { NeovimIDE } from "./NeovimIDE"; import { Window } from "neovim"; import { InMemoryTextDocumentImpl } from "./InMemoryTextDocumentImpl"; import { URI } from "vscode-uri"; -import { bufferSetSelections } from "../../neovimUtil"; +import { bufferSetSelections } from "../../neovimApi"; import { neovimContext } from "../../singletons/context.singleton"; export class InMemoryTextEditorImpl implements EditableTextEditor { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 9835839974..6c42bf8ce4 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -6,15 +6,17 @@ import { injectContext } from "./singletons/context.singleton"; import { handleCommandInternal } from "./registerCommands"; /** - * Extension entrypoint called by node-client on Cursorless startup. - * - Register the functions that are exposed to neovim. - * Note that these function need to start with a capital letter to be callable from neovim. + * Extension entrypoint called by node-client on Neovim startup. + * - Register the functions that are exposed to Neovim. + * Note that these function need to start with a capital letter to be callable from Neovim. */ export default function entry(plugin: NvimPlugin) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation + // TODO: it is not that useful in practice? Can we really call CursorlessLoadExtension() again without restarting Neovim? // plugin.setOptions({ dev: false }); plugin.setOptions({ dev: true }); + // TODO: remove this function plugin.registerFunction("CursorlessLoadNode", () => loadNode(plugin), { sync: false, }); @@ -26,6 +28,7 @@ export default function entry(plugin: NvimPlugin) { ); } +// TODO: remove this function /** * Load node.exe inside nvim.exe. * This is useful for debugging purpose so we can attach to node. @@ -53,6 +56,12 @@ function loadExtension(plugin: NvimPlugin) { activate(extensionContext); } +/** + * Handle the command received from the command-server Neovim extension + * NOTE: this is why we export it from the main file + * @param args something like XXX + * @returns + */ export function handleCommand(...args: any): Promise { return handleCommandInternal(...args); } diff --git a/packages/cursorless-neovim/src/neovimUtil.ts b/packages/cursorless-neovim/src/neovimApi.ts similarity index 97% rename from packages/cursorless-neovim/src/neovimUtil.ts rename to packages/cursorless-neovim/src/neovimApi.ts index cf3ca658c0..51e5c0b13e 100644 --- a/packages/cursorless-neovim/src/neovimUtil.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -1,3 +1,4 @@ +// Helper directly calling into Neovim apis, generally exported by talon.nvim import { Position, Range, Selection } from "@cursorless/common"; import { NeovimClient } from "neovim/lib/api/client"; import { Window } from "neovim/lib/api/Window"; diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index acd4299e08..c58e9cb0e8 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,30 +1,8 @@ -import { - CURSORLESS_COMMAND_ID, - CursorlessCommandId, - Position, - Range, - Selection, -} from "@cursorless/common"; +import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; import { neovimContext } from "./singletons/context.singleton"; import { ide } from "./singletons/ide.singleton"; -import { NeovimClient } from "neovim/lib/api/client"; -import { Window } from "neovim/lib/api/Window"; -import { bufferGetSelections, windowGetVisibleRanges } from "./neovimUtil"; -// import { -// CommandApi, -// TestCaseRecorder, -// analyzeCommandHistory, -// showCheatsheet, -// updateDefaults, -// } from "@cursorless/cursorless-engine"; -// import * as vscode from "vscode"; -// import { ScopeVisualizer } from "./ScopeVisualizerCommandApi"; -// import { showDocumentation, showQuickPick } from "./commands"; -// import { VscodeIDE } from "./ide/vscode/VscodeIDE"; -// import { VscodeHats } from "./ide/vscode/hats/VscodeHats"; -// import { KeyboardCommands } from "./keyboard/KeyboardCommands"; -// import { logQuickActions } from "./logQuickActions"; +import { bufferGetSelections, windowGetVisibleRanges } from "./neovimApi"; /** * Initialize the current editor (and current document). @@ -48,16 +26,15 @@ export async function updateTextEditor() { ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); } -// export function registerCommands( -// extensionContext: vscode.ExtensionContext, -// vscodeIde: VscodeIDE, -// commandApi: CommandApi, -// fileSystem: FileSystem, -// testCaseRecorder: TestCaseRecorder, -// scopeVisualizer: ScopeVisualizer, -// keyboardCommands: KeyboardCommands, -// hats: VscodeHats, -// ): void { +/** + * Handle the command received from the command-server Neovim extension + * + * Note how this file is named registerCommands.ts but it does not register any command. + * Instead it implements the command handler directly. + * This is to match the cursorless-vscode's registerCommands.ts file structure. + * @param allArguments something like XXX + * @returns + */ export function handleCommandInternal(...allArguments: any[]): Promise { const [command, ...rest] = allArguments as [string, ...unknown[]]; From 8f41e246bfdec720ea6478c3d4bf989ec99672ef Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 08:28:08 +0000 Subject: [PATCH 061/504] docs: non fatal revealRange() and focus() methods --- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 10 +++++++--- .../src/ide/vscode/VscodeTextEditorImpl.ts | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index 3fbdcb678e..6b314cc889 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -85,7 +85,9 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { public async revealRange(range: Range): Promise { // TODO: implement it to support multiple editors - throw Error("revealRange Not implemented"); + // Commenting for now to avoid exceptions being triggered + // when issuing "take" commands even if not fatal + // throw Error("revealRange Not implemented"); } public revealLine(lineNumber: number, at: RevealLineAt): Promise { @@ -101,8 +103,10 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { public focus(): Promise { // TODO: implement it to support multiple editors - // return Promise.resolve(); - throw Error("focus Not implemented"); + // Commenting for now to avoid exceptions being triggered + // when issuing "take" commands even if not fatal + return Promise.resolve(); + // throw Error("focus Not implemented"); } public editNewNotebookCellAbove(): Promise< diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index 25a3fac777..a7cda69bf9 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -56,6 +56,11 @@ export class VscodeTextEditorImpl implements EditableTextEditor { this.editor.selections = selections.map(toVscodeSelection); } + async setSelections(selections: Selection[]): Promise { + // TODO: we need to fix vscode to work the same way as neovim + throw Error("set selections Not implemented"); + } + get visibleRanges(): Range[] { return this.editor.visibleRanges.map(fromVscodeRange); } @@ -72,11 +77,6 @@ export class VscodeTextEditorImpl implements EditableTextEditor { return this.editor === vscode.window.activeTextEditor; } - async setSelections(selections: Selection[]): Promise { - // TODO: we need to fix vscode to work the same way as neovim - throw Error("set selections Not implemented"); - } - public isEqual(other: TextEditor): boolean { return this.id === other.id; } From 2a1db51752f0f986df05e4ba2f8d4c4ec4d7d389 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 08:56:40 +0000 Subject: [PATCH 062/504] docs: todo --- packages/cursorless-neovim/TODO.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index c9ff1df0c9..817e8bcdb3 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -9,3 +9,7 @@ - fix neovim terminology - extension => plugin - editor => window (any place remaining?) + +# merge + +- separate PR for setSelections() right now? From b41f5c880593476a35a1559ccbdec1b20678caa4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 09:12:28 +0000 Subject: [PATCH 063/504] refactor: cleanup set selection in text editor class --- packages/common/src/types/TextEditor.ts | 4 ++-- .../src/actions/GenerateSnippet/GenerateSnippet.ts | 4 +++- .../src/ide/neovim/InMemoryTextEditorImpl.ts | 5 ----- .../src/ide/neovim/NeovimTextEditorImpl.ts | 8 ++------ .../src/ide/vscode/VscodeFocusEditor.ts | 2 +- .../src/ide/vscode/VscodeInsertSnippets.ts | 2 +- .../src/ide/vscode/VscodeTextEditorImpl.ts | 9 ++------- 7 files changed, 11 insertions(+), 23 deletions(-) diff --git a/packages/common/src/types/TextEditor.ts b/packages/common/src/types/TextEditor.ts index 54bfd97ed5..3c377e20e4 100644 --- a/packages/common/src/types/TextEditor.ts +++ b/packages/common/src/types/TextEditor.ts @@ -32,7 +32,7 @@ export interface TextEditor { /** * The selections in this text editor. */ - readonly selections: Selection[]; + get selections(): Selection[]; /** * Text editor options. @@ -54,7 +54,7 @@ export interface TextEditor { } export interface EditableTextEditor extends TextEditor { - selections: Selection[]; + // selections: Selection[]; setSelections(selections: Selection[]): Promise; options: TextEditorOptions; diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts index e41a35de4b..ad072f7f3f 100644 --- a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts +++ b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts @@ -222,7 +222,9 @@ export default class GenerateSnippet { if (isTesting()) { // If we're testing, we just overwrite the current document - editableEditor.selections = [editor.document.range.toSelection(false)]; + await editableEditor.setSelections([ + editor.document.range.toSelection(false), + ]); } else { // Otherwise, we create and open a new document for the snippet in the // user snippets dir diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts index 6b314cc889..0d1cd85292 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts @@ -53,11 +53,6 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { // throw Error("get selections Not implemented"); } - set selections(selections: Selection[]) { - this.setSelections(selections); - throw Error("set selections Not implemented"); - } - async setSelections(selections: Selection[]): Promise { // We assume setting it on the neovim never fails // as we cache the selections in the editor too diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index e8e3d3f55a..50f7911ab5 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -64,8 +64,8 @@ export class NeovimTextEditorImpl implements EditableTextEditor { // return this.editor.selections; } - set selections(selections: Selection[]) { - // this.editor.selections = selections.map(toVscodeSelection); + async setSelections(selections: Selection[]): Promise { + throw Error("set selections Not implemented"); } get visibleRanges(): Range[] { @@ -87,10 +87,6 @@ export class NeovimTextEditorImpl implements EditableTextEditor { // return this.editor === vscode.window.activeTextEditor; } - async setSelections(selections: Selection[]): Promise { - throw Error("set selections Not implemented"); - } - public isEqual(other: TextEditor): boolean { return this.id === other.id; } diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts index 3507a5ce2b..c46588e68f 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts @@ -103,7 +103,7 @@ async function focusNotebookCell(editor: VscodeTextEditorImpl) { end: desiredEditorIndex + 1, }), ]; - desiredNotebookEditor.selections = desiredSelections; + await desiredNotebookEditor.setSelections(desiredSelections); // Issue a command to tell VSCode to focus the cell input editor // NB: We don't issue the command if it's already focused, because it turns diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts index c58994f9d6..6bcde2e58b 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts @@ -8,7 +8,7 @@ export async function vscodeInsertSnippet( ranges: Range[] | undefined, ): Promise { if (ranges != null) { - editor.selections = ranges.map((range) => range.toSelection(false)); + editor.setSelections(ranges.map((range) => range.toSelection(false))); } await editor.focus(); diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index a7cda69bf9..c0f52b4140 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -52,13 +52,8 @@ export class VscodeTextEditorImpl implements EditableTextEditor { return this.editor.selections.map(fromVscodeSelection); } - set selections(selections: Selection[]) { - this.editor.selections = selections.map(toVscodeSelection); - } - async setSelections(selections: Selection[]): Promise { - // TODO: we need to fix vscode to work the same way as neovim - throw Error("set selections Not implemented"); + this.editor.selections = selections.map(toVscodeSelection); } get visibleRanges(): Range[] { @@ -154,7 +149,7 @@ export class VscodeTextEditorImpl implements EditableTextEditor { public async insertLineAfter(ranges?: Range[]): Promise { if (ranges != null) { - this.selections = ranges.map((range) => range.toSelection(false)); + this.setSelections(ranges.map((range) => range.toSelection(false))); } await this.focus(); await vscode.commands.executeCommand("editor.action.insertLineAfter"); From 9b5f238904ca14a70a05ec619070472c6a1da8ce Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 09:38:28 +0000 Subject: [PATCH 064/504] refactor: neovim apis and helpers. Also removed the old text editor and line and document implementations --- packages/cursorless-neovim/TODO.md | 9 + packages/cursorless-neovim/src/extension.ts | 40 +-- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 88 ------- .../src/ide/neovim/NeovimTextEditorImpl.ts | 249 ------------------ .../src/ide/neovim/NeovimTextLineImpl.ts | 47 ---- packages/cursorless-neovim/src/index.ts | 18 -- packages/cursorless-neovim/src/neovimApi.ts | 2 +- .../cursorless-neovim/src/neovimHelpers.ts | 56 ++++ .../cursorless-neovim/src/registerCommands.ts | 26 +- .../src/types/BufferManager.ts | 4 +- 10 files changed, 73 insertions(+), 466 deletions(-) delete mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts delete mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts delete mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts create mode 100644 packages/cursorless-neovim/src/neovimHelpers.ts diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 817e8bcdb3..e7ce7b681d 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -10,6 +10,15 @@ - extension => plugin - editor => window (any place remaining?) +# bugs + +- `take file` doesn't work, and just moves the cursor to the beginning of the file +- I can't chain two cursorless commands without waiting a little bit + # merge - separate PR for setSelections() right now? + +# discussion + +- have the command server allow executing any lua function? diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 294817db42..1c42bf0757 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -19,49 +19,17 @@ import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { BufferManager, receivedBufferEvent } from "./types/BufferManager"; +import { BufferManager } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { injectIde as injectIde2 } from "./singletons/ide.singleton"; -import { neovimContext } from "./singletons/context.singleton"; -import { updateTextEditor } from "./registerCommands"; /** - * Subscribe to buffer updates, e.g. when the text changes. - * TODO: keeping this code as it was previously tested and it works but need to see when it - * will be useful (to update hats?) - */ -export async function subscribeBufferUpdates() { - const client = neovimContext().client; - - // initialize the editor since it is needed before we can attach? - await updateTextEditor(); - - /** - * "attach" to Nvim buffers to subscribe to buffer update events. - * This is similar to TextChanged but more powerful and granular. - * - * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - */ - const buffers = await client.buffers; - buffers.forEach( - /* async */ (buf) => { - console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", receivedBufferEvent); - // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function - // await buf[ATTACH](true); - }, - ); -} - -/** - * Simulates the extension entrypoint to match cursorless-vscode - * NOTE: this is not the real cursorless-neovim extension entrypoint (which is called at Neovim startup) - * Instead, this function is called from talon.nvim to initialize the Cursorless engine. + * This function is called from talon.nvim to initialize the Cursorless engine. + * NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup) + * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ export async function activate(context: NeovimExtensionContext) { - // debugger; // NOTE: helps debugging - const client = context.client; const buffer = await client.buffer; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts deleted file mode 100644 index 2463f74e59..0000000000 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { - EndOfLine, - Position, - Range, - TextDocument, - TextLine, -} from "@cursorless/common"; -// import { -// fromVscodeEndOfLine, -// fromVscodePosition, -// toVscodePosition, -// toVscodeRange, -// } from "@cursorless/vscode-common"; -// import * as vscode from "vscode"; -import { URI } from "vscode-uri"; -// import { -// fromVscodePosition, -// toVscodePosition, -// toVscodeRange, -// } from "../../vscodeUtil"; -import NeovimTextLineImpl from "./NeovimTextLineImpl"; -import { Buffer } from "neovim"; - -export class NeovimTextDocumentImpl implements TextDocument { - private buffer: Buffer; - private _uri: URI; - private _languageId: string; - private _version: number; - private _lineCount: number; - - get uri(): URI { - return this._uri; - } - - get languageId(): string { - return this._languageId; - } - - get version(): number { - return this._version; - } - - get lineCount(): number { - return this._lineCount; - } - - get range(): Range { - const { end } = this.lineAt(this.lineCount - 1).range; - return new Range(0, 0, end.line, end.character); - } - - get eol(): EndOfLine { - return "LF"; // TODO: update - } - - constructor(buffer: Buffer) { - this.buffer = buffer; - this._uri = URI.parse(`neovim://${buffer.id}`); - this._languageId = "plaintext"; // TODO: update - this._version = 1; - this._lineCount = this.buffer.length as unknown as number; // TODO: update - } - - public lineAt(lineOrPosition: number | Position): TextLine { - return new NeovimTextLineImpl( - this.buffer, - typeof lineOrPosition === "number" ? lineOrPosition : lineOrPosition.line, - ); // TODO: update - } - - public offsetAt(position: Position): number { - return 0; // TODO: update - // return this.document.offsetAt(position); - } - - public positionAt(offset: number): Position { - return new Position(0, 0); // TODO: update - // return this.document.positionAt(offset); - } - - public /* async */ getText(range?: Range): /* Promise< */ string /* > */ { - const lines = /* await */ this.buffer.lines as unknown as string[]; // TODO: update - if (range != null) { - return lines.slice(range.start.line, range.end.line + 1).join("\n"); // TODO: update - } - return lines.join("\n"); // TODO: update - } -} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts deleted file mode 100644 index 50f7911ab5..0000000000 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { - BreakpointDescriptor, - EditableTextEditor, - Position, - Range, - RevealLineAt, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - TextEditorOptions, -} from "@cursorless/common"; -// import { -// fromVscodeRange, -// fromVscodeSelection, -// toVscodePositionOrRange, -// toVscodeRange, -// toVscodeSelection, -// } from "@cursorless/vscode-common"; -// import * as vscode from "vscode"; -// import vscodeEdit from "./VscodeEdit"; -// import vscodeFocusEditor from "./VscodeFocusEditor"; -// import { vscodeFold, vscodeUnfold } from "./VscodeFold"; -import { NeovimIDE } from "./NeovimIDE"; -// import { vscodeInsertSnippet } from "./VscodeInsertSnippets"; -// import { -// vscodeEditNewNotebookCellAbove, -// vscodeEditNewNotebookCellBelow, -// } from "./VscodeNotebooks"; -// import vscodeOpenLink from "./VscodeOpenLink"; -// import { vscodeRevealLine } from "./VscodeRevealLine"; -import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -import { Window } from "neovim"; - -// import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint"; - -export class NeovimTextEditorImpl implements EditableTextEditor { - // readonly document: TextDocument; - private _document: TextDocument; - - constructor( - public readonly id: string, - private ide: NeovimIDE, - private editor: Window, - ) { - this._document = undefined as unknown as TextDocument; // TODO: update - } - - public async initialize(): Promise { - this._document = new NeovimTextDocumentImpl(await this.editor.buffer); - } - - get document(): TextDocument { - return this._document; - } - - // neovim terminology for editor is window - get neovimEditor(): Window { - return this.editor; - } - - get selections(): Selection[] { - return []; // TODO: update - // return this.editor.selections; - } - - async setSelections(selections: Selection[]): Promise { - throw Error("set selections Not implemented"); - } - - get visibleRanges(): Range[] { - return [new Range(0, 0, 10, 0)]; // TODO: update - // return this.editor.visibleRanges; - } - - get options(): TextEditorOptions { - return {}; // TODO: update - // return this.editor.options; - } - - set options(options: TextEditorOptions) { - // this.editor.options = options; - } - - get isActive(): boolean { - return false; - // return this.editor === vscode.window.activeTextEditor; - } - - public isEqual(other: TextEditor): boolean { - return this.id === other.id; - } - - public async revealRange(range: Range): Promise { - return Promise.resolve(); - // this.editor.revealRange(toVscodeRange(range)); - } - - public revealLine(lineNumber: number, at: RevealLineAt): Promise { - return Promise.resolve(); - // return vscodeRevealLine(this, lineNumber, at); - } - - public edit( - callback: (editBuilder: TextEditorEdit) => void, - options?: { undoStopBefore: boolean; undoStopAfter: boolean }, - ): Promise { - return Promise.resolve(false); - // return vscodeEdit(this.editor, callback, options); - } - - public focus(): Promise { - return Promise.resolve(); - // return vscodeFocusEditor(this.ide, this); - } - - public editNewNotebookCellAbove(): Promise< - (selection: Selection) => Selection - > { - return Promise.resolve((selection) => selection); - // return vscodeEditNewNotebookCellAbove(this); - } - - public editNewNotebookCellBelow(): Promise { - return Promise.resolve(); - // return vscodeEditNewNotebookCellBelow(this); - } - - public openLink(location?: Position | Range): Promise { - return Promise.resolve(false); - // return vscodeOpenLink( - // this, - // location != null ? toVscodePositionOrRange(location) : undefined, - // ); - } - - public fold(ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeFold(this.ide, this, ranges); - } - - public unfold(ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeUnfold(this.ide, this, ranges); - } - - public toggleBreakpoint(descriptors?: BreakpointDescriptor[]): Promise { - return Promise.resolve(); - // return vscodeToggleBreakpoint(this, descriptors); - } - - public async toggleLineComment(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.commentLine"); - } - - public async clipboardCopy(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.clipboardCopyAction"); - } - - public async clipboardPaste(_ranges?: Range[]): Promise { - return Promise.resolve(); - // We add these sleeps here to workaround a bug in VSCode. See #1521 - // await sleep(100); - // await vscode.commands.executeCommand("editor.action.clipboardPasteAction"); - // await sleep(100); - } - - public async indentLine(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.indentLines"); - } - - public async outdentLine(_ranges?: Range[]): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.outdentLines"); - } - - public async insertLineAfter(ranges?: Range[]): Promise { - return Promise.resolve(); - // if (ranges != null) { - // this.selections = ranges.map((range) => range.toSelection(false)); - // } - // await this.focus(); - // await vscode.commands.executeCommand("editor.action.insertLineAfter"); - } - - public insertSnippet(snippet: string, ranges?: Range[]): Promise { - return Promise.resolve(); - // return vscodeInsertSnippet(this, snippet, ranges); - } - - public async rename(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.rename"); - } - - public async showReferences(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("references-view.find"); - } - - public async quickFix(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.quickFix"); - // await sleep(100); - } - - public async revealDefinition(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.revealDefinition"); - } - - public async revealTypeDefinition(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.goToTypeDefinition"); - } - - public async showHover(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.action.showHover"); - } - - public async showDebugHover(_range?: Range): Promise { - return Promise.resolve(); - // await vscode.commands.executeCommand("editor.debug.action.showDebugHover"); - } - - public async extractVariable(_range?: Range): Promise { - return Promise.resolve(); - // if (this.document.languageId === "python") { - // // Workaround for https://github.com/microsoft/vscode-python/issues/20455 - // await vscode.commands.executeCommand("editor.action.codeAction", { - // kind: "refactor.extract", - // }); - // await sleep(250); - // await vscode.commands.executeCommand("selectNextCodeAction"); - // await vscode.commands.executeCommand("acceptSelectedCodeAction"); - // } else { - // await vscode.commands.executeCommand("editor.action.codeAction", { - // kind: "refactor.extract.constant", - // preferred: true, - // }); - // } - - // await sleep(250); - } -} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts deleted file mode 100644 index f2cf76ca34..0000000000 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Range, TextLine } from "@cursorless/common"; -// import { fromVscodeRange } from "../../vscodeUtil"; -// import * as vscode from "vscode"; -import { Buffer } from "neovim"; - -export default class NeovimTextLineImpl implements TextLine { - private buffer: Buffer; - private _lineNumber: number; - - constructor(buffer: Buffer, lineNumber: number) { - this.buffer = buffer; - this._lineNumber = lineNumber; - } - - get lineNumber(): number { - return this._lineNumber; - } - - get text(): string { - const lines = this.buffer.getLines({ - start: this.lineNumber, - end: this.lineNumber + 1, - strictIndexing: true, - }) as unknown as string[]; // TODO: update - return lines[0]; - } - - get range(): Range { - return new Range(this.lineNumber, 0, this.lineNumber, this.text.length); // TODO: update - } - - get rangeIncludingLineBreak(): Range { - return new Range(this.lineNumber, 0, this.lineNumber, this.text.length + 1); // TODO: update - } - - get firstNonWhitespaceCharacterIndex(): number { - return this.text.trimStart().length; - } - - get lastNonWhitespaceCharacterIndex(): number { - return this.text.trimEnd().length; //TODO: update - } - - get isEmptyOrWhitespace(): boolean { - return this.firstNonWhitespaceCharacterIndex === this.text.length; - } -} diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 6c42bf8ce4..635dd03936 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -16,11 +16,6 @@ export default function entry(plugin: NvimPlugin) { // plugin.setOptions({ dev: false }); plugin.setOptions({ dev: true }); - // TODO: remove this function - plugin.registerFunction("CursorlessLoadNode", () => loadNode(plugin), { - sync: false, - }); - plugin.registerFunction( "CursorlessLoadExtension", () => loadExtension(plugin), @@ -28,19 +23,6 @@ export default function entry(plugin: NvimPlugin) { ); } -// TODO: remove this function -/** - * Load node.exe inside nvim.exe. - * This is useful for debugging purpose so we can attach to node. - */ -function loadNode(plugin: NvimPlugin) { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); - - console.warn("loadNode(): " + currentDateStr); - // plugin.nvim.setLine(createCursorlessEngine.toString().split("\n")[0]); -} - /** * Load the cursorless engine. */ diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 51e5c0b13e..a2eb1036f5 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -1,4 +1,4 @@ -// Helper directly calling into Neovim apis, generally exported by talon.nvim +// Helper directly calling into Neovim apis, generally lua, exported by talon.nvim import { Position, Range, Selection } from "@cursorless/common"; import { NeovimClient } from "neovim/lib/api/client"; import { Window } from "neovim/lib/api/Window"; diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts new file mode 100644 index 0000000000..aeec1a4d77 --- /dev/null +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -0,0 +1,56 @@ +// Helper wrappers, generally around neovimApi.ts + +import { bufferGetSelections, windowGetVisibleRanges } from "./neovimApi"; +import { neovimContext } from "./singletons/context.singleton"; +import { ide } from "./singletons/ide.singleton"; +import { receivedBufferEvent } from "./types/BufferManager"; + +/** + * Initialize the current editor (and current document). + * We always overwrite the current editor from scratch for now + * because we reinitialize it for every command we receive + * + * TODO: We only initialize one editor(current window) with one document(current buffer) + * we need to support updating editors and documents on the fly + */ +export async function updateTextEditor() { + const client = neovimContext().client; + const window = await client.window; + const buffer = await window.buffer; + const lines = await buffer.lines; + // console.warn(`updateTextEditor(): lines=${lines}`); + console.warn( + `creating editor/document for window:${window.id} buffer:${buffer.id}`, + ); + const selections = await bufferGetSelections(window, client); + const visibleRanges = await windowGetVisibleRanges(window, client, lines); + ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); +} + +/** + * Subscribe to buffer updates, e.g. when the text changes. + * TODO: keeping this code as it was previously tested and it works but need to see when it + * will be useful (to update hats?) + */ +export async function subscribeBufferUpdates() { + const client = neovimContext().client; + + // initialize the editor since it is needed before we can attach? + await updateTextEditor(); + + /** + * "attach" to Nvim buffers to subscribe to buffer update events. + * This is similar to TextChanged but more powerful and granular. + * + * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() + */ + const buffers = await client.buffers; + buffers.forEach( + /* async */ (buf) => { + console.warn("listening for changes in buffer: ", buf.id); + buf.listen("lines", receivedBufferEvent); + // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function + // await buf[ATTACH](true); + }, + ); +} diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index c58e9cb0e8..1648a18d74 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,30 +1,6 @@ import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; -import { neovimContext } from "./singletons/context.singleton"; -import { ide } from "./singletons/ide.singleton"; -import { bufferGetSelections, windowGetVisibleRanges } from "./neovimApi"; - -/** - * Initialize the current editor (and current document). - * We always overwrite the current editor from scratch for now - * because we reinitialize it for every command we receive - * - * TODO: We only initialize one editor(current window) with one document(current buffer) - * we need to support updating editors and documents on the fly - */ -export async function updateTextEditor() { - const client = neovimContext().client; - const window = await client.window; - const buffer = await window.buffer; - const lines = await buffer.lines; - // console.warn(`updateTextEditor(): lines=${lines}`); - console.warn( - `creating editor/document for window:${window.id} buffer:${buffer.id}`, - ); - const selections = await bufferGetSelections(window, client); - const visibleRanges = await windowGetVisibleRanges(window, client, lines); - ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); -} +import { updateTextEditor } from "./neovimHelpers"; /** * Handle the command received from the command-server Neovim extension diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 0a3f326a32..e11e84e107 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -5,9 +5,9 @@ import { Buffer } from "neovim"; import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; // import { Disposable, Uri } from "vscode"; import { eventEmitter } from "../events"; -import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { fromNeovimContentChange } from "../ide/neovim/NeovimEvents"; import { bufferManager } from "../singletons/bufmgr.singleton"; +import { InMemoryTextDocumentImpl } from "../ide/neovim/InMemoryTextDocumentImpl"; const BUFFER_SCHEME = "neovim"; @@ -142,7 +142,7 @@ export async function receivedBufferEvent( const document = bufferManager().getTextDocumentForBufferId( buffer.id, - ) as NeovimTextDocumentImpl; + ) as InMemoryTextDocumentImpl; // const contents = await document.getText(); // console.warn( // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, From dbcf58b6d7c99b03eda1666e2471d24382efea4a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 09:48:31 +0000 Subject: [PATCH 065/504] refactor: rename in memory classes to neovim classes --- packages/cursorless-neovim/TODO.md | 5 ++++- .../src/ide/neovim/NeovimIDE.ts | 10 +++++----- ...DocumentImpl.ts => NeovimTextDocumentImpl.ts} | 6 +++--- ...TextEditorImpl.ts => NeovimTextEditorImpl.ts} | 8 ++++---- ...moryTextLineImpl.ts => NeovimTextLineImpl.ts} | 16 ++++++++-------- .../cursorless-neovim/src/types/BufferManager.ts | 4 ++-- 6 files changed, 26 insertions(+), 23 deletions(-) rename packages/cursorless-neovim/src/ide/neovim/{InMemoryTextDocumentImpl.ts => NeovimTextDocumentImpl.ts} (98%) rename packages/cursorless-neovim/src/ide/neovim/{InMemoryTextEditorImpl.ts => NeovimTextEditorImpl.ts} (95%) rename packages/cursorless-neovim/src/ide/neovim/{InMemoryTextLineImpl.ts => NeovimTextLineImpl.ts} (64%) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index e7ce7b681d..433642ec82 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -3,6 +3,9 @@ - integrate tests for cursorless-neovim? - use same yaml files? - local tests before integrating to CI? + * see testCaseRecorder.vscode.test.ts + +* prePhrase support in command server # cleanup @@ -13,7 +16,7 @@ # bugs - `take file` doesn't work, and just moves the cursor to the beginning of the file -- I can't chain two cursorless commands without waiting a little bit +- I can't chain two cursorless commands without waiting a little bit, command client: Exception: Timed out waiting for response # merge diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index c26014a813..1faebac1f2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -32,7 +32,7 @@ import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import { Window } from "neovim"; -import { InMemoryTextEditorImpl } from "./InMemoryTextEditorImpl"; +import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -59,7 +59,7 @@ export class NeovimIDE implements IDE { this.clipboard = new NeovimClipboard(); this.capabilities = new NeovimCapabilities(); // this.editorMap = new Map(); - this.editorMap = new Map(); + this.editorMap = new Map(); this.activeWindow = undefined; } @@ -126,7 +126,7 @@ export class NeovimIDE implements IDE { return editor; } - get visibleTextEditors(): InMemoryTextEditorImpl[] { + get visibleTextEditors(): NeovimTextEditorImpl[] { return Array.from(this.editorMap.values()); // throw Error("visibleTextEditors Not implemented"); } @@ -204,7 +204,7 @@ export class NeovimIDE implements IDE { lines: string[], visibleRanges: Range[], selections: Selection[], - ): InMemoryTextEditorImpl { + ): NeovimTextEditorImpl { if (!this.editorMap.has(editor)) { this.toNeovimEditor(editor, bufferId, lines, visibleRanges, selections); } @@ -219,7 +219,7 @@ export class NeovimIDE implements IDE { selections: Selection[], ): void { this.activeWindow = editor; - const impl = new InMemoryTextEditorImpl( + const impl = new NeovimTextEditorImpl( uuid(), this, editor, diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts similarity index 98% rename from packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 4153b3dd92..c6802fc93c 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -6,9 +6,9 @@ import { TextLine, } from "@cursorless/common"; import { URI } from "vscode-uri"; -import InMemoryTextLineImpl from "./InMemoryTextLineImpl"; +import NeovimTextLineImpl from "./NeovimTextLineImpl"; -export class InMemoryTextDocumentImpl implements TextDocument { +export class NeovimTextDocumentImpl implements TextDocument { private _uri: URI; private _languageId: string; private _version: number; @@ -87,7 +87,7 @@ export class InMemoryTextDocumentImpl implements TextDocument { throw new Error("Illegal value for `line`"); } - return new InMemoryTextLineImpl( + return new NeovimTextLineImpl( line, this._lines[line], line === this._lines.length - 1, diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts similarity index 95% rename from packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 0d1cd85292..f1d5752f77 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -12,12 +12,12 @@ import { } from "@cursorless/common"; import { NeovimIDE } from "./NeovimIDE"; import { Window } from "neovim"; -import { InMemoryTextDocumentImpl } from "./InMemoryTextDocumentImpl"; +import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; import { neovimContext } from "../../singletons/context.singleton"; -export class InMemoryTextEditorImpl implements EditableTextEditor { +export class NeovimTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; private _selections: Selection[]; @@ -31,7 +31,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { selections: Selection[], ) { // TODO: don't hardcode arguments - this.document = new InMemoryTextDocumentImpl( + this.document = new NeovimTextDocumentImpl( URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), "plaintext", 1, @@ -39,7 +39,7 @@ export class InMemoryTextEditorImpl implements EditableTextEditor { "\r\n", lines, ); - // console.warn(`InMemoryTextEditorImpl(): lines=${lines}`); + // console.warn(`NeovimTextEditorImpl(): lines=${lines}`); this._selections = selections; } diff --git a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts similarity index 64% rename from packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts rename to packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts index 3ffa616ae5..588232d465 100644 --- a/packages/cursorless-neovim/src/ide/neovim/InMemoryTextLineImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts @@ -1,13 +1,13 @@ import { Range, TextLine } from "@cursorless/common"; -export default class InMemoryTextLineImpl implements TextLine { +export default class NeovimTextLineImpl implements TextLine { private readonly _lineNumber: number; private readonly _text: string; private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { // console.warn( - // `InMemoryTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}, eol='${eol}'`, + // `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}, eol='${eol}'`, // ); this._lineNumber = lineNumber; this._text = text; @@ -19,13 +19,13 @@ export default class InMemoryTextLineImpl implements TextLine { } get text(): string { - // console.warn(`InMemoryTextLineImpl.text()='${this._text}'`); + // console.warn(`NeovimTextLineImpl.text()='${this._text}'`); return this._text; } get range(): Range { // console.warn( - // `InMemoryTextLineImpl.range(): range=(${this._lineNumber}, 0), (${this._lineNumber}, ${this._text.length})`, + // `NeovimTextLineImpl.range(): range=(${this._lineNumber}, 0), (${this._lineNumber}, ${this._text.length})`, // ); return new Range(this._lineNumber, 0, this._lineNumber, this._text.length); } @@ -33,12 +33,12 @@ export default class InMemoryTextLineImpl implements TextLine { get rangeIncludingLineBreak(): Range { if (this._isLastLine) { // console.warn( - // `InMemoryTextLineImpl.rangeIncludingLineBreak(): last line=(${this.range.start.line}, ${this.range.start.character}), (${this.range.end.line}, ${this.range.end.character})`, + // `NeovimTextLineImpl.rangeIncludingLineBreak(): last line=(${this.range.start.line}, ${this.range.start.character}), (${this.range.end.line}, ${this.range.end.character})`, // ); return this.range; } // console.warn( - // `InMemoryTextLineImpl.rangeIncludingLineBreak(): range=(${ + // `NeovimTextLineImpl.rangeIncludingLineBreak(): range=(${ // this._lineNumber // }, 0), ${this._lineNumber + 1}, 0})`, // ); @@ -49,7 +49,7 @@ export default class InMemoryTextLineImpl implements TextLine { //TODO@api, rename to 'leadingWhitespaceLength' const index = /^(\s*)/.exec(this._text)![1].length; // console.warn( - // `InMemoryTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, + // `NeovimTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, // ); return index; } @@ -57,7 +57,7 @@ export default class InMemoryTextLineImpl implements TextLine { get lastNonWhitespaceCharacterIndex(): number { const index = this.text.trimEnd().length; // console.warn( - // `InMemoryTextLineImpl.lastNonWhitespaceCharacterIndex index=${index}`, + // `NeovimTextLineImpl.lastNonWhitespaceCharacterIndex index=${index}`, // ); return index; } diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index e11e84e107..841e5da4f9 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -7,7 +7,7 @@ import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; import { eventEmitter } from "../events"; import { fromNeovimContentChange } from "../ide/neovim/NeovimEvents"; import { bufferManager } from "../singletons/bufmgr.singleton"; -import { InMemoryTextDocumentImpl } from "../ide/neovim/InMemoryTextDocumentImpl"; +import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; const BUFFER_SCHEME = "neovim"; @@ -142,7 +142,7 @@ export async function receivedBufferEvent( const document = bufferManager().getTextDocumentForBufferId( buffer.id, - ) as InMemoryTextDocumentImpl; + ) as NeovimTextDocumentImpl; // const contents = await document.getText(); // console.warn( // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, From 1110625410f2bff2ac5827d7350da2c6a2f8b991 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 17:33:55 +0000 Subject: [PATCH 066/504] docs: todo list --- packages/cursorless-neovim/TODO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 433642ec82..e14a599b70 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -5,7 +5,7 @@ - local tests before integrating to CI? * see testCaseRecorder.vscode.test.ts -* prePhrase support in command server +* prePhrase support in command server? # cleanup @@ -16,7 +16,7 @@ # bugs - `take file` doesn't work, and just moves the cursor to the beginning of the file -- I can't chain two cursorless commands without waiting a little bit, command client: Exception: Timed out waiting for response +- need to be in normal mode to execute the `take` command, as otherwise: Exception: Timed out waiting for response # merge From 8b5d092b78979d17cfd2743ef7fbdf2d18f36b6a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 18 Mar 2024 17:34:38 +0000 Subject: [PATCH 067/504] refactor: disabled comments --- packages/cursorless-neovim/src/neovimApi.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index a2eb1036f5..37f3377f61 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -60,11 +60,11 @@ export async function bufferSetSelections( }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ selections[0].end.character - 1 })`; - console.warn( - `bufferSetSelections() selections=${selections[0].start.line},${selections[0].start.character},${selections[0].end.line},${selections[0].end.character} luaCode=${luaCode}`, - ); + // console.warn( + // `bufferSetSelections() selections=${selections[0].start.line},${selections[0].start.character},${selections[0].end.line},${selections[0].end.character} luaCode=${luaCode}`, + // ); await client.executeLua(luaCode, []); - console.warn(`bufferSetSelections() done`); + // console.warn(`bufferSetSelections() done`); } /** From 4f6992d6138094581c462ac1443f186efca7547e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 14:38:56 +0000 Subject: [PATCH 068/504] fix: await setSelectionsWithoutFocusingEditor() --- packages/cursorless-engine/src/actions/BringMoveSwap.ts | 5 ++++- packages/cursorless-engine/src/actions/CallbackAction.ts | 2 +- packages/cursorless-engine/src/actions/Deselect.ts | 2 +- packages/cursorless-engine/src/actions/InsertCopy.ts | 5 ++++- packages/cursorless-engine/src/actions/InsertEmptyLines.ts | 2 +- packages/cursorless-engine/src/actions/PasteFromClipboard.ts | 2 +- packages/cursorless-engine/src/actions/Wrap.ts | 5 ++++- .../src/util/setSelectionsAndFocusEditor.ts | 2 +- 8 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-engine/src/actions/BringMoveSwap.ts b/packages/cursorless-engine/src/actions/BringMoveSwap.ts index 16fb9c939a..1984e5f51f 100644 --- a/packages/cursorless-engine/src/actions/BringMoveSwap.ts +++ b/packages/cursorless-engine/src/actions/BringMoveSwap.ts @@ -209,7 +209,10 @@ abstract class BringMoveSwap { // NB: We set the selections here because we don't trust vscode to // properly move the cursor on a bring. Sometimes it will smear an // empty selection - setSelectionsWithoutFocusingEditor(editableEditor, cursorSelections); + await setSelectionsWithoutFocusingEditor( + editableEditor, + cursorSelections, + ); const marks = [ ...this.getMarks(sourceEdits, updatedSourceEditSelections), diff --git a/packages/cursorless-engine/src/actions/CallbackAction.ts b/packages/cursorless-engine/src/actions/CallbackAction.ts index e3b0810292..6a51ba6002 100644 --- a/packages/cursorless-engine/src/actions/CallbackAction.ts +++ b/packages/cursorless-engine/src/actions/CallbackAction.ts @@ -116,7 +116,7 @@ export class CallbackAction { // very end. This code can run on multiple editors in the course of // one command, so we want to avoid focusing the editor multiple // times. - setSelectionsWithoutFocusingEditor( + await setSelectionsWithoutFocusingEditor( editableEditor, updatedOriginalSelections, ); diff --git a/packages/cursorless-engine/src/actions/Deselect.ts b/packages/cursorless-engine/src/actions/Deselect.ts index 7534e77de0..2767efc9c9 100644 --- a/packages/cursorless-engine/src/actions/Deselect.ts +++ b/packages/cursorless-engine/src/actions/Deselect.ts @@ -24,7 +24,7 @@ export default class Deselect implements SimpleAction { throw new SelectionRequiredError(); } - setSelectionsWithoutFocusingEditor( + await setSelectionsWithoutFocusingEditor( ide().getEditableTextEditor(editor), newSelections, ); diff --git a/packages/cursorless-engine/src/actions/InsertCopy.ts b/packages/cursorless-engine/src/actions/InsertCopy.ts index d9caad1366..d8a59af84f 100644 --- a/packages/cursorless-engine/src/actions/InsertCopy.ts +++ b/packages/cursorless-engine/src/actions/InsertCopy.ts @@ -86,7 +86,10 @@ class InsertCopy implements SimpleAction { ([edit, selection]) => edit!.updateRange(selection!), ); - setSelectionsWithoutFocusingEditor(editableEditor, updatedEditorSelections); + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedEditorSelections, + ); const primarySelection = editor.selections[0]; if ( diff --git a/packages/cursorless-engine/src/actions/InsertEmptyLines.ts b/packages/cursorless-engine/src/actions/InsertEmptyLines.ts index 109673a9a4..b15b8fec42 100644 --- a/packages/cursorless-engine/src/actions/InsertEmptyLines.ts +++ b/packages/cursorless-engine/src/actions/InsertEmptyLines.ts @@ -61,7 +61,7 @@ class InsertEmptyLines implements SimpleAction { ], ); - setSelectionsWithoutFocusingEditor( + await setSelectionsWithoutFocusingEditor( editableEditor, updatedCursorSelections, ); diff --git a/packages/cursorless-engine/src/actions/PasteFromClipboard.ts b/packages/cursorless-engine/src/actions/PasteFromClipboard.ts index d260696e9b..8c1c24854d 100644 --- a/packages/cursorless-engine/src/actions/PasteFromClipboard.ts +++ b/packages/cursorless-engine/src/actions/PasteFromClipboard.ts @@ -60,7 +60,7 @@ export class PasteFromClipboard { // Reset cursors on the editor where the edits took place. // NB: We don't focus the editor here because we want to focus the original // editor, not the one where the edits took place - setSelectionsWithoutFocusingEditor(editor, updatedCursorSelections); + await setSelectionsWithoutFocusingEditor(editor, updatedCursorSelections); // If necessary focus back original editor if (originalEditor != null && !originalEditor.isActive) { diff --git a/packages/cursorless-engine/src/actions/Wrap.ts b/packages/cursorless-engine/src/actions/Wrap.ts index 53f320b436..bd008e3655 100644 --- a/packages/cursorless-engine/src/actions/Wrap.ts +++ b/packages/cursorless-engine/src/actions/Wrap.ts @@ -111,7 +111,10 @@ export default class Wrap { ], ); - setSelectionsWithoutFocusingEditor(editableEditor, cursorSelections); + await setSelectionsWithoutFocusingEditor( + editableEditor, + cursorSelections, + ); await ide().flashRanges( delimiterSelections.map((selection) => ({ diff --git a/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts b/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts index 7c92f46d2e..2d5c30e7c4 100644 --- a/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts +++ b/packages/cursorless-engine/src/util/setSelectionsAndFocusEditor.ts @@ -9,7 +9,7 @@ export async function setSelectionsAndFocusEditor( selections: Selection[], revealRange: boolean = true, ) { - setSelectionsWithoutFocusingEditor(editor, selections); + await setSelectionsWithoutFocusingEditor(editor, selections); if (revealRange) { await editor.revealRange(editor.selections[0]); From 76109cfcb6448d628a3efadd55ca779e45011a6d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 14:40:28 +0000 Subject: [PATCH 069/504] feat: Cursorless "copy" action --- .../src/ide/neovim/NeovimCapabilities.ts | 2 +- .../src/ide/neovim/NeovimTextEditorImpl.ts | 10 ++++-- packages/cursorless-neovim/src/neovimApi.ts | 35 +++++++++++++++---- .../cursorless-neovim/src/neovimHelpers.ts | 17 ++++++++- 4 files changed, 54 insertions(+), 10 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts index cb6591a8ee..8a6437e10b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts @@ -2,7 +2,7 @@ import { Capabilities } from "@cursorless/common"; export class NeovimCapabilities implements Capabilities { commands = { - clipboardCopy: undefined, + clipboardCopy: { acceptsLocation: false }, toggleLineComment: undefined, indentLine: undefined, outdentLine: undefined, diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index f1d5752f77..b771ef06b8 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -16,6 +16,7 @@ import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; import { neovimContext } from "../../singletons/context.singleton"; +import { neovimClipboardCopy } from "../../neovimHelpers"; export class NeovimTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; @@ -71,7 +72,11 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } get isActive(): boolean { - throw Error("isActive Not implemented"); + // TODO: implement it to support multiple editors + // Commenting for now to avoid exceptions being triggered + // when issuing "copy" commands even if not fatal + // throw Error("isActive Not implemented"); + return true; } public isEqual(other: TextEditor): boolean { @@ -135,7 +140,8 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } public async clipboardCopy(_ranges?: Range[]): Promise { - throw Error("clipboardCopy Not implemented"); + await neovimClipboardCopy(); + // throw Error("clipboardCopy Not implemented"); } public async clipboardPaste(_ranges?: Range[]): Promise { diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 37f3377f61..a1f9aca69b 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -55,14 +55,25 @@ export async function bufferSetSelections( // cursorless has 0-based lines/columns, but neovim has 1-based lines and 0-based columns // also, experience shows we need to subtract 1 from the end character to stop on it in visual mode (instead of after it) // https://neovim.io/doc/user/api.html#nvim_win_set_cursor() + + // TODO: this works fine for the "take" command + // let endIndex = selections[0].end.character - 1; + // TODO: this is mostly to avoid an out of bound when calling the lua function: nvim_win_set_cursor() + // if (endIndex === -1) { + // endIndex = 0; + // } + + // TODO: this works fine for the "copy" command, and for resetting the selection + const endIndex = selections[0].end.character; + const luaCode = `return require("talon.cursorless").select_range(${ selections[0].start.line + 1 - }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ - selections[0].end.character - 1 - })`; - // console.warn( - // `bufferSetSelections() selections=${selections[0].start.line},${selections[0].start.character},${selections[0].end.line},${selections[0].end.character} luaCode=${luaCode}`, - // ); + }, ${selections[0].start.character}, ${ + selections[0].end.line + 1 + }, ${endIndex})`; + console.warn( + `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`, + ); await client.executeLua(luaCode, []); // console.warn(`bufferSetSelections() done`); } @@ -93,3 +104,15 @@ export async function windowGetVisibleRanges( ), ]; } + +export async function putToClipboard(data: string, client: NeovimClient) { + const luaCode = `return require("talon.cursorless").put_to_clipboard("${data}")`; + await client.executeLua(luaCode, []); +} + +// TODO: this hasn't been tested yet +export async function getFromClipboard(client: NeovimClient): Promise { + const luaCode = `return require("talon.cursorless").get_from_clipboard()`; + const data = await client.executeLua(luaCode, []); + return data as unknown as string; +} diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index aeec1a4d77..dda39ca747 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -1,9 +1,15 @@ // Helper wrappers, generally around neovimApi.ts -import { bufferGetSelections, windowGetVisibleRanges } from "./neovimApi"; +import { Range } from "@cursorless/common"; +import { + bufferGetSelections, + putToClipboard, + windowGetVisibleRanges, +} from "./neovimApi"; import { neovimContext } from "./singletons/context.singleton"; import { ide } from "./singletons/ide.singleton"; import { receivedBufferEvent } from "./types/BufferManager"; +import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; /** * Initialize the current editor (and current document). @@ -54,3 +60,12 @@ export async function subscribeBufferUpdates() { }, ); } + +export async function neovimClipboardCopy(): Promise { + const editor = ide().activeTextEditor as NeovimTextEditorImpl; + const client = neovimContext().client; + const window = await client.window; + const selections = await bufferGetSelections(window, client); + const data = editor.document.getText(selections[0]); + await putToClipboard(data, client); +} From 308ac6e998275dceb9fa36f5b2e15ea3f74916be Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 14:45:15 +0000 Subject: [PATCH 070/504] docs: todo --- packages/cursorless-neovim/TODO.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index e14a599b70..9f95c74557 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,11 +1,13 @@ # features - integrate tests for cursorless-neovim? - - use same yaml files? - - local tests before integrating to CI? - * see testCaseRecorder.vscode.test.ts +- use same yaml files? +- local tests before integrating to CI? +- see testCaseRecorder.vscode.test.ts -* prePhrase support in command server? +- "paste to row one" command require the text editor edit() function to be implemented +- prePhrase support in command server? +- only one comment to build, run neovim, and attach to it? (see my build program, run program, debug program) # cleanup @@ -15,6 +17,8 @@ # bugs +- we lose the initial selection if we were in visual mode before issuing a `copy` command. it does go back to the right line though. + - `take file` doesn't work, and just moves the cursor to the beginning of the file - need to be in normal mode to execute the `take` command, as otherwise: Exception: Timed out waiting for response From 6dbaf2776f9d649078a5d813f476dcc3c28f90ee Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 15:30:11 +0000 Subject: [PATCH 071/504] fix: wrong use of set selections --- packages/common/src/types/TextEditor.ts | 1 - packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/common/src/types/TextEditor.ts b/packages/common/src/types/TextEditor.ts index 3c377e20e4..2dfd2576bd 100644 --- a/packages/common/src/types/TextEditor.ts +++ b/packages/common/src/types/TextEditor.ts @@ -54,7 +54,6 @@ export interface TextEditor { } export interface EditableTextEditor extends TextEditor { - // selections: Selection[]; setSelections(selections: Selection[]): Promise; options: TextEditorOptions; diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts index c46588e68f..3507a5ce2b 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts @@ -103,7 +103,7 @@ async function focusNotebookCell(editor: VscodeTextEditorImpl) { end: desiredEditorIndex + 1, }), ]; - await desiredNotebookEditor.setSelections(desiredSelections); + desiredNotebookEditor.selections = desiredSelections; // Issue a command to tell VSCode to focus the cell input editor // NB: We don't issue the command if it's already focused, because it turns From d451ae2340090018efa9e88cfbd3745f8f615ce5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 15:36:17 +0000 Subject: [PATCH 072/504] docs: todo --- packages/cursorless-neovim/TODO.md | 34 ++++++++++++------------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 9f95c74557..d3cce27ce0 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,31 +1,23 @@ # features -- integrate tests for cursorless-neovim? -- use same yaml files? -- local tests before integrating to CI? -- see testCaseRecorder.vscode.test.ts +- bring command -- "paste to row one" command require the text editor edit() function to be implemented -- prePhrase support in command server? -- only one comment to build, run neovim, and attach to it? (see my build program, run program, debug program) - -# cleanup - -- fix neovim terminology - - extension => plugin - - editor => window (any place remaining?) +* "paste to row one" command require the text editor edit() function to be implemented +* prePhrase support in command server? +* only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) +* separate PR for text editor setSelections() +* have the command server allow executing any lua function? probably not because we already have neovim rpc. # bugs - we lose the initial selection if we were in visual mode before issuing a `copy` command. it does go back to the right line though. - -- `take file` doesn't work, and just moves the cursor to the beginning of the file -- need to be in normal mode to execute the `take` command, as otherwise: Exception: Timed out waiting for response - -# merge - -- separate PR for setSelections() right now? +- `take file` doesn't work, and just moves the cursor at the beginning of the file # discussion -- have the command server allow executing any lua function? +# fidgeting + +- integrate tests for cursorless-neovim? see testCaseRecorder.vscode.test.ts +- fix neovim terminology + - extension => plugin + - editor => window (any place remaining?) From d556cc04604fc056d53839029877b27f046390ab Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 20:18:14 +0000 Subject: [PATCH 073/504] fix: restore selections property --- packages/common/src/types/TextEditor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/src/types/TextEditor.ts b/packages/common/src/types/TextEditor.ts index 2dfd2576bd..a68d5c0319 100644 --- a/packages/common/src/types/TextEditor.ts +++ b/packages/common/src/types/TextEditor.ts @@ -32,7 +32,7 @@ export interface TextEditor { /** * The selections in this text editor. */ - get selections(): Selection[]; + readonly selections: Selection[]; /** * Text editor options. From fa7dcbf563c924c484590817f373d6ff20c5d475 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 19 Mar 2024 20:18:24 +0000 Subject: [PATCH 074/504] docs: todo --- packages/cursorless-neovim/TODO.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index d3cce27ce0..09a308dc4f 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -3,10 +3,11 @@ - bring command * "paste to row one" command require the text editor edit() function to be implemented -* prePhrase support in command server? +* prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ * only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) -* separate PR for text editor setSelections() +* separate PR for text editor setSelections(). Fix getter vs property * have the command server allow executing any lua function? probably not because we already have neovim rpc. +* avoid importing cursorless from command server # bugs From 30cea7687d42611d168b9357990321776908e784 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 20:24:58 +0000 Subject: [PATCH 075/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/neovimHelpers.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index dda39ca747..553570510e 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -1,6 +1,5 @@ // Helper wrappers, generally around neovimApi.ts -import { Range } from "@cursorless/common"; import { bufferGetSelections, putToClipboard, From 31380869d3cc5fc9fcc4f92f77c974b2a6b658ec Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 20 Mar 2024 16:47:35 +0000 Subject: [PATCH 076/504] fix: new way to import the fake command server api after merge --- packages/cursorless-neovim/src/extension.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 1c42bf0757..656425677c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -1,6 +1,6 @@ import { + FakeCommandServerApi, FakeIDE, - getFakeCommandServerApi, isTesting, NormalizedIDE, Range, @@ -53,11 +53,11 @@ export async function activate(context: NeovimExtensionContext) { neovimIDE.runMode === "test", ); - // const commandServerApi = - // vscodeIDE.runMode === "test" - // ? getFakeCommandServerApi() + const fakeCommandServerApi = new FakeCommandServerApi(); + // const commandServerApi = isTesting() + // ? fakeCommandServerApi // : await getCommandServerApi(); - const commandServerApi = getFakeCommandServerApi(); + const commandServerApi = fakeCommandServerApi; const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); From d53ebe0bdfa162a9ef9e5d59be686576b1618b02 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 20 Mar 2024 16:49:55 +0000 Subject: [PATCH 077/504] fix: copy/take any target work in all modes except terminal mode --- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 42 +++++++++---------- .../src/ide/neovim/NeovimTextLineImpl.ts | 6 +-- packages/cursorless-neovim/src/neovimApi.ts | 3 +- .../cursorless-neovim/src/neovimHelpers.ts | 5 ++- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index c6802fc93c..60caf6f25e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -32,19 +32,17 @@ export class NeovimTextDocumentImpl implements TextDocument { } get lineCount(): number { + console.warn(`lineCount(): ${this._lineCount}`); return this._lineCount; } get range(): Range { - // TODO: use vscode implementation or josh's? - // const { end } = this.lineAt(this.lineCount - 1).range; - // return new Range(0, 0, end.line, end.character); - return new Range( - 0, - 0, - this._lines.length, - this._lines[this._lines.length - 1].length, + const { end } = this.lineAt(this.lineCount - 1).range; + const range = new Range(0, 0, end.line, end.character); + console.warn( + `range(): (${range.start.line},${range.start.character}),(${range.end.line},${range.end.character})`, ); + return range; } get eol(): EndOfLine { @@ -126,31 +124,31 @@ export class NeovimTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { - // console.warn(`getText() range=undefined`); + console.warn(`getText() range=undefined`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } - // console.warn(`getText() returning cached value=${this._cachedTextValue}`); + console.warn(`getText() returning cached value=${this._cachedTextValue}`); return this._cachedTextValue; } else { - // console.warn( - // `getText() range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character})`, - // ); + console.warn( + `getText() range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character})`, + ); } range = this._validateRange(range); if (range.isEmpty) { - // console.warn(`getText() returning empty`); + console.warn(`getText() returning empty`); return ""; } if (range.isSingleLine) { - // console.warn( - // `getText() returning single line ${this._lines[ - // range.start.line - // ].substring(range.start.character, range.end.character)}`, - // ); + console.warn( + `getText() returning single line ${this._lines[ + range.start.line + ].substring(range.start.character, range.end.character)}`, + ); return this._lines[range.start.line].substring( range.start.character, range.end.character, @@ -172,9 +170,9 @@ export class NeovimTextDocumentImpl implements TextDocument { this._lines[endLineIndex].substring(0, range.end.character), ); - // console.warn( - // `getText() returning multiple lines ${resultLines.join(lineEnding)}`, - // ); + console.warn( + `getText() returning multiple lines ${resultLines.join(lineEnding)}`, + ); return resultLines.join(lineEnding); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts index 588232d465..31c5e9d716 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts @@ -6,9 +6,9 @@ export default class NeovimTextLineImpl implements TextLine { private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { - // console.warn( - // `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}, eol='${eol}'`, - // ); + console.warn( + `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}`, + ); this._lineNumber = lineNumber; this._text = text; this._isLastLine = isLastLine; diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index a1f9aca69b..2e16118721 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -106,8 +106,7 @@ export async function windowGetVisibleRanges( } export async function putToClipboard(data: string, client: NeovimClient) { - const luaCode = `return require("talon.cursorless").put_to_clipboard("${data}")`; - await client.executeLua(luaCode, []); + await client.callFunction("setreg", ["*", data]); } // TODO: this hasn't been tested yet diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index dda39ca747..3acc3654e9 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -24,11 +24,14 @@ export async function updateTextEditor() { const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; - // console.warn(`updateTextEditor(): lines=${lines}`); + console.warn(`updateTextEditor(): lines=${lines}`); console.warn( `creating editor/document for window:${window.id} buffer:${buffer.id}`, ); const selections = await bufferGetSelections(window, client); + console.warn( + `updateTextEditor(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, + ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); } From 709f5ab786f27072cbb730d35671b584b9a0e065 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 09:08:32 +0000 Subject: [PATCH 078/504] feat: make CommandServerApi.getFocusedElementType async (for neovim) --- packages/common/src/FakeCommandServerApi.ts | 2 +- packages/common/src/types/CommandServerApi.ts | 2 +- packages/cursorless-engine/src/core/getCommandFallback.ts | 2 +- .../cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/common/src/FakeCommandServerApi.ts b/packages/common/src/FakeCommandServerApi.ts index b37500d407..8a96f44527 100644 --- a/packages/common/src/FakeCommandServerApi.ts +++ b/packages/common/src/FakeCommandServerApi.ts @@ -13,7 +13,7 @@ export class FakeCommandServerApi implements CommandServerApi { this.focusedElementType = "textEditor"; } - getFocusedElementType(): FocusedElementType | undefined { + async getFocusedElementType(): Promise { return this.focusedElementType; } diff --git a/packages/common/src/types/CommandServerApi.ts b/packages/common/src/types/CommandServerApi.ts index d051dee5db..7b87c5691f 100644 --- a/packages/common/src/types/CommandServerApi.ts +++ b/packages/common/src/types/CommandServerApi.ts @@ -2,7 +2,7 @@ * API object for interacting with the command server */ export interface CommandServerApi { - getFocusedElementType: () => FocusedElementType | undefined; + getFocusedElementType(): Promise; signals: { prePhrase: InboundSignal; diff --git a/packages/cursorless-engine/src/core/getCommandFallback.ts b/packages/cursorless-engine/src/core/getCommandFallback.ts index a1383227b0..d69a4b86dc 100644 --- a/packages/cursorless-engine/src/core/getCommandFallback.ts +++ b/packages/cursorless-engine/src/core/getCommandFallback.ts @@ -16,7 +16,7 @@ export async function getCommandFallback( ): Promise { if ( commandServerApi == null || - commandServerApi.getFocusedElementType() === "textEditor" + (await commandServerApi.getFocusedElementType()) === "textEditor" ) { return null; } diff --git a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts index 8be2e5bb06..31436e4f9e 100644 --- a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts +++ b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts @@ -295,7 +295,7 @@ export class TestCaseRecorder { ? spokenForm.spokenForms[0] : command.spokenForm, }, - this.commandServerApi?.getFocusedElementType(), + await this.commandServerApi?.getFocusedElementType(), hatTokenMap, this.storedTargets, this.spyIde, From c0ddff508b5485679fc4755fce35da89a13786b4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 09:09:52 +0000 Subject: [PATCH 079/504] feat: CommandServerApi implementation for neovim --- .../src/NeovimCommandServerApi.ts | 23 +++++++++++++++++++ packages/cursorless-neovim/src/extension.ts | 9 ++++---- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 packages/cursorless-neovim/src/NeovimCommandServerApi.ts diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts new file mode 100644 index 0000000000..6252866941 --- /dev/null +++ b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts @@ -0,0 +1,23 @@ +import { + CommandServerApi, + FocusedElementType, + InboundSignal, +} from "@cursorless/common"; +import { NeovimClient } from "neovim/lib/api/client"; + +export class NeovimCommandServerApi implements CommandServerApi { + signals: { prePhrase: InboundSignal }; + + constructor(private client: NeovimClient) { + this.signals = { prePhrase: { getVersion: async () => null } }; + } + + async getFocusedElementType(): Promise { + const current_mode = await this.client.mode; + if (current_mode.mode === "t" || current_mode.mode === "nt") { + return "terminal"; + } else { + return "textEditor"; + } + } +} diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 656425677c..9fcd81dede 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -23,6 +23,7 @@ import { BufferManager } from "./types/BufferManager"; import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { injectIde as injectIde2 } from "./singletons/ide.singleton"; +import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -54,10 +55,10 @@ export async function activate(context: NeovimExtensionContext) { ); const fakeCommandServerApi = new FakeCommandServerApi(); - // const commandServerApi = isTesting() - // ? fakeCommandServerApi - // : await getCommandServerApi(); - const commandServerApi = fakeCommandServerApi; + const neovimCommandServerApi = new NeovimCommandServerApi(client); + const commandServerApi = isTesting() + ? fakeCommandServerApi + : neovimCommandServerApi; const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); From 7b435acf92b565388e87f6f97fddb534dae13bd5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 09:10:19 +0000 Subject: [PATCH 080/504] docs: neovim terminology vs cursorless terminology --- packages/cursorless-neovim/TERMINOLOGY.md | 7 +++++++ packages/cursorless-neovim/src/types/BufferManager.ts | 9 --------- 2 files changed, 7 insertions(+), 9 deletions(-) create mode 100644 packages/cursorless-neovim/TERMINOLOGY.md diff --git a/packages/cursorless-neovim/TERMINOLOGY.md b/packages/cursorless-neovim/TERMINOLOGY.md new file mode 100644 index 0000000000..fac58d9a88 --- /dev/null +++ b/packages/cursorless-neovim/TERMINOLOGY.md @@ -0,0 +1,7 @@ +# TextEditor/TextDocument vs Window/Buffer + +1. Each Cursorless "TextDocument" corresponds to a neovim "Buffer" +2. Each Cursorless "TextEditor" corresponds to a neovim "Window" +3. A "TextEditor" corresponds to a view to a "TextDocument". The same "TextDocument" can be opened in two different "TextEditor". +4. When a "Window" changes in neovim, we need to reflect its "TextEditor" +5. When a "Buffer" changes in neovim, we need to reflect its "TextDocument". diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts index 841e5da4f9..4c16d74f16 100644 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ b/packages/cursorless-neovim/src/types/BufferManager.ts @@ -11,15 +11,6 @@ import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; const BUFFER_SCHEME = "neovim"; -// TODO: wip comment taken from vscode-neovim so needs review -// Integration notes: -// 1. Each Cursorless "TextDocument" corresponds to a neovim "Buffer" -// 2. Each Cursorless "TextEditor" corresponds to a neovim "Window" -// 3. Generally, a "TextEditor" corresponds to a "TextDocument", -// so the "Buffer" and "Window" in neovim have a one-to-one relationship -// 4. When visibleTextEditors change => create a "Buffer" and "Window" in neovim -// 5. When activeTextEditor changes => set the current "Window" in neovim - /** * Manages neovim windows & buffers and maps them to Cursorless editors & documents */ From 2e3e3916b2132586610fb7704b4afb8b7af9a0b5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 12:37:18 +0000 Subject: [PATCH 081/504] refactor: make the text editor edit() interface better for neovim --- packages/common/src/index.ts | 1 + packages/common/src/types/Edit.ts | 18 ++++++++++ packages/common/src/types/TextEditor.ts | 15 +++----- .../src/actions/BreakLine.ts | 9 +++-- .../src/actions/JoinLines.ts | 5 ++- .../cursorless-engine/src/actions/Wrap.ts | 2 +- .../src/core/updateSelections/RangeUpdater.ts | 2 +- .../core/updateSelections/updateSelections.ts | 4 +-- .../cursorless-engine/src/typings/Types.ts | 19 +--------- .../src/util/performDocumentEdits.ts | 15 ++------ .../src/ide/vscode/VscodeEdit.ts | 35 +++++++------------ .../src/ide/vscode/VscodeTextEditorImpl.ts | 9 ++--- 12 files changed, 54 insertions(+), 80 deletions(-) create mode 100644 packages/common/src/types/Edit.ts diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 61badf4813..224b5708aa 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -35,6 +35,7 @@ export * from "./types/RangeExpansionBehavior"; export * from "./types/InputBoxOptions"; export * from "./types/Position"; export * from "./types/Range"; +export * from "./types/Edit"; export * from "./types/RevealLineAt"; export * from "./types/Selection"; export * from "./types/TextDocument"; diff --git a/packages/common/src/types/Edit.ts b/packages/common/src/types/Edit.ts new file mode 100644 index 0000000000..9c51b1a9f7 --- /dev/null +++ b/packages/common/src/types/Edit.ts @@ -0,0 +1,18 @@ +import { Range } from ".."; + +/** Represent a single edit/change in the document */ +export interface Edit { + range: Range; + text: string; + + /** + * If this edit is an insertion, ie the range has zero length, then this + * field can be set to `true` to indicate that any adjacent empty selection + * should *not* be shifted to the right, as would normally happen with an + * insertion. This is equivalent to the + * [distinction](https://code.visualstudio.com/api/references/vscode-api#TextEditorEdit) + * in a vscode edit builder between doing a replace with an empty range + * versus doing an insert. + */ + isReplace?: boolean; +} diff --git a/packages/common/src/types/TextEditor.ts b/packages/common/src/types/TextEditor.ts index a68d5c0319..213cfb1f1e 100644 --- a/packages/common/src/types/TextEditor.ts +++ b/packages/common/src/types/TextEditor.ts @@ -1,10 +1,10 @@ import type { + Edit, Position, Range, RevealLineAt, Selection, TextDocument, - TextEditorEdit, TextEditorOptions, } from ".."; @@ -81,18 +81,11 @@ export interface EditableTextEditor extends TextEditor { /** * Perform an edit on the document associated with this text editor. * - * The given callback-function is invoked with an {@link TextEditorEdit edit-builder} which must - * be used to make edits. Note that the edit-builder is only valid while the - * callback executes. - * - * @param callback A function which can create edits using an {@link TextEditorEdit edit-builder}. - * @param options The undo/redo behavior around this edit. By default, undo stops will be created before and after this edit. + * @param edits the list of edits that need to be applied to the document + * (note that the implementation might need to sort them in reverse order) * @return A promise that resolves with a value indicating if the edits could be applied. */ - edit( - callback: (editBuilder: TextEditorEdit) => void, - options?: { undoStopBefore: boolean; undoStopAfter: boolean }, - ): Promise; + edit(edits: Edit[]): Promise; /** * Edit a new new notebook cell above. diff --git a/packages/cursorless-engine/src/actions/BreakLine.ts b/packages/cursorless-engine/src/actions/BreakLine.ts index 003b6715be..9ecda208e7 100644 --- a/packages/cursorless-engine/src/actions/BreakLine.ts +++ b/packages/cursorless-engine/src/actions/BreakLine.ts @@ -1,9 +1,14 @@ -import { FlashStyle, Position, Range, TextEditor } from "@cursorless/common"; +import { + Edit, + FlashStyle, + Position, + Range, + TextEditor, +} from "@cursorless/common"; import { flatten, zip } from "lodash"; import type { RangeUpdater } from "../core/updateSelections/RangeUpdater"; import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; import { ide } from "../singletons/ide.singleton"; -import { Edit } from "../typings/Types"; import { Target } from "../typings/target.types"; import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; import type { ActionReturnValue } from "./actions.types"; diff --git a/packages/cursorless-engine/src/actions/JoinLines.ts b/packages/cursorless-engine/src/actions/JoinLines.ts index 8c6ec1b6e7..895de4b0db 100644 --- a/packages/cursorless-engine/src/actions/JoinLines.ts +++ b/packages/cursorless-engine/src/actions/JoinLines.ts @@ -1,13 +1,12 @@ -import { FlashStyle, Range, TextEditor } from "@cursorless/common"; +import { Edit, FlashStyle, Range, TextEditor } from "@cursorless/common"; +import { range as iterRange, map, pairwise } from "itertools"; import { flatten, zip } from "lodash"; import type { RangeUpdater } from "../core/updateSelections/RangeUpdater"; import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; import { ide } from "../singletons/ide.singleton"; -import { Edit } from "../typings/Types"; import { Target } from "../typings/target.types"; import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; import type { ActionReturnValue } from "./actions.types"; -import { range as iterRange, map, pairwise } from "itertools"; export default class JoinLines { constructor(private rangeUpdater: RangeUpdater) { diff --git a/packages/cursorless-engine/src/actions/Wrap.ts b/packages/cursorless-engine/src/actions/Wrap.ts index bd008e3655..fa35fbbe34 100644 --- a/packages/cursorless-engine/src/actions/Wrap.ts +++ b/packages/cursorless-engine/src/actions/Wrap.ts @@ -1,4 +1,5 @@ import { + Edit, FlashStyle, RangeExpansionBehavior, Selection, @@ -10,7 +11,6 @@ import { performEditsAndUpdateFullSelectionInfos, } from "../core/updateSelections/updateSelections"; import { ide } from "../singletons/ide.singleton"; -import { Edit } from "../typings/Types"; import { Target } from "../typings/target.types"; import { FullSelectionInfo } from "../typings/updateSelections"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; diff --git a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts index bed97ab337..e261ff2fa9 100644 --- a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts +++ b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts @@ -1,12 +1,12 @@ import type { Disposable, + Edit, TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, } from "@cursorless/common"; import { pull } from "lodash"; import { ide } from "../../singletons/ide.singleton"; -import type { Edit } from "../../typings/Types"; import { ExtendedTextDocumentChangeEvent, FullRangeInfo, diff --git a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts index c2dded43e2..ea758d40cb 100644 --- a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts +++ b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts @@ -1,12 +1,12 @@ import { - RangeExpansionBehavior, + Edit, EditableTextEditor, Range, + RangeExpansionBehavior, Selection, TextDocument, } from "@cursorless/common"; import { flatten } from "lodash"; -import { Edit } from "../../typings/Types"; import { FullSelectionInfo, SelectionInfo, diff --git a/packages/cursorless-engine/src/typings/Types.ts b/packages/cursorless-engine/src/typings/Types.ts index 47cbc073f1..fd3e33e357 100644 --- a/packages/cursorless-engine/src/typings/Types.ts +++ b/packages/cursorless-engine/src/typings/Types.ts @@ -1,4 +1,4 @@ -import type { Range, Selection, TextEditor } from "@cursorless/common"; +import type { Edit, Range, Selection, TextEditor } from "@cursorless/common"; import type { SyntaxNode } from "web-tree-sitter"; export interface SelectionWithEditor { @@ -72,23 +72,6 @@ export type SelectionExtractor = ( nodes: SyntaxNode, ) => SelectionWithContext; -/** Represent a single edit/change in the document */ -export interface Edit { - range: Range; - text: string; - - /** - * If this edit is an insertion, ie the range has zero length, then this - * field can be set to `true` to indicate that any adjacent empty selection - * should *not* be shifted to the right, as would normally happen with an - * insertion. This is equivalent to the - * [distinction](https://code.visualstudio.com/api/references/vscode-api#TextEditorEdit) - * in a vscode edit builder between doing a replace with an empty range - * versus doing an insert. - */ - isReplace?: boolean; -} - export interface EditWithRangeUpdater extends Edit { /** * This function will be passed the resulting range containing {@link text} diff --git a/packages/cursorless-engine/src/util/performDocumentEdits.ts b/packages/cursorless-engine/src/util/performDocumentEdits.ts index de573b87f8..d339dc41e6 100644 --- a/packages/cursorless-engine/src/util/performDocumentEdits.ts +++ b/packages/cursorless-engine/src/util/performDocumentEdits.ts @@ -1,6 +1,5 @@ -import { EditableTextEditor } from "@cursorless/common"; +import { Edit, EditableTextEditor } from "@cursorless/common"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import { Edit } from "../typings/Types"; export async function performDocumentEdits( rangeUpdater: RangeUpdater, @@ -12,17 +11,7 @@ export async function performDocumentEdits( edits.filter((edit) => edit.isReplace), ); - const wereEditsApplied = await editor.edit((editBuilder) => { - edits.forEach(({ range, text, isReplace }) => { - if (text === "") { - editBuilder.delete(range); - } else if (range.isEmpty && !isReplace) { - editBuilder.insert(range.start, text); - } else { - editBuilder.replace(range, text); - } - }); - }); + const wereEditsApplied = await editor.edit(edits); deregister(); diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts index b738394255..48556be83d 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts @@ -1,31 +1,20 @@ -import { TextEditorEdit } from "@cursorless/common"; -import { - toVscodeEndOfLine, - toVscodePosition, - toVscodePositionOrRange, - toVscodeRange, -} from "@cursorless/vscode-common"; +import { Edit } from "@cursorless/common"; +import { toVscodePosition, toVscodeRange } from "@cursorless/vscode-common"; import type * as vscode from "vscode"; export default async function vscodeEdit( editor: vscode.TextEditor, - callback: (editBuilder: TextEditorEdit) => void, - options?: { undoStopBefore: boolean; undoStopAfter: boolean }, + edits: Edit[], ): Promise { return await editor.edit((editBuilder) => { - callback({ - replace: (location, value) => { - editBuilder.replace(toVscodePositionOrRange(location), value); - }, - insert: (location, value) => { - editBuilder.insert(toVscodePosition(location), value); - }, - delete: (location) => { - editBuilder.delete(toVscodeRange(location)); - }, - setEndOfLine: (endOfLine) => { - editBuilder.setEndOfLine(toVscodeEndOfLine(endOfLine)); - }, + edits.forEach(({ range, text, isReplace }) => { + if (text === "") { + editBuilder.delete(toVscodeRange(range)); + } else if (range.isEmpty && !isReplace) { + editBuilder.insert(toVscodePosition(range.start), text); + } else { + editBuilder.replace(toVscodeRange(range), text); + } }); - }, options); + }); } diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index c0f52b4140..5a2dd0d691 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -1,5 +1,6 @@ import { BreakpointDescriptor, + Edit, EditableTextEditor, Position, Range, @@ -8,7 +9,6 @@ import { sleep, TextDocument, TextEditor, - TextEditorEdit, TextEditorOptions, } from "@cursorless/common"; import { @@ -84,11 +84,8 @@ export class VscodeTextEditorImpl implements EditableTextEditor { return vscodeRevealLine(this, lineNumber, at); } - public edit( - callback: (editBuilder: TextEditorEdit) => void, - options?: { undoStopBefore: boolean; undoStopAfter: boolean }, - ): Promise { - return vscodeEdit(this.editor, callback, options); + public edit(edits: Edit[]): Promise { + return vscodeEdit(this.editor, edits); } public focus(): Promise { From 34da99f248f5e9beecafccb8cf2a3886ee66a4dc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 13:28:02 +0000 Subject: [PATCH 082/504] missing setSelections await --- .../cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts | 2 +- .../cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts index 6bcde2e58b..14a4933ea0 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts @@ -8,7 +8,7 @@ export async function vscodeInsertSnippet( ranges: Range[] | undefined, ): Promise { if (ranges != null) { - editor.setSelections(ranges.map((range) => range.toSelection(false))); + await editor.setSelections(ranges.map((range) => range.toSelection(false))); } await editor.focus(); diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index 5a2dd0d691..ebd1158b80 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -146,7 +146,7 @@ export class VscodeTextEditorImpl implements EditableTextEditor { public async insertLineAfter(ranges?: Range[]): Promise { if (ranges != null) { - this.setSelections(ranges.map((range) => range.toSelection(false))); + await this.setSelections(ranges.map((range) => range.toSelection(false))); } await this.focus(); await vscode.commands.executeCommand("editor.action.insertLineAfter"); From 37043618de0581764c97aca2572b90859107e465 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 16:02:26 +0000 Subject: [PATCH 083/504] feat: text editor edit() -> delete() implementation --- .../src/ide/neovim/NeovimEdit.ts | 100 ++++++++++++++++++ .../src/ide/neovim/NeovimTextEditorImpl.ts | 17 ++- 2 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts new file mode 100644 index 0000000000..2d6e671035 --- /dev/null +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -0,0 +1,100 @@ +import { Edit } from "@cursorless/common"; +import { Window } from "neovim"; +import { updateTextEditor } from "../../neovimHelpers"; +import { neovimContext } from "../../singletons/context.singleton"; + +export default async function neovimEdit( + editor: Window, + edits: Edit[], +): Promise { + const client = neovimContext().client; + const buffer = await client.window.buffer; + + // TODO: bring row three after four (test it) + + // We start applying the edits from the end of the document + // to make sure the edit ranges for the remaining one are stable + edits.reverse(); + edits.sort((a, b) => { + if (a.range.start.line === b.range.start.line) { + return b.range.start.character - a.range.start.character; + } + return b.range.start.line - a.range.start.line; + }); + + for (const edit of edits) { + const { range, text, isReplace } = edit; + // Uniform newlines so we can easily split + const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); + + if (text === "") { + // --- Delete + + // only keep the end of the last line + const lastLine = ( + await buffer.getLines({ + start: range.end.line, + end: range.end.line + 1, + strictIndexing: true, + }) + )[0]; + const endOfLastLine = lastLine.slice(range.end.character); + + // are we only modifying one line? + if (range.start.line === range.end.line) { + // only keep the beginning and end of the line + const singleLine = + lastLine.slice(0, range.start.character) + endOfLastLine; + // update that single line + await buffer.setLines(singleLine, { + start: range.start.line, + end: range.start.line + 1, + strictIndexing: true, + }); + } else { + if (range.start.character === 0) { + // if we are deleting from the start of the first line, we need to exclude the first line + await buffer.setLines(endOfLastLine, { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); + } else { + // only keep the beginning of the first line + const firstLine = ( + await buffer.getLines({ + start: range.start.line, + end: range.start.line + 1, + strictIndexing: true, + }) + )[0]; + const startOfFirstLine = firstLine.slice(0, range.start.character); + if (range.start.character === firstLine.length) { + // if we are deleting from the end of the first line, we need to append the last line to the first line + await buffer.setLines(startOfFirstLine + endOfLastLine, { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); + continue; + } + await buffer.setLines([startOfFirstLine, endOfLastLine], { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); + } + } + } else if (range.isEmpty && !isReplace) { + // --- Insert + throw Error("neovimEdit(): Insert not implemented"); + } else { + // --- Replace + throw Error("neovimEdit(): Replace not implemented"); + } + } + + // TODO: update our view of the TextEditor/TextDocument + await updateTextEditor(); + return true; +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index b771ef06b8..65b408d55f 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -1,5 +1,6 @@ import { BreakpointDescriptor, + Edit, EditableTextEditor, Position, Range, @@ -7,16 +8,16 @@ import { Selection, TextDocument, TextEditor, - TextEditorEdit, TextEditorOptions, } from "@cursorless/common"; -import { NeovimIDE } from "./NeovimIDE"; import { Window } from "neovim"; -import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; -import { neovimContext } from "../../singletons/context.singleton"; import { neovimClipboardCopy } from "../../neovimHelpers"; +import { neovimContext } from "../../singletons/context.singleton"; +import neovimEdit from "./NeovimEdit"; +import { NeovimIDE } from "./NeovimIDE"; +import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; export class NeovimTextEditorImpl implements EditableTextEditor { readonly document: TextDocument; @@ -94,11 +95,9 @@ export class NeovimTextEditorImpl implements EditableTextEditor { throw Error("revealLine Not implemented"); } - public edit( - callback: (editBuilder: TextEditorEdit) => void, - options?: { undoStopBefore: boolean; undoStopAfter: boolean }, - ): Promise { - throw Error("edit Not implemented"); + public async edit(edits: Edit[]): Promise { + //throw Error("edit Not implemented"); + return await neovimEdit(this.editor, edits); } public focus(): Promise { From b91758dddf70e9a2df698d7054eb8800603f802d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 16:26:23 +0000 Subject: [PATCH 084/504] refactor: neovim edit() --- .../src/ide/neovim/NeovimEdit.ts | 152 ++++++++++-------- 1 file changed, 84 insertions(+), 68 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 2d6e671035..e0a417e1b2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -1,4 +1,4 @@ -import { Edit } from "@cursorless/common"; +import { Edit, Position, Range } from "@cursorless/common"; import { Window } from "neovim"; import { updateTextEditor } from "../../neovimHelpers"; import { neovimContext } from "../../singletons/context.singleton"; @@ -7,9 +7,6 @@ export default async function neovimEdit( editor: Window, edits: Edit[], ): Promise { - const client = neovimContext().client; - const buffer = await client.window.buffer; - // TODO: bring row three after four (test it) // We start applying the edits from the end of the document @@ -24,77 +21,96 @@ export default async function neovimEdit( for (const edit of edits) { const { range, text, isReplace } = edit; - // Uniform newlines so we can easily split - const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); if (text === "") { - // --- Delete - - // only keep the end of the last line - const lastLine = ( - await buffer.getLines({ - start: range.end.line, - end: range.end.line + 1, - strictIndexing: true, - }) - )[0]; - const endOfLastLine = lastLine.slice(range.end.character); - - // are we only modifying one line? - if (range.start.line === range.end.line) { - // only keep the beginning and end of the line - const singleLine = - lastLine.slice(0, range.start.character) + endOfLastLine; - // update that single line - await buffer.setLines(singleLine, { - start: range.start.line, - end: range.start.line + 1, - strictIndexing: true, - }); - } else { - if (range.start.character === 0) { - // if we are deleting from the start of the first line, we need to exclude the first line - await buffer.setLines(endOfLastLine, { - start: range.start.line, - end: range.end.line + 1, - strictIndexing: true, - }); - } else { - // only keep the beginning of the first line - const firstLine = ( - await buffer.getLines({ - start: range.start.line, - end: range.start.line + 1, - strictIndexing: true, - }) - )[0]; - const startOfFirstLine = firstLine.slice(0, range.start.character); - if (range.start.character === firstLine.length) { - // if we are deleting from the end of the first line, we need to append the last line to the first line - await buffer.setLines(startOfFirstLine + endOfLastLine, { - start: range.start.line, - end: range.end.line + 1, - strictIndexing: true, - }); - continue; - } - await buffer.setLines([startOfFirstLine, endOfLastLine], { - start: range.start.line, - end: range.end.line + 1, - strictIndexing: true, - }); - } - } + await neovimDelete(range); } else if (range.isEmpty && !isReplace) { - // --- Insert - throw Error("neovimEdit(): Insert not implemented"); + await neovimInsert(range.start, text); } else { - // --- Replace - throw Error("neovimEdit(): Replace not implemented"); + await neovimReplace(range, text); } } - // TODO: update our view of the TextEditor/TextDocument await updateTextEditor(); return true; } + +async function neovimDelete(range: Range): Promise { + const client = neovimContext().client; + const buffer = await client.window.buffer; + + // only keep the end of the last line + const lastLine = ( + await buffer.getLines({ + start: range.end.line, + end: range.end.line + 1, + strictIndexing: true, + }) + )[0]; + const endOfLastLine = lastLine.slice(range.end.character); + + // are we only modifying one line? + if (range.start.line === range.end.line) { + // only keep the beginning and end of the line + const singleLine = lastLine.slice(0, range.start.character) + endOfLastLine; + // update that single line + await buffer.setLines(singleLine, { + start: range.start.line, + end: range.start.line + 1, + strictIndexing: true, + }); + return; + } + + // we are modifying multiple lines + + // are we not including the beginning of the first line? + if (range.start.character === 0) { + // if we are deleting from the start of the first line, we need to exclude the first line + await buffer.setLines(endOfLastLine, { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); + return; + } + + // only keep the beginning of the first line + const firstLine = ( + await buffer.getLines({ + start: range.start.line, + end: range.start.line + 1, + strictIndexing: true, + }) + )[0]; + const startOfFirstLine = firstLine.slice(0, range.start.character); + + // are we not including the newline at the end of the first line? + if (range.start.character === firstLine.length) { + // if we are deleting from the end of the first line, we need to append the last line to the first line + await buffer.setLines(startOfFirstLine + endOfLastLine, { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); + return; + } + + await buffer.setLines([startOfFirstLine, endOfLastLine], { + start: range.start.line, + end: range.end.line + 1, + strictIndexing: true, + }); +} + +function neovimInsert(position: Position, text: string) { + // Uniform newlines so we can easily split + const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); + throw Error("neovimEdit(): Insert not implemented"); +} + +function neovimReplace(range: Range, text: string) { + // Uniform newlines so we can easily split + const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); + throw Error("neovimEdit(): Replace not implemented"); +} From 746a7bee002536505049d8f8855dd23e62b7c7f9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 16:56:20 +0000 Subject: [PATCH 085/504] feat: text editor edit() -> insert() and replace() implementations --- .../src/ide/neovim/NeovimEdit.ts | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index e0a417e1b2..4530985010 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -103,14 +103,40 @@ async function neovimDelete(range: Range): Promise { }); } -function neovimInsert(position: Position, text: string) { +async function neovimInsert(position: Position, text: string) { // Uniform newlines so we can easily split - const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - throw Error("neovimEdit(): Insert not implemented"); + const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); + + const client = neovimContext().client; + const buffer = await client.window.buffer; + + // are we inserting at the beginning of a line? + if (position.character === 0) { + await buffer.insert(newLines, position.line); + return; + } + + // we are inserting from the middle of a line + const firstLine = ( + await buffer.getLines({ + start: position.line, + end: position.line + 1, + strictIndexing: true, + }) + )[0]; + const newFirstLine = + firstLine.slice(0, position.character) + + newLines[0] + + firstLine.slice(position.character); + + await buffer.setLines([newFirstLine, ...newLines.slice(1)], { + start: position.line, + end: position.line + 1, + strictIndexing: true, + }); } -function neovimReplace(range: Range, text: string) { - // Uniform newlines so we can easily split - const newlines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - throw Error("neovimEdit(): Replace not implemented"); +async function neovimReplace(range: Range, text: string) { + await neovimDelete(range); + await neovimInsert(range.start, text); } From e2ba46849bb700e1609d3b02b84dfdeb0d9f6e8a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 17:01:03 +0000 Subject: [PATCH 086/504] docs: todo list --- packages/cursorless-neovim/TODO.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 09a308dc4f..9b4d6464a1 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,20 +1,21 @@ -# features +# questions -- bring command +- merge talon-vscode-command-client and cursorless-talon? -* "paste to row one" command require the text editor edit() function to be implemented -* prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ -* only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) -* separate PR for text editor setSelections(). Fix getter vs property -* have the command server allow executing any lua function? probably not because we already have neovim rpc. -* avoid importing cursorless from command server +# features -# bugs +- "paste to row one" from the clipboard +- prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ +- only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) + - find a way to load neovim from script so we know when it is loaded so we can then attach to it for debugging? +- avoid importing cursorless from command server? +- test if we can reload the extensions after a modification without reloading neovim -- we lose the initial selection if we were in visual mode before issuing a `copy` command. it does go back to the right line though. -- `take file` doesn't work, and just moves the cursor at the beginning of the file +# to do later -# discussion +- separate PR for text editor setSelections() +- separate PR for the text editor edit() +- have the command server allow executing any lua function? probably not because we already have neovim rpc. # fidgeting @@ -22,3 +23,5 @@ - fix neovim terminology - extension => plugin - editor => window (any place remaining?) + have readme with the corresponding terms between vscode and neovim +- git repo to mention issues, for instance the can't reenter normal mode from terminal mode? From 62245992015f86028c118286a710cc857b9c0a10 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 21 Mar 2024 19:20:10 +0000 Subject: [PATCH 087/504] fix: working insertions (bring) bring row one before row three bring second paint row three after last paint row four bring first paint row three before first paint row four bring row one and row two before row four --- .../src/ide/neovim/NeovimEdit.ts | 52 +++++++++++-------- .../cursorless-neovim/test/paints_unix.txt | 1 + 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 4530985010..9e3a7e4f49 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -7,8 +7,6 @@ export default async function neovimEdit( editor: Window, edits: Edit[], ): Promise { - // TODO: bring row three after four (test it) - // We start applying the edits from the end of the document // to make sure the edit ranges for the remaining one are stable edits.reverse(); @@ -49,7 +47,7 @@ async function neovimDelete(range: Range): Promise { )[0]; const endOfLastLine = lastLine.slice(range.end.character); - // are we only modifying one line? + // are we only modifying one existing line? if (range.start.line === range.end.line) { // only keep the beginning and end of the line const singleLine = lastLine.slice(0, range.start.character) + endOfLastLine; @@ -104,36 +102,46 @@ async function neovimDelete(range: Range): Promise { } async function neovimInsert(position: Position, text: string) { - // Uniform newlines so we can easily split + // standardise newlines so we can easily split the lines const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); const client = neovimContext().client; const buffer = await client.window.buffer; - // are we inserting at the beginning of a line? - if (position.character === 0) { - await buffer.insert(newLines, position.line); - return; - } - - // we are inserting from the middle of a line - const firstLine = ( + const lineWhereInsertion = ( await buffer.getLines({ start: position.line, end: position.line + 1, strictIndexing: true, }) )[0]; - const newFirstLine = - firstLine.slice(0, position.character) + - newLines[0] + - firstLine.slice(position.character); - - await buffer.setLines([newFirstLine, ...newLines.slice(1)], { - start: position.line, - end: position.line + 1, - strictIndexing: true, - }); + const startOfFirstLine = lineWhereInsertion.slice(0, position.character); + const endOfLastLine = lineWhereInsertion.slice(position.character); + + // are we only inserting into one existing line? + if (newLines.length == 1) { + const singleLine = startOfFirstLine + newLines[0] + endOfLastLine; + // update that single line + await buffer.setLines(singleLine, { + start: position.line, + end: position.line + 1, + strictIndexing: true, + }); + return; + } + + // we are inserting multiple lines + + const firstLine = startOfFirstLine + newLines[0]; + const lastLine = newLines[newLines.length - 1] + endOfLastLine; + await buffer.setLines( + [firstLine, ...newLines.slice(1, newLines.length - 1), lastLine], + { + start: position.line, + end: position.line + 1, + strictIndexing: true, + }, + ); } async function neovimReplace(range: Range, text: string) { diff --git a/packages/cursorless-neovim/test/paints_unix.txt b/packages/cursorless-neovim/test/paints_unix.txt index ebac808404..3a705a1a5b 100644 --- a/packages/cursorless-neovim/test/paints_unix.txt +++ b/packages/cursorless-neovim/test/paints_unix.txt @@ -1,3 +1,4 @@ 0123 5678 01 345 789abcdef aaaa bbbb cccc +dddd eeee ffff From 1b751f28c2ca45c0b4ba96534cc84744258cf860 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 22 Mar 2024 12:19:54 +0000 Subject: [PATCH 088/504] initial buildable sources for integration tests in neovim (untested) --- packages/cursorless-neovim/package.json | 2 + packages/cursorless-neovim/src/TestHelpers.ts | 55 +++ .../src/constructTestHelpers.ts | 88 +++++ .../src/endToEndTestSetup.ts | 66 ++++ packages/cursorless-neovim/src/extension.ts | 24 ++ .../cursorless-neovim/src/getExtensionApi.ts | 53 +++ .../cursorless-neovim/src/neovimHelpers.ts | 4 +- packages/cursorless-neovim/src/runCommand.ts | 8 + .../src/singletons/cursorlessapi.singleton.ts | 30 ++ .../src/singletons/ide.singleton.ts | 9 +- .../src/suite/recorded.vscode.test.ts | 323 ++++++++++++++++++ .../src/testUtil/openNewEditor.ts | 93 +++++ .../src/testUtil/openNewEditor.ts | 2 +- pnpm-lock.yaml | 6 + 14 files changed, 757 insertions(+), 6 deletions(-) create mode 100644 packages/cursorless-neovim/src/TestHelpers.ts create mode 100644 packages/cursorless-neovim/src/constructTestHelpers.ts create mode 100644 packages/cursorless-neovim/src/endToEndTestSetup.ts create mode 100644 packages/cursorless-neovim/src/getExtensionApi.ts create mode 100644 packages/cursorless-neovim/src/runCommand.ts create mode 100644 packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts create mode 100644 packages/cursorless-neovim/src/suite/recorded.vscode.test.ts create mode 100644 packages/cursorless-neovim/src/testUtil/openNewEditor.ts diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index b66e8449ba..a181fd75a7 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -34,7 +34,9 @@ "vscode-uri": "3.0.6" }, "devDependencies": { + "@types/chai": "^4.3.3", "@types/deasync": "0.1.5", + "@types/js-yaml": "^4.0.2", "@types/lodash": "4.14.181", "@types/uuid": "8.3.4", "@types/vscode": "1.66.0" diff --git a/packages/cursorless-neovim/src/TestHelpers.ts b/packages/cursorless-neovim/src/TestHelpers.ts new file mode 100644 index 0000000000..5f9ec06c8c --- /dev/null +++ b/packages/cursorless-neovim/src/TestHelpers.ts @@ -0,0 +1,55 @@ +import type { + ExcludableSnapshotField, + ExtraSnapshotField, + FakeCommandServerApi, + HatTokenMap, + IDE, + NormalizedIDE, + ScopeProvider, + SerializedMarks, + // TargetPlainObject, + TestCaseSnapshot, + TextEditor, +} from "@cursorless/common"; +//import * as vscode from "vscode"; +//import { VscodeApi } from "./VscodeApi"; + +export interface TestHelpers { + ide: NormalizedIDE; + injectIde: (ide: IDE) => void; + + scopeProvider: ScopeProvider; + + hatTokenMap: HatTokenMap; + + commandServerApi: FakeCommandServerApi; + + //toVscodeEditor(editor: TextEditor): vscode.TextEditor; + + // setStoredTarget( + // editor: vscode.TextEditor, + // key: string, + // targets: TargetPlainObject[] | undefined, + // ): void; + + // FIXME: Remove this once we have a better way to get this function + // accessible from our tests + takeSnapshot( + excludeFields: ExcludableSnapshotField[], + extraFields: ExtraSnapshotField[], + editor: TextEditor, + ide: IDE, + marks: SerializedMarks | undefined, + forceRealClipboard: boolean, + ): Promise; + + runIntegrationTests(): Promise; + + cursorlessTalonStateJsonPath: string; + cursorlessCommandHistoryDirPath: string; + + /** + * A thin wrapper around the VSCode API that allows us to mock it for testing. + */ + //vscodeApi: VscodeApi; +} diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts new file mode 100644 index 0000000000..129dded94c --- /dev/null +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -0,0 +1,88 @@ +import { + ExcludableSnapshotField, + ExtraSnapshotField, + FakeCommandServerApi, + HatTokenMap, + IDE, + NormalizedIDE, + ScopeProvider, + SerializedMarks, + // StoredTargetKey, + // TargetPlainObject, + TestCaseSnapshot, + TextEditor, +} from "@cursorless/common"; +import { + StoredTargetMap, + // plainObjectToTarget, + takeSnapshot, +} from "@cursorless/cursorless-engine"; +import { TestHelpers } from "./TestHelpers"; +//import * as vscode from "vscode"; +import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +//import { toVscodeEditor } from "./ide/vscode/toNeovimEditor"; +//import { vscodeApi } from "./vscodeApi"; + +export function constructTestHelpers( + commandServerApi: FakeCommandServerApi, + storedTargets: StoredTargetMap, + hatTokenMap: HatTokenMap, + vscodeIDE: NeovimIDE, + normalizedIde: NormalizedIDE, + fileSystem: NeovimFileSystem, + scopeProvider: ScopeProvider, + injectIde: (ide: IDE) => void, + runIntegrationTests: () => Promise, +): TestHelpers | undefined { + return { + commandServerApi: commandServerApi!, + ide: normalizedIde, + injectIde, + scopeProvider, + + //toVscodeEditor, + + // FIXME: Remove this once we have a better way to get this function + // accessible from our tests + takeSnapshot( + excludeFields: ExcludableSnapshotField[], + extraFields: ExtraSnapshotField[], + editor: TextEditor, + ide: IDE, + marks: SerializedMarks | undefined, + forceRealClipboard: boolean, + ): Promise { + return takeSnapshot( + storedTargets, + excludeFields, + extraFields, + editor, + ide, + marks, + undefined, + undefined, + forceRealClipboard ? vscodeIDE.clipboard : undefined, + ); + }, + + cursorlessTalonStateJsonPath: fileSystem.cursorlessTalonStateJsonPath, + cursorlessCommandHistoryDirPath: fileSystem.cursorlessCommandHistoryDirPath, + + // setStoredTarget( + // editor: vscode.TextEditor, + // key: StoredTargetKey, + // targets: TargetPlainObject[] | undefined, + // ): void { + // storedTargets.set( + // key, + // targets?.map((target) => + // plainObjectToTarget(vscodeIDE.fromVscodeEditor(editor), target), + // ), + // ); + // }, + hatTokenMap, + runIntegrationTests, + //vscodeApi, + }; +} diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts new file mode 100644 index 0000000000..4572d97d27 --- /dev/null +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -0,0 +1,66 @@ +import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; +import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; +// import { getCursorlessApi } from "@cursorless/vscode-common"; +// import { Context } from "mocha"; +//import * as sinon from "sinon"; + +/** + * The number of times the current test has been retried. Will be 0 the first + * time the test runs and increase by 1 each time the test fails and needs to be + * rerun. + */ +// let retryCount = -1; +const retryCount = 5; + +/** + * The title of the previously run test. Used to keep track of + * {@link retryCount}. + */ +//let previousTestTitle = ""; + +export function endToEndTestSetup(/* suite: Mocha.Suite */) { + // suite.timeout("100s"); + // suite.retries(5); + + let ide: IDE; + let injectIde: (ide: IDE) => void; + let spy: SpyIDE | undefined; + + setup(async function (/* this: Context */) { + const title = "TODOTitle"; //this.test!.fullTitle(); + // retryCount = title === previousTestTitle ? retryCount + 1 : 0; + // previousTestTitle = title; + ({ ide, injectIde } = (await getCursorlessApi()).testHelpers!); + spy = new SpyIDE(ide); + injectIde(spy); + }); + + teardown(() => { + //sinon.restore(); + injectIde(ide); + }); + + return { + getSpy() { + return spy; + }, + }; +} + +/** + * Sleep function for use in tests that will be retried. Doubles the amount of + * time it sleeps each time a test is run, starting from {@link ms} / 4. + * + * If the developer used the update fixtures launch config, we sleep for {@link ms} * + * 2 every time so that they don't get spurious updates to fixtures due to not + * sleeping enough. + * @param ms The baseline number of milliseconds to sleep. + * @returns A promise that will resolve when the sleep is over + */ +export function sleepWithBackoff(ms: number) { + const timeToSleep = shouldUpdateFixtures() + ? ms * 2 + : ms * Math.pow(2, retryCount - 2); + + return sleep(timeToSleep); +} diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 9fcd81dede..2b114dc0e9 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,6 +24,8 @@ import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { injectIde as injectIde2 } from "./singletons/ide.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; +import { constructTestHelpers } from "./constructTestHelpers"; +import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -81,6 +83,28 @@ export async function activate(context: NeovimExtensionContext) { ); injectCommandApi(commandApi); // debugger; // NOTE: helps debugging + + const cursorlessApi = { + testHelpers: isTesting() + ? constructTestHelpers( + fakeCommandServerApi, + storedTargets, + hatTokenMap, + neovimIDE, + normalizedIde as NormalizedIDE, + fileSystem, + scopeProvider, + injectIde, + runIntegrationTests, + ) + : undefined, + + experimental: { + registerThirdPartySnippets: snippets.registerThirdPartySnippets, + }, + }; + injectCursorlessApi(cursorlessApi); + console.warn("activate(): Cursorless extension loaded"); } diff --git a/packages/cursorless-neovim/src/getExtensionApi.ts b/packages/cursorless-neovim/src/getExtensionApi.ts new file mode 100644 index 0000000000..5da25e0024 --- /dev/null +++ b/packages/cursorless-neovim/src/getExtensionApi.ts @@ -0,0 +1,53 @@ +import type { CommandServerApi, SnippetMap } from "@cursorless/common"; +//import * as vscode from "vscode"; +import type { Language, SyntaxNode, Tree } from "web-tree-sitter"; +import { TestHelpers } from "./TestHelpers"; + +export interface CursorlessApi { + testHelpers: TestHelpers | undefined; + + experimental: { + registerThirdPartySnippets: ( + extensionId: string, + snippets: SnippetMap, + ) => void; + }; +} + +// export interface ParseTreeApi { +// getNodeAtLocation(location: vscode.Location): SyntaxNode; +// getTreeForUri(uri: vscode.Uri): Tree; +// loadLanguage: (languageId: string) => Promise; +// getLanguage(languageId: string): Language | undefined; +// } + +// export async function getExtensionApi(extensionId: string) { +// const extension = vscode.extensions.getExtension(extensionId); + +// return extension == null ? null : ((await extension.activate()) as T); +// } + +// export async function getExtensionApiStrict(extensionId: string) { +// const extension = vscode.extensions.getExtension(extensionId); + +// if (extension == null) { +// throw new Error(`Could not get ${extensionId} extension`); +// } + +// return (await extension.activate()) as T; +// } + +// see packages\cursorless-neovim\src\singletons\cursorlessapi.singleton.ts for implementation +// export const EXTENSION_ID = "pokey.cursorless"; +// export const getCursorlessApi = () => +// getExtensionApiStrict(EXTENSION_ID); + +// export const getParseTreeApi = () => +// getExtensionApiStrict("pokey.parse-tree"); + +/** + * + * @returns Command server API or null if not installed + */ +// export const getCommandServerApi = () => +// getExtensionApi("pokey.command-server"); diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index b4286384c7..719d940ed6 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -9,6 +9,7 @@ import { neovimContext } from "./singletons/context.singleton"; import { ide } from "./singletons/ide.singleton"; import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; /** * Initialize the current editor (and current document). @@ -32,7 +33,8 @@ export async function updateTextEditor() { `updateTextEditor(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); - ide().toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); + const neovimIDE = ide() as NeovimIDE; + neovimIDE.toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); } /** diff --git a/packages/cursorless-neovim/src/runCommand.ts b/packages/cursorless-neovim/src/runCommand.ts new file mode 100644 index 0000000000..b779ea8848 --- /dev/null +++ b/packages/cursorless-neovim/src/runCommand.ts @@ -0,0 +1,8 @@ +import { Command, CURSORLESS_COMMAND_ID } from "@cursorless/common"; +import { handleCommandInternal } from "./registerCommands"; +//import * as vscode from "vscode"; + +export function runCursorlessCommand(command: Command) { + //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); + return handleCommandInternal(CURSORLESS_COMMAND_ID, command); +} diff --git a/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts new file mode 100644 index 0000000000..90a755f722 --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts @@ -0,0 +1,30 @@ +import { CursorlessApi } from "../getExtensionApi"; + +/** + * This is the `cursorlessapi` singleton + */ +let cursorlessapi_: CursorlessApi | undefined; + +/** + * Injects an {@link CursorlessApi} object that can be used to access Cursorless extension features. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param cursorlessapi The CursorlessApi to inject + */ +export function injectCursorlessApi(cursorlessapi: CursorlessApi | undefined) { + cursorlessapi_ = cursorlessapi; +} + +/** + * Gets the singleton used to access Cursorless extension features. + * @throws Error if the cursorlessapi hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The cursorlessapi object + */ +export async function getCursorlessApi(): Promise { + if (cursorlessapi_ == null) { + throw Error("Tried to access cursorlessApi before it was injected"); + } + + return cursorlessapi_; +} diff --git a/packages/cursorless-neovim/src/singletons/ide.singleton.ts b/packages/cursorless-neovim/src/singletons/ide.singleton.ts index 6c2ca47ffc..d500499f11 100644 --- a/packages/cursorless-neovim/src/singletons/ide.singleton.ts +++ b/packages/cursorless-neovim/src/singletons/ide.singleton.ts @@ -1,11 +1,12 @@ // TODO: should we access the one from cursorless-engine instead? // or pass it as an argument where it is needed? -import { NeovimIDE } from "../ide/neovim/NeovimIDE"; +import { IDE } from "@cursorless/common"; +// import { NeovimIDE } from "../ide/neovim/NeovimIDE"; /** * This is the `ide` singleton */ -let ide_: NeovimIDE | undefined; +let ide_: IDE | undefined; /** * Injects an {@link IDE} object that can be used to interact with the IDE. @@ -13,7 +14,7 @@ let ide_: NeovimIDE | undefined; * activation or when mocking a test. * @param ide The ide to inject */ -export function injectIde(ide: NeovimIDE | undefined) { +export function injectIde(ide: IDE | undefined) { ide_ = ide; } @@ -23,7 +24,7 @@ export function injectIde(ide: NeovimIDE | undefined) { * constructing your objects lazily * @returns The IDE object */ -export function ide(): NeovimIDE { +export function ide(): IDE { if (ide_ == null) { throw Error("Tried to access ide before it was injected"); } diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts new file mode 100644 index 0000000000..088d4a33dd --- /dev/null +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -0,0 +1,323 @@ +import { + // asyncSafety, + CommandResponse, + // DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, + ExcludableSnapshotField, + // extractTargetedMarks, + Fallback, + getRecordedTestPaths, + // HatStability, + // marksToPlainObject, + omitByDeep, + // plainObjectToRange, + PositionPlainObject, + // rangeToPlainObject, + // ReadOnlyHatMap, + SelectionPlainObject, + // SerializedMarks, + serializeTestFixture, + shouldUpdateFixtures, + // splitKey, + SpyIDE, + spyIDERecordedValuesToPlainObject, + storedTargetKeys, + TestCaseFixtureLegacy, + // TextEditor, + // TokenHat, + clientSupportsFallback, + // TestCaseSnapshot, + // ExtraSnapshotField, + // IDE, + Selection, + Position, +} from "@cursorless/common"; +// import { +// getCursorlessApi, +// openNewEditor, +// runCursorlessCommand, +// } from "@cursorless/vscode-common"; +import { assert } from "chai"; +import * as yaml from "js-yaml"; +import { isUndefined } from "lodash"; +import { promises as fsp } from "node:fs"; +// import * as vscode from "vscode"; +import { + /* endToEndTestSetup, */ sleepWithBackoff, +} from "../endToEndTestSetup"; +import { /* ide, */ injectIde } from "../singletons/ide.singleton"; +// import { commandApi } from "../singletons/cmdapi.singleton"; +// import { takeSnapshot } from "@cursorless/cursorless-engine"; +import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; +import { openNewEditor } from "../testUtil/openNewEditor"; +import { runCursorlessCommand } from "../runCommand"; +// import { setupFake } from "./setupFake"; + +function createPosition(position: PositionPlainObject) { + return new Position(position.line, position.character); +} + +function createSelection(selection: SelectionPlainObject): Selection { + const active = createPosition(selection.active); + const anchor = createPosition(selection.anchor); + return new Selection(anchor, active); +} + +// suite("recorded test cases", async function () { +export async function runRecordedTestCases() { + // const { getSpy } = endToEndTestSetup(this); + + // suiteSetup(async () => { + // // Necessary because opening a notebook opens the panel for some reason + // await vscode.commands.executeCommand("workbench.action.closePanel"); + // const { ide } = (await getCursorlessApi()).testHelpers!; + // setupFake(ide, HatStability.stable); + // }); + + //const originalIde = ide(); + // const spyIde = new SpyIDE(originalIde); + const { ide } = (await getCursorlessApi()).testHelpers!; + const spyIde = new SpyIDE(ide); + injectIde(spyIde!); + + getRecordedTestPaths().forEach(({ name, path }) => + // test( + // name, + // asyncSafety(() => runTest(path, getSpy()!)), + // ), + runTest(path, spyIde!), + ); +} + +async function runTest(file: string, spyIde: SpyIDE) { + console.warn(`runTest(${file})`); + const buffer = await fsp.readFile(file); + const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; + const excludeFields: ExcludableSnapshotField[] = []; + + // FIXME The snapshot gets messed up with timing issues when running the recorded tests + // "Couldn't find token default.a" + const usePrePhraseSnapshot = false; + + const cursorlessApi = await getCursorlessApi(); + const { + hatTokenMap, + takeSnapshot /* , setStoredTarget */, + commandServerApi, + } = cursorlessApi.testHelpers!; + //const commandServerApi = commandApi(); + + const editor = await openNewEditor(fixture.initialState.documentContents, { + languageId: fixture.languageId, + }); + + // Override any user settings and make sure tests run with default tabs. + //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST; + + if (fixture.postEditorOpenSleepTimeMs != null) { + await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs); + } + + editor.setSelections(fixture.initialState.selections.map(createSelection)); + + // for (const storedTargetKey of storedTargetKeys) { + // const key = `${storedTargetKey}Mark` as const; + // setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); + // } + + // if (fixture.initialState.clipboard) { + // vscode.env.clipboard.writeText(fixture.initialState.clipboard); + // // FIXME https://github.com/cursorless-dev/cursorless/issues/559 + // // spyIde.clipboard.writeText(fixture.initialState.clipboard); + // } + + commandServerApi.setFocusedElementType( + fixture.focusedElementType === "other" + ? undefined + : fixture.focusedElementType ?? "textEditor", + ); + + // TODO: we don't support hats so we need to bail out and skip this testcase for now + + // Ensure that the expected hats are present + // await hatTokenMap.allocateHats( + // getTokenHats(fixture.initialState.marks, spyIde.activeTextEditor!), + // ); + + // const readableHatMap = await hatTokenMap.getReadableMap(usePrePhraseSnapshot); + + // // Assert that recorded decorations are present + // checkMarks(fixture.initialState.marks, readableHatMap); + + let returnValue: unknown; + let fallback: Fallback | undefined; + + try { + returnValue = await runCursorlessCommand({ + ...fixture.command, + usePrePhraseSnapshot, + }); + if (clientSupportsFallback(fixture.command)) { + const commandResponse = returnValue as CommandResponse; + returnValue = + "returnValue" in commandResponse + ? commandResponse.returnValue + : undefined; + fallback = + "fallback" in commandResponse ? commandResponse.fallback : undefined; + } + } catch (err) { + const error = err as Error; + + if (shouldUpdateFixtures()) { + const outputFixture = { + ...fixture, + finalState: undefined, + decorations: undefined, + returnValue: undefined, + thrownError: { name: error.name }, + }; + + await fsp.writeFile(file, serializeTestFixture(outputFixture)); + } else if (fixture.thrownError != null) { + assert.strictEqual(error.name, fixture.thrownError.name); + } else { + throw error; + } + + return; + } + + if (fixture.postCommandSleepTimeMs != null) { + await sleepWithBackoff(fixture.postCommandSleepTimeMs); + } + + // const marks = + // fixture.finalState?.marks == null + // ? undefined + // : marksToPlainObject( + // extractTargetedMarks( + // Object.keys(fixture.finalState.marks), + // readableHatMap, + // ), + // ); + const marks = undefined; + + if (fixture.finalState?.clipboard == null) { + excludeFields.push("clipboard"); + } + + for (const storedTargetKey of storedTargetKeys) { + const key = `${storedTargetKey}Mark` as const; + if (fixture.finalState?.[key] == null) { + excludeFields.push(key); + } + } + + // FIXME Visible ranges are not asserted, see: + // https://github.com/cursorless-dev/cursorless/issues/160 + const { visibleRanges, ...resultState } = await takeSnapshot( + excludeFields, + [], + spyIde.activeTextEditor!, + spyIde, + marks, + // FIXME: Stop overriding the clipboard once we have #559 + true, + ); + + const rawSpyIdeValues = spyIde.getSpyValues(fixture.ide?.flashes != null); + const actualSpyIdeValues = + rawSpyIdeValues == null + ? undefined + : spyIDERecordedValuesToPlainObject(rawSpyIdeValues); + + if (shouldUpdateFixtures()) { + const outputFixture: TestCaseFixtureLegacy = { + ...fixture, + finalState: resultState, + returnValue, + fallback, + ide: actualSpyIdeValues, + thrownError: undefined, + }; + + await fsp.writeFile(file, serializeTestFixture(outputFixture)); + } else { + if (fixture.thrownError != null) { + throw Error( + `Expected error ${fixture.thrownError.name} but none was thrown`, + ); + } + + assert.deepStrictEqual( + resultState, + fixture.finalState, + "Unexpected final state", + ); + + assert.deepStrictEqual( + returnValue, + fixture.returnValue, + "Unexpected return value", + ); + + assert.deepStrictEqual( + fallback, + fixture.fallback, + "Unexpected fallback value", + ); + + assert.deepStrictEqual( + omitByDeep(actualSpyIdeValues, isUndefined), + fixture.ide, + "Unexpected ide captured values", + ); + } +} + +// function checkMarks( +// marks: SerializedMarks | undefined, +// hatTokenMap: ReadOnlyHatMap, +// ) { +// if (marks == null) { +// return; +// } + +// Object.entries(marks).forEach(([key, token]) => { +// const { hatStyle, character } = splitKey(key); +// const currentToken = hatTokenMap.getToken(hatStyle, character); +// assert(currentToken != null, `Mark "${hatStyle} ${character}" not found`); +// assert.deepStrictEqual(rangeToPlainObject(currentToken.range), token); +// }); +// } + +// function getTokenHats( +// marks: SerializedMarks | undefined, +// editor: TextEditor, +// ): TokenHat[] { +// if (marks == null) { +// return []; +// } + +// return Object.entries(marks).map(([key, token]) => { +// const { hatStyle, character } = splitKey(key); +// const range = plainObjectToRange(token); + +// return { +// hatStyle, +// grapheme: character, +// token: { +// editor, +// range, +// offsets: { +// start: editor.document.offsetAt(range.start), +// end: editor.document.offsetAt(range.end), +// }, +// text: editor.document.getText(range), +// }, + +// // NB: We don't care about the hat range for this test +// hatRange: range, +// }; +// }); +//} diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts new file mode 100644 index 0000000000..cd3b6185f5 --- /dev/null +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -0,0 +1,93 @@ +//import { getParseTreeApi } from "../getExtensionApi"; +//import * as vscode from "vscode"; + +import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; +import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; + +interface NewEditorOptions { + languageId?: string; + openBeside?: boolean; +} + +export async function openNewEditor( + content: string, + { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, +): Promise { + throw new Error("openNewEditor() Not implemented"); + // if (!openBeside) { + // await vscode.commands.executeCommand("workbench.action.closeAllEditors"); + // } + // const document = await vscode.workspace.openTextDocument({ + // language: languageId, + // content, + // }); + // await (await getParseTreeApi()).loadLanguage(languageId); + // const editor = await vscode.window.showTextDocument( + // document, + // openBeside ? vscode.ViewColumn.Beside : undefined, + // ); + // const eol = content.includes("\r\n") + // ? vscode.EndOfLine.CRLF + // : vscode.EndOfLine.LF; + // if (eol !== editor.document.eol) { + // await editor.edit((editBuilder) => editBuilder.setEndOfLine(eol)); + // } + // return editor; +} + +export async function reuseEditor( + editor: NeovimTextDocumentImpl, // vscode.TextEditor, + content: string, + language: string = "plaintext", +) { + throw new Error("reuseEditor() Not implemented"); + // if (editor.document.languageId !== language) { + // await vscode.languages.setTextDocumentLanguage(editor.document, language); + // await (await getParseTreeApi()).loadLanguage(language); + // } + // await editor.edit((editBuilder) => { + // editBuilder.replace( + // new vscode.Range( + // editor.document.lineAt(0).range.start, + // editor.document.lineAt(editor.document.lineCount - 1).range.end, + // ), + // content, + // ); + // const eol = content.includes("\r\n") + // ? vscode.EndOfLine.CRLF + // : vscode.EndOfLine.LF; + // if (eol !== editor.document.eol) { + // editBuilder.setEndOfLine(eol); + // } + // }); +} + +/** + * Open a new notebook editor with the given cells + * @param cellContents A list of strings each of which will become the contents + * of a cell in the notebook + * @param language The language id to use for all the cells in the notebook + * @returns notebook + */ +export async function openNewNotebookEditor( + cellContents: string[], + language: string = "plaintext", +) { + throw new Error("openNewNotebookEditor() Not implemented"); + // await vscode.commands.executeCommand("workbench.action.closeAllEditors"); + // const document = await vscode.workspace.openNotebookDocument( + // "jupyter-notebook", + // new vscode.NotebookData( + // cellContents.map( + // (contents) => + // new vscode.NotebookCellData( + // vscode.NotebookCellKind.Code, + // contents, + // language, + // ), + // ), + // ), + // ); + // await (await getParseTreeApi()).loadLanguage(language); + // return document; +} diff --git a/packages/vscode-common/src/testUtil/openNewEditor.ts b/packages/vscode-common/src/testUtil/openNewEditor.ts index daf35b894b..c4c990d378 100644 --- a/packages/vscode-common/src/testUtil/openNewEditor.ts +++ b/packages/vscode-common/src/testUtil/openNewEditor.ts @@ -9,7 +9,7 @@ interface NewEditorOptions { export async function openNewEditor( content: string, { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, -) { +): Promise { if (!openBeside) { await vscode.commands.executeCommand("workbench.action.closeAllEditors"); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7b97d3a70..f753bff626 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -321,9 +321,15 @@ importers: specifier: 3.0.6 version: 3.0.6 devDependencies: + '@types/chai': + specifier: ^4.3.3 + version: 4.3.4 '@types/deasync': specifier: 0.1.5 version: 0.1.5 + '@types/js-yaml': + specifier: ^4.0.2 + version: 4.0.5 '@types/lodash': specifier: 4.14.181 version: 4.14.181 From 194958d442e6f21885595f008072b3ff78a0720d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:02:02 +0000 Subject: [PATCH 089/504] feat: openNewEditor for neovim --- packages/common/src/ide/PassthroughIDEBase.ts | 3 ++- .../cursorless-engine/src/cursorlessEngine.ts | 4 +-- .../src/spokenForms/CustomSpokenForms.ts | 2 ++ packages/cursorless-neovim/src/extension.ts | 5 ++++ .../src/ide/neovim/NeovimFileSystem.ts | 24 ++++++++++++------ .../src/ide/neovim/NeovimIDE.ts | 3 ++- packages/cursorless-neovim/src/index.ts | 7 ++++++ .../src/suite/recorded.vscode.test.ts | 20 ++++++++++----- .../src/testUtil/openNewEditor.ts | 25 +++++++++++++++++-- 9 files changed, 73 insertions(+), 20 deletions(-) diff --git a/packages/common/src/ide/PassthroughIDEBase.ts b/packages/common/src/ide/PassthroughIDEBase.ts index 788a632ee5..0be3300906 100644 --- a/packages/common/src/ide/PassthroughIDEBase.ts +++ b/packages/common/src/ide/PassthroughIDEBase.ts @@ -28,7 +28,8 @@ export default class PassthroughIDEBase implements IDE { messages: Messages; capabilities: Capabilities; - constructor(private original: IDE) { + // TODO: we probably want to revert "original" to be private? + constructor(public original: IDE) { this.configuration = original.configuration; this.globalState = original.globalState; this.clipboard = original.clipboard; diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index 71dd1b1d4e..9defac2521 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -111,8 +111,8 @@ export function createCursorlessEngine( hatTokenMap, snippets, injectIde, - runIntegrationTests: () => - runIntegrationTests(treeSitter, languageDefinitions), + runIntegrationTests: async () => + await runIntegrationTests(treeSitter, languageDefinitions), addCommandRunnerDecorator: (decorator: CommandRunnerDecorator) => { commandRunnerDecorators.push(decorator); }, diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 4e650bdee2..cc8090cbe9 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -95,7 +95,9 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); + // TODO: I don't think I can comment this without any side effect, can I? throw err; + //return; } for (const entryType of SUPPORTED_ENTRY_TYPES) { diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 2b114dc0e9..08f40151da 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -84,6 +84,7 @@ export async function activate(context: NeovimExtensionContext) { injectCommandApi(commandApi); // debugger; // NOTE: helps debugging + // set CURSORLESS_TEST = 1 for testing const cursorlessApi = { testHelpers: isTesting() ? constructTestHelpers( @@ -106,6 +107,10 @@ export async function activate(context: NeovimExtensionContext) { injectCursorlessApi(cursorlessApi); console.warn("activate(): Cursorless extension loaded"); + + console.warn("activate(): running the recorded test cases..."); + await runRecordedTestCases(); + console.warn("activate(): recorded test cases done"); } async function createNeovimIde(context: ExtensionContext) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 1ebc44b3d4..1bd458f52e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -7,6 +7,7 @@ import { import { /* isAbsolute, */ join } from "path"; // import * as vscode from "vscode"; import { ExtensionContext } from "../../types/ExtensionContext"; +import * as fs from "fs"; export class NeovimFileSystem implements FileSystem { public readonly cursorlessTalonStateJsonPath: string; @@ -25,13 +26,14 @@ export class NeovimFileSystem implements FileSystem { } public async initialize(): Promise { - // try { - // await vscode.workspace.fs.createDirectory( - // vscode.Uri.file(this.cursorlessDir), - // ); - // } catch (err) { - // console.log("Cannot create cursorlessDir", this.cursorlessDir, err); - // } + try { + // await vscode.workspace.fs.createDirectory( + // vscode.Uri.file(this.cursorlessDir), + // ); + await fs.mkdirSync(this.cursorlessDir); + } catch (err) { + console.log("Cannot create cursorlessDir", this.cursorlessDir, err); + } } /** @@ -46,7 +48,9 @@ export class NeovimFileSystem implements FileSystem { * @returns The contents of path, decoded as UTF-8 */ public async readBundledFile(path: string): Promise { - return undefined; + throw Error("readBundledFile() Not implemented"); + // TODO: we need to implement this + // return undefined; // try { // return this.decoder.decode( // await vscode.workspace.fs.readFile(this.resolveBundledPath(path)), @@ -64,6 +68,8 @@ export class NeovimFileSystem implements FileSystem { } private resolveBundledPath(path: string) { + throw Error("resolveBundledPath() Not implemented"); + // TODO: we need to implement this // if (isAbsolute(path)) { // if (this.runMode !== "development") { // throw new Error( @@ -78,6 +84,8 @@ export class NeovimFileSystem implements FileSystem { } public watchDir(path: string, onDidChange: PathChangeListener): Disposable { + // throw Error("watchDir() Not implemented"); + // TODO: we need to implement this return dummyEvent(); // // return { dispose: () => {} }; // // FIXME: Support globs? diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 1faebac1f2..4ed7285a29 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -217,7 +217,7 @@ export class NeovimIDE implements IDE { lines: string[], visibleRanges: Range[], selections: Selection[], - ): void { + ): NeovimTextEditorImpl { this.activeWindow = editor; const impl = new NeovimTextEditorImpl( uuid(), @@ -229,6 +229,7 @@ export class NeovimIDE implements IDE { selections, ); this.editorMap.set(editor, impl); + return impl; } disposeOnExit(...disposables: Disposable[]): () => void { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 635dd03936..fce2cd6937 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -4,6 +4,7 @@ import { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { injectContext } from "./singletons/context.singleton"; import { handleCommandInternal } from "./registerCommands"; +import { runRecordedTestCases } from "./suite/recorded.vscode.test"; /** * Extension entrypoint called by node-client on Neovim startup. @@ -21,6 +22,12 @@ export default function entry(plugin: NvimPlugin) { () => loadExtension(plugin), { sync: false }, ); + + plugin.registerFunction( + "CursorlessRunRecordedTestCases", + async () => await runRecordedTestCases(), + { sync: false }, + ); } /** diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 088d4a33dd..0bee141f97 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -79,12 +79,20 @@ export async function runRecordedTestCases() { const spyIde = new SpyIDE(ide); injectIde(spyIde!); - getRecordedTestPaths().forEach(({ name, path }) => - // test( - // name, - // asyncSafety(() => runTest(path, getSpy()!)), - // ), - runTest(path, spyIde!), + // TODO: re-enable code below and skip if: + // - multiple selections (we don't support multiple cursors atm) + // - marks is non {} (we don't not support decorated symbol marks atm) + // - others? + // getRecordedTestPaths().forEach(({ name, path }) => + // // test( + // // name, + // // asyncSafety(() => runTest(path, getSpy()!)), + // // ), + // runTest(path, spyIde!), + // ); + runTest( + "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\marks\\takeRowFour.yml", + spyIde!, ); } diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index cd3b6185f5..f71eb5f977 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -3,6 +3,8 @@ import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; +import { updateTextEditor } from "../neovimHelpers"; +import { neovimContext } from "../singletons/context.singleton"; interface NewEditorOptions { languageId?: string; @@ -13,10 +15,29 @@ export async function openNewEditor( content: string, { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, ): Promise { - throw new Error("openNewEditor() Not implemented"); + // throw new Error("openNewEditor() Not implemented"); // if (!openBeside) { // await vscode.commands.executeCommand("workbench.action.closeAllEditors"); // } + + // standardise newlines so we can easily split the lines + const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); + + const client = neovimContext().client; + const window = await client.window; + const buffer = await window.buffer; + + // Replace old content with new content + const oldLines = await buffer.lines; + await buffer.setLines(newLines, { + start: 0, + end: oldLines.length, + strictIndexing: false, + }); + + // update our view of the document + const editor = await updateTextEditor(); + // const document = await vscode.workspace.openTextDocument({ // language: languageId, // content, @@ -32,7 +53,7 @@ export async function openNewEditor( // if (eol !== editor.document.eol) { // await editor.edit((editBuilder) => editBuilder.setEndOfLine(eol)); // } - // return editor; + return editor; } export async function reuseEditor( From 36b8de9ea3d1bcde8d432a6557418bba5d9d42ed Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:03:34 +0000 Subject: [PATCH 090/504] fix: working updateTextEditor with SpyIDE --- .../cursorless-neovim/src/neovimHelpers.ts | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 719d940ed6..b47f3814ce 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -10,6 +10,7 @@ import { ide } from "./singletons/ide.singleton"; import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { SpyIDE } from "@cursorless/common"; /** * Initialize the current editor (and current document). @@ -19,7 +20,7 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; * TODO: We only initialize one editor(current window) with one document(current buffer) * we need to support updating editors and documents on the fly */ -export async function updateTextEditor() { +export async function updateTextEditor(): Promise { const client = neovimContext().client; const window = await client.window; const buffer = await window.buffer; @@ -33,8 +34,22 @@ export async function updateTextEditor() { `updateTextEditor(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); - const neovimIDE = ide() as NeovimIDE; - neovimIDE.toNeovimEditor(window, buffer.id, lines, visibleRanges, selections); + const ide_ = ide(); + let neovimIDE: NeovimIDE; + if (ide_ instanceof NeovimIDE) { + neovimIDE = ide_; + } else if (ide_ instanceof SpyIDE) { + neovimIDE = ide_.original as NeovimIDE; + } else { + throw Error("updateTextEditor(): ide() is not NeovimIDE"); + } + return neovimIDE.toNeovimEditor( + window, + buffer.id, + lines, + visibleRanges, + selections, + ); } /** From 3d1ef71f47c7e7ae53113cc7eeec603121485345 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:04:28 +0000 Subject: [PATCH 091/504] fix: minor --- packages/cursorless-neovim/src/extension.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 08f40151da..65ff1373e5 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -26,6 +26,7 @@ import { injectIde as injectIde2 } from "./singletons/ide.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { runRecordedTestCases } from "./suite/recorded.vscode.test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -33,6 +34,7 @@ import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ export async function activate(context: NeovimExtensionContext) { + debugger; const client = context.client; const buffer = await client.buffer; From c0f60f36f9f66c00e14da225a48c353565cd1c2e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:06:03 +0000 Subject: [PATCH 092/504] fix: missing await in cursorless main branch --- packages/cursorless-engine/src/cursorlessEngine.ts | 8 ++++---- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-vscode/src/extension.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index 9defac2521..0b27a75371 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -31,13 +31,13 @@ import { ScopeSupportWatcher } from "./scopeProviders/ScopeSupportWatcher"; import { injectIde } from "./singletons/ide.singleton"; import { TreeSitter } from "./typings/TreeSitter"; -export function createCursorlessEngine( +export async function createCursorlessEngine( treeSitter: TreeSitter, ide: IDE, hats: Hats, commandServerApi: CommandServerApi | null, fileSystem: FileSystem, -): CursorlessEngine { +): Promise { injectIde(ide); const debug = new Debug(treeSitter); @@ -45,7 +45,7 @@ export function createCursorlessEngine( const rangeUpdater = new RangeUpdater(); const snippets = new Snippets(); - snippets.init(); + await snippets.init(); const hatTokenMap = new HatTokenMapImpl( rangeUpdater, @@ -53,7 +53,7 @@ export function createCursorlessEngine( hats, commandServerApi, ); - hatTokenMap.allocateHats(); + await hatTokenMap.allocateHats(); const storedTargets = new StoredTargetMap(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 65ff1373e5..f273f179fc 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -76,7 +76,7 @@ export async function activate(context: NeovimExtensionContext) { runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = createCursorlessEngine( + } = await createCursorlessEngine( treeSitter, normalizedIde, hats, diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index fcc7e2334d..de08aa21b6 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -92,7 +92,7 @@ export async function activate( runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = createCursorlessEngine( + } = await createCursorlessEngine( treeSitter, normalizedIde, hats, From 47b7a1dd3e54a6093dfa6cd955bb0b1c6b75a713 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:06:53 +0000 Subject: [PATCH 093/504] docs: supported features + todo --- packages/cursorless-neovim/STATE.md | 31 +++++++++++++++++++++++++++++ packages/cursorless-neovim/TODO.md | 1 + 2 files changed, 32 insertions(+) create mode 100644 packages/cursorless-neovim/STATE.md diff --git a/packages/cursorless-neovim/STATE.md b/packages/cursorless-neovim/STATE.md new file mode 100644 index 0000000000..043a0b118f --- /dev/null +++ b/packages/cursorless-neovim/STATE.md @@ -0,0 +1,31 @@ +Quick summary of what is supported atm. + +Supported: + +- cursorless commands generally available from all the modes: normal (n), insert (i), normal terminal (nt), terminal (t), visual (v) +- marks (row, this, that, source) +- scopes (line, paint, short paint, token, file, char, block, identifier, round, curly, box, diamond, twin, quad, skis, pair, etc) +- modifiers (previous, next, first, second, etc, two, three, etc, last, backward, sub, past, tail, head, just, inside, its, start of, end of, before, after, until, etc) +- edition actions in n, i, v (chuck, bring, change, clone etc) +- limited support for "and" modifier if result in no or single cursor +- selection/moving actions in any mode (take, pre, post) +- copy to clipboard action from any mode (copy) +- fallback bring action in terminal (t, nt) always brings to command prompt current position (bring) + +Not supported: + +- decorated symbols marks (no coloured hats are drawn) +- syntactic scopes (no treesitter) +- multiple cursors (no modifiers: every, instance, from, bounds, slice) (no action: give) +- scope visualizer +- search commands (scout, etc) + +Todo/test as should work: + +- actions: move, pre, post, paste, carve, swap, indent, dedent, increment, decrement, drink, pour, phones, wrap, repack, join, break +- marks: up, down +- from line take next instance this + +Not sure if supported: + +- crown, center, bottom diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 9b4d6464a1..ab5ee96d8e 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -4,6 +4,7 @@ # features +- insert to be paste() to have working bring into terminal - "paste to row one" from the clipboard - prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ - only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) From 139b04101ae474dfb1e7c5551791a9506ebc5855 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 24 Mar 2024 07:06:03 +0000 Subject: [PATCH 094/504] fix: missing await in cursorless main branch --- packages/cursorless-engine/src/cursorlessEngine.ts | 8 ++++---- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-vscode/src/extension.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index 71dd1b1d4e..e4ec1f4c6a 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -31,13 +31,13 @@ import { ScopeSupportWatcher } from "./scopeProviders/ScopeSupportWatcher"; import { injectIde } from "./singletons/ide.singleton"; import { TreeSitter } from "./typings/TreeSitter"; -export function createCursorlessEngine( +export async function createCursorlessEngine( treeSitter: TreeSitter, ide: IDE, hats: Hats, commandServerApi: CommandServerApi | null, fileSystem: FileSystem, -): CursorlessEngine { +): Promise { injectIde(ide); const debug = new Debug(treeSitter); @@ -45,7 +45,7 @@ export function createCursorlessEngine( const rangeUpdater = new RangeUpdater(); const snippets = new Snippets(); - snippets.init(); + await snippets.init(); const hatTokenMap = new HatTokenMapImpl( rangeUpdater, @@ -53,7 +53,7 @@ export function createCursorlessEngine( hats, commandServerApi, ); - hatTokenMap.allocateHats(); + await hatTokenMap.allocateHats(); const storedTargets = new StoredTargetMap(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 9fcd81dede..5c43b97e70 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -72,7 +72,7 @@ export async function activate(context: NeovimExtensionContext) { runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = createCursorlessEngine( + } = await createCursorlessEngine( treeSitter, normalizedIde, hats, diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index fcc7e2334d..de08aa21b6 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -92,7 +92,7 @@ export async function activate( runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = createCursorlessEngine( + } = await createCursorlessEngine( treeSitter, normalizedIde, hats, From abd3bc88957cd6fc5c73781faf7fbc7d97184e4f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 16:40:52 +0000 Subject: [PATCH 095/504] fix: remove before manager for now (TODO: some code from this commit will be needed later when we need to be notified about the text document changes) --- .../src/singletons/bufmgr.singleton.ts | 30 ---- .../src/singletons/ide.singleton.ts | 33 ---- .../src/types/BufferManager.ts | 159 ------------------ 3 files changed, 222 deletions(-) delete mode 100644 packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts delete mode 100644 packages/cursorless-neovim/src/singletons/ide.singleton.ts delete mode 100644 packages/cursorless-neovim/src/types/BufferManager.ts diff --git a/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts b/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts deleted file mode 100644 index 7f427615b2..0000000000 --- a/packages/cursorless-neovim/src/singletons/bufmgr.singleton.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BufferManager } from "../types/BufferManager"; - -/** - * This is the `bufmgr` singleton - */ -let bufmgr_: BufferManager | undefined; - -/** - * Injects an {@link BufferManager} object that can be used to interact with the neovim buffer. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param bufmgr The BufferManager to inject - */ -export function injectBufferManager(bufmgr: BufferManager | undefined) { - bufmgr_ = bufmgr; -} - -/** - * Gets the singleton used to interact with the extension. - * @throws Error if the bufmgr hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The bufmgr object - */ -export function bufferManager(): BufferManager { - if (bufmgr_ == null) { - throw Error("Tried to access bufferManager before it was injected"); - } - - return bufmgr_; -} diff --git a/packages/cursorless-neovim/src/singletons/ide.singleton.ts b/packages/cursorless-neovim/src/singletons/ide.singleton.ts deleted file mode 100644 index d500499f11..0000000000 --- a/packages/cursorless-neovim/src/singletons/ide.singleton.ts +++ /dev/null @@ -1,33 +0,0 @@ -// TODO: should we access the one from cursorless-engine instead? -// or pass it as an argument where it is needed? -import { IDE } from "@cursorless/common"; -// import { NeovimIDE } from "../ide/neovim/NeovimIDE"; - -/** - * This is the `ide` singleton - */ -let ide_: IDE | undefined; - -/** - * Injects an {@link IDE} object that can be used to interact with the IDE. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param ide The ide to inject - */ -export function injectIde(ide: IDE | undefined) { - ide_ = ide; -} - -/** - * Gets the singleton used to interact with the IDE. - * @throws Error if the IDE hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The IDE object - */ -export function ide(): IDE { - if (ide_ == null) { - throw Error("Tried to access ide before it was injected"); - } - - return ide_; -} diff --git a/packages/cursorless-neovim/src/types/BufferManager.ts b/packages/cursorless-neovim/src/types/BufferManager.ts deleted file mode 100644 index 4c16d74f16..0000000000 --- a/packages/cursorless-neovim/src/types/BufferManager.ts +++ /dev/null @@ -1,159 +0,0 @@ -//adapted from vscode-neovim\src\buffer_manager.ts - -import { TextDocument, TextEditor } from "@cursorless/common"; -import { Buffer } from "neovim"; -import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; -// import { Disposable, Uri } from "vscode"; -import { eventEmitter } from "../events"; -import { fromNeovimContentChange } from "../ide/neovim/NeovimEvents"; -import { bufferManager } from "../singletons/bufmgr.singleton"; -import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; - -const BUFFER_SCHEME = "neovim"; - -/** - * Manages neovim windows & buffers and maps them to Cursorless editors & documents - */ -export class BufferManager /* implements Disposable */ { - // TODO: all the text documents are external/internal in our case - /** - * Text documents originated externally, as consequence of neovim command, like :help or :PlugStatus - */ - // public externalTextDocuments: WeakSet = new Set(); - /** - * TODO: change it to mapping of neovim buffer id -> Cursorless document - * Mapping of Cursorless document -> neovim buffer id - */ - public textDocumentToBufferId: Map = new Map(); - /** - * Mapping of neovim window id -> Cursorless editor - */ - private winIdToEditor: Map = new Map(); - - /** - * Buffer event delegate - */ - public onBufferEvent?: ( - bufId: number, - tick: number, - firstLine: number, - lastLine: number, - linedata: string[], - more: boolean, - ) => void; - - private get client() { - return this.context.client; - } - public constructor( - private context: NeovimExtensionContext /* private main: MainController */, - ) { - this.context = context; - } - - public getTextDocumentForBufferId(id: number): TextDocument | undefined { - const doc = [...this.textDocumentToBufferId].find( - ([, bufId]) => id === bufId, - )?.[0]; - // return doc && !doc.isClosed ? doc : undefined; - return doc; - } - - public getBufferIdForTextDocument(doc: TextDocument): number | undefined { - return this.textDocumentToBufferId.get(doc); - } - - public getEditorFromWinId(winId: number): TextEditor | undefined { - // try first noColumnEditors - // const noColumnEditor = [...this.textEditorToWinId].find( - // ([, id]) => id === winId, - // ); - // if (noColumnEditor) { - // return noColumnEditor[0]; - // } - return this.winIdToEditor.get(winId); - } - - // public async onDidChangeTextDocument( - // event: TextDocumentChangeEvent, - // ): Promise { - // const disposable = { - // dispose: () => { - // // empty - // }, - // }; - - // const id = this.getBufferIdForTextDocument(event.document); - // const buffers = await this.context.client.buffers; - // const buf = buffers.find((b) => b.id === id); - // if (!buf) { - // console.warn(`external buffer ${id} not found`); - // return disposable; - // } - // buf.listen("lines", this.receivedBufferEvent); - // return dummyEvent(); - // } - - // public buildExternalBufferUri(name: string, id: number): Uri { - // // These might not *always* be file names, but they often are (e.g. for :help) so - // // make sure we properly convert slashes for the path component, especially on Windows - // return Uri.file(name).with({ - // scheme: BUFFER_SCHEME, - // authority: id.toString(), - // }); - // } -} - -/** - * @see https://neovim.io/doc/user/api.html#api-buffer-updates - */ -// TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? -export async function receivedBufferEvent( - buffer: Buffer, - tick: number, - firstLine: number, - lastLine: number, - linedata: string[], - more: boolean, -): Promise { - // this.onBufferEvent?.(buffer.id, tick, firstLine, lastLine, linedata, more); - // // Ensure the receivedBufferEvent callback finishes before we fire - // // the event notifying the doc provider of any changes - // (async () => { - // const uri = this.buildExternalBufferUri(await buffer.name, buffer.id); - // logger.log(uri, LogLevel.debug, `received buffer event for ${uri}`); - // this.bufferProvider.documentDidChange.fire(uri); - // return uri; - // })().then(undefined, (e) => { - // logger.log(undefined, LogLevel.error, `failed to notify document change: ${e}`); - // }); - console.warn( - `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, - ); - - const document = bufferManager().getTextDocumentForBufferId( - buffer.id, - ) as NeovimTextDocumentImpl; - // const contents = await document.getText(); - // console.warn( - // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, - // ); - eventEmitter.emit("onDidChangeTextDocument", { - document: document, - contentChanges: fromNeovimContentChange( - buffer, - firstLine, - lastLine, - linedata, - ), - // reason: fromNeovimReason(...), - }); -} - -function dummyEvent() { - return { - dispose: () => { - // empty - }, - }; -} From 7463b0074bb3879ade4e2a4e3e8b3f7cf9e75cfe Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 16:43:23 +0000 Subject: [PATCH 096/504] fix: temporarily change all the console.warn into console.log to avoid nvim to crash --- packages/cursorless-engine/src/core/Debug.ts | 4 ++-- .../src/languages/TreeSitterQuery/queryPredicateOperators.ts | 2 +- .../src/scripts/transformRecordedTests/index.ts | 4 ++-- .../src/testCaseRecorder/TestCaseRecorder.ts | 4 ++-- packages/cursorless-engine/src/testUtil/TalonRepl.ts | 2 +- packages/cursorless-org/src/components/embedded-video.tsx | 2 +- packages/cursorless-vscode/src/logQuickActions.ts | 2 +- packages/test-harness/src/launchVscodeAndRunTests.ts | 4 ++-- packages/test-harness/src/scripts/generateTestSubsetFile.ts | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/cursorless-engine/src/core/Debug.ts b/packages/cursorless-engine/src/core/Debug.ts index 4aad7bcded..c3928e0073 100644 --- a/packages/cursorless-engine/src/core/Debug.ts +++ b/packages/cursorless-engine/src/core/Debug.ts @@ -119,7 +119,7 @@ export class Debug { text += `"${cursor.nodeType}"`; } - console.log(text); + console.warn(text); if ( !nodeIsLast && @@ -129,7 +129,7 @@ export class Debug { } if (nodeIsNamed && !nodeIsLast) { - console.log(`${indent})`); + console.warn(`${indent})`); } } diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts b/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts index 92177ace8f..139e456f88 100644 --- a/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts +++ b/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts @@ -193,7 +193,7 @@ class Log extends QueryPredicateOperator { schema = z.tuple([q.node]); run(nodeInfo: MutableQueryCapture) { - console.log(`#log!: ${nodeInfo.name}@${nodeInfo.range}`); + console.warn(`#log!: ${nodeInfo.name}@${nodeInfo.range}`); return true; } } diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts b/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts index 9581deff31..a8b80025a4 100644 --- a/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts +++ b/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts @@ -37,8 +37,8 @@ async function main(args: string[]) { await transformFile(transformation, path); } catch (err) { failureCount++; - console.log(`Error with file ${path}`); - console.log((err as Error).message); + console.warn(`Error with file ${path}`); + console.warn((err as Error).message); } } diff --git a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts index 31436e4f9e..2eeaccacab 100644 --- a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts +++ b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts @@ -366,9 +366,9 @@ export class TestCaseRecorder { if (action === "Delete") { await fs.unlink(outPath, (err) => { if (err) { - console.log(`failed to delete ${outPath}: ${err}`); + console.warn(`failed to delete ${outPath}: ${err}`); } else { - console.log(`deleted ${outPath}`); + console.warn(`deleted ${outPath}`); } }); } diff --git a/packages/cursorless-engine/src/testUtil/TalonRepl.ts b/packages/cursorless-engine/src/testUtil/TalonRepl.ts index bbb10e6bf4..82e32df492 100644 --- a/packages/cursorless-engine/src/testUtil/TalonRepl.ts +++ b/packages/cursorless-engine/src/testUtil/TalonRepl.ts @@ -76,7 +76,7 @@ export class TalonRepl { break; } - console.log(output); + console.warn(output); if (tryCount++ > MAX_OUTPUT_TO_EAT) { throw Error("Too much output to eat"); diff --git a/packages/cursorless-org/src/components/embedded-video.tsx b/packages/cursorless-org/src/components/embedded-video.tsx index 2f434c6f37..a28ac18ab0 100644 --- a/packages/cursorless-org/src/components/embedded-video.tsx +++ b/packages/cursorless-org/src/components/embedded-video.tsx @@ -30,7 +30,7 @@ export function EmbeddedVideo({ youtubeSlug }: Props) { height="100%" controls={true} onError={(e) => { - console.log(`Error loading YouTube video: ${e}`); + console.warn(`Error loading YouTube video: ${e}`); setIsError(true); }} /> diff --git a/packages/cursorless-vscode/src/logQuickActions.ts b/packages/cursorless-vscode/src/logQuickActions.ts index cbd4f2afd3..1c8b385aa3 100644 --- a/packages/cursorless-vscode/src/logQuickActions.ts +++ b/packages/cursorless-vscode/src/logQuickActions.ts @@ -30,7 +30,7 @@ export async function logQuickActions(kind?: string) { })); availableCodeActions.forEach((availableCodeAction) => { - console.log(`${JSON.stringify(availableCodeAction, null, 2)}`); + console.warn(`${JSON.stringify(availableCodeAction, null, 2)}`); }); window.showInformationMessage( diff --git a/packages/test-harness/src/launchVscodeAndRunTests.ts b/packages/test-harness/src/launchVscodeAndRunTests.ts index 3ae784de2b..684a937a0c 100644 --- a/packages/test-harness/src/launchVscodeAndRunTests.ts +++ b/packages/test-harness/src/launchVscodeAndRunTests.ts @@ -56,7 +56,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { }, ); - console.log("finished installing dependency extensions"); + console.warn("finished installing dependency extensions"); // Run the integration test const code = await runTests({ @@ -73,7 +73,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`], }); - console.log(`Returned from "runTests" with value: ${code}`); + console.warn(`Returned from "runTests" with value: ${code}`); } catch (err) { console.error("Test run threw exception:"); console.error(err); diff --git a/packages/test-harness/src/scripts/generateTestSubsetFile.ts b/packages/test-harness/src/scripts/generateTestSubsetFile.ts index 7188c53601..583fcccc72 100644 --- a/packages/test-harness/src/scripts/generateTestSubsetFile.ts +++ b/packages/test-harness/src/scripts/generateTestSubsetFile.ts @@ -32,7 +32,7 @@ function run() { } if (!exists && process.argv.includes("--fail-if-not-exists")) { - console.log(`Please edit ${testSubsetGrepPath} and re-run.`); + console.warn(`Please edit ${testSubsetGrepPath} and re-run.`); process.exit(1); } } From 3c6216d22f4cb6c888ce76b0dfefebad60ab9b82 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 16:45:10 +0000 Subject: [PATCH 097/504] refactor: cleanup code --- .../common/src/testUtil/getFixturePaths.ts | 1 + packages/cursorless-neovim/src/extension.ts | 17 ++++------ .../src/ide/neovim/NeovimIDE.ts | 31 +++---------------- .../src/ide/neovim/hats/NeovimHats.ts | 7 ----- 4 files changed, 11 insertions(+), 45 deletions(-) diff --git a/packages/common/src/testUtil/getFixturePaths.ts b/packages/common/src/testUtil/getFixturePaths.ts index d1ef216ed3..bc989f3975 100644 --- a/packages/common/src/testUtil/getFixturePaths.ts +++ b/packages/common/src/testUtil/getFixturePaths.ts @@ -2,6 +2,7 @@ import * as path from "path"; import { walkFilesSync } from "../util/walkSync"; import { getCursorlessRepoRoot } from "./getCursorlessRepoRoot"; +// TODO: the fixtures should probably be moved to @cursorless/common export function getFixturesPath() { return path.join( getCursorlessRepoRoot(), diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index f273f179fc..61af9faabd 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -19,14 +19,11 @@ import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, SyntaxNode, Tree } from "web-tree-sitter"; -import { BufferManager } from "./types/BufferManager"; -import { injectBufferManager } from "./singletons/bufmgr.singleton"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; -import { injectIde as injectIde2 } from "./singletons/ide.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded.vscode.test"; +// import { runRecordedTestCases } from "./suite/recorded.vscode.test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -38,14 +35,10 @@ export async function activate(context: NeovimExtensionContext) { const client = context.client; const buffer = await client.buffer; - const bufmgr = new BufferManager(context); - injectBufferManager(bufmgr); - // TODO: we should be able to get the parsetree api directly from neovim // const parseTreeApi = await getParseTreeApi(); const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); - injectIde2(neovimIDE); // TODO: this is duplicating what Cursorless engine does but for NeovimIDE //await subscribeBufferUpdates(); @@ -110,9 +103,9 @@ export async function activate(context: NeovimExtensionContext) { console.warn("activate(): Cursorless extension loaded"); - console.warn("activate(): running the recorded test cases..."); - await runRecordedTestCases(); - console.warn("activate(): recorded test cases done"); + // console.warn("activate(): running the recorded test cases..."); + // await runRecordedTestCases(); + // console.warn("activate(): recorded test cases done"); } async function createNeovimIde(context: ExtensionContext) { @@ -121,6 +114,8 @@ async function createNeovimIde(context: ExtensionContext) { const hats = new NeovimHats(neovimIDE, context); await hats.init(); + // TODO: is the comment below problematic for neovim? + // FIXME: Inject this from test harness. Would need to arrange to delay // extension initialization, probably by returning a function from extension // init that has parameters consisting of test configuration, and have that diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 4ed7285a29..6186d6b6fb 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -1,5 +1,3 @@ -// adapted from packages\common\src\ide\fake\FakeIDE.ts -// and packages\cursorless-vscode\src\ide\vscode\VscodeIDE.ts import type { EditableTextEditor, Range, @@ -44,8 +42,8 @@ export class NeovimIDE implements IDE { private activeWindow: Window | undefined; cursorlessVersion: string = "0.0.0"; - // runMode: RunMode = "production"; - runMode: RunMode = "development"; // enable debug logs + runMode: RunMode = "production"; + // runMode: RunMode = "development"; // enable debug logs // runMode: RunMode = "test"; workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; @@ -58,9 +56,9 @@ export class NeovimIDE implements IDE { this.messages = new NeovimMessages(); this.clipboard = new NeovimClipboard(); this.capabilities = new NeovimCapabilities(); - // this.editorMap = new Map(); this.editorMap = new Map(); this.activeWindow = undefined; + //this.assetsRoot_ = "C:\\"; // TODO: fix but not needed for now as used by snippets and cheatsheet only? } async showQuickPick( @@ -93,7 +91,7 @@ export class NeovimIDE implements IDE { at flashTargets (cursorless-neovim\out\index.cjs:38187:15) at Bring.decorateTargets (cursorless-neovim\out\index.cjs:38318:7) */ - // it is not mandatory to implement for now so we can just log a warning + // TODO: it is not mandatory to implement for now so we can just log a warning console.warn("flashRanges Not implemented"); } @@ -181,23 +179,6 @@ export class NeovimIDE implements IDE { onDidChangeTextEditorVisibleRanges: Event = dummyEvent; - // public mockAssetsRoot(_assetsRoot: string) { - // this.assetsRoot_ = _assetsRoot; - // } - - // public setQuickPickReturnValue(value: string | undefined) { - // this.quickPickReturnValue = value; - // } - - // public fromNeovimEditor(editor: Window): NeovimTextEditorImpl { - // if (!this.editorMap.has(editor)) { - // const impl = new NeovimTextEditorImpl(uuid(), this, editor); - // impl.initialize(); - // this.editorMap.set(editor, impl); - // } - // return this.editorMap.get(editor)!; - // } - fromNeovimEditor( editor: Window, bufferId: number, @@ -237,10 +218,6 @@ export class NeovimIDE implements IDE { return () => pull(this.disposables, ...disposables); } - - // exit(): void { - // this.disposables.forEach((disposable) => disposable.dispose()); - // } } function dummyEvent() { diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index 3d3cf7468b..c07646ff8b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -5,16 +5,9 @@ import { Listener, Notifier, } from "@cursorless/common"; -// import { toVscodeRange, VscodeApi } from "@cursorless/vscode-common"; -// import * as vscode from "vscode"; import { ExtensionContext } from "../../../types/ExtensionContext"; import { Disposable } from "vscode"; -// import { VscodeHatStyleName } from "../hatStyles.types"; -// import VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager"; import type { NeovimIDE } from "../NeovimIDE"; -// import { VscodeTextEditorImpl } from "../VscodeTextEditorImpl"; -// import { FontMeasurements } from "./FontMeasurements"; -// import VscodeHatRenderer from "./VscodeHatRenderer"; export class NeovimHats implements Hats { enabledHatStyles: HatStyleMap; From b5ce9c461c6ad9161bff1387a614f813a2106dfd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 16:46:08 +0000 Subject: [PATCH 098/504] refactor: use ide() from Cursorless engine --- packages/cursorless-engine/src/index.ts | 1 + packages/cursorless-neovim/src/neovimHelpers.ts | 7 ++++--- .../cursorless-neovim/src/suite/recorded.vscode.test.ts | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-engine/src/index.ts b/packages/cursorless-engine/src/index.ts index 9087d6a60c..f0a7a5f22f 100644 --- a/packages/cursorless-engine/src/index.ts +++ b/packages/cursorless-engine/src/index.ts @@ -10,3 +10,4 @@ export * from "./api/CursorlessEngineApi"; export * from "./CommandRunner"; export * from "./CommandHistory"; export * from "./CommandHistoryAnalyzer"; +export * from "./singletons/ide.singleton"; diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index b47f3814ce..654b945868 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -6,8 +6,8 @@ import { windowGetVisibleRanges, } from "./neovimApi"; import { neovimContext } from "./singletons/context.singleton"; -import { ide } from "./singletons/ide.singleton"; -import { receivedBufferEvent } from "./types/BufferManager"; +import { ide } from "@cursorless/cursorless-engine"; +// import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { SpyIDE } from "@cursorless/common"; @@ -73,7 +73,8 @@ export async function subscribeBufferUpdates() { buffers.forEach( /* async */ (buf) => { console.warn("listening for changes in buffer: ", buf.id); - buf.listen("lines", receivedBufferEvent); + // buf.listen("lines", receivedBufferEvent); + // TODO: import code from BufferManager.ts into neovimIDE and uncomment the line above // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function // await buf[ATTACH](true); }, diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 0bee141f97..36712e5dad 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -44,7 +44,7 @@ import { promises as fsp } from "node:fs"; import { /* endToEndTestSetup, */ sleepWithBackoff, } from "../endToEndTestSetup"; -import { /* ide, */ injectIde } from "../singletons/ide.singleton"; +import { injectIde } from "@cursorless/cursorless-engine"; // import { commandApi } from "../singletons/cmdapi.singleton"; // import { takeSnapshot } from "@cursorless/cursorless-engine"; import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; From 2f2ee940b4f3ceae99514591659cdcb4ab96dd0d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 16:46:36 +0000 Subject: [PATCH 099/504] fix: another console.log replaced to avoid neovim to crash --- packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 1bd458f52e..6b1cace0f3 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -32,7 +32,7 @@ export class NeovimFileSystem implements FileSystem { // ); await fs.mkdirSync(this.cursorlessDir); } catch (err) { - console.log("Cannot create cursorlessDir", this.cursorlessDir, err); + console.warn("Cannot create cursorlessDir", this.cursorlessDir, err); } } From 6991027e02b176ef4c548ea6de8371a3a4ebe006 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 17:31:27 +0000 Subject: [PATCH 100/504] refactor: typo --- packages/cursorless-engine/src/languages/LanguageDefinitions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts index a38f0a20a8..fbd44b951a 100644 --- a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts +++ b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts @@ -53,7 +53,7 @@ export class LanguageDefinitions { editors.forEach(({ document }) => this.loadLanguage(document.languageId)); }); - // Use the repo root as the root for development mode, so that we can + // Use the repo root as the root for development mode, so that // we can make hot-reloading work for the queries this.queryDir = ide().runMode === "development" From 4f9aa5df7145692a70f33da0c1d7febb0c435c26 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 17:31:59 +0000 Subject: [PATCH 101/504] do we need await here? --- packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts | 2 ++ packages/cursorless-neovim/TODO.md | 1 + 2 files changed, 3 insertions(+) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index cc8090cbe9..75f031c561 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -57,9 +57,11 @@ export class CustomSpokenForms { constructor(private talonSpokenForms: TalonSpokenForms) { this.disposable = talonSpokenForms.onDidChange(() => + // TODO: do we need an await here? this.updateSpokenFormMaps(), ); + // TODO: do we need an await here? this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); } diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index ab5ee96d8e..c1005b5acd 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -11,6 +11,7 @@ - find a way to load neovim from script so we know when it is loaded so we can then attach to it for debugging? - avoid importing cursorless from command server? - test if we can reload the extensions after a modification without reloading neovim +- removed deasync dependencies # to do later From 2eebc05f2d05ba6ddf469c406362889fd260e802 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 17:40:42 +0000 Subject: [PATCH 102/504] fix: support any IDE for now --- packages/cursorless-neovim/src/neovimHelpers.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 654b945868..7292224d27 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -10,7 +10,7 @@ import { ide } from "@cursorless/cursorless-engine"; // import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { SpyIDE } from "@cursorless/common"; +import { NormalizedIDE, SpyIDE } from "@cursorless/common"; /** * Initialize the current editor (and current document). @@ -35,9 +35,12 @@ export async function updateTextEditor(): Promise { ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); const ide_ = ide(); + // TODO: It there a clean way to do it? let neovimIDE: NeovimIDE; if (ide_ instanceof NeovimIDE) { neovimIDE = ide_; + } else if (ide_ instanceof NormalizedIDE) { + neovimIDE = ide_.original as NeovimIDE; } else if (ide_ instanceof SpyIDE) { neovimIDE = ide_.original as NeovimIDE; } else { From 796ef1b9be14cfcb3b609f47ab4f986b6afde54c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 25 Mar 2024 18:08:03 +0000 Subject: [PATCH 103/504] fix: support spyIDE --- packages/cursorless-neovim/src/neovimHelpers.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 7292224d27..0166f684b4 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -42,7 +42,8 @@ export async function updateTextEditor(): Promise { } else if (ide_ instanceof NormalizedIDE) { neovimIDE = ide_.original as NeovimIDE; } else if (ide_ instanceof SpyIDE) { - neovimIDE = ide_.original as NeovimIDE; + const normalizedIDE = ide_.original as NormalizedIDE; + neovimIDE = normalizedIDE.original as NeovimIDE; } else { throw Error("updateTextEditor(): ide() is not NeovimIDE"); } From d415f1d346b4ff8fa83f8ecc63853a7336e03015 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 26 Mar 2024 09:31:00 +0000 Subject: [PATCH 104/504] build: bump neovim version (fixed the console.log bug) and remove unnecessary packages --- pnpm-lock.yaml | 100 ++----------------------------------------------- 1 file changed, 4 insertions(+), 96 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f753bff626..e24974715f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -305,18 +305,12 @@ importers: '@cursorless/cursorless-engine': specifier: workspace:* version: link:../cursorless-engine - '@kaciras/deasync': - specifier: 1.0.3 - version: 1.0.3 - deasync: - specifier: 0.1.29 - version: 0.1.29 lodash: specifier: ^4.17.21 version: 4.17.21 neovim: - specifier: 5.0.1 - version: 5.0.1 + specifier: 5.1.0 + version: 5.1.0 vscode-uri: specifier: 3.0.6 version: 3.0.6 @@ -324,9 +318,6 @@ importers: '@types/chai': specifier: ^4.3.3 version: 4.3.4 - '@types/deasync': - specifier: 0.1.5 - version: 0.1.5 '@types/js-yaml': specifier: ^4.0.2 version: 4.0.5 @@ -3543,17 +3534,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@kaciras/deasync@1.0.3: - resolution: {integrity: sha512-6ODifUTZkNMtjOPCpzz6FBoQQ8uqq9PuNM0eOT7CxXDc+1nXOdraTQf0WUymOeKtQo0rsyXMrbFqdDW6APPmqg==} - engines: {node: '>=14'} - requiresBuild: true - dependencies: - follow-redirects: 1.15.5 - tar-fs: 2.1.1 - transitivePeerDependencies: - - debug - dev: false - /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} @@ -4921,10 +4901,6 @@ packages: dependencies: '@types/node': 18.18.9 - /@types/deasync@0.1.5: - resolution: {integrity: sha512-mLov/tw+fOX4ZsrT9xuHOJv8xToOpNsp6W4gp8VDHy2qniJ58izyOzHlisnz5r8HdZ+WItDHtANWZy/W0JEJwg==} - dev: true - /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: @@ -6269,12 +6245,6 @@ packages: resolution: {integrity: sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==} engines: {node: '>=0.8'} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: false - /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -6701,10 +6671,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false - /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -7437,15 +7403,6 @@ packages: /dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - /deasync@0.1.29: - resolution: {integrity: sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==} - engines: {node: '>=0.11.0'} - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 - dev: false - /debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: false @@ -7878,12 +7835,6 @@ packages: iconv-lite: 0.6.3 optional: true - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - /enhanced-resolve@5.16.0: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} @@ -8726,10 +8677,6 @@ packages: webpack: 5.89.0(esbuild@0.17.11)(webpack-cli@5.1.4) dev: false - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false - /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -8912,10 +8859,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false - /fs-extra@11.1.0: resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} engines: {node: '>=14.14'} @@ -12178,10 +12121,6 @@ packages: minipass: 3.3.6 yallist: 4.0.0 - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - /mkdirp-infer-owner@2.0.0: resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} engines: {node: '>=10'} @@ -12337,8 +12276,8 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /neovim@5.0.1: - resolution: {integrity: sha512-dGrk2r+uQDZHB8yFKBuHUBqwP1akbCGUQt+Re7nRaS3uhOvsKYUvikg5qBRdcxoWMvvHIqp1EVihskKAk93mPw==} + /neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -12401,10 +12340,6 @@ packages: lower-case: 2.0.2 tslib: 2.6.2 - /node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - dev: false - /node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} @@ -13837,13 +13772,6 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false @@ -15636,26 +15564,6 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: false - - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - /tar@6.1.15: resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} From 036639bc2e1c22cdc2214b7f6fc0703a12d0d3e9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 26 Mar 2024 09:31:43 +0000 Subject: [PATCH 105/504] build: same as previous commit --- packages/cursorless-neovim/package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index a181fd75a7..b65db75c25 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -27,15 +27,12 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", - "@kaciras/deasync": "1.0.3", - "deasync": "0.1.29", "lodash": "^4.17.21", - "neovim": "5.0.1", + "neovim": "5.1.0", "vscode-uri": "3.0.6" }, "devDependencies": { "@types/chai": "^4.3.3", - "@types/deasync": "0.1.5", "@types/js-yaml": "^4.0.2", "@types/lodash": "4.14.181", "@types/uuid": "8.3.4", From e891b1b05077a5c9247e58fc1d72cb5d541def50 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 26 Mar 2024 16:06:51 +0000 Subject: [PATCH 106/504] build: remove old dependencies --- packages/cursorless-neovim/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index b65db75c25..b6027e89d8 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@kaciras/deasync --external:deasync --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", From 6fcca6e32ce43c94250ea48b77e652b00246b743 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 26 Mar 2024 16:07:49 +0000 Subject: [PATCH 107/504] build: initial launch/build automation --- .vscode/launch.json | 8 ++++++++ .vscode/tasks.json | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/.vscode/launch.json b/.vscode/launch.json index 0ff02741bf..ec66d9f403 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,6 +5,14 @@ { "version": "0.2.0", "configurations": [ + { + "name": "Run neovim extension", + "request": "attach", + "processName": "node.exe", + "skipFiles": ["/**"], + "preLaunchTask": "Build neovim extension only", + "type": "node" + }, { "name": "Run extension", "type": "extensionHost", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 69cd1ca783..f8d43357b0 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -16,6 +16,42 @@ "isDefault": true } }, + { + "label": "Build neovim extension only", + "dependsOn": ["ESBuild-cursorless-neovim"], + "group": "build" + }, + { + "label": "ESBuild-common", + "type": "npm", + "script": "compile", + "path": "packages/common", + "presentation": { + "reveal": "silent" + }, + "group": "build" + }, + { + "label": "ESBuild-cursorless-engine", + "type": "npm", + "script": "compile", + "path": "packages/cursorless-engine", + "presentation": { + "reveal": "silent" + }, + "group": "build" + }, + { + "label": "ESBuild-cursorless-neovim", + "type": "npm", + "script": "compile", + "path": "packages/cursorless-neovim", + "dependsOn": ["ESBuild-common", "ESBuild-cursorless-engine"], + "presentation": { + "reveal": "silent" + }, + "group": "build" + }, { "label": "Build extension only", "dependsOn": ["Populate dist", "ESBuild"], From 38899226755c3a49a44c81c467ff249034508ed8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 26 Mar 2024 16:08:07 +0000 Subject: [PATCH 108/504] docs: todo --- packages/cursorless-neovim/TODO.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index c1005b5acd..09884b71ff 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -4,7 +4,6 @@ # features -- insert to be paste() to have working bring into terminal - "paste to row one" from the clipboard - prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ - only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) From 67492dc516b09608e8003523c37b540eba611b1d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 08:20:47 +0000 Subject: [PATCH 109/504] fix: disable CustomSpokenForms.updateSpokenFormMaps exception being thrown until github issue is fixed --- .../src/spokenForms/CustomSpokenForms.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 75f031c561..c82ff2055d 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -97,9 +97,12 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); - // TODO: I don't think I can comment this without any side effect, can I? - throw err; - //return; + // TODO: commenting for now until https://github.com/cursorless-dev/cursorless/issues/2261 is fixed + // Indeed, this is a bit annoying when debugging, because this function is async, but there + // is no await so this error triggers later when we're debugging when we read a file or other async event + // throw err; + console.warn("Error loading custom spoken forms", err); + return; } for (const entryType of SUPPORTED_ENTRY_TYPES) { From e359a12f881380f3fc2e48bd42ae0385c1e875bd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 08:21:08 +0000 Subject: [PATCH 110/504] docs: comment to indicate we don't want to export ide() --- packages/cursorless-engine/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cursorless-engine/src/index.ts b/packages/cursorless-engine/src/index.ts index f0a7a5f22f..14466cc5a4 100644 --- a/packages/cursorless-engine/src/index.ts +++ b/packages/cursorless-engine/src/index.ts @@ -10,4 +10,5 @@ export * from "./api/CursorlessEngineApi"; export * from "./CommandRunner"; export * from "./CommandHistory"; export * from "./CommandHistoryAnalyzer"; +// TODO: do not export it export * from "./singletons/ide.singleton"; From f97aceb822088cf9d35cf59dffcdaacd25b3e5bb Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 08:22:36 +0000 Subject: [PATCH 111/504] fix: runMode == dev for fixture tests --- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 6186d6b6fb..a67c1f99f6 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -42,8 +42,9 @@ export class NeovimIDE implements IDE { private activeWindow: Window | undefined; cursorlessVersion: string = "0.0.0"; - runMode: RunMode = "production"; - // runMode: RunMode = "development"; // enable debug logs + // TODO: support changing the runMode dynamically + // runMode: RunMode = "production"; // use for end user + runMode: RunMode = "development"; // use to enable debug logs or for fixture tests // runMode: RunMode = "test"; workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; From 94c3ec4d65945da55b81af9b5a7a03a88710f695 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 15:12:52 +0000 Subject: [PATCH 112/504] docs: various comments --- packages/common/src/ide/PassthroughIDEBase.ts | 2 +- .../common/src/testUtil/getFixturePaths.ts | 2 +- packages/cursorless-engine/src/core/Debug.ts | 2 - .../src/spokenForms/CustomSpokenForms.ts | 2 - packages/cursorless-neovim/src/extension.ts | 17 ++++---- .../src/ide/neovim/NeovimFileSystem.ts | 42 +------------------ .../src/ide/neovim/NeovimIDE.ts | 7 ++-- packages/cursorless-neovim/src/index.ts | 3 +- packages/cursorless-neovim/src/neovimApi.ts | 26 ++++-------- .../cursorless-neovim/src/neovimHelpers.ts | 14 +++---- .../cursorless-neovim/src/registerCommands.ts | 2 +- .../src/suite/recorded.vscode.test.ts | 1 + 12 files changed, 34 insertions(+), 86 deletions(-) diff --git a/packages/common/src/ide/PassthroughIDEBase.ts b/packages/common/src/ide/PassthroughIDEBase.ts index 0be3300906..bbcec04124 100644 --- a/packages/common/src/ide/PassthroughIDEBase.ts +++ b/packages/common/src/ide/PassthroughIDEBase.ts @@ -28,7 +28,7 @@ export default class PassthroughIDEBase implements IDE { messages: Messages; capabilities: Capabilities; - // TODO: we probably want to revert "original" to be private? + // TODO: revert "original" to be "private". we can do that after using pure dependency injection constructor(public original: IDE) { this.configuration = original.configuration; this.globalState = original.globalState; diff --git a/packages/common/src/testUtil/getFixturePaths.ts b/packages/common/src/testUtil/getFixturePaths.ts index bc989f3975..ce5981a454 100644 --- a/packages/common/src/testUtil/getFixturePaths.ts +++ b/packages/common/src/testUtil/getFixturePaths.ts @@ -2,7 +2,7 @@ import * as path from "path"; import { walkFilesSync } from "../util/walkSync"; import { getCursorlessRepoRoot } from "./getCursorlessRepoRoot"; -// TODO: the fixtures should probably be moved to @cursorless/common +// TODO: the fixtures should probably be moved to @cursorless/common. This could be done as part of a separate PR export function getFixturesPath() { return path.join( getCursorlessRepoRoot(), diff --git a/packages/cursorless-engine/src/core/Debug.ts b/packages/cursorless-engine/src/core/Debug.ts index c3928e0073..0f3dddb6d8 100644 --- a/packages/cursorless-engine/src/core/Debug.ts +++ b/packages/cursorless-engine/src/core/Debug.ts @@ -38,8 +38,6 @@ export class Debug { log(...args: any[]) { if (this.active) { - // TODO: this is likely to crash neovim for now so disabling - // console.log(...args); console.warn(...args); } } diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index c82ff2055d..08d9e727ce 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -57,11 +57,9 @@ export class CustomSpokenForms { constructor(private talonSpokenForms: TalonSpokenForms) { this.disposable = talonSpokenForms.onDidChange(() => - // TODO: do we need an await here? this.updateSpokenFormMaps(), ); - // TODO: do we need an await here? this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 61af9faabd..474a9f3c08 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -30,14 +30,12 @@ import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; * NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup) * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ +// TODO: what to do with NeovimExtensionContext vs ExtensionContext vs not using it at all? export async function activate(context: NeovimExtensionContext) { debugger; const client = context.client; const buffer = await client.buffer; - // TODO: we should be able to get the parsetree api directly from neovim - // const parseTreeApi = await getParseTreeApi(); - const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); //await subscribeBufferUpdates(); @@ -57,7 +55,7 @@ export async function activate(context: NeovimExtensionContext) { ? fakeCommandServerApi : neovimCommandServerApi; - const treeSitter: TreeSitter = createTreeSitter(/* parseTreeApi */); + const treeSitter: TreeSitter = createTreeSitter(); const { commandApi, @@ -134,21 +132,22 @@ async function createNeovimIde(context: ExtensionContext) { return { neovimIDE, hats, fileSystem }; } -function createTreeSitter(/* parseTreeApi: ParseTreeApi */): TreeSitter { +// We don't need a parse tree for now, so just building a fake/empty one +function createTreeSitter(): TreeSitter { return { getNodeAtLocation(document: TextDocument, range: Range) { - return null as unknown as SyntaxNode; // TODO: update + return null as unknown as SyntaxNode; }, getTree(document: TextDocument) { - return null as unknown as Tree; // TODO: update + return null as unknown as Tree; }, loadLanguage(languageId: string) { - return Promise.resolve(false); // TODO: update + return Promise.resolve(false); }, getLanguage(languageId: string): Language | undefined { - return undefined; // TODO: update + return undefined; }, }; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 6b1cace0f3..45475fed31 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -26,6 +26,7 @@ export class NeovimFileSystem implements FileSystem { } public async initialize(): Promise { + // TODO: atm it always fails in development mode and shows this warning, is that expected? try { // await vscode.workspace.fs.createDirectory( // vscode.Uri.file(this.cursorlessDir), @@ -49,55 +50,16 @@ export class NeovimFileSystem implements FileSystem { */ public async readBundledFile(path: string): Promise { throw Error("readBundledFile() Not implemented"); - // TODO: we need to implement this - // return undefined; - // try { - // return this.decoder.decode( - // await vscode.workspace.fs.readFile(this.resolveBundledPath(path)), - // ); - // } catch (err) { - // if ( - // err instanceof Error && - // "code" in err && - // err.code === "FileNotFound" - // ) { - // return undefined; - // } - // throw err; - // } } private resolveBundledPath(path: string) { throw Error("resolveBundledPath() Not implemented"); - // TODO: we need to implement this - // if (isAbsolute(path)) { - // if (this.runMode !== "development") { - // throw new Error( - // "Absolute paths are not supported outside of development mode", - // ); - // } - // - // return vscode.Uri.file(path); - // } - // - // return vscode.Uri.joinPath(this.extensionContext.extensionUri, path); } public watchDir(path: string, onDidChange: PathChangeListener): Disposable { // throw Error("watchDir() Not implemented"); - // TODO: we need to implement this + // TODO: we need to implement this? return dummyEvent(); - // // return { dispose: () => {} }; - // // FIXME: Support globs? - // const watcher = vscode.workspace.createFileSystemWatcher( - // new vscode.RelativePattern(path, "**"), - // ); - // - // watcher.onDidChange(onDidChange); - // watcher.onDidCreate(onDidChange); - // watcher.onDidDelete(onDidChange); - // - // return watcher; } } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index a67c1f99f6..46218d4ee4 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -38,14 +38,15 @@ export class NeovimIDE implements IDE { readonly messages: NeovimMessages; readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; - public editorMap; // TODO: move to private? + public editorMap; // TODO: move to private? Should be possible right away? private activeWindow: Window | undefined; cursorlessVersion: string = "0.0.0"; - // TODO: support changing the runMode dynamically + // TODO: how can we support changing the runMode dynamically? + // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode // runMode: RunMode = "production"; // use for end user runMode: RunMode = "development"; // use to enable debug logs or for fixture tests - // runMode: RunMode = "test"; + // runMode: RunMode = "test"; // what is it used for? workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index fce2cd6937..1359fd6451 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -13,8 +13,7 @@ import { runRecordedTestCases } from "./suite/recorded.vscode.test"; */ export default function entry(plugin: NvimPlugin) { // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation - // TODO: it is not that useful in practice? Can we really call CursorlessLoadExtension() again without restarting Neovim? - // plugin.setOptions({ dev: false }); + // though it does not seem useful in practice for neovim as we can't really call CursorlessLoadExtension() again without restarting Neovim? plugin.setOptions({ dev: true }); plugin.registerFunction( diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 2e16118721..f424718a2d 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -6,8 +6,8 @@ import { Window } from "neovim/lib/api/Window"; /** * Get the current "selections" in the window(editor) * - * TODO: at the moment we only support one selection because vim only support one cursor - * TODO: support any window as atm only supports the current window + * At the moment we only support one selection because vim only supports one cursor + * At the moment, we only support the current window, hence why the argument is not used */ export async function bufferGetSelections( window: Window, @@ -20,7 +20,7 @@ export async function bufferGetSelections( number | boolean >; // console.warn(`bufferGetSelection(): result=${result}`); - // TODO: there must be a more beautiful way to get the returned values with the right types + // TODO: there must be a better way to get the returned values with the right types? const startLine = result[0] as number, startCol = result[1] as number, endLine = result[2] as number, @@ -55,22 +55,11 @@ export async function bufferSetSelections( // cursorless has 0-based lines/columns, but neovim has 1-based lines and 0-based columns // also, experience shows we need to subtract 1 from the end character to stop on it in visual mode (instead of after it) // https://neovim.io/doc/user/api.html#nvim_win_set_cursor() - - // TODO: this works fine for the "take" command - // let endIndex = selections[0].end.character - 1; - // TODO: this is mostly to avoid an out of bound when calling the lua function: nvim_win_set_cursor() - // if (endIndex === -1) { - // endIndex = 0; - // } - - // TODO: this works fine for the "copy" command, and for resetting the selection - const endIndex = selections[0].end.character; - const luaCode = `return require("talon.cursorless").select_range(${ selections[0].start.line + 1 - }, ${selections[0].start.character}, ${ - selections[0].end.line + 1 - }, ${endIndex})`; + }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ + selections[0].end.character + })`; console.warn( `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`, ); @@ -81,7 +70,8 @@ export async function bufferSetSelections( /** * Get the current "visible" ranges in the window(editor) (vertically). * This accounts only for vertical scrolling, and not for horizontal scrolling. - * TODO: support any window as atm only supports the current window + * + * At the moment, we only support the current window, hence why the argument is not used */ export async function windowGetVisibleRanges( window: Window, diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 0166f684b4..a72e4bb63a 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -17,8 +17,7 @@ import { NormalizedIDE, SpyIDE } from "@cursorless/common"; * We always overwrite the current editor from scratch for now * because we reinitialize it for every command we receive * - * TODO: We only initialize one editor(current window) with one document(current buffer) - * we need to support updating editors and documents on the fly + * Atm, we only initialize one editor(current window) with one document(current buffer) */ export async function updateTextEditor(): Promise { const client = neovimContext().client; @@ -35,7 +34,8 @@ export async function updateTextEditor(): Promise { ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); const ide_ = ide(); - // TODO: It there a clean way to do it? + // TODO: It there a clean way to do it? Yes once we support pure dependency injection + // also we can make this function a method of NeovimIDE class let neovimIDE: NeovimIDE; if (ide_ instanceof NeovimIDE) { neovimIDE = ide_; @@ -58,7 +58,9 @@ export async function updateTextEditor(): Promise { /** * Subscribe to buffer updates, e.g. when the text changes. - * TODO: keeping this code as it was previously tested and it works but need to see when it + * + * + * NOTE: keeping this code as it was previously tested and it works but need to see when it * will be useful (to update hats?) */ export async function subscribeBufferUpdates() { @@ -78,9 +80,7 @@ export async function subscribeBufferUpdates() { /* async */ (buf) => { console.warn("listening for changes in buffer: ", buf.id); // buf.listen("lines", receivedBufferEvent); - // TODO: import code from BufferManager.ts into neovimIDE and uncomment the line above - // TODO: Exception has occurred: TypeError: buf[import_Buffer.ATTACH] is not a function - // await buf[ATTACH](true); + // NOTE: import code from BufferManager.ts into neovimIDE and uncomment the line above }, ); } diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 1648a18d74..e3c508f87d 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -74,7 +74,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { } return commands["cursorless.command"](...rest); - // TODO: make the below notation work + // NOTE: making the below notation work is not needed anymore as we will use pure dependency injection // const HandlerFunction = (command: string) => { // commands[command](...rest); // }; diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 36712e5dad..1c7f797e67 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -90,6 +90,7 @@ export async function runRecordedTestCases() { // // ), // runTest(path, spyIde!), // ); + // TODO: use the assetRoot instead of hardcoding the path runTest( "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\marks\\takeRowFour.yml", spyIde!, From 54f9728a21649172711c1a581b41a8545529e37f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 15:15:30 +0000 Subject: [PATCH 113/504] feat: get talon.nvim and assets path --- packages/cursorless-neovim/src/extension.ts | 1 + .../src/ide/neovim/NeovimIDE.ts | 25 ++++++++++++++++++- packages/cursorless-neovim/src/neovimApi.ts | 9 ++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 474a9f3c08..9c1dd35f3e 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -108,6 +108,7 @@ export async function activate(context: NeovimExtensionContext) { async function createNeovimIde(context: ExtensionContext) { const neovimIDE = new NeovimIDE(context); + await neovimIDE.init(); const hats = new NeovimHats(neovimIDE, context); await hats.init(); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 46218d4ee4..8aca4ae15b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -31,6 +31,9 @@ import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import { Window } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; +import { NeovimExtensionContext } from "./NeovimExtensionContext"; +import { getTalonNvimPath } from "../../neovimApi"; +import path from "path"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -50,6 +53,7 @@ export class NeovimIDE implements IDE { workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; + private cursorlessNeovimPath: string | undefined; private quickPickReturnValue: string | undefined = undefined; constructor(private extensionContext: ExtensionContext) { @@ -60,7 +64,26 @@ export class NeovimIDE implements IDE { this.capabilities = new NeovimCapabilities(); this.editorMap = new Map(); this.activeWindow = undefined; - //this.assetsRoot_ = "C:\\"; // TODO: fix but not needed for now as used by snippets and cheatsheet only? + } + + async init() { + const client = (this.extensionContext as NeovimExtensionContext).client; + const talonNvimPath = await getTalonNvimPath(client); + // talon-nvim path: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim + // we store the assets into a subfolder of talon.nvim + this.assetsRoot_ = path.join(talonNvimPath, "assets"); + // development cursorless-neovim path: C:\Users\User\AppData\Local\nvim\rplugin\node\cursorless-neovim + // TODO: we will need to change this once all the files are in talon.nvim/ + this.cursorlessNeovimPath = path.join( + talonNvimPath, + "..", + "..", + "..", + "nvim", + "rplugin", + "node", + "cursorless-neovim", + ); } async showQuickPick( diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index f424718a2d..4cfd351f18 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -95,11 +95,18 @@ export async function windowGetVisibleRanges( ]; } +export async function getTalonNvimPath(client: NeovimClient): Promise { + const luaCode = `return require("talon.utils").talon_nvim_path()`; + const data = await client.executeLua(luaCode, []); + // TODO: is there a better way to cast that? + return data as unknown as string; +} + export async function putToClipboard(data: string, client: NeovimClient) { await client.callFunction("setreg", ["*", data]); } -// TODO: this hasn't been tested yet +// TODO: this hasn't been tested yet and will be once we test "paste to row one" commands export async function getFromClipboard(client: NeovimClient): Promise { const luaCode = `return require("talon.cursorless").get_from_clipboard()`; const data = await client.executeLua(luaCode, []); From 71969ba070206c8032018759ee27f7b8f14c632e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 20:06:36 +0000 Subject: [PATCH 114/504] fix: more missing await --- .../src/core/updateSelections/updateSelections.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts index ea758d40cb..8a4033cac5 100644 --- a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts +++ b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts @@ -258,7 +258,7 @@ export async function performEditsAndUpdateSelections( document, originalSelections, ); - return performEditsAndUpdateInternal( + return await performEditsAndUpdateInternal( rangeUpdater, editor, edits, @@ -307,7 +307,7 @@ export async function performEditsAndUpdateRanges( ): Promise { const document = editor.document; const selectionInfoMatrix = rangesToSelectionInfos(document, originalRanges); - return performEditsAndUpdateInternal( + return await performEditsAndUpdateInternal( rangeUpdater, editor, edits, @@ -321,6 +321,8 @@ async function performEditsAndUpdateInternal( edits: Edit[], selectionInfoMatrix: FullSelectionInfo[][], ) { + // TODO: can't we just return the return value from performEditsAndUpdateFullSelectionInfos() + // It is the same as what will return below with selectionInfosToSelections()? await performEditsAndUpdateFullSelectionInfos( rangeUpdater, editor, From 3d9dde4081bc3aa34f4822638be4f3f568bc82b9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 20:07:15 +0000 Subject: [PATCH 115/504] refactor: better prints --- packages/cursorless-neovim/src/neovimApi.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 4cfd351f18..b02b3d7597 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -27,20 +27,27 @@ export async function bufferGetSelections( endCol = result[3] as number, reverse = result[4] as boolean; // subtract 1 to the lines/columns to get the correct 0-based line/column numbers + let selections: Selection[]; if (reverse === true) { - return [ + selections = [ new Selection( new Position(endLine - 1, endCol - 1), new Position(startLine - 1, startCol - 1), ), ]; + } else { + selections = [ + new Selection( + new Position(startLine - 1, startCol - 1), + new Position(endLine - 1, endCol - 1), + ), + ]; } - return [ - new Selection( - new Position(startLine - 1, startCol - 1), - new Position(endLine - 1, endCol - 1), - ), - ]; + + console.warn( + `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, + ); + return selections; } export async function bufferSetSelections( From 78f3408a1f045b2250bfa005cfad7fd61af13780 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 20:08:11 +0000 Subject: [PATCH 116/504] fix: missing await --- packages/cursorless-neovim/src/suite/recorded.vscode.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 1c7f797e67..c4c938a61a 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -126,7 +126,9 @@ async function runTest(file: string, spyIde: SpyIDE) { await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs); } - editor.setSelections(fixture.initialState.selections.map(createSelection)); + await editor.setSelections( + fixture.initialState.selections.map(createSelection), + ); // for (const storedTargetKey of storedTargetKeys) { // const key = `${storedTargetKey}Mark` as const; From 9213d6a20b3c56f25e74c6efa3eaa4ef3d6bb7fc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 20:23:21 +0000 Subject: [PATCH 117/504] feat: change editor/document logic to only update the lines of the documents instead of recreating an entire editor+document --- .../src/ide/neovim/NeovimEdit.ts | 1 + .../src/ide/neovim/NeovimIDE.ts | 14 ++++++ .../src/ide/neovim/NeovimTextDocumentImpl.ts | 7 +++ .../src/ide/neovim/NeovimTextEditorImpl.ts | 46 ++++++++++++++----- .../cursorless-neovim/src/neovimHelpers.ts | 14 +++--- 5 files changed, 62 insertions(+), 20 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 9e3a7e4f49..593c71e799 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -29,6 +29,7 @@ export default async function neovimEdit( } } + // update our view of the document await updateTextEditor(); return true; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 8aca4ae15b..455914721d 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -224,6 +224,20 @@ export class NeovimIDE implements IDE { visibleRanges: Range[], selections: Selection[], ): NeovimTextEditorImpl { + if ( + this.activeWindow && + this.editorMap.has(this.activeWindow) && + this.activeWindow.id === editor.id + ) { + console.warn( + "toNeovimEditor(): editor already exists, updating its document", + ); + const activeEditor = this.activeTextEditor as NeovimTextEditorImpl; + activeEditor.initDocument(bufferId, lines, visibleRanges, selections); + return activeEditor; + } + + console.warn("toNeovimEditor(): creating new editor/document"); this.activeWindow = editor; const impl = new NeovimTextEditorImpl( uuid(), diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 60caf6f25e..7de1cb0b95 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -67,6 +67,13 @@ export class NeovimTextDocumentImpl implements TextDocument { this._cachedTextValue = null; } + public update(lines: string[]) { + this._lines = lines; + + this._lineStarts = null; + this._cachedTextValue = null; + } + public lineAt(lineOrPosition: number | Position): TextLine { let line: number | undefined; if (lineOrPosition instanceof Position) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 65b408d55f..93bef64352 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -20,8 +20,8 @@ import { NeovimIDE } from "./NeovimIDE"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; export class NeovimTextEditorImpl implements EditableTextEditor { - readonly document: TextDocument; - private _selections: Selection[]; + private _document: TextDocument | undefined; + private _selections: Selection[] | undefined; constructor( public readonly id: string, @@ -32,17 +32,39 @@ export class NeovimTextEditorImpl implements EditableTextEditor { public visibleRanges: Range[], selections: Selection[], ) { - // TODO: don't hardcode arguments - this.document = new NeovimTextDocumentImpl( - URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), - "plaintext", - 1, - //"\n", - "\r\n", - lines, - ); + this.initDocument(bufferId, lines, visibleRanges, selections); + } + + get document(): TextDocument { + return this._document as TextDocument; + } + + public initDocument( + bufferId: number, + lines: string[], + visibleRanges: Range[], + selections: Selection[], + ): NeovimTextDocumentImpl { + if (this._document) { + console.warn( + "initDocument(): document already exists, updating its content", + ); + (this._document as NeovimTextDocumentImpl).update(lines); + } else { + // TODO: don't hardcode arguments + console.warn("initDocument(): creating new document"); + this._document = new NeovimTextDocumentImpl( + URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), + "plaintext", + 1, + "\n", + // "\r\n", + lines, + ); + } // console.warn(`NeovimTextEditorImpl(): lines=${lines}`); this._selections = selections; + return this._document as NeovimTextDocumentImpl; } // neovim terminology for editor is window @@ -51,7 +73,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } get selections(): Selection[] { - return this._selections; // TODO: this should work, but needs testing + return this._selections as Selection[]; // throw Error("get selections Not implemented"); } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index a72e4bb63a..a0841bff93 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -14,8 +14,10 @@ import { NormalizedIDE, SpyIDE } from "@cursorless/common"; /** * Initialize the current editor (and current document). - * We always overwrite the current editor from scratch for now - * because we reinitialize it for every command we receive + * If the current editor already exists, it will only update the current document of that editor. + * + * when we receive our first cursorless command, we will initialize an editor an document for it. + * for the following commands, we will only update the document. * * Atm, we only initialize one editor(current window) with one document(current buffer) */ @@ -24,14 +26,10 @@ export async function updateTextEditor(): Promise { const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; - console.warn(`updateTextEditor(): lines=${lines}`); console.warn( - `creating editor/document for window:${window.id} buffer:${buffer.id}`, + `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${lines}`, ); const selections = await bufferGetSelections(window, client); - console.warn( - `updateTextEditor(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, - ); const visibleRanges = await windowGetVisibleRanges(window, client, lines); const ide_ = ide(); // TODO: It there a clean way to do it? Yes once we support pure dependency injection @@ -66,7 +64,7 @@ export async function updateTextEditor(): Promise { export async function subscribeBufferUpdates() { const client = neovimContext().client; - // initialize the editor since it is needed before we can attach? + // update the document since it is needed before we can attach? await updateTextEditor(); /** From 0af0f57388874279bc384523eae10e7644564465 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 22:06:50 +0000 Subject: [PATCH 118/504] docs: todo --- packages/cursorless-neovim/TODO.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 09884b71ff..4dd55c6bee 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,22 +1,24 @@ # questions -- merge talon-vscode-command-client and cursorless-talon? +- Pokey: merge talon-vscode-command-client and cursorless-talon? +- Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) +- Pokey: go over the "TODO:" in the code +- Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless -# features +# to do -- "paste to row one" from the clipboard -- prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ -- only one command to build, run neovim, and attach to it? (see my build program, run program, debug program) - - find a way to load neovim from script so we know when it is loaded so we can then attach to it for debugging? -- avoid importing cursorless from command server? -- test if we can reload the extensions after a modification without reloading neovim -- removed deasync dependencies +- "paste to row one" from the clipboard, see getFromClipboard() +- find a way to load nvim.exe in the background as part of launch.json/tasks.json to load neovim so we can attach to it with debugger +- hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log +- understand why no node plugin logging in vscode anymore with latest node-client? # to do later +- can we reload the extensions after a modification without reloading neovim? does not seem to work atm - separate PR for text editor setSelections() -- separate PR for the text editor edit() +- separate PR to move fixtures to @cursorless/common - have the command server allow executing any lua function? probably not because we already have neovim rpc. +- prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ only useful to chain multiple commands to avoid hats being changed in the middle so not useful for now # fidgeting From aae0fc065caedf09f72421bbce9df666dd6b468f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 22:13:33 +0000 Subject: [PATCH 119/504] feat: re-add buffer subscription + first fixture test working! --- packages/cursorless-neovim/src/extension.ts | 10 +-- .../src/ide/neovim/NeovimEvents.ts | 89 ++++++++++++++++--- .../src/ide/neovim/NeovimIDE.ts | 18 ++-- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 10 ++- .../cursorless-neovim/src/neovimHelpers.ts | 16 ++-- .../cursorless-neovim/src/registerCommands.ts | 3 +- .../src/suite/recorded.vscode.test.ts | 4 +- 7 files changed, 105 insertions(+), 45 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 9c1dd35f3e..9b804aadc7 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -23,7 +23,7 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; -// import { runRecordedTestCases } from "./suite/recorded.vscode.test"; +import { runRecordedTestCases } from "./suite/recorded.vscode.test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -38,8 +38,6 @@ export async function activate(context: NeovimExtensionContext) { const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); - //await subscribeBufferUpdates(); - const normalizedIde = neovimIDE.runMode === "production" ? neovimIDE @@ -101,9 +99,9 @@ export async function activate(context: NeovimExtensionContext) { console.warn("activate(): Cursorless extension loaded"); - // console.warn("activate(): running the recorded test cases..."); - // await runRecordedTestCases(); - // console.warn("activate(): recorded test cases done"); + console.warn("activate(): running the recorded test cases..."); + await runRecordedTestCases(); + console.warn("activate(): recorded test cases done"); } async function createNeovimIde(context: ExtensionContext) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index bfe8807cad..d14f7dc646 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -12,14 +12,20 @@ // import { bufferManager } from "../../singletons/bufmgr.singleton"; import { Disposable, + NormalizedIDE, Position, Range, + SpyIDE, + TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, + TextEditor, } from "@cursorless/common"; import { Buffer } from "neovim"; import { eventEmitter } from "../../events"; +import { NeovimIDE } from "./NeovimIDE"; +import { ide } from "@cursorless/cursorless-engine"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, @@ -28,25 +34,84 @@ export function neovimOnDidChangeTextDocument( return dummyEvent(); } +/** + * @see https://neovim.io/doc/user/api.html#api-buffer-updates + */ +// TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? +export async function receivedBufferEvent( + buffer: Buffer, + tick: number, + firstLine: number, + lastLine: number, + linedata: string[], + more: boolean, +): Promise { + console.warn( + `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, + ); + + const ide_ = ide(); + // TODO: It there a clean way to do it? Yes once we support pure dependency injection + // also we can make this function a method of NeovimIDE class + let neovimIDE: NeovimIDE; + if (ide_ instanceof NeovimIDE) { + neovimIDE = ide_; + } else if (ide_ instanceof NormalizedIDE) { + neovimIDE = ide_.original as NeovimIDE; + } else if (ide_ instanceof SpyIDE) { + const normalizedIDE = ide_.original as NormalizedIDE; + neovimIDE = normalizedIDE.original as NeovimIDE; + } else { + throw Error("receivedBufferEvent(): ide() is not NeovimIDE"); + } + // We will need to get the document according to the buffer id + // once we want to support several windows + //const document = getTextDocumentForBufferId(buffer.id); + // But for now we get the current document + const document = (neovimIDE.activeTextEditor as TextEditor).document; + + // const contents = await document.getText(); + // console.warn( + // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, + // ); + eventEmitter.emit("onDidChangeTextDocument", { + document: document, + contentChanges: fromNeovimContentChange( + document, + buffer, + firstLine, + lastLine, + linedata, + ), + // reason: fromNeovimReason(...), + }); +} + export function fromNeovimContentChange( + document: TextDocument, buffer: Buffer, firstLine: number, lastLine: number, linedata: string[], ): TextDocumentContentChangeEvent[] { const result = []; - // we can't just subtract lastLine - firstLine - for (let i = 0; i < linedata.length; ++i) { - const line = firstLine + i; - const text = linedata[i]; - console.warn(`fromNeovimContentChange(): line=${line}, text=${text}`); - result.push({ - range: new Range(new Position(line, 0), new Position(line, text.length)), - rangeOffset: 0, - rangeLength: 0, - text: text, - }); - } + const text = linedata.join("\n"); + console.warn( + `fromNeovimContentChange(): document.getText(): ${document.getText()}`, + ); + // TODO: support when firstLine === lastLine + const range = new Range( + new Position(firstLine, 0), + new Position(lastLine - 1, document.lineAt(lastLine - 1).text.length), + ); + const rangeOffset = document.offsetAt(range.start); + const rangeLength = document.offsetAt(range.end) - rangeOffset; + result.push({ + range: range, + rangeOffset: rangeOffset, + rangeLength: rangeLength, + text: text, + }); return result; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 455914721d..e6f2409fcb 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -34,6 +34,7 @@ import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { NeovimExtensionContext } from "./NeovimExtensionContext"; import { getTalonNvimPath } from "../../neovimApi"; import path from "path"; +import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -185,15 +186,14 @@ export class NeovimIDE implements IDE { throw new Error("executeCommand Method not implemented."); } - onDidChangeTextDocument: Event = dummyEvent; - // TODO: code below was tested successfully so can be reenabled when needed - // public onDidChangeTextDocument( - // listener: (event: TextDocumentChangeEvent) => void, - // ): Disposable { - // // console.warn("onDidChangeTextDocument Not implemented"); - // // throw Error("onDidChangeTextDocument Not implemented"); - // return neovimOnDidChangeTextDocument(listener); - // } + // onDidChangeTextDocument: Event = dummyEvent; + public onDidChangeTextDocument( + listener: (event: TextDocumentChangeEvent) => void, + ): Disposable { + // console.warn("onDidChangeTextDocument Not implemented"); + // throw Error("onDidChangeTextDocument Not implemented"); + return neovimOnDidChangeTextDocument(listener); + } onDidOpenTextDocument: Event = dummyEvent; onDidCloseTextDocument: Event = dummyEvent; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 7de1cb0b95..2f78d0d247 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -131,15 +131,17 @@ export class NeovimTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { - console.warn(`getText() range=undefined`); + console.warn(`getText(all)`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } - console.warn(`getText() returning cached value=${this._cachedTextValue}`); + console.warn( + `getText(all) returning cached value=${this._cachedTextValue}`, + ); return this._cachedTextValue; } else { console.warn( - `getText() range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character})`, + `getText(range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character}))`, ); } @@ -178,7 +180,7 @@ export class NeovimTextDocumentImpl implements TextDocument { ); console.warn( - `getText() returning multiple lines ${resultLines.join(lineEnding)}`, + `getText() returning multiple lines: ${resultLines.join(lineEnding)}`, ); return resultLines.join(lineEnding); } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index a0841bff93..5e6c6529d4 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -11,6 +11,7 @@ import { ide } from "@cursorless/cursorless-engine"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NormalizedIDE, SpyIDE } from "@cursorless/common"; +import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; /** * Initialize the current editor (and current document). @@ -56,29 +57,22 @@ export async function updateTextEditor(): Promise { /** * Subscribe to buffer updates, e.g. when the text changes. - * - * - * NOTE: keeping this code as it was previously tested and it works but need to see when it - * will be useful (to update hats?) */ export async function subscribeBufferUpdates() { const client = neovimContext().client; - // update the document since it is needed before we can attach? - await updateTextEditor(); - /** * "attach" to Nvim buffers to subscribe to buffer update events. * This is similar to TextChanged but more powerful and granular. * * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() */ - const buffers = await client.buffers; + // const buffers = await client.buffers; + const buffers = [await client.buffer]; buffers.forEach( /* async */ (buf) => { - console.warn("listening for changes in buffer: ", buf.id); - // buf.listen("lines", receivedBufferEvent); - // NOTE: import code from BufferManager.ts into neovimIDE and uncomment the line above + console.warn(`listening for changes in buffer: ${buf.id}`); + buf.listen("lines", receivedBufferEvent); }, ); } diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index e3c508f87d..886a866506 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,6 +1,6 @@ import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; -import { updateTextEditor } from "./neovimHelpers"; +import { subscribeBufferUpdates, updateTextEditor } from "./neovimHelpers"; /** * Handle the command received from the command-server Neovim extension @@ -19,6 +19,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { // try { await updateTextEditor(); + await subscribeBufferUpdates(); const result = await commandApi().runCommandSafe(...args); // const result = ["hello world"]; // simulate the result of "bring " return result; diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index c4c938a61a..ec93e1e077 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -91,8 +91,8 @@ export async function runRecordedTestCases() { // runTest(path, spyIde!), // ); // TODO: use the assetRoot instead of hardcoding the path - runTest( - "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\marks\\takeRowFour.yml", + await runTest( + "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\marks\\clearRowTwoPastFour.yml", spyIde!, ); } From 2528487c6e6fcd6f83a8dada92f9677a05a1d0a8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 22:43:08 +0000 Subject: [PATCH 120/504] feat: enable multiple tests --- packages/cursorless-neovim/src/extension.ts | 2 +- .../src/suite/recorded.vscode.test.ts | 24 +++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 9b804aadc7..acb29f8bd0 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -32,7 +32,7 @@ import { runRecordedTestCases } from "./suite/recorded.vscode.test"; */ // TODO: what to do with NeovimExtensionContext vs ExtensionContext vs not using it at all? export async function activate(context: NeovimExtensionContext) { - debugger; + // debugger; const client = context.client; const buffer = await client.buffer; diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index ec93e1e077..d2efa72132 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -83,25 +83,23 @@ export async function runRecordedTestCases() { // - multiple selections (we don't support multiple cursors atm) // - marks is non {} (we don't not support decorated symbol marks atm) // - others? - // getRecordedTestPaths().forEach(({ name, path }) => - // // test( - // // name, - // // asyncSafety(() => runTest(path, getSpy()!)), - // // ), - // runTest(path, spyIde!), - // ); + for (const { name, path } of getRecordedTestPaths()) { + await runTest(name, path, spyIde!); + } // TODO: use the assetRoot instead of hardcoding the path - await runTest( - "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\marks\\clearRowTwoPastFour.yml", - spyIde!, - ); } -async function runTest(file: string, spyIde: SpyIDE) { - console.warn(`runTest(${file})`); +async function runTest(name: string, file: string, spyIde: SpyIDE) { const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; + // We don't support decorated symbol marks yet + // We don't support parse-tree yet (which requires a code languageId) + if (fixture.initialState.marks || fixture.languageId !== "plaintext") { + console.warn(`runTest(${name}) => skipped`); + return; + } + console.warn(`runTest(${name})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests // "Couldn't find token default.a" From 27504ae78aa237578459d4b51511fb08f4c5336f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 27 Mar 2024 22:51:26 +0000 Subject: [PATCH 121/504] docs: start listing failing tests --- packages/cursorless-neovim/src/extension.ts | 2 ++ .../cursorless-neovim/src/suite/recorded.vscode.test.ts | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index acb29f8bd0..c6224fb44d 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -99,9 +99,11 @@ export async function activate(context: NeovimExtensionContext) { console.warn("activate(): Cursorless extension loaded"); + // COMMENT ME IF YOU DON'T WANT TO RUN TESTS console.warn("activate(): running the recorded test cases..."); await runRecordedTestCases(); console.warn("activate(): recorded test cases done"); + // COMMENT ME END } async function createNeovimIde(context: ExtensionContext) { diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index d2efa72132..f6fd5935d1 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -99,6 +99,14 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { console.warn(`runTest(${name}) => skipped`); return; } + // Below are tests that should pass but fails for now + if ( + name === "recorded/ordinalScopes/changeSecondTwoTokens" || + name === "recorded/surroundingPair/textual/clearBoundsRound" + ) { + console.warn(`runTest(${name}) => skipped as needs fixing`); + return; + } console.warn(`runTest(${name})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests From 4581bae6dc609c29c87e14c65f9e76d1a3e8eade Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 22:54:56 +0000 Subject: [PATCH 122/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/getExtensionApi.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/getExtensionApi.ts b/packages/cursorless-neovim/src/getExtensionApi.ts index 5da25e0024..6a50c667fe 100644 --- a/packages/cursorless-neovim/src/getExtensionApi.ts +++ b/packages/cursorless-neovim/src/getExtensionApi.ts @@ -1,6 +1,5 @@ -import type { CommandServerApi, SnippetMap } from "@cursorless/common"; +import type { SnippetMap } from "@cursorless/common"; //import * as vscode from "vscode"; -import type { Language, SyntaxNode, Tree } from "web-tree-sitter"; import { TestHelpers } from "./TestHelpers"; export interface CursorlessApi { From 7caaacfea9539affa269f83349221805931141dc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:09:12 +0000 Subject: [PATCH 123/504] docs: various comments --- packages/common/src/testUtil/getFixturePaths.ts | 1 - .../src/core/updateSelections/updateSelections.ts | 2 -- packages/cursorless-neovim/TODO.md | 7 +++++-- packages/cursorless-neovim/src/extension.ts | 10 ++++------ .../src/ide/neovim/NeovimFileSystem.ts | 1 + .../cursorless-neovim/src/types/ExtensionContext.ts | 2 ++ 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/common/src/testUtil/getFixturePaths.ts b/packages/common/src/testUtil/getFixturePaths.ts index ce5981a454..d1ef216ed3 100644 --- a/packages/common/src/testUtil/getFixturePaths.ts +++ b/packages/common/src/testUtil/getFixturePaths.ts @@ -2,7 +2,6 @@ import * as path from "path"; import { walkFilesSync } from "../util/walkSync"; import { getCursorlessRepoRoot } from "./getCursorlessRepoRoot"; -// TODO: the fixtures should probably be moved to @cursorless/common. This could be done as part of a separate PR export function getFixturesPath() { return path.join( getCursorlessRepoRoot(), diff --git a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts index 8a4033cac5..442f157856 100644 --- a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts +++ b/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts @@ -321,8 +321,6 @@ async function performEditsAndUpdateInternal( edits: Edit[], selectionInfoMatrix: FullSelectionInfo[][], ) { - // TODO: can't we just return the return value from performEditsAndUpdateFullSelectionInfos() - // It is the same as what will return below with selectionInfosToSelections()? await performEditsAndUpdateFullSelectionInfos( rangeUpdater, editor, diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 4dd55c6bee..55afec23c0 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -4,6 +4,9 @@ - Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) - Pokey: go over the "TODO:" in the code - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless +- NPM as package manager message (see screenshot) +- Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") +- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? on the cursorless repo? # to do @@ -11,6 +14,8 @@ - find a way to load nvim.exe in the background as part of launch.json/tasks.json to load neovim so we can attach to it with debugger - hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log - understand why no node plugin logging in vscode anymore with latest node-client? +- utf8 is not supported well +- fix the bring command on the terminal because it doesn't work anymore # to do later @@ -22,9 +27,7 @@ # fidgeting -- integrate tests for cursorless-neovim? see testCaseRecorder.vscode.test.ts - fix neovim terminology - extension => plugin - editor => window (any place remaining?) have readme with the corresponding terms between vscode and neovim -- git repo to mention issues, for instance the can't reenter normal mode from terminal mode? diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c6224fb44d..0cee11ee20 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -30,7 +30,7 @@ import { runRecordedTestCases } from "./suite/recorded.vscode.test"; * NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup) * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ -// TODO: what to do with NeovimExtensionContext vs ExtensionContext vs not using it at all? +// TODO: what to do with NeovimExtensionContext vs ExtensionContext vs not using it at all? we don't need it so delete it entirely export async function activate(context: NeovimExtensionContext) { // debugger; const client = context.client; @@ -100,9 +100,9 @@ export async function activate(context: NeovimExtensionContext) { console.warn("activate(): Cursorless extension loaded"); // COMMENT ME IF YOU DON'T WANT TO RUN TESTS - console.warn("activate(): running the recorded test cases..."); - await runRecordedTestCases(); - console.warn("activate(): recorded test cases done"); + // console.warn("activate(): running the recorded test cases..."); + // await runRecordedTestCases(); + // console.warn("activate(): recorded test cases done"); // COMMENT ME END } @@ -113,8 +113,6 @@ async function createNeovimIde(context: ExtensionContext) { const hats = new NeovimHats(neovimIDE, context); await hats.init(); - // TODO: is the comment below problematic for neovim? - // FIXME: Inject this from test harness. Would need to arrange to delay // extension initialization, probably by returning a function from extension // init that has parameters consisting of test configuration, and have that diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 45475fed31..12341d2bf8 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -27,6 +27,7 @@ export class NeovimFileSystem implements FileSystem { public async initialize(): Promise { // TODO: atm it always fails in development mode and shows this warning, is that expected? + // make it forgiving that is to say if it exists don't show the print, pass the option object try { // await vscode.workspace.fs.createDirectory( // vscode.Uri.file(this.cursorlessDir), diff --git a/packages/cursorless-neovim/src/types/ExtensionContext.ts b/packages/cursorless-neovim/src/types/ExtensionContext.ts index efb92824a2..a4ced1692d 100644 --- a/packages/cursorless-neovim/src/types/ExtensionContext.ts +++ b/packages/cursorless-neovim/src/types/ExtensionContext.ts @@ -4,6 +4,7 @@ * The ExtensionMode is provided on the `ExtensionContext` and indicates the * mode the specific extension is running in. */ +// TODO: support for neovim or delete entirely? export enum ExtensionMode { /** * The extension is installed normally (for example, from the marketplace @@ -31,6 +32,7 @@ export enum ExtensionMode { * An instance of an `ExtensionContext` is provided as the first * parameter to the `activate`-call of an extension. */ +// TODO: support for neovim or delete entirely? export class ExtensionContext { /** * An array to which disposables can be added. When this From 1fe2f5adc87d119ee08939140655017e961d711c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:09:46 +0000 Subject: [PATCH 124/504] docs: comment --- packages/cursorless-engine/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-engine/src/index.ts b/packages/cursorless-engine/src/index.ts index 14466cc5a4..946ed3ab9d 100644 --- a/packages/cursorless-engine/src/index.ts +++ b/packages/cursorless-engine/src/index.ts @@ -10,5 +10,5 @@ export * from "./api/CursorlessEngineApi"; export * from "./CommandRunner"; export * from "./CommandHistory"; export * from "./CommandHistoryAnalyzer"; -// TODO: do not export it +// TODO: do not export it. we can do that after using pure dependency injection export * from "./singletons/ide.singleton"; From c99de0d532f472873874910efae58c34b5ce8d55 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:10:55 +0000 Subject: [PATCH 125/504] refactor: better way to write typescript --- packages/cursorless-neovim/src/neovimApi.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index b02b3d7597..6478845322 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -16,16 +16,16 @@ export async function bufferGetSelections( const luaCode = `return require("talon.cursorless").buffer_get_selection()`; // Note lines are indexed from 1, similarly to what is shown in neovim // and columns are also indexed from 1 - const result = (await client.executeLua(luaCode, [])) as Array< - number | boolean - >; + const [startLine, startCol, endLine, endCol, reverse] = + (await client.executeLua(luaCode, [])) as [ + number, + number, + number, + number, + boolean, + ]; // console.warn(`bufferGetSelection(): result=${result}`); // TODO: there must be a better way to get the returned values with the right types? - const startLine = result[0] as number, - startCol = result[1] as number, - endLine = result[2] as number, - endCol = result[3] as number, - reverse = result[4] as boolean; // subtract 1 to the lines/columns to get the correct 0-based line/column numbers let selections: Selection[]; if (reverse === true) { From dadec12237c9dd6ef34a7621310711317b856aad Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:11:29 +0000 Subject: [PATCH 126/504] docs: more comments --- packages/cursorless-neovim/src/neovimApi.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 6478845322..b6b3c79814 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -104,8 +104,9 @@ export async function windowGetVisibleRanges( export async function getTalonNvimPath(client: NeovimClient): Promise { const luaCode = `return require("talon.utils").talon_nvim_path()`; + //TODO: could actually have a wrapper around execute lua in order to avoid this const data = await client.executeLua(luaCode, []); - // TODO: is there a better way to cast that? + // TODO: is there a better way to cast that? no here return data as unknown as string; } From bdab6fe5e19c6a79f034cb437c7654b21e81ea9f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:12:48 +0000 Subject: [PATCH 127/504] feat: partial implementation of "paste to" --- .../src/ide/neovim/NeovimTextEditorImpl.ts | 3 ++- packages/cursorless-neovim/src/neovimApi.ts | 15 +++++++++++---- packages/cursorless-neovim/src/neovimHelpers.ts | 11 +++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 93bef64352..8b52602997 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -13,7 +13,7 @@ import { import { Window } from "neovim"; import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; -import { neovimClipboardCopy } from "../../neovimHelpers"; +import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; import { neovimContext } from "../../singletons/context.singleton"; import neovimEdit from "./NeovimEdit"; import { NeovimIDE } from "./NeovimIDE"; @@ -166,6 +166,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } public async clipboardPaste(_ranges?: Range[]): Promise { + await neovimClipboardPaste(); throw Error("clipboardPaste Not implemented"); } diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index b6b3c79814..dedcb21e60 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -110,13 +110,20 @@ export async function getTalonNvimPath(client: NeovimClient): Promise { return data as unknown as string; } +/** + * Save the data string into the operating system clipboard + * https://vimdoc.sourceforge.net/htmldoc/eval.html#setreg() + * https://stackoverflow.com/questions/11489428/how-can-i-make-vim-paste-from-and-copy-to-the-systems-clipboard?page=1&tab=scoredesc#tab-top + * https://stackoverflow.com/questions/30691466/what-is-difference-between-vims-clipboard-unnamed-and-unnamedplus-settings + */ export async function putToClipboard(data: string, client: NeovimClient) { await client.callFunction("setreg", ["*", data]); } -// TODO: this hasn't been tested yet and will be once we test "paste to row one" commands +/** + * Return the string from the operating system clipboard + * https://vimdoc.sourceforge.net/htmldoc/eval.html#getreg() + */ export async function getFromClipboard(client: NeovimClient): Promise { - const luaCode = `return require("talon.cursorless").get_from_clipboard()`; - const data = await client.executeLua(luaCode, []); - return data as unknown as string; + return await client.callFunction("getreg", ["*"]); } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 5e6c6529d4..0bd40b8fe4 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -2,6 +2,7 @@ import { bufferGetSelections, + getFromClipboard, putToClipboard, windowGetVisibleRanges, } from "./neovimApi"; @@ -85,3 +86,13 @@ export async function neovimClipboardCopy(): Promise { const data = editor.document.getText(selections[0]); await putToClipboard(data, client); } + +export async function neovimClipboardPaste(): Promise { + const editor = ide().activeTextEditor as NeovimTextEditorImpl; + const client = neovimContext().client; + const window = await client.window; + const data = await getFromClipboard(client); + // TODO: get the current selection indexes, + // retrieve the corresponding lines from the Buffer, + // and replace the lines with the pasted data +} From bce68ade68b8d0129197d5a41ba07c6d14dffb63 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:46:25 +0000 Subject: [PATCH 128/504] build: update lock file after pokey dependency updates --- pnpm-lock.yaml | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eaf5c7b626..1b7338f3fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -320,10 +320,10 @@ importers: devDependencies: '@types/chai': specifier: ^4.3.3 - version: 4.3.4 + version: 4.3.14 '@types/js-yaml': specifier: ^4.0.2 - version: 4.0.5 + version: 4.0.9 '@types/lodash': specifier: 4.14.181 version: 4.14.181 @@ -3525,11 +3525,6 @@ packages: react: 18.2.0 dev: false - /@mobily/ts-belt@3.13.1: - resolution: {integrity: sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q==} - engines: {node: '>= 10.*'} - dev: true - /@msgpack/msgpack@2.8.0: resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} engines: {node: '>= 10'} @@ -5088,6 +5083,10 @@ packages: '@types/node': 18.18.2 dev: true + /@types/lodash@4.14.181: + resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} + dev: true + /@types/lodash@4.17.0: resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} dev: true @@ -5298,6 +5297,10 @@ packages: /@types/unist@3.0.2: resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + /@types/uuid@8.3.4: + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + dev: true + /@types/uuid@9.0.8: resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} dev: true @@ -5308,6 +5311,10 @@ packages: '@types/expect': 1.20.4 '@types/node': 18.18.2 + /@types/vscode@1.66.0: + resolution: {integrity: sha512-ZfJck4M7nrGasfs4A4YbUoxis3Vu24cETw3DERsNYtDZmYSYtk6ljKexKFKhImO/ZmY6ZMsmegu2FPkXoUFImA==} + dev: true + /@types/vscode@1.75.1: resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} dev: true @@ -11277,11 +11284,6 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - dev: true - /kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} dev: false @@ -16817,6 +16819,10 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 + /vscode-uri@3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + dev: false + /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} dev: false @@ -17273,7 +17279,7 @@ packages: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 - async: 3.2.4 + async: 3.2.5 is-stream: 2.0.1 logform: 2.6.0 one-time: 1.0.0 From 37b8d367290936315807a1c0e429840d8dfea9f3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:47:42 +0000 Subject: [PATCH 129/504] refactor: remove NeovimExtensionContext unused type --- packages/cursorless-neovim/src/extension.ts | 20 +-- .../src/ide/neovim/NeovimEdit.ts | 6 +- .../src/ide/neovim/NeovimEvents.ts | 12 -- .../src/ide/neovim/NeovimExtensionContext.ts | 42 ----- .../src/ide/neovim/NeovimFileSystem.ts | 5 +- .../src/ide/neovim/NeovimIDE.ts | 9 +- .../src/ide/neovim/NeovimTextEditorImpl.ts | 4 +- .../src/ide/neovim/hats/NeovimHats.ts | 2 - packages/cursorless-neovim/src/index.ts | 7 +- .../cursorless-neovim/src/neovimHelpers.ts | 10 +- .../src/singletons/client.singleton.ts | 31 ++++ .../src/singletons/context.singleton.ts | 30 ---- .../src/testUtil/openNewEditor.ts | 4 +- .../src/types/ExtensionContext.ts | 170 ------------------ 14 files changed, 58 insertions(+), 294 deletions(-) delete mode 100644 packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts create mode 100644 packages/cursorless-neovim/src/singletons/client.singleton.ts delete mode 100644 packages/cursorless-neovim/src/singletons/context.singleton.ts delete mode 100644 packages/cursorless-neovim/src/types/ExtensionContext.ts diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 0cee11ee20..98f40d824b 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -13,8 +13,6 @@ import { import * as crypto from "crypto"; import * as os from "os"; import * as path from "path"; -import { ExtensionContext } from "./types/ExtensionContext"; -import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; @@ -24,19 +22,22 @@ import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; import { runRecordedTestCases } from "./suite/recorded.vscode.test"; +import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; +import { NeovimClient } from "neovim/lib/api/client"; +import { injectClient } from "./singletons/client.singleton"; /** * This function is called from talon.nvim to initialize the Cursorless engine. * NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup) * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ -// TODO: what to do with NeovimExtensionContext vs ExtensionContext vs not using it at all? we don't need it so delete it entirely -export async function activate(context: NeovimExtensionContext) { +export async function activate(plugin: NvimPlugin) { // debugger; - const client = context.client; + const client = plugin.nvim as NeovimClient; + injectClient(client); const buffer = await client.buffer; - const { neovimIDE, hats, fileSystem } = await createNeovimIde(context); + const { neovimIDE, hats, fileSystem } = await createNeovimIde(client); const normalizedIde = neovimIDE.runMode === "production" @@ -106,11 +107,11 @@ export async function activate(context: NeovimExtensionContext) { // COMMENT ME END } -async function createNeovimIde(context: ExtensionContext) { - const neovimIDE = new NeovimIDE(context); +async function createNeovimIde(client: NeovimClient) { + const neovimIDE = new NeovimIDE(client); await neovimIDE.init(); - const hats = new NeovimHats(neovimIDE, context); + const hats = new NeovimHats(neovimIDE); await hats.init(); // FIXME: Inject this from test harness. Would need to arrange to delay @@ -122,7 +123,6 @@ async function createNeovimIde(context: ExtensionContext) { : path.join(os.homedir(), ".cursorless"); const fileSystem = new NeovimFileSystem( - context, neovimIDE.runMode, cursorlessDir, ); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 593c71e799..eb56667aa1 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -1,7 +1,7 @@ import { Edit, Position, Range } from "@cursorless/common"; import { Window } from "neovim"; import { updateTextEditor } from "../../neovimHelpers"; -import { neovimContext } from "../../singletons/context.singleton"; +import { neovimClient } from "../../singletons/client.singleton"; export default async function neovimEdit( editor: Window, @@ -35,7 +35,7 @@ export default async function neovimEdit( } async function neovimDelete(range: Range): Promise { - const client = neovimContext().client; + const client = neovimClient(); const buffer = await client.window.buffer; // only keep the end of the last line @@ -106,7 +106,7 @@ async function neovimInsert(position: Position, text: string) { // standardise newlines so we can easily split the lines const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - const client = neovimContext().client; + const client = neovimClient(); const buffer = await client.window.buffer; const lineWhereInsertion = ( diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index d14f7dc646..6865cb4a28 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -1,15 +1,3 @@ -// // import { fromVscodeRange } from "@cursorless/vscode-common"; -// // import * as vscode from "vscode"; -// import type { -// TextDocumentChangeEvent, -// TextDocumentChangeReason, -// TextDocumentContentChangeEvent, -// } from "@cursorless/common"; -// import { Event } from "@cursorless/common"; -// import type { Disposable } from "@cursorless/common"; -// import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -// import { neovimContext } from "../../singletons/context.singleton"; -// import { bufferManager } from "../../singletons/bufmgr.singleton"; import { Disposable, NormalizedIDE, diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts deleted file mode 100644 index 8f6668f8eb..0000000000 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimExtensionContext.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { NeovimClient, NvimPlugin } from "neovim"; -import { ExtensionContext } from "../../types/ExtensionContext"; - -export class NeovimExtensionContext extends ExtensionContext { - readonly client: NeovimClient; - - // get extensionMode(): ExtensionMode { - // return this.context.extensionMode; - // } - - // get subscriptions(): { dispose(): any }[] { - // return this.context.subscriptions; - // } - - // get extensionPath(): string { - // return this.context.extensionPath; - // } - - // get storagePath(): string | undefined { - // return this.context.storagePath; - // } - - // get globalStoragePath(): string { - // return this.context.globalStoragePath; - // } - - // get logPath(): string { - // return this.context.logPath; - // } - - constructor( - // private context: ExtensionContext, - plugin: NvimPlugin, - ) { - super(); - this.client = plugin.nvim as NeovimClient; - } - - // asAbsolutePath(relativePath: string): string { - // throw new Error("Method not implemented."); - // } -} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 12341d2bf8..18060c3d72 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -4,9 +4,7 @@ import { PathChangeListener, RunMode, } from "@cursorless/common"; -import { /* isAbsolute, */ join } from "path"; -// import * as vscode from "vscode"; -import { ExtensionContext } from "../../types/ExtensionContext"; +import { join } from "path"; import * as fs from "fs"; export class NeovimFileSystem implements FileSystem { @@ -14,7 +12,6 @@ export class NeovimFileSystem implements FileSystem { public readonly cursorlessCommandHistoryDirPath: string; constructor( - private readonly extensionContext: ExtensionContext, private readonly runMode: RunMode, private readonly cursorlessDir: string, ) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index e6f2409fcb..a9506efd9b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -23,15 +23,13 @@ import type { } from "@cursorless/common"; import { pull } from "lodash"; import { v4 as uuid } from "uuid"; -import { ExtensionContext } from "../../types/ExtensionContext"; import { NeovimCapabilities } from "./NeovimCapabilities"; import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; -import { Window } from "neovim"; +import { NeovimClient, Window } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import { NeovimExtensionContext } from "./NeovimExtensionContext"; import { getTalonNvimPath } from "../../neovimApi"; import path from "path"; import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; @@ -57,7 +55,7 @@ export class NeovimIDE implements IDE { private cursorlessNeovimPath: string | undefined; private quickPickReturnValue: string | undefined = undefined; - constructor(private extensionContext: ExtensionContext) { + constructor(private client: NeovimClient) { this.configuration = new NeovimConfiguration(); this.globalState = new NeovimGlobalState(); this.messages = new NeovimMessages(); @@ -68,8 +66,7 @@ export class NeovimIDE implements IDE { } async init() { - const client = (this.extensionContext as NeovimExtensionContext).client; - const talonNvimPath = await getTalonNvimPath(client); + const talonNvimPath = await getTalonNvimPath(this.client); // talon-nvim path: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim // we store the assets into a subfolder of talon.nvim this.assetsRoot_ = path.join(talonNvimPath, "assets"); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 8b52602997..656a4b7d0a 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -14,7 +14,7 @@ import { Window } from "neovim"; import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; -import { neovimContext } from "../../singletons/context.singleton"; +import { neovimClient } from "../../singletons/client.singleton"; import neovimEdit from "./NeovimEdit"; import { NeovimIDE } from "./NeovimIDE"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; @@ -81,7 +81,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { // We assume setting it on the neovim never fails // as we cache the selections in the editor too this._selections = selections; - await bufferSetSelections(neovimContext().client, selections); + await bufferSetSelections(neovimClient(), selections); // console.warn(`setSelections() done`); // throw Error("set selections Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index c07646ff8b..d9ced4f96b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -5,7 +5,6 @@ import { Listener, Notifier, } from "@cursorless/common"; -import { ExtensionContext } from "../../../types/ExtensionContext"; import { Disposable } from "vscode"; import type { NeovimIDE } from "../NeovimIDE"; @@ -17,7 +16,6 @@ export class NeovimHats implements Hats { constructor( private ide: NeovimIDE, - ExtensionContext: ExtensionContext, ) { this.enabledHatStyles = {}; // TODO: we don't support hats yet diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 1359fd6451..cfaff2cb1e 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,8 +1,5 @@ -// import { createCursorlessEngine } from "@cursorless/cursorless-engine"; -import { NeovimExtensionContext } from "./ide/neovim/NeovimExtensionContext"; import { NvimPlugin } from "neovim"; import { activate } from "./extension"; -import { injectContext } from "./singletons/context.singleton"; import { handleCommandInternal } from "./registerCommands"; import { runRecordedTestCases } from "./suite/recorded.vscode.test"; @@ -39,9 +36,7 @@ function loadExtension(plugin: NvimPlugin) { console.warn("loadExtension(cursorless-neovim): " + currentDateStr); // plugin.nvim.setLine(currentDateStr); - const extensionContext = new NeovimExtensionContext(plugin); - injectContext(extensionContext); - activate(extensionContext); + activate(plugin); } /** diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 0bd40b8fe4..2c6bb752cb 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -6,7 +6,7 @@ import { putToClipboard, windowGetVisibleRanges, } from "./neovimApi"; -import { neovimContext } from "./singletons/context.singleton"; +import { neovimClient } from "./singletons/client.singleton"; import { ide } from "@cursorless/cursorless-engine"; // import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; @@ -24,7 +24,7 @@ import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; * Atm, we only initialize one editor(current window) with one document(current buffer) */ export async function updateTextEditor(): Promise { - const client = neovimContext().client; + const client = neovimClient(); const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; @@ -60,7 +60,7 @@ export async function updateTextEditor(): Promise { * Subscribe to buffer updates, e.g. when the text changes. */ export async function subscribeBufferUpdates() { - const client = neovimContext().client; + const client = neovimClient(); /** * "attach" to Nvim buffers to subscribe to buffer update events. @@ -80,7 +80,7 @@ export async function subscribeBufferUpdates() { export async function neovimClipboardCopy(): Promise { const editor = ide().activeTextEditor as NeovimTextEditorImpl; - const client = neovimContext().client; + const client = neovimClient(); const window = await client.window; const selections = await bufferGetSelections(window, client); const data = editor.document.getText(selections[0]); @@ -89,7 +89,7 @@ export async function neovimClipboardCopy(): Promise { export async function neovimClipboardPaste(): Promise { const editor = ide().activeTextEditor as NeovimTextEditorImpl; - const client = neovimContext().client; + const client = neovimClient(); const window = await client.window; const data = await getFromClipboard(client); // TODO: get the current selection indexes, diff --git a/packages/cursorless-neovim/src/singletons/client.singleton.ts b/packages/cursorless-neovim/src/singletons/client.singleton.ts new file mode 100644 index 0000000000..a6c079043a --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/client.singleton.ts @@ -0,0 +1,31 @@ +import { NeovimClient } from "neovim/lib/api/client"; + + +/** + * This is the `client` singleton + */ +let client_: NeovimClient | undefined; + +/** + * Injects an {@link NeovimClient} object that can be used to interact with the client. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param client The client to inject + */ +export function injectClient(client: NeovimClient | undefined) { + client_ = client; +} + +/** + * Gets the singleton used to interact with the client. + * @throws Error if the client hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The client object + */ +export function neovimClient(): NeovimClient { + if (client_ == null) { + throw Error("Tried to access neovimClient before it was injected"); + } + + return client_; +} diff --git a/packages/cursorless-neovim/src/singletons/context.singleton.ts b/packages/cursorless-neovim/src/singletons/context.singleton.ts deleted file mode 100644 index abeec91546..0000000000 --- a/packages/cursorless-neovim/src/singletons/context.singleton.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NeovimExtensionContext } from "../ide/neovim/NeovimExtensionContext"; - -/** - * This is the `context` singleton - */ -let context_: NeovimExtensionContext | undefined; - -/** - * Injects an {@link NeovimExtensionContext} object that can be used to interact with the extension. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param context The context to inject - */ -export function injectContext(context: NeovimExtensionContext | undefined) { - context_ = context; -} - -/** - * Gets the singleton used to interact with the extension. - * @throws Error if the context hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The context object - */ -export function neovimContext(): NeovimExtensionContext { - if (context_ == null) { - throw Error("Tried to access neovimContext before it was injected"); - } - - return context_; -} diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index f71eb5f977..33a22decd3 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -4,7 +4,7 @@ import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; import { updateTextEditor } from "../neovimHelpers"; -import { neovimContext } from "../singletons/context.singleton"; +import { neovimClient } from "../singletons/client.singleton"; interface NewEditorOptions { languageId?: string; @@ -23,7 +23,7 @@ export async function openNewEditor( // standardise newlines so we can easily split the lines const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - const client = neovimContext().client; + const client = neovimClient(); const window = await client.window; const buffer = await window.buffer; diff --git a/packages/cursorless-neovim/src/types/ExtensionContext.ts b/packages/cursorless-neovim/src/types/ExtensionContext.ts deleted file mode 100644 index a4ced1692d..0000000000 --- a/packages/cursorless-neovim/src/types/ExtensionContext.ts +++ /dev/null @@ -1,170 +0,0 @@ -// originally from vscode - -/** - * The ExtensionMode is provided on the `ExtensionContext` and indicates the - * mode the specific extension is running in. - */ -// TODO: support for neovim or delete entirely? -export enum ExtensionMode { - /** - * The extension is installed normally (for example, from the marketplace - * or VSIX) in the editor. - */ - Production = 1, - - /** - * The extension is running from an `--extensionDevelopmentPath` provided - * when launching the editor. - */ - Development = 2, - - /** - * The extension is running from an `--extensionTestsPath` and - * the extension host is running unit tests. - */ - Test = 3, -} - -/** - * An extension context is a collection of utilities private to an - * extension. - * - * An instance of an `ExtensionContext` is provided as the first - * parameter to the `activate`-call of an extension. - */ -// TODO: support for neovim or delete entirely? -export class ExtensionContext { - /** - * An array to which disposables can be added. When this - * extension is deactivated the disposables will be disposed. - * - * *Note* that asynchronous dispose-functions aren't awaited. - */ - // readonly subscriptions: { dispose(): any }[]; - /** - * A memento object that stores state in the context - * of the currently opened {@link workspace.workspaceFolders workspace}. - */ - // readonly workspaceState: Memento; - /** - * A memento object that stores state independent - * of the current opened {@link workspace.workspaceFolders workspace}. - */ - // readonly globalState: Memento & { - // /** - // * Set the keys whose values should be synchronized across devices when synchronizing user-data - // * like configuration, extensions, and mementos. - // * - // * Note that this function defines the whole set of keys whose values are synchronized: - // * - calling it with an empty array stops synchronization for this memento - // * - calling it with a non-empty array replaces all keys whose values are synchronized - // * - // * For any given set of keys this function needs to be called only once but there is no harm in - // * repeatedly calling it. - // * - // * @param keys The set of keys whose values are synced. - // */ - // setKeysForSync(keys: readonly string[]): void; - // }; - /** - * A storage utility for secrets. Secrets are persisted across reloads and are independent of the - * current opened {@link workspace.workspaceFolders workspace}. - */ - // readonly secrets: SecretStorage; - /** - * The uri of the directory containing the extension. - */ - // readonly extensionUri: Uri; - /** - * The absolute file path of the directory containing the extension. Shorthand - * notation for {@link TextDocument.uri ExtensionContext.extensionUri.fsPath} (independent of the uri scheme). - */ - // readonly extensionPath: string; - /** - * Gets the extension's environment variable collection for this workspace, enabling changes - * to be applied to terminal environment variables. - */ - // readonly environmentVariableCollection: EnvironmentVariableCollection; - /** - * Get the absolute path of a resource contained in the extension. - * - * *Note* that an absolute uri can be constructed via {@linkcode Uri.joinPath} and - * {@linkcode ExtensionContext.extensionUri extensionUri}, e.g. `vscode.Uri.joinPath(context.extensionUri, relativePath);` - * - * @param relativePath A relative path to a resource contained in the extension. - * @return The absolute path of the resource. - */ - // asAbsolutePath(relativePath: string): string; - /** - * The uri of a workspace specific directory in which the extension - * can store private state. The directory might not exist and creation is - * up to the extension. However, the parent directory is guaranteed to be existent. - * The value is `undefined` when no workspace nor folder has been opened. - * - * Use {@linkcode ExtensionContext.workspaceState workspaceState} or - * {@linkcode ExtensionContext.globalState globalState} to store key value data. - * - * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from - * an uri. - */ - // readonly storageUri: Uri | undefined; - /** - * An absolute file path of a workspace specific directory in which the extension - * can store private state. The directory might not exist on disk and creation is - * up to the extension. However, the parent directory is guaranteed to be existent. - * - * Use {@linkcode ExtensionContext.workspaceState workspaceState} or - * {@linkcode ExtensionContext.globalState globalState} to store key value data. - * - * @deprecated Use {@link ExtensionContext.storageUri storageUri} instead. - */ - // readonly storagePath: string | undefined; - /** - * The uri of a directory in which the extension can store global state. - * The directory might not exist on disk and creation is - * up to the extension. However, the parent directory is guaranteed to be existent. - * - * Use {@linkcode ExtensionContext.globalState globalState} to store key value data. - * - * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from - * an uri. - */ - // readonly globalStorageUri: Uri; - /** - * An absolute file path in which the extension can store global state. - * The directory might not exist on disk and creation is - * up to the extension. However, the parent directory is guaranteed to be existent. - * - * Use {@linkcode ExtensionContext.globalState globalState} to store key value data. - * - * @deprecated Use {@link ExtensionContext.globalStorageUri globalStorageUri} instead. - */ - // readonly globalStoragePath: string; - /** - * The uri of a directory in which the extension can create log files. - * The directory might not exist on disk and creation is up to the extension. However, - * the parent directory is guaranteed to be existent. - * - * @see {@linkcode FileSystem workspace.fs} for how to read and write files and folders from - * an uri. - */ - // readonly logUri: Uri; - /** - * An absolute file path of a directory in which the extension can create log files. - * The directory might not exist on disk and creation is up to the extension. However, - * the parent directory is guaranteed to be existent. - * - * @deprecated Use {@link ExtensionContext.logUri logUri} instead. - */ - // readonly logPath: string; - /** - * The mode the extension is running in. This is specific to the current - * extension. One extension may be in `ExtensionMode.Development` while - * other extensions in the host run in `ExtensionMode.Release`. - */ - // readonly extensionMode: ExtensionMode; - /** - * The current `Extension` instance. - */ - // readonly extension: Extension; -} From 54c13bf4ee3073fa2878a0179043d0d99ba01948 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 14:56:25 +0000 Subject: [PATCH 130/504] docs: comments --- packages/cursorless-neovim/TODO.md | 2 +- packages/cursorless-neovim/src/neovimApi.ts | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 55afec23c0..27e2b6c0ea 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -2,7 +2,7 @@ - Pokey: merge talon-vscode-command-client and cursorless-talon? - Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) -- Pokey: go over the "TODO:" in the code +- Pokey: go over the remaining "TODO:" in the code - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless - NPM as package manager message (see screenshot) - Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index dedcb21e60..77c194233f 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -24,8 +24,6 @@ export async function bufferGetSelections( number, boolean, ]; - // console.warn(`bufferGetSelection(): result=${result}`); - // TODO: there must be a better way to get the returned values with the right types? // subtract 1 to the lines/columns to get the correct 0-based line/column numbers let selections: Selection[]; if (reverse === true) { @@ -91,7 +89,7 @@ export async function windowGetVisibleRanges( const [firstLine, lastLine] = (await client.executeLua( luaCode, [], - )) as Array; + )) as [number, number]; // subtract 1 to the lines to get the correct 0-based line numbers return [ new Range( @@ -105,7 +103,7 @@ export async function windowGetVisibleRanges( export async function getTalonNvimPath(client: NeovimClient): Promise { const luaCode = `return require("talon.utils").talon_nvim_path()`; //TODO: could actually have a wrapper around execute lua in order to avoid this - const data = await client.executeLua(luaCode, []); + const data = await client.executeLua(luaCode, []) as unknown as string; // TODO: is there a better way to cast that? no here return data as unknown as string; } From 0f55a297f98c9175513af34e97c4c8f962951bc2 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 15:10:39 +0000 Subject: [PATCH 131/504] refactor: cleanup comments --- packages/common/src/ide/PassthroughIDEBase.ts | 2 +- packages/cursorless-engine/src/index.ts | 2 +- packages/cursorless-neovim/TODO.md | 2 +- .../src/ide/neovim/NeovimEvents.ts | 3 +- .../src/ide/neovim/NeovimFileSystem.ts | 15 ++-- .../src/ide/neovim/NeovimIDE.ts | 18 +--- .../src/ide/neovim/hats/NeovimHats.ts | 2 +- packages/cursorless-neovim/src/neovimApi.ts | 2 - .../cursorless-neovim/src/neovimHelpers.ts | 2 +- .../src/suite/recorded.vscode.test.ts | 90 +++---------------- 10 files changed, 28 insertions(+), 110 deletions(-) diff --git a/packages/common/src/ide/PassthroughIDEBase.ts b/packages/common/src/ide/PassthroughIDEBase.ts index bbcec04124..9be18e2382 100644 --- a/packages/common/src/ide/PassthroughIDEBase.ts +++ b/packages/common/src/ide/PassthroughIDEBase.ts @@ -28,7 +28,7 @@ export default class PassthroughIDEBase implements IDE { messages: Messages; capabilities: Capabilities; - // TODO: revert "original" to be "private". we can do that after using pure dependency injection + // DEP-INJ: revert "original" to be "private". we can do that after using pure dependency injection constructor(public original: IDE) { this.configuration = original.configuration; this.globalState = original.globalState; diff --git a/packages/cursorless-engine/src/index.ts b/packages/cursorless-engine/src/index.ts index 946ed3ab9d..a3d283b2c2 100644 --- a/packages/cursorless-engine/src/index.ts +++ b/packages/cursorless-engine/src/index.ts @@ -10,5 +10,5 @@ export * from "./api/CursorlessEngineApi"; export * from "./CommandRunner"; export * from "./CommandHistory"; export * from "./CommandHistoryAnalyzer"; -// TODO: do not export it. we can do that after using pure dependency injection +// DEP-INJ: do not export it. we can do that after using pure dependency injection export * from "./singletons/ide.singleton"; diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 27e2b6c0ea..3649bbb7f9 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -3,7 +3,7 @@ - Pokey: merge talon-vscode-command-client and cursorless-talon? - Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) - Pokey: go over the remaining "TODO:" in the code -- Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless +- Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: - NPM as package manager message (see screenshot) - Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") - git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? on the cursorless repo? diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index 6865cb4a28..ef9dcd5324 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -39,7 +39,7 @@ export async function receivedBufferEvent( ); const ide_ = ide(); - // TODO: It there a clean way to do it? Yes once we support pure dependency injection + // DEP-INJ: It there a clean way to do it? Yes once we support pure dependency injection // also we can make this function a method of NeovimIDE class let neovimIDE: NeovimIDE; if (ide_ instanceof NeovimIDE) { @@ -87,7 +87,6 @@ export function fromNeovimContentChange( console.warn( `fromNeovimContentChange(): document.getText(): ${document.getText()}`, ); - // TODO: support when firstLine === lastLine const range = new Range( new Position(firstLine, 0), new Position(lastLine - 1, document.lineAt(lastLine - 1).text.length), diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 18060c3d72..3073078c2d 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -23,15 +23,12 @@ export class NeovimFileSystem implements FileSystem { } public async initialize(): Promise { - // TODO: atm it always fails in development mode and shows this warning, is that expected? - // make it forgiving that is to say if it exists don't show the print, pass the option object - try { - // await vscode.workspace.fs.createDirectory( - // vscode.Uri.file(this.cursorlessDir), - // ); - await fs.mkdirSync(this.cursorlessDir); - } catch (err) { - console.warn("Cannot create cursorlessDir", this.cursorlessDir, err); + if (!fs.existsSync(this.cursorlessDir)) { + try { + fs.mkdirSync(this.cursorlessDir); + } catch (err) { + console.warn("Cannot create cursorlessDir", this.cursorlessDir, err); + } } } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index a9506efd9b..58eb871bf7 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -40,7 +40,7 @@ export class NeovimIDE implements IDE { readonly messages: NeovimMessages; readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; - public editorMap; // TODO: move to private? Should be possible right away? + private editorMap; private activeWindow: Window | undefined; cursorlessVersion: string = "0.0.0"; @@ -100,21 +100,7 @@ export class NeovimIDE implements IDE { } async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { - // TODO: find how to flash the target ranges (similar to vscode) - // we know we can do that with a "yank" vim operation but we want to do it for any cursorless operation - /* e.g. "bring row one" gives: - at NeovimIDE. (cursorless-neovim\out\index.cjs:44601:13) - at Generator.next () - at cursorless-neovim\out\index.cjs:63:61 - at new Promise () - at __async (cursorless-neovim\out\index.cjs:47:10) - at NeovimIDE.flashRanges (cursorless-neovim\out\index.cjs:44600:12) - at NormalizedIDE.flashRanges (cursorless-neovim\out\index.cjs:22910:26) - at NormalizedIDE.flashRanges (cursorless-neovim\out\index.cjs:23611:79) - at flashTargets (cursorless-neovim\out\index.cjs:38187:15) - at Bring.decorateTargets (cursorless-neovim\out\index.cjs:38318:7) - */ - // TODO: it is not mandatory to implement for now so we can just log a warning + // TODO: find out how to flash the target ranges (similar to vscode) console.warn("flashRanges Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index d9ced4f96b..3521c1bc49 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -18,7 +18,7 @@ export class NeovimHats implements Hats { private ide: NeovimIDE, ) { this.enabledHatStyles = {}; - // TODO: we don't support hats yet + // We don't support hats yet this.isEnabled = false; } diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 77c194233f..7a522d7392 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -102,9 +102,7 @@ export async function windowGetVisibleRanges( export async function getTalonNvimPath(client: NeovimClient): Promise { const luaCode = `return require("talon.utils").talon_nvim_path()`; - //TODO: could actually have a wrapper around execute lua in order to avoid this const data = await client.executeLua(luaCode, []) as unknown as string; - // TODO: is there a better way to cast that? no here return data as unknown as string; } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 2c6bb752cb..177a7b8613 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -34,7 +34,7 @@ export async function updateTextEditor(): Promise { const selections = await bufferGetSelections(window, client); const visibleRanges = await windowGetVisibleRanges(window, client, lines); const ide_ = ide(); - // TODO: It there a clean way to do it? Yes once we support pure dependency injection + // DEP-INJ: It there a clean way to do it? Yes once we support pure dependency injection // also we can make this function a method of NeovimIDE class let neovimIDE: NeovimIDE; if (ide_ instanceof NeovimIDE) { diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index f6fd5935d1..3074b3c520 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -79,20 +79,23 @@ export async function runRecordedTestCases() { const spyIde = new SpyIDE(ide); injectIde(spyIde!); - // TODO: re-enable code below and skip if: - // - multiple selections (we don't support multiple cursors atm) - // - marks is non {} (we don't not support decorated symbol marks atm) - // - others? - for (const { name, path } of getRecordedTestPaths()) { - await runTest(name, path, spyIde!); - } - // TODO: use the assetRoot instead of hardcoding the path + // Run all tests + // for (const { name, path } of getRecordedTestPaths()) { + // await runTest(name, path, spyIde!); + // } + // Run a single test + await runTest( + "recorded/selectionTypes/clearRowTwoPastFour", + "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearRowTwoPastFour.yml", + spyIde!, + ); } async function runTest(name: string, file: string, spyIde: SpyIDE) { const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; + // TODO: skip if multiple selections (we don't support multiple cursors atm) // We don't support decorated symbol marks yet // We don't support parse-tree yet (which requires a code languageId) if (fixture.initialState.marks || fixture.languageId !== "plaintext") { @@ -119,7 +122,6 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { takeSnapshot /* , setStoredTarget */, commandServerApi, } = cursorlessApi.testHelpers!; - //const commandServerApi = commandApi(); const editor = await openNewEditor(fixture.initialState.documentContents, { languageId: fixture.languageId, @@ -153,17 +155,9 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { : fixture.focusedElementType ?? "textEditor", ); - // TODO: we don't support hats so we need to bail out and skip this testcase for now - + // NOT NEEDED FROM VSCODE: // Ensure that the expected hats are present - // await hatTokenMap.allocateHats( - // getTokenHats(fixture.initialState.marks, spyIde.activeTextEditor!), - // ); - - // const readableHatMap = await hatTokenMap.getReadableMap(usePrePhraseSnapshot); - - // // Assert that recorded decorations are present - // checkMarks(fixture.initialState.marks, readableHatMap); + // Assert that recorded decorations are present let returnValue: unknown; let fallback: Fallback | undefined; @@ -208,15 +202,6 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { await sleepWithBackoff(fixture.postCommandSleepTimeMs); } - // const marks = - // fixture.finalState?.marks == null - // ? undefined - // : marksToPlainObject( - // extractTargetedMarks( - // Object.keys(fixture.finalState.marks), - // readableHatMap, - // ), - // ); const marks = undefined; if (fixture.finalState?.clipboard == null) { @@ -290,51 +275,4 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { "Unexpected ide captured values", ); } -} - -// function checkMarks( -// marks: SerializedMarks | undefined, -// hatTokenMap: ReadOnlyHatMap, -// ) { -// if (marks == null) { -// return; -// } - -// Object.entries(marks).forEach(([key, token]) => { -// const { hatStyle, character } = splitKey(key); -// const currentToken = hatTokenMap.getToken(hatStyle, character); -// assert(currentToken != null, `Mark "${hatStyle} ${character}" not found`); -// assert.deepStrictEqual(rangeToPlainObject(currentToken.range), token); -// }); -// } - -// function getTokenHats( -// marks: SerializedMarks | undefined, -// editor: TextEditor, -// ): TokenHat[] { -// if (marks == null) { -// return []; -// } - -// return Object.entries(marks).map(([key, token]) => { -// const { hatStyle, character } = splitKey(key); -// const range = plainObjectToRange(token); - -// return { -// hatStyle, -// grapheme: character, -// token: { -// editor, -// range, -// offsets: { -// start: editor.document.offsetAt(range.start), -// end: editor.document.offsetAt(range.end), -// }, -// text: editor.document.getText(range), -// }, - -// // NB: We don't care about the hat range for this test -// hatRange: range, -// }; -// }); -//} +} \ No newline at end of file From d07df706c19c09fb91b1272926a0639adcb226e5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 16:42:04 +0000 Subject: [PATCH 132/504] fix: terminal was in a different buffer so wasn't working anymore. Also cleaned up the editor/document logic to prepare multiple tabs support --- .../src/constructTestHelpers.ts | 6 - .../src/ide/neovim/NeovimEdit.ts | 2 +- .../src/ide/neovim/NeovimIDE.ts | 104 +++++++++++------- .../src/ide/neovim/NeovimTextEditorImpl.ts | 63 +++++------ packages/cursorless-neovim/src/index.ts | 2 +- .../cursorless-neovim/src/neovimHelpers.ts | 2 +- 6 files changed, 91 insertions(+), 88 deletions(-) diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 129dded94c..45e4548ef0 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -7,22 +7,16 @@ import { NormalizedIDE, ScopeProvider, SerializedMarks, - // StoredTargetKey, - // TargetPlainObject, TestCaseSnapshot, TextEditor, } from "@cursorless/common"; import { StoredTargetMap, - // plainObjectToTarget, takeSnapshot, } from "@cursorless/cursorless-engine"; import { TestHelpers } from "./TestHelpers"; -//import * as vscode from "vscode"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -//import { toVscodeEditor } from "./ide/vscode/toNeovimEditor"; -//import { vscodeApi } from "./vscodeApi"; export function constructTestHelpers( commandServerApi: FakeCommandServerApi, diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index eb56667aa1..38cbcc9460 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -4,7 +4,7 @@ import { updateTextEditor } from "../../neovimHelpers"; import { neovimClient } from "../../singletons/client.singleton"; export default async function neovimEdit( - editor: Window, + window: Window, edits: Edit[], ): Promise { // We start applying the edits from the end of the document diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 58eb871bf7..4d9a6b9570 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -28,11 +28,13 @@ import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; -import { NeovimClient, Window } from "neovim"; +import { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { getTalonNvimPath } from "../../neovimApi"; import path from "path"; import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; +import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; +import { URI } from "vscode-uri"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -41,7 +43,9 @@ export class NeovimIDE implements IDE { readonly clipboard: NeovimClipboard; readonly capabilities: NeovimCapabilities; private editorMap; + private documentMap; private activeWindow: Window | undefined; + private activeBuffer: Buffer | undefined; cursorlessVersion: string = "0.0.0"; // TODO: how can we support changing the runMode dynamically? @@ -62,7 +66,9 @@ export class NeovimIDE implements IDE { this.clipboard = new NeovimClipboard(); this.capabilities = new NeovimCapabilities(); this.editorMap = new Map(); + this.documentMap = new Map(); this.activeWindow = undefined; + this.activeBuffer = undefined; } async init() { @@ -124,8 +130,7 @@ export class NeovimIDE implements IDE { private getActiveTextEditor() { const editor = - this.activeWindow && this.editorMap.has(this.activeWindow) - ? this.editorMap.get(this.activeWindow) + this.activeWindow ? this.getTextEditor(this.activeWindow) : undefined; if (editor === undefined) { console.warn("getActiveTextEditor: editor is undefined"); @@ -133,6 +138,24 @@ export class NeovimIDE implements IDE { return editor; } + private getTextEditor(w: Window) { + for (const [window, textEditor] of this.editorMap) { + if (window.id === w.id) { + return textEditor; + } + } + return undefined + } + + private getTextDocument(b: Buffer) { + for (const [buffer, textDocument] of this.documentMap) { + if (buffer.id === b.id) { + return textDocument; + } + } + return undefined + } + get visibleTextEditors(): NeovimTextEditorImpl[] { return Array.from(this.editorMap.values()); // throw Error("visibleTextEditors Not implemented"); @@ -187,52 +210,49 @@ export class NeovimIDE implements IDE { onDidChangeTextEditorVisibleRanges: Event = dummyEvent; - fromNeovimEditor( - editor: Window, - bufferId: number, - lines: string[], - visibleRanges: Range[], - selections: Selection[], - ): NeovimTextEditorImpl { - if (!this.editorMap.has(editor)) { - this.toNeovimEditor(editor, bufferId, lines, visibleRanges, selections); - } - return this.editorMap.get(editor)!; - } - toNeovimEditor( - editor: Window, - bufferId: number, + window: Window, + buffer: Buffer, lines: string[], visibleRanges: Range[], selections: Selection[], ): NeovimTextEditorImpl { - if ( - this.activeWindow && - this.editorMap.has(this.activeWindow) && - this.activeWindow.id === editor.id - ) { - console.warn( - "toNeovimEditor(): editor already exists, updating its document", + let document = this.getTextDocument(buffer); + let editor = this.getTextEditor(window); + if (!document) { + console.warn(`toNeovimEditor(): creating new document: buffer=${buffer.id}`); + document = new NeovimTextDocumentImpl( + URI.parse(`neovim://${buffer.id}`), // URI.parse(`file://${buffer.id}`), + "plaintext", + 1, + "\n", + // "\r\n", + lines, ); - const activeEditor = this.activeTextEditor as NeovimTextEditorImpl; - activeEditor.initDocument(bufferId, lines, visibleRanges, selections); - return activeEditor; + this.documentMap.set(buffer, document); + } else { + console.warn(`toNeovimEditor(): updating document: buffer=${buffer.id}`); + document.update(lines); } - - console.warn("toNeovimEditor(): creating new editor/document"); - this.activeWindow = editor; - const impl = new NeovimTextEditorImpl( - uuid(), - this, - editor, - bufferId, - lines, - visibleRanges, - selections, - ); - this.editorMap.set(editor, impl); - return impl; + if (!editor) { + console.warn(`toNeovimEditor(): creating new editor: window=${window.id}`); + editor = new NeovimTextEditorImpl( + uuid(), + this, + window, + document, + visibleRanges, + selections, + ); + this.editorMap.set(window, editor); + } else { + console.warn(`toNeovimEditor(): updating editor: window=${window.id}`); + editor.updateDocument(visibleRanges, selections, document); + } + this.activeBuffer = buffer; + this.activeWindow = window; + + return this.activeTextEditor as NeovimTextEditorImpl; } disposeOnExit(...disposables: Disposable[]): () => void { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 656a4b7d0a..147f96e032 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -6,12 +6,10 @@ import { Range, RevealLineAt, Selection, - TextDocument, TextEditor, TextEditorOptions, } from "@cursorless/common"; import { Window } from "neovim"; -import { URI } from "vscode-uri"; import { bufferSetSelections } from "../../neovimApi"; import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; import { neovimClient } from "../../singletons/client.singleton"; @@ -20,56 +18,47 @@ import { NeovimIDE } from "./NeovimIDE"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; export class NeovimTextEditorImpl implements EditableTextEditor { - private _document: TextDocument | undefined; - private _selections: Selection[] | undefined; + private _document: NeovimTextDocumentImpl; + private _selections: Selection[]; + private _visibleRanges: Range[]; constructor( public readonly id: string, private ide: NeovimIDE, - private editor: Window, - bufferId: number, - lines: string[], - public visibleRanges: Range[], + private window: Window, + doc: NeovimTextDocumentImpl, + visibleRanges: Range[], selections: Selection[], ) { - this.initDocument(bufferId, lines, visibleRanges, selections); + this._document = doc; + this._selections = selections; + this._visibleRanges = visibleRanges; + } + + get document(): NeovimTextDocumentImpl { + return this._document; } - get document(): TextDocument { - return this._document as TextDocument; + get visibleRanges(): Range[] { + return this._visibleRanges; } - public initDocument( - bufferId: number, - lines: string[], + public updateDocument( visibleRanges: Range[], selections: Selection[], + doc?: NeovimTextDocumentImpl, + lines?: string[], ): NeovimTextDocumentImpl { - if (this._document) { - console.warn( - "initDocument(): document already exists, updating its content", - ); - (this._document as NeovimTextDocumentImpl).update(lines); + if (doc) { + this._document = doc; + } else if (lines) { + this._document.update(lines); } else { - // TODO: don't hardcode arguments - console.warn("initDocument(): creating new document"); - this._document = new NeovimTextDocumentImpl( - URI.parse(`neovim://${bufferId}`), // URI.parse(`file://${bufferId}`), - "plaintext", - 1, - "\n", - // "\r\n", - lines, - ); + throw Error("updateDocument(): invalid arguments"); } - // console.warn(`NeovimTextEditorImpl(): lines=${lines}`); this._selections = selections; - return this._document as NeovimTextDocumentImpl; - } - - // neovim terminology for editor is window - get neovimEditor(): Window { - return this.editor; + this._visibleRanges = visibleRanges; + return this._document; } get selections(): Selection[] { @@ -119,7 +108,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { public async edit(edits: Edit[]): Promise { //throw Error("edit Not implemented"); - return await neovimEdit(this.editor, edits); + return await neovimEdit(this.window, edits); } public focus(): Promise { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index cfaff2cb1e..9e4a6f3b90 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -32,7 +32,7 @@ export default function entry(plugin: NvimPlugin) { function loadExtension(plugin: NvimPlugin) { const currentDate: Date = new Date(); const currentDateStr: string = currentDate.toLocaleString(); - + console.warn("==============================================================================================="); console.warn("loadExtension(cursorless-neovim): " + currentDateStr); // plugin.nvim.setLine(currentDateStr); diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 177a7b8613..81c346bc93 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -49,7 +49,7 @@ export async function updateTextEditor(): Promise { } return neovimIDE.toNeovimEditor( window, - buffer.id, + buffer, lines, visibleRanges, selections, From 6735cbea46b33215aacfb36ed4f17b235de69990 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 16:42:19 +0000 Subject: [PATCH 133/504] refactor: log visible ranges --- packages/cursorless-neovim/src/neovimApi.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 7a522d7392..932f9e3979 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -91,13 +91,16 @@ export async function windowGetVisibleRanges( [], )) as [number, number]; // subtract 1 to the lines to get the correct 0-based line numbers - return [ - new Range( - new Position(firstLine - 1, 0), - // subtract -1 to the line.length to get the correct 0-based column number - new Position(lastLine - 1, lines[lastLine - 1].length - 1), - ), - ]; + const range = + new Range( + new Position(firstLine - 1, 0), + // subtract -1 to the line.length to get the correct 0-based column number + new Position(lastLine - 1, lines[lastLine - 1].length - 1), + ); + console.warn( + `windowGetVisibleRanges(): range=(${range.start.line}, ${range.start.character}), (${range.end.line}, ${range.end.character})`, + ); + return [range]; } export async function getTalonNvimPath(client: NeovimClient): Promise { From e2c9f425730fd0f8e1abd7df15b15616f5571f28 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 17:10:11 +0000 Subject: [PATCH 134/504] fix: stop using isTesting() and use runMode everywhere for neovim for consistency --- .../src/actions/GenerateSnippet/GenerateSnippet.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 13 ++++++++++--- packages/cursorless-neovim/src/registerCommands.ts | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts index ad072f7f3f..463b6b5e4e 100644 --- a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts +++ b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts @@ -220,7 +220,7 @@ export default class GenerateSnippet { const editableEditor = ide().getEditableTextEditor(editor); - if (isTesting()) { + if (ide().runMode === "test") { // If we're testing, we just overwrite the current document await editableEditor.setSelections([ editor.document.range.toSelection(false), diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 98f40d824b..cc5b1aaf19 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -48,9 +48,13 @@ export async function activate(plugin: NvimPlugin) { neovimIDE.runMode === "test", ); + // TODO: atm if we are using testing, the focused element will always be the texteditor + // even if we the current window is a terminal. We need to fix this. const fakeCommandServerApi = new FakeCommandServerApi(); const neovimCommandServerApi = new NeovimCommandServerApi(client); - const commandServerApi = isTesting() + // TODO: there are currently two ways to test if we are running tests, through neovimIDE.runMode and with isTesting() + // We need to get rid of isTesting() entirely and use neovimIDE.runMode == "test" instead + const commandServerApi = neovimIDE.runMode === "test" ? fakeCommandServerApi : neovimCommandServerApi; @@ -78,7 +82,7 @@ export async function activate(plugin: NvimPlugin) { // set CURSORLESS_TEST = 1 for testing const cursorlessApi = { - testHelpers: isTesting() + testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers( fakeCommandServerApi, storedTargets, @@ -101,10 +105,13 @@ export async function activate(plugin: NvimPlugin) { console.warn("activate(): Cursorless extension loaded"); // COMMENT ME IF YOU DON'T WANT TO RUN TESTS + // WHEN USING TESTS, CHANGE neovimIDE.runMode = "test" in NeovimIDE.ts // console.warn("activate(): running the recorded test cases..."); // await runRecordedTestCases(); // console.warn("activate(): recorded test cases done"); // COMMENT ME END + + // WHEN NOT USING TESTS, CHANGE neovimIDE.runMode = "development" in NeovimIDE.ts } async function createNeovimIde(client: NeovimClient) { @@ -118,7 +125,7 @@ async function createNeovimIde(client: NeovimClient) { // extension initialization, probably by returning a function from extension // init that has parameters consisting of test configuration, and have that // function do the actual initialization. - const cursorlessDir = isTesting() + const cursorlessDir = neovimIDE.runMode === "test" ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) : path.join(os.homedir(), ".cursorless"); diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 886a866506..e85798a161 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -23,6 +23,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { const result = await commandApi().runCommandSafe(...args); // const result = ["hello world"]; // simulate the result of "bring " return result; + // TODO: use neovimIDE.runMode === "test" instead of isTesting() // } catch (e) { // // if (!isTesting()) { // // const err = e as Error; From 68aeac29f0766df8300fa199e133f319c77f2e8f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 17:10:34 +0000 Subject: [PATCH 135/504] refactor: do not print all lines to ease watching logs --- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 2f78d0d247..4740df7e70 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -136,7 +136,7 @@ export class NeovimTextDocumentImpl implements TextDocument { this._cachedTextValue = this._lines.join(this._eol); } console.warn( - `getText(all) returning cached value=${this._cachedTextValue}`, + `getText(all) returning cached value=${this._lines.slice(0, 10).join(this._eol)} \n[stripped...]`, ); return this._cachedTextValue; } else { @@ -180,7 +180,7 @@ export class NeovimTextDocumentImpl implements TextDocument { ); console.warn( - `getText() returning multiple lines: ${resultLines.join(lineEnding)}`, + `getText() returning multiple lines: ${resultLines.slice(0,10).join(lineEnding)} \n[stripped...]}`, ); return resultLines.join(lineEnding); } From 3eba6d7cb3fb414d57f20ade45cc29a40841da1f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 17:19:46 +0000 Subject: [PATCH 136/504] refactor: enable tests --- packages/cursorless-neovim/src/extension.ts | 6 +++--- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index cc5b1aaf19..66eb93335b 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -106,9 +106,9 @@ export async function activate(plugin: NvimPlugin) { // COMMENT ME IF YOU DON'T WANT TO RUN TESTS // WHEN USING TESTS, CHANGE neovimIDE.runMode = "test" in NeovimIDE.ts - // console.warn("activate(): running the recorded test cases..."); - // await runRecordedTestCases(); - // console.warn("activate(): recorded test cases done"); + console.warn("activate(): running the recorded test cases..."); + await runRecordedTestCases(); + console.warn("activate(): recorded test cases done"); // COMMENT ME END // WHEN NOT USING TESTS, CHANGE neovimIDE.runMode = "development" in NeovimIDE.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 4d9a6b9570..340b0ba0c3 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -51,8 +51,8 @@ export class NeovimIDE implements IDE { // TODO: how can we support changing the runMode dynamically? // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode // runMode: RunMode = "production"; // use for end user - runMode: RunMode = "development"; // use to enable debug logs or for fixture tests - // runMode: RunMode = "test"; // what is it used for? + // runMode: RunMode = "development"; // use to enable debug logs + runMode: RunMode = "test"; // used for fixture tests workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; From ac2397f3333c2eb5ec9f6760a1e53c2b35391939 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 17:20:48 +0000 Subject: [PATCH 137/504] docs: todo --- packages/cursorless-neovim/TODO.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 3649bbb7f9..bb264d4568 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -6,7 +6,8 @@ - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: - NPM as package manager message (see screenshot) - Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") -- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? on the cursorless repo? +- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? okay if we use the cursorless repo with a neovim tag? +- separate PRs to be accepted: textEditor.setSelections(), fixtures-data, unnecessary performEditsAndUpdateInternal() # to do @@ -15,13 +16,10 @@ - hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log - understand why no node plugin logging in vscode anymore with latest node-client? - utf8 is not supported well -- fix the bring command on the terminal because it doesn't work anymore # to do later - can we reload the extensions after a modification without reloading neovim? does not seem to work atm -- separate PR for text editor setSelections() -- separate PR to move fixtures to @cursorless/common - have the command server allow executing any lua function? probably not because we already have neovim rpc. - prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ only useful to chain multiple commands to avoid hats being changed in the middle so not useful for now From 1aba9aa09cc553a15dc6e7593a7fca2ef8659016 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 28 Mar 2024 17:27:12 +0000 Subject: [PATCH 138/504] fix: better hats detection in fixture --- .../cursorless-neovim/src/suite/recorded.vscode.test.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 3074b3c520..8a16a3df14 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -98,8 +98,9 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // TODO: skip if multiple selections (we don't support multiple cursors atm) // We don't support decorated symbol marks yet // We don't support parse-tree yet (which requires a code languageId) - if (fixture.initialState.marks || fixture.languageId !== "plaintext") { - console.warn(`runTest(${name}) => skipped`); + const hasMarks = fixture.initialState.marks != null && Object.keys(fixture.initialState.marks).length > 0; + if (hasMarks || fixture.languageId !== "plaintext") { + //console.warn(`runTest(${name}) => skipped`); return; } // Below are tests that should pass but fails for now @@ -110,6 +111,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { console.warn(`runTest(${name}) => skipped as needs fixing`); return; } + console.warn("------------------------------------------------------------------------------"); console.warn(`runTest(${name})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests From e2885831bf4453d783fc48218166a3f9f8b715ef Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 28 Mar 2024 17:28:46 +0000 Subject: [PATCH 139/504] [pre-commit.ci lite] apply automatic fixes --- .../GenerateSnippet/GenerateSnippet.ts | 2 +- .../src/constructTestHelpers.ts | 5 +- packages/cursorless-neovim/src/extension.ts | 47 +++++++++---------- .../src/ide/neovim/NeovimFileSystem.ts | 2 +- .../src/ide/neovim/NeovimIDE.ts | 22 +++++---- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 2 +- .../src/ide/neovim/hats/NeovimHats.ts | 4 +- packages/cursorless-neovim/src/index.ts | 4 +- packages/cursorless-neovim/src/neovimApi.ts | 13 +++-- .../src/singletons/client.singleton.ts | 1 - .../src/suite/recorded.vscode.test.ts | 11 +++-- 11 files changed, 57 insertions(+), 56 deletions(-) diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts index 463b6b5e4e..cb4148e049 100644 --- a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts +++ b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts @@ -1,4 +1,4 @@ -import { FlashStyle, isTesting, Range } from "@cursorless/common"; +import { FlashStyle, Range } from "@cursorless/common"; import { Offsets } from "../../processTargets/modifiers/surroundingPair/types"; import { ide } from "../../singletons/ide.singleton"; import { Target } from "../../typings/target.types"; diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 45e4548ef0..cccc32742f 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -10,10 +10,7 @@ import { TestCaseSnapshot, TextEditor, } from "@cursorless/common"; -import { - StoredTargetMap, - takeSnapshot, -} from "@cursorless/cursorless-engine"; +import { StoredTargetMap, takeSnapshot } from "@cursorless/cursorless-engine"; import { TestHelpers } from "./TestHelpers"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 66eb93335b..ddef57efb5 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -1,7 +1,6 @@ import { FakeCommandServerApi, FakeIDE, - isTesting, NormalizedIDE, Range, TextDocument, @@ -54,9 +53,10 @@ export async function activate(plugin: NvimPlugin) { const neovimCommandServerApi = new NeovimCommandServerApi(client); // TODO: there are currently two ways to test if we are running tests, through neovimIDE.runMode and with isTesting() // We need to get rid of isTesting() entirely and use neovimIDE.runMode == "test" instead - const commandServerApi = neovimIDE.runMode === "test" - ? fakeCommandServerApi - : neovimCommandServerApi; + const commandServerApi = + neovimIDE.runMode === "test" + ? fakeCommandServerApi + : neovimCommandServerApi; const treeSitter: TreeSitter = createTreeSitter(); @@ -82,19 +82,20 @@ export async function activate(plugin: NvimPlugin) { // set CURSORLESS_TEST = 1 for testing const cursorlessApi = { - testHelpers: neovimIDE.runMode === "test" - ? constructTestHelpers( - fakeCommandServerApi, - storedTargets, - hatTokenMap, - neovimIDE, - normalizedIde as NormalizedIDE, - fileSystem, - scopeProvider, - injectIde, - runIntegrationTests, - ) - : undefined, + testHelpers: + neovimIDE.runMode === "test" + ? constructTestHelpers( + fakeCommandServerApi, + storedTargets, + hatTokenMap, + neovimIDE, + normalizedIde as NormalizedIDE, + fileSystem, + scopeProvider, + injectIde, + runIntegrationTests, + ) + : undefined, experimental: { registerThirdPartySnippets: snippets.registerThirdPartySnippets, @@ -125,14 +126,12 @@ async function createNeovimIde(client: NeovimClient) { // extension initialization, probably by returning a function from extension // init that has parameters consisting of test configuration, and have that // function do the actual initialization. - const cursorlessDir = neovimIDE.runMode === "test" - ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) - : path.join(os.homedir(), ".cursorless"); + const cursorlessDir = + neovimIDE.runMode === "test" + ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) + : path.join(os.homedir(), ".cursorless"); - const fileSystem = new NeovimFileSystem( - neovimIDE.runMode, - cursorlessDir, - ); + const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir); await fileSystem.initialize(); return { neovimIDE, hats, fileSystem }; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index 3073078c2d..bc00133a0c 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -4,7 +4,7 @@ import { PathChangeListener, RunMode, } from "@cursorless/common"; -import { join } from "path"; +import { join } from "path"; import * as fs from "fs"; export class NeovimFileSystem implements FileSystem { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 340b0ba0c3..503e8ef37a 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -129,9 +129,9 @@ export class NeovimIDE implements IDE { } private getActiveTextEditor() { - const editor = - this.activeWindow ? this.getTextEditor(this.activeWindow) - : undefined; + const editor = this.activeWindow + ? this.getTextEditor(this.activeWindow) + : undefined; if (editor === undefined) { console.warn("getActiveTextEditor: editor is undefined"); } @@ -144,7 +144,7 @@ export class NeovimIDE implements IDE { return textEditor; } } - return undefined + return undefined; } private getTextDocument(b: Buffer) { @@ -153,7 +153,7 @@ export class NeovimIDE implements IDE { return textDocument; } } - return undefined + return undefined; } get visibleTextEditors(): NeovimTextEditorImpl[] { @@ -220,7 +220,9 @@ export class NeovimIDE implements IDE { let document = this.getTextDocument(buffer); let editor = this.getTextEditor(window); if (!document) { - console.warn(`toNeovimEditor(): creating new document: buffer=${buffer.id}`); + console.warn( + `toNeovimEditor(): creating new document: buffer=${buffer.id}`, + ); document = new NeovimTextDocumentImpl( URI.parse(`neovim://${buffer.id}`), // URI.parse(`file://${buffer.id}`), "plaintext", @@ -235,7 +237,9 @@ export class NeovimIDE implements IDE { document.update(lines); } if (!editor) { - console.warn(`toNeovimEditor(): creating new editor: window=${window.id}`); + console.warn( + `toNeovimEditor(): creating new editor: window=${window.id}`, + ); editor = new NeovimTextEditorImpl( uuid(), this, @@ -247,11 +251,11 @@ export class NeovimIDE implements IDE { this.editorMap.set(window, editor); } else { console.warn(`toNeovimEditor(): updating editor: window=${window.id}`); - editor.updateDocument(visibleRanges, selections, document); + editor.updateDocument(visibleRanges, selections, document); } this.activeBuffer = buffer; this.activeWindow = window; - + return this.activeTextEditor as NeovimTextEditorImpl; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 4740df7e70..7375fecc15 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -180,7 +180,7 @@ export class NeovimTextDocumentImpl implements TextDocument { ); console.warn( - `getText() returning multiple lines: ${resultLines.slice(0,10).join(lineEnding)} \n[stripped...]}`, + `getText() returning multiple lines: ${resultLines.slice(0, 10).join(lineEnding)} \n[stripped...]}`, ); return resultLines.join(lineEnding); } diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts index 3521c1bc49..2f7db50d53 100644 --- a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts +++ b/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts @@ -14,9 +14,7 @@ export class NeovimHats implements Hats { private enabledHatStyleNotifier: Notifier<[HatStyleMap]> = new Notifier(); private isEnabledNotifier: Notifier<[boolean]> = new Notifier(); - constructor( - private ide: NeovimIDE, - ) { + constructor(private ide: NeovimIDE) { this.enabledHatStyles = {}; // We don't support hats yet this.isEnabled = false; diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 9e4a6f3b90..60485c410a 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -32,7 +32,9 @@ export default function entry(plugin: NvimPlugin) { function loadExtension(plugin: NvimPlugin) { const currentDate: Date = new Date(); const currentDateStr: string = currentDate.toLocaleString(); - console.warn("==============================================================================================="); + console.warn( + "===============================================================================================", + ); console.warn("loadExtension(cursorless-neovim): " + currentDateStr); // plugin.nvim.setLine(currentDateStr); diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 932f9e3979..7e08eb1268 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -86,13 +86,12 @@ export async function windowGetVisibleRanges( // Get the first and last visible lines of the current window // Note they are indexed from 1, similarly to what is shown in neovim* const luaCode = `return require("talon.cursorless").window_get_visible_lines()`; - const [firstLine, lastLine] = (await client.executeLua( - luaCode, - [], - )) as [number, number]; + const [firstLine, lastLine] = (await client.executeLua(luaCode, [])) as [ + number, + number, + ]; // subtract 1 to the lines to get the correct 0-based line numbers - const range = - new Range( + const range = new Range( new Position(firstLine - 1, 0), // subtract -1 to the line.length to get the correct 0-based column number new Position(lastLine - 1, lines[lastLine - 1].length - 1), @@ -105,7 +104,7 @@ export async function windowGetVisibleRanges( export async function getTalonNvimPath(client: NeovimClient): Promise { const luaCode = `return require("talon.utils").talon_nvim_path()`; - const data = await client.executeLua(luaCode, []) as unknown as string; + const data = (await client.executeLua(luaCode, [])) as unknown as string; return data as unknown as string; } diff --git a/packages/cursorless-neovim/src/singletons/client.singleton.ts b/packages/cursorless-neovim/src/singletons/client.singleton.ts index a6c079043a..2c3f87bd72 100644 --- a/packages/cursorless-neovim/src/singletons/client.singleton.ts +++ b/packages/cursorless-neovim/src/singletons/client.singleton.ts @@ -1,6 +1,5 @@ import { NeovimClient } from "neovim/lib/api/client"; - /** * This is the `client` singleton */ diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 8a16a3df14..dc62618dab 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -5,7 +5,6 @@ import { ExcludableSnapshotField, // extractTargetedMarks, Fallback, - getRecordedTestPaths, // HatStability, // marksToPlainObject, omitByDeep, @@ -98,7 +97,9 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // TODO: skip if multiple selections (we don't support multiple cursors atm) // We don't support decorated symbol marks yet // We don't support parse-tree yet (which requires a code languageId) - const hasMarks = fixture.initialState.marks != null && Object.keys(fixture.initialState.marks).length > 0; + const hasMarks = + fixture.initialState.marks != null && + Object.keys(fixture.initialState.marks).length > 0; if (hasMarks || fixture.languageId !== "plaintext") { //console.warn(`runTest(${name}) => skipped`); return; @@ -111,7 +112,9 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { console.warn(`runTest(${name}) => skipped as needs fixing`); return; } - console.warn("------------------------------------------------------------------------------"); + console.warn( + "------------------------------------------------------------------------------", + ); console.warn(`runTest(${name})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests @@ -277,4 +280,4 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { "Unexpected ide captured values", ); } -} \ No newline at end of file +} From 72ea3ff437a5a3090dc2648a69b35c82de299e6c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 10:44:16 +0100 Subject: [PATCH 140/504] refactor: register to buffer changes when we first see the buffer. Was an attempt to fix some failed fixture/recorded/actions/breakJustThis but not working still the problem is elsewhere --- .../src/core/updateSelections/RangeUpdater.ts | 4 ++ packages/cursorless-neovim/src/extension.ts | 48 ++++++++-------- .../src/ide/neovim/NeovimEvents.ts | 49 ++++++++++------ .../src/ide/neovim/NeovimIDE.ts | 48 ++++++++++++---- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 25 +++++--- .../cursorless-neovim/src/neovimHelpers.ts | 57 ++++++++++++------- .../cursorless-neovim/src/registerCommands.ts | 2 +- 7 files changed, 151 insertions(+), 82 deletions(-) diff --git a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts index e261ff2fa9..909f729f57 100644 --- a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts +++ b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts @@ -96,6 +96,10 @@ export class RangeUpdater { private listenForDocumentChanges() { this.disposable = ide().onDidChangeTextDocument( (event: TextDocumentChangeEvent) => { + const changes = event.contentChanges; + console.warn( + `RangeUpdater.listenForDocumentChanges(): changes=${JSON.stringify(changes)}`, + ); const documentReplaceEditLists = this.getDocumentReplaceEditLists( event.document, ); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 66eb93335b..a194264b3d 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -25,6 +25,7 @@ import { runRecordedTestCases } from "./suite/recorded.vscode.test"; import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; +import { updateTextEditor } from "./neovimHelpers"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -54,9 +55,10 @@ export async function activate(plugin: NvimPlugin) { const neovimCommandServerApi = new NeovimCommandServerApi(client); // TODO: there are currently two ways to test if we are running tests, through neovimIDE.runMode and with isTesting() // We need to get rid of isTesting() entirely and use neovimIDE.runMode == "test" instead - const commandServerApi = neovimIDE.runMode === "test" - ? fakeCommandServerApi - : neovimCommandServerApi; + const commandServerApi = + neovimIDE.runMode === "test" + ? fakeCommandServerApi + : neovimCommandServerApi; const treeSitter: TreeSitter = createTreeSitter(); @@ -82,19 +84,20 @@ export async function activate(plugin: NvimPlugin) { // set CURSORLESS_TEST = 1 for testing const cursorlessApi = { - testHelpers: neovimIDE.runMode === "test" - ? constructTestHelpers( - fakeCommandServerApi, - storedTargets, - hatTokenMap, - neovimIDE, - normalizedIde as NormalizedIDE, - fileSystem, - scopeProvider, - injectIde, - runIntegrationTests, - ) - : undefined, + testHelpers: + neovimIDE.runMode === "test" + ? constructTestHelpers( + fakeCommandServerApi, + storedTargets, + hatTokenMap, + neovimIDE, + normalizedIde as NormalizedIDE, + fileSystem, + scopeProvider, + injectIde, + runIntegrationTests, + ) + : undefined, experimental: { registerThirdPartySnippets: snippets.registerThirdPartySnippets, @@ -102,6 +105,7 @@ export async function activate(plugin: NvimPlugin) { }; injectCursorlessApi(cursorlessApi); + await updateTextEditor(); console.warn("activate(): Cursorless extension loaded"); // COMMENT ME IF YOU DON'T WANT TO RUN TESTS @@ -125,14 +129,12 @@ async function createNeovimIde(client: NeovimClient) { // extension initialization, probably by returning a function from extension // init that has parameters consisting of test configuration, and have that // function do the actual initialization. - const cursorlessDir = neovimIDE.runMode === "test" - ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) - : path.join(os.homedir(), ".cursorless"); + const cursorlessDir = + neovimIDE.runMode === "test" + ? path.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) + : path.join(os.homedir(), ".cursorless"); - const fileSystem = new NeovimFileSystem( - neovimIDE.runMode, - cursorlessDir, - ); + const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir); await fileSystem.initialize(); return { neovimIDE, hats, fileSystem }; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index ef9dcd5324..42216842df 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -14,6 +14,7 @@ import { Buffer } from "neovim"; import { eventEmitter } from "../../events"; import { NeovimIDE } from "./NeovimIDE"; import { ide } from "@cursorless/cursorless-engine"; +import { getNeovimIDE } from "../../neovimHelpers"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, @@ -35,28 +36,15 @@ export async function receivedBufferEvent( more: boolean, ): Promise { console.warn( - `BufferManager.receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, + `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, ); - const ide_ = ide(); - // DEP-INJ: It there a clean way to do it? Yes once we support pure dependency injection - // also we can make this function a method of NeovimIDE class - let neovimIDE: NeovimIDE; - if (ide_ instanceof NeovimIDE) { - neovimIDE = ide_; - } else if (ide_ instanceof NormalizedIDE) { - neovimIDE = ide_.original as NeovimIDE; - } else if (ide_ instanceof SpyIDE) { - const normalizedIDE = ide_.original as NormalizedIDE; - neovimIDE = normalizedIDE.original as NeovimIDE; - } else { - throw Error("receivedBufferEvent(): ide() is not NeovimIDE"); - } + const neovimIDE = getNeovimIDE(); // We will need to get the document according to the buffer id // once we want to support several windows - //const document = getTextDocumentForBufferId(buffer.id); + const document = neovimIDE.getTextDocument(buffer) as TextDocument; // But for now we get the current document - const document = (neovimIDE.activeTextEditor as TextEditor).document; + // const document = (neovimIDE.activeTextEditor as TextEditor).document; // const contents = await document.getText(); // console.warn( @@ -75,6 +63,7 @@ export async function receivedBufferEvent( }); } +// let count = 1; export function fromNeovimContentChange( document: TextDocument, buffer: Buffer, @@ -85,7 +74,7 @@ export function fromNeovimContentChange( const result = []; const text = linedata.join("\n"); console.warn( - `fromNeovimContentChange(): document.getText(): ${document.getText()}`, + `fromNeovimContentChange(): document.getText(): '${document.getText()}'`, ); const range = new Range( new Position(firstLine, 0), @@ -99,6 +88,30 @@ export function fromNeovimContentChange( rangeLength: rangeLength, text: text, }); + // TODO: simulate recorded/actions/breakJustThis on vscode for now but does not work anyway + // /* if (count === 0) { + // result = []; + // } else */ if (count === 1) { + // const range = new Range(new Position(0, 0), new Position(0, 3)); + // result.push({ + // range: range, + // rangeOffset: 0, + // rangeLength: 3, + // text: "ab ", + // }); + // } else if (count === 2) { + // const range = new Range(new Position(0, 1), new Position(0, 1)); + // result.push({ + // range: range, + // rangeOffset: 1, + // rangeLength: 0, + // text: "\n", + // }); + // } else { + // throw new Error(`fromNeovimContentChange(): unexpected count=${count}`); + // } + // count++; + console.warn(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); return result; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 340b0ba0c3..f1d369bee7 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -32,9 +32,13 @@ import { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { getTalonNvimPath } from "../../neovimApi"; import path from "path"; -import { neovimOnDidChangeTextDocument } from "./NeovimEvents"; +import { + neovimOnDidChangeTextDocument, + receivedBufferEvent, +} from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { URI } from "vscode-uri"; +import { eventEmitter } from "../../events"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -129,9 +133,9 @@ export class NeovimIDE implements IDE { } private getActiveTextEditor() { - const editor = - this.activeWindow ? this.getTextEditor(this.activeWindow) - : undefined; + const editor = this.activeWindow + ? this.getTextEditor(this.activeWindow) + : undefined; if (editor === undefined) { console.warn("getActiveTextEditor: editor is undefined"); } @@ -144,16 +148,17 @@ export class NeovimIDE implements IDE { return textEditor; } } - return undefined + return undefined; } - private getTextDocument(b: Buffer) { + // TODO: change to private once not needed anymore outside + public getTextDocument(b: Buffer) { for (const [buffer, textDocument] of this.documentMap) { if (buffer.id === b.id) { return textDocument; } } - return undefined + return undefined; } get visibleTextEditors(): NeovimTextEditorImpl[] { @@ -220,7 +225,9 @@ export class NeovimIDE implements IDE { let document = this.getTextDocument(buffer); let editor = this.getTextEditor(window); if (!document) { - console.warn(`toNeovimEditor(): creating new document: buffer=${buffer.id}`); + console.warn( + `toNeovimEditor(): creating new document: buffer=${buffer.id}`, + ); document = new NeovimTextDocumentImpl( URI.parse(`neovim://${buffer.id}`), // URI.parse(`file://${buffer.id}`), "plaintext", @@ -230,12 +237,31 @@ export class NeovimIDE implements IDE { lines, ); this.documentMap.set(buffer, document); + + // Subscribe to buffer updates, e.g. when the text changes. + // "attach" to Nvim buffers to subscribe to buffer update events. + // This is similar to TextChanged but more powerful and granular. + // @see https://neovim.io/doc/user/api.html#nvim_buf_attach() + console.warn( + `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, + ); + // buffer.listen("lines", async () => await receivedBufferEvent); + // TODO: attempt to enforce that the rangeUpdater has the initial document state but not fixing fixture breakJustThis problem + // receivedBufferEvent(buffer, 0, 0, lines.length, lines, false); + // TODO: attempt to enforce that the rangeUpdater has an empty initial document but not fixing fixture breakJustThis problem + eventEmitter.emit("onDidChangeTextDocument", { + document: document, + contentChanges: [], + }); + buffer.listen("lines", receivedBufferEvent); } else { console.warn(`toNeovimEditor(): updating document: buffer=${buffer.id}`); document.update(lines); } if (!editor) { - console.warn(`toNeovimEditor(): creating new editor: window=${window.id}`); + console.warn( + `toNeovimEditor(): creating new editor: window=${window.id}`, + ); editor = new NeovimTextEditorImpl( uuid(), this, @@ -247,11 +273,11 @@ export class NeovimIDE implements IDE { this.editorMap.set(window, editor); } else { console.warn(`toNeovimEditor(): updating editor: window=${window.id}`); - editor.updateDocument(visibleRanges, selections, document); + editor.updateDocument(visibleRanges, selections, document); } this.activeBuffer = buffer; this.activeWindow = window; - + return this.activeTextEditor as NeovimTextEditorImpl; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 4740df7e70..73073ad5c2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -135,9 +135,15 @@ export class NeovimTextDocumentImpl implements TextDocument { if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } - console.warn( - `getText(all) returning cached value=${this._lines.slice(0, 10).join(this._eol)} \n[stripped...]`, - ); + if (this._lines.length > 10) { + console.warn( + `getText() returning multiple lines: '${this._lines.slice(0, 10).join(this._eol)}' \n[stripped...]}`, + ); + } else { + console.warn( + `getText() returning multiple lines: '${this._cachedTextValue}'`, + ); + } return this._cachedTextValue; } else { console.warn( @@ -178,10 +184,15 @@ export class NeovimTextDocumentImpl implements TextDocument { resultLines.push( this._lines[endLineIndex].substring(0, range.end.character), ); - - console.warn( - `getText() returning multiple lines: ${resultLines.slice(0,10).join(lineEnding)} \n[stripped...]}`, - ); + if (resultLines.length > 10) { + console.warn( + `getText() returning multiple lines: '${resultLines.slice(0, 10).join(lineEnding)}' \n[stripped...]}`, + ); + } else { + console.warn( + `getText() returning multiple lines: '${resultLines.join(lineEnding)}'`, + ); + } return resultLines.join(lineEnding); } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 81c346bc93..0c3596f72c 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -14,6 +14,23 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NormalizedIDE, SpyIDE } from "@cursorless/common"; import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; +// DEP-INJ: Delete this function. Is there a clean way to do it? Yes once we support pure dependency injection +export function getNeovimIDE(): NeovimIDE { + const ide_ = ide(); + let neovimIDE: NeovimIDE; + if (ide_ instanceof NeovimIDE) { + neovimIDE = ide_; + } else if (ide_ instanceof NormalizedIDE) { + neovimIDE = ide_.original as NeovimIDE; + } else if (ide_ instanceof SpyIDE) { + const normalizedIDE = ide_.original as NormalizedIDE; + neovimIDE = normalizedIDE.original as NeovimIDE; + } else { + throw Error("updateTextEditor(): ide() is not NeovimIDE"); + } + return neovimIDE; +} + /** * Initialize the current editor (and current document). * If the current editor already exists, it will only update the current document of that editor. @@ -23,45 +40,39 @@ import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; * * Atm, we only initialize one editor(current window) with one document(current buffer) */ +// TODO: we can make this function a method of NeovimIDE class export async function updateTextEditor(): Promise { const client = neovimClient(); const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; console.warn( - `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${lines}`, + `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(lines)}`, ); const selections = await bufferGetSelections(window, client); const visibleRanges = await windowGetVisibleRanges(window, client, lines); - const ide_ = ide(); - // DEP-INJ: It there a clean way to do it? Yes once we support pure dependency injection - // also we can make this function a method of NeovimIDE class - let neovimIDE: NeovimIDE; - if (ide_ instanceof NeovimIDE) { - neovimIDE = ide_; - } else if (ide_ instanceof NormalizedIDE) { - neovimIDE = ide_.original as NeovimIDE; - } else if (ide_ instanceof SpyIDE) { - const normalizedIDE = ide_.original as NormalizedIDE; - neovimIDE = normalizedIDE.original as NeovimIDE; - } else { - throw Error("updateTextEditor(): ide() is not NeovimIDE"); - } - return neovimIDE.toNeovimEditor( + const neovimIDE = getNeovimIDE(); + const impl = neovimIDE.toNeovimEditor( window, buffer, lines, visibleRanges, selections, ); + // await subscribeBufferUpdates(); + return impl; } /** * Subscribe to buffer updates, e.g. when the text changes. */ +// TODO: we can make this function a method of NeovimIDE class +// TODO: delete this function as done as part of toNeovimEditor() now export async function subscribeBufferUpdates() { const client = neovimClient(); + const neovimIDE = getNeovimIDE(); + /** * "attach" to Nvim buffers to subscribe to buffer update events. * This is similar to TextChanged but more powerful and granular. @@ -70,12 +81,14 @@ export async function subscribeBufferUpdates() { */ // const buffers = await client.buffers; const buffers = [await client.buffer]; - buffers.forEach( - /* async */ (buf) => { - console.warn(`listening for changes in buffer: ${buf.id}`); - buf.listen("lines", receivedBufferEvent); - }, - ); + buffers.forEach((buf) => { + if (neovimIDE.getTextDocument(buf) !== undefined) { + console.warn(`already listening for changes in buffer: ${buf.id}`); + return; + } + console.warn(`listening for changes in buffer: ${buf.id}`); + buf.listen("lines", receivedBufferEvent); + }); } export async function neovimClipboardCopy(): Promise { diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index e85798a161..7b0294eaf1 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -19,7 +19,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { // try { await updateTextEditor(); - await subscribeBufferUpdates(); + // await subscribeBufferUpdates(); const result = await commandApi().runCommandSafe(...args); // const result = ["hello world"]; // simulate the result of "bring " return result; From 292e91cbecb7c470f5925bc02632e196117eff06 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 12:07:38 +0100 Subject: [PATCH 141/504] fix: restore original TextDocument.ts --- packages/common/src/types/TextDocument.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/common/src/types/TextDocument.ts b/packages/common/src/types/TextDocument.ts index 7b7c4e84be..94b0b11d88 100644 --- a/packages/common/src/types/TextDocument.ts +++ b/packages/common/src/types/TextDocument.ts @@ -8,34 +8,34 @@ export interface TextDocument { * *Note* that most documents use the `file`-scheme, which means they are files on disk. However, **not** all documents are * saved on disk and therefore the `scheme` must be checked before trying to access the underlying file or siblings on disk. */ - uri: URI; + readonly uri: URI; /** * The identifier of the language associated with this document. */ - languageId: string; + readonly languageId: string; /** * The version number of this document (it will strictly increase after each * change, including undo/redo). */ - version: number; + readonly version: number; /** * The number of lines in this document. */ - lineCount: number; + readonly lineCount: number; /** * The range of the text document. */ - range: Range; + readonly range: Range; /** * The {@link EndOfLine end of line} sequence that is predominately * used in this document. */ - eol: EndOfLine; + readonly eol: EndOfLine; /** * Returns a text line denoted by the line number. Note @@ -88,5 +88,5 @@ export interface TextDocument { * @param range Include only the text included by the range. * @return The text inside the provided range or the entire text. */ - getText(range?: Range): /* Promise< */ string /* > */; + getText(range?: Range): string; } From 788c0f2e309ebfe5f26af9078d36fca9b449c64e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 12:23:18 +0100 Subject: [PATCH 142/504] refactor: comments --- packages/cursorless-neovim/src/endToEndTestSetup.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts index 4572d97d27..4f1b32feec 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -18,6 +18,7 @@ const retryCount = 5; */ //let previousTestTitle = ""; +// TODO: remove this function as we don't call it? export function endToEndTestSetup(/* suite: Mocha.Suite */) { // suite.timeout("100s"); // suite.retries(5); @@ -47,6 +48,7 @@ export function endToEndTestSetup(/* suite: Mocha.Suite */) { }; } +// TODO: remove this function? or we need it for neovim too? /** * Sleep function for use in tests that will be retried. Doubles the amount of * time it sleeps each time a test is run, starting from {@link ms} / 4. From 821d85cab8e07fcc85a9bfe1b58acd99d6fe8bb9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 15:59:45 +0100 Subject: [PATCH 143/504] refactor: remove comment --- packages/cursorless-neovim/src/extension.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 7b273b68b8..c277a321ed 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -81,7 +81,6 @@ export async function activate(plugin: NvimPlugin) { injectCommandApi(commandApi); // debugger; // NOTE: helps debugging - // set CURSORLESS_TEST = 1 for testing const cursorlessApi = { testHelpers: neovimIDE.runMode === "test" From ca2dfe59b731485aa35d69f9f8d9deac56622b5e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 16:00:36 +0100 Subject: [PATCH 144/504] fix: disable failing tests for now --- .../src/suite/recorded.vscode.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index dc62618dab..f19070f053 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -104,10 +104,14 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { //console.warn(`runTest(${name}) => skipped`); return; } - // Below are tests that should pass but fails for now + // Below are tests that should pass but fail for now if ( - name === "recorded/ordinalScopes/changeSecondTwoTokens" || - name === "recorded/surroundingPair/textual/clearBoundsRound" + name == "recorded/actions/breakJustThis" || + name == "recorded/actions/breakJustThis2" || + name == "recorded/actions/changeNextInstanceChar" || + name == "recorded/actions/cloneToken" + // name === "recorded/ordinalScopes/changeSecondTwoTokens" || + // name === "recorded/surroundingPair/textual/clearBoundsRound" ) { console.warn(`runTest(${name}) => skipped as needs fixing`); return; From a2e5743496e974c9ece2b4a8fb1422b74e68d582 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 16:01:56 +0100 Subject: [PATCH 145/504] feat: better debug output --- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 73073ad5c2..469038cb99 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -160,9 +160,9 @@ export class NeovimTextDocumentImpl implements TextDocument { if (range.isSingleLine) { console.warn( - `getText() returning single line ${this._lines[ + `getText() returning single line '${this._lines[ range.start.line - ].substring(range.start.character, range.end.character)}`, + ].substring(range.start.character, range.end.character)}'`, ); return this._lines[range.start.line].substring( range.start.character, From 623761f8ab6e57ad5feda01e48fcf38846a34e96 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 21:37:00 +0100 Subject: [PATCH 146/504] docs: todo --- packages/cursorless-neovim/TODO.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index bb264d4568..458e4c0436 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,21 +1,22 @@ # questions - Pokey: merge talon-vscode-command-client and cursorless-talon? +- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? okay if we use the cursorless repo with a neovim tag? +- separate PRs to be accepted: textEditor.setSelections(), fixtures-data - Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) -- Pokey: go over the remaining "TODO:" in the code +- utf8 is not supported well - probably neovim pb (translate to utf8) - no utf8 thing in cursorless (strings that under the hood are utf16) - need to decode it before giving it to cursorless - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: +- Pokey: go over the remaining "TODO:" in the code - NPM as package manager message (see screenshot) - Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") -- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? okay if we use the cursorless repo with a neovim tag? -- separate PRs to be accepted: textEditor.setSelections(), fixtures-data, unnecessary performEditsAndUpdateInternal() +- "paste to row one" from the clipboard, see getFromClipboard() # to do -- "paste to row one" from the clipboard, see getFromClipboard() +- scout text command in any mode - find a way to load nvim.exe in the background as part of launch.json/tasks.json to load neovim so we can attach to it with debugger - hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log - understand why no node plugin logging in vscode anymore with latest node-client? -- utf8 is not supported well # to do later From 4df333cfefbf06f18df0b6e0f03505adff7d8108 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 21:43:22 +0100 Subject: [PATCH 147/504] feat: generate changes event myself when an edit happens. This is the only way atm since otherwise cursorless won't understand our "line granularity" changes event (due to neovim limitation atm). 4 tests passed. 429 failed --- .../src/ide/neovim/NeovimEdit.ts | 38 +++++- .../src/ide/neovim/NeovimIDE.ts | 16 +-- .../src/suite/recorded.vscode.test.ts | 119 +++++++++++------- 3 files changed, 119 insertions(+), 54 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 38cbcc9460..55594d8b45 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -1,7 +1,14 @@ -import { Edit, Position, Range } from "@cursorless/common"; +import { + Edit, + Position, + Range, + TextDocument, + TextDocumentContentChangeEvent, +} from "@cursorless/common"; import { Window } from "neovim"; -import { updateTextEditor } from "../../neovimHelpers"; +import { getNeovimIDE, updateTextEditor } from "../../neovimHelpers"; import { neovimClient } from "../../singletons/client.singleton"; +import { eventEmitter } from "../../events"; export default async function neovimEdit( window: Window, @@ -17,6 +24,26 @@ export default async function neovimEdit( return b.range.start.line - a.range.start.line; }); + // TODO: notify here bulking all changes? + const client = neovimClient(); + const document = getNeovimIDE().getTextDocument( + await client.window.buffer, + ) as TextDocument; + const changes: TextDocumentContentChangeEvent[] = []; + for (const edit of edits) { + changes.push({ + range: edit.range, + rangeOffset: document.offsetAt(edit.range.start), + rangeLength: + document.offsetAt(edit.range.end) - document.offsetAt(edit.range.start), + text: edit.text, + }); + } + eventEmitter.emit("onDidChangeTextDocument", { + document: document, + contentChanges: changes, + }); + for (const edit of edits) { const { range, text, isReplace } = edit; @@ -35,6 +62,7 @@ export default async function neovimEdit( } async function neovimDelete(range: Range): Promise { + console.warn(`neovimDelete(): range=${JSON.stringify(range)}`); const client = neovimClient(); const buffer = await client.window.buffer; @@ -103,6 +131,9 @@ async function neovimDelete(range: Range): Promise { } async function neovimInsert(position: Position, text: string) { + console.warn( + `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`, + ); // standardise newlines so we can easily split the lines const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); @@ -146,6 +177,9 @@ async function neovimInsert(position: Position, text: string) { } async function neovimReplace(range: Range, text: string) { + console.warn( + `neovimReplace(): range=${JSON.stringify(range)}, text='${text}'`, + ); await neovimDelete(range); await neovimInsert(range.start, text); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index f1d369bee7..33c6a390aa 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -242,18 +242,18 @@ export class NeovimIDE implements IDE { // "attach" to Nvim buffers to subscribe to buffer update events. // This is similar to TextChanged but more powerful and granular. // @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - console.warn( - `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, - ); + // console.warn( + // `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, + // ); // buffer.listen("lines", async () => await receivedBufferEvent); // TODO: attempt to enforce that the rangeUpdater has the initial document state but not fixing fixture breakJustThis problem // receivedBufferEvent(buffer, 0, 0, lines.length, lines, false); // TODO: attempt to enforce that the rangeUpdater has an empty initial document but not fixing fixture breakJustThis problem - eventEmitter.emit("onDidChangeTextDocument", { - document: document, - contentChanges: [], - }); - buffer.listen("lines", receivedBufferEvent); + // eventEmitter.emit("onDidChangeTextDocument", { + // document: document, + // contentChanges: [], + // }); + // buffer.listen("lines", receivedBufferEvent); } else { console.warn(`toNeovimEditor(): updating document: buffer=${buffer.id}`); document.update(lines); diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index f19070f053..9022bfbef2 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -29,6 +29,7 @@ import { // IDE, Selection, Position, + getRecordedTestPaths, } from "@cursorless/common"; // import { // getCursorlessApi, @@ -61,6 +62,8 @@ function createSelection(selection: SelectionPlainObject): Selection { return new Selection(anchor, active); } +const failedTests: string[] = []; +const passedTests: string[] = []; // suite("recorded test cases", async function () { export async function runRecordedTestCases() { // const { getSpy } = endToEndTestSetup(this); @@ -79,17 +82,23 @@ export async function runRecordedTestCases() { injectIde(spyIde!); // Run all tests - // for (const { name, path } of getRecordedTestPaths()) { - // await runTest(name, path, spyIde!); - // } + for (const { name, path } of getRecordedTestPaths()) { + await runTest(name, path, spyIde!); + } + console.warn(`Passed tests: ${passedTests.length}: ${passedTests}`); + console.warn(`Failed tests: ${failedTests.length}: ${failedTests}`); // Run a single test - await runTest( - "recorded/selectionTypes/clearRowTwoPastFour", - "C:\\cursorless\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearRowTwoPastFour.yml", - spyIde!, - ); + // await runTest( + // "recorded/selectionTypes/clearRowTwoPastFour", + // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearRowTwoPastFour.yml", + // spyIde!, + // ); + // await runTest( + // "recorded/selectionTypes/clearWord2", + // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearWord2.yml", + // spyIde!, + // ); } - async function runTest(name: string, file: string, spyIde: SpyIDE) { const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; @@ -100,22 +109,25 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { const hasMarks = fixture.initialState.marks != null && Object.keys(fixture.initialState.marks).length > 0; - if (hasMarks || fixture.languageId !== "plaintext") { + const hasMultipleSelections = + fixture.initialState.selections.length > 1 || + (fixture.finalState && fixture.finalState.selections.length > 1); + if (hasMarks || hasMultipleSelections || fixture.languageId !== "plaintext") { //console.warn(`runTest(${name}) => skipped`); return; } // Below are tests that should pass but fail for now - if ( - name == "recorded/actions/breakJustThis" || - name == "recorded/actions/breakJustThis2" || - name == "recorded/actions/changeNextInstanceChar" || - name == "recorded/actions/cloneToken" - // name === "recorded/ordinalScopes/changeSecondTwoTokens" || - // name === "recorded/surroundingPair/textual/clearBoundsRound" - ) { - console.warn(`runTest(${name}) => skipped as needs fixing`); - return; - } + // if ( + // // name == "recorded/actions/breakJustThis" || + // name == "recorded/actions/breakJustThis2" || + // name == "recorded/actions/changeNextInstanceChar" || + // name == "recorded/actions/cloneToken" + // // name === "recorded/ordinalScopes/changeSecondTwoTokens" || + // // name === "recorded/surroundingPair/textual/clearBoundsRound" + // ) { + // console.warn(`runTest(${name}) => skipped as needs fixing`); + // return; + // } console.warn( "------------------------------------------------------------------------------", ); @@ -199,9 +211,19 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { await fsp.writeFile(file, serializeTestFixture(outputFixture)); } else if (fixture.thrownError != null) { - assert.strictEqual(error.name, fixture.thrownError.name); + try { + assert.strictEqual(error.name, fixture.thrownError.name); + } catch (err) { + console.warn(`runTest(${name}) => wrong thrown error`); + failedTests.push(name); + return; + } } else { - throw error; + // throw error; + console.warn(`runTest(${name}) => error: ${error.name}`); + failedTests.push(name); + // throw err; + return; } return; @@ -260,28 +282,37 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { ); } - assert.deepStrictEqual( - resultState, - fixture.finalState, - "Unexpected final state", - ); + try { + assert.deepStrictEqual( + resultState, + fixture.finalState, + "Unexpected final state", + ); - assert.deepStrictEqual( - returnValue, - fixture.returnValue, - "Unexpected return value", - ); + assert.deepStrictEqual( + returnValue, + fixture.returnValue, + "Unexpected return value", + ); - assert.deepStrictEqual( - fallback, - fixture.fallback, - "Unexpected fallback value", - ); - - assert.deepStrictEqual( - omitByDeep(actualSpyIdeValues, isUndefined), - fixture.ide, - "Unexpected ide captured values", - ); + assert.deepStrictEqual( + fallback, + fixture.fallback, + "Unexpected fallback value", + ); + + assert.deepStrictEqual( + omitByDeep(actualSpyIdeValues, isUndefined), + fixture.ide, + "Unexpected ide captured values", + ); + } catch (err) { + console.warn(`runTest(${name}) => failed`); + failedTests.push(name); + // throw err; + return; + } + console.warn(`runTest(${name}) => passed`); + passedTests.push(name); } } From 2621162a1f527b7f13a2fc44c024506a2d84f2df Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 2 Apr 2024 22:10:13 +0100 Subject: [PATCH 148/504] feat: disable checking on spyIdeValues for now. 143 tests passed, 290 test failed --- .../src/suite/recorded.vscode.test.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 9022bfbef2..6278263539 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -116,12 +116,15 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { //console.warn(`runTest(${name}) => skipped`); return; } + // if (name === "recorded/selectionTypes/clearRowTwoPastFour") { + // console.warn(`runTest(${name}) => let's analyze it`); + // } // Below are tests that should pass but fail for now // if ( - // // name == "recorded/actions/breakJustThis" || - // name == "recorded/actions/breakJustThis2" || - // name == "recorded/actions/changeNextInstanceChar" || - // name == "recorded/actions/cloneToken" + // // name === "recorded/actions/breakJustThis" || + // name === "recorded/actions/breakJustThis2" || + // name === "recorded/actions/changeNextInstanceChar" || + // name === "recorded/actions/cloneToken" // // name === "recorded/ordinalScopes/changeSecondTwoTokens" || // // name === "recorded/surroundingPair/textual/clearBoundsRound" // ) { @@ -301,11 +304,15 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { "Unexpected fallback value", ); - assert.deepStrictEqual( - omitByDeep(actualSpyIdeValues, isUndefined), - fixture.ide, - "Unexpected ide captured values", - ); + // TODO: uncomment that to fix the tests + // I commented for now as "recorded/selectionTypes/clearRowTwoPastFour" + // succeeds if executed alone but fails when executed with all tests + // which does not make sense yet + // assert.deepStrictEqual( + // omitByDeep(actualSpyIdeValues, isUndefined), + // fixture.ide, + // "Unexpected ide captured values", + // ); } catch (err) { console.warn(`runTest(${name}) => failed`); failedTests.push(name); From eb5edb079cf8806b3635dfb832bd10a940f045e7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 15:59:04 +0100 Subject: [PATCH 149/504] refactor: actually use endToEndTestSetup.ts --- .../src/endToEndTestSetup.ts | 29 +++-------------- .../src/suite/recorded.vscode.test.ts | 31 +++++++------------ 2 files changed, 15 insertions(+), 45 deletions(-) diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts index 4f1b32feec..410a88b70c 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -1,8 +1,5 @@ import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; -// import { getCursorlessApi } from "@cursorless/vscode-common"; -// import { Context } from "mocha"; -//import * as sinon from "sinon"; /** * The number of times the current test has been retried. Will be 0 the first @@ -18,28 +15,10 @@ const retryCount = 5; */ //let previousTestTitle = ""; -// TODO: remove this function as we don't call it? -export function endToEndTestSetup(/* suite: Mocha.Suite */) { - // suite.timeout("100s"); - // suite.retries(5); - - let ide: IDE; - let injectIde: (ide: IDE) => void; - let spy: SpyIDE | undefined; - - setup(async function (/* this: Context */) { - const title = "TODOTitle"; //this.test!.fullTitle(); - // retryCount = title === previousTestTitle ? retryCount + 1 : 0; - // previousTestTitle = title; - ({ ide, injectIde } = (await getCursorlessApi()).testHelpers!); - spy = new SpyIDE(ide); - injectIde(spy); - }); - - teardown(() => { - //sinon.restore(); - injectIde(ide); - }); +export async function endToEndTestSetup() { + const { ide, injectIde } = (await getCursorlessApi()).testHelpers!; + const spy = new SpyIDE(ide); + injectIde(spy); return { getSpy() { diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 6278263539..92e6248e93 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -42,6 +42,7 @@ import { isUndefined } from "lodash"; import { promises as fsp } from "node:fs"; // import * as vscode from "vscode"; import { + endToEndTestSetup, /* endToEndTestSetup, */ sleepWithBackoff, } from "../endToEndTestSetup"; import { injectIde } from "@cursorless/cursorless-engine"; @@ -64,39 +65,29 @@ function createSelection(selection: SelectionPlainObject): Selection { const failedTests: string[] = []; const passedTests: string[] = []; -// suite("recorded test cases", async function () { -export async function runRecordedTestCases() { - // const { getSpy } = endToEndTestSetup(this); - - // suiteSetup(async () => { - // // Necessary because opening a notebook opens the panel for some reason - // await vscode.commands.executeCommand("workbench.action.closePanel"); - // const { ide } = (await getCursorlessApi()).testHelpers!; - // setupFake(ide, HatStability.stable); - // }); - //const originalIde = ide(); - // const spyIde = new SpyIDE(originalIde); - const { ide } = (await getCursorlessApi()).testHelpers!; - const spyIde = new SpyIDE(ide); - injectIde(spyIde!); +export async function runRecordedTestCases() { + const { getSpy } = await endToEndTestSetup(); // Run all tests for (const { name, path } of getRecordedTestPaths()) { - await runTest(name, path, spyIde!); + await runTest(name, path, getSpy()!); } - console.warn(`Passed tests: ${passedTests.length}: ${passedTests}`); - console.warn(`Failed tests: ${failedTests.length}: ${failedTests}`); + console.warn(`Passed tests: ${passedTests}`); + console.warn(`Failed tests: ${failedTests.slice(0, 20)}...`); + console.warn( + `Passed tests: ${passedTests.length} / Failed tests: ${failedTests.length}`, + ); // Run a single test // await runTest( // "recorded/selectionTypes/clearRowTwoPastFour", // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearRowTwoPastFour.yml", - // spyIde!, + // getSpy()!, // ); // await runTest( // "recorded/selectionTypes/clearWord2", // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearWord2.yml", - // spyIde!, + // getSpy()!, // ); } async function runTest(name: string, file: string, spyIde: SpyIDE) { From f210a360c60a7538d68dee99de191859f9cca5aa Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 17:41:20 +0100 Subject: [PATCH 150/504] fix: start a new buffer for each test. 167 passed tests. 266 failed tests --- .../src/suite/recorded.vscode.test.ts | 17 +++-- .../src/testUtil/openNewEditor.ts | 64 ++----------------- 2 files changed, 17 insertions(+), 64 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 92e6248e93..c0c56e7130 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -94,19 +94,25 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; - // TODO: skip if multiple selections (we don't support multiple cursors atm) - // We don't support decorated symbol marks yet - // We don't support parse-tree yet (which requires a code languageId) + + // We don't support decorated symbol marks (hats) yet const hasMarks = fixture.initialState.marks != null && Object.keys(fixture.initialState.marks).length > 0; + + // we don't support multiple selections in neovim (we don't support multiple cursors atm) const hasMultipleSelections = fixture.initialState.selections.length > 1 || (fixture.finalState && fixture.finalState.selections.length > 1); - if (hasMarks || hasMultipleSelections || fixture.languageId !== "plaintext") { - //console.warn(`runTest(${name}) => skipped`); + + // We don't support Tree sitter yet (which requires a code languageId) + const needTreeSitter = fixture.languageId !== "plaintext"; + + if (hasMarks || hasMultipleSelections || needTreeSitter) { return; } + + // Uncomment below for debugging // if (name === "recorded/selectionTypes/clearRowTwoPastFour") { // console.warn(`runTest(${name}) => let's analyze it`); // } @@ -122,6 +128,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // console.warn(`runTest(${name}) => skipped as needs fixing`); // return; // } + console.warn( "------------------------------------------------------------------------------", ); diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index 33a22decd3..f2e248da9f 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -1,6 +1,3 @@ -//import { getParseTreeApi } from "../getExtensionApi"; -//import * as vscode from "vscode"; - import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; import { updateTextEditor } from "../neovimHelpers"; @@ -15,44 +12,28 @@ export async function openNewEditor( content: string, { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, ): Promise { - // throw new Error("openNewEditor() Not implemented"); - // if (!openBeside) { - // await vscode.commands.executeCommand("workbench.action.closeAllEditors"); - // } - // standardise newlines so we can easily split the lines const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); const client = neovimClient(); + await client.command(":enew"); + const window = await client.window; - const buffer = await window.buffer; // Replace old content with new content + const buffer = await window.buffer; const oldLines = await buffer.lines; await buffer.setLines(newLines, { start: 0, end: oldLines.length, strictIndexing: false, }); + // const buffer = await window.buffer; + // await buffer.setLines(newLines, { start: 0, end: 1, strictIndexing: false }); // update our view of the document const editor = await updateTextEditor(); - // const document = await vscode.workspace.openTextDocument({ - // language: languageId, - // content, - // }); - // await (await getParseTreeApi()).loadLanguage(languageId); - // const editor = await vscode.window.showTextDocument( - // document, - // openBeside ? vscode.ViewColumn.Beside : undefined, - // ); - // const eol = content.includes("\r\n") - // ? vscode.EndOfLine.CRLF - // : vscode.EndOfLine.LF; - // if (eol !== editor.document.eol) { - // await editor.edit((editBuilder) => editBuilder.setEndOfLine(eol)); - // } return editor; } @@ -62,25 +43,6 @@ export async function reuseEditor( language: string = "plaintext", ) { throw new Error("reuseEditor() Not implemented"); - // if (editor.document.languageId !== language) { - // await vscode.languages.setTextDocumentLanguage(editor.document, language); - // await (await getParseTreeApi()).loadLanguage(language); - // } - // await editor.edit((editBuilder) => { - // editBuilder.replace( - // new vscode.Range( - // editor.document.lineAt(0).range.start, - // editor.document.lineAt(editor.document.lineCount - 1).range.end, - // ), - // content, - // ); - // const eol = content.includes("\r\n") - // ? vscode.EndOfLine.CRLF - // : vscode.EndOfLine.LF; - // if (eol !== editor.document.eol) { - // editBuilder.setEndOfLine(eol); - // } - // }); } /** @@ -95,20 +57,4 @@ export async function openNewNotebookEditor( language: string = "plaintext", ) { throw new Error("openNewNotebookEditor() Not implemented"); - // await vscode.commands.executeCommand("workbench.action.closeAllEditors"); - // const document = await vscode.workspace.openNotebookDocument( - // "jupyter-notebook", - // new vscode.NotebookData( - // cellContents.map( - // (contents) => - // new vscode.NotebookCellData( - // vscode.NotebookCellKind.Code, - // contents, - // language, - // ), - // ), - // ), - // ); - // await (await getParseTreeApi()).loadLanguage(language); - // return document; } From d1dd38cfd2d34b08066596a1015e75b5c022305f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 17:48:02 +0100 Subject: [PATCH 151/504] feat: support deleting old buffers with BufOnly.vim --- .../src/testUtil/openNewEditor.ts | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index f2e248da9f..ba6b05d46d 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -8,28 +8,31 @@ interface NewEditorOptions { openBeside?: boolean; } +// NOTE: When the nvim-data/swap folder gets too big, neovim will start +// displaying a "press enter or type command to continue" message for every ":enew" command +// so the workaround is to delete that folder. export async function openNewEditor( content: string, { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, ): Promise { - // standardise newlines so we can easily split the lines - const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - const client = neovimClient(); + // open a new buffer + // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file await client.command(":enew"); - const window = await client.window; + // standardise newlines so we can easily split the lines + const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - // Replace old content with new content + // set the buffer contents + const window = await client.window; const buffer = await window.buffer; - const oldLines = await buffer.lines; - await buffer.setLines(newLines, { - start: 0, - end: oldLines.length, - strictIndexing: false, - }); - // const buffer = await window.buffer; - // await buffer.setLines(newLines, { start: 0, end: 1, strictIndexing: false }); + await buffer.setLines(newLines, { start: 0, end: -1, strictIndexing: false }); + + if (!openBeside) { + // close all the other buffers + // @see: https://stackoverflow.com/questions/4545275/vim-close-all-buffers-but-this-one + await client.command(":BufOnly!"); + } // update our view of the document const editor = await updateTextEditor(); From 61647413e1e593a5478603c2792cc1a554cdedf6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 19:26:04 +0100 Subject: [PATCH 152/504] refactor: close other buffers just after creating new buffer. 167 tests passed still --- .../cursorless-neovim/src/testUtil/openNewEditor.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index ba6b05d46d..4f4b1b2a9f 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -20,6 +20,12 @@ export async function openNewEditor( // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file await client.command(":enew"); + if (!openBeside) { + // close all the other buffers + // @see: https://stackoverflow.com/questions/4545275/vim-close-all-buffers-but-this-one + await client.command(":BufOnly!"); + } + // standardise newlines so we can easily split the lines const newLines = content.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); @@ -28,12 +34,6 @@ export async function openNewEditor( const buffer = await window.buffer; await buffer.setLines(newLines, { start: 0, end: -1, strictIndexing: false }); - if (!openBeside) { - // close all the other buffers - // @see: https://stackoverflow.com/questions/4545275/vim-close-all-buffers-but-this-one - await client.command(":BufOnly!"); - } - // update our view of the document const editor = await updateTextEditor(); From 4f5776c616207ee6028527d48bc44109e4ad35f6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 19:39:24 +0100 Subject: [PATCH 153/504] fix: not sure it matters but we try to set the right type of end of line --- .../cursorless-neovim/src/testUtil/openNewEditor.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index 4f4b1b2a9f..6ea3a1c4ee 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -16,6 +16,7 @@ export async function openNewEditor( { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, ): Promise { const client = neovimClient(); + // open a new buffer // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file await client.command(":enew"); @@ -34,6 +35,15 @@ export async function openNewEditor( const buffer = await window.buffer; await buffer.setLines(newLines, { start: 0, end: -1, strictIndexing: false }); + // Not sure it matters but we try to set the right end of line type + const eol = content.includes("\r\n") ? "CRLF" : "LF"; + // https://stackoverflow.com/questions/82726/convert-dos-windows-line-endings-to-linux-line-endings-in-vim + if (eol === "CRLF") { + await client.command(":set ff=dos"); + } else { + await client.command(":set ff=unix"); + } + // update our view of the document const editor = await updateTextEditor(); From f68cb2cf809a7905a7e9d0c85d1f680a3e4c9336 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 20:35:14 +0100 Subject: [PATCH 154/504] feat: add test to copy from clipboard. this test passed in vscode and in neovim. Passed tests: 168 / Failed tests: 266 --- .../src/ide/neovim/NeovimClipboard.ts | 10 +++--- .../src/suite/recorded.vscode.test.ts | 11 +++--- .../recorded/actions/copySecondToken.yml | 36 +++++++++++++++++++ 3 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/copySecondToken.yml diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts index 4f0c324bf6..d3d1c470e7 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts @@ -1,13 +1,15 @@ import type { Clipboard } from "@cursorless/common"; +import { neovimClient } from "../../singletons/client.singleton"; +import { getFromClipboard, putToClipboard } from "../../neovimApi"; export default class NeovimClipboard implements Clipboard { - private clipboardContents: string = ""; - async readText(): Promise { - return this.clipboardContents; + const client = await neovimClient(); + return await getFromClipboard(client); } async writeText(value: string): Promise { - this.clipboardContents = value; + const client = await neovimClient(); + await putToClipboard(value, client); } } diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index c0c56e7130..41b23cc551 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -51,6 +51,7 @@ import { injectIde } from "@cursorless/cursorless-engine"; import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; import { openNewEditor } from "../testUtil/openNewEditor"; import { runCursorlessCommand } from "../runCommand"; +import { neovimClient } from "../singletons/client.singleton"; // import { setupFake } from "./setupFake"; function createPosition(position: PositionPlainObject) { @@ -91,6 +92,8 @@ export async function runRecordedTestCases() { // ); } async function runTest(name: string, file: string, spyIde: SpyIDE) { + const client = neovimClient(); + const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; @@ -165,11 +168,9 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); // } - // if (fixture.initialState.clipboard) { - // vscode.env.clipboard.writeText(fixture.initialState.clipboard); - // // FIXME https://github.com/cursorless-dev/cursorless/issues/559 - // // spyIde.clipboard.writeText(fixture.initialState.clipboard); - // } + if (fixture.initialState.clipboard) { + spyIde.clipboard.writeText(fixture.initialState.clipboard); + } commandServerApi.setFocusedElementType( fixture.focusedElementType === "other" diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/copySecondToken.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/copySecondToken.yml new file mode 100644 index 0000000000..67f1bbd750 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/copySecondToken.yml @@ -0,0 +1,36 @@ +languageId: plaintext +command: + version: 3 + spokenForm: copy second token + action: {name: copyToClipboard} + targets: + - type: primitive + modifiers: + - type: ordinalScope + scopeType: {type: token} + start: 1 + length: 1 +initialState: + documentContents: | + + const value = "Hello world"; + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} + clipboard: value + marks: {} +finalState: + documentContents: | + + const value = "Hello world"; + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} + clipboard: value + thatMark: + - type: TokenTarget + contentRange: + start: {line: 1, character: 6} + end: {line: 1, character: 11} + isReversed: false + hasExplicitRange: true From 07f15d1d2d23da5a5aa2ba3bf6bcb9acbe36e986 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 3 Apr 2024 21:49:20 +0100 Subject: [PATCH 155/504] feat: support showing a diff --- .../src/suite/recorded.vscode.test.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 41b23cc551..e05e73bd28 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -52,6 +52,7 @@ import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; import { openNewEditor } from "../testUtil/openNewEditor"; import { runCursorlessCommand } from "../runCommand"; import { neovimClient } from "../singletons/client.singleton"; +import { AssertionError } from "node:assert"; // import { setupFake } from "./setupFake"; function createPosition(position: PositionPlainObject) { @@ -67,6 +68,11 @@ function createSelection(selection: SelectionPlainObject): Selection { const failedTests: string[] = []; const passedTests: string[] = []; +type errorType = { + [key: string]: AssertionError; +}; +const failures: errorType = {}; + export async function runRecordedTestCases() { const { getSpy } = await endToEndTestSetup(); @@ -76,9 +82,18 @@ export async function runRecordedTestCases() { } console.warn(`Passed tests: ${passedTests}`); console.warn(`Failed tests: ${failedTests.slice(0, 20)}...`); + for (const [name, error] of Object.entries(failures)) { + console.warn("+".repeat(80)); + console.warn(`Failed test: ${name}`); + const expected = JSON.stringify(error.expected, null, 2); + const actual = JSON.stringify(error.actual, null, 2); + console.warn(`Expected: ${expected}`); + console.warn(`Actual: ${actual}`); + } console.warn( `Passed tests: ${passedTests.length} / Failed tests: ${failedTests.length}`, ); + // Run a single test // await runTest( // "recorded/selectionTypes/clearRowTwoPastFour", @@ -313,8 +328,14 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // "Unexpected ide captured values", // ); } catch (err) { - console.warn(`runTest(${name}) => failed`); + const error = err as AssertionError; + console.warn(`Failed test: ${name}`); + const expected = JSON.stringify(error.expected, null, 2); + const actual = JSON.stringify(error.actual, null, 2); + console.warn(`Expected: ${expected}`); + console.warn(`Actual: ${actual}`); failedTests.push(name); + failures[name] = error; // throw err; return; } From a741576169f906d0db968dbc9bd27c36f9646660 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 09:07:05 +0100 Subject: [PATCH 156/504] refactor: logic around test success detection + logging. Passed tests: 184 / 450 (failed: 266) --- .../src/suite/recorded.vscode.test.ts | 168 ++++++++++-------- .../src/suite/recorded.vscode.test.ts | 6 +- 2 files changed, 95 insertions(+), 79 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index e05e73bd28..89f8a17f6c 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -55,6 +55,10 @@ import { neovimClient } from "../singletons/client.singleton"; import { AssertionError } from "node:assert"; // import { setupFake } from "./setupFake"; +type errorType = { + [key: string]: AssertionError; +}; + function createPosition(position: PositionPlainObject) { return new Position(position.line, position.character); } @@ -65,34 +69,58 @@ function createSelection(selection: SelectionPlainObject): Selection { return new Selection(anchor, active); } -const failedTests: string[] = []; -const passedTests: string[] = []; - -type errorType = { - [key: string]: AssertionError; -}; +const successes: string[] = []; const failures: errorType = {}; -export async function runRecordedTestCases() { - const { getSpy } = await endToEndTestSetup(); - - // Run all tests - for (const { name, path } of getRecordedTestPaths()) { - await runTest(name, path, getSpy()!); - } - console.warn(`Passed tests: ${passedTests}`); - console.warn(`Failed tests: ${failedTests.slice(0, 20)}...`); - for (const [name, error] of Object.entries(failures)) { - console.warn("+".repeat(80)); - console.warn(`Failed test: ${name}`); +function showFailedTest(name: string, error: AssertionError) { + console.warn(`Failed test: ${name}`); + console.warn(`Thrown error: ${error.message}`); + if (error.expected !== undefined) { const expected = JSON.stringify(error.expected, null, 2); const actual = JSON.stringify(error.actual, null, 2); console.warn(`Expected: ${expected}`); console.warn(`Actual: ${actual}`); } +} + +function showSucceededTest(name: string) { + console.warn(`Passed test: ${name} \\o/`); +} + +function showSummaryTests() { + console.warn(`Passed tests: ${successes}`); + for (const [name, error] of Object.entries(failures)) { + console.warn("+".repeat(80)); + showFailedTest(name, error); + } + const failed = Object.entries(failures).length; + const total = successes.length + failed; console.warn( - `Passed tests: ${passedTests.length} / Failed tests: ${failedTests.length}`, + `Passed tests: ${successes.length} / ${total} (failed: ${failed})`, ); +} + +export async function runRecordedTestCases() { + const { getSpy } = await endToEndTestSetup(); + + // Run all tests + for (const { name, path } of getRecordedTestPaths()) { + let executed = true; + try { + executed = await runTest(name, path, getSpy()!); + } catch (err) { + const error = err as AssertionError; + showFailedTest(name, error); + failures[name] = error; + continue; + } + if (!executed) { + continue; + } + showSucceededTest(name); + successes.push(name); + } + showSummaryTests(); // Run a single test // await runTest( @@ -106,7 +134,11 @@ export async function runRecordedTestCases() { // getSpy()!, // ); } -async function runTest(name: string, file: string, spyIde: SpyIDE) { +async function runTest( + name: string, + file: string, + spyIde: SpyIDE, +): Promise { const client = neovimClient(); const buffer = await fsp.readFile(file); @@ -127,7 +159,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { const needTreeSitter = fixture.languageId !== "plaintext"; if (hasMarks || hasMultipleSelections || needTreeSitter) { - return; + return false; } // Uncomment below for debugging @@ -144,7 +176,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { // // name === "recorded/surroundingPair/textual/clearBoundsRound" // ) { // console.warn(`runTest(${name}) => skipped as needs fixing`); - // return; + // return false; // } console.warn( @@ -193,7 +225,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { : fixture.focusedElementType ?? "textEditor", ); - // NOT NEEDED FROM VSCODE: + // NOT NEEDED FOR NOW // Ensure that the expected hats are present // Assert that recorded decorations are present @@ -228,28 +260,23 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { await fsp.writeFile(file, serializeTestFixture(outputFixture)); } else if (fixture.thrownError != null) { - try { - assert.strictEqual(error.name, fixture.thrownError.name); - } catch (err) { - console.warn(`runTest(${name}) => wrong thrown error`); - failedTests.push(name); - return; - } + assert.strictEqual( + error.name, + fixture.thrownError.name, + "Unexpected thrown error", + ); } else { - // throw error; - console.warn(`runTest(${name}) => error: ${error.name}`); - failedTests.push(name); - // throw err; - return; + throw error; } - return; + return true; } if (fixture.postCommandSleepTimeMs != null) { await sleepWithBackoff(fixture.postCommandSleepTimeMs); } + // We don't support decorated symbol marks (hats) yet const marks = undefined; if (fixture.finalState?.clipboard == null) { @@ -271,8 +298,7 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { spyIde.activeTextEditor!, spyIde, marks, - // FIXME: Stop overriding the clipboard once we have #559 - true, + false, ); const rawSpyIdeValues = spyIde.getSpyValues(fixture.ide?.flashes != null); @@ -299,47 +325,33 @@ async function runTest(name: string, file: string, spyIde: SpyIDE) { ); } - try { - assert.deepStrictEqual( - resultState, - fixture.finalState, - "Unexpected final state", - ); - - assert.deepStrictEqual( - returnValue, - fixture.returnValue, - "Unexpected return value", - ); + assert.deepStrictEqual( + resultState, + fixture.finalState, + "Unexpected final state", + ); - assert.deepStrictEqual( - fallback, - fixture.fallback, - "Unexpected fallback value", - ); + assert.deepStrictEqual( + returnValue, + fixture.returnValue, + "Unexpected return value", + ); - // TODO: uncomment that to fix the tests - // I commented for now as "recorded/selectionTypes/clearRowTwoPastFour" - // succeeds if executed alone but fails when executed with all tests - // which does not make sense yet - // assert.deepStrictEqual( - // omitByDeep(actualSpyIdeValues, isUndefined), - // fixture.ide, - // "Unexpected ide captured values", - // ); - } catch (err) { - const error = err as AssertionError; - console.warn(`Failed test: ${name}`); - const expected = JSON.stringify(error.expected, null, 2); - const actual = JSON.stringify(error.actual, null, 2); - console.warn(`Expected: ${expected}`); - console.warn(`Actual: ${actual}`); - failedTests.push(name); - failures[name] = error; - // throw err; - return; - } - console.warn(`runTest(${name}) => passed`); - passedTests.push(name); + assert.deepStrictEqual( + fallback, + fixture.fallback, + "Unexpected fallback value", + ); + + // TODO: uncomment that to fix the tests + // I commented for now as "recorded/selectionTypes/clearRowTwoPastFour" + // succeeds if executed alone but fails when executed with all tests + // which does not make sense yet + // assert.deepStrictEqual( + // omitByDeep(actualSpyIdeValues, isUndefined), + // fixture.ide, + // "Unexpected ide captured values", + // ); } + return true; } diff --git a/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts index 22258d170c..1ab8788122 100644 --- a/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts @@ -151,7 +151,11 @@ async function runTest(file: string, spyIde: SpyIDE) { await fsp.writeFile(file, serializeTestFixture(outputFixture)); } else if (fixture.thrownError != null) { - assert.strictEqual(error.name, fixture.thrownError.name); + assert.strictEqual( + error.name, + fixture.thrownError.name, + "Unexpected thrown error", + ); } else { throw error; } From 5b178c4f02705c07fd46c76ea17f60c8c70ba247 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 12:03:22 +0100 Subject: [PATCH 157/504] docs: todo --- packages/cursorless-neovim/TODO.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 458e4c0436..93fe2ca144 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,9 +1,6 @@ # questions -- Pokey: merge talon-vscode-command-client and cursorless-talon? -- git repo to mention problems/issues? for instance the can't reenter normal mode from terminal mode? okay if we use the cursorless repo with a neovim tag? -- separate PRs to be accepted: textEditor.setSelections(), fixtures-data -- Pokey: exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) +- setStoredTarget support in the recorded tests? - utf8 is not supported well - probably neovim pb (translate to utf8) - no utf8 thing in cursorless (strings that under the hood are utf16) - need to decode it before giving it to cursorless - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: - Pokey: go over the remaining "TODO:" in the code @@ -18,14 +15,22 @@ - hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log - understand why no node plugin logging in vscode anymore with latest node-client? +# Pokey todo list + +- separate PRs to be accepted: textEditor.setSelections(), fixtures-data +- exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) + # to do later - can we reload the extensions after a modification without reloading neovim? does not seem to work atm - have the command server allow executing any lua function? probably not because we already have neovim rpc. - prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ only useful to chain multiple commands to avoid hats being changed in the middle so not useful for now +- merge talon-vscode-command-client into community once we know for sure we use the command-server (and not neovim python rpc) +- merge cursorless-talon into the Cursorless repo # fidgeting +- vim plugins in my init.lua? - fix neovim terminology - extension => plugin - editor => window (any place remaining?) From 31f5c1ef8dfffd9640184c819f2d047b97accd40 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 12:04:10 +0100 Subject: [PATCH 158/504] refactor: spyIDE not being initialized for each test is a bug I need to fix --- .../src/suite/recorded.vscode.test.ts | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 89f8a17f6c..a17164183b 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -75,7 +75,7 @@ const failures: errorType = {}; function showFailedTest(name: string, error: AssertionError) { console.warn(`Failed test: ${name}`); console.warn(`Thrown error: ${error.message}`); - if (error.expected !== undefined) { + if (error.expected !== undefined || error.actual !== undefined) { const expected = JSON.stringify(error.expected, null, 2); const actual = JSON.stringify(error.actual, null, 2); console.warn(`Expected: ${expected}`); @@ -104,7 +104,23 @@ export async function runRecordedTestCases() { const { getSpy } = await endToEndTestSetup(); // Run all tests - for (const { name, path } of getRecordedTestPaths()) { + const tests = getRecordedTestPaths(); + + // Run some tests + // const fixturePath = + // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\"; + // const tests = [ + // { + // name: "recorded/selectionTypes/clearRowTwoPastFour", + // path: `${fixturePath}recorded\\selectionTypes\\clearRowTwoPastFour.yml`, + // }, + // { + // name: "recorded/selectionTypes/clearWord2", + // path: `${fixturePath}recorded\\selectionTypes\\clearWord2.yml`, + // }, + // ]; + + for (const { name, path } of tests) { let executed = true; try { executed = await runTest(name, path, getSpy()!); @@ -121,18 +137,6 @@ export async function runRecordedTestCases() { successes.push(name); } showSummaryTests(); - - // Run a single test - // await runTest( - // "recorded/selectionTypes/clearRowTwoPastFour", - // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearRowTwoPastFour.yml", - // getSpy()!, - // ); - // await runTest( - // "recorded/selectionTypes/clearWord2", - // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\recorded\\selectionTypes\\clearWord2.yml", - // getSpy()!, - // ); } async function runTest( name: string, @@ -347,11 +351,16 @@ async function runTest( // I commented for now as "recorded/selectionTypes/clearRowTwoPastFour" // succeeds if executed alone but fails when executed with all tests // which does not make sense yet - // assert.deepStrictEqual( - // omitByDeep(actualSpyIdeValues, isUndefined), - // fixture.ide, - // "Unexpected ide captured values", - // ); + // try { + // assert.deepStrictEqual( + // omitByDeep(actualSpyIdeValues, isUndefined), + // fixture.ide, + // "Unexpected ide captured values", + // ); + // } catch (error) { + // console.warn("Unexpected ide captured values"); + // throw error; + // } } return true; } From b5091eb960ab9f967c4e00fd67f74df24724de1f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 15:18:44 +0100 Subject: [PATCH 159/504] fix: instantiate a new spyIDE for each .yml test. Passed tests: 182 / 450 (failed: 268) (this is better than 43 passed tests only when spyIDE was becoming crazy. This is less than 184 passed tests when commenting the assert for spyIDE. Which means only 2 tests have a bug that we detect with that assert) --- .../src/endToEndTestSetup.ts | 12 +++++++---- .../src/suite/recorded.vscode.test.ts | 21 ++++++------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts index 410a88b70c..2b80f8cc9a 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -16,12 +16,16 @@ const retryCount = 5; //let previousTestTitle = ""; export async function endToEndTestSetup() { - const { ide, injectIde } = (await getCursorlessApi()).testHelpers!; - const spy = new SpyIDE(ide); - injectIde(spy); + async function setup() { + const { ide, injectIde } = (await getCursorlessApi()).testHelpers!; + const spy = new SpyIDE(ide); + injectIde(spy); + return spy; + } return { - getSpy() { + async getSpy() { + const spy = await setup(); return spy; }, }; diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index a17164183b..0b9edcb83a 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -123,7 +123,7 @@ export async function runRecordedTestCases() { for (const { name, path } of tests) { let executed = true; try { - executed = await runTest(name, path, getSpy()!); + executed = await runTest(name, path, await getSpy()!); } catch (err) { const error = err as AssertionError; showFailedTest(name, error); @@ -347,20 +347,11 @@ async function runTest( "Unexpected fallback value", ); - // TODO: uncomment that to fix the tests - // I commented for now as "recorded/selectionTypes/clearRowTwoPastFour" - // succeeds if executed alone but fails when executed with all tests - // which does not make sense yet - // try { - // assert.deepStrictEqual( - // omitByDeep(actualSpyIdeValues, isUndefined), - // fixture.ide, - // "Unexpected ide captured values", - // ); - // } catch (error) { - // console.warn("Unexpected ide captured values"); - // throw error; - // } + assert.deepStrictEqual( + omitByDeep(actualSpyIdeValues, isUndefined), + fixture.ide, + "Unexpected ide captured values", + ); } return true; } From 447db818e70bfbd6f342c4f8b668c6645bed6a9b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 17:52:16 +0100 Subject: [PATCH 160/504] fix: allow a null node because I'm not using any treesitter at the moment --- .../src/processTargets/modifiers/surroundingPair/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts index 52898d6e88..162985b803 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts @@ -178,5 +178,5 @@ function nodeHasError(node: SyntaxNode, includeChildren = false): boolean { } function nodeIsError(node: SyntaxNode): boolean { - return node.type === "ERROR"; + return node === null || node.type === "ERROR"; } From 8d02e7890e4beec00e166602d935c6476833561b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 4 Apr 2024 17:57:16 +0100 Subject: [PATCH 161/504] feat: support onDidOpenTextDocument event that we trigger for now when we update the text editor. Passed tests: 333 / 450 (failed: 117) --- .../src/ide/neovim/NeovimEvents.ts | 9 +++++++++ .../src/ide/neovim/NeovimFileSystem.ts | 4 +++- .../cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 13 ++++++++++--- packages/cursorless-neovim/src/neovimHelpers.ts | 11 +++++++++-- .../src/suite/recorded.vscode.test.ts | 5 +++++ 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index 42216842df..0a7b4f9be2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -23,6 +23,15 @@ export function neovimOnDidChangeTextDocument( return dummyEvent(); } +export function neovimOnDidOpenTextDocument( + listener: (event: TextDocument) => any, + thisArgs?: any, + disposables?: Disposable[] | undefined, +): Disposable { + eventEmitter.on("onDidOpenTextDocument", listener); + return dummyEvent(); +} + /** * @see https://neovim.io/doc/user/api.html#api-buffer-updates */ diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts index bc00133a0c..02e6ec4b81 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts @@ -44,7 +44,9 @@ export class NeovimFileSystem implements FileSystem { * @returns The contents of path, decoded as UTF-8 */ public async readBundledFile(path: string): Promise { - throw Error("readBundledFile() Not implemented"); + // throw Error("readBundledFile() Not implemented"); + console.warn("readBundledFile() Not implemented"); + return undefined; } private resolveBundledPath(path: string) { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 33c6a390aa..bdb067a3fe 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -34,6 +34,7 @@ import { getTalonNvimPath } from "../../neovimApi"; import path from "path"; import { neovimOnDidChangeTextDocument, + neovimOnDidOpenTextDocument, receivedBufferEvent, } from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; @@ -201,12 +202,18 @@ export class NeovimIDE implements IDE { public onDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { - // console.warn("onDidChangeTextDocument Not implemented"); - // throw Error("onDidChangeTextDocument Not implemented"); return neovimOnDidChangeTextDocument(listener); } - onDidOpenTextDocument: Event = dummyEvent; + // onDidOpenTextDocument: Event = dummyEvent; + public onDidOpenTextDocument( + listener: (event: TextDocument) => any, + thisArgs?: any, + disposables?: Disposable[] | undefined, + ): Disposable { + return neovimOnDidOpenTextDocument(listener, thisArgs, disposables); + } + onDidCloseTextDocument: Event = dummyEvent; onDidChangeActiveTextEditor: Event = dummyEvent; onDidChangeVisibleTextEditors: Event = dummyEvent; diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 0c3596f72c..0af098947b 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -13,6 +13,7 @@ import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NormalizedIDE, SpyIDE } from "@cursorless/common"; import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; +import { eventEmitter } from "./events"; // DEP-INJ: Delete this function. Is there a clean way to do it? Yes once we support pure dependency injection export function getNeovimIDE(): NeovimIDE { @@ -52,7 +53,7 @@ export async function updateTextEditor(): Promise { const selections = await bufferGetSelections(window, client); const visibleRanges = await windowGetVisibleRanges(window, client, lines); const neovimIDE = getNeovimIDE(); - const impl = neovimIDE.toNeovimEditor( + const editor = neovimIDE.toNeovimEditor( window, buffer, lines, @@ -60,7 +61,12 @@ export async function updateTextEditor(): Promise { selections, ); // await subscribeBufferUpdates(); - return impl; + + // TODO: simulate that the document is open for now from here. + // we would need to ideally do it from neovim itself + eventEmitter.emit("onDidOpenTextDocument", editor.document); + + return editor; } /** @@ -108,4 +114,5 @@ export async function neovimClipboardPaste(): Promise { // TODO: get the current selection indexes, // retrieve the corresponding lines from the Buffer, // and replace the lines with the pasted data + // NO: just issue an insert (CTRL+V) in lua } diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index 0b9edcb83a..a565e3653c 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -80,6 +80,8 @@ function showFailedTest(name: string, error: AssertionError) { const actual = JSON.stringify(error.actual, null, 2); console.warn(`Expected: ${expected}`); console.warn(`Actual: ${actual}`); + } else { + console.warn(`Stack: ${error.stack}`); } } @@ -170,6 +172,9 @@ async function runTest( // if (name === "recorded/selectionTypes/clearRowTwoPastFour") { // console.warn(`runTest(${name}) => let's analyze it`); // } + // if (name === "recorded/surroundingPair/changeInside") { + // console.warn(`runTest(${name}) => let's analyze it`); + // } // Below are tests that should pass but fail for now // if ( // // name === "recorded/actions/breakJustThis" || From ced0827050aaf15b1b7593bae0a913257b9d930a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 05:37:50 +0100 Subject: [PATCH 162/504] feat: support "that" tests using setStoredTarget(). Passed tests: 342 / 450 (failed: 108) --- packages/cursorless-neovim/src/TestHelpers.ts | 12 +++--- .../src/constructTestHelpers.ts | 30 ++++++++------ .../src/suite/recorded.vscode.test.ts | 40 +++++-------------- 3 files changed, 32 insertions(+), 50 deletions(-) diff --git a/packages/cursorless-neovim/src/TestHelpers.ts b/packages/cursorless-neovim/src/TestHelpers.ts index 5f9ec06c8c..c2942b1981 100644 --- a/packages/cursorless-neovim/src/TestHelpers.ts +++ b/packages/cursorless-neovim/src/TestHelpers.ts @@ -7,7 +7,7 @@ import type { NormalizedIDE, ScopeProvider, SerializedMarks, - // TargetPlainObject, + TargetPlainObject, TestCaseSnapshot, TextEditor, } from "@cursorless/common"; @@ -26,11 +26,11 @@ export interface TestHelpers { //toVscodeEditor(editor: TextEditor): vscode.TextEditor; - // setStoredTarget( - // editor: vscode.TextEditor, - // key: string, - // targets: TargetPlainObject[] | undefined, - // ): void; + setStoredTarget( + editor: TextEditor, + key: string, + targets: TargetPlainObject[] | undefined, + ): void; // FIXME: Remove this once we have a better way to get this function // accessible from our tests diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index cccc32742f..e6108d3fd6 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -7,10 +7,16 @@ import { NormalizedIDE, ScopeProvider, SerializedMarks, + StoredTargetKey, + TargetPlainObject, TestCaseSnapshot, TextEditor, } from "@cursorless/common"; -import { StoredTargetMap, takeSnapshot } from "@cursorless/cursorless-engine"; +import { + StoredTargetMap, + plainObjectToTarget, + takeSnapshot, +} from "@cursorless/cursorless-engine"; import { TestHelpers } from "./TestHelpers"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; @@ -60,18 +66,16 @@ export function constructTestHelpers( cursorlessTalonStateJsonPath: fileSystem.cursorlessTalonStateJsonPath, cursorlessCommandHistoryDirPath: fileSystem.cursorlessCommandHistoryDirPath, - // setStoredTarget( - // editor: vscode.TextEditor, - // key: StoredTargetKey, - // targets: TargetPlainObject[] | undefined, - // ): void { - // storedTargets.set( - // key, - // targets?.map((target) => - // plainObjectToTarget(vscodeIDE.fromVscodeEditor(editor), target), - // ), - // ); - // }, + setStoredTarget( + editor: TextEditor, + key: StoredTargetKey, + targets: TargetPlainObject[] | undefined, + ): void { + storedTargets.set( + key, + targets?.map((target) => plainObjectToTarget(editor, target)), + ); + }, hatTokenMap, runIntegrationTests, //vscodeApi, diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts index a565e3653c..4a0c2dc3ec 100644 --- a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts @@ -41,11 +41,7 @@ import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; import { promises as fsp } from "node:fs"; // import * as vscode from "vscode"; -import { - endToEndTestSetup, - /* endToEndTestSetup, */ sleepWithBackoff, -} from "../endToEndTestSetup"; -import { injectIde } from "@cursorless/cursorless-engine"; +import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; // import { commandApi } from "../singletons/cmdapi.singleton"; // import { takeSnapshot } from "@cursorless/cursorless-engine"; import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; @@ -90,7 +86,7 @@ function showSucceededTest(name: string) { } function showSummaryTests() { - console.warn(`Passed tests: ${successes}`); + console.warn(`Passed tests:\n${successes.join("\n")}`); for (const [name, error] of Object.entries(failures)) { console.warn("+".repeat(80)); showFailedTest(name, error); @@ -169,24 +165,9 @@ async function runTest( } // Uncomment below for debugging - // if (name === "recorded/selectionTypes/clearRowTwoPastFour") { - // console.warn(`runTest(${name}) => let's analyze it`); - // } - // if (name === "recorded/surroundingPair/changeInside") { + // if (name === "recorded/implicitExpansion/chuckBoundingThat") { // console.warn(`runTest(${name}) => let's analyze it`); // } - // Below are tests that should pass but fail for now - // if ( - // // name === "recorded/actions/breakJustThis" || - // name === "recorded/actions/breakJustThis2" || - // name === "recorded/actions/changeNextInstanceChar" || - // name === "recorded/actions/cloneToken" - // // name === "recorded/ordinalScopes/changeSecondTwoTokens" || - // // name === "recorded/surroundingPair/textual/clearBoundsRound" - // ) { - // console.warn(`runTest(${name}) => skipped as needs fixing`); - // return false; - // } console.warn( "------------------------------------------------------------------------------", @@ -198,11 +179,8 @@ async function runTest( const usePrePhraseSnapshot = false; const cursorlessApi = await getCursorlessApi(); - const { - hatTokenMap, - takeSnapshot /* , setStoredTarget */, - commandServerApi, - } = cursorlessApi.testHelpers!; + const { takeSnapshot, setStoredTarget, commandServerApi } = + cursorlessApi.testHelpers!; const editor = await openNewEditor(fixture.initialState.documentContents, { languageId: fixture.languageId, @@ -219,10 +197,10 @@ async function runTest( fixture.initialState.selections.map(createSelection), ); - // for (const storedTargetKey of storedTargetKeys) { - // const key = `${storedTargetKey}Mark` as const; - // setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); - // } + for (const storedTargetKey of storedTargetKeys) { + const key = `${storedTargetKey}Mark` as const; + setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); + } if (fixture.initialState.clipboard) { spyIde.clipboard.writeText(fixture.initialState.clipboard); From 5eefe747f7cc4bf0357c6ad57c6ba73842a81ab1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 11:22:36 +0100 Subject: [PATCH 163/504] fix: throw an error when using plaintext and the node doesn't exist to simulate what parse-tree is doing. Passed tests: 342 / 450 (failed: 108) --- .../modifiers/surroundingPair/index.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 14 ++++++++++++-- packages/cursorless-neovim/src/index.ts | 2 +- ...rded.vscode.test.ts => recorded.neovim.test.ts} | 0 4 files changed, 14 insertions(+), 4 deletions(-) rename packages/cursorless-neovim/src/suite/{recorded.vscode.test.ts => recorded.neovim.test.ts} (100%) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts index 162985b803..52898d6e88 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts @@ -178,5 +178,5 @@ function nodeHasError(node: SyntaxNode, includeChildren = false): boolean { } function nodeIsError(node: SyntaxNode): boolean { - return node === null || node.type === "ERROR"; + return node.type === "ERROR"; } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c277a321ed..b30984ca77 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -20,7 +20,7 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded.vscode.test"; +import { runRecordedTestCases } from "./suite/recorded.neovim.test"; import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; @@ -142,7 +142,7 @@ async function createNeovimIde(client: NeovimClient) { function createTreeSitter(): TreeSitter { return { getNodeAtLocation(document: TextDocument, range: Range) { - return null as unknown as SyntaxNode; + throw new UnsupportedLanguageError(document.languageId); }, getTree(document: TextDocument) { @@ -157,3 +157,13 @@ function createTreeSitter(): TreeSitter { }, }; } + +// https://github.com/cursorless-dev/vscode-parse-tree/blob/c0f1d024acca9ceace73bc0a0cd6106515303475/src/errors.ts#L1 +export class UnsupportedLanguageError extends Error { + constructor(language: string) { + super( + `Language '${language}' not supported by parse tree extension. See https://github.com/pokey/vscode-parse-tree#adding-a-new-language`, + ); + this.name = "UnsupportedLanguageError"; + } +} diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 60485c410a..f3afa928f4 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,7 +1,7 @@ import { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { handleCommandInternal } from "./registerCommands"; -import { runRecordedTestCases } from "./suite/recorded.vscode.test"; +import { runRecordedTestCases } from "./suite/recorded.neovim.test"; /** * Extension entrypoint called by node-client on Neovim startup. diff --git a/packages/cursorless-neovim/src/suite/recorded.vscode.test.ts b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts similarity index 100% rename from packages/cursorless-neovim/src/suite/recorded.vscode.test.ts rename to packages/cursorless-neovim/src/suite/recorded.neovim.test.ts From b9b2f5454118aa176d4299022cd16824325d55a9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 11:23:52 +0100 Subject: [PATCH 164/504] refactor: how we run the "remove" command in order to prepare for better support for nvim. Passed tests: 342 / 450 (failed: 108) --- .../cursorless-engine/src/actions/Remove.ts | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index aeaf93d620..bd6669bab7 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -1,4 +1,4 @@ -import { FlashStyle } from "@cursorless/common"; +import { FlashStyle, TextEditor } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; @@ -12,6 +12,7 @@ import { SimpleAction, ActionReturnValue } from "./actions.types"; export default class Delete implements SimpleAction { constructor(private rangeUpdater: RangeUpdater) { this.run = this.run.bind(this); + this.runForEditor = this.runForEditor.bind(this); } async run( @@ -28,28 +29,30 @@ export default class Delete implements SimpleAction { } const thatTargets = flatten( - await runOnTargetsForEachEditor(targets, async (editor, targets) => { - const edits = targets.map((target) => target.constructRemovalEdit()); - const ranges = edits.map((edit) => edit.range); - - const [updatedRanges] = await performEditsAndUpdateRanges( - this.rangeUpdater, - ide().getEditableTextEditor(editor), - edits, - [ranges], - ); - - return zip(targets, updatedRanges).map( - ([target, range]) => - new RawSelectionTarget({ - editor: target!.editor, - isReversed: target!.isReversed, - contentRange: range!, - }), - ); - }), + await runOnTargetsForEachEditor(targets, this.runForEditor), ); return { thatTargets }; } + + private async runForEditor(editor: TextEditor, targets: Target[]) { + const edits = targets.map((target) => target.constructRemovalEdit()); + const ranges = edits.map((edit) => edit.range); + + const [updatedRanges] = await performEditsAndUpdateRanges( + this.rangeUpdater, + ide().getEditableTextEditor(editor), + edits, + [ranges], + ); + + return zip(targets, updatedRanges).map( + ([target, range]) => + new RawSelectionTarget({ + editor: target!.editor, + isReversed: target!.isReversed, + contentRange: range!, + }), + ); + } } From 19d78e7de89a3f7ab108283fbd7fc701348f88b8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 11:26:39 +0100 Subject: [PATCH 165/504] refactor: comment the console logging in the text editor for now --- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 469038cb99..116b942a71 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -32,16 +32,16 @@ export class NeovimTextDocumentImpl implements TextDocument { } get lineCount(): number { - console.warn(`lineCount(): ${this._lineCount}`); + // console.warn(`lineCount(): ${this._lineCount}`); return this._lineCount; } get range(): Range { const { end } = this.lineAt(this.lineCount - 1).range; const range = new Range(0, 0, end.line, end.character); - console.warn( - `range(): (${range.start.line},${range.start.character}),(${range.end.line},${range.end.character})`, - ); + // console.warn( + // `range(): (${range.start.line},${range.start.character}),(${range.end.line},${range.end.character})`, + // ); return range; } @@ -131,39 +131,39 @@ export class NeovimTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { - console.warn(`getText(all)`); + // console.warn(`getText(all)`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } - if (this._lines.length > 10) { - console.warn( - `getText() returning multiple lines: '${this._lines.slice(0, 10).join(this._eol)}' \n[stripped...]}`, - ); - } else { - console.warn( - `getText() returning multiple lines: '${this._cachedTextValue}'`, - ); - } + // if (this._lines.length > 10) { + // console.warn( + // `getText() returning multiple lines: '${this._lines.slice(0, 10).join(this._eol)}' \n[stripped...]}`, + // ); + // } else { + // console.warn( + // `getText() returning multiple lines: '${this._cachedTextValue}'`, + // ); + // } return this._cachedTextValue; } else { - console.warn( - `getText(range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character}))`, - ); + // console.warn( + // `getText(range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character}))`, + // ); } range = this._validateRange(range); if (range.isEmpty) { - console.warn(`getText() returning empty`); + // console.warn(`getText() returning empty`); return ""; } if (range.isSingleLine) { - console.warn( - `getText() returning single line '${this._lines[ - range.start.line - ].substring(range.start.character, range.end.character)}'`, - ); + // console.warn( + // `getText() returning single line '${this._lines[ + // range.start.line + // ].substring(range.start.character, range.end.character)}'`, + // ); return this._lines[range.start.line].substring( range.start.character, range.end.character, @@ -184,15 +184,15 @@ export class NeovimTextDocumentImpl implements TextDocument { resultLines.push( this._lines[endLineIndex].substring(0, range.end.character), ); - if (resultLines.length > 10) { - console.warn( - `getText() returning multiple lines: '${resultLines.slice(0, 10).join(lineEnding)}' \n[stripped...]}`, - ); - } else { - console.warn( - `getText() returning multiple lines: '${resultLines.join(lineEnding)}'`, - ); - } + // if (resultLines.length > 10) { + // console.warn( + // `getText() returning multiple lines: '${resultLines.slice(0, 10).join(lineEnding)}' \n[stripped...]}`, + // ); + // } else { + // console.warn( + // `getText() returning multiple lines: '${resultLines.join(lineEnding)}'`, + // ); + // } return resultLines.join(lineEnding); } From a99d76ee667851ae0794e26e6c37802f812dbb80 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 11:27:09 +0100 Subject: [PATCH 166/504] refactor: more logging commented --- .../cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts index 31c5e9d716..a223a708d3 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts @@ -6,9 +6,9 @@ export default class NeovimTextLineImpl implements TextLine { private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { - console.warn( - `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}`, - ); + // console.warn( + // `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}`, + // ); this._lineNumber = lineNumber; this._text = text; this._isLastLine = isLastLine; From 113496d9a41f4e94188b08942272dc9a0b57fb5a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 11:29:34 +0100 Subject: [PATCH 167/504] refactor: minor comment fixed --- .../src/ide/neovim/NeovimTextEditorImpl.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 147f96e032..519cf502a9 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -67,12 +67,10 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } async setSelections(selections: Selection[]): Promise { - // We assume setting it on the neovim never fails - // as we cache the selections in the editor too + // We assume setting it on the neovim buffer never fails + // as we cache the selections in the editor beforehand this._selections = selections; await bufferSetSelections(neovimClient(), selections); - // console.warn(`setSelections() done`); - // throw Error("set selections Not implemented"); } get options(): TextEditorOptions { From e52f8a1936934bca337fbbc422bdbbcee374ddbc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 13:39:33 +0100 Subject: [PATCH 168/504] refactor: temporary comments --- packages/common/src/types/RangeExpansionBehavior.ts | 2 +- packages/cursorless-engine/src/actions/Remove.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/common/src/types/RangeExpansionBehavior.ts b/packages/common/src/types/RangeExpansionBehavior.ts index 5a82df4fa0..2912ff9683 100644 --- a/packages/common/src/types/RangeExpansionBehavior.ts +++ b/packages/common/src/types/RangeExpansionBehavior.ts @@ -7,7 +7,7 @@ export enum RangeExpansionBehavior { */ openOpen = 0, /** - * The decoration's range will not widen when edits occur at the start of end. + * The decoration's range will not widen when edits occur at the start or end. */ closedClosed = 1, /** diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index bd6669bab7..ac79d21610 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -36,9 +36,15 @@ export default class Delete implements SimpleAction { } private async runForEditor(editor: TextEditor, targets: Target[]) { + // range: 0:5-0:7, text: "", updateRange: updateRange + // [what range to remove] const edits = targets.map((target) => target.constructRemovalEdit()); + // range: 0:5-0:7 + // [what range to remove] const ranges = edits.map((edit) => edit.range); + // range: 0:5-0:5 + // [location of the range that was removed] const [updatedRanges] = await performEditsAndUpdateRanges( this.rangeUpdater, ide().getEditableTextEditor(editor), From 3c813b98fb91455e155ae112a8dfa52b76b8051e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 13:52:45 +0100 Subject: [PATCH 169/504] refactor: additional temporary comments --- packages/cursorless-engine/src/actions/Remove.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index ac79d21610..d650964a9f 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -52,6 +52,8 @@ export default class Delete implements SimpleAction { [ranges], ); + // range: 0:5-0:5? + // [the "that" range empty position where text was removed] return zip(targets, updatedRanges).map( ([target, range]) => new RawSelectionTarget({ From b8841eb66c7722688b3501705c4f1cc679ebc8fa Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 15:55:12 +0100 Subject: [PATCH 170/504] feat: support selection in the "remove" action. Passed tests: 356 / 450 (failed: 94) (NOTE: 2 tests that used to pass are now broken so will need to investigate why). recorded/implicitExpansion/chuckCoreThat recorded/implicitExpansion/chuckLeadingThat --- .../cursorless-engine/src/actions/Remove.ts | 62 +++++++++++++++---- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index d650964a9f..a55976c050 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -1,13 +1,26 @@ -import { FlashStyle, TextEditor } from "@cursorless/common"; +import { + FlashStyle, + RangeExpansionBehavior, + Selection, + TextEditor, +} from "@cursorless/common"; import { flatten, zip } from "lodash"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; +import { + performEditsAndUpdateRanges, + performEditsAndUpdateSelectionsWithBehavior, +} from "../core/updateSelections/updateSelections"; import { RawSelectionTarget } from "../processTargets/targets"; import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; +import { + createThatMark, + flashTargets, + runOnTargetsForEachEditor, +} from "../util/targetUtils"; import { unifyRemovalTargets } from "../util/unifyRanges"; import { SimpleAction, ActionReturnValue } from "./actions.types"; +import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; export default class Delete implements SimpleAction { constructor(private rangeUpdater: RangeUpdater) { @@ -39,22 +52,47 @@ export default class Delete implements SimpleAction { // range: 0:5-0:7, text: "", updateRange: updateRange // [what range to remove] const edits = targets.map((target) => target.constructRemovalEdit()); - // range: 0:5-0:7 - // [what range to remove] - const ranges = edits.map((edit) => edit.range); - // range: 0:5-0:5 - // [location of the range that was removed] - const [updatedRanges] = await performEditsAndUpdateRanges( + // anchor: 0:4 => active: 0:9 + // [original cursor selection was "world" token] + const cursorSelections = { selections: editor.selections }; + // anchor: 0:5 => active: 0:7 [what range to remove] + const editSelections = { + selections: edits.map( + ({ range }) => new Selection(range.start, range.end), + ), + rangeBehavior: RangeExpansionBehavior.closedClosed, + }; + + const editableEditor = ide().getEditableTextEditor(editor); + + const [ + // anchor: 0:4 => active: 0:7 + // [new cursor selection is "wld"] + updatedEditorSelections, + // anchor: 0:5 => active: 0:5 [to be used for the "source" mark for the next command] + updatedEditSelections, + ]: Selection[][] = await performEditsAndUpdateSelectionsWithBehavior( this.rangeUpdater, - ide().getEditableTextEditor(editor), + editableEditor, edits, - [ranges], + [cursorSelections, editSelections], ); // range: 0:5-0:5? // [the "that" range empty position where text was removed] - return zip(targets, updatedRanges).map( + // const deletionRanges = zip(edits, updatedEditSelections).map( + // ([edit, selection]) => edit!.updateRange(selection!), + // ); + + // update the selections in the editor + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedEditorSelections, + ); + + // return createThatMark(targets, updatedEditSelections); + return zip(targets, updatedEditSelections).map( ([target, range]) => new RawSelectionTarget({ editor: target!.editor, From 1ccb908c67d99a40255caea6d302721411f56ed0 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 15:56:51 +0100 Subject: [PATCH 171/504] refactor: delete old comments --- .../cursorless-engine/src/actions/Remove.ts | 43 ++++--------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index a55976c050..7f3fff4a66 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -6,18 +6,11 @@ import { } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import { - performEditsAndUpdateRanges, - performEditsAndUpdateSelectionsWithBehavior, -} from "../core/updateSelections/updateSelections"; +import { performEditsAndUpdateSelectionsWithBehavior } from "../core/updateSelections/updateSelections"; import { RawSelectionTarget } from "../processTargets/targets"; import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { - createThatMark, - flashTargets, - runOnTargetsForEachEditor, -} from "../util/targetUtils"; +import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; import { unifyRemovalTargets } from "../util/unifyRanges"; import { SimpleAction, ActionReturnValue } from "./actions.types"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; @@ -49,14 +42,9 @@ export default class Delete implements SimpleAction { } private async runForEditor(editor: TextEditor, targets: Target[]) { - // range: 0:5-0:7, text: "", updateRange: updateRange - // [what range to remove] const edits = targets.map((target) => target.constructRemovalEdit()); - // anchor: 0:4 => active: 0:9 - // [original cursor selection was "world" token] const cursorSelections = { selections: editor.selections }; - // anchor: 0:5 => active: 0:7 [what range to remove] const editSelections = { selections: edits.map( ({ range }) => new Selection(range.start, range.end), @@ -66,32 +54,19 @@ export default class Delete implements SimpleAction { const editableEditor = ide().getEditableTextEditor(editor); - const [ - // anchor: 0:4 => active: 0:7 - // [new cursor selection is "wld"] - updatedEditorSelections, - // anchor: 0:5 => active: 0:5 [to be used for the "source" mark for the next command] - updatedEditSelections, - ]: Selection[][] = await performEditsAndUpdateSelectionsWithBehavior( - this.rangeUpdater, - editableEditor, - edits, - [cursorSelections, editSelections], - ); - - // range: 0:5-0:5? - // [the "that" range empty position where text was removed] - // const deletionRanges = zip(edits, updatedEditSelections).map( - // ([edit, selection]) => edit!.updateRange(selection!), - // ); + const [updatedEditorSelections, updatedEditSelections]: Selection[][] = + await performEditsAndUpdateSelectionsWithBehavior( + this.rangeUpdater, + editableEditor, + edits, + [cursorSelections, editSelections], + ); - // update the selections in the editor await setSelectionsWithoutFocusingEditor( editableEditor, updatedEditorSelections, ); - // return createThatMark(targets, updatedEditSelections); return zip(targets, updatedEditSelections).map( ([target, range]) => new RawSelectionTarget({ From c9c91a50a85e7fee0cf4e86c346a9454b25baf23 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 15:57:44 +0100 Subject: [PATCH 172/504] docs: todo --- packages/cursorless-neovim/TODO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 93fe2ca144..863e5e7d07 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -10,6 +10,7 @@ # to do +- chuck first paint row two and third paint row two - scout text command in any mode - find a way to load nvim.exe in the background as part of launch.json/tasks.json to load neovim so we can attach to it with debugger - hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log From c5ecaf6862fb76904a5c01875f7608b9a623574a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 16:17:27 +0100 Subject: [PATCH 173/504] refactor: use simpler APIs as requested --- .../cursorless-engine/src/actions/Remove.ts | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/cursorless-engine/src/actions/Remove.ts index 7f3fff4a66..eac214b2e0 100644 --- a/packages/cursorless-engine/src/actions/Remove.ts +++ b/packages/cursorless-engine/src/actions/Remove.ts @@ -1,12 +1,7 @@ -import { - FlashStyle, - RangeExpansionBehavior, - Selection, - TextEditor, -} from "@cursorless/common"; +import { FlashStyle, Selection, TextEditor } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import { performEditsAndUpdateSelectionsWithBehavior } from "../core/updateSelections/updateSelections"; +import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections"; import { RawSelectionTarget } from "../processTargets/targets"; import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; @@ -44,18 +39,14 @@ export default class Delete implements SimpleAction { private async runForEditor(editor: TextEditor, targets: Target[]) { const edits = targets.map((target) => target.constructRemovalEdit()); - const cursorSelections = { selections: editor.selections }; - const editSelections = { - selections: edits.map( - ({ range }) => new Selection(range.start, range.end), - ), - rangeBehavior: RangeExpansionBehavior.closedClosed, - }; - + const cursorSelections = editor.selections; + const editSelections = edits.map( + ({ range }) => new Selection(range.start, range.end), + ); const editableEditor = ide().getEditableTextEditor(editor); const [updatedEditorSelections, updatedEditSelections]: Selection[][] = - await performEditsAndUpdateSelectionsWithBehavior( + await performEditsAndUpdateSelections( this.rangeUpdater, editableEditor, edits, From 162d89cb550d5e560695486574b44fa28e1ea0bb Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 15:28:45 +0000 Subject: [PATCH 174/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/endToEndTestSetup.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts | 5 ----- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 2 -- packages/cursorless-neovim/src/registerCommands.ts | 2 +- 5 files changed, 3 insertions(+), 10 deletions(-) diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts index 2b80f8cc9a..b7caccdba4 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -1,4 +1,4 @@ -import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; +import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; /** diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index b30984ca77..bbee373c75 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -15,7 +15,7 @@ import * as path from "path"; import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { Language, SyntaxNode, Tree } from "web-tree-sitter"; +import { Language, Tree } from "web-tree-sitter"; import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts index 0a7b4f9be2..25c9a904d1 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts @@ -1,19 +1,14 @@ import { Disposable, - NormalizedIDE, Position, Range, - SpyIDE, TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, - TextEditor, } from "@cursorless/common"; import { Buffer } from "neovim"; import { eventEmitter } from "../../events"; -import { NeovimIDE } from "./NeovimIDE"; -import { ide } from "@cursorless/cursorless-engine"; import { getNeovimIDE } from "../../neovimHelpers"; export function neovimOnDidChangeTextDocument( diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index bdb067a3fe..26db5ecd75 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -35,11 +35,9 @@ import path from "path"; import { neovimOnDidChangeTextDocument, neovimOnDidOpenTextDocument, - receivedBufferEvent, } from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; import { URI } from "vscode-uri"; -import { eventEmitter } from "../../events"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 7b0294eaf1..424bd5255d 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,6 +1,6 @@ import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; -import { subscribeBufferUpdates, updateTextEditor } from "./neovimHelpers"; +import { updateTextEditor } from "./neovimHelpers"; /** * Handle the command received from the command-server Neovim extension From a7b4ec63fb650bbcb8fb6a57dd6eac9812f0937e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 20:05:26 +0100 Subject: [PATCH 175/504] fix: bug in neovimDelete() when handling multiple lines to make sure we merge first and last line. Passed tests: 366 / 450 (failed: 84) --- packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 55594d8b45..3fe7f54163 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -113,8 +113,8 @@ async function neovimDelete(range: Range): Promise { const startOfFirstLine = firstLine.slice(0, range.start.character); // are we not including the newline at the end of the first line? - if (range.start.character === firstLine.length) { - // if we are deleting from the end of the first line, we need to append the last line to the first line + if (range.start.character <= firstLine.length) { + // if we are deleting from before the end of the first line, we need to append the last line to the first line await buffer.setLines(startOfFirstLine + endOfLastLine, { start: range.start.line, end: range.end.line + 1, From 40683f329b9c98d93cc7d1a861e7fcff58270627 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 20:47:31 +0100 Subject: [PATCH 176/504] refactor: show neovim range when getting selection --- packages/cursorless-neovim/src/neovimApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index 7e08eb1268..ba9705109d 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -43,7 +43,7 @@ export async function bufferGetSelections( } console.warn( - `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character})`, + `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character}) neovim=(${startLine},${startCol}),(${endLine},${endCol}),reverse=${reverse}`, ); return selections; } From ad19ed2f32c901d81de3ee5b66345a718dc0ae0f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 5 Apr 2024 20:48:33 +0100 Subject: [PATCH 177/504] refactor: hide tests in summary that we don't want to fix yet --- .../cursorless-neovim/src/suite/recorded.neovim.test.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts index 4a0c2dc3ec..f825f09cdf 100644 --- a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts @@ -85,9 +85,16 @@ function showSucceededTest(name: string) { console.warn(`Passed test: ${name} \\o/`); } +// Hiding some failures that we don't know how to fix yet +// @see https://github.com/cursorless-dev/cursorless/issues/2281 +const failuresNotShown = ["recorded/marks/chuckNothing"]; + function showSummaryTests() { console.warn(`Passed tests:\n${successes.join("\n")}`); for (const [name, error] of Object.entries(failures)) { + if (failuresNotShown.includes(name)) { + continue; + } console.warn("+".repeat(80)); showFailedTest(name, error); } From 71b86fdaba9e988f77c53ed032097a9289e2f55f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 6 Apr 2024 09:22:18 +0100 Subject: [PATCH 178/504] fix: edits need to be sorted in the increasing numbers for insert/replace but in decreasing numbers for delete. --- .../src/ide/neovim/NeovimEdit.ts | 47 +++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 3fe7f54163..44fa8725f2 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -14,17 +14,42 @@ export default async function neovimEdit( window: Window, edits: Edit[], ): Promise { - // We start applying the edits from the end of the document - // to make sure the edit ranges for the remaining one are stable - edits.reverse(); + console.warn("neovimEdit() [unsorted]:"); + for (const edit of edits) { + console.warn( + `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, + ); + } + edits.sort((a, b) => { + // console.warn( + // `a=${JSON.stringify(a.range)}, text='${a.text}', isReplace=${a.isReplace}`, + // ); + // console.warn( + // `b=${JSON.stringify(b.range)}, text='${b.text}', isReplace=${b.isReplace}`, + // ); + // We apply the insert/replace edits from the start of the document + // as a later one assume the previous ones have already been applied + if ((isInsert(a) || isReplace(a)) && (isInsert(b) || isReplace(b))) { + // console.warn("a is insert/replace and b is insert/replace"); + return 1; + } + // We apply the delete edits from the end of the document + // to make sure the edit ranges for the remaining ones are stable if (a.range.start.line === b.range.start.line) { + // console.warn("a and b are on the same line"); return b.range.start.character - a.range.start.character; } + // console.warn("a and b are on different lines"); return b.range.start.line - a.range.start.line; }); - // TODO: notify here bulking all changes? + console.warn("neovimEdit() [sorted]:"); + for (const edit of edits) { + console.warn( + `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, + ); + } const client = neovimClient(); const document = getNeovimIDE().getTextDocument( await client.window.buffer, @@ -183,3 +208,17 @@ async function neovimReplace(range: Range, text: string) { await neovimDelete(range); await neovimInsert(range.start, text); } + +function isDelete(edit: Edit): boolean { + return edit.text === ""; +} + +function isInsert(edit: Edit): boolean { + return edit.range.isEmpty && !edit.isReplace; +} + +function isReplace(edit: Edit): boolean { + return ( + edit.text !== "" && (!edit.range.isEmpty || edit.isReplace ? true : false) + ); +} From c94f1e617b5aa757f5528bf456d7b70099bf2875 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 8 Apr 2024 17:27:47 +0100 Subject: [PATCH 179/504] refactor: disable tests for now so I can use neovim --- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index bbee373c75..2910c47dcd 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -110,7 +110,7 @@ export async function activate(plugin: NvimPlugin) { // WHEN USING TESTS, CHANGE neovimIDE.runMode = "test" in NeovimIDE.ts console.warn("activate(): running the recorded test cases..."); await runRecordedTestCases(); - console.warn("activate(): recorded test cases done"); + // console.warn("activate(): recorded test cases done"); // COMMENT ME END // WHEN NOT USING TESTS, CHANGE neovimIDE.runMode = "development" in NeovimIDE.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index 26db5ecd75..f4469524eb 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -54,8 +54,8 @@ export class NeovimIDE implements IDE { // TODO: how can we support changing the runMode dynamically? // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode // runMode: RunMode = "production"; // use for end user - // runMode: RunMode = "development"; // use to enable debug logs - runMode: RunMode = "test"; // used for fixture tests + runMode: RunMode = "development"; // use to enable debug logs + // runMode: RunMode = "test"; // used for fixture tests workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; From 7215390957ff13becabb02660dc59d37f7eb4d72 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 8 Apr 2024 17:30:02 +0100 Subject: [PATCH 180/504] refactor: disable tests missed in previous commit --- packages/cursorless-neovim/src/extension.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 2910c47dcd..374dc24345 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -108,8 +108,8 @@ export async function activate(plugin: NvimPlugin) { // COMMENT ME IF YOU DON'T WANT TO RUN TESTS // WHEN USING TESTS, CHANGE neovimIDE.runMode = "test" in NeovimIDE.ts - console.warn("activate(): running the recorded test cases..."); - await runRecordedTestCases(); + // console.warn("activate(): running the recorded test cases..."); + // await runRecordedTestCases(); // console.warn("activate(): recorded test cases done"); // COMMENT ME END From 447be5f2b21839e7006d6723184b58bebdc2195f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 8 Apr 2024 17:31:57 +0100 Subject: [PATCH 181/504] feat: automatically switch to terminal mode when a "bring" command is used and user is in a terminal so we can leverage fallback method --- .../src/NeovimCommandServerApi.ts | 4 +-- packages/cursorless-neovim/src/extension.ts | 2 ++ packages/cursorless-neovim/src/neovimApi.ts | 20 +++++++++++ .../cursorless-neovim/src/registerCommands.ts | 34 +++++++++++++++++-- .../src/singletons/cmdsrvapi.singleton.ts | 32 +++++++++++++++++ 5 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts index 6252866941..77d6efa95d 100644 --- a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts +++ b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts @@ -13,8 +13,8 @@ export class NeovimCommandServerApi implements CommandServerApi { } async getFocusedElementType(): Promise { - const current_mode = await this.client.mode; - if (current_mode.mode === "t" || current_mode.mode === "nt") { + const currentMode = await this.client.mode; + if (currentMode.mode === "t" || currentMode.mode === "nt") { return "terminal"; } else { return "textEditor"; diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 374dc24345..f05625c2ba 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -25,6 +25,7 @@ import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; import { updateTextEditor } from "./neovimHelpers"; +import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -58,6 +59,7 @@ export async function activate(plugin: NvimPlugin) { neovimIDE.runMode === "test" ? fakeCommandServerApi : neovimCommandServerApi; + injectCommandServerApi(commandServerApi); const treeSitter: TreeSitter = createTreeSitter(); diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/cursorless-neovim/src/neovimApi.ts index ba9705109d..18584e6500 100644 --- a/packages/cursorless-neovim/src/neovimApi.ts +++ b/packages/cursorless-neovim/src/neovimApi.ts @@ -125,3 +125,23 @@ export async function putToClipboard(data: string, client: NeovimClient) { export async function getFromClipboard(client: NeovimClient): Promise { return await client.callFunction("getreg", ["*"]); } + +/** + * Switch from terminal (t) mode to normal terminal (nt) mode + * @param client + */ +export async function modeSwitchNormalTerminal( + client: NeovimClient, +): Promise { + const luaCode = `return require("talon.utils").mode_switch_nt()`; + await client.executeLua(luaCode, []); +} + +/** + * Switch from normal terminal (nt) mode to terminal (t) mode + * @param client + */ +export async function modeSwitchTerminal(client: NeovimClient): Promise { + const luaCode = `return require("talon.utils").mode_switch_t()`; + await client.executeLua(luaCode, []); +} diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 424bd5255d..f76cc01c7d 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,6 +1,14 @@ -import { CURSORLESS_COMMAND_ID, CursorlessCommandId } from "@cursorless/common"; +import { + CURSORLESS_COMMAND_ID, + CommandLatest, + CursorlessCommandId, +} from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; import { updateTextEditor } from "./neovimHelpers"; +import { neovimClient } from "./singletons/client.singleton"; +import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; +import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; /** * Handle the command received from the command-server Neovim extension @@ -17,12 +25,32 @@ export function handleCommandInternal(...allArguments: any[]): Promise { const commands: Record any> = { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { + const client = await neovimClient(); + const originalMode = await client.mode; + if (originalMode.mode === "t") { + // Switch to "nt" so we can easily call lua functions without any problems + modeSwitchNormalTerminal(client); + } + // try { + await updateTextEditor(); - // await subscribeBufferUpdates(); const result = await commandApi().runCommandSafe(...args); - // const result = ["hello world"]; // simulate the result of "bring " + + const command = ensureCommandShape(args) as CommandLatest; + const cmdSrvApi = commandServerApi(); + const focusedElementType = await cmdSrvApi.getFocusedElementType(); + if ( + focusedElementType === "terminal" && + command.action.name === "replaceWithTarget" + ) { + // if user runs a terminal, and a "bring" command was requested, switch back to "t" mode + // so the fallback can do its magic + modeSwitchTerminal(client); + } + return result; + // TODO: use neovimIDE.runMode === "test" instead of isTesting() // } catch (e) { // // if (!isTesting()) { diff --git a/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts new file mode 100644 index 0000000000..ddf36eb621 --- /dev/null +++ b/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts @@ -0,0 +1,32 @@ +import { CommandServerApi } from "@cursorless/common"; + +/** + * This is the `cmdsrvapi` singleton + */ +let cmdsrvapi_: CommandServerApi | undefined; + +/** + * Injects an {@link CommandServerApi} object that can be used to access CommandServer APIs. + * This function should only be called from a select few places, eg extension + * activation or when mocking a test. + * @param cmdsrvapi The CommandServerApi to inject + */ +export function injectCommandServerApi( + cmdsrvapi: CommandServerApi | undefined, +) { + cmdsrvapi_ = cmdsrvapi; +} + +/** + * Gets the singleton used to access CommandServer APIs. + * @throws Error if the cmdsrvapi hasn't been injected yet. Can avoid this by + * constructing your objects lazily + * @returns The cmdsrvapi object + */ +export function commandServerApi(): CommandServerApi { + if (cmdsrvapi_ == null) { + throw Error("Tried to access commandServerApi before it was injected"); + } + + return cmdsrvapi_; +} From 7e287260189416722e5b076d7046416afc3c6f4e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:33:51 +0000 Subject: [PATCH 182/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/extension.ts | 1 - packages/cursorless-neovim/src/registerCommands.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index f05625c2ba..c546c1330e 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -20,7 +20,6 @@ import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded.neovim.test"; import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index f76cc01c7d..1a41222bc8 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -7,7 +7,7 @@ import { commandApi } from "./singletons/cmdapi.singleton"; import { updateTextEditor } from "./neovimHelpers"; import { neovimClient } from "./singletons/client.singleton"; import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; -import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { ensureCommandShape } from "@cursorless/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; /** From e1ce6c2d8e6b26bda25157bb26fb97f5bd9b6eb0 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 9 Apr 2024 14:49:59 +0100 Subject: [PATCH 183/504] fix: make sure to update lineCount in the TextDocument when we update it. --- .../cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index 116b942a71..ed2115b53e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -59,10 +59,10 @@ export class NeovimTextDocumentImpl implements TextDocument { this._uri = uri; this._languageId = languageId; this._version = version; - this._lineCount = lines.length; this._eol = eol; this._lines = lines; + this._lineCount = lines.length; this._lineStarts = null; this._cachedTextValue = null; } @@ -70,6 +70,7 @@ export class NeovimTextDocumentImpl implements TextDocument { public update(lines: string[]) { this._lines = lines; + this._lineCount = lines.length; this._lineStarts = null; this._cachedTextValue = null; } From b7b8f89b3f55aefb1e2611d734eb4e7493162394 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 9 Apr 2024 14:51:17 +0100 Subject: [PATCH 184/504] refactor: print partial document as terminal buffers can be huge --- packages/cursorless-neovim/src/neovimHelpers.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 0af098947b..78237c1b6b 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -47,8 +47,12 @@ export async function updateTextEditor(): Promise { const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; + let linesShown = lines; + if (lines.length >= 30) { + linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); + } console.warn( - `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(lines)}`, + `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, ); const selections = await bufferGetSelections(window, client); const visibleRanges = await windowGetVisibleRanges(window, client, lines); From 54e7e61c2458749a6639a706e4a0b17a14fc8d16 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 12:31:15 +0100 Subject: [PATCH 185/504] build: run neovim as part of vscode task and working started node (remaining bug: nvim.exe is detected as part of vscode terminal instead of external nvim so can't use) --- .vscode/tasks.json | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index f8d43357b0..d05497bf43 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -18,7 +18,7 @@ }, { "label": "Build neovim extension only", - "dependsOn": ["ESBuild-cursorless-neovim"], + "dependsOn": ["neovim start", "ESBuild-cursorless-neovim"], "group": "build" }, { @@ -52,6 +52,25 @@ }, "group": "build" }, + { + "label": "neovim start", + "type": "shell", + "command": "\"C:\\Program Files\\Neovim\\bin\\nvim.exe\"", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": "build", + "options": { + "env": { + "CURSORLESS_REPO_ROOT": "${workspaceFolder}", + "NVIM_NODE_HOST_DEBUG": "1", + "NVIM_NODE_LOG_FILE": "C:\\work\\tools\\voicecoding\\neovim\\logs\\nvim_node.log", + "NVIM_NODE_LOG_LEVEL": "info", + "CURSORLESS_MODE": "development" + } + } + }, { "label": "Build extension only", "dependsOn": ["Populate dist", "ESBuild"], From 78bcc5afaee19ac6505a05a9acc39dad12372ac6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 14:44:42 +0100 Subject: [PATCH 186/504] build: workable debugging of external neovim --- .vscode/tasks.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d05497bf43..fa2535fce7 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -55,17 +55,16 @@ { "label": "neovim start", "type": "shell", - "command": "\"C:\\Program Files\\Neovim\\bin\\nvim.exe\"", - "isBackground": true, - "presentation": { - "reveal": "never" - }, + "windows": { "command": "powershell" }, + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"nvim\"\"\", 1, $false)" + ], "group": "build", "options": { "env": { "CURSORLESS_REPO_ROOT": "${workspaceFolder}", "NVIM_NODE_HOST_DEBUG": "1", - "NVIM_NODE_LOG_FILE": "C:\\work\\tools\\voicecoding\\neovim\\logs\\nvim_node.log", + "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log", "NVIM_NODE_LOG_LEVEL": "info", "CURSORLESS_MODE": "development" } From b7e06049dd5aa50d2a6719fe7d950b3eb309394c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 14:59:04 +0100 Subject: [PATCH 187/504] build: support showing neovim node debug logs in newly opened window --- .vscode/tasks.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fa2535fce7..0da6ebbd6d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -18,7 +18,7 @@ }, { "label": "Build neovim extension only", - "dependsOn": ["neovim start", "ESBuild-cursorless-neovim"], + "dependsOn": ["neovim start", "neovim logs", "ESBuild-cursorless-neovim"], "group": "build" }, { @@ -52,6 +52,15 @@ }, "group": "build" }, + { + "label": "neovim logs", + "type": "shell", + "windows": { "command": "powershell" }, + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" + ], + "group": "build" + }, { "label": "neovim start", "type": "shell", From 5a57db42c6a45874d075de79917f6aa6906292d6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:00:09 +0100 Subject: [PATCH 188/504] feat: support neovimIDE.runMode based on env variable --- .../src/ide/neovim/NeovimIDE.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index f4469524eb..d283d45d8a 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -54,8 +54,8 @@ export class NeovimIDE implements IDE { // TODO: how can we support changing the runMode dynamically? // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode // runMode: RunMode = "production"; // use for end user - runMode: RunMode = "development"; // use to enable debug logs - // runMode: RunMode = "test"; // used for fixture tests + // runMode: RunMode = "development"; // use to enable debug logs CURSORLESS_MODE=development + // runMode: RunMode = "test"; // used for fixture tests CURSORLESS_MODE=test workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; @@ -93,6 +93,22 @@ export class NeovimIDE implements IDE { ); } + get runMode(): RunMode { + const runMode = process.env.CURSORLESS_MODE; + const ret = + runMode == null + ? "production" + : runMode === "test" + ? "test" + : runMode == "development" + ? "development" + : "unknown"; + if (ret === "unknown") { + throw Error("Invalid runMode"); + } + return ret; + } + async showQuickPick( _items: readonly string[], _options?: QuickPickOptions, From 4ce846dd29272c0786b2ea5b343698944ed0e85a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:05:46 +0100 Subject: [PATCH 189/504] build: refactor of neovim debugging task --- .vscode/tasks.json | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 0da6ebbd6d..e7d29c3d2a 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -22,31 +22,31 @@ "group": "build" }, { - "label": "ESBuild-common", + "label": "ESBuild-cursorless-neovim", "type": "npm", "script": "compile", - "path": "packages/common", + "path": "packages/cursorless-neovim", + "dependsOn": ["ESBuild-common", "ESBuild-cursorless-engine"], "presentation": { "reveal": "silent" }, "group": "build" }, { - "label": "ESBuild-cursorless-engine", + "label": "ESBuild-common", "type": "npm", "script": "compile", - "path": "packages/cursorless-engine", + "path": "packages/common", "presentation": { "reveal": "silent" }, "group": "build" }, { - "label": "ESBuild-cursorless-neovim", + "label": "ESBuild-cursorless-engine", "type": "npm", "script": "compile", - "path": "packages/cursorless-neovim", - "dependsOn": ["ESBuild-common", "ESBuild-cursorless-engine"], + "path": "packages/cursorless-engine", "presentation": { "reveal": "silent" }, @@ -55,19 +55,23 @@ { "label": "neovim logs", "type": "shell", - "windows": { "command": "powershell" }, - "args": [ - "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" - ], + "windows": { + "command": "powershell", + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" + ] + }, "group": "build" }, { "label": "neovim start", "type": "shell", - "windows": { "command": "powershell" }, - "args": [ - "(New-Object -ComObject WScript.Shell).Run(\"\"\"nvim\"\"\", 1, $false)" - ], + "windows": { + "command": "powershell", + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"nvim\"\"\", 1, $false)" + ] + }, "group": "build", "options": { "env": { From 3a36e843c32617903344a18f1db5d261e2f878b3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:11:03 +0100 Subject: [PATCH 190/504] build: vscode launch config to run tests --- .vscode/launch.json | 8 +++++++ .vscode/tasks.json | 25 +++++++++++++++++++++ packages/cursorless-neovim/src/extension.ts | 14 +++++------- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index ec66d9f403..ebed7c7b10 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,6 +13,14 @@ "preLaunchTask": "Build neovim extension only", "type": "node" }, + { + "name": "Run neovim extension tests", + "request": "attach", + "processName": "node.exe", + "skipFiles": ["/**"], + "preLaunchTask": "Build neovim extension tests only", + "type": "node" + }, { "name": "Run extension", "type": "extensionHost", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e7d29c3d2a..a3486f363d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -21,6 +21,11 @@ "dependsOn": ["neovim start", "neovim logs", "ESBuild-cursorless-neovim"], "group": "build" }, + { + "label": "Build neovim extension tests only", + "dependsOn": ["neovim test start", "ESBuild-cursorless-neovim"], + "group": "build" + }, { "label": "ESBuild-cursorless-neovim", "type": "npm", @@ -83,6 +88,26 @@ } } }, + { + "label": "neovim test start", + "type": "shell", + "windows": { + "command": "powershell", + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"nvim\"\"\", 1, $false)" + ] + }, + "group": "build", + "options": { + "env": { + "CURSORLESS_REPO_ROOT": "${workspaceFolder}", + "NVIM_NODE_HOST_DEBUG": "1", + "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log", + "NVIM_NODE_LOG_LEVEL": "info", + "CURSORLESS_MODE": "test" + } + } + }, { "label": "Build extension only", "dependsOn": ["Populate dist", "ESBuild"], diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index c546c1330e..757f765c63 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -25,6 +25,7 @@ import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; import { updateTextEditor } from "./neovimHelpers"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; +import { runRecordedTestCases } from "./suite/recorded.neovim.test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -107,14 +108,11 @@ export async function activate(plugin: NvimPlugin) { await updateTextEditor(); console.warn("activate(): Cursorless extension loaded"); - // COMMENT ME IF YOU DON'T WANT TO RUN TESTS - // WHEN USING TESTS, CHANGE neovimIDE.runMode = "test" in NeovimIDE.ts - // console.warn("activate(): running the recorded test cases..."); - // await runRecordedTestCases(); - // console.warn("activate(): recorded test cases done"); - // COMMENT ME END - - // WHEN NOT USING TESTS, CHANGE neovimIDE.runMode = "development" in NeovimIDE.ts + if (neovimIDE.runMode === "test") { + console.warn("activate(): running the recorded test cases..."); + await runRecordedTestCases(); + console.warn("activate(): recorded test cases done"); + } } async function createNeovimIde(client: NeovimClient) { From fab658ff722a44f5c80524464042934655fdd249 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:15:19 +0100 Subject: [PATCH 191/504] refactor: use CURSORLESS_REPO_ROOT for using fixture path --- .../src/suite/recorded.neovim.test.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts index f825f09cdf..e8b05569ca 100644 --- a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts @@ -30,6 +30,7 @@ import { Selection, Position, getRecordedTestPaths, + getFixturesPath, } from "@cursorless/common"; // import { // getCursorlessApi, @@ -112,16 +113,11 @@ export async function runRecordedTestCases() { const tests = getRecordedTestPaths(); // Run some tests - // const fixturePath = - // "C:\\cursorless_fork\\packages\\cursorless-vscode-e2e\\src\\suite\\fixtures\\"; + // const fixturePath = getFixturesPath(); // const tests = [ // { - // name: "recorded/selectionTypes/clearRowTwoPastFour", - // path: `${fixturePath}recorded\\selectionTypes\\clearRowTwoPastFour.yml`, - // }, - // { - // name: "recorded/selectionTypes/clearWord2", - // path: `${fixturePath}recorded\\selectionTypes\\clearWord2.yml`, + // name: "recorded/actions/insertEmptyLines/puffThis", + // path: `${fixturePath}/recorded/actions/insertEmptyLines/puffThis.yml`, // }, // ]; From 23245af0a60eaaaf86f0e7160dd8dde7fc3ed653 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:16:06 +0100 Subject: [PATCH 192/504] refactor: cleanup neovimIDE.runMode --- packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index d283d45d8a..d824504501 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -51,11 +51,6 @@ export class NeovimIDE implements IDE { private activeBuffer: Buffer | undefined; cursorlessVersion: string = "0.0.0"; - // TODO: how can we support changing the runMode dynamically? - // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode - // runMode: RunMode = "production"; // use for end user - // runMode: RunMode = "development"; // use to enable debug logs CURSORLESS_MODE=development - // runMode: RunMode = "test"; // used for fixture tests CURSORLESS_MODE=test workspaceFolders: readonly WorkspaceFolder[] | undefined = undefined; private disposables: Disposable[] = []; private assetsRoot_: string | undefined; @@ -93,6 +88,7 @@ export class NeovimIDE implements IDE { ); } + // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode get runMode(): RunMode { const runMode = process.env.CURSORLESS_MODE; const ret = From b60b16948e10b622baebbde29739aa62b1e443fd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 15:41:11 +0100 Subject: [PATCH 193/504] refactor: attempt to make sure the extension is loaded by using "await" but does not work when called from lua --- packages/cursorless-neovim/src/index.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index f3afa928f4..7ff62abea9 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -15,7 +15,7 @@ export default function entry(plugin: NvimPlugin) { plugin.registerFunction( "CursorlessLoadExtension", - () => loadExtension(plugin), + async () => await loadExtension(plugin), { sync: false }, ); @@ -29,16 +29,13 @@ export default function entry(plugin: NvimPlugin) { /** * Load the cursorless engine. */ -function loadExtension(plugin: NvimPlugin) { - const currentDate: Date = new Date(); - const currentDateStr: string = currentDate.toLocaleString(); +async function loadExtension(plugin: NvimPlugin) { console.warn( "===============================================================================================", ); - console.warn("loadExtension(cursorless-neovim): " + currentDateStr); - // plugin.nvim.setLine(currentDateStr); - - activate(plugin); + console.warn("loadExtension(cursorless-neovim): start"); + await activate(plugin); + console.warn("loadExtension(cursorless-neovim): done"); } /** From 39a3de34c0bce8f107781a94b9da9fbe58ebdb19 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 16:40:57 +0100 Subject: [PATCH 194/504] refactor: rename recorded.neovim.test as it is not a mocha test atm --- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-neovim/src/index.ts | 2 +- .../suite/{recorded.neovim.test.ts => recorded_neovim_test.ts} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename packages/cursorless-neovim/src/suite/{recorded.neovim.test.ts => recorded_neovim_test.ts} (100%) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 757f765c63..8cad6775c3 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -25,7 +25,7 @@ import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; import { updateTextEditor } from "./neovimHelpers"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded.neovim.test"; +import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 7ff62abea9..bd3803f29a 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,7 +1,7 @@ import { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { handleCommandInternal } from "./registerCommands"; -import { runRecordedTestCases } from "./suite/recorded.neovim.test"; +import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** * Extension entrypoint called by node-client on Neovim startup. diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts similarity index 100% rename from packages/cursorless-neovim/src/suite/recorded.neovim.test.ts rename to packages/cursorless-neovim/src/suite/recorded_neovim_test.ts From 011b114e332238b9688b702b8b7c7cd6d7a4ff1b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 16:42:24 +0100 Subject: [PATCH 195/504] refactor: do not update the text editor at initialization time as it is not needed and it would fail during a "sleep" issued from cursorless.lua --- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-neovim/src/neovimHelpers.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 8cad6775c3..4dc374ab74 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -105,7 +105,7 @@ export async function activate(plugin: NvimPlugin) { }; injectCursorlessApi(cursorlessApi); - await updateTextEditor(); + // await updateTextEditor(true); console.warn("activate(): Cursorless extension loaded"); if (neovimIDE.runMode === "test") { diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 78237c1b6b..99120625e8 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -11,7 +11,7 @@ import { ide } from "@cursorless/cursorless-engine"; // import { receivedBufferEvent } from "./types/BufferManager"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { NormalizedIDE, SpyIDE } from "@cursorless/common"; +import { NormalizedIDE, Range, Selection, SpyIDE } from "@cursorless/common"; import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; import { eventEmitter } from "./events"; @@ -42,7 +42,9 @@ export function getNeovimIDE(): NeovimIDE { * Atm, we only initialize one editor(current window) with one document(current buffer) */ // TODO: we can make this function a method of NeovimIDE class -export async function updateTextEditor(): Promise { +export async function updateTextEditor( + minimal: boolean = false, +): Promise { const client = neovimClient(); const window = await client.window; const buffer = await window.buffer; @@ -54,8 +56,15 @@ export async function updateTextEditor(): Promise { console.warn( `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, ); - const selections = await bufferGetSelections(window, client); - const visibleRanges = await windowGetVisibleRanges(window, client, lines); + let selections: Selection[]; + let visibleRanges: Range[]; + if (!minimal) { + selections = await bufferGetSelections(window, client); + visibleRanges = await windowGetVisibleRanges(window, client, lines); + } else { + selections = []; + visibleRanges = []; + } const neovimIDE = getNeovimIDE(); const editor = neovimIDE.toNeovimEditor( window, From 4f77ea9939eb1267811c08a3a6e6794d978034ac Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 10 Apr 2024 16:42:46 +0100 Subject: [PATCH 196/504] gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d1dae63533..2e545548d7 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ next-env.d.ts packages/test-harness/testSubsetGrep.properties old +packages/cursorless-neovim/test \ No newline at end of file From b0496b45e522b1e5583a4aefee50afe9d9ea1c56 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 15:44:14 +0000 Subject: [PATCH 197/504] [pre-commit.ci lite] apply automatic fixes --- .gitignore | 2 +- packages/cursorless-neovim/src/extension.ts | 1 - packages/cursorless-neovim/src/suite/recorded_neovim_test.ts | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2e545548d7..65937962c3 100644 --- a/.gitignore +++ b/.gitignore @@ -44,4 +44,4 @@ next-env.d.ts packages/test-harness/testSubsetGrep.properties old -packages/cursorless-neovim/test \ No newline at end of file +packages/cursorless-neovim/test diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 4dc374ab74..4869a89d4c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -23,7 +23,6 @@ import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; -import { updateTextEditor } from "./neovimHelpers"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; import { runRecordedTestCases } from "./suite/recorded_neovim_test"; diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index e8b05569ca..a2bf7a8717 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -30,7 +30,6 @@ import { Selection, Position, getRecordedTestPaths, - getFixturesPath, } from "@cursorless/common"; // import { // getCursorlessApi, From 72effee6b7a9adaaeeaac143bfd2a82dae5ef3a7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 11 Apr 2024 09:52:11 +0100 Subject: [PATCH 198/504] refactor: test-harness vscode specifics to prepare neovim support --- .vscode/launch.json | 8 ++++---- packages/test-harness/package.json | 3 +-- .../{extensionTests.ts => extensionTestsVscode.ts} | 0 packages/test-harness/src/scripts/runTestsCI.ts | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) rename packages/test-harness/src/runners/{extensionTests.ts => extensionTestsVscode.ts} (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json index ebed7c7b10..45f6ce4686 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -50,7 +50,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist", - "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs" + "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs" ], "outFiles": ["${workspaceFolder}/**/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", @@ -71,7 +71,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist", - "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs" + "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs" ], "outFiles": ["${workspaceFolder}/**/out/**/*.js"], "preLaunchTask": "Prepare test subset", @@ -141,7 +141,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist", - "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs" + "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs" ], "outFiles": ["${workspaceFolder}/**/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", @@ -163,7 +163,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist", - "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs" + "--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs" ], "outFiles": ["${workspaceFolder}/**/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index 257c5f1365..b53ba213ec 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -7,8 +7,7 @@ "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", - "build": "pnpm run build:runner && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", - "build:runner": "pnpm run build:base ./src/runners/extensionTests.ts --outfile=dist/extensionTests.cjs", + "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs", "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs", "build:tests": "bash ./scripts/build-tests.sh", diff --git a/packages/test-harness/src/runners/extensionTests.ts b/packages/test-harness/src/runners/extensionTestsVscode.ts similarity index 100% rename from packages/test-harness/src/runners/extensionTests.ts rename to packages/test-harness/src/runners/extensionTestsVscode.ts diff --git a/packages/test-harness/src/scripts/runTestsCI.ts b/packages/test-harness/src/scripts/runTestsCI.ts index 98fbc3726a..9bcb65cb7a 100644 --- a/packages/test-harness/src/scripts/runTestsCI.ts +++ b/packages/test-harness/src/scripts/runTestsCI.ts @@ -11,7 +11,7 @@ import { launchVscodeAndRunTests } from "../launchVscodeAndRunTests"; // unit tests could be run separately. const extensionTestsPath = path.resolve( getCursorlessRepoRoot(), - "packages/test-harness/dist/extensionTests.cjs", + "packages/test-harness/dist/extensionTestsVscode.cjs", ); await launchVscodeAndRunTests(extensionTestsPath); From 54743814af89c2d652249c0a3c8f6d76c4935f19 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 11 Apr 2024 09:55:06 +0100 Subject: [PATCH 199/504] refactor: rename old tests files to prepare switching to mocha --- .../{endToEndTestSetup.ts => endToEndTestSetupOld.ts} | 4 ++-- .../src/suite/recorded_neovim_test.ts | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) rename packages/cursorless-neovim/src/{endToEndTestSetup.ts => endToEndTestSetupOld.ts} (93%) diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts similarity index 93% rename from packages/cursorless-neovim/src/endToEndTestSetup.ts rename to packages/cursorless-neovim/src/endToEndTestSetupOld.ts index b7caccdba4..3949335998 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts @@ -15,7 +15,7 @@ const retryCount = 5; */ //let previousTestTitle = ""; -export async function endToEndTestSetup() { +export async function endToEndTestSetupOld() { async function setup() { const { ide, injectIde } = (await getCursorlessApi()).testHelpers!; const spy = new SpyIDE(ide); @@ -42,7 +42,7 @@ export async function endToEndTestSetup() { * @param ms The baseline number of milliseconds to sleep. * @returns A promise that will resolve when the sleep is over */ -export function sleepWithBackoff(ms: number) { +export function sleepWithBackoffOld(ms: number) { const timeToSleep = shouldUpdateFixtures() ? ms * 2 : ms * Math.pow(2, retryCount - 2); diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index e8b05569ca..5d44eac3e5 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -42,7 +42,10 @@ import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; import { promises as fsp } from "node:fs"; // import * as vscode from "vscode"; -import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; +import { + endToEndTestSetupOld, + sleepWithBackoffOld, +} from "../endToEndTestSetupOld"; // import { commandApi } from "../singletons/cmdapi.singleton"; // import { takeSnapshot } from "@cursorless/cursorless-engine"; import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; @@ -107,7 +110,7 @@ function showSummaryTests() { } export async function runRecordedTestCases() { - const { getSpy } = await endToEndTestSetup(); + const { getSpy } = await endToEndTestSetupOld(); // Run all tests const tests = getRecordedTestPaths(); @@ -193,7 +196,7 @@ async function runTest( //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST; if (fixture.postEditorOpenSleepTimeMs != null) { - await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs); + await sleepWithBackoffOld(fixture.postEditorOpenSleepTimeMs); } await editor.setSelections( @@ -263,7 +266,7 @@ async function runTest( } if (fixture.postCommandSleepTimeMs != null) { - await sleepWithBackoff(fixture.postCommandSleepTimeMs); + await sleepWithBackoffOld(fixture.postCommandSleepTimeMs); } // We don't support decorated symbol marks (hats) yet From 5df3487a630fe063ab2d07578607cd6c82a82de3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 11 Apr 2024 09:59:09 +0100 Subject: [PATCH 200/504] fix: switch to "process" for nvim task. This works with "git bash" default terminal (whereas "shell" does not). And we need "git bash" default terminal to build test-harness. --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a3486f363d..f6f1f6c8b6 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -90,7 +90,7 @@ }, { "label": "neovim test start", - "type": "shell", + "type": "process", "windows": { "command": "powershell", "args": [ From 9e3750db191189f73fe4da807b251f69a20a436e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 11 Apr 2024 10:15:59 +0100 Subject: [PATCH 201/504] fix: missing line --- packages/test-harness/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index b53ba213ec..6a14504d18 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -7,6 +7,7 @@ "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", + "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs", "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs", From fc1e961419d2a5b162a22c6ec0e383e51c962aaa Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 11:21:41 +0100 Subject: [PATCH 202/504] build: fixed neovim start as well --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index f6f1f6c8b6..f0becda2a2 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -70,7 +70,7 @@ }, { "label": "neovim start", - "type": "shell", + "type": "process", "windows": { "command": "powershell", "args": [ From ecd5ff7df9593c1f86430b3cc3a746948a9cf089 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 11:23:04 +0100 Subject: [PATCH 203/504] build: disable showing the logs as it doesn't work yet with the git bash shell (we need it for running neovim properly) --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index f0becda2a2..a8987fd102 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -18,7 +18,7 @@ }, { "label": "Build neovim extension only", - "dependsOn": ["neovim start", "neovim logs", "ESBuild-cursorless-neovim"], + "dependsOn": ["neovim start", "ESBuild-cursorless-neovim"], "group": "build" }, { From aef1d708fe0cc7347147dadd0879ccf363287bd8 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 11:33:05 +0100 Subject: [PATCH 204/504] build: this shows neovim logs, but then we can't attach to nvim, so it is as if it was waiting for the "tail" process to finish so it's not considered a background process --- .vscode/tasks.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a8987fd102..8ad54974e5 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -61,11 +61,12 @@ "label": "neovim logs", "type": "shell", "windows": { - "command": "powershell", - "args": [ - "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" - ] + "command": "tail -f '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log'" }, + "presentation": { + "reveal": "always" + }, + "isBackground": true, "group": "build" }, { From 66f83f1c675406d75dcdb68cb0d6952780c0ee51 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 11:43:07 +0100 Subject: [PATCH 205/504] build: reverting neovim logs task even if it doesn't work with git bash for now --- .vscode/tasks.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8ad54974e5..a8987fd102 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -61,12 +61,11 @@ "label": "neovim logs", "type": "shell", "windows": { - "command": "tail -f '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log'" - }, - "presentation": { - "reveal": "always" + "command": "powershell", + "args": [ + "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" + ] }, - "isBackground": true, "group": "build" }, { From 0bf6f0564a8ba5fc0941a38cfafc7987768968ee Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 11:48:59 +0100 Subject: [PATCH 206/504] fix: bug where the extension was loaded twice once where initializing the extension and the other one when running the test cases --- packages/cursorless-neovim/src/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index bd3803f29a..c9f81feb46 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -9,9 +9,10 @@ import { runRecordedTestCases } from "./suite/recorded_neovim_test"; * Note that these function need to start with a capital letter to be callable from Neovim. */ export default function entry(plugin: NvimPlugin) { - // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation - // though it does not seem useful in practice for neovim as we can't really call CursorlessLoadExtension() again without restarting Neovim? - plugin.setOptions({ dev: true }); + // We make sure the cursorless-neovim extension is only loaded once, + // as otherwise we will run our first copy when loading the extension + // and a different copy for running the testcases + plugin.setOptions({ dev: false }); plugin.registerFunction( "CursorlessLoadExtension", From fd9baf9b53df5349fa90406b450f1e140e9a9fde Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 13:08:41 +0100 Subject: [PATCH 207/504] fix: change the import so command-server can be built, this is because it imports cursorless-neovim --- packages/cursorless-engine/src/CommandHistory.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-engine/src/CommandHistory.ts b/packages/cursorless-engine/src/CommandHistory.ts index 6b3b4e3239..24fe7d1adb 100644 --- a/packages/cursorless-engine/src/CommandHistory.ts +++ b/packages/cursorless-engine/src/CommandHistory.ts @@ -7,14 +7,13 @@ import { IDE, ReadOnlyHatMap, } from "@cursorless/common"; -import type { - CommandRunner, - CommandRunnerDecorator, -} from "@cursorless/cursorless-engine"; + import { produce } from "immer"; import * as fs from "node:fs/promises"; import * as path from "node:path"; import { v4 as uuid } from "uuid"; +import { CommandRunnerDecorator } from "./api/CursorlessEngineApi"; +import { CommandRunner } from "./CommandRunner"; const filePrefix = "cursorlessCommandHistory"; From e947fbac55f96ee21a292ef6bf7325c82823dd9c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 13:23:06 +0100 Subject: [PATCH 208/504] refactor: pass the neovimClient, the commandApi as well as the ide as arguments to prepare refactoring with multiple packages and use from test-harness --- packages/cursorless-neovim/src/TestHelpers.ts | 3 +++ .../src/constructTestHelpers.ts | 7 +++-- packages/cursorless-neovim/src/extension.ts | 3 ++- .../src/ide/neovim/NeovimEdit.ts | 3 ++- packages/cursorless-neovim/src/index.ts | 27 ++++++++++++++++--- .../cursorless-neovim/src/neovimHelpers.ts | 7 ++--- .../cursorless-neovim/src/registerCommands.ts | 22 ++++++++++----- packages/cursorless-neovim/src/runCommand.ts | 18 +++++++++++-- .../src/singletons/cursorlessapi.singleton.ts | 9 +++++++ .../src/suite/recorded_neovim_test.ts | 17 +++++++++--- .../src/testUtil/openNewEditor.ts | 9 ++++--- 11 files changed, 99 insertions(+), 26 deletions(-) diff --git a/packages/cursorless-neovim/src/TestHelpers.ts b/packages/cursorless-neovim/src/TestHelpers.ts index c2942b1981..046d71a291 100644 --- a/packages/cursorless-neovim/src/TestHelpers.ts +++ b/packages/cursorless-neovim/src/TestHelpers.ts @@ -11,6 +11,7 @@ import type { TestCaseSnapshot, TextEditor, } from "@cursorless/common"; +import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; //import { VscodeApi } from "./VscodeApi"; @@ -24,6 +25,8 @@ export interface TestHelpers { commandServerApi: FakeCommandServerApi; + commandApi: CommandApi; + //toVscodeEditor(editor: TextEditor): vscode.TextEditor; setStoredTarget( diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index e6108d3fd6..bee7832e2a 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -13,6 +13,7 @@ import { TextEditor, } from "@cursorless/common"; import { + CommandApi, StoredTargetMap, plainObjectToTarget, takeSnapshot, @@ -22,10 +23,11 @@ import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; export function constructTestHelpers( + commandApi: CommandApi, commandServerApi: FakeCommandServerApi, storedTargets: StoredTargetMap, hatTokenMap: HatTokenMap, - vscodeIDE: NeovimIDE, + neovimIDE: NeovimIDE, normalizedIde: NormalizedIDE, fileSystem: NeovimFileSystem, scopeProvider: ScopeProvider, @@ -33,6 +35,7 @@ export function constructTestHelpers( runIntegrationTests: () => Promise, ): TestHelpers | undefined { return { + commandApi: commandApi!, commandServerApi: commandServerApi!, ide: normalizedIde, injectIde, @@ -59,7 +62,7 @@ export function constructTestHelpers( marks, undefined, undefined, - forceRealClipboard ? vscodeIDE.clipboard : undefined, + forceRealClipboard ? neovimIDE.clipboard : undefined, ); }, diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 4869a89d4c..7b74f8dc13 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -86,6 +86,7 @@ export async function activate(plugin: NvimPlugin) { testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers( + commandApi, fakeCommandServerApi, storedTargets, hatTokenMap, @@ -104,7 +105,7 @@ export async function activate(plugin: NvimPlugin) { }; injectCursorlessApi(cursorlessApi); - // await updateTextEditor(true); + // await updateTextEditor(client, neovimIDE, true); console.warn("activate(): Cursorless extension loaded"); if (neovimIDE.runMode === "test") { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 44fa8725f2..8e769053d6 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -82,7 +82,8 @@ export default async function neovimEdit( } // update our view of the document - await updateTextEditor(); + const neovimIDE = getNeovimIDE(); + await updateTextEditor(client, neovimIDE); return true; } diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index c9f81feb46..e28a82c21a 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,7 +1,13 @@ -import { NvimPlugin } from "neovim"; +import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; import { handleCommandInternal } from "./registerCommands"; import { runRecordedTestCases } from "./suite/recorded_neovim_test"; +import { CursorlessApi } from "./getExtensionApi"; +import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { neovimClient } from "./singletons/client.singleton"; +import { getNeovimIDE } from "./neovimHelpers"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { commandApi } from "./singletons/cmdapi.singleton"; /** * Extension entrypoint called by node-client on Neovim startup. @@ -45,6 +51,21 @@ async function loadExtension(plugin: NvimPlugin) { * @param args something like XXX * @returns */ -export function handleCommand(...args: any): Promise { - return handleCommandInternal(...args); +export async function handleCommand(...args: any): Promise { + const client = await neovimClient(); + const neovimIDE = getNeovimIDE(); + const cmdApi = commandApi(); + return handleCommandInternal(client, neovimIDE, cmdApi, ...args); +} + +export function getCursorlessApiExternal(): Promise { + return getCursorlessApi(); +} + +export function neovimClientExternal(): NeovimClient { + return neovimClient(); +} + +export function getNeovimIDEExternal(): NeovimIDE { + return getNeovimIDE(); } diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index 99120625e8..a58ce5795d 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -14,6 +14,7 @@ import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NormalizedIDE, Range, Selection, SpyIDE } from "@cursorless/common"; import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; import { eventEmitter } from "./events"; +import { NeovimClient } from "neovim"; // DEP-INJ: Delete this function. Is there a clean way to do it? Yes once we support pure dependency injection export function getNeovimIDE(): NeovimIDE { @@ -27,7 +28,7 @@ export function getNeovimIDE(): NeovimIDE { const normalizedIDE = ide_.original as NormalizedIDE; neovimIDE = normalizedIDE.original as NeovimIDE; } else { - throw Error("updateTextEditor(): ide() is not NeovimIDE"); + throw Error("getNeovimIDE(): ide() is not NeovimIDE"); } return neovimIDE; } @@ -43,9 +44,10 @@ export function getNeovimIDE(): NeovimIDE { */ // TODO: we can make this function a method of NeovimIDE class export async function updateTextEditor( + client: NeovimClient, + neovimIDE: NeovimIDE, minimal: boolean = false, ): Promise { - const client = neovimClient(); const window = await client.window; const buffer = await window.buffer; const lines = await buffer.lines; @@ -65,7 +67,6 @@ export async function updateTextEditor( selections = []; visibleRanges = []; } - const neovimIDE = getNeovimIDE(); const editor = neovimIDE.toNeovimEditor( window, buffer, diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 1a41222bc8..1efae0307c 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -4,11 +4,16 @@ import { CursorlessCommandId, } from "@cursorless/common"; import { commandApi } from "./singletons/cmdapi.singleton"; -import { updateTextEditor } from "./neovimHelpers"; +import { getNeovimIDE, updateTextEditor } from "./neovimHelpers"; import { neovimClient } from "./singletons/client.singleton"; import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; -import { ensureCommandShape } from "@cursorless/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; +// TODO - we need to fix that import as we should not be allowed to import it afaict? +//import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { NeovimClient } from "neovim"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { CommandApi } from "@cursorless/cursorless-engine"; /** * Handle the command received from the command-server Neovim extension @@ -20,12 +25,17 @@ import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; * @returns */ export function handleCommandInternal(...allArguments: any[]): Promise { - const [command, ...rest] = allArguments as [string, ...unknown[]]; + const [client, neovimIDE, commandApi, command, ...rest] = allArguments as [ + NeovimClient, + NeovimIDE, + CommandApi, + string, + ...unknown[], + ]; const commands: Record any> = { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { - const client = await neovimClient(); const originalMode = await client.mode; if (originalMode.mode === "t") { // Switch to "nt" so we can easily call lua functions without any problems @@ -34,8 +44,8 @@ export function handleCommandInternal(...allArguments: any[]): Promise { // try { - await updateTextEditor(); - const result = await commandApi().runCommandSafe(...args); + await updateTextEditor(client, neovimIDE); + const result = await commandApi.runCommandSafe(...args); const command = ensureCommandShape(args) as CommandLatest; const cmdSrvApi = commandServerApi(); diff --git a/packages/cursorless-neovim/src/runCommand.ts b/packages/cursorless-neovim/src/runCommand.ts index b779ea8848..03aa1c792a 100644 --- a/packages/cursorless-neovim/src/runCommand.ts +++ b/packages/cursorless-neovim/src/runCommand.ts @@ -1,8 +1,22 @@ import { Command, CURSORLESS_COMMAND_ID } from "@cursorless/common"; import { handleCommandInternal } from "./registerCommands"; +import { NeovimClient } from "neovim"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; -export function runCursorlessCommand(command: Command) { +export function runCursorlessCommand( + client: NeovimClient, + neovimIDE: NeovimIDE, + commandApi: CommandApi, + command: Command, +) { //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); - return handleCommandInternal(CURSORLESS_COMMAND_ID, command); + return handleCommandInternal( + client, + neovimIDE, + commandApi, + CURSORLESS_COMMAND_ID, + command, + ); } diff --git a/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts index 90a755f722..99ca7b71c6 100644 --- a/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts +++ b/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts @@ -4,6 +4,9 @@ import { CursorlessApi } from "../getExtensionApi"; * This is the `cursorlessapi` singleton */ let cursorlessapi_: CursorlessApi | undefined; +// const random = Math.random(); +// console.warn(`cursorlessapi.singleton.ts: random=${random}`); +// console.warn(`cursorlessapi.singleton.ts: __filename=${__filename}`); /** * Injects an {@link CursorlessApi} object that can be used to access Cursorless extension features. @@ -12,6 +15,9 @@ let cursorlessapi_: CursorlessApi | undefined; * @param cursorlessapi The CursorlessApi to inject */ export function injectCursorlessApi(cursorlessapi: CursorlessApi | undefined) { + // console.warn( + // `cursorlessapi.singleton.ts: injectCursorlessApi(): random=${random}`, + // ); cursorlessapi_ = cursorlessapi; } @@ -22,6 +28,9 @@ export function injectCursorlessApi(cursorlessapi: CursorlessApi | undefined) { * @returns The cursorlessapi object */ export async function getCursorlessApi(): Promise { + // console.warn( + // `cursorlessapi.singleton.ts: getCursorlessApi() random=${random}`, + // ); if (cursorlessapi_ == null) { throw Error("Tried to access cursorlessApi before it was injected"); } diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 8cdbb17728..38687fa120 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -52,6 +52,8 @@ import { openNewEditor } from "../testUtil/openNewEditor"; import { runCursorlessCommand } from "../runCommand"; import { neovimClient } from "../singletons/client.singleton"; import { AssertionError } from "node:assert"; +import { getNeovimIDE } from "../neovimHelpers"; +import { commandApi } from "../singletons/cmdapi.singleton"; // import { setupFake } from "./setupFake"; type errorType = { @@ -147,6 +149,8 @@ async function runTest( spyIde: SpyIDE, ): Promise { const client = neovimClient(); + const neovimIDE = getNeovimIDE(); + const cmdApi = commandApi(); const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; @@ -187,9 +191,14 @@ async function runTest( const { takeSnapshot, setStoredTarget, commandServerApi } = cursorlessApi.testHelpers!; - const editor = await openNewEditor(fixture.initialState.documentContents, { - languageId: fixture.languageId, - }); + const editor = await openNewEditor( + client, + neovimIDE, + fixture.initialState.documentContents, + { + languageId: fixture.languageId, + }, + ); // Override any user settings and make sure tests run with default tabs. //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST; @@ -225,7 +234,7 @@ async function runTest( let fallback: Fallback | undefined; try { - returnValue = await runCursorlessCommand({ + returnValue = await runCursorlessCommand(client, neovimIDE, cmdApi, { ...fixture.command, usePrePhraseSnapshot, }); diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts index 6ea3a1c4ee..1a63bb6b45 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/cursorless-neovim/src/testUtil/openNewEditor.ts @@ -1,7 +1,8 @@ +import { NeovimClient } from "neovim"; import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; import { updateTextEditor } from "../neovimHelpers"; -import { neovimClient } from "../singletons/client.singleton"; +import { NeovimIDE } from "../ide/neovim/NeovimIDE"; interface NewEditorOptions { languageId?: string; @@ -12,11 +13,11 @@ interface NewEditorOptions { // displaying a "press enter or type command to continue" message for every ":enew" command // so the workaround is to delete that folder. export async function openNewEditor( + client: NeovimClient, + neovimIDE: NeovimIDE, content: string, { languageId = "plaintext", openBeside = false }: NewEditorOptions = {}, ): Promise { - const client = neovimClient(); - // open a new buffer // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file await client.command(":enew"); @@ -45,7 +46,7 @@ export async function openNewEditor( } // update our view of the document - const editor = await updateTextEditor(); + const editor = await updateTextEditor(client, neovimIDE); return editor; } From ca25e6e5c2c9e201912f161c4797a38212274b2c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:27:32 +0100 Subject: [PATCH 209/504] feat: remove the test from activate() since we can execute them from the lua script now --- packages/cursorless-neovim/src/extension.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 7b74f8dc13..2de076d44e 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -107,12 +107,6 @@ export async function activate(plugin: NvimPlugin) { // await updateTextEditor(client, neovimIDE, true); console.warn("activate(): Cursorless extension loaded"); - - if (neovimIDE.runMode === "test") { - console.warn("activate(): running the recorded test cases..."); - await runRecordedTestCases(); - console.warn("activate(): recorded test cases done"); - } } async function createNeovimIde(client: NeovimClient) { From 261b86598736842eb810915578dbf7b8a4215feb Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:33:07 +0100 Subject: [PATCH 210/504] refactor: pass the neovim client and the neovim IDE to neovimEdit() --- .../src/ide/neovim/NeovimEdit.ts | 11 +++++---- .../src/ide/neovim/NeovimIDE.ts | 1 + .../src/ide/neovim/NeovimTextEditorImpl.ts | 7 +++--- packages/cursorless-neovim/src/index.ts | 4 +++- .../cursorless-neovim/src/registerCommands.ts | 23 +++++++++---------- packages/cursorless-neovim/src/runCommand.ts | 8 ++++++- .../src/suite/recorded_neovim_test.ts | 18 ++++++++++----- 7 files changed, 44 insertions(+), 28 deletions(-) diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts index 8e769053d6..60e13a6716 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts @@ -5,12 +5,15 @@ import { TextDocument, TextDocumentContentChangeEvent, } from "@cursorless/common"; -import { Window } from "neovim"; -import { getNeovimIDE, updateTextEditor } from "../../neovimHelpers"; +import { NeovimClient, Window } from "neovim"; +import { updateTextEditor } from "../../neovimHelpers"; import { neovimClient } from "../../singletons/client.singleton"; import { eventEmitter } from "../../events"; +import { NeovimIDE } from "./NeovimIDE"; export default async function neovimEdit( + client: NeovimClient, + neovimIDE: NeovimIDE, window: Window, edits: Edit[], ): Promise { @@ -50,8 +53,7 @@ export default async function neovimEdit( `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, ); } - const client = neovimClient(); - const document = getNeovimIDE().getTextDocument( + const document = neovimIDE.getTextDocument( await client.window.buffer, ) as TextDocument; const changes: TextDocumentContentChangeEvent[] = []; @@ -82,7 +84,6 @@ export default async function neovimEdit( } // update our view of the document - const neovimIDE = getNeovimIDE(); await updateTextEditor(client, neovimIDE); return true; } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts index d824504501..2cd051806b 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts @@ -281,6 +281,7 @@ export class NeovimIDE implements IDE { ); editor = new NeovimTextEditorImpl( uuid(), + this.client, this, window, document, diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts index 519cf502a9..153cba4c29 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts @@ -9,7 +9,7 @@ import { TextEditor, TextEditorOptions, } from "@cursorless/common"; -import { Window } from "neovim"; +import { NeovimClient, Window } from "neovim"; import { bufferSetSelections } from "../../neovimApi"; import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; import { neovimClient } from "../../singletons/client.singleton"; @@ -24,7 +24,8 @@ export class NeovimTextEditorImpl implements EditableTextEditor { constructor( public readonly id: string, - private ide: NeovimIDE, + private client: NeovimClient, + private neovimIDE: NeovimIDE, private window: Window, doc: NeovimTextDocumentImpl, visibleRanges: Range[], @@ -106,7 +107,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { public async edit(edits: Edit[]): Promise { //throw Error("edit Not implemented"); - return await neovimEdit(this.window, edits); + return await neovimEdit(this.client, this.neovimIDE, this.window, edits); } public focus(): Promise { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index e28a82c21a..62c678f78c 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -8,6 +8,7 @@ import { neovimClient } from "./singletons/client.singleton"; import { getNeovimIDE } from "./neovimHelpers"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { commandApi } from "./singletons/cmdapi.singleton"; +import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; /** * Extension entrypoint called by node-client on Neovim startup. @@ -55,7 +56,8 @@ export async function handleCommand(...args: any): Promise { const client = await neovimClient(); const neovimIDE = getNeovimIDE(); const cmdApi = commandApi(); - return handleCommandInternal(client, neovimIDE, cmdApi, ...args); + const cmdSrvApi = commandServerApi(); + return handleCommandInternal(client, neovimIDE, cmdApi, cmdSrvApi, ...args); } export function getCursorlessApiExternal(): Promise { diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 1efae0307c..1d2b0bba16 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,13 +1,11 @@ import { CURSORLESS_COMMAND_ID, CommandLatest, + CommandServerApi, CursorlessCommandId, } from "@cursorless/common"; -import { commandApi } from "./singletons/cmdapi.singleton"; -import { getNeovimIDE, updateTextEditor } from "./neovimHelpers"; -import { neovimClient } from "./singletons/client.singleton"; +import { updateTextEditor } from "./neovimHelpers"; import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; -import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; @@ -25,13 +23,15 @@ import { CommandApi } from "@cursorless/cursorless-engine"; * @returns */ export function handleCommandInternal(...allArguments: any[]): Promise { - const [client, neovimIDE, commandApi, command, ...rest] = allArguments as [ - NeovimClient, - NeovimIDE, - CommandApi, - string, - ...unknown[], - ]; + const [client, neovimIDE, commandApi, cmdSrvApi, command, ...rest] = + allArguments as [ + NeovimClient, + NeovimIDE, + CommandApi, + CommandServerApi, + string, + ...unknown[], + ]; const commands: Record any> = { // The core Cursorless command @@ -48,7 +48,6 @@ export function handleCommandInternal(...allArguments: any[]): Promise { const result = await commandApi.runCommandSafe(...args); const command = ensureCommandShape(args) as CommandLatest; - const cmdSrvApi = commandServerApi(); const focusedElementType = await cmdSrvApi.getFocusedElementType(); if ( focusedElementType === "terminal" && diff --git a/packages/cursorless-neovim/src/runCommand.ts b/packages/cursorless-neovim/src/runCommand.ts index 03aa1c792a..cc532a44e2 100644 --- a/packages/cursorless-neovim/src/runCommand.ts +++ b/packages/cursorless-neovim/src/runCommand.ts @@ -1,4 +1,8 @@ -import { Command, CURSORLESS_COMMAND_ID } from "@cursorless/common"; +import { + Command, + CommandServerApi, + CURSORLESS_COMMAND_ID, +} from "@cursorless/common"; import { handleCommandInternal } from "./registerCommands"; import { NeovimClient } from "neovim"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; @@ -9,6 +13,7 @@ export function runCursorlessCommand( client: NeovimClient, neovimIDE: NeovimIDE, commandApi: CommandApi, + cmdSrvApi: CommandServerApi, command: Command, ) { //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); @@ -16,6 +21,7 @@ export function runCursorlessCommand( client, neovimIDE, commandApi, + cmdSrvApi, CURSORLESS_COMMAND_ID, command, ); diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 38687fa120..23b0b0449b 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -120,8 +120,8 @@ export async function runRecordedTestCases() { // const fixturePath = getFixturesPath(); // const tests = [ // { - // name: "recorded/actions/insertEmptyLines/puffThis", - // path: `${fixturePath}/recorded/actions/insertEmptyLines/puffThis.yml`, + // name: "recorded/actions/insertEmptyLines/dropThis", + // path: `${fixturePath}/recorded/actions/insertEmptyLines/dropThis.yml`, // }, // ]; @@ -234,10 +234,16 @@ async function runTest( let fallback: Fallback | undefined; try { - returnValue = await runCursorlessCommand(client, neovimIDE, cmdApi, { - ...fixture.command, - usePrePhraseSnapshot, - }); + returnValue = await runCursorlessCommand( + client, + neovimIDE, + cmdApi, + commandServerApi, + { + ...fixture.command, + usePrePhraseSnapshot, + }, + ); if (clientSupportsFallback(fixture.command)) { const commandResponse = returnValue as CommandResponse; returnValue = From df5b88fbb78730ba759e7c96d5e3c43c4fd54ae7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:33:26 +0100 Subject: [PATCH 211/504] refactor: minor comment --- packages/cursorless-neovim/src/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 62c678f78c..b93ec6f61d 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -18,7 +18,9 @@ import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; export default function entry(plugin: NvimPlugin) { // We make sure the cursorless-neovim extension is only loaded once, // as otherwise we will run our first copy when loading the extension - // and a different copy for running the testcases + // and a different new copy for running the testcases + // NOTE: this is the case because all the files are rolled up into a single index.cjs file + // and node-client would reload that index.cjs file if "dev" was set to "true" plugin.setOptions({ dev: false }); plugin.registerFunction( From 0ae41b808b566c572216d04e9c734f748cea81e6 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:36:39 +0100 Subject: [PATCH 212/504] docs: todo --- packages/cursorless-neovim/TODO.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 863e5e7d07..8229468c9a 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,10 +1,23 @@ # questions -- setStoredTarget support in the recorded tests? +- unit tests for lineCount similar to C:\work\tools\voicecoding\cursorless_fork\packages\common\src\types\range.test.ts or selection.test.ts +- logs in vscode would be better +- test-harness outside of cursorless-neovim +- see cursorless_original\packages\test-harness\dist +- functions are called in parallel. Is that okay? + vim.api.nvim_call_function('CursorlessLoadExtension', {}) + vim.api.nvim_call_function('CommandServerLoadExtension', {}) + +- test-harness\dist\cursorless-vscode-e2e\src\suite\editNewCell.vscode.test.cjs + var EXTENSION_ID = "pokey.cursorless"; + var getCursorlessApi = () => getExtensionApiStrict(EXTENSION_ID); + var getParseTreeApi = () => getExtensionApiStrict("pokey.parse-tree"); + // lazy import of cursorless-engine from test-harness + +- unit tests for testing the lua functions for ranges, selections etc. - utf8 is not supported well - probably neovim pb (translate to utf8) - no utf8 thing in cursorless (strings that under the hood are utf16) - need to decode it before giving it to cursorless - Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: - Pokey: go over the remaining "TODO:" in the code -- NPM as package manager message (see screenshot) - Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") - "paste to row one" from the clipboard, see getFromClipboard() From 52b89afdebc221b85876706dd6b193c4f9553a6c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:47:34 +0100 Subject: [PATCH 213/504] fix: remove code throwing the error now that is this fixed --- .../cursorless-engine/src/spokenForms/CustomSpokenForms.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 29bea7d0f9..a1bba0c418 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -96,12 +96,7 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); - // TODO: commenting for now until https://github.com/cursorless-dev/cursorless/issues/2261 is fixed - // Indeed, this is a bit annoying when debugging, because this function is async, but there - // is no await so this error triggers later when we're debugging when we read a file or other async event - // throw err; - console.warn("Error loading custom spoken forms", err); - return; + throw err; } for (const entryType of SUPPORTED_ENTRY_TYPES) { From 405a2b1845494707a59ea91cdfc013344547707e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 15:49:33 +0000 Subject: [PATCH 214/504] [pre-commit.ci lite] apply automatic fixes --- packages/cursorless-neovim/src/extension.ts | 1 - packages/cursorless-neovim/src/registerCommands.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 2de076d44e..702126017c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -24,7 +24,6 @@ import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { NeovimClient } from "neovim/lib/api/client"; import { injectClient } from "./singletons/client.singleton"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** * This function is called from talon.nvim to initialize the Cursorless engine. diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 1d2b0bba16..941428c821 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -8,7 +8,7 @@ import { updateTextEditor } from "./neovimHelpers"; import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { ensureCommandShape } from "@cursorless/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { NeovimClient } from "neovim"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { CommandApi } from "@cursorless/cursorless-engine"; From 34e8c18fc84763454e0b7c977fb9051f872b2b5e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 16:51:00 +0100 Subject: [PATCH 215/504] feat: initial mocha tests for neovim --- .vscode/tasks.json | 6 +- packages/cursorless-neovim/package.json | 6 +- .../src/endToEndTestSetup.ts | 67 ++++ .../src/ide/neovim/NeovimTextDocumentImpl.ts | 2 + .../src/suite/recorded.neovim.test.ts | 329 ++++++++++++++++++ packages/test-harness/package.json | 9 +- packages/test-harness/src/index.ts | 34 ++ packages/test-harness/src/runAllTests.ts | 9 +- pnpm-lock.yaml | 18 + 9 files changed, 474 insertions(+), 6 deletions(-) create mode 100644 packages/cursorless-neovim/src/endToEndTestSetup.ts create mode 100644 packages/cursorless-neovim/src/suite/recorded.neovim.test.ts create mode 100644 packages/test-harness/src/index.ts diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a8987fd102..2b8cfd8b97 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -23,7 +23,11 @@ }, { "label": "Build neovim extension tests only", - "dependsOn": ["neovim test start", "ESBuild-cursorless-neovim"], + "dependsOn": [ + "neovim test start", + "ESBuild-cursorless-neovim", + "Build test harness" + ], "group": "build" }, { diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index b6027e89d8..ebf002e1e5 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -35,7 +35,11 @@ "@types/chai": "^4.3.3", "@types/js-yaml": "^4.0.2", "@types/lodash": "4.14.181", + "@types/mocha": "^10.0.6", + "@types/sinon": "^17.0.3", "@types/uuid": "8.3.4", - "@types/vscode": "1.66.0" + "@types/vscode": "1.66.0", + "mocha": "^10.3.0", + "sinon": "^17.0.1" } } diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim/src/endToEndTestSetup.ts new file mode 100644 index 0000000000..d1c4e5f8f2 --- /dev/null +++ b/packages/cursorless-neovim/src/endToEndTestSetup.ts @@ -0,0 +1,67 @@ +import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; +// import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { Context } from "mocha"; +import * as sinon from "sinon"; + +/** + * The number of times the current test has been retried. Will be 0 the first + * time the test runs and increase by 1 each time the test fails and needs to be + * rerun. + */ +let retryCount = -1; + +/** + * The title of the previously run test. Used to keep track of + * {@link retryCount}. + */ +let previousTestTitle = ""; + +export function endToEndTestSetup(suite: Mocha.Suite) { + suite.timeout("100s"); + suite.retries(5); + + let ide: IDE; + let injectIde: (ide: IDE) => void; + let spy: SpyIDE | undefined; + + setup(async function (this: Context) { + const title = this.test!.fullTitle(); + retryCount = title === previousTestTitle ? retryCount + 1 : 0; + previousTestTitle = title; + const getCursorlessApi = await require("@cursorless/cursorless-neovim") + .getCursorlessApiExternal; + // debugger; + ({ ide, injectIde } = (await getCursorlessApi()).testHelpers!); + spy = new SpyIDE(ide); + injectIde(spy); + }); + + teardown(() => { + sinon.restore(); + injectIde(ide); + }); + + return { + getSpy() { + return spy; + }, + }; +} + +/** + * Sleep function for use in tests that will be retried. Doubles the amount of + * time it sleeps each time a test is run, starting from {@link ms} / 4. + * + * If the developer used the update fixtures launch config, we sleep for {@link ms} * + * 2 every time so that they don't get spurious updates to fixtures due to not + * sleeping enough. + * @param ms The baseline number of milliseconds to sleep. + * @returns A promise that will resolve when the sleep is over + */ +export function sleepWithBackoff(ms: number) { + const timeToSleep = shouldUpdateFixtures() + ? ms * 2 + : ms * Math.pow(2, retryCount - 2); + + return sleep(timeToSleep); +} diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts index ed2115b53e..45bc2bd0e8 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -200,6 +200,7 @@ export class NeovimTextDocumentImpl implements TextDocument { // ---- range math private _validateRange(range: Range): Range { + // TODO: this instanceof test fails with mocha if (!(range instanceof Range)) { throw new Error("Invalid argument"); } @@ -214,6 +215,7 @@ export class NeovimTextDocumentImpl implements TextDocument { } private _validatePosition(position: Position): Position { + // TODO: this instanceof test fails with mocha if (!(position instanceof Position)) { throw new Error("Invalid argument"); } diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts new file mode 100644 index 0000000000..11b93a9343 --- /dev/null +++ b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts @@ -0,0 +1,329 @@ +import { + // asyncSafety, + CommandResponse, + // DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, + ExcludableSnapshotField, + // extractTargetedMarks, + Fallback, + // HatStability, + // marksToPlainObject, + omitByDeep, + // plainObjectToRange, + PositionPlainObject, + // rangeToPlainObject, + // ReadOnlyHatMap, + SelectionPlainObject, + // SerializedMarks, + serializeTestFixture, + shouldUpdateFixtures, + // splitKey, + SpyIDE, + spyIDERecordedValuesToPlainObject, + storedTargetKeys, + TestCaseFixtureLegacy, + // TextEditor, + // TokenHat, + clientSupportsFallback, + // TestCaseSnapshot, + // ExtraSnapshotField, + // IDE, + Selection, + Position, + getRecordedTestPaths, + asyncSafety, + NormalizedIDE, + getFixturesPath, +} from "@cursorless/common"; +// import { +// getCursorlessApi, +// openNewEditor, +// runCursorlessCommand, +// } from "@cursorless/vscode-common"; +import { assert } from "chai"; +import * as yaml from "js-yaml"; +import { isUndefined } from "lodash"; +import { promises as fsp } from "node:fs"; +// import * as vscode from "vscode"; +import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; +// import { commandApi } from "../singletons/cmdapi.singleton"; +// import { takeSnapshot } from "@cursorless/cursorless-engine"; +// import { getCursorlessApi } from "../singletons/cursorlessapi.sLevelingleton"; + +import { openNewEditor } from "../testUtil/openNewEditor"; +import { runCursorlessCommand } from "../runCommand"; +import { NeovimIDE } from "../ide/neovim/NeovimIDE"; +// import { neovimClient } from "../singletons/client.singleton"; +// import { setupFake } from "./setupFake"; + +function createPosition(position: PositionPlainObject) { + return new Position(position.line, position.character); +} + +function createSelection(selection: SelectionPlainObject): Selection { + const active = createPosition(selection.active); + const anchor = createPosition(selection.anchor); + return new Selection(anchor, active); +} + +suite("recorded test cases", async function () { + const { getSpy } = endToEndTestSetup(this); + + suiteSetup(async () => { + // Necessary because opening a notebook opens the panel for some reason + // await vscode.commands.executeCommand("workbench.action.closePanel"); + const getCursorlessApi = await require("@cursorless/cursorless-neovim") + .getCursorlessApiExternal; + // debugger; + const { ide } = (await getCursorlessApi()).testHelpers!; + // setupFake(ide, HatStability.stable); + }); + + // Run all tests + const tests = getRecordedTestPaths(); + + // Run some tests + // const fixturePath = getFixturesPath(); + // const tests = [ + // { + // name: "recorded/actions/insertEmptyLines/dropThis", + // path: `${fixturePath}/recorded/actions/insertEmptyLines/dropThis.yml`, + // }, + // ]; + + for (const { name, path } of tests) { + test( + name, + asyncSafety(() => runTest(path, getSpy()!)), + ); + } + // getRecordedTestPaths().forEach(({ name, path }) => + // test( + // name, + // asyncSafety(() => runTest(path, getSpy()!)), + // ), + // ); +}); + +async function runTest(file: string, spyIde: SpyIDE) { + const neovimClient = await require("@cursorless/cursorless-neovim") + .neovimClientExternal; + const client = neovimClient(); + // TODO: not sure why but ide() returns an SpyIDE but then the + // test against instanceof SpyIDE fails... + // const getNeovimIDE = await require("@cursorless/cursorless-neovim") + // .getNeovimIDEExternal; + // const neovimIDE = await getNeovimIDE(); + const normalizedIDE = spyIde.original as NormalizedIDE; + const neovimIDE = normalizedIDE.original as NeovimIDE; + + const buffer = await fsp.readFile(file); + const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; + const excludeFields: ExcludableSnapshotField[] = []; + + // We don't support decorated symbol marks (hats) yet + const hasMarks = + fixture.initialState.marks != null && + Object.keys(fixture.initialState.marks).length > 0; + + // we don't support multiple selections in neovim (we don't support multiple cursors atm) + const hasMultipleSelections = + fixture.initialState.selections.length > 1 || + (fixture.finalState && fixture.finalState.selections.length > 1); + + // We don't support Tree sitter yet (which requires a code languageId) + const needTreeSitter = fixture.languageId !== "plaintext"; + + // TODO: find a way to distinguish between a skipped test and + // a failed test + if (hasMarks || hasMultipleSelections || needTreeSitter) { + return; + } + + // Uncomment below for debugging + // if (name === "recorded/implicitExpansion/chuckBoundingThat") { + // console.warn(`runTest(${name}) => let's analyze it`); + // } + + console.warn( + "------------------------------------------------------------------------------", + ); + console.warn(`runTest(${file})...`); + + // FIXME The snapshot gets messed up with timing issues when running the recorded tests + // "Couldn't find token default.a" + const usePrePhraseSnapshot = false; + + const getCursorlessApi = await require("@cursorless/cursorless-neovim") + .getCursorlessApiExternal; + // debugger; + const cursorlessApi = await getCursorlessApi(); + const { takeSnapshot, setStoredTarget, commandServerApi, commandApi } = + cursorlessApi.testHelpers!; + + const editor = await openNewEditor( + client, + neovimIDE, + fixture.initialState.documentContents, + { + languageId: fixture.languageId, + }, + ); + + // Override any user settings and make sure tests run with default tabs. + //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST; + + if (fixture.postEditorOpenSleepTimeMs != null) { + await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs); + } + + await editor.setSelections( + fixture.initialState.selections.map(createSelection), + ); + + for (const storedTargetKey of storedTargetKeys) { + const key = `${storedTargetKey}Mark` as const; + setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); + } + + if (fixture.initialState.clipboard) { + spyIde.clipboard.writeText(fixture.initialState.clipboard); + } + + commandServerApi.setFocusedElementType( + fixture.focusedElementType === "other" + ? undefined + : fixture.focusedElementType ?? "textEditor", + ); + + // NOT NEEDED FOR NOW + // Ensure that the expected hats are present + // Assert that recorded decorations are present + + let returnValue: unknown; + let fallback: Fallback | undefined; + + try { + returnValue = await runCursorlessCommand( + client, + neovimIDE, + commandApi, + commandServerApi, + { + ...fixture.command, + usePrePhraseSnapshot, + }, + ); + if (clientSupportsFallback(fixture.command)) { + const commandResponse = returnValue as CommandResponse; + returnValue = + "returnValue" in commandResponse + ? commandResponse.returnValue + : undefined; + fallback = + "fallback" in commandResponse ? commandResponse.fallback : undefined; + } + } catch (err) { + const error = err as Error; + + if (shouldUpdateFixtures()) { + const outputFixture = { + ...fixture, + finalState: undefined, + decorations: undefined, + returnValue: undefined, + thrownError: { name: error.name }, + }; + + await fsp.writeFile(file, serializeTestFixture(outputFixture)); + } else if (fixture.thrownError != null) { + assert.strictEqual( + error.name, + fixture.thrownError.name, + "Unexpected thrown error", + ); + } else { + throw error; + } + + return; + } + + if (fixture.postCommandSleepTimeMs != null) { + await sleepWithBackoff(fixture.postCommandSleepTimeMs); + } + + // We don't support decorated symbol marks (hats) yet + const marks = undefined; + + if (fixture.finalState?.clipboard == null) { + excludeFields.push("clipboard"); + } + + for (const storedTargetKey of storedTargetKeys) { + const key = `${storedTargetKey}Mark` as const; + if (fixture.finalState?.[key] == null) { + excludeFields.push(key); + } + } + + // FIXME Visible ranges are not asserted, see: + // https://github.com/cursorless-dev/cursorless/issues/160 + const { visibleRanges, ...resultState } = await takeSnapshot( + excludeFields, + [], + spyIde.activeTextEditor!, + spyIde, + marks, + false, + ); + + const rawSpyIdeValues = spyIde.getSpyValues(fixture.ide?.flashes != null); + const actualSpyIdeValues = + rawSpyIdeValues == null + ? undefined + : spyIDERecordedValuesToPlainObject(rawSpyIdeValues); + + if (shouldUpdateFixtures()) { + const outputFixture: TestCaseFixtureLegacy = { + ...fixture, + finalState: resultState, + returnValue, + fallback, + ide: actualSpyIdeValues, + thrownError: undefined, + }; + + await fsp.writeFile(file, serializeTestFixture(outputFixture)); + } else { + if (fixture.thrownError != null) { + throw Error( + `Expected error ${fixture.thrownError.name} but none was thrown`, + ); + } + + assert.deepStrictEqual( + resultState, + fixture.finalState, + "Unexpected final state", + ); + + assert.deepStrictEqual( + returnValue, + fixture.returnValue, + "Unexpected return value", + ); + + assert.deepStrictEqual( + fallback, + fixture.fallback, + "Unexpected fallback value", + ); + + assert.deepStrictEqual( + omitByDeep(actualSpyIdeValues, isUndefined), + fixture.ide, + "Unexpected ide captured values", + ); + } + return; +} diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index 6a14504d18..2f22b5ad73 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -3,12 +3,13 @@ "version": "0.1.0", "description": "Contains scripts and runners for testing Cursorless", "private": true, - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", - "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", + "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/cursorless-neovim --format=cjs --platform=node", "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", + "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs", "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs", "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs", "build:tests": "bash ./scripts/build-tests.sh", @@ -23,7 +24,9 @@ "license": "MIT", "dependencies": { "@cursorless/common": "workspace:*", - "glob": "^10.3.10" + "@cursorless/cursorless-neovim": "workspace:*", + "glob": "^10.3.10", + "neovim": "5.1.0" }, "devDependencies": { "@types/glob": "^8.1.0", diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts new file mode 100644 index 0000000000..7a0dcc3b28 --- /dev/null +++ b/packages/test-harness/src/index.ts @@ -0,0 +1,34 @@ +import { TestType, runAllTests } from "./runAllTests"; + +import { NvimPlugin } from "neovim"; + +/** + * Runs all extension tests. This function should only be called after attaching to the + * "node" process, such as when testing cursorless in neovim. + * We use this runner for both the local test launch config + * and the CI test runner action. + * @returns A promise that resolves when tests have finished running + */ +// FIXME: this is neovim specific atm so in the future we can support other apps here +// with an environment variable +export function run(): Promise { + // return runAllTests(TestType.neovim, TestType.unit); //TODO: use this line at the end + return runAllTests(TestType.neovim); //TODO: this allows running our test only for now +} + +/** + * Extension entrypoint called by node-client on Neovim startup. + * - Register the functions that are exposed to Neovim. + * Note that these function need to start with a capital letter to be callable from Neovim. + */ +export default function entry(plugin: NvimPlugin) { + // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation + // though it does not seem useful in practice for neovim as we can't really call CursorlessLoadExtension() again without restarting Neovim? + // plugin.setOptions({ dev: true }); + plugin.setOptions({ dev: false }); + // plugin.setOptions({ dev: false, alwaysInit: false }); + + plugin.registerFunction("TestHarnessRun", async () => await run(), { + sync: false, + }); +} diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts index 999c61c61c..b41f320a75 100644 --- a/packages/test-harness/src/runAllTests.ts +++ b/packages/test-harness/src/runAllTests.ts @@ -8,7 +8,7 @@ import { glob } from "glob"; * Type of test to run, eg unit, vscode, talon */ export enum TestType { - /** Unit tests can be run without VSCode or Talon */ + /** Unit tests can be run without VSCode or Talon or Neovim */ unit, /** VSCode tests must be run from VSCode context */ @@ -16,6 +16,9 @@ export enum TestType { /** Talon tests require a running Talon instance */ talon, + + /** Neovim tests must be run from Neovim context */ + neovim, } export function runAllTests(...types: TestType[]) { @@ -23,6 +26,10 @@ export function runAllTests(...types: TestType[]) { path.join(getCursorlessRepoRoot(), "packages"), (files) => files.filter((f) => { + if (f.endsWith("neovim.test.cjs")) { + return types.includes(TestType.neovim); + } + if (f.endsWith("vscode.test.cjs")) { return types.includes(TestType.vscode); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b7338f3fe..c09459829b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -327,12 +327,24 @@ importers: '@types/lodash': specifier: 4.14.181 version: 4.14.181 + '@types/mocha': + specifier: ^10.0.6 + version: 10.0.6 + '@types/sinon': + specifier: ^17.0.3 + version: 17.0.3 '@types/uuid': specifier: 8.3.4 version: 8.3.4 '@types/vscode': specifier: 1.66.0 version: 1.66.0 + mocha: + specifier: ^10.3.0 + version: 10.3.0 + sinon: + specifier: ^17.0.1 + version: 17.0.1 packages/cursorless-org: dependencies: @@ -659,9 +671,15 @@ importers: '@cursorless/common': specifier: workspace:* version: link:../common + '@cursorless/cursorless-neovim': + specifier: workspace:* + version: link:../cursorless-neovim glob: specifier: ^10.3.10 version: 10.3.10 + neovim: + specifier: 5.1.0 + version: 5.1.0 devDependencies: '@types/glob': specifier: ^8.1.0 From a71d0bb4c11d4239e68f201c1902b409e628a181 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 17:41:04 +0100 Subject: [PATCH 216/504] feat: pass the neovim client from the mocha test-harness to the recorded.neovim.test --- .../src/suite/recorded.neovim.test.ts | 7 ++++--- packages/test-harness/src/index.ts | 11 ++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts index 11b93a9343..308b973240 100644 --- a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts @@ -105,9 +105,10 @@ suite("recorded test cases", async function () { }); async function runTest(file: string, spyIde: SpyIDE) { - const neovimClient = await require("@cursorless/cursorless-neovim") - .neovimClientExternal; - const client = neovimClient(); + // const neovimClient = await require("@cursorless/cursorless-neovim") + // .neovimClientExternal; + // const client = neovimClient(); + const client = (global as any).additionalParameters.client; // TODO: not sure why but ide() returns an SpyIDE but then the // test against instanceof SpyIDE fails... // const getNeovimIDE = await require("@cursorless/cursorless-neovim") diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 7a0dcc3b28..0f2fcd2965 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -1,6 +1,6 @@ import { TestType, runAllTests } from "./runAllTests"; -import { NvimPlugin } from "neovim"; +import { NeovimClient, NvimPlugin } from "neovim"; /** * Runs all extension tests. This function should only be called after attaching to the @@ -11,7 +11,12 @@ import { NvimPlugin } from "neovim"; */ // FIXME: this is neovim specific atm so in the future we can support other apps here // with an environment variable -export function run(): Promise { +export function run(plugin: NvimPlugin): Promise { + // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196 + // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type + (global as any).additionalParameters = { + client: plugin.nvim as NeovimClient, + }; // return runAllTests(TestType.neovim, TestType.unit); //TODO: use this line at the end return runAllTests(TestType.neovim); //TODO: this allows running our test only for now } @@ -28,7 +33,7 @@ export default function entry(plugin: NvimPlugin) { plugin.setOptions({ dev: false }); // plugin.setOptions({ dev: false, alwaysInit: false }); - plugin.registerFunction("TestHarnessRun", async () => await run(), { + plugin.registerFunction("TestHarnessRun", async () => await run(plugin), { sync: false, }); } From 825dd19fc5a0d313a975a264c83f47ad3f3b4255 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 17 Apr 2024 20:57:43 +0100 Subject: [PATCH 217/504] build: initial new packages --- packages/cursorless-neovim-e2e/package.json | 27 +++++++++++++++++++ packages/cursorless-neovim-e2e/src/index.ts | 0 packages/cursorless-neovim-e2e/tsconfig.json | 13 +++++++++ packages/neovim-common/package.json | 27 +++++++++++++++++++ packages/neovim-common/src/index.ts | 0 packages/neovim-common/tsconfig.json | 13 +++++++++ packages/neovim-registry/package.json | 28 ++++++++++++++++++++ packages/neovim-registry/src/index.ts | 0 packages/neovim-registry/tsconfig.json | 13 +++++++++ pnpm-lock.yaml | 6 +++++ tsconfig.json | 9 +++++++ 11 files changed, 136 insertions(+) create mode 100644 packages/cursorless-neovim-e2e/package.json create mode 100644 packages/cursorless-neovim-e2e/src/index.ts create mode 100644 packages/cursorless-neovim-e2e/tsconfig.json create mode 100644 packages/neovim-common/package.json create mode 100644 packages/neovim-common/src/index.ts create mode 100644 packages/neovim-common/tsconfig.json create mode 100644 packages/neovim-registry/package.json create mode 100644 packages/neovim-registry/src/index.ts create mode 100644 packages/neovim-registry/tsconfig.json diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json new file mode 100644 index 0000000000..62655192b1 --- /dev/null +++ b/packages/cursorless-neovim-e2e/package.json @@ -0,0 +1,27 @@ +{ + "name": "@cursorless/cursorless-neovim-e2e", + "version": "1.0.0", + "description": "Our neovim end-to-end tests", + "main": "./out/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/cursorless-neovim-e2e --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "keywords": [], + "author": "", + "license": "MIT", + "type": "module", + "types": "./out/index.d.ts", + "exports": { + ".": { + "cursorless:bundler": "./src/index.ts", + "default": "./out/index.js" + } + } +} diff --git a/packages/cursorless-neovim-e2e/src/index.ts b/packages/cursorless-neovim-e2e/src/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/cursorless-neovim-e2e/tsconfig.json b/packages/cursorless-neovim-e2e/tsconfig.json new file mode 100644 index 0000000000..e4b146a68d --- /dev/null +++ b/packages/cursorless-neovim-e2e/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [], + "include": [ + "src/**/*.ts", + "src/**/*.json", + "../../typings/**/*.d.ts" + ] +} diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json new file mode 100644 index 0000000000..9750dae5d3 --- /dev/null +++ b/packages/neovim-common/package.json @@ -0,0 +1,27 @@ +{ + "name": "@cursorless/neovim-common", + "version": "1.0.0", + "description": "Common utility functions usable anywhere that neovim api is available", + "main": "./out/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/neovim-common --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "keywords": [], + "author": "", + "license": "MIT", + "type": "module", + "types": "./out/index.d.ts", + "exports": { + ".": { + "cursorless:bundler": "./src/index.ts", + "default": "./out/index.js" + } + } +} diff --git a/packages/neovim-common/src/index.ts b/packages/neovim-common/src/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/neovim-common/tsconfig.json b/packages/neovim-common/tsconfig.json new file mode 100644 index 0000000000..e4b146a68d --- /dev/null +++ b/packages/neovim-common/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [], + "include": [ + "src/**/*.ts", + "src/**/*.json", + "../../typings/**/*.d.ts" + ] +} diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json new file mode 100644 index 0000000000..7c46c9cd4c --- /dev/null +++ b/packages/neovim-registry/package.json @@ -0,0 +1,28 @@ +{ + "name": "@cursorless/neovim-registry", + "version": "1.0.0", + "description": "Registry to share apis and commands between packages for neovim", + "main": "./out/index.js", + "private": true, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/neovim-registry --parallel '/^watch:.*/'" + }, + "keywords": [], + "author": "", + "license": "MIT", + "type": "module", + "types": "./out/index.d.ts", + "exports": { + ".": { + "cursorless:bundler": "./src/index.ts", + "default": "./out/index.js" + } + } +} diff --git a/packages/neovim-registry/src/index.ts b/packages/neovim-registry/src/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/neovim-registry/tsconfig.json b/packages/neovim-registry/tsconfig.json new file mode 100644 index 0000000000..e4b146a68d --- /dev/null +++ b/packages/neovim-registry/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [], + "include": [ + "src/**/*.ts", + "src/**/*.json", + "../../typings/**/*.d.ts" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c09459829b..d0c8fbc239 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -346,6 +346,8 @@ importers: specifier: ^17.0.1 version: 17.0.1 + packages/cursorless-neovim-e2e: {} + packages/cursorless-org: dependencies: '@cursorless/cheatsheet': @@ -666,6 +668,10 @@ importers: specifier: ^0.20.2 version: 0.20.2 + packages/neovim-common: {} + + packages/neovim-registry: {} + packages/test-harness: dependencies: '@cursorless/common': diff --git a/tsconfig.json b/tsconfig.json index 79346e8ff9..6a6d00bfc4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,6 +17,9 @@ { "path": "./packages/cursorless-neovim" }, + { + "path": "./packages/cursorless-neovim-e2e" + }, { "path": "./packages/cursorless-org" }, @@ -32,6 +35,12 @@ { "path": "./packages/meta-updater" }, + { + "path": "./packages/neovim-common" + }, + { + "path": "./packages/neovim-registry" + }, { "path": "./packages/test-harness" }, From 82a2ac85abf2bb13f9b1808f0be127fcf98c7d39 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 00:55:52 +0100 Subject: [PATCH 218/504] refactor: initial huge refactoring --- .vscode/tasks.json | 33 ++++- packages/cursorless-neovim-e2e/package.json | 8 ++ .../src/endToEndTestSetup.ts | 4 +- .../src/suite/recorded.neovim.test.ts | 75 ++++------- packages/cursorless-neovim-e2e/tsconfig.json | 25 ++-- packages/cursorless-neovim/package.json | 13 +- .../src/constructTestHelpers.ts | 10 +- .../src/endToEndTestSetupOld.ts | 2 +- packages/cursorless-neovim/src/events.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 25 ++-- packages/cursorless-neovim/src/index.ts | 32 +++-- .../cursorless-neovim/src/neovimHelpers.ts | 116 +----------------- .../cursorless-neovim/src/registerCommands.ts | 61 +++++---- packages/cursorless-neovim/src/runCommand.ts | 28 ----- .../src/singletons/cursorlessapi.singleton.ts | 39 ------ .../src/suite/recorded_neovim_test.ts | 58 +++------ packages/cursorless-neovim/tsconfig.json | 6 + packages/cursorless-vscode-e2e/package.json | 1 - packages/cursorless-vscode-e2e/tsconfig.json | 3 - packages/neovim-common/package.json | 10 ++ .../src/TestHelpers.ts | 4 +- .../src/getExtensionApi.ts | 34 ++--- .../src/ide/neovim/NeovimCapabilities.ts | 0 .../src/ide/neovim/NeovimClipboard.ts | 10 +- .../src/ide/neovim/NeovimConfiguration.ts | 7 +- .../src/ide/neovim/NeovimEdit.ts | 34 ++--- .../src/ide/neovim/NeovimEvents.ts | 78 ++++++------ .../src/ide/neovim/NeovimFileSystem.ts | 0 .../src/ide/neovim/NeovimGlobalState.ts | 0 .../src/ide/neovim/NeovimIDE.ts | 4 +- .../src/ide/neovim/NeovimMessages.ts | 0 .../src/ide/neovim/NeovimTextDocumentImpl.ts | 0 .../src/ide/neovim/NeovimTextEditorImpl.ts | 7 +- .../src/ide/neovim/NeovimTextLineImpl.ts | 0 .../src/ide/neovim/hats/NeovimHats.ts | 0 packages/neovim-common/src/index.ts | 19 +++ .../src/neovimApi.ts | 0 packages/neovim-common/src/neovimHelpers.ts | 62 ++++++++++ packages/neovim-common/src/runCommand.ts | 30 +++++ .../src/testUtil/openNewEditor.ts | 4 +- .../neovim-common/src/updateTextEditor.ts | 61 +++++++++ packages/neovim-common/tsconfig.json | 25 ++-- packages/neovim-registry/package.json | 4 +- .../neovim-registry/src/NeovimRegistry.ts | 39 ++++++ packages/neovim-registry/src/index.ts | 24 ++++ .../src/singletons/registry.singleton.ts | 15 +++ packages/neovim-registry/tsconfig.json | 18 ++- packages/test-harness/package.json | 4 +- packages/test-harness/tsconfig.json | 3 + pnpm-lock.yaml | 102 +++++++++------ 50 files changed, 638 insertions(+), 501 deletions(-) rename packages/{cursorless-neovim => cursorless-neovim-e2e}/src/endToEndTestSetup.ts (93%) rename packages/{cursorless-neovim => cursorless-neovim-e2e}/src/suite/recorded.neovim.test.ts (85%) delete mode 100644 packages/cursorless-neovim/src/runCommand.ts delete mode 100644 packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts rename packages/{cursorless-neovim => neovim-common}/src/TestHelpers.ts (93%) rename packages/{cursorless-neovim => neovim-common}/src/getExtensionApi.ts (56%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimCapabilities.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimClipboard.ts (54%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimConfiguration.ts (88%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimEdit.ts (87%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimEvents.ts (57%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimFileSystem.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimGlobalState.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimIDE.ts (98%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimMessages.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimTextDocumentImpl.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimTextEditorImpl.ts (96%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/NeovimTextLineImpl.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/ide/neovim/hats/NeovimHats.ts (100%) rename packages/{cursorless-neovim => neovim-common}/src/neovimApi.ts (100%) create mode 100644 packages/neovim-common/src/neovimHelpers.ts create mode 100644 packages/neovim-common/src/runCommand.ts rename packages/{cursorless-neovim => neovim-common}/src/testUtil/openNewEditor.ts (97%) create mode 100644 packages/neovim-common/src/updateTextEditor.ts create mode 100644 packages/neovim-registry/src/NeovimRegistry.ts create mode 100644 packages/neovim-registry/src/singletons/registry.singleton.ts diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 2b8cfd8b97..9f830e8476 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -18,7 +18,11 @@ }, { "label": "Build neovim extension only", - "dependsOn": ["neovim start", "ESBuild-cursorless-neovim"], + "dependsOn": [ + "neovim start", + "ESBuild-neovim-registry", + "ESBuild-cursorless-neovim" + ], "group": "build" }, { @@ -30,12 +34,27 @@ ], "group": "build" }, + { + "label": "ESBuild-neovim-registry", + "type": "npm", + "script": "compile", + "path": "packages/neovim-registry", + "dependsOn": [], + "presentation": { + "reveal": "silent" + }, + "group": "build" + }, { "label": "ESBuild-cursorless-neovim", "type": "npm", "script": "compile", "path": "packages/cursorless-neovim", - "dependsOn": ["ESBuild-common", "ESBuild-cursorless-engine"], + "dependsOn": [ + "ESBuild-common", + "ESBuild-cursorless-engine", + "ESBuild-neovim-common" + ], "presentation": { "reveal": "silent" }, @@ -61,6 +80,16 @@ }, "group": "build" }, + { + "label": "ESBuild-neovim-common", + "type": "npm", + "script": "compile", + "path": "packages/neovim-common", + "presentation": { + "reveal": "silent" + }, + "group": "build" + }, { "label": "neovim logs", "type": "shell", diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json index 62655192b1..9913477a98 100644 --- a/packages/cursorless-neovim-e2e/package.json +++ b/packages/cursorless-neovim-e2e/package.json @@ -23,5 +23,13 @@ "cursorless:bundler": "./src/index.ts", "default": "./out/index.js" } + }, + "dependencies": { + "@cursorless/common": "workspace:*", + "@cursorless/neovim-common": "workspace:*", + "@types/chai": "4.3.14", + "@types/js-yaml": "4.0.9", + "@types/lodash": "4.17.0", + "@types/sinon": "^17.0.3" } } diff --git a/packages/cursorless-neovim/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts similarity index 93% rename from packages/cursorless-neovim/src/endToEndTestSetup.ts rename to packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts index d1c4e5f8f2..45fedc6a61 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts @@ -1,4 +1,5 @@ import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; +import { getCursorlessApi } from "@cursorless/neovim-common"; // import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; import { Context } from "mocha"; import * as sinon from "sinon"; @@ -28,9 +29,6 @@ export function endToEndTestSetup(suite: Mocha.Suite) { const title = this.test!.fullTitle(); retryCount = title === previousTestTitle ? retryCount + 1 : 0; previousTestTitle = title; - const getCursorlessApi = await require("@cursorless/cursorless-neovim") - .getCursorlessApiExternal; - // debugger; ({ ide, injectIde } = (await getCursorlessApi()).testHelpers!); spy = new SpyIDE(ide); injectIde(spy); diff --git a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts similarity index 85% rename from packages/cursorless-neovim/src/suite/recorded.neovim.test.ts rename to packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 308b973240..0e735263b9 100644 --- a/packages/cursorless-neovim/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -1,59 +1,34 @@ import { - // asyncSafety, CommandResponse, - // DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, ExcludableSnapshotField, - // extractTargetedMarks, Fallback, - // HatStability, - // marksToPlainObject, - omitByDeep, - // plainObjectToRange, + NormalizedIDE, + Position, PositionPlainObject, - // rangeToPlainObject, - // ReadOnlyHatMap, + Selection, SelectionPlainObject, - // SerializedMarks, - serializeTestFixture, - shouldUpdateFixtures, - // splitKey, SpyIDE, - spyIDERecordedValuesToPlainObject, - storedTargetKeys, TestCaseFixtureLegacy, - // TextEditor, - // TokenHat, + asyncSafety, clientSupportsFallback, - // TestCaseSnapshot, - // ExtraSnapshotField, - // IDE, - Selection, - Position, getRecordedTestPaths, - asyncSafety, - NormalizedIDE, - getFixturesPath, + omitByDeep, + serializeTestFixture, + shouldUpdateFixtures, + spyIDERecordedValuesToPlainObject, + storedTargetKeys, } from "@cursorless/common"; -// import { -// getCursorlessApi, -// openNewEditor, -// runCursorlessCommand, -// } from "@cursorless/vscode-common"; import { assert } from "chai"; import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; import { promises as fsp } from "node:fs"; -// import * as vscode from "vscode"; import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; -// import { commandApi } from "../singletons/cmdapi.singleton"; -// import { takeSnapshot } from "@cursorless/cursorless-engine"; -// import { getCursorlessApi } from "../singletons/cursorlessapi.sLevelingleton"; - -import { openNewEditor } from "../testUtil/openNewEditor"; -import { runCursorlessCommand } from "../runCommand"; -import { NeovimIDE } from "../ide/neovim/NeovimIDE"; -// import { neovimClient } from "../singletons/client.singleton"; -// import { setupFake } from "./setupFake"; +import { + NeovimIDE, + getCursorlessApi, + openNewEditor, + runCursorlessCommand, +} from "@cursorless/neovim-common"; function createPosition(position: PositionPlainObject) { return new Position(position.line, position.character); @@ -71,9 +46,6 @@ suite("recorded test cases", async function () { suiteSetup(async () => { // Necessary because opening a notebook opens the panel for some reason // await vscode.commands.executeCommand("workbench.action.closePanel"); - const getCursorlessApi = await require("@cursorless/cursorless-neovim") - .getCursorlessApiExternal; - // debugger; const { ide } = (await getCursorlessApi()).testHelpers!; // setupFake(ide, HatStability.stable); }); @@ -154,12 +126,9 @@ async function runTest(file: string, spyIde: SpyIDE) { // "Couldn't find token default.a" const usePrePhraseSnapshot = false; - const getCursorlessApi = await require("@cursorless/cursorless-neovim") - .getCursorlessApiExternal; - // debugger; - const cursorlessApi = await getCursorlessApi(); - const { takeSnapshot, setStoredTarget, commandServerApi, commandApi } = - cursorlessApi.testHelpers!; + const { takeSnapshot, setStoredTarget, commandServerApi, commandApi } = ( + await getCursorlessApi() + ).testHelpers!; const editor = await openNewEditor( client, @@ -205,10 +174,10 @@ async function runTest(file: string, spyIde: SpyIDE) { try { returnValue = await runCursorlessCommand( - client, - neovimIDE, - commandApi, - commandServerApi, + // client, + // neovimIDE, + // commandApi, + // commandServerApi, { ...fixture.command, usePrePhraseSnapshot, diff --git a/packages/cursorless-neovim-e2e/tsconfig.json b/packages/cursorless-neovim-e2e/tsconfig.json index e4b146a68d..8ffb00ee7b 100644 --- a/packages/cursorless-neovim-e2e/tsconfig.json +++ b/packages/cursorless-neovim-e2e/tsconfig.json @@ -1,13 +1,16 @@ { - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "out" - }, - "references": [], - "include": [ - "src/**/*.ts", - "src/**/*.json", - "../../typings/**/*.d.ts" - ] + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [ + { + "path": "../common" + }, + { + "path": "../neovim-common" + } + ], + "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] } diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index ebf002e1e5..84f20b8d8b 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@cursorless/neovim-registry --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -27,19 +27,16 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", + "@cursorless/neovim-common": "workspace:*", + "@cursorless/neovim-registry": "workspace:*", + "@types/chai": "4.3.14", "lodash": "^4.17.21", "neovim": "5.1.0", "vscode-uri": "3.0.6" }, "devDependencies": { - "@types/chai": "^4.3.3", "@types/js-yaml": "^4.0.2", "@types/lodash": "4.14.181", - "@types/mocha": "^10.0.6", - "@types/sinon": "^17.0.3", - "@types/uuid": "8.3.4", - "@types/vscode": "1.66.0", - "mocha": "^10.3.0", - "sinon": "^17.0.1" + "@types/uuid": "8.3.4" } } diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index bee7832e2a..10d17f7d75 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -18,9 +18,11 @@ import { plainObjectToTarget, takeSnapshot, } from "@cursorless/cursorless-engine"; -import { TestHelpers } from "./TestHelpers"; -import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { + NeovimFileSystem, + NeovimIDE, + TestHelpers, +} from "@cursorless/neovim-common"; export function constructTestHelpers( commandApi: CommandApi, @@ -35,7 +37,7 @@ export function constructTestHelpers( runIntegrationTests: () => Promise, ): TestHelpers | undefined { return { - commandApi: commandApi!, + // commandApi: commandApi!, commandServerApi: commandServerApi!, ide: normalizedIde, injectIde, diff --git a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts index 3949335998..9ccc2c91c9 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts @@ -1,5 +1,5 @@ import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; -import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { getCursorlessApi } from "@cursorless/neovim-common"; /** * The number of times the current test has been retried. Will be 0 the first diff --git a/packages/cursorless-neovim/src/events.ts b/packages/cursorless-neovim/src/events.ts index e03b96272d..eaaa991827 100644 --- a/packages/cursorless-neovim/src/events.ts +++ b/packages/cursorless-neovim/src/events.ts @@ -1,3 +1,3 @@ import { EventEmitter } from "node:events"; -export const eventEmitter = new EventEmitter(); +// export const eventEmitter = new EventEmitter(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 2de076d44e..084337468c 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -6,25 +6,28 @@ import { TextDocument, } from "@cursorless/common"; import { - createCursorlessEngine, TreeSitter, + createCursorlessEngine, } from "@cursorless/cursorless-engine"; +import { + NeovimFileSystem, + NeovimHats, + NeovimIDE, +} from "@cursorless/neovim-common"; import * as crypto from "crypto"; import * as os from "os"; import * as path from "path"; -import { NeovimHats } from "./ide/neovim/hats/NeovimHats"; -import { NeovimFileSystem } from "./ide/neovim/NeovimFileSystem"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { Language, Tree } from "web-tree-sitter"; -import { injectCommandApi } from "./singletons/cmdapi.singleton"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; -import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; -import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; +import { injectCommandApi } from "./singletons/cmdapi.singleton"; +// import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { EXTENSION_ID } from "@cursorless/neovim-common"; import { NeovimClient } from "neovim/lib/api/client"; +import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { injectClient } from "./singletons/client.singleton"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; -import { runRecordedTestCases } from "./suite/recorded_neovim_test"; +import { registerCommands } from "./registerCommands"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -82,6 +85,8 @@ export async function activate(plugin: NvimPlugin) { injectCommandApi(commandApi); // debugger; // NOTE: helps debugging + await registerCommands(client, neovimIDE, commandApi, commandServerApi); + const cursorlessApi = { testHelpers: neovimIDE.runMode === "test" @@ -103,7 +108,9 @@ export async function activate(plugin: NvimPlugin) { registerThirdPartySnippets: snippets.registerThirdPartySnippets, }, }; - injectCursorlessApi(cursorlessApi); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.registerExtensionApi(EXTENSION_ID, cursorlessApi); + // injectCursorlessApi(cursorlessApi); // await updateTextEditor(client, neovimIDE, true); console.warn("activate(): Cursorless extension loaded"); diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index b93ec6f61d..42692d0592 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,14 +1,16 @@ +import { + // CursorlessApi, + NeovimIDE, + // getCursorlessApi, +} from "@cursorless/neovim-common"; import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; -import { handleCommandInternal } from "./registerCommands"; -import { runRecordedTestCases } from "./suite/recorded_neovim_test"; -import { CursorlessApi } from "./getExtensionApi"; -import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; -import { neovimClient } from "./singletons/client.singleton"; import { getNeovimIDE } from "./neovimHelpers"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +// import { handleCommandInternal } from "./registerCommands"; +import { neovimClient } from "./singletons/client.singleton"; import { commandApi } from "./singletons/cmdapi.singleton"; import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; +import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** * Extension entrypoint called by node-client on Neovim startup. @@ -54,17 +56,13 @@ async function loadExtension(plugin: NvimPlugin) { * @param args something like XXX * @returns */ -export async function handleCommand(...args: any): Promise { - const client = await neovimClient(); - const neovimIDE = getNeovimIDE(); - const cmdApi = commandApi(); - const cmdSrvApi = commandServerApi(); - return handleCommandInternal(client, neovimIDE, cmdApi, cmdSrvApi, ...args); -} - -export function getCursorlessApiExternal(): Promise { - return getCursorlessApi(); -} +// export async function handleCommand(...args: any): Promise { +// const client = await neovimClient(); +// const neovimIDE = getNeovimIDE(); +// const cmdApi = commandApi(); +// const cmdSrvApi = commandServerApi(); +// return handleCommandInternal(client, neovimIDE, cmdApi, cmdSrvApi, ...args); +// } export function neovimClientExternal(): NeovimClient { return neovimClient(); diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts index a58ce5795d..69dc6201b5 100644 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ b/packages/cursorless-neovim/src/neovimHelpers.ts @@ -1,20 +1,6 @@ -// Helper wrappers, generally around neovimApi.ts - -import { - bufferGetSelections, - getFromClipboard, - putToClipboard, - windowGetVisibleRanges, -} from "./neovimApi"; -import { neovimClient } from "./singletons/client.singleton"; +import { NormalizedIDE, SpyIDE } from "@cursorless/common"; import { ide } from "@cursorless/cursorless-engine"; -// import { receivedBufferEvent } from "./types/BufferManager"; -import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { NormalizedIDE, Range, Selection, SpyIDE } from "@cursorless/common"; -import { receivedBufferEvent } from "./ide/neovim/NeovimEvents"; -import { eventEmitter } from "./events"; -import { NeovimClient } from "neovim"; +import { NeovimIDE } from "@cursorless/neovim-common"; // DEP-INJ: Delete this function. Is there a clean way to do it? Yes once we support pure dependency injection export function getNeovimIDE(): NeovimIDE { @@ -32,101 +18,3 @@ export function getNeovimIDE(): NeovimIDE { } return neovimIDE; } - -/** - * Initialize the current editor (and current document). - * If the current editor already exists, it will only update the current document of that editor. - * - * when we receive our first cursorless command, we will initialize an editor an document for it. - * for the following commands, we will only update the document. - * - * Atm, we only initialize one editor(current window) with one document(current buffer) - */ -// TODO: we can make this function a method of NeovimIDE class -export async function updateTextEditor( - client: NeovimClient, - neovimIDE: NeovimIDE, - minimal: boolean = false, -): Promise { - const window = await client.window; - const buffer = await window.buffer; - const lines = await buffer.lines; - let linesShown = lines; - if (lines.length >= 30) { - linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); - } - console.warn( - `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, - ); - let selections: Selection[]; - let visibleRanges: Range[]; - if (!minimal) { - selections = await bufferGetSelections(window, client); - visibleRanges = await windowGetVisibleRanges(window, client, lines); - } else { - selections = []; - visibleRanges = []; - } - const editor = neovimIDE.toNeovimEditor( - window, - buffer, - lines, - visibleRanges, - selections, - ); - // await subscribeBufferUpdates(); - - // TODO: simulate that the document is open for now from here. - // we would need to ideally do it from neovim itself - eventEmitter.emit("onDidOpenTextDocument", editor.document); - - return editor; -} - -/** - * Subscribe to buffer updates, e.g. when the text changes. - */ -// TODO: we can make this function a method of NeovimIDE class -// TODO: delete this function as done as part of toNeovimEditor() now -export async function subscribeBufferUpdates() { - const client = neovimClient(); - - const neovimIDE = getNeovimIDE(); - - /** - * "attach" to Nvim buffers to subscribe to buffer update events. - * This is similar to TextChanged but more powerful and granular. - * - * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - */ - // const buffers = await client.buffers; - const buffers = [await client.buffer]; - buffers.forEach((buf) => { - if (neovimIDE.getTextDocument(buf) !== undefined) { - console.warn(`already listening for changes in buffer: ${buf.id}`); - return; - } - console.warn(`listening for changes in buffer: ${buf.id}`); - buf.listen("lines", receivedBufferEvent); - }); -} - -export async function neovimClipboardCopy(): Promise { - const editor = ide().activeTextEditor as NeovimTextEditorImpl; - const client = neovimClient(); - const window = await client.window; - const selections = await bufferGetSelections(window, client); - const data = editor.document.getText(selections[0]); - await putToClipboard(data, client); -} - -export async function neovimClipboardPaste(): Promise { - const editor = ide().activeTextEditor as NeovimTextEditorImpl; - const client = neovimClient(); - const window = await client.window; - const data = await getFromClipboard(client); - // TODO: get the current selection indexes, - // retrieve the corresponding lines from the Buffer, - // and replace the lines with the pasted data - // NO: just issue an insert (CTRL+V) in lua -} diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 1d2b0bba16..acca401ba4 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -4,14 +4,18 @@ import { CommandServerApi, CursorlessCommandId, } from "@cursorless/common"; -import { updateTextEditor } from "./neovimHelpers"; -import { modeSwitchNormalTerminal, modeSwitchTerminal } from "./neovimApi"; + +import { CommandApi } from "@cursorless/cursorless-engine"; +import { + NeovimIDE, + modeSwitchNormalTerminal, + modeSwitchTerminal, + updateTextEditor, +} from "@cursorless/neovim-common"; +import { NeovimClient } from "neovim"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -import { NeovimClient } from "neovim"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { CommandApi } from "@cursorless/cursorless-engine"; /** * Handle the command received from the command-server Neovim extension @@ -22,17 +26,22 @@ import { CommandApi } from "@cursorless/cursorless-engine"; * @param allArguments something like XXX * @returns */ -export function handleCommandInternal(...allArguments: any[]): Promise { - const [client, neovimIDE, commandApi, cmdSrvApi, command, ...rest] = - allArguments as [ - NeovimClient, - NeovimIDE, - CommandApi, - CommandServerApi, - string, - ...unknown[], - ]; - +// export function handleCommandInternal(...allArguments: any[]): Promise { +// const [client, neovimIDE, commandApi, commandServerApi, command, ...rest] = +// allArguments as [ +// NeovimClient, +// NeovimIDE, +// CommandApi, +// CommandServerApi, +// string, +// ...unknown[], +// ]; +export async function registerCommands( + client: NeovimClient, + neovimIDE: NeovimIDE, + commandApi: CommandApi, + commandServerApi: CommandServerApi, +): Promise { const commands: Record any> = { // The core Cursorless command [CURSORLESS_COMMAND_ID]: async (...args: unknown[]) => { @@ -48,7 +57,7 @@ export function handleCommandInternal(...allArguments: any[]): Promise { const result = await commandApi.runCommandSafe(...args); const command = ensureCommandShape(args) as CommandLatest; - const focusedElementType = await cmdSrvApi.getFocusedElementType(); + const focusedElementType = await commandServerApi.getFocusedElementType(); if ( focusedElementType === "terminal" && command.action.name === "replaceWithTarget" @@ -105,14 +114,14 @@ export function handleCommandInternal(...allArguments: any[]): Promise { ["cursorless.keyboard.modal.modeToggle"]: dummyCommandHandler, }; - if (command !== "cursorless.command") { - console.warn( - `handleCommandInternal(): command=${command} is not supported`, - ); - return new Promise((resolve) => []); - } + // if (command !== "cursorless.command") { + // console.warn( + // `handleCommandInternal(): command=${command} is not supported`, + // ); + // return new Promise((resolve) => []); + // } - return commands["cursorless.command"](...rest); + // return commands["cursorless.command"](...rest); // NOTE: making the below notation work is not needed anymore as we will use pure dependency injection // const HandlerFunction = (command: string) => { // commands[command](...rest); @@ -124,6 +133,10 @@ export function handleCommandInternal(...allArguments: any[]): Promise { // vscode.commands.registerCommand(commandId, callback), // ), // ); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + Object.entries(commands).map(([commandId, callback]) => + registry.registerCommand(commandId, callback), + ); } export async function dummyCommandHandler(...args: any[]) { diff --git a/packages/cursorless-neovim/src/runCommand.ts b/packages/cursorless-neovim/src/runCommand.ts deleted file mode 100644 index cc532a44e2..0000000000 --- a/packages/cursorless-neovim/src/runCommand.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { - Command, - CommandServerApi, - CURSORLESS_COMMAND_ID, -} from "@cursorless/common"; -import { handleCommandInternal } from "./registerCommands"; -import { NeovimClient } from "neovim"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { CommandApi } from "@cursorless/cursorless-engine"; -//import * as vscode from "vscode"; - -export function runCursorlessCommand( - client: NeovimClient, - neovimIDE: NeovimIDE, - commandApi: CommandApi, - cmdSrvApi: CommandServerApi, - command: Command, -) { - //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); - return handleCommandInternal( - client, - neovimIDE, - commandApi, - cmdSrvApi, - CURSORLESS_COMMAND_ID, - command, - ); -} diff --git a/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts deleted file mode 100644 index 99ca7b71c6..0000000000 --- a/packages/cursorless-neovim/src/singletons/cursorlessapi.singleton.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { CursorlessApi } from "../getExtensionApi"; - -/** - * This is the `cursorlessapi` singleton - */ -let cursorlessapi_: CursorlessApi | undefined; -// const random = Math.random(); -// console.warn(`cursorlessapi.singleton.ts: random=${random}`); -// console.warn(`cursorlessapi.singleton.ts: __filename=${__filename}`); - -/** - * Injects an {@link CursorlessApi} object that can be used to access Cursorless extension features. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param cursorlessapi The CursorlessApi to inject - */ -export function injectCursorlessApi(cursorlessapi: CursorlessApi | undefined) { - // console.warn( - // `cursorlessapi.singleton.ts: injectCursorlessApi(): random=${random}`, - // ); - cursorlessapi_ = cursorlessapi; -} - -/** - * Gets the singleton used to access Cursorless extension features. - * @throws Error if the cursorlessapi hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The cursorlessapi object - */ -export async function getCursorlessApi(): Promise { - // console.warn( - // `cursorlessapi.singleton.ts: getCursorlessApi() random=${random}`, - // ); - if (cursorlessapi_ == null) { - throw Error("Tried to access cursorlessApi before it was injected"); - } - - return cursorlessapi_; -} diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 23b0b0449b..14ae90208b 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -1,41 +1,26 @@ import { - // asyncSafety, CommandResponse, - // DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, ExcludableSnapshotField, - // extractTargetedMarks, Fallback, - // HatStability, - // marksToPlainObject, - omitByDeep, - // plainObjectToRange, + Position, PositionPlainObject, - // rangeToPlainObject, - // ReadOnlyHatMap, + Selection, SelectionPlainObject, - // SerializedMarks, - serializeTestFixture, - shouldUpdateFixtures, - // splitKey, SpyIDE, - spyIDERecordedValuesToPlainObject, - storedTargetKeys, TestCaseFixtureLegacy, - // TextEditor, - // TokenHat, clientSupportsFallback, - // TestCaseSnapshot, - // ExtraSnapshotField, - // IDE, - Selection, - Position, getRecordedTestPaths, + omitByDeep, + serializeTestFixture, + shouldUpdateFixtures, + spyIDERecordedValuesToPlainObject, + storedTargetKeys, } from "@cursorless/common"; -// import { -// getCursorlessApi, -// openNewEditor, -// runCursorlessCommand, -// } from "@cursorless/vscode-common"; +import { + getCursorlessApi, + openNewEditor, + runCursorlessCommand, +} from "@cursorless/neovim-common"; import { assert } from "chai"; import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; @@ -47,12 +32,9 @@ import { } from "../endToEndTestSetupOld"; // import { commandApi } from "../singletons/cmdapi.singleton"; // import { takeSnapshot } from "@cursorless/cursorless-engine"; -import { getCursorlessApi } from "../singletons/cursorlessapi.singleton"; -import { openNewEditor } from "../testUtil/openNewEditor"; -import { runCursorlessCommand } from "../runCommand"; -import { neovimClient } from "../singletons/client.singleton"; import { AssertionError } from "node:assert"; import { getNeovimIDE } from "../neovimHelpers"; +import { neovimClient } from "../singletons/client.singleton"; import { commandApi } from "../singletons/cmdapi.singleton"; // import { setupFake } from "./setupFake"; @@ -187,9 +169,9 @@ async function runTest( // "Couldn't find token default.a" const usePrePhraseSnapshot = false; - const cursorlessApi = await getCursorlessApi(); - const { takeSnapshot, setStoredTarget, commandServerApi } = - cursorlessApi.testHelpers!; + const { takeSnapshot, setStoredTarget, commandServerApi } = ( + await getCursorlessApi() + ).testHelpers!; const editor = await openNewEditor( client, @@ -235,10 +217,10 @@ async function runTest( try { returnValue = await runCursorlessCommand( - client, - neovimIDE, - cmdApi, - commandServerApi, + // client, + // neovimIDE, + // cmdApi, + // commandServerApi, { ...fixture.command, usePrePhraseSnapshot, diff --git a/packages/cursorless-neovim/tsconfig.json b/packages/cursorless-neovim/tsconfig.json index 8f5961799f..49d3285db5 100644 --- a/packages/cursorless-neovim/tsconfig.json +++ b/packages/cursorless-neovim/tsconfig.json @@ -10,6 +10,12 @@ }, { "path": "../cursorless-engine" + }, + { + "path": "../neovim-common" + }, + { + "path": "../neovim-registry" } ], "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] diff --git a/packages/cursorless-vscode-e2e/package.json b/packages/cursorless-vscode-e2e/package.json index 8933b16f08..fd3c0e5cbf 100644 --- a/packages/cursorless-vscode-e2e/package.json +++ b/packages/cursorless-vscode-e2e/package.json @@ -19,7 +19,6 @@ "author": "", "license": "MIT", "dependencies": { - "@cursorless/common": "workspace:*", "@cursorless/vscode-common": "workspace:*", "immer": "^10.0.4", "lodash": "^4.17.21" diff --git a/packages/cursorless-vscode-e2e/tsconfig.json b/packages/cursorless-vscode-e2e/tsconfig.json index b68b70bede..266c98a45e 100644 --- a/packages/cursorless-vscode-e2e/tsconfig.json +++ b/packages/cursorless-vscode-e2e/tsconfig.json @@ -5,9 +5,6 @@ "rootDir": "src" }, "references": [ - { - "path": "../common" - }, { "path": "../vscode-common" } diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json index 9750dae5d3..58e8e08dbe 100644 --- a/packages/neovim-common/package.json +++ b/packages/neovim-common/package.json @@ -23,5 +23,15 @@ "cursorless:bundler": "./src/index.ts", "default": "./out/index.js" } + }, + "dependencies": { + "@cursorless/common": "workspace:*", + "@cursorless/neovim-registry": "workspace:*", + "@types/lodash": "4.17.0", + "@types/uuid": "9.0.8", + "@types/vscode": "1.88.0", + "lodash": "^4.17.21", + "neovim": "5.1.0", + "vscode-uri": "3.0.8" } } diff --git a/packages/cursorless-neovim/src/TestHelpers.ts b/packages/neovim-common/src/TestHelpers.ts similarity index 93% rename from packages/cursorless-neovim/src/TestHelpers.ts rename to packages/neovim-common/src/TestHelpers.ts index 046d71a291..62ebf313cc 100644 --- a/packages/cursorless-neovim/src/TestHelpers.ts +++ b/packages/neovim-common/src/TestHelpers.ts @@ -11,7 +11,7 @@ import type { TestCaseSnapshot, TextEditor, } from "@cursorless/common"; -import { CommandApi } from "@cursorless/cursorless-engine"; +// import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; //import { VscodeApi } from "./VscodeApi"; @@ -25,7 +25,7 @@ export interface TestHelpers { commandServerApi: FakeCommandServerApi; - commandApi: CommandApi; + // commandApi: CommandApi; //toVscodeEditor(editor: TextEditor): vscode.TextEditor; diff --git a/packages/cursorless-neovim/src/getExtensionApi.ts b/packages/neovim-common/src/getExtensionApi.ts similarity index 56% rename from packages/cursorless-neovim/src/getExtensionApi.ts rename to packages/neovim-common/src/getExtensionApi.ts index 6a50c667fe..45e6c5630d 100644 --- a/packages/cursorless-neovim/src/getExtensionApi.ts +++ b/packages/neovim-common/src/getExtensionApi.ts @@ -20,26 +20,28 @@ export interface CursorlessApi { // getLanguage(languageId: string): Language | undefined; // } -// export async function getExtensionApi(extensionId: string) { -// const extension = vscode.extensions.getExtension(extensionId); - -// return extension == null ? null : ((await extension.activate()) as T); -// } +export async function getExtensionApi(extensionId: string) { + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + const api = registry.getExtensionApi(extensionId); + return api == null ? null : (api as T); +} -// export async function getExtensionApiStrict(extensionId: string) { -// const extension = vscode.extensions.getExtension(extensionId); +export async function getExtensionApiStrict(extensionId: string) { + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + const api = registry.getExtensionApi(extensionId); -// if (extension == null) { -// throw new Error(`Could not get ${extensionId} extension`); -// } + if (api == null) { + throw new Error(`Could not get ${extensionId} extension`); + } -// return (await extension.activate()) as T; -// } + return api as T; +} -// see packages\cursorless-neovim\src\singletons\cursorlessapi.singleton.ts for implementation -// export const EXTENSION_ID = "pokey.cursorless"; -// export const getCursorlessApi = () => -// getExtensionApiStrict(EXTENSION_ID); +// see packages\cursorless-neovim\src\singletons\cursorlessapi.singleton.ts +// for old implementation +export const EXTENSION_ID = "pokey.cursorless"; +export const getCursorlessApi = () => + getExtensionApiStrict(EXTENSION_ID); // export const getParseTreeApi = () => // getExtensionApiStrict("pokey.parse-tree"); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts b/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimCapabilities.ts rename to packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts similarity index 54% rename from packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts rename to packages/neovim-common/src/ide/neovim/NeovimClipboard.ts index d3d1c470e7..7493e0fe73 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimClipboard.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts @@ -1,15 +1,15 @@ import type { Clipboard } from "@cursorless/common"; -import { neovimClient } from "../../singletons/client.singleton"; import { getFromClipboard, putToClipboard } from "../../neovimApi"; +import { NeovimClient } from "neovim"; export default class NeovimClipboard implements Clipboard { + constructor(private client: NeovimClient) {} + async readText(): Promise { - const client = await neovimClient(); - return await getFromClipboard(client); + return await getFromClipboard(this.client); } async writeText(value: string): Promise { - const client = await neovimClient(); - await putToClipboard(value, client); + await putToClipboard(value, this.client); } } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimConfiguration.ts b/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts similarity index 88% rename from packages/cursorless-neovim/src/ide/neovim/NeovimConfiguration.ts rename to packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts index 7214ba5447..bd8bf7e24f 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimConfiguration.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts @@ -32,12 +32,15 @@ export default class NeovimConfiguration implements Configuration { if (scope != null) { for (const { scope: candidateScope, values } of this.scopes) { if (scopeMatches(candidateScope, scope)) { - return get(values, path) ?? get(this.mocks, path); + return (get(values, path) ?? get(this.mocks, path)) as GetFieldType< + CursorlessConfiguration, + Path + >; } } } - return get(this.mocks, path); + return get(this.mocks, path) as GetFieldType; } onDidChangeConfiguration = this.notifier.registerListener; diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts similarity index 87% rename from packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts rename to packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 60e13a6716..295772f030 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -6,9 +6,8 @@ import { TextDocumentContentChangeEvent, } from "@cursorless/common"; import { NeovimClient, Window } from "neovim"; -import { updateTextEditor } from "../../neovimHelpers"; -import { neovimClient } from "../../singletons/client.singleton"; -import { eventEmitter } from "../../events"; +// import { eventEmitter } from "../../events"; +import { updateTextEditor } from "../../updateTextEditor"; import { NeovimIDE } from "./NeovimIDE"; export default async function neovimEdit( @@ -66,7 +65,12 @@ export default async function neovimEdit( text: edit.text, }); } - eventEmitter.emit("onDidChangeTextDocument", { + // eventEmitter.emit("onDidChangeTextDocument", { + // document: document, + // contentChanges: changes, + // }); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.emitEvent("onDidChangeTextDocument", { document: document, contentChanges: changes, }); @@ -75,11 +79,11 @@ export default async function neovimEdit( const { range, text, isReplace } = edit; if (text === "") { - await neovimDelete(range); + await neovimDelete(client, range); } else if (range.isEmpty && !isReplace) { - await neovimInsert(range.start, text); + await neovimInsert(client, range.start, text); } else { - await neovimReplace(range, text); + await neovimReplace(client, range, text); } } @@ -88,9 +92,8 @@ export default async function neovimEdit( return true; } -async function neovimDelete(range: Range): Promise { +async function neovimDelete(client: NeovimClient, range: Range): Promise { console.warn(`neovimDelete(): range=${JSON.stringify(range)}`); - const client = neovimClient(); const buffer = await client.window.buffer; // only keep the end of the last line @@ -157,14 +160,17 @@ async function neovimDelete(range: Range): Promise { }); } -async function neovimInsert(position: Position, text: string) { +async function neovimInsert( + client: NeovimClient, + position: Position, + text: string, +) { console.warn( `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`, ); // standardise newlines so we can easily split the lines const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); - const client = neovimClient(); const buffer = await client.window.buffer; const lineWhereInsertion = ( @@ -203,12 +209,12 @@ async function neovimInsert(position: Position, text: string) { ); } -async function neovimReplace(range: Range, text: string) { +async function neovimReplace(client: NeovimClient, range: Range, text: string) { console.warn( `neovimReplace(): range=${JSON.stringify(range)}, text='${text}'`, ); - await neovimDelete(range); - await neovimInsert(range.start, text); + await neovimDelete(client, range); + await neovimInsert(client, range.start, text); } function isDelete(edit: Edit): boolean { diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts similarity index 57% rename from packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts rename to packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 25c9a904d1..2d2fd227bf 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -8,13 +8,15 @@ import { } from "@cursorless/common"; import { Buffer } from "neovim"; -import { eventEmitter } from "../../events"; -import { getNeovimIDE } from "../../neovimHelpers"; +// import { eventEmitter } from "../../events"; +// import { getNeovimIDE } from "../../../../neovim-common/src/neovimHelpers"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { - eventEmitter.on("onDidChangeTextDocument", listener); + // eventEmitter.on("onDidChangeTextDocument", listener); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.emitEvent("onDidChangeTextDocument", listener); return dummyEvent(); } @@ -23,7 +25,9 @@ export function neovimOnDidOpenTextDocument( thisArgs?: any, disposables?: Disposable[] | undefined, ): Disposable { - eventEmitter.on("onDidOpenTextDocument", listener); + // eventEmitter.on("onDidOpenTextDocument", listener); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.emitEvent("onDidOpenTextDocument", listener); return dummyEvent(); } @@ -31,41 +35,41 @@ export function neovimOnDidOpenTextDocument( * @see https://neovim.io/doc/user/api.html#api-buffer-updates */ // TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? -export async function receivedBufferEvent( - buffer: Buffer, - tick: number, - firstLine: number, - lastLine: number, - linedata: string[], - more: boolean, -): Promise { - console.warn( - `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, - ); +// export async function receivedBufferEvent( +// buffer: Buffer, +// tick: number, +// firstLine: number, +// lastLine: number, +// linedata: string[], +// more: boolean, +// ): Promise { +// console.warn( +// `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, +// ); - const neovimIDE = getNeovimIDE(); - // We will need to get the document according to the buffer id - // once we want to support several windows - const document = neovimIDE.getTextDocument(buffer) as TextDocument; - // But for now we get the current document - // const document = (neovimIDE.activeTextEditor as TextEditor).document; +// const neovimIDE = getNeovimIDE(); +// // We will need to get the document according to the buffer id +// // once we want to support several windows +// const document = neovimIDE.getTextDocument(buffer) as TextDocument; +// // But for now we get the current document +// // const document = (neovimIDE.activeTextEditor as TextEditor).document; - // const contents = await document.getText(); - // console.warn( - // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, - // ); - eventEmitter.emit("onDidChangeTextDocument", { - document: document, - contentChanges: fromNeovimContentChange( - document, - buffer, - firstLine, - lastLine, - linedata, - ), - // reason: fromNeovimReason(...), - }); -} +// // const contents = await document.getText(); +// // console.warn( +// // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, +// // ); +// eventEmitter.emit("onDidChangeTextDocument", { +// document: document, +// contentChanges: fromNeovimContentChange( +// document, +// buffer, +// firstLine, +// lastLine, +// linedata, +// ), +// // reason: fromNeovimReason(...), +// }); +// } // let count = 1; export function fromNeovimContentChange( diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimFileSystem.ts rename to packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimGlobalState.ts b/packages/neovim-common/src/ide/neovim/NeovimGlobalState.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimGlobalState.ts rename to packages/neovim-common/src/ide/neovim/NeovimGlobalState.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts similarity index 98% rename from packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts rename to packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 2cd051806b..b3683332ba 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -30,7 +30,7 @@ import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import { getTalonNvimPath } from "../../neovimApi"; +import { getTalonNvimPath } from "../../../../neovim-common/src/neovimApi"; import path from "path"; import { neovimOnDidChangeTextDocument, @@ -61,7 +61,7 @@ export class NeovimIDE implements IDE { this.configuration = new NeovimConfiguration(); this.globalState = new NeovimGlobalState(); this.messages = new NeovimMessages(); - this.clipboard = new NeovimClipboard(); + this.clipboard = new NeovimClipboard(this.client); this.capabilities = new NeovimCapabilities(); this.editorMap = new Map(); this.documentMap = new Map(); diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimMessages.ts b/packages/neovim-common/src/ide/neovim/NeovimMessages.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimMessages.ts rename to packages/neovim-common/src/ide/neovim/NeovimMessages.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimTextDocumentImpl.ts rename to packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts similarity index 96% rename from packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts rename to packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts index 153cba4c29..8e4d6db12e 100644 --- a/packages/cursorless-neovim/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts @@ -12,7 +12,6 @@ import { import { NeovimClient, Window } from "neovim"; import { bufferSetSelections } from "../../neovimApi"; import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; -import { neovimClient } from "../../singletons/client.singleton"; import neovimEdit from "./NeovimEdit"; import { NeovimIDE } from "./NeovimIDE"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; @@ -71,7 +70,7 @@ export class NeovimTextEditorImpl implements EditableTextEditor { // We assume setting it on the neovim buffer never fails // as we cache the selections in the editor beforehand this._selections = selections; - await bufferSetSelections(neovimClient(), selections); + await bufferSetSelections(this.client, selections); } get options(): TextEditorOptions { @@ -149,12 +148,12 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } public async clipboardCopy(_ranges?: Range[]): Promise { - await neovimClipboardCopy(); + await neovimClipboardCopy(this.client, this.neovimIDE); // throw Error("clipboardCopy Not implemented"); } public async clipboardPaste(_ranges?: Range[]): Promise { - await neovimClipboardPaste(); + await neovimClipboardPaste(this.client, this.neovimIDE); throw Error("clipboardPaste Not implemented"); } diff --git a/packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/NeovimTextLineImpl.ts rename to packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts diff --git a/packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts b/packages/neovim-common/src/ide/neovim/hats/NeovimHats.ts similarity index 100% rename from packages/cursorless-neovim/src/ide/neovim/hats/NeovimHats.ts rename to packages/neovim-common/src/ide/neovim/hats/NeovimHats.ts diff --git a/packages/neovim-common/src/index.ts b/packages/neovim-common/src/index.ts index e69de29bb2..8d18a5202f 100644 --- a/packages/neovim-common/src/index.ts +++ b/packages/neovim-common/src/index.ts @@ -0,0 +1,19 @@ +export * from "./getExtensionApi"; +export * from "./TestHelpers"; +export * from "./testUtil/openNewEditor"; +export * from "./updateTextEditor"; +export * from "./runCommand"; +export * from "./neovimApi"; +export * from "./ide/neovim/NeovimCapabilities"; +export * from "./ide/neovim/NeovimClipboard"; +export * from "./ide/neovim/NeovimConfiguration"; +export * from "./ide/neovim/NeovimEdit"; +export * from "./ide/neovim/NeovimEvents"; +export * from "./ide/neovim/NeovimFileSystem"; +export * from "./ide/neovim/NeovimGlobalState"; +export * from "./ide/neovim/NeovimIDE"; +export * from "./ide/neovim/NeovimMessages"; +export * from "./ide/neovim/NeovimTextDocumentImpl"; +export * from "./ide/neovim/NeovimTextEditorImpl"; +export * from "./ide/neovim/NeovimTextLineImpl"; +export * from "./ide/neovim/hats/NeovimHats"; diff --git a/packages/cursorless-neovim/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts similarity index 100% rename from packages/cursorless-neovim/src/neovimApi.ts rename to packages/neovim-common/src/neovimApi.ts diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts new file mode 100644 index 0000000000..1fba258ebe --- /dev/null +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -0,0 +1,62 @@ +// Helper wrappers, generally around neovimApi.ts + +import { + bufferGetSelections, + getFromClipboard, + putToClipboard, +} from "@cursorless/neovim-common"; +import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; +import { NeovimClient } from "neovim"; +import { IDE } from "@cursorless/common"; + +/** + * Subscribe to buffer updates, e.g. when the text changes. + */ +// TODO: we can make this function a method of NeovimIDE class +// TODO: delete this function as done as part of toNeovimEditor() now +// export async function subscribeBufferUpdates() { +// const client = neovimClient(); + +// const neovimIDE = getNeovimIDE(); + +// /** +// * "attach" to Nvim buffers to subscribe to buffer update events. +// * This is similar to TextChanged but more powerful and granular. +// * +// * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() +// */ +// // const buffers = await client.buffers; +// const buffers = [await client.buffer]; +// buffers.forEach((buf) => { +// if (neovimIDE.getTextDocument(buf) !== undefined) { +// console.warn(`already listening for changes in buffer: ${buf.id}`); +// return; +// } +// console.warn(`listening for changes in buffer: ${buf.id}`); +// buf.listen("lines", receivedBufferEvent); +// }); +// } + +export async function neovimClipboardCopy( + client: NeovimClient, + ide: IDE, +): Promise { + const editor = ide.activeTextEditor as NeovimTextEditorImpl; + const window = await client.window; + const selections = await bufferGetSelections(window, client); + const data = editor.document.getText(selections[0]); + await putToClipboard(data, client); +} + +export async function neovimClipboardPaste( + client: NeovimClient, + ide: IDE, +): Promise { + const editor = ide.activeTextEditor as NeovimTextEditorImpl; + const window = await client.window; + const data = await getFromClipboard(client); + // TODO: get the current selection indexes, + // retrieve the corresponding lines from the Buffer, + // and replace the lines with the pasted data + // NO: just issue an insert (CTRL+V) in lua +} diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts new file mode 100644 index 0000000000..27fa62e231 --- /dev/null +++ b/packages/neovim-common/src/runCommand.ts @@ -0,0 +1,30 @@ +import { + Command, + // CommandServerApi, + CURSORLESS_COMMAND_ID, +} from "@cursorless/common"; +// import { CommandApi } from "@cursorless/cursorless-engine"; +// import { NeovimClient } from "neovim"; +// import { handleCommandInternal } from "../../cursorless-neovim/src/registerCommands"; +// import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +//import * as vscode from "vscode"; + +export async function runCursorlessCommand( + // client: NeovimClient, + // neovimIDE: NeovimIDE, + // commandApi: CommandApi, + // cmdSrvApi: CommandServerApi, + command: Command, +) { + //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.executeCommand(CURSORLESS_COMMAND_ID, command); + // return handleCommandInternal( + // client, + // neovimIDE, + // commandApi, + // cmdSrvApi, + // CURSORLESS_COMMAND_ID, + // command, + // ); +} diff --git a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts similarity index 97% rename from packages/cursorless-neovim/src/testUtil/openNewEditor.ts rename to packages/neovim-common/src/testUtil/openNewEditor.ts index 1a63bb6b45..db3e27093f 100644 --- a/packages/cursorless-neovim/src/testUtil/openNewEditor.ts +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts @@ -1,8 +1,8 @@ import { NeovimClient } from "neovim"; +import { NeovimIDE } from "../ide/neovim/NeovimIDE"; import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; -import { updateTextEditor } from "../neovimHelpers"; -import { NeovimIDE } from "../ide/neovim/NeovimIDE"; +import { updateTextEditor } from "../updateTextEditor"; interface NewEditorOptions { languageId?: string; diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts new file mode 100644 index 0000000000..6fc0989275 --- /dev/null +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -0,0 +1,61 @@ +import { + bufferGetSelections, + windowGetVisibleRanges, +} from "../../neovim-common/src/neovimApi"; +import { Range, Selection } from "@cursorless/common"; +import { NeovimClient } from "neovim"; +// import { eventEmitter } from "./events"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; + +/** + * Initialize the current editor (and current document). + * If the current editor already exists, it will only update the current document of that editor. + * + * when we receive our first cursorless command, we will initialize an editor an document for it. + * for the following commands, we will only update the document. + * + * Atm, we only initialize one editor(current window) with one document(current buffer) + */ +// TODO: we can make this function a method of NeovimIDE class +export async function updateTextEditor( + client: NeovimClient, + neovimIDE: NeovimIDE, + minimal: boolean = false, +): Promise { + const window = await client.window; + const buffer = await window.buffer; + const lines = await buffer.lines; + let linesShown = lines; + if (lines.length >= 30) { + linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); + } + console.warn( + `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, + ); + let selections: Selection[]; + let visibleRanges: Range[]; + if (!minimal) { + selections = await bufferGetSelections(window, client); + visibleRanges = await windowGetVisibleRanges(window, client, lines); + } else { + selections = []; + visibleRanges = []; + } + const editor = neovimIDE.toNeovimEditor( + window, + buffer, + lines, + visibleRanges, + selections, + ); + // await subscribeBufferUpdates(); + + // TODO: simulate that the document is open for now from here. + // we would need to ideally do it from neovim itself + // eventEmitter.emit("onDidOpenTextDocument", editor.document); + const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + registry.emitEvent("onDidOpenTextDocument", editor.document); + + return editor; +} diff --git a/packages/neovim-common/tsconfig.json b/packages/neovim-common/tsconfig.json index e4b146a68d..5b248ab992 100644 --- a/packages/neovim-common/tsconfig.json +++ b/packages/neovim-common/tsconfig.json @@ -1,13 +1,16 @@ { - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "out" - }, - "references": [], - "include": [ - "src/**/*.ts", - "src/**/*.json", - "../../typings/**/*.d.ts" - ] + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [ + { + "path": "../common" + }, + { + "path": "../neovim-registry" + } + ], + "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] } diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index 7c46c9cd4c..dae4c94c9e 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -3,7 +3,6 @@ "version": "1.0.0", "description": "Registry to share apis and commands between packages for neovim", "main": "./out/index.js", - "private": true, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", @@ -24,5 +23,8 @@ "cursorless:bundler": "./src/index.ts", "default": "./out/index.js" } + }, + "dependencies": { + "neovim": "5.1.0" } } diff --git a/packages/neovim-registry/src/NeovimRegistry.ts b/packages/neovim-registry/src/NeovimRegistry.ts new file mode 100644 index 0000000000..5989112015 --- /dev/null +++ b/packages/neovim-registry/src/NeovimRegistry.ts @@ -0,0 +1,39 @@ +import { EventEmitter } from "node:events"; + +export class NeovimRegistry { + private apis: Map; + private commands: Map; + private eventEmitter: EventEmitter; + + constructor() { + this.apis = new Map(); + this.commands = new Map(); + this.eventEmitter = new EventEmitter(); + } + + public registerExtensionApi(extensionId: string, api: any) { + this.apis.set(extensionId, api); + } + + public getExtensionApi(extensionId: string): any { + return this.apis.get(extensionId); + } + + public registerCommand(commandId: string, callback: any) { + this.commands.set(commandId, callback); + } + + public executeCommand(commandId: string, ...rest: any[]): any { + return this.commands.get(commandId)(...rest); + } + + public onEvent( + eventName: string | symbol, + listener: (...args: any[]) => void, + ): EventEmitter { + return this.eventEmitter.on(eventName, listener); + } + public emitEvent(eventName: string | symbol, ...args: any[]): boolean { + return this.eventEmitter.emit(eventName, ...args); + } +} diff --git a/packages/neovim-registry/src/index.ts b/packages/neovim-registry/src/index.ts index e69de29bb2..dfb606f426 100644 --- a/packages/neovim-registry/src/index.ts +++ b/packages/neovim-registry/src/index.ts @@ -0,0 +1,24 @@ +import { NvimPlugin } from "neovim"; +import { NeovimRegistry } from "./NeovimRegistry"; +import { injectRegistry, registry } from "./singletons/registry.singleton"; + +export default function entry(plugin: NvimPlugin) { + plugin.setOptions({ dev: false }); + + plugin.registerFunction( + "RegistryLoadExtension", + async () => await loadExtension(plugin), + { sync: false }, + ); +} + +async function loadExtension(plugin: NvimPlugin) { + console.warn("loadExtension(neovim-registry): start"); + const registry = new NeovimRegistry(); + injectRegistry(registry); + console.warn("loadExtension(neovim-registry): done"); +} + +export function getNeovimRegistry(): NeovimRegistry { + return registry(); +} diff --git a/packages/neovim-registry/src/singletons/registry.singleton.ts b/packages/neovim-registry/src/singletons/registry.singleton.ts new file mode 100644 index 0000000000..c8cbb03e02 --- /dev/null +++ b/packages/neovim-registry/src/singletons/registry.singleton.ts @@ -0,0 +1,15 @@ +import { NeovimRegistry } from "../NeovimRegistry"; + +let registry_: NeovimRegistry | undefined; + +export function injectRegistry(registry: NeovimRegistry | undefined) { + registry_ = registry; +} + +export function registry(): NeovimRegistry { + if (registry_ == null) { + throw Error("Tried to access registry before it was injected"); + } + + return registry_; +} diff --git a/packages/neovim-registry/tsconfig.json b/packages/neovim-registry/tsconfig.json index e4b146a68d..cea565539b 100644 --- a/packages/neovim-registry/tsconfig.json +++ b/packages/neovim-registry/tsconfig.json @@ -1,13 +1,9 @@ { - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "out" - }, - "references": [], - "include": [ - "src/**/*.ts", - "src/**/*.json", - "../../typings/**/*.d.ts" - ] + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "out" + }, + "references": [], + "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] } diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index 2f22b5ad73..18452754aa 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -6,7 +6,7 @@ "main": "./out/index.cjs", "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", - "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/cursorless-neovim --format=cjs --platform=node", + "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/neovim-common --format=cjs --platform=node", "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs", @@ -24,7 +24,7 @@ "license": "MIT", "dependencies": { "@cursorless/common": "workspace:*", - "@cursorless/cursorless-neovim": "workspace:*", + "@cursorless/neovim-common": "workspace:*", "glob": "^10.3.10", "neovim": "5.1.0" }, diff --git a/packages/test-harness/tsconfig.json b/packages/test-harness/tsconfig.json index 96107efcd7..b2995a69d6 100644 --- a/packages/test-harness/tsconfig.json +++ b/packages/test-harness/tsconfig.json @@ -8,6 +8,9 @@ "references": [ { "path": "../common" + }, + { + "path": "../neovim-common" } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0c8fbc239..479fb672de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,15 @@ importers: '@cursorless/cursorless-engine': specifier: workspace:* version: link:../cursorless-engine + '@cursorless/neovim-common': + specifier: workspace:* + version: link:../neovim-common + '@cursorless/neovim-registry': + specifier: workspace:* + version: link:../neovim-registry + '@types/chai': + specifier: 4.3.14 + version: 4.3.14 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -318,35 +327,36 @@ importers: specifier: 3.0.6 version: 3.0.6 devDependencies: - '@types/chai': - specifier: ^4.3.3 - version: 4.3.14 '@types/js-yaml': specifier: ^4.0.2 version: 4.0.9 '@types/lodash': specifier: 4.14.181 version: 4.14.181 - '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 - '@types/sinon': - specifier: ^17.0.3 - version: 17.0.3 '@types/uuid': specifier: 8.3.4 version: 8.3.4 - '@types/vscode': - specifier: 1.66.0 - version: 1.66.0 - mocha: - specifier: ^10.3.0 - version: 10.3.0 - sinon: - specifier: ^17.0.1 - version: 17.0.1 - packages/cursorless-neovim-e2e: {} + packages/cursorless-neovim-e2e: + dependencies: + '@cursorless/common': + specifier: workspace:* + version: link:../common + '@cursorless/neovim-common': + specifier: workspace:* + version: link:../neovim-common + '@types/chai': + specifier: 4.3.14 + version: 4.3.14 + '@types/js-yaml': + specifier: 4.0.9 + version: 4.0.9 + '@types/lodash': + specifier: 4.17.0 + version: 4.17.0 + '@types/sinon': + specifier: ^17.0.3 + version: 17.0.3 packages/cursorless-org: dependencies: @@ -581,9 +591,6 @@ importers: packages/cursorless-vscode-e2e: dependencies: - '@cursorless/common': - specifier: workspace:* - version: link:../common '@cursorless/vscode-common': specifier: workspace:* version: link:../vscode-common @@ -668,18 +675,47 @@ importers: specifier: ^0.20.2 version: 0.20.2 - packages/neovim-common: {} + packages/neovim-common: + dependencies: + '@cursorless/common': + specifier: workspace:* + version: link:../common + '@cursorless/neovim-registry': + specifier: workspace:* + version: link:../neovim-registry + '@types/lodash': + specifier: 4.17.0 + version: 4.17.0 + '@types/uuid': + specifier: 9.0.8 + version: 9.0.8 + '@types/vscode': + specifier: 1.88.0 + version: 1.88.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + neovim: + specifier: 5.1.0 + version: 5.1.0 + vscode-uri: + specifier: 3.0.8 + version: 3.0.8 - packages/neovim-registry: {} + packages/neovim-registry: + dependencies: + neovim: + specifier: 5.1.0 + version: 5.1.0 packages/test-harness: dependencies: '@cursorless/common': specifier: workspace:* version: link:../common - '@cursorless/cursorless-neovim': + '@cursorless/neovim-common': specifier: workspace:* - version: link:../cursorless-neovim + version: link:../neovim-common glob: specifier: ^10.3.10 version: 10.3.10 @@ -4954,7 +4990,6 @@ packages: /@types/chai@4.3.14: resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - dev: true /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -5084,7 +5119,6 @@ packages: /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - dev: true /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} @@ -5113,7 +5147,6 @@ packages: /@types/lodash@4.17.0: resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - dev: true /@types/mdast@4.0.3: resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} @@ -5282,11 +5315,9 @@ packages: resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} dependencies: '@types/sinonjs__fake-timers': 8.1.5 - dev: true /@types/sinonjs__fake-timers@8.1.5: resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - dev: true /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} @@ -5327,7 +5358,6 @@ packages: /@types/uuid@9.0.8: resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - dev: true /@types/vinyl@2.0.11: resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} @@ -5335,14 +5365,14 @@ packages: '@types/expect': 1.20.4 '@types/node': 18.18.2 - /@types/vscode@1.66.0: - resolution: {integrity: sha512-ZfJck4M7nrGasfs4A4YbUoxis3Vu24cETw3DERsNYtDZmYSYtk6ljKexKFKhImO/ZmY6ZMsmegu2FPkXoUFImA==} - dev: true - /@types/vscode@1.75.1: resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} dev: true + /@types/vscode@1.88.0: + resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} + dev: false + /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} dependencies: From e334a474d3ec63368cdc8386782df4c072d941da Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 09:28:24 +0100 Subject: [PATCH 219/504] fix: allow importing neovim-registry from command-server --- packages/neovim-registry/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index dae4c94c9e..a47c073d3b 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -2,12 +2,12 @@ "name": "@cursorless/neovim-registry", "version": "1.0.0", "description": "Registry to share apis and commands between packages for neovim", - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -21,7 +21,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "dependencies": { From 0623193d3cd568c8efe30d66c99ee2e24101e5bd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 10:12:32 +0100 Subject: [PATCH 220/504] fix: non mocha tests are working again. Passed tests: 366 / 450 (failed: 84) --- .vscode/tasks.json | 6 +----- packages/neovim-common/src/ide/neovim/NeovimEvents.ts | 4 ++-- packages/neovim-common/src/runCommand.ts | 2 +- packages/neovim-registry/src/NeovimRegistry.ts | 4 ++-- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 9f830e8476..e9b9766af5 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -27,11 +27,7 @@ }, { "label": "Build neovim extension tests only", - "dependsOn": [ - "neovim test start", - "ESBuild-cursorless-neovim", - "Build test harness" - ], + "dependsOn": ["neovim test start", "ESBuild-cursorless-neovim"], "group": "build" }, { diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 2d2fd227bf..c8cece2a67 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -16,7 +16,7 @@ export function neovimOnDidChangeTextDocument( ): Disposable { // eventEmitter.on("onDidChangeTextDocument", listener); const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.emitEvent("onDidChangeTextDocument", listener); + registry.onEvent("onDidChangeTextDocument", listener); return dummyEvent(); } @@ -27,7 +27,7 @@ export function neovimOnDidOpenTextDocument( ): Disposable { // eventEmitter.on("onDidOpenTextDocument", listener); const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.emitEvent("onDidOpenTextDocument", listener); + registry.onEvent("onDidOpenTextDocument", listener); return dummyEvent(); } diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts index 27fa62e231..4e3e452663 100644 --- a/packages/neovim-common/src/runCommand.ts +++ b/packages/neovim-common/src/runCommand.ts @@ -18,7 +18,7 @@ export async function runCursorlessCommand( ) { //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.executeCommand(CURSORLESS_COMMAND_ID, command); + return await registry.executeCommand(CURSORLESS_COMMAND_ID, command); // return handleCommandInternal( // client, // neovimIDE, diff --git a/packages/neovim-registry/src/NeovimRegistry.ts b/packages/neovim-registry/src/NeovimRegistry.ts index 5989112015..bf5fc5f916 100644 --- a/packages/neovim-registry/src/NeovimRegistry.ts +++ b/packages/neovim-registry/src/NeovimRegistry.ts @@ -23,8 +23,8 @@ export class NeovimRegistry { this.commands.set(commandId, callback); } - public executeCommand(commandId: string, ...rest: any[]): any { - return this.commands.get(commandId)(...rest); + public async executeCommand(commandId: string, ...rest: any[]): Promise { + return await this.commands.get(commandId)(...rest); } public onEvent( From d07e20132167495fb6bb52b69d8b8168acf1c7ea Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 10:38:56 +0100 Subject: [PATCH 221/504] refactor: saving changes just in case --- packages/cursorless-neovim-e2e/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json index 9913477a98..ddeddb306a 100644 --- a/packages/cursorless-neovim-e2e/package.json +++ b/packages/cursorless-neovim-e2e/package.json @@ -2,11 +2,11 @@ "name": "@cursorless/cursorless-neovim-e2e", "version": "1.0.0", "description": "Our neovim end-to-end tests", - "main": "./out/index.js", + "main": "./out/index.cjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -21,7 +21,7 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" + "default": "./out/index.cjs" } }, "dependencies": { From c40fa1361a03b9ee8052caa4ed350e5a2347b1db Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 11:38:15 +0100 Subject: [PATCH 222/504] feat: simplified the neovim registry --- .vscode/tasks.json | 6 +++++- packages/neovim-registry/src/index.ts | 20 +------------------- pnpm-lock.yaml | 6 ++++++ 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e9b9766af5..1b40a3c46b 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -27,7 +27,11 @@ }, { "label": "Build neovim extension tests only", - "dependsOn": ["neovim test start", "ESBuild-cursorless-neovim"], + "dependsOn": [ + "neovim test start", + "ESBuild-neovim-registry", + "ESBuild-cursorless-neovim" + ], "group": "build" }, { diff --git a/packages/neovim-registry/src/index.ts b/packages/neovim-registry/src/index.ts index dfb606f426..b7b7c003d3 100644 --- a/packages/neovim-registry/src/index.ts +++ b/packages/neovim-registry/src/index.ts @@ -1,23 +1,5 @@ -import { NvimPlugin } from "neovim"; import { NeovimRegistry } from "./NeovimRegistry"; -import { injectRegistry, registry } from "./singletons/registry.singleton"; - -export default function entry(plugin: NvimPlugin) { - plugin.setOptions({ dev: false }); - - plugin.registerFunction( - "RegistryLoadExtension", - async () => await loadExtension(plugin), - { sync: false }, - ); -} - -async function loadExtension(plugin: NvimPlugin) { - console.warn("loadExtension(neovim-registry): start"); - const registry = new NeovimRegistry(); - injectRegistry(registry); - console.warn("loadExtension(neovim-registry): done"); -} +import { registry } from "./singletons/registry.singleton"; export function getNeovimRegistry(): NeovimRegistry { return registry(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 479fb672de..caf605a3fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -345,6 +345,9 @@ importers: '@cursorless/neovim-common': specifier: workspace:* version: link:../neovim-common + '@cursorless/neovim-registry': + specifier: workspace:* + version: link:../neovim-registry '@types/chai': specifier: 4.3.14 version: 4.3.14 @@ -591,6 +594,9 @@ importers: packages/cursorless-vscode-e2e: dependencies: + '@cursorless/common': + specifier: workspace:* + version: link:../common '@cursorless/vscode-common': specifier: workspace:* version: link:../vscode-common From adb0831889c061565af937979d191204148e3f0a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 11:54:45 +0100 Subject: [PATCH 223/504] feat: mocha tests are working now. TestHarnessRun: 84 tests failed. --- .vscode/tasks.json | 3 ++- packages/cursorless-neovim-e2e/package.json | 15 ++++++--------- packages/cursorless-neovim-e2e/tsconfig.json | 3 +++ packages/cursorless-vscode-e2e/package.json | 1 + packages/cursorless-vscode-e2e/tsconfig.json | 3 +++ packages/neovim-registry/package.json | 1 + .../src/singletons/registry.singleton.ts | 10 +--------- packages/test-harness/package.json | 3 ++- packages/test-harness/src/runAllTests.ts | 5 +++++ packages/test-harness/tsconfig.json | 3 +++ pnpm-lock.yaml | 3 +++ 11 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 1b40a3c46b..14f4d8f929 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -30,7 +30,8 @@ "dependsOn": [ "neovim test start", "ESBuild-neovim-registry", - "ESBuild-cursorless-neovim" + "ESBuild-cursorless-neovim", + "Build test harness" ], "group": "build" }, diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json index ddeddb306a..af85f06039 100644 --- a/packages/cursorless-neovim-e2e/package.json +++ b/packages/cursorless-neovim-e2e/package.json @@ -2,15 +2,11 @@ "name": "@cursorless/cursorless-neovim-e2e", "version": "1.0.0", "description": "Our neovim end-to-end tests", - "main": "./out/index.cjs", + "private": true, + "main": "./out/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.cjs --platform=node", - "compile": "pnpm compile:tsc && pnpm compile:esbuild", - "watch:tsc": "pnpm compile:tsc --watch", - "watch:esbuild": "pnpm compile:esbuild --watch", - "watch": "pnpm run --filter @cursorless/cursorless-neovim-e2e --parallel '/^watch:.*/'", + "compile": "tsc --build", + "watch": "tsc --build --watch", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" }, "keywords": [], @@ -21,12 +17,13 @@ "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.cjs" + "default": "./out/index.js" } }, "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/neovim-common": "workspace:*", + "@cursorless/neovim-registry": "workspace:*", "@types/chai": "4.3.14", "@types/js-yaml": "4.0.9", "@types/lodash": "4.17.0", diff --git a/packages/cursorless-neovim-e2e/tsconfig.json b/packages/cursorless-neovim-e2e/tsconfig.json index 8ffb00ee7b..5c6c95e260 100644 --- a/packages/cursorless-neovim-e2e/tsconfig.json +++ b/packages/cursorless-neovim-e2e/tsconfig.json @@ -10,6 +10,9 @@ }, { "path": "../neovim-common" + }, + { + "path": "../neovim-registry" } ], "include": ["src/**/*.ts", "src/**/*.json", "../../typings/**/*.d.ts"] diff --git a/packages/cursorless-vscode-e2e/package.json b/packages/cursorless-vscode-e2e/package.json index fd3c0e5cbf..8933b16f08 100644 --- a/packages/cursorless-vscode-e2e/package.json +++ b/packages/cursorless-vscode-e2e/package.json @@ -19,6 +19,7 @@ "author": "", "license": "MIT", "dependencies": { + "@cursorless/common": "workspace:*", "@cursorless/vscode-common": "workspace:*", "immer": "^10.0.4", "lodash": "^4.17.21" diff --git a/packages/cursorless-vscode-e2e/tsconfig.json b/packages/cursorless-vscode-e2e/tsconfig.json index 266c98a45e..b68b70bede 100644 --- a/packages/cursorless-vscode-e2e/tsconfig.json +++ b/packages/cursorless-vscode-e2e/tsconfig.json @@ -5,6 +5,9 @@ "rootDir": "src" }, "references": [ + { + "path": "../common" + }, { "path": "../vscode-common" } diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index a47c073d3b..208fcece15 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "description": "Registry to share apis and commands between packages for neovim", "main": "./out/index.cjs", + "private": true, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", diff --git a/packages/neovim-registry/src/singletons/registry.singleton.ts b/packages/neovim-registry/src/singletons/registry.singleton.ts index c8cbb03e02..6e239edcf1 100644 --- a/packages/neovim-registry/src/singletons/registry.singleton.ts +++ b/packages/neovim-registry/src/singletons/registry.singleton.ts @@ -1,15 +1,7 @@ import { NeovimRegistry } from "../NeovimRegistry"; -let registry_: NeovimRegistry | undefined; - -export function injectRegistry(registry: NeovimRegistry | undefined) { - registry_ = registry; -} +const registry_ = new NeovimRegistry(); export function registry(): NeovimRegistry { - if (registry_ == null) { - throw Error("Tried to access registry before it was injected"); - } - return registry_; } diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index 18452754aa..6f0ba6902b 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -6,7 +6,7 @@ "main": "./out/index.cjs", "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", - "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/neovim-common --format=cjs --platform=node", + "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/neovim-registry --format=cjs --platform=node", "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs", @@ -25,6 +25,7 @@ "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/neovim-common": "workspace:*", + "@cursorless/neovim-registry": "workspace:*", "glob": "^10.3.10", "neovim": "5.1.0" }, diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts index b41f320a75..3b0a10cb50 100644 --- a/packages/test-harness/src/runAllTests.ts +++ b/packages/test-harness/src/runAllTests.ts @@ -52,6 +52,11 @@ async function runTestsInDir( ui: "tdd", color: true, grep: runTestSubset() ? testSubsetGrepString() : undefined, // Only run a subset of tests + // rootHooks: { + // beforeAll(){ + // this.neovimClient = ... + // } + // } }); const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot })); diff --git a/packages/test-harness/tsconfig.json b/packages/test-harness/tsconfig.json index b2995a69d6..9a4285e6c8 100644 --- a/packages/test-harness/tsconfig.json +++ b/packages/test-harness/tsconfig.json @@ -11,6 +11,9 @@ }, { "path": "../neovim-common" + }, + { + "path": "../neovim-registry" } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index caf605a3fa..b388707ab6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -722,6 +722,9 @@ importers: '@cursorless/neovim-common': specifier: workspace:* version: link:../neovim-common + '@cursorless/neovim-registry': + specifier: workspace:* + version: link:../neovim-registry glob: specifier: ^10.3.10 version: 10.3.10 From 13ba6bdbdb8a7aba49b133aabcbd8e82aec637da Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 13:48:58 +0100 Subject: [PATCH 224/504] build: avoid that the meta updater clobbers our neovim-registry package.json --- packages/meta-updater/src/updatePackageJson.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/meta-updater/src/updatePackageJson.ts b/packages/meta-updater/src/updatePackageJson.ts index 4bd1402899..d09d81ff75 100644 --- a/packages/meta-updater/src/updatePackageJson.ts +++ b/packages/meta-updater/src/updatePackageJson.ts @@ -44,7 +44,8 @@ export async function updatePackageJson( ? input.name : `@cursorless/${input.name}`; - const isLib = !isRoot && !input.private; + const isLib = + !isRoot && !input.private && input.name !== "@cursorless/neovim-registry"; const exportFields: Partial = !isLib ? {} From e045b2cefd295e9d828efc6cb95d22464115c8d4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 13:50:46 +0100 Subject: [PATCH 225/504] allow importing neovim-registry as model instead of as a path https://github.com/evanw/esbuild/issues/2811 https://github.com/gxmari007/vite-plugin-eslint/pull/60 --- packages/neovim-registry/package.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index 208fcece15..232ef11e7f 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -2,13 +2,12 @@ "name": "@cursorless/neovim-registry", "version": "1.0.0", "description": "Registry to share apis and commands between packages for neovim", - "main": "./out/index.cjs", - "private": true, + "main": "./out/index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.cjs --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.js --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -17,12 +16,11 @@ "keywords": [], "author": "", "license": "MIT", - "type": "module", "types": "./out/index.d.ts", "exports": { ".": { "cursorless:bundler": "./src/index.ts", - "default": "./out/index.cjs" + "default": "./out/index.js" } }, "dependencies": { From 06d436ea4424211bc1b11d22b569e22c4a97dc71 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 14:04:53 +0100 Subject: [PATCH 226/504] docs: todo --- packages/cursorless-neovim/TODO.md | 33 ++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 8229468c9a..d56421de00 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,3 +1,31 @@ +# questions for Pokey + +- get rid of the neovim client singleton +- should the neovim IDE, neovim text editor and neovim text document, etc be in neovim-common? see NeovimIDE being used in recorded.neovim.test.ts +- what about the eventEmitter? see NeovimEvents.ts +- what about handleCommandInternal? see runCommand.ts + +# mocha tests + +- pass the neovim client via dependency injection (do not import it between projects, since each extension has its own)(but for now it's fine to have the singleton) + - We directly import vscode in various places in cursorless vscode. We’re trying to stop, but not the end of the world if it merges that way + - the neovim e2e extension can have its own client + - we can pass the neovim client to mocha tests using a global. there’s a way to give mocha an object that tests can access https://mochajs.org/api/mocha#run not ideal, but maybe try a global variable for now https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196 take the neovim client you get when the test-harness is activated, set it on the global variable, and then get it from within the recorded.neovim.test. I just have the feeling that if things in the test runner extension need neovim client that comes in during extension activation, they should use the one that they get when the test runner extension is activated. there’s probably better ways to do it, but for now I think that’s better than different extensions relying on each others’ neovim clients. +- thinking on it, in theory we could use `global` for the other stuff in test-harness. not the prettiest thing, but it does pretty accurately capture what’s going on here. worth seeing whether there’s one single global object that any code within the same node process can access / modify +- create the new neovim registry package +- the neovim registry package would basically be 2 dictionaries, one to hold commands and another one to hold apis +- mocha environment shouldn’t be calling functions from cursorless-neovim. I have crossed that boundary lol + - basically mocha tests need to talk to cursorless-neovim, and they need to talk to neovim + - for the former (talking to cursorless-neovim) they should do so via the neovim-registry package we discussed + - for talking to neovim, they should do it via the neovim client that gets passed in when the e2e extension activates + - `openNewEditor` should go into some kind of `neovim-common` or something so both can access it. that’s how it works for vscode. we have `@cursorless/vscode`, `vscode-common`, and `@cursorless/vscode-e2e`. `@cursorless/vscode` and `@cursorless/vscode-e2e` both import from `vscode-common` + - oh is `openNewEditor` only needed by the test harness? in that case i’d still make the client be an arg to `openNewEditor`, but it can just exist in `@cursorless/neovim-e2e` + - tbh ideally `test-harness` shouldn’t have access to `ide` at all. fwiw in vscode we just pass pointers to the functions we need through cursorlessApi rather than passing the whole ide. otherwise you end up needing the test harness to import cursorless-neovim in order to get the types it wants. notice how the type signature of the helpers lives in a the `vscode-common` shared dependency https://github.com/cursorless-dev/cursorless/blob/main/packages/vscode-common/src/TestHelpers.ts +- So I need to add 3 packages: `cursorless-neovim-e2e` (for `recorded.neovim.test.ts`) and `neovim-common` (with helpers to talk to neovim through neovimClient) and `neovim-registry` (to register stuff and access them from anywhere) and `test-harness` (for the mocha machinery) + - fwiw in neovim-common, I think it should only ever get the client passed in as an arg and not store it. neovim-common should be stateless, ie no globals / singletons, that way we don’t care how / where it gets bundled up + - tbh as much of our code as possible should be stateless ie no globals / singletons +- but before we get too far it’s worth verifying that you can get the `neovim client` from the mocha `test-harness` to the test case itself + # questions - unit tests for lineCount similar to C:\work\tools\voicecoding\cursorless_fork\packages\common\src\types\range.test.ts or selection.test.ts @@ -44,8 +72,5 @@ # fidgeting +- how do you paste in terminal mode? - vim plugins in my init.lua? -- fix neovim terminology - - extension => plugin - - editor => window (any place remaining?) - have readme with the corresponding terms between vscode and neovim From 32d6346f2e710758ef82b40c48ab885761b95ab5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 14:06:20 +0100 Subject: [PATCH 227/504] refactor: clean the access to the neovim registry --- packages/cursorless-neovim/src/extension.ts | 4 ++-- packages/cursorless-neovim/src/registerCommands.ts | 6 ++++-- packages/neovim-common/src/getExtensionApi.ts | 7 +++---- packages/neovim-common/src/ide/neovim/NeovimEdit.ts | 4 ++-- packages/neovim-common/src/ide/neovim/NeovimEvents.ts | 7 +++---- packages/neovim-common/src/runCommand.ts | 4 ++-- packages/neovim-common/src/updateTextEditor.ts | 4 ++-- packages/neovim-registry/src/index.ts | 5 +---- .../neovim-registry/src/singletons/registry.singleton.ts | 7 ------- 9 files changed, 19 insertions(+), 29 deletions(-) delete mode 100644 packages/neovim-registry/src/singletons/registry.singleton.ts diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 084337468c..ed4ff9d099 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -28,6 +28,7 @@ import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { injectClient } from "./singletons/client.singleton"; import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; import { registerCommands } from "./registerCommands"; +import { neovimRegistry } from "@cursorless/neovim-registry"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -108,8 +109,7 @@ export async function activate(plugin: NvimPlugin) { registerThirdPartySnippets: snippets.registerThirdPartySnippets, }, }; - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.registerExtensionApi(EXTENSION_ID, cursorlessApi); + neovimRegistry.registerExtensionApi(EXTENSION_ID, cursorlessApi); // injectCursorlessApi(cursorlessApi); // await updateTextEditor(client, neovimIDE, true); diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index acca401ba4..a3e352895f 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -16,6 +16,7 @@ import { NeovimClient } from "neovim"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { neovimRegistry } from "@cursorless/neovim-registry"; /** * Handle the command received from the command-server Neovim extension @@ -133,9 +134,10 @@ export async function registerCommands( // vscode.commands.registerCommand(commandId, callback), // ), // ); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); + // TODO: import from the top of the file and do not need a require since it will be external + // undo it everywhere else and also in the commandr server Object.entries(commands).map(([commandId, callback]) => - registry.registerCommand(commandId, callback), + neovimRegistry.registerCommand(commandId, callback), ); } diff --git a/packages/neovim-common/src/getExtensionApi.ts b/packages/neovim-common/src/getExtensionApi.ts index 45e6c5630d..dda6b7d3e1 100644 --- a/packages/neovim-common/src/getExtensionApi.ts +++ b/packages/neovim-common/src/getExtensionApi.ts @@ -1,6 +1,7 @@ import type { SnippetMap } from "@cursorless/common"; //import * as vscode from "vscode"; import { TestHelpers } from "./TestHelpers"; +import { neovimRegistry } from "@cursorless/neovim-registry"; export interface CursorlessApi { testHelpers: TestHelpers | undefined; @@ -21,14 +22,12 @@ export interface CursorlessApi { // } export async function getExtensionApi(extensionId: string) { - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - const api = registry.getExtensionApi(extensionId); + const api = neovimRegistry.getExtensionApi(extensionId); return api == null ? null : (api as T); } export async function getExtensionApiStrict(extensionId: string) { - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - const api = registry.getExtensionApi(extensionId); + const api = neovimRegistry.getExtensionApi(extensionId); if (api == null) { throw new Error(`Could not get ${extensionId} extension`); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 295772f030..906c66cec9 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -9,6 +9,7 @@ import { NeovimClient, Window } from "neovim"; // import { eventEmitter } from "../../events"; import { updateTextEditor } from "../../updateTextEditor"; import { NeovimIDE } from "./NeovimIDE"; +import { neovimRegistry } from "@cursorless/neovim-registry"; export default async function neovimEdit( client: NeovimClient, @@ -69,8 +70,7 @@ export default async function neovimEdit( // document: document, // contentChanges: changes, // }); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.emitEvent("onDidChangeTextDocument", { + neovimRegistry.emitEvent("onDidChangeTextDocument", { document: document, contentChanges: changes, }); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index c8cece2a67..78ff4bacc8 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -6,6 +6,7 @@ import { TextDocumentChangeEvent, TextDocumentContentChangeEvent, } from "@cursorless/common"; +import { neovimRegistry } from "@cursorless/neovim-registry"; import { Buffer } from "neovim"; // import { eventEmitter } from "../../events"; @@ -15,8 +16,7 @@ export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { // eventEmitter.on("onDidChangeTextDocument", listener); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.onEvent("onDidChangeTextDocument", listener); + neovimRegistry.onEvent("onDidChangeTextDocument", listener); return dummyEvent(); } @@ -26,8 +26,7 @@ export function neovimOnDidOpenTextDocument( disposables?: Disposable[] | undefined, ): Disposable { // eventEmitter.on("onDidOpenTextDocument", listener); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.onEvent("onDidOpenTextDocument", listener); + neovimRegistry.onEvent("onDidOpenTextDocument", listener); return dummyEvent(); } diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts index 4e3e452663..8d868daafb 100644 --- a/packages/neovim-common/src/runCommand.ts +++ b/packages/neovim-common/src/runCommand.ts @@ -3,6 +3,7 @@ import { // CommandServerApi, CURSORLESS_COMMAND_ID, } from "@cursorless/common"; +import { neovimRegistry } from "@cursorless/neovim-registry"; // import { CommandApi } from "@cursorless/cursorless-engine"; // import { NeovimClient } from "neovim"; // import { handleCommandInternal } from "../../cursorless-neovim/src/registerCommands"; @@ -17,8 +18,7 @@ export async function runCursorlessCommand( command: Command, ) { //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - return await registry.executeCommand(CURSORLESS_COMMAND_ID, command); + return await neovimRegistry.executeCommand(CURSORLESS_COMMAND_ID, command); // return handleCommandInternal( // client, // neovimIDE, diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index 6fc0989275..2fa97ca4da 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -7,6 +7,7 @@ import { NeovimClient } from "neovim"; // import { eventEmitter } from "./events"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; +import { neovimRegistry } from "@cursorless/neovim-registry"; /** * Initialize the current editor (and current document). @@ -54,8 +55,7 @@ export async function updateTextEditor( // TODO: simulate that the document is open for now from here. // we would need to ideally do it from neovim itself // eventEmitter.emit("onDidOpenTextDocument", editor.document); - const registry = require("@cursorless/neovim-registry").getNeovimRegistry(); - registry.emitEvent("onDidOpenTextDocument", editor.document); + neovimRegistry.emitEvent("onDidOpenTextDocument", editor.document); return editor; } diff --git a/packages/neovim-registry/src/index.ts b/packages/neovim-registry/src/index.ts index b7b7c003d3..1103d547ed 100644 --- a/packages/neovim-registry/src/index.ts +++ b/packages/neovim-registry/src/index.ts @@ -1,6 +1,3 @@ import { NeovimRegistry } from "./NeovimRegistry"; -import { registry } from "./singletons/registry.singleton"; -export function getNeovimRegistry(): NeovimRegistry { - return registry(); -} +export const neovimRegistry = new NeovimRegistry(); diff --git a/packages/neovim-registry/src/singletons/registry.singleton.ts b/packages/neovim-registry/src/singletons/registry.singleton.ts deleted file mode 100644 index 6e239edcf1..0000000000 --- a/packages/neovim-registry/src/singletons/registry.singleton.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { NeovimRegistry } from "../NeovimRegistry"; - -const registry_ = new NeovimRegistry(); - -export function registry(): NeovimRegistry { - return registry_; -} From def59cdddd91eb11f1bfef01a35bbf02e4fe7610 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 15:32:09 +0100 Subject: [PATCH 228/504] feat: add cursorless-talon file --- cursorless-talon/src/apps/cursorless_neovim.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 cursorless-talon/src/apps/cursorless_neovim.py diff --git a/cursorless-talon/src/apps/cursorless_neovim.py b/cursorless-talon/src/apps/cursorless_neovim.py new file mode 100644 index 0000000000..69364eb149 --- /dev/null +++ b/cursorless-talon/src/apps/cursorless_neovim.py @@ -0,0 +1,9 @@ +from talon import Context, actions + +ctx = Context() + +ctx.matches = r""" +app: neovim +""" + +ctx.tags = ["user.cursorless"] From a00b94124923aba1f1d292c06f56bc2cc725cf9e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 15:32:37 +0100 Subject: [PATCH 229/504] feat: remove an old file --- cursorless-talon/src/apps/neovim_vscode.py | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 cursorless-talon/src/apps/neovim_vscode.py diff --git a/cursorless-talon/src/apps/neovim_vscode.py b/cursorless-talon/src/apps/neovim_vscode.py deleted file mode 100644 index 4474dc87ef..0000000000 --- a/cursorless-talon/src/apps/neovim_vscode.py +++ /dev/null @@ -1,3 +0,0 @@ -raise BaseException( - "please use cursorless-talon from https://github.com/saidelike/cursorless-talon/tree/neovim" -) From 13cbe9efc901cb0d1cbb8bb312285449f2fbebc3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 15:35:19 +0100 Subject: [PATCH 230/504] refactor: clean up all the neovim ide accesses --- packages/common/src/ide/PassthroughIDEBase.ts | 3 +- .../src/endToEndTestSetup.ts | 9 ++++-- .../src/suite/recorded.neovim.test.ts | 31 ++++++------------- .../src/NeovimCommandServerApi.ts | 3 ++ .../src/constructTestHelpers.ts | 1 + .../src/endToEndTestSetupOld.ts | 10 +++--- packages/cursorless-neovim/src/index.ts | 27 ---------------- .../cursorless-neovim/src/neovimHelpers.ts | 20 ------------ .../src/suite/recorded_neovim_test.ts | 25 ++++++--------- packages/neovim-common/package.json | 3 +- packages/neovim-common/src/TestHelpers.ts | 2 ++ .../src/ide/neovim/NeovimEvents.ts | 2 -- 12 files changed, 38 insertions(+), 98 deletions(-) delete mode 100644 packages/cursorless-neovim/src/neovimHelpers.ts diff --git a/packages/common/src/ide/PassthroughIDEBase.ts b/packages/common/src/ide/PassthroughIDEBase.ts index 9be18e2382..788a632ee5 100644 --- a/packages/common/src/ide/PassthroughIDEBase.ts +++ b/packages/common/src/ide/PassthroughIDEBase.ts @@ -28,8 +28,7 @@ export default class PassthroughIDEBase implements IDE { messages: Messages; capabilities: Capabilities; - // DEP-INJ: revert "original" to be "private". we can do that after using pure dependency injection - constructor(public original: IDE) { + constructor(private original: IDE) { this.configuration = original.configuration; this.globalState = original.globalState; this.clipboard = original.clipboard; diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts index 45fedc6a61..dfd2754daa 100644 --- a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts @@ -1,6 +1,5 @@ import { IDE, shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; -import { getCursorlessApi } from "@cursorless/neovim-common"; -// import { getCursorlessApi } from "./singletons/cursorlessapi.singleton"; +import { getCursorlessApi, NeovimIDE } from "@cursorless/neovim-common"; import { Context } from "mocha"; import * as sinon from "sinon"; @@ -24,12 +23,13 @@ export function endToEndTestSetup(suite: Mocha.Suite) { let ide: IDE; let injectIde: (ide: IDE) => void; let spy: SpyIDE | undefined; + let neovimIDE: NeovimIDE; setup(async function (this: Context) { const title = this.test!.fullTitle(); retryCount = title === previousTestTitle ? retryCount + 1 : 0; previousTestTitle = title; - ({ ide, injectIde } = (await getCursorlessApi()).testHelpers!); + ({ ide, injectIde, neovimIDE } = (await getCursorlessApi()).testHelpers!); spy = new SpyIDE(ide); injectIde(spy); }); @@ -43,6 +43,9 @@ export function endToEndTestSetup(suite: Mocha.Suite) { getSpy() { return spy; }, + getNeovimIDE() { + return neovimIDE; + }, }; } diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 0e735263b9..ac2506af60 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -2,7 +2,6 @@ import { CommandResponse, ExcludableSnapshotField, Fallback, - NormalizedIDE, Position, PositionPlainObject, Selection, @@ -18,17 +17,17 @@ import { spyIDERecordedValuesToPlainObject, storedTargetKeys, } from "@cursorless/common"; -import { assert } from "chai"; -import * as yaml from "js-yaml"; -import { isUndefined } from "lodash"; -import { promises as fsp } from "node:fs"; -import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; import { NeovimIDE, getCursorlessApi, openNewEditor, runCursorlessCommand, } from "@cursorless/neovim-common"; +import { assert } from "chai"; +import * as yaml from "js-yaml"; +import { isUndefined } from "lodash"; +import { promises as fsp } from "node:fs"; +import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; function createPosition(position: PositionPlainObject) { return new Position(position.line, position.character); @@ -41,7 +40,7 @@ function createSelection(selection: SelectionPlainObject): Selection { } suite("recorded test cases", async function () { - const { getSpy } = endToEndTestSetup(this); + const { getSpy, getNeovimIDE } = endToEndTestSetup(this); suiteSetup(async () => { // Necessary because opening a notebook opens the panel for some reason @@ -65,29 +64,19 @@ suite("recorded test cases", async function () { for (const { name, path } of tests) { test( name, - asyncSafety(() => runTest(path, getSpy()!)), + asyncSafety(() => runTest(path, getSpy()!, getNeovimIDE()!)), ); } // getRecordedTestPaths().forEach(({ name, path }) => // test( // name, - // asyncSafety(() => runTest(path, getSpy()!)), + // asyncSafety(() => runTest(path, getSpy()!, getNeovimIDE()!)), // ), // ); }); -async function runTest(file: string, spyIde: SpyIDE) { - // const neovimClient = await require("@cursorless/cursorless-neovim") - // .neovimClientExternal; - // const client = neovimClient(); +async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { const client = (global as any).additionalParameters.client; - // TODO: not sure why but ide() returns an SpyIDE but then the - // test against instanceof SpyIDE fails... - // const getNeovimIDE = await require("@cursorless/cursorless-neovim") - // .getNeovimIDEExternal; - // const neovimIDE = await getNeovimIDE(); - const normalizedIDE = spyIde.original as NormalizedIDE; - const neovimIDE = normalizedIDE.original as NeovimIDE; const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; @@ -126,7 +115,7 @@ async function runTest(file: string, spyIde: SpyIDE) { // "Couldn't find token default.a" const usePrePhraseSnapshot = false; - const { takeSnapshot, setStoredTarget, commandServerApi, commandApi } = ( + const { takeSnapshot, setStoredTarget, commandServerApi } = ( await getCursorlessApi() ).testHelpers!; diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts index 77d6efa95d..bb01d3e356 100644 --- a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts +++ b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts @@ -12,6 +12,9 @@ export class NeovimCommandServerApi implements CommandServerApi { this.signals = { prePhrase: { getVersion: async () => null } }; } + // for vscode, it is actually stored into the command-server + // https://github.com/pokey/command-server/blob/main/src/extension.ts#L32 + // I am not sure why it is stored into the command-server and not in the Cursorless extension async getFocusedElementType(): Promise { const currentMode = await this.client.mode; if (currentMode.mode === "t" || currentMode.mode === "nt") { diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 10d17f7d75..77896cee56 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -40,6 +40,7 @@ export function constructTestHelpers( // commandApi: commandApi!, commandServerApi: commandServerApi!, ide: normalizedIde, + neovimIDE, injectIde, scopeProvider, diff --git a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts index 9ccc2c91c9..859d448b2b 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts @@ -17,16 +17,16 @@ const retryCount = 5; export async function endToEndTestSetupOld() { async function setup() { - const { ide, injectIde } = (await getCursorlessApi()).testHelpers!; + const { ide, injectIde, neovimIDE } = (await getCursorlessApi()) + .testHelpers!; const spy = new SpyIDE(ide); injectIde(spy); - return spy; + return { spy, neovimIDE }; } return { - async getSpy() { - const spy = await setup(); - return spy; + async getSpyAndNeovimIDE() { + return await setup(); }, }; } diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 42692d0592..db1aaac9d3 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,15 +1,6 @@ -import { - // CursorlessApi, - NeovimIDE, - // getCursorlessApi, -} from "@cursorless/neovim-common"; import { NeovimClient, NvimPlugin } from "neovim"; import { activate } from "./extension"; -import { getNeovimIDE } from "./neovimHelpers"; -// import { handleCommandInternal } from "./registerCommands"; import { neovimClient } from "./singletons/client.singleton"; -import { commandApi } from "./singletons/cmdapi.singleton"; -import { commandServerApi } from "./singletons/cmdsrvapi.singleton"; import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** @@ -50,24 +41,6 @@ async function loadExtension(plugin: NvimPlugin) { console.warn("loadExtension(cursorless-neovim): done"); } -/** - * Handle the command received from the command-server Neovim extension - * NOTE: this is why we export it from the main file - * @param args something like XXX - * @returns - */ -// export async function handleCommand(...args: any): Promise { -// const client = await neovimClient(); -// const neovimIDE = getNeovimIDE(); -// const cmdApi = commandApi(); -// const cmdSrvApi = commandServerApi(); -// return handleCommandInternal(client, neovimIDE, cmdApi, cmdSrvApi, ...args); -// } - export function neovimClientExternal(): NeovimClient { return neovimClient(); } - -export function getNeovimIDEExternal(): NeovimIDE { - return getNeovimIDE(); -} diff --git a/packages/cursorless-neovim/src/neovimHelpers.ts b/packages/cursorless-neovim/src/neovimHelpers.ts deleted file mode 100644 index 69dc6201b5..0000000000 --- a/packages/cursorless-neovim/src/neovimHelpers.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { NormalizedIDE, SpyIDE } from "@cursorless/common"; -import { ide } from "@cursorless/cursorless-engine"; -import { NeovimIDE } from "@cursorless/neovim-common"; - -// DEP-INJ: Delete this function. Is there a clean way to do it? Yes once we support pure dependency injection -export function getNeovimIDE(): NeovimIDE { - const ide_ = ide(); - let neovimIDE: NeovimIDE; - if (ide_ instanceof NeovimIDE) { - neovimIDE = ide_; - } else if (ide_ instanceof NormalizedIDE) { - neovimIDE = ide_.original as NeovimIDE; - } else if (ide_ instanceof SpyIDE) { - const normalizedIDE = ide_.original as NormalizedIDE; - neovimIDE = normalizedIDE.original as NeovimIDE; - } else { - throw Error("getNeovimIDE(): ide() is not NeovimIDE"); - } - return neovimIDE; -} diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 14ae90208b..734cdd8f50 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -17,6 +17,7 @@ import { storedTargetKeys, } from "@cursorless/common"; import { + NeovimIDE, getCursorlessApi, openNewEditor, runCursorlessCommand, @@ -33,9 +34,7 @@ import { // import { commandApi } from "../singletons/cmdapi.singleton"; // import { takeSnapshot } from "@cursorless/cursorless-engine"; import { AssertionError } from "node:assert"; -import { getNeovimIDE } from "../neovimHelpers"; import { neovimClient } from "../singletons/client.singleton"; -import { commandApi } from "../singletons/cmdapi.singleton"; // import { setupFake } from "./setupFake"; type errorType = { @@ -93,7 +92,7 @@ function showSummaryTests() { } export async function runRecordedTestCases() { - const { getSpy } = await endToEndTestSetupOld(); + const { getSpyAndNeovimIDE } = await endToEndTestSetupOld(); // Run all tests const tests = getRecordedTestPaths(); @@ -110,7 +109,8 @@ export async function runRecordedTestCases() { for (const { name, path } of tests) { let executed = true; try { - executed = await runTest(name, path, await getSpy()!); + const { spy, neovimIDE } = await getSpyAndNeovimIDE(); + executed = await runTest(name, path, spy!, neovimIDE!); } catch (err) { const error = err as AssertionError; showFailedTest(name, error); @@ -129,10 +129,9 @@ async function runTest( name: string, file: string, spyIde: SpyIDE, + neovimIDE: NeovimIDE, ): Promise { const client = neovimClient(); - const neovimIDE = getNeovimIDE(); - const cmdApi = commandApi(); const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; @@ -216,16 +215,10 @@ async function runTest( let fallback: Fallback | undefined; try { - returnValue = await runCursorlessCommand( - // client, - // neovimIDE, - // cmdApi, - // commandServerApi, - { - ...fixture.command, - usePrePhraseSnapshot, - }, - ); + returnValue = await runCursorlessCommand({ + ...fixture.command, + usePrePhraseSnapshot, + }); if (clientSupportsFallback(fixture.command)) { const commandResponse = returnValue as CommandResponse; returnValue = diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json index 58e8e08dbe..e740bbdc34 100644 --- a/packages/neovim-common/package.json +++ b/packages/neovim-common/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -16,7 +16,6 @@ "keywords": [], "author": "", "license": "MIT", - "type": "module", "types": "./out/index.d.ts", "exports": { ".": { diff --git a/packages/neovim-common/src/TestHelpers.ts b/packages/neovim-common/src/TestHelpers.ts index 62ebf313cc..c0685be61c 100644 --- a/packages/neovim-common/src/TestHelpers.ts +++ b/packages/neovim-common/src/TestHelpers.ts @@ -11,12 +11,14 @@ import type { TestCaseSnapshot, TextEditor, } from "@cursorless/common"; +import { NeovimIDE } from "./ide/neovim/NeovimIDE"; // import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; //import { VscodeApi } from "./VscodeApi"; export interface TestHelpers { ide: NormalizedIDE; + neovimIDE: NeovimIDE; injectIde: (ide: IDE) => void; scopeProvider: ScopeProvider; diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 78ff4bacc8..6c00ab55fc 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -9,8 +9,6 @@ import { import { neovimRegistry } from "@cursorless/neovim-registry"; import { Buffer } from "neovim"; -// import { eventEmitter } from "../../events"; -// import { getNeovimIDE } from "../../../../neovim-common/src/neovimHelpers"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, From 20662a1089208f09356c2431f419492dc1b7c55a Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 15:36:31 +0100 Subject: [PATCH 231/504] build: git ignore and todo --- .gitignore | 1 - packages/cursorless-neovim/TODO.md | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 65937962c3..1af9d26983 100644 --- a/.gitignore +++ b/.gitignore @@ -43,5 +43,4 @@ next-env.d.ts # test subset config packages/test-harness/testSubsetGrep.properties -old packages/cursorless-neovim/test diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index d56421de00..07f6c9a5e6 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -5,6 +5,8 @@ - what about the eventEmitter? see NeovimEvents.ts - what about handleCommandInternal? see runCommand.ts +- open PR: async-getFocusedElementType (Cursorless and command server) + # mocha tests - pass the neovim client via dependency injection (do not import it between projects, since each extension has its own)(but for now it's fine to have the singleton) From 0fba9722ff2ac93535113fec434e7ac3608721a2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:39:34 +0000 Subject: [PATCH 232/504] [pre-commit.ci lite] apply automatic fixes --- cursorless-talon/src/apps/cursorless_neovim.py | 2 +- packages/cursorless-neovim/src/events.ts | 2 -- packages/cursorless-neovim/src/registerCommands.ts | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cursorless-talon/src/apps/cursorless_neovim.py b/cursorless-talon/src/apps/cursorless_neovim.py index 69364eb149..2d0ad912ed 100644 --- a/cursorless-talon/src/apps/cursorless_neovim.py +++ b/cursorless-talon/src/apps/cursorless_neovim.py @@ -1,4 +1,4 @@ -from talon import Context, actions +from talon import Context ctx = Context() diff --git a/packages/cursorless-neovim/src/events.ts b/packages/cursorless-neovim/src/events.ts index eaaa991827..f710ccd0b2 100644 --- a/packages/cursorless-neovim/src/events.ts +++ b/packages/cursorless-neovim/src/events.ts @@ -1,3 +1 @@ -import { EventEmitter } from "node:events"; - // export const eventEmitter = new EventEmitter(); diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 3adad2a423..0d9ae4c4c2 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -16,7 +16,7 @@ import { NeovimClient } from "neovim"; import { neovimRegistry } from "@cursorless/neovim-registry"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { ensureCommandShape } from "@cursorless/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; /** * Handle the command received from the command-server Neovim extension From 1123bef6e4ca7a1d797fe718b14b3e409fa074ce Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 16:05:40 +0100 Subject: [PATCH 233/504] refactor: revert console.warn to console.log --- packages/cursorless-engine/src/core/Debug.ts | 6 ++-- .../src/core/updateSelections/RangeUpdater.ts | 2 +- .../cursorless-engine/src/cursorlessEngine.ts | 4 +-- .../queryPredicateOperators.ts | 2 +- .../scripts/transformRecordedTests/index.ts | 4 +-- .../src/testCaseRecorder/TestCaseRecorder.ts | 4 +-- .../src/testUtil/TalonRepl.ts | 2 +- .../src/suite/recorded.neovim.test.ts | 6 ++-- packages/cursorless-neovim/TODO.md | 5 +++- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-neovim/src/index.ts | 6 ++-- .../cursorless-neovim/src/registerCommands.ts | 4 +-- .../src/suite/recorded_neovim_test.ts | 24 ++++++++-------- .../src/components/embedded-video.tsx | 2 +- .../cursorless-vscode/src/logQuickActions.ts | 2 +- .../src/ide/neovim/NeovimEdit.ts | 24 ++++++++-------- .../src/ide/neovim/NeovimEvents.ts | 8 +++--- .../src/ide/neovim/NeovimFileSystem.ts | 4 +-- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 16 +++++------ .../src/ide/neovim/NeovimTextDocumentImpl.ts | 28 +++++++++---------- .../src/ide/neovim/NeovimTextLineImpl.ts | 14 +++++----- packages/neovim-common/src/neovimApi.ts | 8 +++--- packages/neovim-common/src/neovimHelpers.ts | 4 +-- .../neovim-common/src/updateTextEditor.ts | 2 +- .../src/launchVscodeAndRunTests.ts | 4 +-- .../src/scripts/generateTestSubsetFile.ts | 2 +- 26 files changed, 95 insertions(+), 94 deletions(-) diff --git a/packages/cursorless-engine/src/core/Debug.ts b/packages/cursorless-engine/src/core/Debug.ts index 0f3dddb6d8..8d9ff5c597 100644 --- a/packages/cursorless-engine/src/core/Debug.ts +++ b/packages/cursorless-engine/src/core/Debug.ts @@ -38,7 +38,7 @@ export class Debug { log(...args: any[]) { if (this.active) { - console.warn(...args); + console.log(...args); } } @@ -117,7 +117,7 @@ export class Debug { text += `"${cursor.nodeType}"`; } - console.warn(text); + console.log(text); if ( !nodeIsLast && @@ -127,7 +127,7 @@ export class Debug { } if (nodeIsNamed && !nodeIsLast) { - console.warn(`${indent})`); + console.log(`${indent})`); } } diff --git a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts index 909f729f57..6685f6bd32 100644 --- a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts +++ b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts @@ -97,7 +97,7 @@ export class RangeUpdater { this.disposable = ide().onDidChangeTextDocument( (event: TextDocumentChangeEvent) => { const changes = event.contentChanges; - console.warn( + console.log( `RangeUpdater.listenForDocumentChanges(): changes=${JSON.stringify(changes)}`, ); const documentReplaceEditLists = this.getDocumentReplaceEditLists( diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index 0b27a75371..e4ec1f4c6a 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -111,8 +111,8 @@ export async function createCursorlessEngine( hatTokenMap, snippets, injectIde, - runIntegrationTests: async () => - await runIntegrationTests(treeSitter, languageDefinitions), + runIntegrationTests: () => + runIntegrationTests(treeSitter, languageDefinitions), addCommandRunnerDecorator: (decorator: CommandRunnerDecorator) => { commandRunnerDecorators.push(decorator); }, diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts b/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts index 139e456f88..92177ace8f 100644 --- a/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts +++ b/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts @@ -193,7 +193,7 @@ class Log extends QueryPredicateOperator { schema = z.tuple([q.node]); run(nodeInfo: MutableQueryCapture) { - console.warn(`#log!: ${nodeInfo.name}@${nodeInfo.range}`); + console.log(`#log!: ${nodeInfo.name}@${nodeInfo.range}`); return true; } } diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts b/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts index a8b80025a4..9581deff31 100644 --- a/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts +++ b/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts @@ -37,8 +37,8 @@ async function main(args: string[]) { await transformFile(transformation, path); } catch (err) { failureCount++; - console.warn(`Error with file ${path}`); - console.warn((err as Error).message); + console.log(`Error with file ${path}`); + console.log((err as Error).message); } } diff --git a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts index 2eeaccacab..31436e4f9e 100644 --- a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts +++ b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts @@ -366,9 +366,9 @@ export class TestCaseRecorder { if (action === "Delete") { await fs.unlink(outPath, (err) => { if (err) { - console.warn(`failed to delete ${outPath}: ${err}`); + console.log(`failed to delete ${outPath}: ${err}`); } else { - console.warn(`deleted ${outPath}`); + console.log(`deleted ${outPath}`); } }); } diff --git a/packages/cursorless-engine/src/testUtil/TalonRepl.ts b/packages/cursorless-engine/src/testUtil/TalonRepl.ts index 82e32df492..bbb10e6bf4 100644 --- a/packages/cursorless-engine/src/testUtil/TalonRepl.ts +++ b/packages/cursorless-engine/src/testUtil/TalonRepl.ts @@ -76,7 +76,7 @@ export class TalonRepl { break; } - console.warn(output); + console.log(output); if (tryCount++ > MAX_OUTPUT_TO_EAT) { throw Error("Too much output to eat"); diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index ac2506af60..8630a1d7e4 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -103,13 +103,13 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { // Uncomment below for debugging // if (name === "recorded/implicitExpansion/chuckBoundingThat") { - // console.warn(`runTest(${name}) => let's analyze it`); + // console.log(`runTest(${name}) => let's analyze it`); // } - console.warn( + console.log( "------------------------------------------------------------------------------", ); - console.warn(`runTest(${file})...`); + console.log(`runTest(${file})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests // "Couldn't find token default.a" diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 07f6c9a5e6..ee65640e8d 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -5,7 +5,10 @@ - what about the eventEmitter? see NeovimEvents.ts - what about handleCommandInternal? see runCommand.ts -- open PR: async-getFocusedElementType (Cursorless and command server) +- open PR: + - async getFocusedElementType (Cursorless and command server) + - test-harness vscode specifics + - some missing await # mocha tests diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index ed4ff9d099..ea793aaf65 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -113,7 +113,7 @@ export async function activate(plugin: NvimPlugin) { // injectCursorlessApi(cursorlessApi); // await updateTextEditor(client, neovimIDE, true); - console.warn("activate(): Cursorless extension loaded"); + console.log("activate(): Cursorless extension loaded"); } async function createNeovimIde(client: NeovimClient) { diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index db1aaac9d3..dbdf9be7d4 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -33,12 +33,12 @@ export default function entry(plugin: NvimPlugin) { * Load the cursorless engine. */ async function loadExtension(plugin: NvimPlugin) { - console.warn( + console.log( "===============================================================================================", ); - console.warn("loadExtension(cursorless-neovim): start"); + console.log("loadExtension(cursorless-neovim): start"); await activate(plugin); - console.warn("loadExtension(cursorless-neovim): done"); + console.log("loadExtension(cursorless-neovim): done"); } export function neovimClientExternal(): NeovimClient { diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 3adad2a423..9dae2c6152 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -116,7 +116,7 @@ export async function registerCommands( }; // if (command !== "cursorless.command") { - // console.warn( + // console.log( // `handleCommandInternal(): command=${command} is not supported`, // ); // return new Promise((resolve) => []); @@ -142,5 +142,5 @@ export async function registerCommands( } export async function dummyCommandHandler(...args: any[]) { - console.warn(`dummyCommandHandler(): args=${args}`); + console.log(`dummyCommandHandler(): args=${args}`); } diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 734cdd8f50..69a31f26d5 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -55,20 +55,20 @@ const successes: string[] = []; const failures: errorType = {}; function showFailedTest(name: string, error: AssertionError) { - console.warn(`Failed test: ${name}`); - console.warn(`Thrown error: ${error.message}`); + console.log(`Failed test: ${name}`); + console.log(`Thrown error: ${error.message}`); if (error.expected !== undefined || error.actual !== undefined) { const expected = JSON.stringify(error.expected, null, 2); const actual = JSON.stringify(error.actual, null, 2); - console.warn(`Expected: ${expected}`); - console.warn(`Actual: ${actual}`); + console.log(`Expected: ${expected}`); + console.log(`Actual: ${actual}`); } else { - console.warn(`Stack: ${error.stack}`); + console.log(`Stack: ${error.stack}`); } } function showSucceededTest(name: string) { - console.warn(`Passed test: ${name} \\o/`); + console.log(`Passed test: ${name} \\o/`); } // Hiding some failures that we don't know how to fix yet @@ -76,17 +76,17 @@ function showSucceededTest(name: string) { const failuresNotShown = ["recorded/marks/chuckNothing"]; function showSummaryTests() { - console.warn(`Passed tests:\n${successes.join("\n")}`); + console.log(`Passed tests:\n${successes.join("\n")}`); for (const [name, error] of Object.entries(failures)) { if (failuresNotShown.includes(name)) { continue; } - console.warn("+".repeat(80)); + console.log("+".repeat(80)); showFailedTest(name, error); } const failed = Object.entries(failures).length; const total = successes.length + failed; - console.warn( + console.log( `Passed tests: ${successes.length} / ${total} (failed: ${failed})`, ); } @@ -156,13 +156,13 @@ async function runTest( // Uncomment below for debugging // if (name === "recorded/implicitExpansion/chuckBoundingThat") { - // console.warn(`runTest(${name}) => let's analyze it`); + // console.log(`runTest(${name}) => let's analyze it`); // } - console.warn( + console.log( "------------------------------------------------------------------------------", ); - console.warn(`runTest(${name})...`); + console.log(`runTest(${name})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests // "Couldn't find token default.a" diff --git a/packages/cursorless-org/src/components/embedded-video.tsx b/packages/cursorless-org/src/components/embedded-video.tsx index 260a0cae1b..a2307dede5 100644 --- a/packages/cursorless-org/src/components/embedded-video.tsx +++ b/packages/cursorless-org/src/components/embedded-video.tsx @@ -30,7 +30,7 @@ export function EmbeddedVideo({ youtubeSlug }: Props) { height="100%" controls={true} onError={(e) => { - console.warn(`Error loading YouTube video: ${e}`); + console.log(`Error loading YouTube video: ${e}`); setIsError(true); }} /> diff --git a/packages/cursorless-vscode/src/logQuickActions.ts b/packages/cursorless-vscode/src/logQuickActions.ts index 1c8b385aa3..cbd4f2afd3 100644 --- a/packages/cursorless-vscode/src/logQuickActions.ts +++ b/packages/cursorless-vscode/src/logQuickActions.ts @@ -30,7 +30,7 @@ export async function logQuickActions(kind?: string) { })); availableCodeActions.forEach((availableCodeAction) => { - console.warn(`${JSON.stringify(availableCodeAction, null, 2)}`); + console.log(`${JSON.stringify(availableCodeAction, null, 2)}`); }); window.showInformationMessage( diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 906c66cec9..dfb1d7e163 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -17,39 +17,39 @@ export default async function neovimEdit( window: Window, edits: Edit[], ): Promise { - console.warn("neovimEdit() [unsorted]:"); + console.log("neovimEdit() [unsorted]:"); for (const edit of edits) { - console.warn( + console.log( `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, ); } edits.sort((a, b) => { - // console.warn( + // console.log( // `a=${JSON.stringify(a.range)}, text='${a.text}', isReplace=${a.isReplace}`, // ); - // console.warn( + // console.log( // `b=${JSON.stringify(b.range)}, text='${b.text}', isReplace=${b.isReplace}`, // ); // We apply the insert/replace edits from the start of the document // as a later one assume the previous ones have already been applied if ((isInsert(a) || isReplace(a)) && (isInsert(b) || isReplace(b))) { - // console.warn("a is insert/replace and b is insert/replace"); + // console.log("a is insert/replace and b is insert/replace"); return 1; } // We apply the delete edits from the end of the document // to make sure the edit ranges for the remaining ones are stable if (a.range.start.line === b.range.start.line) { - // console.warn("a and b are on the same line"); + // console.log("a and b are on the same line"); return b.range.start.character - a.range.start.character; } - // console.warn("a and b are on different lines"); + // console.log("a and b are on different lines"); return b.range.start.line - a.range.start.line; }); - console.warn("neovimEdit() [sorted]:"); + console.log("neovimEdit() [sorted]:"); for (const edit of edits) { - console.warn( + console.log( `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, ); } @@ -93,7 +93,7 @@ export default async function neovimEdit( } async function neovimDelete(client: NeovimClient, range: Range): Promise { - console.warn(`neovimDelete(): range=${JSON.stringify(range)}`); + console.log(`neovimDelete(): range=${JSON.stringify(range)}`); const buffer = await client.window.buffer; // only keep the end of the last line @@ -165,7 +165,7 @@ async function neovimInsert( position: Position, text: string, ) { - console.warn( + console.log( `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`, ); // standardise newlines so we can easily split the lines @@ -210,7 +210,7 @@ async function neovimInsert( } async function neovimReplace(client: NeovimClient, range: Range, text: string) { - console.warn( + console.log( `neovimReplace(): range=${JSON.stringify(range)}, text='${text}'`, ); await neovimDelete(client, range); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 6c00ab55fc..8162061034 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -40,7 +40,7 @@ export function neovimOnDidOpenTextDocument( // linedata: string[], // more: boolean, // ): Promise { -// console.warn( +// console.log( // `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, // ); @@ -52,7 +52,7 @@ export function neovimOnDidOpenTextDocument( // // const document = (neovimIDE.activeTextEditor as TextEditor).document; // // const contents = await document.getText(); -// // console.warn( +// // console.log( // // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, // // ); // eventEmitter.emit("onDidChangeTextDocument", { @@ -78,7 +78,7 @@ export function fromNeovimContentChange( ): TextDocumentContentChangeEvent[] { const result = []; const text = linedata.join("\n"); - console.warn( + console.log( `fromNeovimContentChange(): document.getText(): '${document.getText()}'`, ); const range = new Range( @@ -116,7 +116,7 @@ export function fromNeovimContentChange( // throw new Error(`fromNeovimContentChange(): unexpected count=${count}`); // } // count++; - console.warn(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); + console.log(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); return result; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts index 02e6ec4b81..5079cd45b3 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts @@ -27,7 +27,7 @@ export class NeovimFileSystem implements FileSystem { try { fs.mkdirSync(this.cursorlessDir); } catch (err) { - console.warn("Cannot create cursorlessDir", this.cursorlessDir, err); + console.log("Cannot create cursorlessDir", this.cursorlessDir, err); } } } @@ -45,7 +45,7 @@ export class NeovimFileSystem implements FileSystem { */ public async readBundledFile(path: string): Promise { // throw Error("readBundledFile() Not implemented"); - console.warn("readBundledFile() Not implemented"); + console.log("readBundledFile() Not implemented"); return undefined; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index b3683332ba..5f479a7f74 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -122,7 +122,7 @@ export class NeovimIDE implements IDE { async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { // TODO: find out how to flash the target ranges (similar to vscode) - console.warn("flashRanges Not implemented"); + console.log("flashRanges Not implemented"); } get assetsRoot(): string { @@ -148,7 +148,7 @@ export class NeovimIDE implements IDE { ? this.getTextEditor(this.activeWindow) : undefined; if (editor === undefined) { - console.warn("getActiveTextEditor: editor is undefined"); + console.log("getActiveTextEditor: editor is undefined"); } return editor; } @@ -242,7 +242,7 @@ export class NeovimIDE implements IDE { let document = this.getTextDocument(buffer); let editor = this.getTextEditor(window); if (!document) { - console.warn( + console.log( `toNeovimEditor(): creating new document: buffer=${buffer.id}`, ); document = new NeovimTextDocumentImpl( @@ -259,7 +259,7 @@ export class NeovimIDE implements IDE { // "attach" to Nvim buffers to subscribe to buffer update events. // This is similar to TextChanged but more powerful and granular. // @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - // console.warn( + // console.log( // `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, // ); // buffer.listen("lines", async () => await receivedBufferEvent); @@ -272,13 +272,11 @@ export class NeovimIDE implements IDE { // }); // buffer.listen("lines", receivedBufferEvent); } else { - console.warn(`toNeovimEditor(): updating document: buffer=${buffer.id}`); + console.log(`toNeovimEditor(): updating document: buffer=${buffer.id}`); document.update(lines); } if (!editor) { - console.warn( - `toNeovimEditor(): creating new editor: window=${window.id}`, - ); + console.log(`toNeovimEditor(): creating new editor: window=${window.id}`); editor = new NeovimTextEditorImpl( uuid(), this.client, @@ -290,7 +288,7 @@ export class NeovimIDE implements IDE { ); this.editorMap.set(window, editor); } else { - console.warn(`toNeovimEditor(): updating editor: window=${window.id}`); + console.log(`toNeovimEditor(): updating editor: window=${window.id}`); editor.updateDocument(visibleRanges, selections, document); } this.activeBuffer = buffer; diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts index 45bc2bd0e8..c1051c7eb2 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -32,14 +32,14 @@ export class NeovimTextDocumentImpl implements TextDocument { } get lineCount(): number { - // console.warn(`lineCount(): ${this._lineCount}`); + // console.log(`lineCount(): ${this._lineCount}`); return this._lineCount; } get range(): Range { const { end } = this.lineAt(this.lineCount - 1).range; const range = new Range(0, 0, end.line, end.character); - // console.warn( + // console.log( // `range(): (${range.start.line},${range.start.character}),(${range.end.line},${range.end.character})`, // ); return range; @@ -82,7 +82,7 @@ export class NeovimTextDocumentImpl implements TextDocument { } else if (typeof lineOrPosition === "number") { line = lineOrPosition; } - // console.warn(`lineAt() line=${line}`); + // console.log(`lineAt() line=${line}`); if ( typeof line !== "number" || @@ -101,12 +101,12 @@ export class NeovimTextDocumentImpl implements TextDocument { } public offsetAt(position: Position): number { - // console.warn( + // console.log( // `offsetAt() position=(${position.line},${position.character})`, // ); position = this._validatePosition(position); this._ensureLineStarts(); - // console.warn( + // console.log( // `offsetAt() returning ${ // this._lineStarts!.getPrefixSum(position.line - 1) + position.character // }`, @@ -117,7 +117,7 @@ export class NeovimTextDocumentImpl implements TextDocument { } public positionAt(offset: number): Position { - // console.warn(`positionAt() offset=${offset}`); + // console.log(`positionAt() offset=${offset}`); offset = Math.floor(offset); offset = Math.max(0, offset); @@ -132,22 +132,22 @@ export class NeovimTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { - // console.warn(`getText(all)`); + // console.log(`getText(all)`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } // if (this._lines.length > 10) { - // console.warn( + // console.log( // `getText() returning multiple lines: '${this._lines.slice(0, 10).join(this._eol)}' \n[stripped...]}`, // ); // } else { - // console.warn( + // console.log( // `getText() returning multiple lines: '${this._cachedTextValue}'`, // ); // } return this._cachedTextValue; } else { - // console.warn( + // console.log( // `getText(range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character}))`, // ); } @@ -155,12 +155,12 @@ export class NeovimTextDocumentImpl implements TextDocument { range = this._validateRange(range); if (range.isEmpty) { - // console.warn(`getText() returning empty`); + // console.log(`getText() returning empty`); return ""; } if (range.isSingleLine) { - // console.warn( + // console.log( // `getText() returning single line '${this._lines[ // range.start.line // ].substring(range.start.character, range.end.character)}'`, @@ -186,11 +186,11 @@ export class NeovimTextDocumentImpl implements TextDocument { this._lines[endLineIndex].substring(0, range.end.character), ); // if (resultLines.length > 10) { - // console.warn( + // console.log( // `getText() returning multiple lines: '${resultLines.slice(0, 10).join(lineEnding)}' \n[stripped...]}`, // ); // } else { - // console.warn( + // console.log( // `getText() returning multiple lines: '${resultLines.join(lineEnding)}'`, // ); // } diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts index a223a708d3..025d697067 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts @@ -6,7 +6,7 @@ export default class NeovimTextLineImpl implements TextLine { private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { - // console.warn( + // console.log( // `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}`, // ); this._lineNumber = lineNumber; @@ -19,12 +19,12 @@ export default class NeovimTextLineImpl implements TextLine { } get text(): string { - // console.warn(`NeovimTextLineImpl.text()='${this._text}'`); + // console.log(`NeovimTextLineImpl.text()='${this._text}'`); return this._text; } get range(): Range { - // console.warn( + // console.log( // `NeovimTextLineImpl.range(): range=(${this._lineNumber}, 0), (${this._lineNumber}, ${this._text.length})`, // ); return new Range(this._lineNumber, 0, this._lineNumber, this._text.length); @@ -32,12 +32,12 @@ export default class NeovimTextLineImpl implements TextLine { get rangeIncludingLineBreak(): Range { if (this._isLastLine) { - // console.warn( + // console.log( // `NeovimTextLineImpl.rangeIncludingLineBreak(): last line=(${this.range.start.line}, ${this.range.start.character}), (${this.range.end.line}, ${this.range.end.character})`, // ); return this.range; } - // console.warn( + // console.log( // `NeovimTextLineImpl.rangeIncludingLineBreak(): range=(${ // this._lineNumber // }, 0), ${this._lineNumber + 1}, 0})`, @@ -48,7 +48,7 @@ export default class NeovimTextLineImpl implements TextLine { get firstNonWhitespaceCharacterIndex(): number { //TODO@api, rename to 'leadingWhitespaceLength' const index = /^(\s*)/.exec(this._text)![1].length; - // console.warn( + // console.log( // `NeovimTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, // ); return index; @@ -56,7 +56,7 @@ export default class NeovimTextLineImpl implements TextLine { get lastNonWhitespaceCharacterIndex(): number { const index = this.text.trimEnd().length; - // console.warn( + // console.log( // `NeovimTextLineImpl.lastNonWhitespaceCharacterIndex index=${index}`, // ); return index; diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index 18584e6500..9714df4fa9 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -42,7 +42,7 @@ export async function bufferGetSelections( ]; } - console.warn( + console.log( `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character}) neovim=(${startLine},${startCol}),(${endLine},${endCol}),reverse=${reverse}`, ); return selections; @@ -65,11 +65,11 @@ export async function bufferSetSelections( }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ selections[0].end.character })`; - console.warn( + console.log( `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`, ); await client.executeLua(luaCode, []); - // console.warn(`bufferSetSelections() done`); + // console.log(`bufferSetSelections() done`); } /** @@ -96,7 +96,7 @@ export async function windowGetVisibleRanges( // subtract -1 to the line.length to get the correct 0-based column number new Position(lastLine - 1, lines[lastLine - 1].length - 1), ); - console.warn( + console.log( `windowGetVisibleRanges(): range=(${range.start.line}, ${range.start.character}), (${range.end.line}, ${range.end.character})`, ); return [range]; diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index 1fba258ebe..546a91e625 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -29,10 +29,10 @@ import { IDE } from "@cursorless/common"; // const buffers = [await client.buffer]; // buffers.forEach((buf) => { // if (neovimIDE.getTextDocument(buf) !== undefined) { -// console.warn(`already listening for changes in buffer: ${buf.id}`); +// console.log(`already listening for changes in buffer: ${buf.id}`); // return; // } -// console.warn(`listening for changes in buffer: ${buf.id}`); +// console.log(`listening for changes in buffer: ${buf.id}`); // buf.listen("lines", receivedBufferEvent); // }); // } diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index 2fa97ca4da..1750310771 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -31,7 +31,7 @@ export async function updateTextEditor( if (lines.length >= 30) { linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); } - console.warn( + console.log( `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, ); let selections: Selection[]; diff --git a/packages/test-harness/src/launchVscodeAndRunTests.ts b/packages/test-harness/src/launchVscodeAndRunTests.ts index a78d4e7238..be2c0958be 100644 --- a/packages/test-harness/src/launchVscodeAndRunTests.ts +++ b/packages/test-harness/src/launchVscodeAndRunTests.ts @@ -56,7 +56,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { }, ); - console.warn("finished installing dependency extensions"); + console.log("finished installing dependency extensions"); // Run the integration test const code = await runTests({ @@ -73,7 +73,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`], }); - console.warn(`Returned from "runTests" with value: ${code}`); + console.log(`Returned from "runTests" with value: ${code}`); } catch (err) { console.error("Test run threw exception:"); console.error(err); diff --git a/packages/test-harness/src/scripts/generateTestSubsetFile.ts b/packages/test-harness/src/scripts/generateTestSubsetFile.ts index 583fcccc72..7188c53601 100644 --- a/packages/test-harness/src/scripts/generateTestSubsetFile.ts +++ b/packages/test-harness/src/scripts/generateTestSubsetFile.ts @@ -32,7 +32,7 @@ function run() { } if (!exists && process.argv.includes("--fail-if-not-exists")) { - console.warn(`Please edit ${testSubsetGrepPath} and re-run.`); + console.log(`Please edit ${testSubsetGrepPath} and re-run.`); process.exit(1); } } From 30c2ea0b24a391327c42a82fd6f68e70b5c16c21 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 18 Apr 2024 16:19:17 +0100 Subject: [PATCH 234/504] refactor: delete all unused singletons --- .gitignore | 4 +-- .../src/constructTestHelpers.ts | 3 ++ .../src/endToEndTestSetupOld.ts | 6 ++-- packages/cursorless-neovim/src/extension.ts | 13 ++------ packages/cursorless-neovim/src/index.ts | 7 +--- .../src/singletons/client.singleton.ts | 30 ----------------- .../src/singletons/cmdapi.singleton.ts | 30 ----------------- .../src/singletons/cmdsrvapi.singleton.ts | 32 ------------------- .../src/suite/recorded_neovim_test.ts | 17 ++++------ packages/cursorless-neovim/test/paints.txt | 3 -- .../cursorless-neovim/test/paints_unix.txt | 4 --- packages/neovim-common/src/TestHelpers.ts | 2 ++ 12 files changed, 18 insertions(+), 133 deletions(-) delete mode 100644 packages/cursorless-neovim/src/singletons/client.singleton.ts delete mode 100644 packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts delete mode 100644 packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts delete mode 100644 packages/cursorless-neovim/test/paints.txt delete mode 100644 packages/cursorless-neovim/test/paints_unix.txt diff --git a/.gitignore b/.gitignore index 1af9d26983..3ffdb7a11e 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,4 @@ yarn-error.log* next-env.d.ts # test subset config -packages/test-harness/testSubsetGrep.properties - -packages/cursorless-neovim/test +packages/test-harness/testSubsetGrep.properties \ No newline at end of file diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 77896cee56..5d366a561a 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -23,8 +23,10 @@ import { NeovimIDE, TestHelpers, } from "@cursorless/neovim-common"; +import { NeovimClient } from "neovim"; export function constructTestHelpers( + client: NeovimClient, commandApi: CommandApi, commandServerApi: FakeCommandServerApi, storedTargets: StoredTargetMap, @@ -37,6 +39,7 @@ export function constructTestHelpers( runIntegrationTests: () => Promise, ): TestHelpers | undefined { return { + client, // commandApi: commandApi!, commandServerApi: commandServerApi!, ide: normalizedIde, diff --git a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts index 859d448b2b..d3c3cb6a7f 100644 --- a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts +++ b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts @@ -17,15 +17,15 @@ const retryCount = 5; export async function endToEndTestSetupOld() { async function setup() { - const { ide, injectIde, neovimIDE } = (await getCursorlessApi()) + const { ide, injectIde, neovimIDE, client } = (await getCursorlessApi()) .testHelpers!; const spy = new SpyIDE(ide); injectIde(spy); - return { spy, neovimIDE }; + return { spy, neovimIDE, client }; } return { - async getSpyAndNeovimIDE() { + async getContext() { return await setup(); }, }; diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index ea793aaf65..aef2992bc5 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -20,15 +20,11 @@ import * as path from "path"; import { Language, Tree } from "web-tree-sitter"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; -import { injectCommandApi } from "./singletons/cmdapi.singleton"; -// import { injectCursorlessApi } from "./singletons/cursorlessapi.singleton"; import { EXTENSION_ID } from "@cursorless/neovim-common"; +import { neovimRegistry } from "@cursorless/neovim-registry"; import { NeovimClient } from "neovim/lib/api/client"; import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; -import { injectClient } from "./singletons/client.singleton"; -import { injectCommandServerApi } from "./singletons/cmdsrvapi.singleton"; import { registerCommands } from "./registerCommands"; -import { neovimRegistry } from "@cursorless/neovim-registry"; /** * This function is called from talon.nvim to initialize the Cursorless engine. @@ -36,9 +32,7 @@ import { neovimRegistry } from "@cursorless/neovim-registry"; * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ export async function activate(plugin: NvimPlugin) { - // debugger; const client = plugin.nvim as NeovimClient; - injectClient(client); const buffer = await client.buffer; const { neovimIDE, hats, fileSystem } = await createNeovimIde(client); @@ -62,7 +56,6 @@ export async function activate(plugin: NvimPlugin) { neovimIDE.runMode === "test" ? fakeCommandServerApi : neovimCommandServerApi; - injectCommandServerApi(commandServerApi); const treeSitter: TreeSitter = createTreeSitter(); @@ -83,8 +76,6 @@ export async function activate(plugin: NvimPlugin) { commandServerApi, fileSystem, ); - injectCommandApi(commandApi); - // debugger; // NOTE: helps debugging await registerCommands(client, neovimIDE, commandApi, commandServerApi); @@ -92,6 +83,7 @@ export async function activate(plugin: NvimPlugin) { testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers( + client, commandApi, fakeCommandServerApi, storedTargets, @@ -110,7 +102,6 @@ export async function activate(plugin: NvimPlugin) { }, }; neovimRegistry.registerExtensionApi(EXTENSION_ID, cursorlessApi); - // injectCursorlessApi(cursorlessApi); // await updateTextEditor(client, neovimIDE, true); console.log("activate(): Cursorless extension loaded"); diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index dbdf9be7d4..c279aae94b 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,6 +1,5 @@ -import { NeovimClient, NvimPlugin } from "neovim"; +import { NvimPlugin } from "neovim"; import { activate } from "./extension"; -import { neovimClient } from "./singletons/client.singleton"; import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** @@ -40,7 +39,3 @@ async function loadExtension(plugin: NvimPlugin) { await activate(plugin); console.log("loadExtension(cursorless-neovim): done"); } - -export function neovimClientExternal(): NeovimClient { - return neovimClient(); -} diff --git a/packages/cursorless-neovim/src/singletons/client.singleton.ts b/packages/cursorless-neovim/src/singletons/client.singleton.ts deleted file mode 100644 index 2c3f87bd72..0000000000 --- a/packages/cursorless-neovim/src/singletons/client.singleton.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NeovimClient } from "neovim/lib/api/client"; - -/** - * This is the `client` singleton - */ -let client_: NeovimClient | undefined; - -/** - * Injects an {@link NeovimClient} object that can be used to interact with the client. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param client The client to inject - */ -export function injectClient(client: NeovimClient | undefined) { - client_ = client; -} - -/** - * Gets the singleton used to interact with the client. - * @throws Error if the client hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The client object - */ -export function neovimClient(): NeovimClient { - if (client_ == null) { - throw Error("Tried to access neovimClient before it was injected"); - } - - return client_; -} diff --git a/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts deleted file mode 100644 index 783bf03e45..0000000000 --- a/packages/cursorless-neovim/src/singletons/cmdapi.singleton.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CommandApi } from "@cursorless/cursorless-engine"; - -/** - * This is the `cmdapi` singleton - */ -let cmdapi_: CommandApi | undefined; - -/** - * Injects an {@link CommandApi} object that can be used to run Cursorless commands. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param cmdapi The CommandApi to inject - */ -export function injectCommandApi(cmdapi: CommandApi | undefined) { - cmdapi_ = cmdapi; -} - -/** - * Gets the singleton used to run Cursorless commands. - * @throws Error if the cmdapi hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The cmdapi object - */ -export function commandApi(): CommandApi { - if (cmdapi_ == null) { - throw Error("Tried to access commandApi before it was injected"); - } - - return cmdapi_; -} diff --git a/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts b/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts deleted file mode 100644 index ddf36eb621..0000000000 --- a/packages/cursorless-neovim/src/singletons/cmdsrvapi.singleton.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommandServerApi } from "@cursorless/common"; - -/** - * This is the `cmdsrvapi` singleton - */ -let cmdsrvapi_: CommandServerApi | undefined; - -/** - * Injects an {@link CommandServerApi} object that can be used to access CommandServer APIs. - * This function should only be called from a select few places, eg extension - * activation or when mocking a test. - * @param cmdsrvapi The CommandServerApi to inject - */ -export function injectCommandServerApi( - cmdsrvapi: CommandServerApi | undefined, -) { - cmdsrvapi_ = cmdsrvapi; -} - -/** - * Gets the singleton used to access CommandServer APIs. - * @throws Error if the cmdsrvapi hasn't been injected yet. Can avoid this by - * constructing your objects lazily - * @returns The cmdsrvapi object - */ -export function commandServerApi(): CommandServerApi { - if (cmdsrvapi_ == null) { - throw Error("Tried to access commandServerApi before it was injected"); - } - - return cmdsrvapi_; -} diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 69a31f26d5..900934e0be 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -25,17 +25,13 @@ import { import { assert } from "chai"; import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; +import { NeovimClient } from "neovim"; +import { AssertionError } from "node:assert"; import { promises as fsp } from "node:fs"; -// import * as vscode from "vscode"; import { endToEndTestSetupOld, sleepWithBackoffOld, } from "../endToEndTestSetupOld"; -// import { commandApi } from "../singletons/cmdapi.singleton"; -// import { takeSnapshot } from "@cursorless/cursorless-engine"; -import { AssertionError } from "node:assert"; -import { neovimClient } from "../singletons/client.singleton"; -// import { setupFake } from "./setupFake"; type errorType = { [key: string]: AssertionError; @@ -92,7 +88,7 @@ function showSummaryTests() { } export async function runRecordedTestCases() { - const { getSpyAndNeovimIDE } = await endToEndTestSetupOld(); + const { getContext } = await endToEndTestSetupOld(); // Run all tests const tests = getRecordedTestPaths(); @@ -109,8 +105,8 @@ export async function runRecordedTestCases() { for (const { name, path } of tests) { let executed = true; try { - const { spy, neovimIDE } = await getSpyAndNeovimIDE(); - executed = await runTest(name, path, spy!, neovimIDE!); + const { spy, neovimIDE, client } = await getContext(); + executed = await runTest(name, path, spy!, neovimIDE!, client); } catch (err) { const error = err as AssertionError; showFailedTest(name, error); @@ -130,9 +126,8 @@ async function runTest( file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE, + client: NeovimClient, ): Promise { - const client = neovimClient(); - const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; diff --git a/packages/cursorless-neovim/test/paints.txt b/packages/cursorless-neovim/test/paints.txt deleted file mode 100644 index 68d8383cbd..0000000000 --- a/packages/cursorless-neovim/test/paints.txt +++ /dev/null @@ -1,3 +0,0 @@ -0123 5678 -01 345 789abcdef -aaaa bbbb cccc diff --git a/packages/cursorless-neovim/test/paints_unix.txt b/packages/cursorless-neovim/test/paints_unix.txt deleted file mode 100644 index 3a705a1a5b..0000000000 --- a/packages/cursorless-neovim/test/paints_unix.txt +++ /dev/null @@ -1,4 +0,0 @@ -0123 5678 -01 345 789abcdef -aaaa bbbb cccc -dddd eeee ffff diff --git a/packages/neovim-common/src/TestHelpers.ts b/packages/neovim-common/src/TestHelpers.ts index c0685be61c..0b97d4bb2a 100644 --- a/packages/neovim-common/src/TestHelpers.ts +++ b/packages/neovim-common/src/TestHelpers.ts @@ -12,11 +12,13 @@ import type { TextEditor, } from "@cursorless/common"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; +import { NeovimClient } from "neovim"; // import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; //import { VscodeApi } from "./VscodeApi"; export interface TestHelpers { + client: NeovimClient; ide: NormalizedIDE; neovimIDE: NeovimIDE; injectIde: (ide: IDE) => void; From fe4c8e9963b6c73fce04e2520ebcdd6c62abb9d3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 15:22:43 +0000 Subject: [PATCH 235/504] [pre-commit.ci lite] apply automatic fixes --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3ffdb7a11e..90e5d79bb0 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,4 @@ yarn-error.log* next-env.d.ts # test subset config -packages/test-harness/testSubsetGrep.properties \ No newline at end of file +packages/test-harness/testSubsetGrep.properties From 0729a7e63100ac06a093f39f5c0fc64dd20b5de9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 19 Apr 2024 10:50:32 +0100 Subject: [PATCH 236/504] refactor: no need to export ide from cursorless-engine anymore? --- .gitignore | 2 +- packages/cursorless-engine/src/CommandHistory.ts | 3 +-- packages/cursorless-engine/src/index.ts | 2 -- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 3ffdb7a11e..90e5d79bb0 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,4 @@ yarn-error.log* next-env.d.ts # test subset config -packages/test-harness/testSubsetGrep.properties \ No newline at end of file +packages/test-harness/testSubsetGrep.properties diff --git a/packages/cursorless-engine/src/CommandHistory.ts b/packages/cursorless-engine/src/CommandHistory.ts index 24fe7d1adb..fb637bb6ad 100644 --- a/packages/cursorless-engine/src/CommandHistory.ts +++ b/packages/cursorless-engine/src/CommandHistory.ts @@ -7,13 +7,12 @@ import { IDE, ReadOnlyHatMap, } from "@cursorless/common"; - import { produce } from "immer"; import * as fs from "node:fs/promises"; import * as path from "node:path"; import { v4 as uuid } from "uuid"; -import { CommandRunnerDecorator } from "./api/CursorlessEngineApi"; import { CommandRunner } from "./CommandRunner"; +import { CommandRunnerDecorator } from "./api/CursorlessEngineApi"; const filePrefix = "cursorlessCommandHistory"; diff --git a/packages/cursorless-engine/src/index.ts b/packages/cursorless-engine/src/index.ts index a3d283b2c2..9087d6a60c 100644 --- a/packages/cursorless-engine/src/index.ts +++ b/packages/cursorless-engine/src/index.ts @@ -10,5 +10,3 @@ export * from "./api/CursorlessEngineApi"; export * from "./CommandRunner"; export * from "./CommandHistory"; export * from "./CommandHistoryAnalyzer"; -// DEP-INJ: do not export it. we can do that after using pure dependency injection -export * from "./singletons/ide.singleton"; From c86704ed7da006055d3da0b919f61446b07de18b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 22 Apr 2024 15:25:36 +0100 Subject: [PATCH 237/504] fix: revert await on CreateCursorlessEngine, see https://github.com/cursorless-dev/cursorless/pull/2300 --- packages/cursorless-engine/src/cursorlessEngine.ts | 11 +++++++---- packages/cursorless-neovim/src/extension.ts | 2 +- packages/cursorless-vscode/src/extension.ts | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index e4ec1f4c6a..dfa9c00d85 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -31,21 +31,24 @@ import { ScopeSupportWatcher } from "./scopeProviders/ScopeSupportWatcher"; import { injectIde } from "./singletons/ide.singleton"; import { TreeSitter } from "./typings/TreeSitter"; -export async function createCursorlessEngine( +export function createCursorlessEngine( treeSitter: TreeSitter, ide: IDE, hats: Hats, commandServerApi: CommandServerApi | null, fileSystem: FileSystem, -): Promise { +): CursorlessEngine { injectIde(ide); const debug = new Debug(treeSitter); const rangeUpdater = new RangeUpdater(); + // NOTE: do not await on snippet loading and hats initialization because we don't want to + // block extension activation + const snippets = new Snippets(); - await snippets.init(); + snippets.init(); const hatTokenMap = new HatTokenMapImpl( rangeUpdater, @@ -53,7 +56,7 @@ export async function createCursorlessEngine( hats, commandServerApi, ); - await hatTokenMap.allocateHats(); + hatTokenMap.allocateHats(); const storedTargets = new StoredTargetMap(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index aef2992bc5..6ba7925791 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -69,7 +69,7 @@ export async function activate(plugin: NvimPlugin) { runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = await createCursorlessEngine( + } = createCursorlessEngine( treeSitter, normalizedIde, hats, diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index de08aa21b6..fcc7e2334d 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -92,7 +92,7 @@ export async function activate( runIntegrationTests, addCommandRunnerDecorator, customSpokenFormGenerator, - } = await createCursorlessEngine( + } = createCursorlessEngine( treeSitter, normalizedIde, hats, From 87276ddcb0f479c62943629c9b48639cd091868c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 22 Apr 2024 17:03:57 +0100 Subject: [PATCH 238/504] todo --- packages/cursorless-neovim/TODO.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index ee65640e8d..0d9ee400d0 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -2,13 +2,26 @@ - get rid of the neovim client singleton - should the neovim IDE, neovim text editor and neovim text document, etc be in neovim-common? see NeovimIDE being used in recorded.neovim.test.ts -- what about the eventEmitter? see NeovimEvents.ts -- what about handleCommandInternal? see runCommand.ts +- npm install --omit=dev +- consider rolling up command-server (based on registry) +- try to move all dependencies to dev dependencies (including neovim) +- consider including node_modules into final repo +- enforce importing type e.g. "import type { NeovimClient } from "neovim";" so it disappears at runtime +- try to see to avoid "npm install" in cursorless-neovim and it will continue working + (will be needed in command-server until we roll it up) +- get rid of --packages=external in all of them +- see " "esbuild:prod": "pnpm run esbuild:base --minify"," from package.json cursorless-vscode to not include maps (!= "esbuild": "pnpm run esbuild:base --sourcemap",) +- think about node/ repo from talon.nvim in != repo because 100MB... - open PR: + - async getFocusedElementType (Cursorless and command server) - test-harness vscode specifics - some missing await + - enable the "user.command_client" tag for "neovim" app (community) + - enable user.cursorless tag for "neovim" app (cursorless) + +- terminal: `bring second paint row one` works but `take second paint row one` followed by `bring this` does not. It is because it tries to bring it to the current cursor instead of using the fallback method: `Exception: nvim_buf_set_lines: Buffer is not 'modifiable'` # mocha tests From 555185e234967888be01c0be12f2c4a26b1236c9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 22 Apr 2024 17:20:34 +0100 Subject: [PATCH 239/504] fix: use import type for all neovim imports to make it clear we are just using it for development purpose. Still 84 failed tests. --- packages/cursorless-neovim/src/NeovimCommandServerApi.ts | 2 +- packages/cursorless-neovim/src/constructTestHelpers.ts | 2 +- packages/cursorless-neovim/src/extension.ts | 4 ++-- packages/cursorless-neovim/src/index.ts | 2 +- packages/cursorless-neovim/src/registerCommands.ts | 4 ++-- packages/cursorless-neovim/src/suite/recorded_neovim_test.ts | 2 +- packages/neovim-common/src/TestHelpers.ts | 2 +- packages/neovim-common/src/ide/neovim/NeovimClipboard.ts | 2 +- packages/neovim-common/src/ide/neovim/NeovimEdit.ts | 2 +- packages/neovim-common/src/ide/neovim/NeovimEvents.ts | 2 +- packages/neovim-common/src/ide/neovim/NeovimIDE.ts | 2 +- packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts | 2 +- packages/neovim-common/src/neovimApi.ts | 4 ++-- packages/neovim-common/src/neovimHelpers.ts | 2 +- packages/neovim-common/src/runCommand.ts | 2 +- packages/neovim-common/src/testUtil/openNewEditor.ts | 2 +- packages/neovim-common/src/updateTextEditor.ts | 2 +- packages/test-harness/src/index.ts | 2 +- 18 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts index bb01d3e356..c798af64d3 100644 --- a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts +++ b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts @@ -3,7 +3,7 @@ import { FocusedElementType, InboundSignal, } from "@cursorless/common"; -import { NeovimClient } from "neovim/lib/api/client"; +import type { NeovimClient } from "neovim/lib/api/client"; export class NeovimCommandServerApi implements CommandServerApi { signals: { prePhrase: InboundSignal }; diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 5d366a561a..6832f80c5b 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -23,7 +23,7 @@ import { NeovimIDE, TestHelpers, } from "@cursorless/neovim-common"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; export function constructTestHelpers( client: NeovimClient, diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 6ba7925791..790c966e06 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -22,8 +22,8 @@ import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { EXTENSION_ID } from "@cursorless/neovim-common"; import { neovimRegistry } from "@cursorless/neovim-registry"; -import { NeovimClient } from "neovim/lib/api/client"; -import { NvimPlugin } from "neovim/lib/host/NvimPlugin"; +import type { NeovimClient } from "neovim/lib/api/client"; +import type { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { registerCommands } from "./registerCommands"; /** diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index c279aae94b..2e18a60e9c 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,4 +1,4 @@ -import { NvimPlugin } from "neovim"; +import type { NvimPlugin } from "neovim"; import { activate } from "./extension"; import { runRecordedTestCases } from "./suite/recorded_neovim_test"; diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 65121422ea..46df3e6a45 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -12,11 +12,11 @@ import { modeSwitchTerminal, updateTextEditor, } from "@cursorless/neovim-common"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; import { neovimRegistry } from "@cursorless/neovim-registry"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -import { ensureCommandShape } from "@cursorless/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; /** * Handle the command received from the command-server Neovim extension diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts index 900934e0be..19a9f93c63 100644 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts @@ -25,7 +25,7 @@ import { import { assert } from "chai"; import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; import { AssertionError } from "node:assert"; import { promises as fsp } from "node:fs"; import { diff --git a/packages/neovim-common/src/TestHelpers.ts b/packages/neovim-common/src/TestHelpers.ts index 0b97d4bb2a..4520979505 100644 --- a/packages/neovim-common/src/TestHelpers.ts +++ b/packages/neovim-common/src/TestHelpers.ts @@ -12,7 +12,7 @@ import type { TextEditor, } from "@cursorless/common"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; // import { CommandApi } from "@cursorless/cursorless-engine"; //import * as vscode from "vscode"; //import { VscodeApi } from "./VscodeApi"; diff --git a/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts index 7493e0fe73..0e665e2873 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts @@ -1,6 +1,6 @@ import type { Clipboard } from "@cursorless/common"; import { getFromClipboard, putToClipboard } from "../../neovimApi"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; export default class NeovimClipboard implements Clipboard { constructor(private client: NeovimClient) {} diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index dfb1d7e163..1ea1f04d6e 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -5,7 +5,7 @@ import { TextDocument, TextDocumentContentChangeEvent, } from "@cursorless/common"; -import { NeovimClient, Window } from "neovim"; +import type { NeovimClient, Window } from "neovim"; // import { eventEmitter } from "../../events"; import { updateTextEditor } from "../../updateTextEditor"; import { NeovimIDE } from "./NeovimIDE"; diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 8162061034..611736abcf 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -8,7 +8,7 @@ import { } from "@cursorless/common"; import { neovimRegistry } from "@cursorless/neovim-registry"; -import { Buffer } from "neovim"; +import type { Buffer } from "neovim"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 5f479a7f74..9983cd850d 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -28,7 +28,7 @@ import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; -import { NeovimClient, Window, Buffer } from "neovim"; +import type { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import { getTalonNvimPath } from "../../../../neovim-common/src/neovimApi"; import path from "path"; diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts index 8e4d6db12e..166114236c 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts @@ -9,7 +9,7 @@ import { TextEditor, TextEditorOptions, } from "@cursorless/common"; -import { NeovimClient, Window } from "neovim"; +import type { NeovimClient, Window } from "neovim"; import { bufferSetSelections } from "../../neovimApi"; import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers"; import neovimEdit from "./NeovimEdit"; diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index 9714df4fa9..d6c33676bc 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -1,7 +1,7 @@ // Helper directly calling into Neovim apis, generally lua, exported by talon.nvim import { Position, Range, Selection } from "@cursorless/common"; -import { NeovimClient } from "neovim/lib/api/client"; -import { Window } from "neovim/lib/api/Window"; +import type { NeovimClient } from "neovim/lib/api/client"; +import type { Window } from "neovim/lib/api/Window"; /** * Get the current "selections" in the window(editor) diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index 546a91e625..8c85a28e97 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -6,7 +6,7 @@ import { putToClipboard, } from "@cursorless/neovim-common"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; import { IDE } from "@cursorless/common"; /** diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts index 8d868daafb..0c574f681a 100644 --- a/packages/neovim-common/src/runCommand.ts +++ b/packages/neovim-common/src/runCommand.ts @@ -5,7 +5,7 @@ import { } from "@cursorless/common"; import { neovimRegistry } from "@cursorless/neovim-registry"; // import { CommandApi } from "@cursorless/cursorless-engine"; -// import { NeovimClient } from "neovim"; +// import type { NeovimClient } from "neovim"; // import { handleCommandInternal } from "../../cursorless-neovim/src/registerCommands"; // import { NeovimIDE } from "./ide/neovim/NeovimIDE"; //import * as vscode from "vscode"; diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts index db3e27093f..b1d17b4568 100644 --- a/packages/neovim-common/src/testUtil/openNewEditor.ts +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts @@ -1,4 +1,4 @@ -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; import { NeovimIDE } from "../ide/neovim/NeovimIDE"; import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index 1750310771..d4423c6416 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -3,7 +3,7 @@ import { windowGetVisibleRanges, } from "../../neovim-common/src/neovimApi"; import { Range, Selection } from "@cursorless/common"; -import { NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; // import { eventEmitter } from "./events"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 0f2fcd2965..79f44aae31 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -1,6 +1,6 @@ import { TestType, runAllTests } from "./runAllTests"; -import { NeovimClient, NvimPlugin } from "neovim"; +import type { NeovimClient, NvimPlugin } from "neovim"; /** * Runs all extension tests. This function should only be called after attaching to the From f2eea1e76025efc294831f4707271b442a9b6818 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 23 Apr 2024 15:32:49 +0100 Subject: [PATCH 240/504] build: move dependencies to devDependencies to avoid having to use "npm install" for cursorless-neovim --- packages/cursorless-neovim/package.json | 12 +++---- pnpm-lock.yaml | 44 +++++++------------------ 2 files changed, 17 insertions(+), 39 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 84f20b8d8b..bfb65a4a9a 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -28,15 +28,15 @@ "@cursorless/common": "workspace:*", "@cursorless/cursorless-engine": "workspace:*", "@cursorless/neovim-common": "workspace:*", - "@cursorless/neovim-registry": "workspace:*", - "@types/chai": "4.3.14", - "lodash": "^4.17.21", - "neovim": "5.1.0", - "vscode-uri": "3.0.6" + "@cursorless/neovim-registry": "workspace:*" }, "devDependencies": { + "@types/chai": "4.3.14", "@types/js-yaml": "^4.0.2", "@types/lodash": "4.14.181", - "@types/uuid": "8.3.4" + "@types/uuid": "8.3.4", + "lodash": "^4.17.21", + "neovim": "5.1.0", + "vscode-uri": "3.0.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b388707ab6..8eaf23647e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -314,19 +314,10 @@ importers: '@cursorless/neovim-registry': specifier: workspace:* version: link:../neovim-registry + devDependencies: '@types/chai': specifier: 4.3.14 version: 4.3.14 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - neovim: - specifier: 5.1.0 - version: 5.1.0 - vscode-uri: - specifier: 3.0.6 - version: 3.0.6 - devDependencies: '@types/js-yaml': specifier: ^4.0.2 version: 4.0.9 @@ -336,6 +327,15 @@ importers: '@types/uuid': specifier: 8.3.4 version: 8.3.4 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + neovim: + specifier: 5.1.0 + version: 5.1.0 + vscode-uri: + specifier: 3.0.6 + version: 3.0.6 packages/cursorless-neovim-e2e: dependencies: @@ -2124,7 +2124,6 @@ packages: /@colors/colors@1.6.0: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - dev: false /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -2139,7 +2138,6 @@ packages: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - dev: false /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} @@ -3597,7 +3595,6 @@ packages: /@msgpack/msgpack@2.8.0: resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} engines: {node: '>= 10'} - dev: false /@next/env@14.1.4: resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} @@ -5353,7 +5350,6 @@ packages: /@types/triple-beam@1.3.5: resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - dev: false /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -7071,7 +7067,6 @@ packages: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - dev: false /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} @@ -7082,7 +7077,6 @@ packages: dependencies: color-convert: 1.9.3 color-string: 1.9.1 - dev: false /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -7100,7 +7094,6 @@ packages: dependencies: color: 3.2.1 text-hex: 1.0.0 - dev: false /combine-promises@1.2.0: resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} @@ -8118,7 +8111,6 @@ packages: /enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - dev: false /encode-registry@3.0.1: resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} @@ -9058,7 +9050,6 @@ packages: /fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - dev: false /feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} @@ -9186,7 +9177,6 @@ packages: /fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - dev: false /follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} @@ -10255,7 +10245,6 @@ packages: /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -11349,7 +11338,6 @@ packages: /kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - dev: false /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -11514,7 +11502,6 @@ packages: ms: 2.1.3 safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - dev: false /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -12690,7 +12677,6 @@ packages: dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - dev: false /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} @@ -13147,7 +13133,6 @@ packages: resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: fn.name: 1.1.0 - dev: false /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -15180,7 +15165,6 @@ packages: /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} - dev: false /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -15481,7 +15465,6 @@ packages: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 - dev: false /sinon@17.0.1: resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} @@ -15723,7 +15706,6 @@ packages: /stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - dev: false /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} @@ -16199,7 +16181,6 @@ packages: /text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - dev: false /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -16327,7 +16308,6 @@ packages: /triple-beam@1.4.1: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - dev: false /trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -16884,7 +16864,7 @@ packages: /vscode-uri@3.0.6: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} - dev: false + dev: true /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} @@ -17334,7 +17314,6 @@ packages: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - dev: false /winston@3.11.0: resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} @@ -17351,7 +17330,6 @@ packages: stack-trace: 0.0.10 triple-beam: 1.4.1 winston-transport: 4.7.0 - dev: false /workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} From 34ad758d6179d6ad2840d401959b0f6695150eca Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 23 Apr 2024 16:52:11 +0100 Subject: [PATCH 241/504] build: make neovim-registry not need "npm install" --- packages/neovim-registry/package.json | 4 ++-- pnpm-lock.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index 232ef11e7f..349b57af89 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -7,7 +7,7 @@ "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.js --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.js --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -23,7 +23,7 @@ "default": "./out/index.js" } }, - "dependencies": { + "devDependencies": { "neovim": "5.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8eaf23647e..391b96babf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -709,7 +709,7 @@ importers: version: 3.0.8 packages/neovim-registry: - dependencies: + devDependencies: neovim: specifier: 5.1.0 version: 5.1.0 From 7c1daea7307aa5adb1edf967acb42e0c44c019a4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 23 Apr 2024 18:01:44 +0100 Subject: [PATCH 242/504] refactor: bundle the neovim-registry in both command-server and test-harness and make it a global to ease things --- packages/cursorless-neovim/package.json | 2 +- packages/cursorless-neovim/src/extension.ts | 4 ++-- packages/cursorless-neovim/src/registerCommands.ts | 4 ++-- packages/neovim-common/src/getExtensionApi.ts | 6 +++--- packages/neovim-common/src/ide/neovim/NeovimEdit.ts | 4 ++-- packages/neovim-common/src/ide/neovim/NeovimEvents.ts | 6 +++--- packages/neovim-common/src/runCommand.ts | 7 +++++-- packages/neovim-common/src/updateTextEditor.ts | 4 ++-- packages/neovim-registry/src/index.ts | 7 ++++++- packages/test-harness/package.json | 2 +- 10 files changed, 27 insertions(+), 19 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index bfb65a4a9a..fc326af848 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.cjs --external:@cursorless/neovim-registry --platform=node", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 790c966e06..1db27e93e4 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -21,7 +21,7 @@ import { Language, Tree } from "web-tree-sitter"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; import { EXTENSION_ID } from "@cursorless/neovim-common"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; import type { NeovimClient } from "neovim/lib/api/client"; import type { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { registerCommands } from "./registerCommands"; @@ -101,7 +101,7 @@ export async function activate(plugin: NvimPlugin) { registerThirdPartySnippets: snippets.registerThirdPartySnippets, }, }; - neovimRegistry.registerExtensionApi(EXTENSION_ID, cursorlessApi); + getNeovimRegistry().registerExtensionApi(EXTENSION_ID, cursorlessApi); // await updateTextEditor(client, neovimIDE, true); console.log("activate(): Cursorless extension loaded"); diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 46df3e6a45..b9aa182bff 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -13,7 +13,7 @@ import { updateTextEditor, } from "@cursorless/neovim-common"; import type { NeovimClient } from "neovim"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; @@ -137,7 +137,7 @@ export async function registerCommands( // TODO: import from the top of the file and do not need a require since it will be external // undo it everywhere else and also in the commandr server Object.entries(commands).map(([commandId, callback]) => - neovimRegistry.registerCommand(commandId, callback), + getNeovimRegistry().registerCommand(commandId, callback), ); } diff --git a/packages/neovim-common/src/getExtensionApi.ts b/packages/neovim-common/src/getExtensionApi.ts index dda6b7d3e1..21c1edb138 100644 --- a/packages/neovim-common/src/getExtensionApi.ts +++ b/packages/neovim-common/src/getExtensionApi.ts @@ -1,7 +1,7 @@ import type { SnippetMap } from "@cursorless/common"; //import * as vscode from "vscode"; import { TestHelpers } from "./TestHelpers"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; export interface CursorlessApi { testHelpers: TestHelpers | undefined; @@ -22,12 +22,12 @@ export interface CursorlessApi { // } export async function getExtensionApi(extensionId: string) { - const api = neovimRegistry.getExtensionApi(extensionId); + const api = getNeovimRegistry().getExtensionApi(extensionId); return api == null ? null : (api as T); } export async function getExtensionApiStrict(extensionId: string) { - const api = neovimRegistry.getExtensionApi(extensionId); + const api = getNeovimRegistry().getExtensionApi(extensionId); if (api == null) { throw new Error(`Could not get ${extensionId} extension`); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 1ea1f04d6e..22b3f2d1b7 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -9,7 +9,7 @@ import type { NeovimClient, Window } from "neovim"; // import { eventEmitter } from "../../events"; import { updateTextEditor } from "../../updateTextEditor"; import { NeovimIDE } from "./NeovimIDE"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; export default async function neovimEdit( client: NeovimClient, @@ -70,7 +70,7 @@ export default async function neovimEdit( // document: document, // contentChanges: changes, // }); - neovimRegistry.emitEvent("onDidChangeTextDocument", { + getNeovimRegistry().emitEvent("onDidChangeTextDocument", { document: document, contentChanges: changes, }); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 611736abcf..bddd65a173 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -6,7 +6,7 @@ import { TextDocumentChangeEvent, TextDocumentContentChangeEvent, } from "@cursorless/common"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; import type { Buffer } from "neovim"; @@ -14,7 +14,7 @@ export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { // eventEmitter.on("onDidChangeTextDocument", listener); - neovimRegistry.onEvent("onDidChangeTextDocument", listener); + getNeovimRegistry().onEvent("onDidChangeTextDocument", listener); return dummyEvent(); } @@ -24,7 +24,7 @@ export function neovimOnDidOpenTextDocument( disposables?: Disposable[] | undefined, ): Disposable { // eventEmitter.on("onDidOpenTextDocument", listener); - neovimRegistry.onEvent("onDidOpenTextDocument", listener); + getNeovimRegistry().onEvent("onDidOpenTextDocument", listener); return dummyEvent(); } diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts index 0c574f681a..4426f42c88 100644 --- a/packages/neovim-common/src/runCommand.ts +++ b/packages/neovim-common/src/runCommand.ts @@ -3,7 +3,7 @@ import { // CommandServerApi, CURSORLESS_COMMAND_ID, } from "@cursorless/common"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; // import { CommandApi } from "@cursorless/cursorless-engine"; // import type { NeovimClient } from "neovim"; // import { handleCommandInternal } from "../../cursorless-neovim/src/registerCommands"; @@ -18,7 +18,10 @@ export async function runCursorlessCommand( command: Command, ) { //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); - return await neovimRegistry.executeCommand(CURSORLESS_COMMAND_ID, command); + return await getNeovimRegistry().executeCommand( + CURSORLESS_COMMAND_ID, + command, + ); // return handleCommandInternal( // client, // neovimIDE, diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index d4423c6416..d194900801 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -7,7 +7,7 @@ import type { NeovimClient } from "neovim"; // import { eventEmitter } from "./events"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import { neovimRegistry } from "@cursorless/neovim-registry"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; /** * Initialize the current editor (and current document). @@ -55,7 +55,7 @@ export async function updateTextEditor( // TODO: simulate that the document is open for now from here. // we would need to ideally do it from neovim itself // eventEmitter.emit("onDidOpenTextDocument", editor.document); - neovimRegistry.emitEvent("onDidOpenTextDocument", editor.document); + getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document); return editor; } diff --git a/packages/neovim-registry/src/index.ts b/packages/neovim-registry/src/index.ts index 1103d547ed..88affc282d 100644 --- a/packages/neovim-registry/src/index.ts +++ b/packages/neovim-registry/src/index.ts @@ -1,3 +1,8 @@ import { NeovimRegistry } from "./NeovimRegistry"; -export const neovimRegistry = new NeovimRegistry(); +export function getNeovimRegistry(): NeovimRegistry { + if ((global as any)._neovimRegistry == null) { + (global as any)._neovimRegistry = new NeovimRegistry(); + } + return (global as any)._neovimRegistry; +} diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index 6f0ba6902b..a834b092ca 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -6,7 +6,7 @@ "main": "./out/index.cjs", "scripts": { "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", - "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --external:@cursorless/neovim-registry --format=cjs --platform=node", + "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs", From 8754de92218da34a4fced698fda6a8208c41dcf9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 23 Apr 2024 18:02:02 +0100 Subject: [PATCH 243/504] docs: todo --- packages/cursorless-neovim/TODO.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 0d9ee400d0..135c603bd5 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,5 +1,9 @@ # questions for Pokey +- move lua files and all cursorless files to cursorless mono repo +- .js into its own cursorless.nvim (only used for deployment similar to cursorless-talon) +- duplicate the .lua and .vim files if needed but for now nothing needs to be duplicated so is fine! later we can deal with duplications if needed, don't overthink for now! + - get rid of the neovim client singleton - should the neovim IDE, neovim text editor and neovim text document, etc be in neovim-common? see NeovimIDE being used in recorded.neovim.test.ts - npm install --omit=dev From 4f22814ccebe8aed9ffeb00663f93ae49194f1ac Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 25 Apr 2024 12:07:39 +0100 Subject: [PATCH 244/504] refactor: fix lua namespaces now that it is in cursorless.nvim and soon in cursorless mono repo --- packages/neovim-common/src/neovimApi.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index d6c33676bc..a18d3d3bf7 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -13,7 +13,7 @@ export async function bufferGetSelections( window: Window, client: NeovimClient, ): Promise { - const luaCode = `return require("talon.cursorless").buffer_get_selection()`; + const luaCode = `return require("cursorless.cursorless").buffer_get_selection()`; // Note lines are indexed from 1, similarly to what is shown in neovim // and columns are also indexed from 1 const [startLine, startCol, endLine, endCol, reverse] = @@ -60,7 +60,7 @@ export async function bufferSetSelections( // cursorless has 0-based lines/columns, but neovim has 1-based lines and 0-based columns // also, experience shows we need to subtract 1 from the end character to stop on it in visual mode (instead of after it) // https://neovim.io/doc/user/api.html#nvim_win_set_cursor() - const luaCode = `return require("talon.cursorless").select_range(${ + const luaCode = `return require("cursorless.cursorless").select_range(${ selections[0].start.line + 1 }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ selections[0].end.character @@ -85,7 +85,7 @@ export async function windowGetVisibleRanges( ): Promise { // Get the first and last visible lines of the current window // Note they are indexed from 1, similarly to what is shown in neovim* - const luaCode = `return require("talon.cursorless").window_get_visible_lines()`; + const luaCode = `return require("cursorless.cursorless").window_get_visible_lines()`; const [firstLine, lastLine] = (await client.executeLua(luaCode, [])) as [ number, number, @@ -103,7 +103,7 @@ export async function windowGetVisibleRanges( } export async function getTalonNvimPath(client: NeovimClient): Promise { - const luaCode = `return require("talon.utils").talon_nvim_path()`; + const luaCode = `return require("cursorless.utils").talon_nvim_path()`; const data = (await client.executeLua(luaCode, [])) as unknown as string; return data as unknown as string; } @@ -133,7 +133,7 @@ export async function getFromClipboard(client: NeovimClient): Promise { export async function modeSwitchNormalTerminal( client: NeovimClient, ): Promise { - const luaCode = `return require("talon.utils").mode_switch_nt()`; + const luaCode = `return require("cursorless.utils").mode_switch_nt()`; await client.executeLua(luaCode, []); } @@ -142,6 +142,6 @@ export async function modeSwitchNormalTerminal( * @param client */ export async function modeSwitchTerminal(client: NeovimClient): Promise { - const luaCode = `return require("talon.utils").mode_switch_t()`; + const luaCode = `return require("cursorless.utils").mode_switch_t()`; await client.executeLua(luaCode, []); } From 1c5fafe85daaecd4ef98031aa273b0ef5802febd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 26 Apr 2024 12:27:21 +0100 Subject: [PATCH 245/504] fix: talon_nvim_path -> cursorless_nvim_path --- packages/neovim-common/src/neovimApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index a18d3d3bf7..d1fa0187fb 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -103,7 +103,7 @@ export async function windowGetVisibleRanges( } export async function getTalonNvimPath(client: NeovimClient): Promise { - const luaCode = `return require("cursorless.utils").talon_nvim_path()`; + const luaCode = `return require("cursorless.utils").cursorless_nvim_path()`; const data = (await client.executeLua(luaCode, [])) as unknown as string; return data as unknown as string; } From 6375729244dce3bf6ff60dff7aa746f7c1f4fdda Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sun, 28 Apr 2024 07:44:05 +0100 Subject: [PATCH 246/504] todo --- packages/cursorless-neovim/TODO.md | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 135c603bd5..3c0324be41 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -4,26 +4,8 @@ - .js into its own cursorless.nvim (only used for deployment similar to cursorless-talon) - duplicate the .lua and .vim files if needed but for now nothing needs to be duplicated so is fine! later we can deal with duplications if needed, don't overthink for now! -- get rid of the neovim client singleton -- should the neovim IDE, neovim text editor and neovim text document, etc be in neovim-common? see NeovimIDE being used in recorded.neovim.test.ts -- npm install --omit=dev -- consider rolling up command-server (based on registry) -- try to move all dependencies to dev dependencies (including neovim) -- consider including node_modules into final repo -- enforce importing type e.g. "import type { NeovimClient } from "neovim";" so it disappears at runtime -- try to see to avoid "npm install" in cursorless-neovim and it will continue working - (will be needed in command-server until we roll it up) -- get rid of --packages=external in all of them - see " "esbuild:prod": "pnpm run esbuild:base --minify"," from package.json cursorless-vscode to not include maps (!= "esbuild": "pnpm run esbuild:base --sourcemap",) -- think about node/ repo from talon.nvim in != repo because 100MB... - -- open PR: - - - async getFocusedElementType (Cursorless and command server) - - test-harness vscode specifics - - some missing await - - enable the "user.command_client" tag for "neovim" app (community) - - enable user.cursorless tag for "neovim" app (cursorless) +- think about command-server.nvim into its own repo - terminal: `bring second paint row one` works but `take second paint row one` followed by `bring this` does not. It is because it tries to bring it to the current cursor instead of using the fallback method: `Exception: nvim_buf_set_lines: Buffer is not 'modifiable'` From b85333dc3176e567c27a14494d016c14bc94b2bd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 15:22:39 +0100 Subject: [PATCH 247/504] refactor: revert changes to match upstream --- .../src/actions/GenerateSnippet/GenerateSnippet.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts index cb4148e049..ad072f7f3f 100644 --- a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts +++ b/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts @@ -1,4 +1,4 @@ -import { FlashStyle, Range } from "@cursorless/common"; +import { FlashStyle, isTesting, Range } from "@cursorless/common"; import { Offsets } from "../../processTargets/modifiers/surroundingPair/types"; import { ide } from "../../singletons/ide.singleton"; import { Target } from "../../typings/target.types"; @@ -220,7 +220,7 @@ export default class GenerateSnippet { const editableEditor = ide().getEditableTextEditor(editor); - if (ide().runMode === "test") { + if (isTesting()) { // If we're testing, we just overwrite the current document await editableEditor.setSelections([ editor.document.range.toSelection(false), From 58a6403a0af0733081fe69aacdc54c97b7da9639 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 15:23:18 +0100 Subject: [PATCH 248/504] refactor: delete file that is now in neovim-talon --- cursorless-talon/src/apps/cursorless_neovim.py | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 cursorless-talon/src/apps/cursorless_neovim.py diff --git a/cursorless-talon/src/apps/cursorless_neovim.py b/cursorless-talon/src/apps/cursorless_neovim.py deleted file mode 100644 index 2d0ad912ed..0000000000 --- a/cursorless-talon/src/apps/cursorless_neovim.py +++ /dev/null @@ -1,9 +0,0 @@ -from talon import Context - -ctx = Context() - -ctx.matches = r""" -app: neovim -""" - -ctx.tags = ["user.cursorless"] From e20704099c82e6548b84ce102724ce7fff3d3265 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 16:36:10 +0100 Subject: [PATCH 249/504] refactor: cleanup --- packages/cursorless-neovim-e2e/src/index.ts | 0 .../src/suite/recorded.neovim.test.ts | 56 +++++++++---------- .../src/constructTestHelpers.ts | 6 -- packages/cursorless-neovim/src/extension.ts | 1 - 4 files changed, 28 insertions(+), 35 deletions(-) delete mode 100644 packages/cursorless-neovim-e2e/src/index.ts diff --git a/packages/cursorless-neovim-e2e/src/index.ts b/packages/cursorless-neovim-e2e/src/index.ts deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 8630a1d7e4..1f5377e132 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -82,22 +82,9 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; - // We don't support decorated symbol marks (hats) yet - const hasMarks = - fixture.initialState.marks != null && - Object.keys(fixture.initialState.marks).length > 0; - - // we don't support multiple selections in neovim (we don't support multiple cursors atm) - const hasMultipleSelections = - fixture.initialState.selections.length > 1 || - (fixture.finalState && fixture.finalState.selections.length > 1); - - // We don't support Tree sitter yet (which requires a code languageId) - const needTreeSitter = fixture.languageId !== "plaintext"; - // TODO: find a way to distinguish between a skipped test and // a failed test - if (hasMarks || hasMultipleSelections || needTreeSitter) { + if (unsupportedFixture(fixture)) { return; } @@ -115,9 +102,9 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { // "Couldn't find token default.a" const usePrePhraseSnapshot = false; - const { takeSnapshot, setStoredTarget, commandServerApi } = ( - await getCursorlessApi() - ).testHelpers!; + const cursorlessApi = await getCursorlessApi(); + const { takeSnapshot, setStoredTarget, commandServerApi } = + cursorlessApi.testHelpers!; const editor = await openNewEditor( client, @@ -162,16 +149,10 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { let fallback: Fallback | undefined; try { - returnValue = await runCursorlessCommand( - // client, - // neovimIDE, - // commandApi, - // commandServerApi, - { - ...fixture.command, - usePrePhraseSnapshot, - }, - ); + returnValue = await runCursorlessCommand({ + ...fixture.command, + usePrePhraseSnapshot, + }); if (clientSupportsFallback(fixture.command)) { const commandResponse = returnValue as CommandResponse; returnValue = @@ -284,5 +265,24 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { "Unexpected ide captured values", ); } - return; +} + +function unsupportedFixture(fixture: TestCaseFixtureLegacy) { + // We don't support decorated symbol marks (hats) yet + const hasMarks = + fixture.initialState.marks != null && + Object.keys(fixture.initialState.marks).length > 0; + + // we don't support multiple selections in neovim (we don't support multiple cursors atm) + const hasMultipleSelections = + fixture.initialState.selections.length > 1 || + (fixture.finalState && fixture.finalState.selections.length > 1); + + // We don't support Tree sitter yet (which requires a code languageId) + const needTreeSitter = fixture.languageId !== "plaintext"; + + if (hasMarks || hasMultipleSelections || needTreeSitter) { + return true; + } + return false; } diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 6832f80c5b..304b2475d2 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -13,7 +13,6 @@ import { TextEditor, } from "@cursorless/common"; import { - CommandApi, StoredTargetMap, plainObjectToTarget, takeSnapshot, @@ -27,7 +26,6 @@ import type { NeovimClient } from "neovim"; export function constructTestHelpers( client: NeovimClient, - commandApi: CommandApi, commandServerApi: FakeCommandServerApi, storedTargets: StoredTargetMap, hatTokenMap: HatTokenMap, @@ -40,15 +38,12 @@ export function constructTestHelpers( ): TestHelpers | undefined { return { client, - // commandApi: commandApi!, commandServerApi: commandServerApi!, ide: normalizedIde, neovimIDE, injectIde, scopeProvider, - //toVscodeEditor, - // FIXME: Remove this once we have a better way to get this function // accessible from our tests takeSnapshot( @@ -87,6 +82,5 @@ export function constructTestHelpers( }, hatTokenMap, runIntegrationTests, - //vscodeApi, }; } diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 1db27e93e4..0aedbdece3 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -84,7 +84,6 @@ export async function activate(plugin: NvimPlugin) { neovimIDE.runMode === "test" ? constructTestHelpers( client, - commandApi, fakeCommandServerApi, storedTargets, hatTokenMap, From 7e7b2c1bb55f297a8208aeaabb8804928b4b902f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 16:45:50 +0100 Subject: [PATCH 250/504] refactor: delete old test method (recorded_neovim_test.ts) (non mocha) --- .../src/endToEndTestSetupOld.ts | 51 --- packages/cursorless-neovim/src/index.ts | 7 - .../src/suite/recorded_neovim_test.ts | 330 ------------------ 3 files changed, 388 deletions(-) delete mode 100644 packages/cursorless-neovim/src/endToEndTestSetupOld.ts delete mode 100644 packages/cursorless-neovim/src/suite/recorded_neovim_test.ts diff --git a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts b/packages/cursorless-neovim/src/endToEndTestSetupOld.ts deleted file mode 100644 index d3c3cb6a7f..0000000000 --- a/packages/cursorless-neovim/src/endToEndTestSetupOld.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common"; -import { getCursorlessApi } from "@cursorless/neovim-common"; - -/** - * The number of times the current test has been retried. Will be 0 the first - * time the test runs and increase by 1 each time the test fails and needs to be - * rerun. - */ -// let retryCount = -1; -const retryCount = 5; - -/** - * The title of the previously run test. Used to keep track of - * {@link retryCount}. - */ -//let previousTestTitle = ""; - -export async function endToEndTestSetupOld() { - async function setup() { - const { ide, injectIde, neovimIDE, client } = (await getCursorlessApi()) - .testHelpers!; - const spy = new SpyIDE(ide); - injectIde(spy); - return { spy, neovimIDE, client }; - } - - return { - async getContext() { - return await setup(); - }, - }; -} - -// TODO: remove this function? or we need it for neovim too? -/** - * Sleep function for use in tests that will be retried. Doubles the amount of - * time it sleeps each time a test is run, starting from {@link ms} / 4. - * - * If the developer used the update fixtures launch config, we sleep for {@link ms} * - * 2 every time so that they don't get spurious updates to fixtures due to not - * sleeping enough. - * @param ms The baseline number of milliseconds to sleep. - * @returns A promise that will resolve when the sleep is over - */ -export function sleepWithBackoffOld(ms: number) { - const timeToSleep = shouldUpdateFixtures() - ? ms * 2 - : ms * Math.pow(2, retryCount - 2); - - return sleep(timeToSleep); -} diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 2e18a60e9c..3f08ff7ed1 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -1,6 +1,5 @@ import type { NvimPlugin } from "neovim"; import { activate } from "./extension"; -import { runRecordedTestCases } from "./suite/recorded_neovim_test"; /** * Extension entrypoint called by node-client on Neovim startup. @@ -20,12 +19,6 @@ export default function entry(plugin: NvimPlugin) { async () => await loadExtension(plugin), { sync: false }, ); - - plugin.registerFunction( - "CursorlessRunRecordedTestCases", - async () => await runRecordedTestCases(), - { sync: false }, - ); } /** diff --git a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts b/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts deleted file mode 100644 index 19a9f93c63..0000000000 --- a/packages/cursorless-neovim/src/suite/recorded_neovim_test.ts +++ /dev/null @@ -1,330 +0,0 @@ -import { - CommandResponse, - ExcludableSnapshotField, - Fallback, - Position, - PositionPlainObject, - Selection, - SelectionPlainObject, - SpyIDE, - TestCaseFixtureLegacy, - clientSupportsFallback, - getRecordedTestPaths, - omitByDeep, - serializeTestFixture, - shouldUpdateFixtures, - spyIDERecordedValuesToPlainObject, - storedTargetKeys, -} from "@cursorless/common"; -import { - NeovimIDE, - getCursorlessApi, - openNewEditor, - runCursorlessCommand, -} from "@cursorless/neovim-common"; -import { assert } from "chai"; -import * as yaml from "js-yaml"; -import { isUndefined } from "lodash"; -import type { NeovimClient } from "neovim"; -import { AssertionError } from "node:assert"; -import { promises as fsp } from "node:fs"; -import { - endToEndTestSetupOld, - sleepWithBackoffOld, -} from "../endToEndTestSetupOld"; - -type errorType = { - [key: string]: AssertionError; -}; - -function createPosition(position: PositionPlainObject) { - return new Position(position.line, position.character); -} - -function createSelection(selection: SelectionPlainObject): Selection { - const active = createPosition(selection.active); - const anchor = createPosition(selection.anchor); - return new Selection(anchor, active); -} - -const successes: string[] = []; -const failures: errorType = {}; - -function showFailedTest(name: string, error: AssertionError) { - console.log(`Failed test: ${name}`); - console.log(`Thrown error: ${error.message}`); - if (error.expected !== undefined || error.actual !== undefined) { - const expected = JSON.stringify(error.expected, null, 2); - const actual = JSON.stringify(error.actual, null, 2); - console.log(`Expected: ${expected}`); - console.log(`Actual: ${actual}`); - } else { - console.log(`Stack: ${error.stack}`); - } -} - -function showSucceededTest(name: string) { - console.log(`Passed test: ${name} \\o/`); -} - -// Hiding some failures that we don't know how to fix yet -// @see https://github.com/cursorless-dev/cursorless/issues/2281 -const failuresNotShown = ["recorded/marks/chuckNothing"]; - -function showSummaryTests() { - console.log(`Passed tests:\n${successes.join("\n")}`); - for (const [name, error] of Object.entries(failures)) { - if (failuresNotShown.includes(name)) { - continue; - } - console.log("+".repeat(80)); - showFailedTest(name, error); - } - const failed = Object.entries(failures).length; - const total = successes.length + failed; - console.log( - `Passed tests: ${successes.length} / ${total} (failed: ${failed})`, - ); -} - -export async function runRecordedTestCases() { - const { getContext } = await endToEndTestSetupOld(); - - // Run all tests - const tests = getRecordedTestPaths(); - - // Run some tests - // const fixturePath = getFixturesPath(); - // const tests = [ - // { - // name: "recorded/actions/insertEmptyLines/dropThis", - // path: `${fixturePath}/recorded/actions/insertEmptyLines/dropThis.yml`, - // }, - // ]; - - for (const { name, path } of tests) { - let executed = true; - try { - const { spy, neovimIDE, client } = await getContext(); - executed = await runTest(name, path, spy!, neovimIDE!, client); - } catch (err) { - const error = err as AssertionError; - showFailedTest(name, error); - failures[name] = error; - continue; - } - if (!executed) { - continue; - } - showSucceededTest(name); - successes.push(name); - } - showSummaryTests(); -} -async function runTest( - name: string, - file: string, - spyIde: SpyIDE, - neovimIDE: NeovimIDE, - client: NeovimClient, -): Promise { - const buffer = await fsp.readFile(file); - const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; - const excludeFields: ExcludableSnapshotField[] = []; - - // We don't support decorated symbol marks (hats) yet - const hasMarks = - fixture.initialState.marks != null && - Object.keys(fixture.initialState.marks).length > 0; - - // we don't support multiple selections in neovim (we don't support multiple cursors atm) - const hasMultipleSelections = - fixture.initialState.selections.length > 1 || - (fixture.finalState && fixture.finalState.selections.length > 1); - - // We don't support Tree sitter yet (which requires a code languageId) - const needTreeSitter = fixture.languageId !== "plaintext"; - - if (hasMarks || hasMultipleSelections || needTreeSitter) { - return false; - } - - // Uncomment below for debugging - // if (name === "recorded/implicitExpansion/chuckBoundingThat") { - // console.log(`runTest(${name}) => let's analyze it`); - // } - - console.log( - "------------------------------------------------------------------------------", - ); - console.log(`runTest(${name})...`); - - // FIXME The snapshot gets messed up with timing issues when running the recorded tests - // "Couldn't find token default.a" - const usePrePhraseSnapshot = false; - - const { takeSnapshot, setStoredTarget, commandServerApi } = ( - await getCursorlessApi() - ).testHelpers!; - - const editor = await openNewEditor( - client, - neovimIDE, - fixture.initialState.documentContents, - { - languageId: fixture.languageId, - }, - ); - - // Override any user settings and make sure tests run with default tabs. - //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST; - - if (fixture.postEditorOpenSleepTimeMs != null) { - await sleepWithBackoffOld(fixture.postEditorOpenSleepTimeMs); - } - - await editor.setSelections( - fixture.initialState.selections.map(createSelection), - ); - - for (const storedTargetKey of storedTargetKeys) { - const key = `${storedTargetKey}Mark` as const; - setStoredTarget(editor, storedTargetKey, fixture.initialState[key]); - } - - if (fixture.initialState.clipboard) { - spyIde.clipboard.writeText(fixture.initialState.clipboard); - } - - commandServerApi.setFocusedElementType( - fixture.focusedElementType === "other" - ? undefined - : fixture.focusedElementType ?? "textEditor", - ); - - // NOT NEEDED FOR NOW - // Ensure that the expected hats are present - // Assert that recorded decorations are present - - let returnValue: unknown; - let fallback: Fallback | undefined; - - try { - returnValue = await runCursorlessCommand({ - ...fixture.command, - usePrePhraseSnapshot, - }); - if (clientSupportsFallback(fixture.command)) { - const commandResponse = returnValue as CommandResponse; - returnValue = - "returnValue" in commandResponse - ? commandResponse.returnValue - : undefined; - fallback = - "fallback" in commandResponse ? commandResponse.fallback : undefined; - } - } catch (err) { - const error = err as Error; - - if (shouldUpdateFixtures()) { - const outputFixture = { - ...fixture, - finalState: undefined, - decorations: undefined, - returnValue: undefined, - thrownError: { name: error.name }, - }; - - await fsp.writeFile(file, serializeTestFixture(outputFixture)); - } else if (fixture.thrownError != null) { - assert.strictEqual( - error.name, - fixture.thrownError.name, - "Unexpected thrown error", - ); - } else { - throw error; - } - - return true; - } - - if (fixture.postCommandSleepTimeMs != null) { - await sleepWithBackoffOld(fixture.postCommandSleepTimeMs); - } - - // We don't support decorated symbol marks (hats) yet - const marks = undefined; - - if (fixture.finalState?.clipboard == null) { - excludeFields.push("clipboard"); - } - - for (const storedTargetKey of storedTargetKeys) { - const key = `${storedTargetKey}Mark` as const; - if (fixture.finalState?.[key] == null) { - excludeFields.push(key); - } - } - - // FIXME Visible ranges are not asserted, see: - // https://github.com/cursorless-dev/cursorless/issues/160 - const { visibleRanges, ...resultState } = await takeSnapshot( - excludeFields, - [], - spyIde.activeTextEditor!, - spyIde, - marks, - false, - ); - - const rawSpyIdeValues = spyIde.getSpyValues(fixture.ide?.flashes != null); - const actualSpyIdeValues = - rawSpyIdeValues == null - ? undefined - : spyIDERecordedValuesToPlainObject(rawSpyIdeValues); - - if (shouldUpdateFixtures()) { - const outputFixture: TestCaseFixtureLegacy = { - ...fixture, - finalState: resultState, - returnValue, - fallback, - ide: actualSpyIdeValues, - thrownError: undefined, - }; - - await fsp.writeFile(file, serializeTestFixture(outputFixture)); - } else { - if (fixture.thrownError != null) { - throw Error( - `Expected error ${fixture.thrownError.name} but none was thrown`, - ); - } - - assert.deepStrictEqual( - resultState, - fixture.finalState, - "Unexpected final state", - ); - - assert.deepStrictEqual( - returnValue, - fixture.returnValue, - "Unexpected return value", - ); - - assert.deepStrictEqual( - fallback, - fixture.fallback, - "Unexpected fallback value", - ); - - assert.deepStrictEqual( - omitByDeep(actualSpyIdeValues, isUndefined), - fixture.ide, - "Unexpected ide captured values", - ); - } - return true; -} From 47816658baff8de91cf377cbdabecf697ec215f1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 16:50:26 +0100 Subject: [PATCH 251/504] refactor: cleanup --- .../cursorless-neovim/src/constructTestHelpers.ts | 3 --- packages/cursorless-neovim/src/extension.ts | 1 - packages/neovim-common/src/TestHelpers.ts | 14 -------------- 3 files changed, 18 deletions(-) diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/cursorless-neovim/src/constructTestHelpers.ts index 304b2475d2..43ec3a20bc 100644 --- a/packages/cursorless-neovim/src/constructTestHelpers.ts +++ b/packages/cursorless-neovim/src/constructTestHelpers.ts @@ -22,10 +22,8 @@ import { NeovimIDE, TestHelpers, } from "@cursorless/neovim-common"; -import type { NeovimClient } from "neovim"; export function constructTestHelpers( - client: NeovimClient, commandServerApi: FakeCommandServerApi, storedTargets: StoredTargetMap, hatTokenMap: HatTokenMap, @@ -37,7 +35,6 @@ export function constructTestHelpers( runIntegrationTests: () => Promise, ): TestHelpers | undefined { return { - client, commandServerApi: commandServerApi!, ide: normalizedIde, neovimIDE, diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 0aedbdece3..af89497076 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -83,7 +83,6 @@ export async function activate(plugin: NvimPlugin) { testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers( - client, fakeCommandServerApi, storedTargets, hatTokenMap, diff --git a/packages/neovim-common/src/TestHelpers.ts b/packages/neovim-common/src/TestHelpers.ts index 4520979505..75bc6388c9 100644 --- a/packages/neovim-common/src/TestHelpers.ts +++ b/packages/neovim-common/src/TestHelpers.ts @@ -12,13 +12,8 @@ import type { TextEditor, } from "@cursorless/common"; import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import type { NeovimClient } from "neovim"; -// import { CommandApi } from "@cursorless/cursorless-engine"; -//import * as vscode from "vscode"; -//import { VscodeApi } from "./VscodeApi"; export interface TestHelpers { - client: NeovimClient; ide: NormalizedIDE; neovimIDE: NeovimIDE; injectIde: (ide: IDE) => void; @@ -29,10 +24,6 @@ export interface TestHelpers { commandServerApi: FakeCommandServerApi; - // commandApi: CommandApi; - - //toVscodeEditor(editor: TextEditor): vscode.TextEditor; - setStoredTarget( editor: TextEditor, key: string, @@ -54,9 +45,4 @@ export interface TestHelpers { cursorlessTalonStateJsonPath: string; cursorlessCommandHistoryDirPath: string; - - /** - * A thin wrapper around the VSCode API that allows us to mock it for testing. - */ - //vscodeApi: VscodeApi; } From 17cb35d54fb594b61bc898b9ebbdb98093be29ed Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 17:57:05 +0100 Subject: [PATCH 252/504] refactor: cleanup --- packages/cursorless-neovim/src/events.ts | 1 - packages/cursorless-neovim/src/extension.ts | 12 +++++------- packages/cursorless-neovim/src/index.ts | 4 +++- .../cursorless-neovim/src/registerCommands.ts | 19 ------------------- 4 files changed, 8 insertions(+), 28 deletions(-) delete mode 100644 packages/cursorless-neovim/src/events.ts diff --git a/packages/cursorless-neovim/src/events.ts b/packages/cursorless-neovim/src/events.ts deleted file mode 100644 index f710ccd0b2..0000000000 --- a/packages/cursorless-neovim/src/events.ts +++ /dev/null @@ -1 +0,0 @@ -// export const eventEmitter = new EventEmitter(); diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index af89497076..61a586de83 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -10,30 +10,29 @@ import { createCursorlessEngine, } from "@cursorless/cursorless-engine"; import { + EXTENSION_ID, NeovimFileSystem, NeovimHats, NeovimIDE, } from "@cursorless/neovim-common"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; import * as crypto from "crypto"; +import type { NeovimClient } from "neovim/lib/api/client"; +import type { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import * as os from "os"; import * as path from "path"; import { Language, Tree } from "web-tree-sitter"; import { NeovimCommandServerApi } from "./NeovimCommandServerApi"; import { constructTestHelpers } from "./constructTestHelpers"; -import { EXTENSION_ID } from "@cursorless/neovim-common"; -import { getNeovimRegistry } from "@cursorless/neovim-registry"; -import type { NeovimClient } from "neovim/lib/api/client"; -import type { NvimPlugin } from "neovim/lib/host/NvimPlugin"; import { registerCommands } from "./registerCommands"; /** - * This function is called from talon.nvim to initialize the Cursorless engine. + * This function is called from cursorless.nvim to initialize the Cursorless engine. * NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup) * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode */ export async function activate(plugin: NvimPlugin) { const client = plugin.nvim as NeovimClient; - const buffer = await client.buffer; const { neovimIDE, hats, fileSystem } = await createNeovimIde(client); @@ -101,7 +100,6 @@ export async function activate(plugin: NvimPlugin) { }; getNeovimRegistry().registerExtensionApi(EXTENSION_ID, cursorlessApi); - // await updateTextEditor(client, neovimIDE, true); console.log("activate(): Cursorless extension loaded"); } diff --git a/packages/cursorless-neovim/src/index.ts b/packages/cursorless-neovim/src/index.ts index 3f08ff7ed1..354a4ba48e 100644 --- a/packages/cursorless-neovim/src/index.ts +++ b/packages/cursorless-neovim/src/index.ts @@ -9,7 +9,9 @@ import { activate } from "./extension"; export default function entry(plugin: NvimPlugin) { // We make sure the cursorless-neovim extension is only loaded once, // as otherwise we will run our first copy when loading the extension - // and a different new copy for running the testcases + // and a different new copy for executing other functions + // At the moment, it doesn't matter that much because we don't call other functions + // That being said it doesn't hurt to set it to "false" anyway // NOTE: this is the case because all the files are rolled up into a single index.cjs file // and node-client would reload that index.cjs file if "dev" was set to "true" plugin.setOptions({ dev: false }); diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index b9aa182bff..896407d5e9 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -18,25 +18,6 @@ import { getNeovimRegistry } from "@cursorless/neovim-registry"; //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -/** - * Handle the command received from the command-server Neovim extension - * - * Note how this file is named registerCommands.ts but it does not register any command. - * Instead it implements the command handler directly. - * This is to match the cursorless-vscode's registerCommands.ts file structure. - * @param allArguments something like XXX - * @returns - */ -// export function handleCommandInternal(...allArguments: any[]): Promise { -// const [client, neovimIDE, commandApi, commandServerApi, command, ...rest] = -// allArguments as [ -// NeovimClient, -// NeovimIDE, -// CommandApi, -// CommandServerApi, -// string, -// ...unknown[], -// ]; export async function registerCommands( client: NeovimClient, neovimIDE: NeovimIDE, From e6590fa5384fc86c7cfbb8e92ed41f102af03379 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 18:00:01 +0100 Subject: [PATCH 253/504] feat: initial implementation of showing notification to the user (84 failed tests) --- .../cursorless-neovim/src/registerCommands.ts | 48 +++++++++---------- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 14 +++++- packages/neovim-common/src/neovimApi.ts | 16 ++++++- 3 files changed, 51 insertions(+), 27 deletions(-) diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 896407d5e9..8acfe635a3 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -12,8 +12,8 @@ import { modeSwitchTerminal, updateTextEditor, } from "@cursorless/neovim-common"; -import type { NeovimClient } from "neovim"; import { getNeovimRegistry } from "@cursorless/neovim-registry"; +import type { NeovimClient } from "neovim"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; @@ -33,33 +33,31 @@ export async function registerCommands( modeSwitchNormalTerminal(client); } - // try { + try { + await updateTextEditor(client, neovimIDE); + const result = await commandApi.runCommandSafe(...args); - await updateTextEditor(client, neovimIDE); - const result = await commandApi.runCommandSafe(...args); + const command = ensureCommandShape(args) as CommandLatest; + const focusedElementType = + await commandServerApi.getFocusedElementType(); + if ( + focusedElementType === "terminal" && + command.action.name === "replaceWithTarget" + ) { + // if user runs a terminal, and a "bring" command was requested, switch back to "t" mode + // so the fallback can do its magic + modeSwitchTerminal(client); + } - const command = ensureCommandShape(args) as CommandLatest; - const focusedElementType = await commandServerApi.getFocusedElementType(); - if ( - focusedElementType === "terminal" && - command.action.name === "replaceWithTarget" - ) { - // if user runs a terminal, and a "bring" command was requested, switch back to "t" mode - // so the fallback can do its magic - modeSwitchTerminal(client); + return result; + } catch (e) { + if (neovimIDE.runMode !== "test") { + const err = e as Error; + console.error(err.stack); + neovimIDE.handleCommandError(err); + } + throw e; } - - return result; - - // TODO: use neovimIDE.runMode === "test" instead of isTesting() - // } catch (e) { - // // if (!isTesting()) { - // // const err = e as Error; - // // console.error(err.stack); - // // vscodeIde.handleCommandError(err); - // // } - // throw e; - // } }, // Cheatsheet commands ["cursorless.showCheatsheet"]: dummyCommandHandler, diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 9983cd850d..74ed7c309b 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -30,7 +30,11 @@ import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; import type { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import { getTalonNvimPath } from "../../../../neovim-common/src/neovimApi"; +// TODO: fix this import to avoid all the ../../.... +import { + getTalonNvimPath, + showErrorMessage, +} from "../../../../neovim-common/src/neovimApi"; import path from "path"; import { neovimOnDidChangeTextDocument, @@ -297,6 +301,14 @@ export class NeovimIDE implements IDE { return this.activeTextEditor as NeovimTextEditorImpl; } + handleCommandError(err: Error) { + // if (err instanceof OutdatedExtensionError) { + // this.showUpdateExtensionErrorMessage(err); + // } else { + showErrorMessage(this.client, err.message); + // } + } + disposeOnExit(...disposables: Disposable[]): () => void { this.disposables.push(...disposables); diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index d1fa0187fb..4aed8d38b1 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -1,4 +1,4 @@ -// Helper directly calling into Neovim apis, generally lua, exported by talon.nvim +// Helper directly calling into Neovim apis, generally lua, exported by cursorless.nvim import { Position, Range, Selection } from "@cursorless/common"; import type { NeovimClient } from "neovim/lib/api/client"; import type { Window } from "neovim/lib/api/Window"; @@ -145,3 +145,17 @@ export async function modeSwitchTerminal(client: NeovimClient): Promise { const luaCode = `return require("cursorless.utils").mode_switch_t()`; await client.executeLua(luaCode, []); } + +/** + * Show an error message to the user + * @param client + * @param message + * @see https://neovim.io/doc/user/lua.html#vim.notify() + */ +export async function showErrorMessage( + client: NeovimClient, + message: string, +): Promise { + const luaCode = `vim.notify("${message}")`; + await client.executeLua(luaCode, []); +} From bfca51d833d874539bf00e8e746fc2bd853fffec Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 30 Apr 2024 18:00:20 +0100 Subject: [PATCH 254/504] docs: todo list --- packages/cursorless-neovim/TODO.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index 3c0324be41..bed4a0731f 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,12 +1,25 @@ +# todo list to review for Pokey + +- [ ] launch config for osx and Linux (currently relies on node.exe) +- [ ] task to run neovim in the background for osx and Linux (currently relies on powershell) +- [ ] remove the console.log and have them on a different development branch +- [ ] packages\cursorless-neovim-e2e\src\suite\recorded.neovim.test.ts versus packages\cursorless-vscode-e2e\src\suite\recorded.vscode.test.ts +- [ ] packages\cursorless-neovim-e2e\src\endToEndTestSetup.ts versus packages\cursorless-vscode-e2e\src\endToEndTestSetup.ts +- [ ] packages\cursorless-neovim\src\constructTestHelpers.ts versus packages\cursorless-vscode\src\constructTestHelpers.ts +- [ ] packages\cursorless-neovim\src\extension.ts versus packages\cursorless-vscode\src\extension.ts + # questions for Pokey +- move getFocusedElementType() into the command server? see `NeovimCommandServerApi.ts` - move lua files and all cursorless files to cursorless mono repo +- think about command-server.nvim into its own repo + - need to register the node functions in that report? see `RegisterFunctions` in `cursorless.nvim` + - need to load the extension calling `CommandServerLoadExtension`? see `extension` in `init.lua` + - need to configure the shortcuts? see `configure_command_server_shortcut` in `init.lua` + - need the `cursorless_nvim_path` helper from `utils.lua` - .js into its own cursorless.nvim (only used for deployment similar to cursorless-talon) -- duplicate the .lua and .vim files if needed but for now nothing needs to be duplicated so is fine! later we can deal with duplications if needed, don't overthink for now! - see " "esbuild:prod": "pnpm run esbuild:base --minify"," from package.json cursorless-vscode to not include maps (!= "esbuild": "pnpm run esbuild:base --sourcemap",) -- think about command-server.nvim into its own repo - - terminal: `bring second paint row one` works but `take second paint row one` followed by `bring this` does not. It is because it tries to bring it to the current cursor instead of using the fallback method: `Exception: nvim_buf_set_lines: Buffer is not 'modifiable'` # mocha tests From b8cb1bdfd85f0965bc0f9fc2318d272d3a1b7a05 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 11:11:36 +0100 Subject: [PATCH 255/504] refactor: cleanup --- packages/cursorless-neovim/src/extension.ts | 4 --- .../src/ide/neovim/NeovimFileSystem.ts | 1 + .../neovim-common/src/ide/neovim/NeovimIDE.ts | 33 ++++++++----------- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 2 -- packages/neovim-common/src/neovimHelpers.ts | 2 ++ 5 files changed, 17 insertions(+), 25 deletions(-) diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/cursorless-neovim/src/extension.ts index 61a586de83..fdcc08b1af 100644 --- a/packages/cursorless-neovim/src/extension.ts +++ b/packages/cursorless-neovim/src/extension.ts @@ -45,12 +45,8 @@ export async function activate(plugin: NvimPlugin) { neovimIDE.runMode === "test", ); - // TODO: atm if we are using testing, the focused element will always be the texteditor - // even if we the current window is a terminal. We need to fix this. const fakeCommandServerApi = new FakeCommandServerApi(); const neovimCommandServerApi = new NeovimCommandServerApi(client); - // TODO: there are currently two ways to test if we are running tests, through neovimIDE.runMode and with isTesting() - // We need to get rid of isTesting() entirely and use neovimIDE.runMode == "test" instead const commandServerApi = neovimIDE.runMode === "test" ? fakeCommandServerApi diff --git a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts index 5079cd45b3..4b9923d966 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts @@ -53,6 +53,7 @@ export class NeovimFileSystem implements FileSystem { throw Error("resolveBundledPath() Not implemented"); } + // TODO: track on github to implement watchDir and remove TODO public watchDir(path: string, onDidChange: PathChangeListener): Disposable { // throw Error("watchDir() Not implemented"); // TODO: we need to implement this? diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 74ed7c309b..3f26e60ea7 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -1,47 +1,42 @@ import type { + Disposable, EditableTextEditor, + IDE, + OpenUntitledTextDocumentOptions, Range, + RunMode, Selection, + TextDocumentChangeEvent, TextEditor, + WorkspaceFolder, } from "@cursorless/common"; -import { GeneralizedRange } from "@cursorless/common"; -import { TextDocument } from "@cursorless/common"; -import type { TextDocumentChangeEvent } from "@cursorless/common"; -import { FlashDescriptor } from "@cursorless/common"; -import { QuickPickOptions } from "@cursorless/common"; import { Event, + FlashDescriptor, + GeneralizedRange, + QuickPickOptions, + TextDocument, TextEditorSelectionChangeEvent, TextEditorVisibleRangesChangeEvent, } from "@cursorless/common"; -import type { - Disposable, - IDE, - OpenUntitledTextDocumentOptions, - RunMode, - WorkspaceFolder, -} from "@cursorless/common"; import { pull } from "lodash"; +import type { Buffer, NeovimClient, Window } from "neovim"; import { v4 as uuid } from "uuid"; import { NeovimCapabilities } from "./NeovimCapabilities"; import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimGlobalState from "./NeovimGlobalState"; import NeovimMessages from "./NeovimMessages"; -import type { NeovimClient, Window, Buffer } from "neovim"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -// TODO: fix this import to avoid all the ../../.... -import { - getTalonNvimPath, - showErrorMessage, -} from "../../../../neovim-common/src/neovimApi"; import path from "path"; +import { URI } from "vscode-uri"; + +import { getTalonNvimPath, showErrorMessage } from "../../neovimApi"; import { neovimOnDidChangeTextDocument, neovimOnDidOpenTextDocument, } from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -import { URI } from "vscode-uri"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts index c1051c7eb2..5bd65d3c21 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -200,7 +200,6 @@ export class NeovimTextDocumentImpl implements TextDocument { // ---- range math private _validateRange(range: Range): Range { - // TODO: this instanceof test fails with mocha if (!(range instanceof Range)) { throw new Error("Invalid argument"); } @@ -215,7 +214,6 @@ export class NeovimTextDocumentImpl implements TextDocument { } private _validatePosition(position: Position): Position { - // TODO: this instanceof test fails with mocha if (!(position instanceof Position)) { throw new Error("Invalid argument"); } diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index 8c85a28e97..29b4067a91 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -9,6 +9,8 @@ import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; import type { NeovimClient } from "neovim"; import { IDE } from "@cursorless/common"; +//TODO: file a github issue to get notified about changes in buffer and drop code + /** * Subscribe to buffer updates, e.g. when the text changes. */ From 0a86aa87443c983995ef28ec0efb50338de4797f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 11:17:48 +0100 Subject: [PATCH 256/504] refactor: switch mode based on fallback in command response + cleanup --- .../cursorless-neovim/src/registerCommands.ts | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 8acfe635a3..fed3593ee6 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,8 +1,10 @@ import { CURSORLESS_COMMAND_ID, CommandLatest, + CommandResponse, CommandServerApi, CursorlessCommandId, + clientSupportsFallback, } from "@cursorless/common"; import { CommandApi } from "@cursorless/cursorless-engine"; @@ -16,6 +18,7 @@ import { getNeovimRegistry } from "@cursorless/neovim-registry"; import type { NeovimClient } from "neovim"; // TODO - we need to fix that import as we should not be allowed to import it afaict? //import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; +// TODO: move this to common import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; export async function registerCommands( @@ -37,16 +40,22 @@ export async function registerCommands( await updateTextEditor(client, neovimIDE); const result = await commandApi.runCommandSafe(...args); - const command = ensureCommandShape(args) as CommandLatest; + const command = ensureCommandShape(args); const focusedElementType = await commandServerApi.getFocusedElementType(); if ( focusedElementType === "terminal" && - command.action.name === "replaceWithTarget" + clientSupportsFallback(command) ) { - // if user runs a terminal, and a "bring" command was requested, switch back to "t" mode - // so the fallback can do its magic - modeSwitchTerminal(client); + const commandResponse = result as CommandResponse; + if ( + "fallback" in commandResponse && + commandResponse.fallback.action === "insert" + ) { + // if user runs a terminal, and a "bring" command was requested, switch back to "t" mode + // so the fallback can do its magic + modeSwitchTerminal(client); + } } return result; @@ -59,62 +68,50 @@ export async function registerCommands( throw e; } }, + // Cheatsheet commands ["cursorless.showCheatsheet"]: dummyCommandHandler, ["cursorless.internal.updateCheatsheetDefaults"]: dummyCommandHandler, + // Testcase recorder commands ["cursorless.recordTestCase"]: dummyCommandHandler, ["cursorless.recordOneTestCaseThenPause"]: dummyCommandHandler, ["cursorless.pauseRecording"]: dummyCommandHandler, ["cursorless.resumeRecording"]: dummyCommandHandler, ["cursorless.takeSnapshot"]: dummyCommandHandler, + // Other commands ["cursorless.showQuickPick"]: dummyCommandHandler, ["cursorless.showDocumentation"]: dummyCommandHandler, ["cursorless.private.logQuickActions"]: dummyCommandHandler, + // Hats ["cursorless.toggleDecorations"]: dummyCommandHandler, ["cursorless.recomputeDecorationStyles"]: dummyCommandHandler, + // Scope visualizer ["cursorless.showScopeVisualizer"]: dummyCommandHandler, ["cursorless.hideScopeVisualizer"]: dummyCommandHandler, + // Command history ["cursorless.analyzeCommandHistory"]: dummyCommandHandler, + // General keyboard commands ["cursorless.keyboard.escape"]: dummyCommandHandler, + // Targeted keyboard commands ["cursorless.keyboard.targeted.targetHat"]: dummyCommandHandler, ["cursorless.keyboard.targeted.targetScope"]: dummyCommandHandler, ["cursorless.keyboard.targeted.targetSelection"]: dummyCommandHandler, ["cursorless.keyboard.targeted.clearTarget"]: dummyCommandHandler, ["cursorless.keyboard.targeted.runActionOnTarget"]: dummyCommandHandler, + // Modal keyboard commands ["cursorless.keyboard.modal.modeOn"]: dummyCommandHandler, ["cursorless.keyboard.modal.modeOff"]: dummyCommandHandler, ["cursorless.keyboard.modal.modeToggle"]: dummyCommandHandler, }; - // if (command !== "cursorless.command") { - // console.log( - // `handleCommandInternal(): command=${command} is not supported`, - // ); - // return new Promise((resolve) => []); - // } - - // return commands["cursorless.command"](...rest); - // NOTE: making the below notation work is not needed anymore as we will use pure dependency injection - // const HandlerFunction = (command: string) => { - // commands[command](...rest); - // }; - - // HandlerFunction(command); - // extensionContext.subscriptions.push( - // ...Object.entries(commands).map(([commandId, callback]) => - // vscode.commands.registerCommand(commandId, callback), - // ), - // ); - // TODO: import from the top of the file and do not need a require since it will be external - // undo it everywhere else and also in the commandr server Object.entries(commands).map(([commandId, callback]) => getNeovimRegistry().registerCommand(commandId, callback), ); From d5650f64b94fc645264a94c57fa9423802afbba4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 11:18:02 +0100 Subject: [PATCH 257/504] feat: use mocha skip() to indicate when we skipped some tests. 366 passing 2796 pending 84 failing --- .../src/suite/recorded.neovim.test.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 1f5377e132..76f9e3d622 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -64,7 +64,7 @@ suite("recorded test cases", async function () { for (const { name, path } of tests) { test( name, - asyncSafety(() => runTest(path, getSpy()!, getNeovimIDE()!)), + asyncSafety(() => runTest(this, path, getSpy()!, getNeovimIDE()!)), ); } // getRecordedTestPaths().forEach(({ name, path }) => @@ -75,17 +75,20 @@ suite("recorded test cases", async function () { // ); }); -async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { +async function runTest( + suite: Mocha.Suite, + file: string, + spyIde: SpyIDE, + neovimIDE: NeovimIDE, +) { const client = (global as any).additionalParameters.client; const buffer = await fsp.readFile(file); const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; - // TODO: find a way to distinguish between a skipped test and - // a failed test if (unsupportedFixture(fixture)) { - return; + return suite.ctx.skip(); } // Uncomment below for debugging @@ -268,6 +271,9 @@ async function runTest(file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE) { } function unsupportedFixture(fixture: TestCaseFixtureLegacy) { + // TODO: skip tests based on common patterns + // black list if only a few tests don't have a common pattern + // We don't support decorated symbol marks (hats) yet const hasMarks = fixture.initialState.marks != null && From 286f0884a224e189e461141f529a45fbf47a5dd7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 12:14:26 +0100 Subject: [PATCH 258/504] feat: working code to paste from clipboard + fixture to test it (non working atm) --- .../recorded/actions/pasteBeforeToken.yml | 34 +++++++++++++++++++ .../src/ide/neovim/NeovimTextEditorImpl.ts | 2 -- packages/neovim-common/src/neovimApi.ts | 8 +++++ packages/neovim-common/src/neovimHelpers.ts | 9 ++--- 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 data/fixtures/recorded/actions/pasteBeforeToken.yml diff --git a/data/fixtures/recorded/actions/pasteBeforeToken.yml b/data/fixtures/recorded/actions/pasteBeforeToken.yml new file mode 100644 index 0000000000..15b99daf10 --- /dev/null +++ b/data/fixtures/recorded/actions/pasteBeforeToken.yml @@ -0,0 +1,34 @@ +languageId: plaintext +command: + version: 7 + spokenForm: paste before token + action: + name: pasteFromClipboard + destination: + type: primitive + insertionMode: before + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: token} + usePrePhraseSnapshot: true +initialState: + documentContents: hello world + selections: + - anchor: {line: 0, character: 8} + active: {line: 0, character: 8} + marks: {} + clipboard: "value" +finalState: + documentContents: hello value world + selections: + - anchor: {line: 0, character: 14} + active: {line: 0, character: 14} + thatMark: + - type: UntypedTarget + contentRange: + start: {line: 0, character: 6} + end: {line: 0, character: 11} + isReversed: false + hasExplicitRange: true diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts index 166114236c..85748eeb9b 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts @@ -149,12 +149,10 @@ export class NeovimTextEditorImpl implements EditableTextEditor { public async clipboardCopy(_ranges?: Range[]): Promise { await neovimClipboardCopy(this.client, this.neovimIDE); - // throw Error("clipboardCopy Not implemented"); } public async clipboardPaste(_ranges?: Range[]): Promise { await neovimClipboardPaste(this.client, this.neovimIDE); - throw Error("clipboardPaste Not implemented"); } public async indentLine(_ranges?: Range[]): Promise { diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index 4aed8d38b1..eedff40738 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -126,6 +126,14 @@ export async function getFromClipboard(client: NeovimClient): Promise { return await client.callFunction("getreg", ["*"]); } +/** + * Paste at current position from the operating system clipboard + */ +export async function pasteFromClipboard(client: NeovimClient) { + const luaCode = `return require("cursorless.utils").paste()`; + await client.executeLua(luaCode, []); +} + /** * Switch from terminal (t) mode to normal terminal (nt) mode * @param client diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index 29b4067a91..ddefbe713d 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -3,6 +3,7 @@ import { bufferGetSelections, getFromClipboard, + pasteFromClipboard, putToClipboard, } from "@cursorless/neovim-common"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; @@ -54,11 +55,5 @@ export async function neovimClipboardPaste( client: NeovimClient, ide: IDE, ): Promise { - const editor = ide.activeTextEditor as NeovimTextEditorImpl; - const window = await client.window; - const data = await getFromClipboard(client); - // TODO: get the current selection indexes, - // retrieve the corresponding lines from the Buffer, - // and replace the lines with the pasted data - // NO: just issue an insert (CTRL+V) in lua + await pasteFromClipboard(client); } From fe1e51af539f8fc3a11ca5c59733b8aacb6f693b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 14:10:55 +0100 Subject: [PATCH 259/504] refactor: change all console.log() into console.debug() --- .../src/core/updateSelections/RangeUpdater.ts | 2 +- .../src/suite/recorded.neovim.test.ts | 11 +++----- .../cursorless-neovim/src/registerCommands.ts | 2 +- .../src/ide/neovim/NeovimEdit.ts | 24 ++++++++-------- .../src/ide/neovim/NeovimEvents.ts | 8 +++--- .../src/ide/neovim/NeovimFileSystem.ts | 4 +-- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 16 ++++++----- .../src/ide/neovim/NeovimTextDocumentImpl.ts | 28 +++++++++---------- .../src/ide/neovim/NeovimTextLineImpl.ts | 14 +++++----- packages/neovim-common/src/neovimApi.ts | 8 +++--- packages/neovim-common/src/neovimHelpers.ts | 4 +-- .../neovim-common/src/updateTextEditor.ts | 2 +- 12 files changed, 61 insertions(+), 62 deletions(-) diff --git a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts index 6685f6bd32..b4d1ebcd11 100644 --- a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts +++ b/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts @@ -97,7 +97,7 @@ export class RangeUpdater { this.disposable = ide().onDidChangeTextDocument( (event: TextDocumentChangeEvent) => { const changes = event.contentChanges; - console.log( + console.debug( `RangeUpdater.listenForDocumentChanges(): changes=${JSON.stringify(changes)}`, ); const documentReplaceEditLists = this.getDocumentReplaceEditLists( diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 76f9e3d622..75c9ff9036 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -93,13 +93,13 @@ async function runTest( // Uncomment below for debugging // if (name === "recorded/implicitExpansion/chuckBoundingThat") { - // console.log(`runTest(${name}) => let's analyze it`); + // console.debug(`runTest(${name}) => let's analyze it`); // } - console.log( + console.debug( "------------------------------------------------------------------------------", ); - console.log(`runTest(${file})...`); + console.debug(`runTest(${file})...`); // FIXME The snapshot gets messed up with timing issues when running the recorded tests // "Couldn't find token default.a" @@ -270,10 +270,7 @@ async function runTest( } } -function unsupportedFixture(fixture: TestCaseFixtureLegacy) { - // TODO: skip tests based on common patterns - // black list if only a few tests don't have a common pattern - +// Fixtures that are known to fail in neovim but succeed in vscode // We don't support decorated symbol marks (hats) yet const hasMarks = fixture.initialState.marks != null && diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index fed3593ee6..95f3db38f6 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -118,5 +118,5 @@ export async function registerCommands( } export async function dummyCommandHandler(...args: any[]) { - console.log(`dummyCommandHandler(): args=${args}`); + console.debug(`dummyCommandHandler(): args=${args}`); } diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 22b3f2d1b7..35c826161f 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -17,39 +17,39 @@ export default async function neovimEdit( window: Window, edits: Edit[], ): Promise { - console.log("neovimEdit() [unsorted]:"); + console.debug("neovimEdit() [unsorted]:"); for (const edit of edits) { - console.log( + console.debug( `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, ); } edits.sort((a, b) => { - // console.log( + // console.debug( // `a=${JSON.stringify(a.range)}, text='${a.text}', isReplace=${a.isReplace}`, // ); - // console.log( + // console.debug( // `b=${JSON.stringify(b.range)}, text='${b.text}', isReplace=${b.isReplace}`, // ); // We apply the insert/replace edits from the start of the document // as a later one assume the previous ones have already been applied if ((isInsert(a) || isReplace(a)) && (isInsert(b) || isReplace(b))) { - // console.log("a is insert/replace and b is insert/replace"); + // console.debug("a is insert/replace and b is insert/replace"); return 1; } // We apply the delete edits from the end of the document // to make sure the edit ranges for the remaining ones are stable if (a.range.start.line === b.range.start.line) { - // console.log("a and b are on the same line"); + // console.debug("a and b are on the same line"); return b.range.start.character - a.range.start.character; } - // console.log("a and b are on different lines"); + // console.debug("a and b are on different lines"); return b.range.start.line - a.range.start.line; }); - console.log("neovimEdit() [sorted]:"); + console.debug("neovimEdit() [sorted]:"); for (const edit of edits) { - console.log( + console.debug( `\trange=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`, ); } @@ -93,7 +93,7 @@ export default async function neovimEdit( } async function neovimDelete(client: NeovimClient, range: Range): Promise { - console.log(`neovimDelete(): range=${JSON.stringify(range)}`); + console.debug(`neovimDelete(): range=${JSON.stringify(range)}`); const buffer = await client.window.buffer; // only keep the end of the last line @@ -165,7 +165,7 @@ async function neovimInsert( position: Position, text: string, ) { - console.log( + console.debug( `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`, ); // standardise newlines so we can easily split the lines @@ -210,7 +210,7 @@ async function neovimInsert( } async function neovimReplace(client: NeovimClient, range: Range, text: string) { - console.log( + console.debug( `neovimReplace(): range=${JSON.stringify(range)}, text='${text}'`, ); await neovimDelete(client, range); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index bddd65a173..550fe160c9 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -40,7 +40,7 @@ export function neovimOnDidOpenTextDocument( // linedata: string[], // more: boolean, // ): Promise { -// console.log( +// console.debug( // `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, // ); @@ -52,7 +52,7 @@ export function neovimOnDidOpenTextDocument( // // const document = (neovimIDE.activeTextEditor as TextEditor).document; // // const contents = await document.getText(); -// // console.log( +// // console.debug( // // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, // // ); // eventEmitter.emit("onDidChangeTextDocument", { @@ -78,7 +78,7 @@ export function fromNeovimContentChange( ): TextDocumentContentChangeEvent[] { const result = []; const text = linedata.join("\n"); - console.log( + console.debug( `fromNeovimContentChange(): document.getText(): '${document.getText()}'`, ); const range = new Range( @@ -116,7 +116,7 @@ export function fromNeovimContentChange( // throw new Error(`fromNeovimContentChange(): unexpected count=${count}`); // } // count++; - console.log(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); + console.debug(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); return result; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts index 4b9923d966..3b83bb8347 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts @@ -27,7 +27,7 @@ export class NeovimFileSystem implements FileSystem { try { fs.mkdirSync(this.cursorlessDir); } catch (err) { - console.log("Cannot create cursorlessDir", this.cursorlessDir, err); + console.debug("Cannot create cursorlessDir", this.cursorlessDir, err); } } } @@ -45,7 +45,7 @@ export class NeovimFileSystem implements FileSystem { */ public async readBundledFile(path: string): Promise { // throw Error("readBundledFile() Not implemented"); - console.log("readBundledFile() Not implemented"); + console.debug("readBundledFile() Not implemented"); return undefined; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 3f26e60ea7..0098fb4d81 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -121,7 +121,7 @@ export class NeovimIDE implements IDE { async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { // TODO: find out how to flash the target ranges (similar to vscode) - console.log("flashRanges Not implemented"); + console.debug("flashRanges Not implemented"); } get assetsRoot(): string { @@ -147,7 +147,7 @@ export class NeovimIDE implements IDE { ? this.getTextEditor(this.activeWindow) : undefined; if (editor === undefined) { - console.log("getActiveTextEditor: editor is undefined"); + console.debug("getActiveTextEditor: editor is undefined"); } return editor; } @@ -241,7 +241,7 @@ export class NeovimIDE implements IDE { let document = this.getTextDocument(buffer); let editor = this.getTextEditor(window); if (!document) { - console.log( + console.debug( `toNeovimEditor(): creating new document: buffer=${buffer.id}`, ); document = new NeovimTextDocumentImpl( @@ -258,7 +258,7 @@ export class NeovimIDE implements IDE { // "attach" to Nvim buffers to subscribe to buffer update events. // This is similar to TextChanged but more powerful and granular. // @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - // console.log( + // console.debug( // `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, // ); // buffer.listen("lines", async () => await receivedBufferEvent); @@ -271,11 +271,13 @@ export class NeovimIDE implements IDE { // }); // buffer.listen("lines", receivedBufferEvent); } else { - console.log(`toNeovimEditor(): updating document: buffer=${buffer.id}`); + console.debug(`toNeovimEditor(): updating document: buffer=${buffer.id}`); document.update(lines); } if (!editor) { - console.log(`toNeovimEditor(): creating new editor: window=${window.id}`); + console.debug( + `toNeovimEditor(): creating new editor: window=${window.id}`, + ); editor = new NeovimTextEditorImpl( uuid(), this.client, @@ -287,7 +289,7 @@ export class NeovimIDE implements IDE { ); this.editorMap.set(window, editor); } else { - console.log(`toNeovimEditor(): updating editor: window=${window.id}`); + console.debug(`toNeovimEditor(): updating editor: window=${window.id}`); editor.updateDocument(visibleRanges, selections, document); } this.activeBuffer = buffer; diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts index 5bd65d3c21..44c6ffd490 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts @@ -32,14 +32,14 @@ export class NeovimTextDocumentImpl implements TextDocument { } get lineCount(): number { - // console.log(`lineCount(): ${this._lineCount}`); + // console.debug(`lineCount(): ${this._lineCount}`); return this._lineCount; } get range(): Range { const { end } = this.lineAt(this.lineCount - 1).range; const range = new Range(0, 0, end.line, end.character); - // console.log( + // console.debug( // `range(): (${range.start.line},${range.start.character}),(${range.end.line},${range.end.character})`, // ); return range; @@ -82,7 +82,7 @@ export class NeovimTextDocumentImpl implements TextDocument { } else if (typeof lineOrPosition === "number") { line = lineOrPosition; } - // console.log(`lineAt() line=${line}`); + // console.debug(`lineAt() line=${line}`); if ( typeof line !== "number" || @@ -101,12 +101,12 @@ export class NeovimTextDocumentImpl implements TextDocument { } public offsetAt(position: Position): number { - // console.log( + // console.debug( // `offsetAt() position=(${position.line},${position.character})`, // ); position = this._validatePosition(position); this._ensureLineStarts(); - // console.log( + // console.debug( // `offsetAt() returning ${ // this._lineStarts!.getPrefixSum(position.line - 1) + position.character // }`, @@ -117,7 +117,7 @@ export class NeovimTextDocumentImpl implements TextDocument { } public positionAt(offset: number): Position { - // console.log(`positionAt() offset=${offset}`); + // console.debug(`positionAt() offset=${offset}`); offset = Math.floor(offset); offset = Math.max(0, offset); @@ -132,22 +132,22 @@ export class NeovimTextDocumentImpl implements TextDocument { public getText(range?: Range): string { if (range === undefined) { - // console.log(`getText(all)`); + // console.debug(`getText(all)`); if (this._cachedTextValue == null) { this._cachedTextValue = this._lines.join(this._eol); } // if (this._lines.length > 10) { - // console.log( + // console.debug( // `getText() returning multiple lines: '${this._lines.slice(0, 10).join(this._eol)}' \n[stripped...]}`, // ); // } else { - // console.log( + // console.debug( // `getText() returning multiple lines: '${this._cachedTextValue}'`, // ); // } return this._cachedTextValue; } else { - // console.log( + // console.debug( // `getText(range=(${range?.start.line},${range?.start.character}),(${range?.end.line},${range?.end.character}))`, // ); } @@ -155,12 +155,12 @@ export class NeovimTextDocumentImpl implements TextDocument { range = this._validateRange(range); if (range.isEmpty) { - // console.log(`getText() returning empty`); + // console.debug(`getText() returning empty`); return ""; } if (range.isSingleLine) { - // console.log( + // console.debug( // `getText() returning single line '${this._lines[ // range.start.line // ].substring(range.start.character, range.end.character)}'`, @@ -186,11 +186,11 @@ export class NeovimTextDocumentImpl implements TextDocument { this._lines[endLineIndex].substring(0, range.end.character), ); // if (resultLines.length > 10) { - // console.log( + // console.debug( // `getText() returning multiple lines: '${resultLines.slice(0, 10).join(lineEnding)}' \n[stripped...]}`, // ); // } else { - // console.log( + // console.debug( // `getText() returning multiple lines: '${resultLines.join(lineEnding)}'`, // ); // } diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts index 025d697067..17a662de72 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts @@ -6,7 +6,7 @@ export default class NeovimTextLineImpl implements TextLine { private readonly _isLastLine: boolean; constructor(lineNumber: number, text: string, isLastLine: boolean) { - // console.log( + // console.debug( // `NeovimTextLineImpl(): lineNumber=${lineNumber}, text='${text}', isLastLine=${isLastLine}`, // ); this._lineNumber = lineNumber; @@ -19,12 +19,12 @@ export default class NeovimTextLineImpl implements TextLine { } get text(): string { - // console.log(`NeovimTextLineImpl.text()='${this._text}'`); + // console.debug(`NeovimTextLineImpl.text()='${this._text}'`); return this._text; } get range(): Range { - // console.log( + // console.debug( // `NeovimTextLineImpl.range(): range=(${this._lineNumber}, 0), (${this._lineNumber}, ${this._text.length})`, // ); return new Range(this._lineNumber, 0, this._lineNumber, this._text.length); @@ -32,12 +32,12 @@ export default class NeovimTextLineImpl implements TextLine { get rangeIncludingLineBreak(): Range { if (this._isLastLine) { - // console.log( + // console.debug( // `NeovimTextLineImpl.rangeIncludingLineBreak(): last line=(${this.range.start.line}, ${this.range.start.character}), (${this.range.end.line}, ${this.range.end.character})`, // ); return this.range; } - // console.log( + // console.debug( // `NeovimTextLineImpl.rangeIncludingLineBreak(): range=(${ // this._lineNumber // }, 0), ${this._lineNumber + 1}, 0})`, @@ -48,7 +48,7 @@ export default class NeovimTextLineImpl implements TextLine { get firstNonWhitespaceCharacterIndex(): number { //TODO@api, rename to 'leadingWhitespaceLength' const index = /^(\s*)/.exec(this._text)![1].length; - // console.log( + // console.debug( // `NeovimTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, // ); return index; @@ -56,7 +56,7 @@ export default class NeovimTextLineImpl implements TextLine { get lastNonWhitespaceCharacterIndex(): number { const index = this.text.trimEnd().length; - // console.log( + // console.debug( // `NeovimTextLineImpl.lastNonWhitespaceCharacterIndex index=${index}`, // ); return index; diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index eedff40738..0ad98af9b2 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -42,7 +42,7 @@ export async function bufferGetSelections( ]; } - console.log( + console.debug( `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character}) neovim=(${startLine},${startCol}),(${endLine},${endCol}),reverse=${reverse}`, ); return selections; @@ -65,11 +65,11 @@ export async function bufferSetSelections( }, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${ selections[0].end.character })`; - console.log( + console.debug( `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`, ); await client.executeLua(luaCode, []); - // console.log(`bufferSetSelections() done`); + // console.debug(`bufferSetSelections() done`); } /** @@ -96,7 +96,7 @@ export async function windowGetVisibleRanges( // subtract -1 to the line.length to get the correct 0-based column number new Position(lastLine - 1, lines[lastLine - 1].length - 1), ); - console.log( + console.debug( `windowGetVisibleRanges(): range=(${range.start.line}, ${range.start.character}), (${range.end.line}, ${range.end.character})`, ); return [range]; diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index ddefbe713d..9107dbdeea 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -32,10 +32,10 @@ import { IDE } from "@cursorless/common"; // const buffers = [await client.buffer]; // buffers.forEach((buf) => { // if (neovimIDE.getTextDocument(buf) !== undefined) { -// console.log(`already listening for changes in buffer: ${buf.id}`); +// console.debug(`already listening for changes in buffer: ${buf.id}`); // return; // } -// console.log(`listening for changes in buffer: ${buf.id}`); +// console.debug(`listening for changes in buffer: ${buf.id}`); // buf.listen("lines", receivedBufferEvent); // }); // } diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index d194900801..465d6867b1 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -31,7 +31,7 @@ export async function updateTextEditor( if (lines.length >= 30) { linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); } - console.log( + console.debug( `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, ); let selections: Selection[]; From 2e88466b0fa26e36c3791f821d473a296608bbf5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 14:11:32 +0100 Subject: [PATCH 260/504] refactor: reorder package.json to match cursorless-vscode-e2e one --- packages/cursorless-neovim-e2e/package.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json index af85f06039..7363b44551 100644 --- a/packages/cursorless-neovim-e2e/package.json +++ b/packages/cursorless-neovim-e2e/package.json @@ -4,6 +4,12 @@ "description": "Our neovim end-to-end tests", "private": true, "main": "./out/index.js", + "exports": { + ".": { + "cursorless:bundler": "./src/index.ts", + "default": "./out/index.js" + } + }, "scripts": { "compile": "tsc --build", "watch": "tsc --build --watch", @@ -12,14 +18,6 @@ "keywords": [], "author": "", "license": "MIT", - "type": "module", - "types": "./out/index.d.ts", - "exports": { - ".": { - "cursorless:bundler": "./src/index.ts", - "default": "./out/index.js" - } - }, "dependencies": { "@cursorless/common": "workspace:*", "@cursorless/neovim-common": "workspace:*", @@ -28,5 +26,7 @@ "@types/js-yaml": "4.0.9", "@types/lodash": "4.17.0", "@types/sinon": "^17.0.3" - } + }, + "types": "./out/index.d.ts", + "type": "module" } From de28cb2fc29aee656c2c2c87c4f9e55e60c066a3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 14:12:02 +0100 Subject: [PATCH 261/504] feat: blacklist of all failing fixtures --- .../src/suite/recorded.neovim.test.ts | 129 +++++++++++++++++- 1 file changed, 126 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 75c9ff9036..68df0be4e2 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -64,7 +64,7 @@ suite("recorded test cases", async function () { for (const { name, path } of tests) { test( name, - asyncSafety(() => runTest(this, path, getSpy()!, getNeovimIDE()!)), + asyncSafety(() => runTest(this, name, path, getSpy()!, getNeovimIDE()!)), ); } // getRecordedTestPaths().forEach(({ name, path }) => @@ -77,6 +77,7 @@ suite("recorded test cases", async function () { async function runTest( suite: Mocha.Suite, + name: string, file: string, spyIde: SpyIDE, neovimIDE: NeovimIDE, @@ -87,7 +88,7 @@ async function runTest( const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy; const excludeFields: ExcludableSnapshotField[] = []; - if (unsupportedFixture(fixture)) { + if (unsupportedFixture(name, fixture)) { return suite.ctx.skip(); } @@ -270,7 +271,123 @@ async function runTest( } } -// Fixtures that are known to fail in neovim but succeed in vscode +const failingFixtures = [ + // fixture.command.action.name == "breakLine" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + "recorded/actions/breakJustThis", + "recorded/actions/breakJustThis2", + // fixture.command.action.name == "insertCopyAfter" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + "recorded/actions/cloneToken", + "recorded/actions/cloneToken2", + "recorded/actions/cloneToken3", + "recorded/actions/cloneToken4", + "recorded/actions/cloneToken5", + // fixture.command.action.name == "insertCopyAfter" -> wrong fixture.finalState.selections (no test on fixture.thatMark.contentRange) + "recorded/itemTextual/cloneTwoItems", + // actual finalState.selections.anchor is -1 compared to expected (other fixture.command.action.name == "insertCopyBefore" tests pass fine) + "recorded/actions/cloneToken4", + "recorded/actions/cloneUpToken4", + // fixture.command.action.name == "decrement" / "increment" are not supported atm + "recorded/actions/decrementFile", + "recorded/actions/incrementFile", + // fixture.command.action.name == "insertEmptyLineBefore" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + "recorded/actions/insertEmptyLines/dropThis", + "recorded/actions/insertEmptyLines/dropThis2", + "recorded/actions/insertEmptyLines/dropThis3", + "recorded/actions/insertEmptyLines/dropThis4", + "recorded/actions/insertEmptyLines/dropThis5", + "recorded/actions/insertEmptyLines/dropThis6", + "recorded/actions/insertEmptyLines/dropThis7", + "recorded/actions/insertEmptyLines/dropThis8", + "recorded/actions/insertEmptyLines/dropThis9", + "recorded/actions/insertEmptyLines/dropThis10", + "recorded/actions/insertEmptyLines/dropThis11", + "recorded/actions/insertEmptyLines/dropThis12", + // fixture.command.action.name == "insertEmptyLineAfter" -> Error: nvim_buf_get_lines: Index out of bounds + // -> or actual finalState.selections.anchor is -1 compared to expected + // actual finalState.thatMark.contentRange.start is -1 compared to expected + "recorded/actions/insertEmptyLines/floatThis", + "recorded/actions/insertEmptyLines/floatThis2", + "recorded/actions/insertEmptyLines/floatThis3", + "recorded/actions/insertEmptyLines/floatThis4", + "recorded/actions/insertEmptyLines/floatThis5", + "recorded/actions/insertEmptyLines/floatThis6", + "recorded/actions/insertEmptyLines/floatThis7", + "recorded/actions/insertEmptyLines/floatThis8", + "recorded/actions/insertEmptyLines/floatThis9", + "recorded/actions/insertEmptyLines/floatThis10", + "recorded/actions/insertEmptyLines/floatThis11", + "recorded/actions/insertEmptyLines/floatThis12", + "recorded/actions/insertEmptyLines/floatThis13", + // fixture.command.action.name == "insertEmptyLinesAround" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + "recorded/actions/insertEmptyLines/puffThis", + "recorded/actions/insertEmptyLines/puffThis2", + "recorded/actions/insertEmptyLines/puffThis3", + "recorded/actions/insertEmptyLines/puffThis4", + "recorded/actions/insertEmptyLines/puffThis5", + "recorded/actions/insertEmptyLines/puffThis6", + "recorded/actions/insertEmptyLines/puffThis7", + "recorded/actions/insertEmptyLines/puffThis8", + "recorded/actions/insertEmptyLines/puffThis9", + "recorded/actions/insertEmptyLines/puffThis10", + "recorded/actions/insertEmptyLines/puffThis11", + "recorded/actions/insertEmptyLines/puffThis12", + "recorded/actions/insertEmptyLines/puffThis13", + "recorded/actions/insertEmptyLines/puffThis14", + "recorded/actions/insertEmptyLines/puffThis15", + "recorded/actions/insertEmptyLines/puffThis16", + "recorded/actions/insertEmptyLines/puffThis17", + "recorded/actions/insertEmptyLines/puffThis18", + "recorded/actions/insertEmptyLines/puffThis19", + "recorded/actions/insertEmptyLines/puffThis20", + "recorded/actions/insertEmptyLines/puffThis21", + "recorded/actions/insertEmptyLines/puffThis22", + // fixture.command.action.name == "joinLines" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + // NOTE: "recorded/actions/joinLineThis" is the only fixture.command.action.name == "joinLines" that succeeds atm + "recorded/actions/joinBlock", + "recorded/actions/joinFile", + "recorded/actions/joinTwoLines", + // fixture.command.action.name == "insertSnippet" is not supported atm + "recorded/actions/snippets/customInsert", + "recorded/actions/snippets/customInsertHelloWorld", + "recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld", + "recorded/actions/snippets/snipSpaghetti", + "recorded/actions/snippets/snipSpaghettiGraceHopper", + // fixture.command.action.name == "wrapWithSnippet" is not supported atm + "recorded/actions/snippets/customWrapLine", + "recorded/actions/snippets/customWrapLine2", + "recorded/actions/snippets/duplicatedDuplicatedWrapThis", + // -> Error: nvim_execute_lua: Cursor position outside buffer + "recorded/compoundTargets/chuckStartOfBlockPastStartOfFile", + // actual finalState.selections.anchor is -1 compared to expected + "recorded/implicitExpansion/chuckCoreThat", + "recorded/implicitExpansion/chuckLeadingThat", + "recorded/marks/chuckNothing", + // -> wrong fixture.finalState.selections + "recorded/implicitExpansion/cloneThat2", + "recorded/implicitExpansion/cloneThis", + "recorded/implicitExpansion/cloneThis2", + // fixture.command.action.name == "editNewLineAfter" is not supported atm + "recorded/implicitExpansion/pourThat", + "recorded/implicitExpansion/pourThat2", + "recorded/implicitExpansion/pourThis", + "recorded/implicitExpansion/pourThis2", + // fixture.finalState.documentContents contains \n instead of \r\n + "recorded/lineEndings/clearCoreFileCRLF", + "recorded/lineEndings/pourBlockCRLF", + "recorded/lineEndings/pourItemCRLF", + // fixture.command.action.name == "randomizeTargets" is not supported atm + "recorded/actions/shuffleThis", + // fixture.command.action.name == "pasteFromClipboard" -> wrong fixture.finalState.documentContents/selections/thatMark + "recorded/actions/pasteBeforeToken", +]; + +function isFailingFixture(name: string, fixture: TestCaseFixtureLegacy) { + if (failingFixtures.includes(name)) { + return true; + } +} + +function unsupportedFixture(name: string, fixture: TestCaseFixtureLegacy) { // We don't support decorated symbol marks (hats) yet const hasMarks = fixture.initialState.marks != null && @@ -287,5 +404,11 @@ async function runTest( if (hasMarks || hasMultipleSelections || needTreeSitter) { return true; } + + // Fixtures that will need to be fixed in the future + if (isFailingFixture(name, fixture)) { + return true; + } + return false; } From 715244b8dcad28c3b6c12bd420b4687da624ac24 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 14:30:20 +0100 Subject: [PATCH 262/504] refactor: cleaning up failing fixtures --- .../src/suite/recorded.neovim.test.ts | 75 ++++++------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 68df0be4e2..1af5f5723b 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -289,58 +289,6 @@ const failingFixtures = [ // fixture.command.action.name == "decrement" / "increment" are not supported atm "recorded/actions/decrementFile", "recorded/actions/incrementFile", - // fixture.command.action.name == "insertEmptyLineBefore" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange - "recorded/actions/insertEmptyLines/dropThis", - "recorded/actions/insertEmptyLines/dropThis2", - "recorded/actions/insertEmptyLines/dropThis3", - "recorded/actions/insertEmptyLines/dropThis4", - "recorded/actions/insertEmptyLines/dropThis5", - "recorded/actions/insertEmptyLines/dropThis6", - "recorded/actions/insertEmptyLines/dropThis7", - "recorded/actions/insertEmptyLines/dropThis8", - "recorded/actions/insertEmptyLines/dropThis9", - "recorded/actions/insertEmptyLines/dropThis10", - "recorded/actions/insertEmptyLines/dropThis11", - "recorded/actions/insertEmptyLines/dropThis12", - // fixture.command.action.name == "insertEmptyLineAfter" -> Error: nvim_buf_get_lines: Index out of bounds - // -> or actual finalState.selections.anchor is -1 compared to expected - // actual finalState.thatMark.contentRange.start is -1 compared to expected - "recorded/actions/insertEmptyLines/floatThis", - "recorded/actions/insertEmptyLines/floatThis2", - "recorded/actions/insertEmptyLines/floatThis3", - "recorded/actions/insertEmptyLines/floatThis4", - "recorded/actions/insertEmptyLines/floatThis5", - "recorded/actions/insertEmptyLines/floatThis6", - "recorded/actions/insertEmptyLines/floatThis7", - "recorded/actions/insertEmptyLines/floatThis8", - "recorded/actions/insertEmptyLines/floatThis9", - "recorded/actions/insertEmptyLines/floatThis10", - "recorded/actions/insertEmptyLines/floatThis11", - "recorded/actions/insertEmptyLines/floatThis12", - "recorded/actions/insertEmptyLines/floatThis13", - // fixture.command.action.name == "insertEmptyLinesAround" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange - "recorded/actions/insertEmptyLines/puffThis", - "recorded/actions/insertEmptyLines/puffThis2", - "recorded/actions/insertEmptyLines/puffThis3", - "recorded/actions/insertEmptyLines/puffThis4", - "recorded/actions/insertEmptyLines/puffThis5", - "recorded/actions/insertEmptyLines/puffThis6", - "recorded/actions/insertEmptyLines/puffThis7", - "recorded/actions/insertEmptyLines/puffThis8", - "recorded/actions/insertEmptyLines/puffThis9", - "recorded/actions/insertEmptyLines/puffThis10", - "recorded/actions/insertEmptyLines/puffThis11", - "recorded/actions/insertEmptyLines/puffThis12", - "recorded/actions/insertEmptyLines/puffThis13", - "recorded/actions/insertEmptyLines/puffThis14", - "recorded/actions/insertEmptyLines/puffThis15", - "recorded/actions/insertEmptyLines/puffThis16", - "recorded/actions/insertEmptyLines/puffThis17", - "recorded/actions/insertEmptyLines/puffThis18", - "recorded/actions/insertEmptyLines/puffThis19", - "recorded/actions/insertEmptyLines/puffThis20", - "recorded/actions/insertEmptyLines/puffThis21", - "recorded/actions/insertEmptyLines/puffThis22", // fixture.command.action.name == "joinLines" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange // NOTE: "recorded/actions/joinLineThis" is the only fixture.command.action.name == "joinLines" that succeeds atm "recorded/actions/joinBlock", @@ -382,6 +330,29 @@ const failingFixtures = [ ]; function isFailingFixture(name: string, fixture: TestCaseFixtureLegacy) { + const action = + typeof fixture.command.action === "object" + ? fixture.command.action.name + : fixture.command.action; + + // "recorded/actions/insertEmptyLines/puffThis*" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + if (action === "insertEmptyLinesAround") { + return true; + } + + // "recorded/actions/insertEmptyLines/floatThis*" -> Error: nvim_buf_get_lines: Index out of bounds + // -> or actual finalState.selections.anchor is -1 compared to expected + // actual finalState.thatMark.contentRange.start is -1 compared to expected + if (action === "insertEmptyLineAfter") { + return true; + } + + // "recorded/actions/insertEmptyLines/dropThis*" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + if (action === "insertEmptyLineBefore") { + return true; + } + + // blacklist if (failingFixtures.includes(name)) { return true; } From 2f2a84adbdf5245d43e657fa818d45cf47d90636 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 14:53:36 +0100 Subject: [PATCH 263/504] refactor: cleaning up failing fixtures (362 passing / 2885 pending) --- .../src/suite/recorded.neovim.test.ts | 83 +++++++++---------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index 1af5f5723b..fc2c5fbb68 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -272,38 +272,9 @@ async function runTest( } const failingFixtures = [ - // fixture.command.action.name == "breakLine" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange - "recorded/actions/breakJustThis", - "recorded/actions/breakJustThis2", - // fixture.command.action.name == "insertCopyAfter" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange - "recorded/actions/cloneToken", - "recorded/actions/cloneToken2", - "recorded/actions/cloneToken3", - "recorded/actions/cloneToken4", - "recorded/actions/cloneToken5", - // fixture.command.action.name == "insertCopyAfter" -> wrong fixture.finalState.selections (no test on fixture.thatMark.contentRange) - "recorded/itemTextual/cloneTwoItems", // actual finalState.selections.anchor is -1 compared to expected (other fixture.command.action.name == "insertCopyBefore" tests pass fine) "recorded/actions/cloneToken4", "recorded/actions/cloneUpToken4", - // fixture.command.action.name == "decrement" / "increment" are not supported atm - "recorded/actions/decrementFile", - "recorded/actions/incrementFile", - // fixture.command.action.name == "joinLines" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange - // NOTE: "recorded/actions/joinLineThis" is the only fixture.command.action.name == "joinLines" that succeeds atm - "recorded/actions/joinBlock", - "recorded/actions/joinFile", - "recorded/actions/joinTwoLines", - // fixture.command.action.name == "insertSnippet" is not supported atm - "recorded/actions/snippets/customInsert", - "recorded/actions/snippets/customInsertHelloWorld", - "recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld", - "recorded/actions/snippets/snipSpaghetti", - "recorded/actions/snippets/snipSpaghettiGraceHopper", - // fixture.command.action.name == "wrapWithSnippet" is not supported atm - "recorded/actions/snippets/customWrapLine", - "recorded/actions/snippets/customWrapLine2", - "recorded/actions/snippets/duplicatedDuplicatedWrapThis", // -> Error: nvim_execute_lua: Cursor position outside buffer "recorded/compoundTargets/chuckStartOfBlockPastStartOfFile", // actual finalState.selections.anchor is -1 compared to expected @@ -314,19 +285,6 @@ const failingFixtures = [ "recorded/implicitExpansion/cloneThat2", "recorded/implicitExpansion/cloneThis", "recorded/implicitExpansion/cloneThis2", - // fixture.command.action.name == "editNewLineAfter" is not supported atm - "recorded/implicitExpansion/pourThat", - "recorded/implicitExpansion/pourThat2", - "recorded/implicitExpansion/pourThis", - "recorded/implicitExpansion/pourThis2", - // fixture.finalState.documentContents contains \n instead of \r\n - "recorded/lineEndings/clearCoreFileCRLF", - "recorded/lineEndings/pourBlockCRLF", - "recorded/lineEndings/pourItemCRLF", - // fixture.command.action.name == "randomizeTargets" is not supported atm - "recorded/actions/shuffleThis", - // fixture.command.action.name == "pasteFromClipboard" -> wrong fixture.finalState.documentContents/selections/thatMark - "recorded/actions/pasteBeforeToken", ]; function isFailingFixture(name: string, fixture: TestCaseFixtureLegacy) { @@ -351,8 +309,47 @@ function isFailingFixture(name: string, fixture: TestCaseFixtureLegacy) { if (action === "insertEmptyLineBefore") { return true; } + // "recorded/actions/cloneToken*" and "recorded/itemTextual/cloneTwoItems" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + if (action === "insertCopyAfter") { + return true; + } + + // "recorded/implicitExpansion/pour*" -> not supported for now + if (action === "editNewLineAfter") { + return true; + } + + // "recorded/actions/{decrement,increment}File" -> are not supported atm + if (action === "decrement" || action === "increment") { + return true; + } + + // ""recorded/actions/snippets/*" -> not supported for now + if (action === "insertSnippet" || action === "wrapWithSnippet") { + return true; + } + + // "recorded/actions/{join,breakJustThis}*"" -> wrong fixture.finalState.selections and fixture.thatMark.contentRange + if (action === "breakLine" || action === "joinLines") { + return true; + } + + // "recorded/actions/shuffleThis" is not supported atm + if (action === "randomizeTargets") { + return true; + } + + // "recorded/actions/pasteBeforeToken" -> wrong fixture.finalState.documentContents/selections/thatMark + if (action === "pasteFromClipboard") { + return true; + } + + // "recorded/lineEndings/*" -> fixture.finalState.documentContents contains \n instead of \r\n + if (name.includes("/lineEndings/")) { + return true; + } - // blacklist + // We blacklist remaining unsorted failing tests if (failingFixtures.includes(name)) { return true; } From 550f4b0cf176c8d48bbc50159ee7477e1ed7a6ce Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 15:10:33 +0100 Subject: [PATCH 264/504] feat: move ensureCommandShape into common (required for neovim) --- packages/common/src/index.ts | 2 ++ .../src/util}/ensureCommandShape.ts | 6 ++++-- packages/{cursorless-engine => common}/src/util/type.ts | 0 packages/cursorless-engine/src/cursorlessEngine.ts | 2 +- .../modifiers/surroundingPair/getIndividualDelimiters.ts | 3 +-- 5 files changed, 8 insertions(+), 5 deletions(-) rename packages/{cursorless-engine/src/core/commandVersionUpgrades => common/src/util}/ensureCommandShape.ts (80%) rename packages/{cursorless-engine => common}/src/util/type.ts (100%) diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 224b5708aa..1efada0c73 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -94,9 +94,11 @@ export * from "./util/itertools"; export * from "./extensionDependencies"; export * from "./FakeCommandServerApi"; export * from "./types/TestCaseFixture"; +export * from "./util/ensureCommandShape"; export * from "./util/getEnvironmentVariableStrict"; export * from "./util/CompositeKeyDefaultMap"; export * from "./util/toPlainObject"; +export * from "./util/type"; export * from "./util/clientSupportsFallback"; export * from "./scopeSupportFacets/scopeSupportFacets.types"; export * from "./scopeSupportFacets/scopeSupportFacetInfos"; diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape.ts b/packages/common/src/util/ensureCommandShape.ts similarity index 80% rename from packages/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape.ts rename to packages/common/src/util/ensureCommandShape.ts index 074b87bf8e..1ef906675c 100644 --- a/packages/cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape.ts +++ b/packages/common/src/util/ensureCommandShape.ts @@ -1,5 +1,7 @@ -import { ActionType, Command, PartialTargetV0V1 } from "@cursorless/common"; -import { isString } from "../../util/type"; +import { ActionType } from "../types/command/ActionDescriptor"; +import { Command } from "../types/command/command.types"; +import { PartialTargetV0V1 } from "../types/command/legacy/CommandV0V1.types"; +import { isString } from "./type"; /** * Given a list of arguments, ensure that it has the right shape. diff --git a/packages/cursorless-engine/src/util/type.ts b/packages/common/src/util/type.ts similarity index 100% rename from packages/cursorless-engine/src/util/type.ts rename to packages/common/src/util/type.ts diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index dfa9c00d85..ea699e0aea 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -4,6 +4,7 @@ import { FileSystem, Hats, IDE, + ensureCommandShape, ScopeProvider, } from "@cursorless/common"; import { @@ -14,7 +15,6 @@ import { Debug } from "./core/Debug"; import { HatTokenMapImpl } from "./core/HatTokenMapImpl"; import { Snippets } from "./core/Snippets"; import { StoredTargetMap } from "./core/StoredTargets"; -import { ensureCommandShape } from "./core/commandVersionUpgrades/ensureCommandShape"; import { RangeUpdater } from "./core/updateSelections/RangeUpdater"; import { CustomSpokenFormGeneratorImpl } from "./generateSpokenForm/CustomSpokenFormGeneratorImpl"; import { LanguageDefinitions } from "./languages/LanguageDefinitions"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts index d2aa268796..e53be5981b 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts @@ -1,8 +1,7 @@ -import { SimpleSurroundingPairName } from "@cursorless/common"; +import { SimpleSurroundingPairName, isString } from "@cursorless/common"; import { IndividualDelimiter } from "./types"; import { delimiterToText } from "./delimiterMaps"; import { concat, uniq } from "lodash"; -import { isString } from "../../../util/type"; /** * Given a list of delimiters, returns a list where each element corresponds to From 5ef87f3fec4c04358422443d3f97ac233da2cc59 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 15:52:33 +0100 Subject: [PATCH 265/504] refactor: ensureCommandShape imported from common --- packages/cursorless-neovim/src/registerCommands.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index 95f3db38f6..e2dee7442b 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -1,10 +1,10 @@ import { CURSORLESS_COMMAND_ID, - CommandLatest, CommandResponse, CommandServerApi, CursorlessCommandId, clientSupportsFallback, + ensureCommandShape, } from "@cursorless/common"; import { CommandApi } from "@cursorless/cursorless-engine"; @@ -16,10 +16,6 @@ import { } from "@cursorless/neovim-common"; import { getNeovimRegistry } from "@cursorless/neovim-registry"; import type { NeovimClient } from "neovim"; -// TODO - we need to fix that import as we should not be allowed to import it afaict? -//import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; -// TODO: move this to common -import { ensureCommandShape } from "../../cursorless-engine/src/core/commandVersionUpgrades/ensureCommandShape"; export async function registerCommands( client: NeovimClient, From 1eb4b21643916658bc2a2abd0dada9243bde9272 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 15:53:35 +0100 Subject: [PATCH 266/504] refactor: cleanup by removing dead code that is now in https://github.com/cursorless-dev/cursorless/issues/2319 --- .../src/ide/neovim/NeovimEvents.ts | 40 ------------------- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 17 -------- packages/neovim-common/src/neovimHelpers.ts | 33 +-------------- 3 files changed, 1 insertion(+), 89 deletions(-) diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 550fe160c9..49e4f6236b 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -28,46 +28,6 @@ export function neovimOnDidOpenTextDocument( return dummyEvent(); } -/** - * @see https://neovim.io/doc/user/api.html#api-buffer-updates - */ -// TODO: wrap all the arguments into a neovim.TextDocumentContentChangeEvent? -// export async function receivedBufferEvent( -// buffer: Buffer, -// tick: number, -// firstLine: number, -// lastLine: number, -// linedata: string[], -// more: boolean, -// ): Promise { -// console.debug( -// `receivedBufferEvent(): buffer.id=${buffer.id}, tick=${tick}, firstLine=${firstLine}, lastLine=${lastLine}, linedata=${linedata}, more=${more}`, -// ); - -// const neovimIDE = getNeovimIDE(); -// // We will need to get the document according to the buffer id -// // once we want to support several windows -// const document = neovimIDE.getTextDocument(buffer) as TextDocument; -// // But for now we get the current document -// // const document = (neovimIDE.activeTextEditor as TextEditor).document; - -// // const contents = await document.getText(); -// // console.debug( -// // `BufferManager.receivedBufferEvent(): document.uri=${document.uri}, contents (before):\n${contents}\n`, -// // ); -// eventEmitter.emit("onDidChangeTextDocument", { -// document: document, -// contentChanges: fromNeovimContentChange( -// document, -// buffer, -// firstLine, -// lastLine, -// linedata, -// ), -// // reason: fromNeovimReason(...), -// }); -// } - // let count = 1; export function fromNeovimContentChange( document: TextDocument, diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 0098fb4d81..771af29237 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -253,23 +253,6 @@ export class NeovimIDE implements IDE { lines, ); this.documentMap.set(buffer, document); - - // Subscribe to buffer updates, e.g. when the text changes. - // "attach" to Nvim buffers to subscribe to buffer update events. - // This is similar to TextChanged but more powerful and granular. - // @see https://neovim.io/doc/user/api.html#nvim_buf_attach() - // console.debug( - // `toNeovimEditor(): listening for changes in buffer: ${buffer.id}`, - // ); - // buffer.listen("lines", async () => await receivedBufferEvent); - // TODO: attempt to enforce that the rangeUpdater has the initial document state but not fixing fixture breakJustThis problem - // receivedBufferEvent(buffer, 0, 0, lines.length, lines, false); - // TODO: attempt to enforce that the rangeUpdater has an empty initial document but not fixing fixture breakJustThis problem - // eventEmitter.emit("onDidChangeTextDocument", { - // document: document, - // contentChanges: [], - // }); - // buffer.listen("lines", receivedBufferEvent); } else { console.debug(`toNeovimEditor(): updating document: buffer=${buffer.id}`); document.update(lines); diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index 9107dbdeea..ddfd4c7fe2 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -2,44 +2,13 @@ import { bufferGetSelections, - getFromClipboard, pasteFromClipboard, putToClipboard, } from "@cursorless/neovim-common"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import type { NeovimClient } from "neovim"; +import type { Neovim, NeovimClient } from "neovim"; import { IDE } from "@cursorless/common"; -//TODO: file a github issue to get notified about changes in buffer and drop code - -/** - * Subscribe to buffer updates, e.g. when the text changes. - */ -// TODO: we can make this function a method of NeovimIDE class -// TODO: delete this function as done as part of toNeovimEditor() now -// export async function subscribeBufferUpdates() { -// const client = neovimClient(); - -// const neovimIDE = getNeovimIDE(); - -// /** -// * "attach" to Nvim buffers to subscribe to buffer update events. -// * This is similar to TextChanged but more powerful and granular. -// * -// * @see https://neovim.io/doc/user/api.html#nvim_buf_attach() -// */ -// // const buffers = await client.buffers; -// const buffers = [await client.buffer]; -// buffers.forEach((buf) => { -// if (neovimIDE.getTextDocument(buf) !== undefined) { -// console.debug(`already listening for changes in buffer: ${buf.id}`); -// return; -// } -// console.debug(`listening for changes in buffer: ${buf.id}`); -// buf.listen("lines", receivedBufferEvent); -// }); -// } - export async function neovimClipboardCopy( client: NeovimClient, ide: IDE, From 27add7e91d6886b1feaed593e6e9c48beab0d30b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 15:55:22 +0100 Subject: [PATCH 267/504] refactor: delete event emitter old code --- packages/neovim-common/src/ide/neovim/NeovimEdit.ts | 5 +---- packages/neovim-common/src/ide/neovim/NeovimEvents.ts | 2 -- packages/neovim-common/src/updateTextEditor.ts | 4 ---- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index 35c826161f..f99b23163a 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -66,10 +66,7 @@ export default async function neovimEdit( text: edit.text, }); } - // eventEmitter.emit("onDidChangeTextDocument", { - // document: document, - // contentChanges: changes, - // }); + getNeovimRegistry().emitEvent("onDidChangeTextDocument", { document: document, contentChanges: changes, diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 49e4f6236b..32050eb791 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -13,7 +13,6 @@ import type { Buffer } from "neovim"; export function neovimOnDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { - // eventEmitter.on("onDidChangeTextDocument", listener); getNeovimRegistry().onEvent("onDidChangeTextDocument", listener); return dummyEvent(); } @@ -23,7 +22,6 @@ export function neovimOnDidOpenTextDocument( thisArgs?: any, disposables?: Disposable[] | undefined, ): Disposable { - // eventEmitter.on("onDidOpenTextDocument", listener); getNeovimRegistry().onEvent("onDidOpenTextDocument", listener); return dummyEvent(); } diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts index 465d6867b1..55299aa941 100644 --- a/packages/neovim-common/src/updateTextEditor.ts +++ b/packages/neovim-common/src/updateTextEditor.ts @@ -50,11 +50,7 @@ export async function updateTextEditor( visibleRanges, selections, ); - // await subscribeBufferUpdates(); - // TODO: simulate that the document is open for now from here. - // we would need to ideally do it from neovim itself - // eventEmitter.emit("onDidOpenTextDocument", editor.document); getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document); return editor; From 18b8144a5f794b3178a2c7aa32a394a3381bfe27 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 16:03:36 +0100 Subject: [PATCH 268/504] refactor: move updateTextEditor() to NeovimIDE class --- .../cursorless-neovim/src/registerCommands.ts | 3 +- .../src/ide/neovim/NeovimEdit.ts | 5 +- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 52 ++++++++++++++++- packages/neovim-common/src/index.ts | 1 - .../src/testUtil/openNewEditor.ts | 4 +- .../neovim-common/src/updateTextEditor.ts | 57 ------------------- 6 files changed, 54 insertions(+), 68 deletions(-) delete mode 100644 packages/neovim-common/src/updateTextEditor.ts diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/cursorless-neovim/src/registerCommands.ts index e2dee7442b..f8b4e6988f 100644 --- a/packages/cursorless-neovim/src/registerCommands.ts +++ b/packages/cursorless-neovim/src/registerCommands.ts @@ -12,7 +12,6 @@ import { NeovimIDE, modeSwitchNormalTerminal, modeSwitchTerminal, - updateTextEditor, } from "@cursorless/neovim-common"; import { getNeovimRegistry } from "@cursorless/neovim-registry"; import type { NeovimClient } from "neovim"; @@ -33,7 +32,7 @@ export async function registerCommands( } try { - await updateTextEditor(client, neovimIDE); + await neovimIDE.updateTextEditor(); const result = await commandApi.runCommandSafe(...args); const command = ensureCommandShape(args); diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts index f99b23163a..ebeb50cc3c 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEdit.ts @@ -6,8 +6,6 @@ import { TextDocumentContentChangeEvent, } from "@cursorless/common"; import type { NeovimClient, Window } from "neovim"; -// import { eventEmitter } from "../../events"; -import { updateTextEditor } from "../../updateTextEditor"; import { NeovimIDE } from "./NeovimIDE"; import { getNeovimRegistry } from "@cursorless/neovim-registry"; @@ -84,8 +82,7 @@ export default async function neovimEdit( } } - // update our view of the document - await updateTextEditor(client, neovimIDE); + await neovimIDE.updateTextEditor(); return true; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 771af29237..7d744dc5b8 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -31,12 +31,18 @@ import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; import path from "path"; import { URI } from "vscode-uri"; -import { getTalonNvimPath, showErrorMessage } from "../../neovimApi"; +import { + bufferGetSelections, + getTalonNvimPath, + showErrorMessage, + windowGetVisibleRanges, +} from "../../neovimApi"; import { neovimOnDidChangeTextDocument, neovimOnDidOpenTextDocument, } from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; @@ -231,6 +237,50 @@ export class NeovimIDE implements IDE { onDidChangeTextEditorVisibleRanges: Event = dummyEvent; + /** + * Initialize the current editor (and current document). + * If the current editor already exists, it will only update the current document of that editor. + * + * when we receive our first cursorless command, we will initialize an editor an document for it. + * for the following commands, we will only update the document. + * + * Atm, we only initialize one editor(current window) with one document(current buffer) + */ + async updateTextEditor( + minimal: boolean = false, + ): Promise { + const window = await this.client.window; + const buffer = await window.buffer; + const lines = await buffer.lines; + let linesShown = lines; + if (lines.length >= 30) { + linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); + } + console.debug( + `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, + ); + let selections: Selection[]; + let visibleRanges: Range[]; + if (!minimal) { + selections = await bufferGetSelections(window, this.client); + visibleRanges = await windowGetVisibleRanges(window, this.client, lines); + } else { + selections = []; + visibleRanges = []; + } + const editor = this.toNeovimEditor( + window, + buffer, + lines, + visibleRanges, + selections, + ); + + getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document); + + return editor; + } + toNeovimEditor( window: Window, buffer: Buffer, diff --git a/packages/neovim-common/src/index.ts b/packages/neovim-common/src/index.ts index 8d18a5202f..bf603dfc16 100644 --- a/packages/neovim-common/src/index.ts +++ b/packages/neovim-common/src/index.ts @@ -1,7 +1,6 @@ export * from "./getExtensionApi"; export * from "./TestHelpers"; export * from "./testUtil/openNewEditor"; -export * from "./updateTextEditor"; export * from "./runCommand"; export * from "./neovimApi"; export * from "./ide/neovim/NeovimCapabilities"; diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts index b1d17b4568..4edb046669 100644 --- a/packages/neovim-common/src/testUtil/openNewEditor.ts +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts @@ -2,7 +2,6 @@ import type { NeovimClient } from "neovim"; import { NeovimIDE } from "../ide/neovim/NeovimIDE"; import { NeovimTextDocumentImpl } from "../ide/neovim/NeovimTextDocumentImpl"; import { NeovimTextEditorImpl } from "../ide/neovim/NeovimTextEditorImpl"; -import { updateTextEditor } from "../updateTextEditor"; interface NewEditorOptions { languageId?: string; @@ -45,8 +44,7 @@ export async function openNewEditor( await client.command(":set ff=unix"); } - // update our view of the document - const editor = await updateTextEditor(client, neovimIDE); + const editor = await neovimIDE.updateTextEditor(); return editor; } diff --git a/packages/neovim-common/src/updateTextEditor.ts b/packages/neovim-common/src/updateTextEditor.ts deleted file mode 100644 index 55299aa941..0000000000 --- a/packages/neovim-common/src/updateTextEditor.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { - bufferGetSelections, - windowGetVisibleRanges, -} from "../../neovim-common/src/neovimApi"; -import { Range, Selection } from "@cursorless/common"; -import type { NeovimClient } from "neovim"; -// import { eventEmitter } from "./events"; -import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import { getNeovimRegistry } from "@cursorless/neovim-registry"; - -/** - * Initialize the current editor (and current document). - * If the current editor already exists, it will only update the current document of that editor. - * - * when we receive our first cursorless command, we will initialize an editor an document for it. - * for the following commands, we will only update the document. - * - * Atm, we only initialize one editor(current window) with one document(current buffer) - */ -// TODO: we can make this function a method of NeovimIDE class -export async function updateTextEditor( - client: NeovimClient, - neovimIDE: NeovimIDE, - minimal: boolean = false, -): Promise { - const window = await client.window; - const buffer = await window.buffer; - const lines = await buffer.lines; - let linesShown = lines; - if (lines.length >= 30) { - linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15)); - } - console.debug( - `updateTextEditor(): window:${window.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`, - ); - let selections: Selection[]; - let visibleRanges: Range[]; - if (!minimal) { - selections = await bufferGetSelections(window, client); - visibleRanges = await windowGetVisibleRanges(window, client, lines); - } else { - selections = []; - visibleRanges = []; - } - const editor = neovimIDE.toNeovimEditor( - window, - buffer, - lines, - visibleRanges, - selections, - ); - - getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document); - - return editor; -} From f694bf2248951752a9bb09e4473c06ec03e553af Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 16:04:24 +0100 Subject: [PATCH 269/504] refactor: delete old testing code --- .../src/ide/neovim/NeovimEvents.ts | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts index 32050eb791..7dde8cb4c0 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimEvents.ts @@ -26,7 +26,6 @@ export function neovimOnDidOpenTextDocument( return dummyEvent(); } -// let count = 1; export function fromNeovimContentChange( document: TextDocument, buffer: Buffer, @@ -51,29 +50,6 @@ export function fromNeovimContentChange( rangeLength: rangeLength, text: text, }); - // TODO: simulate recorded/actions/breakJustThis on vscode for now but does not work anyway - // /* if (count === 0) { - // result = []; - // } else */ if (count === 1) { - // const range = new Range(new Position(0, 0), new Position(0, 3)); - // result.push({ - // range: range, - // rangeOffset: 0, - // rangeLength: 3, - // text: "ab ", - // }); - // } else if (count === 2) { - // const range = new Range(new Position(0, 1), new Position(0, 1)); - // result.push({ - // range: range, - // rangeOffset: 1, - // rangeLength: 0, - // text: "\n", - // }); - // } else { - // throw new Error(`fromNeovimContentChange(): unexpected count=${count}`); - // } - // count++; console.debug(`fromNeovimContentChange(): changes=${JSON.stringify(result)}`); return result; } From 1ab8f4af373f6304caa57929367f8526fcec5328 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 16:19:24 +0100 Subject: [PATCH 270/504] refactor: cleanup --- .../src/ide/neovim/NeovimFileSystem.ts | 3 --- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 20 +++++-------------- .../src/ide/neovim/NeovimTextEditorImpl.ts | 10 ---------- packages/neovim-common/src/neovimApi.ts | 4 +++- packages/test-harness/src/index.ts | 3 +-- 5 files changed, 9 insertions(+), 31 deletions(-) diff --git a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts index 3b83bb8347..56ecb1ec8b 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimFileSystem.ts @@ -53,10 +53,7 @@ export class NeovimFileSystem implements FileSystem { throw Error("resolveBundledPath() Not implemented"); } - // TODO: track on github to implement watchDir and remove TODO public watchDir(path: string, onDidChange: PathChangeListener): Disposable { - // throw Error("watchDir() Not implemented"); - // TODO: we need to implement this? return dummyEvent(); } } diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 7d744dc5b8..09617b54cf 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -33,7 +33,7 @@ import { URI } from "vscode-uri"; import { bufferGetSelections, - getTalonNvimPath, + getCursorlessNvimPath, showErrorMessage, windowGetVisibleRanges, } from "../../neovimApi"; @@ -75,19 +75,11 @@ export class NeovimIDE implements IDE { } async init() { - const talonNvimPath = await getTalonNvimPath(this.client); - // talon-nvim path: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim - // we store the assets into a subfolder of talon.nvim - this.assetsRoot_ = path.join(talonNvimPath, "assets"); - // development cursorless-neovim path: C:\Users\User\AppData\Local\nvim\rplugin\node\cursorless-neovim - // TODO: we will need to change this once all the files are in talon.nvim/ + const rootPath = await getCursorlessNvimPath(this.client); + // we store the assets into a subfolder of cursorless.nvim + this.assetsRoot_ = path.join(rootPath, "assets"); this.cursorlessNeovimPath = path.join( - talonNvimPath, - "..", - "..", - "..", - "nvim", - "rplugin", + rootPath, "node", "cursorless-neovim", ); @@ -126,7 +118,6 @@ export class NeovimIDE implements IDE { } async flashRanges(_flashDescriptors: FlashDescriptor[]): Promise { - // TODO: find out how to flash the target ranges (similar to vscode) console.debug("flashRanges Not implemented"); } @@ -167,7 +158,6 @@ export class NeovimIDE implements IDE { return undefined; } - // TODO: change to private once not needed anymore outside public getTextDocument(b: Buffer) { for (const [buffer, textDocument] of this.documentMap) { if (buffer.id === b.id) { diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts index 85748eeb9b..36c675eb64 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts @@ -82,10 +82,6 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } get isActive(): boolean { - // TODO: implement it to support multiple editors - // Commenting for now to avoid exceptions being triggered - // when issuing "copy" commands even if not fatal - // throw Error("isActive Not implemented"); return true; } @@ -94,9 +90,6 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } public async revealRange(range: Range): Promise { - // TODO: implement it to support multiple editors - // Commenting for now to avoid exceptions being triggered - // when issuing "take" commands even if not fatal // throw Error("revealRange Not implemented"); } @@ -110,9 +103,6 @@ export class NeovimTextEditorImpl implements EditableTextEditor { } public focus(): Promise { - // TODO: implement it to support multiple editors - // Commenting for now to avoid exceptions being triggered - // when issuing "take" commands even if not fatal return Promise.resolve(); // throw Error("focus Not implemented"); } diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts index 0ad98af9b2..08d3716999 100644 --- a/packages/neovim-common/src/neovimApi.ts +++ b/packages/neovim-common/src/neovimApi.ts @@ -102,7 +102,9 @@ export async function windowGetVisibleRanges( return [range]; } -export async function getTalonNvimPath(client: NeovimClient): Promise { +export async function getCursorlessNvimPath( + client: NeovimClient, +): Promise { const luaCode = `return require("cursorless.utils").cursorless_nvim_path()`; const data = (await client.executeLua(luaCode, [])) as unknown as string; return data as unknown as string; diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 79f44aae31..8e15c92666 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -17,8 +17,7 @@ export function run(plugin: NvimPlugin): Promise { (global as any).additionalParameters = { client: plugin.nvim as NeovimClient, }; - // return runAllTests(TestType.neovim, TestType.unit); //TODO: use this line at the end - return runAllTests(TestType.neovim); //TODO: this allows running our test only for now + return runAllTests(TestType.neovim, TestType.unit); } /** From 8301641072f2c0a272608df4d9ce0795927e3137 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 17:31:39 +0100 Subject: [PATCH 271/504] refactor: cleanup --- packages/test-harness/src/index.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 8e15c92666..432e038123 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -26,12 +26,6 @@ export function run(plugin: NvimPlugin): Promise { * Note that these function need to start with a capital letter to be callable from Neovim. */ export default function entry(plugin: NvimPlugin) { - // Set your plugin to dev mode, which will cause the module to be reloaded on each invocation - // though it does not seem useful in practice for neovim as we can't really call CursorlessLoadExtension() again without restarting Neovim? - // plugin.setOptions({ dev: true }); - plugin.setOptions({ dev: false }); - // plugin.setOptions({ dev: false, alwaysInit: false }); - plugin.registerFunction("TestHarnessRun", async () => await run(plugin), { sync: false, }); From d70140a0dcc03c1264420adde1686b47c897fc37 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 17:32:00 +0100 Subject: [PATCH 272/504] docs: todo --- packages/cursorless-neovim/TODO.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index bed4a0731f..de02a407db 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -8,8 +8,16 @@ - [ ] packages\cursorless-neovim\src\constructTestHelpers.ts versus packages\cursorless-vscode\src\constructTestHelpers.ts - [ ] packages\cursorless-neovim\src\extension.ts versus packages\cursorless-vscode\src\extension.ts +- create issue about being able to reload new built cursorless without restarting neovim + +2024-05-03 16:24:22 INF 4139 passing (28s) +2024-05-03 16:24:22 INF 2885 pending + # questions for Pokey +- file one issue for problem in neovim + +- command-server PR #996? to have changes from Aaron working? so they work in our own command-server.nvim too? - move getFocusedElementType() into the command server? see `NeovimCommandServerApi.ts` - move lua files and all cursorless files to cursorless mono repo - think about command-server.nvim into its own repo @@ -86,8 +94,3 @@ - prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ only useful to chain multiple commands to avoid hats being changed in the middle so not useful for now - merge talon-vscode-command-client into community once we know for sure we use the command-server (and not neovim python rpc) - merge cursorless-talon into the Cursorless repo - -# fidgeting - -- how do you paste in terminal mode? -- vim plugins in my init.lua? From ee34402a180441a7f944eff51dbbadb63e3e8937 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 18:03:27 +0100 Subject: [PATCH 273/504] feat: add lua and vim files required to cursorless-neovim that will be pushed to cursorless.nvim --- cursorless.nvim/README.md | 96 +++++++++ cursorless.nvim/lua/cursorless/config.lua | 23 +++ cursorless.nvim/lua/cursorless/cursorless.lua | 195 ++++++++++++++++++ cursorless.nvim/lua/cursorless/init.lua | 131 ++++++++++++ cursorless.nvim/lua/cursorless/utils.lua | 64 ++++++ cursorless.nvim/vim/cursorless.vim | 12 ++ 6 files changed, 521 insertions(+) create mode 100644 cursorless.nvim/README.md create mode 100644 cursorless.nvim/lua/cursorless/config.lua create mode 100644 cursorless.nvim/lua/cursorless/cursorless.lua create mode 100644 cursorless.nvim/lua/cursorless/init.lua create mode 100644 cursorless.nvim/lua/cursorless/utils.lua create mode 100644 cursorless.nvim/vim/cursorless.vim diff --git a/cursorless.nvim/README.md b/cursorless.nvim/README.md new file mode 100644 index 0000000000..0dd7338540 --- /dev/null +++ b/cursorless.nvim/README.md @@ -0,0 +1,96 @@ + + +- [cursorless.nvim](#cursorlessnvim) + - [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Lazy installation](#lazy-installation) + - [Manual installation](#manual-installation) + - [Configuration](#configuration) + - [neovim configuration](#neovim-configuration) + - [Talon configuration](#talon-configuration) + - [Frequently asked questions](#frequently-asked-questions) + - [nvim does not support Lazy?](#nvim-does-not-support-lazy) + - [nvim does not find the `neovim` globally installed package?](#nvim-does-not-find-the-neovim-globally-installed-package) + + + +# cursorless.nvim + +Neovim plugin to support Cursorless + +## Prerequisites + +- neovim: https://neovim.io/ +- Talon voice: https://talonvoice.com/ +- neovim-talon: https://github.com/hands-free-vim/neovim-talon +- node: https://nodejs.org/en +- npm (generally part of node installation) +- neovim node package: https://github.com/neovim/node-client (globally installed with `npm`) +- (Optional) talon.nvim: https://github.com/hands-free-vim/talon.nvim + +## Installation + +Ideally, you want to use a neovim plugin manager like [lazy.nvim](https://github.com/folke/lazy.nvim). + +### Lazy installation + +After the typical [lazy setup](https://github.com/folke/lazy.nvim?tab=readme-ov-file#-installation), you'll have to add the `talon.nvim` plugin to your `init.lua`. We also recommend the following other plugins for the best experience. + +```lua +require('lazy').setup({ + -- Git related plugins + 'tpope/vim-fugitive', + + -- Optional: talon.nvim for best experience with neovim-talon + 'hands-free-vim/talon.nvim', + + 'hands-free-vim/cursorless.nvim', + + -- dependencies useful for neovim-talon + 'dhruvasagar/vim-zoom', + 'gcmt/taboo.vim', + 'vim-scripts/BufOnly.vim' +}) +``` + +### Manual installation + +This method is not recommended but you can try directly cloning the plugin into your nvim data folder: + +``` +git clone https://github.com/hands-free-vim/cursorless.nvim +cd cursorless.nvim +``` + +## Configuration + +### neovim configuration + +If you aren't using a plugin manager that automatically calls setup for you (e.g. it is needed for lazy), you will need this somewhere in your neovim config, e.g. in [init.lua](https://neovim.io/doc/user/lua-guide.html#lua-guide-config): + +```lua + -- Optional: if you are also using talon.nvim +require("talon").setup() +-- The actual Cursorless initialization +require("cursorless").setup() +``` + +### Talon configuration + +Add a `.talon` file like the following anywhere in your Talon user directory (e.g. named `cursorless_neovim.talon`): + +```talon +app: neovim +- +tag(): user.cursorless +``` + +## Frequently asked questions + +### nvim does not support Lazy? + +Some Linux package managers ship with a version of `nvim` too old for Lazy. If this is the case, [install nvim](https://github.com/neovim/neovim/blob/master/INSTALL.md) via another method. + +### nvim does not find the `neovim` globally installed package? + +Some Linux snap package of `nvim` might not be able to access the globally installed neovim npm package. If this is the case, [install nvim](https://github.com/neovim/neovim/blob/master/INSTALL.md) via another method. diff --git a/cursorless.nvim/lua/cursorless/config.lua b/cursorless.nvim/lua/cursorless/config.lua new file mode 100644 index 0000000000..d8240119ef --- /dev/null +++ b/cursorless.nvim/lua/cursorless/config.lua @@ -0,0 +1,23 @@ +local M = {} + +function M.get_default_config() + return { + settings = {}, + } +end + +-- Maybe better way to do this eventually, just taken from harpoon for now +function M.merge_config(partial_config, latest_config) + partial_config = partial_config or {} + local config = latest_config or M.get_default_config() + for k, v in pairs(partial_config) do + if k == 'settings' then + config.settings = vim.tbl_extend('force', config.settings, v) + else + config[k] = vim.tbl_extend('force', config[k] or {}, v) + end + end + return config +end + +return M diff --git a/cursorless.nvim/lua/cursorless/cursorless.lua b/cursorless.nvim/lua/cursorless/cursorless.lua new file mode 100644 index 0000000000..6439477503 --- /dev/null +++ b/cursorless.nvim/lua/cursorless/cursorless.lua @@ -0,0 +1,195 @@ +local M = {} + +-- Get the first and last visible line of the current window/buffer +-- @see https://vi.stackexchange.com/questions/28471/get-first-and-last-visible-line-from-other-buffer-than-current +-- w0/w$ are indexed from 1, similarly to what is shown in neovim +-- e.g. :lua print(dump_table(require('talon.cursorless').window_get_visible_lines()))" +-- window_get_visible_lines +-- { [1] = 28, [2] = 74 } +function M.window_get_visible_lines() + -- print('window_get_visible_lines()') + return { vim.fn.line('w0'), vim.fn.line('w$') } +end + +-- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/ +-- https://neovim.io/doc/user/api.html#nvim_win_get_cursor() +-- +-- luacheck:ignore 631 +-- e.g. run in command mode :vmap lua print(vim.inspect(require('talon.cursorless').buffer_get_selection())) +-- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air" +-- on the second line. +-- Then hit ctrl+b and it will show the selection +-- cline=2, ccol=2, vline=1, vcol=1 +-- sline=1, scol=1, eline=2, ecol=3, reverse=false +-- { 1, 1, 2, 3, false } +-- +-- if instead you select from the end of the "air" word on the second line +-- and select up to the beginning of "hello" on the first line +-- cline=1, ccol=0, vline=3, vcol=3 +-- sline=1, scol=1, eline=2, ecol=3, reverse=true +-- { 1, 1, 2, 3, true } +-- +-- if you want to directly see how it is parsed in the node extension, you can use the below: +-- e.g. run in command mode :vmap :call CursorlessLoadExtension() +-- and again use ctrl+a after selecting the text +function M.buffer_get_selection() + -- print('buffer_get_selection()') + local modeInfo = vim.api.nvim_get_mode() + local mode = modeInfo.mode + + local cursor = vim.api.nvim_win_get_cursor(0) + local cline, ccol = cursor[1], cursor[2] + local vline, vcol = vim.fn.line('v'), vim.fn.col('v') + -- print(('cline=%d, ccol=%d, vline=%d, vcol=%d'):format(cline, ccol, vcol, vcol)) + + local sline, scol + local eline, ecol + local reverse + if cline == vline then + -- if ccol <= vcol then + if ccol < vcol then + sline, scol = cline, ccol + eline, ecol = vline, vcol + scol = scol + 1 + reverse = true + else + sline, scol = vline, vcol + eline, ecol = cline, ccol + ecol = ecol + 1 + reverse = false + end + elseif cline < vline then + sline, scol = cline, ccol + eline, ecol = vline, vcol + scol = scol + 1 + reverse = true + else + sline, scol = vline, vcol + eline, ecol = cline, ccol + ecol = ecol + 1 + reverse = false + end + + if mode == 'V' or mode == 'CTRL-V' or mode == '\22' then + scol = 1 + ecol = nil + end + + -- print( + -- ('sline=%d, scol=%d, eline=%d, ecol=%d, reverse=%s'):format( + -- sline, + -- scol, + -- eline, + -- ecol, + -- tostring(reverse) + -- ) + -- ) + return { sline, scol, eline, ecol, reverse } +end + +-- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/ +-- luacheck:ignore 631 +-- e.g. run in command mode :vmap lua print(vim.inspect(require('talon.cursorless').buffer_get_selection_text())) +-- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air" +-- on the second line. +-- Then hit ctrl+b and it will show the selection +-- { "hello", "air" } +function M.buffer_get_selection_text() + -- print('buffer_get_selection_text()') + local sline, scol, eline, ecol, _ = unpack(require('talon.cursorless').buffer_get_selection()) + + local lines = vim.api.nvim_buf_get_lines(0, sline - 1, eline, 0) + if #lines == 0 then + return + end + + local startText, endText + if #lines == 1 then + startText = string.sub(lines[1], scol, ecol) + else + startText = string.sub(lines[1], scol) + endText = string.sub(lines[#lines], 1, ecol) + end + + local selection = { startText } + if #lines > 2 then + vim.list_extend(selection, vim.list_slice(lines, 2, #lines - 1)) + end + table.insert(selection, endText) + + return selection +end + +-- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278 +-- luacheck:ignore 631 +-- https://github.com/nvim-treesitter/nvim-treesitter-textobjects/blob/master/lua/nvim-treesitter/textobjects/select.lua#L114 +-- as an example if you put that in a vim buffer and do the following you can do a selection: +-- :w c:\work\tmp\test.lua +-- :so % +-- :lua select_range(5, 12, 5, 30) +-- for example it will highlight the last function name (nvim_win_set_cursor). +-- another example is :tmap lua require("talon.cursorless").select_range(4, 0, 4, 38) +-- TODO: works for any mode (n,i,v,nt) except in t mode +function M.select_range(start_x, start_y, end_x, end_y) + vim.cmd([[normal! :noh]]) + vim.api.nvim_win_set_cursor(0, { start_x, start_y }) + vim.cmd([[normal v]]) + vim.api.nvim_win_set_cursor(0, { end_x, end_y }) +end + +-- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278 +-- another example is :map lua require("talon.cursorless").select_range2(4, 0, 4, 38) +-- TODO: works for any mode (n,i,v,nt) except in t mode +function M.select_range2(start_row, start_col, end_row, end_col, selection_mode) + local v_table = { charwise = 'v', linewise = 'V', blockwise = '' } + selection_mode = selection_mode or 'charwise' + + -- Normalise selection_mode + if vim.tbl_contains(vim.tbl_keys(v_table), selection_mode) then + selection_mode = v_table[selection_mode] + end + + -- enter visual mode if normal or operator-pending (no) mode + -- Why? According to https://learnvimscriptthehardway.stevelosh.com/chapters/15.html + -- If your operator-pending mapping ends with some text visually selected, Vim will operate on that text. + -- Otherwise, Vim will operate on the text between the original cursor position and the new position. + local mode = vim.api.nvim_get_mode() + if mode.mode ~= selection_mode then + -- Call to `nvim_replace_termcodes()` is needed for sending appropriate command to enter blockwise mode + selection_mode = vim.api.nvim_replace_termcodes(selection_mode, true, true, true) + vim.api.nvim_cmd({ cmd = 'normal', bang = true, args = { selection_mode } }, {}) + end + + vim.api.nvim_win_set_cursor(0, { start_row, start_col }) + vim.cmd('normal! o') + vim.api.nvim_win_set_cursor(0, { end_row, end_col }) +end + +-- another example is :map lua require("talon.cursorless").select_range3(4, 0, 4, 38) +-- TODO: works for any mode (n,i,v,nt) except in t mode +function M.select_range3(start_x, start_y, end_x, end_y) + -- print('select_range()') + -- print(('start_x=%d, start_y=%d, end_x=%d, end_y=%d'):format(start_x, start_y, end_x, end_y)) + local key = vim.api.nvim_replace_termcodes('', true, true, true) + vim.api.nvim_feedkeys(key, 't', false) + local key2 = vim.api.nvim_replace_termcodes('', true, true, true) + vim.api.nvim_feedkeys(key2, 't', false) + vim.cmd([[normal! :noh]]) + vim.api.nvim_win_set_cursor(0, { start_x, start_y }) + -- vim.cmd([[normal v]]) + vim.cmd([[normal v]]) + vim.api.nvim_win_set_cursor(0, { end_x, end_y }) +end + +-- another example is :map lua require("talon.cursorless").select_range4(4, 0, 4, 38) +-- another example is :tmap lua require("talon.cursorless").select_range4(4, 0, 4, 38) +-- https://vi.stackexchange.com/questions/11893/exiting-back-to-normal-mode-in-terminal-buffer-from-vimscript +function M.select_range4(start_x, start_y, end_x, end_y) + -- print('select_range4()') + vim.cmd([[normal! ]]) + vim.api.nvim_win_set_cursor(0, { start_x, start_y }) + vim.cmd([[normal v]]) + vim.api.nvim_win_set_cursor(0, { end_x, end_y }) +end + +return M diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua new file mode 100644 index 0000000000..a3c9032b50 --- /dev/null +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -0,0 +1,131 @@ +-- local Config = require('cursorless.config') + +-- TODO: we can't use that yet as then when we use load_extensions() we get an error. +-- So instead atm we rely on registering the functions from vim script +-- local function register_functions1() +-- local path = require('cursorless.utils').cursorless_nvim_path() +-- vim.api.nvim_call_function('remote#host#RegisterPlugin', { +-- 'node', +-- path .. '/rplugin/node/command-server', +-- { +-- { sync = false, name = 'CommandServerLoadExtension', type = 'function', opts = {} }, +-- { sync = false, name = 'CommandServerRunCommand', type = 'function', opts = {} }, +-- }, +-- }) +-- vim.api.nvim_call_function('remote#host#RegisterPlugin', { +-- 'node', +-- path .. '/rplugin/node/cursorless-neovim', +-- { +-- { sync = false, name = 'CursorlessLoadExtension', type = 'function', opts = {} }, +-- }, +-- }) +-- vim.api.nvim_call_function('remote#host#RegisterPlugin', { +-- 'node', +-- path .. '/rplugin/node/neovim-registry', +-- {}, +-- }) +-- end + +local function register_functions() + local path = require('cursorless.utils').cursorless_nvim_path() + -- revert to using forward slashes as works when passed to remote#host#RegisterPlugin() + if require('cursorless.utils').is_win() then + path = path:gsub('\\', '/') + end + vim.api.nvim_call_function('RegisterFunctions', { path }) +end + +-- this triggers loading the node process as well as calling one function +-- in the cursorless-neovim, command-server and neovim-registry extensions +-- in order to initialize them +local function load_extensions() + vim.api.nvim_call_function('CursorlessLoadExtension', {}) + vim.api.nvim_call_function('CommandServerLoadExtension', {}) + + if os.getenv('CURSORLESS_MODE') == 'test' then + -- make sure cursorless is loaded before starting the tests + -- see https://neovim.io/doc/user/various.html#%3Asleep + vim.cmd([[sleep 5]]) + vim.api.nvim_call_function('TestHarnessRun', {}) + end +end + +-- Cursorless command-server shortcut: CTRL+q +-- https://stackoverflow.com/questions/40504408/can-i-map-a-key-binding-to-a-function-in-vimrc +-- https://stackoverflow.com/questions/7642746/is-there-any-way-to-view-the-currently-mapped-keys-in-vim +-- luacheck:ignore 631 +-- https://stackoverflow.com/questions/3776117/what-is-the-difference-between-the-remap-noremap-nnoremap-and-vnoremap-mapping +local function configure_command_server_shortcut() + -- these mappings don't change the current mode + -- https://neovim.io/doc/user/api.html#nvim_set_keymap() + -- https://www.reddit.com/r/neovim/comments/pt92qn/mapping_cd_in_terminal_mode/ + vim.api.nvim_set_keymap( + 'i', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'n', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'c', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'v', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 't', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + -- we do change the mode when in terminal mode before running anything though. + -- This is to ease doing stuff + -- like calling select_range() as otherwise it would fail for now + -- vim.api.nvim_set_keymap( + -- 't', + -- '', + -- [[lua vim.fn.CommandServerRunCommand()]], + -- { noremap = true } + -- ) + -- from insert mode, go into normal mode before executing the command + -- https://stackoverflow.com/questions/4416512/why-use-esc-in-vim + -- https://vim.fandom.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings + -- vim.cmd([[ + -- inoremap :call CommandServerRunCommand("i") + -- ]]) + -- vim.cmd([[ + -- nnoremap :call CommandServerRunCommand("n") + -- cnoremap :call CommandServerRunCommand("c") + -- vnoremap :call CommandServerRunCommand("v") + -- ]]) + -- -- https://vi.stackexchange.com/questions/4919/exit-from-terminal-mode-in-neovim-vim-8 + -- vim.cmd([[ + -- tnoremap :call CommandServerRunCommand("t") + -- ]]) +end + +local function setup() -- setup(user_config) + -- local config = Config.merge_config(user_config) + + vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim') + register_functions() + load_extensions() + configure_command_server_shortcut() +end + +local M = { + setup = setup, +} + +return M diff --git a/cursorless.nvim/lua/cursorless/utils.lua b/cursorless.nvim/lua/cursorless/utils.lua new file mode 100644 index 0000000000..30210d9344 --- /dev/null +++ b/cursorless.nvim/lua/cursorless/utils.lua @@ -0,0 +1,64 @@ +local M = {} + +-- :lua print(require('cursorless.utils').is_win()) +function M.is_win() + return package.config:sub(1, 1) == '\\' +end + +-- :lua print(require('cursorless.utils').get_path_separator()) +function M.get_path_separator() + if require('cursorless.utils').is_win() then + return '\\' + end + return '/' +end + +-- https://www.reddit.com/r/neovim/comments/tk1hby/get_the_path_to_the_current_lua_script_in_neovim/ +-- https://pgl.yoyo.org/luai/i/debug.getinfo +-- https://www.gammon.com.au/scripts/doc.php?lua=debug.getinfo +-- e.g. :lua print(require('cursorless.utils').cursorless_nvim_path()) +-- outputs: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim +-- NOTE: Development cursorless-neovim is installed in: C:\Users\User\AppData\Local\nvim\rplugin\node\cursorless-neovim +function M.cursorless_nvim_path() + --source_file=@C:/Users/User/AppData/Local/nvim-data/lazy/talon.nvim/lua/talon/utils.lua + local str = debug.getinfo(1, 'S').source + -- print(('source_file=%s'):format(str)) + -- skip as the file name is prefixed by "@" + str = str:sub(2) + -- print(('source_file2=%s'):format(str)) + if require('cursorless.utils').is_win() then + str = str:gsub('/', '\\') + -- print('is_win') + end + -- print(('source_file3=%s'):format(str)) + -- remove where our current file is located to get talon.nvim base path + str = str:sub(0, -1 - #'lua/cursorless/utils.lua') + -- print(('talon.nvim=%s'):format(str)) + return str +end + +-- assumes we are in terminal mode and switch to normal terminal mode +-- https://www.reddit.com/r/neovim/comments/uk3xmq/change_mode_in_lua/ +-- https://neovim.io/doc/user/api.html#nvim_feedkeys() +-- https://neovim.io/doc/user/builtin.html#feedkeys() +-- https://neovim.io/doc/user/api.html#nvim_replace_termcodes() +-- e.g. run in command mode :tmap lua mode_switch_nt() +function M.mode_switch_nt() + local key = vim.api.nvim_replace_termcodes('', true, false, true) + vim.api.nvim_feedkeys(key, 'n', false) +end + +-- assumes we are in normal terminal mode and switch to terminal mode +-- e.g. run in command mode :nmap lua mode_switch_t() +function M.mode_switch_t() + vim.api.nvim_feedkeys('i', 'n', true) +end + +-- paste what is in the clipboard +-- https://www.baeldung.com/linux/vim-paste-text +-- e.g. run in command mode :imap lua require('cursorless.utils').paste() +function M.paste() + vim.cmd([[normal! "+p]]) +end + +return M diff --git a/cursorless.nvim/vim/cursorless.vim b/cursorless.nvim/vim/cursorless.vim new file mode 100644 index 0000000000..e409c91003 --- /dev/null +++ b/cursorless.nvim/vim/cursorless.vim @@ -0,0 +1,12 @@ +" http://neovim.io/doc/user/remote_plugin.html +" similar to having the plugins into rplugin/node and running :UpdateRemotePlugins +" except here we don't need the user to run that command +function RegisterFunctions(cursorless_nvim_path) + call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . '/node/command-server', [ + \ {'sync': v:false, 'name': 'CommandServerLoadExtension', 'type': 'function', 'opts': {}}, + \ {'sync': v:false, 'name': 'CommandServerRunCommand', 'type': 'function', 'opts': {}}, + \ ]) + call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/cursorless-neovim', [ + \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}}, + \ ]) +endfunction From c60759408210a1ceab3db4b1059d08eca1354421 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 20:52:09 +0100 Subject: [PATCH 274/504] build: initial deployment scripts --- .github/workflows/deploy.yaml | 48 +++++++++++++++++++++++++++++++ scripts/deploy-cursorless-nvim.sh | 32 +++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 scripts/deploy-cursorless-nvim.sh diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index c9ac7ea536..32993a1815 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -40,6 +40,54 @@ jobs: registryUrl: https://marketplace.visualstudio.com extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }} + push-cursorless-nvim: + name: Push compiled files to talon.nvim plugin + runs-on: ubuntu-latest + environment: production + permissions: + deployments: write + contents: write + statuses: write + actions: write + checks: read + steps: + - uses: fidgetingbits/get-github-app-pat@v1 + id: githubAppAuth + with: + app-id: ${{ vars.BOT_ID }} + app-installation-id: ${{ vars.BOT_INSTALLATION_ID }} + app-private-key: ${{ secrets.BOT_PRIVATE_KEY }} + - uses: actions/checkout@v3 + with: + repository: hands-free-vim/cursorless.nvim + fetch-depth: 0 + # persist-credentials: false + # token: ${{ steps.githubAppAuth.outputs.access-token }} + - run: pnpm --color install + - run: pnpm --color compile + - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build + env: + CURSORLESS_DEPLOY: true + - name: Configure GPG Key + run: | + echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import + env: + GPG_SIGNING_KEY: ${{ secrets.BOT_GPG_SIGNING_KEY }} + + - name: git config + run: | + git config user.name hands-free-vim-bot + git config user.email 165344898+hands-free-vim-bot@users.noreply.github.com + git config user.signingkey D13230A2E34373A0 + git config commit.gpgsign true + - run: bash -x scripts/deploy-cursorless-nvim.sh + - name: Push changes + uses: ad-m/github-push-action@master + with: + #github_token: ${{ steps.githubAppAuth.outputs.access-token }} + repository: hands-free-vim/github-app-test-1 + # force_with_lease: true + push-cursorless-talon: name: Push cursorless-talon subrepo runs-on: ubuntu-latest diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh new file mode 100644 index 0000000000..d51175d5a2 --- /dev/null +++ b/scripts/deploy-cursorless-nvim.sh @@ -0,0 +1,32 @@ +# This script is used to push the cursorless.nvim +# see https://github.com/orgs/community/discussions/26615 +# see https://github.com/cursorless-dev/cursorless/blob/main/.github/workflows/deploy.yaml +# see https://github.com/hands-free-vim/github-app-test-1/blob/main/.github/workflows/deploy.yaml +# see https://github.com/cursorless-dev/cursorless/blob/main/scripts/build-and-assemble-website.sh + +set -euo pipefail + +root_dir=dist/cursorless.nvim +mkdir -p "$root_dir" + +# Merge the build .js and the static files +mkdir workdir +cd workdir + +mkdir -p "$root_dir/assets/cursorless-snippets" + +# copy .lua and .vim dependencies as well as other static files +cp -r cursorless.nvim/* "$root_dir" + +# copy the built .js file +mkdir -p "$root_dir/node/cursorless-neovim/out" +cp packages/cursorless-neovim/package.json "$root_dir/node/cursorless-neovim/" +cp packages/cursorless-neovim/out/index.cjs "$root_dir/node/cursorless-neovim/out/" + +# command-server if done from cursorless mono repo? +# cp -r command-server.nvim "$root_dir/node/" + +cd "$root_dir" +git add * +git commit -m "Deploy cursorless.nvim" +git push \ No newline at end of file From 5107f72b89067d7fb8c532b575495c1edad3f3fe Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:00:43 +0100 Subject: [PATCH 275/504] docs: cleanup todo --- packages/cursorless-neovim/TODO.md | 38 ------------------------------ 1 file changed, 38 deletions(-) diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md index de02a407db..f6ffc5bffd 100644 --- a/packages/cursorless-neovim/TODO.md +++ b/packages/cursorless-neovim/TODO.md @@ -1,13 +1,5 @@ # todo list to review for Pokey -- [ ] launch config for osx and Linux (currently relies on node.exe) -- [ ] task to run neovim in the background for osx and Linux (currently relies on powershell) -- [ ] remove the console.log and have them on a different development branch -- [ ] packages\cursorless-neovim-e2e\src\suite\recorded.neovim.test.ts versus packages\cursorless-vscode-e2e\src\suite\recorded.vscode.test.ts -- [ ] packages\cursorless-neovim-e2e\src\endToEndTestSetup.ts versus packages\cursorless-vscode-e2e\src\endToEndTestSetup.ts -- [ ] packages\cursorless-neovim\src\constructTestHelpers.ts versus packages\cursorless-vscode\src\constructTestHelpers.ts -- [ ] packages\cursorless-neovim\src\extension.ts versus packages\cursorless-vscode\src\extension.ts - - create issue about being able to reload new built cursorless without restarting neovim 2024-05-03 16:24:22 INF 4139 passing (28s) @@ -15,42 +7,12 @@ # questions for Pokey -- file one issue for problem in neovim - - command-server PR #996? to have changes from Aaron working? so they work in our own command-server.nvim too? - move getFocusedElementType() into the command server? see `NeovimCommandServerApi.ts` -- move lua files and all cursorless files to cursorless mono repo -- think about command-server.nvim into its own repo - - need to register the node functions in that report? see `RegisterFunctions` in `cursorless.nvim` - - need to load the extension calling `CommandServerLoadExtension`? see `extension` in `init.lua` - - need to configure the shortcuts? see `configure_command_server_shortcut` in `init.lua` - - need the `cursorless_nvim_path` helper from `utils.lua` -- .js into its own cursorless.nvim (only used for deployment similar to cursorless-talon) - see " "esbuild:prod": "pnpm run esbuild:base --minify"," from package.json cursorless-vscode to not include maps (!= "esbuild": "pnpm run esbuild:base --sourcemap",) - terminal: `bring second paint row one` works but `take second paint row one` followed by `bring this` does not. It is because it tries to bring it to the current cursor instead of using the fallback method: `Exception: nvim_buf_set_lines: Buffer is not 'modifiable'` -# mocha tests - -- pass the neovim client via dependency injection (do not import it between projects, since each extension has its own)(but for now it's fine to have the singleton) - - We directly import vscode in various places in cursorless vscode. We’re trying to stop, but not the end of the world if it merges that way - - the neovim e2e extension can have its own client - - we can pass the neovim client to mocha tests using a global. there’s a way to give mocha an object that tests can access https://mochajs.org/api/mocha#run not ideal, but maybe try a global variable for now https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196 take the neovim client you get when the test-harness is activated, set it on the global variable, and then get it from within the recorded.neovim.test. I just have the feeling that if things in the test runner extension need neovim client that comes in during extension activation, they should use the one that they get when the test runner extension is activated. there’s probably better ways to do it, but for now I think that’s better than different extensions relying on each others’ neovim clients. -- thinking on it, in theory we could use `global` for the other stuff in test-harness. not the prettiest thing, but it does pretty accurately capture what’s going on here. worth seeing whether there’s one single global object that any code within the same node process can access / modify -- create the new neovim registry package -- the neovim registry package would basically be 2 dictionaries, one to hold commands and another one to hold apis -- mocha environment shouldn’t be calling functions from cursorless-neovim. I have crossed that boundary lol - - basically mocha tests need to talk to cursorless-neovim, and they need to talk to neovim - - for the former (talking to cursorless-neovim) they should do so via the neovim-registry package we discussed - - for talking to neovim, they should do it via the neovim client that gets passed in when the e2e extension activates - - `openNewEditor` should go into some kind of `neovim-common` or something so both can access it. that’s how it works for vscode. we have `@cursorless/vscode`, `vscode-common`, and `@cursorless/vscode-e2e`. `@cursorless/vscode` and `@cursorless/vscode-e2e` both import from `vscode-common` - - oh is `openNewEditor` only needed by the test harness? in that case i’d still make the client be an arg to `openNewEditor`, but it can just exist in `@cursorless/neovim-e2e` - - tbh ideally `test-harness` shouldn’t have access to `ide` at all. fwiw in vscode we just pass pointers to the functions we need through cursorlessApi rather than passing the whole ide. otherwise you end up needing the test harness to import cursorless-neovim in order to get the types it wants. notice how the type signature of the helpers lives in a the `vscode-common` shared dependency https://github.com/cursorless-dev/cursorless/blob/main/packages/vscode-common/src/TestHelpers.ts -- So I need to add 3 packages: `cursorless-neovim-e2e` (for `recorded.neovim.test.ts`) and `neovim-common` (with helpers to talk to neovim through neovimClient) and `neovim-registry` (to register stuff and access them from anywhere) and `test-harness` (for the mocha machinery) - - fwiw in neovim-common, I think it should only ever get the client passed in as an arg and not store it. neovim-common should be stateless, ie no globals / singletons, that way we don’t care how / where it gets bundled up - - tbh as much of our code as possible should be stateless ie no globals / singletons -- but before we get too far it’s worth verifying that you can get the `neovim client` from the mocha `test-harness` to the test case itself - # questions - unit tests for lineCount similar to C:\work\tools\voicecoding\cursorless_fork\packages\common\src\types\range.test.ts or selection.test.ts From 5a731c9ef26c051a08799edcb898bde610fb40cc Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:07:59 +0100 Subject: [PATCH 276/504] remove old file --- packages/cursorless-neovim/STATE.md | 31 ----------------------------- 1 file changed, 31 deletions(-) delete mode 100644 packages/cursorless-neovim/STATE.md diff --git a/packages/cursorless-neovim/STATE.md b/packages/cursorless-neovim/STATE.md deleted file mode 100644 index 043a0b118f..0000000000 --- a/packages/cursorless-neovim/STATE.md +++ /dev/null @@ -1,31 +0,0 @@ -Quick summary of what is supported atm. - -Supported: - -- cursorless commands generally available from all the modes: normal (n), insert (i), normal terminal (nt), terminal (t), visual (v) -- marks (row, this, that, source) -- scopes (line, paint, short paint, token, file, char, block, identifier, round, curly, box, diamond, twin, quad, skis, pair, etc) -- modifiers (previous, next, first, second, etc, two, three, etc, last, backward, sub, past, tail, head, just, inside, its, start of, end of, before, after, until, etc) -- edition actions in n, i, v (chuck, bring, change, clone etc) -- limited support for "and" modifier if result in no or single cursor -- selection/moving actions in any mode (take, pre, post) -- copy to clipboard action from any mode (copy) -- fallback bring action in terminal (t, nt) always brings to command prompt current position (bring) - -Not supported: - -- decorated symbols marks (no coloured hats are drawn) -- syntactic scopes (no treesitter) -- multiple cursors (no modifiers: every, instance, from, bounds, slice) (no action: give) -- scope visualizer -- search commands (scout, etc) - -Todo/test as should work: - -- actions: move, pre, post, paste, carve, swap, indent, dedent, increment, decrement, drink, pour, phones, wrap, repack, join, break -- marks: up, down -- from line take next instance this - -Not sure if supported: - -- crown, center, bottom From bde4709d47f85d3fb3fda96868d36fd6a87f51e9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:08:53 +0100 Subject: [PATCH 277/504] remove old file --- packages/cursorless-neovim/TODO.md | 58 ------------------------------ 1 file changed, 58 deletions(-) delete mode 100644 packages/cursorless-neovim/TODO.md diff --git a/packages/cursorless-neovim/TODO.md b/packages/cursorless-neovim/TODO.md deleted file mode 100644 index f6ffc5bffd..0000000000 --- a/packages/cursorless-neovim/TODO.md +++ /dev/null @@ -1,58 +0,0 @@ -# todo list to review for Pokey - -- create issue about being able to reload new built cursorless without restarting neovim - -2024-05-03 16:24:22 INF 4139 passing (28s) -2024-05-03 16:24:22 INF 2885 pending - -# questions for Pokey - -- command-server PR #996? to have changes from Aaron working? so they work in our own command-server.nvim too? -- move getFocusedElementType() into the command server? see `NeovimCommandServerApi.ts` - -- see " "esbuild:prod": "pnpm run esbuild:base --minify"," from package.json cursorless-vscode to not include maps (!= "esbuild": "pnpm run esbuild:base --sourcemap",) -- terminal: `bring second paint row one` works but `take second paint row one` followed by `bring this` does not. It is because it tries to bring it to the current cursor instead of using the fallback method: `Exception: nvim_buf_set_lines: Buffer is not 'modifiable'` - -# questions - -- unit tests for lineCount similar to C:\work\tools\voicecoding\cursorless_fork\packages\common\src\types\range.test.ts or selection.test.ts -- logs in vscode would be better -- test-harness outside of cursorless-neovim -- see cursorless_original\packages\test-harness\dist -- functions are called in parallel. Is that okay? - vim.api.nvim_call_function('CursorlessLoadExtension', {}) - vim.api.nvim_call_function('CommandServerLoadExtension', {}) - -- test-harness\dist\cursorless-vscode-e2e\src\suite\editNewCell.vscode.test.cjs - var EXTENSION_ID = "pokey.cursorless"; - var getCursorlessApi = () => getExtensionApiStrict(EXTENSION_ID); - var getParseTreeApi = () => getExtensionApiStrict("pokey.parse-tree"); - // lazy import of cursorless-engine from test-harness - -- unit tests for testing the lua functions for ranges, selections etc. -- utf8 is not supported well - probably neovim pb (translate to utf8) - no utf8 thing in cursorless (strings that under the hood are utf16) - need to decode it before giving it to cursorless -- Pokey: pure dependency injection: rearchitecture code to reduce use of singletons, have neovimIDE available where I want (no need to detect spyIDE vs normalizedIDE, etc.), no need to export ide() singleton from cursorless to remove all the DEP-INJ: -- Pokey: go over the remaining "TODO:" in the code -- Pokey: understand better the rangeUpdater object (e.g. "paste to first paint row one") -- "paste to row one" from the clipboard, see getFromClipboard() - -# to do - -- chuck first paint row two and third paint row two -- scout text command in any mode -- find a way to load nvim.exe in the background as part of launch.json/tasks.json to load neovim so we can attach to it with debugger -- hack and redirect console.log/console.info to console.warning in cursorless repo so we don't have to change all the instances? And restore all console.warn to be console.log -- understand why no node plugin logging in vscode anymore with latest node-client? - -# Pokey todo list - -- separate PRs to be accepted: textEditor.setSelections(), fixtures-data -- exception in CustomSpokenForms.updateSpokenFormMaps: https://github.com/cursorless-dev/cursorless/issues/2261 (pokey will fix it) - -# to do later - -- can we reload the extensions after a modification without reloading neovim? does not seem to work atm -- have the command server allow executing any lua function? probably not because we already have neovim rpc. -- prePhrase support in command server? https://www.cursorless.org/docs/contributing/architecture/hat-snapshots/ only useful to chain multiple commands to avoid hats being changed in the middle so not useful for now -- merge talon-vscode-command-client into community once we know for sure we use the command-server (and not neovim python rpc) -- merge cursorless-talon into the Cursorless repo From b633f0ce7bc943173a150ac54365e55b82c5b86b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:11:13 +0100 Subject: [PATCH 278/504] docs: comment --- packages/cursorless-neovim/src/NeovimCommandServerApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts index c798af64d3..dacccc01c1 100644 --- a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts +++ b/packages/cursorless-neovim/src/NeovimCommandServerApi.ts @@ -13,8 +13,8 @@ export class NeovimCommandServerApi implements CommandServerApi { } // for vscode, it is actually stored into the command-server + // but for neovim, it is stored in cursorless // https://github.com/pokey/command-server/blob/main/src/extension.ts#L32 - // I am not sure why it is stored into the command-server and not in the Cursorless extension async getFocusedElementType(): Promise { const currentMode = await this.client.mode; if (currentMode.mode === "t" || currentMode.mode === "nt") { From 0c2a7c583df297308c4ba761058a61d4b3f41321 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:25:06 +0100 Subject: [PATCH 279/504] docs: comment --- packages/neovim-common/src/getExtensionApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/neovim-common/src/getExtensionApi.ts b/packages/neovim-common/src/getExtensionApi.ts index 21c1edb138..cf0f0ad50c 100644 --- a/packages/neovim-common/src/getExtensionApi.ts +++ b/packages/neovim-common/src/getExtensionApi.ts @@ -36,7 +36,6 @@ export async function getExtensionApiStrict(extensionId: string) { return api as T; } -// see packages\cursorless-neovim\src\singletons\cursorlessapi.singleton.ts // for old implementation export const EXTENSION_ID = "pokey.cursorless"; export const getCursorlessApi = () => @@ -45,6 +44,7 @@ export const getCursorlessApi = () => // export const getParseTreeApi = () => // getExtensionApiStrict("pokey.parse-tree"); +// See packages/cursorless-neovim/src/NeovimCommandServerApi.ts for neovim implementation /** * * @returns Command server API or null if not installed From e8ca1f957ea707d455202cc79eada6ec18c65eca Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:27:23 +0100 Subject: [PATCH 280/504] docs: comments --- packages/neovim-common/src/getExtensionApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/neovim-common/src/getExtensionApi.ts b/packages/neovim-common/src/getExtensionApi.ts index cf0f0ad50c..e4568c02b7 100644 --- a/packages/neovim-common/src/getExtensionApi.ts +++ b/packages/neovim-common/src/getExtensionApi.ts @@ -14,6 +14,7 @@ export interface CursorlessApi { }; } +// See packages\cursorless-neovim\src\extension.ts:createTreeSitter() for neovim // export interface ParseTreeApi { // getNodeAtLocation(location: vscode.Location): SyntaxNode; // getTreeForUri(uri: vscode.Uri): Tree; @@ -36,7 +37,6 @@ export async function getExtensionApiStrict(extensionId: string) { return api as T; } -// for old implementation export const EXTENSION_ID = "pokey.cursorless"; export const getCursorlessApi = () => getExtensionApiStrict(EXTENSION_ID); From c36b2b7d36ea6d79aeb64d4cc160eb0556703306 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:51:43 +0100 Subject: [PATCH 281/504] refactor: make it similar to vscode to ease review 4139 passing 2885 pending --- .../src/ide/vscode/VscodeIDE.ts | 4 +- .../src/ide/neovim/NeovimCapabilities.ts | 38 +++++++------ .../src/ide/neovim/NeovimClipboard.ts | 2 +- .../neovim-common/src/ide/neovim/NeovimIDE.ts | 55 ++++++++++--------- 4 files changed, 52 insertions(+), 47 deletions(-) diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts index 9709cf4b57..418548b861 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts @@ -62,7 +62,7 @@ export class VscodeIDE implements IDE { return await vscodeShowQuickPick(items, options); } - setHighlightRanges( + async setHighlightRanges( highlightId: HighlightId | undefined, editor: TextEditor, ranges: GeneralizedRange[], @@ -78,7 +78,7 @@ export class VscodeIDE implements IDE { ); } - flashRanges(flashDescriptors: FlashDescriptor[]): Promise { + async flashRanges(flashDescriptors: FlashDescriptor[]): Promise { return this.flashHandler.flashRanges(flashDescriptors); } diff --git a/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts b/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts index 8a6437e10b..fee028512f 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts @@ -1,21 +1,23 @@ -import { Capabilities } from "@cursorless/common"; +import { Capabilities, CommandCapabilityMap } from "@cursorless/common"; + +const COMMAND_CAPABILITIES: CommandCapabilityMap = { + clipboardCopy: { acceptsLocation: false }, + toggleLineComment: undefined, + indentLine: undefined, + outdentLine: undefined, + rename: undefined, + quickFix: undefined, + revealDefinition: undefined, + revealTypeDefinition: undefined, + showHover: undefined, + showDebugHover: undefined, + extractVariable: undefined, + fold: undefined, + highlight: { acceptsLocation: true }, + unfold: undefined, + showReferences: undefined, +}; export class NeovimCapabilities implements Capabilities { - commands = { - clipboardCopy: { acceptsLocation: false }, - toggleLineComment: undefined, - indentLine: undefined, - outdentLine: undefined, - rename: undefined, - quickFix: undefined, - revealDefinition: undefined, - revealTypeDefinition: undefined, - showHover: undefined, - showDebugHover: undefined, - extractVariable: undefined, - fold: undefined, - highlight: { acceptsLocation: true }, - unfold: undefined, - showReferences: undefined, - }; + commands = COMMAND_CAPABILITIES; } diff --git a/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts index 0e665e2873..fad736535d 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts @@ -10,6 +10,6 @@ export default class NeovimClipboard implements Clipboard { } async writeText(value: string): Promise { - await putToClipboard(value, this.client); + return await putToClipboard(value, this.client); } } diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 09617b54cf..430a075939 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -85,23 +85,6 @@ export class NeovimIDE implements IDE { ); } - // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode - get runMode(): RunMode { - const runMode = process.env.CURSORLESS_MODE; - const ret = - runMode == null - ? "production" - : runMode === "test" - ? "test" - : runMode == "development" - ? "development" - : "unknown"; - if (ret === "unknown") { - throw Error("Invalid runMode"); - } - return ret; - } - async showQuickPick( _items: readonly string[], _options?: QuickPickOptions, @@ -129,6 +112,23 @@ export class NeovimIDE implements IDE { return this.assetsRoot_; } + // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode + get runMode(): RunMode { + const runMode = process.env.CURSORLESS_MODE; + const ret = + runMode == null + ? "production" + : runMode === "test" + ? "test" + : runMode == "development" + ? "development" + : "unknown"; + if (ret === "unknown") { + throw Error("Invalid runMode"); + } + return ret; + } + get activeTextEditor(): TextEditor | undefined { // throw Error("activeTextEditor Not implemented"); return this.getActiveTextEditor(); @@ -177,40 +177,44 @@ export class NeovimIDE implements IDE { // throw Error("getEditableTextEditor Not implemented"); } - public findInDocument(_query: string, _editor: TextEditor): Promise { + public async findInDocument( + _query: string, + _editor: TextEditor, + ): Promise { throw Error("findInDocument Not implemented"); } - public findInWorkspace(_query: string): Promise { + public async findInWorkspace(_query: string): Promise { throw Error("findInWorkspace Not implemented"); } - public openTextDocument(_path: string): Promise { + public async openTextDocument(_path: string): Promise { throw Error("openTextDocument Not implemented"); } - public openUntitledTextDocument( + public async openUntitledTextDocument( _options: OpenUntitledTextDocumentOptions, ): Promise { throw Error("openUntitledTextDocument Not implemented"); } - public showInputBox(_options?: any): Promise { + public async showInputBox(_options?: any): Promise { throw Error("TextDocumentChangeEvent Not implemented"); } - executeCommand(_command: string, ..._args: any[]): Promise { + public async executeCommand( + _command: string, + ..._args: any[] + ): Promise { throw new Error("executeCommand Method not implemented."); } - // onDidChangeTextDocument: Event = dummyEvent; public onDidChangeTextDocument( listener: (event: TextDocumentChangeEvent) => void, ): Disposable { return neovimOnDidChangeTextDocument(listener); } - // onDidOpenTextDocument: Event = dummyEvent; public onDidOpenTextDocument( listener: (event: TextDocument) => any, thisArgs?: any, @@ -218,7 +222,6 @@ export class NeovimIDE implements IDE { ): Disposable { return neovimOnDidOpenTextDocument(listener, thisArgs, disposables); } - onDidCloseTextDocument: Event = dummyEvent; onDidChangeActiveTextEditor: Event = dummyEvent; onDidChangeVisibleTextEditors: Event = dummyEvent; From 85872ee313b500aed0abde288a41341edf30e865 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 21:58:15 +0100 Subject: [PATCH 282/504] refactor: make similar to vscode --- .../src/ide/vscode/VscodeTextEditorImpl.ts | 2 +- .../neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts index 464f5b3a53..1e5fe567f1 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditorImpl.ts @@ -84,7 +84,7 @@ export class VscodeTextEditorImpl implements EditableTextEditor { return vscodeRevealLine(this, lineNumber, at); } - public edit(edits: Edit[]): Promise { + public async edit(edits: Edit[]): Promise { return vscodeEdit(this.editor, edits); } diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts index 36c675eb64..e8f466c871 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts @@ -39,10 +39,6 @@ export class NeovimTextEditorImpl implements EditableTextEditor { return this._document; } - get visibleRanges(): Range[] { - return this._visibleRanges; - } - public updateDocument( visibleRanges: Range[], selections: Selection[], @@ -73,6 +69,10 @@ export class NeovimTextEditorImpl implements EditableTextEditor { await bufferSetSelections(this.client, selections); } + get visibleRanges(): Range[] { + return this._visibleRanges; + } + get options(): TextEditorOptions { throw Error("get options Not implemented"); } From 4f46c0cf5b8719a2aca8f2c230181711ebddb4d3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Fri, 3 May 2024 22:13:12 +0100 Subject: [PATCH 283/504] refactor: delete old comments --- packages/neovim-common/src/runCommand.ts | 28 ++---------------------- packages/test-harness/src/runAllTests.ts | 5 ----- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/packages/neovim-common/src/runCommand.ts b/packages/neovim-common/src/runCommand.ts index 4426f42c88..0aaf29ddda 100644 --- a/packages/neovim-common/src/runCommand.ts +++ b/packages/neovim-common/src/runCommand.ts @@ -1,33 +1,9 @@ -import { - Command, - // CommandServerApi, - CURSORLESS_COMMAND_ID, -} from "@cursorless/common"; +import { Command, CURSORLESS_COMMAND_ID } from "@cursorless/common"; import { getNeovimRegistry } from "@cursorless/neovim-registry"; -// import { CommandApi } from "@cursorless/cursorless-engine"; -// import type { NeovimClient } from "neovim"; -// import { handleCommandInternal } from "../../cursorless-neovim/src/registerCommands"; -// import { NeovimIDE } from "./ide/neovim/NeovimIDE"; -//import * as vscode from "vscode"; -export async function runCursorlessCommand( - // client: NeovimClient, - // neovimIDE: NeovimIDE, - // commandApi: CommandApi, - // cmdSrvApi: CommandServerApi, - command: Command, -) { - //return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); +export async function runCursorlessCommand(command: Command) { return await getNeovimRegistry().executeCommand( CURSORLESS_COMMAND_ID, command, ); - // return handleCommandInternal( - // client, - // neovimIDE, - // commandApi, - // cmdSrvApi, - // CURSORLESS_COMMAND_ID, - // command, - // ); } diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts index 3b0a10cb50..b41f320a75 100644 --- a/packages/test-harness/src/runAllTests.ts +++ b/packages/test-harness/src/runAllTests.ts @@ -52,11 +52,6 @@ async function runTestsInDir( ui: "tdd", color: true, grep: runTestSubset() ? testSubsetGrepString() : undefined, // Only run a subset of tests - // rootHooks: { - // beforeAll(){ - // this.neovimClient = ... - // } - // } }); const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot })); From 11e123ee787d59ec9d71b85281967220f31c6636 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 08:23:18 +0000 Subject: [PATCH 284/504] [pre-commit.ci lite] apply automatic fixes --- .../recorded/actions/pasteBeforeToken.yml | 2 +- packages/neovim-common/src/neovimHelpers.ts | 2 +- pnpm-lock.yaml | 18970 +++++++++------- scripts/deploy-cursorless-nvim.sh | 2 +- 4 files changed, 11111 insertions(+), 7865 deletions(-) diff --git a/data/fixtures/recorded/actions/pasteBeforeToken.yml b/data/fixtures/recorded/actions/pasteBeforeToken.yml index 15b99daf10..0687b07a0d 100644 --- a/data/fixtures/recorded/actions/pasteBeforeToken.yml +++ b/data/fixtures/recorded/actions/pasteBeforeToken.yml @@ -19,7 +19,7 @@ initialState: - anchor: {line: 0, character: 8} active: {line: 0, character: 8} marks: {} - clipboard: "value" + clipboard: value finalState: documentContents: hello value world selections: diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/neovim-common/src/neovimHelpers.ts index ddfd4c7fe2..a9b34d393c 100644 --- a/packages/neovim-common/src/neovimHelpers.ts +++ b/packages/neovim-common/src/neovimHelpers.ts @@ -6,7 +6,7 @@ import { putToClipboard, } from "@cursorless/neovim-common"; import { NeovimTextEditorImpl } from "./ide/neovim/NeovimTextEditorImpl"; -import type { Neovim, NeovimClient } from "neovim"; +import type { NeovimClient } from "neovim"; import { IDE } from "@cursorless/common"; export async function neovimClipboardCopy( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b082b58835..cd3f93486e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -769,12 +769,8922 @@ importers: packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + '@algolia/autocomplete-core@1.9.3': resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.9.3': + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/cache-browser-local-storage@4.22.1': + resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + + '@algolia/cache-common@4.22.1': + resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + + '@algolia/cache-in-memory@4.22.1': + resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + + '@algolia/client-account@4.22.1': + resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + + '@algolia/client-analytics@4.22.1': + resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + + '@algolia/client-common@4.22.1': + resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + + '@algolia/client-personalization@4.22.1': + resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + + '@algolia/client-search@4.22.1': + resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + + '@algolia/events@4.0.1': + resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + + '@algolia/logger-common@4.22.1': + resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + + '@algolia/logger-console@4.22.1': + resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + + '@algolia/requester-browser-xhr@4.22.1': + resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + + '@algolia/requester-common@4.22.1': + resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + + '@algolia/requester-node-http@4.22.1': + resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + + '@algolia/transporter@4.22.1': + resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.1': + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.3': + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.1': + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.1': + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.22.15': + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.1': + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.22.20': + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.24.1': + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.1': + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.1': + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.24.1': + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.1': + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.24.1': + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.24.3': + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.24.1': + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.24.1': + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.24.1': + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.24.1': + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.24.1': + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.24.1': + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.24.1': + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.24.1': + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.24.1': + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.24.1': + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dynamic-import@7.24.1': + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.24.1': + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.24.1': + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.24.1': + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.24.1': + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.24.1': + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.24.1': + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.24.1': + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.24.1': + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.24.1': + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.1': + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.24.1': + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.24.1': + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.24.1': + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.24.1': + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.24.1': + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.24.1': + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.24.1': + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.24.1': + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.24.1': + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.24.1': + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.24.1': + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.24.1': + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-constant-elements@7.24.1': + resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.24.1': + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.22.5': + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.23.4': + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.24.1': + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.24.1': + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.24.1': + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.24.3': + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.24.1': + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.24.1': + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.24.1': + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.24.1': + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.24.1': + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.24.1': + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.24.1': + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.24.1': + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.24.1': + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1': + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.24.3': + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-react@7.24.1': + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.1': + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/regjsgen@0.8.0': + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime-corejs3@7.24.1': + resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.24.1': + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dabh/diagnostics@2.0.3': + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@docsearch/css@3.6.0': + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + + '@docsearch/react@3.6.0': + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + + '@docusaurus/core@3.1.1': + resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/cssnano-preset@3.1.1': + resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} + engines: {node: '>=18.0'} + + '@docusaurus/logger@3.1.1': + resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} + engines: {node: '>=18.0'} + + '@docusaurus/mdx-loader@3.1.1': + resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/module-type-aliases@3.1.1': + resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} + peerDependencies: + react: '*' + react-dom: '*' + + '@docusaurus/plugin-content-blog@3.1.1': + resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-docs@3.1.1': + resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-pages@3.1.1': + resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-debug@3.1.1': + resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-analytics@3.1.1': + resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-gtag@3.1.1': + resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-tag-manager@3.1.1': + resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-sitemap@3.1.1': + resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/preset-classic@3.1.1': + resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/react-loadable@5.5.2': + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' + + '@docusaurus/theme-classic@3.1.1': + resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-common@3.1.1': + resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-search-algolia@3.1.1': + resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-translations@3.1.1': + resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} + engines: {node: '>=18.0'} + + '@docusaurus/types@3.1.1': + resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/utils-common@3.1.1': + resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@docusaurus/utils-validation@3.1.1': + resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} + engines: {node: '>=18.0'} + + '@docusaurus/utils@3.1.1': + resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@effect/schema@0.56.1': + resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} + peerDependencies: + effect: 2.0.0-next.62 + fast-check: ^3.13.2 + + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3': + resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} + engines: {node: '>=10.13.0'} + peerDependencies: + html-webpack-plugin: '>=5' + webpack: '>=5' + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@fortawesome/fontawesome-common-types@6.5.1': + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + + '@fortawesome/fontawesome-svg-core@6.5.1': + resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + engines: {node: '>=6'} + + '@fortawesome/free-solid-svg-icons@6.5.1': + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + + '@fortawesome/react-fontawesome@0.2.0': + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3 || 18' + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + + '@gwhitney/detect-indent@7.0.1': + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.2': + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@leichtgewicht/ip-codec@2.0.4': + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + + '@mdx-js/loader@3.0.1': + resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} + peerDependencies: + webpack: '>=5' + + '@mdx-js/mdx@3.0.1': + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + + '@mdx-js/react@3.0.1': + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16 || 18' + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@next/env@14.1.4': + resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} + + '@next/eslint-plugin-next@14.1.4': + resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + + '@next/mdx@14.1.4': + resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true + + '@next/swc-darwin-arm64@14.1.4': + resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.1.4': + resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.1.4': + resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.1.4': + resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.1.4': + resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.1.4': + resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.1.4': + resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.1.4': + resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.1.4': + resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/arborist@4.3.1': + resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + '@npmcli/fs@1.1.1': + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/fs@3.1.0': + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@2.1.0': + resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + + '@npmcli/git@4.1.0': + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/installed-package-contents@1.0.7': + resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} + engines: {node: '>= 10'} + hasBin: true + + '@npmcli/installed-package-contents@2.0.2': + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/map-workspaces@2.0.4': + resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/metavuln-calculator@2.0.0': + resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + '@npmcli/move-file@1.1.2': + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/name-from-folder@1.0.1': + resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + + '@npmcli/node-gyp@1.0.3': + resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@1.0.1': + resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + + '@npmcli/promise-spawn@1.3.2': + resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + + '@npmcli/promise-spawn@6.0.2': + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/run-script@2.0.0': + resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + + '@npmcli/run-script@6.0.2': + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@octokit/auth-token@2.5.0': + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + + '@octokit/core@3.6.0': + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + + '@octokit/endpoint@6.0.12': + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + + '@octokit/graphql@4.8.0': + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + + '@octokit/openapi-types@12.11.0': + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + + '@octokit/plugin-paginate-rest@2.21.3': + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' + + '@octokit/plugin-request-log@1.0.4': + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/plugin-rest-endpoint-methods@5.16.2': + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/request-error@2.1.0': + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + + '@octokit/request@5.6.3': + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + + '@octokit/rest@18.12.0': + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + + '@octokit/types@6.41.0': + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/cli-meta@5.0.1': + resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} + engines: {node: '>=16.14'} + + '@pnpm/cli-utils@2.0.9': + resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/config@18.4.0': + resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@6.2.0': + resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} + engines: {node: '>=14.6'} + + '@pnpm/constants@7.1.0': + resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} + engines: {node: '>=16.14'} + + '@pnpm/constants@7.1.1': + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@8.0.0': + resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} + engines: {node: '>=18.12'} + + '@pnpm/core-loggers@10.0.0': + resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/core-loggers@9.0.1': + resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/crypto.base32-hash@3.0.0': + resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} + engines: {node: '>=18.12'} + + '@pnpm/dedupe.issues-renderer@1.0.0': + resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} + engines: {node: '>=16.14'} + + '@pnpm/dedupe.types@1.0.0': + resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} + engines: {node: '>=16.14'} + + '@pnpm/default-reporter@12.2.3': + resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/dependency-path@3.0.0': + resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} + engines: {node: '>=18.12'} + + '@pnpm/error@4.0.1': + resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} + engines: {node: '>=14.6'} + + '@pnpm/error@5.0.1': + resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} + engines: {node: '>=16.14'} + + '@pnpm/error@5.0.3': + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} + + '@pnpm/error@6.0.0': + resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} + engines: {node: '>=18.12'} + + '@pnpm/fetch@8.0.0': + resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/fetcher-base@14.0.1': + resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} + engines: {node: '>=16.14'} + + '@pnpm/fetching-types@6.0.0': + resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} + engines: {node: '>=18.12'} + + '@pnpm/find-workspace-dir@6.0.3': + resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} + engines: {node: '>=16.14'} + + '@pnpm/find-workspace-packages@6.0.9': + resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} + engines: {node: '>=16.14'} + + '@pnpm/fs.find-packages@2.0.1': + resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} + engines: {node: '>=16.14'} + + '@pnpm/git-resolver@9.0.1': + resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} + engines: {node: '>=18.12'} + + '@pnpm/git-utils@1.0.0': + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} + + '@pnpm/git-utils@2.0.0': + resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} + engines: {node: '>=18.12'} + + '@pnpm/graceful-fs@3.0.0': + resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} + engines: {node: '>=16.14'} + + '@pnpm/hooks.types@1.0.1': + resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} + engines: {node: '>=16.14'} + + '@pnpm/hosted-git-info@1.0.0': + resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} + engines: {node: '>=10'} + + '@pnpm/lockfile-file@9.0.2': + resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/lockfile-types@5.1.0': + resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} + engines: {node: '>=16.14'} + + '@pnpm/lockfile-types@6.0.0': + resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} + engines: {node: '>=18.12'} + + '@pnpm/lockfile-utils@10.0.0': + resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} + engines: {node: '>=18.12'} + + '@pnpm/logger@5.0.0': + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} + + '@pnpm/manifest-utils@5.0.1': + resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} + engines: {node: '>=16.14'} + + '@pnpm/matcher@5.0.0': + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} + engines: {node: '>=16.14'} + + '@pnpm/merge-lockfile-changes@6.0.0': + resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} + engines: {node: '>=18.12'} + + '@pnpm/meta-updater@1.0.0': + resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} + engines: {node: '>=10.12'} + hasBin: true + + '@pnpm/network.agent@1.0.1': + resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.config@1.0.1': + resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.proxy-agent@1.0.1': + resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} + engines: {node: '>=12.22.0'} + + '@pnpm/node-fetch@1.0.0': + resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} + engines: {node: ^10.17 || >=12.3} + + '@pnpm/npm-conf@2.2.0': + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@pnpm/package-is-installable@8.0.2': + resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/pick-fetcher@3.0.0': + resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} + engines: {node: '>=18.12'} + + '@pnpm/pnpmfile@5.0.7': + resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/ramda@0.28.1': + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + + '@pnpm/read-project-manifest@5.0.1': + resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} + engines: {node: '>=16.14'} + + '@pnpm/render-peer-issues@4.0.1': + resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@10.0.1': + resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@12.0.0': + resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} + engines: {node: '>=18.12'} + + '@pnpm/store-controller-types@15.0.1': + resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} + engines: {node: '>=16.14'} + + '@pnpm/text.comments-parser@2.0.0': + resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} + engines: {node: '>=16.14'} + + '@pnpm/types@10.0.0': + resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} + engines: {node: '>=18.12'} + + '@pnpm/types@9.1.0': + resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} + engines: {node: '>=16.14'} + + '@pnpm/types@9.4.2': + resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} + engines: {node: '>=16.14'} + + '@pnpm/util.lex-comparator@1.0.0': + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + + '@pnpm/util.lex-comparator@3.0.0': + resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} + engines: {node: '>=18.12'} + + '@pnpm/write-project-manifest@5.0.1': + resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} + engines: {node: '>=16.14'} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@rushstack/eslint-patch@1.8.0': + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sigstore/bundle@1.1.0': + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.2.1': + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/sign@1.0.0': + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/tuf@1.0.3': + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@sinonjs/commons@2.0.0': + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@sinonjs/fake-timers@11.2.2': + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + + '@sinonjs/samsam@8.0.0': + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + + '@sinonjs/text-encoding@0.7.2': + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + + '@slorber/remark-comment@1.0.0': + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + + '@slorber/static-site-generator-webpack-plugin@4.0.7': + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@6.5.1': + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@8.1.0': + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/webpack@6.5.1': + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} + + '@svgr/webpack@8.1.0': + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} + + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + + '@testing-library/react@14.2.2': + resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@tsconfig/docusaurus@2.0.2': + resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} + + '@tsconfig/node10@1.0.10': + resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tufjs/canonical-json@1.0.0': + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@tufjs/models@1.0.4': + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.5': + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/chai@4.3.14': + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.6': + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/expect@1.20.4': + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + + '@types/express-serve-static-core@4.17.43': + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/gtag.js@0.0.12': + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.14': + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.12': + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + + '@types/js-cookie@2.2.7': + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/lodash@4.14.181': + resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} + + '@types/lodash@4.17.0': + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + + '@types/mdast@4.0.3': + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + + '@types/mdx-js__react@1.5.8': + resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + + '@types/mdx@2.0.12': + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/mime@3.0.4': + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mocha@10.0.6': + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + + '@types/moo@0.5.9': + resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nearley@2.11.5': + resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@15.14.9': + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@18.18.2': + resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/normalize-path@3.0.2': + resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prismjs@1.26.3': + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.14': + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-dom@18.2.22': + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + + '@types/react-helmet@6.1.11': + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + + '@types/react-router-config@5.0.11': + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + + '@types/react@18.2.71': + resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/sbd@1.0.5': + resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} + + '@types/scheduler@0.23.0': + resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.5': + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + + '@types/sinon@17.0.3': + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + + '@types/sinonjs__fake-timers@8.1.5': + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/ssri@7.1.5': + resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/tinycolor2@1.4.6': + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/unist@2.0.10': + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/vinyl@2.0.11': + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + + '@types/vscode@1.75.1': + resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} + + '@types/vscode@1.88.0': + resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} + + '@types/webpack@5.28.5': + resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + + '@typescript-eslint/eslint-plugin@7.4.0': + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.4.0': + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.4.0': + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.4.0': + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.4.0': + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.4.0': + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.4.0': + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.4.0': + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vscode/test-electron@2.3.9': + resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} + engines: {node: '>=16'} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/generators@3.0.7': + resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} + engines: {node: '>=14.15.0'} + peerDependencies: + prettier: '*' + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + prettier: + optional: true + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xobotyi/scrollbar-width@1.9.5': + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true + + '@zkochan/retry@0.2.0': + resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} + engines: {node: '>=10'} + + '@zkochan/rimraf@2.1.3': + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} + + '@zkochan/which@2.0.3': + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + algoliasearch-helper@3.16.3: + resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' + + algoliasearch@4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-diff@1.1.1: + resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-split@1.0.1: + resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + + array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + + axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-loader@9.1.3: + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-polyfill-corejs2@0.4.10: + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.4: + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.1: + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-preset-current-node-syntax@1.0.1: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + bin-links@3.0.3: + resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binaryextensions@4.19.0: + resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + engines: {node: '>=0.8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bole@5.0.11: + resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + can-write-to-dir@1.1.1: + resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} + engines: {node: '>=10.13'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-columns@4.0.0: + resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} + engines: {node: '>= 10'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} + engines: {node: 10.* || >= 12.*} + + cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + + clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + + cmd-shim@5.0.0: + resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + + colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + + combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.1.0: + resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} + engines: {node: '>= 10'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + copy-webpack-plugin@11.0.0: + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + + core-js-pure@3.36.1: + resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} + + core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + + css-loader@6.10.0: + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-minimizer-webpack-plugin@4.2.2: + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-advanced@5.3.10: + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true + + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + effect@2.0.0-next.62: + resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} + + ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + error@10.4.0: + resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + + es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + + es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-next@14.1.4: + resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.1: + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-module-utils@2.8.1: + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.8.0: + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-mocha@10.4.1: + resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.34.1: + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-unicorn@51.0.1: + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@3.1.0: + resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.0.1: + resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} + engines: {node: '>=16.0.0'} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-check@3.15.0: + resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} + engines: {node: '>=8.0.0'} + + fast-check@3.17.0: + resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + fetch-blob@2.1.2: + resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} + engines: {node: ^10.17.0 || >=12.3.0} + peerDependencies: + domexception: '*' + peerDependenciesMeta: + domexception: + optional: true + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@6.5.3: + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + github-username@6.0.0: + resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + + global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graceful-git@3.1.2: + resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} + engines: {node: '>=10'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + grouped-queue@2.0.0: + resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} + engines: {node: '>=8.0.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hasharray@1.1.2: + resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-webpack-plugin@5.6.0: + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@4.0.1: + resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} + engines: {node: '>=10'} + + ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + ini@3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + + inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + + is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-scoped@2.1.0: + resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} + engines: {node: '>=8'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + itertools@2.2.5: + resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + + jclass@1.2.1: + resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} + engines: {node: '>= 0.6'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@5.2.0: + resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + + just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} + + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.10.1: + resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} + engines: {node: '>=12'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + + mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + mem-fs-editor@9.7.0: + resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} + engines: {node: '>=12.10.0'} + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true + + mem-fs@2.3.0: + resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} + engines: {node: '>=12'} + + mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + memfs@4.8.0: + resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + engines: {node: '>= 4.0.0'} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + + micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + + micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + + micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + + micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-css-extract-plugin@2.8.1: + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-infer-owner@2.0.0: + resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} + engines: {node: '>=10'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nano-css@5.6.1: + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} + engines: {node: '>=10'} + hasBin: true + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + + next@14.1.4: + resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + + nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-registry-url@2.0.0: + resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + + npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@4.0.0: + resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} + engines: {node: '>=10'} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + + npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} + + npm-packlist@3.0.0: + resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} + engines: {node: '>=10'} + hasBin: true + + npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@6.1.1: + resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + + npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-registry-fetch@12.0.2: + resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-transform@1.3.0: + resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} + engines: {node: '>=12.10.0'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pacote@12.0.3: + resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-conflict-json@2.0.2: + resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + + parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-absolute@1.0.1: + resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} + engines: {node: '>=4'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + + path-temp@2.1.0: + resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} + engines: {node: '>=8.15'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-unused@5.1.0: + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-loader@7.3.4: + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-loader@8.1.1: + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + postcss-merge-idents@5.1.1: + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.0.0: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.4: + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.1.1: + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-idents@5.2.0: + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-sort-media-queries@4.4.1: + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss-zindex@5.1.0: + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.5.12: + resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + + pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + + print-diff@1.0.0: + resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} + engines: {node: '>=8.3'} + + printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + + prism-react-renderer@2.3.1: + resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} + peerDependencies: + react: '>=16.0.0 || 18' + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proc-log@1.0.0: + resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + + rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + + ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 + + react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-helmet-async@2.0.4: + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + react-json-view-lite@1.3.0: + resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + + react-loadable-ssr-addon-v5-slorber@1.0.1: + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' + + react-player@2.15.1: + resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} + peerDependencies: + react: '>=16.6.0 || 18' + + react-router-config@5.1.1: + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15 || 18' + react-router: '>=5' + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15 || 18' + + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15 || 18' + + react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + + react-universal-interface@0.6.2: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + + react-use@17.5.0: + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-cmd-shim@3.0.1: + resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + read-ini-file@4.0.0: + resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} + engines: {node: '>=14.6'} + + read-package-json-fast@2.0.3: + resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} + engines: {node: '>=10'} + + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-scoped-modules@1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + realpath-missing@1.1.0: + resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} + engines: {node: '>=10'} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + + right-pad@1.0.1: + resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} + engines: {node: '>= 0.10'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + + rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + + rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + sbd@1.0.19: + resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + scoped-regex@2.1.0: + resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} + engines: {node: '>=8'} + + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + socks-proxy-agent@6.1.1: + resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + engines: {node: '>= 10'} + + socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + + sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} + + sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + + ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + + stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + + stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} + + strip-bom-stream@2.0.0: + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + style-loader@3.3.4: + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + syncpack@12.3.0: + resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} + engines: {node: '>=16'} + hasBin: true + + tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + textextensions@5.16.0: + resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + engines: {node: '>=0.8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tightrope@0.1.0: + resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} + engines: {node: '>=14'} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + treeverse@1.0.4: + resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + + trie-search@2.0.0: + resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-jest@29.1.2: + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + + ts-loader@9.5.1: + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.14.0: + resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + + union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + + unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + url-loader@4.1.1: + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + + validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + + vinyl-file@3.0.0: + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} + + vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + + vscode-uri@3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + walk-up-path@1.0.0: + resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-middleware@7.1.1: + resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-dev-server@5.0.4: + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpackbar@5.0.2: + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} + + winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + + workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@5.0.0: + resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + write-yaml-file@5.0.0: + resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} + engines: {node: '>=16.14'} + + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yeoman-environment@3.19.3: + resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} + engines: {node: '>=12.10.0'} + hasBin: true + + yeoman-generator@5.10.0: + resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} + engines: {node: '>=12.10.0'} + peerDependencies: + yeoman-environment: ^3.2.0 + peerDependenciesMeta: + yeoman-environment: + optional: true + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -782,161 +9692,105 @@ packages: - '@algolia/client-search' - algoliasearch - search-insights - dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/cache-browser-local-storage@4.22.1: - resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + '@algolia/cache-browser-local-storage@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/cache-common@4.22.1: - resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} - dev: false + '@algolia/cache-common@4.22.1': {} - /@algolia/cache-in-memory@4.22.1: - resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + '@algolia/cache-in-memory@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/client-account@4.22.1: - resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + '@algolia/client-account@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-analytics@4.22.1: - resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + '@algolia/client-analytics@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-common@4.22.1: - resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + '@algolia/client-common@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-personalization@4.22.1: - resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + '@algolia/client-personalization@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-search@4.22.1: - resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + '@algolia/client-search@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/events@4.0.1: - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - dev: false + '@algolia/events@4.0.1': {} - /@algolia/logger-common@4.22.1: - resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} - dev: false + '@algolia/logger-common@4.22.1': {} - /@algolia/logger-console@4.22.1: - resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + '@algolia/logger-console@4.22.1': dependencies: '@algolia/logger-common': 4.22.1 - dev: false - /@algolia/requester-browser-xhr@4.22.1: - resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + '@algolia/requester-browser-xhr@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/requester-common@4.22.1: - resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} - dev: false + '@algolia/requester-common@4.22.1': {} - /@algolia/requester-node-http@4.22.1: - resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + '@algolia/requester-node-http@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/transporter@4.22.1: - resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + '@algolia/transporter@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 '@algolia/logger-common': 4.22.1 '@algolia/requester-common': 4.22.1 - dev: false - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true + '@alloc/quick-lru@5.2.0': {} - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - /@babel/compat-data@7.24.1: - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.1': {} - /@babel/core@7.24.3: - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} + '@babel/core@7.24.3': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 @@ -956,30 +9810,22 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.1: - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} + '@babel/generator@7.24.1': dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: '@babel/types': 7.24.0 - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 @@ -987,11 +9833,7 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1004,21 +9846,14 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1029,40 +9864,26 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.22.20': {} - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.3': dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1071,79 +9892,51 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.0': {} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.22.6': dependencies: '@babel/types': 7.24.0 - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.1': {} - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': {} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': {} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helpers@7.24.1: - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.1': dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 @@ -1151,252 +9944,151 @@ packages: transitivePeerDependencies: - supports-color - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/parser@7.24.1: - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true + '@babel/parser@7.24.1': dependencies: '@babel/types': 7.24.0 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1404,61 +10096,37 @@ packages: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1470,159 +10138,95 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-hoist-variables': 7.22.5 @@ -1630,60 +10234,36 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1691,61 +10271,37 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1753,47 +10309,27 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1802,40 +10338,24 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 @@ -1846,59 +10366,34 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1906,50 +10401,30 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/preset-env@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -2035,21 +10510,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2059,11 +10527,7 @@ packages: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2072,34 +10536,24 @@ packages: '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + '@babel/regjsgen@0.8.0': {} - /@babel/runtime-corejs3@7.24.1: - resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} - engines: {node: '>=6.9.0'} + '@babel/runtime-corejs3@7.24.1': dependencies: core-js-pure: 3.36.1 regenerator-runtime: 0.14.1 - dev: false - /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} - engines: {node: '>=6.9.0'} + '@babel/runtime@7.24.1': dependencies: regenerator-runtime: 0.14.1 - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.1': dependencies: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 @@ -2114,67 +10568,34 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + '@babel/types@7.24.0': dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true + '@bcoe/v8-coverage@0.2.3': {} - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: false + '@colors/colors@1.5.0': optional: true - /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + '@colors/colors@1.6.0': {} - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true - /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.3': dependencies: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + '@discoveryjs/json-ext@0.5.7': {} - /@docsearch/css@3.6.0: - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - dev: false + '@docsearch/css@3.6.0': {} - /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true + '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -2186,15 +10607,8 @@ packages: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - dev: false - /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -2249,7 +10663,7 @@ packages: react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0) react-router: 5.3.4(react@18.2.0) react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) @@ -2285,32 +10699,20 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/cssnano-preset@3.1.1: - resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} - engines: {node: '>=18.0'} + '@docusaurus/cssnano-preset@3.1.1': dependencies: cssnano-preset-advanced: 5.3.10(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 4.4.1(postcss@8.4.38) tslib: 2.6.2 - dev: false - /@docusaurus/logger@3.1.1: - resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} - engines: {node: '>=18.0'} + '@docusaurus/logger@3.1.1': dependencies: chalk: 4.1.2 tslib: 2.6.2 - dev: false - /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 @@ -2347,13 +10749,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} - peerDependencies: - react: '*' - react-dom: '*' + '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2364,7 +10761,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' transitivePeerDependencies: - '@swc/core' - esbuild @@ -2372,12 +10769,7 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2415,14 +10807,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2458,14 +10844,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2494,14 +10874,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2528,14 +10902,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2560,14 +10928,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2593,14 +10955,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2625,14 +10981,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2662,14 +11012,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2706,23 +11050,14 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/react-loadable@5.5.2(react@18.2.0): - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' + '@docusaurus/react-loadable@5.5.2(react@18.2.0)': dependencies: '@types/react': 18.2.71 prop-types: 15.8.1 react: 18.2.0 - /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2769,14 +11104,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2813,14 +11142,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2861,22 +11184,13 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - patched: true - /@docusaurus/theme-translations@3.1.1: - resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} - engines: {node: '>=18.0'} + '@docusaurus/theme-translations@3.1.1': dependencies: fs-extra: 11.2.0 tslib: 2.6.2 - dev: false - /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -2896,22 +11210,12 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1): - resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)': dependencies: '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 - dev: false - /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} - engines: {node: '>=18.0'} + '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2) @@ -2925,16 +11229,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2960,232 +11256,97 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0): - resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} - peerDependencies: - effect: 2.0.0-next.62 - fast-check: ^3.13.2 + '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)': dependencies: effect: 2.0.0-next.62 fast-check: 3.15.0 - dev: true - /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0): - resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} - engines: {node: '>=10.13.0'} - peerDependencies: - html-webpack-plugin: '>=5' - webpack: '>=5' + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)': dependencies: escape-string-regexp: 4.0.0 html-webpack-plugin: 5.6.0(webpack@5.91.0) slash: 3.0.0 source-map-url: 0.4.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /@esbuild/aix-ppc64@0.20.2: - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true + '@esbuild/aix-ppc64@0.20.2': optional: true - /@esbuild/android-arm64@0.20.2: - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@esbuild/android-arm64@0.20.2': optional: true - /@esbuild/android-arm@0.20.2: - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.20.2': optional: true - /@esbuild/android-x64@0.20.2: - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + '@esbuild/android-x64@0.20.2': optional: true - /@esbuild/darwin-arm64@0.20.2: - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-arm64@0.20.2': optional: true - /@esbuild/darwin-x64@0.20.2: - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-x64@0.20.2': optional: true - /@esbuild/freebsd-arm64@0.20.2: - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-arm64@0.20.2': optional: true - /@esbuild/freebsd-x64@0.20.2: - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-x64@0.20.2': optional: true - /@esbuild/linux-arm64@0.20.2: - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm64@0.20.2': optional: true - /@esbuild/linux-arm@0.20.2: - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm@0.20.2': optional: true - /@esbuild/linux-ia32@0.20.2: - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + '@esbuild/linux-ia32@0.20.2': optional: true - /@esbuild/linux-loong64@0.20.2: - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.20.2': optional: true - /@esbuild/linux-mips64el@0.20.2: - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + '@esbuild/linux-mips64el@0.20.2': optional: true - /@esbuild/linux-ppc64@0.20.2: - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ppc64@0.20.2': optional: true - /@esbuild/linux-riscv64@0.20.2: - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@esbuild/linux-riscv64@0.20.2': optional: true - /@esbuild/linux-s390x@0.20.2: - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + '@esbuild/linux-s390x@0.20.2': optional: true - /@esbuild/linux-x64@0.20.2: - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + '@esbuild/linux-x64@0.20.2': optional: true - /@esbuild/netbsd-x64@0.20.2: - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + '@esbuild/netbsd-x64@0.20.2': optional: true - /@esbuild/openbsd-x64@0.20.2: - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + '@esbuild/openbsd-x64@0.20.2': optional: true - /@esbuild/sunos-x64@0.20.2: - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + '@esbuild/sunos-x64@0.20.2': optional: true - /@esbuild/win32-arm64@0.20.2: - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@esbuild/win32-arm64@0.20.2': optional: true - /@esbuild/win32-ia32@0.20.2: - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@esbuild/win32-ia32@0.20.2': optional: true - /@esbuild/win32-x64@0.20.2: - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + '@esbuild/win32-x64@0.20.2': optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.10.0': {} - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -3199,62 +11360,35 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@8.57.0': {} - /@fortawesome/fontawesome-common-types@6.5.1: - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} - engines: {node: '>=6'} - requiresBuild: true - dev: false + '@fortawesome/fontawesome-common-types@6.5.1': {} - /@fortawesome/fontawesome-svg-core@6.5.1: - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/fontawesome-svg-core@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/free-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/free-solid-svg-icons@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} - peerDependencies: - '@fortawesome/fontawesome-svg-core': ~1 || ~6 - react: '>=16.3 || 18' + '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)': dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 prop-types: 15.8.1 react: 18.2.0 - dev: false - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@gar/promisify@1.1.3': {} - /@gwhitney/detect-indent@7.0.1: - resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} - engines: {node: '>=12.20'} - dev: true + '@gwhitney/detect-indent@7.0.1': {} - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + '@hapi/hoek@9.3.0': {} - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hapi/topo@5.1.0': dependencies: '@hapi/hoek': 9.3.0 - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -3262,46 +11396,32 @@ packages: transitivePeerDependencies: - supports-color - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + '@humanwhocodes/module-importer@1.0.1': {} - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + '@humanwhocodes/object-schema@2.0.2': {} - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@isaacs/string-locale-compare@1.1.0: - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + '@isaacs/string-locale-compare@1.1.0': {} - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 - dev: true - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true + '@istanbuljs/schema@0.1.3': {} - /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -3309,16 +11429,8 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - dev: true - /@jest/core@29.7.0(ts-node@10.9.2): - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/core@29.7.0(ts-node@10.9.2)': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -3352,38 +11464,26 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-mock: 29.7.0 - dev: true - /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 - dev: true - /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -3391,11 +11491,8 @@ packages: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -3403,16 +11500,8 @@ packages: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -3440,46 +11529,32 @@ packages: v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 - /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - dev: true - /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@29.7.0': dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - dev: true - /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@29.7.0': dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 - dev: true - /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.24.3 '@jest/types': 29.6.3 @@ -3498,11 +11573,8 @@ packages: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color - dev: true - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 @@ -3511,61 +11583,44 @@ packages: '@types/yargs': 17.0.32 chalk: 4.1.2 - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': {} - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': {} - /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.4.15': {} - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + '@leichtgewicht/ip-codec@2.0.4': {} - /@mdx-js/loader@3.0.1(webpack@5.91.0): - resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} - peerDependencies: - webpack: '>=5' + '@mdx-js/loader@3.0.1(webpack@5.91.0)': dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color - dev: false - /@mdx-js/mdx@3.0.1: - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + '@mdx-js/mdx@3.0.1': dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -3593,150 +11648,66 @@ packages: transitivePeerDependencies: - supports-color - /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0): - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16 || 18' + '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)': dependencies: '@types/mdx': 2.0.12 '@types/react': 18.2.71 react: 18.2.0 - dev: false - /@msgpack/msgpack@2.8.0: - resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} - engines: {node: '>= 10'} + '@msgpack/msgpack@2.8.0': {} - /@next/env@14.1.4: - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - dev: false + '@next/env@14.1.4': {} - /@next/eslint-plugin-next@14.1.4: - resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + '@next/eslint-plugin-next@14.1.4': dependencies: glob: 10.3.10 - dev: true - /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1): - resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} - peerDependencies: - '@mdx-js/loader': '>=0.15.0' - '@mdx-js/react': '>=0.15.0' - peerDependenciesMeta: - '@mdx-js/loader': - optional: true - '@mdx-js/react': - optional: true + '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)': dependencies: '@mdx-js/loader': 3.0.1(webpack@5.91.0) '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0) source-map: 0.7.4 - dev: false - /@next/swc-darwin-arm64@14.1.4: - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-arm64@14.1.4': optional: true - /@next/swc-darwin-x64@14.1.4: - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-x64@14.1.4': optional: true - /@next/swc-linux-arm64-gnu@14.1.4: - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-gnu@14.1.4': optional: true - /@next/swc-linux-arm64-musl@14.1.4: - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-musl@14.1.4': optional: true - /@next/swc-linux-x64-gnu@14.1.4: - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-gnu@14.1.4': optional: true - /@next/swc-linux-x64-musl@14.1.4: - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-musl@14.1.4': optional: true - /@next/swc-win32-arm64-msvc@14.1.4: - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-arm64-msvc@14.1.4': optional: true - /@next/swc-win32-ia32-msvc@14.1.4: - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-ia32-msvc@14.1.4': optional: true - /@next/swc-win32-x64-msvc@14.1.4: - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-x64-msvc@14.1.4': optional: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@npmcli/arborist@4.3.1: - resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + '@npmcli/arborist@4.3.1': dependencies: '@isaacs/string-locale-compare': 1.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -3774,27 +11745,21 @@ packages: - bluebird - supports-color - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@2.1.2: - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/fs@3.1.0': dependencies: semver: 7.6.0 - /@npmcli/git@2.1.0: - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + '@npmcli/git@2.1.0': dependencies: '@npmcli/promise-spawn': 1.3.2 lru-cache: 6.0.0 @@ -3807,9 +11772,7 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/git@4.1.0: - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 lru-cache: 7.18.3 @@ -3822,34 +11785,24 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/installed-package-contents@1.0.7: - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} - engines: {node: '>= 10'} - hasBin: true + '@npmcli/installed-package-contents@1.0.7': dependencies: npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /@npmcli/installed-package-contents@2.0.2: - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + '@npmcli/installed-package-contents@2.0.2': dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - /@npmcli/map-workspaces@2.0.4: - resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/map-workspaces@2.0.4': dependencies: '@npmcli/name-from-folder': 1.0.1 glob: 8.1.0 minimatch: 5.1.6 read-package-json-fast: 2.0.3 - /@npmcli/metavuln-calculator@2.0.0: - resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + '@npmcli/metavuln-calculator@2.0.0': dependencies: cacache: 15.3.0 json-parse-even-better-errors: 2.3.1 @@ -3859,50 +11812,35 @@ packages: - bluebird - supports-color - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@1.1.2': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/move-file@2.0.1: - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@2.0.1': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/name-from-folder@1.0.1: - resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + '@npmcli/name-from-folder@1.0.1': {} - /@npmcli/node-gyp@1.0.3: - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + '@npmcli/node-gyp@1.0.3': {} - /@npmcli/node-gyp@3.0.0: - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/node-gyp@3.0.0': {} - /@npmcli/package-json@1.0.1: - resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + '@npmcli/package-json@1.0.1': dependencies: json-parse-even-better-errors: 2.3.1 - /@npmcli/promise-spawn@1.3.2: - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + '@npmcli/promise-spawn@1.3.2': dependencies: infer-owner: 1.0.4 - /@npmcli/promise-spawn@6.0.2: - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/promise-spawn@6.0.2': dependencies: which: 3.0.1 - /@npmcli/run-script@2.0.0: - resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + '@npmcli/run-script@2.0.0': dependencies: '@npmcli/node-gyp': 1.0.3 '@npmcli/promise-spawn': 1.3.2 @@ -3912,9 +11850,7 @@ packages: - bluebird - supports-color - /@npmcli/run-script@6.0.2: - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/run-script@6.0.2': dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 @@ -3925,13 +11861,11 @@ packages: - bluebird - supports-color - /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + '@octokit/auth-token@2.5.0': dependencies: '@octokit/types': 6.41.0 - /@octokit/core@3.6.0: - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + '@octokit/core@3.6.0': dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -3943,15 +11877,13 @@ packages: transitivePeerDependencies: - encoding - /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + '@octokit/endpoint@6.0.12': dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - /@octokit/graphql@4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + '@octokit/graphql@4.8.0': dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -3959,42 +11891,30 @@ packages: transitivePeerDependencies: - encoding - /@octokit/openapi-types@12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + '@octokit/openapi-types@12.11.0': {} - /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} - peerDependencies: - '@octokit/core': '>=2' + '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 - /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 - /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 deprecation: 2.3.1 - /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + '@octokit/request-error@2.1.0': dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 once: 1.4.0 - /@octokit/request@5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + '@octokit/request@5.6.3': dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -4005,8 +11925,7 @@ packages: transitivePeerDependencies: - encoding - /@octokit/rest@18.12.0: - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + '@octokit/rest@18.12.0': dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -4015,30 +11934,19 @@ packages: transitivePeerDependencies: - encoding - /@octokit/types@6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + '@octokit/types@6.41.0': dependencies: '@octokit/openapi-types': 12.11.0 - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true + '@pkgjs/parseargs@0.11.0': optional: true - /@pnpm/cli-meta@5.0.1: - resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} - engines: {node: '>=16.14'} + '@pnpm/cli-meta@5.0.1': dependencies: '@pnpm/types': 9.1.0 load-json-file: 6.2.0 - dev: true - /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-meta': 5.0.1 '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) @@ -4051,15 +11959,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 load-json-file: 6.2.0 - dev: true - /@pnpm/config.env-replace@1.1.0: - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} + '@pnpm/config.env-replace@1.1.0': {} - /@pnpm/config@18.4.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} - engines: {node: '>=16.14'} + '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/constants': 7.1.0 @@ -4079,80 +11982,44 @@ packages: normalize-registry-url: 2.0.0 path-absolute: 1.0.1 path-name: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' read-ini-file: 4.0.0 realpath-missing: 1.1.0 which: 3.0.1 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/constants@6.2.0: - resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} - engines: {node: '>=14.6'} - dev: false + '@pnpm/constants@6.2.0': {} - /@pnpm/constants@7.1.0: - resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.0': {} - /@pnpm/constants@7.1.1: - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.1': {} - /@pnpm/constants@8.0.0: - resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/constants@8.0.0': {} - /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 10.0.0 - dev: false - /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/crypto.base32-hash@3.0.0: - resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} - engines: {node: '>=18.12'} + '@pnpm/crypto.base32-hash@3.0.0': dependencies: rfc4648: 1.5.3 - dev: false - /@pnpm/dedupe.issues-renderer@1.0.0: - resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} - engines: {node: '>=16.14'} + '@pnpm/dedupe.issues-renderer@1.0.0': dependencies: '@pnpm/dedupe.types': 1.0.0 archy: 1.0.0 chalk: 4.1.2 - dev: true - /@pnpm/dedupe.types@1.0.0: - resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/dedupe.types@1.0.0': {} - /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) @@ -4168,57 +12035,37 @@ packages: normalize-path: 3.0.0 pretty-bytes: 5.6.0 pretty-ms: 7.0.1 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' right-pad: 1.0.1 rxjs: 7.8.1 semver: 7.6.0 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 - dev: true - /@pnpm/dependency-path@3.0.0: - resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} - engines: {node: '>=18.12'} + '@pnpm/dependency-path@3.0.0': dependencies: '@pnpm/crypto.base32-hash': 3.0.0 '@pnpm/types': 10.0.0 semver: 7.6.0 - dev: false - /@pnpm/error@4.0.1: - resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} - engines: {node: '>=14.6'} + '@pnpm/error@4.0.1': dependencies: '@pnpm/constants': 6.2.0 - dev: false - /@pnpm/error@5.0.1: - resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.1': dependencies: '@pnpm/constants': 7.1.0 - dev: true - /@pnpm/error@5.0.3: - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.3': dependencies: '@pnpm/constants': 7.1.1 - dev: true - /@pnpm/error@6.0.0: - resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} - engines: {node: '>=18.12'} + '@pnpm/error@6.0.0': dependencies: '@pnpm/constants': 8.0.0 - dev: false - /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0) '@pnpm/fetching-types': 6.0.0 @@ -4226,42 +12073,30 @@ packages: '@pnpm/network.agent': 1.0.1 '@pnpm/types': 10.0.0 '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/fetcher-base@14.0.1: - resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} - engines: {node: '>=16.14'} + '@pnpm/fetcher-base@14.0.1': dependencies: '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 '@types/ssri': 7.1.5 - dev: true - /@pnpm/fetching-types@6.0.0: - resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} - engines: {node: '>=18.12'} + '@pnpm/fetching-types@6.0.0': dependencies: '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - dev: false - /@pnpm/find-workspace-dir@6.0.3: - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-dir@6.0.3': dependencies: '@pnpm/error': 5.0.3 find-up: 5.0.0 - dev: true - /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0) '@pnpm/constants': 7.1.0 @@ -4271,75 +12106,49 @@ packages: read-yaml-file: 2.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/fs.find-packages@2.0.1: - resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} - engines: {node: '>=16.14'} + '@pnpm/fs.find-packages@2.0.1': dependencies: '@pnpm/read-project-manifest': 5.0.1 '@pnpm/types': 9.1.0 '@pnpm/util.lex-comparator': 1.0.0 fast-glob: 3.3.2 p-filter: 2.1.0 - dev: true - /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} - engines: {node: '>=18.12'} + '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0) '@pnpm/resolver-base': 12.0.0 graceful-git: 3.1.2 - hosted-git-info: /@pnpm/hosted-git-info@1.0.0 + hosted-git-info: '@pnpm/hosted-git-info@1.0.0' semver: 7.6.0 transitivePeerDependencies: - '@pnpm/logger' - domexception - supports-color - dev: false - /@pnpm/git-utils@1.0.0: - resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} - engines: {node: '>=16.14'} + '@pnpm/git-utils@1.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: true + execa: safe-execa@0.1.2 - /@pnpm/git-utils@2.0.0: - resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} - engines: {node: '>=18.12'} + '@pnpm/git-utils@2.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: false + execa: safe-execa@0.1.2 - /@pnpm/graceful-fs@3.0.0: - resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} - engines: {node: '>=16.14'} + '@pnpm/graceful-fs@3.0.0': dependencies: graceful-fs: 4.2.11 - dev: true - /@pnpm/hooks.types@1.0.1: - resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} - engines: {node: '>=16.14'} + '@pnpm/hooks.types@1.0.1': dependencies: '@pnpm/lockfile-types': 5.1.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/hosted-git-info@1.0.0: - resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} - engines: {node: '>=10'} + '@pnpm/hosted-git-info@1.0.0': dependencies: lru-cache: 6.0.0 - dev: false - /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/constants': 8.0.0 '@pnpm/dependency-path': 3.0.0 @@ -4354,9 +12163,9 @@ packages: '@pnpm/util.lex-comparator': 3.0.0 '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 - js-yaml: /@zkochan/js-yaml@0.0.7 + js-yaml: '@zkochan/js-yaml@0.0.7' normalize-path: 3.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 sort-keys: 4.2.0 strip-bom: 4.0.0 @@ -4364,25 +12173,16 @@ packages: transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/lockfile-types@5.1.0: - resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} - engines: {node: '>=16.14'} + '@pnpm/lockfile-types@5.1.0': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/lockfile-types@6.0.0: - resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-types@6.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/lockfile-utils@10.0.0: - resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-utils@10.0.0': dependencies: '@pnpm/dependency-path': 3.0.0 '@pnpm/lockfile-types': 6.0.0 @@ -4390,48 +12190,33 @@ packages: '@pnpm/resolver-base': 12.0.0 '@pnpm/types': 10.0.0 get-npm-tarball-url: 2.1.0 - ramda: /@pnpm/ramda@0.28.1 - dev: false + ramda: '@pnpm/ramda@0.28.1' - /@pnpm/logger@5.0.0: - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} + '@pnpm/logger@5.0.0': dependencies: bole: 5.0.11 ndjson: 2.0.0 - /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} - engines: {node: '>=16.14'} + '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/types': 9.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/matcher@5.0.0: - resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} - engines: {node: '>=16.14'} + '@pnpm/matcher@5.0.0': dependencies: escape-string-regexp: 4.0.0 - dev: true - /@pnpm/merge-lockfile-changes@6.0.0: - resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} - engines: {node: '>=18.12'} + '@pnpm/merge-lockfile-changes@6.0.0': dependencies: '@pnpm/lockfile-types': 6.0.0 comver-to-semver: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 - dev: false - /@pnpm/meta-updater@1.0.0: - resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} - engines: {node: '>=10.12'} - hasBin: true + '@pnpm/meta-updater@1.0.0': dependencies: '@pnpm/find-workspace-dir': 6.0.3 '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0) @@ -4442,11 +12227,8 @@ packages: print-diff: 1.0.0 ramda: 0.29.1 write-json-file: 5.0.0 - dev: true - /@pnpm/network.agent@1.0.1: - resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} - engines: {node: '>=12.22.0'} + '@pnpm/network.agent@1.0.1': dependencies: '@pnpm/network.config': 1.0.1 '@pnpm/network.proxy-agent': 1.0.1 @@ -4454,24 +12236,16 @@ packages: lru-cache: 7.10.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.ca-file@1.0.2': dependencies: graceful-fs: 4.2.10 - /@pnpm/network.config@1.0.1: - resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.config@1.0.1': dependencies: nerf-dart: 1.0.0 - dev: false - /@pnpm/network.proxy-agent@1.0.1: - resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.proxy-agent@1.0.1': dependencies: '@pnpm/error': 4.0.1 http-proxy-agent: 5.0.0 @@ -4480,62 +12254,40 @@ packages: socks-proxy-agent: 6.1.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/node-fetch@1.0.0: - resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} - engines: {node: ^10.17 || >=12.3} + '@pnpm/node-fetch@1.0.0': dependencies: data-uri-to-buffer: 3.0.1 fetch-blob: 2.1.2 transitivePeerDependencies: - domexception - dev: false - /@pnpm/npm-conf@2.2.0: - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.0': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: true - /@pnpm/npm-conf@2.2.2: - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: false - /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 detect-libc: 2.0.3 - execa: /safe-execa@0.1.2 + execa: safe-execa@0.1.2 mem: 8.1.1 semver: 7.6.0 - dev: true - /@pnpm/pick-fetcher@3.0.0: - resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/pick-fetcher@3.0.0': {} - /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 @@ -4546,14 +12298,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 path-absolute: 1.0.1 - dev: true - /@pnpm/ramda@0.28.1: - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + '@pnpm/ramda@0.28.1': {} - /@pnpm/read-project-manifest@5.0.1: - resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} - engines: {node: '>=16.14'} + '@pnpm/read-project-manifest@5.0.1': dependencies: '@gwhitney/detect-indent': 7.0.1 '@pnpm/error': 5.0.1 @@ -4568,116 +12316,69 @@ packages: read-yaml-file: 2.1.0 sort-keys: 4.2.0 strip-bom: 4.0.0 - dev: true - /@pnpm/render-peer-issues@4.0.1: - resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} - engines: {node: '>=16.14'} + '@pnpm/render-peer-issues@4.0.1': dependencies: '@pnpm/types': 9.1.0 archy: 1.0.0 chalk: 4.1.2 cli-columns: 4.0.0 - dev: true - /@pnpm/resolver-base@10.0.1: - resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} - engines: {node: '>=16.14'} + '@pnpm/resolver-base@10.0.1': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/resolver-base@12.0.0: - resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} - engines: {node: '>=18.12'} + '@pnpm/resolver-base@12.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/store-controller-types@15.0.1: - resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} - engines: {node: '>=16.14'} + '@pnpm/store-controller-types@15.0.1': dependencies: '@pnpm/fetcher-base': 14.0.1 '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/text.comments-parser@2.0.0: - resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} - engines: {node: '>=16.14'} + '@pnpm/text.comments-parser@2.0.0': dependencies: strip-comments-strings: 1.2.0 - dev: true - /@pnpm/types@10.0.0: - resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/types@10.0.0': {} - /@pnpm/types@9.1.0: - resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.1.0': {} - /@pnpm/types@9.4.2: - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.4.2': {} - /@pnpm/util.lex-comparator@1.0.0: - resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} - engines: {node: '>=12.22.0'} - dev: true + '@pnpm/util.lex-comparator@1.0.0': {} - /@pnpm/util.lex-comparator@3.0.0: - resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/util.lex-comparator@3.0.0': {} - /@pnpm/write-project-manifest@5.0.1: - resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} - engines: {node: '>=16.14'} + '@pnpm/write-project-manifest@5.0.1': dependencies: '@pnpm/text.comments-parser': 2.0.0 '@pnpm/types': 9.1.0 json5: 2.2.3 write-file-atomic: 5.0.1 write-yaml-file: 5.0.0 - dev: true - /@polka/url@1.0.0-next.25: - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - dev: false + '@polka/url@1.0.0-next.25': {} - /@rushstack/eslint-patch@1.8.0: - resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} - dev: true + '@rushstack/eslint-patch@1.8.0': {} - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + '@sideway/formula@3.0.1': {} - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sideway/pinpoint@2.0.0': {} - /@sigstore/bundle@1.1.0: - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/bundle@1.1.0': dependencies: '@sigstore/protobuf-specs': 0.2.1 - /@sigstore/protobuf-specs@0.2.1: - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/protobuf-specs@0.2.1': {} - /@sigstore/sign@1.0.0: - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/sign@1.0.0': dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -4685,210 +12386,112 @@ packages: transitivePeerDependencies: - supports-color - /@sigstore/tuf@1.0.3: - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/tuf@1.0.3': dependencies: '@sigstore/protobuf-specs': 0.2.1 tuf-js: 1.1.7 transitivePeerDependencies: - supports-color - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.27.8': {} - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: false + '@sindresorhus/is@4.6.0': {} - /@sindresorhus/is@5.6.0: - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - dev: false + '@sindresorhus/is@5.6.0': {} - /@sinonjs/commons@2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/commons@3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@10.3.0': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/fake-timers@11.2.2: - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + '@sinonjs/fake-timers@11.2.2': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/samsam@8.0.0: - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + '@sinonjs/samsam@8.0.0': dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 - dev: true - /@sinonjs/text-encoding@0.7.2: - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - dev: true + '@sinonjs/text-encoding@0.7.2': {} - /@slorber/remark-comment@1.0.0: - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + '@slorber/remark-comment@1.0.0': dependencies: micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 - dev: false - /@slorber/static-site-generator-webpack-plugin@4.0.7: - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} + '@slorber/static-site-generator-webpack-plugin@4.0.7': dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-preset@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3) @@ -4899,13 +12502,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3) - dev: false - /@svgr/babel-preset@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3) @@ -4916,11 +12514,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) - dev: true - /@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} + '@svgr/core@6.5.1': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4929,11 +12524,8 @@ packages: cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color - dev: false - /@svgr/core@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + '@svgr/core@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4943,29 +12535,18 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@6.5.1': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: false - /@svgr/hast-util-to-babel-ast@8.0.0: - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: true - /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4974,13 +12555,8 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false - /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4989,25 +12565,15 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: true - /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 deepmerge: 4.3.1 svgo: 2.8.0 - dev: false - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3): - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)': dependencies: '@svgr/core': 8.1.0(typescript@5.4.3) cosmiconfig: 8.3.6(typescript@5.4.3) @@ -5015,11 +12581,8 @@ packages: svgo: 3.2.0 transitivePeerDependencies: - typescript - dev: true - /@svgr/webpack@6.5.1: - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} + '@svgr/webpack@6.5.1': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5031,11 +12594,8 @@ packages: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color - dev: false - /@svgr/webpack@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} + '@svgr/webpack@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5048,24 +12608,16 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/helpers@0.5.2': dependencies: tslib: 2.6.2 - dev: false - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 - dev: false - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@testing-library/dom@9.3.4': dependencies: '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 @@ -5075,504 +12627,342 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - dev: true - /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.1 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} + '@tootallnate/once@1.1.2': {} - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + '@tootallnate/once@2.0.0': {} - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} + '@trysound/sax@0.2.0': {} - /@tsconfig/docusaurus@2.0.2: - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - dev: true + '@tsconfig/docusaurus@2.0.2': {} - /@tsconfig/node10@1.0.10: - resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} - dev: true + '@tsconfig/node10@1.0.10': {} - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true + '@tsconfig/node12@1.0.11': {} - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true + '@tsconfig/node14@1.0.3': {} - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true + '@tsconfig/node16@1.0.4': {} - /@tufjs/canonical-json@1.0.0: - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/canonical-json@1.0.0': {} - /@tufjs/models@1.0.4: - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/models@1.0.4': dependencies: '@tufjs/canonical-json': 1.0.0 minimatch: 9.0.3 - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 - /@types/aria-query@5.0.4: - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - dev: true + '@types/aria-query@5.0.4': {} - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 - dev: true - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.6.8': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + '@types/babel__traverse@7.20.5': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 '@types/node': 18.18.2 - /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/bonjour@3.5.13': dependencies: '@types/node': 18.18.2 - /@types/chai@4.3.14: - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/chai@4.3.14': {} - /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.17.43 '@types/node': 18.18.2 - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/connect@3.4.38': dependencies: '@types/node': 18.18.2 - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.56.6 '@types/estree': 1.0.5 - /@types/eslint@8.56.6: - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + '@types/eslint@8.56.6': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.5': {} - /@types/expect@1.20.4: - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + '@types/expect@1.20.4': {} - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + '@types/express-serve-static-core@4.17.43': dependencies: '@types/node': 18.18.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.14 '@types/serve-static': 1.15.5 - /@types/fs-extra@11.0.4: - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 '@types/node': 18.18.2 - dev: true - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.18.2 - dev: true - /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 18.18.2 - dev: true - /@types/gtag.js@0.0.12: - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - dev: false + '@types/gtag.js@0.0.12': {} - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - /@types/history@4.7.11: - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@types/history@4.7.11': {} - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + '@types/html-minifier-terser@6.1.0': {} - /@types/http-cache-semantics@4.0.4: - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - dev: false + '@types/http-cache-semantics@4.0.4': {} - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/http-errors@2.0.4': {} - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.14': dependencies: '@types/node': 18.18.2 - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@types/istanbul-lib-coverage@2.0.6': {} - /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + '@types/istanbul-lib-report@3.0.3': dependencies: '@types/istanbul-lib-coverage': 2.0.6 - /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/istanbul-reports@3.0.4': dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest@29.5.12: - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.12': dependencies: expect: 29.7.0 pretty-format: 29.7.0 - dev: true - /@types/js-cookie@2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: false + '@types/js-cookie@2.2.7': {} - /@types/js-yaml@4.0.9: - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/js-yaml@4.0.9': {} - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/jsdom@20.0.1': dependencies: '@types/node': 18.18.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 - dev: true - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/jsonfile@6.1.4: - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/jsonfile@6.1.4': dependencies: '@types/node': 18.18.2 - dev: true - /@types/lodash@4.14.181: - resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} - dev: true + '@types/lodash@4.14.181': {} - /@types/lodash@4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + '@types/lodash@4.17.0': {} - /@types/mdast@4.0.3: - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + '@types/mdast@4.0.3': dependencies: '@types/unist': 3.0.2 - /@types/mdx-js__react@1.5.8: - resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + '@types/mdx-js__react@1.5.8': dependencies: '@types/react': 18.2.71 - dev: true - /@types/mdx@2.0.12: - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + '@types/mdx@2.0.12': {} - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@types/mime@1.3.5': {} - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + '@types/mime@3.0.4': {} - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + '@types/minimatch@3.0.5': {} - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true + '@types/minimatch@5.1.2': {} - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - dev: true + '@types/minimist@1.2.5': {} - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - dev: true + '@types/mocha@10.0.6': {} - /@types/moo@0.5.9: - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - dev: true + '@types/moo@0.5.9': {} - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@0.7.34': {} - /@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae): - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - dev: true - patched: true + '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {} - /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node-forge@1.3.11': dependencies: '@types/node': 18.18.2 - /@types/node@15.14.9: - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + '@types/node@15.14.9': {} - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false + '@types/node@17.0.45': {} - /@types/node@18.18.2: - resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + '@types/node@18.18.2': {} - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/normalize-package-data@2.4.4': {} - /@types/normalize-path@3.0.2: - resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} - dev: false + '@types/normalize-path@3.0.2': {} - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false + '@types/parse-json@4.0.2': {} - /@types/prismjs@1.26.3: - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - dev: false + '@types/prismjs@1.26.3': {} - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/prop-types@15.7.12': {} - /@types/qs@6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + '@types/qs@6.9.14': {} - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/range-parser@1.2.7': {} - /@types/react-dom@18.2.22: - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + '@types/react-dom@18.2.22': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-helmet@6.1.11: - resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + '@types/react-helmet@6.1.11': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-router-config@5.0.11: - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + '@types/react-router-config@5.0.11': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router-dom@5.3.3: - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router@5.1.20: - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@types/react-router@5.1.20': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 - /@types/react@18.2.71: - resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + '@types/react@18.2.71': dependencies: '@types/prop-types': 15.7.12 '@types/scheduler': 0.23.0 csstype: 3.1.3 - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false + '@types/retry@0.12.0': {} - /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + '@types/retry@0.12.2': {} - /@types/sax@1.2.7: - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + '@types/sax@1.2.7': dependencies: '@types/node': 18.18.2 - dev: false - /@types/sbd@1.0.5: - resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} - dev: true + '@types/sbd@1.0.5': {} - /@types/scheduler@0.23.0: - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + '@types/scheduler@0.23.0': {} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + '@types/semver@7.5.8': {} - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 18.18.2 - /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + '@types/serve-static@1.15.5': dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.18.2 - /@types/sinon@17.0.3: - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + '@types/sinon@17.0.3': dependencies: '@types/sinonjs__fake-timers': 8.1.5 - /@types/sinonjs__fake-timers@8.1.5: - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + '@types/sinonjs__fake-timers@8.1.5': {} - /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@types/sockjs@0.3.36': dependencies: '@types/node': 18.18.2 - /@types/ssri@7.1.5: - resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + '@types/ssri@7.1.5': dependencies: '@types/node': 18.18.2 - dev: true - /@types/stack-utils@2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - dev: true + '@types/stack-utils@2.0.3': {} - /@types/tinycolor2@1.4.6: - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - dev: true + '@types/tinycolor2@1.4.6': {} - /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - dev: true + '@types/tough-cookie@4.0.5': {} - /@types/triple-beam@1.3.5: - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + '@types/triple-beam@1.3.5': {} - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.10': {} - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/unist@3.0.2': {} - /@types/uuid@8.3.4: - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: true + '@types/uuid@8.3.4': {} - /@types/uuid@9.0.8: - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/uuid@9.0.8': {} - /@types/vinyl@2.0.11: - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + '@types/vinyl@2.0.11': dependencies: '@types/expect': 1.20.4 '@types/node': 18.18.2 - /@types/vscode@1.75.1: - resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} - dev: true + '@types/vscode@1.75.1': {} - /@types/vscode@1.88.0: - resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} - dev: false + '@types/vscode@1.88.0': {} - /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)': dependencies: '@types/node': 18.18.2 tapable: 2.2.1 @@ -5582,31 +12972,18 @@ packages: - esbuild - uglify-js - webpack-cli - dev: true - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.10': dependencies: '@types/node': 18.18.2 - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@types/yargs-parser@21.0.3': {} - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.32': dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5624,17 +13001,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -5645,17 +13013,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 @@ -5666,33 +13025,18 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - /@typescript-eslint/scope-manager@7.4.0: - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 - dev: true - /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5702,26 +13046,12 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@6.21.0': {} - /@typescript-eslint/types@7.4.0: - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - dev: true + '@typescript-eslint/types@7.4.0': {} - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -5734,16 +13064,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 @@ -5756,13 +13078,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -5775,30 +13092,20 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@7.4.0: - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 - dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.2.0': {} - /@vscode/test-electron@2.3.9: - resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} - engines: {node: '>=16'} + '@vscode/test-electron@2.3.9': dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -5806,56 +13113,44 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /@webassemblyjs/ast@1.12.1: - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.11.6': {} - /@webassemblyjs/helper-buffer@1.12.1: - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.12.1': {} - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.11.6': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - /@webassemblyjs/helper-wasm-section@1.12.1: - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.11.6': {} - /@webassemblyjs/wasm-edit@1.12.1: - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -5866,8 +13161,7 @@ packages: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - /@webassemblyjs/wasm-gen@1.12.1: - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -5875,16 +13169,14 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wasm-opt@1.12.1: - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - /@webassemblyjs/wasm-parser@1.12.1: - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -5893,32 +13185,17 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wast-printer@1.12.1: - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - - /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} - engines: {node: '>=14.15.0'} - peerDependencies: - prettier: '*' - webpack: 5.x.x - webpack-cli: 5.x.x - peerDependenciesMeta: - prettier: - optional: true + webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) + + '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: prettier: 3.2.5 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) @@ -5931,207 +13208,125 @@ packages: - mem-fs - supports-color - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - /@xobotyi/scrollbar-width@1.9.5: - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - dev: false + '@xobotyi/scrollbar-width@1.9.5': {} - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@xtuc/ieee754@1.2.0': {} - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@xtuc/long@4.2.2': {} - /@zkochan/js-yaml@0.0.7: - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true + '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 - dev: false - /@zkochan/retry@0.2.0: - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - dev: false + '@zkochan/retry@0.2.0': {} - /@zkochan/rimraf@2.1.3: - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} + '@zkochan/rimraf@2.1.3': dependencies: rimraf: 3.0.2 - dev: false - /@zkochan/which@2.0.3: - resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} - engines: {node: '>= 8'} - hasBin: true + '@zkochan/which@2.0.3': dependencies: isexe: 2.0.0 - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - dev: true + abab@2.0.6: {} - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@1.1.1: {} - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-globals@7.0.1: dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 + acorn-import-assertions@1.9.0(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + acorn-walk@8.3.2: {} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@8.11.3: {} - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: false + address@1.2.2: {} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + agent-base@6.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.2.1: dependencies: debug: 4.3.4(supports-color@8.1.1) depd: 1.1.2 humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: false - /agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + ajv-formats@2.1.1(ajv@8.12.0): dependencies: ajv: 8.12.0 - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + ajv-keywords@5.1.0(ajv@8.12.0): dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - /algoliasearch-helper@3.16.3(algoliasearch@4.22.1): - resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' + algoliasearch-helper@3.16.3(algoliasearch@4.22.1): dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.22.1 - dev: false - /algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + algoliasearch@4.22.1: dependencies: '@algolia/cache-browser-local-storage': 4.22.1 '@algolia/cache-common': 4.22.1 @@ -6147,157 +13342,96 @@ packages: '@algolia/requester-common': 4.22.1 '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-align@3.0.1: dependencies: string-width: 4.2.3 - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.1: {} - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.3: {} - /ansi-diff@1.1.1: - resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + ansi-diff@1.1.1: dependencies: ansi-split: 1.0.1 - dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true + ansi-html-community@0.0.8: {} - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true + ansi-regex@3.0.1: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + ansi-regex@6.0.1: {} - /ansi-split@1.0.1: - resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + ansi-split@1.0.1: dependencies: ansi-regex: 3.0.1 - dev: true - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true + ansi-styles@5.2.0: {} - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + ansi-styles@6.2.1: {} - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true + any-promise@1.3.0: {} - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + aproba@2.0.0: {} - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: true + archy@1.0.0: {} - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + are-we-there-yet@3.0.1: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true + arg@4.1.3: {} - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + arg@5.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argparse@2.0.1: {} - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.1.3: dependencies: deep-equal: 2.2.3 - dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.0: dependencies: dequal: 2.0.3 - dev: true - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - dev: true - /array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} + array-differ@3.0.0: {} - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-flatten@1.1.1: {} - /array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6305,15 +13439,10 @@ packages: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array-union@2.1.0: {} - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6321,11 +13450,8 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6333,50 +13459,37 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + array.prototype.tosorted@1.1.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -6386,63 +13499,34 @@ packages: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true + arrify@1.0.1: {} - /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + arrify@2.0.1: {} - /as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + as-table@1.0.55: dependencies: printable-characters: 1.0.42 - dev: true - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asap@2.0.6: {} - /assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - dev: true + assertion-error@2.0.1: {} - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true + ast-types-flow@0.0.8: {} - /astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true + astring@1.8.6: {} - /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + async@2.6.4: dependencies: lodash: 4.17.21 - dev: true - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.5: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + asynckit@0.4.0: {} - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: false + at-least-node@1.0.0: {} - /autoprefixer@10.4.19(postcss@8.4.38): - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 @@ -6452,29 +13536,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - dev: true - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: true + axe-core@4.7.0: {} - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.2.1: dependencies: dequal: 2.0.3 - dev: true - /babel-jest@29.7.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 + babel-jest@29.7.0(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@jest/transform': 29.7.0 @@ -6486,30 +13558,19 @@ packages: slash: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' + babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): dependencies: '@babel/core': 7.24.3 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + babel-plugin-dynamic-import-node@2.3.3: dependencies: object.assign: 4.1.5 - dev: false - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 @@ -6518,22 +13579,15 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 - dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -6542,10 +13596,7 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) @@ -6553,20 +13604,14 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) @@ -6581,55 +13626,34 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) - dev: true - /babel-preset-jest@29.6.3(@babel/core@7.24.3): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-jest@29.6.3(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3) - dev: true - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + bail@2.0.2: {} - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@1.0.2: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64-js@1.5.1: {} - /basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 - dev: true - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + batch@0.6.1: {} - /before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + before-after-hook@2.2.3: {} - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 - dev: true - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: false + big.js@5.2.2: {} - /bin-links@3.0.3: - resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + bin-links@3.0.3: dependencies: cmd-shim: 5.0.0 mkdirp-infer-owner: 2.0.0 @@ -6638,24 +13662,17 @@ packages: rimraf: 3.0.2 write-file-atomic: 4.0.2 - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + binary-extensions@2.3.0: {} - /binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} - engines: {node: '>=0.8'} + binaryextensions@4.19.0: {} - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.2: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6672,24 +13689,19 @@ packages: transitivePeerDependencies: - supports-color - /bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + bole@5.0.11: dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolbase@1.0.0: {} - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + boxen@5.1.2: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6699,11 +13711,8 @@ packages: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 - dev: true - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + boxen@6.2.1: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6713,11 +13722,8 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + boxen@7.1.1: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -6727,104 +13733,70 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true + browser-stdout@1.3.1: {} - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001600 electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 - dev: true - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + bser@2.1.1: dependencies: node-int64: 0.4.0 - dev: true - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-from@1.1.2: {} - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true + builtin-modules@3.3.0: {} - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + builtins@1.0.3: {} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + builtins@5.0.1: dependencies: semver: 7.6.0 - /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: false - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + bytes@3.0.0: {} - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + bytes@3.1.2: {} - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} + cacache@15.3.0: dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -6847,9 +13819,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cacache@16.1.3: dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -6872,9 +13842,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + cacache@17.1.4: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 @@ -6889,14 +13857,9 @@ packages: tar: 6.2.1 unique-filename: 3.0.0 - /cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - dev: false - - /cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 @@ -6905,11 +13868,8 @@ packages: mimic-response: 4.0.0 normalize-url: 8.0.1 responselike: 3.0.0 - dev: false - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -6917,133 +13877,85 @@ packages: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true + camelcase-css@2.0.1: {} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} + camelcase-keys@7.0.2: dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 - dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + camelcase@5.3.1: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + camelcase@6.3.0: {} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: false + camelcase@7.0.1: {} - /can-write-to-dir@1.1.1: - resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} - engines: {node: '>=10.13'} + can-write-to-dir@1.1.1: dependencies: path-temp: 2.1.0 - dev: true - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: false - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + caniuse-lite@1.0.30001600: {} - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + ccount@2.0.1: {} - /chai@5.1.0: - resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} - engines: {node: '>=12'} + chai@5.1.0: dependencies: assertion-error: 2.0.1 check-error: 2.0.0 deep-eql: 5.0.1 loupe: 3.1.0 pathval: 2.0.0 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: false + chalk@5.3.0: {} - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + char-regex@1.0.2: {} - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + character-entities-html4@2.1.0: {} - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities-legacy@3.0.0: {} - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-entities@2.0.2: {} - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + character-reference-invalid@2.0.1: {} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@0.7.0: {} - /check-error@2.0.0: - resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} - engines: {node: '>= 16'} - dev: true + check-error@2.0.0: {} - /cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -7051,11 +13963,8 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 - dev: false - /cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -7064,11 +13973,8 @@ packages: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 - dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7079,11 +13985,8 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7095,282 +13998,169 @@ packages: optionalDependencies: fsevents: 2.3.3 - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + chownr@2.0.0: {} - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + chrome-trace-event@1.0.3: {} - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + ci-info@3.9.0: {} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: true + ci-info@4.0.0: {} - /cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true + cjs-module-lexer@1.2.3: {} - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + clean-css@5.3.3: dependencies: source-map: 0.6.1 - /clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + clean-stack@2.2.0: {} - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: true + cli-boxes@2.2.1: {} - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + cli-boxes@3.0.0: {} - /cli-columns@4.0.0: - resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} - engines: {node: '>= 10'} + cli-columns@4.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + cli-spinners@2.9.2: {} - /cli-table3@0.6.4: - resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.4: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: false - /cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} + cli-table@0.3.11: dependencies: colors: 1.0.3 - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-width@3.0.0: {} - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false + client-only@0.0.1: {} - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} + clone-buffer@1.0.0: {} - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - /clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + clone-stats@1.0.0: {} - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + clone@1.0.4: {} - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} + clone@2.1.2: {} - /cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + cloneable-readable@1.1.3: dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 - /clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} - dev: false + clsx@2.1.0: {} - /cmd-shim@5.0.0: - resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cmd-shim@5.0.0: dependencies: mkdirp-infer-owner: 2.0.0 - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true + co@4.6.0: {} - /collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + collapse-white-space@2.1.0: {} - /collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true + collect-v8-coverage@1.0.2: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true + color-support@1.1.3: {} - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@3.2.1: dependencies: color-convert: 1.9.3 color-string: 1.9.1 - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false + colord@2.9.3: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorette@2.0.20: {} - /colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} + colors@1.0.3: {} - /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + colorspace@1.1.4: dependencies: color: 3.2.1 text-hex: 1.0.0 - /combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - dev: false + combine-promises@1.2.0: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + comma-separated-tokens@2.0.3: {} - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + commander@10.0.1: {} - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + commander@11.1.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@2.20.3: {} - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true + commander@4.1.1: {} - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + commander@5.1.0: {} - /commander@7.1.0: - resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} - engines: {node: '>= 10'} + commander@7.1.0: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + commander@7.2.0: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + commander@8.3.0: {} - /common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-ancestor-path@1.0.1: {} - /common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - dev: false + common-path-prefix@3.0.0: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + commondir@1.0.1: {} - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + compressible@2.0.18: dependencies: mime-db: 1.52.0 - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + compression@1.7.4: dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -7382,83 +14172,50 @@ packages: transitivePeerDependencies: - supports-color - /comver-to-semver@1.0.0: - resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} - engines: {node: '>=12.17'} - dev: false + comver-to-semver@1.0.0: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concat-map@0.0.1: {} - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - /configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + configstore@6.0.0: dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - dev: false - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} + connect-history-api-fallback@2.0.0: {} - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false + consola@2.15.3: {} - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + console-control-strings@1.1.0: {} - /content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: false + content-disposition@0.5.2: {} - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + content-type@1.0.5: {} - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-source-map@2.0.0: {} - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.0.6: {} - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + cookie@0.6.0: {} - /copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - dev: false + copy-text-to-clipboard@3.2.0: {} - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - dev: false - /copy-webpack-plugin@11.0.0(webpack@5.91.0): - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 + copy-webpack-plugin@11.0.0(webpack@5.91.0): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -7467,61 +14224,36 @@ packages: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.36.1: dependencies: browserslist: 4.23.0 - /core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - requiresBuild: true - dev: false + core-js-pure@3.36.1: {} - /core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - requiresBuild: true - dev: false + core-js@3.36.1: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + core-util-is@1.0.3: {} - /corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} - dev: true + corser@2.0.1: {} - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@8.3.6(typescript@5.4.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@8.3.6(typescript@5.4.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -7529,26 +14261,15 @@ packages: path-type: 4.0.0 typescript: 5.4.3 - /cosmiconfig@9.0.0(typescript@5.4.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@9.0.0(typescript@5.4.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 typescript: 5.4.3 - dev: true - /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true + create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -7562,58 +14283,30 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true + create-require@1.1.1: {} - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + crypto-random-string@2.0.0: {} - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: false - /css-declaration-sorter@6.4.1(postcss@8.4.38): - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 + css-declaration-sorter@6.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /css-in-js-utils@3.1.0: - resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + css-in-js-utils@3.1.0: dependencies: hyphenate-style-name: 1.0.4 - dev: false - /css-loader@6.10.0(webpack@5.91.0): - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + css-loader@6.10.0(webpack@5.91.0): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -7625,30 +14318,7 @@ packages: semver: 7.6.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true + css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): dependencies: clean-css: 5.3.3 cssnano: 5.1.15(postcss@8.4.38) @@ -7659,10 +14329,8 @@ packages: serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7670,8 +14338,7 @@ packages: domutils: 2.8.0 nth-check: 2.1.1 - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7679,44 +14346,26 @@ packages: domutils: 3.1.0 nth-check: 2.1.1 - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + css-tree@1.1.3: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 - dev: false - /css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 - dev: true - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 - dev: true - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + css-what@6.1.0: {} - /cssnano-preset-advanced@5.3.10(postcss@8.4.38): - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssesc@3.0.0: {} + + cssnano-preset-advanced@5.3.10(postcss@8.4.38): dependencies: autoprefixer: 10.4.19(postcss@8.4.38) cssnano-preset-default: 5.2.14(postcss@8.4.38) @@ -7725,13 +14374,8 @@ packages: postcss-merge-idents: 5.1.1(postcss@8.4.38) postcss-reduce-idents: 5.2.0(postcss@8.4.38) postcss-zindex: 5.1.0(postcss@8.4.38) - dev: false - /cssnano-preset-default@5.2.14(postcss@8.4.38): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-default@5.2.14(postcss@8.4.38): dependencies: css-declaration-sorter: 6.4.1(postcss@8.4.38) cssnano-utils: 3.1.0(postcss@8.4.38) @@ -7763,214 +14407,113 @@ packages: postcss-reduce-transforms: 5.1.0(postcss@8.4.38) postcss-svgo: 5.1.0(postcss@8.4.38) postcss-unique-selectors: 5.1.1(postcss@8.4.38) - dev: false - /cssnano-utils@3.1.0(postcss@8.4.38): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-utils@3.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /cssnano@5.1.15(postcss@8.4.38): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano@5.1.15(postcss@8.4.38): dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.38) lilconfig: 2.1.0 postcss: 8.4.38 yaml: 1.10.2 - dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + csso@4.2.0: dependencies: css-tree: 1.1.3 - dev: false - /csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csso@5.0.5: dependencies: css-tree: 2.2.1 - dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true + cssom@0.3.8: {} - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true + cssom@0.5.0: {} - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + cssstyle@2.3.0: dependencies: cssom: 0.3.8 - dev: true - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.1.3: {} - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true + damerau-levenshtein@1.0.8: {} - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + dargs@7.0.0: {} - /data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - dev: true + data-uri-to-buffer@2.0.2: {} - /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - dev: false + data-uri-to-buffer@3.0.1: {} - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + data-urls@3.0.2: dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - dev: true - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dateformat@4.6.3: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: false + debounce@1.2.1: {} - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: ms: 2.0.0 - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 supports-color: 8.1.1 - /debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + debuglog@1.0.1: {} - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true + decamelize@4.0.0: {} - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + decamelize@5.0.1: {} - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true + decimal.js@10.4.3: {} - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - dev: false - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dev: true + dedent@1.5.1: {} - /deep-eql@5.0.1: - resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} - engines: {node: '>=6'} - dev: true + deep-eql@5.0.1: {} - /deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -7990,74 +14533,47 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + deepmerge@4.3.1: {} - /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} + default-browser-id@5.0.0: {} - /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-gateway@6.0.3: dependencies: execa: 5.1.1 - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: false + defer-to-connect@2.0.1: {} - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + define-lazy-prop@2.0.0: {} - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + define-lazy-prop@3.0.0: {} - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + del@6.1.1: dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -8067,327 +14583,201 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true + delayed-stream@1.0.0: {} - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + delegates@1.0.0: {} - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} + depd@1.1.2: {} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + depd@2.0.0: {} - /deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + deprecation@2.3.1: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + dequal@2.0.3: {} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + destroy@1.2.0: {} - /detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - dev: true + detect-indent@7.0.1: {} - /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - dev: true + detect-libc@2.0.3: {} - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true + detect-newline@3.1.0: {} - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + detect-node@2.1.0: {} - /detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true + detect-port-alt@1.1.6: dependencies: address: 1.2.2 debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + detect-port@1.5.1: dependencies: address: 1.2.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: false - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devlop@1.1.0: dependencies: dequal: 2.0.3 - /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dezalgo@1.0.4: dependencies: asap: 2.0.6 wrappy: 1.0.2 - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true + didyoumean@1.2.2: {} - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + diff-sequences@29.6.3: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true + diff@4.0.2: {} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true + diff@5.0.0: {} - /diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + diff@5.2.0: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false + discontinuous-range@1.0.0: {} - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true + dlv@1.1.3: {} - /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - /dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dev: true + dom-accessibility-api@0.5.16: {} - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-converter@0.2.0: dependencies: utila: 0.4.0 - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@2.3.0: {} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead + domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - dev: true - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@6.0.1: dependencies: is-obj: 2.0.0 - dev: false - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + duplexer@0.1.2: {} - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eastasianwidth@0.2.0: {} - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ee-first@1.1.1: {} - /effect@2.0.0-next.62: - resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} - dev: true + effect@2.0.0-next.62: {} - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ejs@3.1.9: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.717: - resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + electron-to-chromium@1.4.717: {} - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true + emittery@0.13.1: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emoji-regex@9.2.2: {} - /emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: false + emojilib@2.4.0: {} - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: false + emojis-list@3.0.0: {} - /emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - dev: false + emoticon@4.0.1: {} - /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + enabled@2.0.0: {} - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + encodeurl@1.0.2: {} - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 optional: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - dev: true - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@2.2.0: {} - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + entities@4.5.0: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + env-paths@2.2.1: {} - /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true + envinfo@7.11.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + err-code@2.0.3: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 - dev: false - /error@10.4.0: - resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + error@10.4.0: {} - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} + es-abstract@1.23.2: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -8435,20 +14825,14 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + es-errors@1.3.0: {} - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-get-iterator@1.1.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -8459,11 +14843,8 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} + es-iterator-helpers@1.0.18: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -8479,47 +14860,30 @@ packages: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - dev: true - /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.0: {} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -8545,56 +14909,29 @@ packages: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + escalade@3.1.2: {} - /escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - dev: false + escape-goat@4.0.0: {} - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-html@1.0.3: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true + escape-string-regexp@2.0.0: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@4.0.0: {} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false + escape-string-regexp@5.0.0: {} - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true + escodegen@2.1.0: dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - - /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): dependencies: '@next/eslint-plugin-next': 14.1.4 '@rushstack/eslint-patch': 1.8.0 @@ -8610,33 +14947,20 @@ packages: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8652,14 +14976,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8675,28 +14993,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8705,28 +15003,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8735,17 +15013,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.8 @@ -8770,13 +15039,8 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): dependencies: '@babel/runtime': 7.24.1 aria-query: 5.3.0 @@ -8795,34 +15059,19 @@ packages: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - dev: true - /eslint-plugin-mocha@10.4.1(eslint@8.57.0): - resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-mocha@10.4.1(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) globals: 13.24.0 rambda: 7.5.0 - dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-plugin-react@7.34.1(eslint@8.57.0): - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-react@7.34.1(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8843,13 +15092,8 @@ packages: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 - dev: true - /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' + eslint-plugin-unicorn@51.0.1(eslint@8.57.0): dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -8870,65 +15114,35 @@ packages: strip-indent: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): dependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 - dev: true - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true + eslint-rule-composer@0.3.0: {} - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-utils@3.0.0(eslint@8.57.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' + eslint-utils@3.0.0(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 - dev: true - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true + eslint-visitor-keys@2.1.0: {} - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@3.4.3: {} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -8971,116 +15185,77 @@ packages: transitivePeerDependencies: - supports-color - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.5 - /estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-util-is-identifier-name@3.0.0: {} - /estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - /estree-util-value-to-estree@3.0.1: - resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} - engines: {node: '>=16.0.0'} + estree-util-value-to-estree@3.0.1: dependencies: '@types/estree': 1.0.5 is-plain-obj: 4.1.0 - dev: false - /estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - dev: false + eta@2.2.0: {} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + etag@1.8.1: {} - /eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} + eval@0.1.8: dependencies: '@types/node': 18.18.2 require-like: 0.1.2 - dev: false - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + event-target-shim@5.0.1: {} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@4.0.7: {} - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + events@3.3.0: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -9092,28 +15267,19 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true + exit@0.1.2: {} - /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 - dev: true - /exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + exponential-backoff@3.1.1: {} - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + express@4.19.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -9149,44 +15315,29 @@ packages: transitivePeerDependencies: - supports-color - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 - dev: false - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extend@3.0.2: {} - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - /fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} + fast-check@3.15.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-check@3.17.0: - resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} - engines: {node: '>=8.0.0'} + fast-check@3.17.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -9194,129 +15345,77 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fast-loops@1.1.3: - resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} - dev: false + fast-loops@1.1.3: {} - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-safe-stringify@2.1.1: {} - /fast-shallow-equal@1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - dev: false + fast-shallow-equal@1.0.0: {} - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 - dev: false - /fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true + fast-xml-parser@4.3.6: dependencies: strnum: 1.0.5 - dev: true - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} + fastest-levenshtein@1.0.16: {} - /fastest-stable-stringify@2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - dev: false + fastest-stable-stringify@2.0.2: {} - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.17.1: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fault@2.0.1: dependencies: format: 0.2.2 - dev: false - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fb-watchman@2.0.2: dependencies: bser: 2.1.1 - dev: true - /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + fecha@4.2.3: {} - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} + feed@4.2.2: dependencies: xml-js: 1.6.11 - dev: false - /fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - dev: false + fetch-blob@2.1.2: {} - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - /file-loader@6.2.0(webpack@5.91.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + file-loader@6.2.0(webpack@5.91.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filelist@1.0.4: dependencies: minimatch: 5.1.6 - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - dev: false + filesize@8.0.7: {} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + finalhandler@1.2.0: dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -9328,108 +15427,63 @@ packages: transitivePeerDependencies: - supports-color - /find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} + find-cache-dir@4.0.0: dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: false - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - dev: false - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - /first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} + first-chunk-stream@2.0.0: dependencies: readable-stream: 2.3.8 - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.2.0: dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + flat@5.0.2: {} - /follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + flatted@3.3.1: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true + fn.name@1.1.0: {} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 + follow-redirects@1.15.6: {} - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -9447,102 +15501,63 @@ packages: tapable: 1.1.3 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - dev: false + form-data-encoder@2.1.4: {} - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false + format@0.2.2: {} - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + forwarded@0.2.0: {} - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@4.3.7: {} - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + fresh@0.5.2: {} - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: false - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - /fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-minipass@3.0.3: dependencies: minipass: 7.0.4 - /fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - dev: false + fs-monkey@1.0.5: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-bind@1.1.2: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9554,9 +15569,7 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + gauge@4.0.4: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9567,22 +15580,13 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-func-name@2.0.2: {} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -9590,77 +15594,48 @@ packages: has-symbols: 1.0.3 hasown: 2.0.2 - /get-npm-tarball-url@2.1.0: - resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} - engines: {node: '>=12.17'} - dev: false + get-npm-tarball-url@2.1.0: {} - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: false + get-own-enumerable-property-symbols@3.0.2: {} - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true + get-package-type@0.1.0: {} - /get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-stream@6.0.1: {} - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - dev: false + github-slugger@1.5.0: {} - /github-username@6.0.0: - resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} - engines: {node: '>=10'} + github-username@6.0.0: dependencies: '@octokit/rest': 18.12.0 transitivePeerDependencies: - encoding - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob-to-regexp@0.4.1: {} - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.10: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -9668,8 +15643,7 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9678,9 +15652,7 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9688,49 +15660,31 @@ packages: minimatch: 5.1.6 once: 1.4.0 - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + global-dirs@3.0.1: dependencies: ini: 2.0.0 - dev: false - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + global-modules@2.0.0: dependencies: global-prefix: 3.0.0 - dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + global-prefix@3.0.0: dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: false - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + globals@11.12.0: {} - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@13.24.0: dependencies: type-fest: 0.20.2 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -9739,25 +15693,19 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 - dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - /got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + got@12.6.1: dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -9770,108 +15718,66 @@ packages: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 - dev: false - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.10: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graceful-fs@4.2.11: {} - /graceful-git@3.1.2: - resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} - engines: {node: '>=10'} + graceful-git@3.1.2: dependencies: retry: 0.12.0 safe-execa: 0.1.2 - dev: false - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemer@1.4.0: {} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - dev: false - /grouped-queue@2.0.0: - resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} - engines: {node: '>=8.0.0'} + grouped-queue@2.0.0: {} - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: false - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + handle-thing@2.0.1: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + has-proto@1.0.3: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + has-unicode@2.0.1: {} - /has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + has-yarn@3.0.0: {} - /hasharray@1.1.2: - resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + hasharray@1.1.2: dependencies: jclass: 1.2.1 - dev: false - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + hast-util-from-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9881,16 +15787,12 @@ packages: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 - dev: false - /hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 - dev: false - /hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + hast-util-raw@9.0.2: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9905,10 +15807,8 @@ packages: vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + hast-util-to-estree@3.1.0: dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -9929,8 +15829,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + hast-util-to-jsx-runtime@2.3.0: dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -9950,8 +15849,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -9960,29 +15858,22 @@ packages: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + hastscript@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 - dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + he@1.2.0: {} - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + history@4.10.1: dependencies: '@babel/runtime': 7.24.1 loose-envify: 1.4.0 @@ -9990,61 +15881,41 @@ packages: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 value-equal: 1.0.1 - dev: false - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - dev: false - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@2.8.9: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hosted-git-info@6.1.1: dependencies: lru-cache: 7.18.3 - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@7.0.1: dependencies: lru-cache: 10.2.0 - dev: true - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - dev: true - /html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + html-entities@2.5.2: {} - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-escaper@2.0.2: {} - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10054,10 +15925,7 @@ packages: relateurl: 0.2.7 terser: 5.29.2 - /html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + html-minifier-terser@7.2.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10066,28 +15934,12 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.29.2 - dev: false - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: false + html-tags@3.3.1: {} - /html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - dev: false + html-void-elements@3.0.0: {} - /html-webpack-plugin@5.6.0(webpack@5.91.0): - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + html-webpack-plugin@5.6.0(webpack@5.91.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -10096,41 +15948,32 @@ packages: tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@8.0.2: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 - dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-cache-semantics@4.1.1: {} - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + http-deceiver@1.2.7: {} - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + http-errors@1.6.3: dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -10138,12 +15981,9 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + http-parser-js@0.5.8: {} - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} + http-proxy-agent@4.0.1: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -10151,9 +15991,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -10161,14 +15999,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true + http-proxy-middleware@2.0.6(@types/express@4.17.21): dependencies: '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 @@ -10179,9 +16010,7 @@ packages: transitivePeerDependencies: - debug - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 @@ -10189,10 +16018,7 @@ packages: transitivePeerDependencies: - debug - /http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true + http-server@14.1.1: dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -10210,187 +16036,112 @@ packages: transitivePeerDependencies: - debug - supports-color - dev: true - /http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - dev: false - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + human-signals@2.1.0: {} - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 - /hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - dev: false + hyphenate-style-name@1.0.4: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + icss-utils@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ieee754@1.2.1: {} - /ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} + ignore-walk@4.0.1: dependencies: minimatch: 3.1.2 - /ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore-walk@6.0.4: dependencies: minimatch: 9.0.3 - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + ignore@5.3.1: {} - /image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true + image-size@1.1.1: dependencies: queue: 6.0.2 - dev: false - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: true + immediate@3.0.6: {} - /immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - dev: false + immer@10.0.4: {} - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false + immer@9.0.21: {} - /immutability-helper@3.1.1: - resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - dev: false + immutability-helper@3.1.1: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false + import-lazy@4.0.0: {} - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + individual@3.0.0: {} - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + infer-owner@1.0.4: {} - /infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - dev: false + infima@0.2.0-alpha.43: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + inherits@2.0.3: {} - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@1.3.8: {} - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false + ini@2.0.0: {} - /ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: true + ini@3.0.1: {} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.1.1: {} - /inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + inline-style-parser@0.2.2: {} - /inline-style-prefixer@7.0.0: - resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + inline-style-prefixer@7.0.0: dependencies: css-in-js-utils: 3.1.0 fast-loops: 1.1.3 - dev: false - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + inquirer@8.2.6: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -10408,454 +16159,255 @@ packages: through: 2.3.8 wrap-ansi: 6.2.0 - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + interpret@1.4.0: {} - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} + interpret@3.1.1: {} - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + invariant@2.2.4: dependencies: loose-envify: 1.4.0 - /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + ipaddr.js@1.9.1: {} - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} + ipaddr.js@2.1.0: {} - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphabetical@2.0.1: {} - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.2.1: {} - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-arrayish@0.3.2: {} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-ci@3.0.1: dependencies: ci-info: 3.9.0 - dev: false - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-decimal@2.0.1: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false + is-docker@2.2.1: {} - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true + is-docker@3.0.0: {} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false + is-extendable@0.1.1: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + is-fullwidth-code-point@3.0.0: {} - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true + is-generator-fn@2.1.0: {} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-hexadecimal@2.0.1: {} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 - dev: false - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + is-interactive@1.0.0: {} - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-lambda@1.0.1: {} - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: true + is-map@2.0.3: {} - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.3: {} - /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} + is-network-error@1.1.0: {} - /is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + is-npm@6.0.0: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: false + is-obj@1.0.1: {} - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false + is-obj@2.0.0: {} - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: false + is-path-cwd@2.2.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + is-path-inside@3.0.3: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + is-plain-obj@2.1.0: {} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + is-plain-obj@3.0.0: {} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + is-plain-obj@4.1.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + is-plain-object@5.0.0: {} - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true + is-potential-custom-element-name@1.0.1: {} - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.2: dependencies: '@types/estree': 1.0.5 - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: false + is-regexp@1.0.0: {} - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - dev: false + is-root@2.1.0: {} - /is-scoped@2.1.0: - resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} - engines: {node: '>=8'} + is-scoped@2.1.0: dependencies: scoped-regex: 2.1.0 - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: true + is-set@2.0.3: {} - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-stream@2.0.1: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-typedarray@1.0.0: {} - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + is-unicode-supported@0.1.0: {} - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + is-utf8@0.2.1: {} - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: true + is-weakmap@2.0.2: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + is-weakset@2.0.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - dev: false - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - /is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - dev: false + is-yarn-global@0.4.1: {} - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false + isarray@0.0.1: {} - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} + isbinaryfile@4.0.10: {} - /isbinaryfile@5.0.2: - resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} - engines: {node: '>= 18.0.0'} + isbinaryfile@5.0.2: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + isobject@3.0.1: {} - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: true + istanbul-lib-coverage@3.2.2: {} - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10864,11 +16416,8 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} + istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10877,85 +16426,58 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + istanbul-lib-source-maps@4.0.1: dependencies: debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + istanbul-reports@3.1.7: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - dev: true - /itertools@2.2.5: - resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} - dev: false + itertools@2.2.5: {} - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true + jake@10.8.7: dependencies: async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - /jclass@1.2.1: - resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} - engines: {node: '>= 0.6'} - dev: false + jclass@1.2.1: {} - /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 - dev: true - /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -10980,17 +16502,8 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/test-result': 29.7.0 @@ -11008,19 +16521,8 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true + jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -11049,44 +16551,27 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@29.7.0: dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 - dev: true - /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 - dev: true - /jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jest-environment-jsdom@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11100,11 +16585,8 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11112,16 +16594,10 @@ packages: '@types/node': 18.18.2 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-get-type@29.6.3: {} - /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 @@ -11136,29 +16612,20 @@ packages: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - dev: true - /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@29.7.0: dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -11169,47 +16636,27 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 - dev: true - /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-util: 29.7.0 - dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): dependencies: jest-resolve: 29.7.0 - dev: true - /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-regex-util@29.6.3: {} - /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@29.7.0: dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -11220,11 +16667,8 @@ packages: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 - dev: true - /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@29.7.0: dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -11249,11 +16693,8 @@ packages: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - dev: true - /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11279,11 +16720,8 @@ packages: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -11307,11 +16745,8 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -11320,9 +16755,7 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 - /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -11330,11 +16763,8 @@ packages: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 - dev: true - /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -11344,34 +16774,21 @@ packages: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 - dev: true - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + jest-worker@27.5.1: dependencies: '@types/node': 18.18.2 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@29.7.0: dependencies: '@types/node': 18.18.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 @@ -11382,14 +16799,10 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true + jiti@1.21.0: {} - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + joi@17.12.2: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -11397,37 +16810,22 @@ packages: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - /js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - dev: false + js-cookie@2.2.1: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@4.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsbn@1.1.0: {} - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jsdom@20.0.3: dependencies: abab: 2.0.6 acorn: 8.11.3 @@ -11459,272 +16857,168 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true + jsesc@2.5.2: {} - /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsesc@3.0.2: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-buffer@3.0.1: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@2.3.1: {} - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-parse-even-better-errors@3.0.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema-traverse@1.0.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stable-stringify-without-jsonify@1.0.1: {} - /json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + json-stringify-nice@1.1.4: {} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json-stringify-safe@5.0.1: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + json5@2.2.3: {} - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + jsonparse@1.3.1: {} - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 - dev: true - /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jszip@3.10.1: dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 - dev: true - /just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + just-diff-apply@5.5.0: {} - /just-diff@5.2.0: - resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + just-diff@5.2.0: {} - /just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - dev: true + just-extend@6.2.0: {} - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + kind-of@6.0.3: {} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + kleur@3.0.3: {} - /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + kuler@2.0.0: {} - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + language-subtag-registry@0.3.22: {} - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.22 - dev: true - /latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + latest-version@7.0.0: dependencies: package-json: 8.1.1 - dev: false - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.6.1: dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + leven@3.1.0: {} - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lie@3.3.0: dependencies: immediate: 3.0.6 - dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lilconfig@2.1.0: {} - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - dev: true + lilconfig@3.1.1: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@1.2.4: {} - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + load-json-file@6.2.0: dependencies: graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 - dev: true - /load-json-file@7.0.1: - resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + load-json-file@7.0.1: {} - /load-script@1.0.0: - resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} - dev: false + load-script@1.0.0: {} - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + loader-runner@4.3.0: {} - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + loader-utils@2.0.4: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - dev: false - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - dev: false + loader-utils@3.2.1: {} - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: false - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 - dev: false - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.debounce@4.0.8: {} - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true + lodash.get@4.4.2: {} - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.memoize@4.1.2: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.merge@4.6.2: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false + lodash.uniq@4.5.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} + logform@2.6.0: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -11733,74 +17027,45 @@ packages: safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + longest-streak@3.1.0: {} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /loupe@3.1.0: - resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + loupe@3.1.0: dependencies: get-func-name: 2.0.2 - dev: true - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + lowercase-keys@3.0.0: {} - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + lru-cache@10.2.0: {} - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - /lru-cache@7.10.1: - resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} - engines: {node: '>=12'} - dev: false + lru-cache@7.10.1: {} - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + lru-cache@7.18.3: {} - /lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - dev: true + lz-string@1.5.0: {} - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + make-dir@4.0.0: dependencies: semver: 7.6.0 - dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + make-error@1.3.6: {} - /make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + make-fetch-happen@10.2.1: dependencies: agentkeepalive: 4.5.0 cacache: 16.1.3 @@ -11822,9 +17087,7 @@ packages: - bluebird - supports-color - /make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + make-fetch-happen@11.1.1: dependencies: agentkeepalive: 4.5.0 cacache: 17.1.4 @@ -11844,9 +17107,7 @@ packages: transitivePeerDependencies: - supports-color - /make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} + make-fetch-happen@9.1.0: dependencies: agentkeepalive: 4.5.0 cacache: 15.3.0 @@ -11868,39 +17129,23 @@ packages: - bluebird - supports-color - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 - dev: true - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} + map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 - dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + markdown-extensions@2.0.0: {} - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: false + markdown-table@3.0.3: {} - /mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + mdast-util-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11912,19 +17157,15 @@ packages: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11941,8 +17182,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + mdast-util-frontmatter@2.0.1: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11952,20 +17192,16 @@ packages: micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + mdast-util-gfm-autolink-literal@2.0.0: dependencies: '@types/mdast': 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 - dev: false - /mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11974,20 +17210,16 @@ packages: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11996,10 +17228,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -12007,10 +17237,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -12021,10 +17249,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + mdast-util-mdx-expression@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12035,8 +17261,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + mdast-util-mdx-jsx@3.1.2: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12054,8 +17279,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -12065,8 +17289,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12077,14 +17300,12 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + mdast-util-to-hast@13.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -12096,8 +17317,7 @@ packages: unist-util-visit: 5.0.0 vfile: 6.0.1 - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -12108,35 +17328,19 @@ packages: unist-util-visit: 5.0.0 zwitch: 2.0.4 - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.3 - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false + mdn-data@2.0.14: {} - /mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: true + mdn-data@2.0.28: {} - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true + mdn-data@2.0.30: {} - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + media-typer@0.3.0: {} - /mem-fs-editor@9.7.0(mem-fs@2.3.0): - resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} - engines: {node: '>=12.10.0'} - peerDependencies: - mem-fs: ^2.1.0 - peerDependenciesMeta: - mem-fs: - optional: true + mem-fs-editor@9.7.0(mem-fs@2.3.0): dependencies: binaryextensions: 4.19.0 commondir: 1.0.1 @@ -12150,43 +17354,29 @@ packages: normalize-path: 3.0.0 textextensions: 5.16.0 - /mem-fs@2.3.0: - resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} - engines: {node: '>=12'} + mem-fs@2.3.0: dependencies: '@types/node': 15.14.9 '@types/vinyl': 2.0.11 vinyl: 2.2.1 vinyl-file: 3.0.0 - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} + mem@8.1.1: dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - dev: true - /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + memfs@3.5.3: dependencies: fs-monkey: 1.0.5 - dev: false - /memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} - engines: {node: '>= 4.0.0'} + memfs@4.8.0: dependencies: tslib: 2.6.2 - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false + memoize-one@5.2.1: {} - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + meow@10.1.5: dependencies: '@types/minimist': 1.2.5 camelcase-keys: 7.0.2 @@ -12200,24 +17390,16 @@ packages: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 - dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge2@1.4.1: {} - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + methods@1.1.2: {} - /micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + micromark-core-commonmark@2.0.0: dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -12236,8 +17418,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + micromark-extension-directive@3.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -12246,28 +17427,22 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 - dev: false - /micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + micromark-extension-gfm-autolink-literal@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + micromark-extension-gfm-footnote@2.0.0: dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12277,10 +17452,8 @@ packages: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + micromark-extension-gfm-strikethrough@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -12288,36 +17461,28 @@ packages: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + micromark-extension-gfm-table@2.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-tagfilter@2.0.0: dependencies: micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + micromark-extension-gfm-task-list-item@2.0.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -12327,10 +17492,8 @@ packages: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + micromark-extension-mdx-expression@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12341,8 +17504,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + micromark-extension-mdx-jsx@3.0.0: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12355,13 +17517,11 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + micromark-extension-mdx-md@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12373,8 +17533,7 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -12385,23 +17544,20 @@ packages: micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + micromark-factory-mdx-expression@2.0.1: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12412,84 +17568,69 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 - dev: false - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 - dev: false - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + micromark-util-character@2.1.0: dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + micromark-util-classify-character@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.0: dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + micromark-util-decode-numeric-character-reference@2.0.1: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + micromark-util-decode-string@2.0.0: dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.0: {} - /micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12500,50 +17641,38 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.0: {} - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + micromark-util-sanitize-uri@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - /micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + micromark-util-subtokenize@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false + micromark-util-symbol@1.1.0: {} - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + micromark-util-symbol@2.0.0: {} - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false + micromark-util-types@1.1.0: {} - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark-util-types@2.0.0: {} - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.0: dependencies: '@types/debug': 4.1.12 debug: 4.3.4(supports-color@8.1.1) @@ -12565,129 +17694,76 @@ packages: transitivePeerDependencies: - supports-color - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: false + mime-db@1.33.0: {} - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + mime-db@1.52.0: {} - /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + mime-types@2.1.18: dependencies: mime-db: 1.33.0 - dev: false - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + mime@1.6.0: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + mimic-fn@2.1.0: {} - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true + mimic-fn@3.1.0: {} - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + mimic-response@3.1.0: {} - /mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + mimic-response@4.0.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /mini-css-extract-plugin@2.8.1(webpack@5.91.0): - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + mini-css-extract-plugin@2.8.1(webpack@5.91.0): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimalistic-assert@1.0.1: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 - dev: true - - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + minimatch@7.4.6: dependencies: brace-expansion: 2.0.1 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimist@1.2.8: {} - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + minipass-collect@1.0.2: dependencies: minipass: 3.3.6 - /minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} + minipass-fetch@1.4.1: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12695,9 +17771,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + minipass-fetch@2.1.2: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12705,9 +17779,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + minipass-fetch@3.0.4: dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 @@ -12715,75 +17787,49 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - /minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + minipass-json-stream@1.0.1: dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + minipass@5.0.0: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + minipass@7.0.4: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - /mkdirp-infer-owner@2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} - engines: {node: '>=10'} + mkdirp-infer-owner@2.0.0: dependencies: chownr: 2.0.0 infer-owner: 1.0.4 mkdirp: 1.0.4 - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + mkdirp@0.5.6: dependencies: minimist: 1.2.8 - dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true + mkdirp@1.0.4: {} - /mocha@10.3.0: - resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} - engines: {node: '>= 14.0.0'} - hasBin: true + mocha@10.3.0: dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -12805,36 +17851,23 @@ packages: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 - dev: true - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false + moo@0.5.2: {} - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - dev: false + mrmime@2.0.0: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + ms@2.1.3: {} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + multicast-dns@7.2.5: dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - /multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 @@ -12842,22 +17875,15 @@ packages: arrify: 2.0.1 minimatch: 3.1.2 - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@0.0.8: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true - /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} - peerDependencies: - react: '*' - react-dom: '*' + nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 @@ -12869,20 +17895,12 @@ packages: rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.1 - dev: false - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.7: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-compare@1.4.0: {} - /ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true + ndjson@2.0.0: dependencies: json-stringify-safe: 5.0.1 minimist: 1.2.8 @@ -12890,50 +17908,25 @@ packages: split2: 3.2.2 through2: 4.0.2 - /nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true + nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): dependencies: commander: 2.20.3 moo: 0.5.2 railroad-diagrams: 1.0.0 randexp: 0.4.6 - dev: false - patched: true - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neo-async@2.6.2: {} - /neovim@5.1.0: - resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} - engines: {node: '>=10'} - hasBin: true + neovim@5.1.0: dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - /nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: false + nerf-dart@1.0.0: {} - /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true + next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): dependencies: '@next/env': 14.1.4 '@swc/helpers': 0.5.2 @@ -12957,53 +17950,34 @@ packages: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - dev: false - /nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + nise@5.1.9: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 path-to-regexp: 6.2.1 - dev: true - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - /node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 - dev: false - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + node-forge@1.3.1: {} - /node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true + node-gyp@8.4.1: dependencies: env-paths: 2.2.1 glob: 7.2.3 @@ -13019,10 +17993,7 @@ packages: - bluebird - supports-color - /node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true + node-gyp@9.4.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -13039,180 +18010,122 @@ packages: - bluebird - supports-color - /node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + node-html-parser@6.1.12: dependencies: css-select: 5.1.0 he: 1.2.0 - dev: false - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true + node-int64@0.4.0: {} - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.14: {} - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + nopt@5.0.0: dependencies: abbrev: 1.1.1 - /nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true + nopt@6.0.0: dependencies: abbrev: 1.1.1 - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + normalize-path@3.0.0: {} - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + normalize-range@0.1.2: {} - /normalize-registry-url@2.0.0: - resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} - dev: true + normalize-registry-url@2.0.0: {} - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false + normalize-url@6.1.0: {} - /normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - dev: false + normalize-url@8.0.1: {} - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + npm-bundled@1.1.2: dependencies: npm-normalize-package-bin: 1.0.1 - /npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-bundled@3.0.0: dependencies: npm-normalize-package-bin: 3.0.1 - /npm-install-checks@4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} - engines: {node: '>=10'} + npm-install-checks@4.0.0: dependencies: semver: 7.6.0 - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-install-checks@6.3.0: dependencies: semver: 7.6.0 - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + npm-normalize-package-bin@1.0.1: {} - /npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npm-normalize-package-bin@2.0.0: {} - /npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@3.0.1: {} - /npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@10.1.0: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-package-arg@11.0.1: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - dev: true - /npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} + npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 semver: 7.6.0 validate-npm-package-name: 3.0.0 - /npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} - hasBin: true + npm-packlist@3.0.0: dependencies: glob: 7.2.3 ignore-walk: 4.0.1 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-packlist@7.0.4: dependencies: ignore-walk: 6.0.4 - /npm-pick-manifest@6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + npm-pick-manifest@6.1.1: dependencies: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 semver: 7.6.0 - /npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.6.0 - /npm-registry-fetch@12.0.2: - resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + npm-registry-fetch@12.0.2: dependencies: make-fetch-happen: 10.2.1 minipass: 3.3.6 @@ -13224,9 +18137,7 @@ packages: - bluebird - supports-color - /npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-registry-fetch@14.0.5: dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 @@ -13238,175 +18149,119 @@ packages: transitivePeerDependencies: - supports-color - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false + nprogress@0.2.0: {} - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true + nwsapi@2.2.7: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + object-assign@4.1.1: {} - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true + object-hash@3.0.0: {} - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.1: {} - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + object-is@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + object-keys@1.1.1: {} - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} + object.entries@1.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 - dev: true - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} + object.hasown@1.1.4: dependencies: define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + object.values@1.2.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obuf@1.1.2: {} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + on-headers@1.0.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + one-time@1.0.0: dependencies: fn.name: 1.1.0 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + open@10.1.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true + opener@1.5.2: {} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -13415,9 +18270,7 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + ora@5.4.1: dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -13429,143 +18282,89 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + os-tmpdir@1.0.2: {} - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: false + p-cancelable@3.0.0: {} - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: true + p-defer@1.0.0: {} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + p-filter@2.1.0: dependencies: p-map: 2.1.0 - dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + p-finally@1.0.0: {} - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@4.0.0: dependencies: yocto-queue: 1.0.0 - dev: false - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: false - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@6.0.0: dependencies: p-limit: 4.0.0 - dev: false - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true + p-map@2.1.0: {} - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} + p-queue@6.6.2: dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - dev: false - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + p-retry@6.2.0: dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} + p-timeout@3.2.0: dependencies: p-finally: 1.0.0 - /p-transform@1.3.0: - resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} - engines: {node: '>=12.10.0'} + p-transform@1.3.0: dependencies: debug: 4.3.4(supports-color@8.1.1) p-queue: 6.6.2 transitivePeerDependencies: - supports-color - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + p-try@2.2.0: {} - /package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + package-json@8.1.1: dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 - dev: false - /pacote@12.0.3: - resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + pacote@12.0.3: dependencies: '@npmcli/git': 2.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -13588,12 +18387,9 @@ packages: tar: 6.2.1 transitivePeerDependencies: - bluebird - - supports-color - - /pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + - supports-color + + pacote@15.2.0: dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -13617,32 +18413,24 @@ packages: - bluebird - supports-color - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true + pako@1.0.11: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-conflict-json@2.0.2: - resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + parse-conflict-json@2.0.2: dependencies: json-parse-even-better-errors: 2.3.1 just-diff: 5.2.0 just-diff-apply: 5.5.0 - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -13653,321 +18441,177 @@ packages: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - dev: true + parse-ms@2.1.0: {} - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false + parse-numeric-range@1.3.0: {} - /parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - dev: false + parse-srcset@1.0.2: {} - /parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 parse5: 7.1.2 - dev: false - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.1.2: dependencies: entities: 4.5.0 - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parseurl@1.3.3: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /path-absolute@1.0.1: - resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} - engines: {node: '>=4'} - dev: true + path-absolute@1.0.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + path-exists@5.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + path-is-absolute@1.0.1: {} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false + path-is-inside@1.0.2: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-name@1.0.0: - resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + path-name@1.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.1: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - /path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} + path-temp@2.1.0: dependencies: unique-string: 2.0.0 - dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.7: {} - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + path-to-regexp@1.8.0: dependencies: isarray: 0.0.1 - dev: false - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false + path-to-regexp@2.2.1: {} - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: true + path-to-regexp@6.2.1: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@4.0.0: {} - /pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - dev: true + pathval@2.0.0: {} - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + pify@2.3.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + pify@4.0.1: {} - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true + pirates@4.0.6: {} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - /pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + pkg-dir@7.0.0: dependencies: find-up: 6.3.0 - dev: false - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + pkg-up@3.1.0: dependencies: find-up: 3.0.0 - dev: false - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + pluralize@8.0.0: {} - /portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} + portfinder@1.0.32: dependencies: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color - dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: true + possible-typed-array-names@1.0.0: {} - /postcss-calc@8.2.4(postcss@8.4.38): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + postcss-calc@8.2.4(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@5.3.1(postcss@8.4.38): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-colormin@5.3.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-convert-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-convert-values@5.1.3(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-comments@5.1.2(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-duplicates@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-empty@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-overridden@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-unused@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-unused@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 + postcss-import@15.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - dev: true - /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 - dev: true - /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): dependencies: lilconfig: 3.1.1 postcss: 8.4.38 ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3) yaml: 2.4.1 - dev: true - /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 + postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 8.3.6(typescript@5.4.3) jiti: 1.21.0 @@ -13976,20 +18620,8 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: false - /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 @@ -13998,655 +18630,343 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: true - /postcss-merge-idents@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-idents@5.1.1(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.38): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-longhand@5.1.7(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.38) - dev: false - /postcss-merge-rules@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-rules@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-font-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-gradients@5.1.1(postcss@8.4.38): dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-params@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-params@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.38): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-selectors@5.2.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-extract-imports@3.0.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-local-by-default@4.0.4(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - /postcss-modules-scope@3.1.1(postcss@8.4.38): - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-scope@3.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - /postcss-modules-values@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 + postcss-nested@6.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-charset@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-display-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-positions@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-string@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-unicode@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-url@5.1.0(postcss@8.4.38): dependencies: normalize-url: 6.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-whitespace@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-ordered-values@5.1.3(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-idents@5.2.0(postcss@8.4.38): - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-idents@5.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-initial@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-initial@5.1.2(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 postcss: 8.4.38 - dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-transforms@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-sort-media-queries@4.4.1(postcss@8.4.38): - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 + postcss-sort-media-queries@4.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 sort-css-media-queries: 2.1.0 - dev: false - /postcss-svgo@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-svgo@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-unique-selectors@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: false - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - /postcss-zindex@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-selector-parser: 6.0.16 + + postcss-value-parser@4.2.0: {} + + postcss-zindex@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.31: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - dev: false - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - /preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} + preferred-pm@3.1.3: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.2.1: {} - /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): - resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - prettier-plugin-twig-melody: - optional: true + prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): dependencies: prettier: 3.2.5 - dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true + prettier@3.2.5: {} - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + pretty-bytes@5.6.0: {} - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true - /pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} + pretty-ms@7.0.1: dependencies: parse-ms: 2.1.0 - dev: true - /pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - dev: false + pretty-time@1.1.0: {} - /print-diff@1.0.0: - resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} - engines: {node: '>=8.3'} + print-diff@1.0.0: dependencies: diff: 4.0.2 - dev: true - /printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - dev: true + printable-characters@1.0.42: {} - /prism-react-renderer@2.3.1(react@18.2.0): - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0 || 18' + prism-react-renderer@2.3.1(react@18.2.0): dependencies: '@types/prismjs': 1.26.3 clsx: 2.1.0 react: 18.2.0 - dev: false - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false + prismjs@1.29.0: {} - /proc-log@1.0.0: - resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + proc-log@1.0.0: {} - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proc-log@3.0.0: {} - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-nextick-args@2.0.1: {} - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + process@0.11.10: {} - /promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + promise-all-reject-late@1.0.1: {} - /promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + promise-call-limit@1.0.2: {} - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true + promise-inflight@1.0.1: {} - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + promise-retry@2.0.1: dependencies: err-code: 2.0.3 retry: 0.12.0 - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - /property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + property-information@6.4.1: {} - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proto-list@1.2.4: {} - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + psl@1.9.0: {} - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false + punycode@1.4.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + punycode@2.3.1: {} - /pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} + pupa@3.1.0: dependencies: escape-goat: 4.0.0 - dev: false - /pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - dev: true + pure-rand@6.1.0: {} - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + qs@6.11.0: dependencies: side-channel: 1.0.6 - /qs@6.12.0: - resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} - engines: {node: '>=0.6'} + qs@6.12.0: dependencies: side-channel: 1.0.6 - dev: true - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true + querystringify@2.2.0: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + queue@6.0.2: dependencies: inherits: 2.0.4 - dev: false - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + quick-lru@5.1.1: {} - /railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false + railroad-diagrams@1.0.0: {} - /rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - dev: true + rambda@7.5.0: {} - /ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - dev: true + ramda@0.29.1: {} - /randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} + randexp@0.4.6: dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 - dev: false - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - /range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: false + range-parser@1.2.0: {} - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + range-parser@1.2.1: {} - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + raw-body@2.5.2: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: false - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true + react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 address: 1.2.2 @@ -14678,29 +18998,18 @@ packages: - eslint - supports-color - vue-template-compiler - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - /react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false + react-error-overlay@6.0.11: {} - /react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-fast-compare@3.2.2: {} - /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 invariant: 2.2.4 @@ -14710,11 +19019,7 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): dependencies: invariant: 2.2.4 react: 18.2.0 @@ -14722,42 +19027,23 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true + react-is@17.0.2: {} - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.2.0: {} - /react-json-view-lite@1.3.0(react@18.2.0): - resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + react-json-view-lite@1.3.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): dependencies: '@babel/runtime': 7.24.1 - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /react-player@2.15.1(react@18.2.0): - resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} - peerDependencies: - react: '>=16.6.0 || 18' + react-player@2.15.1(react@18.2.0): dependencies: deepmerge: 4.3.1 load-script: 1.0.0 @@ -14765,23 +19051,14 @@ packages: prop-types: 15.8.1 react: 18.2.0 react-fast-compare: 3.2.2 - dev: false - /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15 || 18' - react-router: '>=5' + react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 react: 18.2.0 react-router: 5.3.4(react@18.2.0) - dev: false - /react-router-dom@5.3.4(react@18.2.0): - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15 || 18' + react-router-dom@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14791,12 +19068,8 @@ packages: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-router@5.3.4(react@18.2.0): - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15 || 18' + react-router@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14808,28 +19081,15 @@ packages: react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-string-replace@1.1.1: - resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} - engines: {node: '>=0.12.0'} - dev: false + react-string-replace@1.1.1: {} - /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' + react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): dependencies: react: 18.2.0 tslib: 2.6.2 - dev: false - /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} - peerDependencies: - react: '*' - react-dom: '*' + react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -14847,101 +19107,71 @@ packages: throttle-debounce: 3.0.1 ts-easing: 0.2.0 tslib: 2.6.2 - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react@18.2.0: dependencies: loose-envify: 1.4.0 - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-cache@1.0.0: dependencies: pify: 2.3.0 - dev: true - /read-cmd-shim@3.0.1: - resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + read-cmd-shim@3.0.1: {} - /read-ini-file@4.0.0: - resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} - engines: {node: '>=14.6'} + read-ini-file@4.0.0: dependencies: ini: 3.0.1 strip-bom: 4.0.0 - dev: true - /read-package-json-fast@2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} - engines: {node: '>=10'} + read-package-json-fast@2.0.3: dependencies: json-parse-even-better-errors: 2.3.1 npm-normalize-package-bin: 1.0.1 - /read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json-fast@3.0.2: dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 - /read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json@6.0.4: dependencies: glob: 10.3.10 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} + read-pkg-up@8.0.0: dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} + read-pkg@6.0.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 - dev: true - /read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} + read-yaml-file@2.1.0: dependencies: js-yaml: 4.1.0 strip-bom: 4.0.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -14951,17 +19181,13 @@ packages: string_decoder: 1.1.1 util-deprecate: 1.0.2 - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readable-stream@4.5.2: dependencies: abort-controller: 3.0.0 buffer: 6.0.3 @@ -14969,60 +19195,39 @@ packages: process: 0.11.10 string_decoder: 1.3.0 - /readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs + readdir-scoped-modules@1.1.0: dependencies: debuglog: 1.0.1 dezalgo: 1.0.4 graceful-fs: 4.2.11 once: 1.4.0 - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - /reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - dev: false + reading-time@1.5.0: {} - /realpath-missing@1.1.0: - resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} - engines: {node: '>=10'} - dev: true + realpath-missing@1.1.0: {} - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + rechoir@0.6.2: dependencies: resolve: 1.22.8 - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + rechoir@0.8.0: dependencies: resolve: 1.22.8 - /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 - dev: false - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} + redent@4.0.0: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true - /reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -15031,43 +19236,29 @@ packages: get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 - dev: true - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerate@1.4.2: {} - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-runtime@0.14.1: {} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.24.1 - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + regexp-tree@0.1.27: {} - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -15076,47 +19267,31 @@ packages: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: false - /registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} + registry-url@6.0.1: dependencies: rc: 1.2.8 - dev: false - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - /rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 - dev: false - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} + relateurl@0.2.7: {} - /remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + remark-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-directive: 3.0.0 @@ -15124,21 +19299,16 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + remark-emoji@4.0.1: dependencies: '@types/mdast': 4.0.3 emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 unified: 11.0.4 - dev: false - /remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + remark-frontmatter@5.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-frontmatter: 2.0.1 @@ -15146,10 +19316,8 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-gfm: 3.0.0 @@ -15159,18 +19327,15 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + remark-mdx@3.0.1: dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - /remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 @@ -15179,8 +19344,7 @@ packages: transitivePeerDependencies: - supports-color - /remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -15188,19 +19352,15 @@ packages: unified: 11.0.4 vfile: 6.0.1 - /remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 - dev: false - /remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + remove-trailing-separator@1.1.0: {} - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 @@ -15208,212 +19368,128 @@ packages: lodash: 4.17.21 strip-ansi: 6.0.1 - /replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} + replace-ext@1.0.1: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + require-from-string@2.0.2: {} - /require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - dev: false + require-like@0.1.2: {} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + requires-port@1.0.0: {} - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false + resize-observer-polyfill@1.5.1: {} - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false + resolve-alpn@1.2.1: {} - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolve-from@5.0.0: {} - /resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - dev: false + resolve-pathname@3.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - dev: true + resolve.exports@2.0.2: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} + responselike@3.0.0: dependencies: lowercase-keys: 3.0.0 - dev: false - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false + ret@0.1.15: {} - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + retry@0.12.0: {} - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + retry@0.13.1: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + reusify@1.0.4: {} - /rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} - dev: false + rfc4648@1.5.3: {} - /right-pad@1.0.1: - resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} - engines: {node: '>= 0.10'} - dev: true + right-pad@1.0.1: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: glob: 10.3.10 - /rtl-css-js@1.16.1: - resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.24.1 - dev: false - /rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - dev: false + rtl-detect@1.1.2: {} - /rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true + rtlcss@4.1.1: dependencies: escalade: 3.1.2 picocolors: 1.0.0 postcss: 8.4.38 strip-json-comments: 3.1.1 - dev: false - /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} + run-applescript@7.0.0: {} - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + run-async@2.4.1: {} - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.1: dependencies: tslib: 2.6.2 - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-buffer@5.2.1: {} - /safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} - engines: {node: '>=12'} + safe-execa@0.1.2: dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} + safe-stable-stringify@2.4.3: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + safer-buffer@2.1.2: {} - /sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + sanitize-html@2.13.0: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -15421,124 +19497,77 @@ packages: is-plain-object: 5.0.0 parse-srcset: 1.0.2 postcss: 8.4.38 - dev: false - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - dev: false + sax@1.3.0: {} - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 - dev: true - /sbd@1.0.19: - resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + sbd@1.0.19: dependencies: sanitize-html: 2.13.0 - dev: false - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + schema-utils@2.7.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + schema-utils@4.2.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - /scoped-regex@2.1.0: - resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} - engines: {node: '>=8'} + scoped-regex@2.1.0: {} - /screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false + screenfull@5.2.0: {} - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - dev: false + search-insights@2.13.0: {} - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - dev: false - /secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - dev: true + secure-compare@3.0.1: {} - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + select-hose@2.0.0: {} - /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: semver: 7.6.0 - dev: false - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + semver@6.3.1: {} - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + send@0.18.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -15556,19 +19585,15 @@ packages: transitivePeerDependencies: - supports-color - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - /serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + serve-handler@6.1.5: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -15578,11 +19603,8 @@ packages: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 - dev: false - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + serve-index@1.9.1: dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -15594,9 +19616,7 @@ packages: transitivePeerDependencies: - supports-color - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -15605,12 +19625,9 @@ packages: transitivePeerDependencies: - supports-color - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-blocking@2.0.0: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -15619,82 +19636,53 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.2 - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /set-harmonic-interval@1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - dev: false + set-harmonic-interval@1.0.1: {} - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: true + setimmediate@1.0.5: {} - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + setprototypeof@1.1.0: {} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + setprototypeof@1.2.0: {} - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - /shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shallowequal@1.1.0: {} - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.1: {} - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true + shelljs@0.8.5: dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + signal-exit@4.1.0: {} - /sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + sigstore@1.9.0: dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -15704,13 +19692,11 @@ packages: transitivePeerDependencies: - supports-color - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - /sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + sinon@17.0.1: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 @@ -15718,79 +19704,52 @@ packages: diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 - dev: true - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 - dev: false - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + sisteransi@1.0.5: {} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true + sitemap@7.1.1: dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 - dev: false - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: false - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false + slash@4.0.0: {} - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smart-buffer@4.2.0: {} - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: true - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - /socks-proxy-agent@6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} - engines: {node: '>= 10'} + socks-proxy-agent@6.1.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: - supports-color - dev: false - /socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} + socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15798,9 +19757,7 @@ packages: transitivePeerDependencies: - supports-color - /socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} + socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15808,89 +19765,58 @@ packages: transitivePeerDependencies: - supports-color - /socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.1: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - /sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - dev: false + sort-css-media-queries@2.1.0: {} - /sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} + sort-keys@4.2.0: dependencies: is-plain-obj: 2.1.0 - /sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} + sort-keys@5.0.0: dependencies: is-plain-obj: 4.1.0 - dev: true - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + source-map-js@1.2.0: {} - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true + source-map-url@0.4.1: {} - /source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - dev: false + source-map@0.5.6: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + source-map@0.6.1: {} - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.4: {} - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + space-separated-tokens@2.0.2: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + spdx-license-ids@3.0.17: {} - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + spdy-transport@3.0.0: dependencies: debug: 4.3.4(supports-color@8.1.1) detect-node: 2.1.0 @@ -15901,9 +19827,7 @@ packages: transitivePeerDependencies: - supports-color - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + spdy@4.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) handle-thing: 2.0.1 @@ -15913,138 +19837,88 @@ packages: transitivePeerDependencies: - supports-color - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + split2@3.2.2: dependencies: readable-stream: 3.6.2 - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.0.3: {} - /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sprintf-js@1.1.3: {} - /srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - dev: false + srcset@4.0.0: {} - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@10.0.5: dependencies: minipass: 7.0.4 - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} + ssri@8.0.1: dependencies: minipass: 3.3.6 - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + ssri@9.0.1: dependencies: minipass: 3.3.6 - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false + stable@0.1.8: {} - /stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + stack-generator@2.0.10: dependencies: stackframe: 1.3.4 - dev: false - /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + stack-trace@0.0.10: {} - /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - dev: true - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false + stackframe@1.3.4: {} - /stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + stacktrace-gps@3.1.2: dependencies: source-map: 0.5.6 stackframe: 1.3.4 - dev: false - /stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + stacktrace-js@2.0.2: dependencies: error-stack-parser: 2.1.4 stack-generator: 2.0.10 stacktrace-gps: 3.1.2 - dev: false - /stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 get-source: 2.0.12 - dev: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} + statuses@1.5.0: {} - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + statuses@2.0.1: {} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false + std-env@3.7.0: {} - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.7 - dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + streamsearch@1.1.0: {} - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + string-length@4.0.2: dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -16058,195 +19932,117 @@ packages: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 - dev: true - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + stringify-entities@4.0.3: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 - dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - /strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} + strip-bom-buf@1.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom-stream@2.0.0: - resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} - engines: {node: '>=0.10.0'} + strip-bom-stream@2.0.0: dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false + strip-bom-string@1.0.0: {} - /strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} + strip-bom@2.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + strip-bom@3.0.0: {} - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + strip-bom@4.0.0: {} - /strip-comments-strings@1.2.0: - resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} - dev: true + strip-comments-strings@1.2.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + strip-final-newline@2.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: true + strnum@1.0.5: {} - /style-loader@3.3.4(webpack@5.91.0): - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + style-loader@3.3.4(webpack@5.91.0): dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - /style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + style-to-object@1.0.5: dependencies: inline-style-parser: 0.2.2 - /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true + styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): dependencies: '@babel/core': 7.24.3 client-only: 0.0.1 react: 18.2.0 - dev: false - /stylehacks@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + stylehacks@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - dev: false + stylis@4.3.1: {} - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -16255,37 +20051,24 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - dev: true - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-preserve-symlinks-flag@1.0.0: {} - /svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + svg-parser@2.0.4: {} - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true + svgo@2.8.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16294,12 +20077,8 @@ packages: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 - dev: false - /svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true + svgo@3.2.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16308,16 +20087,10 @@ packages: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 - dev: true - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true + symbol-tree@3.2.4: {} - /syncpack@12.3.0(typescript@5.4.3): - resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} - engines: {node: '>=16'} - hasBin: true + syncpack@12.3.0(typescript@5.4.3): dependencies: '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0) chalk: 4.1.2 @@ -16337,12 +20110,8 @@ packages: ts-toolbelt: 9.6.0 transitivePeerDependencies: - typescript - dev: true - /tailwindcss@3.4.1(ts-node@10.9.2): - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@3.4.1(ts-node@10.9.2): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -16368,20 +20137,12 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: true - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false + tapable@1.1.3: {} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + tapable@2.2.1: {} - /tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -16390,21 +20151,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true + terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.20.2 @@ -16414,195 +20161,105 @@ packages: terser: 5.29.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} - engines: {node: '>=10'} - hasBin: true + terser@5.29.2: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - dev: true - /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + text-hex@1.0.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-table@0.2.0: {} - /textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} - engines: {node: '>=0.8'} + textextensions@5.16.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - dev: false + throttle-debounce@3.0.1: {} - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + through2@4.0.2: dependencies: readable-stream: 3.6.2 - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + through@2.3.8: {} - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + thunky@1.1.0: {} - /tightrope@0.1.0: - resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} - engines: {node: '>=14'} - dev: true + tightrope@0.1.0: {} - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + tiny-invariant@1.3.3: {} - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false + tiny-warning@1.0.3: {} - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: false + tinycolor2@1.6.0: {} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true + tmpl@1.0.5: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false + toggle-selection@1.0.6: {} - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + toidentifier@1.0.1: {} - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: false + totalist@3.0.1: {} - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} + tough-cookie@4.1.3: dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@0.0.3: {} - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + tr46@3.0.0: dependencies: punycode: 2.3.1 - dev: true - /treeverse@1.0.4: - resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + treeverse@1.0.4: {} - /trie-search@2.0.0: - resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + trie-search@2.0.0: dependencies: hasharray: 1.1.2 - dev: false - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-lines@3.0.1: {} - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true + trim-newlines@4.1.1: {} - /triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + triple-beam@1.4.1: {} - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + trough@2.2.0: {} - /ts-api-utils@1.3.0(typescript@5.4.3): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.3.0(typescript@5.4.3): dependencies: typescript: 5.4.3 - dev: true - /ts-easing@0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - dev: false + ts-easing@0.2.0: {} - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true + ts-interface-checker@0.1.13: {} - /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true + ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): dependencies: '@babel/core': 7.24.3 bs-logger: 0.2.6 @@ -16616,14 +20273,8 @@ packages: semver: 7.6.0 typescript: 5.4.3 yargs-parser: 21.1.1 - dev: true - /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 + ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -16632,21 +20283,8 @@ packages: source-map: 0.7.4 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.10 @@ -16663,27 +20301,19 @@ packages: typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true - /ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - dev: true + ts-toolbelt@9.6.0: {} - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 debug: 4.3.4(supports-color@8.1.1) @@ -16691,77 +20321,46 @@ packages: transitivePeerDependencies: - supports-color - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + type-fest@0.20.2: {} - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + type-fest@0.21.3: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false + type-fest@2.19.0: {} - /type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - dev: false + type-fest@4.14.0: {} - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -16769,11 +20368,8 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -16781,53 +20377,34 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.4.3: {} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: false + unicode-emoji-modifier-base@1.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.1.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: {} - /unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.4: dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -16837,133 +20414,91 @@ packages: trough: 2.2.0 vfile: 6.0.1 - /union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} + union@0.5.0: dependencies: qs: 6.12.0 - dev: true - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 - /unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-filename@2.0.1: dependencies: unique-slug: 3.0.0 - /unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-slug@2.0.2: dependencies: imurmurhash: 0.1.4 - /unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-slug@3.0.0: dependencies: imurmurhash: 0.1.4 - /unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: true - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: false - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + unist-util-remove-position@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universal-user-agent@6.0.1: {} - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.2.0: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + universalify@2.0.1: {} - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + unpipe@1.0.0: {} - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + untildify@4.0.0: {} - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - /update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} + update-notifier@6.0.2: dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -16979,125 +20514,80 @@ packages: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 - dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - dev: true + url-join@4.0.1: {} - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true + url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): dependencies: file-loader: 6.2.0(webpack@5.91.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util-deprecate@1.0.2: {} - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + utila@0.4.0: {} - /utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} + utility-types@3.11.0: {} - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + utils-merge@1.0.1: {} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + uuid@8.3.2: {} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: false + uuid@9.0.1: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true + v8-compile-cache-lib@3.0.1: {} - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - dev: true - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - /validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + validate-npm-package-name@3.0.0: dependencies: builtins: 1.0.3 - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate-npm-package-name@5.0.0: dependencies: builtins: 5.0.1 - /value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - dev: false + value-equal@1.0.1: {} - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + vary@1.1.2: {} - /vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + vfile-location@5.0.2: dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 - dev: false - /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - /vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vinyl-file@3.0.0: - resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} - engines: {node: '>=4'} + vinyl-file@3.0.0: dependencies: graceful-fs: 4.2.11 pify: 2.3.0 @@ -17105,9 +20595,7 @@ packages: strip-bom-stream: 2.0.0 vinyl: 2.2.1 - /vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} + vinyl@2.2.1: dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -17116,63 +20604,40 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - /vscode-uri@3.0.6: - resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} - dev: true + vscode-uri@3.0.6: {} - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: false + vscode-uri@3.0.8: {} - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 - dev: true - /walk-up-path@1.0.0: - resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + walk-up-path@1.0.0: {} - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + walker@1.0.8: dependencies: makeerror: 1.0.12 - dev: true - /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false + web-namespaces@2.0.1: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@3.0.1: {} - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: true + webidl-conversions@7.0.0: {} - /webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true + webpack-bundle-analyzer@4.10.1: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.11.3 @@ -17190,24 +20655,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false - /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) @@ -17226,11 +20675,7 @@ packages: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) webpack-merge: 5.10.0 - /webpack-dev-middleware@5.3.4(webpack@5.91.0): - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack-dev-middleware@5.3.4(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -17238,16 +20683,8 @@ packages: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /webpack-dev-middleware@7.1.1(webpack@5.91.0): - resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true + webpack-dev-middleware@7.1.1(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 4.8.0 @@ -17257,18 +20694,7 @@ packages: schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /webpack-dev-server@4.15.2(webpack@5.91.0): - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@4.15.2(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17306,20 +20732,8 @@ packages: - debug - supports-color - utf-8-validate - dev: false - /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17359,27 +20773,15 @@ packages: - supports-color - utf-8-validate - /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + webpack-merge@5.10.0: dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + webpack-sources@3.2.3: {} - /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -17411,70 +20813,47 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.91.0): - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 + webpackbar@5.0.2(webpack@5.91.0): dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + websocket-extensions@0.1.4: {} - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - dev: true + whatwg-mimetype@3.0.0: {} - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -17488,90 +20867,60 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 - dev: true - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: false - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + which@3.0.1: dependencies: isexe: 2.0.0 - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wide-align@1.1.5: dependencies: string-width: 4.2.3 - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + widest-line@3.1.0: dependencies: string-width: 4.2.3 - dev: true - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@4.0.1: dependencies: string-width: 5.1.2 - dev: false - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + wildcard@2.0.1: {} - /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} - engines: {node: '>= 12.0.0'} + winston-transport@4.7.0: dependencies: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - /winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} + winston@3.11.0: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -17585,173 +20934,95 @@ packages: triple-beam: 1.4.1 winston-transport: 4.7.0 - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true + workerpool@6.2.1: {} - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrappy@1.0.2: {} - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + write-file-atomic@3.0.3: dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@4.0.2: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - /write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + write-json-file@5.0.0: dependencies: detect-indent: 7.0.1 is-plain-obj: 4.1.0 sort-keys: 5.0.0 write-file-atomic: 3.0.3 - dev: true - /write-yaml-file@5.0.0: - resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} - engines: {node: '>=16.14'} + write-yaml-file@5.0.0: dependencies: js-yaml: 4.1.0 write-file-atomic: 5.0.1 - dev: true - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@7.5.9: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + ws@8.16.0: {} - /xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - dev: false + xdg-basedir@5.1.0: {} - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true + xml-js@1.6.11: dependencies: sax: 1.3.0 - dev: false - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true + xml-name-validator@4.0.0: {} - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true + xmlchars@2.2.0: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false + yaml@1.10.2: {} - /yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - dev: true + yaml@2.4.1: {} - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.4: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + yargs-unparser@2.0.0: dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 - dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -17760,11 +21031,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -17773,12 +21041,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yeoman-environment@3.19.3: - resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} - engines: {node: '>=12.10.0'} - hasBin: true + yeoman-environment@3.19.3: dependencies: '@npmcli/arborist': 4.3.1 are-we-there-yet: 2.0.0 @@ -17821,14 +21085,7 @@ packages: - bluebird - supports-color - /yeoman-generator@5.10.0(yeoman-environment@3.19.3): - resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} - engines: {node: '>=12.10.0'} - peerDependencies: - yeoman-environment: ^3.2.0 - peerDependenciesMeta: - yeoman-environment: - optional: true + yeoman-generator@5.10.0(yeoman-environment@3.19.3): dependencies: chalk: 4.1.2 dargs: 7.0.0 @@ -17852,23 +21109,12 @@ packages: - mem-fs - supports-color - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true + yn@3.1.1: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: false + yocto-queue@1.0.0: {} - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false + zod@3.22.4: {} - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + zwitch@2.0.4: {} diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh index d51175d5a2..d7c0e21519 100644 --- a/scripts/deploy-cursorless-nvim.sh +++ b/scripts/deploy-cursorless-nvim.sh @@ -29,4 +29,4 @@ cp packages/cursorless-neovim/out/index.cjs "$root_dir/node/cursorless-neovim/ou cd "$root_dir" git add * git commit -m "Deploy cursorless.nvim" -git push \ No newline at end of file +git push From 02924ccfaa38e4e4bd8ea28f97e068c5eb8d1b3b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 4 May 2024 09:25:32 +0100 Subject: [PATCH 285/504] typo --- .github/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 32993a1815..9b22d7f3c6 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -85,7 +85,7 @@ jobs: uses: ad-m/github-push-action@master with: #github_token: ${{ steps.githubAppAuth.outputs.access-token }} - repository: hands-free-vim/github-app-test-1 + repository: hands-free-vim/cursorless.nvim # force_with_lease: true push-cursorless-talon: From 8f4e6a79ffb2534312738c0b259d09c5c9a38f1c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 4 May 2024 09:34:19 +0100 Subject: [PATCH 286/504] refactor: remove few TODOs --- cursorless.nvim/lua/cursorless/cursorless.lua | 6 +++--- cursorless.nvim/lua/cursorless/init.lua | 2 +- packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/cursorless.lua b/cursorless.nvim/lua/cursorless/cursorless.lua index 6439477503..0a9b2bf37e 100644 --- a/cursorless.nvim/lua/cursorless/cursorless.lua +++ b/cursorless.nvim/lua/cursorless/cursorless.lua @@ -129,7 +129,7 @@ end -- :lua select_range(5, 12, 5, 30) -- for example it will highlight the last function name (nvim_win_set_cursor). -- another example is :tmap lua require("talon.cursorless").select_range(4, 0, 4, 38) --- TODO: works for any mode (n,i,v,nt) except in t mode +-- NOTE: works for any mode (n,i,v,nt) except in t mode function M.select_range(start_x, start_y, end_x, end_y) vim.cmd([[normal! :noh]]) vim.api.nvim_win_set_cursor(0, { start_x, start_y }) @@ -139,7 +139,7 @@ end -- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278 -- another example is :map lua require("talon.cursorless").select_range2(4, 0, 4, 38) --- TODO: works for any mode (n,i,v,nt) except in t mode +-- NOTE: works for any mode (n,i,v,nt) except in t mode function M.select_range2(start_row, start_col, end_row, end_col, selection_mode) local v_table = { charwise = 'v', linewise = 'V', blockwise = '' } selection_mode = selection_mode or 'charwise' @@ -166,7 +166,7 @@ function M.select_range2(start_row, start_col, end_row, end_col, selection_mode) end -- another example is :map lua require("talon.cursorless").select_range3(4, 0, 4, 38) --- TODO: works for any mode (n,i,v,nt) except in t mode +-- NOTE: works for any mode (n,i,v,nt) except in t mode function M.select_range3(start_x, start_y, end_x, end_y) -- print('select_range()') -- print(('start_x=%d, start_y=%d, end_x=%d, end_y=%d'):format(start_x, start_y, end_x, end_y)) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index a3c9032b50..b233f1597b 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -1,6 +1,6 @@ -- local Config = require('cursorless.config') --- TODO: we can't use that yet as then when we use load_extensions() we get an error. +-- We can't use that yet as then when we use load_extensions() we get an error. -- So instead atm we rely on registering the functions from vim script -- local function register_functions1() -- local path = require('cursorless.utils').cursorless_nvim_path() diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts index 17a662de72..1ffea9121a 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimTextLineImpl.ts @@ -46,7 +46,6 @@ export default class NeovimTextLineImpl implements TextLine { } get firstNonWhitespaceCharacterIndex(): number { - //TODO@api, rename to 'leadingWhitespaceLength' const index = /^(\s*)/.exec(this._text)![1].length; // console.debug( // `NeovimTextLineImpl.firstNonWhitespaceCharacterIndex=${index}`, From d9d38130c250311d05a008125e175c0fa288f206 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Sat, 4 May 2024 09:40:07 +0100 Subject: [PATCH 287/504] after running pnpm -w fix:meta --- packages/neovim-common/package.json | 5 +++-- packages/neovim-registry/package.json | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json index e740bbdc34..67897ced9c 100644 --- a/packages/neovim-common/package.json +++ b/packages/neovim-common/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", - "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --packages=external --outfile=./out/index.js", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", @@ -32,5 +32,6 @@ "lodash": "^4.17.21", "neovim": "5.1.0", "vscode-uri": "3.0.8" - } + }, + "type": "module" } diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index 349b57af89..c7bd81dbb1 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -25,5 +25,6 @@ }, "devDependencies": { "neovim": "5.1.0" - } + }, + "type": "module" } From 4cf6e25e99f558037f2d06e8b30856f7d174c5fd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 10:39:41 +0100 Subject: [PATCH 288/504] Attempt to fix the tests in CI I ran `pnpm -w fix:meta`and `pnpm install` locally --- pnpm-lock.yaml | 18914 ++++++++++++++++++++--------------------------- 1 file changed, 7834 insertions(+), 11080 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd3f93486e..b082b58835 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -769,8922 +769,12 @@ importers: packages: - '@aashutoshrathi/word-wrap@1.2.6': + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - '@algolia/autocomplete-core@1.9.3': + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' - - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/cache-browser-local-storage@4.22.1': - resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} - - '@algolia/cache-common@4.22.1': - resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} - - '@algolia/cache-in-memory@4.22.1': - resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} - - '@algolia/client-account@4.22.1': - resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} - - '@algolia/client-analytics@4.22.1': - resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} - - '@algolia/client-common@4.22.1': - resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} - - '@algolia/client-personalization@4.22.1': - resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} - - '@algolia/client-search@4.22.1': - resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} - - '@algolia/events@4.0.1': - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - - '@algolia/logger-common@4.22.1': - resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} - - '@algolia/logger-console@4.22.1': - resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} - - '@algolia/requester-browser-xhr@4.22.1': - resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} - - '@algolia/requester-common@4.22.1': - resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} - - '@algolia/requester-node-http@4.22.1': - resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} - - '@algolia/transporter@4.22.1': - resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.1': - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.3': - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.1': - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.24.1': - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.1': - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.22.20': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.1': - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.24.1': - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.24.1': - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.24.1': - resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.24.1': - resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.24.1': - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.24.1': - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.24.1': - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.24.1': - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.24.1': - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.24.1': - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-constant-elements@7.24.1': - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.24.1': - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.22.5': - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.23.4': - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.24.1': - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.24.3': - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.24.1': - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.24.1': - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.24.3': - resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.24.1': - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime-corejs3@7.24.1': - resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.24.1': - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@docsearch/css@3.6.0': - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - - '@docsearch/react@3.6.0': - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - - '@docusaurus/core@3.1.1': - resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/cssnano-preset@3.1.1': - resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} - engines: {node: '>=18.0'} - - '@docusaurus/logger@3.1.1': - resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} - engines: {node: '>=18.0'} - - '@docusaurus/mdx-loader@3.1.1': - resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/module-type-aliases@3.1.1': - resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} - peerDependencies: - react: '*' - react-dom: '*' - - '@docusaurus/plugin-content-blog@3.1.1': - resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-content-docs@3.1.1': - resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-content-pages@3.1.1': - resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-debug@3.1.1': - resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-analytics@3.1.1': - resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-gtag@3.1.1': - resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-tag-manager@3.1.1': - resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-sitemap@3.1.1': - resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/preset-classic@3.1.1': - resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/react-loadable@5.5.2': - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' - - '@docusaurus/theme-classic@3.1.1': - resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-common@3.1.1': - resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-search-algolia@3.1.1': - resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-translations@3.1.1': - resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} - engines: {node: '>=18.0'} - - '@docusaurus/types@3.1.1': - resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/utils-common@3.1.1': - resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - - '@docusaurus/utils-validation@3.1.1': - resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} - engines: {node: '>=18.0'} - - '@docusaurus/utils@3.1.1': - resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - - '@effect/schema@0.56.1': - resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} - peerDependencies: - effect: 2.0.0-next.62 - fast-check: ^3.13.2 - - '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3': - resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} - engines: {node: '>=10.13.0'} - peerDependencies: - html-webpack-plugin: '>=5' - webpack: '>=5' - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@fortawesome/fontawesome-common-types@6.5.1': - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} - engines: {node: '>=6'} - - '@fortawesome/fontawesome-svg-core@6.5.1': - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} - engines: {node: '>=6'} - - '@fortawesome/free-solid-svg-icons@6.5.1': - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} - engines: {node: '>=6'} - - '@fortawesome/react-fontawesome@0.2.0': - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} - peerDependencies: - '@fortawesome/fontawesome-svg-core': ~1 || ~6 - react: '>=16.3 || 18' - - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - - '@gwhitney/detect-indent@7.0.1': - resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} - engines: {node: '>=12.20'} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.2': - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@leichtgewicht/ip-codec@2.0.4': - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - - '@mdx-js/loader@3.0.1': - resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} - peerDependencies: - webpack: '>=5' - - '@mdx-js/mdx@3.0.1': - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} - - '@mdx-js/react@3.0.1': - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16 || 18' - - '@msgpack/msgpack@2.8.0': - resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} - engines: {node: '>= 10'} - - '@next/env@14.1.4': - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - - '@next/eslint-plugin-next@14.1.4': - resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} - - '@next/mdx@14.1.4': - resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} - peerDependencies: - '@mdx-js/loader': '>=0.15.0' - '@mdx-js/react': '>=0.15.0' - peerDependenciesMeta: - '@mdx-js/loader': - optional: true - '@mdx-js/react': - optional: true - - '@next/swc-darwin-arm64@14.1.4': - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@14.1.4': - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@14.1.4': - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.1.4': - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@14.1.4': - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.1.4': - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@14.1.4': - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-ia32-msvc@14.1.4': - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.1.4': - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@npmcli/arborist@4.3.1': - resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true - - '@npmcli/fs@1.1.1': - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/fs@3.1.0': - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/git@2.1.0': - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} - - '@npmcli/git@4.1.0': - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/installed-package-contents@1.0.7': - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} - engines: {node: '>= 10'} - hasBin: true - - '@npmcli/installed-package-contents@2.0.2': - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - '@npmcli/map-workspaces@2.0.4': - resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/metavuln-calculator@2.0.0': - resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - - '@npmcli/move-file@1.1.2': - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - - '@npmcli/name-from-folder@1.0.1': - resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} - - '@npmcli/node-gyp@1.0.3': - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} - - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@1.0.1': - resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} - - '@npmcli/promise-spawn@1.3.2': - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} - - '@npmcli/promise-spawn@6.0.2': - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/run-script@2.0.0': - resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} - - '@npmcli/run-script@6.0.2': - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@octokit/auth-token@2.5.0': - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} - - '@octokit/core@3.6.0': - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} - - '@octokit/endpoint@6.0.12': - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} - - '@octokit/graphql@4.8.0': - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} - - '@octokit/openapi-types@12.11.0': - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - - '@octokit/plugin-paginate-rest@2.21.3': - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} - peerDependencies: - '@octokit/core': '>=2' - - '@octokit/plugin-request-log@1.0.4': - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/plugin-rest-endpoint-methods@5.16.2': - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/request-error@2.1.0': - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} - - '@octokit/request@5.6.3': - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} - - '@octokit/rest@18.12.0': - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} - - '@octokit/types@6.41.0': - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pnpm/cli-meta@5.0.1': - resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} - engines: {node: '>=16.14'} - - '@pnpm/cli-utils@2.0.9': - resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/config@18.4.0': - resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} - engines: {node: '>=16.14'} - - '@pnpm/constants@6.2.0': - resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} - engines: {node: '>=14.6'} - - '@pnpm/constants@7.1.0': - resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} - engines: {node: '>=16.14'} - - '@pnpm/constants@7.1.1': - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - - '@pnpm/constants@8.0.0': - resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} - engines: {node: '>=18.12'} - - '@pnpm/core-loggers@10.0.0': - resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/core-loggers@9.0.1': - resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/crypto.base32-hash@3.0.0': - resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} - engines: {node: '>=18.12'} - - '@pnpm/dedupe.issues-renderer@1.0.0': - resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} - engines: {node: '>=16.14'} - - '@pnpm/dedupe.types@1.0.0': - resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} - engines: {node: '>=16.14'} - - '@pnpm/default-reporter@12.2.3': - resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/dependency-path@3.0.0': - resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} - engines: {node: '>=18.12'} - - '@pnpm/error@4.0.1': - resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} - engines: {node: '>=14.6'} - - '@pnpm/error@5.0.1': - resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} - engines: {node: '>=16.14'} - - '@pnpm/error@5.0.3': - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} - - '@pnpm/error@6.0.0': - resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} - engines: {node: '>=18.12'} - - '@pnpm/fetch@8.0.0': - resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/fetcher-base@14.0.1': - resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} - engines: {node: '>=16.14'} - - '@pnpm/fetching-types@6.0.0': - resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} - engines: {node: '>=18.12'} - - '@pnpm/find-workspace-dir@6.0.3': - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} - - '@pnpm/find-workspace-packages@6.0.9': - resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} - engines: {node: '>=16.14'} - - '@pnpm/fs.find-packages@2.0.1': - resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} - engines: {node: '>=16.14'} - - '@pnpm/git-resolver@9.0.1': - resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} - engines: {node: '>=18.12'} - - '@pnpm/git-utils@1.0.0': - resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} - engines: {node: '>=16.14'} - - '@pnpm/git-utils@2.0.0': - resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} - engines: {node: '>=18.12'} - - '@pnpm/graceful-fs@3.0.0': - resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} - engines: {node: '>=16.14'} - - '@pnpm/hooks.types@1.0.1': - resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} - engines: {node: '>=16.14'} - - '@pnpm/hosted-git-info@1.0.0': - resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} - engines: {node: '>=10'} - - '@pnpm/lockfile-file@9.0.2': - resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/lockfile-types@5.1.0': - resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} - engines: {node: '>=16.14'} - - '@pnpm/lockfile-types@6.0.0': - resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} - engines: {node: '>=18.12'} - - '@pnpm/lockfile-utils@10.0.0': - resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} - engines: {node: '>=18.12'} - - '@pnpm/logger@5.0.0': - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} - - '@pnpm/manifest-utils@5.0.1': - resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} - engines: {node: '>=16.14'} - - '@pnpm/matcher@5.0.0': - resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} - engines: {node: '>=16.14'} - - '@pnpm/merge-lockfile-changes@6.0.0': - resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} - engines: {node: '>=18.12'} - - '@pnpm/meta-updater@1.0.0': - resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} - engines: {node: '>=10.12'} - hasBin: true - - '@pnpm/network.agent@1.0.1': - resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.config@1.0.1': - resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.proxy-agent@1.0.1': - resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} - engines: {node: '>=12.22.0'} - - '@pnpm/node-fetch@1.0.0': - resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} - engines: {node: ^10.17 || >=12.3} - - '@pnpm/npm-conf@2.2.0': - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} - engines: {node: '>=12'} - - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} - - '@pnpm/package-is-installable@8.0.2': - resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/pick-fetcher@3.0.0': - resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} - engines: {node: '>=18.12'} - - '@pnpm/pnpmfile@5.0.7': - resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/ramda@0.28.1': - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - - '@pnpm/read-project-manifest@5.0.1': - resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} - engines: {node: '>=16.14'} - - '@pnpm/render-peer-issues@4.0.1': - resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} - engines: {node: '>=16.14'} - - '@pnpm/resolver-base@10.0.1': - resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} - engines: {node: '>=16.14'} - - '@pnpm/resolver-base@12.0.0': - resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} - engines: {node: '>=18.12'} - - '@pnpm/store-controller-types@15.0.1': - resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} - engines: {node: '>=16.14'} - - '@pnpm/text.comments-parser@2.0.0': - resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} - engines: {node: '>=16.14'} - - '@pnpm/types@10.0.0': - resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} - engines: {node: '>=18.12'} - - '@pnpm/types@9.1.0': - resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} - engines: {node: '>=16.14'} - - '@pnpm/types@9.4.2': - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - - '@pnpm/util.lex-comparator@1.0.0': - resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} - engines: {node: '>=12.22.0'} - - '@pnpm/util.lex-comparator@3.0.0': - resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} - engines: {node: '>=18.12'} - - '@pnpm/write-project-manifest@5.0.1': - resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} - engines: {node: '>=16.14'} - - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - - '@rushstack/eslint-patch@1.8.0': - resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sigstore/bundle@1.1.0': - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/sign@1.0.0': - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/tuf@1.0.3': - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@sinonjs/commons@2.0.0': - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@sinonjs/fake-timers@11.2.2': - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} - - '@sinonjs/samsam@8.0.0': - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} - - '@sinonjs/text-encoding@0.7.2': - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - - '@slorber/remark-comment@1.0.0': - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} - - '@slorber/static-site-generator-webpack-plugin@4.0.7': - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} - - '@svgr/babel-plugin-add-jsx-attribute@6.5.1': - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@6.5.1': - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@6.5.1': - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@6.5.1': - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@6.5.1': - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@6.5.1': - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/core@6.5.1': - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} - - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} - - '@svgr/hast-util-to-babel-ast@6.5.1': - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} - - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} - - '@svgr/plugin-jsx@6.5.1': - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 - - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@6.5.1': - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/webpack@6.5.1': - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} - - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} - - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@testing-library/dom@9.3.4': - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} - - '@testing-library/react@14.2.2': - resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@tsconfig/docusaurus@2.0.2': - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - - '@tsconfig/node10@1.0.10': - resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@tufjs/canonical-json@1.0.0': - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@tufjs/models@1.0.4': - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - - '@types/chai@4.3.14': - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@8.56.6': - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/expect@1.20.4': - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - - '@types/express-serve-static-core@4.17.43': - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/gtag.js@0.0.12': - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/http-proxy@1.17.14': - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - - '@types/js-cookie@2.2.7': - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/jsonfile@6.1.4': - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - - '@types/lodash@4.14.181': - resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} - - '@types/lodash@4.17.0': - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - - '@types/mdast@4.0.3': - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} - - '@types/mdx-js__react@1.5.8': - resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} - - '@types/mdx@2.0.12': - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - - '@types/mocha@10.0.6': - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - - '@types/moo@0.5.9': - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/nearley@2.11.5': - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - - '@types/node@15.14.9': - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@18.18.2': - resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/normalize-path@3.0.2': - resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/prismjs@1.26.3': - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/qs@6.9.14': - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-dom@18.2.22': - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} - - '@types/react-helmet@6.1.11': - resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} - - '@types/react-router-config@5.0.11': - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} - - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - - '@types/react@18.2.71': - resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/sbd@1.0.5': - resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} - - '@types/scheduler@0.23.0': - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - - '@types/sinon@17.0.3': - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} - - '@types/sinonjs__fake-timers@8.1.5': - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - - '@types/ssri@7.1.5': - resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/tinycolor2@1.4.6': - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/vinyl@2.0.11': - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} - - '@types/vscode@1.75.1': - resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} - - '@types/vscode@1.88.0': - resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} - - '@types/webpack@5.28.5': - resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} - - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@typescript-eslint/eslint-plugin@7.4.0': - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.4.0': - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.4.0': - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.4.0': - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.4.0': - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.4.0': - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@7.4.0': - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.4.0': - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vscode/test-electron@2.3.9': - resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} - engines: {node: '>=16'} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@webpack-cli/configtest@2.1.1': - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - - '@webpack-cli/generators@3.0.7': - resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} - engines: {node: '>=14.15.0'} - peerDependencies: - prettier: '*' - webpack: 5.x.x - webpack-cli: 5.x.x - peerDependenciesMeta: - prettier: - optional: true - - '@webpack-cli/info@2.0.2': - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - - '@webpack-cli/serve@2.0.5': - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true - - '@xobotyi/scrollbar-width@1.9.5': - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - - '@zkochan/retry@0.2.0': - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - - '@zkochan/rimraf@2.1.3': - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} - - '@zkochan/which@2.0.3': - resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} - engines: {node: '>= 8'} - hasBin: true - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} - - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - algoliasearch-helper@3.16.3: - resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' - - algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-diff@1.1.1: - resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-split@1.0.1: - resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - - array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - - as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - - asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-loader@9.1.3: - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - - babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-polyfill-corejs2@0.4.10: - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.1: - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - - bin-links@3.0.3: - resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} - engines: {node: '>=0.8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} - - bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - - boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - - builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - can-write-to-dir@1.1.1: - resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} - engines: {node: '>=10.13'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@5.1.0: - resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} - engines: {node: '>=12'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - check-error@2.0.0: - resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} - engines: {node: '>= 16'} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-columns@4.0.0: - resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} - engines: {node: '>= 10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-table3@0.6.4: - resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} - engines: {node: 10.* || >= 12.*} - - cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - - cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - - clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} - - cmd-shim@5.0.0: - resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - - colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - - combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - - commander@7.1.0: - resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} - engines: {node: '>= 10'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - comver-to-semver@1.0.0: - resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} - engines: {node: '>=12.17'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 - - core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} - - core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - - core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} - - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - css-declaration-sorter@6.4.1: - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - - css-in-js-utils@3.1.0: - resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} - - css-loader@6.10.0: - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@4.2.2: - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-advanced@5.3.10: - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - - data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - - data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - - dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-eql@5.0.1: - resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} - engines: {node: '>=6'} - - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} - - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - - detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - effect@2.0.0-next.62: - resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} - - ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.4.717: - resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - - enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - - enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - - error@10.4.0: - resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} - - es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-config-next@14.1.4: - resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-mocha@10.4.1: - resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.34.1: - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-unicorn@51.0.1: - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' - - eslint-plugin-unused-imports@3.1.0: - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-value-to-estree@3.0.1: - resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} - engines: {node: '>=16.0.0'} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} - - fast-check@3.17.0: - resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} - engines: {node: '>=8.0.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-loops@1.1.3: - resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fast-shallow-equal@1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - - fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastest-stable-stringify@2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - - feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} - - fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - - filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-npm-tarball-url@2.1.0: - resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} - engines: {node: '>=12.17'} - - get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - - github-username@6.0.0: - resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} - engines: {node: '>=10'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graceful-git@3.1.2: - resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - grouped-queue@2.0.0: - resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} - engines: {node: '>=8.0.0'} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - hasharray@1.1.2: - resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} - - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - - hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - html-webpack-plugin@5.6.0: - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - - http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} - - ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - - immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - - immutability-helper@3.1.1: - resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - - individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - - infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - - ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - - inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - - inline-style-prefixer@7.0.0: - resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} - - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} - - is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - - is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - - is-scoped@2.1.0: - resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} - engines: {node: '>=8'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - - isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} - - isbinaryfile@5.0.2: - resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} - engines: {node: '>= 18.0.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - - itertools@2.2.5: - resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} - - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - - jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true - - jclass@1.2.1: - resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} - engines: {node: '>= 0.6'} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} - - js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - - just-diff@5.2.0: - resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} - - just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - - load-json-file@7.0.1: - resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - load-script@1.0.0: - resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} - - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - - loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@3.1.0: - resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.10.1: - resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} - engines: {node: '>=12'} - - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} - - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - - mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - mem-fs-editor@9.7.0: - resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} - engines: {node: '>=12.10.0'} - peerDependencies: - mem-fs: ^2.1.0 - peerDependenciesMeta: - mem-fs: - optional: true - - mem-fs@2.3.0: - resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} - engines: {node: '>=12'} - - mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} - engines: {node: '>= 4.0.0'} - - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - - meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} - - micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} - - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} - - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} - - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - mini-css-extract-plugin@2.8.1: - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp-infer-owner@2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} - engines: {node: '>=10'} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mocha@10.3.0: - resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} - engines: {node: '>= 14.0.0'} - hasBin: true - - moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nano-css@5.6.1: - resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} - peerDependencies: - react: '*' - react-dom: '*' - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true - - nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - neovim@5.1.0: - resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} - engines: {node: '>=10'} - hasBin: true - - nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - - next@14.1.4: - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true - - nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true - - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true - - node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-registry-url@2.0.0: - resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - - npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - - npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-install-checks@4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} - engines: {node: '>=10'} - - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - - npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} - - npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} - hasBin: true - - npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-pick-manifest@6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} - - npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-registry-fetch@12.0.2: - resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - - npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-transform@1.3.0: - resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} - engines: {node: '>=12.10.0'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - pacote@12.0.3: - resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true - - pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-conflict-json@2.0.2: - resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - - parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - - parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-absolute@1.0.1: - resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} - engines: {node: '>=4'} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-name@1.0.0: - resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - - path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} - - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} - - path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - - path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} - - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} - - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - - postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - - postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-unused@5.1.0: - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-loader@7.3.4: - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - - postcss-loader@8.1.1: - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - postcss-merge-idents@5.1.1: - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-modules-extract-imports@3.0.0: - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.0.4: - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.1.1: - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-idents@5.2.0: - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} - - postcss-sort-media-queries@4.4.1: - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 - - postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss-zindex@5.1.0: - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-tailwindcss@0.5.12: - resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - prettier-plugin-twig-melody: - optional: true - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} - - pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - - print-diff@1.0.0: - resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} - engines: {node: '>=8.3'} - - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - - prism-react-renderer@2.3.1: - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0 || 18' - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - proc-log@1.0.0: - resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} - - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - qs@6.12.0: - resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} - engines: {node: '>=0.6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - - rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - - ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - - randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-dev-utils@12.0.1: - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 - - react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-helmet-async@1.3.0: - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - - react-helmet-async@2.0.4: - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - react-json-view-lite@1.3.0: - resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 - - react-loadable-ssr-addon-v5-slorber@1.0.1: - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - - react-player@2.15.1: - resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} - peerDependencies: - react: '>=16.6.0 || 18' - - react-router-config@5.1.1: - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15 || 18' - react-router: '>=5' - - react-router-dom@5.3.4: - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15 || 18' - - react-router@5.3.4: - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15 || 18' - - react-string-replace@1.1.1: - resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} - engines: {node: '>=0.12.0'} - - react-universal-interface@0.6.2: - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' - - react-use@17.5.0: - resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} - peerDependencies: - react: '*' - react-dom: '*' - - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - read-cmd-shim@3.0.1: - resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - read-ini-file@4.0.0: - resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} - engines: {node: '>=14.6'} - - read-package-json-fast@2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} - engines: {node: '>=10'} - - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - - read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - - realpath-missing@1.1.0: - resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} - engines: {node: '>=10'} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} - - redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - - remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} - - remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - - remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} - - right-pad@1.0.1: - resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} - engines: {node: '>= 0.10'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true - - rtl-css-js@1.16.1: - resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} - - rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - - rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true - - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} - engines: {node: '>=12'} - - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} - - sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - sbd@1.0.19: - resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} - - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - - scoped-regex@2.1.0: - resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} - engines: {node: '>=8'} - - screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - - search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-harmonic-interval@1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - - skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - socks-proxy-agent@6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} - engines: {node: '>= 10'} - - socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} - - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - - socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - - sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - - sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} - - sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - - source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - - ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - - stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} - - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - - stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} - - stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} - - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} - - stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} - - strip-bom-stream@2.0.0: - resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} - engines: {node: '>=0.10.0'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-comments-strings@1.2.0: - resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - - style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - - style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} - - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - syncpack@12.3.0: - resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} - engines: {node: '>=16'} - hasBin: true - - tailwindcss@3.4.1: - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} - engines: {node: '>=14.0.0'} - hasBin: true - - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} - engines: {node: '>=0.8'} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - - tightrope@0.1.0: - resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} - engines: {node: '>=14'} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - treeverse@1.0.4: - resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} - - trie-search@2.0.0: - resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-easing@0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-jest@29.1.2: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - ts-loader@9.5.1: - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} - - union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} - - unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - - url-loader@4.1.1: - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - - validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - - vinyl-file@3.0.0: - resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} - engines: {node: '>=4'} - - vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - - vscode-uri@3.0.6: - resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - walk-up-path@1.0.0: - resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true - - webpack-cli@5.1.4: - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true - - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-middleware@7.1.1: - resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-dev-server@5.0.4: - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpackbar@5.0.2: - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} - engines: {node: '>= 12.0.0'} - - winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} - - workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - write-yaml-file@5.0.0: - resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} - engines: {node: '>=16.14'} - - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yeoman-environment@3.19.3: - resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} - engines: {node: '>=12.10.0'} - hasBin: true - - yeoman-generator@5.10.0: - resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} - engines: {node: '>=12.10.0'} - peerDependencies: - yeoman-environment: ^3.2.0 - peerDependenciesMeta: - yeoman-environment: - optional: true - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -9692,105 +782,161 @@ snapshots: - '@algolia/client-search' - algoliasearch - search-insights + dev: false - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch + dev: false - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 + dev: false - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' dependencies: '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 + dev: false - '@algolia/cache-browser-local-storage@4.22.1': + /@algolia/cache-browser-local-storage@4.22.1: + resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} dependencies: '@algolia/cache-common': 4.22.1 + dev: false - '@algolia/cache-common@4.22.1': {} + /@algolia/cache-common@4.22.1: + resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + dev: false - '@algolia/cache-in-memory@4.22.1': + /@algolia/cache-in-memory@4.22.1: + resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} dependencies: '@algolia/cache-common': 4.22.1 + dev: false - '@algolia/client-account@4.22.1': + /@algolia/client-account@4.22.1: + resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-analytics@4.22.1': + /@algolia/client-analytics@4.22.1: + resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-common@4.22.1': + /@algolia/client-common@4.22.1: + resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} dependencies: '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-personalization@4.22.1': + /@algolia/client-personalization@4.22.1: + resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-search@4.22.1': + /@algolia/client-search@4.22.1: + resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - '@algolia/events@4.0.1': {} + /@algolia/events@4.0.1: + resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + dev: false - '@algolia/logger-common@4.22.1': {} + /@algolia/logger-common@4.22.1: + resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + dev: false - '@algolia/logger-console@4.22.1': + /@algolia/logger-console@4.22.1: + resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} dependencies: '@algolia/logger-common': 4.22.1 + dev: false - '@algolia/requester-browser-xhr@4.22.1': + /@algolia/requester-browser-xhr@4.22.1: + resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} dependencies: '@algolia/requester-common': 4.22.1 + dev: false - '@algolia/requester-common@4.22.1': {} + /@algolia/requester-common@4.22.1: + resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + dev: false - '@algolia/requester-node-http@4.22.1': + /@algolia/requester-node-http@4.22.1: + resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} dependencies: '@algolia/requester-common': 4.22.1 + dev: false - '@algolia/transporter@4.22.1': + /@algolia/transporter@4.22.1: + resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} dependencies: '@algolia/cache-common': 4.22.1 '@algolia/logger-common': 4.22.1 '@algolia/requester-common': 4.22.1 + dev: false - '@alloc/quick-lru@5.2.0': {} + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true - '@ampproject/remapping@2.3.0': + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.2': + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - '@babel/compat-data@7.24.1': {} + /@babel/compat-data@7.24.1: + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} - '@babel/core@7.24.3': + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 @@ -9810,22 +956,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.1': + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-compilation-targets@7.23.6': + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 @@ -9833,7 +987,11 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': + /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -9846,14 +1004,21 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -9864,26 +1029,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.22.20': {} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - '@babel/helper-hoist-variables@7.22.5': + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.23.0': + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.24.3': + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -9892,51 +1071,79 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-optimise-call-expression@7.22.5': + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-plugin-utils@7.24.0': {} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-simple-access@7.22.5': + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-split-export-declaration@7.22.6': + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - '@babel/helper-string-parser@7.24.1': {} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': {} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': {} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.0 - '@babel/helpers@7.24.1': + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 @@ -9944,151 +1151,252 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/highlight@7.24.2': + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/parser@7.24.1': + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: '@babel/types': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)': + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -10096,37 +1404,61 @@ snapshots: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10138,95 +1470,159 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-hoist-variables': 7.22.5 @@ -10234,36 +1630,60 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -10271,37 +1691,61 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10309,27 +1753,47 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10338,24 +1802,40 @@ snapshots: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)': + /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 @@ -10366,34 +1846,59 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: false - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10401,30 +1906,50 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/preset-env@7.24.3(@babel/core@7.24.3)': + /@babel/preset-env@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -10510,14 +2035,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)': + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - '@babel/preset-react@7.24.1(@babel/core@7.24.3)': + /@babel/preset-react@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -10527,7 +2059,11 @@ snapshots: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': + /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -10536,24 +2072,34 @@ snapshots: '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - '@babel/regjsgen@0.8.0': {} + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime-corejs3@7.24.1': + /@babel/runtime-corejs3@7.24.1: + resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} + engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.36.1 regenerator-runtime: 0.14.1 + dev: false - '@babel/runtime@7.24.1': + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.0': + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - '@babel/traverse@7.24.1': + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 @@ -10568,34 +2114,67 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - '@bcoe/v8-coverage@0.2.3': {} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@colors/colors@1.5.0': + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: false optional: true - '@colors/colors@1.6.0': {} + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: true - '@dabh/diagnostics@2.0.3': + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} dependencies: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - '@discoveryjs/json-ext@0.5.7': {} + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} - '@docsearch/css@3.6.0': {} + /@docsearch/css@3.6.0: + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + dev: false - '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)': + /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -10607,8 +2186,15 @@ snapshots: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' + dev: false - '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -10663,7 +2249,7 @@ snapshots: react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0) react-router: 5.3.4(react@18.2.0) react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) @@ -10699,20 +2285,32 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/cssnano-preset@3.1.1': + /@docusaurus/cssnano-preset@3.1.1: + resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} + engines: {node: '>=18.0'} dependencies: cssnano-preset-advanced: 5.3.10(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 4.4.1(postcss@8.4.38) tslib: 2.6.2 + dev: false - '@docusaurus/logger@3.1.1': + /@docusaurus/logger@3.1.1: + resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} + engines: {node: '>=18.0'} dependencies: chalk: 4.1.2 tslib: 2.6.2 + dev: false - '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 @@ -10749,8 +2347,13 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10761,7 +2364,7 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -10769,7 +2372,12 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -10807,8 +2415,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -10844,8 +2458,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10874,8 +2494,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10902,8 +2528,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10928,8 +2560,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10955,8 +2593,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10981,8 +2625,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -11012,8 +2662,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': + /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): + resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -11050,14 +2706,23 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/react-loadable@5.5.2(react@18.2.0)': + /@docusaurus/react-loadable@5.5.2(react@18.2.0): + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' dependencies: '@types/react': 18.2.71 prop-types: 15.8.1 react: 18.2.0 - '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11104,8 +2769,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11142,8 +2813,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': + /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): + resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -11184,13 +2861,22 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false + patched: true - '@docusaurus/theme-translations@3.1.1': + /@docusaurus/theme-translations@3.1.1: + resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} + engines: {node: '>=18.0'} dependencies: fs-extra: 11.2.0 tslib: 2.6.2 + dev: false - '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -11210,12 +2896,22 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)': + /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1): + resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true dependencies: '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 + dev: false - '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': + /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): + resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} + engines: {node: '>=18.0'} dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2) @@ -11229,8 +2925,16 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': + /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): + resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11256,97 +2960,232 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)': + /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0): + resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} + peerDependencies: + effect: 2.0.0-next.62 + fast-check: ^3.13.2 dependencies: effect: 2.0.0-next.62 fast-check: 3.15.0 + dev: true - '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)': + /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0): + resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} + engines: {node: '>=10.13.0'} + peerDependencies: + html-webpack-plugin: '>=5' + webpack: '>=5' dependencies: escape-string-regexp: 4.0.0 html-webpack-plugin: 5.6.0(webpack@5.91.0) slash: 3.0.0 source-map-url: 0.4.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - '@esbuild/aix-ppc64@0.20.2': + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true optional: true - '@esbuild/android-arm64@0.20.2': + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-arm@0.20.2': + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-x64@0.20.2': + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true - '@esbuild/darwin-arm64@0.20.2': + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/darwin-x64@0.20.2': + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/freebsd-arm64@0.20.2': + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/freebsd-x64@0.20.2': + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/linux-arm64@0.20.2': + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-arm@0.20.2': + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ia32@0.20.2': + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-loong64@0.20.2': + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-mips64el@0.20.2': + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ppc64@0.20.2': + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-riscv64@0.20.2': + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-s390x@0.20.2': + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-x64@0.20.2': + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/netbsd-x64@0.20.2': + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true - '@esbuild/openbsd-x64@0.20.2': + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true - '@esbuild/sunos-x64@0.20.2': + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true - '@esbuild/win32-arm64@0.20.2': + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-ia32@0.20.2': + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-x64@0.20.2': + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -11360,35 +3199,62 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fortawesome/fontawesome-common-types@6.5.1': {} + /@fortawesome/fontawesome-common-types@6.5.1: + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + requiresBuild: true + dev: false - '@fortawesome/fontawesome-svg-core@6.5.1': + /@fortawesome/fontawesome-svg-core@6.5.1: + resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + engines: {node: '>=6'} + requiresBuild: true dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 + dev: false - '@fortawesome/free-solid-svg-icons@6.5.1': + /@fortawesome/free-solid-svg-icons@6.5.1: + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + requiresBuild: true dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 + dev: false - '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)': + /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3 || 18' dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 prop-types: 15.8.1 react: 18.2.0 + dev: false - '@gar/promisify@1.1.3': {} + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@gwhitney/detect-indent@7.0.1': {} + /@gwhitney/detect-indent@7.0.1: + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + dev: true - '@hapi/hoek@9.3.0': {} + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - '@hapi/topo@5.1.0': + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} dependencies: '@hapi/hoek': 9.3.0 - '@humanwhocodes/config-array@0.11.14': + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -11396,32 +3262,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@humanwhocodes/module-importer@1.0.1': {} + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.2': {} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - '@isaacs/cliui@8.0.2': + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 - '@isaacs/string-locale-compare@1.1.0': {} + /@isaacs/string-locale-compare@1.1.0: + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@istanbuljs/load-nyc-config@1.1.0': + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 + dev: true - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/console@29.7.0': + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -11429,8 +3309,16 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 + dev: true - '@jest/core@29.7.0(ts-node@10.9.2)': + /@jest/core@29.7.0(ts-node@10.9.2): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -11464,26 +3352,38 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - '@jest/environment@29.7.0': + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-mock: 29.7.0 + dev: true - '@jest/expect-utils@29.7.0': + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: true - '@jest/expect@29.7.0': + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/fake-timers@29.7.0': + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -11491,8 +3391,11 @@ snapshots: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - '@jest/globals@29.7.0': + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -11500,8 +3403,16 @@ snapshots: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/reporters@29.7.0': + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -11529,32 +3440,46 @@ snapshots: v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - '@jest/source-map@29.6.3': + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 + dev: true - '@jest/test-result@29.7.0': + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + dev: true - '@jest/test-sequencer@29.7.0': + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 + dev: true - '@jest/transform@29.7.0': + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.24.3 '@jest/types': 29.6.3 @@ -11573,8 +3498,11 @@ snapshots: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + dev: true - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 @@ -11583,44 +3511,61 @@ snapshots: '@types/yargs': 17.0.32 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': {} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - '@leichtgewicht/ip-codec@2.0.4': {} + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - '@mdx-js/loader@3.0.1(webpack@5.91.0)': + /@mdx-js/loader@3.0.1(webpack@5.91.0): + resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} + peerDependencies: + webpack: '>=5' dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color + dev: false - '@mdx-js/mdx@3.0.1': + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -11648,66 +3593,150 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)': + /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0): + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16 || 18' dependencies: '@types/mdx': 2.0.12 '@types/react': 18.2.71 react: 18.2.0 + dev: false - '@msgpack/msgpack@2.8.0': {} + /@msgpack/msgpack@2.8.0: + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} - '@next/env@14.1.4': {} + /@next/env@14.1.4: + resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} + dev: false - '@next/eslint-plugin-next@14.1.4': + /@next/eslint-plugin-next@14.1.4: + resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} dependencies: glob: 10.3.10 + dev: true - '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)': + /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1): + resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true dependencies: '@mdx-js/loader': 3.0.1(webpack@5.91.0) '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0) source-map: 0.7.4 + dev: false - '@next/swc-darwin-arm64@14.1.4': + /@next/swc-darwin-arm64@14.1.4: + resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@next/swc-darwin-x64@14.1.4': + /@next/swc-darwin-x64@14.1.4: + resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-arm64-gnu@14.1.4': + /@next/swc-linux-arm64-gnu@14.1.4: + resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-arm64-musl@14.1.4': + /@next/swc-linux-arm64-musl@14.1.4: + resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-x64-gnu@14.1.4': + /@next/swc-linux-x64-gnu@14.1.4: + resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-x64-musl@14.1.4': + /@next/swc-linux-x64-musl@14.1.4: + resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-arm64-msvc@14.1.4': + /@next/swc-win32-arm64-msvc@14.1.4: + resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-ia32-msvc@14.1.4': + /@next/swc-win32-ia32-msvc@14.1.4: + resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-x64-msvc@14.1.4': + /@next/swc-win32-x64-msvc@14.1.4: + resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/arborist@4.3.1': + /@npmcli/arborist@4.3.1: + resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true dependencies: '@isaacs/string-locale-compare': 1.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -11745,21 +3774,27 @@ snapshots: - bluebird - supports-color - '@npmcli/fs@1.1.1': + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - '@npmcli/fs@2.1.2': + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - '@npmcli/fs@3.1.0': + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.6.0 - '@npmcli/git@2.1.0': + /@npmcli/git@2.1.0: + resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} dependencies: '@npmcli/promise-spawn': 1.3.2 lru-cache: 6.0.0 @@ -11772,7 +3807,9 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/git@4.1.0': + /@npmcli/git@4.1.0: + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 6.0.2 lru-cache: 7.18.3 @@ -11785,24 +3822,34 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/installed-package-contents@1.0.7': + /@npmcli/installed-package-contents@1.0.7: + resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} + engines: {node: '>= 10'} + hasBin: true dependencies: npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - '@npmcli/installed-package-contents@2.0.2': + /@npmcli/installed-package-contents@2.0.2: + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - '@npmcli/map-workspaces@2.0.4': + /@npmcli/map-workspaces@2.0.4: + resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@npmcli/name-from-folder': 1.0.1 glob: 8.1.0 minimatch: 5.1.6 read-package-json-fast: 2.0.3 - '@npmcli/metavuln-calculator@2.0.0': + /@npmcli/metavuln-calculator@2.0.0: + resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: cacache: 15.3.0 json-parse-even-better-errors: 2.3.1 @@ -11812,35 +3859,50 @@ snapshots: - bluebird - supports-color - '@npmcli/move-file@1.1.2': + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/move-file@2.0.1': + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/name-from-folder@1.0.1': {} + /@npmcli/name-from-folder@1.0.1: + resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} - '@npmcli/node-gyp@1.0.3': {} + /@npmcli/node-gyp@1.0.3: + resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} - '@npmcli/node-gyp@3.0.0': {} + /@npmcli/node-gyp@3.0.0: + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/package-json@1.0.1': + /@npmcli/package-json@1.0.1: + resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} dependencies: json-parse-even-better-errors: 2.3.1 - '@npmcli/promise-spawn@1.3.2': + /@npmcli/promise-spawn@1.3.2: + resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} dependencies: infer-owner: 1.0.4 - '@npmcli/promise-spawn@6.0.2': + /@npmcli/promise-spawn@6.0.2: + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: which: 3.0.1 - '@npmcli/run-script@2.0.0': + /@npmcli/run-script@2.0.0: + resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} dependencies: '@npmcli/node-gyp': 1.0.3 '@npmcli/promise-spawn': 1.3.2 @@ -11850,7 +3912,9 @@ snapshots: - bluebird - supports-color - '@npmcli/run-script@6.0.2': + /@npmcli/run-script@6.0.2: + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 @@ -11861,11 +3925,13 @@ snapshots: - bluebird - supports-color - '@octokit/auth-token@2.5.0': + /@octokit/auth-token@2.5.0: + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} dependencies: '@octokit/types': 6.41.0 - '@octokit/core@3.6.0': + /@octokit/core@3.6.0: + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -11877,13 +3943,15 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/endpoint@6.0.12': + /@octokit/endpoint@6.0.12: + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - '@octokit/graphql@4.8.0': + /@octokit/graphql@4.8.0: + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -11891,30 +3959,42 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/openapi-types@12.11.0': {} + /@octokit/openapi-types@12.11.0: + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)': + /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 - '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)': + /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 3.6.0 - '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)': + /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 deprecation: 2.3.1 - '@octokit/request-error@2.1.0': + /@octokit/request-error@2.1.0: + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 once: 1.4.0 - '@octokit/request@5.6.3': + /@octokit/request@5.6.3: + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -11925,7 +4005,8 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/rest@18.12.0': + /@octokit/rest@18.12.0: + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -11934,19 +4015,30 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/types@6.41.0': + /@octokit/types@6.41.0: + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} dependencies: '@octokit/openapi-types': 12.11.0 - '@pkgjs/parseargs@0.11.0': + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true optional: true - '@pnpm/cli-meta@5.0.1': + /@pnpm/cli-meta@5.0.1: + resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 load-json-file: 6.2.0 + dev: true - '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)': + /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/cli-meta': 5.0.1 '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) @@ -11959,10 +4051,15 @@ snapshots: '@pnpm/types': 9.1.0 chalk: 4.1.2 load-json-file: 6.2.0 + dev: true - '@pnpm/config.env-replace@1.1.0': {} + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} - '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)': + /@pnpm/config@18.4.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/constants': 7.1.0 @@ -11982,44 +4079,80 @@ snapshots: normalize-registry-url: 2.0.0 path-absolute: 1.0.1 path-name: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 read-ini-file: 4.0.0 realpath-missing: 1.1.0 which: 3.0.1 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/constants@6.2.0': {} + /@pnpm/constants@6.2.0: + resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} + engines: {node: '>=14.6'} + dev: false - '@pnpm/constants@7.1.0': {} + /@pnpm/constants@7.1.0: + resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/constants@7.1.1': {} + /@pnpm/constants@7.1.1: + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/constants@8.0.0': {} + /@pnpm/constants@8.0.0: + resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)': + /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 10.0.0 + dev: false - '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)': + /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/crypto.base32-hash@3.0.0': + /@pnpm/crypto.base32-hash@3.0.0: + resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} + engines: {node: '>=18.12'} dependencies: rfc4648: 1.5.3 + dev: false - '@pnpm/dedupe.issues-renderer@1.0.0': + /@pnpm/dedupe.issues-renderer@1.0.0: + resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/dedupe.types': 1.0.0 archy: 1.0.0 chalk: 4.1.2 + dev: true - '@pnpm/dedupe.types@1.0.0': {} + /@pnpm/dedupe.types@1.0.0: + resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)': + /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) @@ -12035,37 +4168,57 @@ snapshots: normalize-path: 3.0.0 pretty-bytes: 5.6.0 pretty-ms: 7.0.1 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 right-pad: 1.0.1 rxjs: 7.8.1 semver: 7.6.0 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 + dev: true - '@pnpm/dependency-path@3.0.0': + /@pnpm/dependency-path@3.0.0: + resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} + engines: {node: '>=18.12'} dependencies: '@pnpm/crypto.base32-hash': 3.0.0 '@pnpm/types': 10.0.0 semver: 7.6.0 + dev: false - '@pnpm/error@4.0.1': + /@pnpm/error@4.0.1: + resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} + engines: {node: '>=14.6'} dependencies: '@pnpm/constants': 6.2.0 + dev: false - '@pnpm/error@5.0.1': + /@pnpm/error@5.0.1: + resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/constants': 7.1.0 + dev: true - '@pnpm/error@5.0.3': + /@pnpm/error@5.0.3: + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/constants': 7.1.1 + dev: true - '@pnpm/error@6.0.0': + /@pnpm/error@6.0.0: + resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} + engines: {node: '>=18.12'} dependencies: '@pnpm/constants': 8.0.0 + dev: false - '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)': + /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0) '@pnpm/fetching-types': 6.0.0 @@ -12073,30 +4226,42 @@ snapshots: '@pnpm/network.agent': 1.0.1 '@pnpm/types': 10.0.0 '@zkochan/retry': 0.2.0 - node-fetch: '@pnpm/node-fetch@1.0.0' + node-fetch: /@pnpm/node-fetch@1.0.0 transitivePeerDependencies: - domexception - supports-color + dev: false - '@pnpm/fetcher-base@14.0.1': + /@pnpm/fetcher-base@14.0.1: + resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 '@types/ssri': 7.1.5 + dev: true - '@pnpm/fetching-types@6.0.0': + /@pnpm/fetching-types@6.0.0: + resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} + engines: {node: '>=18.12'} dependencies: '@zkochan/retry': 0.2.0 - node-fetch: '@pnpm/node-fetch@1.0.0' + node-fetch: /@pnpm/node-fetch@1.0.0 transitivePeerDependencies: - domexception + dev: false - '@pnpm/find-workspace-dir@6.0.3': + /@pnpm/find-workspace-dir@6.0.3: + resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/error': 5.0.3 find-up: 5.0.0 + dev: true - '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)': + /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0) '@pnpm/constants': 7.1.0 @@ -12106,49 +4271,75 @@ snapshots: read-yaml-file: 2.1.0 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/fs.find-packages@2.0.1': + /@pnpm/fs.find-packages@2.0.1: + resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} + engines: {node: '>=16.14'} dependencies: '@pnpm/read-project-manifest': 5.0.1 '@pnpm/types': 9.1.0 '@pnpm/util.lex-comparator': 1.0.0 fast-glob: 3.3.2 p-filter: 2.1.0 + dev: true - '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)': + /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} + engines: {node: '>=18.12'} dependencies: '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0) '@pnpm/resolver-base': 12.0.0 graceful-git: 3.1.2 - hosted-git-info: '@pnpm/hosted-git-info@1.0.0' + hosted-git-info: /@pnpm/hosted-git-info@1.0.0 semver: 7.6.0 transitivePeerDependencies: - '@pnpm/logger' - domexception - supports-color + dev: false - '@pnpm/git-utils@1.0.0': + /@pnpm/git-utils@1.0.0: + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} dependencies: - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 + dev: true - '@pnpm/git-utils@2.0.0': + /@pnpm/git-utils@2.0.0: + resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} + engines: {node: '>=18.12'} dependencies: - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 + dev: false - '@pnpm/graceful-fs@3.0.0': + /@pnpm/graceful-fs@3.0.0: + resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} + engines: {node: '>=16.14'} dependencies: graceful-fs: 4.2.11 + dev: true - '@pnpm/hooks.types@1.0.1': + /@pnpm/hooks.types@1.0.1: + resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/lockfile-types': 5.1.0 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/hosted-git-info@1.0.0': + /@pnpm/hosted-git-info@1.0.0: + resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} + engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 + dev: false - '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)': + /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/constants': 8.0.0 '@pnpm/dependency-path': 3.0.0 @@ -12163,9 +4354,9 @@ snapshots: '@pnpm/util.lex-comparator': 3.0.0 '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 - js-yaml: '@zkochan/js-yaml@0.0.7' + js-yaml: /@zkochan/js-yaml@0.0.7 normalize-path: 3.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 semver: 7.6.0 sort-keys: 4.2.0 strip-bom: 4.0.0 @@ -12173,16 +4364,25 @@ snapshots: transitivePeerDependencies: - domexception - supports-color + dev: false - '@pnpm/lockfile-types@5.1.0': + /@pnpm/lockfile-types@5.1.0: + resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 + dev: true - '@pnpm/lockfile-types@6.0.0': + /@pnpm/lockfile-types@6.0.0: + resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} + engines: {node: '>=18.12'} dependencies: '@pnpm/types': 10.0.0 + dev: false - '@pnpm/lockfile-utils@10.0.0': + /@pnpm/lockfile-utils@10.0.0: + resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} + engines: {node: '>=18.12'} dependencies: '@pnpm/dependency-path': 3.0.0 '@pnpm/lockfile-types': 6.0.0 @@ -12190,33 +4390,48 @@ snapshots: '@pnpm/resolver-base': 12.0.0 '@pnpm/types': 10.0.0 get-npm-tarball-url: 2.1.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 + dev: false - '@pnpm/logger@5.0.0': + /@pnpm/logger@5.0.0: + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} dependencies: bole: 5.0.11 ndjson: 2.0.0 - '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)': + /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} + engines: {node: '>=16.14'} dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/types': 9.1.0 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/matcher@5.0.0': + /@pnpm/matcher@5.0.0: + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} + engines: {node: '>=16.14'} dependencies: escape-string-regexp: 4.0.0 + dev: true - '@pnpm/merge-lockfile-changes@6.0.0': + /@pnpm/merge-lockfile-changes@6.0.0: + resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} + engines: {node: '>=18.12'} dependencies: '@pnpm/lockfile-types': 6.0.0 comver-to-semver: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 semver: 7.6.0 + dev: false - '@pnpm/meta-updater@1.0.0': + /@pnpm/meta-updater@1.0.0: + resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} + engines: {node: '>=10.12'} + hasBin: true dependencies: '@pnpm/find-workspace-dir': 6.0.3 '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0) @@ -12227,8 +4442,11 @@ snapshots: print-diff: 1.0.0 ramda: 0.29.1 write-json-file: 5.0.0 + dev: true - '@pnpm/network.agent@1.0.1': + /@pnpm/network.agent@1.0.1: + resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} + engines: {node: '>=12.22.0'} dependencies: '@pnpm/network.config': 1.0.1 '@pnpm/network.proxy-agent': 1.0.1 @@ -12236,16 +4454,24 @@ snapshots: lru-cache: 7.10.1 transitivePeerDependencies: - supports-color + dev: false - '@pnpm/network.ca-file@1.0.2': + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} dependencies: graceful-fs: 4.2.10 - '@pnpm/network.config@1.0.1': + /@pnpm/network.config@1.0.1: + resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} + engines: {node: '>=12.22.0'} dependencies: nerf-dart: 1.0.0 + dev: false - '@pnpm/network.proxy-agent@1.0.1': + /@pnpm/network.proxy-agent@1.0.1: + resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} + engines: {node: '>=12.22.0'} dependencies: '@pnpm/error': 4.0.1 http-proxy-agent: 5.0.0 @@ -12254,40 +4480,62 @@ snapshots: socks-proxy-agent: 6.1.1 transitivePeerDependencies: - supports-color + dev: false - '@pnpm/node-fetch@1.0.0': + /@pnpm/node-fetch@1.0.0: + resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} + engines: {node: ^10.17 || >=12.3} dependencies: data-uri-to-buffer: 3.0.1 fetch-blob: 2.1.2 transitivePeerDependencies: - domexception + dev: false - '@pnpm/npm-conf@2.2.0': + /@pnpm/npm-conf@2.2.0: + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: true - '@pnpm/npm-conf@2.2.2': + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: false - '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)': + /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 detect-libc: 2.0.3 - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 mem: 8.1.1 semver: 7.6.0 + dev: true - '@pnpm/pick-fetcher@3.0.0': {} + /@pnpm/pick-fetcher@3.0.0: + resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)': + /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 @@ -12298,10 +4546,14 @@ snapshots: '@pnpm/types': 9.1.0 chalk: 4.1.2 path-absolute: 1.0.1 + dev: true - '@pnpm/ramda@0.28.1': {} + /@pnpm/ramda@0.28.1: + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - '@pnpm/read-project-manifest@5.0.1': + /@pnpm/read-project-manifest@5.0.1: + resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} + engines: {node: '>=16.14'} dependencies: '@gwhitney/detect-indent': 7.0.1 '@pnpm/error': 5.0.1 @@ -12316,69 +4568,116 @@ snapshots: read-yaml-file: 2.1.0 sort-keys: 4.2.0 strip-bom: 4.0.0 + dev: true - '@pnpm/render-peer-issues@4.0.1': + /@pnpm/render-peer-issues@4.0.1: + resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 archy: 1.0.0 chalk: 4.1.2 cli-columns: 4.0.0 + dev: true - '@pnpm/resolver-base@10.0.1': + /@pnpm/resolver-base@10.0.1: + resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 + dev: true - '@pnpm/resolver-base@12.0.0': + /@pnpm/resolver-base@12.0.0: + resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} + engines: {node: '>=18.12'} dependencies: '@pnpm/types': 10.0.0 + dev: false - '@pnpm/store-controller-types@15.0.1': + /@pnpm/store-controller-types@15.0.1: + resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/fetcher-base': 14.0.1 '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/text.comments-parser@2.0.0': + /@pnpm/text.comments-parser@2.0.0: + resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} + engines: {node: '>=16.14'} dependencies: strip-comments-strings: 1.2.0 + dev: true - '@pnpm/types@10.0.0': {} + /@pnpm/types@10.0.0: + resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/types@9.1.0': {} + /@pnpm/types@9.1.0: + resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/types@9.4.2': {} + /@pnpm/types@9.4.2: + resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/util.lex-comparator@1.0.0': {} + /@pnpm/util.lex-comparator@1.0.0: + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + dev: true - '@pnpm/util.lex-comparator@3.0.0': {} + /@pnpm/util.lex-comparator@3.0.0: + resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/write-project-manifest@5.0.1': + /@pnpm/write-project-manifest@5.0.1: + resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/text.comments-parser': 2.0.0 '@pnpm/types': 9.1.0 json5: 2.2.3 write-file-atomic: 5.0.1 write-yaml-file: 5.0.0 + dev: true - '@polka/url@1.0.0-next.25': {} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: false - '@rushstack/eslint-patch@1.8.0': {} + /@rushstack/eslint-patch@1.8.0: + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} + dev: true - '@sideway/address@4.1.5': + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: '@hapi/hoek': 9.3.0 - '@sideway/formula@3.0.1': {} + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - '@sideway/pinpoint@2.0.0': {} + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@sigstore/bundle@1.1.0': + /@sigstore/bundle@1.1.0: + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/protobuf-specs@0.2.1': {} + /@sigstore/protobuf-specs@0.2.1: + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@sigstore/sign@1.0.0': + /@sigstore/sign@1.0.0: + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -12386,112 +4685,210 @@ snapshots: transitivePeerDependencies: - supports-color - '@sigstore/tuf@1.0.3': + /@sigstore/tuf@1.0.3: + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/protobuf-specs': 0.2.1 tuf-js: 1.1.7 transitivePeerDependencies: - supports-color - '@sinclair/typebox@0.27.8': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@4.6.0': {} + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: false - '@sindresorhus/is@5.6.0': {} + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: false - '@sinonjs/commons@2.0.0': + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/commons@3.0.1': + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/fake-timers@10.3.0': + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.1 + dev: true - '@sinonjs/fake-timers@11.2.2': + /@sinonjs/fake-timers@11.2.2: + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} dependencies: '@sinonjs/commons': 3.0.1 + dev: true - '@sinonjs/samsam@8.0.0': + /@sinonjs/samsam@8.0.0: + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 + dev: true - '@sinonjs/text-encoding@0.7.2': {} + /@sinonjs/text-encoding@0.7.2: + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + dev: true - '@slorber/remark-comment@1.0.0': + /@slorber/remark-comment@1.0.0: + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} dependencies: micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 + dev: false - '@slorber/static-site-generator-webpack-plugin@4.0.7': + /@slorber/static-site-generator-webpack-plugin@4.0.7: + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 + dev: false - '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3): + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-preset@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3) @@ -12502,8 +4899,13 @@ snapshots: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3) + dev: false - '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)': + /@svgr/babel-preset@8.1.0(@babel/core@7.24.3): + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3) @@ -12514,8 +4916,11 @@ snapshots: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) + dev: true - '@svgr/core@6.5.1': + /@svgr/core@6.5.1: + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -12524,8 +4929,11 @@ snapshots: cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color + dev: false - '@svgr/core@8.1.0(typescript@5.4.3)': + /@svgr/core@8.1.0(typescript@5.4.3): + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -12535,18 +4943,29 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@svgr/hast-util-to-babel-ast@6.5.1': + /@svgr/hast-util-to-babel-ast@6.5.1: + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} dependencies: '@babel/types': 7.24.0 entities: 4.5.0 + dev: false - '@svgr/hast-util-to-babel-ast@8.0.0': + /@svgr/hast-util-to-babel-ast@8.0.0: + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} dependencies: '@babel/types': 7.24.0 entities: 4.5.0 + dev: true - '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': + /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -12555,8 +4974,13 @@ snapshots: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color + dev: false - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)': + /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -12565,15 +4989,25 @@ snapshots: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color + dev: true - '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': + /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 deepmerge: 4.3.1 svgo: 2.8.0 + dev: false - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)': + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3): + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' dependencies: '@svgr/core': 8.1.0(typescript@5.4.3) cosmiconfig: 8.3.6(typescript@5.4.3) @@ -12581,8 +5015,11 @@ snapshots: svgo: 3.2.0 transitivePeerDependencies: - typescript + dev: true - '@svgr/webpack@6.5.1': + /@svgr/webpack@6.5.1: + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -12594,8 +5031,11 @@ snapshots: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color + dev: false - '@svgr/webpack@8.1.0(typescript@5.4.3)': + /@svgr/webpack@8.1.0(typescript@5.4.3): + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -12608,16 +5048,24 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@swc/helpers@0.5.2': + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 + dev: false - '@szmarczak/http-timer@5.0.1': + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} dependencies: defer-to-connect: 2.0.1 + dev: false - '@testing-library/dom@9.3.4': + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 @@ -12627,342 +5075,504 @@ snapshots: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true - '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)': + /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/runtime': 7.24.1 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true - '@tootallnate/once@1.1.2': {} + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} - '@tootallnate/once@2.0.0': {} + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} - '@trysound/sax@0.2.0': {} + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - '@tsconfig/docusaurus@2.0.2': {} + /@tsconfig/docusaurus@2.0.2: + resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} + dev: true - '@tsconfig/node10@1.0.10': {} + /@tsconfig/node10@1.0.10: + resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} + dev: true - '@tsconfig/node12@1.0.11': {} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true - '@tsconfig/node14@1.0.3': {} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true - '@tsconfig/node16@1.0.4': {} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true - '@tufjs/canonical-json@1.0.0': {} + /@tufjs/canonical-json@1.0.0: + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tufjs/models@1.0.4': + /@tufjs/models@1.0.4: + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/canonical-json': 1.0.0 minimatch: 9.0.3 - '@types/acorn@4.0.6': + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: '@types/estree': 1.0.5 - '@types/aria-query@5.0.4': {} + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 + dev: true - '@types/babel__generator@7.6.8': + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: '@babel/types': 7.24.0 + dev: true - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 + dev: true - '@types/babel__traverse@7.20.5': + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: '@babel/types': 7.24.0 + dev: true - '@types/body-parser@1.19.5': + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 '@types/node': 18.18.2 - '@types/bonjour@3.5.13': + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: '@types/node': 18.18.2 - '@types/chai@4.3.14': {} + /@types/chai@4.3.14: + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - '@types/connect-history-api-fallback@1.5.4': + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.17.43 '@types/node': 18.18.2 - '@types/connect@3.4.38': + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: '@types/node': 18.18.2 - '@types/debug@4.1.12': + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - '@types/eslint-scope@3.7.7': + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: '@types/eslint': 8.56.6 '@types/estree': 1.0.5 - '@types/eslint@8.56.6': + /@types/eslint@8.56.6: + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/estree-jsx@1.0.5': + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} dependencies: '@types/estree': 1.0.5 - '@types/estree@1.0.5': {} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/expect@1.20.4': {} + /@types/expect@1.20.4: + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - '@types/express-serve-static-core@4.17.43': + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: '@types/node': 18.18.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express@4.17.21': + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.14 '@types/serve-static': 1.15.5 - '@types/fs-extra@11.0.4': + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 '@types/node': 18.18.2 + dev: true - '@types/glob@8.1.0': + /@types/glob@8.1.0: + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.18.2 + dev: true - '@types/graceful-fs@4.1.9': + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/gtag.js@0.0.12': {} + /@types/gtag.js@0.0.12: + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + dev: false - '@types/hast@3.0.4': + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: '@types/unist': 3.0.2 - '@types/history@4.7.11': {} + /@types/history@4.7.11: + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - '@types/html-minifier-terser@6.1.0': {} + /@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - '@types/http-cache-semantics@4.0.4': {} + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: false - '@types/http-errors@2.0.4': {} + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/http-proxy@1.17.14': + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: '@types/node': 18.18.2 - '@types/istanbul-lib-coverage@2.0.6': {} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - '@types/istanbul-lib-report@3.0.3': + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports@3.0.4': + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: true - '@types/js-cookie@2.2.7': {} + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false - '@types/js-yaml@4.0.9': {} + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/jsdom@20.0.1': + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: '@types/node': 18.18.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 + dev: true - '@types/json-schema@7.0.15': {} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': {} + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true - '@types/jsonfile@6.1.4': + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/lodash@4.14.181': {} + /@types/lodash@4.14.181: + resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} + dev: true - '@types/lodash@4.17.0': {} + /@types/lodash@4.17.0: + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - '@types/mdast@4.0.3': + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: '@types/unist': 3.0.2 - '@types/mdx-js__react@1.5.8': + /@types/mdx-js__react@1.5.8: + resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/mdx@2.0.12': {} + /@types/mdx@2.0.12: + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} - '@types/mime@1.3.5': {} + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mime@3.0.4': {} + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/minimatch@3.0.5': {} + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimatch@5.1.2': {} + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true - '@types/minimist@1.2.5': {} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - '@types/mocha@10.0.6': {} + /@types/mocha@10.0.6: + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + dev: true - '@types/moo@0.5.9': {} + /@types/moo@0.5.9: + resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} + dev: true - '@types/ms@0.7.34': {} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {} + /@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae): + resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} + dev: true + patched: true - '@types/node-forge@1.3.11': + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: '@types/node': 18.18.2 - '@types/node@15.14.9': {} + /@types/node@15.14.9: + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - '@types/node@17.0.45': {} + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false - '@types/node@18.18.2': {} + /@types/node@18.18.2: + resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} - '@types/normalize-package-data@2.4.4': {} + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/normalize-path@3.0.2': {} + /@types/normalize-path@3.0.2: + resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} + dev: false - '@types/parse-json@4.0.2': {} + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: false - '@types/prismjs@1.26.3': {} + /@types/prismjs@1.26.3: + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + dev: false - '@types/prop-types@15.7.12': {} + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/qs@6.9.14': {} + /@types/qs@6.9.14: + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} - '@types/range-parser@1.2.7': {} + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.2.22': + /@types/react-dom@18.2.22: + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/react-helmet@6.1.11': + /@types/react-helmet@6.1.11: + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/react-router-config@5.0.11': + /@types/react-router-config@5.0.11: + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - '@types/react-router-dom@5.3.3': + /@types/react-router-dom@5.3.3: + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - '@types/react-router@5.1.20': + /@types/react-router@5.1.20: + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 - '@types/react@18.2.71': + /@types/react@18.2.71: + resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} dependencies: '@types/prop-types': 15.7.12 '@types/scheduler': 0.23.0 csstype: 3.1.3 - '@types/retry@0.12.0': {} + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: false - '@types/retry@0.12.2': {} + /@types/retry@0.12.2: + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - '@types/sax@1.2.7': + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: '@types/node': 18.18.2 + dev: false - '@types/sbd@1.0.5': {} + /@types/sbd@1.0.5: + resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} + dev: true - '@types/scheduler@0.23.0': {} + /@types/scheduler@0.23.0: + resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} - '@types/semver@7.5.8': {} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true - '@types/send@0.17.4': + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 '@types/node': 18.18.2 - '@types/serve-index@1.9.4': + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} dependencies: '@types/express': 4.17.21 - '@types/serve-static@1.15.5': + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.18.2 - '@types/sinon@17.0.3': + /@types/sinon@17.0.3: + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} dependencies: '@types/sinonjs__fake-timers': 8.1.5 - '@types/sinonjs__fake-timers@8.1.5': {} + /@types/sinonjs__fake-timers@8.1.5: + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - '@types/sockjs@0.3.36': + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: '@types/node': 18.18.2 - '@types/ssri@7.1.5': + /@types/ssri@7.1.5: + resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/stack-utils@2.0.3': {} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true - '@types/tinycolor2@1.4.6': {} + /@types/tinycolor2@1.4.6: + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + dev: true - '@types/tough-cookie@4.0.5': {} + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true - '@types/triple-beam@1.3.5': {} + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/unist@2.0.10': {} + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - '@types/unist@3.0.2': {} + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - '@types/uuid@8.3.4': {} + /@types/uuid@8.3.4: + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + dev: true - '@types/uuid@9.0.8': {} + /@types/uuid@9.0.8: + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/vinyl@2.0.11': + /@types/vinyl@2.0.11: + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 '@types/node': 18.18.2 - '@types/vscode@1.75.1': {} + /@types/vscode@1.75.1: + resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} + dev: true - '@types/vscode@1.88.0': {} + /@types/vscode@1.88.0: + resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} + dev: false - '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)': + /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): + resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} dependencies: '@types/node': 18.18.2 tapable: 2.2.1 @@ -12972,18 +5582,31 @@ snapshots: - esbuild - uglify-js - webpack-cli + dev: true - '@types/ws@8.5.10': + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: '@types/node': 18.18.2 - '@types/yargs-parser@21.0.3': {} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.32': + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -13001,8 +5624,17 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -13013,8 +5645,17 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 @@ -13025,18 +5666,33 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/scope-manager@6.21.0': + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + dev: true - '@typescript-eslint/scope-manager@7.4.0': + /@typescript-eslint/scope-manager@7.4.0: + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 + dev: true - '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -13046,12 +5702,26 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/types@6.21.0': {} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true - '@typescript-eslint/types@7.4.0': {} + /@typescript-eslint/types@7.4.0: + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)': + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -13064,8 +5734,16 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': + /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 @@ -13078,8 +5756,13 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -13092,20 +5775,30 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/visitor-keys@6.21.0': + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + dev: true - '@typescript-eslint/visitor-keys@7.4.0': + /@typescript-eslint/visitor-keys@7.4.0: + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': {} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vscode/test-electron@2.3.9': + /@vscode/test-electron@2.3.9: + resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} + engines: {node: '>=16'} dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -13113,44 +5806,56 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - '@webassemblyjs/ast@1.12.1': + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - '@webassemblyjs/helper-api-error@1.11.6': {} + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - '@webassemblyjs/helper-buffer@1.12.1': {} + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - '@webassemblyjs/helper-numbers@1.11.6': + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - '@webassemblyjs/helper-wasm-section@1.12.1': + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/ieee754@1.11.6': + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - '@webassemblyjs/wasm-edit@1.12.1': + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -13161,7 +5866,8 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - '@webassemblyjs/wasm-gen@1.12.1': + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -13169,14 +5875,16 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wasm-opt@1.12.1': + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wasm-parser@1.12.1': + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -13185,17 +5893,32 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wast-printer@1.12.1': + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} + engines: {node: '>=14.15.0'} + peerDependencies: + prettier: '*' + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + prettier: + optional: true dependencies: prettier: 3.2.5 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) @@ -13208,125 +5931,207 @@ snapshots: - mem-fs - supports-color - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)': + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - '@xobotyi/scrollbar-width@1.9.5': {} + /@xobotyi/scrollbar-width@1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + dev: false - '@xtuc/ieee754@1.2.0': {} + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - '@xtuc/long@4.2.2': {} + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@zkochan/js-yaml@0.0.7': + /@zkochan/js-yaml@0.0.7: + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true dependencies: argparse: 2.0.1 + dev: false - '@zkochan/retry@0.2.0': {} + /@zkochan/retry@0.2.0: + resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} + engines: {node: '>=10'} + dev: false - '@zkochan/rimraf@2.1.3': + /@zkochan/rimraf@2.1.3: + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} dependencies: rimraf: 3.0.2 + dev: false - '@zkochan/which@2.0.3': + /@zkochan/which@2.0.3: + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - abab@2.0.6: {} + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true - abbrev@1.1.1: {} + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abort-controller@3.0.0: + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-globals@7.0.1: + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 + dev: true - acorn-import-assertions@1.9.0(acorn@8.11.3): + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 dependencies: acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 - acorn-walk@8.3.2: {} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} - acorn@8.11.3: {} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true - address@1.2.2: {} + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: false - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - agentkeepalive@4.2.1: + /agentkeepalive@4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) depd: 1.1.2 humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color + dev: false - agentkeepalive@4.5.0: + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} dependencies: humanize-ms: 1.2.1 - aggregate-error@3.1.0: + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.12.0): + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true dependencies: ajv: 8.12.0 - ajv-keywords@3.5.2(ajv@6.12.6): + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.12.0): + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - algoliasearch-helper@3.16.3(algoliasearch@4.22.1): + /algoliasearch-helper@3.16.3(algoliasearch@4.22.1): + resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.22.1 + dev: false - algoliasearch@4.22.1: + /algoliasearch@4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} dependencies: '@algolia/cache-browser-local-storage': 4.22.1 '@algolia/cache-common': 4.22.1 @@ -13342,96 +6147,157 @@ snapshots: '@algolia/requester-common': 4.22.1 '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - ansi-align@3.0.1: + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 - ansi-colors@4.1.1: {} + /ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true - ansi-colors@4.1.3: {} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true - ansi-diff@1.1.1: + /ansi-diff@1.1.1: + resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} dependencies: ansi-split: 1.0.1 + dev: true - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - ansi-html-community@0.0.8: {} + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true - ansi-regex@3.0.1: {} + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} - ansi-split@1.0.1: + /ansi-split@1.0.1: + resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} dependencies: ansi-regex: 3.0.1 + dev: true - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - any-promise@1.3.0: {} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - aproba@2.0.0: {} + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - archy@1.0.0: {} + /archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: true - are-we-there-yet@2.0.0: + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - are-we-there-yet@3.0.1: + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - arg@4.1.3: {} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true - arg@5.0.2: {} + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.3 + dev: true - aria-query@5.3.0: + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + dev: true - array-buffer-byte-length@1.0.1: + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 + dev: true - array-differ@3.0.0: {} + /array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} - array-flatten@1.1.1: {} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13439,10 +6305,15 @@ snapshots: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 + dev: true - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - array.prototype.findlast@1.2.5: + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13450,8 +6321,11 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.findlastindex@1.2.5: + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13459,37 +6333,50 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flat@1.3.2: + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flatmap@1.3.2: + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.toreversed@1.1.2: + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.tosorted@1.1.3: + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 + dev: true - arraybuffer.prototype.slice@1.0.3: + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -13499,34 +6386,63 @@ snapshots: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + dev: true - arrify@1.0.1: {} + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true - arrify@2.0.1: {} + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} - as-table@1.0.55: + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} dependencies: printable-characters: 1.0.42 + dev: true - asap@2.0.6: {} + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - assertion-error@2.0.1: {} + /assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + dev: true - ast-types-flow@0.0.8: {} + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true - astring@1.8.6: {} + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true - async@2.6.4: + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: lodash: 4.17.21 + dev: true - async@3.2.5: {} + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true - at-least-node@1.0.0: {} + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: false - autoprefixer@10.4.19(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 @@ -13536,17 +6452,29 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.0.0 + dev: true - axe-core@4.7.0: {} + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true - axobject-query@3.2.1: + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 + dev: true - babel-jest@29.7.0(@babel/core@7.24.3): + /babel-jest@29.7.0(@babel/core@7.24.3): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.24.3 '@jest/transform': 29.7.0 @@ -13558,19 +6486,30 @@ snapshots: slash: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): + /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' dependencies: '@babel/core': 7.24.3 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - babel-plugin-dynamic-import-node@2.3.3: + /babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.5 + dev: false - babel-plugin-istanbul@6.1.1: + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} dependencies: '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 @@ -13579,15 +6518,22 @@ snapshots: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-jest-hoist@29.6.3: + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 + dev: true - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -13596,7 +6542,10 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) @@ -13604,14 +6553,20 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) @@ -13626,34 +6581,55 @@ snapshots: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) + dev: true - babel-preset-jest@29.6.3(@babel/core@7.24.3): + /babel-preset-jest@29.6.3(@babel/core@7.24.3): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3) + dev: true - bail@2.0.2: {} + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - basic-auth@2.0.1: + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} dependencies: safe-buffer: 5.1.2 + dev: true - batch@0.6.1: {} + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - before-after-hook@2.2.3: {} + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-path-resolve@1.0.0: + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 + dev: true - big.js@5.2.2: {} + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: false - bin-links@3.0.3: + /bin-links@3.0.3: + resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: cmd-shim: 5.0.0 mkdirp-infer-owner: 2.0.0 @@ -13662,17 +6638,24 @@ snapshots: rimraf: 3.0.2 write-file-atomic: 4.0.2 - binary-extensions@2.3.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - binaryextensions@4.19.0: {} + /binaryextensions@4.19.0: + resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + engines: {node: '>=0.8'} - bl@4.1.0: + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.2: + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -13689,19 +6672,24 @@ snapshots: transitivePeerDependencies: - supports-color - bole@5.0.11: + /bole@5.0.11: + resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - bonjour-service@1.2.1: + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - boolbase@1.0.0: {} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@5.1.2: + /boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -13711,8 +6699,11 @@ snapshots: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 + dev: true - boxen@6.2.1: + /boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -13722,8 +6713,11 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - boxen@7.1.1: + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -13733,70 +6727,104 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - braces@3.0.2: + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - browser-stdout@1.3.1: {} + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: true - browserslist@4.23.0: + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: caniuse-lite: 1.0.30001600 electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - bs-logger@0.2.6: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 + dev: true - bser@2.1.1: + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.7.1: + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true - builtins@1.0.3: {} + /builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - builtins@5.0.1: + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.6.0 - bundle-name@4.1.0: + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} dependencies: run-applescript: 7.0.0 - busboy@1.6.0: + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 + dev: false - bytes@3.0.0: {} + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - cacache@15.3.0: + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -13819,7 +6847,9 @@ snapshots: transitivePeerDependencies: - bluebird - cacache@16.1.3: + /cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -13842,7 +6872,9 @@ snapshots: transitivePeerDependencies: - bluebird - cacache@17.1.4: + /cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 @@ -13857,9 +6889,14 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - cacheable-lookup@7.0.0: {} + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + dev: false - cacheable-request@10.2.14: + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 @@ -13868,8 +6905,11 @@ snapshots: mimic-response: 4.0.0 normalize-url: 8.0.1 responselike: 3.0.0 + dev: false - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -13877,85 +6917,133 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - camel-case@4.1.2: + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - camelcase-css@2.0.1: {} + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true - camelcase-keys@6.2.2: + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 + dev: true - camelcase-keys@7.0.2: + /camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 + dev: true - camelcase@5.3.1: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true - camelcase@6.3.0: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - camelcase@7.0.1: {} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false - can-write-to-dir@1.1.1: + /can-write-to-dir@1.1.1: + resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} + engines: {node: '>=10.13'} dependencies: path-temp: 2.1.0 + dev: true - caniuse-api@3.0.0: + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 + dev: false - caniuse-lite@1.0.30001600: {} + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - ccount@2.0.1: {} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.1.0: + /chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} dependencies: assertion-error: 2.0.1 check-error: 2.0.0 deep-eql: 5.0.1 loupe: 3.1.0 pathval: 2.0.0 + dev: true - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false - char-regex@1.0.2: {} + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} - character-entities-html4@2.1.0: {} + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@3.0.0: {} + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@2.0.2: {} + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@2.0.1: {} + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@0.7.0: {} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@2.0.0: {} + /check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + dev: true - cheerio-select@2.1.0: + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -13963,8 +7051,11 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 + dev: false - cheerio@1.0.0-rc.12: + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -13973,8 +7064,11 @@ snapshots: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 + dev: false - chokidar@3.5.3: + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -13985,8 +7079,11 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -13998,169 +7095,282 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@2.0.0: {} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} - chrome-trace-event@1.0.3: {} + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} - ci-info@3.9.0: {} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} - ci-info@4.0.0: {} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: true - cjs-module-lexer@1.2.3: {} + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true - clean-css@5.3.3: + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 - clean-regexp@1.0.0: + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} dependencies: escape-string-regexp: 1.0.5 + dev: true - clean-stack@2.2.0: {} + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} - cli-boxes@2.2.1: {} + /cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true - cli-boxes@3.0.0: {} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false - cli-columns@4.0.0: + /cli-columns@4.0.0: + resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} + engines: {node: '>= 10'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - cli-cursor@3.1.0: + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 - cli-spinners@2.9.2: {} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - cli-table3@0.6.4: + /cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} + engines: {node: 10.* || >= 12.*} dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 + dev: false - cli-table@0.3.11: + /cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} dependencies: colors: 1.0.3 - cli-width@3.0.0: {} + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} - client-only@0.0.1: {} + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false - cliui@7.0.4: + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - clone-buffer@1.0.0: {} + /clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} - clone-deep@4.0.1: + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - clone-stats@1.0.0: {} + /clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - clone@1.0.4: {} + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} - clone@2.1.2: {} + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} - cloneable-readable@1.1.3: + /cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 - clsx@2.1.0: {} + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + dev: false - cmd-shim@5.0.0: + /cmd-shim@5.0.0: + resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: mkdirp-infer-owner: 2.0.0 - co@4.6.0: {} + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true - collapse-white-space@2.1.0: {} + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - collect-v8-coverage@1.0.2: {} + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - color-support@1.1.3: {} + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true - color@3.2.1: + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} dependencies: color-convert: 1.9.3 color-string: 1.9.1 - colord@2.9.3: {} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: false - colorette@2.0.20: {} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colors@1.0.3: {} + /colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} - colorspace@1.1.4: + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} dependencies: color: 3.2.1 text-hex: 1.0.0 - combine-promises@1.2.0: {} + /combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + dev: false - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true - comma-separated-tokens@2.0.3: {} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@10.0.1: {} + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} - commander@11.1.0: {} + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true - commander@2.20.3: {} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: {} + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true - commander@5.1.0: {} + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} - commander@7.1.0: {} + /commander@7.1.0: + resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} + engines: {node: '>= 10'} - commander@7.2.0: {} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - commander@8.3.0: {} + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - common-ancestor-path@1.0.1: {} + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - common-path-prefix@3.0.0: {} + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: false - commondir@1.0.1: {} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compressible@2.0.18: + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - compression@1.7.4: + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -14172,50 +7382,83 @@ snapshots: transitivePeerDependencies: - supports-color - comver-to-semver@1.0.0: {} + /comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + dev: false - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - config-chain@1.1.13: + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 proto-list: 1.2.4 - configstore@6.0.0: + /configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 + dev: false - connect-history-api-fallback@2.0.0: {} + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} - consola@2.15.3: {} + /consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: false - console-control-strings@1.1.0: {} + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - content-disposition@0.5.2: {} + /content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + dev: false - content-disposition@0.5.4: + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 - content-type@1.0.5: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: {} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.6.0: {} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} - copy-text-to-clipboard@3.2.0: {} + /copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + dev: false - copy-to-clipboard@3.3.3: + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} dependencies: toggle-selection: 1.0.6 + dev: false - copy-webpack-plugin@11.0.0(webpack@5.91.0): + /copy-webpack-plugin@11.0.0(webpack@5.91.0): + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -14224,36 +7467,61 @@ snapshots: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - core-js-compat@3.36.1: + /core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: browserslist: 4.23.0 - core-js-pure@3.36.1: {} + /core-js-pure@3.36.1: + resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} + requiresBuild: true + dev: false - core-js@3.36.1: {} + /core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + requiresBuild: true + dev: false - core-util-is@1.0.3: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - corser@2.0.1: {} + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true - cosmiconfig@6.0.0: + /cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: false - cosmiconfig@7.1.0: + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: false - cosmiconfig@8.3.6(typescript@5.4.3): + /cosmiconfig@8.3.6(typescript@5.4.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -14261,15 +7529,26 @@ snapshots: path-type: 4.0.0 typescript: 5.4.3 - cosmiconfig@9.0.0(typescript@5.4.3): + /cosmiconfig@9.0.0(typescript@5.4.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 typescript: 5.4.3 + dev: true - create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -14283,30 +7562,58 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - create-require@1.1.1: {} + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@2.0.0: {} + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true - crypto-random-string@4.0.0: + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} dependencies: type-fest: 1.4.0 + dev: false - css-declaration-sorter@6.4.1(postcss@8.4.38): + /css-declaration-sorter@6.4.1(postcss@8.4.38): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 dependencies: postcss: 8.4.38 + dev: false - css-in-js-utils@3.1.0: + /css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} dependencies: hyphenate-style-name: 1.0.4 + dev: false - css-loader@6.10.0(webpack@5.91.0): + /css-loader@6.10.0(webpack@5.91.0): + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -14318,7 +7625,30 @@ snapshots: semver: 7.6.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): + /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true dependencies: clean-css: 5.3.3 cssnano: 5.1.15(postcss@8.4.38) @@ -14329,8 +7659,10 @@ snapshots: serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - css-select@4.3.0: + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -14338,7 +7670,8 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 - css-select@5.1.0: + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -14346,26 +7679,44 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 - css-tree@1.1.3: + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} dependencies: mdn-data: 2.0.14 source-map: 0.6.1 + dev: false - css-tree@2.2.1: + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 + dev: true - css-tree@2.3.1: + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 + dev: true - css-what@6.1.0: {} + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} - cssesc@3.0.0: {} + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true - cssnano-preset-advanced@5.3.10(postcss@8.4.38): + /cssnano-preset-advanced@5.3.10(postcss@8.4.38): + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: autoprefixer: 10.4.19(postcss@8.4.38) cssnano-preset-default: 5.2.14(postcss@8.4.38) @@ -14374,8 +7725,13 @@ snapshots: postcss-merge-idents: 5.1.1(postcss@8.4.38) postcss-reduce-idents: 5.2.0(postcss@8.4.38) postcss-zindex: 5.1.0(postcss@8.4.38) + dev: false - cssnano-preset-default@5.2.14(postcss@8.4.38): + /cssnano-preset-default@5.2.14(postcss@8.4.38): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: css-declaration-sorter: 6.4.1(postcss@8.4.38) cssnano-utils: 3.1.0(postcss@8.4.38) @@ -14407,113 +7763,214 @@ snapshots: postcss-reduce-transforms: 5.1.0(postcss@8.4.38) postcss-svgo: 5.1.0(postcss@8.4.38) postcss-unique-selectors: 5.1.1(postcss@8.4.38) + dev: false - cssnano-utils@3.1.0(postcss@8.4.38): + /cssnano-utils@3.1.0(postcss@8.4.38): + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - cssnano@5.1.15(postcss@8.4.38): + /cssnano@5.1.15(postcss@8.4.38): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.38) lilconfig: 2.1.0 postcss: 8.4.38 yaml: 1.10.2 + dev: false - csso@4.2.0: + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} dependencies: css-tree: 1.1.3 + dev: false - csso@5.0.5: + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: css-tree: 2.2.1 + dev: true - cssom@0.3.8: {} + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true - cssom@0.5.0: {} + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true - cssstyle@2.3.0: + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} dependencies: cssom: 0.3.8 + dev: true - csstype@3.1.3: {} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - damerau-levenshtein@1.0.8: {} + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true - dargs@7.0.0: {} + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} - data-uri-to-buffer@2.0.2: {} + /data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true - data-uri-to-buffer@3.0.1: {} + /data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: false - data-urls@3.0.2: + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 + dev: true - data-view-buffer@1.0.1: + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-length@1.0.1: + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-offset@1.0.0: + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - dateformat@4.6.3: {} + /dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - debounce@1.2.1: {} + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: false - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 - debug@3.2.7: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - debug@4.3.4(supports-color@8.1.1): + /debug@4.3.4(supports-color@8.1.1): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 supports-color: 8.1.1 - debuglog@1.0.1: {} + /debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - decamelize-keys@1.1.1: + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 map-obj: 1.0.1 + dev: true - decamelize@1.2.0: {} + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true - decamelize@4.0.0: {} + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: true - decamelize@5.0.1: {} + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true - decimal.js@10.4.3: {} + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - decode-named-character-reference@1.0.2: + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 + dev: false - dedent@1.5.1: {} + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deep-eql@5.0.1: {} + /deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + dev: true - deep-equal@2.2.3: + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -14533,47 +7990,74 @@ snapshots: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: true - deep-extend@0.6.0: {} + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: {} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - default-browser-id@5.0.0: {} + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} - default-browser@5.2.1: + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - default-gateway@6.0.3: + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} dependencies: execa: 5.1.1 - defaults@1.0.4: + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - defer-to-connect@2.0.1: {} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: false - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: false - define-lazy-prop@3.0.0: {} + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - del@6.1.1: + /del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -14583,201 +8067,327 @@ snapshots: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 + dev: false - delayed-stream@1.0.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true - delegates@1.0.0: {} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@1.1.2: {} + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} - depd@2.0.0: {} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - deprecation@2.3.1: {} + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dequal@2.0.3: {} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@7.0.1: {} + /detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + dev: true - detect-libc@2.0.3: {} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: true - detect-newline@3.1.0: {} + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - detect-node@2.1.0: {} + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-port-alt@1.1.6: + /detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true dependencies: address: 1.2.2 debug: 2.6.9 transitivePeerDependencies: - supports-color + dev: false - detect-port@1.5.1: + /detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true dependencies: address: 1.2.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false - devlop@1.1.0: + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dependencies: dequal: 2.0.3 - dezalgo@1.0.4: + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: asap: 2.0.6 wrappy: 1.0.2 - didyoumean@1.2.2: {} + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: {} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true - diff@5.0.0: {} + /diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true - diff@5.2.0: {} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 - discontinuous-range@1.0.0: {} + /discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + dev: false - dlv@1.1.3: {} + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true - dns-packet@5.6.1: + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.4 - doctrine@2.1.0: + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true - dom-converter@0.2.0: + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: utila: 0.4.0 - dom-serializer@1.4.1: + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - dom-serializer@2.0.0: + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - domelementtype@2.3.0: {} + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domexception@4.0.0: + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 + dev: true - domhandler@4.3.1: + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - domhandler@5.0.3: + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - domutils@2.8.0: + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.1.0: + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dot-case@3.0.4: + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - dot-prop@6.0.1: + /dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} dependencies: is-obj: 2.0.0 + dev: false - duplexer@0.1.2: {} + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: false - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: {} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@2.0.0-next.62: {} + /effect@2.0.0-next.62: + resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} + dev: true - ejs@3.1.9: + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true dependencies: jake: 10.8.7 - electron-to-chromium@1.4.717: {} + /electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} - emittery@0.13.1: {} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: {} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojilib@2.4.0: {} + /emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + dev: false - emojis-list@3.0.0: {} + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: false - emoticon@4.0.1: {} + /emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + dev: false - enabled@2.0.0: {} + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encodeurl@1.0.2: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - encoding@0.1.13: + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true dependencies: iconv-lite: 0.6.3 optional: true - enhanced-resolve@5.16.0: + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - enquirer@2.4.1: + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + dev: true - entities@2.2.0: {} + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - env-paths@2.2.1: {} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} - envinfo@7.11.1: {} + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true - err-code@2.0.3: {} + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: stackframe: 1.3.4 + dev: false - error@10.4.0: {} + /error@10.4.0: + resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} - es-abstract@1.23.2: + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -14825,14 +8435,20 @@ snapshots: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -14843,8 +8459,11 @@ snapshots: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + dev: true - es-iterator-helpers@1.0.18: + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -14860,30 +8479,47 @@ snapshots: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + dev: true - es-module-lexer@1.5.0: {} + /es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - es-object-atoms@1.0.0: + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 + dev: true - es-set-tostringtag@2.0.3: + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 + dev: true - es-shim-unscopables@1.0.2: + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: hasown: 2.0.2 + dev: true - es-to-primitive@1.2.1: + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 + dev: true - esbuild@0.20.2: + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -14909,29 +8545,56 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - escalade@3.1.2: {} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} - escape-goat@4.0.0: {} + /escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + dev: false - escape-html@1.0.3: {} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: {} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: {} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - escape-string-regexp@5.0.0: {} + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false - escodegen@2.1.0: + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 + dev: true - eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): + /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@next/eslint-plugin-next': 14.1.4 '@rushstack/eslint-patch': 1.8.0 @@ -14947,20 +8610,33 @@ snapshots: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color + dev: true - eslint-config-prettier@9.1.0(eslint@8.57.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.57.0 + dev: true - eslint-import-resolver-node@0.3.9: + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -14976,8 +8652,14 @@ snapshots: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color + dev: true - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -14993,8 +8675,28 @@ snapshots: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color + dev: true - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -15003,8 +8705,28 @@ snapshots: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color + dev: true - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -15013,8 +8735,17 @@ snapshots: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.8 @@ -15039,8 +8770,13 @@ snapshots: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: '@babel/runtime': 7.24.1 aria-query: 5.3.0 @@ -15059,19 +8795,34 @@ snapshots: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 + dev: true - eslint-plugin-mocha@10.4.1(eslint@8.57.0): + /eslint-plugin-mocha@10.4.1(eslint@8.57.0): + resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) globals: 13.24.0 rambda: 7.5.0 + dev: true - eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.57.0 + dev: true - eslint-plugin-react@7.34.1(eslint@8.57.0): + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -15092,8 +8843,13 @@ snapshots: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + dev: true - eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -15114,35 +8870,65 @@ snapshots: strip-indent: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): + /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): + resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true dependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 + dev: true - eslint-rule-composer@0.3.0: {} + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@8.57.0): + /eslint-utils@3.0.0(eslint@8.57.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -15185,77 +8971,116 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - esquery@1.5.0: + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - estree-util-attach-comments@3.0.0: + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} dependencies: '@types/estree': 1.0.5 - estree-util-build-jsx@3.0.1: + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - estree-util-is-identifier-name@3.0.0: {} + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-util-to-js@2.0.0: + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - estree-util-value-to-estree@3.0.1: + /estree-util-value-to-estree@3.0.1: + resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} + engines: {node: '>=16.0.0'} dependencies: '@types/estree': 1.0.5 is-plain-obj: 4.1.0 + dev: false - estree-util-visit@2.0.0: + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 - estree-walker@3.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - eta@2.2.0: {} + /eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + dev: false - etag@1.8.1: {} + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - eval@0.1.8: + /eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} dependencies: '@types/node': 18.18.2 require-like: 0.1.2 + dev: false - event-target-shim@5.0.1: {} + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} - eventemitter3@4.0.7: {} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - events@3.3.0: {} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -15267,19 +9092,28 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - exit@0.1.2: {} + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true - expect@29.7.0: + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: true - exponential-backoff@3.1.1: {} + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - express@4.19.2: + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -15315,29 +9149,44 @@ snapshots: transitivePeerDependencies: - supports-color - extend-shallow@2.0.1: + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 + dev: false - extend@3.0.2: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - fast-check@3.15.0: + /fast-check@3.15.0: + resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} + engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 + dev: true - fast-check@3.17.0: + /fast-check@3.17.0: + resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} + engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -15345,77 +9194,129 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-loops@1.1.3: {} + /fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + dev: false - fast-safe-stringify@2.1.1: {} + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-shallow-equal@1.0.0: {} + /fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + dev: false - fast-url-parser@1.1.3: + /fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: punycode: 1.4.1 + dev: false - fast-xml-parser@4.3.6: + /fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true dependencies: strnum: 1.0.5 + dev: true - fastest-levenshtein@1.0.16: {} + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} - fastest-stable-stringify@2.0.2: {} + /fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + dev: false - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 - fault@2.0.1: + /fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: format: 0.2.2 + dev: false - faye-websocket@0.11.4: + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true - fecha@4.2.3: {} + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - feed@4.2.2: + /feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} dependencies: xml-js: 1.6.11 + dev: false - fetch-blob@2.1.2: {} + /fetch-blob@2.1.2: + resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} + engines: {node: ^10.17.0 || >=12.3.0} + peerDependencies: + domexception: '*' + peerDependenciesMeta: + domexception: + optional: true + dev: false - figures@3.2.0: + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.91.0): + /file-loader@6.2.0(webpack@5.91.0): + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - filelist@1.0.4: + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 - filesize@8.0.7: {} + /filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + dev: false - fill-range@7.0.1: + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -15427,63 +9328,108 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@4.0.0: + /find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + dev: false - find-up@3.0.0: + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 + dev: false - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: locate-path: 7.2.0 path-exists: 5.0.0 + dev: false - find-yarn-workspace-root2@1.2.16: + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - first-chunk-stream@2.0.0: + /first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} dependencies: readable-stream: 2.3.8 - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - flat@5.0.2: {} + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - fn.name@1.1.0: {} + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.6: {} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true - for-each@0.3.3: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true - foreground-child@3.1.1: + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -15501,63 +9447,102 @@ snapshots: tapable: 1.1.3 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - form-data-encoder@2.1.4: {} + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + dev: false - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true - format@0.2.2: {} + /format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + dev: false - forwarded@0.2.0: {} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} - fraction.js@4.3.7: {} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: {} + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} - fs-extra@11.2.0: + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@9.1.0: + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + dev: false - fs-minipass@2.1.0: + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - fs-minipass@3.0.3: + /fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - fs-monkey@1.0.5: {} + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: false - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 functions-have-names: 1.2.3 + dev: true - functions-have-names@1.2.3: {} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - gauge@3.0.2: + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -15569,7 +9554,9 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 - gauge@4.0.4: + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -15580,13 +9567,22 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-func-name@2.0.2: {} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -15594,48 +9590,77 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-npm-tarball-url@2.1.0: {} + /get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + dev: false - get-own-enumerable-property-symbols@3.0.2: {} + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: false - get-package-type@0.1.0: {} + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true - get-source@2.0.12: + /get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} - get-symbol-description@1.0.2: + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 + dev: true - get-tsconfig@4.7.3: + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 + dev: true - github-slugger@1.5.0: {} + /github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + dev: false - github-username@6.0.0: + /github-username@6.0.0: + resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} + engines: {node: '>=10'} dependencies: '@octokit/rest': 18.12.0 transitivePeerDependencies: - encoding - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -15643,7 +9668,8 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -15652,7 +9678,9 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -15660,31 +9688,49 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 - global-dirs@3.0.1: + /global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} dependencies: ini: 2.0.0 + dev: false - global-modules@2.0.0: + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 + dev: false - global-prefix@3.0.0: + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 + dev: false - globals@11.12.0: {} + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - globalthis@1.0.3: + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -15693,19 +9739,25 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 + dev: false - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 - got@12.6.1: + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -15718,66 +9770,108 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 + dev: false - graceful-fs@4.2.10: {} + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graceful-git@3.1.2: + /graceful-git@3.1.2: + resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} + engines: {node: '>=10'} dependencies: retry: 0.12.0 safe-execa: 0.1.2 + dev: false - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - gray-matter@4.0.3: + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 + dev: false - grouped-queue@2.0.0: {} + /grouped-queue@2.0.0: + resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} + engines: {node: '>=8.0.0'} - gzip-size@6.0.0: + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} dependencies: duplexer: 0.1.2 + dev: false - handle-thing@2.0.1: {} + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - hard-rejection@2.1.0: {} + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true - has-bigints@1.0.2: {} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - has-proto@1.0.3: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - has-unicode@2.0.1: {} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has-yarn@3.0.0: {} + /has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - hasharray@1.1.2: + /hasharray@1.1.2: + resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} dependencies: jclass: 1.2.1 + dev: false - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - hast-util-from-parse5@8.0.1: + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -15787,12 +9881,16 @@ snapshots: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 + dev: false - hast-util-parse-selector@4.0.0: + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-raw@9.0.2: + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -15807,8 +9905,10 @@ snapshots: vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-to-estree@3.1.0: + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -15829,7 +9929,8 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-jsx-runtime@2.3.0: + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -15849,7 +9950,8 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@8.0.0: + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -15858,22 +9960,29 @@ snapshots: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-whitespace@3.0.0: + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: '@types/hast': 3.0.4 - hastscript@8.0.0: + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 + dev: false - he@1.2.0: {} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true - history@4.10.1: + /history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: '@babel/runtime': 7.24.1 loose-envify: 1.4.0 @@ -15881,41 +9990,61 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 value-equal: 1.0.1 + dev: false - hoist-non-react-statics@3.3.2: + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 + dev: false - hosted-git-info@2.8.9: {} + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - hosted-git-info@4.1.0: + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 - hosted-git-info@6.1.1: + /hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 - hosted-git-info@7.0.1: + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.2.0 + dev: true - hpack.js@2.1.6: + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - html-encoding-sniffer@3.0.0: + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 + dev: true - html-entities@2.5.2: {} + /html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-minifier-terser@6.1.0: + /html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -15925,7 +10054,10 @@ snapshots: relateurl: 0.2.7 terser: 5.29.2 - html-minifier-terser@7.2.0: + /html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -15934,12 +10066,28 @@ snapshots: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.29.2 + dev: false - html-tags@3.3.1: {} + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: false - html-void-elements@3.0.0: {} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false - html-webpack-plugin@5.6.0(webpack@5.91.0): + /html-webpack-plugin@5.6.0(webpack@5.91.0): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -15948,32 +10096,41 @@ snapshots: tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - htmlparser2@6.1.0: + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - htmlparser2@8.0.2: + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 + dev: false - http-cache-semantics@4.1.1: {} + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-deceiver@1.2.7: {} + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - http-errors@1.6.3: + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -15981,9 +10138,12 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.8: {} + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - http-proxy-agent@4.0.1: + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -15991,7 +10151,9 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-agent@5.0.0: + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -15999,7 +10161,14 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.6(@types/express@4.17.21): + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true dependencies: '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 @@ -16010,7 +10179,9 @@ snapshots: transitivePeerDependencies: - debug - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 @@ -16018,7 +10189,10 @@ snapshots: transitivePeerDependencies: - debug - http-server@14.1.1: + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -16036,112 +10210,187 @@ snapshots: transitivePeerDependencies: - debug - supports-color + dev: true - http2-wrapper@2.2.1: + /http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: false - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - human-signals@2.1.0: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - humanize-ms@1.2.1: + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - hyphenate-style-name@1.0.4: {} + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + dev: false - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.38): + /icss-utils@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@4.0.1: + /ignore-walk@4.0.1: + resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} + engines: {node: '>=10'} dependencies: minimatch: 3.1.2 - ignore-walk@6.0.4: + /ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minimatch: 9.0.3 - ignore@5.3.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} - image-size@1.1.1: + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true dependencies: queue: 6.0.2 + dev: false - immediate@3.0.6: {} + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: true - immer@10.0.4: {} + /immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + dev: false - immer@9.0.21: {} + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false - immutability-helper@3.1.1: {} + /immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} + dev: false - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@4.0.0: {} + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: false - import-local@3.1.0: + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - indent-string@4.0.0: {} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} - indent-string@5.0.0: {} + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true - individual@3.0.0: {} + /individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - infer-owner@1.0.4: {} + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - infima@0.2.0-alpha.43: {} + /infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + dev: false - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@2.0.0: {} + /ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: false - ini@3.0.1: {} + /ini@3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dev: true - inline-style-parser@0.1.1: {} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.2: {} + /inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - inline-style-prefixer@7.0.0: + /inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} dependencies: css-in-js-utils: 3.1.0 fast-loops: 1.1.3 + dev: false - inquirer@8.2.6: + /inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -16159,255 +10408,454 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.0.7: + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + dev: true - interpret@1.4.0: {} + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} - interpret@3.1.1: {} + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} - invariant@2.2.4: + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 - ip-address@9.0.5: + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} - ipaddr.js@2.1.0: {} + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} - is-alphabetical@2.0.1: {} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@2.0.1: + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.1.1: + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-array-buffer@3.0.4: + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: {} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-bigint@1.0.4: + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-builtin-module@3.2.1: + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true - is-callable@1.2.7: {} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true - is-ci@3.0.1: + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true dependencies: ci-info: 3.9.0 + dev: false - is-core-module@2.13.1: + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 + dev: true - is-date-object@1.0.5: + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-decimal@2.0.1: {} + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: false - is-docker@3.0.0: {} + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true - is-extendable@0.1.1: {} + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: call-bind: 1.0.7 + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - is-generator-fn@2.1.0: {} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true - is-generator-function@1.0.10: + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - is-hexadecimal@2.0.1: {} + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-inside-container@1.0.0: + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: is-docker: 3.0.0 - is-installed-globally@0.4.0: + /is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 + dev: false - is-interactive@1.0.0: {} + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} - is-lambda@1.0.1: {} + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: {} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true - is-negative-zero@2.0.3: {} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true - is-network-error@1.1.0: {} + /is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} - is-npm@6.0.0: {} + /is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - is-number-object@1.0.7: + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - is-obj@1.0.1: {} + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: false - is-obj@2.0.0: {} + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: false - is-path-cwd@2.2.0: {} + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: false - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} - is-plain-obj@1.1.0: {} + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true - is-plain-obj@2.1.0: {} + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} - is-plain-obj@3.0.0: {} + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} - is-plain-obj@4.1.0: {} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} - is-plain-object@2.0.4: + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - is-plain-object@5.0.0: {} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-reference@3.0.2: + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.5 - is-regex@1.1.4: + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-regexp@1.0.0: {} + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: false - is-root@2.1.0: {} + /is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + dev: false - is-scoped@2.1.0: + /is-scoped@2.1.0: + resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} + engines: {node: '>=8'} dependencies: scoped-regex: 2.1.0 - is-set@2.0.3: {} + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true - is-shared-array-buffer@1.0.3: + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - is-string@1.0.7: + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-subdir@1.2.0: + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 + dev: true - is-symbol@1.0.4: + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - is-typed-array@1.1.13: + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.15 + dev: true - is-typedarray@1.0.0: {} + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: {} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} - is-utf8@0.2.1: {} + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - is-weakmap@2.0.2: {} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true - is-weakref@1.0.2: + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 + dev: true - is-weakset@2.0.3: + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-windows@1.0.2: {} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: false - is-wsl@3.1.0: + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 - is-yarn-global@0.4.1: {} + /is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + dev: false - isarray@0.0.1: {} + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: false - isarray@1.0.0: {} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: {} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - isbinaryfile@4.0.10: {} + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} - isbinaryfile@5.0.2: {} + /isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isobject@3.0.1: {} + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-instrument@5.2.1: + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -16416,8 +10864,11 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-instrument@6.0.2: + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -16426,58 +10877,85 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@4.0.1: + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.7: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - iterator.prototype@1.1.2: + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 + dev: true - itertools@2.2.5: {} + /itertools@2.2.5: + resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} + dev: false - jackspeak@2.3.6: + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.8.7: + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true dependencies: async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - jclass@1.2.1: {} + /jclass@1.2.1: + resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} + engines: {node: '>= 0.6'} + dev: false - jest-changed-files@29.7.0: + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 + dev: true - jest-circus@29.7.0: + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -16502,8 +10980,17 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/test-result': 29.7.0 @@ -16521,8 +11008,19 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -16551,27 +11049,44 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-diff@29.7.0: + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-docblock@29.7.0: + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 + dev: true - jest-each@29.7.0: + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 + dev: true - jest-environment-jsdom@29.7.0: + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16585,8 +11100,11 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jest-environment-node@29.7.0: + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16594,10 +11112,16 @@ snapshots: '@types/node': 18.18.2 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - jest-get-type@29.6.3: {} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-haste-map@29.7.0: + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 @@ -16612,20 +11136,29 @@ snapshots: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + dev: true - jest-leak-detector@29.7.0: + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-matcher-utils@29.7.0: + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-message-util@29.7.0: + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -16636,27 +11169,47 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: true - jest-mock@29.7.0: + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-util: 29.7.0 + dev: true - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true dependencies: jest-resolve: 29.7.0 + dev: true - jest-regex-util@29.6.3: {} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-resolve-dependencies@29.7.0: + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - jest-resolve@29.7.0: + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -16667,8 +11220,11 @@ snapshots: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 + dev: true - jest-runner@29.7.0: + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -16693,8 +11249,11 @@ snapshots: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color + dev: true - jest-runtime@29.7.0: + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16720,8 +11279,11 @@ snapshots: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color + dev: true - jest-snapshot@29.7.0: + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -16745,8 +11307,11 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - jest-util@29.7.0: + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -16755,7 +11320,9 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@29.7.0: + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -16763,8 +11330,11 @@ snapshots: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 + dev: true - jest-watcher@29.7.0: + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -16774,21 +11344,34 @@ snapshots: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 + dev: true - jest-worker@27.5.1: + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/node': 18.18.2 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.18.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 @@ -16799,10 +11382,14 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - jiti@1.21.0: {} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true - joi@17.12.2: + /joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -16810,22 +11397,37 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - js-cookie@2.2.1: {} + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdom@20.0.3: + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: abab: 2.0.6 acorn: 8.11.3 @@ -16857,168 +11459,272 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jsesc@0.5.0: {} + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true - jsesc@3.0.2: {} + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.1: {} + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-nice@1.1.4: {} + /json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - json-stringify-safe@5.0.1: {} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json5@1.0.2: + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - jsonfile@6.1.0: + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonparse@1.3.1: {} + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} - jsx-ast-utils@3.3.5: + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 + dev: true - jszip@3.10.1: + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 + dev: true - just-diff-apply@5.5.0: {} + /just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - just-diff@5.2.0: {} + /just-diff@5.2.0: + resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} - just-extend@6.2.0: {} + /just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} - kuler@2.0.0: {} + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - language-subtag-registry@0.3.22: {} + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true - language-tags@1.0.9: + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.22 + dev: true - latest-version@7.0.0: + /latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} dependencies: package-json: 8.1.1 + dev: false - launch-editor@2.6.1: + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lie@3.3.0: + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 + dev: true - lilconfig@2.1.0: {} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} - lilconfig@3.1.1: {} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - load-json-file@6.2.0: + /load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} dependencies: graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 + dev: true - load-json-file@7.0.1: {} + /load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - load-script@1.0.0: {} + /load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + dev: false - load-yaml-file@0.2.0: + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - loader-runner@4.3.0: {} + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} - loader-utils@2.0.4: + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 + dev: false - loader-utils@3.2.1: {} + /loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: false - locate-path@3.0.0: + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 + dev: false - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - locate-path@7.2.0: + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 + dev: false - lodash.debounce@4.0.8: {} + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.get@4.4.2: {} + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true - lodash.memoize@4.1.2: {} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.uniq@4.5.0: {} + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: false - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - logform@2.6.0: + /logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -17027,45 +11733,74 @@ snapshots: safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - longest-streak@3.1.0: {} + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 - loupe@3.1.0: + /loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} dependencies: get-func-name: 2.0.2 + dev: true - lower-case@2.0.2: + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.6.2 - lowercase-keys@3.0.0: {} + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - lru-cache@10.2.0: {} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 - lru-cache@7.10.1: {} + /lru-cache@7.10.1: + resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} + engines: {node: '>=12'} + dev: false - lru-cache@7.18.3: {} + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} - lz-string@1.5.0: {} + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.6.0 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true - make-fetch-happen@10.2.1: + /make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: agentkeepalive: 4.5.0 cacache: 16.1.3 @@ -17087,7 +11822,9 @@ snapshots: - bluebird - supports-color - make-fetch-happen@11.1.1: + /make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: agentkeepalive: 4.5.0 cacache: 17.1.4 @@ -17107,7 +11844,9 @@ snapshots: transitivePeerDependencies: - supports-color - make-fetch-happen@9.1.0: + /make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} dependencies: agentkeepalive: 4.5.0 cacache: 15.3.0 @@ -17129,23 +11868,39 @@ snapshots: - bluebird - supports-color - makeerror@1.0.12: + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: true - map-age-cleaner@0.1.3: + /map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} dependencies: p-defer: 1.0.0 + dev: true - map-obj@1.0.1: {} + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true - map-obj@4.3.0: {} + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true - markdown-extensions@2.0.0: {} + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} - markdown-table@3.0.3: {} + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false - mdast-util-directive@3.0.0: + /mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17157,15 +11912,19 @@ snapshots: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color + dev: false - mdast-util-find-and-replace@3.0.1: + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - mdast-util-from-markdown@2.0.0: + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17182,7 +11941,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: + /mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17192,16 +11952,20 @@ snapshots: micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-autolink-literal@2.0.0: + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} dependencies: '@types/mdast': 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 + dev: false - mdast-util-gfm-footnote@2.0.0: + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17210,16 +11974,20 @@ snapshots: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-strikethrough@2.0.0: + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-table@2.0.0: + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17228,8 +11996,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-task-list-item@2.0.0: + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17237,8 +12007,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm@3.0.0: + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -17249,8 +12021,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-expression@2.0.0: + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17261,7 +12035,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.2: + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17279,7 +12054,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -17289,7 +12065,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdxjs-esm@2.0.1: + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17300,12 +12077,14 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-phrasing@4.1.0: + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - mdast-util-to-hast@13.1.0: + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -17317,7 +12096,8 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.1 - mdast-util-to-markdown@2.1.0: + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17328,19 +12108,35 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@4.0.0: + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: '@types/mdast': 4.0.3 - mdn-data@2.0.14: {} + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: false - mdn-data@2.0.28: {} + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true - mdn-data@2.0.30: {} + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} - mem-fs-editor@9.7.0(mem-fs@2.3.0): + /mem-fs-editor@9.7.0(mem-fs@2.3.0): + resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} + engines: {node: '>=12.10.0'} + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true dependencies: binaryextensions: 4.19.0 commondir: 1.0.1 @@ -17354,29 +12150,43 @@ snapshots: normalize-path: 3.0.0 textextensions: 5.16.0 - mem-fs@2.3.0: + /mem-fs@2.3.0: + resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} + engines: {node: '>=12'} dependencies: '@types/node': 15.14.9 '@types/vinyl': 2.0.11 vinyl: 2.2.1 vinyl-file: 3.0.0 - mem@8.1.1: + /mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 + dev: true - memfs@3.5.3: + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.5 + dev: false - memfs@4.8.0: + /memfs@4.8.0: + resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + engines: {node: '>= 4.0.0'} dependencies: tslib: 2.6.2 - memoize-one@5.2.1: {} + /memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: false - meow@10.1.5: + /meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: '@types/minimist': 1.2.5 camelcase-keys: 7.0.2 @@ -17390,16 +12200,24 @@ snapshots: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 + dev: true - merge-descriptors@1.0.1: {} + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - methods@1.1.2: {} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.0: + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -17418,7 +12236,8 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-directive@3.0.0: + /micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -17427,22 +12246,28 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 + dev: false - micromark-extension-frontmatter@2.0.0: + /micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} dependencies: fault: 2.0.1 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-autolink-literal@2.0.0: + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-footnote@2.0.0: + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -17452,8 +12277,10 @@ snapshots: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-strikethrough@2.0.0: + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -17461,28 +12288,36 @@ snapshots: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-table@2.0.0: + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-tagfilter@2.0.0: + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-task-list-item@2.0.1: + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm@3.0.0: + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -17492,8 +12327,10 @@ snapshots: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-expression@3.0.0: + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17504,7 +12341,8 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-mdx-jsx@3.0.0: + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -17517,11 +12355,13 @@ snapshots: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - micromark-extension-mdx-md@2.0.0: + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} dependencies: micromark-util-types: 2.0.0 - micromark-extension-mdxjs-esm@3.0.0: + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17533,7 +12373,8 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - micromark-extension-mdxjs@3.0.0: + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -17544,20 +12385,23 @@ snapshots: micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-destination@2.0.0: + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-label@2.0.0: + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@2.0.1: + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17568,69 +12412,84 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - micromark-factory-space@1.1.0: + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 + dev: false - micromark-factory-space@2.0.0: + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - micromark-factory-title@2.0.0: + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-whitespace@2.0.0: + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-character@1.2.0: + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + dev: false - micromark-util-character@2.1.0: + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-chunked@2.0.0: + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-classify-character@2.0.0: + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-combine-extensions@2.0.0: + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-decode-numeric-character-reference@2.0.1: + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-decode-string@2.0.0: + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - micromark-util-encode@2.0.0: {} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - micromark-util-events-to-acorn@2.0.2: + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -17641,38 +12500,50 @@ snapshots: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - micromark-util-html-tag-name@2.0.0: {} + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - micromark-util-normalize-identifier@2.0.0: + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-resolve-all@2.0.0: + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} dependencies: micromark-util-types: 2.0.0 - micromark-util-sanitize-uri@2.0.0: + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - micromark-util-subtokenize@2.0.0: + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-symbol@1.1.0: {} + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false - micromark-util-symbol@2.0.0: {} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - micromark-util-types@1.1.0: {} + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false - micromark-util-types@2.0.0: {} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromark@4.0.0: + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 debug: 4.3.4(supports-color@8.1.1) @@ -17694,76 +12565,129 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 - mime-db@1.33.0: {} + /mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + dev: false - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - mime-types@2.1.18: + /mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.33.0 + dev: false - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - mime@1.6.0: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} - mimic-fn@3.1.0: {} + /mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + dev: true - mimic-response@3.1.0: {} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false - mimic-response@4.0.0: {} + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - min-indent@1.0.1: {} + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true - mini-css-extract-plugin@2.8.1(webpack@5.91.0): + /mini-css-extract-plugin@2.8.1(webpack@5.91.0): + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - minimalistic-assert@1.0.1: {} + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - minimatch@5.0.1: + /minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true - minimatch@5.1.6: + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - minimatch@7.4.6: + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - minimist-options@4.1.0: + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - minipass-fetch@1.4.1: + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -17771,7 +12695,9 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-fetch@2.1.2: + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -17779,7 +12705,9 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-fetch@3.0.4: + /minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 @@ -17787,49 +12715,75 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-flush@1.0.5: + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - minipass-json-stream@1.0.1: + /minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - minipass-pipeline@1.2.4: + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 - minipass-sized@1.0.3: + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 - minipass@3.3.6: + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 - minipass@5.0.0: {} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} - minipass@7.0.4: {} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 yallist: 4.0.0 - mkdirp-infer-owner@2.0.0: + /mkdirp-infer-owner@2.0.0: + resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 infer-owner: 1.0.4 mkdirp: 1.0.4 - mkdirp@0.5.6: + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - mkdirp@1.0.4: {} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true - mocha@10.3.0: + /mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} + engines: {node: '>= 14.0.0'} + hasBin: true dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -17851,23 +12805,36 @@ snapshots: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 + dev: true - moo@0.5.2: {} + /moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + dev: false - mrmime@2.0.0: {} + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: false - ms@2.0.0: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multicast-dns@7.2.5: + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - multimatch@5.0.0: + /multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 @@ -17875,15 +12842,22 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.2 - mute-stream@0.0.8: {} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mz@2.7.0: + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + dev: true - nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 @@ -17895,12 +12869,20 @@ snapshots: rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.1 + dev: false - nanoid@3.3.7: {} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - ndjson@2.0.0: + /ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true dependencies: json-stringify-safe: 5.0.1 minimist: 1.2.8 @@ -17908,25 +12890,50 @@ snapshots: split2: 3.2.2 through2: 4.0.2 - nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): + /nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true dependencies: commander: 2.20.3 moo: 0.5.2 railroad-diagrams: 1.0.0 randexp: 0.4.6 + dev: false + patched: true - negotiator@0.6.3: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} - neo-async@2.6.2: {} + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - neovim@5.1.0: + /neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} + engines: {node: '>=10'} + hasBin: true dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - nerf-dart@1.0.0: {} + /nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + dev: false - next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): + /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true dependencies: '@next/env': 14.1.4 '@swc/helpers': 0.5.2 @@ -17950,34 +12957,53 @@ snapshots: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros + dev: false - nise@5.1.9: + /nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 path-to-regexp: 6.2.1 + dev: true - no-case@3.0.4: + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 tslib: 2.6.2 - node-emoji@2.1.3: + /node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 + dev: false - node-fetch@2.7.0: + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 - node-forge@1.3.1: {} + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} - node-gyp@8.4.1: + /node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true dependencies: env-paths: 2.2.1 glob: 7.2.3 @@ -17993,7 +13019,10 @@ snapshots: - bluebird - supports-color - node-gyp@9.4.1: + /node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -18010,122 +13039,180 @@ snapshots: - bluebird - supports-color - node-html-parser@6.1.12: + /node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} dependencies: css-select: 5.1.0 he: 1.2.0 + dev: false - node-int64@0.4.0: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true - node-releases@2.0.14: {} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - nopt@5.0.0: + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true dependencies: abbrev: 1.1.1 - nopt@6.0.0: + /nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true dependencies: abbrev: 1.1.1 - normalize-package-data@2.5.0: + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - normalize-package-data@3.0.3: + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 + dev: true - normalize-package-data@5.0.0: + /normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - normalize-range@0.1.2: {} + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} - normalize-registry-url@2.0.0: {} + /normalize-registry-url@2.0.0: + resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} + dev: true - normalize-url@6.1.0: {} + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: false - normalize-url@8.0.1: {} + /normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + dev: false - npm-bundled@1.1.2: + /npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} dependencies: npm-normalize-package-bin: 1.0.1 - npm-bundled@3.0.0: + /npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-normalize-package-bin: 3.0.1 - npm-install-checks@4.0.0: + /npm-install-checks@4.0.0: + resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} + engines: {node: '>=10'} dependencies: semver: 7.6.0 - npm-install-checks@6.3.0: + /npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.6.0 - npm-normalize-package-bin@1.0.1: {} + /npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - npm-normalize-package-bin@2.0.0: {} + /npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - npm-normalize-package-bin@3.0.1: {} + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-package-arg@10.1.0: + /npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - npm-package-arg@11.0.1: + /npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 + dev: true - npm-package-arg@8.1.5: + /npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 semver: 7.6.0 validate-npm-package-name: 3.0.0 - npm-packlist@3.0.0: + /npm-packlist@3.0.0: + resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} + engines: {node: '>=10'} + hasBin: true dependencies: glob: 7.2.3 ignore-walk: 4.0.1 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - npm-packlist@7.0.4: + /npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: ignore-walk: 6.0.4 - npm-pick-manifest@6.1.1: + /npm-pick-manifest@6.1.1: + resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} dependencies: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 semver: 7.6.0 - npm-pick-manifest@8.0.2: + /npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.6.0 - npm-registry-fetch@12.0.2: + /npm-registry-fetch@12.0.2: + resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: make-fetch-happen: 10.2.1 minipass: 3.3.6 @@ -18137,7 +13224,9 @@ snapshots: - bluebird - supports-color - npm-registry-fetch@14.0.5: + /npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 @@ -18149,119 +13238,175 @@ snapshots: transitivePeerDependencies: - supports-color - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 - npmlog@5.0.1: + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - npmlog@6.0.2: + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - nprogress@0.2.0: {} + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: false - nth-check@2.1.1: + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - nwsapi@2.2.7: {} + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - object-hash@3.0.0: {} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true - object-inspect@1.13.1: {} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - object-is@1.1.6: + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} - object.assign@4.1.5: + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.8: + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - object.fromentries@2.0.8: + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - object.groupby@1.0.3: + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 + dev: true - object.hasown@1.1.4: + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - object.values@1.2.0: + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - obuf@1.1.2: {} + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - one-time@1.0.0: + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: fn.name: 1.1.0 - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - open@10.1.0: + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - open@8.4.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: false - opener@1.5.2: {} + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true - optionator@0.9.3: + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -18270,7 +13415,9 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - ora@5.4.1: + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -18282,89 +13429,143 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} - p-cancelable@3.0.0: {} + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + dev: false - p-defer@1.0.0: {} + /p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: true - p-filter@2.1.0: + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 + dev: true - p-finally@1.0.0: {} + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 + dev: false - p-locate@3.0.0: + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 + dev: false - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - p-locate@6.0.0: + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 + dev: false - p-map@2.1.0: {} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true - p-map@4.0.0: + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 - p-queue@6.6.2: + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-retry@4.6.2: + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + dev: false - p-retry@6.2.0: + /p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - p-timeout@3.2.0: + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: p-finally: 1.0.0 - p-transform@1.3.0: + /p-transform@1.3.0: + resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} + engines: {node: '>=12.10.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) p-queue: 6.6.2 transitivePeerDependencies: - supports-color - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} - package-json@8.1.1: + /package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 + dev: false - pacote@12.0.3: + /pacote@12.0.3: + resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true dependencies: '@npmcli/git': 2.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -18389,7 +13590,10 @@ snapshots: - bluebird - supports-color - pacote@15.2.0: + /pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -18413,24 +13617,32 @@ snapshots: - bluebird - supports-color - pako@1.0.11: {} + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true - param-case@3.0.4: + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 - parse-conflict-json@2.0.2: + /parse-conflict-json@2.0.2: + resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: json-parse-even-better-errors: 2.3.1 just-diff: 5.2.0 just-diff-apply: 5.5.0 - parse-entities@4.0.1: + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -18441,177 +13653,321 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-ms@2.1.0: {} + /parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + dev: true - parse-numeric-range@1.3.0: {} + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false - parse-srcset@1.0.2: {} + /parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + dev: false - parse5-htmlparser2-tree-adapter@7.0.0: + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} dependencies: domhandler: 5.0.3 parse5: 7.1.2 + dev: false - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} - pascal-case@3.1.2: + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - path-absolute@1.0.1: {} + /path-absolute@1.0.1: + resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} + engines: {node: '>=4'} + dev: true - path-exists@3.0.0: {} + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - path-exists@5.0.0: {} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} - path-is-inside@1.0.2: {} + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: false - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - path-name@1.0.0: {} + /path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - path-temp@2.1.0: + /path-temp@2.1.0: + resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} + engines: {node: '>=8.15'} dependencies: unique-string: 2.0.0 + dev: true - path-to-regexp@0.1.7: {} + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - path-to-regexp@1.8.0: + /path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} dependencies: isarray: 0.0.1 + dev: false - path-to-regexp@2.2.1: {} + /path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + dev: false - path-to-regexp@6.2.1: {} + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - pathval@2.0.0: {} + /pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + dev: true - periscopic@3.1.0: + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} - pirates@4.0.6: {} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 - pkg-dir@7.0.0: + /pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} dependencies: find-up: 6.3.0 + dev: false - pkg-up@3.1.0: + /pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} dependencies: find-up: 3.0.0 + dev: false - pluralize@8.0.0: {} + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true - portfinder@1.0.32: + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} dependencies: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color + dev: true - possible-typed-array-names@1.0.0: {} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true - postcss-calc@8.2.4(postcss@8.4.38): + /postcss-calc@8.2.4(postcss@8.4.38): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 + dev: false - postcss-colormin@5.3.1(postcss@8.4.38): + /postcss-colormin@5.3.1(postcss@8.4.38): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-convert-values@5.1.3(postcss@8.4.38): + /postcss-convert-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-discard-comments@5.1.2(postcss@8.4.38): + /postcss-discard-comments@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-duplicates@5.1.0(postcss@8.4.38): + /postcss-discard-duplicates@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-empty@5.1.1(postcss@8.4.38): + /postcss-discard-empty@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-overridden@5.1.0(postcss@8.4.38): + /postcss-discard-overridden@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-unused@5.1.0(postcss@8.4.38): + /postcss-discard-unused@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-import@15.1.0(postcss@8.4.38): + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 + dev: true - postcss-js@4.0.1(postcss@8.4.38): + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 + dev: true - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): + /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: lilconfig: 3.1.1 postcss: 8.4.38 ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3) yaml: 2.4.1 + dev: true - postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 dependencies: cosmiconfig: 8.3.6(typescript@5.4.3) jiti: 1.21.0 @@ -18620,8 +13976,20 @@ snapshots: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript + dev: false - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 @@ -18630,343 +13998,655 @@ snapshots: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript + dev: true - postcss-merge-idents@5.1.1(postcss@8.4.38): + /postcss-merge-idents@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-merge-longhand@5.1.7(postcss@8.4.38): + /postcss-merge-longhand@5.1.7(postcss@8.4.38): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.38) + dev: false - postcss-merge-rules@5.1.4(postcss@8.4.38): + /postcss-merge-rules@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-minify-font-values@5.1.0(postcss@8.4.38): + /postcss-minify-font-values@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-gradients@5.1.1(postcss@8.4.38): + /postcss-minify-gradients@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-params@5.1.4(postcss@8.4.38): + /postcss-minify-params@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-selectors@5.2.1(postcss@8.4.38): + /postcss-minify-selectors@5.2.1(postcss@8.4.38): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-modules-extract-imports@3.0.0(postcss@8.4.38): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 - postcss-modules-local-by-default@4.0.4(postcss@8.4.38): + /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.1.1(postcss@8.4.38): + /postcss-modules-scope@3.1.1(postcss@8.4.38): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - postcss-modules-values@4.0.0(postcss@8.4.38): + /postcss-modules-values@4.0.0(postcss@8.4.38): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - postcss-nested@6.0.1(postcss@8.4.38): + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: true - postcss-normalize-charset@5.1.0(postcss@8.4.38): + /postcss-normalize-charset@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-normalize-display-values@5.1.0(postcss@8.4.38): + /postcss-normalize-display-values@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-positions@5.1.1(postcss@8.4.38): + /postcss-normalize-positions@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-string@5.1.0(postcss@8.4.38): + /postcss-normalize-string@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-unicode@5.1.1(postcss@8.4.38): + /postcss-normalize-unicode@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-url@5.1.0(postcss@8.4.38): + /postcss-normalize-url@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-whitespace@5.1.1(postcss@8.4.38): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-ordered-values@5.1.3(postcss@8.4.38): + /postcss-ordered-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-reduce-idents@5.2.0(postcss@8.4.38): + /postcss-reduce-idents@5.2.0(postcss@8.4.38): + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-reduce-initial@5.1.2(postcss@8.4.38): + /postcss-reduce-initial@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 postcss: 8.4.38 + dev: false - postcss-reduce-transforms@5.1.0(postcss@8.4.38): + /postcss-reduce-transforms@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-selector-parser@6.0.16: + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@4.4.1(postcss@8.4.38): + /postcss-sort-media-queries@4.4.1(postcss@8.4.38): + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 dependencies: postcss: 8.4.38 sort-css-media-queries: 2.1.0 + dev: false - postcss-svgo@5.1.0(postcss@8.4.38): + /postcss-svgo@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 + dev: false - postcss-unique-selectors@5.1.1(postcss@8.4.38): + /postcss-unique-selectors@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-value-parser@4.2.0: {} + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss-zindex@5.1.0(postcss@8.4.38): + /postcss-zindex@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss@8.4.31: + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 + dev: false - postcss@8.4.38: + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - preferred-pm@3.1.3: + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): + /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): + resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true dependencies: prettier: 3.2.5 + dev: true - prettier@3.2.5: {} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true - pretty-bytes@5.6.0: {} + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} - pretty-error@4.0.0: + /pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} dependencies: lodash: 4.17.21 renderkid: 3.0.0 - pretty-format@27.5.1: + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 + dev: true - pretty-ms@7.0.1: + /pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} dependencies: parse-ms: 2.1.0 + dev: true - pretty-time@1.1.0: {} + /pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + dev: false - print-diff@1.0.0: + /print-diff@1.0.0: + resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} + engines: {node: '>=8.3'} dependencies: diff: 4.0.2 + dev: true - printable-characters@1.0.42: {} + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: true - prism-react-renderer@2.3.1(react@18.2.0): + /prism-react-renderer@2.3.1(react@18.2.0): + resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} + peerDependencies: + react: '>=16.0.0 || 18' dependencies: '@types/prismjs': 1.26.3 clsx: 2.1.0 react: 18.2.0 + dev: false - prismjs@1.29.0: {} + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false - proc-log@1.0.0: {} + /proc-log@1.0.0: + resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} - proc-log@3.0.0: {} + /proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - process-nextick-args@2.0.1: {} + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: {} + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} - promise-all-reject-late@1.0.1: {} + /promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - promise-call-limit@1.0.2: {} + /promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} - promise-inflight@1.0.1: {} + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true - promise-retry@2.0.1: + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} dependencies: err-code: 2.0.3 retry: 0.12.0 - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - prop-types@15.8.1: + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.4.1: {} + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} - proto-list@1.2.4: {} + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - punycode@1.4.1: {} + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: false - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - pupa@3.1.0: + /pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} dependencies: escape-goat: 4.0.0 + dev: false - pure-rand@6.1.0: {} + /pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + dev: true - qs@6.11.0: + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 - qs@6.12.0: + /qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 + dev: true - querystringify@2.2.0: {} + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: inherits: 2.0.4 + dev: false - quick-lru@4.0.1: {} + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true - quick-lru@5.1.1: {} + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} - railroad-diagrams@1.0.0: {} + /railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + dev: false - rambda@7.5.0: {} + /rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + dev: true - ramda@0.29.1: {} + /ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + dev: true - randexp@0.4.6: + /randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 + dev: false - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - range-parser@1.2.0: {} + /range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + dev: false - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} - raw-body@2.5.2: + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - rc@1.2.8: + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + dev: false - react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@babel/code-frame': 7.24.2 address: 1.2.2 @@ -18998,18 +14678,29 @@ snapshots: - eslint - supports-color - vue-template-compiler + dev: false - react-dom@18.2.0(react@18.2.0): + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - react-error-overlay@6.0.11: {} + /react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + dev: false - react-fast-compare@3.2.2: {} + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 dependencies: '@babel/runtime': 7.24.1 invariant: 2.2.4 @@ -19019,7 +14710,11 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): + /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 dependencies: invariant: 2.2.4 react: 18.2.0 @@ -19027,23 +14722,42 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-is@16.13.1: {} + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: {} + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true - react-is@18.2.0: {} + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true - react-json-view-lite@1.3.0(react@18.2.0): + /react-json-view-lite@1.3.0(react@18.2.0): + resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 dependencies: react: 18.2.0 + dev: false - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): + /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' dependencies: '@babel/runtime': 7.24.1 - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - react-player@2.15.1(react@18.2.0): + /react-player@2.15.1(react@18.2.0): + resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} + peerDependencies: + react: '>=16.6.0 || 18' dependencies: deepmerge: 4.3.1 load-script: 1.0.0 @@ -19051,14 +14765,23 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 react-fast-compare: 3.2.2 + dev: false - react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): + /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15 || 18' + react-router: '>=5' dependencies: '@babel/runtime': 7.24.1 react: 18.2.0 react-router: 5.3.4(react@18.2.0) + dev: false - react-router-dom@5.3.4(react@18.2.0): + /react-router-dom@5.3.4(react@18.2.0): + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15 || 18' dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -19068,8 +14791,12 @@ snapshots: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + dev: false - react-router@5.3.4(react@18.2.0): + /react-router@5.3.4(react@18.2.0): + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15 || 18' dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -19081,15 +14808,28 @@ snapshots: react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + dev: false - react-string-replace@1.1.1: {} + /react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + dev: false - react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' dependencies: react: 18.2.0 tslib: 2.6.2 + dev: false - react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): + /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -19107,71 +14847,101 @@ snapshots: throttle-debounce: 3.0.1 ts-easing: 0.2.0 tslib: 2.6.2 + dev: false - react@18.2.0: + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - read-cache@1.0.0: + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 + dev: true - read-cmd-shim@3.0.1: {} + /read-cmd-shim@3.0.1: + resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - read-ini-file@4.0.0: + /read-ini-file@4.0.0: + resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} + engines: {node: '>=14.6'} dependencies: ini: 3.0.1 strip-bom: 4.0.0 + dev: true - read-package-json-fast@2.0.3: + /read-package-json-fast@2.0.3: + resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} + engines: {node: '>=10'} dependencies: json-parse-even-better-errors: 2.3.1 npm-normalize-package-bin: 1.0.1 - read-package-json-fast@3.0.2: + /read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 - read-package-json@6.0.4: + /read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: glob: 10.3.10 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 - read-pkg-up@7.0.1: + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - read-pkg-up@8.0.0: + /read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 + dev: true - read-pkg@5.2.0: + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - read-pkg@6.0.0: + /read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 + dev: true - read-yaml-file@2.1.0: + /read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} dependencies: js-yaml: 4.1.0 strip-bom: 4.0.0 + dev: true - readable-stream@2.3.8: + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -19181,13 +14951,17 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 buffer: 6.0.3 @@ -19195,39 +14969,60 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 - readdir-scoped-modules@1.1.0: + /readdir-scoped-modules@1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs dependencies: debuglog: 1.0.1 dezalgo: 1.0.4 graceful-fs: 4.2.11 once: 1.4.0 - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - reading-time@1.5.0: {} + /reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + dev: false - realpath-missing@1.1.0: {} + /realpath-missing@1.1.0: + resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} + engines: {node: '>=10'} + dev: true - rechoir@0.6.2: + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} dependencies: resolve: 1.22.8 - rechoir@0.8.0: + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 - recursive-readdir@2.2.3: + /recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} dependencies: minimatch: 3.1.2 + dev: false - redent@4.0.0: + /redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 + dev: true - reflect.getprototypeof@1.0.6: + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -19236,29 +15031,43 @@ snapshots: get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 + dev: true - regenerate-unicode-properties@10.1.1: + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 - regenerate@1.4.2: {} + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.24.1 - regexp-tree@0.1.27: {} + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true - regexp.prototype.flags@1.5.2: + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 + dev: true - regexpu-core@5.3.2: + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -19267,31 +15076,47 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - registry-auth-token@5.0.2: + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} dependencies: '@pnpm/npm-conf': 2.2.2 + dev: false - registry-url@6.0.1: + /registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} dependencies: rc: 1.2.8 + dev: false - regjsparser@0.10.0: + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true dependencies: jsesc: 0.5.0 + dev: true - regjsparser@0.9.1: + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true dependencies: jsesc: 0.5.0 - rehype-raw@7.0.0: + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 + dev: false - relateurl@0.2.7: {} + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} - remark-directive@3.0.0: + /remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} dependencies: '@types/mdast': 4.0.3 mdast-util-directive: 3.0.0 @@ -19299,16 +15124,21 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-emoji@4.0.1: + /remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: '@types/mdast': 4.0.3 emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 unified: 11.0.4 + dev: false - remark-frontmatter@5.0.0: + /remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} dependencies: '@types/mdast': 4.0.3 mdast-util-frontmatter: 2.0.1 @@ -19316,8 +15146,10 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-gfm@4.0.0: + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: '@types/mdast': 4.0.3 mdast-util-gfm: 3.0.0 @@ -19327,15 +15159,18 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-mdx@3.0.1: + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 @@ -19344,7 +15179,8 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.0: + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -19352,15 +15188,19 @@ snapshots: unified: 11.0.4 vfile: 6.0.1 - remark-stringify@11.0.0: + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: '@types/mdast': 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 + dev: false - remove-trailing-separator@1.1.0: {} + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - renderkid@3.0.0: + /renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} dependencies: css-select: 4.3.0 dom-converter: 0.2.0 @@ -19368,128 +15208,212 @@ snapshots: lodash: 4.17.21 strip-ansi: 6.0.1 - replace-ext@1.0.1: {} + /replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} - require-like@0.1.2: {} + /require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + dev: false - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resize-observer-polyfill@1.5.1: {} + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false - resolve-alpn@1.2.1: {} + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: false - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} - resolve-pathname@3.0.0: {} + /resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + dev: false - resolve-pkg-maps@1.0.0: {} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true - resolve.exports@2.0.2: {} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - responselike@3.0.0: + /responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} dependencies: lowercase-keys: 3.0.0 + dev: false - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - ret@0.1.15: {} + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: false - retry@0.12.0: {} + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} - retry@0.13.1: {} + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfc4648@1.5.3: {} + /rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + dev: false - right-pad@1.0.1: {} + /right-pad@1.0.1: + resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} + engines: {node: '>= 0.10'} + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: glob: 7.2.3 - rimraf@5.0.5: + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true dependencies: glob: 10.3.10 - rtl-css-js@1.16.1: + /rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: '@babel/runtime': 7.24.1 + dev: false - rtl-detect@1.1.2: {} + /rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + dev: false - rtlcss@4.1.1: + /rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true dependencies: escalade: 3.1.2 picocolors: 1.0.0 postcss: 8.4.38 strip-json-comments: 3.1.1 + dev: false - run-applescript@7.0.0: {} + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} - run-async@2.4.1: {} + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.2 - safe-array-concat@1.1.2: + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-execa@0.1.2: + /safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 - safe-regex-test@1.0.3: + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 + dev: true - safe-stable-stringify@2.4.3: {} + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-html@2.13.0: + /sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -19497,77 +15421,124 @@ snapshots: is-plain-object: 5.0.0 parse-srcset: 1.0.2 postcss: 8.4.38 + dev: false - sax@1.3.0: {} + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - sbd@1.0.19: + /sbd@1.0.19: + resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} dependencies: sanitize-html: 2.13.0 + dev: false - scheduler@0.23.0: + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 - schema-utils@2.7.0: + /schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + dev: false - schema-utils@3.3.0: + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.2.0: + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - scoped-regex@2.1.0: {} + /scoped-regex@2.1.0: + resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} + engines: {node: '>=8'} - screenfull@5.2.0: {} + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false - search-insights@2.13.0: {} + /search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + dev: false - section-matter@1.0.0: + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 + dev: false - secure-compare@3.0.1: {} + /secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + dev: true - select-hose@2.0.0: {} + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - selfsigned@2.4.1: + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - semver-diff@4.0.0: + /semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} dependencies: semver: 7.6.0 + dev: false - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true - semver@7.5.4: + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 + dev: true - semver@7.6.0: + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 - send@0.18.0: + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -19585,15 +15556,19 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@6.0.0: + /serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} dependencies: randombytes: 2.1.0 + dev: true - serialize-javascript@6.0.2: + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 - serve-handler@6.1.5: + /serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -19603,8 +15578,11 @@ snapshots: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 + dev: false - serve-index@1.9.1: + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -19616,7 +15594,9 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -19625,9 +15605,12 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -19636,53 +15619,82 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.2: + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: true - set-harmonic-interval@1.0.1: {} + /set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + dev: false - setimmediate@1.0.5: {} + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: true - setprototypeof@1.1.0: {} + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-clone@3.0.1: + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 - shallowequal@1.1.0: {} + /shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - shell-quote@1.8.1: {} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shelljs@0.8.5: + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - side-channel@1.0.6: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - sigstore@1.9.0: + /sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -19692,11 +15704,13 @@ snapshots: transitivePeerDependencies: - supports-color - simple-swizzle@0.2.2: + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 - sinon@17.0.1: + /sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 @@ -19704,52 +15718,79 @@ snapshots: diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 + dev: true - sirv@2.0.4: + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} dependencies: '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 + dev: false - sisteransi@1.0.5: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - sitemap@7.1.1: + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 + dev: false - skin-tone@2.0.0: + /skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} dependencies: unicode-emoji-modifier-base: 1.0.0 + dev: false - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - slash@4.0.0: {} + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: false - smart-buffer@4.2.0: {} + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - snake-case@3.0.4: + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 + dev: true - sockjs@0.3.24: + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - socks-proxy-agent@6.1.1: + /socks-proxy-agent@6.1.1: + resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: - supports-color + dev: false - socks-proxy-agent@6.2.1: + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -19757,7 +15798,9 @@ snapshots: transitivePeerDependencies: - supports-color - socks-proxy-agent@7.0.0: + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -19765,58 +15808,89 @@ snapshots: transitivePeerDependencies: - supports-color - socks@2.8.1: + /socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - sort-css-media-queries@2.1.0: {} + /sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + dev: false - sort-keys@4.2.0: + /sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} dependencies: is-plain-obj: 2.1.0 - sort-keys@5.0.0: + /sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} dependencies: is-plain-obj: 4.1.0 + dev: true - source-map-js@1.2.0: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - source-map-support@0.5.13: + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-url@0.4.1: {} + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true - source-map@0.5.6: {} + /source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + dev: false - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - source-map@0.7.4: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} - space-separated-tokens@2.0.2: {} + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-correct@3.2.0: + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - spdx-exceptions@2.5.0: {} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - spdx-expression-parse@3.0.1: + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - spdx-license-ids@3.0.17: {} + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - spdy-transport@3.0.0: + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: debug: 4.3.4(supports-color@8.1.1) detect-node: 2.1.0 @@ -19827,7 +15901,9 @@ snapshots: transitivePeerDependencies: - supports-color - spdy@4.0.2: + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) handle-thing: 2.0.1 @@ -19837,88 +15913,138 @@ snapshots: transitivePeerDependencies: - supports-color - split2@3.2.2: + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: readable-stream: 3.6.2 - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sprintf-js@1.1.3: {} + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - srcset@4.0.0: {} + /srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + dev: false - ssri@10.0.5: + /ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - ssri@8.0.1: + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - ssri@9.0.1: + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: minipass: 3.3.6 - stable@0.1.8: {} + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: false - stack-generator@2.0.10: + /stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} dependencies: stackframe: 1.3.4 + dev: false - stack-trace@0.0.10: {} + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: true - stackframe@1.3.4: {} + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: false - stacktrace-gps@3.1.2: + /stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} dependencies: source-map: 0.5.6 stackframe: 1.3.4 + dev: false - stacktrace-js@2.0.2: + /stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} dependencies: error-stack-parser: 2.1.4 stack-generator: 2.0.10 stacktrace-gps: 3.1.2 + dev: false - stacktracey@2.1.8: + /stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} dependencies: as-table: 1.0.55 get-source: 2.0.12 + dev: true - statuses@1.5.0: {} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} - std-env@3.7.0: {} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: false - stop-iteration-iterator@1.0.0: + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.7 + dev: true - streamsearch@1.1.0: {} + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false - string-length@4.0.2: + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.11: + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -19932,117 +16058,195 @@ snapshots: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 + dev: true - string.prototype.trim@1.2.9: + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimend@1.0.8: + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimstart@1.0.8: + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string_decoder@1.1.1: + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.3: + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - stringify-object@3.3.0: + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 + dev: false - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - strip-bom-buf@1.0.0: + /strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} dependencies: is-utf8: 0.2.1 - strip-bom-stream@2.0.0: + /strip-bom-stream@2.0.0: + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 - strip-bom-string@1.0.0: {} + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false - strip-bom@2.0.0: + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} dependencies: is-utf8: 0.2.1 - strip-bom@3.0.0: {} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} - strip-bom@4.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} - strip-comments-strings@1.2.0: {} + /strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + dev: true - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} - strip-indent@3.0.0: + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true - strip-indent@4.0.0: + /strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} dependencies: min-indent: 1.0.1 + dev: true - strip-json-comments@2.0.1: {} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} - strnum@1.0.5: {} + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: true - style-loader@3.3.4(webpack@5.91.0): + /style-loader@3.3.4(webpack@5.91.0): + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - style-to-object@0.4.4: + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.5: + /style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} dependencies: inline-style-parser: 0.2.2 - styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): + /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true dependencies: '@babel/core': 7.24.3 client-only: 0.0.1 react: 18.2.0 + dev: false - stylehacks@5.1.1(postcss@8.4.38): + /stylehacks@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - stylis@4.3.1: {} + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false - sucrase@3.35.0: + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -20051,24 +16255,37 @@ snapshots: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} - svg-parser@2.0.4: {} + /svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@2.8.0: + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -20077,8 +16294,12 @@ snapshots: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 + dev: false - svgo@3.2.0: + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -20087,10 +16308,16 @@ snapshots: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 + dev: true - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - syncpack@12.3.0(typescript@5.4.3): + /syncpack@12.3.0(typescript@5.4.3): + resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} + engines: {node: '>=16'} + hasBin: true dependencies: '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0) chalk: 4.1.2 @@ -20110,8 +16337,12 @@ snapshots: ts-toolbelt: 9.6.0 transitivePeerDependencies: - typescript + dev: true - tailwindcss@3.4.1(ts-node@10.9.2): + /tailwindcss@3.4.1(ts-node@10.9.2): + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -20137,12 +16368,20 @@ snapshots: sucrase: 3.35.0 transitivePeerDependencies: - ts-node + dev: true - tapable@1.1.3: {} + /tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + dev: false - tapable@2.2.1: {} + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} - tar@6.2.1: + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -20151,7 +16390,21 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): + /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.20.2 @@ -20161,105 +16414,195 @@ snapshots: terser: 5.29.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - terser@5.29.2: + /terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - text-hex@1.0.0: {} + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - textextensions@5.16.0: {} + /textextensions@5.16.0: + resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + engines: {node: '>=0.8'} - thenify-all@1.6.0: + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 + dev: true - thenify@3.3.1: + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 + dev: true - throttle-debounce@3.0.1: {} + /throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + dev: false - through2@4.0.2: + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 - through@2.3.8: {} + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - thunky@1.1.0: {} + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - tightrope@0.1.0: {} + /tightrope@0.1.0: + resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} + engines: {node: '>=14'} + dev: true - tiny-invariant@1.3.3: {} + /tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: false - tiny-warning@1.0.3: {} + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false - tinycolor2@1.6.0: {} + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - toggle-selection@1.0.6: {} + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} - totalist@3.0.1: {} + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: false - tough-cookie@4.1.3: + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@3.0.0: + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: punycode: 2.3.1 + dev: true - treeverse@1.0.4: {} + /treeverse@1.0.4: + resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} - trie-search@2.0.0: + /trie-search@2.0.0: + resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} dependencies: hasharray: 1.1.2 + dev: false - trim-lines@3.0.1: {} + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trim-newlines@4.1.1: {} + /trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + dev: true - triple-beam@1.4.1: {} + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} - trough@2.2.0: {} + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.3.0(typescript@5.4.3): + /ts-api-utils@1.3.0(typescript@5.4.3): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: typescript: 5.4.3 + dev: true - ts-easing@0.2.0: {} + /ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + dev: false - ts-interface-checker@0.1.13: {} + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true - ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): + /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true dependencies: '@babel/core': 7.24.3 bs-logger: 0.2.6 @@ -20273,8 +16616,14 @@ snapshots: semver: 7.6.0 typescript: 5.4.3 yargs-parser: 21.1.1 + dev: true - ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): + /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -20283,8 +16632,21 @@ snapshots: source-map: 0.7.4 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): + /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.10 @@ -20301,19 +16663,27 @@ snapshots: typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: true - ts-toolbelt@9.6.0: {} + /ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + dev: true - tsconfig-paths@3.15.0: + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true - tslib@2.6.2: {} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tuf-js@1.1.7: + /tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/models': 1.0.4 debug: 4.3.4(supports-color@8.1.1) @@ -20321,46 +16691,77 @@ snapshots: transitivePeerDependencies: - supports-color - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.20.2: {} + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} - type-fest@0.21.3: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} - type-fest@0.6.0: {} + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} - type-fest@0.8.1: {} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} - type-fest@1.4.0: {} + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} - type-fest@2.19.0: {} + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false - type-fest@4.14.0: {} + /type-fest@4.14.0: + resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + engines: {node: '>=16'} + dev: false - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.2: + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 + dev: true - typed-array-byte-length@1.0.1: + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-byte-offset@1.0.2: + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -20368,8 +16769,11 @@ snapshots: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-length@1.0.6: + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -20377,34 +16781,53 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + dev: true - typedarray-to-buffer@3.1.5: + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 - typescript@5.4.3: {} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + engines: {node: '>=14.17'} + hasBin: true - unbox-primitive@1.0.2: + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + dev: true - unicode-canonical-property-names-ecmascript@2.0.0: {} + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} - unicode-emoji-modifier-base@1.0.0: {} + /unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + dev: false - unicode-match-property-ecmascript@2.0.0: + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} - unicode-property-aliases-ecmascript@2.1.0: {} + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} - unified@11.0.4: + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -20414,91 +16837,133 @@ snapshots: trough: 2.2.0 vfile: 6.0.1 - union@0.5.0: + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} dependencies: qs: 6.12.0 + dev: true - unique-filename@1.1.1: + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} dependencies: unique-slug: 2.0.2 - unique-filename@2.0.1: + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: unique-slug: 3.0.0 - unique-filename@3.0.0: + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 - unique-slug@2.0.2: + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} dependencies: imurmurhash: 0.1.4 - unique-slug@3.0.0: + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 - unique-slug@4.0.0: + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - unique-string@2.0.0: + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} dependencies: crypto-random-string: 2.0.0 + dev: true - unique-string@3.0.0: + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} dependencies: crypto-random-string: 4.0.0 + dev: false - unist-util-is@6.0.0: + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: '@types/unist': 3.0.2 - unist-util-position-from-estree@2.0.0: + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} dependencies: '@types/unist': 3.0.2 - unist-util-position@5.0.0: + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 - unist-util-remove-position@5.0.0: + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - unist-util-stringify-position@4.0.0: + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.2 - unist-util-visit-parents@6.0.1: + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - unist-util-visit@5.0.0: + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universal-user-agent@6.0.1: {} + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.2.0: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@2.0.1: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} - untildify@4.0.0: {} + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} - update-browserslist-db@1.0.13(browserslist@4.23.0): + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - update-notifier@6.0.2: + /update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -20514,80 +16979,125 @@ snapshots: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 + dev: false - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - url-join@4.0.1: {} + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true - url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true dependencies: file-loader: 6.2.0(webpack@5.91.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utila@0.4.0: {} + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - utility-types@3.11.0: {} + /utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} - utils-merge@1.0.1: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} - uuid@8.3.2: {} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true - uuid@9.0.1: {} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false - v8-compile-cache-lib@3.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true - v8-to-istanbul@9.2.0: + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + dev: true - validate-npm-package-license@3.0.4: + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@3.0.0: + /validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} dependencies: builtins: 1.0.3 - validate-npm-package-name@5.0.0: + /validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 - value-equal@1.0.1: {} + /value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + dev: false - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} - vfile-location@5.0.2: + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 + dev: false - vfile-message@4.0.2: + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vinyl-file@3.0.0: + /vinyl-file@3.0.0: + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} dependencies: graceful-fs: 4.2.11 pify: 2.3.0 @@ -20595,7 +17105,9 @@ snapshots: strip-bom-stream: 2.0.0 vinyl: 2.2.1 - vinyl@2.2.1: + /vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -20604,40 +17116,63 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vscode-uri@3.0.6: {} + /vscode-uri@3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + dev: true - vscode-uri@3.0.8: {} + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: false - w3c-xmlserializer@4.0.0: + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 + dev: true - walk-up-path@1.0.0: {} + /walk-up-path@1.0.0: + resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: true - watchpack@2.4.1: + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wbuf@1.7.3: + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: minimalistic-assert: 1.0.1 - wcwidth@1.0.1: + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 - web-namespaces@2.0.1: {} + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false - webidl-conversions@3.0.1: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@7.0.0: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - webpack-bundle-analyzer@4.10.1: + /webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.11.3 @@ -20655,8 +17190,24 @@ snapshots: transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false - webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): + /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) @@ -20675,7 +17226,11 @@ snapshots: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) webpack-merge: 5.10.0 - webpack-dev-middleware@5.3.4(webpack@5.91.0): + /webpack-dev-middleware@5.3.4(webpack@5.91.0): + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -20683,8 +17238,16 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - webpack-dev-middleware@7.1.1(webpack@5.91.0): + /webpack-dev-middleware@7.1.1(webpack@5.91.0): + resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true dependencies: colorette: 2.0.20 memfs: 4.8.0 @@ -20694,7 +17257,18 @@ snapshots: schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - webpack-dev-server@4.15.2(webpack@5.91.0): + /webpack-dev-server@4.15.2(webpack@5.91.0): + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20732,8 +17306,20 @@ snapshots: - debug - supports-color - utf-8-validate + dev: false - webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): + /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20773,15 +17359,27 @@ snapshots: - supports-color - utf-8-validate - webpack-merge@5.10.0: + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - webpack-sources@3.2.3: {} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} - webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): + /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -20813,47 +17411,70 @@ snapshots: - esbuild - uglify-js - webpackbar@5.0.2(webpack@5.91.0): + /webpackbar@5.0.2(webpack@5.91.0): + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - websocket-driver@0.7.4: + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - websocket-extensions@0.1.4: {} + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} - whatwg-encoding@2.0.0: + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-mimetype@3.0.0: {} + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true - whatwg-url@11.0.0: + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true - which-builtin-type@1.1.3: + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -20867,60 +17488,90 @@ snapshots: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: true - which-collection@1.0.2: + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 + dev: true - which-pm@2.0.0: + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-typed-array@1.1.15: + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 + dev: true - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: false - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - which@3.0.1: + /which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: isexe: 2.0.0 - wide-align@1.1.5: + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 - widest-line@3.1.0: + /widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} dependencies: string-width: 4.2.3 + dev: true - widest-line@4.0.1: + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 + dev: false - wildcard@2.0.1: {} + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - winston-transport@4.7.0: + /winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} dependencies: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.11.0: + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -20934,95 +17585,173 @@ snapshots: triple-beam: 1.4.1 winston-transport: 4.7.0 - workerpool@6.2.1: {} + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + dev: true - wrap-ansi@6.2.0: + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@3.0.3: + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - write-file-atomic@4.0.2: + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - write-file-atomic@5.0.1: + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - write-json-file@5.0.0: + /write-json-file@5.0.0: + resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: detect-indent: 7.0.1 is-plain-obj: 4.1.0 sort-keys: 5.0.0 write-file-atomic: 3.0.3 + dev: true - write-yaml-file@5.0.0: + /write-yaml-file@5.0.0: + resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} + engines: {node: '>=16.14'} dependencies: js-yaml: 4.1.0 write-file-atomic: 5.0.1 + dev: true - ws@7.5.9: {} + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false - ws@8.16.0: {} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - xdg-basedir@5.1.0: {} + /xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + dev: false - xml-js@1.6.11: + /xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true dependencies: sax: 1.3.0 + dev: false - xml-name-validator@4.0.0: {} + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true - xmlchars@2.2.0: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yallist@3.1.1: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.2: {} + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false - yaml@2.4.1: {} + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + dev: true - yargs-parser@20.2.4: {} + /yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + dev: true - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs-unparser@2.0.0: + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 + dev: true - yargs@16.2.0: + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -21031,8 +17760,11 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -21041,8 +17773,12 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yeoman-environment@3.19.3: + /yeoman-environment@3.19.3: + resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} + engines: {node: '>=12.10.0'} + hasBin: true dependencies: '@npmcli/arborist': 4.3.1 are-we-there-yet: 2.0.0 @@ -21085,7 +17821,14 @@ snapshots: - bluebird - supports-color - yeoman-generator@5.10.0(yeoman-environment@3.19.3): + /yeoman-generator@5.10.0(yeoman-environment@3.19.3): + resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} + engines: {node: '>=12.10.0'} + peerDependencies: + yeoman-environment: ^3.2.0 + peerDependenciesMeta: + yeoman-environment: + optional: true dependencies: chalk: 4.1.2 dargs: 7.0.0 @@ -21109,12 +17852,23 @@ snapshots: - mem-fs - supports-color - yn@3.1.1: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - yocto-queue@1.0.0: {} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: false - zod@3.22.4: {} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: false - zwitch@2.0.4: {} + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} From b07d81640fb54ba39baa2e54862f7c44513c4944 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:50:28 +0000 Subject: [PATCH 289/504] [pre-commit.ci lite] apply automatic fixes --- pnpm-lock.yaml | 18970 +++++++++++++++++++++++++++-------------------- 1 file changed, 11108 insertions(+), 7862 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b082b58835..cd3f93486e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -769,12 +769,8922 @@ importers: packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + '@algolia/autocomplete-core@1.9.3': resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.9.3': + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/cache-browser-local-storage@4.22.1': + resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + + '@algolia/cache-common@4.22.1': + resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + + '@algolia/cache-in-memory@4.22.1': + resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + + '@algolia/client-account@4.22.1': + resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + + '@algolia/client-analytics@4.22.1': + resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + + '@algolia/client-common@4.22.1': + resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + + '@algolia/client-personalization@4.22.1': + resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + + '@algolia/client-search@4.22.1': + resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + + '@algolia/events@4.0.1': + resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + + '@algolia/logger-common@4.22.1': + resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + + '@algolia/logger-console@4.22.1': + resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + + '@algolia/requester-browser-xhr@4.22.1': + resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + + '@algolia/requester-common@4.22.1': + resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + + '@algolia/requester-node-http@4.22.1': + resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + + '@algolia/transporter@4.22.1': + resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.1': + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.3': + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.1': + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.1': + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.22.15': + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.1': + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.22.20': + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.24.1': + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.1': + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.1': + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.24.1': + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.1': + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.24.1': + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.24.3': + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.24.1': + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.24.1': + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.24.1': + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.24.1': + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.24.1': + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.24.1': + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.24.1': + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.24.1': + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.24.1': + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.24.1': + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dynamic-import@7.24.1': + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.24.1': + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.24.1': + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.24.1': + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.24.1': + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.24.1': + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.24.1': + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.24.1': + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.24.1': + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.24.1': + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.1': + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.24.1': + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.24.1': + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.24.1': + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.24.1': + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.24.1': + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.24.1': + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.24.1': + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.24.1': + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.24.1': + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.24.1': + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.24.1': + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.24.1': + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-constant-elements@7.24.1': + resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.24.1': + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.22.5': + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.23.4': + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.24.1': + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.24.1': + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.24.1': + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.24.3': + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.24.1': + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.24.1': + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.24.1': + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.24.1': + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.24.1': + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.24.1': + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.24.1': + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.24.1': + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.24.1': + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1': + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.24.3': + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-react@7.24.1': + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.1': + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/regjsgen@0.8.0': + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime-corejs3@7.24.1': + resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.24.1': + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dabh/diagnostics@2.0.3': + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@docsearch/css@3.6.0': + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + + '@docsearch/react@3.6.0': + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + + '@docusaurus/core@3.1.1': + resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/cssnano-preset@3.1.1': + resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} + engines: {node: '>=18.0'} + + '@docusaurus/logger@3.1.1': + resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} + engines: {node: '>=18.0'} + + '@docusaurus/mdx-loader@3.1.1': + resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/module-type-aliases@3.1.1': + resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} + peerDependencies: + react: '*' + react-dom: '*' + + '@docusaurus/plugin-content-blog@3.1.1': + resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-docs@3.1.1': + resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-pages@3.1.1': + resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-debug@3.1.1': + resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-analytics@3.1.1': + resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-gtag@3.1.1': + resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-tag-manager@3.1.1': + resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-sitemap@3.1.1': + resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/preset-classic@3.1.1': + resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/react-loadable@5.5.2': + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' + + '@docusaurus/theme-classic@3.1.1': + resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-common@3.1.1': + resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-search-algolia@3.1.1': + resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-translations@3.1.1': + resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} + engines: {node: '>=18.0'} + + '@docusaurus/types@3.1.1': + resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/utils-common@3.1.1': + resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@docusaurus/utils-validation@3.1.1': + resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} + engines: {node: '>=18.0'} + + '@docusaurus/utils@3.1.1': + resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@effect/schema@0.56.1': + resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} + peerDependencies: + effect: 2.0.0-next.62 + fast-check: ^3.13.2 + + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3': + resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} + engines: {node: '>=10.13.0'} + peerDependencies: + html-webpack-plugin: '>=5' + webpack: '>=5' + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@fortawesome/fontawesome-common-types@6.5.1': + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + + '@fortawesome/fontawesome-svg-core@6.5.1': + resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + engines: {node: '>=6'} + + '@fortawesome/free-solid-svg-icons@6.5.1': + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + + '@fortawesome/react-fontawesome@0.2.0': + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3 || 18' + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + + '@gwhitney/detect-indent@7.0.1': + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.2': + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@leichtgewicht/ip-codec@2.0.4': + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + + '@mdx-js/loader@3.0.1': + resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} + peerDependencies: + webpack: '>=5' + + '@mdx-js/mdx@3.0.1': + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + + '@mdx-js/react@3.0.1': + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16 || 18' + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@next/env@14.1.4': + resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} + + '@next/eslint-plugin-next@14.1.4': + resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + + '@next/mdx@14.1.4': + resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true + + '@next/swc-darwin-arm64@14.1.4': + resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.1.4': + resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.1.4': + resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.1.4': + resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.1.4': + resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.1.4': + resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.1.4': + resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.1.4': + resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.1.4': + resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/arborist@4.3.1': + resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + '@npmcli/fs@1.1.1': + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/fs@3.1.0': + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@2.1.0': + resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + + '@npmcli/git@4.1.0': + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/installed-package-contents@1.0.7': + resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} + engines: {node: '>= 10'} + hasBin: true + + '@npmcli/installed-package-contents@2.0.2': + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/map-workspaces@2.0.4': + resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/metavuln-calculator@2.0.0': + resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + '@npmcli/move-file@1.1.2': + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/name-from-folder@1.0.1': + resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + + '@npmcli/node-gyp@1.0.3': + resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@1.0.1': + resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + + '@npmcli/promise-spawn@1.3.2': + resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + + '@npmcli/promise-spawn@6.0.2': + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/run-script@2.0.0': + resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + + '@npmcli/run-script@6.0.2': + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@octokit/auth-token@2.5.0': + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + + '@octokit/core@3.6.0': + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + + '@octokit/endpoint@6.0.12': + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + + '@octokit/graphql@4.8.0': + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + + '@octokit/openapi-types@12.11.0': + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + + '@octokit/plugin-paginate-rest@2.21.3': + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' + + '@octokit/plugin-request-log@1.0.4': + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/plugin-rest-endpoint-methods@5.16.2': + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/request-error@2.1.0': + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + + '@octokit/request@5.6.3': + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + + '@octokit/rest@18.12.0': + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + + '@octokit/types@6.41.0': + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/cli-meta@5.0.1': + resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} + engines: {node: '>=16.14'} + + '@pnpm/cli-utils@2.0.9': + resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/config@18.4.0': + resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@6.2.0': + resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} + engines: {node: '>=14.6'} + + '@pnpm/constants@7.1.0': + resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} + engines: {node: '>=16.14'} + + '@pnpm/constants@7.1.1': + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@8.0.0': + resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} + engines: {node: '>=18.12'} + + '@pnpm/core-loggers@10.0.0': + resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/core-loggers@9.0.1': + resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/crypto.base32-hash@3.0.0': + resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} + engines: {node: '>=18.12'} + + '@pnpm/dedupe.issues-renderer@1.0.0': + resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} + engines: {node: '>=16.14'} + + '@pnpm/dedupe.types@1.0.0': + resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} + engines: {node: '>=16.14'} + + '@pnpm/default-reporter@12.2.3': + resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/dependency-path@3.0.0': + resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} + engines: {node: '>=18.12'} + + '@pnpm/error@4.0.1': + resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} + engines: {node: '>=14.6'} + + '@pnpm/error@5.0.1': + resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} + engines: {node: '>=16.14'} + + '@pnpm/error@5.0.3': + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} + + '@pnpm/error@6.0.0': + resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} + engines: {node: '>=18.12'} + + '@pnpm/fetch@8.0.0': + resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/fetcher-base@14.0.1': + resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} + engines: {node: '>=16.14'} + + '@pnpm/fetching-types@6.0.0': + resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} + engines: {node: '>=18.12'} + + '@pnpm/find-workspace-dir@6.0.3': + resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} + engines: {node: '>=16.14'} + + '@pnpm/find-workspace-packages@6.0.9': + resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} + engines: {node: '>=16.14'} + + '@pnpm/fs.find-packages@2.0.1': + resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} + engines: {node: '>=16.14'} + + '@pnpm/git-resolver@9.0.1': + resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} + engines: {node: '>=18.12'} + + '@pnpm/git-utils@1.0.0': + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} + + '@pnpm/git-utils@2.0.0': + resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} + engines: {node: '>=18.12'} + + '@pnpm/graceful-fs@3.0.0': + resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} + engines: {node: '>=16.14'} + + '@pnpm/hooks.types@1.0.1': + resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} + engines: {node: '>=16.14'} + + '@pnpm/hosted-git-info@1.0.0': + resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} + engines: {node: '>=10'} + + '@pnpm/lockfile-file@9.0.2': + resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/lockfile-types@5.1.0': + resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} + engines: {node: '>=16.14'} + + '@pnpm/lockfile-types@6.0.0': + resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} + engines: {node: '>=18.12'} + + '@pnpm/lockfile-utils@10.0.0': + resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} + engines: {node: '>=18.12'} + + '@pnpm/logger@5.0.0': + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} + + '@pnpm/manifest-utils@5.0.1': + resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} + engines: {node: '>=16.14'} + + '@pnpm/matcher@5.0.0': + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} + engines: {node: '>=16.14'} + + '@pnpm/merge-lockfile-changes@6.0.0': + resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} + engines: {node: '>=18.12'} + + '@pnpm/meta-updater@1.0.0': + resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} + engines: {node: '>=10.12'} + hasBin: true + + '@pnpm/network.agent@1.0.1': + resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.config@1.0.1': + resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.proxy-agent@1.0.1': + resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} + engines: {node: '>=12.22.0'} + + '@pnpm/node-fetch@1.0.0': + resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} + engines: {node: ^10.17 || >=12.3} + + '@pnpm/npm-conf@2.2.0': + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@pnpm/package-is-installable@8.0.2': + resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/pick-fetcher@3.0.0': + resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} + engines: {node: '>=18.12'} + + '@pnpm/pnpmfile@5.0.7': + resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/ramda@0.28.1': + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + + '@pnpm/read-project-manifest@5.0.1': + resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} + engines: {node: '>=16.14'} + + '@pnpm/render-peer-issues@4.0.1': + resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@10.0.1': + resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@12.0.0': + resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} + engines: {node: '>=18.12'} + + '@pnpm/store-controller-types@15.0.1': + resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} + engines: {node: '>=16.14'} + + '@pnpm/text.comments-parser@2.0.0': + resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} + engines: {node: '>=16.14'} + + '@pnpm/types@10.0.0': + resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} + engines: {node: '>=18.12'} + + '@pnpm/types@9.1.0': + resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} + engines: {node: '>=16.14'} + + '@pnpm/types@9.4.2': + resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} + engines: {node: '>=16.14'} + + '@pnpm/util.lex-comparator@1.0.0': + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + + '@pnpm/util.lex-comparator@3.0.0': + resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} + engines: {node: '>=18.12'} + + '@pnpm/write-project-manifest@5.0.1': + resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} + engines: {node: '>=16.14'} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@rushstack/eslint-patch@1.8.0': + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sigstore/bundle@1.1.0': + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.2.1': + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/sign@1.0.0': + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/tuf@1.0.3': + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@sinonjs/commons@2.0.0': + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@sinonjs/fake-timers@11.2.2': + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + + '@sinonjs/samsam@8.0.0': + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + + '@sinonjs/text-encoding@0.7.2': + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + + '@slorber/remark-comment@1.0.0': + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + + '@slorber/static-site-generator-webpack-plugin@4.0.7': + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@6.5.1': + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@8.1.0': + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/webpack@6.5.1': + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} + + '@svgr/webpack@8.1.0': + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} + + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + + '@testing-library/react@14.2.2': + resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@tsconfig/docusaurus@2.0.2': + resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} + + '@tsconfig/node10@1.0.10': + resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tufjs/canonical-json@1.0.0': + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@tufjs/models@1.0.4': + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.5': + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/chai@4.3.14': + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.6': + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/expect@1.20.4': + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + + '@types/express-serve-static-core@4.17.43': + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/gtag.js@0.0.12': + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.14': + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.12': + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + + '@types/js-cookie@2.2.7': + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/lodash@4.14.181': + resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} + + '@types/lodash@4.17.0': + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + + '@types/mdast@4.0.3': + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + + '@types/mdx-js__react@1.5.8': + resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + + '@types/mdx@2.0.12': + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/mime@3.0.4': + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mocha@10.0.6': + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + + '@types/moo@0.5.9': + resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nearley@2.11.5': + resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@15.14.9': + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@18.18.2': + resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/normalize-path@3.0.2': + resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prismjs@1.26.3': + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.14': + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-dom@18.2.22': + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + + '@types/react-helmet@6.1.11': + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + + '@types/react-router-config@5.0.11': + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + + '@types/react@18.2.71': + resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/sbd@1.0.5': + resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} + + '@types/scheduler@0.23.0': + resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.5': + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + + '@types/sinon@17.0.3': + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + + '@types/sinonjs__fake-timers@8.1.5': + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/ssri@7.1.5': + resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/tinycolor2@1.4.6': + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/unist@2.0.10': + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/vinyl@2.0.11': + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + + '@types/vscode@1.75.1': + resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} + + '@types/vscode@1.88.0': + resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} + + '@types/webpack@5.28.5': + resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + + '@typescript-eslint/eslint-plugin@7.4.0': + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.4.0': + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.4.0': + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.4.0': + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.4.0': + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.4.0': + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.4.0': + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.4.0': + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vscode/test-electron@2.3.9': + resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} + engines: {node: '>=16'} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/generators@3.0.7': + resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} + engines: {node: '>=14.15.0'} + peerDependencies: + prettier: '*' + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + prettier: + optional: true + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xobotyi/scrollbar-width@1.9.5': + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true + + '@zkochan/retry@0.2.0': + resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} + engines: {node: '>=10'} + + '@zkochan/rimraf@2.1.3': + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} + + '@zkochan/which@2.0.3': + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + algoliasearch-helper@3.16.3: + resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' + + algoliasearch@4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-diff@1.1.1: + resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-split@1.0.1: + resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + + array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + + axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-loader@9.1.3: + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-polyfill-corejs2@0.4.10: + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.4: + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.1: + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-preset-current-node-syntax@1.0.1: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + bin-links@3.0.3: + resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binaryextensions@4.19.0: + resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + engines: {node: '>=0.8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bole@5.0.11: + resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + can-write-to-dir@1.1.1: + resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} + engines: {node: '>=10.13'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-columns@4.0.0: + resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} + engines: {node: '>= 10'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} + engines: {node: 10.* || >= 12.*} + + cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + + clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + + cmd-shim@5.0.0: + resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + + colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + + combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.1.0: + resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} + engines: {node: '>= 10'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + copy-webpack-plugin@11.0.0: + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + + core-js-pure@3.36.1: + resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} + + core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + + css-loader@6.10.0: + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-minimizer-webpack-plugin@4.2.2: + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-advanced@5.3.10: + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true + + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + effect@2.0.0-next.62: + resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} + + ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + error@10.4.0: + resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + + es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + + es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-next@14.1.4: + resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.1: + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-module-utils@2.8.1: + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.8.0: + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-mocha@10.4.1: + resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.34.1: + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-unicorn@51.0.1: + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@3.1.0: + resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.0.1: + resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} + engines: {node: '>=16.0.0'} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-check@3.15.0: + resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} + engines: {node: '>=8.0.0'} + + fast-check@3.17.0: + resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + fetch-blob@2.1.2: + resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} + engines: {node: ^10.17.0 || >=12.3.0} + peerDependencies: + domexception: '*' + peerDependenciesMeta: + domexception: + optional: true + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@6.5.3: + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + github-username@6.0.0: + resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + + global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graceful-git@3.1.2: + resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} + engines: {node: '>=10'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + grouped-queue@2.0.0: + resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} + engines: {node: '>=8.0.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hasharray@1.1.2: + resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-webpack-plugin@5.6.0: + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@4.0.1: + resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} + engines: {node: '>=10'} + + ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + ini@3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + + inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + + is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-scoped@2.1.0: + resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} + engines: {node: '>=8'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + itertools@2.2.5: + resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + + jclass@1.2.1: + resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} + engines: {node: '>= 0.6'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@5.2.0: + resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + + just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} + + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.10.1: + resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} + engines: {node: '>=12'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + + mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + mem-fs-editor@9.7.0: + resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} + engines: {node: '>=12.10.0'} + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true + + mem-fs@2.3.0: + resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} + engines: {node: '>=12'} + + mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + memfs@4.8.0: + resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + engines: {node: '>= 4.0.0'} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + + micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + + micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + + micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + + micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-css-extract-plugin@2.8.1: + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-infer-owner@2.0.0: + resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} + engines: {node: '>=10'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nano-css@5.6.1: + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} + engines: {node: '>=10'} + hasBin: true + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + + next@14.1.4: + resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + + nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-registry-url@2.0.0: + resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + + npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@4.0.0: + resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} + engines: {node: '>=10'} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + + npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} + + npm-packlist@3.0.0: + resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} + engines: {node: '>=10'} + hasBin: true + + npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@6.1.1: + resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + + npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-registry-fetch@12.0.2: + resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-transform@1.3.0: + resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} + engines: {node: '>=12.10.0'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pacote@12.0.3: + resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-conflict-json@2.0.2: + resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + + parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-absolute@1.0.1: + resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} + engines: {node: '>=4'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + + path-temp@2.1.0: + resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} + engines: {node: '>=8.15'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-unused@5.1.0: + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-loader@7.3.4: + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-loader@8.1.1: + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + postcss-merge-idents@5.1.1: + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.0.0: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.4: + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.1.1: + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-idents@5.2.0: + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-sort-media-queries@4.4.1: + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss-zindex@5.1.0: + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.5.12: + resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + + pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + + print-diff@1.0.0: + resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} + engines: {node: '>=8.3'} + + printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + + prism-react-renderer@2.3.1: + resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} + peerDependencies: + react: '>=16.0.0 || 18' + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proc-log@1.0.0: + resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + + rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + + ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 + + react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-helmet-async@2.0.4: + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + react-json-view-lite@1.3.0: + resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + + react-loadable-ssr-addon-v5-slorber@1.0.1: + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' + + react-player@2.15.1: + resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} + peerDependencies: + react: '>=16.6.0 || 18' + + react-router-config@5.1.1: + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15 || 18' + react-router: '>=5' + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15 || 18' + + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15 || 18' + + react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + + react-universal-interface@0.6.2: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + + react-use@17.5.0: + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-cmd-shim@3.0.1: + resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + read-ini-file@4.0.0: + resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} + engines: {node: '>=14.6'} + + read-package-json-fast@2.0.3: + resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} + engines: {node: '>=10'} + + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-scoped-modules@1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + realpath-missing@1.1.0: + resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} + engines: {node: '>=10'} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + + right-pad@1.0.1: + resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} + engines: {node: '>= 0.10'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + + rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + + rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + sbd@1.0.19: + resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + scoped-regex@2.1.0: + resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} + engines: {node: '>=8'} + + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + socks-proxy-agent@6.1.1: + resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + engines: {node: '>= 10'} + + socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + + sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} + + sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + + ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + + stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + + stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} + + strip-bom-stream@2.0.0: + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + style-loader@3.3.4: + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + syncpack@12.3.0: + resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} + engines: {node: '>=16'} + hasBin: true + + tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + textextensions@5.16.0: + resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + engines: {node: '>=0.8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tightrope@0.1.0: + resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} + engines: {node: '>=14'} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + treeverse@1.0.4: + resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + + trie-search@2.0.0: + resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-jest@29.1.2: + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + + ts-loader@9.5.1: + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.14.0: + resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + + union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + + unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + url-loader@4.1.1: + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + + validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + + vinyl-file@3.0.0: + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} + + vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + + vscode-uri@3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + walk-up-path@1.0.0: + resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-middleware@7.1.1: + resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-dev-server@5.0.4: + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpackbar@5.0.2: + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} + + winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + + workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@5.0.0: + resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + write-yaml-file@5.0.0: + resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} + engines: {node: '>=16.14'} + + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yeoman-environment@3.19.3: + resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} + engines: {node: '>=12.10.0'} + hasBin: true + + yeoman-generator@5.10.0: + resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} + engines: {node: '>=12.10.0'} + peerDependencies: + yeoman-environment: ^3.2.0 + peerDependenciesMeta: + yeoman-environment: + optional: true + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -782,161 +9692,105 @@ packages: - '@algolia/client-search' - algoliasearch - search-insights - dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/cache-browser-local-storage@4.22.1: - resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + '@algolia/cache-browser-local-storage@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/cache-common@4.22.1: - resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} - dev: false + '@algolia/cache-common@4.22.1': {} - /@algolia/cache-in-memory@4.22.1: - resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + '@algolia/cache-in-memory@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/client-account@4.22.1: - resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + '@algolia/client-account@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-analytics@4.22.1: - resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + '@algolia/client-analytics@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-common@4.22.1: - resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + '@algolia/client-common@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-personalization@4.22.1: - resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + '@algolia/client-personalization@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-search@4.22.1: - resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + '@algolia/client-search@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/events@4.0.1: - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - dev: false + '@algolia/events@4.0.1': {} - /@algolia/logger-common@4.22.1: - resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} - dev: false + '@algolia/logger-common@4.22.1': {} - /@algolia/logger-console@4.22.1: - resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + '@algolia/logger-console@4.22.1': dependencies: '@algolia/logger-common': 4.22.1 - dev: false - /@algolia/requester-browser-xhr@4.22.1: - resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + '@algolia/requester-browser-xhr@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/requester-common@4.22.1: - resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} - dev: false + '@algolia/requester-common@4.22.1': {} - /@algolia/requester-node-http@4.22.1: - resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + '@algolia/requester-node-http@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/transporter@4.22.1: - resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + '@algolia/transporter@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 '@algolia/logger-common': 4.22.1 '@algolia/requester-common': 4.22.1 - dev: false - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true + '@alloc/quick-lru@5.2.0': {} - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - /@babel/compat-data@7.24.1: - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.1': {} - /@babel/core@7.24.3: - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} + '@babel/core@7.24.3': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 @@ -956,30 +9810,22 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.1: - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} + '@babel/generator@7.24.1': dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: '@babel/types': 7.24.0 - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 @@ -987,11 +9833,7 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1004,21 +9846,14 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1029,40 +9864,26 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.22.20': {} - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.3': dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1071,79 +9892,51 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.0': {} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.22.6': dependencies: '@babel/types': 7.24.0 - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.1': {} - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': {} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': {} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helpers@7.24.1: - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.1': dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 @@ -1151,252 +9944,151 @@ packages: transitivePeerDependencies: - supports-color - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/parser@7.24.1: - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true + '@babel/parser@7.24.1': dependencies: '@babel/types': 7.24.0 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1404,61 +10096,37 @@ packages: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1470,159 +10138,95 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-hoist-variables': 7.22.5 @@ -1630,60 +10234,36 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1691,61 +10271,37 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1753,47 +10309,27 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1802,40 +10338,24 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 @@ -1846,59 +10366,34 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1906,50 +10401,30 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/preset-env@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -2035,21 +10510,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2059,11 +10527,7 @@ packages: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2072,34 +10536,24 @@ packages: '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + '@babel/regjsgen@0.8.0': {} - /@babel/runtime-corejs3@7.24.1: - resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} - engines: {node: '>=6.9.0'} + '@babel/runtime-corejs3@7.24.1': dependencies: core-js-pure: 3.36.1 regenerator-runtime: 0.14.1 - dev: false - /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} - engines: {node: '>=6.9.0'} + '@babel/runtime@7.24.1': dependencies: regenerator-runtime: 0.14.1 - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.1': dependencies: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 @@ -2114,67 +10568,34 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + '@babel/types@7.24.0': dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true + '@bcoe/v8-coverage@0.2.3': {} - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: false + '@colors/colors@1.5.0': optional: true - /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + '@colors/colors@1.6.0': {} - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true - /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.3': dependencies: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + '@discoveryjs/json-ext@0.5.7': {} - /@docsearch/css@3.6.0: - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - dev: false + '@docsearch/css@3.6.0': {} - /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true + '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -2186,15 +10607,8 @@ packages: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - dev: false - /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -2249,7 +10663,7 @@ packages: react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0) react-router: 5.3.4(react@18.2.0) react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) @@ -2285,32 +10699,20 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/cssnano-preset@3.1.1: - resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} - engines: {node: '>=18.0'} + '@docusaurus/cssnano-preset@3.1.1': dependencies: cssnano-preset-advanced: 5.3.10(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 4.4.1(postcss@8.4.38) tslib: 2.6.2 - dev: false - /@docusaurus/logger@3.1.1: - resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} - engines: {node: '>=18.0'} + '@docusaurus/logger@3.1.1': dependencies: chalk: 4.1.2 tslib: 2.6.2 - dev: false - /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 @@ -2347,13 +10749,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} - peerDependencies: - react: '*' - react-dom: '*' + '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2364,7 +10761,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' transitivePeerDependencies: - '@swc/core' - esbuild @@ -2372,12 +10769,7 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2415,14 +10807,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2458,14 +10844,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2494,14 +10874,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2528,14 +10902,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2560,14 +10928,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2593,14 +10955,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2625,14 +10981,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2662,14 +11012,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2706,23 +11050,14 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/react-loadable@5.5.2(react@18.2.0): - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' + '@docusaurus/react-loadable@5.5.2(react@18.2.0)': dependencies: '@types/react': 18.2.71 prop-types: 15.8.1 react: 18.2.0 - /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2769,14 +11104,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2813,14 +11142,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2861,22 +11184,13 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - patched: true - /@docusaurus/theme-translations@3.1.1: - resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} - engines: {node: '>=18.0'} + '@docusaurus/theme-translations@3.1.1': dependencies: fs-extra: 11.2.0 tslib: 2.6.2 - dev: false - /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -2896,22 +11210,12 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1): - resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)': dependencies: '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 - dev: false - /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} - engines: {node: '>=18.0'} + '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2) @@ -2925,16 +11229,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2960,232 +11256,97 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0): - resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} - peerDependencies: - effect: 2.0.0-next.62 - fast-check: ^3.13.2 + '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)': dependencies: effect: 2.0.0-next.62 fast-check: 3.15.0 - dev: true - /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0): - resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} - engines: {node: '>=10.13.0'} - peerDependencies: - html-webpack-plugin: '>=5' - webpack: '>=5' + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)': dependencies: escape-string-regexp: 4.0.0 html-webpack-plugin: 5.6.0(webpack@5.91.0) slash: 3.0.0 source-map-url: 0.4.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /@esbuild/aix-ppc64@0.20.2: - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true + '@esbuild/aix-ppc64@0.20.2': optional: true - /@esbuild/android-arm64@0.20.2: - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@esbuild/android-arm64@0.20.2': optional: true - /@esbuild/android-arm@0.20.2: - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.20.2': optional: true - /@esbuild/android-x64@0.20.2: - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + '@esbuild/android-x64@0.20.2': optional: true - /@esbuild/darwin-arm64@0.20.2: - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-arm64@0.20.2': optional: true - /@esbuild/darwin-x64@0.20.2: - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-x64@0.20.2': optional: true - /@esbuild/freebsd-arm64@0.20.2: - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-arm64@0.20.2': optional: true - /@esbuild/freebsd-x64@0.20.2: - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-x64@0.20.2': optional: true - /@esbuild/linux-arm64@0.20.2: - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm64@0.20.2': optional: true - /@esbuild/linux-arm@0.20.2: - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm@0.20.2': optional: true - /@esbuild/linux-ia32@0.20.2: - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + '@esbuild/linux-ia32@0.20.2': optional: true - /@esbuild/linux-loong64@0.20.2: - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.20.2': optional: true - /@esbuild/linux-mips64el@0.20.2: - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + '@esbuild/linux-mips64el@0.20.2': optional: true - /@esbuild/linux-ppc64@0.20.2: - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ppc64@0.20.2': optional: true - /@esbuild/linux-riscv64@0.20.2: - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@esbuild/linux-riscv64@0.20.2': optional: true - /@esbuild/linux-s390x@0.20.2: - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + '@esbuild/linux-s390x@0.20.2': optional: true - /@esbuild/linux-x64@0.20.2: - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + '@esbuild/linux-x64@0.20.2': optional: true - /@esbuild/netbsd-x64@0.20.2: - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + '@esbuild/netbsd-x64@0.20.2': optional: true - /@esbuild/openbsd-x64@0.20.2: - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + '@esbuild/openbsd-x64@0.20.2': optional: true - /@esbuild/sunos-x64@0.20.2: - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + '@esbuild/sunos-x64@0.20.2': optional: true - /@esbuild/win32-arm64@0.20.2: - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@esbuild/win32-arm64@0.20.2': optional: true - /@esbuild/win32-ia32@0.20.2: - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@esbuild/win32-ia32@0.20.2': optional: true - /@esbuild/win32-x64@0.20.2: - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + '@esbuild/win32-x64@0.20.2': optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.10.0': {} - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -3199,62 +11360,35 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@8.57.0': {} - /@fortawesome/fontawesome-common-types@6.5.1: - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} - engines: {node: '>=6'} - requiresBuild: true - dev: false + '@fortawesome/fontawesome-common-types@6.5.1': {} - /@fortawesome/fontawesome-svg-core@6.5.1: - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/fontawesome-svg-core@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/free-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/free-solid-svg-icons@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} - peerDependencies: - '@fortawesome/fontawesome-svg-core': ~1 || ~6 - react: '>=16.3 || 18' + '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)': dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 prop-types: 15.8.1 react: 18.2.0 - dev: false - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@gar/promisify@1.1.3': {} - /@gwhitney/detect-indent@7.0.1: - resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} - engines: {node: '>=12.20'} - dev: true + '@gwhitney/detect-indent@7.0.1': {} - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + '@hapi/hoek@9.3.0': {} - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hapi/topo@5.1.0': dependencies: '@hapi/hoek': 9.3.0 - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -3262,46 +11396,32 @@ packages: transitivePeerDependencies: - supports-color - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + '@humanwhocodes/module-importer@1.0.1': {} - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + '@humanwhocodes/object-schema@2.0.2': {} - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@isaacs/string-locale-compare@1.1.0: - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + '@isaacs/string-locale-compare@1.1.0': {} - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 - dev: true - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true + '@istanbuljs/schema@0.1.3': {} - /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -3309,16 +11429,8 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - dev: true - /@jest/core@29.7.0(ts-node@10.9.2): - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/core@29.7.0(ts-node@10.9.2)': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -3352,38 +11464,26 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-mock: 29.7.0 - dev: true - /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 - dev: true - /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -3391,11 +11491,8 @@ packages: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -3403,16 +11500,8 @@ packages: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -3440,46 +11529,32 @@ packages: v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 - /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - dev: true - /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@29.7.0': dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - dev: true - /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@29.7.0': dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 - dev: true - /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.24.3 '@jest/types': 29.6.3 @@ -3498,11 +11573,8 @@ packages: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color - dev: true - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 @@ -3511,61 +11583,44 @@ packages: '@types/yargs': 17.0.32 chalk: 4.1.2 - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': {} - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': {} - /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.4.15': {} - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + '@leichtgewicht/ip-codec@2.0.4': {} - /@mdx-js/loader@3.0.1(webpack@5.91.0): - resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} - peerDependencies: - webpack: '>=5' + '@mdx-js/loader@3.0.1(webpack@5.91.0)': dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color - dev: false - /@mdx-js/mdx@3.0.1: - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + '@mdx-js/mdx@3.0.1': dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -3593,150 +11648,66 @@ packages: transitivePeerDependencies: - supports-color - /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0): - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16 || 18' + '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)': dependencies: '@types/mdx': 2.0.12 '@types/react': 18.2.71 react: 18.2.0 - dev: false - /@msgpack/msgpack@2.8.0: - resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} - engines: {node: '>= 10'} + '@msgpack/msgpack@2.8.0': {} - /@next/env@14.1.4: - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - dev: false + '@next/env@14.1.4': {} - /@next/eslint-plugin-next@14.1.4: - resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + '@next/eslint-plugin-next@14.1.4': dependencies: glob: 10.3.10 - dev: true - /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1): - resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} - peerDependencies: - '@mdx-js/loader': '>=0.15.0' - '@mdx-js/react': '>=0.15.0' - peerDependenciesMeta: - '@mdx-js/loader': - optional: true - '@mdx-js/react': - optional: true + '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)': dependencies: '@mdx-js/loader': 3.0.1(webpack@5.91.0) '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0) source-map: 0.7.4 - dev: false - /@next/swc-darwin-arm64@14.1.4: - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-arm64@14.1.4': optional: true - /@next/swc-darwin-x64@14.1.4: - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-x64@14.1.4': optional: true - /@next/swc-linux-arm64-gnu@14.1.4: - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-gnu@14.1.4': optional: true - /@next/swc-linux-arm64-musl@14.1.4: - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-musl@14.1.4': optional: true - /@next/swc-linux-x64-gnu@14.1.4: - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-gnu@14.1.4': optional: true - /@next/swc-linux-x64-musl@14.1.4: - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-musl@14.1.4': optional: true - /@next/swc-win32-arm64-msvc@14.1.4: - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-arm64-msvc@14.1.4': optional: true - /@next/swc-win32-ia32-msvc@14.1.4: - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-ia32-msvc@14.1.4': optional: true - /@next/swc-win32-x64-msvc@14.1.4: - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-x64-msvc@14.1.4': optional: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@npmcli/arborist@4.3.1: - resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + '@npmcli/arborist@4.3.1': dependencies: '@isaacs/string-locale-compare': 1.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -3774,27 +11745,21 @@ packages: - bluebird - supports-color - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@2.1.2: - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/fs@3.1.0': dependencies: semver: 7.6.0 - /@npmcli/git@2.1.0: - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + '@npmcli/git@2.1.0': dependencies: '@npmcli/promise-spawn': 1.3.2 lru-cache: 6.0.0 @@ -3807,9 +11772,7 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/git@4.1.0: - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 lru-cache: 7.18.3 @@ -3822,34 +11785,24 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/installed-package-contents@1.0.7: - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} - engines: {node: '>= 10'} - hasBin: true + '@npmcli/installed-package-contents@1.0.7': dependencies: npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /@npmcli/installed-package-contents@2.0.2: - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + '@npmcli/installed-package-contents@2.0.2': dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - /@npmcli/map-workspaces@2.0.4: - resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/map-workspaces@2.0.4': dependencies: '@npmcli/name-from-folder': 1.0.1 glob: 8.1.0 minimatch: 5.1.6 read-package-json-fast: 2.0.3 - /@npmcli/metavuln-calculator@2.0.0: - resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + '@npmcli/metavuln-calculator@2.0.0': dependencies: cacache: 15.3.0 json-parse-even-better-errors: 2.3.1 @@ -3859,50 +11812,35 @@ packages: - bluebird - supports-color - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@1.1.2': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/move-file@2.0.1: - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@2.0.1': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/name-from-folder@1.0.1: - resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + '@npmcli/name-from-folder@1.0.1': {} - /@npmcli/node-gyp@1.0.3: - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + '@npmcli/node-gyp@1.0.3': {} - /@npmcli/node-gyp@3.0.0: - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/node-gyp@3.0.0': {} - /@npmcli/package-json@1.0.1: - resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + '@npmcli/package-json@1.0.1': dependencies: json-parse-even-better-errors: 2.3.1 - /@npmcli/promise-spawn@1.3.2: - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + '@npmcli/promise-spawn@1.3.2': dependencies: infer-owner: 1.0.4 - /@npmcli/promise-spawn@6.0.2: - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/promise-spawn@6.0.2': dependencies: which: 3.0.1 - /@npmcli/run-script@2.0.0: - resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + '@npmcli/run-script@2.0.0': dependencies: '@npmcli/node-gyp': 1.0.3 '@npmcli/promise-spawn': 1.3.2 @@ -3912,9 +11850,7 @@ packages: - bluebird - supports-color - /@npmcli/run-script@6.0.2: - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/run-script@6.0.2': dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 @@ -3925,13 +11861,11 @@ packages: - bluebird - supports-color - /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + '@octokit/auth-token@2.5.0': dependencies: '@octokit/types': 6.41.0 - /@octokit/core@3.6.0: - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + '@octokit/core@3.6.0': dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -3943,15 +11877,13 @@ packages: transitivePeerDependencies: - encoding - /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + '@octokit/endpoint@6.0.12': dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - /@octokit/graphql@4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + '@octokit/graphql@4.8.0': dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -3959,42 +11891,30 @@ packages: transitivePeerDependencies: - encoding - /@octokit/openapi-types@12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + '@octokit/openapi-types@12.11.0': {} - /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} - peerDependencies: - '@octokit/core': '>=2' + '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 - /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 - /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 deprecation: 2.3.1 - /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + '@octokit/request-error@2.1.0': dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 once: 1.4.0 - /@octokit/request@5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + '@octokit/request@5.6.3': dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -4005,8 +11925,7 @@ packages: transitivePeerDependencies: - encoding - /@octokit/rest@18.12.0: - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + '@octokit/rest@18.12.0': dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -4015,30 +11934,19 @@ packages: transitivePeerDependencies: - encoding - /@octokit/types@6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + '@octokit/types@6.41.0': dependencies: '@octokit/openapi-types': 12.11.0 - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true + '@pkgjs/parseargs@0.11.0': optional: true - /@pnpm/cli-meta@5.0.1: - resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} - engines: {node: '>=16.14'} + '@pnpm/cli-meta@5.0.1': dependencies: '@pnpm/types': 9.1.0 load-json-file: 6.2.0 - dev: true - /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-meta': 5.0.1 '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) @@ -4051,15 +11959,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 load-json-file: 6.2.0 - dev: true - /@pnpm/config.env-replace@1.1.0: - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} + '@pnpm/config.env-replace@1.1.0': {} - /@pnpm/config@18.4.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} - engines: {node: '>=16.14'} + '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/constants': 7.1.0 @@ -4079,80 +11982,44 @@ packages: normalize-registry-url: 2.0.0 path-absolute: 1.0.1 path-name: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' read-ini-file: 4.0.0 realpath-missing: 1.1.0 which: 3.0.1 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/constants@6.2.0: - resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} - engines: {node: '>=14.6'} - dev: false + '@pnpm/constants@6.2.0': {} - /@pnpm/constants@7.1.0: - resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.0': {} - /@pnpm/constants@7.1.1: - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.1': {} - /@pnpm/constants@8.0.0: - resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/constants@8.0.0': {} - /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 10.0.0 - dev: false - /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/crypto.base32-hash@3.0.0: - resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} - engines: {node: '>=18.12'} + '@pnpm/crypto.base32-hash@3.0.0': dependencies: rfc4648: 1.5.3 - dev: false - /@pnpm/dedupe.issues-renderer@1.0.0: - resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} - engines: {node: '>=16.14'} + '@pnpm/dedupe.issues-renderer@1.0.0': dependencies: '@pnpm/dedupe.types': 1.0.0 archy: 1.0.0 chalk: 4.1.2 - dev: true - /@pnpm/dedupe.types@1.0.0: - resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/dedupe.types@1.0.0': {} - /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) @@ -4168,57 +12035,37 @@ packages: normalize-path: 3.0.0 pretty-bytes: 5.6.0 pretty-ms: 7.0.1 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' right-pad: 1.0.1 rxjs: 7.8.1 semver: 7.6.0 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 - dev: true - /@pnpm/dependency-path@3.0.0: - resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} - engines: {node: '>=18.12'} + '@pnpm/dependency-path@3.0.0': dependencies: '@pnpm/crypto.base32-hash': 3.0.0 '@pnpm/types': 10.0.0 semver: 7.6.0 - dev: false - /@pnpm/error@4.0.1: - resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} - engines: {node: '>=14.6'} + '@pnpm/error@4.0.1': dependencies: '@pnpm/constants': 6.2.0 - dev: false - /@pnpm/error@5.0.1: - resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.1': dependencies: '@pnpm/constants': 7.1.0 - dev: true - /@pnpm/error@5.0.3: - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.3': dependencies: '@pnpm/constants': 7.1.1 - dev: true - /@pnpm/error@6.0.0: - resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} - engines: {node: '>=18.12'} + '@pnpm/error@6.0.0': dependencies: '@pnpm/constants': 8.0.0 - dev: false - /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0) '@pnpm/fetching-types': 6.0.0 @@ -4226,42 +12073,30 @@ packages: '@pnpm/network.agent': 1.0.1 '@pnpm/types': 10.0.0 '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/fetcher-base@14.0.1: - resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} - engines: {node: '>=16.14'} + '@pnpm/fetcher-base@14.0.1': dependencies: '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 '@types/ssri': 7.1.5 - dev: true - /@pnpm/fetching-types@6.0.0: - resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} - engines: {node: '>=18.12'} + '@pnpm/fetching-types@6.0.0': dependencies: '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - dev: false - /@pnpm/find-workspace-dir@6.0.3: - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-dir@6.0.3': dependencies: '@pnpm/error': 5.0.3 find-up: 5.0.0 - dev: true - /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0) '@pnpm/constants': 7.1.0 @@ -4271,75 +12106,49 @@ packages: read-yaml-file: 2.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/fs.find-packages@2.0.1: - resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} - engines: {node: '>=16.14'} + '@pnpm/fs.find-packages@2.0.1': dependencies: '@pnpm/read-project-manifest': 5.0.1 '@pnpm/types': 9.1.0 '@pnpm/util.lex-comparator': 1.0.0 fast-glob: 3.3.2 p-filter: 2.1.0 - dev: true - /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} - engines: {node: '>=18.12'} + '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0) '@pnpm/resolver-base': 12.0.0 graceful-git: 3.1.2 - hosted-git-info: /@pnpm/hosted-git-info@1.0.0 + hosted-git-info: '@pnpm/hosted-git-info@1.0.0' semver: 7.6.0 transitivePeerDependencies: - '@pnpm/logger' - domexception - supports-color - dev: false - /@pnpm/git-utils@1.0.0: - resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} - engines: {node: '>=16.14'} + '@pnpm/git-utils@1.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: true + execa: safe-execa@0.1.2 - /@pnpm/git-utils@2.0.0: - resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} - engines: {node: '>=18.12'} + '@pnpm/git-utils@2.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: false + execa: safe-execa@0.1.2 - /@pnpm/graceful-fs@3.0.0: - resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} - engines: {node: '>=16.14'} + '@pnpm/graceful-fs@3.0.0': dependencies: graceful-fs: 4.2.11 - dev: true - /@pnpm/hooks.types@1.0.1: - resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} - engines: {node: '>=16.14'} + '@pnpm/hooks.types@1.0.1': dependencies: '@pnpm/lockfile-types': 5.1.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/hosted-git-info@1.0.0: - resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} - engines: {node: '>=10'} + '@pnpm/hosted-git-info@1.0.0': dependencies: lru-cache: 6.0.0 - dev: false - /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/constants': 8.0.0 '@pnpm/dependency-path': 3.0.0 @@ -4354,9 +12163,9 @@ packages: '@pnpm/util.lex-comparator': 3.0.0 '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 - js-yaml: /@zkochan/js-yaml@0.0.7 + js-yaml: '@zkochan/js-yaml@0.0.7' normalize-path: 3.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 sort-keys: 4.2.0 strip-bom: 4.0.0 @@ -4364,25 +12173,16 @@ packages: transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/lockfile-types@5.1.0: - resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} - engines: {node: '>=16.14'} + '@pnpm/lockfile-types@5.1.0': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/lockfile-types@6.0.0: - resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-types@6.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/lockfile-utils@10.0.0: - resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-utils@10.0.0': dependencies: '@pnpm/dependency-path': 3.0.0 '@pnpm/lockfile-types': 6.0.0 @@ -4390,48 +12190,33 @@ packages: '@pnpm/resolver-base': 12.0.0 '@pnpm/types': 10.0.0 get-npm-tarball-url: 2.1.0 - ramda: /@pnpm/ramda@0.28.1 - dev: false + ramda: '@pnpm/ramda@0.28.1' - /@pnpm/logger@5.0.0: - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} + '@pnpm/logger@5.0.0': dependencies: bole: 5.0.11 ndjson: 2.0.0 - /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} - engines: {node: '>=16.14'} + '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/types': 9.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/matcher@5.0.0: - resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} - engines: {node: '>=16.14'} + '@pnpm/matcher@5.0.0': dependencies: escape-string-regexp: 4.0.0 - dev: true - /@pnpm/merge-lockfile-changes@6.0.0: - resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} - engines: {node: '>=18.12'} + '@pnpm/merge-lockfile-changes@6.0.0': dependencies: '@pnpm/lockfile-types': 6.0.0 comver-to-semver: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 - dev: false - /@pnpm/meta-updater@1.0.0: - resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} - engines: {node: '>=10.12'} - hasBin: true + '@pnpm/meta-updater@1.0.0': dependencies: '@pnpm/find-workspace-dir': 6.0.3 '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0) @@ -4442,11 +12227,8 @@ packages: print-diff: 1.0.0 ramda: 0.29.1 write-json-file: 5.0.0 - dev: true - /@pnpm/network.agent@1.0.1: - resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} - engines: {node: '>=12.22.0'} + '@pnpm/network.agent@1.0.1': dependencies: '@pnpm/network.config': 1.0.1 '@pnpm/network.proxy-agent': 1.0.1 @@ -4454,24 +12236,16 @@ packages: lru-cache: 7.10.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.ca-file@1.0.2': dependencies: graceful-fs: 4.2.10 - /@pnpm/network.config@1.0.1: - resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.config@1.0.1': dependencies: nerf-dart: 1.0.0 - dev: false - /@pnpm/network.proxy-agent@1.0.1: - resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.proxy-agent@1.0.1': dependencies: '@pnpm/error': 4.0.1 http-proxy-agent: 5.0.0 @@ -4480,62 +12254,40 @@ packages: socks-proxy-agent: 6.1.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/node-fetch@1.0.0: - resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} - engines: {node: ^10.17 || >=12.3} + '@pnpm/node-fetch@1.0.0': dependencies: data-uri-to-buffer: 3.0.1 fetch-blob: 2.1.2 transitivePeerDependencies: - domexception - dev: false - /@pnpm/npm-conf@2.2.0: - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.0': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: true - /@pnpm/npm-conf@2.2.2: - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: false - /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 detect-libc: 2.0.3 - execa: /safe-execa@0.1.2 + execa: safe-execa@0.1.2 mem: 8.1.1 semver: 7.6.0 - dev: true - /@pnpm/pick-fetcher@3.0.0: - resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/pick-fetcher@3.0.0': {} - /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 @@ -4546,14 +12298,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 path-absolute: 1.0.1 - dev: true - /@pnpm/ramda@0.28.1: - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + '@pnpm/ramda@0.28.1': {} - /@pnpm/read-project-manifest@5.0.1: - resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} - engines: {node: '>=16.14'} + '@pnpm/read-project-manifest@5.0.1': dependencies: '@gwhitney/detect-indent': 7.0.1 '@pnpm/error': 5.0.1 @@ -4568,116 +12316,69 @@ packages: read-yaml-file: 2.1.0 sort-keys: 4.2.0 strip-bom: 4.0.0 - dev: true - /@pnpm/render-peer-issues@4.0.1: - resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} - engines: {node: '>=16.14'} + '@pnpm/render-peer-issues@4.0.1': dependencies: '@pnpm/types': 9.1.0 archy: 1.0.0 chalk: 4.1.2 cli-columns: 4.0.0 - dev: true - /@pnpm/resolver-base@10.0.1: - resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} - engines: {node: '>=16.14'} + '@pnpm/resolver-base@10.0.1': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/resolver-base@12.0.0: - resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} - engines: {node: '>=18.12'} + '@pnpm/resolver-base@12.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/store-controller-types@15.0.1: - resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} - engines: {node: '>=16.14'} + '@pnpm/store-controller-types@15.0.1': dependencies: '@pnpm/fetcher-base': 14.0.1 '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/text.comments-parser@2.0.0: - resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} - engines: {node: '>=16.14'} + '@pnpm/text.comments-parser@2.0.0': dependencies: strip-comments-strings: 1.2.0 - dev: true - /@pnpm/types@10.0.0: - resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/types@10.0.0': {} - /@pnpm/types@9.1.0: - resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.1.0': {} - /@pnpm/types@9.4.2: - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.4.2': {} - /@pnpm/util.lex-comparator@1.0.0: - resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} - engines: {node: '>=12.22.0'} - dev: true + '@pnpm/util.lex-comparator@1.0.0': {} - /@pnpm/util.lex-comparator@3.0.0: - resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/util.lex-comparator@3.0.0': {} - /@pnpm/write-project-manifest@5.0.1: - resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} - engines: {node: '>=16.14'} + '@pnpm/write-project-manifest@5.0.1': dependencies: '@pnpm/text.comments-parser': 2.0.0 '@pnpm/types': 9.1.0 json5: 2.2.3 write-file-atomic: 5.0.1 write-yaml-file: 5.0.0 - dev: true - /@polka/url@1.0.0-next.25: - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - dev: false + '@polka/url@1.0.0-next.25': {} - /@rushstack/eslint-patch@1.8.0: - resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} - dev: true + '@rushstack/eslint-patch@1.8.0': {} - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + '@sideway/formula@3.0.1': {} - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sideway/pinpoint@2.0.0': {} - /@sigstore/bundle@1.1.0: - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/bundle@1.1.0': dependencies: '@sigstore/protobuf-specs': 0.2.1 - /@sigstore/protobuf-specs@0.2.1: - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/protobuf-specs@0.2.1': {} - /@sigstore/sign@1.0.0: - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/sign@1.0.0': dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -4685,210 +12386,112 @@ packages: transitivePeerDependencies: - supports-color - /@sigstore/tuf@1.0.3: - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/tuf@1.0.3': dependencies: '@sigstore/protobuf-specs': 0.2.1 tuf-js: 1.1.7 transitivePeerDependencies: - supports-color - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.27.8': {} - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: false + '@sindresorhus/is@4.6.0': {} - /@sindresorhus/is@5.6.0: - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - dev: false + '@sindresorhus/is@5.6.0': {} - /@sinonjs/commons@2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/commons@3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@10.3.0': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/fake-timers@11.2.2: - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + '@sinonjs/fake-timers@11.2.2': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/samsam@8.0.0: - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + '@sinonjs/samsam@8.0.0': dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 - dev: true - /@sinonjs/text-encoding@0.7.2: - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - dev: true + '@sinonjs/text-encoding@0.7.2': {} - /@slorber/remark-comment@1.0.0: - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + '@slorber/remark-comment@1.0.0': dependencies: micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 - dev: false - /@slorber/static-site-generator-webpack-plugin@4.0.7: - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} + '@slorber/static-site-generator-webpack-plugin@4.0.7': dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-preset@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3) @@ -4899,13 +12502,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3) - dev: false - /@svgr/babel-preset@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3) @@ -4916,11 +12514,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) - dev: true - /@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} + '@svgr/core@6.5.1': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4929,11 +12524,8 @@ packages: cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color - dev: false - /@svgr/core@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + '@svgr/core@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4943,29 +12535,18 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@6.5.1': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: false - /@svgr/hast-util-to-babel-ast@8.0.0: - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: true - /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4974,13 +12555,8 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false - /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4989,25 +12565,15 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: true - /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 deepmerge: 4.3.1 svgo: 2.8.0 - dev: false - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3): - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)': dependencies: '@svgr/core': 8.1.0(typescript@5.4.3) cosmiconfig: 8.3.6(typescript@5.4.3) @@ -5015,11 +12581,8 @@ packages: svgo: 3.2.0 transitivePeerDependencies: - typescript - dev: true - /@svgr/webpack@6.5.1: - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} + '@svgr/webpack@6.5.1': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5031,11 +12594,8 @@ packages: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color - dev: false - /@svgr/webpack@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} + '@svgr/webpack@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5048,24 +12608,16 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/helpers@0.5.2': dependencies: tslib: 2.6.2 - dev: false - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 - dev: false - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@testing-library/dom@9.3.4': dependencies: '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 @@ -5075,504 +12627,342 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - dev: true - /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.1 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} + '@tootallnate/once@1.1.2': {} - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + '@tootallnate/once@2.0.0': {} - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} + '@trysound/sax@0.2.0': {} - /@tsconfig/docusaurus@2.0.2: - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - dev: true + '@tsconfig/docusaurus@2.0.2': {} - /@tsconfig/node10@1.0.10: - resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} - dev: true + '@tsconfig/node10@1.0.10': {} - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true + '@tsconfig/node12@1.0.11': {} - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true + '@tsconfig/node14@1.0.3': {} - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true + '@tsconfig/node16@1.0.4': {} - /@tufjs/canonical-json@1.0.0: - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/canonical-json@1.0.0': {} - /@tufjs/models@1.0.4: - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/models@1.0.4': dependencies: '@tufjs/canonical-json': 1.0.0 minimatch: 9.0.3 - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 - /@types/aria-query@5.0.4: - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - dev: true + '@types/aria-query@5.0.4': {} - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 - dev: true - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.6.8': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + '@types/babel__traverse@7.20.5': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 '@types/node': 18.18.2 - /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/bonjour@3.5.13': dependencies: '@types/node': 18.18.2 - /@types/chai@4.3.14: - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/chai@4.3.14': {} - /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.17.43 '@types/node': 18.18.2 - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/connect@3.4.38': dependencies: '@types/node': 18.18.2 - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.56.6 '@types/estree': 1.0.5 - /@types/eslint@8.56.6: - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + '@types/eslint@8.56.6': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.5': {} - /@types/expect@1.20.4: - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + '@types/expect@1.20.4': {} - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + '@types/express-serve-static-core@4.17.43': dependencies: '@types/node': 18.18.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.14 '@types/serve-static': 1.15.5 - /@types/fs-extra@11.0.4: - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 '@types/node': 18.18.2 - dev: true - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.18.2 - dev: true - /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 18.18.2 - dev: true - /@types/gtag.js@0.0.12: - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - dev: false + '@types/gtag.js@0.0.12': {} - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - /@types/history@4.7.11: - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@types/history@4.7.11': {} - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + '@types/html-minifier-terser@6.1.0': {} - /@types/http-cache-semantics@4.0.4: - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - dev: false + '@types/http-cache-semantics@4.0.4': {} - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/http-errors@2.0.4': {} - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.14': dependencies: '@types/node': 18.18.2 - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@types/istanbul-lib-coverage@2.0.6': {} - /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + '@types/istanbul-lib-report@3.0.3': dependencies: '@types/istanbul-lib-coverage': 2.0.6 - /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/istanbul-reports@3.0.4': dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest@29.5.12: - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.12': dependencies: expect: 29.7.0 pretty-format: 29.7.0 - dev: true - /@types/js-cookie@2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: false + '@types/js-cookie@2.2.7': {} - /@types/js-yaml@4.0.9: - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/js-yaml@4.0.9': {} - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/jsdom@20.0.1': dependencies: '@types/node': 18.18.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 - dev: true - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/jsonfile@6.1.4: - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/jsonfile@6.1.4': dependencies: '@types/node': 18.18.2 - dev: true - /@types/lodash@4.14.181: - resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} - dev: true + '@types/lodash@4.14.181': {} - /@types/lodash@4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + '@types/lodash@4.17.0': {} - /@types/mdast@4.0.3: - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + '@types/mdast@4.0.3': dependencies: '@types/unist': 3.0.2 - /@types/mdx-js__react@1.5.8: - resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + '@types/mdx-js__react@1.5.8': dependencies: '@types/react': 18.2.71 - dev: true - /@types/mdx@2.0.12: - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + '@types/mdx@2.0.12': {} - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@types/mime@1.3.5': {} - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + '@types/mime@3.0.4': {} - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + '@types/minimatch@3.0.5': {} - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true + '@types/minimatch@5.1.2': {} - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - dev: true + '@types/minimist@1.2.5': {} - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - dev: true + '@types/mocha@10.0.6': {} - /@types/moo@0.5.9: - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - dev: true + '@types/moo@0.5.9': {} - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@0.7.34': {} - /@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae): - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - dev: true - patched: true + '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {} - /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node-forge@1.3.11': dependencies: '@types/node': 18.18.2 - /@types/node@15.14.9: - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + '@types/node@15.14.9': {} - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false + '@types/node@17.0.45': {} - /@types/node@18.18.2: - resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + '@types/node@18.18.2': {} - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/normalize-package-data@2.4.4': {} - /@types/normalize-path@3.0.2: - resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} - dev: false + '@types/normalize-path@3.0.2': {} - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false + '@types/parse-json@4.0.2': {} - /@types/prismjs@1.26.3: - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - dev: false + '@types/prismjs@1.26.3': {} - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/prop-types@15.7.12': {} - /@types/qs@6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + '@types/qs@6.9.14': {} - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/range-parser@1.2.7': {} - /@types/react-dom@18.2.22: - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + '@types/react-dom@18.2.22': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-helmet@6.1.11: - resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + '@types/react-helmet@6.1.11': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-router-config@5.0.11: - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + '@types/react-router-config@5.0.11': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router-dom@5.3.3: - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router@5.1.20: - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@types/react-router@5.1.20': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 - /@types/react@18.2.71: - resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + '@types/react@18.2.71': dependencies: '@types/prop-types': 15.7.12 '@types/scheduler': 0.23.0 csstype: 3.1.3 - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false + '@types/retry@0.12.0': {} - /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + '@types/retry@0.12.2': {} - /@types/sax@1.2.7: - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + '@types/sax@1.2.7': dependencies: '@types/node': 18.18.2 - dev: false - /@types/sbd@1.0.5: - resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} - dev: true + '@types/sbd@1.0.5': {} - /@types/scheduler@0.23.0: - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + '@types/scheduler@0.23.0': {} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + '@types/semver@7.5.8': {} - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 18.18.2 - /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + '@types/serve-static@1.15.5': dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.18.2 - /@types/sinon@17.0.3: - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + '@types/sinon@17.0.3': dependencies: '@types/sinonjs__fake-timers': 8.1.5 - /@types/sinonjs__fake-timers@8.1.5: - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + '@types/sinonjs__fake-timers@8.1.5': {} - /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@types/sockjs@0.3.36': dependencies: '@types/node': 18.18.2 - /@types/ssri@7.1.5: - resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + '@types/ssri@7.1.5': dependencies: '@types/node': 18.18.2 - dev: true - /@types/stack-utils@2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - dev: true + '@types/stack-utils@2.0.3': {} - /@types/tinycolor2@1.4.6: - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - dev: true + '@types/tinycolor2@1.4.6': {} - /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - dev: true + '@types/tough-cookie@4.0.5': {} - /@types/triple-beam@1.3.5: - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + '@types/triple-beam@1.3.5': {} - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.10': {} - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/unist@3.0.2': {} - /@types/uuid@8.3.4: - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: true + '@types/uuid@8.3.4': {} - /@types/uuid@9.0.8: - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/uuid@9.0.8': {} - /@types/vinyl@2.0.11: - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + '@types/vinyl@2.0.11': dependencies: '@types/expect': 1.20.4 '@types/node': 18.18.2 - /@types/vscode@1.75.1: - resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} - dev: true + '@types/vscode@1.75.1': {} - /@types/vscode@1.88.0: - resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} - dev: false + '@types/vscode@1.88.0': {} - /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)': dependencies: '@types/node': 18.18.2 tapable: 2.2.1 @@ -5582,31 +12972,18 @@ packages: - esbuild - uglify-js - webpack-cli - dev: true - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.10': dependencies: '@types/node': 18.18.2 - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@types/yargs-parser@21.0.3': {} - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.32': dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5624,17 +13001,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -5645,17 +13013,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 @@ -5666,33 +13025,18 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - /@typescript-eslint/scope-manager@7.4.0: - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 - dev: true - /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5702,26 +13046,12 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@6.21.0': {} - /@typescript-eslint/types@7.4.0: - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - dev: true + '@typescript-eslint/types@7.4.0': {} - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -5734,16 +13064,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 @@ -5756,13 +13078,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -5775,30 +13092,20 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@7.4.0: - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 - dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.2.0': {} - /@vscode/test-electron@2.3.9: - resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} - engines: {node: '>=16'} + '@vscode/test-electron@2.3.9': dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -5806,56 +13113,44 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /@webassemblyjs/ast@1.12.1: - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.11.6': {} - /@webassemblyjs/helper-buffer@1.12.1: - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.12.1': {} - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.11.6': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - /@webassemblyjs/helper-wasm-section@1.12.1: - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.11.6': {} - /@webassemblyjs/wasm-edit@1.12.1: - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -5866,8 +13161,7 @@ packages: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - /@webassemblyjs/wasm-gen@1.12.1: - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -5875,16 +13169,14 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wasm-opt@1.12.1: - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - /@webassemblyjs/wasm-parser@1.12.1: - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -5893,32 +13185,17 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wast-printer@1.12.1: - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - - /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} - engines: {node: '>=14.15.0'} - peerDependencies: - prettier: '*' - webpack: 5.x.x - webpack-cli: 5.x.x - peerDependenciesMeta: - prettier: - optional: true + webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) + + '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: prettier: 3.2.5 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) @@ -5931,207 +13208,125 @@ packages: - mem-fs - supports-color - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - /@xobotyi/scrollbar-width@1.9.5: - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - dev: false + '@xobotyi/scrollbar-width@1.9.5': {} - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@xtuc/ieee754@1.2.0': {} - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@xtuc/long@4.2.2': {} - /@zkochan/js-yaml@0.0.7: - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true + '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 - dev: false - /@zkochan/retry@0.2.0: - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - dev: false + '@zkochan/retry@0.2.0': {} - /@zkochan/rimraf@2.1.3: - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} + '@zkochan/rimraf@2.1.3': dependencies: rimraf: 3.0.2 - dev: false - /@zkochan/which@2.0.3: - resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} - engines: {node: '>= 8'} - hasBin: true + '@zkochan/which@2.0.3': dependencies: isexe: 2.0.0 - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - dev: true + abab@2.0.6: {} - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@1.1.1: {} - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-globals@7.0.1: dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 + acorn-import-assertions@1.9.0(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + acorn-walk@8.3.2: {} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@8.11.3: {} - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: false + address@1.2.2: {} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + agent-base@6.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.2.1: dependencies: debug: 4.3.4(supports-color@8.1.1) depd: 1.1.2 humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: false - /agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + ajv-formats@2.1.1(ajv@8.12.0): dependencies: ajv: 8.12.0 - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + ajv-keywords@5.1.0(ajv@8.12.0): dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - /algoliasearch-helper@3.16.3(algoliasearch@4.22.1): - resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' + algoliasearch-helper@3.16.3(algoliasearch@4.22.1): dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.22.1 - dev: false - /algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + algoliasearch@4.22.1: dependencies: '@algolia/cache-browser-local-storage': 4.22.1 '@algolia/cache-common': 4.22.1 @@ -6147,157 +13342,96 @@ packages: '@algolia/requester-common': 4.22.1 '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-align@3.0.1: dependencies: string-width: 4.2.3 - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.1: {} - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.3: {} - /ansi-diff@1.1.1: - resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + ansi-diff@1.1.1: dependencies: ansi-split: 1.0.1 - dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true + ansi-html-community@0.0.8: {} - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true + ansi-regex@3.0.1: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + ansi-regex@6.0.1: {} - /ansi-split@1.0.1: - resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + ansi-split@1.0.1: dependencies: ansi-regex: 3.0.1 - dev: true - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true + ansi-styles@5.2.0: {} - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + ansi-styles@6.2.1: {} - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true + any-promise@1.3.0: {} - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + aproba@2.0.0: {} - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: true + archy@1.0.0: {} - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + are-we-there-yet@3.0.1: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true + arg@4.1.3: {} - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + arg@5.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argparse@2.0.1: {} - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.1.3: dependencies: deep-equal: 2.2.3 - dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.0: dependencies: dequal: 2.0.3 - dev: true - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - dev: true - /array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} + array-differ@3.0.0: {} - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-flatten@1.1.1: {} - /array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6305,15 +13439,10 @@ packages: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array-union@2.1.0: {} - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6321,11 +13450,8 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6333,50 +13459,37 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + array.prototype.tosorted@1.1.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -6386,63 +13499,34 @@ packages: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true + arrify@1.0.1: {} - /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + arrify@2.0.1: {} - /as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + as-table@1.0.55: dependencies: printable-characters: 1.0.42 - dev: true - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asap@2.0.6: {} - /assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - dev: true + assertion-error@2.0.1: {} - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true + ast-types-flow@0.0.8: {} - /astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true + astring@1.8.6: {} - /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + async@2.6.4: dependencies: lodash: 4.17.21 - dev: true - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.5: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + asynckit@0.4.0: {} - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: false + at-least-node@1.0.0: {} - /autoprefixer@10.4.19(postcss@8.4.38): - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 @@ -6452,29 +13536,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - dev: true - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: true + axe-core@4.7.0: {} - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.2.1: dependencies: dequal: 2.0.3 - dev: true - /babel-jest@29.7.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 + babel-jest@29.7.0(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@jest/transform': 29.7.0 @@ -6486,30 +13558,19 @@ packages: slash: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' + babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): dependencies: '@babel/core': 7.24.3 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + babel-plugin-dynamic-import-node@2.3.3: dependencies: object.assign: 4.1.5 - dev: false - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 @@ -6518,22 +13579,15 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 - dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -6542,10 +13596,7 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) @@ -6553,20 +13604,14 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) @@ -6581,55 +13626,34 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) - dev: true - /babel-preset-jest@29.6.3(@babel/core@7.24.3): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-jest@29.6.3(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3) - dev: true - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + bail@2.0.2: {} - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@1.0.2: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64-js@1.5.1: {} - /basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 - dev: true - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + batch@0.6.1: {} - /before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + before-after-hook@2.2.3: {} - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 - dev: true - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: false + big.js@5.2.2: {} - /bin-links@3.0.3: - resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + bin-links@3.0.3: dependencies: cmd-shim: 5.0.0 mkdirp-infer-owner: 2.0.0 @@ -6638,24 +13662,17 @@ packages: rimraf: 3.0.2 write-file-atomic: 4.0.2 - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + binary-extensions@2.3.0: {} - /binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} - engines: {node: '>=0.8'} + binaryextensions@4.19.0: {} - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.2: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6672,24 +13689,19 @@ packages: transitivePeerDependencies: - supports-color - /bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + bole@5.0.11: dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolbase@1.0.0: {} - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + boxen@5.1.2: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6699,11 +13711,8 @@ packages: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 - dev: true - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + boxen@6.2.1: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6713,11 +13722,8 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + boxen@7.1.1: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -6727,104 +13733,70 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true + browser-stdout@1.3.1: {} - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001600 electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 - dev: true - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + bser@2.1.1: dependencies: node-int64: 0.4.0 - dev: true - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-from@1.1.2: {} - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true + builtin-modules@3.3.0: {} - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + builtins@1.0.3: {} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + builtins@5.0.1: dependencies: semver: 7.6.0 - /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: false - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + bytes@3.0.0: {} - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + bytes@3.1.2: {} - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} + cacache@15.3.0: dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -6847,9 +13819,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cacache@16.1.3: dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -6872,9 +13842,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + cacache@17.1.4: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 @@ -6889,14 +13857,9 @@ packages: tar: 6.2.1 unique-filename: 3.0.0 - /cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - dev: false - - /cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 @@ -6905,11 +13868,8 @@ packages: mimic-response: 4.0.0 normalize-url: 8.0.1 responselike: 3.0.0 - dev: false - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -6917,133 +13877,85 @@ packages: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true + camelcase-css@2.0.1: {} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} + camelcase-keys@7.0.2: dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 - dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + camelcase@5.3.1: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + camelcase@6.3.0: {} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: false + camelcase@7.0.1: {} - /can-write-to-dir@1.1.1: - resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} - engines: {node: '>=10.13'} + can-write-to-dir@1.1.1: dependencies: path-temp: 2.1.0 - dev: true - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: false - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + caniuse-lite@1.0.30001600: {} - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + ccount@2.0.1: {} - /chai@5.1.0: - resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} - engines: {node: '>=12'} + chai@5.1.0: dependencies: assertion-error: 2.0.1 check-error: 2.0.0 deep-eql: 5.0.1 loupe: 3.1.0 pathval: 2.0.0 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: false + chalk@5.3.0: {} - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + char-regex@1.0.2: {} - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + character-entities-html4@2.1.0: {} - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities-legacy@3.0.0: {} - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-entities@2.0.2: {} - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + character-reference-invalid@2.0.1: {} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@0.7.0: {} - /check-error@2.0.0: - resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} - engines: {node: '>= 16'} - dev: true + check-error@2.0.0: {} - /cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -7051,11 +13963,8 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 - dev: false - /cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -7064,11 +13973,8 @@ packages: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 - dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7079,11 +13985,8 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7095,282 +13998,169 @@ packages: optionalDependencies: fsevents: 2.3.3 - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + chownr@2.0.0: {} - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + chrome-trace-event@1.0.3: {} - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + ci-info@3.9.0: {} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: true + ci-info@4.0.0: {} - /cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true + cjs-module-lexer@1.2.3: {} - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + clean-css@5.3.3: dependencies: source-map: 0.6.1 - /clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + clean-stack@2.2.0: {} - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: true + cli-boxes@2.2.1: {} - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + cli-boxes@3.0.0: {} - /cli-columns@4.0.0: - resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} - engines: {node: '>= 10'} + cli-columns@4.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + cli-spinners@2.9.2: {} - /cli-table3@0.6.4: - resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.4: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: false - /cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} + cli-table@0.3.11: dependencies: colors: 1.0.3 - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-width@3.0.0: {} - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false + client-only@0.0.1: {} - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} + clone-buffer@1.0.0: {} - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - /clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + clone-stats@1.0.0: {} - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + clone@1.0.4: {} - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} + clone@2.1.2: {} - /cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + cloneable-readable@1.1.3: dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 - /clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} - dev: false + clsx@2.1.0: {} - /cmd-shim@5.0.0: - resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cmd-shim@5.0.0: dependencies: mkdirp-infer-owner: 2.0.0 - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true + co@4.6.0: {} - /collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + collapse-white-space@2.1.0: {} - /collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true + collect-v8-coverage@1.0.2: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true + color-support@1.1.3: {} - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@3.2.1: dependencies: color-convert: 1.9.3 color-string: 1.9.1 - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false + colord@2.9.3: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorette@2.0.20: {} - /colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} + colors@1.0.3: {} - /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + colorspace@1.1.4: dependencies: color: 3.2.1 text-hex: 1.0.0 - /combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - dev: false + combine-promises@1.2.0: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + comma-separated-tokens@2.0.3: {} - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + commander@10.0.1: {} - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + commander@11.1.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@2.20.3: {} - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true + commander@4.1.1: {} - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + commander@5.1.0: {} - /commander@7.1.0: - resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} - engines: {node: '>= 10'} + commander@7.1.0: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + commander@7.2.0: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + commander@8.3.0: {} - /common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-ancestor-path@1.0.1: {} - /common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - dev: false + common-path-prefix@3.0.0: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + commondir@1.0.1: {} - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + compressible@2.0.18: dependencies: mime-db: 1.52.0 - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + compression@1.7.4: dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -7382,83 +14172,50 @@ packages: transitivePeerDependencies: - supports-color - /comver-to-semver@1.0.0: - resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} - engines: {node: '>=12.17'} - dev: false + comver-to-semver@1.0.0: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concat-map@0.0.1: {} - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - /configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + configstore@6.0.0: dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - dev: false - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} + connect-history-api-fallback@2.0.0: {} - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false + consola@2.15.3: {} - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + console-control-strings@1.1.0: {} - /content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: false + content-disposition@0.5.2: {} - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + content-type@1.0.5: {} - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-source-map@2.0.0: {} - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.0.6: {} - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + cookie@0.6.0: {} - /copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - dev: false + copy-text-to-clipboard@3.2.0: {} - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - dev: false - /copy-webpack-plugin@11.0.0(webpack@5.91.0): - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 + copy-webpack-plugin@11.0.0(webpack@5.91.0): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -7467,61 +14224,36 @@ packages: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.36.1: dependencies: browserslist: 4.23.0 - /core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - requiresBuild: true - dev: false + core-js-pure@3.36.1: {} - /core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - requiresBuild: true - dev: false + core-js@3.36.1: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + core-util-is@1.0.3: {} - /corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} - dev: true + corser@2.0.1: {} - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@8.3.6(typescript@5.4.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@8.3.6(typescript@5.4.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -7529,26 +14261,15 @@ packages: path-type: 4.0.0 typescript: 5.4.3 - /cosmiconfig@9.0.0(typescript@5.4.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@9.0.0(typescript@5.4.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 typescript: 5.4.3 - dev: true - /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true + create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -7562,58 +14283,30 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true + create-require@1.1.1: {} - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + crypto-random-string@2.0.0: {} - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: false - /css-declaration-sorter@6.4.1(postcss@8.4.38): - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 + css-declaration-sorter@6.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /css-in-js-utils@3.1.0: - resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + css-in-js-utils@3.1.0: dependencies: hyphenate-style-name: 1.0.4 - dev: false - /css-loader@6.10.0(webpack@5.91.0): - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + css-loader@6.10.0(webpack@5.91.0): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -7625,30 +14318,7 @@ packages: semver: 7.6.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true + css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): dependencies: clean-css: 5.3.3 cssnano: 5.1.15(postcss@8.4.38) @@ -7659,10 +14329,8 @@ packages: serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7670,8 +14338,7 @@ packages: domutils: 2.8.0 nth-check: 2.1.1 - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7679,44 +14346,26 @@ packages: domutils: 3.1.0 nth-check: 2.1.1 - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + css-tree@1.1.3: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 - dev: false - /css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 - dev: true - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 - dev: true - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + css-what@6.1.0: {} - /cssnano-preset-advanced@5.3.10(postcss@8.4.38): - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssesc@3.0.0: {} + + cssnano-preset-advanced@5.3.10(postcss@8.4.38): dependencies: autoprefixer: 10.4.19(postcss@8.4.38) cssnano-preset-default: 5.2.14(postcss@8.4.38) @@ -7725,13 +14374,8 @@ packages: postcss-merge-idents: 5.1.1(postcss@8.4.38) postcss-reduce-idents: 5.2.0(postcss@8.4.38) postcss-zindex: 5.1.0(postcss@8.4.38) - dev: false - /cssnano-preset-default@5.2.14(postcss@8.4.38): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-default@5.2.14(postcss@8.4.38): dependencies: css-declaration-sorter: 6.4.1(postcss@8.4.38) cssnano-utils: 3.1.0(postcss@8.4.38) @@ -7763,214 +14407,113 @@ packages: postcss-reduce-transforms: 5.1.0(postcss@8.4.38) postcss-svgo: 5.1.0(postcss@8.4.38) postcss-unique-selectors: 5.1.1(postcss@8.4.38) - dev: false - /cssnano-utils@3.1.0(postcss@8.4.38): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-utils@3.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /cssnano@5.1.15(postcss@8.4.38): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano@5.1.15(postcss@8.4.38): dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.38) lilconfig: 2.1.0 postcss: 8.4.38 yaml: 1.10.2 - dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + csso@4.2.0: dependencies: css-tree: 1.1.3 - dev: false - /csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csso@5.0.5: dependencies: css-tree: 2.2.1 - dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true + cssom@0.3.8: {} - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true + cssom@0.5.0: {} - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + cssstyle@2.3.0: dependencies: cssom: 0.3.8 - dev: true - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.1.3: {} - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true + damerau-levenshtein@1.0.8: {} - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + dargs@7.0.0: {} - /data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - dev: true + data-uri-to-buffer@2.0.2: {} - /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - dev: false + data-uri-to-buffer@3.0.1: {} - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + data-urls@3.0.2: dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - dev: true - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dateformat@4.6.3: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: false + debounce@1.2.1: {} - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: ms: 2.0.0 - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 supports-color: 8.1.1 - /debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + debuglog@1.0.1: {} - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true + decamelize@4.0.0: {} - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + decamelize@5.0.1: {} - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true + decimal.js@10.4.3: {} - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - dev: false - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dev: true + dedent@1.5.1: {} - /deep-eql@5.0.1: - resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} - engines: {node: '>=6'} - dev: true + deep-eql@5.0.1: {} - /deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -7990,74 +14533,47 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + deepmerge@4.3.1: {} - /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} + default-browser-id@5.0.0: {} - /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-gateway@6.0.3: dependencies: execa: 5.1.1 - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: false + defer-to-connect@2.0.1: {} - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + define-lazy-prop@2.0.0: {} - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + define-lazy-prop@3.0.0: {} - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + del@6.1.1: dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -8067,327 +14583,201 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true + delayed-stream@1.0.0: {} - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + delegates@1.0.0: {} - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} + depd@1.1.2: {} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + depd@2.0.0: {} - /deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + deprecation@2.3.1: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + dequal@2.0.3: {} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + destroy@1.2.0: {} - /detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - dev: true + detect-indent@7.0.1: {} - /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - dev: true + detect-libc@2.0.3: {} - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true + detect-newline@3.1.0: {} - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + detect-node@2.1.0: {} - /detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true + detect-port-alt@1.1.6: dependencies: address: 1.2.2 debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + detect-port@1.5.1: dependencies: address: 1.2.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: false - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devlop@1.1.0: dependencies: dequal: 2.0.3 - /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dezalgo@1.0.4: dependencies: asap: 2.0.6 wrappy: 1.0.2 - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true + didyoumean@1.2.2: {} - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + diff-sequences@29.6.3: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true + diff@4.0.2: {} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true + diff@5.0.0: {} - /diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + diff@5.2.0: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false + discontinuous-range@1.0.0: {} - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true + dlv@1.1.3: {} - /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - /dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dev: true + dom-accessibility-api@0.5.16: {} - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-converter@0.2.0: dependencies: utila: 0.4.0 - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@2.3.0: {} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead + domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - dev: true - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@6.0.1: dependencies: is-obj: 2.0.0 - dev: false - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + duplexer@0.1.2: {} - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eastasianwidth@0.2.0: {} - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ee-first@1.1.1: {} - /effect@2.0.0-next.62: - resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} - dev: true + effect@2.0.0-next.62: {} - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ejs@3.1.9: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.717: - resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + electron-to-chromium@1.4.717: {} - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true + emittery@0.13.1: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emoji-regex@9.2.2: {} - /emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: false + emojilib@2.4.0: {} - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: false + emojis-list@3.0.0: {} - /emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - dev: false + emoticon@4.0.1: {} - /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + enabled@2.0.0: {} - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + encodeurl@1.0.2: {} - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 optional: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - dev: true - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@2.2.0: {} - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + entities@4.5.0: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + env-paths@2.2.1: {} - /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true + envinfo@7.11.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + err-code@2.0.3: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 - dev: false - /error@10.4.0: - resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + error@10.4.0: {} - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} + es-abstract@1.23.2: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -8435,20 +14825,14 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + es-errors@1.3.0: {} - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-get-iterator@1.1.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -8459,11 +14843,8 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} + es-iterator-helpers@1.0.18: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -8479,47 +14860,30 @@ packages: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - dev: true - /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.0: {} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -8545,56 +14909,29 @@ packages: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + escalade@3.1.2: {} - /escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - dev: false + escape-goat@4.0.0: {} - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-html@1.0.3: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true + escape-string-regexp@2.0.0: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@4.0.0: {} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false + escape-string-regexp@5.0.0: {} - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true + escodegen@2.1.0: dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - - /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): dependencies: '@next/eslint-plugin-next': 14.1.4 '@rushstack/eslint-patch': 1.8.0 @@ -8610,33 +14947,20 @@ packages: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8652,14 +14976,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8675,28 +14993,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8705,28 +15003,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8735,17 +15013,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.8 @@ -8770,13 +15039,8 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): dependencies: '@babel/runtime': 7.24.1 aria-query: 5.3.0 @@ -8795,34 +15059,19 @@ packages: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - dev: true - /eslint-plugin-mocha@10.4.1(eslint@8.57.0): - resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-mocha@10.4.1(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) globals: 13.24.0 rambda: 7.5.0 - dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-plugin-react@7.34.1(eslint@8.57.0): - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-react@7.34.1(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8843,13 +15092,8 @@ packages: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 - dev: true - /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' + eslint-plugin-unicorn@51.0.1(eslint@8.57.0): dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -8870,65 +15114,35 @@ packages: strip-indent: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): dependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 - dev: true - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true + eslint-rule-composer@0.3.0: {} - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-utils@3.0.0(eslint@8.57.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' + eslint-utils@3.0.0(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 - dev: true - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true + eslint-visitor-keys@2.1.0: {} - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@3.4.3: {} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -8971,116 +15185,77 @@ packages: transitivePeerDependencies: - supports-color - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.5 - /estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-util-is-identifier-name@3.0.0: {} - /estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - /estree-util-value-to-estree@3.0.1: - resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} - engines: {node: '>=16.0.0'} + estree-util-value-to-estree@3.0.1: dependencies: '@types/estree': 1.0.5 is-plain-obj: 4.1.0 - dev: false - /estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - dev: false + eta@2.2.0: {} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + etag@1.8.1: {} - /eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} + eval@0.1.8: dependencies: '@types/node': 18.18.2 require-like: 0.1.2 - dev: false - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + event-target-shim@5.0.1: {} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@4.0.7: {} - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + events@3.3.0: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -9092,28 +15267,19 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true + exit@0.1.2: {} - /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 - dev: true - /exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + exponential-backoff@3.1.1: {} - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + express@4.19.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -9149,44 +15315,29 @@ packages: transitivePeerDependencies: - supports-color - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 - dev: false - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extend@3.0.2: {} - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - /fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} + fast-check@3.15.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-check@3.17.0: - resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} - engines: {node: '>=8.0.0'} + fast-check@3.17.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -9194,129 +15345,77 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fast-loops@1.1.3: - resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} - dev: false + fast-loops@1.1.3: {} - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-safe-stringify@2.1.1: {} - /fast-shallow-equal@1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - dev: false + fast-shallow-equal@1.0.0: {} - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 - dev: false - /fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true + fast-xml-parser@4.3.6: dependencies: strnum: 1.0.5 - dev: true - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} + fastest-levenshtein@1.0.16: {} - /fastest-stable-stringify@2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - dev: false + fastest-stable-stringify@2.0.2: {} - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.17.1: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fault@2.0.1: dependencies: format: 0.2.2 - dev: false - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fb-watchman@2.0.2: dependencies: bser: 2.1.1 - dev: true - /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + fecha@4.2.3: {} - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} + feed@4.2.2: dependencies: xml-js: 1.6.11 - dev: false - /fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - dev: false + fetch-blob@2.1.2: {} - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - /file-loader@6.2.0(webpack@5.91.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + file-loader@6.2.0(webpack@5.91.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filelist@1.0.4: dependencies: minimatch: 5.1.6 - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - dev: false + filesize@8.0.7: {} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + finalhandler@1.2.0: dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -9328,108 +15427,63 @@ packages: transitivePeerDependencies: - supports-color - /find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} + find-cache-dir@4.0.0: dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: false - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - dev: false - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - /first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} + first-chunk-stream@2.0.0: dependencies: readable-stream: 2.3.8 - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.2.0: dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + flat@5.0.2: {} - /follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + flatted@3.3.1: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true + fn.name@1.1.0: {} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 + follow-redirects@1.15.6: {} - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -9447,102 +15501,63 @@ packages: tapable: 1.1.3 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - dev: false + form-data-encoder@2.1.4: {} - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false + format@0.2.2: {} - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + forwarded@0.2.0: {} - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@4.3.7: {} - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + fresh@0.5.2: {} - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: false - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - /fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-minipass@3.0.3: dependencies: minipass: 7.0.4 - /fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - dev: false + fs-monkey@1.0.5: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-bind@1.1.2: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9554,9 +15569,7 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + gauge@4.0.4: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9567,22 +15580,13 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-func-name@2.0.2: {} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -9590,77 +15594,48 @@ packages: has-symbols: 1.0.3 hasown: 2.0.2 - /get-npm-tarball-url@2.1.0: - resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} - engines: {node: '>=12.17'} - dev: false + get-npm-tarball-url@2.1.0: {} - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: false + get-own-enumerable-property-symbols@3.0.2: {} - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true + get-package-type@0.1.0: {} - /get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-stream@6.0.1: {} - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - dev: false + github-slugger@1.5.0: {} - /github-username@6.0.0: - resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} - engines: {node: '>=10'} + github-username@6.0.0: dependencies: '@octokit/rest': 18.12.0 transitivePeerDependencies: - encoding - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob-to-regexp@0.4.1: {} - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.10: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -9668,8 +15643,7 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9678,9 +15652,7 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9688,49 +15660,31 @@ packages: minimatch: 5.1.6 once: 1.4.0 - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + global-dirs@3.0.1: dependencies: ini: 2.0.0 - dev: false - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + global-modules@2.0.0: dependencies: global-prefix: 3.0.0 - dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + global-prefix@3.0.0: dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: false - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + globals@11.12.0: {} - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@13.24.0: dependencies: type-fest: 0.20.2 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -9739,25 +15693,19 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 - dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - /got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + got@12.6.1: dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -9770,108 +15718,66 @@ packages: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 - dev: false - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.10: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graceful-fs@4.2.11: {} - /graceful-git@3.1.2: - resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} - engines: {node: '>=10'} + graceful-git@3.1.2: dependencies: retry: 0.12.0 safe-execa: 0.1.2 - dev: false - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemer@1.4.0: {} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - dev: false - /grouped-queue@2.0.0: - resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} - engines: {node: '>=8.0.0'} + grouped-queue@2.0.0: {} - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: false - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + handle-thing@2.0.1: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + has-proto@1.0.3: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + has-unicode@2.0.1: {} - /has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + has-yarn@3.0.0: {} - /hasharray@1.1.2: - resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + hasharray@1.1.2: dependencies: jclass: 1.2.1 - dev: false - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + hast-util-from-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9881,16 +15787,12 @@ packages: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 - dev: false - /hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 - dev: false - /hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + hast-util-raw@9.0.2: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9905,10 +15807,8 @@ packages: vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + hast-util-to-estree@3.1.0: dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -9929,8 +15829,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + hast-util-to-jsx-runtime@2.3.0: dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -9950,8 +15849,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -9960,29 +15858,22 @@ packages: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + hastscript@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 - dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + he@1.2.0: {} - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + history@4.10.1: dependencies: '@babel/runtime': 7.24.1 loose-envify: 1.4.0 @@ -9990,61 +15881,41 @@ packages: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 value-equal: 1.0.1 - dev: false - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - dev: false - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@2.8.9: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hosted-git-info@6.1.1: dependencies: lru-cache: 7.18.3 - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@7.0.1: dependencies: lru-cache: 10.2.0 - dev: true - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - dev: true - /html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + html-entities@2.5.2: {} - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-escaper@2.0.2: {} - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10054,10 +15925,7 @@ packages: relateurl: 0.2.7 terser: 5.29.2 - /html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + html-minifier-terser@7.2.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10066,28 +15934,12 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.29.2 - dev: false - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: false + html-tags@3.3.1: {} - /html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - dev: false + html-void-elements@3.0.0: {} - /html-webpack-plugin@5.6.0(webpack@5.91.0): - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + html-webpack-plugin@5.6.0(webpack@5.91.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -10096,41 +15948,32 @@ packages: tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@8.0.2: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 - dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-cache-semantics@4.1.1: {} - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + http-deceiver@1.2.7: {} - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + http-errors@1.6.3: dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -10138,12 +15981,9 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + http-parser-js@0.5.8: {} - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} + http-proxy-agent@4.0.1: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -10151,9 +15991,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -10161,14 +15999,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true + http-proxy-middleware@2.0.6(@types/express@4.17.21): dependencies: '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 @@ -10179,9 +16010,7 @@ packages: transitivePeerDependencies: - debug - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 @@ -10189,10 +16018,7 @@ packages: transitivePeerDependencies: - debug - /http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true + http-server@14.1.1: dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -10210,187 +16036,112 @@ packages: transitivePeerDependencies: - debug - supports-color - dev: true - /http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - dev: false - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + human-signals@2.1.0: {} - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 - /hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - dev: false + hyphenate-style-name@1.0.4: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + icss-utils@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ieee754@1.2.1: {} - /ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} + ignore-walk@4.0.1: dependencies: minimatch: 3.1.2 - /ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore-walk@6.0.4: dependencies: minimatch: 9.0.3 - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + ignore@5.3.1: {} - /image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true + image-size@1.1.1: dependencies: queue: 6.0.2 - dev: false - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: true + immediate@3.0.6: {} - /immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - dev: false + immer@10.0.4: {} - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false + immer@9.0.21: {} - /immutability-helper@3.1.1: - resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - dev: false + immutability-helper@3.1.1: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false + import-lazy@4.0.0: {} - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + individual@3.0.0: {} - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + infer-owner@1.0.4: {} - /infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - dev: false + infima@0.2.0-alpha.43: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + inherits@2.0.3: {} - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@1.3.8: {} - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false + ini@2.0.0: {} - /ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: true + ini@3.0.1: {} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.1.1: {} - /inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + inline-style-parser@0.2.2: {} - /inline-style-prefixer@7.0.0: - resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + inline-style-prefixer@7.0.0: dependencies: css-in-js-utils: 3.1.0 fast-loops: 1.1.3 - dev: false - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + inquirer@8.2.6: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -10408,454 +16159,255 @@ packages: through: 2.3.8 wrap-ansi: 6.2.0 - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + interpret@1.4.0: {} - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} + interpret@3.1.1: {} - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + invariant@2.2.4: dependencies: loose-envify: 1.4.0 - /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + ipaddr.js@1.9.1: {} - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} + ipaddr.js@2.1.0: {} - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphabetical@2.0.1: {} - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.2.1: {} - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-arrayish@0.3.2: {} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-ci@3.0.1: dependencies: ci-info: 3.9.0 - dev: false - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-decimal@2.0.1: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false + is-docker@2.2.1: {} - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true + is-docker@3.0.0: {} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false + is-extendable@0.1.1: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + is-fullwidth-code-point@3.0.0: {} - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true + is-generator-fn@2.1.0: {} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-hexadecimal@2.0.1: {} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 - dev: false - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + is-interactive@1.0.0: {} - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-lambda@1.0.1: {} - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: true + is-map@2.0.3: {} - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.3: {} - /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} + is-network-error@1.1.0: {} - /is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + is-npm@6.0.0: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: false + is-obj@1.0.1: {} - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false + is-obj@2.0.0: {} - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: false + is-path-cwd@2.2.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + is-path-inside@3.0.3: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + is-plain-obj@2.1.0: {} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + is-plain-obj@3.0.0: {} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + is-plain-obj@4.1.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + is-plain-object@5.0.0: {} - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true + is-potential-custom-element-name@1.0.1: {} - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.2: dependencies: '@types/estree': 1.0.5 - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: false + is-regexp@1.0.0: {} - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - dev: false + is-root@2.1.0: {} - /is-scoped@2.1.0: - resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} - engines: {node: '>=8'} + is-scoped@2.1.0: dependencies: scoped-regex: 2.1.0 - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: true + is-set@2.0.3: {} - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-stream@2.0.1: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-typedarray@1.0.0: {} - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + is-unicode-supported@0.1.0: {} - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + is-utf8@0.2.1: {} - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: true + is-weakmap@2.0.2: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + is-weakset@2.0.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - dev: false - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - /is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - dev: false + is-yarn-global@0.4.1: {} - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false + isarray@0.0.1: {} - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} + isbinaryfile@4.0.10: {} - /isbinaryfile@5.0.2: - resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} - engines: {node: '>= 18.0.0'} + isbinaryfile@5.0.2: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + isobject@3.0.1: {} - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: true + istanbul-lib-coverage@3.2.2: {} - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10864,11 +16416,8 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} + istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10877,85 +16426,58 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + istanbul-lib-source-maps@4.0.1: dependencies: debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + istanbul-reports@3.1.7: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - dev: true - /itertools@2.2.5: - resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} - dev: false + itertools@2.2.5: {} - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true + jake@10.8.7: dependencies: async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - /jclass@1.2.1: - resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} - engines: {node: '>= 0.6'} - dev: false + jclass@1.2.1: {} - /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 - dev: true - /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -10980,17 +16502,8 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/test-result': 29.7.0 @@ -11008,19 +16521,8 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true + jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -11049,44 +16551,27 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@29.7.0: dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 - dev: true - /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 - dev: true - /jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jest-environment-jsdom@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11100,11 +16585,8 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11112,16 +16594,10 @@ packages: '@types/node': 18.18.2 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-get-type@29.6.3: {} - /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 @@ -11136,29 +16612,20 @@ packages: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - dev: true - /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@29.7.0: dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -11169,47 +16636,27 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 - dev: true - /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-util: 29.7.0 - dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): dependencies: jest-resolve: 29.7.0 - dev: true - /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-regex-util@29.6.3: {} - /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@29.7.0: dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -11220,11 +16667,8 @@ packages: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 - dev: true - /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@29.7.0: dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -11249,11 +16693,8 @@ packages: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - dev: true - /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11279,11 +16720,8 @@ packages: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -11307,11 +16745,8 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -11320,9 +16755,7 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 - /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -11330,11 +16763,8 @@ packages: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 - dev: true - /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -11344,34 +16774,21 @@ packages: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 - dev: true - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + jest-worker@27.5.1: dependencies: '@types/node': 18.18.2 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@29.7.0: dependencies: '@types/node': 18.18.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 @@ -11382,14 +16799,10 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true + jiti@1.21.0: {} - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + joi@17.12.2: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -11397,37 +16810,22 @@ packages: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - /js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - dev: false + js-cookie@2.2.1: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@4.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsbn@1.1.0: {} - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jsdom@20.0.3: dependencies: abab: 2.0.6 acorn: 8.11.3 @@ -11459,272 +16857,168 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true + jsesc@2.5.2: {} - /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsesc@3.0.2: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-buffer@3.0.1: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@2.3.1: {} - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-parse-even-better-errors@3.0.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema-traverse@1.0.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stable-stringify-without-jsonify@1.0.1: {} - /json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + json-stringify-nice@1.1.4: {} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json-stringify-safe@5.0.1: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + json5@2.2.3: {} - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + jsonparse@1.3.1: {} - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 - dev: true - /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jszip@3.10.1: dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 - dev: true - /just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + just-diff-apply@5.5.0: {} - /just-diff@5.2.0: - resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + just-diff@5.2.0: {} - /just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - dev: true + just-extend@6.2.0: {} - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + kind-of@6.0.3: {} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + kleur@3.0.3: {} - /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + kuler@2.0.0: {} - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + language-subtag-registry@0.3.22: {} - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.22 - dev: true - /latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + latest-version@7.0.0: dependencies: package-json: 8.1.1 - dev: false - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.6.1: dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + leven@3.1.0: {} - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lie@3.3.0: dependencies: immediate: 3.0.6 - dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lilconfig@2.1.0: {} - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - dev: true + lilconfig@3.1.1: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@1.2.4: {} - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + load-json-file@6.2.0: dependencies: graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 - dev: true - /load-json-file@7.0.1: - resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + load-json-file@7.0.1: {} - /load-script@1.0.0: - resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} - dev: false + load-script@1.0.0: {} - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + loader-runner@4.3.0: {} - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + loader-utils@2.0.4: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - dev: false - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - dev: false + loader-utils@3.2.1: {} - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: false - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 - dev: false - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.debounce@4.0.8: {} - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true + lodash.get@4.4.2: {} - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.memoize@4.1.2: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.merge@4.6.2: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false + lodash.uniq@4.5.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} + logform@2.6.0: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -11733,74 +17027,45 @@ packages: safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + longest-streak@3.1.0: {} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /loupe@3.1.0: - resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + loupe@3.1.0: dependencies: get-func-name: 2.0.2 - dev: true - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + lowercase-keys@3.0.0: {} - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + lru-cache@10.2.0: {} - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - /lru-cache@7.10.1: - resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} - engines: {node: '>=12'} - dev: false + lru-cache@7.10.1: {} - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + lru-cache@7.18.3: {} - /lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - dev: true + lz-string@1.5.0: {} - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + make-dir@4.0.0: dependencies: semver: 7.6.0 - dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + make-error@1.3.6: {} - /make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + make-fetch-happen@10.2.1: dependencies: agentkeepalive: 4.5.0 cacache: 16.1.3 @@ -11822,9 +17087,7 @@ packages: - bluebird - supports-color - /make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + make-fetch-happen@11.1.1: dependencies: agentkeepalive: 4.5.0 cacache: 17.1.4 @@ -11844,9 +17107,7 @@ packages: transitivePeerDependencies: - supports-color - /make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} + make-fetch-happen@9.1.0: dependencies: agentkeepalive: 4.5.0 cacache: 15.3.0 @@ -11868,39 +17129,23 @@ packages: - bluebird - supports-color - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 - dev: true - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} + map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 - dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + markdown-extensions@2.0.0: {} - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: false + markdown-table@3.0.3: {} - /mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + mdast-util-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11912,19 +17157,15 @@ packages: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11941,8 +17182,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + mdast-util-frontmatter@2.0.1: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11952,20 +17192,16 @@ packages: micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + mdast-util-gfm-autolink-literal@2.0.0: dependencies: '@types/mdast': 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 - dev: false - /mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11974,20 +17210,16 @@ packages: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11996,10 +17228,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -12007,10 +17237,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -12021,10 +17249,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + mdast-util-mdx-expression@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12035,8 +17261,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + mdast-util-mdx-jsx@3.1.2: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12054,8 +17279,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -12065,8 +17289,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12077,14 +17300,12 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + mdast-util-to-hast@13.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -12096,8 +17317,7 @@ packages: unist-util-visit: 5.0.0 vfile: 6.0.1 - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -12108,35 +17328,19 @@ packages: unist-util-visit: 5.0.0 zwitch: 2.0.4 - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.3 - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false + mdn-data@2.0.14: {} - /mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: true + mdn-data@2.0.28: {} - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true + mdn-data@2.0.30: {} - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + media-typer@0.3.0: {} - /mem-fs-editor@9.7.0(mem-fs@2.3.0): - resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} - engines: {node: '>=12.10.0'} - peerDependencies: - mem-fs: ^2.1.0 - peerDependenciesMeta: - mem-fs: - optional: true + mem-fs-editor@9.7.0(mem-fs@2.3.0): dependencies: binaryextensions: 4.19.0 commondir: 1.0.1 @@ -12150,43 +17354,29 @@ packages: normalize-path: 3.0.0 textextensions: 5.16.0 - /mem-fs@2.3.0: - resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} - engines: {node: '>=12'} + mem-fs@2.3.0: dependencies: '@types/node': 15.14.9 '@types/vinyl': 2.0.11 vinyl: 2.2.1 vinyl-file: 3.0.0 - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} + mem@8.1.1: dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - dev: true - /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + memfs@3.5.3: dependencies: fs-monkey: 1.0.5 - dev: false - /memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} - engines: {node: '>= 4.0.0'} + memfs@4.8.0: dependencies: tslib: 2.6.2 - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false + memoize-one@5.2.1: {} - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + meow@10.1.5: dependencies: '@types/minimist': 1.2.5 camelcase-keys: 7.0.2 @@ -12200,24 +17390,16 @@ packages: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 - dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge2@1.4.1: {} - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + methods@1.1.2: {} - /micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + micromark-core-commonmark@2.0.0: dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -12236,8 +17418,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + micromark-extension-directive@3.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -12246,28 +17427,22 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 - dev: false - /micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + micromark-extension-gfm-autolink-literal@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + micromark-extension-gfm-footnote@2.0.0: dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12277,10 +17452,8 @@ packages: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + micromark-extension-gfm-strikethrough@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -12288,36 +17461,28 @@ packages: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + micromark-extension-gfm-table@2.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-tagfilter@2.0.0: dependencies: micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + micromark-extension-gfm-task-list-item@2.0.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -12327,10 +17492,8 @@ packages: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + micromark-extension-mdx-expression@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12341,8 +17504,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + micromark-extension-mdx-jsx@3.0.0: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12355,13 +17517,11 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + micromark-extension-mdx-md@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12373,8 +17533,7 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -12385,23 +17544,20 @@ packages: micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + micromark-factory-mdx-expression@2.0.1: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12412,84 +17568,69 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 - dev: false - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 - dev: false - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + micromark-util-character@2.1.0: dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + micromark-util-classify-character@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.0: dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + micromark-util-decode-numeric-character-reference@2.0.1: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + micromark-util-decode-string@2.0.0: dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.0: {} - /micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12500,50 +17641,38 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.0: {} - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + micromark-util-sanitize-uri@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - /micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + micromark-util-subtokenize@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false + micromark-util-symbol@1.1.0: {} - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + micromark-util-symbol@2.0.0: {} - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false + micromark-util-types@1.1.0: {} - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark-util-types@2.0.0: {} - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.0: dependencies: '@types/debug': 4.1.12 debug: 4.3.4(supports-color@8.1.1) @@ -12565,129 +17694,76 @@ packages: transitivePeerDependencies: - supports-color - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: false + mime-db@1.33.0: {} - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + mime-db@1.52.0: {} - /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + mime-types@2.1.18: dependencies: mime-db: 1.33.0 - dev: false - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + mime@1.6.0: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + mimic-fn@2.1.0: {} - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true + mimic-fn@3.1.0: {} - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + mimic-response@3.1.0: {} - /mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + mimic-response@4.0.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /mini-css-extract-plugin@2.8.1(webpack@5.91.0): - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + mini-css-extract-plugin@2.8.1(webpack@5.91.0): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimalistic-assert@1.0.1: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 - dev: true - - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + minimatch@7.4.6: dependencies: brace-expansion: 2.0.1 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimist@1.2.8: {} - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + minipass-collect@1.0.2: dependencies: minipass: 3.3.6 - /minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} + minipass-fetch@1.4.1: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12695,9 +17771,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + minipass-fetch@2.1.2: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12705,9 +17779,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + minipass-fetch@3.0.4: dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 @@ -12715,75 +17787,49 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - /minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + minipass-json-stream@1.0.1: dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + minipass@5.0.0: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + minipass@7.0.4: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - /mkdirp-infer-owner@2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} - engines: {node: '>=10'} + mkdirp-infer-owner@2.0.0: dependencies: chownr: 2.0.0 infer-owner: 1.0.4 mkdirp: 1.0.4 - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + mkdirp@0.5.6: dependencies: minimist: 1.2.8 - dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true + mkdirp@1.0.4: {} - /mocha@10.3.0: - resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} - engines: {node: '>= 14.0.0'} - hasBin: true + mocha@10.3.0: dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -12805,36 +17851,23 @@ packages: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 - dev: true - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false + moo@0.5.2: {} - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - dev: false + mrmime@2.0.0: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + ms@2.1.3: {} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + multicast-dns@7.2.5: dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - /multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 @@ -12842,22 +17875,15 @@ packages: arrify: 2.0.1 minimatch: 3.1.2 - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@0.0.8: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true - /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} - peerDependencies: - react: '*' - react-dom: '*' + nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 @@ -12869,20 +17895,12 @@ packages: rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.1 - dev: false - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.7: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-compare@1.4.0: {} - /ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true + ndjson@2.0.0: dependencies: json-stringify-safe: 5.0.1 minimist: 1.2.8 @@ -12890,50 +17908,25 @@ packages: split2: 3.2.2 through2: 4.0.2 - /nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true + nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): dependencies: commander: 2.20.3 moo: 0.5.2 railroad-diagrams: 1.0.0 randexp: 0.4.6 - dev: false - patched: true - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neo-async@2.6.2: {} - /neovim@5.1.0: - resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} - engines: {node: '>=10'} - hasBin: true + neovim@5.1.0: dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - /nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: false + nerf-dart@1.0.0: {} - /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true + next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): dependencies: '@next/env': 14.1.4 '@swc/helpers': 0.5.2 @@ -12957,53 +17950,34 @@ packages: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - dev: false - /nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + nise@5.1.9: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 path-to-regexp: 6.2.1 - dev: true - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - /node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 - dev: false - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + node-forge@1.3.1: {} - /node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true + node-gyp@8.4.1: dependencies: env-paths: 2.2.1 glob: 7.2.3 @@ -13019,10 +17993,7 @@ packages: - bluebird - supports-color - /node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true + node-gyp@9.4.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -13039,180 +18010,122 @@ packages: - bluebird - supports-color - /node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + node-html-parser@6.1.12: dependencies: css-select: 5.1.0 he: 1.2.0 - dev: false - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true + node-int64@0.4.0: {} - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.14: {} - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + nopt@5.0.0: dependencies: abbrev: 1.1.1 - /nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true + nopt@6.0.0: dependencies: abbrev: 1.1.1 - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + normalize-path@3.0.0: {} - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + normalize-range@0.1.2: {} - /normalize-registry-url@2.0.0: - resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} - dev: true + normalize-registry-url@2.0.0: {} - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false + normalize-url@6.1.0: {} - /normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - dev: false + normalize-url@8.0.1: {} - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + npm-bundled@1.1.2: dependencies: npm-normalize-package-bin: 1.0.1 - /npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-bundled@3.0.0: dependencies: npm-normalize-package-bin: 3.0.1 - /npm-install-checks@4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} - engines: {node: '>=10'} + npm-install-checks@4.0.0: dependencies: semver: 7.6.0 - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-install-checks@6.3.0: dependencies: semver: 7.6.0 - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + npm-normalize-package-bin@1.0.1: {} - /npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npm-normalize-package-bin@2.0.0: {} - /npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@3.0.1: {} - /npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@10.1.0: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-package-arg@11.0.1: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - dev: true - /npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} + npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 semver: 7.6.0 validate-npm-package-name: 3.0.0 - /npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} - hasBin: true + npm-packlist@3.0.0: dependencies: glob: 7.2.3 ignore-walk: 4.0.1 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-packlist@7.0.4: dependencies: ignore-walk: 6.0.4 - /npm-pick-manifest@6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + npm-pick-manifest@6.1.1: dependencies: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 semver: 7.6.0 - /npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.6.0 - /npm-registry-fetch@12.0.2: - resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + npm-registry-fetch@12.0.2: dependencies: make-fetch-happen: 10.2.1 minipass: 3.3.6 @@ -13224,9 +18137,7 @@ packages: - bluebird - supports-color - /npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-registry-fetch@14.0.5: dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 @@ -13238,175 +18149,119 @@ packages: transitivePeerDependencies: - supports-color - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false + nprogress@0.2.0: {} - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true + nwsapi@2.2.7: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + object-assign@4.1.1: {} - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true + object-hash@3.0.0: {} - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.1: {} - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + object-is@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + object-keys@1.1.1: {} - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} + object.entries@1.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 - dev: true - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} + object.hasown@1.1.4: dependencies: define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + object.values@1.2.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obuf@1.1.2: {} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + on-headers@1.0.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + one-time@1.0.0: dependencies: fn.name: 1.1.0 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + open@10.1.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true + opener@1.5.2: {} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -13415,9 +18270,7 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + ora@5.4.1: dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -13429,143 +18282,89 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + os-tmpdir@1.0.2: {} - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: false + p-cancelable@3.0.0: {} - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: true + p-defer@1.0.0: {} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + p-filter@2.1.0: dependencies: p-map: 2.1.0 - dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + p-finally@1.0.0: {} - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@4.0.0: dependencies: yocto-queue: 1.0.0 - dev: false - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: false - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@6.0.0: dependencies: p-limit: 4.0.0 - dev: false - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true + p-map@2.1.0: {} - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} + p-queue@6.6.2: dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - dev: false - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + p-retry@6.2.0: dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} + p-timeout@3.2.0: dependencies: p-finally: 1.0.0 - /p-transform@1.3.0: - resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} - engines: {node: '>=12.10.0'} + p-transform@1.3.0: dependencies: debug: 4.3.4(supports-color@8.1.1) p-queue: 6.6.2 transitivePeerDependencies: - supports-color - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + p-try@2.2.0: {} - /package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + package-json@8.1.1: dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 - dev: false - /pacote@12.0.3: - resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + pacote@12.0.3: dependencies: '@npmcli/git': 2.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -13588,12 +18387,9 @@ packages: tar: 6.2.1 transitivePeerDependencies: - bluebird - - supports-color - - /pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + - supports-color + + pacote@15.2.0: dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -13617,32 +18413,24 @@ packages: - bluebird - supports-color - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true + pako@1.0.11: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-conflict-json@2.0.2: - resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + parse-conflict-json@2.0.2: dependencies: json-parse-even-better-errors: 2.3.1 just-diff: 5.2.0 just-diff-apply: 5.5.0 - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -13653,321 +18441,177 @@ packages: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - dev: true + parse-ms@2.1.0: {} - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false + parse-numeric-range@1.3.0: {} - /parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - dev: false + parse-srcset@1.0.2: {} - /parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 parse5: 7.1.2 - dev: false - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.1.2: dependencies: entities: 4.5.0 - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parseurl@1.3.3: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /path-absolute@1.0.1: - resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} - engines: {node: '>=4'} - dev: true + path-absolute@1.0.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + path-exists@5.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + path-is-absolute@1.0.1: {} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false + path-is-inside@1.0.2: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-name@1.0.0: - resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + path-name@1.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.1: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - /path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} + path-temp@2.1.0: dependencies: unique-string: 2.0.0 - dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.7: {} - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + path-to-regexp@1.8.0: dependencies: isarray: 0.0.1 - dev: false - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false + path-to-regexp@2.2.1: {} - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: true + path-to-regexp@6.2.1: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@4.0.0: {} - /pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - dev: true + pathval@2.0.0: {} - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + pify@2.3.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + pify@4.0.1: {} - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true + pirates@4.0.6: {} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - /pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + pkg-dir@7.0.0: dependencies: find-up: 6.3.0 - dev: false - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + pkg-up@3.1.0: dependencies: find-up: 3.0.0 - dev: false - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + pluralize@8.0.0: {} - /portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} + portfinder@1.0.32: dependencies: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color - dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: true + possible-typed-array-names@1.0.0: {} - /postcss-calc@8.2.4(postcss@8.4.38): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + postcss-calc@8.2.4(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@5.3.1(postcss@8.4.38): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-colormin@5.3.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-convert-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-convert-values@5.1.3(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-comments@5.1.2(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-duplicates@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-empty@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-overridden@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-unused@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-unused@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 + postcss-import@15.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - dev: true - /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 - dev: true - /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): dependencies: lilconfig: 3.1.1 postcss: 8.4.38 ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3) yaml: 2.4.1 - dev: true - /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 + postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 8.3.6(typescript@5.4.3) jiti: 1.21.0 @@ -13976,20 +18620,8 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: false - /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 @@ -13998,655 +18630,343 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: true - /postcss-merge-idents@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-idents@5.1.1(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.38): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-longhand@5.1.7(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.38) - dev: false - /postcss-merge-rules@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-rules@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-font-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-gradients@5.1.1(postcss@8.4.38): dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-params@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-params@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.38): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-selectors@5.2.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-extract-imports@3.0.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-local-by-default@4.0.4(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - /postcss-modules-scope@3.1.1(postcss@8.4.38): - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-scope@3.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - /postcss-modules-values@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 + postcss-nested@6.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-charset@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-display-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-positions@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-string@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-unicode@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-url@5.1.0(postcss@8.4.38): dependencies: normalize-url: 6.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-whitespace@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-ordered-values@5.1.3(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-idents@5.2.0(postcss@8.4.38): - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-idents@5.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-initial@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-initial@5.1.2(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 postcss: 8.4.38 - dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-transforms@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-sort-media-queries@4.4.1(postcss@8.4.38): - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 + postcss-sort-media-queries@4.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 sort-css-media-queries: 2.1.0 - dev: false - /postcss-svgo@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-svgo@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-unique-selectors@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: false - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - /postcss-zindex@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-selector-parser: 6.0.16 + + postcss-value-parser@4.2.0: {} + + postcss-zindex@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.31: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - dev: false - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - /preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} + preferred-pm@3.1.3: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.2.1: {} - /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): - resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - prettier-plugin-twig-melody: - optional: true + prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): dependencies: prettier: 3.2.5 - dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true + prettier@3.2.5: {} - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + pretty-bytes@5.6.0: {} - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true - /pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} + pretty-ms@7.0.1: dependencies: parse-ms: 2.1.0 - dev: true - /pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - dev: false + pretty-time@1.1.0: {} - /print-diff@1.0.0: - resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} - engines: {node: '>=8.3'} + print-diff@1.0.0: dependencies: diff: 4.0.2 - dev: true - /printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - dev: true + printable-characters@1.0.42: {} - /prism-react-renderer@2.3.1(react@18.2.0): - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0 || 18' + prism-react-renderer@2.3.1(react@18.2.0): dependencies: '@types/prismjs': 1.26.3 clsx: 2.1.0 react: 18.2.0 - dev: false - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false + prismjs@1.29.0: {} - /proc-log@1.0.0: - resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + proc-log@1.0.0: {} - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proc-log@3.0.0: {} - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-nextick-args@2.0.1: {} - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + process@0.11.10: {} - /promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + promise-all-reject-late@1.0.1: {} - /promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + promise-call-limit@1.0.2: {} - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true + promise-inflight@1.0.1: {} - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + promise-retry@2.0.1: dependencies: err-code: 2.0.3 retry: 0.12.0 - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - /property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + property-information@6.4.1: {} - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proto-list@1.2.4: {} - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + psl@1.9.0: {} - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false + punycode@1.4.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + punycode@2.3.1: {} - /pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} + pupa@3.1.0: dependencies: escape-goat: 4.0.0 - dev: false - /pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - dev: true + pure-rand@6.1.0: {} - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + qs@6.11.0: dependencies: side-channel: 1.0.6 - /qs@6.12.0: - resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} - engines: {node: '>=0.6'} + qs@6.12.0: dependencies: side-channel: 1.0.6 - dev: true - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true + querystringify@2.2.0: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + queue@6.0.2: dependencies: inherits: 2.0.4 - dev: false - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + quick-lru@5.1.1: {} - /railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false + railroad-diagrams@1.0.0: {} - /rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - dev: true + rambda@7.5.0: {} - /ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - dev: true + ramda@0.29.1: {} - /randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} + randexp@0.4.6: dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 - dev: false - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - /range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: false + range-parser@1.2.0: {} - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + range-parser@1.2.1: {} - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + raw-body@2.5.2: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: false - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true + react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 address: 1.2.2 @@ -14678,29 +18998,18 @@ packages: - eslint - supports-color - vue-template-compiler - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - /react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false + react-error-overlay@6.0.11: {} - /react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-fast-compare@3.2.2: {} - /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 invariant: 2.2.4 @@ -14710,11 +19019,7 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): dependencies: invariant: 2.2.4 react: 18.2.0 @@ -14722,42 +19027,23 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true + react-is@17.0.2: {} - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.2.0: {} - /react-json-view-lite@1.3.0(react@18.2.0): - resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + react-json-view-lite@1.3.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): dependencies: '@babel/runtime': 7.24.1 - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /react-player@2.15.1(react@18.2.0): - resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} - peerDependencies: - react: '>=16.6.0 || 18' + react-player@2.15.1(react@18.2.0): dependencies: deepmerge: 4.3.1 load-script: 1.0.0 @@ -14765,23 +19051,14 @@ packages: prop-types: 15.8.1 react: 18.2.0 react-fast-compare: 3.2.2 - dev: false - /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15 || 18' - react-router: '>=5' + react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 react: 18.2.0 react-router: 5.3.4(react@18.2.0) - dev: false - /react-router-dom@5.3.4(react@18.2.0): - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15 || 18' + react-router-dom@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14791,12 +19068,8 @@ packages: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-router@5.3.4(react@18.2.0): - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15 || 18' + react-router@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14808,28 +19081,15 @@ packages: react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-string-replace@1.1.1: - resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} - engines: {node: '>=0.12.0'} - dev: false + react-string-replace@1.1.1: {} - /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' + react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): dependencies: react: 18.2.0 tslib: 2.6.2 - dev: false - /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} - peerDependencies: - react: '*' - react-dom: '*' + react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -14847,101 +19107,71 @@ packages: throttle-debounce: 3.0.1 ts-easing: 0.2.0 tslib: 2.6.2 - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react@18.2.0: dependencies: loose-envify: 1.4.0 - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-cache@1.0.0: dependencies: pify: 2.3.0 - dev: true - /read-cmd-shim@3.0.1: - resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + read-cmd-shim@3.0.1: {} - /read-ini-file@4.0.0: - resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} - engines: {node: '>=14.6'} + read-ini-file@4.0.0: dependencies: ini: 3.0.1 strip-bom: 4.0.0 - dev: true - /read-package-json-fast@2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} - engines: {node: '>=10'} + read-package-json-fast@2.0.3: dependencies: json-parse-even-better-errors: 2.3.1 npm-normalize-package-bin: 1.0.1 - /read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json-fast@3.0.2: dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 - /read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json@6.0.4: dependencies: glob: 10.3.10 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} + read-pkg-up@8.0.0: dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} + read-pkg@6.0.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 - dev: true - /read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} + read-yaml-file@2.1.0: dependencies: js-yaml: 4.1.0 strip-bom: 4.0.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -14951,17 +19181,13 @@ packages: string_decoder: 1.1.1 util-deprecate: 1.0.2 - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readable-stream@4.5.2: dependencies: abort-controller: 3.0.0 buffer: 6.0.3 @@ -14969,60 +19195,39 @@ packages: process: 0.11.10 string_decoder: 1.3.0 - /readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs + readdir-scoped-modules@1.1.0: dependencies: debuglog: 1.0.1 dezalgo: 1.0.4 graceful-fs: 4.2.11 once: 1.4.0 - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - /reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - dev: false + reading-time@1.5.0: {} - /realpath-missing@1.1.0: - resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} - engines: {node: '>=10'} - dev: true + realpath-missing@1.1.0: {} - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + rechoir@0.6.2: dependencies: resolve: 1.22.8 - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + rechoir@0.8.0: dependencies: resolve: 1.22.8 - /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 - dev: false - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} + redent@4.0.0: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true - /reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -15031,43 +19236,29 @@ packages: get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 - dev: true - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerate@1.4.2: {} - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-runtime@0.14.1: {} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.24.1 - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + regexp-tree@0.1.27: {} - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -15076,47 +19267,31 @@ packages: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: false - /registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} + registry-url@6.0.1: dependencies: rc: 1.2.8 - dev: false - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - /rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 - dev: false - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} + relateurl@0.2.7: {} - /remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + remark-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-directive: 3.0.0 @@ -15124,21 +19299,16 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + remark-emoji@4.0.1: dependencies: '@types/mdast': 4.0.3 emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 unified: 11.0.4 - dev: false - /remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + remark-frontmatter@5.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-frontmatter: 2.0.1 @@ -15146,10 +19316,8 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-gfm: 3.0.0 @@ -15159,18 +19327,15 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + remark-mdx@3.0.1: dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - /remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 @@ -15179,8 +19344,7 @@ packages: transitivePeerDependencies: - supports-color - /remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -15188,19 +19352,15 @@ packages: unified: 11.0.4 vfile: 6.0.1 - /remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 - dev: false - /remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + remove-trailing-separator@1.1.0: {} - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 @@ -15208,212 +19368,128 @@ packages: lodash: 4.17.21 strip-ansi: 6.0.1 - /replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} + replace-ext@1.0.1: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + require-from-string@2.0.2: {} - /require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - dev: false + require-like@0.1.2: {} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + requires-port@1.0.0: {} - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false + resize-observer-polyfill@1.5.1: {} - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false + resolve-alpn@1.2.1: {} - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolve-from@5.0.0: {} - /resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - dev: false + resolve-pathname@3.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - dev: true + resolve.exports@2.0.2: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} + responselike@3.0.0: dependencies: lowercase-keys: 3.0.0 - dev: false - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false + ret@0.1.15: {} - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + retry@0.12.0: {} - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + retry@0.13.1: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + reusify@1.0.4: {} - /rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} - dev: false + rfc4648@1.5.3: {} - /right-pad@1.0.1: - resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} - engines: {node: '>= 0.10'} - dev: true + right-pad@1.0.1: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: glob: 10.3.10 - /rtl-css-js@1.16.1: - resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.24.1 - dev: false - /rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - dev: false + rtl-detect@1.1.2: {} - /rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true + rtlcss@4.1.1: dependencies: escalade: 3.1.2 picocolors: 1.0.0 postcss: 8.4.38 strip-json-comments: 3.1.1 - dev: false - /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} + run-applescript@7.0.0: {} - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + run-async@2.4.1: {} - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.1: dependencies: tslib: 2.6.2 - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-buffer@5.2.1: {} - /safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} - engines: {node: '>=12'} + safe-execa@0.1.2: dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} + safe-stable-stringify@2.4.3: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + safer-buffer@2.1.2: {} - /sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + sanitize-html@2.13.0: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -15421,124 +19497,77 @@ packages: is-plain-object: 5.0.0 parse-srcset: 1.0.2 postcss: 8.4.38 - dev: false - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - dev: false + sax@1.3.0: {} - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 - dev: true - /sbd@1.0.19: - resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + sbd@1.0.19: dependencies: sanitize-html: 2.13.0 - dev: false - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + schema-utils@2.7.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + schema-utils@4.2.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - /scoped-regex@2.1.0: - resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} - engines: {node: '>=8'} + scoped-regex@2.1.0: {} - /screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false + screenfull@5.2.0: {} - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - dev: false + search-insights@2.13.0: {} - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - dev: false - /secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - dev: true + secure-compare@3.0.1: {} - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + select-hose@2.0.0: {} - /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: semver: 7.6.0 - dev: false - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + semver@6.3.1: {} - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + send@0.18.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -15556,19 +19585,15 @@ packages: transitivePeerDependencies: - supports-color - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - /serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + serve-handler@6.1.5: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -15578,11 +19603,8 @@ packages: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 - dev: false - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + serve-index@1.9.1: dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -15594,9 +19616,7 @@ packages: transitivePeerDependencies: - supports-color - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -15605,12 +19625,9 @@ packages: transitivePeerDependencies: - supports-color - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-blocking@2.0.0: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -15619,82 +19636,53 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.2 - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /set-harmonic-interval@1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - dev: false + set-harmonic-interval@1.0.1: {} - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: true + setimmediate@1.0.5: {} - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + setprototypeof@1.1.0: {} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + setprototypeof@1.2.0: {} - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - /shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shallowequal@1.1.0: {} - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.1: {} - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true + shelljs@0.8.5: dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + signal-exit@4.1.0: {} - /sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + sigstore@1.9.0: dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -15704,13 +19692,11 @@ packages: transitivePeerDependencies: - supports-color - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - /sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + sinon@17.0.1: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 @@ -15718,79 +19704,52 @@ packages: diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 - dev: true - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 - dev: false - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + sisteransi@1.0.5: {} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true + sitemap@7.1.1: dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 - dev: false - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: false - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false + slash@4.0.0: {} - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smart-buffer@4.2.0: {} - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: true - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - /socks-proxy-agent@6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} - engines: {node: '>= 10'} + socks-proxy-agent@6.1.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: - supports-color - dev: false - /socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} + socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15798,9 +19757,7 @@ packages: transitivePeerDependencies: - supports-color - /socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} + socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15808,89 +19765,58 @@ packages: transitivePeerDependencies: - supports-color - /socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.1: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - /sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - dev: false + sort-css-media-queries@2.1.0: {} - /sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} + sort-keys@4.2.0: dependencies: is-plain-obj: 2.1.0 - /sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} + sort-keys@5.0.0: dependencies: is-plain-obj: 4.1.0 - dev: true - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + source-map-js@1.2.0: {} - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true + source-map-url@0.4.1: {} - /source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - dev: false + source-map@0.5.6: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + source-map@0.6.1: {} - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.4: {} - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + space-separated-tokens@2.0.2: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + spdx-license-ids@3.0.17: {} - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + spdy-transport@3.0.0: dependencies: debug: 4.3.4(supports-color@8.1.1) detect-node: 2.1.0 @@ -15901,9 +19827,7 @@ packages: transitivePeerDependencies: - supports-color - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + spdy@4.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) handle-thing: 2.0.1 @@ -15913,138 +19837,88 @@ packages: transitivePeerDependencies: - supports-color - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + split2@3.2.2: dependencies: readable-stream: 3.6.2 - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.0.3: {} - /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sprintf-js@1.1.3: {} - /srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - dev: false + srcset@4.0.0: {} - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@10.0.5: dependencies: minipass: 7.0.4 - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} + ssri@8.0.1: dependencies: minipass: 3.3.6 - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + ssri@9.0.1: dependencies: minipass: 3.3.6 - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false + stable@0.1.8: {} - /stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + stack-generator@2.0.10: dependencies: stackframe: 1.3.4 - dev: false - /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + stack-trace@0.0.10: {} - /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - dev: true - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false + stackframe@1.3.4: {} - /stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + stacktrace-gps@3.1.2: dependencies: source-map: 0.5.6 stackframe: 1.3.4 - dev: false - /stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + stacktrace-js@2.0.2: dependencies: error-stack-parser: 2.1.4 stack-generator: 2.0.10 stacktrace-gps: 3.1.2 - dev: false - /stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 get-source: 2.0.12 - dev: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} + statuses@1.5.0: {} - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + statuses@2.0.1: {} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false + std-env@3.7.0: {} - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.7 - dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + streamsearch@1.1.0: {} - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + string-length@4.0.2: dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -16058,195 +19932,117 @@ packages: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 - dev: true - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + stringify-entities@4.0.3: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 - dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - /strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} + strip-bom-buf@1.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom-stream@2.0.0: - resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} - engines: {node: '>=0.10.0'} + strip-bom-stream@2.0.0: dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false + strip-bom-string@1.0.0: {} - /strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} + strip-bom@2.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + strip-bom@3.0.0: {} - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + strip-bom@4.0.0: {} - /strip-comments-strings@1.2.0: - resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} - dev: true + strip-comments-strings@1.2.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + strip-final-newline@2.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: true + strnum@1.0.5: {} - /style-loader@3.3.4(webpack@5.91.0): - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + style-loader@3.3.4(webpack@5.91.0): dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - /style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + style-to-object@1.0.5: dependencies: inline-style-parser: 0.2.2 - /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true + styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): dependencies: '@babel/core': 7.24.3 client-only: 0.0.1 react: 18.2.0 - dev: false - /stylehacks@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + stylehacks@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - dev: false + stylis@4.3.1: {} - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -16255,37 +20051,24 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - dev: true - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-preserve-symlinks-flag@1.0.0: {} - /svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + svg-parser@2.0.4: {} - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true + svgo@2.8.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16294,12 +20077,8 @@ packages: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 - dev: false - /svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true + svgo@3.2.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16308,16 +20087,10 @@ packages: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 - dev: true - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true + symbol-tree@3.2.4: {} - /syncpack@12.3.0(typescript@5.4.3): - resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} - engines: {node: '>=16'} - hasBin: true + syncpack@12.3.0(typescript@5.4.3): dependencies: '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0) chalk: 4.1.2 @@ -16337,12 +20110,8 @@ packages: ts-toolbelt: 9.6.0 transitivePeerDependencies: - typescript - dev: true - /tailwindcss@3.4.1(ts-node@10.9.2): - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@3.4.1(ts-node@10.9.2): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -16368,20 +20137,12 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: true - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false + tapable@1.1.3: {} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + tapable@2.2.1: {} - /tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -16390,21 +20151,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true + terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.20.2 @@ -16414,195 +20161,105 @@ packages: terser: 5.29.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} - engines: {node: '>=10'} - hasBin: true + terser@5.29.2: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - dev: true - /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + text-hex@1.0.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-table@0.2.0: {} - /textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} - engines: {node: '>=0.8'} + textextensions@5.16.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - dev: false + throttle-debounce@3.0.1: {} - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + through2@4.0.2: dependencies: readable-stream: 3.6.2 - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + through@2.3.8: {} - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + thunky@1.1.0: {} - /tightrope@0.1.0: - resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} - engines: {node: '>=14'} - dev: true + tightrope@0.1.0: {} - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + tiny-invariant@1.3.3: {} - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false + tiny-warning@1.0.3: {} - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: false + tinycolor2@1.6.0: {} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true + tmpl@1.0.5: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false + toggle-selection@1.0.6: {} - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + toidentifier@1.0.1: {} - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: false + totalist@3.0.1: {} - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} + tough-cookie@4.1.3: dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@0.0.3: {} - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + tr46@3.0.0: dependencies: punycode: 2.3.1 - dev: true - /treeverse@1.0.4: - resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + treeverse@1.0.4: {} - /trie-search@2.0.0: - resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + trie-search@2.0.0: dependencies: hasharray: 1.1.2 - dev: false - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-lines@3.0.1: {} - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true + trim-newlines@4.1.1: {} - /triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + triple-beam@1.4.1: {} - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + trough@2.2.0: {} - /ts-api-utils@1.3.0(typescript@5.4.3): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.3.0(typescript@5.4.3): dependencies: typescript: 5.4.3 - dev: true - /ts-easing@0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - dev: false + ts-easing@0.2.0: {} - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true + ts-interface-checker@0.1.13: {} - /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true + ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): dependencies: '@babel/core': 7.24.3 bs-logger: 0.2.6 @@ -16616,14 +20273,8 @@ packages: semver: 7.6.0 typescript: 5.4.3 yargs-parser: 21.1.1 - dev: true - /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 + ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -16632,21 +20283,8 @@ packages: source-map: 0.7.4 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.10 @@ -16663,27 +20301,19 @@ packages: typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true - /ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - dev: true + ts-toolbelt@9.6.0: {} - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 debug: 4.3.4(supports-color@8.1.1) @@ -16691,77 +20321,46 @@ packages: transitivePeerDependencies: - supports-color - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + type-fest@0.20.2: {} - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + type-fest@0.21.3: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false + type-fest@2.19.0: {} - /type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - dev: false + type-fest@4.14.0: {} - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -16769,11 +20368,8 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -16781,53 +20377,34 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.4.3: {} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: false + unicode-emoji-modifier-base@1.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.1.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: {} - /unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.4: dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -16837,133 +20414,91 @@ packages: trough: 2.2.0 vfile: 6.0.1 - /union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} + union@0.5.0: dependencies: qs: 6.12.0 - dev: true - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 - /unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-filename@2.0.1: dependencies: unique-slug: 3.0.0 - /unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-slug@2.0.2: dependencies: imurmurhash: 0.1.4 - /unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-slug@3.0.0: dependencies: imurmurhash: 0.1.4 - /unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: true - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: false - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + unist-util-remove-position@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universal-user-agent@6.0.1: {} - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.2.0: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + universalify@2.0.1: {} - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + unpipe@1.0.0: {} - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + untildify@4.0.0: {} - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - /update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} + update-notifier@6.0.2: dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -16979,125 +20514,80 @@ packages: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 - dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - dev: true + url-join@4.0.1: {} - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true + url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): dependencies: file-loader: 6.2.0(webpack@5.91.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util-deprecate@1.0.2: {} - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + utila@0.4.0: {} - /utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} + utility-types@3.11.0: {} - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + utils-merge@1.0.1: {} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + uuid@8.3.2: {} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: false + uuid@9.0.1: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true + v8-compile-cache-lib@3.0.1: {} - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - dev: true - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - /validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + validate-npm-package-name@3.0.0: dependencies: builtins: 1.0.3 - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate-npm-package-name@5.0.0: dependencies: builtins: 5.0.1 - /value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - dev: false + value-equal@1.0.1: {} - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + vary@1.1.2: {} - /vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + vfile-location@5.0.2: dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 - dev: false - /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - /vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vinyl-file@3.0.0: - resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} - engines: {node: '>=4'} + vinyl-file@3.0.0: dependencies: graceful-fs: 4.2.11 pify: 2.3.0 @@ -17105,9 +20595,7 @@ packages: strip-bom-stream: 2.0.0 vinyl: 2.2.1 - /vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} + vinyl@2.2.1: dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -17116,63 +20604,40 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - /vscode-uri@3.0.6: - resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} - dev: true + vscode-uri@3.0.6: {} - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: false + vscode-uri@3.0.8: {} - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 - dev: true - /walk-up-path@1.0.0: - resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + walk-up-path@1.0.0: {} - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + walker@1.0.8: dependencies: makeerror: 1.0.12 - dev: true - /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false + web-namespaces@2.0.1: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@3.0.1: {} - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: true + webidl-conversions@7.0.0: {} - /webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true + webpack-bundle-analyzer@4.10.1: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.11.3 @@ -17190,24 +20655,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false - /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) @@ -17226,11 +20675,7 @@ packages: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) webpack-merge: 5.10.0 - /webpack-dev-middleware@5.3.4(webpack@5.91.0): - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack-dev-middleware@5.3.4(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -17238,16 +20683,8 @@ packages: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /webpack-dev-middleware@7.1.1(webpack@5.91.0): - resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true + webpack-dev-middleware@7.1.1(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 4.8.0 @@ -17257,18 +20694,7 @@ packages: schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /webpack-dev-server@4.15.2(webpack@5.91.0): - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@4.15.2(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17306,20 +20732,8 @@ packages: - debug - supports-color - utf-8-validate - dev: false - /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17359,27 +20773,15 @@ packages: - supports-color - utf-8-validate - /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + webpack-merge@5.10.0: dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + webpack-sources@3.2.3: {} - /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -17411,70 +20813,47 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.91.0): - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 + webpackbar@5.0.2(webpack@5.91.0): dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + websocket-extensions@0.1.4: {} - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - dev: true + whatwg-mimetype@3.0.0: {} - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -17488,90 +20867,60 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 - dev: true - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: false - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + which@3.0.1: dependencies: isexe: 2.0.0 - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wide-align@1.1.5: dependencies: string-width: 4.2.3 - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + widest-line@3.1.0: dependencies: string-width: 4.2.3 - dev: true - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@4.0.1: dependencies: string-width: 5.1.2 - dev: false - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + wildcard@2.0.1: {} - /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} - engines: {node: '>= 12.0.0'} + winston-transport@4.7.0: dependencies: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - /winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} + winston@3.11.0: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -17585,173 +20934,95 @@ packages: triple-beam: 1.4.1 winston-transport: 4.7.0 - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true + workerpool@6.2.1: {} - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrappy@1.0.2: {} - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + write-file-atomic@3.0.3: dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@4.0.2: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - /write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + write-json-file@5.0.0: dependencies: detect-indent: 7.0.1 is-plain-obj: 4.1.0 sort-keys: 5.0.0 write-file-atomic: 3.0.3 - dev: true - /write-yaml-file@5.0.0: - resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} - engines: {node: '>=16.14'} + write-yaml-file@5.0.0: dependencies: js-yaml: 4.1.0 write-file-atomic: 5.0.1 - dev: true - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@7.5.9: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + ws@8.16.0: {} - /xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - dev: false + xdg-basedir@5.1.0: {} - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true + xml-js@1.6.11: dependencies: sax: 1.3.0 - dev: false - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true + xml-name-validator@4.0.0: {} - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true + xmlchars@2.2.0: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false + yaml@1.10.2: {} - /yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - dev: true + yaml@2.4.1: {} - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.4: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + yargs-unparser@2.0.0: dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 - dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -17760,11 +21031,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -17773,12 +21041,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yeoman-environment@3.19.3: - resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} - engines: {node: '>=12.10.0'} - hasBin: true + yeoman-environment@3.19.3: dependencies: '@npmcli/arborist': 4.3.1 are-we-there-yet: 2.0.0 @@ -17821,14 +21085,7 @@ packages: - bluebird - supports-color - /yeoman-generator@5.10.0(yeoman-environment@3.19.3): - resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} - engines: {node: '>=12.10.0'} - peerDependencies: - yeoman-environment: ^3.2.0 - peerDependenciesMeta: - yeoman-environment: - optional: true + yeoman-generator@5.10.0(yeoman-environment@3.19.3): dependencies: chalk: 4.1.2 dargs: 7.0.0 @@ -17852,23 +21109,12 @@ packages: - mem-fs - supports-color - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true + yn@3.1.1: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: false + yocto-queue@1.0.0: {} - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false + zod@3.22.4: {} - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + zwitch@2.0.4: {} From 189fb328101e03a85a42a2c5b1aba4f0ed12ba54 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 11:36:39 +0100 Subject: [PATCH 290/504] update neovim deploy script to mimic what we do for cursorless-talon (needs to be tested) --- .github/workflows/deploy.yaml | 47 +++++++++++-------------------- scripts/deploy-cursorless-nvim.sh | 41 ++++++++++++++++----------- 2 files changed, 41 insertions(+), 47 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 9b22d7f3c6..4db5203bfe 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -40,29 +40,22 @@ jobs: registryUrl: https://marketplace.visualstudio.com extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }} - push-cursorless-nvim: - name: Push compiled files to talon.nvim plugin + publish-neovim-extension: runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} environment: production - permissions: - deployments: write - contents: write - statuses: write - actions: write - checks: read + env: + CURSORLESS_REPO_ROOT: ${{ github.workspace }} steps: - - uses: fidgetingbits/get-github-app-pat@v1 - id: githubAppAuth - with: - app-id: ${{ vars.BOT_ID }} - app-installation-id: ${{ vars.BOT_INSTALLATION_ID }} - app-private-key: ${{ secrets.BOT_PRIVATE_KEY }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: - repository: hands-free-vim/cursorless.nvim fetch-depth: 0 - # persist-credentials: false - # token: ${{ steps.githubAppAuth.outputs.access-token }} + token: ${{ secrets.CURSORLESS_BOT_TOKEN }} + - run: corepack enable + - uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: pnpm - run: pnpm --color install - run: pnpm --color compile - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build @@ -72,21 +65,15 @@ jobs: run: | echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import env: - GPG_SIGNING_KEY: ${{ secrets.BOT_GPG_SIGNING_KEY }} - + GPG_SIGNING_KEY: ${{ secrets.CURSORLESS_BOT_GPG_SIGNING_KEY }} - name: git config run: | - git config user.name hands-free-vim-bot - git config user.email 165344898+hands-free-vim-bot@users.noreply.github.com - git config user.signingkey D13230A2E34373A0 + git config user.name cursorless-bot + git config user.email 98099035+cursorless-bot@users.noreply.github.com + git config user.signingkey A9387720AFC62221 git config commit.gpgsign true - - run: bash -x scripts/deploy-cursorless-nvim.sh - - name: Push changes - uses: ad-m/github-push-action@master - with: - #github_token: ${{ steps.githubAppAuth.outputs.access-token }} - repository: hands-free-vim/cursorless.nvim - # force_with_lease: true + - name: Push compiled files to cursorless.nvim plugin repo + run: bash -x scripts/deploy-cursorless-nvim.sh push-cursorless-talon: name: Push cursorless-talon subrepo diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh index d7c0e21519..a48c7bdebf 100644 --- a/scripts/deploy-cursorless-nvim.sh +++ b/scripts/deploy-cursorless-nvim.sh @@ -1,32 +1,39 @@ -# This script is used to push the cursorless.nvim -# see https://github.com/orgs/community/discussions/26615 -# see https://github.com/cursorless-dev/cursorless/blob/main/.github/workflows/deploy.yaml -# see https://github.com/hands-free-vim/github-app-test-1/blob/main/.github/workflows/deploy.yaml -# see https://github.com/cursorless-dev/cursorless/blob/main/scripts/build-and-assemble-website.sh - +# This script is used to push to the cursorless.nvim github production repo set -euo pipefail -root_dir=dist/cursorless.nvim -mkdir -p "$root_dir" +# Clone current cursorless.nvim main +mkdir -p dist && cd dist +git clone 'https://github.com/hands-free-vim/cursorless.nvim.git' +cd - + +out_dir=dist/cursorless.nvim + +# Delete the old files +cd "$out_dir" +git rm -r lua/ vim/ assets/ node/ +cd - +# # Merge the build .js and the static files -mkdir workdir -cd workdir +# -mkdir -p "$root_dir/assets/cursorless-snippets" +# no snippets at the moment +mkdir -p "$out_dir/assets/cursorless-snippets" +touch "$out_dir/assets/cursorless-snippets/.gitkeep" # copy .lua and .vim dependencies as well as other static files -cp -r cursorless.nvim/* "$root_dir" +cp -r cursorless.nvim/* "$out_dir" # copy the built .js file -mkdir -p "$root_dir/node/cursorless-neovim/out" -cp packages/cursorless-neovim/package.json "$root_dir/node/cursorless-neovim/" -cp packages/cursorless-neovim/out/index.cjs "$root_dir/node/cursorless-neovim/out/" +mkdir -p "$out_dir/node/cursorless-neovim/out" +cp packages/cursorless-neovim/package.json "$out_dir/node/cursorless-neovim/" +cp packages/cursorless-neovim/out/index.cjs "$out_dir/node/cursorless-neovim/out/" # command-server if done from cursorless mono repo? -# cp -r command-server.nvim "$root_dir/node/" +# cp -r command-server.nvim "$out_dir/node/" -cd "$root_dir" +# Push to cursorless.nvim +cd "$out_dir" git add * git commit -m "Deploy cursorless.nvim" git push From 47533745cf11e3779812f3a68866f874b5ca6a42 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 10:38:27 +0000 Subject: [PATCH 291/504] [pre-commit.ci lite] apply automatic fixes --- scripts/deploy-cursorless-nvim.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh index a48c7bdebf..4f12b4d831 100644 --- a/scripts/deploy-cursorless-nvim.sh +++ b/scripts/deploy-cursorless-nvim.sh @@ -13,9 +13,9 @@ cd "$out_dir" git rm -r lua/ vim/ assets/ node/ cd - -# +# # Merge the build .js and the static files -# +# # no snippets at the moment mkdir -p "$out_dir/assets/cursorless-snippets" From c883dd4a371a36028193c5613f11bf8e73d1e721 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 15:28:14 +0100 Subject: [PATCH 292/504] add the test functions because even if they are not used in a non debug environment it's fine and won't cause any issue --- cursorless.nvim/vim/cursorless.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cursorless.nvim/vim/cursorless.vim b/cursorless.nvim/vim/cursorless.vim index e409c91003..b7bce18aa6 100644 --- a/cursorless.nvim/vim/cursorless.vim +++ b/cursorless.nvim/vim/cursorless.vim @@ -9,4 +9,7 @@ function RegisterFunctions(cursorless_nvim_path) call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/cursorless-neovim', [ \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}}, \ ]) + call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/test-harness', [ + \ {'sync': v:false, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}}, + \ ]) endfunction From 97a344bde1d5fd0f1baa5b3de7ef1a67ef454a3c Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 16:32:36 +0100 Subject: [PATCH 293/504] gitignore --- .gitignore | 4 ++++ cursorless.nvim/assets/cursorless-snippets/.gitkeep | 0 2 files changed, 4 insertions(+) create mode 100644 cursorless.nvim/assets/cursorless-snippets/.gitkeep diff --git a/.gitignore b/.gitignore index 90e5d79bb0..966aec2d0b 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,7 @@ next-env.d.ts # test subset config packages/test-harness/testSubsetGrep.properties + +# neovim symlinks +cursorless.nvim/node/cursorless-neovim +cursorless.nvim/node/test-harness diff --git a/cursorless.nvim/assets/cursorless-snippets/.gitkeep b/cursorless.nvim/assets/cursorless-snippets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From a59c2724996bd4628e1e0a74fed8a48e4885296b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 16:33:19 +0100 Subject: [PATCH 294/504] add pre compiled command-server --- .../node/command-server/out/index.cjs | 311 ++++++++++++++++++ .../node/command-server/package.json | 138 ++++++++ 2 files changed, 449 insertions(+) create mode 100644 cursorless.nvim/node/command-server/out/index.cjs create mode 100644 cursorless.nvim/node/command-server/package.json diff --git a/cursorless.nvim/node/command-server/out/index.cjs b/cursorless.nvim/node/command-server/out/index.cjs new file mode 100644 index 0000000000..e2201d93cf --- /dev/null +++ b/cursorless.nvim/node/command-server/out/index.cjs @@ -0,0 +1,311 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => entry +}); +module.exports = __toCommonJS(src_exports); + +// src/nativeIo.ts +var import_fs = require("fs"); +var import_path2 = require("path"); +var import_constants = require("constants"); + +// src/paths.ts +var import_os = require("os"); +var import_path = require("path"); +function getCommunicationDirPath() { + const info = (0, import_os.userInfo)(); + const suffix = info.uid >= 0 ? `-${info.uid}` : ""; + return (0, import_path.join)((0, import_os.tmpdir)(), `neovim-command-server${suffix}`); +} +function getSignalDirPath() { + return (0, import_path.join)(getCommunicationDirPath(), "signals"); +} +function getRequestPath() { + return (0, import_path.join)(getCommunicationDirPath(), "request.json"); +} +function getResponsePath() { + return (0, import_path.join)(getCommunicationDirPath(), "response.json"); +} + +// src/nativeIo.ts +var import_os2 = require("os"); +var import_promises = require("fs/promises"); + +// src/constants.ts +var NEOVIM_COMMAND_TIMEOUT_MS = 3e3; + +// src/nativeIo.ts +var InboundSignal = class { + constructor(path) { + this.path = path; + } + /** + * Gets the current version of the signal. This version string changes every + * time the signal is emitted, and can be used to detect whether signal has + * been emitted between two timepoints. + * @returns The current signal version or null if the signal file could not be + * found + */ + async getVersion() { + try { + return (await (0, import_promises.stat)(this.path)).mtimeMs.toString(); + } catch (err) { + if (err.code !== "ENOENT") { + throw err; + } + return null; + } + } +}; +var NativeIo = class { + constructor() { + this.responseFile = null; + } + async initialize() { + const communicationDirPath = getCommunicationDirPath(); + console.warn(`Creating communication dir ${communicationDirPath}`); + (0, import_fs.mkdirSync)(communicationDirPath, { recursive: true, mode: 504 }); + const stats = (0, import_fs.lstatSync)(communicationDirPath); + const info = (0, import_os2.userInfo)(); + if (!stats.isDirectory() || stats.isSymbolicLink() || stats.mode & import_constants.S_IWOTH || // On Windows, uid < 0, so we don't worry about it for simplicity + info.uid >= 0 && stats.uid !== info.uid) { + throw new Error( + `Refusing to proceed because of invalid communication dir ${communicationDirPath}` + ); + } + } + async prepareResponse() { + if (this.responseFile) { + throw new Error("response is already locked"); + } + this.responseFile = await (0, import_promises.open)(getResponsePath(), "wx"); + } + async closeResponse() { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.close(); + this.responseFile = null; + } + /** + * Reads the JSON-encoded request from the request file, unlinking the file + * after reading. + * @returns A promise that resolves to a Response object + */ + async readRequest() { + const requestPath = getRequestPath(); + const stats = await (0, import_promises.stat)(requestPath); + const request = JSON.parse(await (0, import_promises.readFile)(requestPath, "utf-8")); + if (Math.abs(stats.mtimeMs - (/* @__PURE__ */ new Date()).getTime()) > NEOVIM_COMMAND_TIMEOUT_MS) { + throw new Error( + "Request file is older than timeout; refusing to execute command" + ); + } + return request; + } + /** + * Writes the response to the response file as JSON. + * @param file The file to write to + * @param response The response object to JSON-encode and write to disk + */ + async writeResponse(response) { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.write(`${JSON.stringify(response)} +`); + } + getInboundSignal(name) { + const signalDir = getSignalDirPath(); + const path = (0, import_path2.join)(signalDir, name); + return new InboundSignal(path); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts +var import_node_events = require("node:events"); +var NeovimRegistry = class { + constructor() { + this.apis = /* @__PURE__ */ new Map(); + this.commands = /* @__PURE__ */ new Map(); + this.eventEmitter = new import_node_events.EventEmitter(); + } + registerExtensionApi(extensionId, api) { + this.apis.set(extensionId, api); + } + getExtensionApi(extensionId) { + return this.apis.get(extensionId); + } + registerCommand(commandId, callback) { + this.commands.set(commandId, callback); + } + async executeCommand(commandId, ...rest) { + return await this.commands.get(commandId)(...rest); + } + onEvent(eventName, listener) { + return this.eventEmitter.on(eventName, listener); + } + emitEvent(eventName, ...args) { + return this.eventEmitter.emit(eventName, ...args); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/index.ts +function getNeovimRegistry() { + if (global._neovimRegistry == null) { + global._neovimRegistry = new NeovimRegistry(); + } + return global._neovimRegistry; +} + +// src/commandRunner.ts +var CommandRunner = class { + constructor(io) { + this.io = io; + this.reloadConfiguration = this.reloadConfiguration.bind(this); + this.runCommand = this.runCommand.bind(this); + this.reloadConfiguration(); + } + reloadConfiguration() { + } + /** + * Reads a command from the request file and executes it. Writes information + * about command execution to the result of the command to the response file, + * If requested, will wait for command to finish, and can also write command + * output to response file. See also documentation for Request / Response + * types. + */ + async runCommand() { + console.warn("------------------------------------------------------------------------------"); + await this.io.prepareResponse(); + let request; + try { + request = await this.io.readRequest(); + } catch (err) { + await this.io.closeResponse(); + throw err; + } + const { commandId, args, uuid, returnCommandOutput, waitForFinish } = request; + const warnings = []; + try { + if (!commandId.match(this.allowRegex)) { + throw new Error("Command not in allowList"); + } + if (this.denyRegex != null && commandId.match(this.denyRegex)) { + throw new Error("Command in denyList"); + } + const commandPromise = getNeovimRegistry().executeCommand(commandId, ...args); + let commandReturnValue = null; + if (returnCommandOutput) { + commandReturnValue = await commandPromise; + } else if (waitForFinish) { + await commandPromise; + } + await this.io.writeResponse({ + error: null, + uuid, + returnValue: commandReturnValue, + warnings + }); + } catch (err) { + await this.io.writeResponse({ + error: err.message, + uuid, + warnings + }); + } + await this.io.closeResponse(); + } +}; + +// src/singletons/commandRunner.singleton.ts +var cmdRunner_; +function injectCommandRunner(cmdRunner) { + cmdRunner_ = cmdRunner; +} +function commandRunner() { + if (cmdRunner_ == null) { + throw Error("Tried to access CommandRunner before it was injected"); + } + return cmdRunner_; +} + +// src/extension.ts +async function activate() { + const io = new NativeIo(); + await io.initialize(); + const commandRunner2 = new CommandRunner(io); + let focusedElementType; + injectCommandRunner(commandRunner2); + return { + /** + * The type of the focused element in vscode at the moment of the command being executed. + */ + getFocusedElementType: () => focusedElementType, + /** + * These signals can be used as a form of IPC to indicate that an event has + * occurred. + */ + signals: { + /** + * This signal is emitted by the voice engine to indicate that a phrase has + * just begun execution. + */ + prePhrase: io.getInboundSignal("prePhrase") + } + }; +} + +// src/index.ts +function entry(plugin) { + plugin.setOptions({ dev: false }); + plugin.registerFunction("CommandServerTest", () => test(plugin), { + sync: false + }); + plugin.registerFunction( + "CommandServerLoadExtension", + async () => await loadExtension(plugin), + { sync: false } + ); + plugin.registerFunction( + "CommandServerRunCommand", + () => runCommand(), + { sync: false } + ); +} +function test(plugin) { + const currentDate = /* @__PURE__ */ new Date(); + const currentDateStr = currentDate.toLocaleString(); + console.warn("test(): " + currentDateStr); +} +async function loadExtension(plugin) { + console.warn("loadExtension(command-server): start"); + await activate(); + console.warn("loadExtension(command-server): done"); +} +async function runCommand() { + console.warn("runCommand(command-server): start"); + commandRunner().runCommand(); + console.warn("runCommand(command-server): done"); +} +//# sourceMappingURL=index.cjs.map diff --git a/cursorless.nvim/node/command-server/package.json b/cursorless.nvim/node/command-server/package.json new file mode 100644 index 0000000000..39b8379d10 --- /dev/null +++ b/cursorless.nvim/node/command-server/package.json @@ -0,0 +1,138 @@ +{ + "name": "command-server", + "displayName": "Command server", + "description": "Exposes a file-based RPC API for running VSCode commands", + "publisher": "pokey", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/pokey/command-server" + }, + "version": "0.9.1", + "categories": [ + "Other" + ], + "activationEvents": [ + "*" + ], + "main": "./out/index.cjs", + "private": true, + "extensionKind": [ + "ui" + ], + "capabilities": { + "untrustedWorkspaces": { + "supported": "limited", + "description": "Untrusted workspaces can't override allowList / denyList", + "restrictedConfigurations": [ + "allowList", + "denyList" + ] + } + }, + "contributes": { + "commands": [ + { + "command": "command-server.runCommand", + "title": "Read command description from a file and execute the command" + }, + { + "command": "command-server.getFocusedElementType", + "title": "Returns the type of the currently focused element in vscode" + } + ], + "keybindings": [ + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "terminalFocus", + "args": "terminal" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "terminalFocus", + "args": "terminal" + } + ], + "configuration": { + "title": "Command server", + "properties": { + "command-server.allowList": { + "type": "array", + "default": [ + "*" + ], + "description": "Commands to allow. Supports simple glob syntax" + }, + "command-server.denyList": { + "type": "array", + "default": [], + "description": "Commands to deny. Supports simple glob syntax" + }, + "command-server.backgroundWindowProtection": { + "type": "boolean", + "default": false, + "description": "Whether to enable protection against background windows executing a command" + } + } + } + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "devDependencies": { + "@types/glob": "^7.1.3", + "@types/mocha": "8.0.4", + "@types/node": "^18.19.22", + "@types/rimraf": "^3.0.0", + "@types/vscode": "^1.53.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", + "esbuild": "^0.20.2", + "eslint": "^7.15.0", + "glob": "^7.1.6", + "mocha": "8.1.3", + "typescript": "^4.1.2", + "vscode-test": "^1.4.1", + "neovim": "^5.0.1" + }, + "dependencies": { + "@cursorless/neovim-registry": "link:..\\cursorless_fork\\packages\\neovim-registry", + "minimatch": "^3.0.4", + "rimraf": "^3.0.2" + } +} From f09a364772c9fa68726d0f14dbeb249ebcd54cab Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 16:35:05 +0100 Subject: [PATCH 295/504] build: fix deploy script to include command server --- scripts/deploy-cursorless-nvim.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh index a48c7bdebf..870d21ca25 100644 --- a/scripts/deploy-cursorless-nvim.sh +++ b/scripts/deploy-cursorless-nvim.sh @@ -10,7 +10,7 @@ out_dir=dist/cursorless.nvim # Delete the old files cd "$out_dir" -git rm -r lua/ vim/ assets/ node/ +git rm -r README.md assets/ lua/ vim/ node/ cd - # @@ -21,17 +21,19 @@ cd - mkdir -p "$out_dir/assets/cursorless-snippets" touch "$out_dir/assets/cursorless-snippets/.gitkeep" -# copy .lua and .vim dependencies as well as other static files -cp -r cursorless.nvim/* "$out_dir" +# copy .lua and .vim Dependencies as well as other static files +cp -r cursorless.nvim/README.md "$out_dir/" +cp -r cursorless.nvim/assets "$out_dir/" +cp -r cursorless.nvim/lua "$out_dir/" +cp -r cursorless.nvim/vim "$out_dir/" +# command-server +cp -r cursorless.nvim/node "$out_dir/" # copy the built .js file mkdir -p "$out_dir/node/cursorless-neovim/out" cp packages/cursorless-neovim/package.json "$out_dir/node/cursorless-neovim/" cp packages/cursorless-neovim/out/index.cjs "$out_dir/node/cursorless-neovim/out/" -# command-server if done from cursorless mono repo? -# cp -r command-server.nvim "$out_dir/node/" - # Push to cursorless.nvim cd "$out_dir" git add * From d385f4abc66dc4a216ce703cc032e329f6b3b3c9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 16:35:31 +0100 Subject: [PATCH 296/504] docs: add contributing docs for neovim --- docs/contributing/cursorless-in-neovim.md | 51 +++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/contributing/cursorless-in-neovim.md diff --git a/docs/contributing/cursorless-in-neovim.md b/docs/contributing/cursorless-in-neovim.md new file mode 100644 index 0000000000..b7ee75b076 --- /dev/null +++ b/docs/contributing/cursorless-in-neovim.md @@ -0,0 +1,51 @@ +# Initial setup + +Install all the common prerequisites. See [CONTRIBUTING.md](./CONTRIBUTING.md). + +1. Build the VSCode Cursorless extension +2. Run the VSCode Cursorless extension tests + +Install all the neovim prerequisites. See [cursorless.nvim](https://github.com/hands-free-vim/cursorless.nvim/tree/main#prerequisites). + +3. Install the production cursorless.nvim and its dependencies +4. Confirm production cursorless.nvim is working in neovim + +Point your neovim configuration to use manually built plugin instead. You might have to locate where your neovim configuration are. + +5. Change the cursorless.nvim being used by your neovim configuration + +Disable the production cursorless.nvim by commenting out the line containing `'hands-free-vim/cursorless.nvim'`. Enable the debug cursorless.nvim by adding it to the runtimepath. eg: + +```lua +require('lazy').setup({ + ... + 'hands-free-vim/talon.nvim', + -- production cursorless.nvim + -- 'hands-free-vim/cursorless.nvim', + ... +}) + +-- debug cursorless.nvim +vim.o.runtimepath = vim.o.runtimepath .. "," .. "C:\\path\\to\\cursorless\\cursorless.nvim" +``` + +6. Create symlinks for the node generated plugins: + +On Windows: + +``` +mklink /D C:\path\to\cursorless\cursorless.nvim\node\cursorless-neovim C:\path\to\cursorless\packages\cursorless-neovim +mklink /D C:\path\to\cursorless\cursorless.nvim\node\test-harness C:\path\to\cursorless\packages\test-harness +``` + +7. Add nvim executable path to your PATH + +On Windows, open the Control Panel, navigate to `User Accounts > User Accounts`. Click on `Change my environment variables`. In the `User variables`, e.g. add the entry `C:\Program Files\Neovim\bin` to your `Path`. + +# Running / testing extension locally + +In order to test out your local version of the extension or to run unit tests locally, you need to run the extension in debug mode. To do so you need to run the `workbench.action.debug.selectandstart` command in VSCode and then select either "Run neovim extension" or "Run neovim extension tests". + +The debug logs are written in `C:\path\to\cursorless\packages\cursorless-neovim\out\nvim_node.log`. + +NOTE: This will spawn a standalone nvim instance that is independent of VSCode. Consequently after you're done debugging, you need to close nvim. From 6f3442efe219b1d250e189e3c2dde03336bbc5e5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:06:37 +0100 Subject: [PATCH 297/504] refactor: change the command-server shortcut to make it less likely to be used --- cursorless.nvim/lua/cursorless/init.lua | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index b233f1597b..5981b1260e 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -61,31 +61,31 @@ local function configure_command_server_shortcut() -- https://www.reddit.com/r/neovim/comments/pt92qn/mapping_cd_in_terminal_mode/ vim.api.nvim_set_keymap( 'i', - '', + '', 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) vim.api.nvim_set_keymap( 'n', - '', + '', 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) vim.api.nvim_set_keymap( 'c', - '', + '', 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) vim.api.nvim_set_keymap( 'v', - '', + '', 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) vim.api.nvim_set_keymap( 't', - '', + '', 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) @@ -94,7 +94,7 @@ local function configure_command_server_shortcut() -- like calling select_range() as otherwise it would fail for now -- vim.api.nvim_set_keymap( -- 't', - -- '', + -- '', -- [[lua vim.fn.CommandServerRunCommand()]], -- { noremap = true } -- ) @@ -102,16 +102,16 @@ local function configure_command_server_shortcut() -- https://stackoverflow.com/questions/4416512/why-use-esc-in-vim -- https://vim.fandom.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings -- vim.cmd([[ - -- inoremap :call CommandServerRunCommand("i") + -- inoremap :call CommandServerRunCommand("i") -- ]]) -- vim.cmd([[ - -- nnoremap :call CommandServerRunCommand("n") - -- cnoremap :call CommandServerRunCommand("c") - -- vnoremap :call CommandServerRunCommand("v") + -- nnoremap :call CommandServerRunCommand("n") + -- cnoremap :call CommandServerRunCommand("c") + -- vnoremap :call CommandServerRunCommand("v") -- ]]) -- -- https://vi.stackexchange.com/questions/4919/exit-from-terminal-mode-in-neovim-vim-8 -- vim.cmd([[ - -- tnoremap :call CommandServerRunCommand("t") + -- tnoremap :call CommandServerRunCommand("t") -- ]]) end From d442e6eaf5182f1374b4b7c7ddbd5a0f45662234 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:11:51 +0100 Subject: [PATCH 298/504] fix: remove the clipboard since it want to be testing after the action --- data/fixtures/recorded/actions/copySecondToken.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/data/fixtures/recorded/actions/copySecondToken.yml b/data/fixtures/recorded/actions/copySecondToken.yml index 67f1bbd750..1bc271a3fa 100644 --- a/data/fixtures/recorded/actions/copySecondToken.yml +++ b/data/fixtures/recorded/actions/copySecondToken.yml @@ -17,7 +17,6 @@ initialState: selections: - anchor: {line: 1, character: 0} active: {line: 1, character: 0} - clipboard: value marks: {} finalState: documentContents: | From 9ca24a3856e15fc6dd8a6958ca3e1e9904820c92 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:31:59 +0100 Subject: [PATCH 299/504] build: ignore copy to clipboard test for now --- .../cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts index f1ed8b423f..7e0c88f6b5 100644 --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts @@ -344,6 +344,11 @@ function isFailingFixture(name: string, fixture: TestCaseFixtureLegacy) { return true; } + // "recorded/actions/copySecondToken" -> wrong fixture.finalState.clipboard + if (action === "copyToClipboard") { + return true; + } + // "recorded/lineEndings/*" -> fixture.finalState.documentContents contains \n instead of \r\n if (name.includes("/lineEndings/")) { return true; From c1640162397baabcbabfef63b97107ef8a507c4d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:32:45 +0100 Subject: [PATCH 300/504] build: attempt to fix the packages versions to match vscode --- packages/cursorless-neovim-e2e/package.json | 4 +- packages/cursorless-neovim/package.json | 10 +- packages/neovim-common/package.json | 6 +- pnpm-lock.yaml | 19042 ++++++++---------- 4 files changed, 7899 insertions(+), 11163 deletions(-) diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/cursorless-neovim-e2e/package.json index 7363b44551..0233ee4096 100644 --- a/packages/cursorless-neovim-e2e/package.json +++ b/packages/cursorless-neovim-e2e/package.json @@ -22,8 +22,8 @@ "@cursorless/common": "workspace:*", "@cursorless/neovim-common": "workspace:*", "@cursorless/neovim-registry": "workspace:*", - "@types/chai": "4.3.14", - "@types/js-yaml": "4.0.9", + "@types/chai": "^4.3.14", + "@types/js-yaml": "^4.0.9", "@types/lodash": "4.17.0", "@types/sinon": "^17.0.3" }, diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index fc326af848..aaa643df86 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -31,12 +31,12 @@ "@cursorless/neovim-registry": "workspace:*" }, "devDependencies": { - "@types/chai": "4.3.14", - "@types/js-yaml": "^4.0.2", - "@types/lodash": "4.14.181", - "@types/uuid": "8.3.4", + "@types/chai": "^4.3.14", + "@types/js-yaml": "^4.0.9", + "@types/lodash": "4.17.0", + "@types/uuid": "^9.0.8", "lodash": "^4.17.21", "neovim": "5.1.0", - "vscode-uri": "3.0.6" + "vscode-uri": "^3.0.8" } } diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json index 67897ced9c..5d54834164 100644 --- a/packages/neovim-common/package.json +++ b/packages/neovim-common/package.json @@ -27,11 +27,11 @@ "@cursorless/common": "workspace:*", "@cursorless/neovim-registry": "workspace:*", "@types/lodash": "4.17.0", - "@types/uuid": "9.0.8", - "@types/vscode": "1.88.0", + "@types/uuid": "^9.0.8", + "@types/vscode": "1.75.1", "lodash": "^4.17.21", "neovim": "5.1.0", - "vscode-uri": "3.0.8" + "vscode-uri": "^3.0.8" }, "type": "module" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd3f93486e..3f0e384f6f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -328,17 +328,17 @@ importers: version: link:../neovim-registry devDependencies: '@types/chai': - specifier: 4.3.14 + specifier: ^4.3.14 version: 4.3.14 '@types/js-yaml': - specifier: ^4.0.2 + specifier: ^4.0.9 version: 4.0.9 '@types/lodash': - specifier: 4.14.181 - version: 4.14.181 + specifier: 4.17.0 + version: 4.17.0 '@types/uuid': - specifier: 8.3.4 - version: 8.3.4 + specifier: ^9.0.8 + version: 9.0.8 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -346,8 +346,8 @@ importers: specifier: 5.1.0 version: 5.1.0 vscode-uri: - specifier: 3.0.6 - version: 3.0.6 + specifier: ^3.0.8 + version: 3.0.8 packages/cursorless-neovim-e2e: dependencies: @@ -361,10 +361,10 @@ importers: specifier: workspace:* version: link:../neovim-registry '@types/chai': - specifier: 4.3.14 + specifier: ^4.3.14 version: 4.3.14 '@types/js-yaml': - specifier: 4.0.9 + specifier: ^4.0.9 version: 4.0.9 '@types/lodash': specifier: 4.17.0 @@ -705,11 +705,11 @@ importers: specifier: 4.17.0 version: 4.17.0 '@types/uuid': - specifier: 9.0.8 + specifier: ^9.0.8 version: 9.0.8 '@types/vscode': - specifier: 1.88.0 - version: 1.88.0 + specifier: 1.75.1 + version: 1.75.1 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -717,7 +717,7 @@ importers: specifier: 5.1.0 version: 5.1.0 vscode-uri: - specifier: 3.0.8 + specifier: ^3.0.8 version: 3.0.8 packages/neovim-registry: @@ -769,9326 +769,634 @@ importers: packages: - '@aashutoshrathi/word-wrap@1.2.6': + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - '@algolia/autocomplete-core@1.9.3': + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: false - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) + search-insights: 2.13.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + dev: false - '@algolia/autocomplete-preset-algolia@1.9.3': + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) + '@algolia/client-search': 4.22.1 + algoliasearch: 4.22.1 + dev: false - '@algolia/autocomplete-shared@1.9.3': + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/client-search': 4.22.1 + algoliasearch: 4.22.1 + dev: false - '@algolia/cache-browser-local-storage@4.22.1': + /@algolia/cache-browser-local-storage@4.22.1: resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + dependencies: + '@algolia/cache-common': 4.22.1 + dev: false - '@algolia/cache-common@4.22.1': + /@algolia/cache-common@4.22.1: resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + dev: false - '@algolia/cache-in-memory@4.22.1': + /@algolia/cache-in-memory@4.22.1: resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + dependencies: + '@algolia/cache-common': 4.22.1 + dev: false - '@algolia/client-account@4.22.1': + /@algolia/client-account@4.22.1: resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/client-search': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-analytics@4.22.1': + /@algolia/client-analytics@4.22.1: resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/client-search': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-common@4.22.1': + /@algolia/client-common@4.22.1: resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + dependencies: + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-personalization@4.22.1': + /@algolia/client-personalization@4.22.1: resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: false - '@algolia/client-search@4.22.1': + /@algolia/client-search@4.22.1: resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: false - '@algolia/events@4.0.1': + /@algolia/events@4.0.1: resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + dev: false - '@algolia/logger-common@4.22.1': + /@algolia/logger-common@4.22.1: resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + dev: false - '@algolia/logger-console@4.22.1': + /@algolia/logger-console@4.22.1: resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + dependencies: + '@algolia/logger-common': 4.22.1 + dev: false - '@algolia/requester-browser-xhr@4.22.1': + /@algolia/requester-browser-xhr@4.22.1: resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + dependencies: + '@algolia/requester-common': 4.22.1 + dev: false - '@algolia/requester-common@4.22.1': + /@algolia/requester-common@4.22.1: resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + dev: false - '@algolia/requester-node-http@4.22.1': + /@algolia/requester-node-http@4.22.1: resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + dependencies: + '@algolia/requester-common': 4.22.1 + dev: false - '@algolia/transporter@4.22.1': + /@algolia/transporter@4.22.1: resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + dependencies: + '@algolia/cache-common': 4.22.1 + '@algolia/logger-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + dev: false - '@alloc/quick-lru@5.2.0': + /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + dev: true - '@ampproject/remapping@2.3.0': + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.2': + /@babel/code-frame@7.24.2: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - '@babel/compat-data@7.24.1': + /@babel/compat-data@7.24.1: resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.3': + /@babel/core@7.24.3: resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/generator@7.24.1': + /@babel/generator@7.24.1: resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-compilation-targets@7.23.6': + /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.1': + /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15': + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1': + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + debug: 4.3.4(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color - '@babel/helper-environment-visitor@7.22.20': + /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': + /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - '@babel/helper-hoist-variables@7.22.5': + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.23.0': + /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.24.3': + /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-module-transforms@7.23.3': + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-optimise-call-expression@7.22.5': + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-plugin-utils@7.24.0': + /@babel/helper-plugin-utils@7.24.0: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.22.20': + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-replace-supers@7.24.1': + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-simple-access@7.22.5': + /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-split-export-declaration@7.22.6': + /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-string-parser@7.24.1': + /@babel/helper-string-parser@7.24.1: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': + /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': + /@babel/helper-wrap-function@7.22.20: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - '@babel/helpers@7.24.1': + /@babel/helpers@7.24.1: resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color - '@babel/highlight@7.24.2': + /@babel/highlight@7.24.2: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 - '@babel/parser@7.24.1': + /@babel/parser@7.24.1: resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 - '@babel/plugin-syntax-async-generators@7.8.4': + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-bigint@7.8.3': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true - '@babel/plugin-syntax-class-properties@7.12.13': + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block@7.14.5': + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import@7.8.3': + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3': + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.24.1': + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.24.1': + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-meta@7.10.4': + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings@7.8.3': + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.24.1': + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator@7.10.4': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread@7.8.3': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-chaining@7.8.3': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object@7.14.5': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-top-level-await@7.14.5': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.24.1': + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.24.1': - resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.24.1': - resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.24.1': - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.24.1': - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.24.1': - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.24.1': - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.24.1': - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.24.1': - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-constant-elements@7.24.1': - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.24.1': - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.22.5': - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.23.4': - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.24.1': - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.24.3': - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.24.1': - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.24.1': - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.24.3': - resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.24.1': - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime-corejs3@7.24.1': - resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.24.1': - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@docsearch/css@3.6.0': - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - - '@docsearch/react@3.6.0': - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - - '@docusaurus/core@3.1.1': - resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/cssnano-preset@3.1.1': - resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} - engines: {node: '>=18.0'} - - '@docusaurus/logger@3.1.1': - resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} - engines: {node: '>=18.0'} - - '@docusaurus/mdx-loader@3.1.1': - resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/module-type-aliases@3.1.1': - resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} - peerDependencies: - react: '*' - react-dom: '*' - - '@docusaurus/plugin-content-blog@3.1.1': - resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-content-docs@3.1.1': - resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-content-pages@3.1.1': - resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-debug@3.1.1': - resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-analytics@3.1.1': - resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-gtag@3.1.1': - resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-google-tag-manager@3.1.1': - resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/plugin-sitemap@3.1.1': - resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/preset-classic@3.1.1': - resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/react-loadable@5.5.2': - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' - - '@docusaurus/theme-classic@3.1.1': - resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-common@3.1.1': - resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-search-algolia@3.1.1': - resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/theme-translations@3.1.1': - resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} - engines: {node: '>=18.0'} - - '@docusaurus/types@3.1.1': - resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@docusaurus/utils-common@3.1.1': - resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - - '@docusaurus/utils-validation@3.1.1': - resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} - engines: {node: '>=18.0'} - - '@docusaurus/utils@3.1.1': - resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - - '@effect/schema@0.56.1': - resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} - peerDependencies: - effect: 2.0.0-next.62 - fast-check: ^3.13.2 - - '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3': - resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} - engines: {node: '>=10.13.0'} - peerDependencies: - html-webpack-plugin: '>=5' - webpack: '>=5' - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@fortawesome/fontawesome-common-types@6.5.1': - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} - engines: {node: '>=6'} - - '@fortawesome/fontawesome-svg-core@6.5.1': - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} - engines: {node: '>=6'} - - '@fortawesome/free-solid-svg-icons@6.5.1': - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} - engines: {node: '>=6'} - - '@fortawesome/react-fontawesome@0.2.0': - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} - peerDependencies: - '@fortawesome/fontawesome-svg-core': ~1 || ~6 - react: '>=16.3 || 18' - - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - - '@gwhitney/detect-indent@7.0.1': - resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} - engines: {node: '>=12.20'} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.2': - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@leichtgewicht/ip-codec@2.0.4': - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - - '@mdx-js/loader@3.0.1': - resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} - peerDependencies: - webpack: '>=5' - - '@mdx-js/mdx@3.0.1': - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} - - '@mdx-js/react@3.0.1': - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16 || 18' - - '@msgpack/msgpack@2.8.0': - resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} - engines: {node: '>= 10'} - - '@next/env@14.1.4': - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - - '@next/eslint-plugin-next@14.1.4': - resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} - - '@next/mdx@14.1.4': - resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} - peerDependencies: - '@mdx-js/loader': '>=0.15.0' - '@mdx-js/react': '>=0.15.0' - peerDependenciesMeta: - '@mdx-js/loader': - optional: true - '@mdx-js/react': - optional: true - - '@next/swc-darwin-arm64@14.1.4': - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@14.1.4': - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@14.1.4': - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.1.4': - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@14.1.4': - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.1.4': - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@14.1.4': - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-ia32-msvc@14.1.4': - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.1.4': - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@npmcli/arborist@4.3.1': - resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true - - '@npmcli/fs@1.1.1': - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/fs@3.1.0': - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/git@2.1.0': - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} - - '@npmcli/git@4.1.0': - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/installed-package-contents@1.0.7': - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} - engines: {node: '>= 10'} - hasBin: true - - '@npmcli/installed-package-contents@2.0.2': - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - '@npmcli/map-workspaces@2.0.4': - resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/metavuln-calculator@2.0.0': - resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - - '@npmcli/move-file@1.1.2': - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - - '@npmcli/name-from-folder@1.0.1': - resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} - - '@npmcli/node-gyp@1.0.3': - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} - - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@1.0.1': - resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} - - '@npmcli/promise-spawn@1.3.2': - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} - - '@npmcli/promise-spawn@6.0.2': - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/run-script@2.0.0': - resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} - - '@npmcli/run-script@6.0.2': - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@octokit/auth-token@2.5.0': - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} - - '@octokit/core@3.6.0': - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} - - '@octokit/endpoint@6.0.12': - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} - - '@octokit/graphql@4.8.0': - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} - - '@octokit/openapi-types@12.11.0': - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - - '@octokit/plugin-paginate-rest@2.21.3': - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} - peerDependencies: - '@octokit/core': '>=2' - - '@octokit/plugin-request-log@1.0.4': - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/plugin-rest-endpoint-methods@5.16.2': - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/request-error@2.1.0': - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} - - '@octokit/request@5.6.3': - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} - - '@octokit/rest@18.12.0': - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} - - '@octokit/types@6.41.0': - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pnpm/cli-meta@5.0.1': - resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} - engines: {node: '>=16.14'} - - '@pnpm/cli-utils@2.0.9': - resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/config@18.4.0': - resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} - engines: {node: '>=16.14'} - - '@pnpm/constants@6.2.0': - resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} - engines: {node: '>=14.6'} - - '@pnpm/constants@7.1.0': - resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} - engines: {node: '>=16.14'} - - '@pnpm/constants@7.1.1': - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - - '@pnpm/constants@8.0.0': - resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} - engines: {node: '>=18.12'} - - '@pnpm/core-loggers@10.0.0': - resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/core-loggers@9.0.1': - resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/crypto.base32-hash@3.0.0': - resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} - engines: {node: '>=18.12'} - - '@pnpm/dedupe.issues-renderer@1.0.0': - resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} - engines: {node: '>=16.14'} - - '@pnpm/dedupe.types@1.0.0': - resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} - engines: {node: '>=16.14'} - - '@pnpm/default-reporter@12.2.3': - resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/dependency-path@3.0.0': - resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} - engines: {node: '>=18.12'} - - '@pnpm/error@4.0.1': - resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} - engines: {node: '>=14.6'} - - '@pnpm/error@5.0.1': - resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} - engines: {node: '>=16.14'} - - '@pnpm/error@5.0.3': - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} - - '@pnpm/error@6.0.0': - resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} - engines: {node: '>=18.12'} - - '@pnpm/fetch@8.0.0': - resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/fetcher-base@14.0.1': - resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} - engines: {node: '>=16.14'} - - '@pnpm/fetching-types@6.0.0': - resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} - engines: {node: '>=18.12'} - - '@pnpm/find-workspace-dir@6.0.3': - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} - - '@pnpm/find-workspace-packages@6.0.9': - resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} - engines: {node: '>=16.14'} - - '@pnpm/fs.find-packages@2.0.1': - resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} - engines: {node: '>=16.14'} - - '@pnpm/git-resolver@9.0.1': - resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} - engines: {node: '>=18.12'} - - '@pnpm/git-utils@1.0.0': - resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} - engines: {node: '>=16.14'} - - '@pnpm/git-utils@2.0.0': - resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} - engines: {node: '>=18.12'} - - '@pnpm/graceful-fs@3.0.0': - resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} - engines: {node: '>=16.14'} - - '@pnpm/hooks.types@1.0.1': - resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} - engines: {node: '>=16.14'} - - '@pnpm/hosted-git-info@1.0.0': - resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} - engines: {node: '>=10'} - - '@pnpm/lockfile-file@9.0.2': - resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/lockfile-types@5.1.0': - resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} - engines: {node: '>=16.14'} - - '@pnpm/lockfile-types@6.0.0': - resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} - engines: {node: '>=18.12'} - - '@pnpm/lockfile-utils@10.0.0': - resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} - engines: {node: '>=18.12'} - - '@pnpm/logger@5.0.0': - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} - - '@pnpm/manifest-utils@5.0.1': - resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} - engines: {node: '>=16.14'} - - '@pnpm/matcher@5.0.0': - resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} - engines: {node: '>=16.14'} - - '@pnpm/merge-lockfile-changes@6.0.0': - resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} - engines: {node: '>=18.12'} - - '@pnpm/meta-updater@1.0.0': - resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} - engines: {node: '>=10.12'} - hasBin: true - - '@pnpm/network.agent@1.0.1': - resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.config@1.0.1': - resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.proxy-agent@1.0.1': - resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} - engines: {node: '>=12.22.0'} - - '@pnpm/node-fetch@1.0.0': - resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} - engines: {node: ^10.17 || >=12.3} - - '@pnpm/npm-conf@2.2.0': - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} - engines: {node: '>=12'} - - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} - - '@pnpm/package-is-installable@8.0.2': - resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/pick-fetcher@3.0.0': - resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} - engines: {node: '>=18.12'} - - '@pnpm/pnpmfile@5.0.7': - resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/ramda@0.28.1': - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - - '@pnpm/read-project-manifest@5.0.1': - resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} - engines: {node: '>=16.14'} - - '@pnpm/render-peer-issues@4.0.1': - resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} - engines: {node: '>=16.14'} - - '@pnpm/resolver-base@10.0.1': - resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} - engines: {node: '>=16.14'} - - '@pnpm/resolver-base@12.0.0': - resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} - engines: {node: '>=18.12'} - - '@pnpm/store-controller-types@15.0.1': - resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} - engines: {node: '>=16.14'} - - '@pnpm/text.comments-parser@2.0.0': - resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} - engines: {node: '>=16.14'} - - '@pnpm/types@10.0.0': - resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} - engines: {node: '>=18.12'} - - '@pnpm/types@9.1.0': - resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} - engines: {node: '>=16.14'} - - '@pnpm/types@9.4.2': - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - - '@pnpm/util.lex-comparator@1.0.0': - resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} - engines: {node: '>=12.22.0'} - - '@pnpm/util.lex-comparator@3.0.0': - resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} - engines: {node: '>=18.12'} - - '@pnpm/write-project-manifest@5.0.1': - resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} - engines: {node: '>=16.14'} - - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - - '@rushstack/eslint-patch@1.8.0': - resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sigstore/bundle@1.1.0': - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/sign@1.0.0': - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/tuf@1.0.3': - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@sinonjs/commons@2.0.0': - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@sinonjs/fake-timers@11.2.2': - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} - - '@sinonjs/samsam@8.0.0': - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} - - '@sinonjs/text-encoding@0.7.2': - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - - '@slorber/remark-comment@1.0.0': - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} - - '@slorber/static-site-generator-webpack-plugin@4.0.7': - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} - - '@svgr/babel-plugin-add-jsx-attribute@6.5.1': - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@6.5.1': - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@6.5.1': - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@6.5.1': - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@6.5.1': - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@6.5.1': - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/core@6.5.1': - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} - - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} - - '@svgr/hast-util-to-babel-ast@6.5.1': - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} - - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} - - '@svgr/plugin-jsx@6.5.1': - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 - - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@6.5.1': - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/webpack@6.5.1': - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} - - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} - - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@testing-library/dom@9.3.4': - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} - - '@testing-library/react@14.2.2': - resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 - - '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@tsconfig/docusaurus@2.0.2': - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - - '@tsconfig/node10@1.0.10': - resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@tufjs/canonical-json@1.0.0': - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@tufjs/models@1.0.4': - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - - '@types/chai@4.3.14': - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@8.56.6': - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/expect@1.20.4': - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - - '@types/express-serve-static-core@4.17.43': - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/gtag.js@0.0.12': - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/http-proxy@1.17.14': - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - - '@types/js-cookie@2.2.7': - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/jsonfile@6.1.4': - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - - '@types/lodash@4.14.181': - resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} - - '@types/lodash@4.17.0': - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - - '@types/mdast@4.0.3': - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} - - '@types/mdx-js__react@1.5.8': - resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} - - '@types/mdx@2.0.12': - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - - '@types/mocha@10.0.6': - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - - '@types/moo@0.5.9': - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/nearley@2.11.5': - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - - '@types/node@15.14.9': - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@18.18.2': - resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/normalize-path@3.0.2': - resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/prismjs@1.26.3': - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/qs@6.9.14': - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-dom@18.2.22': - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} - - '@types/react-helmet@6.1.11': - resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} - - '@types/react-router-config@5.0.11': - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} - - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - - '@types/react@18.2.71': - resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/sbd@1.0.5': - resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} - - '@types/scheduler@0.23.0': - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - - '@types/sinon@17.0.3': - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} - - '@types/sinonjs__fake-timers@8.1.5': - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - - '@types/ssri@7.1.5': - resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/tinycolor2@1.4.6': - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/vinyl@2.0.11': - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} - - '@types/vscode@1.75.1': - resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} - - '@types/vscode@1.88.0': - resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} - - '@types/webpack@5.28.5': - resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} - - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@typescript-eslint/eslint-plugin@7.4.0': - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.4.0': - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.4.0': - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.4.0': - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.4.0': - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.4.0': - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@7.4.0': - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.4.0': - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vscode/test-electron@2.3.9': - resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} - engines: {node: '>=16'} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@webpack-cli/configtest@2.1.1': - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - - '@webpack-cli/generators@3.0.7': - resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} - engines: {node: '>=14.15.0'} - peerDependencies: - prettier: '*' - webpack: 5.x.x - webpack-cli: 5.x.x - peerDependenciesMeta: - prettier: - optional: true - - '@webpack-cli/info@2.0.2': - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - - '@webpack-cli/serve@2.0.5': - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true - - '@xobotyi/scrollbar-width@1.9.5': - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - - '@zkochan/retry@0.2.0': - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - - '@zkochan/rimraf@2.1.3': - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} - - '@zkochan/which@2.0.3': - resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} - engines: {node: '>= 8'} - hasBin: true - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} - - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - algoliasearch-helper@3.16.3: - resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' - - algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-diff@1.1.1: - resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-split@1.0.1: - resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - - array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - - as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - - asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-loader@9.1.3: - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - - babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-polyfill-corejs2@0.4.10: - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.1: - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - - bin-links@3.0.3: - resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} - engines: {node: '>=0.8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} - - bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - - boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - - builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - can-write-to-dir@1.1.1: - resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} - engines: {node: '>=10.13'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@5.1.0: - resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} - engines: {node: '>=12'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - check-error@2.0.0: - resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} - engines: {node: '>= 16'} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-columns@4.0.0: - resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} - engines: {node: '>= 10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-table3@0.6.4: - resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} - engines: {node: 10.* || >= 12.*} - - cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - - cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - - clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} - - cmd-shim@5.0.0: - resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - - colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - - combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - - commander@7.1.0: - resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} - engines: {node: '>= 10'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - comver-to-semver@1.0.0: - resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} - engines: {node: '>=12.17'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 - - core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} - - core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - - core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} - - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - css-declaration-sorter@6.4.1: - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - - css-in-js-utils@3.1.0: - resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} - - css-loader@6.10.0: - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@4.2.2: - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-advanced@5.3.10: - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - - data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - - data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - - dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-eql@5.0.1: - resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} - engines: {node: '>=6'} - - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} - - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - - detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - effect@2.0.0-next.62: - resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} - - ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.4.717: - resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - - enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - - enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - - error@10.4.0: - resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} - - es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-config-next@14.1.4: - resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-mocha@10.4.1: - resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.34.1: - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-unicorn@51.0.1: - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' - - eslint-plugin-unused-imports@3.1.0: - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-value-to-estree@3.0.1: - resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} - engines: {node: '>=16.0.0'} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} - - fast-check@3.17.0: - resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} - engines: {node: '>=8.0.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-loops@1.1.3: - resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fast-shallow-equal@1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - - fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastest-stable-stringify@2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - - feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} - - fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - - filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-npm-tarball-url@2.1.0: - resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} - engines: {node: '>=12.17'} - - get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - - github-username@6.0.0: - resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} - engines: {node: '>=10'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graceful-git@3.1.2: - resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - grouped-queue@2.0.0: - resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} - engines: {node: '>=8.0.0'} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - hasharray@1.1.2: - resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} - - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - - hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - html-webpack-plugin@5.6.0: - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - - http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} - - ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - - immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - - immutability-helper@3.1.1: - resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - - individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - - infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - - ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - - inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - - inline-style-prefixer@7.0.0: - resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} - - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} - - is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - - is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - - is-scoped@2.1.0: - resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} - engines: {node: '>=8'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - - isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} - - isbinaryfile@5.0.2: - resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} - engines: {node: '>= 18.0.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - - itertools@2.2.5: - resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} - - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - - jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true - - jclass@1.2.1: - resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} - engines: {node: '>= 0.6'} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} - - js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - - just-diff@5.2.0: - resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} - - just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - - load-json-file@7.0.1: - resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - load-script@1.0.0: - resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} - - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - - loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@3.1.0: - resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.10.1: - resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} - engines: {node: '>=12'} - - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} - - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - - mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - mem-fs-editor@9.7.0: - resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} - engines: {node: '>=12.10.0'} - peerDependencies: - mem-fs: ^2.1.0 - peerDependenciesMeta: - mem-fs: - optional: true - - mem-fs@2.3.0: - resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} - engines: {node: '>=12'} - - mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} - engines: {node: '>= 4.0.0'} - - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - - meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} - - micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} - - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} - - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} - - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - mini-css-extract-plugin@2.8.1: - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp-infer-owner@2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} - engines: {node: '>=10'} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mocha@10.3.0: - resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} - engines: {node: '>= 14.0.0'} - hasBin: true - - moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nano-css@5.6.1: - resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} - peerDependencies: - react: '*' - react-dom: '*' - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true - - nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - neovim@5.1.0: - resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} - engines: {node: '>=10'} - hasBin: true - - nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - - next@14.1.4: - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true - - nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true - - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true - - node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-registry-url@2.0.0: - resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - - npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - - npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-install-checks@4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} - engines: {node: '>=10'} - - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - - npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} - - npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} - hasBin: true - - npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-pick-manifest@6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} - - npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-registry-fetch@12.0.2: - resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - - npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-transform@1.3.0: - resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} - engines: {node: '>=12.10.0'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - pacote@12.0.3: - resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true - - pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-conflict-json@2.0.2: - resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - - parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - - parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-absolute@1.0.1: - resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} - engines: {node: '>=4'} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-name@1.0.0: - resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - - path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} - - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} - - path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - - path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} - - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} - - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - - postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - - postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-unused@5.1.0: - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-loader@7.3.4: - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - - postcss-loader@8.1.1: - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - postcss-merge-idents@5.1.1: - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-modules-extract-imports@3.0.0: - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.0.4: - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.1.1: - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-idents@5.2.0: - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} - - postcss-sort-media-queries@4.4.1: - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 - - postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss-zindex@5.1.0: - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-tailwindcss@0.5.12: - resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - prettier-plugin-twig-melody: - optional: true - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} - - pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - - print-diff@1.0.0: - resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} - engines: {node: '>=8.3'} - - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - - prism-react-renderer@2.3.1: - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0 || 18' - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - proc-log@1.0.0: - resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} - - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - qs@6.12.0: - resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} - engines: {node: '>=0.6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - - rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - - ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - - randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-dev-utils@12.0.1: - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 - - react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-helmet-async@1.3.0: - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - - react-helmet-async@2.0.4: - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - react-json-view-lite@1.3.0: - resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 - - react-loadable-ssr-addon-v5-slorber@1.0.1: - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - - react-player@2.15.1: - resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} - peerDependencies: - react: '>=16.6.0 || 18' - - react-router-config@5.1.1: - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15 || 18' - react-router: '>=5' - - react-router-dom@5.3.4: - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15 || 18' - - react-router@5.3.4: - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15 || 18' - - react-string-replace@1.1.1: - resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} - engines: {node: '>=0.12.0'} - - react-universal-interface@0.6.2: - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' - - react-use@17.5.0: - resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} - peerDependencies: - react: '*' - react-dom: '*' - - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - read-cmd-shim@3.0.1: - resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - read-ini-file@4.0.0: - resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} - engines: {node: '>=14.6'} - - read-package-json-fast@2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} - engines: {node: '>=10'} - - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - - read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - - realpath-missing@1.1.0: - resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} - engines: {node: '>=10'} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} - - redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - - remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} - - remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - - remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} - - right-pad@1.0.1: - resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} - engines: {node: '>= 0.10'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true - - rtl-css-js@1.16.1: - resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} - - rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - - rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true - - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} - engines: {node: '>=12'} - - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} - - sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - sbd@1.0.19: - resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} - - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - - scoped-regex@2.1.0: - resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} - engines: {node: '>=8'} - - screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - - search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-harmonic-interval@1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - - skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - socks-proxy-agent@6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} - engines: {node: '>= 10'} - - socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} - - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - - socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - - sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - - sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} - - sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - - source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - - ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - - stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} - - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - - stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} - - stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} - - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} - - stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} - - strip-bom-stream@2.0.0: - resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} - engines: {node: '>=0.10.0'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-comments-strings@1.2.0: - resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - - style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - - style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} - - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - syncpack@12.3.0: - resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} - engines: {node: '>=16'} - hasBin: true - - tailwindcss@3.4.1: - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} - engines: {node: '>=14.0.0'} - hasBin: true - - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} - engines: {node: '>=0.8'} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - - tightrope@0.1.0: - resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} - engines: {node: '>=14'} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - treeverse@1.0.4: - resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} - - trie-search@2.0.0: - resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-easing@0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-jest@29.1.2: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - ts-loader@9.5.1: - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} - - union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} - - unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - - url-loader@4.1.1: - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - - validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - - vinyl-file@3.0.0: - resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} - engines: {node: '>=4'} - - vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - - vscode-uri@3.0.6: - resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - walk-up-path@1.0.0: - resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true - - webpack-cli@5.1.4: - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true - - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-middleware@7.1.1: - resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-dev-server@5.0.4: - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpackbar@5.0.2: - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} - engines: {node: '>= 12.0.0'} - - winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} - - workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - write-yaml-file@5.0.0: - resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} - engines: {node: '>=16.14'} - - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yeoman-environment@3.19.3: - resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} - engines: {node: '>=12.10.0'} - hasBin: true - - yeoman-generator@5.10.0: - resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} - engines: {node: '>=12.10.0'} - peerDependencies: - yeoman-environment: ^3.2.0 - peerDependenciesMeta: - yeoman-environment: - optional: true - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) - search-insights: 2.13.0 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) - '@algolia/client-search': 4.22.1 - algoliasearch: 4.22.1 - - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': - dependencies: - '@algolia/client-search': 4.22.1 - algoliasearch: 4.22.1 - - '@algolia/cache-browser-local-storage@4.22.1': - dependencies: - '@algolia/cache-common': 4.22.1 - - '@algolia/cache-common@4.22.1': {} - - '@algolia/cache-in-memory@4.22.1': - dependencies: - '@algolia/cache-common': 4.22.1 - - '@algolia/client-account@4.22.1': - dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/client-search': 4.22.1 - '@algolia/transporter': 4.22.1 - - '@algolia/client-analytics@4.22.1': - dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/client-search': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 - - '@algolia/client-common@4.22.1': - dependencies: - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 - - '@algolia/client-personalization@4.22.1': - dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 - - '@algolia/client-search@4.22.1': - dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 - - '@algolia/events@4.0.1': {} - - '@algolia/logger-common@4.22.1': {} - - '@algolia/logger-console@4.22.1': - dependencies: - '@algolia/logger-common': 4.22.1 - - '@algolia/requester-browser-xhr@4.22.1': - dependencies: - '@algolia/requester-common': 4.22.1 - - '@algolia/requester-common@4.22.1': {} - - '@algolia/requester-node-http@4.22.1': - dependencies: - '@algolia/requester-common': 4.22.1 - - '@algolia/transporter@4.22.1': - dependencies: - '@algolia/cache-common': 4.22.1 - '@algolia/logger-common': 4.22.1 - '@algolia/requester-common': 4.22.1 - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - - '@babel/compat-data@7.24.1': {} - - '@babel/core@7.24.3': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.24.1 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.1': - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-compilation-targets@7.23.6': - dependencies: - '@babel/compat-data': 7.24.1 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-member-expression-to-functions@7.23.0': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-imports@7.24.3': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - '@babel/helper-optimise-call-expression@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-plugin-utils@7.24.0': {} - - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-string-parser@7.24.1': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-option@7.23.5': {} - - '@babel/helper-wrap-function@7.22.20': - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - '@babel/helpers@7.24.1': - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - - '@babel/highlight@7.24.2': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.24.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)': + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -10096,37 +1404,61 @@ snapshots: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10138,95 +1470,159 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-hoist-variables': 7.22.5 @@ -10234,36 +1630,60 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -10271,37 +1691,61 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10309,27 +1753,47 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10338,24 +1802,40 @@ snapshots: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)': + /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 @@ -10366,34 +1846,59 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: false - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -10401,30 +1906,50 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)': + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/preset-env@7.24.3(@babel/core@7.24.3)': + /@babel/preset-env@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -10510,14 +2035,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)': + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - '@babel/preset-react@7.24.1(@babel/core@7.24.3)': + /@babel/preset-react@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -10527,7 +2059,11 @@ snapshots: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': + /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -10536,24 +2072,34 @@ snapshots: '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - '@babel/regjsgen@0.8.0': {} + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime-corejs3@7.24.1': + /@babel/runtime-corejs3@7.24.1: + resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} + engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.36.1 regenerator-runtime: 0.14.1 + dev: false - '@babel/runtime@7.24.1': + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.0': + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - '@babel/traverse@7.24.1': + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 @@ -10568,34 +2114,67 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - '@bcoe/v8-coverage@0.2.3': {} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@colors/colors@1.5.0': + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: false optional: true - '@colors/colors@1.6.0': {} + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: true - '@dabh/diagnostics@2.0.3': + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} dependencies: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - '@discoveryjs/json-ext@0.5.7': {} + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} - '@docsearch/css@3.6.0': {} + /@docsearch/css@3.6.0: + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + dev: false - '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)': + /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -10607,8 +2186,15 @@ snapshots: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' + dev: false - '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -10663,7 +2249,7 @@ snapshots: react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0) react-router: 5.3.4(react@18.2.0) react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) @@ -10699,20 +2285,32 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/cssnano-preset@3.1.1': + /@docusaurus/cssnano-preset@3.1.1: + resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} + engines: {node: '>=18.0'} dependencies: cssnano-preset-advanced: 5.3.10(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 4.4.1(postcss@8.4.38) tslib: 2.6.2 + dev: false - '@docusaurus/logger@3.1.1': + /@docusaurus/logger@3.1.1: + resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} + engines: {node: '>=18.0'} dependencies: chalk: 4.1.2 tslib: 2.6.2 + dev: false - '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 @@ -10749,8 +2347,13 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10761,7 +2364,7 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -10769,7 +2372,12 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -10807,8 +2415,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -10844,8 +2458,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10874,8 +2494,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10902,8 +2528,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10928,8 +2560,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10955,8 +2593,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -10981,8 +2625,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -11012,8 +2662,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': + /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): + resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -11050,14 +2706,23 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/react-loadable@5.5.2(react@18.2.0)': + /@docusaurus/react-loadable@5.5.2(react@18.2.0): + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' dependencies: '@types/react': 18.2.71 prop-types: 15.8.1 react: 18.2.0 - '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11104,8 +2769,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': + /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): + resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11142,8 +2813,14 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false - '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': + /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): + resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -11184,13 +2861,22 @@ snapshots: - utf-8-validate - vue-template-compiler - webpack-cli + dev: false + patched: true - '@docusaurus/theme-translations@3.1.1': + /@docusaurus/theme-translations@3.1.1: + resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} + engines: {node: '>=18.0'} dependencies: fs-extra: 11.2.0 tslib: 2.6.2 + dev: false - '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': + /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -11210,12 +2896,22 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)': + /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1): + resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true dependencies: '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 + dev: false - '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': + /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): + resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} + engines: {node: '>=18.0'} dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2) @@ -11229,8 +2925,16 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': + /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): + resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -11256,97 +2960,232 @@ snapshots: - supports-color - uglify-js - webpack-cli + dev: false - '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)': + /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0): + resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} + peerDependencies: + effect: 2.0.0-next.62 + fast-check: ^3.13.2 dependencies: effect: 2.0.0-next.62 fast-check: 3.15.0 + dev: true - '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)': + /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0): + resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} + engines: {node: '>=10.13.0'} + peerDependencies: + html-webpack-plugin: '>=5' + webpack: '>=5' dependencies: escape-string-regexp: 4.0.0 html-webpack-plugin: 5.6.0(webpack@5.91.0) slash: 3.0.0 source-map-url: 0.4.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - '@esbuild/aix-ppc64@0.20.2': + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true optional: true - '@esbuild/android-arm64@0.20.2': + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-arm@0.20.2': + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-x64@0.20.2': + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true - '@esbuild/darwin-arm64@0.20.2': + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/darwin-x64@0.20.2': + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/freebsd-arm64@0.20.2': + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/freebsd-x64@0.20.2': + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/linux-arm64@0.20.2': + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-arm@0.20.2': + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ia32@0.20.2': + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-loong64@0.20.2': + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-mips64el@0.20.2': + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ppc64@0.20.2': + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-riscv64@0.20.2': + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-s390x@0.20.2': + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-x64@0.20.2': + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/netbsd-x64@0.20.2': + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true - '@esbuild/openbsd-x64@0.20.2': + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true - '@esbuild/sunos-x64@0.20.2': + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true - '@esbuild/win32-arm64@0.20.2': + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-ia32@0.20.2': + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-x64@0.20.2': + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -11360,35 +3199,62 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fortawesome/fontawesome-common-types@6.5.1': {} + /@fortawesome/fontawesome-common-types@6.5.1: + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + requiresBuild: true + dev: false - '@fortawesome/fontawesome-svg-core@6.5.1': + /@fortawesome/fontawesome-svg-core@6.5.1: + resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + engines: {node: '>=6'} + requiresBuild: true dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 + dev: false - '@fortawesome/free-solid-svg-icons@6.5.1': + /@fortawesome/free-solid-svg-icons@6.5.1: + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + requiresBuild: true dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 + dev: false - '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)': + /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3 || 18' dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 prop-types: 15.8.1 react: 18.2.0 + dev: false - '@gar/promisify@1.1.3': {} + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@gwhitney/detect-indent@7.0.1': {} + /@gwhitney/detect-indent@7.0.1: + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + dev: true - '@hapi/hoek@9.3.0': {} + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - '@hapi/topo@5.1.0': + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} dependencies: '@hapi/hoek': 9.3.0 - '@humanwhocodes/config-array@0.11.14': + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -11396,32 +3262,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@humanwhocodes/module-importer@1.0.1': {} + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.2': {} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - '@isaacs/cliui@8.0.2': + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 - '@isaacs/string-locale-compare@1.1.0': {} + /@isaacs/string-locale-compare@1.1.0: + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@istanbuljs/load-nyc-config@1.1.0': + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 + dev: true - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/console@29.7.0': + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -11429,8 +3309,16 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 + dev: true - '@jest/core@29.7.0(ts-node@10.9.2)': + /@jest/core@29.7.0(ts-node@10.9.2): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -11464,26 +3352,38 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - '@jest/environment@29.7.0': + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-mock: 29.7.0 + dev: true - '@jest/expect-utils@29.7.0': + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: true - '@jest/expect@29.7.0': + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/fake-timers@29.7.0': + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -11491,8 +3391,11 @@ snapshots: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - '@jest/globals@29.7.0': + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -11500,8 +3403,16 @@ snapshots: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/reporters@29.7.0': + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -11529,32 +3440,46 @@ snapshots: v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - '@jest/source-map@29.6.3': + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 + dev: true - '@jest/test-result@29.7.0': + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + dev: true - '@jest/test-sequencer@29.7.0': + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 + dev: true - '@jest/transform@29.7.0': + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.24.3 '@jest/types': 29.6.3 @@ -11573,8 +3498,11 @@ snapshots: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + dev: true - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 @@ -11583,44 +3511,61 @@ snapshots: '@types/yargs': 17.0.32 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': {} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - '@leichtgewicht/ip-codec@2.0.4': {} + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - '@mdx-js/loader@3.0.1(webpack@5.91.0)': + /@mdx-js/loader@3.0.1(webpack@5.91.0): + resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} + peerDependencies: + webpack: '>=5' dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color + dev: false - '@mdx-js/mdx@3.0.1': + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -11648,66 +3593,150 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)': + /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0): + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16 || 18' dependencies: '@types/mdx': 2.0.12 '@types/react': 18.2.71 react: 18.2.0 + dev: false - '@msgpack/msgpack@2.8.0': {} + /@msgpack/msgpack@2.8.0: + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} - '@next/env@14.1.4': {} + /@next/env@14.1.4: + resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} + dev: false - '@next/eslint-plugin-next@14.1.4': + /@next/eslint-plugin-next@14.1.4: + resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} dependencies: glob: 10.3.10 + dev: true - '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)': + /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1): + resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true dependencies: '@mdx-js/loader': 3.0.1(webpack@5.91.0) '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0) source-map: 0.7.4 + dev: false - '@next/swc-darwin-arm64@14.1.4': + /@next/swc-darwin-arm64@14.1.4: + resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@next/swc-darwin-x64@14.1.4': + /@next/swc-darwin-x64@14.1.4: + resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-arm64-gnu@14.1.4': + /@next/swc-linux-arm64-gnu@14.1.4: + resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-arm64-musl@14.1.4': + /@next/swc-linux-arm64-musl@14.1.4: + resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-x64-gnu@14.1.4': + /@next/swc-linux-x64-gnu@14.1.4: + resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-linux-x64-musl@14.1.4': + /@next/swc-linux-x64-musl@14.1.4: + resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-arm64-msvc@14.1.4': + /@next/swc-win32-arm64-msvc@14.1.4: + resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-ia32-msvc@14.1.4': + /@next/swc-win32-ia32-msvc@14.1.4: + resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true - '@next/swc-win32-x64-msvc@14.1.4': + /@next/swc-win32-x64-msvc@14.1.4: + resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/arborist@4.3.1': + /@npmcli/arborist@4.3.1: + resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true dependencies: '@isaacs/string-locale-compare': 1.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -11745,21 +3774,27 @@ snapshots: - bluebird - supports-color - '@npmcli/fs@1.1.1': + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - '@npmcli/fs@2.1.2': + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - '@npmcli/fs@3.1.0': + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.6.0 - '@npmcli/git@2.1.0': + /@npmcli/git@2.1.0: + resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} dependencies: '@npmcli/promise-spawn': 1.3.2 lru-cache: 6.0.0 @@ -11772,7 +3807,9 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/git@4.1.0': + /@npmcli/git@4.1.0: + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 6.0.2 lru-cache: 7.18.3 @@ -11785,24 +3822,34 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/installed-package-contents@1.0.7': + /@npmcli/installed-package-contents@1.0.7: + resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} + engines: {node: '>= 10'} + hasBin: true dependencies: npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - '@npmcli/installed-package-contents@2.0.2': + /@npmcli/installed-package-contents@2.0.2: + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - '@npmcli/map-workspaces@2.0.4': + /@npmcli/map-workspaces@2.0.4: + resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@npmcli/name-from-folder': 1.0.1 glob: 8.1.0 minimatch: 5.1.6 read-package-json-fast: 2.0.3 - '@npmcli/metavuln-calculator@2.0.0': + /@npmcli/metavuln-calculator@2.0.0: + resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: cacache: 15.3.0 json-parse-even-better-errors: 2.3.1 @@ -11812,35 +3859,50 @@ snapshots: - bluebird - supports-color - '@npmcli/move-file@1.1.2': + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/move-file@2.0.1': + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - '@npmcli/name-from-folder@1.0.1': {} + /@npmcli/name-from-folder@1.0.1: + resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} - '@npmcli/node-gyp@1.0.3': {} + /@npmcli/node-gyp@1.0.3: + resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} - '@npmcli/node-gyp@3.0.0': {} + /@npmcli/node-gyp@3.0.0: + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/package-json@1.0.1': + /@npmcli/package-json@1.0.1: + resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} dependencies: json-parse-even-better-errors: 2.3.1 - '@npmcli/promise-spawn@1.3.2': + /@npmcli/promise-spawn@1.3.2: + resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} dependencies: infer-owner: 1.0.4 - '@npmcli/promise-spawn@6.0.2': + /@npmcli/promise-spawn@6.0.2: + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: which: 3.0.1 - '@npmcli/run-script@2.0.0': + /@npmcli/run-script@2.0.0: + resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} dependencies: '@npmcli/node-gyp': 1.0.3 '@npmcli/promise-spawn': 1.3.2 @@ -11850,7 +3912,9 @@ snapshots: - bluebird - supports-color - '@npmcli/run-script@6.0.2': + /@npmcli/run-script@6.0.2: + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 @@ -11861,11 +3925,13 @@ snapshots: - bluebird - supports-color - '@octokit/auth-token@2.5.0': + /@octokit/auth-token@2.5.0: + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} dependencies: '@octokit/types': 6.41.0 - '@octokit/core@3.6.0': + /@octokit/core@3.6.0: + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -11877,13 +3943,15 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/endpoint@6.0.12': + /@octokit/endpoint@6.0.12: + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - '@octokit/graphql@4.8.0': + /@octokit/graphql@4.8.0: + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -11891,30 +3959,42 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/openapi-types@12.11.0': {} + /@octokit/openapi-types@12.11.0: + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)': + /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 - '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)': + /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 3.6.0 - '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)': + /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 deprecation: 2.3.1 - '@octokit/request-error@2.1.0': + /@octokit/request-error@2.1.0: + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 once: 1.4.0 - '@octokit/request@5.6.3': + /@octokit/request@5.6.3: + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -11925,7 +4005,8 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/rest@18.12.0': + /@octokit/rest@18.12.0: + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -11934,19 +4015,30 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/types@6.41.0': + /@octokit/types@6.41.0: + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} dependencies: '@octokit/openapi-types': 12.11.0 - '@pkgjs/parseargs@0.11.0': + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true optional: true - '@pnpm/cli-meta@5.0.1': + /@pnpm/cli-meta@5.0.1: + resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 load-json-file: 6.2.0 + dev: true - '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)': + /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/cli-meta': 5.0.1 '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) @@ -11959,10 +4051,15 @@ snapshots: '@pnpm/types': 9.1.0 chalk: 4.1.2 load-json-file: 6.2.0 + dev: true - '@pnpm/config.env-replace@1.1.0': {} + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} - '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)': + /@pnpm/config@18.4.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/constants': 7.1.0 @@ -11982,44 +4079,80 @@ snapshots: normalize-registry-url: 2.0.0 path-absolute: 1.0.1 path-name: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 read-ini-file: 4.0.0 realpath-missing: 1.1.0 which: 3.0.1 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/constants@6.2.0': {} + /@pnpm/constants@6.2.0: + resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} + engines: {node: '>=14.6'} + dev: false - '@pnpm/constants@7.1.0': {} + /@pnpm/constants@7.1.0: + resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/constants@7.1.1': {} + /@pnpm/constants@7.1.1: + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/constants@8.0.0': {} + /@pnpm/constants@8.0.0: + resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)': + /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 10.0.0 + dev: false - '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)': + /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/crypto.base32-hash@3.0.0': + /@pnpm/crypto.base32-hash@3.0.0: + resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} + engines: {node: '>=18.12'} dependencies: rfc4648: 1.5.3 + dev: false - '@pnpm/dedupe.issues-renderer@1.0.0': + /@pnpm/dedupe.issues-renderer@1.0.0: + resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/dedupe.types': 1.0.0 archy: 1.0.0 chalk: 4.1.2 + dev: true - '@pnpm/dedupe.types@1.0.0': {} + /@pnpm/dedupe.types@1.0.0: + resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)': + /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) @@ -12035,37 +4168,57 @@ snapshots: normalize-path: 3.0.0 pretty-bytes: 5.6.0 pretty-ms: 7.0.1 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 right-pad: 1.0.1 rxjs: 7.8.1 semver: 7.6.0 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 + dev: true - '@pnpm/dependency-path@3.0.0': + /@pnpm/dependency-path@3.0.0: + resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} + engines: {node: '>=18.12'} dependencies: '@pnpm/crypto.base32-hash': 3.0.0 '@pnpm/types': 10.0.0 semver: 7.6.0 + dev: false - '@pnpm/error@4.0.1': + /@pnpm/error@4.0.1: + resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} + engines: {node: '>=14.6'} dependencies: '@pnpm/constants': 6.2.0 + dev: false - '@pnpm/error@5.0.1': + /@pnpm/error@5.0.1: + resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/constants': 7.1.0 + dev: true - '@pnpm/error@5.0.3': + /@pnpm/error@5.0.3: + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/constants': 7.1.1 + dev: true - '@pnpm/error@6.0.0': + /@pnpm/error@6.0.0: + resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} + engines: {node: '>=18.12'} dependencies: '@pnpm/constants': 8.0.0 + dev: false - '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)': + /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0) '@pnpm/fetching-types': 6.0.0 @@ -12073,30 +4226,42 @@ snapshots: '@pnpm/network.agent': 1.0.1 '@pnpm/types': 10.0.0 '@zkochan/retry': 0.2.0 - node-fetch: '@pnpm/node-fetch@1.0.0' + node-fetch: /@pnpm/node-fetch@1.0.0 transitivePeerDependencies: - domexception - supports-color + dev: false - '@pnpm/fetcher-base@14.0.1': + /@pnpm/fetcher-base@14.0.1: + resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 '@types/ssri': 7.1.5 + dev: true - '@pnpm/fetching-types@6.0.0': + /@pnpm/fetching-types@6.0.0: + resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} + engines: {node: '>=18.12'} dependencies: '@zkochan/retry': 0.2.0 - node-fetch: '@pnpm/node-fetch@1.0.0' + node-fetch: /@pnpm/node-fetch@1.0.0 transitivePeerDependencies: - domexception + dev: false - '@pnpm/find-workspace-dir@6.0.3': + /@pnpm/find-workspace-dir@6.0.3: + resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/error': 5.0.3 find-up: 5.0.0 + dev: true - '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)': + /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0) '@pnpm/constants': 7.1.0 @@ -12106,49 +4271,75 @@ snapshots: read-yaml-file: 2.1.0 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/fs.find-packages@2.0.1': + /@pnpm/fs.find-packages@2.0.1: + resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} + engines: {node: '>=16.14'} dependencies: '@pnpm/read-project-manifest': 5.0.1 '@pnpm/types': 9.1.0 '@pnpm/util.lex-comparator': 1.0.0 fast-glob: 3.3.2 p-filter: 2.1.0 + dev: true - '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)': + /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} + engines: {node: '>=18.12'} dependencies: '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0) '@pnpm/resolver-base': 12.0.0 graceful-git: 3.1.2 - hosted-git-info: '@pnpm/hosted-git-info@1.0.0' + hosted-git-info: /@pnpm/hosted-git-info@1.0.0 semver: 7.6.0 transitivePeerDependencies: - '@pnpm/logger' - domexception - supports-color + dev: false - '@pnpm/git-utils@1.0.0': + /@pnpm/git-utils@1.0.0: + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} dependencies: - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 + dev: true - '@pnpm/git-utils@2.0.0': + /@pnpm/git-utils@2.0.0: + resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} + engines: {node: '>=18.12'} dependencies: - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 + dev: false - '@pnpm/graceful-fs@3.0.0': + /@pnpm/graceful-fs@3.0.0: + resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} + engines: {node: '>=16.14'} dependencies: graceful-fs: 4.2.11 + dev: true - '@pnpm/hooks.types@1.0.1': + /@pnpm/hooks.types@1.0.1: + resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/lockfile-types': 5.1.0 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/hosted-git-info@1.0.0': + /@pnpm/hosted-git-info@1.0.0: + resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} + engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 + dev: false - '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)': + /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/constants': 8.0.0 '@pnpm/dependency-path': 3.0.0 @@ -12163,9 +4354,9 @@ snapshots: '@pnpm/util.lex-comparator': 3.0.0 '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 - js-yaml: '@zkochan/js-yaml@0.0.7' + js-yaml: /@zkochan/js-yaml@0.0.7 normalize-path: 3.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 semver: 7.6.0 sort-keys: 4.2.0 strip-bom: 4.0.0 @@ -12173,16 +4364,25 @@ snapshots: transitivePeerDependencies: - domexception - supports-color + dev: false - '@pnpm/lockfile-types@5.1.0': + /@pnpm/lockfile-types@5.1.0: + resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 + dev: true - '@pnpm/lockfile-types@6.0.0': + /@pnpm/lockfile-types@6.0.0: + resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} + engines: {node: '>=18.12'} dependencies: '@pnpm/types': 10.0.0 + dev: false - '@pnpm/lockfile-utils@10.0.0': + /@pnpm/lockfile-utils@10.0.0: + resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} + engines: {node: '>=18.12'} dependencies: '@pnpm/dependency-path': 3.0.0 '@pnpm/lockfile-types': 6.0.0 @@ -12190,33 +4390,48 @@ snapshots: '@pnpm/resolver-base': 12.0.0 '@pnpm/types': 10.0.0 get-npm-tarball-url: 2.1.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 + dev: false - '@pnpm/logger@5.0.0': + /@pnpm/logger@5.0.0: + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} dependencies: bole: 5.0.11 ndjson: 2.0.0 - '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)': + /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} + engines: {node: '>=16.14'} dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/types': 9.1.0 transitivePeerDependencies: - '@pnpm/logger' + dev: true - '@pnpm/matcher@5.0.0': + /@pnpm/matcher@5.0.0: + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} + engines: {node: '>=16.14'} dependencies: escape-string-regexp: 4.0.0 + dev: true - '@pnpm/merge-lockfile-changes@6.0.0': + /@pnpm/merge-lockfile-changes@6.0.0: + resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} + engines: {node: '>=18.12'} dependencies: '@pnpm/lockfile-types': 6.0.0 comver-to-semver: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' + ramda: /@pnpm/ramda@0.28.1 semver: 7.6.0 + dev: false - '@pnpm/meta-updater@1.0.0': + /@pnpm/meta-updater@1.0.0: + resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} + engines: {node: '>=10.12'} + hasBin: true dependencies: '@pnpm/find-workspace-dir': 6.0.3 '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0) @@ -12227,8 +4442,11 @@ snapshots: print-diff: 1.0.0 ramda: 0.29.1 write-json-file: 5.0.0 + dev: true - '@pnpm/network.agent@1.0.1': + /@pnpm/network.agent@1.0.1: + resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} + engines: {node: '>=12.22.0'} dependencies: '@pnpm/network.config': 1.0.1 '@pnpm/network.proxy-agent': 1.0.1 @@ -12236,16 +4454,24 @@ snapshots: lru-cache: 7.10.1 transitivePeerDependencies: - supports-color + dev: false - '@pnpm/network.ca-file@1.0.2': + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} dependencies: graceful-fs: 4.2.10 - '@pnpm/network.config@1.0.1': + /@pnpm/network.config@1.0.1: + resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} + engines: {node: '>=12.22.0'} dependencies: nerf-dart: 1.0.0 + dev: false - '@pnpm/network.proxy-agent@1.0.1': + /@pnpm/network.proxy-agent@1.0.1: + resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} + engines: {node: '>=12.22.0'} dependencies: '@pnpm/error': 4.0.1 http-proxy-agent: 5.0.0 @@ -12254,40 +4480,62 @@ snapshots: socks-proxy-agent: 6.1.1 transitivePeerDependencies: - supports-color + dev: false - '@pnpm/node-fetch@1.0.0': + /@pnpm/node-fetch@1.0.0: + resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} + engines: {node: ^10.17 || >=12.3} dependencies: data-uri-to-buffer: 3.0.1 fetch-blob: 2.1.2 transitivePeerDependencies: - domexception + dev: false - '@pnpm/npm-conf@2.2.0': + /@pnpm/npm-conf@2.2.0: + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: true - '@pnpm/npm-conf@2.2.2': + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: false - '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)': + /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 detect-libc: 2.0.3 - execa: safe-execa@0.1.2 + execa: /safe-execa@0.1.2 mem: 8.1.1 semver: 7.6.0 + dev: true - '@pnpm/pick-fetcher@3.0.0': {} + /@pnpm/pick-fetcher@3.0.0: + resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)': + /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 @@ -12298,10 +4546,14 @@ snapshots: '@pnpm/types': 9.1.0 chalk: 4.1.2 path-absolute: 1.0.1 + dev: true - '@pnpm/ramda@0.28.1': {} + /@pnpm/ramda@0.28.1: + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - '@pnpm/read-project-manifest@5.0.1': + /@pnpm/read-project-manifest@5.0.1: + resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} + engines: {node: '>=16.14'} dependencies: '@gwhitney/detect-indent': 7.0.1 '@pnpm/error': 5.0.1 @@ -12316,69 +4568,116 @@ snapshots: read-yaml-file: 2.1.0 sort-keys: 4.2.0 strip-bom: 4.0.0 + dev: true - '@pnpm/render-peer-issues@4.0.1': + /@pnpm/render-peer-issues@4.0.1: + resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 archy: 1.0.0 chalk: 4.1.2 cli-columns: 4.0.0 + dev: true - '@pnpm/resolver-base@10.0.1': + /@pnpm/resolver-base@10.0.1: + resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} + engines: {node: '>=16.14'} dependencies: '@pnpm/types': 9.1.0 + dev: true - '@pnpm/resolver-base@12.0.0': + /@pnpm/resolver-base@12.0.0: + resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} + engines: {node: '>=18.12'} dependencies: '@pnpm/types': 10.0.0 + dev: false - '@pnpm/store-controller-types@15.0.1': + /@pnpm/store-controller-types@15.0.1: + resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} + engines: {node: '>=16.14'} dependencies: '@pnpm/fetcher-base': 14.0.1 '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 + dev: true - '@pnpm/text.comments-parser@2.0.0': + /@pnpm/text.comments-parser@2.0.0: + resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} + engines: {node: '>=16.14'} dependencies: strip-comments-strings: 1.2.0 + dev: true - '@pnpm/types@10.0.0': {} + /@pnpm/types@10.0.0: + resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/types@9.1.0': {} + /@pnpm/types@9.1.0: + resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/types@9.4.2': {} + /@pnpm/types@9.4.2: + resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} + engines: {node: '>=16.14'} + dev: true - '@pnpm/util.lex-comparator@1.0.0': {} + /@pnpm/util.lex-comparator@1.0.0: + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + dev: true - '@pnpm/util.lex-comparator@3.0.0': {} + /@pnpm/util.lex-comparator@3.0.0: + resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} + engines: {node: '>=18.12'} + dev: false - '@pnpm/write-project-manifest@5.0.1': + /@pnpm/write-project-manifest@5.0.1: + resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} + engines: {node: '>=16.14'} dependencies: '@pnpm/text.comments-parser': 2.0.0 '@pnpm/types': 9.1.0 json5: 2.2.3 write-file-atomic: 5.0.1 write-yaml-file: 5.0.0 + dev: true - '@polka/url@1.0.0-next.25': {} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: false - '@rushstack/eslint-patch@1.8.0': {} + /@rushstack/eslint-patch@1.8.0: + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} + dev: true - '@sideway/address@4.1.5': + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: '@hapi/hoek': 9.3.0 - '@sideway/formula@3.0.1': {} + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - '@sideway/pinpoint@2.0.0': {} + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@sigstore/bundle@1.1.0': + /@sigstore/bundle@1.1.0: + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/protobuf-specs@0.2.1': {} + /@sigstore/protobuf-specs@0.2.1: + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@sigstore/sign@1.0.0': + /@sigstore/sign@1.0.0: + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -12386,112 +4685,210 @@ snapshots: transitivePeerDependencies: - supports-color - '@sigstore/tuf@1.0.3': + /@sigstore/tuf@1.0.3: + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@sigstore/protobuf-specs': 0.2.1 tuf-js: 1.1.7 transitivePeerDependencies: - supports-color - '@sinclair/typebox@0.27.8': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@4.6.0': {} + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: false - '@sindresorhus/is@5.6.0': {} + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: false - '@sinonjs/commons@2.0.0': + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/commons@3.0.1': + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/fake-timers@10.3.0': + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.1 + dev: true - '@sinonjs/fake-timers@11.2.2': + /@sinonjs/fake-timers@11.2.2: + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} dependencies: '@sinonjs/commons': 3.0.1 + dev: true - '@sinonjs/samsam@8.0.0': + /@sinonjs/samsam@8.0.0: + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 + dev: true - '@sinonjs/text-encoding@0.7.2': {} + /@sinonjs/text-encoding@0.7.2: + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + dev: true - '@slorber/remark-comment@1.0.0': + /@slorber/remark-comment@1.0.0: + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} dependencies: micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 + dev: false - '@slorber/static-site-generator-webpack-plugin@4.0.7': + /@slorber/static-site-generator-webpack-plugin@4.0.7: + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 + dev: false - '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3): + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: false - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)': + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 + dev: true - '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)': + /@svgr/babel-preset@6.5.1(@babel/core@7.24.3): + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3) @@ -12502,8 +4899,13 @@ snapshots: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3) + dev: false - '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)': + /@svgr/babel-preset@8.1.0(@babel/core@7.24.3): + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3) @@ -12514,8 +4916,11 @@ snapshots: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) + dev: true - '@svgr/core@6.5.1': + /@svgr/core@6.5.1: + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -12524,8 +4929,11 @@ snapshots: cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color + dev: false - '@svgr/core@8.1.0(typescript@5.4.3)': + /@svgr/core@8.1.0(typescript@5.4.3): + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -12535,18 +4943,29 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@svgr/hast-util-to-babel-ast@6.5.1': + /@svgr/hast-util-to-babel-ast@6.5.1: + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} dependencies: '@babel/types': 7.24.0 entities: 4.5.0 + dev: false - '@svgr/hast-util-to-babel-ast@8.0.0': + /@svgr/hast-util-to-babel-ast@8.0.0: + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} dependencies: '@babel/types': 7.24.0 entities: 4.5.0 + dev: true - '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': + /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -12555,8 +4974,13 @@ snapshots: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color + dev: false - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)': + /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -12565,15 +4989,25 @@ snapshots: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color + dev: true - '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': + /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 deepmerge: 4.3.1 svgo: 2.8.0 + dev: false - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)': + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3): + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' dependencies: '@svgr/core': 8.1.0(typescript@5.4.3) cosmiconfig: 8.3.6(typescript@5.4.3) @@ -12581,8 +5015,11 @@ snapshots: svgo: 3.2.0 transitivePeerDependencies: - typescript + dev: true - '@svgr/webpack@6.5.1': + /@svgr/webpack@6.5.1: + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -12594,8 +5031,11 @@ snapshots: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color + dev: false - '@svgr/webpack@8.1.0(typescript@5.4.3)': + /@svgr/webpack@8.1.0(typescript@5.4.3): + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -12608,16 +5048,24 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@swc/helpers@0.5.2': + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 + dev: false - '@szmarczak/http-timer@5.0.1': + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} dependencies: defer-to-connect: 2.0.1 + dev: false - '@testing-library/dom@9.3.4': + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 @@ -12627,342 +5075,491 @@ snapshots: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true - '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)': + /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 dependencies: '@babel/runtime': 7.24.1 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true - '@tootallnate/once@1.1.2': {} + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} - '@tootallnate/once@2.0.0': {} + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} - '@trysound/sax@0.2.0': {} + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - '@tsconfig/docusaurus@2.0.2': {} + /@tsconfig/docusaurus@2.0.2: + resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} + dev: true - '@tsconfig/node10@1.0.10': {} + /@tsconfig/node10@1.0.10: + resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} + dev: true - '@tsconfig/node12@1.0.11': {} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true - '@tsconfig/node14@1.0.3': {} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true - '@tsconfig/node16@1.0.4': {} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true - '@tufjs/canonical-json@1.0.0': {} + /@tufjs/canonical-json@1.0.0: + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tufjs/models@1.0.4': + /@tufjs/models@1.0.4: + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/canonical-json': 1.0.0 minimatch: 9.0.3 - '@types/acorn@4.0.6': + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: '@types/estree': 1.0.5 - '@types/aria-query@5.0.4': {} + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 + dev: true - '@types/babel__generator@7.6.8': + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: '@babel/types': 7.24.0 + dev: true - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 + dev: true - '@types/babel__traverse@7.20.5': + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: '@babel/types': 7.24.0 + dev: true - '@types/body-parser@1.19.5': + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 '@types/node': 18.18.2 - '@types/bonjour@3.5.13': + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: '@types/node': 18.18.2 - '@types/chai@4.3.14': {} + /@types/chai@4.3.14: + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - '@types/connect-history-api-fallback@1.5.4': + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.17.43 '@types/node': 18.18.2 - '@types/connect@3.4.38': + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: '@types/node': 18.18.2 - '@types/debug@4.1.12': + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - '@types/eslint-scope@3.7.7': + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: '@types/eslint': 8.56.6 '@types/estree': 1.0.5 - '@types/eslint@8.56.6': + /@types/eslint@8.56.6: + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/estree-jsx@1.0.5': + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} dependencies: '@types/estree': 1.0.5 - '@types/estree@1.0.5': {} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/expect@1.20.4': {} + /@types/expect@1.20.4: + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - '@types/express-serve-static-core@4.17.43': + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: '@types/node': 18.18.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express@4.17.21': + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.14 '@types/serve-static': 1.15.5 - '@types/fs-extra@11.0.4': + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 '@types/node': 18.18.2 + dev: true - '@types/glob@8.1.0': + /@types/glob@8.1.0: + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.18.2 + dev: true - '@types/graceful-fs@4.1.9': + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/gtag.js@0.0.12': {} + /@types/gtag.js@0.0.12: + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + dev: false - '@types/hast@3.0.4': + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: '@types/unist': 3.0.2 - '@types/history@4.7.11': {} + /@types/history@4.7.11: + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - '@types/html-minifier-terser@6.1.0': {} + /@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - '@types/http-cache-semantics@4.0.4': {} + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: false - '@types/http-errors@2.0.4': {} + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/http-proxy@1.17.14': + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: '@types/node': 18.18.2 - '@types/istanbul-lib-coverage@2.0.6': {} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - '@types/istanbul-lib-report@3.0.3': + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports@3.0.4': + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: true - '@types/js-cookie@2.2.7': {} + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false - '@types/js-yaml@4.0.9': {} + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/jsdom@20.0.1': + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: '@types/node': 18.18.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 + dev: true - '@types/json-schema@7.0.15': {} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': {} + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true - '@types/jsonfile@6.1.4': + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/lodash@4.14.181': {} - - '@types/lodash@4.17.0': {} + /@types/lodash@4.17.0: + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - '@types/mdast@4.0.3': + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: '@types/unist': 3.0.2 - '@types/mdx-js__react@1.5.8': + /@types/mdx-js__react@1.5.8: + resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/mdx@2.0.12': {} + /@types/mdx@2.0.12: + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} - '@types/mime@1.3.5': {} + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mime@3.0.4': {} + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/minimatch@3.0.5': {} + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimatch@5.1.2': {} + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true - '@types/minimist@1.2.5': {} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - '@types/mocha@10.0.6': {} + /@types/mocha@10.0.6: + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + dev: true - '@types/moo@0.5.9': {} + /@types/moo@0.5.9: + resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} + dev: true - '@types/ms@0.7.34': {} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {} + /@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae): + resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} + dev: true + patched: true - '@types/node-forge@1.3.11': + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: '@types/node': 18.18.2 - '@types/node@15.14.9': {} + /@types/node@15.14.9: + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - '@types/node@17.0.45': {} + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false - '@types/node@18.18.2': {} + /@types/node@18.18.2: + resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} - '@types/normalize-package-data@2.4.4': {} + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/normalize-path@3.0.2': {} + /@types/normalize-path@3.0.2: + resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} + dev: false - '@types/parse-json@4.0.2': {} + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: false - '@types/prismjs@1.26.3': {} + /@types/prismjs@1.26.3: + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + dev: false - '@types/prop-types@15.7.12': {} + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/qs@6.9.14': {} + /@types/qs@6.9.14: + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} - '@types/range-parser@1.2.7': {} + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.2.22': + /@types/react-dom@18.2.22: + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/react-helmet@6.1.11': + /@types/react-helmet@6.1.11: + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} dependencies: '@types/react': 18.2.71 + dev: true - '@types/react-router-config@5.0.11': + /@types/react-router-config@5.0.11: + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - '@types/react-router-dom@5.3.3': + /@types/react-router-dom@5.3.3: + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - '@types/react-router@5.1.20': + /@types/react-router@5.1.20: + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 - '@types/react@18.2.71': + /@types/react@18.2.71: + resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} dependencies: '@types/prop-types': 15.7.12 '@types/scheduler': 0.23.0 csstype: 3.1.3 - '@types/retry@0.12.0': {} + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: false - '@types/retry@0.12.2': {} + /@types/retry@0.12.2: + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - '@types/sax@1.2.7': + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: '@types/node': 18.18.2 + dev: false - '@types/sbd@1.0.5': {} + /@types/sbd@1.0.5: + resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} + dev: true - '@types/scheduler@0.23.0': {} + /@types/scheduler@0.23.0: + resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} - '@types/semver@7.5.8': {} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true - '@types/send@0.17.4': + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 '@types/node': 18.18.2 - '@types/serve-index@1.9.4': + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} dependencies: '@types/express': 4.17.21 - '@types/serve-static@1.15.5': + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.18.2 - '@types/sinon@17.0.3': + /@types/sinon@17.0.3: + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} dependencies: '@types/sinonjs__fake-timers': 8.1.5 - '@types/sinonjs__fake-timers@8.1.5': {} + /@types/sinonjs__fake-timers@8.1.5: + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - '@types/sockjs@0.3.36': + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: '@types/node': 18.18.2 - '@types/ssri@7.1.5': + /@types/ssri@7.1.5: + resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} dependencies: '@types/node': 18.18.2 + dev: true - '@types/stack-utils@2.0.3': {} - - '@types/tinycolor2@1.4.6': {} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true - '@types/tough-cookie@4.0.5': {} + /@types/tinycolor2@1.4.6: + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + dev: true - '@types/triple-beam@1.3.5': {} + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true - '@types/unist@2.0.10': {} + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/unist@3.0.2': {} + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - '@types/uuid@8.3.4': {} + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - '@types/uuid@9.0.8': {} + /@types/uuid@9.0.8: + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/vinyl@2.0.11': + /@types/vinyl@2.0.11: + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 '@types/node': 18.18.2 - '@types/vscode@1.75.1': {} - - '@types/vscode@1.88.0': {} + /@types/vscode@1.75.1: + resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} - '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)': + /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): + resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} dependencies: '@types/node': 18.18.2 tapable: 2.2.1 @@ -12972,18 +5569,31 @@ snapshots: - esbuild - uglify-js - webpack-cli + dev: true - '@types/ws@8.5.10': + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: '@types/node': 18.18.2 - '@types/yargs-parser@21.0.3': {} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.32': + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -13001,8 +5611,17 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -13013,8 +5632,17 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 @@ -13025,18 +5653,33 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/scope-manager@6.21.0': + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + dev: true - '@typescript-eslint/scope-manager@7.4.0': + /@typescript-eslint/scope-manager@7.4.0: + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 + dev: true - '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -13046,12 +5689,26 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/types@6.21.0': {} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true - '@typescript-eslint/types@7.4.0': {} + /@typescript-eslint/types@7.4.0: + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)': + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -13064,8 +5721,16 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': + /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 @@ -13078,8 +5743,13 @@ snapshots: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -13092,20 +5762,30 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/visitor-keys@6.21.0': + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + dev: true - '@typescript-eslint/visitor-keys@7.4.0': + /@typescript-eslint/visitor-keys@7.4.0: + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': {} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vscode/test-electron@2.3.9': + /@vscode/test-electron@2.3.9: + resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} + engines: {node: '>=16'} dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -13113,44 +5793,56 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - '@webassemblyjs/ast@1.12.1': + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - '@webassemblyjs/helper-api-error@1.11.6': {} + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - '@webassemblyjs/helper-buffer@1.12.1': {} + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - '@webassemblyjs/helper-numbers@1.11.6': + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - '@webassemblyjs/helper-wasm-section@1.12.1': + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/ieee754@1.11.6': + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - '@webassemblyjs/wasm-edit@1.12.1': + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -13161,7 +5853,8 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - '@webassemblyjs/wasm-gen@1.12.1': + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -13169,14 +5862,16 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wasm-opt@1.12.1': + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wasm-parser@1.12.1': + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -13185,17 +5880,32 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wast-printer@1.12.1': + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} + engines: {node: '>=14.15.0'} + peerDependencies: + prettier: '*' + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + prettier: + optional: true dependencies: prettier: 3.2.5 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) @@ -13208,125 +5918,207 @@ snapshots: - mem-fs - supports-color - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)': + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)': + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - '@xobotyi/scrollbar-width@1.9.5': {} + /@xobotyi/scrollbar-width@1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + dev: false - '@xtuc/ieee754@1.2.0': {} + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - '@xtuc/long@4.2.2': {} + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@zkochan/js-yaml@0.0.7': + /@zkochan/js-yaml@0.0.7: + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true dependencies: argparse: 2.0.1 + dev: false - '@zkochan/retry@0.2.0': {} + /@zkochan/retry@0.2.0: + resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} + engines: {node: '>=10'} + dev: false - '@zkochan/rimraf@2.1.3': + /@zkochan/rimraf@2.1.3: + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} dependencies: rimraf: 3.0.2 + dev: false - '@zkochan/which@2.0.3': + /@zkochan/which@2.0.3: + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - abab@2.0.6: {} + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true - abbrev@1.1.1: {} + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abort-controller@3.0.0: + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-globals@7.0.1: + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 + dev: true - acorn-import-assertions@1.9.0(acorn@8.11.3): + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 dependencies: acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 - acorn-walk@8.3.2: {} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} - acorn@8.11.3: {} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true - address@1.2.2: {} + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: false - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - agentkeepalive@4.2.1: + /agentkeepalive@4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) depd: 1.1.2 humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color + dev: false - agentkeepalive@4.5.0: + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} dependencies: humanize-ms: 1.2.1 - aggregate-error@3.1.0: + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.12.0): + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true dependencies: ajv: 8.12.0 - ajv-keywords@3.5.2(ajv@6.12.6): + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.12.0): + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - algoliasearch-helper@3.16.3(algoliasearch@4.22.1): + /algoliasearch-helper@3.16.3(algoliasearch@4.22.1): + resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.22.1 + dev: false - algoliasearch@4.22.1: + /algoliasearch@4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} dependencies: '@algolia/cache-browser-local-storage': 4.22.1 '@algolia/cache-common': 4.22.1 @@ -13342,96 +6134,157 @@ snapshots: '@algolia/requester-common': 4.22.1 '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 + dev: false - ansi-align@3.0.1: + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 - ansi-colors@4.1.1: {} + /ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true - ansi-colors@4.1.3: {} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true - ansi-diff@1.1.1: + /ansi-diff@1.1.1: + resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} dependencies: ansi-split: 1.0.1 + dev: true - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - ansi-html-community@0.0.8: {} + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true - ansi-regex@3.0.1: {} + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} - ansi-split@1.0.1: + /ansi-split@1.0.1: + resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} dependencies: ansi-regex: 3.0.1 + dev: true - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - any-promise@1.3.0: {} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - aproba@2.0.0: {} + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - archy@1.0.0: {} + /archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: true - are-we-there-yet@2.0.0: + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - are-we-there-yet@3.0.1: + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - arg@4.1.3: {} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true - arg@5.0.2: {} + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.3 + dev: true - aria-query@5.3.0: + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + dev: true - array-buffer-byte-length@1.0.1: + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 + dev: true - array-differ@3.0.0: {} + /array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} - array-flatten@1.1.1: {} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13439,10 +6292,15 @@ snapshots: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 + dev: true - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - array.prototype.findlast@1.2.5: + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13450,8 +6308,11 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.findlastindex@1.2.5: + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13459,37 +6320,50 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flat@1.3.2: + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flatmap@1.3.2: + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.toreversed@1.1.2: + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.tosorted@1.1.3: + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 + dev: true - arraybuffer.prototype.slice@1.0.3: + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -13499,34 +6373,63 @@ snapshots: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + dev: true - arrify@1.0.1: {} + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true - arrify@2.0.1: {} + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} - as-table@1.0.55: + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} dependencies: printable-characters: 1.0.42 + dev: true - asap@2.0.6: {} + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - assertion-error@2.0.1: {} + /assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + dev: true - ast-types-flow@0.0.8: {} + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true - astring@1.8.6: {} + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true - async@2.6.4: + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: lodash: 4.17.21 + dev: true - async@3.2.5: {} + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true - at-least-node@1.0.0: {} + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: false - autoprefixer@10.4.19(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 @@ -13536,17 +6439,29 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.0.0 + dev: true - axe-core@4.7.0: {} + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true - axobject-query@3.2.1: + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 + dev: true - babel-jest@29.7.0(@babel/core@7.24.3): + /babel-jest@29.7.0(@babel/core@7.24.3): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.24.3 '@jest/transform': 29.7.0 @@ -13558,19 +6473,30 @@ snapshots: slash: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): + /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' dependencies: '@babel/core': 7.24.3 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - babel-plugin-dynamic-import-node@2.3.3: + /babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.5 + dev: false - babel-plugin-istanbul@6.1.1: + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} dependencies: '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 @@ -13579,15 +6505,22 @@ snapshots: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-jest-hoist@29.6.3: + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 + dev: true - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -13596,7 +6529,10 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) @@ -13604,14 +6540,20 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) @@ -13626,34 +6568,55 @@ snapshots: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) + dev: true - babel-preset-jest@29.6.3(@babel/core@7.24.3): + /babel-preset-jest@29.6.3(@babel/core@7.24.3): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3) + dev: true - bail@2.0.2: {} + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - basic-auth@2.0.1: + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} dependencies: safe-buffer: 5.1.2 + dev: true - batch@0.6.1: {} + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - before-after-hook@2.2.3: {} + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-path-resolve@1.0.0: + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 + dev: true - big.js@5.2.2: {} + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: false - bin-links@3.0.3: + /bin-links@3.0.3: + resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: cmd-shim: 5.0.0 mkdirp-infer-owner: 2.0.0 @@ -13662,17 +6625,24 @@ snapshots: rimraf: 3.0.2 write-file-atomic: 4.0.2 - binary-extensions@2.3.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - binaryextensions@4.19.0: {} + /binaryextensions@4.19.0: + resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + engines: {node: '>=0.8'} - bl@4.1.0: + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.2: + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -13689,19 +6659,24 @@ snapshots: transitivePeerDependencies: - supports-color - bole@5.0.11: + /bole@5.0.11: + resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - bonjour-service@1.2.1: + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - boolbase@1.0.0: {} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@5.1.2: + /boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -13711,8 +6686,11 @@ snapshots: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 + dev: true - boxen@6.2.1: + /boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -13722,8 +6700,11 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - boxen@7.1.1: + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -13733,70 +6714,104 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - braces@3.0.2: + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - browser-stdout@1.3.1: {} + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: true - browserslist@4.23.0: + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: caniuse-lite: 1.0.30001600 electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - bs-logger@0.2.6: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 + dev: true - bser@2.1.1: + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.7.1: + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true - builtins@1.0.3: {} + /builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - builtins@5.0.1: + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.6.0 - bundle-name@4.1.0: + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} dependencies: run-applescript: 7.0.0 - busboy@1.6.0: + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 + dev: false - bytes@3.0.0: {} + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - cacache@15.3.0: + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -13819,7 +6834,9 @@ snapshots: transitivePeerDependencies: - bluebird - cacache@16.1.3: + /cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -13842,7 +6859,9 @@ snapshots: transitivePeerDependencies: - bluebird - cacache@17.1.4: + /cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 @@ -13857,9 +6876,14 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - cacheable-lookup@7.0.0: {} + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + dev: false - cacheable-request@10.2.14: + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 @@ -13868,8 +6892,11 @@ snapshots: mimic-response: 4.0.0 normalize-url: 8.0.1 responselike: 3.0.0 + dev: false - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -13877,85 +6904,133 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - camel-case@4.1.2: + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - camelcase-css@2.0.1: {} + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true - camelcase-keys@6.2.2: + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 + dev: true - camelcase-keys@7.0.2: + /camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 + dev: true - camelcase@5.3.1: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true - camelcase@6.3.0: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - camelcase@7.0.1: {} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false - can-write-to-dir@1.1.1: + /can-write-to-dir@1.1.1: + resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} + engines: {node: '>=10.13'} dependencies: path-temp: 2.1.0 + dev: true - caniuse-api@3.0.0: + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 + dev: false - caniuse-lite@1.0.30001600: {} + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - ccount@2.0.1: {} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.1.0: + /chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} dependencies: assertion-error: 2.0.1 check-error: 2.0.0 deep-eql: 5.0.1 loupe: 3.1.0 pathval: 2.0.0 + dev: true - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false - char-regex@1.0.2: {} + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} - character-entities-html4@2.1.0: {} + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@3.0.0: {} + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@2.0.2: {} + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@2.0.1: {} + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@0.7.0: {} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@2.0.0: {} + /check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + dev: true - cheerio-select@2.1.0: + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -13963,8 +7038,11 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 + dev: false - cheerio@1.0.0-rc.12: + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -13973,8 +7051,11 @@ snapshots: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 + dev: false - chokidar@3.5.3: + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -13985,8 +7066,11 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -13998,169 +7082,282 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@2.0.0: {} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} - chrome-trace-event@1.0.3: {} + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} - ci-info@3.9.0: {} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} - ci-info@4.0.0: {} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: true - cjs-module-lexer@1.2.3: {} + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true - clean-css@5.3.3: + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 - clean-regexp@1.0.0: + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} dependencies: escape-string-regexp: 1.0.5 + dev: true - clean-stack@2.2.0: {} + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} - cli-boxes@2.2.1: {} + /cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true - cli-boxes@3.0.0: {} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false - cli-columns@4.0.0: + /cli-columns@4.0.0: + resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} + engines: {node: '>= 10'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - cli-cursor@3.1.0: + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 - cli-spinners@2.9.2: {} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - cli-table3@0.6.4: + /cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} + engines: {node: 10.* || >= 12.*} dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 + dev: false - cli-table@0.3.11: + /cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} dependencies: colors: 1.0.3 - cli-width@3.0.0: {} + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} - client-only@0.0.1: {} + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false - cliui@7.0.4: + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - clone-buffer@1.0.0: {} + /clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} - clone-deep@4.0.1: + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - clone-stats@1.0.0: {} + /clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - clone@1.0.4: {} + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} - clone@2.1.2: {} + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} - cloneable-readable@1.1.3: + /cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 - clsx@2.1.0: {} + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + dev: false - cmd-shim@5.0.0: + /cmd-shim@5.0.0: + resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: mkdirp-infer-owner: 2.0.0 - co@4.6.0: {} + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true - collapse-white-space@2.1.0: {} + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - collect-v8-coverage@1.0.2: {} + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - color-support@1.1.3: {} + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true - color@3.2.1: + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} dependencies: color-convert: 1.9.3 color-string: 1.9.1 - colord@2.9.3: {} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: false - colorette@2.0.20: {} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colors@1.0.3: {} + /colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} - colorspace@1.1.4: + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} dependencies: color: 3.2.1 text-hex: 1.0.0 - combine-promises@1.2.0: {} + /combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + dev: false - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true - comma-separated-tokens@2.0.3: {} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@10.0.1: {} + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} - commander@11.1.0: {} + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true - commander@2.20.3: {} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: {} + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true - commander@5.1.0: {} + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} - commander@7.1.0: {} + /commander@7.1.0: + resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} + engines: {node: '>= 10'} - commander@7.2.0: {} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - commander@8.3.0: {} + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - common-ancestor-path@1.0.1: {} + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - common-path-prefix@3.0.0: {} + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: false - commondir@1.0.1: {} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compressible@2.0.18: + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - compression@1.7.4: + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -14172,50 +7369,83 @@ snapshots: transitivePeerDependencies: - supports-color - comver-to-semver@1.0.0: {} + /comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + dev: false - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - config-chain@1.1.13: + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 proto-list: 1.2.4 - configstore@6.0.0: + /configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 + dev: false - connect-history-api-fallback@2.0.0: {} + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} - consola@2.15.3: {} + /consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: false - console-control-strings@1.1.0: {} + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - content-disposition@0.5.2: {} + /content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + dev: false - content-disposition@0.5.4: + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 - content-type@1.0.5: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: {} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.6.0: {} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} - copy-text-to-clipboard@3.2.0: {} + /copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + dev: false - copy-to-clipboard@3.3.3: + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} dependencies: toggle-selection: 1.0.6 + dev: false - copy-webpack-plugin@11.0.0(webpack@5.91.0): + /copy-webpack-plugin@11.0.0(webpack@5.91.0): + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -14224,36 +7454,61 @@ snapshots: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - core-js-compat@3.36.1: + /core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: browserslist: 4.23.0 - core-js-pure@3.36.1: {} + /core-js-pure@3.36.1: + resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} + requiresBuild: true + dev: false - core-js@3.36.1: {} + /core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + requiresBuild: true + dev: false - core-util-is@1.0.3: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - corser@2.0.1: {} + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true - cosmiconfig@6.0.0: + /cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: false - cosmiconfig@7.1.0: + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: false - cosmiconfig@8.3.6(typescript@5.4.3): + /cosmiconfig@8.3.6(typescript@5.4.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -14261,15 +7516,26 @@ snapshots: path-type: 4.0.0 typescript: 5.4.3 - cosmiconfig@9.0.0(typescript@5.4.3): + /cosmiconfig@9.0.0(typescript@5.4.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 typescript: 5.4.3 + dev: true - create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -14283,30 +7549,58 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - create-require@1.1.1: {} + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@2.0.0: {} + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true - crypto-random-string@4.0.0: + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} dependencies: type-fest: 1.4.0 + dev: false - css-declaration-sorter@6.4.1(postcss@8.4.38): + /css-declaration-sorter@6.4.1(postcss@8.4.38): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 dependencies: postcss: 8.4.38 + dev: false - css-in-js-utils@3.1.0: + /css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} dependencies: hyphenate-style-name: 1.0.4 + dev: false - css-loader@6.10.0(webpack@5.91.0): + /css-loader@6.10.0(webpack@5.91.0): + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -14318,7 +7612,30 @@ snapshots: semver: 7.6.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): + /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true dependencies: clean-css: 5.3.3 cssnano: 5.1.15(postcss@8.4.38) @@ -14329,8 +7646,10 @@ snapshots: serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - css-select@4.3.0: + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -14338,7 +7657,8 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 - css-select@5.1.0: + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -14346,26 +7666,44 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 - css-tree@1.1.3: + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} dependencies: mdn-data: 2.0.14 source-map: 0.6.1 + dev: false - css-tree@2.2.1: + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 + dev: true - css-tree@2.3.1: + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 + dev: true - css-what@6.1.0: {} + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} - cssesc@3.0.0: {} + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true - cssnano-preset-advanced@5.3.10(postcss@8.4.38): + /cssnano-preset-advanced@5.3.10(postcss@8.4.38): + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: autoprefixer: 10.4.19(postcss@8.4.38) cssnano-preset-default: 5.2.14(postcss@8.4.38) @@ -14374,8 +7712,13 @@ snapshots: postcss-merge-idents: 5.1.1(postcss@8.4.38) postcss-reduce-idents: 5.2.0(postcss@8.4.38) postcss-zindex: 5.1.0(postcss@8.4.38) + dev: false - cssnano-preset-default@5.2.14(postcss@8.4.38): + /cssnano-preset-default@5.2.14(postcss@8.4.38): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: css-declaration-sorter: 6.4.1(postcss@8.4.38) cssnano-utils: 3.1.0(postcss@8.4.38) @@ -14407,113 +7750,214 @@ snapshots: postcss-reduce-transforms: 5.1.0(postcss@8.4.38) postcss-svgo: 5.1.0(postcss@8.4.38) postcss-unique-selectors: 5.1.1(postcss@8.4.38) + dev: false - cssnano-utils@3.1.0(postcss@8.4.38): + /cssnano-utils@3.1.0(postcss@8.4.38): + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - cssnano@5.1.15(postcss@8.4.38): + /cssnano@5.1.15(postcss@8.4.38): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.38) lilconfig: 2.1.0 postcss: 8.4.38 yaml: 1.10.2 + dev: false - csso@4.2.0: + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} dependencies: css-tree: 1.1.3 + dev: false - csso@5.0.5: + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: css-tree: 2.2.1 + dev: true - cssom@0.3.8: {} + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true - cssom@0.5.0: {} + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true - cssstyle@2.3.0: + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} dependencies: cssom: 0.3.8 + dev: true - csstype@3.1.3: {} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - damerau-levenshtein@1.0.8: {} + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true - dargs@7.0.0: {} + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} - data-uri-to-buffer@2.0.2: {} + /data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true - data-uri-to-buffer@3.0.1: {} + /data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: false - data-urls@3.0.2: + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 + dev: true - data-view-buffer@1.0.1: + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-length@1.0.1: + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-offset@1.0.0: + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - dateformat@4.6.3: {} + /dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - debounce@1.2.1: {} + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: false - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 - debug@3.2.7: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - debug@4.3.4(supports-color@8.1.1): + /debug@4.3.4(supports-color@8.1.1): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 supports-color: 8.1.1 - debuglog@1.0.1: {} + /debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - decamelize-keys@1.1.1: + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 map-obj: 1.0.1 + dev: true - decamelize@1.2.0: {} + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true - decamelize@4.0.0: {} + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: true - decamelize@5.0.1: {} + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true - decimal.js@10.4.3: {} + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - decode-named-character-reference@1.0.2: + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 + dev: false - dedent@1.5.1: {} + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deep-eql@5.0.1: {} + /deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + dev: true - deep-equal@2.2.3: + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -14533,47 +7977,74 @@ snapshots: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: true - deep-extend@0.6.0: {} + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: {} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - default-browser-id@5.0.0: {} + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} - default-browser@5.2.1: + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - default-gateway@6.0.3: + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} dependencies: execa: 5.1.1 - defaults@1.0.4: + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - defer-to-connect@2.0.1: {} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: false - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: false - define-lazy-prop@3.0.0: {} + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - del@6.1.1: + /del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -14583,201 +8054,327 @@ snapshots: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 + dev: false - delayed-stream@1.0.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true - delegates@1.0.0: {} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@1.1.2: {} + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} - depd@2.0.0: {} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - deprecation@2.3.1: {} + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dequal@2.0.3: {} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@7.0.1: {} + /detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + dev: true - detect-libc@2.0.3: {} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: true - detect-newline@3.1.0: {} + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - detect-node@2.1.0: {} + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-port-alt@1.1.6: + /detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true dependencies: address: 1.2.2 debug: 2.6.9 transitivePeerDependencies: - supports-color + dev: false - detect-port@1.5.1: + /detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true dependencies: address: 1.2.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false - devlop@1.1.0: + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dependencies: dequal: 2.0.3 - dezalgo@1.0.4: + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: asap: 2.0.6 wrappy: 1.0.2 - didyoumean@1.2.2: {} + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: {} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true - diff@5.0.0: {} + /diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true - diff@5.2.0: {} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 - discontinuous-range@1.0.0: {} + /discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + dev: false - dlv@1.1.3: {} + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true - dns-packet@5.6.1: + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.4 - doctrine@2.1.0: + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true - dom-converter@0.2.0: + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: utila: 0.4.0 - dom-serializer@1.4.1: + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - dom-serializer@2.0.0: + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - domelementtype@2.3.0: {} + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domexception@4.0.0: + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 + dev: true - domhandler@4.3.1: + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - domhandler@5.0.3: + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - domutils@2.8.0: + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.1.0: + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dot-case@3.0.4: + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - dot-prop@6.0.1: + /dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} dependencies: is-obj: 2.0.0 + dev: false - duplexer@0.1.2: {} + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: false - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: {} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@2.0.0-next.62: {} + /effect@2.0.0-next.62: + resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} + dev: true - ejs@3.1.9: + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true dependencies: jake: 10.8.7 - electron-to-chromium@1.4.717: {} + /electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} - emittery@0.13.1: {} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: {} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojilib@2.4.0: {} + /emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + dev: false - emojis-list@3.0.0: {} + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: false - emoticon@4.0.1: {} + /emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + dev: false - enabled@2.0.0: {} + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encodeurl@1.0.2: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - encoding@0.1.13: + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true dependencies: iconv-lite: 0.6.3 optional: true - enhanced-resolve@5.16.0: + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - enquirer@2.4.1: + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + dev: true - entities@2.2.0: {} + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - env-paths@2.2.1: {} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} - envinfo@7.11.1: {} + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true - err-code@2.0.3: {} + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: stackframe: 1.3.4 + dev: false - error@10.4.0: {} + /error@10.4.0: + resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} - es-abstract@1.23.2: + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -14825,14 +8422,20 @@ snapshots: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -14843,8 +8446,11 @@ snapshots: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + dev: true - es-iterator-helpers@1.0.18: + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -14860,30 +8466,47 @@ snapshots: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + dev: true - es-module-lexer@1.5.0: {} + /es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - es-object-atoms@1.0.0: + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 + dev: true - es-set-tostringtag@2.0.3: + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 + dev: true - es-shim-unscopables@1.0.2: + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: hasown: 2.0.2 + dev: true - es-to-primitive@1.2.1: + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 + dev: true - esbuild@0.20.2: + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -14909,29 +8532,56 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - escalade@3.1.2: {} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} - escape-goat@4.0.0: {} + /escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + dev: false - escape-html@1.0.3: {} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: {} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: {} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - escape-string-regexp@5.0.0: {} + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false - escodegen@2.1.0: + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 + dev: true - eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): + /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@next/eslint-plugin-next': 14.1.4 '@rushstack/eslint-patch': 1.8.0 @@ -14947,20 +8597,33 @@ snapshots: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color + dev: true - eslint-config-prettier@9.1.0(eslint@8.57.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.57.0 + dev: true - eslint-import-resolver-node@0.3.9: + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -14976,8 +8639,14 @@ snapshots: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color + dev: true - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -14993,8 +8662,28 @@ snapshots: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color + dev: true - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -15003,8 +8692,28 @@ snapshots: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color + dev: true - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -15013,8 +8722,17 @@ snapshots: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.8 @@ -15039,8 +8757,13 @@ snapshots: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: '@babel/runtime': 7.24.1 aria-query: 5.3.0 @@ -15059,19 +8782,34 @@ snapshots: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 + dev: true - eslint-plugin-mocha@10.4.1(eslint@8.57.0): + /eslint-plugin-mocha@10.4.1(eslint@8.57.0): + resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) globals: 13.24.0 rambda: 7.5.0 + dev: true - eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.57.0 + dev: true - eslint-plugin-react@7.34.1(eslint@8.57.0): + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -15092,8 +8830,13 @@ snapshots: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + dev: true - eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -15114,35 +8857,65 @@ snapshots: strip-indent: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): + /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): + resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true dependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 + dev: true - eslint-rule-composer@0.3.0: {} + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@8.57.0): + /eslint-utils@3.0.0(eslint@8.57.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -15185,77 +8958,116 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - esquery@1.5.0: + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - estree-util-attach-comments@3.0.0: + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} dependencies: '@types/estree': 1.0.5 - estree-util-build-jsx@3.0.1: + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - estree-util-is-identifier-name@3.0.0: {} + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-util-to-js@2.0.0: + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - estree-util-value-to-estree@3.0.1: + /estree-util-value-to-estree@3.0.1: + resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} + engines: {node: '>=16.0.0'} dependencies: '@types/estree': 1.0.5 is-plain-obj: 4.1.0 + dev: false - estree-util-visit@2.0.0: + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 - estree-walker@3.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - eta@2.2.0: {} + /eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + dev: false - etag@1.8.1: {} + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - eval@0.1.8: + /eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} dependencies: '@types/node': 18.18.2 require-like: 0.1.2 + dev: false - event-target-shim@5.0.1: {} + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} - eventemitter3@4.0.7: {} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - events@3.3.0: {} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -15267,19 +9079,28 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - exit@0.1.2: {} + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true - expect@29.7.0: + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: true - exponential-backoff@3.1.1: {} + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - express@4.19.2: + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -15315,29 +9136,44 @@ snapshots: transitivePeerDependencies: - supports-color - extend-shallow@2.0.1: + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 + dev: false - extend@3.0.2: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - fast-check@3.15.0: + /fast-check@3.15.0: + resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} + engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 + dev: true - fast-check@3.17.0: + /fast-check@3.17.0: + resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} + engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -15345,77 +9181,129 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-loops@1.1.3: {} + /fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + dev: false - fast-safe-stringify@2.1.1: {} + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-shallow-equal@1.0.0: {} + /fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + dev: false - fast-url-parser@1.1.3: + /fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: punycode: 1.4.1 + dev: false - fast-xml-parser@4.3.6: + /fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true dependencies: strnum: 1.0.5 + dev: true - fastest-levenshtein@1.0.16: {} + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} - fastest-stable-stringify@2.0.2: {} + /fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + dev: false - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 - fault@2.0.1: + /fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: format: 0.2.2 + dev: false - faye-websocket@0.11.4: + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true - fecha@4.2.3: {} + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - feed@4.2.2: + /feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} dependencies: xml-js: 1.6.11 + dev: false - fetch-blob@2.1.2: {} + /fetch-blob@2.1.2: + resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} + engines: {node: ^10.17.0 || >=12.3.0} + peerDependencies: + domexception: '*' + peerDependenciesMeta: + domexception: + optional: true + dev: false - figures@3.2.0: + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.91.0): + /file-loader@6.2.0(webpack@5.91.0): + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - filelist@1.0.4: + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 - filesize@8.0.7: {} + /filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + dev: false - fill-range@7.0.1: + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -15427,63 +9315,108 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@4.0.0: + /find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + dev: false - find-up@3.0.0: + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 + dev: false - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: locate-path: 7.2.0 path-exists: 5.0.0 + dev: false - find-yarn-workspace-root2@1.2.16: + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - first-chunk-stream@2.0.0: + /first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} dependencies: readable-stream: 2.3.8 - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - flat@5.0.2: {} + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - fn.name@1.1.0: {} + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.6: {} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true - for-each@0.3.3: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true - foreground-child@3.1.1: + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -15501,63 +9434,102 @@ snapshots: tapable: 1.1.3 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - form-data-encoder@2.1.4: {} + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + dev: false - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true - format@0.2.2: {} + /format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + dev: false - forwarded@0.2.0: {} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} - fraction.js@4.3.7: {} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: {} + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} - fs-extra@11.2.0: + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@9.1.0: + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + dev: false - fs-minipass@2.1.0: + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - fs-minipass@3.0.3: + /fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - fs-monkey@1.0.5: {} + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: false - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 functions-have-names: 1.2.3 + dev: true - functions-have-names@1.2.3: {} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - gauge@3.0.2: + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -15569,7 +9541,9 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 - gauge@4.0.4: + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -15580,13 +9554,22 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-func-name@2.0.2: {} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -15594,48 +9577,77 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-npm-tarball-url@2.1.0: {} + /get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + dev: false - get-own-enumerable-property-symbols@3.0.2: {} + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: false - get-package-type@0.1.0: {} + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true - get-source@2.0.12: + /get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} - get-symbol-description@1.0.2: + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 + dev: true - get-tsconfig@4.7.3: + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 + dev: true - github-slugger@1.5.0: {} + /github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + dev: false - github-username@6.0.0: + /github-username@6.0.0: + resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} + engines: {node: '>=10'} dependencies: '@octokit/rest': 18.12.0 transitivePeerDependencies: - encoding - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -15643,7 +9655,8 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -15652,7 +9665,9 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -15660,31 +9675,49 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 - global-dirs@3.0.1: + /global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} dependencies: ini: 2.0.0 + dev: false - global-modules@2.0.0: + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 + dev: false - global-prefix@3.0.0: + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 + dev: false - globals@11.12.0: {} + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - globalthis@1.0.3: + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -15693,19 +9726,25 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 + dev: false - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 - got@12.6.1: + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -15718,66 +9757,108 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 + dev: false - graceful-fs@4.2.10: {} + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graceful-git@3.1.2: + /graceful-git@3.1.2: + resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} + engines: {node: '>=10'} dependencies: retry: 0.12.0 safe-execa: 0.1.2 + dev: false - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - gray-matter@4.0.3: + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 + dev: false - grouped-queue@2.0.0: {} + /grouped-queue@2.0.0: + resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} + engines: {node: '>=8.0.0'} - gzip-size@6.0.0: + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} dependencies: duplexer: 0.1.2 + dev: false - handle-thing@2.0.1: {} + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - hard-rejection@2.1.0: {} + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true - has-bigints@1.0.2: {} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - has-proto@1.0.3: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - has-unicode@2.0.1: {} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has-yarn@3.0.0: {} + /has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - hasharray@1.1.2: + /hasharray@1.1.2: + resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} dependencies: jclass: 1.2.1 + dev: false - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - hast-util-from-parse5@8.0.1: + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -15787,12 +9868,16 @@ snapshots: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 + dev: false - hast-util-parse-selector@4.0.0: + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-raw@9.0.2: + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -15807,8 +9892,10 @@ snapshots: vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-to-estree@3.1.0: + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -15829,7 +9916,8 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-jsx-runtime@2.3.0: + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -15849,7 +9937,8 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@8.0.0: + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -15858,22 +9947,29 @@ snapshots: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-whitespace@3.0.0: + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: '@types/hast': 3.0.4 - hastscript@8.0.0: + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 + dev: false - he@1.2.0: {} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true - history@4.10.1: + /history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: '@babel/runtime': 7.24.1 loose-envify: 1.4.0 @@ -15881,41 +9977,61 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 value-equal: 1.0.1 + dev: false - hoist-non-react-statics@3.3.2: + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 + dev: false - hosted-git-info@2.8.9: {} + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - hosted-git-info@4.1.0: + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 - hosted-git-info@6.1.1: + /hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 - hosted-git-info@7.0.1: + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.2.0 + dev: true - hpack.js@2.1.6: + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - html-encoding-sniffer@3.0.0: + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 + dev: true - html-entities@2.5.2: {} + /html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-minifier-terser@6.1.0: + /html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -15925,7 +10041,10 @@ snapshots: relateurl: 0.2.7 terser: 5.29.2 - html-minifier-terser@7.2.0: + /html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -15934,12 +10053,28 @@ snapshots: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.29.2 + dev: false - html-tags@3.3.1: {} + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: false - html-void-elements@3.0.0: {} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false - html-webpack-plugin@5.6.0(webpack@5.91.0): + /html-webpack-plugin@5.6.0(webpack@5.91.0): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -15948,32 +10083,41 @@ snapshots: tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - htmlparser2@6.1.0: + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - htmlparser2@8.0.2: + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 + dev: false - http-cache-semantics@4.1.1: {} + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-deceiver@1.2.7: {} + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - http-errors@1.6.3: + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -15981,9 +10125,12 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.8: {} + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - http-proxy-agent@4.0.1: + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -15991,7 +10138,9 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-agent@5.0.0: + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -15999,7 +10148,14 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.6(@types/express@4.17.21): + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true dependencies: '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 @@ -16010,7 +10166,9 @@ snapshots: transitivePeerDependencies: - debug - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 @@ -16018,7 +10176,10 @@ snapshots: transitivePeerDependencies: - debug - http-server@14.1.1: + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -16036,112 +10197,187 @@ snapshots: transitivePeerDependencies: - debug - supports-color + dev: true - http2-wrapper@2.2.1: + /http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: false - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - human-signals@2.1.0: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - humanize-ms@1.2.1: + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - hyphenate-style-name@1.0.4: {} + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + dev: false - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.38): + /icss-utils@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@4.0.1: + /ignore-walk@4.0.1: + resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} + engines: {node: '>=10'} dependencies: minimatch: 3.1.2 - ignore-walk@6.0.4: + /ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minimatch: 9.0.3 - ignore@5.3.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} - image-size@1.1.1: + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true dependencies: queue: 6.0.2 + dev: false - immediate@3.0.6: {} + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: true - immer@10.0.4: {} + /immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + dev: false - immer@9.0.21: {} + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false - immutability-helper@3.1.1: {} + /immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} + dev: false - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@4.0.0: {} + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: false - import-local@3.1.0: + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - indent-string@4.0.0: {} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} - indent-string@5.0.0: {} + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true - individual@3.0.0: {} + /individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - infer-owner@1.0.4: {} + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - infima@0.2.0-alpha.43: {} + /infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + dev: false - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@2.0.0: {} + /ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: false - ini@3.0.1: {} + /ini@3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dev: true - inline-style-parser@0.1.1: {} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.2: {} + /inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - inline-style-prefixer@7.0.0: + /inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} dependencies: css-in-js-utils: 3.1.0 fast-loops: 1.1.3 + dev: false - inquirer@8.2.6: + /inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -16159,255 +10395,454 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.0.7: + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + dev: true - interpret@1.4.0: {} + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} - interpret@3.1.1: {} + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} - invariant@2.2.4: + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 - ip-address@9.0.5: + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} - ipaddr.js@2.1.0: {} + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} - is-alphabetical@2.0.1: {} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@2.0.1: + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.1.1: + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-array-buffer@3.0.4: + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: {} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-bigint@1.0.4: + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-builtin-module@3.2.1: + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true - is-callable@1.2.7: {} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true - is-ci@3.0.1: + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true dependencies: ci-info: 3.9.0 + dev: false - is-core-module@2.13.1: + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 + dev: true - is-date-object@1.0.5: + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-decimal@2.0.1: {} + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: false - is-docker@3.0.0: {} + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true - is-extendable@0.1.1: {} + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: call-bind: 1.0.7 + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - is-generator-fn@2.1.0: {} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true - is-generator-function@1.0.10: + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - is-hexadecimal@2.0.1: {} + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-inside-container@1.0.0: + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: is-docker: 3.0.0 - is-installed-globally@0.4.0: + /is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 + dev: false - is-interactive@1.0.0: {} + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} - is-lambda@1.0.1: {} + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: {} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true - is-negative-zero@2.0.3: {} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true - is-network-error@1.1.0: {} + /is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} - is-npm@6.0.0: {} + /is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - is-number-object@1.0.7: + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - is-obj@1.0.1: {} + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: false - is-obj@2.0.0: {} + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: false - is-path-cwd@2.2.0: {} + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: false - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} - is-plain-obj@1.1.0: {} + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true - is-plain-obj@2.1.0: {} + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} - is-plain-obj@3.0.0: {} + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} - is-plain-obj@4.1.0: {} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} - is-plain-object@2.0.4: + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - is-plain-object@5.0.0: {} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-reference@3.0.2: + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.5 - is-regex@1.1.4: + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-regexp@1.0.0: {} + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: false - is-root@2.1.0: {} + /is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + dev: false - is-scoped@2.1.0: + /is-scoped@2.1.0: + resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} + engines: {node: '>=8'} dependencies: scoped-regex: 2.1.0 - is-set@2.0.3: {} + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true - is-shared-array-buffer@1.0.3: + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - is-string@1.0.7: + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-subdir@1.2.0: + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 + dev: true - is-symbol@1.0.4: + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - is-typed-array@1.1.13: + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.15 + dev: true - is-typedarray@1.0.0: {} + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: {} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} - is-utf8@0.2.1: {} + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - is-weakmap@2.0.2: {} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true - is-weakref@1.0.2: + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 + dev: true - is-weakset@2.0.3: + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-windows@1.0.2: {} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: false - is-wsl@3.1.0: + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 - is-yarn-global@0.4.1: {} + /is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + dev: false - isarray@0.0.1: {} + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: false - isarray@1.0.0: {} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: {} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - isbinaryfile@4.0.10: {} + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} - isbinaryfile@5.0.2: {} + /isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isobject@3.0.1: {} + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-instrument@5.2.1: + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -16416,8 +10851,11 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-instrument@6.0.2: + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -16426,58 +10864,85 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@4.0.1: + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.7: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - iterator.prototype@1.1.2: + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 + dev: true - itertools@2.2.5: {} + /itertools@2.2.5: + resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} + dev: false - jackspeak@2.3.6: + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.8.7: + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true dependencies: async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - jclass@1.2.1: {} + /jclass@1.2.1: + resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} + engines: {node: '>= 0.6'} + dev: false - jest-changed-files@29.7.0: + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 + dev: true - jest-circus@29.7.0: + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -16502,8 +10967,17 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/test-result': 29.7.0 @@ -16521,8 +10995,19 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -16551,27 +11036,44 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-diff@29.7.0: + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-docblock@29.7.0: + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 + dev: true - jest-each@29.7.0: + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 + dev: true - jest-environment-jsdom@29.7.0: + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16585,8 +11087,11 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jest-environment-node@29.7.0: + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16594,10 +11099,16 @@ snapshots: '@types/node': 18.18.2 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - jest-get-type@29.6.3: {} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-haste-map@29.7.0: + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 @@ -16612,20 +11123,29 @@ snapshots: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + dev: true - jest-leak-detector@29.7.0: + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-matcher-utils@29.7.0: + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-message-util@29.7.0: + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -16636,27 +11156,47 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: true - jest-mock@29.7.0: + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-util: 29.7.0 + dev: true - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true dependencies: jest-resolve: 29.7.0 + dev: true - jest-regex-util@29.6.3: {} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-resolve-dependencies@29.7.0: + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - jest-resolve@29.7.0: + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -16667,8 +11207,11 @@ snapshots: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 + dev: true - jest-runner@29.7.0: + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -16693,8 +11236,11 @@ snapshots: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color + dev: true - jest-runtime@29.7.0: + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -16720,8 +11266,11 @@ snapshots: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color + dev: true - jest-snapshot@29.7.0: + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -16745,8 +11294,11 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - jest-util@29.7.0: + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -16755,7 +11307,9 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@29.7.0: + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -16763,8 +11317,11 @@ snapshots: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 + dev: true - jest-watcher@29.7.0: + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -16774,21 +11331,34 @@ snapshots: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 + dev: true - jest-worker@27.5.1: + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/node': 18.18.2 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.18.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 @@ -16799,10 +11369,14 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - jiti@1.21.0: {} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true - joi@17.12.2: + /joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -16810,22 +11384,37 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - js-cookie@2.2.1: {} + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdom@20.0.3: + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: abab: 2.0.6 acorn: 8.11.3 @@ -16857,168 +11446,272 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jsesc@0.5.0: {} + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true - jsesc@3.0.2: {} + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.1: {} + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-nice@1.1.4: {} + /json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - json-stringify-safe@5.0.1: {} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json5@1.0.2: + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - jsonfile@6.1.0: + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonparse@1.3.1: {} + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} - jsx-ast-utils@3.3.5: + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 + dev: true - jszip@3.10.1: + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 + dev: true - just-diff-apply@5.5.0: {} + /just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - just-diff@5.2.0: {} + /just-diff@5.2.0: + resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} - just-extend@6.2.0: {} + /just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} - kuler@2.0.0: {} + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - language-subtag-registry@0.3.22: {} + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true - language-tags@1.0.9: + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.22 + dev: true - latest-version@7.0.0: + /latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} dependencies: package-json: 8.1.1 + dev: false - launch-editor@2.6.1: + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lie@3.3.0: + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 + dev: true - lilconfig@2.1.0: {} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} - lilconfig@3.1.1: {} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - load-json-file@6.2.0: + /load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} dependencies: graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 + dev: true - load-json-file@7.0.1: {} + /load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - load-script@1.0.0: {} + /load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + dev: false - load-yaml-file@0.2.0: + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - loader-runner@4.3.0: {} + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} - loader-utils@2.0.4: + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 + dev: false - loader-utils@3.2.1: {} + /loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: false - locate-path@3.0.0: + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 + dev: false - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - locate-path@7.2.0: + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 + dev: false - lodash.debounce@4.0.8: {} + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.get@4.4.2: {} + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true - lodash.memoize@4.1.2: {} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.uniq@4.5.0: {} + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: false - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - logform@2.6.0: + /logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -17027,45 +11720,74 @@ snapshots: safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - longest-streak@3.1.0: {} + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 - loupe@3.1.0: + /loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} dependencies: get-func-name: 2.0.2 + dev: true - lower-case@2.0.2: + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.6.2 - lowercase-keys@3.0.0: {} + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - lru-cache@10.2.0: {} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 - lru-cache@7.10.1: {} + /lru-cache@7.10.1: + resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} + engines: {node: '>=12'} + dev: false - lru-cache@7.18.3: {} + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} - lz-string@1.5.0: {} + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.6.0 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true - make-fetch-happen@10.2.1: + /make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: agentkeepalive: 4.5.0 cacache: 16.1.3 @@ -17087,7 +11809,9 @@ snapshots: - bluebird - supports-color - make-fetch-happen@11.1.1: + /make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: agentkeepalive: 4.5.0 cacache: 17.1.4 @@ -17107,7 +11831,9 @@ snapshots: transitivePeerDependencies: - supports-color - make-fetch-happen@9.1.0: + /make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} dependencies: agentkeepalive: 4.5.0 cacache: 15.3.0 @@ -17129,23 +11855,39 @@ snapshots: - bluebird - supports-color - makeerror@1.0.12: + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: true - map-age-cleaner@0.1.3: + /map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} dependencies: p-defer: 1.0.0 + dev: true - map-obj@1.0.1: {} + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true - map-obj@4.3.0: {} + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true - markdown-extensions@2.0.0: {} + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} - markdown-table@3.0.3: {} + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false - mdast-util-directive@3.0.0: + /mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17157,15 +11899,19 @@ snapshots: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color + dev: false - mdast-util-find-and-replace@3.0.1: + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - mdast-util-from-markdown@2.0.0: + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17182,7 +11928,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: + /mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17192,16 +11939,20 @@ snapshots: micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-autolink-literal@2.0.0: + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} dependencies: '@types/mdast': 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 + dev: false - mdast-util-gfm-footnote@2.0.0: + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17210,16 +11961,20 @@ snapshots: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-strikethrough@2.0.0: + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-table@2.0.0: + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17228,8 +11983,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-task-list-item@2.0.0: + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -17237,8 +11994,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm@3.0.0: + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -17249,8 +12008,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-expression@2.0.0: + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17261,7 +12022,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.2: + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17279,7 +12041,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -17289,7 +12052,8 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdxjs-esm@2.0.1: + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -17300,12 +12064,14 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-phrasing@4.1.0: + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - mdast-util-to-hast@13.1.0: + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -17317,7 +12083,8 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.1 - mdast-util-to-markdown@2.1.0: + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -17328,19 +12095,35 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@4.0.0: + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: '@types/mdast': 4.0.3 - mdn-data@2.0.14: {} + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: false - mdn-data@2.0.28: {} + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true - mdn-data@2.0.30: {} + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} - mem-fs-editor@9.7.0(mem-fs@2.3.0): + /mem-fs-editor@9.7.0(mem-fs@2.3.0): + resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} + engines: {node: '>=12.10.0'} + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true dependencies: binaryextensions: 4.19.0 commondir: 1.0.1 @@ -17354,29 +12137,43 @@ snapshots: normalize-path: 3.0.0 textextensions: 5.16.0 - mem-fs@2.3.0: + /mem-fs@2.3.0: + resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} + engines: {node: '>=12'} dependencies: '@types/node': 15.14.9 '@types/vinyl': 2.0.11 vinyl: 2.2.1 vinyl-file: 3.0.0 - mem@8.1.1: + /mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 + dev: true - memfs@3.5.3: + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.5 + dev: false - memfs@4.8.0: + /memfs@4.8.0: + resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + engines: {node: '>= 4.0.0'} dependencies: tslib: 2.6.2 - memoize-one@5.2.1: {} + /memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: false - meow@10.1.5: + /meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: '@types/minimist': 1.2.5 camelcase-keys: 7.0.2 @@ -17390,16 +12187,24 @@ snapshots: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 + dev: true - merge-descriptors@1.0.1: {} + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - methods@1.1.2: {} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.0: + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -17418,7 +12223,8 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-directive@3.0.0: + /micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -17427,22 +12233,28 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 + dev: false - micromark-extension-frontmatter@2.0.0: + /micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} dependencies: fault: 2.0.1 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-autolink-literal@2.0.0: + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-footnote@2.0.0: + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -17452,8 +12264,10 @@ snapshots: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-strikethrough@2.0.0: + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -17461,28 +12275,36 @@ snapshots: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-table@2.0.0: + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-tagfilter@2.0.0: + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-task-list-item@2.0.1: + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm@3.0.0: + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -17492,8 +12314,10 @@ snapshots: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-expression@3.0.0: + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17504,7 +12328,8 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-mdx-jsx@3.0.0: + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -17517,11 +12342,13 @@ snapshots: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - micromark-extension-mdx-md@2.0.0: + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} dependencies: micromark-util-types: 2.0.0 - micromark-extension-mdxjs-esm@3.0.0: + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17533,7 +12360,8 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - micromark-extension-mdxjs@3.0.0: + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -17544,20 +12372,23 @@ snapshots: micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-destination@2.0.0: + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-label@2.0.0: + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@2.0.1: + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -17568,69 +12399,84 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - micromark-factory-space@1.1.0: + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 + dev: false - micromark-factory-space@2.0.0: + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - micromark-factory-title@2.0.0: + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-whitespace@2.0.0: + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-character@1.2.0: + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + dev: false - micromark-util-character@2.1.0: + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-chunked@2.0.0: + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-classify-character@2.0.0: + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-combine-extensions@2.0.0: + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-decode-numeric-character-reference@2.0.1: + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-decode-string@2.0.0: + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - micromark-util-encode@2.0.0: {} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - micromark-util-events-to-acorn@2.0.2: + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -17641,38 +12487,50 @@ snapshots: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - micromark-util-html-tag-name@2.0.0: {} + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - micromark-util-normalize-identifier@2.0.0: + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} dependencies: micromark-util-symbol: 2.0.0 - micromark-util-resolve-all@2.0.0: + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} dependencies: micromark-util-types: 2.0.0 - micromark-util-sanitize-uri@2.0.0: + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - micromark-util-subtokenize@2.0.0: + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-symbol@1.1.0: {} + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false - micromark-util-symbol@2.0.0: {} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - micromark-util-types@1.1.0: {} + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false - micromark-util-types@2.0.0: {} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromark@4.0.0: + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 debug: 4.3.4(supports-color@8.1.1) @@ -17694,76 +12552,129 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 - mime-db@1.33.0: {} + /mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + dev: false - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - mime-types@2.1.18: + /mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.33.0 + dev: false - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - mime@1.6.0: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} - mimic-fn@3.1.0: {} + /mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + dev: true - mimic-response@3.1.0: {} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false - mimic-response@4.0.0: {} + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - min-indent@1.0.1: {} + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true - mini-css-extract-plugin@2.8.1(webpack@5.91.0): + /mini-css-extract-plugin@2.8.1(webpack@5.91.0): + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - minimalistic-assert@1.0.1: {} + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - minimatch@5.0.1: + /minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true - minimatch@5.1.6: + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - minimatch@7.4.6: + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - minimist-options@4.1.0: + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - minipass-fetch@1.4.1: + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -17771,7 +12682,9 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-fetch@2.1.2: + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -17779,7 +12692,9 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-fetch@3.0.4: + /minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 @@ -17787,49 +12702,75 @@ snapshots: optionalDependencies: encoding: 0.1.13 - minipass-flush@1.0.5: + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - minipass-json-stream@1.0.1: + /minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - minipass-pipeline@1.2.4: + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 - minipass-sized@1.0.3: + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} dependencies: minipass: 3.3.6 - minipass@3.3.6: + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 - minipass@5.0.0: {} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} - minipass@7.0.4: {} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 yallist: 4.0.0 - mkdirp-infer-owner@2.0.0: + /mkdirp-infer-owner@2.0.0: + resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 infer-owner: 1.0.4 mkdirp: 1.0.4 - mkdirp@0.5.6: + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - mkdirp@1.0.4: {} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true - mocha@10.3.0: + /mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} + engines: {node: '>= 14.0.0'} + hasBin: true dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -17851,23 +12792,36 @@ snapshots: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 + dev: true - moo@0.5.2: {} + /moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + dev: false - mrmime@2.0.0: {} + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: false - ms@2.0.0: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multicast-dns@7.2.5: + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - multimatch@5.0.0: + /multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 @@ -17875,15 +12829,22 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.2 - mute-stream@0.0.8: {} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mz@2.7.0: + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + dev: true - nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 @@ -17895,12 +12856,20 @@ snapshots: rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.1 + dev: false - nanoid@3.3.7: {} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - ndjson@2.0.0: + /ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true dependencies: json-stringify-safe: 5.0.1 minimist: 1.2.8 @@ -17908,25 +12877,50 @@ snapshots: split2: 3.2.2 through2: 4.0.2 - nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): + /nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true dependencies: commander: 2.20.3 moo: 0.5.2 railroad-diagrams: 1.0.0 randexp: 0.4.6 + dev: false + patched: true - negotiator@0.6.3: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} - neo-async@2.6.2: {} + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - neovim@5.1.0: + /neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} + engines: {node: '>=10'} + hasBin: true dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - nerf-dart@1.0.0: {} + /nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + dev: false - next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): + /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true dependencies: '@next/env': 14.1.4 '@swc/helpers': 0.5.2 @@ -17950,34 +12944,53 @@ snapshots: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros + dev: false - nise@5.1.9: + /nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 path-to-regexp: 6.2.1 + dev: true - no-case@3.0.4: + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 tslib: 2.6.2 - node-emoji@2.1.3: + /node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 + dev: false - node-fetch@2.7.0: + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 - node-forge@1.3.1: {} + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} - node-gyp@8.4.1: + /node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true dependencies: env-paths: 2.2.1 glob: 7.2.3 @@ -17993,7 +13006,10 @@ snapshots: - bluebird - supports-color - node-gyp@9.4.1: + /node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -18010,122 +13026,180 @@ snapshots: - bluebird - supports-color - node-html-parser@6.1.12: + /node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} dependencies: css-select: 5.1.0 he: 1.2.0 + dev: false - node-int64@0.4.0: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true - node-releases@2.0.14: {} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - nopt@5.0.0: + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true dependencies: abbrev: 1.1.1 - nopt@6.0.0: + /nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true dependencies: abbrev: 1.1.1 - normalize-package-data@2.5.0: + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - normalize-package-data@3.0.3: + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 + dev: true - normalize-package-data@5.0.0: + /normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - normalize-range@0.1.2: {} + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} - normalize-registry-url@2.0.0: {} + /normalize-registry-url@2.0.0: + resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} + dev: true - normalize-url@6.1.0: {} + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: false - normalize-url@8.0.1: {} + /normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + dev: false - npm-bundled@1.1.2: + /npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} dependencies: npm-normalize-package-bin: 1.0.1 - npm-bundled@3.0.0: + /npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-normalize-package-bin: 3.0.1 - npm-install-checks@4.0.0: + /npm-install-checks@4.0.0: + resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} + engines: {node: '>=10'} dependencies: semver: 7.6.0 - npm-install-checks@6.3.0: + /npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.6.0 - npm-normalize-package-bin@1.0.1: {} + /npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - npm-normalize-package-bin@2.0.0: {} + /npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - npm-normalize-package-bin@3.0.1: {} + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-package-arg@10.1.0: + /npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - npm-package-arg@11.0.1: + /npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 + dev: true - npm-package-arg@8.1.5: + /npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 semver: 7.6.0 validate-npm-package-name: 3.0.0 - npm-packlist@3.0.0: + /npm-packlist@3.0.0: + resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} + engines: {node: '>=10'} + hasBin: true dependencies: glob: 7.2.3 ignore-walk: 4.0.1 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - npm-packlist@7.0.4: + /npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: ignore-walk: 6.0.4 - npm-pick-manifest@6.1.1: + /npm-pick-manifest@6.1.1: + resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} dependencies: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 semver: 7.6.0 - npm-pick-manifest@8.0.2: + /npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.6.0 - npm-registry-fetch@12.0.2: + /npm-registry-fetch@12.0.2: + resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: make-fetch-happen: 10.2.1 minipass: 3.3.6 @@ -18137,7 +13211,9 @@ snapshots: - bluebird - supports-color - npm-registry-fetch@14.0.5: + /npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 @@ -18149,119 +13225,175 @@ snapshots: transitivePeerDependencies: - supports-color - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 - npmlog@5.0.1: + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - npmlog@6.0.2: + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - nprogress@0.2.0: {} + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: false - nth-check@2.1.1: + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - nwsapi@2.2.7: {} + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - object-hash@3.0.0: {} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true - object-inspect@1.13.1: {} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - object-is@1.1.6: + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} - object.assign@4.1.5: + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.8: + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - object.fromentries@2.0.8: + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - object.groupby@1.0.3: + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 + dev: true - object.hasown@1.1.4: + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - object.values@1.2.0: + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - obuf@1.1.2: {} + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - one-time@1.0.0: + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: fn.name: 1.1.0 - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - open@10.1.0: + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - open@8.4.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: false - opener@1.5.2: {} + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true - optionator@0.9.3: + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -18270,7 +13402,9 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - ora@5.4.1: + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -18282,89 +13416,143 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} - p-cancelable@3.0.0: {} + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + dev: false - p-defer@1.0.0: {} + /p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: true - p-filter@2.1.0: + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 + dev: true - p-finally@1.0.0: {} + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 + dev: false - p-locate@3.0.0: + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 + dev: false - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - p-locate@6.0.0: + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 + dev: false - p-map@2.1.0: {} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true - p-map@4.0.0: + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 - p-queue@6.6.2: + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-retry@4.6.2: + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + dev: false - p-retry@6.2.0: + /p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - p-timeout@3.2.0: + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: p-finally: 1.0.0 - p-transform@1.3.0: + /p-transform@1.3.0: + resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} + engines: {node: '>=12.10.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) p-queue: 6.6.2 transitivePeerDependencies: - supports-color - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} - package-json@8.1.1: + /package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 + dev: false - pacote@12.0.3: + /pacote@12.0.3: + resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true dependencies: '@npmcli/git': 2.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -18389,7 +13577,10 @@ snapshots: - bluebird - supports-color - pacote@15.2.0: + /pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -18413,24 +13604,32 @@ snapshots: - bluebird - supports-color - pako@1.0.11: {} + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true - param-case@3.0.4: + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 - parse-conflict-json@2.0.2: + /parse-conflict-json@2.0.2: + resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: json-parse-even-better-errors: 2.3.1 just-diff: 5.2.0 just-diff-apply: 5.5.0 - parse-entities@4.0.1: + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -18441,177 +13640,321 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-ms@2.1.0: {} + /parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + dev: true - parse-numeric-range@1.3.0: {} + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false - parse-srcset@1.0.2: {} + /parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + dev: false - parse5-htmlparser2-tree-adapter@7.0.0: + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} dependencies: domhandler: 5.0.3 parse5: 7.1.2 + dev: false - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} - pascal-case@3.1.2: + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - path-absolute@1.0.1: {} + /path-absolute@1.0.1: + resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} + engines: {node: '>=4'} + dev: true - path-exists@3.0.0: {} + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - path-exists@5.0.0: {} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} - path-is-inside@1.0.2: {} + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: false - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - path-name@1.0.0: {} + /path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - path-temp@2.1.0: + /path-temp@2.1.0: + resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} + engines: {node: '>=8.15'} dependencies: unique-string: 2.0.0 + dev: true - path-to-regexp@0.1.7: {} + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - path-to-regexp@1.8.0: + /path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} dependencies: isarray: 0.0.1 + dev: false - path-to-regexp@2.2.1: {} + /path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + dev: false - path-to-regexp@6.2.1: {} + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - pathval@2.0.0: {} + /pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + dev: true - periscopic@3.1.0: + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} - pirates@4.0.6: {} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 - pkg-dir@7.0.0: + /pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} dependencies: find-up: 6.3.0 + dev: false - pkg-up@3.1.0: + /pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} dependencies: find-up: 3.0.0 + dev: false - pluralize@8.0.0: {} + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true - portfinder@1.0.32: + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} dependencies: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color + dev: true - possible-typed-array-names@1.0.0: {} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true - postcss-calc@8.2.4(postcss@8.4.38): + /postcss-calc@8.2.4(postcss@8.4.38): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 + dev: false - postcss-colormin@5.3.1(postcss@8.4.38): + /postcss-colormin@5.3.1(postcss@8.4.38): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-convert-values@5.1.3(postcss@8.4.38): + /postcss-convert-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-discard-comments@5.1.2(postcss@8.4.38): + /postcss-discard-comments@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-duplicates@5.1.0(postcss@8.4.38): + /postcss-discard-duplicates@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-empty@5.1.1(postcss@8.4.38): + /postcss-discard-empty@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-overridden@5.1.0(postcss@8.4.38): + /postcss-discard-overridden@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-discard-unused@5.1.0(postcss@8.4.38): + /postcss-discard-unused@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-import@15.1.0(postcss@8.4.38): + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 + dev: true - postcss-js@4.0.1(postcss@8.4.38): + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 + dev: true - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): + /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: lilconfig: 3.1.1 postcss: 8.4.38 ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3) yaml: 2.4.1 + dev: true - postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 dependencies: cosmiconfig: 8.3.6(typescript@5.4.3) jiti: 1.21.0 @@ -18620,8 +13963,20 @@ snapshots: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript + dev: false - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 @@ -18630,343 +13985,655 @@ snapshots: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript + dev: true - postcss-merge-idents@5.1.1(postcss@8.4.38): + /postcss-merge-idents@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-merge-longhand@5.1.7(postcss@8.4.38): + /postcss-merge-longhand@5.1.7(postcss@8.4.38): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.38) + dev: false - postcss-merge-rules@5.1.4(postcss@8.4.38): + /postcss-merge-rules@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-minify-font-values@5.1.0(postcss@8.4.38): + /postcss-minify-font-values@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-gradients@5.1.1(postcss@8.4.38): + /postcss-minify-gradients@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-params@5.1.4(postcss@8.4.38): + /postcss-minify-params@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-minify-selectors@5.2.1(postcss@8.4.38): + /postcss-minify-selectors@5.2.1(postcss@8.4.38): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-modules-extract-imports@3.0.0(postcss@8.4.38): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 - postcss-modules-local-by-default@4.0.4(postcss@8.4.38): + /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.1.1(postcss@8.4.38): + /postcss-modules-scope@3.1.1(postcss@8.4.38): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - postcss-modules-values@4.0.0(postcss@8.4.38): + /postcss-modules-values@4.0.0(postcss@8.4.38): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - postcss-nested@6.0.1(postcss@8.4.38): + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: true - postcss-normalize-charset@5.1.0(postcss@8.4.38): + /postcss-normalize-charset@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss-normalize-display-values@5.1.0(postcss@8.4.38): + /postcss-normalize-display-values@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-positions@5.1.1(postcss@8.4.38): + /postcss-normalize-positions@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-string@5.1.0(postcss@8.4.38): + /postcss-normalize-string@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-unicode@5.1.1(postcss@8.4.38): + /postcss-normalize-unicode@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-url@5.1.0(postcss@8.4.38): + /postcss-normalize-url@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-normalize-whitespace@5.1.1(postcss@8.4.38): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-ordered-values@5.1.3(postcss@8.4.38): + /postcss-ordered-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-reduce-idents@5.2.0(postcss@8.4.38): + /postcss-reduce-idents@5.2.0(postcss@8.4.38): + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-reduce-initial@5.1.2(postcss@8.4.38): + /postcss-reduce-initial@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 postcss: 8.4.38 + dev: false - postcss-reduce-transforms@5.1.0(postcss@8.4.38): + /postcss-reduce-transforms@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 + dev: false - postcss-selector-parser@6.0.16: + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@4.4.1(postcss@8.4.38): + /postcss-sort-media-queries@4.4.1(postcss@8.4.38): + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 dependencies: postcss: 8.4.38 sort-css-media-queries: 2.1.0 + dev: false - postcss-svgo@5.1.0(postcss@8.4.38): + /postcss-svgo@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 + dev: false - postcss-unique-selectors@5.1.1(postcss@8.4.38): + /postcss-unique-selectors@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - postcss-value-parser@4.2.0: {} + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss-zindex@5.1.0(postcss@8.4.38): + /postcss-zindex@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 + dev: false - postcss@8.4.31: + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 + dev: false - postcss@8.4.38: + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - preferred-pm@3.1.3: + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): + /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): + resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true dependencies: prettier: 3.2.5 + dev: true - prettier@3.2.5: {} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true - pretty-bytes@5.6.0: {} + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} - pretty-error@4.0.0: + /pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} dependencies: lodash: 4.17.21 renderkid: 3.0.0 - pretty-format@27.5.1: + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 + dev: true - pretty-ms@7.0.1: + /pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} dependencies: parse-ms: 2.1.0 + dev: true - pretty-time@1.1.0: {} + /pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + dev: false - print-diff@1.0.0: + /print-diff@1.0.0: + resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} + engines: {node: '>=8.3'} dependencies: diff: 4.0.2 + dev: true - printable-characters@1.0.42: {} + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: true - prism-react-renderer@2.3.1(react@18.2.0): + /prism-react-renderer@2.3.1(react@18.2.0): + resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} + peerDependencies: + react: '>=16.0.0 || 18' dependencies: '@types/prismjs': 1.26.3 clsx: 2.1.0 react: 18.2.0 + dev: false - prismjs@1.29.0: {} + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false - proc-log@1.0.0: {} + /proc-log@1.0.0: + resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} - proc-log@3.0.0: {} + /proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - process-nextick-args@2.0.1: {} + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: {} + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} - promise-all-reject-late@1.0.1: {} + /promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - promise-call-limit@1.0.2: {} + /promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} - promise-inflight@1.0.1: {} + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true - promise-retry@2.0.1: + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} dependencies: err-code: 2.0.3 retry: 0.12.0 - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - prop-types@15.8.1: + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.4.1: {} + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} - proto-list@1.2.4: {} + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - punycode@1.4.1: {} + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: false - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - pupa@3.1.0: + /pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} dependencies: escape-goat: 4.0.0 + dev: false - pure-rand@6.1.0: {} + /pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + dev: true - qs@6.11.0: + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 - qs@6.12.0: + /qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 + dev: true - querystringify@2.2.0: {} + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: inherits: 2.0.4 + dev: false - quick-lru@4.0.1: {} + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true - quick-lru@5.1.1: {} + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} - railroad-diagrams@1.0.0: {} + /railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + dev: false - rambda@7.5.0: {} + /rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + dev: true - ramda@0.29.1: {} + /ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + dev: true - randexp@0.4.6: + /randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 + dev: false - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - range-parser@1.2.0: {} + /range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + dev: false - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} - raw-body@2.5.2: + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - rc@1.2.8: + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + dev: false - react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@babel/code-frame': 7.24.2 address: 1.2.2 @@ -18998,18 +14665,29 @@ snapshots: - eslint - supports-color - vue-template-compiler + dev: false - react-dom@18.2.0(react@18.2.0): + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - react-error-overlay@6.0.11: {} + /react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + dev: false - react-fast-compare@3.2.2: {} + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 dependencies: '@babel/runtime': 7.24.1 invariant: 2.2.4 @@ -19019,7 +14697,11 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): + /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 dependencies: invariant: 2.2.4 react: 18.2.0 @@ -19027,23 +14709,42 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-is@16.13.1: {} + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: {} + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true - react-is@18.2.0: {} + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true - react-json-view-lite@1.3.0(react@18.2.0): + /react-json-view-lite@1.3.0(react@18.2.0): + resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 dependencies: react: 18.2.0 + dev: false - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): + /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' dependencies: '@babel/runtime': 7.24.1 - react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - react-player@2.15.1(react@18.2.0): + /react-player@2.15.1(react@18.2.0): + resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} + peerDependencies: + react: '>=16.6.0 || 18' dependencies: deepmerge: 4.3.1 load-script: 1.0.0 @@ -19051,14 +14752,23 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 react-fast-compare: 3.2.2 + dev: false - react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): + /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15 || 18' + react-router: '>=5' dependencies: '@babel/runtime': 7.24.1 react: 18.2.0 react-router: 5.3.4(react@18.2.0) + dev: false - react-router-dom@5.3.4(react@18.2.0): + /react-router-dom@5.3.4(react@18.2.0): + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15 || 18' dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -19068,8 +14778,12 @@ snapshots: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + dev: false - react-router@5.3.4(react@18.2.0): + /react-router@5.3.4(react@18.2.0): + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15 || 18' dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -19081,15 +14795,28 @@ snapshots: react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + dev: false - react-string-replace@1.1.1: {} + /react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + dev: false - react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' dependencies: react: 18.2.0 tslib: 2.6.2 + dev: false - react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): + /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -19107,71 +14834,101 @@ snapshots: throttle-debounce: 3.0.1 ts-easing: 0.2.0 tslib: 2.6.2 + dev: false - react@18.2.0: + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - read-cache@1.0.0: + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 + dev: true - read-cmd-shim@3.0.1: {} + /read-cmd-shim@3.0.1: + resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - read-ini-file@4.0.0: + /read-ini-file@4.0.0: + resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} + engines: {node: '>=14.6'} dependencies: ini: 3.0.1 strip-bom: 4.0.0 + dev: true - read-package-json-fast@2.0.3: + /read-package-json-fast@2.0.3: + resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} + engines: {node: '>=10'} dependencies: json-parse-even-better-errors: 2.3.1 npm-normalize-package-bin: 1.0.1 - read-package-json-fast@3.0.2: + /read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 - read-package-json@6.0.4: + /read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: glob: 10.3.10 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 - read-pkg-up@7.0.1: + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - read-pkg-up@8.0.0: + /read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 + dev: true - read-pkg@5.2.0: + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - read-pkg@6.0.0: + /read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 + dev: true - read-yaml-file@2.1.0: + /read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} dependencies: js-yaml: 4.1.0 strip-bom: 4.0.0 + dev: true - readable-stream@2.3.8: + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -19181,13 +14938,17 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 buffer: 6.0.3 @@ -19195,39 +14956,60 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 - readdir-scoped-modules@1.1.0: + /readdir-scoped-modules@1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs dependencies: debuglog: 1.0.1 dezalgo: 1.0.4 graceful-fs: 4.2.11 once: 1.4.0 - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - reading-time@1.5.0: {} + /reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + dev: false - realpath-missing@1.1.0: {} + /realpath-missing@1.1.0: + resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} + engines: {node: '>=10'} + dev: true - rechoir@0.6.2: + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} dependencies: resolve: 1.22.8 - rechoir@0.8.0: + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 - recursive-readdir@2.2.3: + /recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} dependencies: minimatch: 3.1.2 + dev: false - redent@4.0.0: + /redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 + dev: true - reflect.getprototypeof@1.0.6: + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -19236,29 +15018,43 @@ snapshots: get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 + dev: true - regenerate-unicode-properties@10.1.1: + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 - regenerate@1.4.2: {} + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.24.1 - regexp-tree@0.1.27: {} + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true - regexp.prototype.flags@1.5.2: + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 + dev: true - regexpu-core@5.3.2: + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -19267,31 +15063,47 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - registry-auth-token@5.0.2: + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} dependencies: '@pnpm/npm-conf': 2.2.2 + dev: false - registry-url@6.0.1: + /registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} dependencies: rc: 1.2.8 + dev: false - regjsparser@0.10.0: + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true dependencies: jsesc: 0.5.0 + dev: true - regjsparser@0.9.1: + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true dependencies: jsesc: 0.5.0 - rehype-raw@7.0.0: + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 + dev: false - relateurl@0.2.7: {} + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} - remark-directive@3.0.0: + /remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} dependencies: '@types/mdast': 4.0.3 mdast-util-directive: 3.0.0 @@ -19299,16 +15111,21 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-emoji@4.0.1: + /remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: '@types/mdast': 4.0.3 emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 unified: 11.0.4 + dev: false - remark-frontmatter@5.0.0: + /remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} dependencies: '@types/mdast': 4.0.3 mdast-util-frontmatter: 2.0.1 @@ -19316,8 +15133,10 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-gfm@4.0.0: + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: '@types/mdast': 4.0.3 mdast-util-gfm: 3.0.0 @@ -19327,15 +15146,18 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-mdx@3.0.1: + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 @@ -19344,7 +15166,8 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.0: + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -19352,15 +15175,19 @@ snapshots: unified: 11.0.4 vfile: 6.0.1 - remark-stringify@11.0.0: + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: '@types/mdast': 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 + dev: false - remove-trailing-separator@1.1.0: {} + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - renderkid@3.0.0: + /renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} dependencies: css-select: 4.3.0 dom-converter: 0.2.0 @@ -19368,128 +15195,212 @@ snapshots: lodash: 4.17.21 strip-ansi: 6.0.1 - replace-ext@1.0.1: {} + /replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} - require-like@0.1.2: {} + /require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + dev: false - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resize-observer-polyfill@1.5.1: {} + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false - resolve-alpn@1.2.1: {} + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: false - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} - resolve-pathname@3.0.0: {} + /resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + dev: false - resolve-pkg-maps@1.0.0: {} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true - resolve.exports@2.0.2: {} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - responselike@3.0.0: + /responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} dependencies: lowercase-keys: 3.0.0 + dev: false - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - ret@0.1.15: {} + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: false - retry@0.12.0: {} + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} - retry@0.13.1: {} + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfc4648@1.5.3: {} + /rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + dev: false - right-pad@1.0.1: {} + /right-pad@1.0.1: + resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} + engines: {node: '>= 0.10'} + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: glob: 7.2.3 - rimraf@5.0.5: + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true dependencies: glob: 10.3.10 - rtl-css-js@1.16.1: + /rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: '@babel/runtime': 7.24.1 + dev: false - rtl-detect@1.1.2: {} + /rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + dev: false - rtlcss@4.1.1: + /rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true dependencies: escalade: 3.1.2 picocolors: 1.0.0 postcss: 8.4.38 strip-json-comments: 3.1.1 + dev: false - run-applescript@7.0.0: {} + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} - run-async@2.4.1: {} + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.2 - safe-array-concat@1.1.2: + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-execa@0.1.2: + /safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 - safe-regex-test@1.0.3: + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 + dev: true - safe-stable-stringify@2.4.3: {} + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-html@2.13.0: + /sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -19497,77 +15408,124 @@ snapshots: is-plain-object: 5.0.0 parse-srcset: 1.0.2 postcss: 8.4.38 + dev: false - sax@1.3.0: {} + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - sbd@1.0.19: + /sbd@1.0.19: + resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} dependencies: sanitize-html: 2.13.0 + dev: false - scheduler@0.23.0: + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 - schema-utils@2.7.0: + /schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + dev: false - schema-utils@3.3.0: + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.2.0: + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - scoped-regex@2.1.0: {} + /scoped-regex@2.1.0: + resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} + engines: {node: '>=8'} - screenfull@5.2.0: {} + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false - search-insights@2.13.0: {} + /search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + dev: false - section-matter@1.0.0: + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 + dev: false - secure-compare@3.0.1: {} + /secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + dev: true - select-hose@2.0.0: {} + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - selfsigned@2.4.1: + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - semver-diff@4.0.0: + /semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} dependencies: semver: 7.6.0 + dev: false - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true - semver@7.5.4: + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 + dev: true - semver@7.6.0: + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 - send@0.18.0: + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -19585,15 +15543,19 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@6.0.0: + /serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} dependencies: randombytes: 2.1.0 + dev: true - serialize-javascript@6.0.2: + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 - serve-handler@6.1.5: + /serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -19603,8 +15565,11 @@ snapshots: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 + dev: false - serve-index@1.9.1: + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -19616,7 +15581,9 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -19625,9 +15592,12 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -19636,53 +15606,82 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.2: + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: true - set-harmonic-interval@1.0.1: {} + /set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + dev: false - setimmediate@1.0.5: {} + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: true - setprototypeof@1.1.0: {} + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-clone@3.0.1: + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 - shallowequal@1.1.0: {} + /shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - shell-quote@1.8.1: {} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shelljs@0.8.5: + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - side-channel@1.0.6: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - sigstore@1.9.0: + /sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -19692,11 +15691,13 @@ snapshots: transitivePeerDependencies: - supports-color - simple-swizzle@0.2.2: + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 - sinon@17.0.1: + /sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 @@ -19704,52 +15705,79 @@ snapshots: diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 + dev: true - sirv@2.0.4: + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} dependencies: '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 + dev: false - sisteransi@1.0.5: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - sitemap@7.1.1: + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 + dev: false - skin-tone@2.0.0: + /skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} dependencies: unicode-emoji-modifier-base: 1.0.0 + dev: false - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - slash@4.0.0: {} + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: false - smart-buffer@4.2.0: {} + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - snake-case@3.0.4: + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 + dev: true - sockjs@0.3.24: + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - socks-proxy-agent@6.1.1: + /socks-proxy-agent@6.1.1: + resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: - supports-color + dev: false - socks-proxy-agent@6.2.1: + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -19757,7 +15785,9 @@ snapshots: transitivePeerDependencies: - supports-color - socks-proxy-agent@7.0.0: + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -19765,58 +15795,89 @@ snapshots: transitivePeerDependencies: - supports-color - socks@2.8.1: + /socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - sort-css-media-queries@2.1.0: {} + /sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + dev: false - sort-keys@4.2.0: + /sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} dependencies: is-plain-obj: 2.1.0 - sort-keys@5.0.0: + /sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} dependencies: is-plain-obj: 4.1.0 + dev: true - source-map-js@1.2.0: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - source-map-support@0.5.13: + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-url@0.4.1: {} + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true - source-map@0.5.6: {} + /source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + dev: false - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - source-map@0.7.4: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} - space-separated-tokens@2.0.2: {} + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-correct@3.2.0: + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - spdx-exceptions@2.5.0: {} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - spdx-expression-parse@3.0.1: + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - spdx-license-ids@3.0.17: {} + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - spdy-transport@3.0.0: + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: debug: 4.3.4(supports-color@8.1.1) detect-node: 2.1.0 @@ -19827,7 +15888,9 @@ snapshots: transitivePeerDependencies: - supports-color - spdy@4.0.2: + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} dependencies: debug: 4.3.4(supports-color@8.1.1) handle-thing: 2.0.1 @@ -19837,88 +15900,138 @@ snapshots: transitivePeerDependencies: - supports-color - split2@3.2.2: + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: readable-stream: 3.6.2 - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sprintf-js@1.1.3: {} + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - srcset@4.0.0: {} + /srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + dev: false - ssri@10.0.5: + /ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - ssri@8.0.1: + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - ssri@9.0.1: + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: minipass: 3.3.6 - stable@0.1.8: {} + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: false - stack-generator@2.0.10: + /stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} dependencies: stackframe: 1.3.4 + dev: false - stack-trace@0.0.10: {} + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: true - stackframe@1.3.4: {} + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: false - stacktrace-gps@3.1.2: + /stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} dependencies: source-map: 0.5.6 stackframe: 1.3.4 + dev: false - stacktrace-js@2.0.2: + /stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} dependencies: error-stack-parser: 2.1.4 stack-generator: 2.0.10 stacktrace-gps: 3.1.2 + dev: false - stacktracey@2.1.8: + /stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} dependencies: as-table: 1.0.55 get-source: 2.0.12 + dev: true - statuses@1.5.0: {} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} - std-env@3.7.0: {} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: false - stop-iteration-iterator@1.0.0: + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.7 + dev: true - streamsearch@1.1.0: {} + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false - string-length@4.0.2: + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.11: + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -19932,117 +16045,195 @@ snapshots: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 + dev: true - string.prototype.trim@1.2.9: + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimend@1.0.8: + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimstart@1.0.8: + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string_decoder@1.1.1: + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.3: + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - stringify-object@3.3.0: + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 + dev: false - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - strip-bom-buf@1.0.0: + /strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} dependencies: is-utf8: 0.2.1 - strip-bom-stream@2.0.0: + /strip-bom-stream@2.0.0: + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 - strip-bom-string@1.0.0: {} + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false - strip-bom@2.0.0: + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} dependencies: is-utf8: 0.2.1 - strip-bom@3.0.0: {} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} - strip-bom@4.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} - strip-comments-strings@1.2.0: {} + /strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + dev: true - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} - strip-indent@3.0.0: + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true - strip-indent@4.0.0: + /strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} dependencies: min-indent: 1.0.1 + dev: true - strip-json-comments@2.0.1: {} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} - strnum@1.0.5: {} + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: true - style-loader@3.3.4(webpack@5.91.0): + /style-loader@3.3.4(webpack@5.91.0): + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - style-to-object@0.4.4: + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.5: + /style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} dependencies: inline-style-parser: 0.2.2 - styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): + /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true dependencies: '@babel/core': 7.24.3 client-only: 0.0.1 react: 18.2.0 + dev: false - stylehacks@5.1.1(postcss@8.4.38): + /stylehacks@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: false - stylis@4.3.1: {} + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false - sucrase@3.35.0: + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -20051,24 +16242,37 @@ snapshots: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} - svg-parser@2.0.4: {} + /svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@2.8.0: + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -20077,8 +16281,12 @@ snapshots: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 + dev: false - svgo@3.2.0: + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -20087,10 +16295,16 @@ snapshots: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 + dev: true - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - syncpack@12.3.0(typescript@5.4.3): + /syncpack@12.3.0(typescript@5.4.3): + resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} + engines: {node: '>=16'} + hasBin: true dependencies: '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0) chalk: 4.1.2 @@ -20110,8 +16324,12 @@ snapshots: ts-toolbelt: 9.6.0 transitivePeerDependencies: - typescript + dev: true - tailwindcss@3.4.1(ts-node@10.9.2): + /tailwindcss@3.4.1(ts-node@10.9.2): + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -20137,12 +16355,20 @@ snapshots: sucrase: 3.35.0 transitivePeerDependencies: - ts-node + dev: true - tapable@1.1.3: {} + /tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + dev: false - tapable@2.2.1: {} + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} - tar@6.2.1: + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -20151,7 +16377,21 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): + /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.20.2 @@ -20161,105 +16401,195 @@ snapshots: terser: 5.29.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - terser@5.29.2: + /terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - text-hex@1.0.0: {} + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - textextensions@5.16.0: {} + /textextensions@5.16.0: + resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + engines: {node: '>=0.8'} - thenify-all@1.6.0: + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 + dev: true - thenify@3.3.1: + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 + dev: true - throttle-debounce@3.0.1: {} + /throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + dev: false - through2@4.0.2: + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 - through@2.3.8: {} + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - thunky@1.1.0: {} + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - tightrope@0.1.0: {} + /tightrope@0.1.0: + resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} + engines: {node: '>=14'} + dev: true - tiny-invariant@1.3.3: {} + /tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: false - tiny-warning@1.0.3: {} + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false - tinycolor2@1.6.0: {} + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - toggle-selection@1.0.6: {} + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} - totalist@3.0.1: {} + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: false - tough-cookie@4.1.3: + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@3.0.0: + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: punycode: 2.3.1 + dev: true - treeverse@1.0.4: {} + /treeverse@1.0.4: + resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} - trie-search@2.0.0: + /trie-search@2.0.0: + resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} dependencies: hasharray: 1.1.2 + dev: false - trim-lines@3.0.1: {} + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trim-newlines@4.1.1: {} + /trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + dev: true - triple-beam@1.4.1: {} + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} - trough@2.2.0: {} + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.3.0(typescript@5.4.3): + /ts-api-utils@1.3.0(typescript@5.4.3): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: typescript: 5.4.3 + dev: true - ts-easing@0.2.0: {} + /ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + dev: false - ts-interface-checker@0.1.13: {} + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true - ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): + /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true dependencies: '@babel/core': 7.24.3 bs-logger: 0.2.6 @@ -20273,8 +16603,14 @@ snapshots: semver: 7.6.0 typescript: 5.4.3 yargs-parser: 21.1.1 + dev: true - ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): + /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -20283,8 +16619,21 @@ snapshots: source-map: 0.7.4 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: true - ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): + /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.10 @@ -20301,19 +16650,27 @@ snapshots: typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: true - ts-toolbelt@9.6.0: {} + /ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + dev: true - tsconfig-paths@3.15.0: + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true - tslib@2.6.2: {} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tuf-js@1.1.7: + /tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/models': 1.0.4 debug: 4.3.4(supports-color@8.1.1) @@ -20321,46 +16678,77 @@ snapshots: transitivePeerDependencies: - supports-color - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.20.2: {} + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} - type-fest@0.21.3: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} - type-fest@0.6.0: {} + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} - type-fest@0.8.1: {} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} - type-fest@1.4.0: {} + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} - type-fest@2.19.0: {} + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false - type-fest@4.14.0: {} + /type-fest@4.14.0: + resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + engines: {node: '>=16'} + dev: false - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.2: + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 + dev: true - typed-array-byte-length@1.0.1: + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-byte-offset@1.0.2: + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -20368,8 +16756,11 @@ snapshots: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-length@1.0.6: + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -20377,34 +16768,53 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + dev: true - typedarray-to-buffer@3.1.5: + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 - typescript@5.4.3: {} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + engines: {node: '>=14.17'} + hasBin: true - unbox-primitive@1.0.2: + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + dev: true - unicode-canonical-property-names-ecmascript@2.0.0: {} + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} - unicode-emoji-modifier-base@1.0.0: {} + /unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + dev: false - unicode-match-property-ecmascript@2.0.0: + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} - unicode-property-aliases-ecmascript@2.1.0: {} + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} - unified@11.0.4: + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -20414,91 +16824,133 @@ snapshots: trough: 2.2.0 vfile: 6.0.1 - union@0.5.0: + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} dependencies: qs: 6.12.0 + dev: true - unique-filename@1.1.1: + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} dependencies: unique-slug: 2.0.2 - unique-filename@2.0.1: + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: unique-slug: 3.0.0 - unique-filename@3.0.0: + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 - unique-slug@2.0.2: + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} dependencies: imurmurhash: 0.1.4 - unique-slug@3.0.0: + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 - unique-slug@4.0.0: + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - unique-string@2.0.0: + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} dependencies: crypto-random-string: 2.0.0 + dev: true - unique-string@3.0.0: + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} dependencies: crypto-random-string: 4.0.0 + dev: false - unist-util-is@6.0.0: + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: '@types/unist': 3.0.2 - unist-util-position-from-estree@2.0.0: + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} dependencies: '@types/unist': 3.0.2 - unist-util-position@5.0.0: + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 - unist-util-remove-position@5.0.0: + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - unist-util-stringify-position@4.0.0: + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.2 - unist-util-visit-parents@6.0.1: + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - unist-util-visit@5.0.0: + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universal-user-agent@6.0.1: {} + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.2.0: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@2.0.1: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} - untildify@4.0.0: {} + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} - update-browserslist-db@1.0.13(browserslist@4.23.0): + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - update-notifier@6.0.2: + /update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -20514,80 +16966,125 @@ snapshots: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 + dev: false - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - url-join@4.0.1: {} + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true - url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true dependencies: file-loader: 6.2.0(webpack@5.91.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utila@0.4.0: {} + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - utility-types@3.11.0: {} + /utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} - utils-merge@1.0.1: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} - uuid@8.3.2: {} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true - uuid@9.0.1: {} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false - v8-compile-cache-lib@3.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true - v8-to-istanbul@9.2.0: + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + dev: true - validate-npm-package-license@3.0.4: + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@3.0.0: + /validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} dependencies: builtins: 1.0.3 - validate-npm-package-name@5.0.0: + /validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 - value-equal@1.0.1: {} + /value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + dev: false - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} - vfile-location@5.0.2: + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 + dev: false - vfile-message@4.0.2: + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vinyl-file@3.0.0: + /vinyl-file@3.0.0: + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} dependencies: graceful-fs: 4.2.11 pify: 2.3.0 @@ -20595,7 +17092,9 @@ snapshots: strip-bom-stream: 2.0.0 vinyl: 2.2.1 - vinyl@2.2.1: + /vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -20604,40 +17103,58 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vscode-uri@3.0.6: {} - - vscode-uri@3.0.8: {} + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - w3c-xmlserializer@4.0.0: + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 + dev: true - walk-up-path@1.0.0: {} + /walk-up-path@1.0.0: + resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: true - watchpack@2.4.1: + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wbuf@1.7.3: + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: minimalistic-assert: 1.0.1 - wcwidth@1.0.1: + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 - web-namespaces@2.0.1: {} + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false - webidl-conversions@3.0.1: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@7.0.0: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - webpack-bundle-analyzer@4.10.1: + /webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.11.3 @@ -20655,8 +17172,24 @@ snapshots: transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false - webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): + /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) @@ -20675,7 +17208,11 @@ snapshots: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) webpack-merge: 5.10.0 - webpack-dev-middleware@5.3.4(webpack@5.91.0): + /webpack-dev-middleware@5.3.4(webpack@5.91.0): + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -20683,8 +17220,16 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - webpack-dev-middleware@7.1.1(webpack@5.91.0): + /webpack-dev-middleware@7.1.1(webpack@5.91.0): + resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true dependencies: colorette: 2.0.20 memfs: 4.8.0 @@ -20694,7 +17239,18 @@ snapshots: schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - webpack-dev-server@4.15.2(webpack@5.91.0): + /webpack-dev-server@4.15.2(webpack@5.91.0): + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20732,8 +17288,20 @@ snapshots: - debug - supports-color - utf-8-validate + dev: false - webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): + /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20773,15 +17341,27 @@ snapshots: - supports-color - utf-8-validate - webpack-merge@5.10.0: + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - webpack-sources@3.2.3: {} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} - webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): + /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -20813,47 +17393,70 @@ snapshots: - esbuild - uglify-js - webpackbar@5.0.2(webpack@5.91.0): + /webpackbar@5.0.2(webpack@5.91.0): + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) + dev: false - websocket-driver@0.7.4: + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - websocket-extensions@0.1.4: {} + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} - whatwg-encoding@2.0.0: + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-mimetype@3.0.0: {} + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true - whatwg-url@11.0.0: + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true - which-builtin-type@1.1.3: + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -20867,60 +17470,90 @@ snapshots: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: true - which-collection@1.0.2: + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 + dev: true - which-pm@2.0.0: + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-typed-array@1.1.15: + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 + dev: true - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: false - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - which@3.0.1: + /which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: isexe: 2.0.0 - wide-align@1.1.5: + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 - widest-line@3.1.0: + /widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} dependencies: string-width: 4.2.3 + dev: true - widest-line@4.0.1: + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 + dev: false - wildcard@2.0.1: {} + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - winston-transport@4.7.0: + /winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} dependencies: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.11.0: + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -20934,95 +17567,173 @@ snapshots: triple-beam: 1.4.1 winston-transport: 4.7.0 - workerpool@6.2.1: {} + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + dev: true - wrap-ansi@6.2.0: + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@3.0.3: + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - write-file-atomic@4.0.2: + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - write-file-atomic@5.0.1: + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - write-json-file@5.0.0: + /write-json-file@5.0.0: + resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: detect-indent: 7.0.1 is-plain-obj: 4.1.0 sort-keys: 5.0.0 write-file-atomic: 3.0.3 + dev: true - write-yaml-file@5.0.0: + /write-yaml-file@5.0.0: + resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} + engines: {node: '>=16.14'} dependencies: js-yaml: 4.1.0 write-file-atomic: 5.0.1 + dev: true - ws@7.5.9: {} + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false - ws@8.16.0: {} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - xdg-basedir@5.1.0: {} + /xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + dev: false - xml-js@1.6.11: + /xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true dependencies: sax: 1.3.0 + dev: false - xml-name-validator@4.0.0: {} + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true - xmlchars@2.2.0: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yallist@3.1.1: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.2: {} + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false - yaml@2.4.1: {} + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + dev: true - yargs-parser@20.2.4: {} + /yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + dev: true - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs-unparser@2.0.0: + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 + dev: true - yargs@16.2.0: + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -21031,8 +17742,11 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -21041,8 +17755,12 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yeoman-environment@3.19.3: + /yeoman-environment@3.19.3: + resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} + engines: {node: '>=12.10.0'} + hasBin: true dependencies: '@npmcli/arborist': 4.3.1 are-we-there-yet: 2.0.0 @@ -21085,7 +17803,14 @@ snapshots: - bluebird - supports-color - yeoman-generator@5.10.0(yeoman-environment@3.19.3): + /yeoman-generator@5.10.0(yeoman-environment@3.19.3): + resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} + engines: {node: '>=12.10.0'} + peerDependencies: + yeoman-environment: ^3.2.0 + peerDependenciesMeta: + yeoman-environment: + optional: true dependencies: chalk: 4.1.2 dargs: 7.0.0 @@ -21109,12 +17834,23 @@ snapshots: - mem-fs - supports-color - yn@3.1.1: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - yocto-queue@1.0.0: {} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: false - zod@3.22.4: {} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: false - zwitch@2.0.4: {} + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} From 2c31af9271987503c0f6f086eaa642028e61cbde Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 16:34:24 +0000 Subject: [PATCH 301/504] [pre-commit.ci lite] apply automatic fixes --- pnpm-lock.yaml | 18928 +++++++++++++++++++++++++++-------------------- 1 file changed, 11086 insertions(+), 7842 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f0e384f6f..946256de47 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -769,12 +769,8910 @@ importers: packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + '@algolia/autocomplete-core@1.9.3': resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.9.3': + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/cache-browser-local-storage@4.22.1': + resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + + '@algolia/cache-common@4.22.1': + resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + + '@algolia/cache-in-memory@4.22.1': + resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + + '@algolia/client-account@4.22.1': + resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + + '@algolia/client-analytics@4.22.1': + resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + + '@algolia/client-common@4.22.1': + resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + + '@algolia/client-personalization@4.22.1': + resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + + '@algolia/client-search@4.22.1': + resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + + '@algolia/events@4.0.1': + resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + + '@algolia/logger-common@4.22.1': + resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + + '@algolia/logger-console@4.22.1': + resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + + '@algolia/requester-browser-xhr@4.22.1': + resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + + '@algolia/requester-common@4.22.1': + resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + + '@algolia/requester-node-http@4.22.1': + resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + + '@algolia/transporter@4.22.1': + resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.1': + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.3': + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.1': + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.1': + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.22.15': + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.1': + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.22.20': + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.24.1': + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.1': + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.1': + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.24.1': + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.1': + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.24.1': + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.24.3': + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.24.1': + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.24.1': + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.24.1': + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.24.1': + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.24.1': + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.24.1': + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.24.1': + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.24.1': + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.24.1': + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.24.1': + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dynamic-import@7.24.1': + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.24.1': + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.24.1': + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.24.1': + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.24.1': + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.24.1': + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.24.1': + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.24.1': + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.24.1': + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.24.1': + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.1': + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.24.1': + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.24.1': + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.24.1': + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.24.1': + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.24.1': + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.24.1': + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.24.1': + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.24.1': + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.24.1': + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.24.1': + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.24.1': + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.24.1': + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-constant-elements@7.24.1': + resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.24.1': + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.22.5': + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.23.4': + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.24.1': + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.24.1': + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.24.1': + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.24.3': + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.24.1': + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.24.1': + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.24.1': + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.24.1': + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.24.1': + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.24.1': + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.24.1': + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.24.1': + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.24.1': + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1': + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.24.3': + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-react@7.24.1': + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.1': + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/regjsgen@0.8.0': + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime-corejs3@7.24.1': + resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.24.1': + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dabh/diagnostics@2.0.3': + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@docsearch/css@3.6.0': + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + + '@docsearch/react@3.6.0': + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + + '@docusaurus/core@3.1.1': + resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/cssnano-preset@3.1.1': + resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} + engines: {node: '>=18.0'} + + '@docusaurus/logger@3.1.1': + resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} + engines: {node: '>=18.0'} + + '@docusaurus/mdx-loader@3.1.1': + resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/module-type-aliases@3.1.1': + resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} + peerDependencies: + react: '*' + react-dom: '*' + + '@docusaurus/plugin-content-blog@3.1.1': + resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-docs@3.1.1': + resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-content-pages@3.1.1': + resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-debug@3.1.1': + resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-analytics@3.1.1': + resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-gtag@3.1.1': + resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-google-tag-manager@3.1.1': + resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/plugin-sitemap@3.1.1': + resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/preset-classic@3.1.1': + resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/react-loadable@5.5.2': + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' + + '@docusaurus/theme-classic@3.1.1': + resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-common@3.1.1': + resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-search-algolia@3.1.1': + resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/theme-translations@3.1.1': + resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} + engines: {node: '>=18.0'} + + '@docusaurus/types@3.1.1': + resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@docusaurus/utils-common@3.1.1': + resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@docusaurus/utils-validation@3.1.1': + resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} + engines: {node: '>=18.0'} + + '@docusaurus/utils@3.1.1': + resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@effect/schema@0.56.1': + resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} + peerDependencies: + effect: 2.0.0-next.62 + fast-check: ^3.13.2 + + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3': + resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} + engines: {node: '>=10.13.0'} + peerDependencies: + html-webpack-plugin: '>=5' + webpack: '>=5' + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@fortawesome/fontawesome-common-types@6.5.1': + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + + '@fortawesome/fontawesome-svg-core@6.5.1': + resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + engines: {node: '>=6'} + + '@fortawesome/free-solid-svg-icons@6.5.1': + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + + '@fortawesome/react-fontawesome@0.2.0': + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3 || 18' + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + + '@gwhitney/detect-indent@7.0.1': + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.2': + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@leichtgewicht/ip-codec@2.0.4': + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + + '@mdx-js/loader@3.0.1': + resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} + peerDependencies: + webpack: '>=5' + + '@mdx-js/mdx@3.0.1': + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + + '@mdx-js/react@3.0.1': + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16 || 18' + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@next/env@14.1.4': + resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} + + '@next/eslint-plugin-next@14.1.4': + resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + + '@next/mdx@14.1.4': + resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true + + '@next/swc-darwin-arm64@14.1.4': + resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.1.4': + resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.1.4': + resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.1.4': + resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.1.4': + resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.1.4': + resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.1.4': + resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.1.4': + resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.1.4': + resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/arborist@4.3.1': + resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + '@npmcli/fs@1.1.1': + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/fs@3.1.0': + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@2.1.0': + resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + + '@npmcli/git@4.1.0': + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/installed-package-contents@1.0.7': + resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} + engines: {node: '>= 10'} + hasBin: true + + '@npmcli/installed-package-contents@2.0.2': + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/map-workspaces@2.0.4': + resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/metavuln-calculator@2.0.0': + resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + '@npmcli/move-file@1.1.2': + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/name-from-folder@1.0.1': + resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + + '@npmcli/node-gyp@1.0.3': + resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@1.0.1': + resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + + '@npmcli/promise-spawn@1.3.2': + resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + + '@npmcli/promise-spawn@6.0.2': + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/run-script@2.0.0': + resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + + '@npmcli/run-script@6.0.2': + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@octokit/auth-token@2.5.0': + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + + '@octokit/core@3.6.0': + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + + '@octokit/endpoint@6.0.12': + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + + '@octokit/graphql@4.8.0': + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + + '@octokit/openapi-types@12.11.0': + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + + '@octokit/plugin-paginate-rest@2.21.3': + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' + + '@octokit/plugin-request-log@1.0.4': + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/plugin-rest-endpoint-methods@5.16.2': + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' + + '@octokit/request-error@2.1.0': + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + + '@octokit/request@5.6.3': + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + + '@octokit/rest@18.12.0': + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + + '@octokit/types@6.41.0': + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/cli-meta@5.0.1': + resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} + engines: {node: '>=16.14'} + + '@pnpm/cli-utils@2.0.9': + resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/config@18.4.0': + resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@6.2.0': + resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} + engines: {node: '>=14.6'} + + '@pnpm/constants@7.1.0': + resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} + engines: {node: '>=16.14'} + + '@pnpm/constants@7.1.1': + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + + '@pnpm/constants@8.0.0': + resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} + engines: {node: '>=18.12'} + + '@pnpm/core-loggers@10.0.0': + resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/core-loggers@9.0.1': + resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/crypto.base32-hash@3.0.0': + resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} + engines: {node: '>=18.12'} + + '@pnpm/dedupe.issues-renderer@1.0.0': + resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} + engines: {node: '>=16.14'} + + '@pnpm/dedupe.types@1.0.0': + resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} + engines: {node: '>=16.14'} + + '@pnpm/default-reporter@12.2.3': + resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/dependency-path@3.0.0': + resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} + engines: {node: '>=18.12'} + + '@pnpm/error@4.0.1': + resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} + engines: {node: '>=14.6'} + + '@pnpm/error@5.0.1': + resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} + engines: {node: '>=16.14'} + + '@pnpm/error@5.0.3': + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} + + '@pnpm/error@6.0.0': + resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} + engines: {node: '>=18.12'} + + '@pnpm/fetch@8.0.0': + resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/fetcher-base@14.0.1': + resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} + engines: {node: '>=16.14'} + + '@pnpm/fetching-types@6.0.0': + resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} + engines: {node: '>=18.12'} + + '@pnpm/find-workspace-dir@6.0.3': + resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} + engines: {node: '>=16.14'} + + '@pnpm/find-workspace-packages@6.0.9': + resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} + engines: {node: '>=16.14'} + + '@pnpm/fs.find-packages@2.0.1': + resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} + engines: {node: '>=16.14'} + + '@pnpm/git-resolver@9.0.1': + resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} + engines: {node: '>=18.12'} + + '@pnpm/git-utils@1.0.0': + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} + + '@pnpm/git-utils@2.0.0': + resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} + engines: {node: '>=18.12'} + + '@pnpm/graceful-fs@3.0.0': + resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} + engines: {node: '>=16.14'} + + '@pnpm/hooks.types@1.0.1': + resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} + engines: {node: '>=16.14'} + + '@pnpm/hosted-git-info@1.0.0': + resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} + engines: {node: '>=10'} + + '@pnpm/lockfile-file@9.0.2': + resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/lockfile-types@5.1.0': + resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} + engines: {node: '>=16.14'} + + '@pnpm/lockfile-types@6.0.0': + resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} + engines: {node: '>=18.12'} + + '@pnpm/lockfile-utils@10.0.0': + resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} + engines: {node: '>=18.12'} + + '@pnpm/logger@5.0.0': + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} + + '@pnpm/manifest-utils@5.0.1': + resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} + engines: {node: '>=16.14'} + + '@pnpm/matcher@5.0.0': + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} + engines: {node: '>=16.14'} + + '@pnpm/merge-lockfile-changes@6.0.0': + resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} + engines: {node: '>=18.12'} + + '@pnpm/meta-updater@1.0.0': + resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} + engines: {node: '>=10.12'} + hasBin: true + + '@pnpm/network.agent@1.0.1': + resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.config@1.0.1': + resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.proxy-agent@1.0.1': + resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} + engines: {node: '>=12.22.0'} + + '@pnpm/node-fetch@1.0.0': + resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} + engines: {node: ^10.17 || >=12.3} + + '@pnpm/npm-conf@2.2.0': + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@pnpm/package-is-installable@8.0.2': + resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/pick-fetcher@3.0.0': + resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} + engines: {node: '>=18.12'} + + '@pnpm/pnpmfile@5.0.7': + resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + + '@pnpm/ramda@0.28.1': + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + + '@pnpm/read-project-manifest@5.0.1': + resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} + engines: {node: '>=16.14'} + + '@pnpm/render-peer-issues@4.0.1': + resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@10.0.1': + resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} + engines: {node: '>=16.14'} + + '@pnpm/resolver-base@12.0.0': + resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} + engines: {node: '>=18.12'} + + '@pnpm/store-controller-types@15.0.1': + resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} + engines: {node: '>=16.14'} + + '@pnpm/text.comments-parser@2.0.0': + resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} + engines: {node: '>=16.14'} + + '@pnpm/types@10.0.0': + resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} + engines: {node: '>=18.12'} + + '@pnpm/types@9.1.0': + resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} + engines: {node: '>=16.14'} + + '@pnpm/types@9.4.2': + resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} + engines: {node: '>=16.14'} + + '@pnpm/util.lex-comparator@1.0.0': + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + + '@pnpm/util.lex-comparator@3.0.0': + resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} + engines: {node: '>=18.12'} + + '@pnpm/write-project-manifest@5.0.1': + resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} + engines: {node: '>=16.14'} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@rushstack/eslint-patch@1.8.0': + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sigstore/bundle@1.1.0': + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.2.1': + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/sign@1.0.0': + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/tuf@1.0.3': + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@sinonjs/commons@2.0.0': + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@sinonjs/fake-timers@11.2.2': + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + + '@sinonjs/samsam@8.0.0': + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + + '@sinonjs/text-encoding@0.7.2': + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + + '@slorber/remark-comment@1.0.0': + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + + '@slorber/static-site-generator-webpack-plugin@4.0.7': + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@6.5.1': + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@8.1.0': + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/webpack@6.5.1': + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} + + '@svgr/webpack@8.1.0': + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} + + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + + '@testing-library/react@14.2.2': + resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 || 18 + react-dom: ^18.0.0 || 18 + + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@tsconfig/docusaurus@2.0.2': + resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} + + '@tsconfig/node10@1.0.10': + resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tufjs/canonical-json@1.0.0': + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@tufjs/models@1.0.4': + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.5': + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/chai@4.3.14': + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.6': + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/expect@1.20.4': + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + + '@types/express-serve-static-core@4.17.43': + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/gtag.js@0.0.12': + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.14': + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.12': + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + + '@types/js-cookie@2.2.7': + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/lodash@4.17.0': + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + + '@types/mdast@4.0.3': + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + + '@types/mdx-js__react@1.5.8': + resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + + '@types/mdx@2.0.12': + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/mime@3.0.4': + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mocha@10.0.6': + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + + '@types/moo@0.5.9': + resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nearley@2.11.5': + resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@15.14.9': + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@18.18.2': + resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/normalize-path@3.0.2': + resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prismjs@1.26.3': + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.14': + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-dom@18.2.22': + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + + '@types/react-helmet@6.1.11': + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + + '@types/react-router-config@5.0.11': + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + + '@types/react@18.2.71': + resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/sbd@1.0.5': + resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} + + '@types/scheduler@0.23.0': + resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.5': + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + + '@types/sinon@17.0.3': + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + + '@types/sinonjs__fake-timers@8.1.5': + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/ssri@7.1.5': + resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/tinycolor2@1.4.6': + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/unist@2.0.10': + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/vinyl@2.0.11': + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + + '@types/vscode@1.75.1': + resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} + + '@types/webpack@5.28.5': + resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + + '@typescript-eslint/eslint-plugin@7.4.0': + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.4.0': + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.4.0': + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.4.0': + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.4.0': + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.4.0': + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.4.0': + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.4.0': + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vscode/test-electron@2.3.9': + resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} + engines: {node: '>=16'} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/generators@3.0.7': + resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} + engines: {node: '>=14.15.0'} + peerDependencies: + prettier: '*' + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + prettier: + optional: true + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xobotyi/scrollbar-width@1.9.5': + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true + + '@zkochan/retry@0.2.0': + resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} + engines: {node: '>=10'} + + '@zkochan/rimraf@2.1.3': + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} + + '@zkochan/which@2.0.3': + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + algoliasearch-helper@3.16.3: + resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' + + algoliasearch@4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-diff@1.1.1: + resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-split@1.0.1: + resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + + array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + + axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-loader@9.1.3: + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-polyfill-corejs2@0.4.10: + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.4: + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.1: + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-preset-current-node-syntax@1.0.1: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + bin-links@3.0.3: + resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binaryextensions@4.19.0: + resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + engines: {node: '>=0.8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bole@5.0.11: + resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + can-write-to-dir@1.1.1: + resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} + engines: {node: '>=10.13'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-columns@4.0.0: + resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} + engines: {node: '>= 10'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} + engines: {node: 10.* || >= 12.*} + + cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + + clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + + cmd-shim@5.0.0: + resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + + colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + + combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.1.0: + resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} + engines: {node: '>= 10'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + copy-webpack-plugin@11.0.0: + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + + core-js-pure@3.36.1: + resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} + + core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + + css-loader@6.10.0: + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-minimizer-webpack-plugin@4.2.2: + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-advanced@5.3.10: + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true + + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + effect@2.0.0-next.62: + resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} + + ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + error@10.4.0: + resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + + es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + + es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-next@14.1.4: + resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.1: + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-module-utils@2.8.1: + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.8.0: + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-mocha@10.4.1: + resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.34.1: + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-unicorn@51.0.1: + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@3.1.0: + resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.0.1: + resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} + engines: {node: '>=16.0.0'} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-check@3.15.0: + resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} + engines: {node: '>=8.0.0'} + + fast-check@3.17.0: + resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + fetch-blob@2.1.2: + resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} + engines: {node: ^10.17.0 || >=12.3.0} + peerDependencies: + domexception: '*' + peerDependenciesMeta: + domexception: + optional: true + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@6.5.3: + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + github-username@6.0.0: + resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + + global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graceful-git@3.1.2: + resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} + engines: {node: '>=10'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + grouped-queue@2.0.0: + resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} + engines: {node: '>=8.0.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hasharray@1.1.2: + resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-webpack-plugin@5.6.0: + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@4.0.1: + resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} + engines: {node: '>=10'} + + ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + ini@3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + + inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + + is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-scoped@2.1.0: + resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} + engines: {node: '>=8'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + itertools@2.2.5: + resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + + jclass@1.2.1: + resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} + engines: {node: '>= 0.6'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@5.2.0: + resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + + just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} + + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.10.1: + resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} + engines: {node: '>=12'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + + mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + mem-fs-editor@9.7.0: + resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} + engines: {node: '>=12.10.0'} + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true + + mem-fs@2.3.0: + resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} + engines: {node: '>=12'} + + mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + memfs@4.8.0: + resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + engines: {node: '>= 4.0.0'} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + + micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + + micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + + micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + + micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-css-extract-plugin@2.8.1: + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-infer-owner@2.0.0: + resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} + engines: {node: '>=10'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nano-css@5.6.1: + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + neovim@5.1.0: + resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} + engines: {node: '>=10'} + hasBin: true + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + + next@14.1.4: + resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + + nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-registry-url@2.0.0: + resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + + npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@4.0.0: + resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} + engines: {node: '>=10'} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + + npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} + + npm-packlist@3.0.0: + resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} + engines: {node: '>=10'} + hasBin: true + + npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@6.1.1: + resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + + npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-registry-fetch@12.0.2: + resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + + npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-transform@1.3.0: + resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} + engines: {node: '>=12.10.0'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pacote@12.0.3: + resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + + pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-conflict-json@2.0.2: + resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + + parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-absolute@1.0.1: + resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} + engines: {node: '>=4'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + + path-temp@2.1.0: + resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} + engines: {node: '>=8.15'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-unused@5.1.0: + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-loader@7.3.4: + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-loader@8.1.1: + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + postcss-merge-idents@5.1.1: + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.0.0: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.4: + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.1.1: + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-idents@5.2.0: + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-sort-media-queries@4.4.1: + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss-zindex@5.1.0: + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.5.12: + resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + + pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + + print-diff@1.0.0: + resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} + engines: {node: '>=8.3'} + + printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + + prism-react-renderer@2.3.1: + resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} + peerDependencies: + react: '>=16.0.0 || 18' + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proc-log@1.0.0: + resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + + rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + + ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 + + react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-helmet-async@2.0.4: + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + react-json-view-lite@1.3.0: + resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + + react-loadable-ssr-addon-v5-slorber@1.0.1: + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' + + react-player@2.15.1: + resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} + peerDependencies: + react: '>=16.6.0 || 18' + + react-router-config@5.1.1: + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15 || 18' + react-router: '>=5' + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15 || 18' + + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15 || 18' + + react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + + react-universal-interface@0.6.2: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + + react-use@17.5.0: + resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} + peerDependencies: + react: '*' + react-dom: '*' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-cmd-shim@3.0.1: + resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + read-ini-file@4.0.0: + resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} + engines: {node: '>=14.6'} + + read-package-json-fast@2.0.3: + resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} + engines: {node: '>=10'} + + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-scoped-modules@1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + realpath-missing@1.1.0: + resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} + engines: {node: '>=10'} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfc4648@1.5.3: + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + + right-pad@1.0.1: + resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} + engines: {node: '>= 0.10'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + + rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + + rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + sbd@1.0.19: + resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + scoped-regex@2.1.0: + resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} + engines: {node: '>=8'} + + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + socks-proxy-agent@6.1.1: + resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + engines: {node: '>= 10'} + + socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + + sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} + + sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + + ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + + stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + + stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} + + strip-bom-stream@2.0.0: + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + style-loader@3.3.4: + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + syncpack@12.3.0: + resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} + engines: {node: '>=16'} + hasBin: true + + tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + textextensions@5.16.0: + resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + engines: {node: '>=0.8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tightrope@0.1.0: + resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} + engines: {node: '>=14'} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + treeverse@1.0.4: + resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + + trie-search@2.0.0: + resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-jest@29.1.2: + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + + ts-loader@9.5.1: + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.14.0: + resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + + union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + + unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + url-loader@4.1.1: + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + + validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + + vinyl-file@3.0.0: + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} + + vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + walk-up-path@1.0.0: + resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-middleware@7.1.1: + resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-dev-server@5.0.4: + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpackbar@5.0.2: + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} + + winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + + workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@5.0.0: + resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + write-yaml-file@5.0.0: + resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} + engines: {node: '>=16.14'} + + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yeoman-environment@3.19.3: + resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} + engines: {node: '>=12.10.0'} + hasBin: true + + yeoman-generator@5.10.0: + resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} + engines: {node: '>=12.10.0'} + peerDependencies: + yeoman-environment: ^3.2.0 + peerDependenciesMeta: + yeoman-environment: + optional: true + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -782,161 +9680,105 @@ packages: - '@algolia/client-search' - algoliasearch - search-insights - dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)': dependencies: '@algolia/client-search': 4.22.1 algoliasearch: 4.22.1 - dev: false - /@algolia/cache-browser-local-storage@4.22.1: - resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + '@algolia/cache-browser-local-storage@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/cache-common@4.22.1: - resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} - dev: false + '@algolia/cache-common@4.22.1': {} - /@algolia/cache-in-memory@4.22.1: - resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + '@algolia/cache-in-memory@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 - dev: false - /@algolia/client-account@4.22.1: - resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + '@algolia/client-account@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-analytics@4.22.1: - resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + '@algolia/client-analytics@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/client-search': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-common@4.22.1: - resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + '@algolia/client-common@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-personalization@4.22.1: - resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + '@algolia/client-personalization@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/client-search@4.22.1: - resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + '@algolia/client-search@4.22.1': dependencies: '@algolia/client-common': 4.22.1 '@algolia/requester-common': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /@algolia/events@4.0.1: - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - dev: false + '@algolia/events@4.0.1': {} - /@algolia/logger-common@4.22.1: - resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} - dev: false + '@algolia/logger-common@4.22.1': {} - /@algolia/logger-console@4.22.1: - resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + '@algolia/logger-console@4.22.1': dependencies: '@algolia/logger-common': 4.22.1 - dev: false - /@algolia/requester-browser-xhr@4.22.1: - resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + '@algolia/requester-browser-xhr@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/requester-common@4.22.1: - resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} - dev: false + '@algolia/requester-common@4.22.1': {} - /@algolia/requester-node-http@4.22.1: - resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + '@algolia/requester-node-http@4.22.1': dependencies: '@algolia/requester-common': 4.22.1 - dev: false - /@algolia/transporter@4.22.1: - resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + '@algolia/transporter@4.22.1': dependencies: '@algolia/cache-common': 4.22.1 '@algolia/logger-common': 4.22.1 '@algolia/requester-common': 4.22.1 - dev: false - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true + '@alloc/quick-lru@5.2.0': {} - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - /@babel/compat-data@7.24.1: - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.1': {} - /@babel/core@7.24.3: - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} + '@babel/core@7.24.3': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 @@ -956,30 +9798,22 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.1: - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} + '@babel/generator@7.24.1': dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: '@babel/types': 7.24.0 - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 @@ -987,11 +9821,7 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1004,21 +9834,14 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1029,40 +9852,26 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.22.20': {} - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: '@babel/types': 7.24.0 - - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1071,79 +9880,51 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.0': {} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.0 - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.22.6': dependencies: '@babel/types': 7.24.0 - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.1': {} - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': {} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': {} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.0 - /@babel/helpers@7.24.1: - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.1': dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 @@ -1151,252 +9932,151 @@ packages: transitivePeerDependencies: - supports-color - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/parser@7.24.1: - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true + '@babel/parser@7.24.1': dependencies: '@babel/types': 7.24.0 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 @@ -1404,61 +10084,37 @@ packages: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1470,159 +10126,95 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-hoist-variables': 7.22.5 @@ -1630,60 +10222,36 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 @@ -1691,61 +10259,37 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) + + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1753,47 +10297,27 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1802,40 +10326,24 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.24.3 @@ -1846,59 +10354,34 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 @@ -1906,50 +10389,30 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - /@babel/preset-env@7.24.3(@babel/core@7.24.3): - resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.24.3(@babel/core@7.24.3)': dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -2035,21 +10498,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2059,11 +10515,7 @@ packages: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 @@ -2072,34 +10524,24 @@ packages: '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + '@babel/regjsgen@0.8.0': {} - /@babel/runtime-corejs3@7.24.1: - resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==} - engines: {node: '>=6.9.0'} + '@babel/runtime-corejs3@7.24.1': dependencies: core-js-pure: 3.36.1 regenerator-runtime: 0.14.1 - dev: false - /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} - engines: {node: '>=6.9.0'} + '@babel/runtime@7.24.1': dependencies: regenerator-runtime: 0.14.1 - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.1': dependencies: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 @@ -2114,67 +10556,34 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + '@babel/types@7.24.0': dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true + '@bcoe/v8-coverage@0.2.3': {} - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: false + '@colors/colors@1.5.0': optional: true - /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + '@colors/colors@1.6.0': {} - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true - /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.3': dependencies: colorspace: 1.1.4 enabled: 2.0.0 kuler: 2.0.0 - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + '@discoveryjs/json-ext@0.5.7': {} - /@docsearch/css@3.6.0: - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - dev: false + '@docsearch/css@3.6.0': {} - /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true + '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) @@ -2186,15 +10595,8 @@ packages: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - dev: false - /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -2249,7 +10651,7 @@ packages: react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0) react-router: 5.3.4(react@18.2.0) react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) @@ -2285,32 +10687,20 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/cssnano-preset@3.1.1: - resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==} - engines: {node: '>=18.0'} + '@docusaurus/cssnano-preset@3.1.1': dependencies: cssnano-preset-advanced: 5.3.10(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 4.4.1(postcss@8.4.38) tslib: 2.6.2 - dev: false - /@docusaurus/logger@3.1.1: - resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==} - engines: {node: '>=18.0'} + '@docusaurus/logger@3.1.1': dependencies: chalk: 4.1.2 tslib: 2.6.2 - dev: false - /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 @@ -2347,13 +10737,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==} - peerDependencies: - react: '*' - react-dom: '*' + '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2364,7 +10749,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' transitivePeerDependencies: - '@swc/core' - esbuild @@ -2372,12 +10757,7 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2415,14 +10795,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2458,14 +10832,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2494,14 +10862,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2528,14 +10890,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2560,14 +10916,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2593,14 +10943,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2625,14 +10969,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/logger': 3.1.1 @@ -2662,14 +11000,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2706,23 +11038,14 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/react-loadable@5.5.2(react@18.2.0): - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' + '@docusaurus/react-loadable@5.5.2(react@18.2.0)': dependencies: '@types/react': 18.2.71 prop-types: 15.8.1 react: 18.2.0 - /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2769,14 +11092,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3): - resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)': dependencies: '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2813,14 +11130,8 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3): - resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)': dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3) @@ -2861,22 +11172,13 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - patched: true - /@docusaurus/theme-translations@3.1.1: - resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==} - engines: {node: '>=18.0'} + '@docusaurus/theme-translations@3.1.1': dependencies: fs-extra: 11.2.0 tslib: 2.6.2 - dev: false - /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)': dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -2896,22 +11198,12 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1): - resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)': dependencies: '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 - dev: false - /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==} - engines: {node: '>=18.0'} + '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2) @@ -2925,16 +11217,8 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2): - resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)': dependencies: '@docusaurus/logger': 3.1.1 '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0) @@ -2960,232 +11244,97 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - - /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0): - resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==} - peerDependencies: - effect: 2.0.0-next.62 - fast-check: ^3.13.2 + + '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)': dependencies: effect: 2.0.0-next.62 fast-check: 3.15.0 - dev: true - /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0): - resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==} - engines: {node: '>=10.13.0'} - peerDependencies: - html-webpack-plugin: '>=5' - webpack: '>=5' + '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)': dependencies: escape-string-regexp: 4.0.0 html-webpack-plugin: 5.6.0(webpack@5.91.0) slash: 3.0.0 source-map-url: 0.4.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /@esbuild/aix-ppc64@0.20.2: - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true + '@esbuild/aix-ppc64@0.20.2': optional: true - /@esbuild/android-arm64@0.20.2: - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@esbuild/android-arm64@0.20.2': optional: true - /@esbuild/android-arm@0.20.2: - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.20.2': optional: true - /@esbuild/android-x64@0.20.2: - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + '@esbuild/android-x64@0.20.2': optional: true - /@esbuild/darwin-arm64@0.20.2: - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-arm64@0.20.2': optional: true - /@esbuild/darwin-x64@0.20.2: - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-x64@0.20.2': optional: true - /@esbuild/freebsd-arm64@0.20.2: - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-arm64@0.20.2': optional: true - /@esbuild/freebsd-x64@0.20.2: - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-x64@0.20.2': optional: true - /@esbuild/linux-arm64@0.20.2: - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm64@0.20.2': optional: true - /@esbuild/linux-arm@0.20.2: - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm@0.20.2': optional: true - /@esbuild/linux-ia32@0.20.2: - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + '@esbuild/linux-ia32@0.20.2': optional: true - /@esbuild/linux-loong64@0.20.2: - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.20.2': optional: true - /@esbuild/linux-mips64el@0.20.2: - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + '@esbuild/linux-mips64el@0.20.2': optional: true - /@esbuild/linux-ppc64@0.20.2: - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ppc64@0.20.2': optional: true - /@esbuild/linux-riscv64@0.20.2: - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@esbuild/linux-riscv64@0.20.2': optional: true - /@esbuild/linux-s390x@0.20.2: - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + '@esbuild/linux-s390x@0.20.2': optional: true - /@esbuild/linux-x64@0.20.2: - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + '@esbuild/linux-x64@0.20.2': optional: true - /@esbuild/netbsd-x64@0.20.2: - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + '@esbuild/netbsd-x64@0.20.2': optional: true - /@esbuild/openbsd-x64@0.20.2: - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + '@esbuild/openbsd-x64@0.20.2': optional: true - /@esbuild/sunos-x64@0.20.2: - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + '@esbuild/sunos-x64@0.20.2': optional: true - /@esbuild/win32-arm64@0.20.2: - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@esbuild/win32-arm64@0.20.2': optional: true - /@esbuild/win32-ia32@0.20.2: - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@esbuild/win32-ia32@0.20.2': optional: true - /@esbuild/win32-x64@0.20.2: - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + '@esbuild/win32-x64@0.20.2': optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.10.0': {} - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -3199,62 +11348,35 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@8.57.0': {} - /@fortawesome/fontawesome-common-types@6.5.1: - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} - engines: {node: '>=6'} - requiresBuild: true - dev: false + '@fortawesome/fontawesome-common-types@6.5.1': {} - /@fortawesome/fontawesome-svg-core@6.5.1: - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/fontawesome-svg-core@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/free-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} - engines: {node: '>=6'} - requiresBuild: true + '@fortawesome/free-solid-svg-icons@6.5.1': dependencies: '@fortawesome/fontawesome-common-types': 6.5.1 - dev: false - /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} - peerDependencies: - '@fortawesome/fontawesome-svg-core': ~1 || ~6 - react: '>=16.3 || 18' + '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)': dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 prop-types: 15.8.1 react: 18.2.0 - dev: false - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@gar/promisify@1.1.3': {} - /@gwhitney/detect-indent@7.0.1: - resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} - engines: {node: '>=12.20'} - dev: true + '@gwhitney/detect-indent@7.0.1': {} - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + '@hapi/hoek@9.3.0': {} - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hapi/topo@5.1.0': dependencies: '@hapi/hoek': 9.3.0 - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -3262,46 +11384,32 @@ packages: transitivePeerDependencies: - supports-color - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + '@humanwhocodes/module-importer@1.0.1': {} - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + '@humanwhocodes/object-schema@2.0.2': {} - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@isaacs/string-locale-compare@1.1.0: - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + '@isaacs/string-locale-compare@1.1.0': {} - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 - dev: true - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true + '@istanbuljs/schema@0.1.3': {} - /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -3309,16 +11417,8 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - dev: true - /@jest/core@29.7.0(ts-node@10.9.2): - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/core@29.7.0(ts-node@10.9.2)': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -3352,38 +11452,26 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-mock: 29.7.0 - dev: true - /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 - dev: true - /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -3391,11 +11479,8 @@ packages: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -3403,16 +11488,8 @@ packages: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -3440,46 +11517,32 @@ packages: v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color - dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 - /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - dev: true - /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@29.7.0': dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - dev: true - /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@29.7.0': dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 - dev: true - /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.24.3 '@jest/types': 29.6.3 @@ -3498,11 +11561,8 @@ packages: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color - dev: true - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 @@ -3511,61 +11571,44 @@ packages: '@types/yargs': 17.0.32 chalk: 4.1.2 - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': {} - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': {} - /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.4.15': {} - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + '@leichtgewicht/ip-codec@2.0.4': {} - /@mdx-js/loader@3.0.1(webpack@5.91.0): - resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} - peerDependencies: - webpack: '>=5' + '@mdx-js/loader@3.0.1(webpack@5.91.0)': dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color - dev: false - /@mdx-js/mdx@3.0.1: - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + '@mdx-js/mdx@3.0.1': dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -3593,150 +11636,66 @@ packages: transitivePeerDependencies: - supports-color - /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0): - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16 || 18' + '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)': dependencies: '@types/mdx': 2.0.12 '@types/react': 18.2.71 react: 18.2.0 - dev: false - /@msgpack/msgpack@2.8.0: - resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} - engines: {node: '>= 10'} + '@msgpack/msgpack@2.8.0': {} - /@next/env@14.1.4: - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - dev: false + '@next/env@14.1.4': {} - /@next/eslint-plugin-next@14.1.4: - resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==} + '@next/eslint-plugin-next@14.1.4': dependencies: glob: 10.3.10 - dev: true - /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1): - resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==} - peerDependencies: - '@mdx-js/loader': '>=0.15.0' - '@mdx-js/react': '>=0.15.0' - peerDependenciesMeta: - '@mdx-js/loader': - optional: true - '@mdx-js/react': - optional: true + '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)': dependencies: '@mdx-js/loader': 3.0.1(webpack@5.91.0) '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0) source-map: 0.7.4 - dev: false - /@next/swc-darwin-arm64@14.1.4: - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-arm64@14.1.4': optional: true - /@next/swc-darwin-x64@14.1.4: - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@next/swc-darwin-x64@14.1.4': optional: true - /@next/swc-linux-arm64-gnu@14.1.4: - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-gnu@14.1.4': optional: true - /@next/swc-linux-arm64-musl@14.1.4: - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-arm64-musl@14.1.4': optional: true - /@next/swc-linux-x64-gnu@14.1.4: - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-gnu@14.1.4': optional: true - /@next/swc-linux-x64-musl@14.1.4: - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@next/swc-linux-x64-musl@14.1.4': optional: true - /@next/swc-win32-arm64-msvc@14.1.4: - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-arm64-msvc@14.1.4': optional: true - /@next/swc-win32-ia32-msvc@14.1.4: - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-ia32-msvc@14.1.4': optional: true - /@next/swc-win32-x64-msvc@14.1.4: - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@next/swc-win32-x64-msvc@14.1.4': optional: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@npmcli/arborist@4.3.1: - resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + '@npmcli/arborist@4.3.1': dependencies: '@isaacs/string-locale-compare': 1.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -3774,27 +11733,21 @@ packages: - bluebird - supports-color - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@2.1.2: - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 semver: 7.6.0 - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/fs@3.1.0': dependencies: semver: 7.6.0 - /@npmcli/git@2.1.0: - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==} + '@npmcli/git@2.1.0': dependencies: '@npmcli/promise-spawn': 1.3.2 lru-cache: 6.0.0 @@ -3807,9 +11760,7 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/git@4.1.0: - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 lru-cache: 7.18.3 @@ -3822,34 +11773,24 @@ packages: transitivePeerDependencies: - bluebird - /@npmcli/installed-package-contents@1.0.7: - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==} - engines: {node: '>= 10'} - hasBin: true + '@npmcli/installed-package-contents@1.0.7': dependencies: npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /@npmcli/installed-package-contents@2.0.2: - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + '@npmcli/installed-package-contents@2.0.2': dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - /@npmcli/map-workspaces@2.0.4: - resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/map-workspaces@2.0.4': dependencies: '@npmcli/name-from-folder': 1.0.1 glob: 8.1.0 minimatch: 5.1.6 read-package-json-fast: 2.0.3 - /@npmcli/metavuln-calculator@2.0.0: - resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + '@npmcli/metavuln-calculator@2.0.0': dependencies: cacache: 15.3.0 json-parse-even-better-errors: 2.3.1 @@ -3859,50 +11800,35 @@ packages: - bluebird - supports-color - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@1.1.2': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/move-file@2.0.1: - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/move-file@2.0.1': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 - /@npmcli/name-from-folder@1.0.1: - resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==} + '@npmcli/name-from-folder@1.0.1': {} - /@npmcli/node-gyp@1.0.3: - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==} + '@npmcli/node-gyp@1.0.3': {} - /@npmcli/node-gyp@3.0.0: - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/node-gyp@3.0.0': {} - /@npmcli/package-json@1.0.1: - resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==} + '@npmcli/package-json@1.0.1': dependencies: json-parse-even-better-errors: 2.3.1 - /@npmcli/promise-spawn@1.3.2: - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==} + '@npmcli/promise-spawn@1.3.2': dependencies: infer-owner: 1.0.4 - /@npmcli/promise-spawn@6.0.2: - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/promise-spawn@6.0.2': dependencies: which: 3.0.1 - /@npmcli/run-script@2.0.0: - resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==} + '@npmcli/run-script@2.0.0': dependencies: '@npmcli/node-gyp': 1.0.3 '@npmcli/promise-spawn': 1.3.2 @@ -3912,9 +11838,7 @@ packages: - bluebird - supports-color - /@npmcli/run-script@6.0.2: - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/run-script@6.0.2': dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 @@ -3925,13 +11849,11 @@ packages: - bluebird - supports-color - /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + '@octokit/auth-token@2.5.0': dependencies: '@octokit/types': 6.41.0 - /@octokit/core@3.6.0: - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + '@octokit/core@3.6.0': dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -3943,15 +11865,13 @@ packages: transitivePeerDependencies: - encoding - /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + '@octokit/endpoint@6.0.12': dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - /@octokit/graphql@4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + '@octokit/graphql@4.8.0': dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -3959,42 +11879,30 @@ packages: transitivePeerDependencies: - encoding - /@octokit/openapi-types@12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + '@octokit/openapi-types@12.11.0': {} - /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} - peerDependencies: - '@octokit/core': '>=2' + '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 - /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 - /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} - peerDependencies: - '@octokit/core': '>=3' + '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)': dependencies: '@octokit/core': 3.6.0 '@octokit/types': 6.41.0 deprecation: 2.3.1 - /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + '@octokit/request-error@2.1.0': dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 once: 1.4.0 - /@octokit/request@5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + '@octokit/request@5.6.3': dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -4005,8 +11913,7 @@ packages: transitivePeerDependencies: - encoding - /@octokit/rest@18.12.0: - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + '@octokit/rest@18.12.0': dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -4015,30 +11922,19 @@ packages: transitivePeerDependencies: - encoding - /@octokit/types@6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + '@octokit/types@6.41.0': dependencies: '@octokit/openapi-types': 12.11.0 - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true + '@pkgjs/parseargs@0.11.0': optional: true - /@pnpm/cli-meta@5.0.1: - resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==} - engines: {node: '>=16.14'} + '@pnpm/cli-meta@5.0.1': dependencies: '@pnpm/types': 9.1.0 load-json-file: 6.2.0 - dev: true - /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-meta': 5.0.1 '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) @@ -4051,15 +11947,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 load-json-file: 6.2.0 - dev: true - /@pnpm/config.env-replace@1.1.0: - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} + '@pnpm/config.env-replace@1.1.0': {} - /@pnpm/config@18.4.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==} - engines: {node: '>=16.14'} + '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/constants': 7.1.0 @@ -4079,80 +11970,44 @@ packages: normalize-registry-url: 2.0.0 path-absolute: 1.0.1 path-name: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' read-ini-file: 4.0.0 realpath-missing: 1.1.0 which: 3.0.1 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/constants@6.2.0: - resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==} - engines: {node: '>=14.6'} - dev: false + '@pnpm/constants@6.2.0': {} - /@pnpm/constants@7.1.0: - resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.0': {} - /@pnpm/constants@7.1.1: - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/constants@7.1.1': {} - /@pnpm/constants@8.0.0: - resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/constants@8.0.0': {} - /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 10.0.0 - dev: false - /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/crypto.base32-hash@3.0.0: - resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==} - engines: {node: '>=18.12'} + '@pnpm/crypto.base32-hash@3.0.0': dependencies: rfc4648: 1.5.3 - dev: false - /@pnpm/dedupe.issues-renderer@1.0.0: - resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==} - engines: {node: '>=16.14'} + '@pnpm/dedupe.issues-renderer@1.0.0': dependencies: '@pnpm/dedupe.types': 1.0.0 archy: 1.0.0 chalk: 4.1.2 - dev: true - /@pnpm/dedupe.types@1.0.0: - resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/dedupe.types@1.0.0': {} - /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)': dependencies: '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0) '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) @@ -4168,57 +12023,37 @@ packages: normalize-path: 3.0.0 pretty-bytes: 5.6.0 pretty-ms: 7.0.1 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' right-pad: 1.0.1 rxjs: 7.8.1 semver: 7.6.0 stacktracey: 2.1.8 string-length: 4.0.2 strip-ansi: 6.0.1 - dev: true - /@pnpm/dependency-path@3.0.0: - resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==} - engines: {node: '>=18.12'} + '@pnpm/dependency-path@3.0.0': dependencies: '@pnpm/crypto.base32-hash': 3.0.0 '@pnpm/types': 10.0.0 semver: 7.6.0 - dev: false - /@pnpm/error@4.0.1: - resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==} - engines: {node: '>=14.6'} + '@pnpm/error@4.0.1': dependencies: '@pnpm/constants': 6.2.0 - dev: false - /@pnpm/error@5.0.1: - resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.1': dependencies: '@pnpm/constants': 7.1.0 - dev: true - /@pnpm/error@5.0.3: - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} + '@pnpm/error@5.0.3': dependencies: '@pnpm/constants': 7.1.1 - dev: true - /@pnpm/error@6.0.0: - resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==} - engines: {node: '>=18.12'} + '@pnpm/error@6.0.0': dependencies: '@pnpm/constants': 8.0.0 - dev: false - /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0) '@pnpm/fetching-types': 6.0.0 @@ -4226,42 +12061,30 @@ packages: '@pnpm/network.agent': 1.0.1 '@pnpm/types': 10.0.0 '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/fetcher-base@14.0.1: - resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==} - engines: {node: '>=16.14'} + '@pnpm/fetcher-base@14.0.1': dependencies: '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 '@types/ssri': 7.1.5 - dev: true - /@pnpm/fetching-types@6.0.0: - resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==} - engines: {node: '>=18.12'} + '@pnpm/fetching-types@6.0.0': dependencies: '@zkochan/retry': 0.2.0 - node-fetch: /@pnpm/node-fetch@1.0.0 + node-fetch: '@pnpm/node-fetch@1.0.0' transitivePeerDependencies: - domexception - dev: false - /@pnpm/find-workspace-dir@6.0.3: - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-dir@6.0.3': dependencies: '@pnpm/error': 5.0.3 find-up: 5.0.0 - dev: true - /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)': dependencies: '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0) '@pnpm/constants': 7.1.0 @@ -4271,75 +12094,49 @@ packages: read-yaml-file: 2.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/fs.find-packages@2.0.1: - resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==} - engines: {node: '>=16.14'} + '@pnpm/fs.find-packages@2.0.1': dependencies: '@pnpm/read-project-manifest': 5.0.1 '@pnpm/types': 9.1.0 '@pnpm/util.lex-comparator': 1.0.0 fast-glob: 3.3.2 p-filter: 2.1.0 - dev: true - /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==} - engines: {node: '>=18.12'} + '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0) '@pnpm/resolver-base': 12.0.0 graceful-git: 3.1.2 - hosted-git-info: /@pnpm/hosted-git-info@1.0.0 + hosted-git-info: '@pnpm/hosted-git-info@1.0.0' semver: 7.6.0 transitivePeerDependencies: - '@pnpm/logger' - domexception - supports-color - dev: false - /@pnpm/git-utils@1.0.0: - resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} - engines: {node: '>=16.14'} + '@pnpm/git-utils@1.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: true + execa: safe-execa@0.1.2 - /@pnpm/git-utils@2.0.0: - resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==} - engines: {node: '>=18.12'} + '@pnpm/git-utils@2.0.0': dependencies: - execa: /safe-execa@0.1.2 - dev: false + execa: safe-execa@0.1.2 - /@pnpm/graceful-fs@3.0.0: - resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==} - engines: {node: '>=16.14'} + '@pnpm/graceful-fs@3.0.0': dependencies: graceful-fs: 4.2.11 - dev: true - /@pnpm/hooks.types@1.0.1: - resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==} - engines: {node: '>=16.14'} + '@pnpm/hooks.types@1.0.1': dependencies: '@pnpm/lockfile-types': 5.1.0 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/hosted-git-info@1.0.0: - resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==} - engines: {node: '>=10'} + '@pnpm/hosted-git-info@1.0.0': dependencies: lru-cache: 6.0.0 - dev: false - /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/constants': 8.0.0 '@pnpm/dependency-path': 3.0.0 @@ -4354,9 +12151,9 @@ packages: '@pnpm/util.lex-comparator': 3.0.0 '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 - js-yaml: /@zkochan/js-yaml@0.0.7 + js-yaml: '@zkochan/js-yaml@0.0.7' normalize-path: 3.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 sort-keys: 4.2.0 strip-bom: 4.0.0 @@ -4364,25 +12161,16 @@ packages: transitivePeerDependencies: - domexception - supports-color - dev: false - /@pnpm/lockfile-types@5.1.0: - resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==} - engines: {node: '>=16.14'} + '@pnpm/lockfile-types@5.1.0': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/lockfile-types@6.0.0: - resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-types@6.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/lockfile-utils@10.0.0: - resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==} - engines: {node: '>=18.12'} + '@pnpm/lockfile-utils@10.0.0': dependencies: '@pnpm/dependency-path': 3.0.0 '@pnpm/lockfile-types': 6.0.0 @@ -4390,48 +12178,33 @@ packages: '@pnpm/resolver-base': 12.0.0 '@pnpm/types': 10.0.0 get-npm-tarball-url: 2.1.0 - ramda: /@pnpm/ramda@0.28.1 - dev: false + ramda: '@pnpm/ramda@0.28.1' - /@pnpm/logger@5.0.0: - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} + '@pnpm/logger@5.0.0': dependencies: bole: 5.0.11 ndjson: 2.0.0 - /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==} - engines: {node: '>=16.14'} + '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/types': 9.1.0 transitivePeerDependencies: - '@pnpm/logger' - dev: true - /@pnpm/matcher@5.0.0: - resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} - engines: {node: '>=16.14'} + '@pnpm/matcher@5.0.0': dependencies: escape-string-regexp: 4.0.0 - dev: true - /@pnpm/merge-lockfile-changes@6.0.0: - resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==} - engines: {node: '>=18.12'} + '@pnpm/merge-lockfile-changes@6.0.0': dependencies: '@pnpm/lockfile-types': 6.0.0 comver-to-semver: 1.0.0 - ramda: /@pnpm/ramda@0.28.1 + ramda: '@pnpm/ramda@0.28.1' semver: 7.6.0 - dev: false - /@pnpm/meta-updater@1.0.0: - resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==} - engines: {node: '>=10.12'} - hasBin: true + '@pnpm/meta-updater@1.0.0': dependencies: '@pnpm/find-workspace-dir': 6.0.3 '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0) @@ -4442,11 +12215,8 @@ packages: print-diff: 1.0.0 ramda: 0.29.1 write-json-file: 5.0.0 - dev: true - /@pnpm/network.agent@1.0.1: - resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==} - engines: {node: '>=12.22.0'} + '@pnpm/network.agent@1.0.1': dependencies: '@pnpm/network.config': 1.0.1 '@pnpm/network.proxy-agent': 1.0.1 @@ -4454,24 +12224,16 @@ packages: lru-cache: 7.10.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.ca-file@1.0.2': dependencies: graceful-fs: 4.2.10 - /@pnpm/network.config@1.0.1: - resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.config@1.0.1': dependencies: nerf-dart: 1.0.0 - dev: false - /@pnpm/network.proxy-agent@1.0.1: - resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.proxy-agent@1.0.1': dependencies: '@pnpm/error': 4.0.1 http-proxy-agent: 5.0.0 @@ -4480,62 +12242,40 @@ packages: socks-proxy-agent: 6.1.1 transitivePeerDependencies: - supports-color - dev: false - /@pnpm/node-fetch@1.0.0: - resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==} - engines: {node: ^10.17 || >=12.3} + '@pnpm/node-fetch@1.0.0': dependencies: data-uri-to-buffer: 3.0.1 fetch-blob: 2.1.2 transitivePeerDependencies: - domexception - dev: false - /@pnpm/npm-conf@2.2.0: - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.0': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: true - /@pnpm/npm-conf@2.2.2: - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: false - /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 '@pnpm/logger': 5.0.0 '@pnpm/types': 9.1.0 detect-libc: 2.0.3 - execa: /safe-execa@0.1.2 + execa: safe-execa@0.1.2 mem: 8.1.1 semver: 7.6.0 - dev: true - /@pnpm/pick-fetcher@3.0.0: - resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/pick-fetcher@3.0.0': {} - /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 + '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)': dependencies: '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0) '@pnpm/error': 5.0.1 @@ -4546,14 +12286,10 @@ packages: '@pnpm/types': 9.1.0 chalk: 4.1.2 path-absolute: 1.0.1 - dev: true - /@pnpm/ramda@0.28.1: - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + '@pnpm/ramda@0.28.1': {} - /@pnpm/read-project-manifest@5.0.1: - resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==} - engines: {node: '>=16.14'} + '@pnpm/read-project-manifest@5.0.1': dependencies: '@gwhitney/detect-indent': 7.0.1 '@pnpm/error': 5.0.1 @@ -4568,116 +12304,69 @@ packages: read-yaml-file: 2.1.0 sort-keys: 4.2.0 strip-bom: 4.0.0 - dev: true - /@pnpm/render-peer-issues@4.0.1: - resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==} - engines: {node: '>=16.14'} + '@pnpm/render-peer-issues@4.0.1': dependencies: '@pnpm/types': 9.1.0 archy: 1.0.0 chalk: 4.1.2 cli-columns: 4.0.0 - dev: true - /@pnpm/resolver-base@10.0.1: - resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==} - engines: {node: '>=16.14'} + '@pnpm/resolver-base@10.0.1': dependencies: '@pnpm/types': 9.1.0 - dev: true - /@pnpm/resolver-base@12.0.0: - resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==} - engines: {node: '>=18.12'} + '@pnpm/resolver-base@12.0.0': dependencies: '@pnpm/types': 10.0.0 - dev: false - /@pnpm/store-controller-types@15.0.1: - resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==} - engines: {node: '>=16.14'} + '@pnpm/store-controller-types@15.0.1': dependencies: '@pnpm/fetcher-base': 14.0.1 '@pnpm/resolver-base': 10.0.1 '@pnpm/types': 9.1.0 - dev: true - /@pnpm/text.comments-parser@2.0.0: - resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==} - engines: {node: '>=16.14'} + '@pnpm/text.comments-parser@2.0.0': dependencies: strip-comments-strings: 1.2.0 - dev: true - /@pnpm/types@10.0.0: - resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/types@10.0.0': {} - /@pnpm/types@9.1.0: - resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.1.0': {} - /@pnpm/types@9.4.2: - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - dev: true + '@pnpm/types@9.4.2': {} - /@pnpm/util.lex-comparator@1.0.0: - resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} - engines: {node: '>=12.22.0'} - dev: true + '@pnpm/util.lex-comparator@1.0.0': {} - /@pnpm/util.lex-comparator@3.0.0: - resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==} - engines: {node: '>=18.12'} - dev: false + '@pnpm/util.lex-comparator@3.0.0': {} - /@pnpm/write-project-manifest@5.0.1: - resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==} - engines: {node: '>=16.14'} + '@pnpm/write-project-manifest@5.0.1': dependencies: '@pnpm/text.comments-parser': 2.0.0 '@pnpm/types': 9.1.0 json5: 2.2.3 write-file-atomic: 5.0.1 write-yaml-file: 5.0.0 - dev: true - /@polka/url@1.0.0-next.25: - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - dev: false + '@polka/url@1.0.0-next.25': {} - /@rushstack/eslint-patch@1.8.0: - resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} - dev: true + '@rushstack/eslint-patch@1.8.0': {} - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + '@sideway/formula@3.0.1': {} - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sideway/pinpoint@2.0.0': {} - /@sigstore/bundle@1.1.0: - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/bundle@1.1.0': dependencies: '@sigstore/protobuf-specs': 0.2.1 - /@sigstore/protobuf-specs@0.2.1: - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/protobuf-specs@0.2.1': {} - /@sigstore/sign@1.0.0: - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/sign@1.0.0': dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -4685,210 +12374,112 @@ packages: transitivePeerDependencies: - supports-color - /@sigstore/tuf@1.0.3: - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/tuf@1.0.3': dependencies: '@sigstore/protobuf-specs': 0.2.1 tuf-js: 1.1.7 transitivePeerDependencies: - supports-color - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.27.8': {} - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: false + '@sindresorhus/is@4.6.0': {} - /@sindresorhus/is@5.6.0: - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - dev: false + '@sindresorhus/is@5.6.0': {} - /@sinonjs/commons@2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/commons@3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - dev: true - /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@10.3.0': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/fake-timers@11.2.2: - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + '@sinonjs/fake-timers@11.2.2': dependencies: '@sinonjs/commons': 3.0.1 - dev: true - /@sinonjs/samsam@8.0.0: - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + '@sinonjs/samsam@8.0.0': dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 - dev: true - /@sinonjs/text-encoding@0.7.2: - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - dev: true + '@sinonjs/text-encoding@0.7.2': {} - /@slorber/remark-comment@1.0.0: - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + '@slorber/remark-comment@1.0.0': dependencies: micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 - dev: false - /@slorber/static-site-generator-webpack-plugin@4.0.7: - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} + '@slorber/static-site-generator-webpack-plugin@4.0.7': dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)': dependencies: - '@babel/core': 7.24.3 - dev: true - - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': 7.24.3 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: false - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - dev: true - /@svgr/babel-preset@6.5.1(@babel/core@7.24.3): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3) @@ -4899,13 +12490,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3) - dev: false - /@svgr/babel-preset@8.1.0(@babel/core@7.24.3): - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3) @@ -4916,11 +12502,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) - dev: true - /@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} + '@svgr/core@6.5.1': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4929,11 +12512,8 @@ packages: cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color - dev: false - /@svgr/core@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + '@svgr/core@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4943,29 +12523,18 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@6.5.1': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: false - /@svgr/hast-util-to-babel-ast@8.0.0: - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: true - /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3) @@ -4974,13 +12543,8 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false - /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)': dependencies: '@babel/core': 7.24.3 '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3) @@ -4989,25 +12553,15 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: true - /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 deepmerge: 4.3.1 svgo: 2.8.0 - dev: false - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3): - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)': dependencies: '@svgr/core': 8.1.0(typescript@5.4.3) cosmiconfig: 8.3.6(typescript@5.4.3) @@ -5015,11 +12569,8 @@ packages: svgo: 3.2.0 transitivePeerDependencies: - typescript - dev: true - /@svgr/webpack@6.5.1: - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} + '@svgr/webpack@6.5.1': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5031,11 +12582,8 @@ packages: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color - dev: false - /@svgr/webpack@8.1.0(typescript@5.4.3): - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} + '@svgr/webpack@8.1.0(typescript@5.4.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3) @@ -5048,24 +12596,16 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/helpers@0.5.2': dependencies: tslib: 2.6.2 - dev: false - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 - dev: false - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@testing-library/dom@9.3.4': dependencies: '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 @@ -5075,491 +12615,336 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - dev: true - /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 || 18 - react-dom: ^18.0.0 || 18 + '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.1 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} + '@tootallnate/once@1.1.2': {} - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + '@tootallnate/once@2.0.0': {} - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} + '@trysound/sax@0.2.0': {} - /@tsconfig/docusaurus@2.0.2: - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - dev: true + '@tsconfig/docusaurus@2.0.2': {} - /@tsconfig/node10@1.0.10: - resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==} - dev: true + '@tsconfig/node10@1.0.10': {} - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true + '@tsconfig/node12@1.0.11': {} - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true + '@tsconfig/node14@1.0.3': {} - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true + '@tsconfig/node16@1.0.4': {} - /@tufjs/canonical-json@1.0.0: - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/canonical-json@1.0.0': {} - /@tufjs/models@1.0.4: - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@tufjs/models@1.0.4': dependencies: '@tufjs/canonical-json': 1.0.0 minimatch: 9.0.3 - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 - /@types/aria-query@5.0.4: - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - dev: true + '@types/aria-query@5.0.4': {} - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 - dev: true - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.6.8': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + '@types/babel__traverse@7.20.5': dependencies: '@babel/types': 7.24.0 - dev: true - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 '@types/node': 18.18.2 - /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/bonjour@3.5.13': dependencies: '@types/node': 18.18.2 - /@types/chai@4.3.14: - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/chai@4.3.14': {} - /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.17.43 '@types/node': 18.18.2 - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/connect@3.4.38': dependencies: '@types/node': 18.18.2 - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.56.6 '@types/estree': 1.0.5 - /@types/eslint@8.56.6: - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + '@types/eslint@8.56.6': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.5': {} - /@types/expect@1.20.4: - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + '@types/expect@1.20.4': {} - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + '@types/express-serve-static-core@4.17.43': dependencies: '@types/node': 18.18.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.14 '@types/serve-static': 1.15.5 - /@types/fs-extra@11.0.4: - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 '@types/node': 18.18.2 - dev: true - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.18.2 - dev: true - /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 18.18.2 - dev: true - /@types/gtag.js@0.0.12: - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - dev: false + '@types/gtag.js@0.0.12': {} - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - /@types/history@4.7.11: - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@types/history@4.7.11': {} - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + '@types/html-minifier-terser@6.1.0': {} - /@types/http-cache-semantics@4.0.4: - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - dev: false + '@types/http-cache-semantics@4.0.4': {} - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/http-errors@2.0.4': {} - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.14': dependencies: '@types/node': 18.18.2 - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@types/istanbul-lib-coverage@2.0.6': {} - /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + '@types/istanbul-lib-report@3.0.3': dependencies: '@types/istanbul-lib-coverage': 2.0.6 - /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/istanbul-reports@3.0.4': dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest@29.5.12: - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.12': dependencies: expect: 29.7.0 pretty-format: 29.7.0 - dev: true - /@types/js-cookie@2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: false + '@types/js-cookie@2.2.7': {} - /@types/js-yaml@4.0.9: - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/js-yaml@4.0.9': {} - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/jsdom@20.0.1': dependencies: '@types/node': 18.18.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 - dev: true - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/jsonfile@6.1.4: - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/jsonfile@6.1.4': dependencies: '@types/node': 18.18.2 - dev: true - /@types/lodash@4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + '@types/lodash@4.17.0': {} - /@types/mdast@4.0.3: - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + '@types/mdast@4.0.3': dependencies: '@types/unist': 3.0.2 - /@types/mdx-js__react@1.5.8: - resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==} + '@types/mdx-js__react@1.5.8': dependencies: '@types/react': 18.2.71 - dev: true - /@types/mdx@2.0.12: - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} + '@types/mdx@2.0.12': {} - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@types/mime@1.3.5': {} - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + '@types/mime@3.0.4': {} - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + '@types/minimatch@3.0.5': {} - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true + '@types/minimatch@5.1.2': {} - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - dev: true + '@types/minimist@1.2.5': {} - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - dev: true + '@types/mocha@10.0.6': {} - /@types/moo@0.5.9: - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - dev: true + '@types/moo@0.5.9': {} - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@0.7.34': {} - /@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae): - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - dev: true - patched: true + '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {} - /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node-forge@1.3.11': dependencies: '@types/node': 18.18.2 - /@types/node@15.14.9: - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + '@types/node@15.14.9': {} - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false + '@types/node@17.0.45': {} - /@types/node@18.18.2: - resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} + '@types/node@18.18.2': {} - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/normalize-package-data@2.4.4': {} - /@types/normalize-path@3.0.2: - resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} - dev: false + '@types/normalize-path@3.0.2': {} - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false + '@types/parse-json@4.0.2': {} - /@types/prismjs@1.26.3: - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - dev: false + '@types/prismjs@1.26.3': {} - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/prop-types@15.7.12': {} - /@types/qs@6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + '@types/qs@6.9.14': {} - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/range-parser@1.2.7': {} - /@types/react-dom@18.2.22: - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + '@types/react-dom@18.2.22': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-helmet@6.1.11: - resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + '@types/react-helmet@6.1.11': dependencies: '@types/react': 18.2.71 - dev: true - /@types/react-router-config@5.0.11: - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + '@types/react-router-config@5.0.11': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router-dom@5.3.3: - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 '@types/react-router': 5.1.20 - /@types/react-router@5.1.20: - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@types/react-router@5.1.20': dependencies: '@types/history': 4.7.11 '@types/react': 18.2.71 - /@types/react@18.2.71: - resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==} + '@types/react@18.2.71': dependencies: '@types/prop-types': 15.7.12 '@types/scheduler': 0.23.0 csstype: 3.1.3 - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false + '@types/retry@0.12.0': {} - /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + '@types/retry@0.12.2': {} - /@types/sax@1.2.7: - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + '@types/sax@1.2.7': dependencies: '@types/node': 18.18.2 - dev: false - /@types/sbd@1.0.5: - resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==} - dev: true + '@types/sbd@1.0.5': {} - /@types/scheduler@0.23.0: - resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==} + '@types/scheduler@0.23.0': {} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + '@types/semver@7.5.8': {} - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 18.18.2 - /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + '@types/serve-static@1.15.5': dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.18.2 - /@types/sinon@17.0.3: - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + '@types/sinon@17.0.3': dependencies: '@types/sinonjs__fake-timers': 8.1.5 - /@types/sinonjs__fake-timers@8.1.5: - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + '@types/sinonjs__fake-timers@8.1.5': {} - /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@types/sockjs@0.3.36': dependencies: '@types/node': 18.18.2 - /@types/ssri@7.1.5: - resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + '@types/ssri@7.1.5': dependencies: '@types/node': 18.18.2 - dev: true - /@types/stack-utils@2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - dev: true + '@types/stack-utils@2.0.3': {} - /@types/tinycolor2@1.4.6: - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - dev: true + '@types/tinycolor2@1.4.6': {} - /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - dev: true + '@types/tough-cookie@4.0.5': {} - /@types/triple-beam@1.3.5: - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + '@types/triple-beam@1.3.5': {} - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.10': {} - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/unist@3.0.2': {} - /@types/uuid@9.0.8: - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/uuid@9.0.8': {} - /@types/vinyl@2.0.11: - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} + '@types/vinyl@2.0.11': dependencies: '@types/expect': 1.20.4 '@types/node': 18.18.2 - /@types/vscode@1.75.1: - resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==} + '@types/vscode@1.75.1': {} - /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} + '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)': dependencies: '@types/node': 18.18.2 tapable: 2.2.1 @@ -5569,31 +12954,18 @@ packages: - esbuild - uglify-js - webpack-cli - dev: true - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.10': dependencies: '@types/node': 18.18.2 - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@types/yargs-parser@21.0.3': {} - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.32': dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5611,17 +12983,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -5632,17 +12995,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 @@ -5653,33 +13007,18 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - /@typescript-eslint/scope-manager@7.4.0: - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 - dev: true - /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) @@ -5689,26 +13028,12 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@6.21.0': {} - /@typescript-eslint/types@7.4.0: - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - dev: true + '@typescript-eslint/types@7.4.0': {} - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -5721,16 +13046,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': dependencies: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 @@ -5743,13 +13060,8 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -5762,30 +13074,20 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@7.4.0: - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.4.0': dependencies: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 - dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.2.0': {} - /@vscode/test-electron@2.3.9: - resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==} - engines: {node: '>=16'} + '@vscode/test-electron@2.3.9': dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -5793,56 +13095,44 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /@webassemblyjs/ast@1.12.1: - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.11.6': {} - /@webassemblyjs/helper-buffer@1.12.1: - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.12.1': {} - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.11.6': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - /@webassemblyjs/helper-wasm-section@1.12.1: - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.11.6': {} - /@webassemblyjs/wasm-edit@1.12.1: - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -5853,8 +13143,7 @@ packages: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - /@webassemblyjs/wasm-gen@1.12.1: - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -5862,16 +13151,14 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wasm-opt@1.12.1: - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - /@webassemblyjs/wasm-parser@1.12.1: - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -5880,32 +13167,17 @@ packages: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - /@webassemblyjs/wast-printer@1.12.1: - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==} - engines: {node: '>=14.15.0'} - peerDependencies: - prettier: '*' - webpack: 5.x.x - webpack-cli: 5.x.x - peerDependenciesMeta: - prettier: - optional: true + '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: prettier: 3.2.5 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) @@ -5918,207 +13190,125 @@ packages: - mem-fs - supports-color - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)': dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0) webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - /@xobotyi/scrollbar-width@1.9.5: - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - dev: false + '@xobotyi/scrollbar-width@1.9.5': {} - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@xtuc/ieee754@1.2.0': {} - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@xtuc/long@4.2.2': {} - /@zkochan/js-yaml@0.0.7: - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true + '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 - dev: false - /@zkochan/retry@0.2.0: - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - dev: false + '@zkochan/retry@0.2.0': {} - /@zkochan/rimraf@2.1.3: - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} + '@zkochan/rimraf@2.1.3': dependencies: rimraf: 3.0.2 - dev: false - /@zkochan/which@2.0.3: - resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} - engines: {node: '>= 8'} - hasBin: true + '@zkochan/which@2.0.3': dependencies: isexe: 2.0.0 - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - dev: true + abab@2.0.6: {} - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@1.1.1: {} - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-globals@7.0.1: dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 + acorn-import-assertions@1.9.0(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: acorn: 8.11.3 - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + acorn-walk@8.3.2: {} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@8.11.3: {} - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: false + address@1.2.2: {} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + agent-base@6.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.2.1: dependencies: debug: 4.3.4(supports-color@8.1.1) depd: 1.1.2 humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: false - /agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} + agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + ajv-formats@2.1.1(ajv@8.12.0): dependencies: ajv: 8.12.0 - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + ajv-keywords@5.1.0(ajv@8.12.0): dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - /algoliasearch-helper@3.16.3(algoliasearch@4.22.1): - resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' + algoliasearch-helper@3.16.3(algoliasearch@4.22.1): dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.22.1 - dev: false - /algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + algoliasearch@4.22.1: dependencies: '@algolia/cache-browser-local-storage': 4.22.1 '@algolia/cache-common': 4.22.1 @@ -6134,157 +13324,96 @@ packages: '@algolia/requester-common': 4.22.1 '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 - dev: false - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-align@3.0.1: dependencies: string-width: 4.2.3 - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.1: {} - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.3: {} - /ansi-diff@1.1.1: - resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==} + ansi-diff@1.1.1: dependencies: ansi-split: 1.0.1 - dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true + ansi-html-community@0.0.8: {} - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true + ansi-regex@3.0.1: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + ansi-regex@6.0.1: {} - /ansi-split@1.0.1: - resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} + ansi-split@1.0.1: dependencies: ansi-regex: 3.0.1 - dev: true - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true + ansi-styles@5.2.0: {} - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + ansi-styles@6.2.1: {} - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true + any-promise@1.3.0: {} - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + aproba@2.0.0: {} - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: true + archy@1.0.0: {} - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + are-we-there-yet@3.0.1: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true + arg@4.1.3: {} - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + arg@5.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argparse@2.0.1: {} - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.1.3: dependencies: deep-equal: 2.2.3 - dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.0: dependencies: dequal: 2.0.3 - dev: true - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - dev: true - /array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} + array-differ@3.0.0: {} - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-flatten@1.1.1: {} - /array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6292,15 +13421,10 @@ packages: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array-union@2.1.0: {} - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6308,11 +13432,8 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6320,50 +13441,37 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + array.prototype.tosorted@1.1.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -6373,63 +13481,34 @@ packages: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true + arrify@1.0.1: {} - /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + arrify@2.0.1: {} - /as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + as-table@1.0.55: dependencies: printable-characters: 1.0.42 - dev: true - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asap@2.0.6: {} - /assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - dev: true + assertion-error@2.0.1: {} - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true + ast-types-flow@0.0.8: {} - /astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true + astring@1.8.6: {} - /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + async@2.6.4: dependencies: lodash: 4.17.21 - dev: true - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.5: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + asynckit@0.4.0: {} - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: false + at-least-node@1.0.0: {} - /autoprefixer@10.4.19(postcss@8.4.38): - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 @@ -6439,29 +13518,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - dev: true - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: true + axe-core@4.7.0: {} - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.2.1: dependencies: dequal: 2.0.3 - dev: true - /babel-jest@29.7.0(@babel/core@7.24.3): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 + babel-jest@29.7.0(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@jest/transform': 29.7.0 @@ -6473,30 +13540,19 @@ packages: slash: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' + babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0): dependencies: '@babel/core': 7.24.3 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + babel-plugin-dynamic-import-node@2.3.3: dependencies: object.assign: 4.1.5 - dev: false - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 @@ -6505,22 +13561,15 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 - dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): dependencies: '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 @@ -6529,10 +13578,7 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) @@ -6540,20 +13586,14 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) @@ -6568,55 +13608,34 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) - dev: true - /babel-preset-jest@29.6.3(@babel/core@7.24.3): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 + babel-preset-jest@29.6.3(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3) - dev: true - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + bail@2.0.2: {} - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@1.0.2: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64-js@1.5.1: {} - /basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 - dev: true - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + batch@0.6.1: {} - /before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + before-after-hook@2.2.3: {} - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 - dev: true - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: false + big.js@5.2.2: {} - /bin-links@3.0.3: - resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + bin-links@3.0.3: dependencies: cmd-shim: 5.0.0 mkdirp-infer-owner: 2.0.0 @@ -6625,24 +13644,17 @@ packages: rimraf: 3.0.2 write-file-atomic: 4.0.2 - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + binary-extensions@2.3.0: {} - /binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} - engines: {node: '>=0.8'} + binaryextensions@4.19.0: {} - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.2: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6659,24 +13671,19 @@ packages: transitivePeerDependencies: - supports-color - /bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} + bole@5.0.11: dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolbase@1.0.0: {} - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + boxen@5.1.2: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6686,11 +13693,8 @@ packages: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 - dev: true - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + boxen@6.2.1: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -6700,11 +13704,8 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + boxen@7.1.1: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -6714,104 +13715,70 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true + browser-stdout@1.3.1: {} - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001600 electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 - dev: true - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + bser@2.1.1: dependencies: node-int64: 0.4.0 - dev: true - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-from@1.1.2: {} - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true + builtin-modules@3.3.0: {} - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + builtins@1.0.3: {} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + builtins@5.0.1: dependencies: semver: 7.6.0 - /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: false - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + bytes@3.0.0: {} - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + bytes@3.1.2: {} - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} + cacache@15.3.0: dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -6834,9 +13801,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cacache@16.1.3: dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -6859,9 +13824,7 @@ packages: transitivePeerDependencies: - bluebird - /cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + cacache@17.1.4: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 @@ -6876,14 +13839,9 @@ packages: tar: 6.2.1 unique-filename: 3.0.0 - /cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - dev: false + cacheable-lookup@7.0.0: {} - /cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + cacheable-request@10.2.14: dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 @@ -6892,11 +13850,8 @@ packages: mimic-response: 4.0.0 normalize-url: 8.0.1 responselike: 3.0.0 - dev: false - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -6904,133 +13859,85 @@ packages: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true + camelcase-css@2.0.1: {} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} + camelcase-keys@7.0.2: dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 - dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + camelcase@5.3.1: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + camelcase@6.3.0: {} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: false + camelcase@7.0.1: {} - /can-write-to-dir@1.1.1: - resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==} - engines: {node: '>=10.13'} + can-write-to-dir@1.1.1: dependencies: path-temp: 2.1.0 - dev: true - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: false - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + caniuse-lite@1.0.30001600: {} - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + ccount@2.0.1: {} - /chai@5.1.0: - resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} - engines: {node: '>=12'} + chai@5.1.0: dependencies: assertion-error: 2.0.1 check-error: 2.0.0 deep-eql: 5.0.1 loupe: 3.1.0 pathval: 2.0.0 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: false + chalk@5.3.0: {} - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + char-regex@1.0.2: {} - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + character-entities-html4@2.1.0: {} - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities-legacy@3.0.0: {} - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-entities@2.0.2: {} - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + character-reference-invalid@2.0.1: {} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@0.7.0: {} - /check-error@2.0.0: - resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} - engines: {node: '>= 16'} - dev: true + check-error@2.0.0: {} - /cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -7038,11 +13945,8 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 - dev: false - /cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -7051,11 +13955,8 @@ packages: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 - dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7066,11 +13967,8 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7082,282 +13980,169 @@ packages: optionalDependencies: fsevents: 2.3.3 - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + chownr@2.0.0: {} - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + chrome-trace-event@1.0.3: {} - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + ci-info@3.9.0: {} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: true + ci-info@4.0.0: {} - /cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true + cjs-module-lexer@1.2.3: {} - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + clean-css@5.3.3: dependencies: source-map: 0.6.1 - /clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + clean-stack@2.2.0: {} - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: true + cli-boxes@2.2.1: {} - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + cli-boxes@3.0.0: {} - /cli-columns@4.0.0: - resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==} - engines: {node: '>= 10'} + cli-columns@4.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + cli-spinners@2.9.2: {} - /cli-table3@0.6.4: - resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.4: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: false - /cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} + cli-table@0.3.11: dependencies: colors: 1.0.3 - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-width@3.0.0: {} - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false + client-only@0.0.1: {} - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} + clone-buffer@1.0.0: {} - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - /clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + clone-stats@1.0.0: {} - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + clone@1.0.4: {} - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} + clone@2.1.2: {} - /cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + cloneable-readable@1.1.3: dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 - /clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} - dev: false + clsx@2.1.0: {} - /cmd-shim@5.0.0: - resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cmd-shim@5.0.0: dependencies: mkdirp-infer-owner: 2.0.0 - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true + co@4.6.0: {} - /collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + collapse-white-space@2.1.0: {} - /collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true + collect-v8-coverage@1.0.2: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true + color-support@1.1.3: {} - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@3.2.1: dependencies: color-convert: 1.9.3 color-string: 1.9.1 - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false + colord@2.9.3: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorette@2.0.20: {} - /colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} + colors@1.0.3: {} - /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + colorspace@1.1.4: dependencies: color: 3.2.1 text-hex: 1.0.0 - /combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - dev: false + combine-promises@1.2.0: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + comma-separated-tokens@2.0.3: {} - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + commander@10.0.1: {} - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + commander@11.1.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@2.20.3: {} - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true + commander@4.1.1: {} - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + commander@5.1.0: {} - /commander@7.1.0: - resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} - engines: {node: '>= 10'} + commander@7.1.0: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + commander@7.2.0: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + commander@8.3.0: {} - /common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-ancestor-path@1.0.1: {} - /common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - dev: false + common-path-prefix@3.0.0: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + commondir@1.0.1: {} - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + compressible@2.0.18: dependencies: mime-db: 1.52.0 - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + compression@1.7.4: dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -7369,83 +14154,50 @@ packages: transitivePeerDependencies: - supports-color - /comver-to-semver@1.0.0: - resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} - engines: {node: '>=12.17'} - dev: false + comver-to-semver@1.0.0: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concat-map@0.0.1: {} - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - /configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + configstore@6.0.0: dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - dev: false - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} + connect-history-api-fallback@2.0.0: {} - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false + consola@2.15.3: {} - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + console-control-strings@1.1.0: {} - /content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: false + content-disposition@0.5.2: {} - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + content-type@1.0.5: {} - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-source-map@2.0.0: {} - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.0.6: {} - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + cookie@0.6.0: {} - /copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - dev: false + copy-text-to-clipboard@3.2.0: {} - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - dev: false - /copy-webpack-plugin@11.0.0(webpack@5.91.0): - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 + copy-webpack-plugin@11.0.0(webpack@5.91.0): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -7454,61 +14206,36 @@ packages: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.36.1: dependencies: browserslist: 4.23.0 - /core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - requiresBuild: true - dev: false + core-js-pure@3.36.1: {} - /core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - requiresBuild: true - dev: false + core-js@3.36.1: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + core-util-is@1.0.3: {} - /corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} - dev: true + corser@2.0.1: {} - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@8.3.6(typescript@5.4.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@8.3.6(typescript@5.4.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -7516,26 +14243,15 @@ packages: path-type: 4.0.0 typescript: 5.4.3 - /cosmiconfig@9.0.0(typescript@5.4.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@9.0.0(typescript@5.4.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 typescript: 5.4.3 - dev: true - /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true + create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -7549,58 +14265,30 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true + create-require@1.1.1: {} - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + crypto-random-string@2.0.0: {} - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: false - /css-declaration-sorter@6.4.1(postcss@8.4.38): - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 + css-declaration-sorter@6.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /css-in-js-utils@3.1.0: - resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + css-in-js-utils@3.1.0: dependencies: hyphenate-style-name: 1.0.4 - dev: false - /css-loader@6.10.0(webpack@5.91.0): - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + css-loader@6.10.0(webpack@5.91.0): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -7612,30 +14300,7 @@ packages: semver: 7.6.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true + css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0): dependencies: clean-css: 5.3.3 cssnano: 5.1.15(postcss@8.4.38) @@ -7646,10 +14311,8 @@ packages: serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7657,8 +14320,7 @@ packages: domutils: 2.8.0 nth-check: 2.1.1 - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7666,44 +14328,26 @@ packages: domutils: 3.1.0 nth-check: 2.1.1 - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + css-tree@1.1.3: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 - dev: false - /css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 - dev: true - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 - dev: true - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} + css-what@6.1.0: {} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + cssesc@3.0.0: {} - /cssnano-preset-advanced@5.3.10(postcss@8.4.38): - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-advanced@5.3.10(postcss@8.4.38): dependencies: autoprefixer: 10.4.19(postcss@8.4.38) cssnano-preset-default: 5.2.14(postcss@8.4.38) @@ -7712,13 +14356,8 @@ packages: postcss-merge-idents: 5.1.1(postcss@8.4.38) postcss-reduce-idents: 5.2.0(postcss@8.4.38) postcss-zindex: 5.1.0(postcss@8.4.38) - dev: false - /cssnano-preset-default@5.2.14(postcss@8.4.38): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-default@5.2.14(postcss@8.4.38): dependencies: css-declaration-sorter: 6.4.1(postcss@8.4.38) cssnano-utils: 3.1.0(postcss@8.4.38) @@ -7750,214 +14389,113 @@ packages: postcss-reduce-transforms: 5.1.0(postcss@8.4.38) postcss-svgo: 5.1.0(postcss@8.4.38) postcss-unique-selectors: 5.1.1(postcss@8.4.38) - dev: false - /cssnano-utils@3.1.0(postcss@8.4.38): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-utils@3.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /cssnano@5.1.15(postcss@8.4.38): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano@5.1.15(postcss@8.4.38): dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.38) lilconfig: 2.1.0 postcss: 8.4.38 yaml: 1.10.2 - dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + csso@4.2.0: dependencies: css-tree: 1.1.3 - dev: false - /csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csso@5.0.5: dependencies: css-tree: 2.2.1 - dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true + cssom@0.3.8: {} - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true + cssom@0.5.0: {} - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + cssstyle@2.3.0: dependencies: cssom: 0.3.8 - dev: true - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.1.3: {} - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true + damerau-levenshtein@1.0.8: {} - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + dargs@7.0.0: {} - /data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - dev: true + data-uri-to-buffer@2.0.2: {} - /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - dev: false + data-uri-to-buffer@3.0.1: {} - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + data-urls@3.0.2: dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - dev: true - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dateformat@4.6.3: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: false + debounce@1.2.1: {} - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: ms: 2.0.0 - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 supports-color: 8.1.1 - /debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + debuglog@1.0.1: {} - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true + decamelize@4.0.0: {} - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + decamelize@5.0.1: {} - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true + decimal.js@10.4.3: {} - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - dev: false - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dev: true + dedent@1.5.1: {} - /deep-eql@5.0.1: - resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} - engines: {node: '>=6'} - dev: true + deep-eql@5.0.1: {} - /deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -7977,74 +14515,47 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + deepmerge@4.3.1: {} - /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} + default-browser-id@5.0.0: {} - /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-gateway@6.0.3: dependencies: execa: 5.1.1 - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: false + defer-to-connect@2.0.1: {} - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + define-lazy-prop@2.0.0: {} - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + define-lazy-prop@3.0.0: {} - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + del@6.1.1: dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -8054,327 +14565,201 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true + delayed-stream@1.0.0: {} - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + delegates@1.0.0: {} - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} + depd@1.1.2: {} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + depd@2.0.0: {} - /deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + deprecation@2.3.1: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + dequal@2.0.3: {} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + destroy@1.2.0: {} - /detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - dev: true + detect-indent@7.0.1: {} - /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - dev: true + detect-libc@2.0.3: {} - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true + detect-newline@3.1.0: {} - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + detect-node@2.1.0: {} - /detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true + detect-port-alt@1.1.6: dependencies: address: 1.2.2 debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + detect-port@1.5.1: dependencies: address: 1.2.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: false - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devlop@1.1.0: dependencies: dequal: 2.0.3 - /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dezalgo@1.0.4: dependencies: asap: 2.0.6 wrappy: 1.0.2 - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true + didyoumean@1.2.2: {} - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + diff-sequences@29.6.3: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true + diff@4.0.2: {} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true + diff@5.0.0: {} - /diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + diff@5.2.0: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false + discontinuous-range@1.0.0: {} - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true + dlv@1.1.3: {} - /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - /dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dev: true + dom-accessibility-api@0.5.16: {} - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-converter@0.2.0: dependencies: utila: 0.4.0 - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@2.3.0: {} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead + domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - dev: true - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@6.0.1: dependencies: is-obj: 2.0.0 - dev: false - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + duplexer@0.1.2: {} - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eastasianwidth@0.2.0: {} - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ee-first@1.1.1: {} - /effect@2.0.0-next.62: - resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==} - dev: true + effect@2.0.0-next.62: {} - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ejs@3.1.9: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.717: - resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + electron-to-chromium@1.4.717: {} - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true + emittery@0.13.1: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emoji-regex@9.2.2: {} - /emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: false + emojilib@2.4.0: {} - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: false + emojis-list@3.0.0: {} - /emoticon@4.0.1: - resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} - dev: false + emoticon@4.0.1: {} - /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + enabled@2.0.0: {} - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + encodeurl@1.0.2: {} - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 optional: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - dev: true - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@2.2.0: {} - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + entities@4.5.0: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + env-paths@2.2.1: {} - /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true + envinfo@7.11.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + err-code@2.0.3: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 - dev: false - /error@10.4.0: - resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==} + error@10.4.0: {} - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} + es-abstract@1.23.2: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -8422,20 +14807,14 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + es-errors@1.3.0: {} - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-get-iterator@1.1.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -8446,11 +14825,8 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} + es-iterator-helpers@1.0.18: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -8466,47 +14842,30 @@ packages: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - dev: true - /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.0: {} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -8532,56 +14891,29 @@ packages: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - /escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - dev: false - - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escalade@3.1.2: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-goat@4.0.0: {} - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true + escape-html@1.0.3: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false + escape-string-regexp@2.0.0: {} - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + escodegen@2.1.0: dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 - dev: true - /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true + eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3): dependencies: '@next/eslint-plugin-next': 14.1.4 '@rushstack/eslint-patch': 1.8.0 @@ -8597,33 +14929,20 @@ packages: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8639,14 +14958,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.16.0 @@ -8662,28 +14975,8 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8692,28 +14985,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 @@ -8722,17 +14995,8 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.8 @@ -8757,13 +15021,8 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): dependencies: '@babel/runtime': 7.24.1 aria-query: 5.3.0 @@ -8782,34 +15041,19 @@ packages: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - dev: true - /eslint-plugin-mocha@10.4.1(eslint@8.57.0): - resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-mocha@10.4.1(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) globals: 13.24.0 rambda: 7.5.0 - dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-plugin-react@7.34.1(eslint@8.57.0): - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-react@7.34.1(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8830,13 +15074,8 @@ packages: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 - dev: true - /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' + eslint-plugin-unicorn@51.0.1(eslint@8.57.0): dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -8857,65 +15096,35 @@ packages: strip-indent: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0): dependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 - dev: true - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true + eslint-rule-composer@0.3.0: {} - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-utils@3.0.0(eslint@8.57.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' + eslint-utils@3.0.0(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 - dev: true - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true + eslint-visitor-keys@2.1.0: {} - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@3.4.3: {} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -8958,116 +15167,77 @@ packages: transitivePeerDependencies: - supports-color - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.5 - /estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-util-is-identifier-name@3.0.0: {} - /estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - /estree-util-value-to-estree@3.0.1: - resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==} - engines: {node: '>=16.0.0'} + estree-util-value-to-estree@3.0.1: dependencies: '@types/estree': 1.0.5 is-plain-obj: 4.1.0 - dev: false - /estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - dev: false + eta@2.2.0: {} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + etag@1.8.1: {} - /eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} + eval@0.1.8: dependencies: '@types/node': 18.18.2 require-like: 0.1.2 - dev: false - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + event-target-shim@5.0.1: {} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@4.0.7: {} - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + events@3.3.0: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -9079,28 +15249,19 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true + exit@0.1.2: {} - /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 - dev: true - /exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + exponential-backoff@3.1.1: {} - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + express@4.19.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -9136,44 +15297,29 @@ packages: transitivePeerDependencies: - supports-color - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 - dev: false - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extend@3.0.2: {} - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - /fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} + fast-check@3.15.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-check@3.17.0: - resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==} - engines: {node: '>=8.0.0'} + fast-check@3.17.0: dependencies: pure-rand: 6.1.0 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -9181,129 +15327,77 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fast-loops@1.1.3: - resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} - dev: false + fast-loops@1.1.3: {} - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-safe-stringify@2.1.1: {} - /fast-shallow-equal@1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - dev: false + fast-shallow-equal@1.0.0: {} - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 - dev: false - /fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true + fast-xml-parser@4.3.6: dependencies: strnum: 1.0.5 - dev: true - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} + fastest-levenshtein@1.0.16: {} - /fastest-stable-stringify@2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - dev: false + fastest-stable-stringify@2.0.2: {} - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.17.1: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fault@2.0.1: dependencies: format: 0.2.2 - dev: false - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fb-watchman@2.0.2: dependencies: bser: 2.1.1 - dev: true - /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + fecha@4.2.3: {} - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} + feed@4.2.2: dependencies: xml-js: 1.6.11 - dev: false - /fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - dev: false + fetch-blob@2.1.2: {} - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - /file-loader@6.2.0(webpack@5.91.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + file-loader@6.2.0(webpack@5.91.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filelist@1.0.4: dependencies: minimatch: 5.1.6 - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - dev: false + filesize@8.0.7: {} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + finalhandler@1.2.0: dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -9315,108 +15409,63 @@ packages: transitivePeerDependencies: - supports-color - /find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} + find-cache-dir@4.0.0: dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: false - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - dev: false - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - /first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} + first-chunk-stream@2.0.0: dependencies: readable-stream: 2.3.8 - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.2.0: dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true + flat@5.0.2: {} - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.1: {} - /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + fn.name@1.1.0: {} - /follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + follow-redirects@1.15.6: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - dev: true - - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -9434,102 +15483,63 @@ packages: tapable: 1.1.3 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - dev: false + form-data-encoder@2.1.4: {} - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false + format@0.2.2: {} - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + forwarded@0.2.0: {} - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@4.3.7: {} - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + fresh@0.5.2: {} - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: false - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - /fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-minipass@3.0.3: dependencies: minipass: 7.0.4 - /fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - dev: false + fs-monkey@1.0.5: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-bind@1.1.2: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9541,9 +15551,7 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + gauge@4.0.4: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -9554,22 +15562,13 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-func-name@2.0.2: {} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -9577,77 +15576,48 @@ packages: has-symbols: 1.0.3 hasown: 2.0.2 - /get-npm-tarball-url@2.1.0: - resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} - engines: {node: '>=12.17'} - dev: false + get-npm-tarball-url@2.1.0: {} - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: false + get-own-enumerable-property-symbols@3.0.2: {} - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true + get-package-type@0.1.0: {} - /get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-stream@6.0.1: {} - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - dev: false + github-slugger@1.5.0: {} - /github-username@6.0.0: - resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==} - engines: {node: '>=10'} + github-username@6.0.0: dependencies: '@octokit/rest': 18.12.0 transitivePeerDependencies: - encoding - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob-to-regexp@0.4.1: {} - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.10: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -9655,8 +15625,7 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9665,9 +15634,7 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9675,49 +15642,31 @@ packages: minimatch: 5.1.6 once: 1.4.0 - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + global-dirs@3.0.1: dependencies: ini: 2.0.0 - dev: false - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + global-modules@2.0.0: dependencies: global-prefix: 3.0.0 - dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + global-prefix@3.0.0: dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: false - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + globals@11.12.0: {} - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@13.24.0: dependencies: type-fest: 0.20.2 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -9726,25 +15675,19 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 - dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - /got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + got@12.6.1: dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -9757,108 +15700,66 @@ packages: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 - dev: false - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.10: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graceful-fs@4.2.11: {} - /graceful-git@3.1.2: - resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==} - engines: {node: '>=10'} + graceful-git@3.1.2: dependencies: retry: 0.12.0 safe-execa: 0.1.2 - dev: false - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemer@1.4.0: {} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - dev: false - /grouped-queue@2.0.0: - resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==} - engines: {node: '>=8.0.0'} + grouped-queue@2.0.0: {} - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: false - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + handle-thing@2.0.1: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + has-proto@1.0.3: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + has-unicode@2.0.1: {} - /has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + has-yarn@3.0.0: {} - /hasharray@1.1.2: - resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==} + hasharray@1.1.2: dependencies: jclass: 1.2.1 - dev: false - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + hast-util-from-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9868,16 +15769,12 @@ packages: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 - dev: false - /hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 - dev: false - /hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + hast-util-raw@9.0.2: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -9892,10 +15789,8 @@ packages: vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + hast-util-to-estree@3.1.0: dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -9916,8 +15811,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + hast-util-to-jsx-runtime@2.3.0: dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -9937,8 +15831,7 @@ packages: transitivePeerDependencies: - supports-color - /hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -9947,29 +15840,22 @@ packages: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 - dev: false - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + hastscript@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 - dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + he@1.2.0: {} - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + history@4.10.1: dependencies: '@babel/runtime': 7.24.1 loose-envify: 1.4.0 @@ -9977,61 +15863,41 @@ packages: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 value-equal: 1.0.1 - dev: false - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - dev: false - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@2.8.9: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hosted-git-info@6.1.1: dependencies: lru-cache: 7.18.3 - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@7.0.1: dependencies: lru-cache: 10.2.0 - dev: true - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - dev: true - /html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + html-entities@2.5.2: {} - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-escaper@2.0.2: {} - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10041,10 +15907,7 @@ packages: relateurl: 0.2.7 terser: 5.29.2 - /html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + html-minifier-terser@7.2.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10053,28 +15916,12 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.29.2 - dev: false - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: false + html-tags@3.3.1: {} - /html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - dev: false + html-void-elements@3.0.0: {} - /html-webpack-plugin@5.6.0(webpack@5.91.0): - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + html-webpack-plugin@5.6.0(webpack@5.91.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -10083,41 +15930,32 @@ packages: tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@8.0.2: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 - dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-cache-semantics@4.1.1: {} - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + http-deceiver@1.2.7: {} - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + http-errors@1.6.3: dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -10125,12 +15963,9 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + http-parser-js@0.5.8: {} - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} + http-proxy-agent@4.0.1: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -10138,9 +15973,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -10148,14 +15981,7 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true + http-proxy-middleware@2.0.6(@types/express@4.17.21): dependencies: '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 @@ -10166,9 +15992,7 @@ packages: transitivePeerDependencies: - debug - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.6 @@ -10176,10 +16000,7 @@ packages: transitivePeerDependencies: - debug - /http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true + http-server@14.1.1: dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -10197,187 +16018,112 @@ packages: transitivePeerDependencies: - debug - supports-color - dev: true - /http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - dev: false - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + human-signals@2.1.0: {} - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 - /hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - dev: false + hyphenate-style-name@1.0.4: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + icss-utils@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ieee754@1.2.1: {} - /ignore-walk@4.0.1: - resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==} - engines: {node: '>=10'} + ignore-walk@4.0.1: dependencies: minimatch: 3.1.2 - /ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore-walk@6.0.4: dependencies: minimatch: 9.0.3 - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + ignore@5.3.1: {} - /image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true + image-size@1.1.1: dependencies: queue: 6.0.2 - dev: false - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: true + immediate@3.0.6: {} - /immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - dev: false + immer@10.0.4: {} - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false + immer@9.0.21: {} - /immutability-helper@3.1.1: - resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - dev: false + immutability-helper@3.1.1: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false + import-lazy@4.0.0: {} - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + individual@3.0.0: {} - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + infer-owner@1.0.4: {} - /infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - dev: false + infima@0.2.0-alpha.43: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + inherits@2.0.3: {} - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@1.3.8: {} - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false + ini@2.0.0: {} - /ini@3.0.1: - resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: true + ini@3.0.1: {} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.1.1: {} - /inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + inline-style-parser@0.2.2: {} - /inline-style-prefixer@7.0.0: - resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + inline-style-prefixer@7.0.0: dependencies: css-in-js-utils: 3.1.0 fast-loops: 1.1.3 - dev: false - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + inquirer@8.2.6: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -10395,454 +16141,255 @@ packages: through: 2.3.8 wrap-ansi: 6.2.0 - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + interpret@1.4.0: {} - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} + interpret@3.1.1: {} - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + invariant@2.2.4: dependencies: loose-envify: 1.4.0 - /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + ipaddr.js@1.9.1: {} - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} + ipaddr.js@2.1.0: {} - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphabetical@2.0.1: {} - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.2.1: {} - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-arrayish@0.3.2: {} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-ci@3.0.1: dependencies: ci-info: 3.9.0 - dev: false - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-decimal@2.0.1: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false + is-docker@2.2.1: {} - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true + is-docker@3.0.0: {} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false + is-extendable@0.1.1: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + is-fullwidth-code-point@3.0.0: {} - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true + is-generator-fn@2.1.0: {} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-hexadecimal@2.0.1: {} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 - dev: false - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + is-interactive@1.0.0: {} - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-lambda@1.0.1: {} - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: true + is-map@2.0.3: {} - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.3: {} - /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} + is-network-error@1.1.0: {} - /is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + is-npm@6.0.0: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: false + is-obj@1.0.1: {} - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false + is-obj@2.0.0: {} - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: false + is-path-cwd@2.2.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + is-path-inside@3.0.3: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + is-plain-obj@2.1.0: {} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + is-plain-obj@3.0.0: {} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + is-plain-obj@4.1.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + is-plain-object@5.0.0: {} - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true + is-potential-custom-element-name@1.0.1: {} - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.2: dependencies: '@types/estree': 1.0.5 - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: false + is-regexp@1.0.0: {} - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - dev: false + is-root@2.1.0: {} - /is-scoped@2.1.0: - resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==} - engines: {node: '>=8'} + is-scoped@2.1.0: dependencies: scoped-regex: 2.1.0 - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: true + is-set@2.0.3: {} - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-stream@2.0.1: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-typedarray@1.0.0: {} - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + is-unicode-supported@0.1.0: {} - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + is-utf8@0.2.1: {} - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: true + is-weakmap@2.0.2: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + is-weakset@2.0.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - dev: false - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - /is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - dev: false + is-yarn-global@0.4.1: {} - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false + isarray@0.0.1: {} - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} + isbinaryfile@4.0.10: {} - /isbinaryfile@5.0.2: - resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} - engines: {node: '>= 18.0.0'} + isbinaryfile@5.0.2: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + isobject@3.0.1: {} - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: true + istanbul-lib-coverage@3.2.2: {} - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10851,11 +16398,8 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} + istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.24.3 '@babel/parser': 7.24.1 @@ -10864,85 +16408,58 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + istanbul-lib-source-maps@4.0.1: dependencies: debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + istanbul-reports@3.1.7: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - dev: true - /itertools@2.2.5: - resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==} - dev: false + itertools@2.2.5: {} - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true + jake@10.8.7: dependencies: async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - /jclass@1.2.1: - resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==} - engines: {node: '>= 0.6'} - dev: false + jclass@1.2.1: {} - /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 - dev: true - /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -10967,17 +16484,8 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/test-result': 29.7.0 @@ -10995,19 +16503,8 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true + jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -11036,44 +16533,27 @@ packages: transitivePeerDependencies: - babel-plugin-macros - supports-color - dev: true - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@29.7.0: dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 - dev: true - /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 - dev: true - /jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jest-environment-jsdom@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11087,11 +16567,8 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11099,16 +16576,10 @@ packages: '@types/node': 18.18.2 jest-mock: 29.7.0 jest-util: 29.7.0 - dev: true - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-get-type@29.6.3: {} - /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 @@ -11123,29 +16594,20 @@ packages: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - dev: true - /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@29.7.0: dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true - /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -11156,47 +16618,27 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 - dev: true - /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 jest-util: 29.7.0 - dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): dependencies: jest-resolve: 29.7.0 - dev: true - /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-regex-util@29.6.3: {} - /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@29.7.0: dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - dev: true - /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -11207,11 +16649,8 @@ packages: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 - dev: true - /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@29.7.0: dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -11236,11 +16675,8 @@ packages: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - dev: true - /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -11266,11 +16702,8 @@ packages: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 @@ -11294,11 +16727,8 @@ packages: semver: 7.6.0 transitivePeerDependencies: - supports-color - dev: true - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 18.18.2 @@ -11307,9 +16737,7 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 - /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -11317,11 +16745,8 @@ packages: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 - dev: true - /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -11331,34 +16756,21 @@ packages: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 - dev: true - - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.18.2 - merge-stream: 2.0.0 - supports-color: 8.1.1 - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: dependencies: '@types/node': 18.18.2 - jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - - /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + + jest-worker@29.7.0: + dependencies: + '@types/node': 18.18.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 @@ -11369,14 +16781,10 @@ packages: - babel-plugin-macros - supports-color - ts-node - dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true + jiti@1.21.0: {} - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + joi@17.12.2: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -11384,37 +16792,22 @@ packages: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - /js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - dev: false + js-cookie@2.2.1: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@4.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsbn@1.1.0: {} - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jsdom@20.0.3: dependencies: abab: 2.0.6 acorn: 8.11.3 @@ -11446,272 +16839,168 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true + jsesc@2.5.2: {} - /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsesc@3.0.2: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-buffer@3.0.1: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@2.3.1: {} - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-parse-even-better-errors@3.0.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema-traverse@1.0.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stable-stringify-without-jsonify@1.0.1: {} - /json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + json-stringify-nice@1.1.4: {} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json-stringify-safe@5.0.1: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + json5@2.2.3: {} - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + jsonparse@1.3.1: {} - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 - dev: true - /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jszip@3.10.1: dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 - dev: true - /just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + just-diff-apply@5.5.0: {} - /just-diff@5.2.0: - resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==} + just-diff@5.2.0: {} - /just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - dev: true + just-extend@6.2.0: {} - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + kind-of@6.0.3: {} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + kleur@3.0.3: {} - /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + kuler@2.0.0: {} - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + language-subtag-registry@0.3.22: {} - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.22 - dev: true - /latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + latest-version@7.0.0: dependencies: package-json: 8.1.1 - dev: false - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.6.1: dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + leven@3.1.0: {} - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lie@3.3.0: dependencies: immediate: 3.0.6 - dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lilconfig@2.1.0: {} - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - dev: true + lilconfig@3.1.1: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@1.2.4: {} - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + load-json-file@6.2.0: dependencies: graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 - dev: true - /load-json-file@7.0.1: - resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + load-json-file@7.0.1: {} - /load-script@1.0.0: - resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} - dev: false + load-script@1.0.0: {} - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + loader-runner@4.3.0: {} - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + loader-utils@2.0.4: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - dev: false - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - dev: false + loader-utils@3.2.1: {} - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: false - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 - dev: false - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.debounce@4.0.8: {} - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true + lodash.get@4.4.2: {} - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.memoize@4.1.2: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.merge@4.6.2: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false + lodash.uniq@4.5.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} + logform@2.6.0: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -11720,74 +17009,45 @@ packages: safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + longest-streak@3.1.0: {} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /loupe@3.1.0: - resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + loupe@3.1.0: dependencies: get-func-name: 2.0.2 - dev: true - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + lowercase-keys@3.0.0: {} - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + lru-cache@10.2.0: {} - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - /lru-cache@7.10.1: - resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==} - engines: {node: '>=12'} - dev: false + lru-cache@7.10.1: {} - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + lru-cache@7.18.3: {} - /lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - dev: true + lz-string@1.5.0: {} - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + make-dir@4.0.0: dependencies: semver: 7.6.0 - dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + make-error@1.3.6: {} - /make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + make-fetch-happen@10.2.1: dependencies: agentkeepalive: 4.5.0 cacache: 16.1.3 @@ -11809,9 +17069,7 @@ packages: - bluebird - supports-color - /make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + make-fetch-happen@11.1.1: dependencies: agentkeepalive: 4.5.0 cacache: 17.1.4 @@ -11831,9 +17089,7 @@ packages: transitivePeerDependencies: - supports-color - /make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} + make-fetch-happen@9.1.0: dependencies: agentkeepalive: 4.5.0 cacache: 15.3.0 @@ -11855,39 +17111,23 @@ packages: - bluebird - supports-color - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 - dev: true - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} + map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 - dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + markdown-extensions@2.0.0: {} - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: false + markdown-table@3.0.3: {} - /mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + mdast-util-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11899,19 +17139,15 @@ packages: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -11928,8 +17164,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + mdast-util-frontmatter@2.0.1: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11939,20 +17174,16 @@ packages: micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + mdast-util-gfm-autolink-literal@2.0.0: dependencies: '@types/mdast': 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 - dev: false - /mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11961,20 +17192,16 @@ packages: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11983,10 +17210,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 @@ -11994,10 +17219,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -12008,10 +17231,8 @@ packages: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + mdast-util-mdx-expression@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12022,8 +17243,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + mdast-util-mdx-jsx@3.1.2: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12041,8 +17261,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -12052,8 +17271,7 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12064,14 +17282,12 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + mdast-util-to-hast@13.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -12083,8 +17299,7 @@ packages: unist-util-visit: 5.0.0 vfile: 6.0.1 - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -12095,35 +17310,19 @@ packages: unist-util-visit: 5.0.0 zwitch: 2.0.4 - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.3 - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false + mdn-data@2.0.14: {} - /mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: true + mdn-data@2.0.28: {} - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true + mdn-data@2.0.30: {} - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + media-typer@0.3.0: {} - /mem-fs-editor@9.7.0(mem-fs@2.3.0): - resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==} - engines: {node: '>=12.10.0'} - peerDependencies: - mem-fs: ^2.1.0 - peerDependenciesMeta: - mem-fs: - optional: true + mem-fs-editor@9.7.0(mem-fs@2.3.0): dependencies: binaryextensions: 4.19.0 commondir: 1.0.1 @@ -12137,43 +17336,29 @@ packages: normalize-path: 3.0.0 textextensions: 5.16.0 - /mem-fs@2.3.0: - resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==} - engines: {node: '>=12'} + mem-fs@2.3.0: dependencies: '@types/node': 15.14.9 '@types/vinyl': 2.0.11 vinyl: 2.2.1 vinyl-file: 3.0.0 - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} + mem@8.1.1: dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - dev: true - /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + memfs@3.5.3: dependencies: fs-monkey: 1.0.5 - dev: false - /memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} - engines: {node: '>= 4.0.0'} + memfs@4.8.0: dependencies: tslib: 2.6.2 - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false + memoize-one@5.2.1: {} - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + meow@10.1.5: dependencies: '@types/minimist': 1.2.5 camelcase-keys: 7.0.2 @@ -12187,24 +17372,16 @@ packages: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 - dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge2@1.4.1: {} - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + methods@1.1.2: {} - /micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + micromark-core-commonmark@2.0.0: dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -12223,8 +17400,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + micromark-extension-directive@3.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -12233,28 +17409,22 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 - dev: false - /micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + micromark-extension-gfm-autolink-literal@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + micromark-extension-gfm-footnote@2.0.0: dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12264,10 +17434,8 @@ packages: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + micromark-extension-gfm-strikethrough@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -12275,36 +17443,28 @@ packages: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + micromark-extension-gfm-table@2.0.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-tagfilter@2.0.0: dependencies: micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + micromark-extension-gfm-task-list-item@2.0.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -12314,10 +17474,8 @@ packages: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - dev: false - /micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + micromark-extension-mdx-expression@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12328,8 +17486,7 @@ packages: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + micromark-extension-mdx-jsx@3.0.0: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12342,13 +17499,11 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + micromark-extension-mdx-md@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12360,8 +17515,7 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -12372,23 +17526,20 @@ packages: micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + micromark-factory-mdx-expression@2.0.1: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -12399,84 +17550,69 @@ packages: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 - dev: false - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.0: dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 - dev: false - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + micromark-util-character@2.1.0: dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + micromark-util-classify-character@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.0: dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + micromark-util-decode-numeric-character-reference@2.0.1: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + micromark-util-decode-string@2.0.0: dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.0: {} - /micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -12487,50 +17623,38 @@ packages: micromark-util-types: 2.0.0 vfile-message: 4.0.2 - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.0: {} - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.0: dependencies: micromark-util-types: 2.0.0 - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + micromark-util-sanitize-uri@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - /micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + micromark-util-subtokenize@2.0.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false + micromark-util-symbol@1.1.0: {} - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + micromark-util-symbol@2.0.0: {} - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false + micromark-util-types@1.1.0: {} - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark-util-types@2.0.0: {} - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.0: dependencies: '@types/debug': 4.1.12 debug: 4.3.4(supports-color@8.1.1) @@ -12552,129 +17676,76 @@ packages: transitivePeerDependencies: - supports-color - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: false + mime-db@1.33.0: {} - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + mime-db@1.52.0: {} - /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + mime-types@2.1.18: dependencies: mime-db: 1.33.0 - dev: false - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + mime@1.6.0: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + mimic-fn@2.1.0: {} - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true + mimic-fn@3.1.0: {} - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + mimic-response@3.1.0: {} - /mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + mimic-response@4.0.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /mini-css-extract-plugin@2.8.1(webpack@5.91.0): - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + mini-css-extract-plugin@2.8.1(webpack@5.91.0): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimalistic-assert@1.0.1: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 - dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + minimatch@7.4.6: dependencies: brace-expansion: 2.0.1 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimist@1.2.8: {} - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + minipass-collect@1.0.2: dependencies: minipass: 3.3.6 - /minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} + minipass-fetch@1.4.1: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12682,9 +17753,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + minipass-fetch@2.1.2: dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -12692,9 +17761,7 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + minipass-fetch@3.0.4: dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 @@ -12702,75 +17769,49 @@ packages: optionalDependencies: encoding: 0.1.13 - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - /minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + minipass-json-stream@1.0.1: dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + minipass@5.0.0: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + minipass@7.0.4: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - /mkdirp-infer-owner@2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} - engines: {node: '>=10'} + mkdirp-infer-owner@2.0.0: dependencies: chownr: 2.0.0 infer-owner: 1.0.4 mkdirp: 1.0.4 - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + mkdirp@0.5.6: dependencies: minimist: 1.2.8 - dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true + mkdirp@1.0.4: {} - /mocha@10.3.0: - resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} - engines: {node: '>= 14.0.0'} - hasBin: true + mocha@10.3.0: dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -12792,36 +17833,23 @@ packages: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 - dev: true - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false + moo@0.5.2: {} - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - dev: false + mrmime@2.0.0: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + ms@2.1.3: {} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + multicast-dns@7.2.5: dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - /multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 @@ -12829,22 +17857,15 @@ packages: arrify: 2.0.1 minimatch: 3.1.2 - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@0.0.8: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true - /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} - peerDependencies: - react: '*' - react-dom: '*' + nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 @@ -12856,20 +17877,12 @@ packages: rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.1 - dev: false - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.7: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-compare@1.4.0: {} - /ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true + ndjson@2.0.0: dependencies: json-stringify-safe: 5.0.1 minimist: 1.2.8 @@ -12877,50 +17890,25 @@ packages: split2: 3.2.2 through2: 4.0.2 - /nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true + nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma): dependencies: commander: 2.20.3 moo: 0.5.2 railroad-diagrams: 1.0.0 randexp: 0.4.6 - dev: false - patched: true - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neo-async@2.6.2: {} - /neovim@5.1.0: - resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==} - engines: {node: '>=10'} - hasBin: true + neovim@5.1.0: dependencies: '@msgpack/msgpack': 2.8.0 winston: 3.11.0 - /nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: false + nerf-dart@1.0.0: {} - /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true + next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0): dependencies: '@next/env': 14.1.4 '@swc/helpers': 0.5.2 @@ -12944,53 +17932,34 @@ packages: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - dev: false - /nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + nise@5.1.9: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 path-to-regexp: 6.2.1 - dev: true - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - /node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 - dev: false - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + node-forge@1.3.1: {} - /node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true + node-gyp@8.4.1: dependencies: env-paths: 2.2.1 glob: 7.2.3 @@ -13006,10 +17975,7 @@ packages: - bluebird - supports-color - /node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true + node-gyp@9.4.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -13026,180 +17992,122 @@ packages: - bluebird - supports-color - /node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + node-html-parser@6.1.12: dependencies: css-select: 5.1.0 he: 1.2.0 - dev: false - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true + node-int64@0.4.0: {} - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.14: {} - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + nopt@5.0.0: dependencies: abbrev: 1.1.1 - /nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true + nopt@6.0.0: dependencies: abbrev: 1.1.1 - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + normalize-path@3.0.0: {} - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + normalize-range@0.1.2: {} - /normalize-registry-url@2.0.0: - resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==} - dev: true + normalize-registry-url@2.0.0: {} - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false + normalize-url@6.1.0: {} - /normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - dev: false + normalize-url@8.0.1: {} - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + npm-bundled@1.1.2: dependencies: npm-normalize-package-bin: 1.0.1 - /npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-bundled@3.0.0: dependencies: npm-normalize-package-bin: 3.0.1 - /npm-install-checks@4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==} - engines: {node: '>=10'} + npm-install-checks@4.0.0: dependencies: semver: 7.6.0 - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-install-checks@6.3.0: dependencies: semver: 7.6.0 - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + npm-normalize-package-bin@1.0.1: {} - /npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npm-normalize-package-bin@2.0.0: {} - /npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@3.0.1: {} - /npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@10.1.0: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-package-arg@11.0.1: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - dev: true - /npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} + npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 semver: 7.6.0 validate-npm-package-name: 3.0.0 - /npm-packlist@3.0.0: - resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==} - engines: {node: '>=10'} - hasBin: true + npm-packlist@3.0.0: dependencies: glob: 7.2.3 ignore-walk: 4.0.1 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 - /npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-packlist@7.0.4: dependencies: ignore-walk: 6.0.4 - /npm-pick-manifest@6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==} + npm-pick-manifest@6.1.1: dependencies: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 semver: 7.6.0 - /npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.6.0 - /npm-registry-fetch@12.0.2: - resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + npm-registry-fetch@12.0.2: dependencies: make-fetch-happen: 10.2.1 minipass: 3.3.6 @@ -13211,9 +18119,7 @@ packages: - bluebird - supports-color - /npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-registry-fetch@14.0.5: dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 @@ -13225,175 +18131,119 @@ packages: transitivePeerDependencies: - supports-color - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false + nprogress@0.2.0: {} - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true + nwsapi@2.2.7: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + object-assign@4.1.1: {} - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true + object-hash@3.0.0: {} - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.1: {} - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + object-is@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + object-keys@1.1.1: {} - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} + object.entries@1.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 - dev: true - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} + object.hasown@1.1.4: dependencies: define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + object.values@1.2.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obuf@1.1.2: {} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + on-headers@1.0.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + one-time@1.0.0: dependencies: fn.name: 1.1.0 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + open@10.1.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true + opener@1.5.2: {} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -13402,9 +18252,7 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + ora@5.4.1: dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -13416,143 +18264,89 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + os-tmpdir@1.0.2: {} - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: false + p-cancelable@3.0.0: {} - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: true + p-defer@1.0.0: {} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + p-filter@2.1.0: dependencies: p-map: 2.1.0 - dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + p-finally@1.0.0: {} - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@4.0.0: dependencies: yocto-queue: 1.0.0 - dev: false - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: false - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@6.0.0: dependencies: p-limit: 4.0.0 - dev: false - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true + p-map@2.1.0: {} - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} + p-queue@6.6.2: dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - dev: false - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + p-retry@6.2.0: dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} + p-timeout@3.2.0: dependencies: p-finally: 1.0.0 - /p-transform@1.3.0: - resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} - engines: {node: '>=12.10.0'} + p-transform@1.3.0: dependencies: debug: 4.3.4(supports-color@8.1.1) p-queue: 6.6.2 transitivePeerDependencies: - supports-color - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - /package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + p-try@2.2.0: {} + + package-json@8.1.1: dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 - dev: false - /pacote@12.0.3: - resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} - hasBin: true + pacote@12.0.3: dependencies: '@npmcli/git': 2.1.0 '@npmcli/installed-package-contents': 1.0.7 @@ -13577,10 +18371,7 @@ packages: - bluebird - supports-color - /pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + pacote@15.2.0: dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -13604,32 +18395,24 @@ packages: - bluebird - supports-color - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true + pako@1.0.11: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-conflict-json@2.0.2: - resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + parse-conflict-json@2.0.2: dependencies: json-parse-even-better-errors: 2.3.1 just-diff: 5.2.0 just-diff-apply: 5.5.0 - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -13640,321 +18423,177 @@ packages: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - dev: true + parse-ms@2.1.0: {} - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false + parse-numeric-range@1.3.0: {} - /parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - dev: false + parse-srcset@1.0.2: {} - /parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 parse5: 7.1.2 - dev: false - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.1.2: dependencies: entities: 4.5.0 - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parseurl@1.3.3: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - /path-absolute@1.0.1: - resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==} - engines: {node: '>=4'} - dev: true + path-absolute@1.0.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + path-exists@5.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + path-is-absolute@1.0.1: {} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false + path-is-inside@1.0.2: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-name@1.0.0: - resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + path-name@1.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.1: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - /path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} + path-temp@2.1.0: dependencies: unique-string: 2.0.0 - dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.7: {} - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + path-to-regexp@1.8.0: dependencies: isarray: 0.0.1 - dev: false - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false + path-to-regexp@2.2.1: {} - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: true + path-to-regexp@6.2.1: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@4.0.0: {} - /pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - dev: true + pathval@2.0.0: {} - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + pify@2.3.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + pify@4.0.1: {} - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true + pirates@4.0.6: {} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - /pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + pkg-dir@7.0.0: dependencies: find-up: 6.3.0 - dev: false - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + pkg-up@3.1.0: dependencies: find-up: 3.0.0 - dev: false - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + pluralize@8.0.0: {} - /portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} + portfinder@1.0.32: dependencies: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color - dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: true + possible-typed-array-names@1.0.0: {} - /postcss-calc@8.2.4(postcss@8.4.38): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + postcss-calc@8.2.4(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@5.3.1(postcss@8.4.38): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-colormin@5.3.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-convert-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-convert-values@5.1.3(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-comments@5.1.2(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-duplicates@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-empty@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-overridden@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-discard-unused@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-unused@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 + postcss-import@15.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - dev: true - /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 - dev: true - /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): dependencies: lilconfig: 3.1.1 postcss: 8.4.38 ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3) yaml: 2.4.1 - dev: true - /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 + postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 8.3.6(typescript@5.4.3) jiti: 1.21.0 @@ -13963,20 +18602,8 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: false - /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): dependencies: cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 @@ -13985,655 +18612,343 @@ packages: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - dev: true - /postcss-merge-idents@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-idents@5.1.1(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.38): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-longhand@5.1.7(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.38) - dev: false - /postcss-merge-rules@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-rules@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-font-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-gradients@5.1.1(postcss@8.4.38): dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-params@5.1.4(postcss@8.4.38): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-params@5.1.4(postcss@8.4.38): dependencies: browserslist: 4.23.0 cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.38): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-selectors@5.2.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-extract-imports@3.0.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-local-by-default@4.0.4(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - /postcss-modules-scope@3.1.1(postcss@8.4.38): - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-scope@3.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - /postcss-modules-values@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 + postcss-nested@6.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-charset@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-display-values@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-positions@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-string@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-unicode@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-url@5.1.0(postcss@8.4.38): dependencies: normalize-url: 6.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-whitespace@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.38): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-ordered-values@5.1.3(postcss@8.4.38): dependencies: cssnano-utils: 3.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-idents@5.2.0(postcss@8.4.38): - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-idents@5.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-initial@5.1.2(postcss@8.4.38): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-initial@5.1.2(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 postcss: 8.4.38 - dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-transforms@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-sort-media-queries@4.4.1(postcss@8.4.38): - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 + postcss-sort-media-queries@4.4.1(postcss@8.4.38): dependencies: postcss: 8.4.38 sort-css-media-queries: 2.1.0 - dev: false - /postcss-svgo@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-svgo@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-unique-selectors@5.1.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss-value-parser@4.2.0: {} - /postcss-zindex@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-zindex@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: false - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.31: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - dev: false - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - /preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} + preferred-pm@3.1.3: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.2.1: {} - /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): - resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true - prettier-plugin-twig-melody: - optional: true + prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5): dependencies: prettier: 3.2.5 - dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true + prettier@3.2.5: {} - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + pretty-bytes@5.6.0: {} - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true - /pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} + pretty-ms@7.0.1: dependencies: parse-ms: 2.1.0 - dev: true - /pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - dev: false + pretty-time@1.1.0: {} - /print-diff@1.0.0: - resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==} - engines: {node: '>=8.3'} + print-diff@1.0.0: dependencies: diff: 4.0.2 - dev: true - /printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - dev: true + printable-characters@1.0.42: {} - /prism-react-renderer@2.3.1(react@18.2.0): - resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} - peerDependencies: - react: '>=16.0.0 || 18' + prism-react-renderer@2.3.1(react@18.2.0): dependencies: '@types/prismjs': 1.26.3 clsx: 2.1.0 react: 18.2.0 - dev: false - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false + prismjs@1.29.0: {} - /proc-log@1.0.0: - resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==} + proc-log@1.0.0: {} - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proc-log@3.0.0: {} - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-nextick-args@2.0.1: {} - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + process@0.11.10: {} - /promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + promise-all-reject-late@1.0.1: {} - /promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + promise-call-limit@1.0.2: {} - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true + promise-inflight@1.0.1: {} - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + promise-retry@2.0.1: dependencies: err-code: 2.0.3 retry: 0.12.0 - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - /property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + property-information@6.4.1: {} - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proto-list@1.2.4: {} - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + psl@1.9.0: {} - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false + punycode@1.4.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + punycode@2.3.1: {} - /pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} + pupa@3.1.0: dependencies: escape-goat: 4.0.0 - dev: false - /pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - dev: true + pure-rand@6.1.0: {} - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + qs@6.11.0: dependencies: side-channel: 1.0.6 - /qs@6.12.0: - resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} - engines: {node: '>=0.6'} + qs@6.12.0: dependencies: side-channel: 1.0.6 - dev: true - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true + querystringify@2.2.0: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + queue@6.0.2: dependencies: inherits: 2.0.4 - dev: false - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + quick-lru@5.1.1: {} - /railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false + railroad-diagrams@1.0.0: {} - /rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - dev: true + rambda@7.5.0: {} - /ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - dev: true + ramda@0.29.1: {} - /randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} + randexp@0.4.6: dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 - dev: false - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - /range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: false + range-parser@1.2.0: {} - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + range-parser@1.2.1: {} - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + raw-body@2.5.2: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: false - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true + react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0): dependencies: '@babel/code-frame': 7.24.2 address: 1.2.2 @@ -14665,29 +18980,18 @@ packages: - eslint - supports-color - vue-template-compiler - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - /react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false + react-error-overlay@6.0.11: {} - /react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-fast-compare@3.2.2: {} - /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 invariant: 2.2.4 @@ -14697,11 +19001,7 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18 + react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): dependencies: invariant: 2.2.4 react: 18.2.0 @@ -14709,42 +19009,23 @@ packages: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true + react-is@17.0.2: {} - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.2.0: {} - /react-json-view-lite@1.3.0(react@18.2.0): - resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18 + react-json-view-lite@1.3.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0): dependencies: '@babel/runtime': 7.24.1 - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /react-player@2.15.1(react@18.2.0): - resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==} - peerDependencies: - react: '>=16.6.0 || 18' + react-player@2.15.1(react@18.2.0): dependencies: deepmerge: 4.3.1 load-script: 1.0.0 @@ -14752,23 +19033,14 @@ packages: prop-types: 15.8.1 react: 18.2.0 react-fast-compare: 3.2.2 - dev: false - /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15 || 18' - react-router: '>=5' + react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 react: 18.2.0 react-router: 5.3.4(react@18.2.0) - dev: false - /react-router-dom@5.3.4(react@18.2.0): - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15 || 18' + react-router-dom@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14778,12 +19050,8 @@ packages: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-router@5.3.4(react@18.2.0): - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15 || 18' + react-router@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.24.1 history: 4.10.1 @@ -14795,28 +19063,15 @@ packages: react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - dev: false - /react-string-replace@1.1.1: - resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} - engines: {node: '>=0.12.0'} - dev: false + react-string-replace@1.1.1: {} - /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' + react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): dependencies: react: 18.2.0 tslib: 2.6.2 - dev: false - /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==} - peerDependencies: - react: '*' - react-dom: '*' + react-use@17.5.0(react-dom@18.2.0)(react@18.2.0): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -14834,101 +19089,71 @@ packages: throttle-debounce: 3.0.1 ts-easing: 0.2.0 tslib: 2.6.2 - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react@18.2.0: dependencies: loose-envify: 1.4.0 - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-cache@1.0.0: dependencies: pify: 2.3.0 - dev: true - /read-cmd-shim@3.0.1: - resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + read-cmd-shim@3.0.1: {} - /read-ini-file@4.0.0: - resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==} - engines: {node: '>=14.6'} + read-ini-file@4.0.0: dependencies: ini: 3.0.1 strip-bom: 4.0.0 - dev: true - /read-package-json-fast@2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} - engines: {node: '>=10'} + read-package-json-fast@2.0.3: dependencies: json-parse-even-better-errors: 2.3.1 npm-normalize-package-bin: 1.0.1 - /read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json-fast@3.0.2: dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 - /read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-package-json@6.0.4: dependencies: glob: 10.3.10 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} + read-pkg-up@8.0.0: dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} + read-pkg@6.0.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 - dev: true - /read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} + read-yaml-file@2.1.0: dependencies: js-yaml: 4.1.0 strip-bom: 4.0.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -14938,17 +19163,13 @@ packages: string_decoder: 1.1.1 util-deprecate: 1.0.2 - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readable-stream@4.5.2: dependencies: abort-controller: 3.0.0 buffer: 6.0.3 @@ -14956,60 +19177,39 @@ packages: process: 0.11.10 string_decoder: 1.3.0 - /readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs + readdir-scoped-modules@1.1.0: dependencies: debuglog: 1.0.1 dezalgo: 1.0.4 graceful-fs: 4.2.11 once: 1.4.0 - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - /reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - dev: false + reading-time@1.5.0: {} - /realpath-missing@1.1.0: - resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} - engines: {node: '>=10'} - dev: true + realpath-missing@1.1.0: {} - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + rechoir@0.6.2: dependencies: resolve: 1.22.8 - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + rechoir@0.8.0: dependencies: resolve: 1.22.8 - /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 - dev: false - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} + redent@4.0.0: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true - /reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -15018,43 +19218,29 @@ packages: get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 - dev: true - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerate@1.4.2: {} - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-runtime@0.14.1: {} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.24.1 - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + regexp-tree@0.1.27: {} - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -15063,47 +19249,31 @@ packages: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: false - - /registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} + + registry-url@6.0.1: dependencies: rc: 1.2.8 - dev: false - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - /rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 - dev: false - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} + relateurl@0.2.7: {} - /remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + remark-directive@3.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-directive: 3.0.0 @@ -15111,21 +19281,16 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + remark-emoji@4.0.1: dependencies: '@types/mdast': 4.0.3 emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 unified: 11.0.4 - dev: false - /remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + remark-frontmatter@5.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-frontmatter: 2.0.1 @@ -15133,10 +19298,8 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-gfm: 3.0.0 @@ -15146,18 +19309,15 @@ packages: unified: 11.0.4 transitivePeerDependencies: - supports-color - dev: false - /remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + remark-mdx@3.0.1: dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - /remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-from-markdown: 2.0.0 @@ -15166,8 +19326,7 @@ packages: transitivePeerDependencies: - supports-color - /remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -15175,19 +19334,15 @@ packages: unified: 11.0.4 vfile: 6.0.1 - /remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 - dev: false - /remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + remove-trailing-separator@1.1.0: {} - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 @@ -15195,212 +19350,128 @@ packages: lodash: 4.17.21 strip-ansi: 6.0.1 - /replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} + replace-ext@1.0.1: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + require-from-string@2.0.2: {} - /require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - dev: false + require-like@0.1.2: {} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + requires-port@1.0.0: {} - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false + resize-observer-polyfill@1.5.1: {} - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false + resolve-alpn@1.2.1: {} - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolve-from@5.0.0: {} - /resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - dev: false + resolve-pathname@3.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - dev: true + resolve.exports@2.0.2: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} + responselike@3.0.0: dependencies: lowercase-keys: 3.0.0 - dev: false - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false + ret@0.1.15: {} - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + retry@0.12.0: {} - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + retry@0.13.1: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + reusify@1.0.4: {} - /rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} - dev: false + rfc4648@1.5.3: {} - /right-pad@1.0.1: - resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} - engines: {node: '>= 0.10'} - dev: true + right-pad@1.0.1: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: glob: 10.3.10 - /rtl-css-js@1.16.1: - resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.24.1 - dev: false - /rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - dev: false + rtl-detect@1.1.2: {} - /rtlcss@4.1.1: - resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} - engines: {node: '>=12.0.0'} - hasBin: true + rtlcss@4.1.1: dependencies: escalade: 3.1.2 picocolors: 1.0.0 postcss: 8.4.38 strip-json-comments: 3.1.1 - dev: false - /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} + run-applescript@7.0.0: {} - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + run-async@2.4.1: {} - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.1: dependencies: tslib: 2.6.2 - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-buffer@5.2.1: {} - /safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} - engines: {node: '>=12'} + safe-execa@0.1.2: dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} + safe-stable-stringify@2.4.3: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + safer-buffer@2.1.2: {} - /sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + sanitize-html@2.13.0: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -15408,124 +19479,77 @@ packages: is-plain-object: 5.0.0 parse-srcset: 1.0.2 postcss: 8.4.38 - dev: false - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - dev: false + sax@1.3.0: {} - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 - dev: true - /sbd@1.0.19: - resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==} + sbd@1.0.19: dependencies: sanitize-html: 2.13.0 - dev: false - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + schema-utils@2.7.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + schema-utils@4.2.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - /scoped-regex@2.1.0: - resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} - engines: {node: '>=8'} + scoped-regex@2.1.0: {} - /screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false + screenfull@5.2.0: {} - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - dev: false + search-insights@2.13.0: {} - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - dev: false - /secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - dev: true + secure-compare@3.0.1: {} - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + select-hose@2.0.0: {} - /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: semver: 7.6.0 - dev: false - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + semver@6.3.1: {} - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + send@0.18.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -15543,19 +19567,15 @@ packages: transitivePeerDependencies: - supports-color - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - /serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + serve-handler@6.1.5: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -15565,11 +19585,8 @@ packages: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 - dev: false - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + serve-index@1.9.1: dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -15581,9 +19598,7 @@ packages: transitivePeerDependencies: - supports-color - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -15592,12 +19607,9 @@ packages: transitivePeerDependencies: - supports-color - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-blocking@2.0.0: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -15606,82 +19618,53 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.2 - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /set-harmonic-interval@1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - dev: false + set-harmonic-interval@1.0.1: {} - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: true + setimmediate@1.0.5: {} - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + setprototypeof@1.1.0: {} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + setprototypeof@1.2.0: {} - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - /shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shallowequal@1.1.0: {} - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.1: {} - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true + shelljs@0.8.5: dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + signal-exit@4.1.0: {} - /sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + sigstore@1.9.0: dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -15691,13 +19674,11 @@ packages: transitivePeerDependencies: - supports-color - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - /sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + sinon@17.0.1: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 @@ -15705,79 +19686,52 @@ packages: diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 - dev: true - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 - dev: false - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + sisteransi@1.0.5: {} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true + sitemap@7.1.1: dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 - dev: false - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: false - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false + slash@4.0.0: {} - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smart-buffer@4.2.0: {} - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: true - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - /socks-proxy-agent@6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} - engines: {node: '>= 10'} + socks-proxy-agent@6.1.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: - supports-color - dev: false - /socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} + socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15785,9 +19739,7 @@ packages: transitivePeerDependencies: - supports-color - /socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} + socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -15795,89 +19747,58 @@ packages: transitivePeerDependencies: - supports-color - /socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.1: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - /sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - dev: false + sort-css-media-queries@2.1.0: {} - /sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} + sort-keys@4.2.0: dependencies: is-plain-obj: 2.1.0 - /sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} + sort-keys@5.0.0: dependencies: is-plain-obj: 4.1.0 - dev: true - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + source-map-js@1.2.0: {} - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true + source-map-url@0.4.1: {} - /source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - dev: false + source-map@0.5.6: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + source-map@0.6.1: {} - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.4: {} - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + space-separated-tokens@2.0.2: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + spdx-license-ids@3.0.17: {} - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + spdy-transport@3.0.0: dependencies: debug: 4.3.4(supports-color@8.1.1) detect-node: 2.1.0 @@ -15888,9 +19809,7 @@ packages: transitivePeerDependencies: - supports-color - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + spdy@4.0.2: dependencies: debug: 4.3.4(supports-color@8.1.1) handle-thing: 2.0.1 @@ -15900,138 +19819,88 @@ packages: transitivePeerDependencies: - supports-color - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + split2@3.2.2: dependencies: readable-stream: 3.6.2 - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.0.3: {} - /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sprintf-js@1.1.3: {} - /srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - dev: false + srcset@4.0.0: {} - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@10.0.5: dependencies: minipass: 7.0.4 - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} + ssri@8.0.1: dependencies: minipass: 3.3.6 - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + ssri@9.0.1: dependencies: minipass: 3.3.6 - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false + stable@0.1.8: {} - /stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + stack-generator@2.0.10: dependencies: stackframe: 1.3.4 - dev: false - /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + stack-trace@0.0.10: {} - /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - dev: true - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false + stackframe@1.3.4: {} - /stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + stacktrace-gps@3.1.2: dependencies: source-map: 0.5.6 stackframe: 1.3.4 - dev: false - /stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + stacktrace-js@2.0.2: dependencies: error-stack-parser: 2.1.4 stack-generator: 2.0.10 stacktrace-gps: 3.1.2 - dev: false - /stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 get-source: 2.0.12 - dev: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} + statuses@1.5.0: {} - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + statuses@2.0.1: {} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false + std-env@3.7.0: {} - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.7 - dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + streamsearch@1.1.0: {} - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + string-length@4.0.2: dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -16045,195 +19914,117 @@ packages: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 - dev: true - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.2 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + stringify-entities@4.0.3: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 - dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - /strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} + strip-bom-buf@1.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom-stream@2.0.0: - resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} - engines: {node: '>=0.10.0'} + strip-bom-stream@2.0.0: dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false + strip-bom-string@1.0.0: {} - /strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} + strip-bom@2.0.0: dependencies: is-utf8: 0.2.1 - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + strip-bom@3.0.0: {} - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + strip-bom@4.0.0: {} - /strip-comments-strings@1.2.0: - resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} - dev: true + strip-comments-strings@1.2.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + strip-final-newline@2.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: true + strnum@1.0.5: {} - /style-loader@3.3.4(webpack@5.91.0): - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + style-loader@3.3.4(webpack@5.91.0): dependencies: webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - /style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + style-to-object@1.0.5: dependencies: inline-style-parser: 0.2.2 - /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true + styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0): dependencies: '@babel/core': 7.24.3 client-only: 0.0.1 react: 18.2.0 - dev: false - /stylehacks@5.1.1(postcss@8.4.38): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + stylehacks@5.1.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 postcss-selector-parser: 6.0.16 - dev: false - /stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - dev: false + stylis@4.3.1: {} - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -16242,37 +20033,24 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - dev: true - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-preserve-symlinks-flag@1.0.0: {} - /svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + svg-parser@2.0.4: {} - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true + svgo@2.8.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16281,12 +20059,8 @@ packages: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 - dev: false - /svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true + svgo@3.2.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -16295,16 +20069,10 @@ packages: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 - dev: true - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true + symbol-tree@3.2.4: {} - /syncpack@12.3.0(typescript@5.4.3): - resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==} - engines: {node: '>=16'} - hasBin: true + syncpack@12.3.0(typescript@5.4.3): dependencies: '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0) chalk: 4.1.2 @@ -16324,12 +20092,8 @@ packages: ts-toolbelt: 9.6.0 transitivePeerDependencies: - typescript - dev: true - /tailwindcss@3.4.1(ts-node@10.9.2): - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@3.4.1(ts-node@10.9.2): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -16355,20 +20119,12 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: true - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false + tapable@1.1.3: {} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + tapable@2.2.1: {} - /tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -16377,21 +20133,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true + terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.20.2 @@ -16401,195 +20143,105 @@ packages: terser: 5.29.2 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} - engines: {node: '>=10'} - hasBin: true + terser@5.29.2: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - dev: true - /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + text-hex@1.0.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-table@0.2.0: {} - /textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} - engines: {node: '>=0.8'} + textextensions@5.16.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - dev: false + throttle-debounce@3.0.1: {} - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + through2@4.0.2: dependencies: readable-stream: 3.6.2 - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + through@2.3.8: {} - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + thunky@1.1.0: {} - /tightrope@0.1.0: - resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==} - engines: {node: '>=14'} - dev: true + tightrope@0.1.0: {} - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + tiny-invariant@1.3.3: {} - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false + tiny-warning@1.0.3: {} - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: false + tinycolor2@1.6.0: {} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true + tmpl@1.0.5: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false + toggle-selection@1.0.6: {} - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + toidentifier@1.0.1: {} - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: false + totalist@3.0.1: {} - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} + tough-cookie@4.1.3: dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@0.0.3: {} - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + tr46@3.0.0: dependencies: punycode: 2.3.1 - dev: true - /treeverse@1.0.4: - resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==} + treeverse@1.0.4: {} - /trie-search@2.0.0: - resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==} + trie-search@2.0.0: dependencies: hasharray: 1.1.2 - dev: false - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-lines@3.0.1: {} - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true + trim-newlines@4.1.1: {} - /triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + triple-beam@1.4.1: {} - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + trough@2.2.0: {} - /ts-api-utils@1.3.0(typescript@5.4.3): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.3.0(typescript@5.4.3): dependencies: typescript: 5.4.3 - dev: true - /ts-easing@0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - dev: false + ts-easing@0.2.0: {} - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true + ts-interface-checker@0.1.13: {} - /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true + ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3): dependencies: '@babel/core': 7.24.3 bs-logger: 0.2.6 @@ -16603,14 +20255,8 @@ packages: semver: 7.6.0 typescript: 5.4.3 yargs-parser: 21.1.1 - dev: true - /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 + ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -16619,21 +20265,8 @@ packages: source-map: 0.7.4 typescript: 5.4.3 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: true - /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.10 @@ -16650,27 +20283,19 @@ packages: typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true - /ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - dev: true + ts-toolbelt@9.6.0: {} - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 debug: 4.3.4(supports-color@8.1.1) @@ -16678,77 +20303,46 @@ packages: transitivePeerDependencies: - supports-color - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + type-fest@0.20.2: {} - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + type-fest@0.21.3: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false + type-fest@2.19.0: {} - /type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - dev: false + type-fest@4.14.0: {} - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -16756,11 +20350,8 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -16768,53 +20359,34 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.4.3: {} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: false + unicode-emoji-modifier-base@1.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.1.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: {} - /unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.4: dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -16824,133 +20396,91 @@ packages: trough: 2.2.0 vfile: 6.0.1 - /union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} + union@0.5.0: dependencies: qs: 6.12.0 - dev: true - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 - /unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-filename@2.0.1: dependencies: unique-slug: 3.0.0 - /unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-slug@2.0.2: dependencies: imurmurhash: 0.1.4 - /unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-slug@3.0.0: dependencies: imurmurhash: 0.1.4 - /unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: true - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: false - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + unist-util-remove-position@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.2 - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universal-user-agent@6.0.1: {} - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.2.0: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + universalify@2.0.1: {} - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + unpipe@1.0.0: {} - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + untildify@4.0.0: {} - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - /update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} + update-notifier@6.0.2: dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -16966,125 +20496,80 @@ packages: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 - dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - dev: true + url-join@4.0.1: {} - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true + url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): dependencies: file-loader: 6.2.0(webpack@5.91.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util-deprecate@1.0.2: {} - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + utila@0.4.0: {} - /utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} + utility-types@3.11.0: {} - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + utils-merge@1.0.1: {} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + uuid@8.3.2: {} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: false + uuid@9.0.1: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true + v8-compile-cache-lib@3.0.1: {} - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - dev: true - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - /validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + validate-npm-package-name@3.0.0: dependencies: builtins: 1.0.3 - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate-npm-package-name@5.0.0: dependencies: builtins: 5.0.1 - /value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - dev: false + value-equal@1.0.1: {} - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + vary@1.1.2: {} - /vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + vfile-location@5.0.2: dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 - dev: false - /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - /vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vinyl-file@3.0.0: - resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} - engines: {node: '>=4'} + vinyl-file@3.0.0: dependencies: graceful-fs: 4.2.11 pify: 2.3.0 @@ -17092,9 +20577,7 @@ packages: strip-bom-stream: 2.0.0 vinyl: 2.2.1 - /vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} + vinyl@2.2.1: dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -17103,58 +20586,38 @@ packages: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vscode-uri@3.0.8: {} - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 - dev: true - /walk-up-path@1.0.0: - resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} + walk-up-path@1.0.0: {} - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + walker@1.0.8: dependencies: makeerror: 1.0.12 - dev: true - /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false + web-namespaces@2.0.1: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@3.0.1: {} - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: true + webidl-conversions@7.0.0: {} - /webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true + webpack-bundle-analyzer@4.10.1: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.11.3 @@ -17172,24 +20635,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false - /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) @@ -17208,11 +20655,7 @@ packages: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) webpack-merge: 5.10.0 - /webpack-dev-middleware@5.3.4(webpack@5.91.0): - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack-dev-middleware@5.3.4(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -17220,16 +20663,8 @@ packages: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /webpack-dev-middleware@7.1.1(webpack@5.91.0): - resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true + webpack-dev-middleware@7.1.1(webpack@5.91.0): dependencies: colorette: 2.0.20 memfs: 4.8.0 @@ -17239,18 +20674,7 @@ packages: schema-utils: 4.2.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - /webpack-dev-server@4.15.2(webpack@5.91.0): - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@4.15.2(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17288,20 +20712,8 @@ packages: - debug - supports-color - utf-8-validate - dev: false - /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -17341,27 +20753,15 @@ packages: - supports-color - utf-8-validate - /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + webpack-merge@5.10.0: dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + webpack-sources@3.2.3: {} - /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -17393,70 +20793,47 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.91.0): - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 + webpackbar@5.0.2(webpack@5.91.0): dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4) - dev: false - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + websocket-extensions@0.1.4: {} - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - dev: true + whatwg-mimetype@3.0.0: {} - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -17470,90 +20847,60 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true - /which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 - dev: true - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: false - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + which@3.0.1: dependencies: isexe: 2.0.0 - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wide-align@1.1.5: dependencies: string-width: 4.2.3 - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + widest-line@3.1.0: dependencies: string-width: 4.2.3 - dev: true - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@4.0.1: dependencies: string-width: 5.1.2 - dev: false - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + wildcard@2.0.1: {} - /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} - engines: {node: '>= 12.0.0'} + winston-transport@4.7.0: dependencies: logform: 2.6.0 readable-stream: 3.6.2 triple-beam: 1.4.1 - /winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} + winston@3.11.0: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -17567,173 +20914,95 @@ packages: triple-beam: 1.4.1 winston-transport: 4.7.0 - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true + workerpool@6.2.1: {} - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrappy@1.0.2: {} - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + write-file-atomic@3.0.3: dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@4.0.2: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - /write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + write-json-file@5.0.0: dependencies: detect-indent: 7.0.1 is-plain-obj: 4.1.0 sort-keys: 5.0.0 write-file-atomic: 3.0.3 - dev: true - /write-yaml-file@5.0.0: - resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==} - engines: {node: '>=16.14'} + write-yaml-file@5.0.0: dependencies: js-yaml: 4.1.0 write-file-atomic: 5.0.1 - dev: true - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@7.5.9: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + ws@8.16.0: {} - /xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - dev: false + xdg-basedir@5.1.0: {} - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true + xml-js@1.6.11: dependencies: sax: 1.3.0 - dev: false - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true + xml-name-validator@4.0.0: {} - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true + xmlchars@2.2.0: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false + yaml@1.10.2: {} - /yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - dev: true + yaml@2.4.1: {} - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.4: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + yargs-unparser@2.0.0: dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 - dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -17742,11 +21011,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -17755,12 +21021,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yeoman-environment@3.19.3: - resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==} - engines: {node: '>=12.10.0'} - hasBin: true + yeoman-environment@3.19.3: dependencies: '@npmcli/arborist': 4.3.1 are-we-there-yet: 2.0.0 @@ -17803,14 +21065,7 @@ packages: - bluebird - supports-color - /yeoman-generator@5.10.0(yeoman-environment@3.19.3): - resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==} - engines: {node: '>=12.10.0'} - peerDependencies: - yeoman-environment: ^3.2.0 - peerDependenciesMeta: - yeoman-environment: - optional: true + yeoman-generator@5.10.0(yeoman-environment@3.19.3): dependencies: chalk: 4.1.2 dargs: 7.0.0 @@ -17834,23 +21089,12 @@ packages: - mem-fs - supports-color - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true + yn@3.1.1: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: false + yocto-queue@1.0.0: {} - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false + zod@3.22.4: {} - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + zwitch@2.0.4: {} From c905ea0ed6aea53f8f1d5b64c9edbcbab0dd9d15 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:41:22 +0100 Subject: [PATCH 302/504] build: remove unused tests from different projects --- packages/cursorless-neovim/package.json | 1 - packages/neovim-common/package.json | 1 - packages/neovim-registry/package.json | 1 - 3 files changed, 3 deletions(-) diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index aaa643df86..401fc457be 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -5,7 +5,6 @@ "main": "./out/index.cjs", "private": true, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", "compile": "pnpm compile:tsc && pnpm compile:esbuild", diff --git a/packages/neovim-common/package.json b/packages/neovim-common/package.json index 5d54834164..9a58dd03f2 100644 --- a/packages/neovim-common/package.json +++ b/packages/neovim-common/package.json @@ -4,7 +4,6 @@ "description": "Common utility functions usable anywhere that neovim api is available", "main": "./out/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", "compile:tsc": "tsc --build", "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=esm --bundle --packages=external --outfile=./out/index.js", "compile": "pnpm compile:tsc && pnpm compile:esbuild", diff --git a/packages/neovim-registry/package.json b/packages/neovim-registry/package.json index c7bd81dbb1..3f4e36bd07 100644 --- a/packages/neovim-registry/package.json +++ b/packages/neovim-registry/package.json @@ -4,7 +4,6 @@ "description": "Registry to share apis and commands between packages for neovim", "main": "./out/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", "compile:tsc": "tsc --build", "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --bundle --outfile=./out/index.js --platform=node", From 30b6290986190abe0bc1fabaeacf48df3ca2c1fa Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Mon, 13 May 2024 17:58:08 +0100 Subject: [PATCH 303/504] changes from cursorless.nvim --- cursorless.nvim/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cursorless.nvim/README.md b/cursorless.nvim/README.md index 0dd7338540..a0a8f12451 100644 --- a/cursorless.nvim/README.md +++ b/cursorless.nvim/README.md @@ -93,4 +93,4 @@ Some Linux package managers ship with a version of `nvim` too old for Lazy. If t ### nvim does not find the `neovim` globally installed package? -Some Linux snap package of `nvim` might not be able to access the globally installed neovim npm package. If this is the case, [install nvim](https://github.com/neovim/neovim/blob/master/INSTALL.md) via another method. +If you are on Linux, avoid using the snap package for `npm` as it may not be able to globally expose the neovim npm package due to sandboxing. If this is the case, install node via another method (nvm, brew, etc). From 250f0bf64d89cd701f71beab7f28782c2e830a56 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 13:58:50 +0100 Subject: [PATCH 304/504] refactor: delete unused code --- cursorless.nvim/lua/cursorless/init.lua | 30 +------------------------ 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index 5981b1260e..dcabbd2502 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -1,31 +1,5 @@ -- local Config = require('cursorless.config') --- We can't use that yet as then when we use load_extensions() we get an error. --- So instead atm we rely on registering the functions from vim script --- local function register_functions1() --- local path = require('cursorless.utils').cursorless_nvim_path() --- vim.api.nvim_call_function('remote#host#RegisterPlugin', { --- 'node', --- path .. '/rplugin/node/command-server', --- { --- { sync = false, name = 'CommandServerLoadExtension', type = 'function', opts = {} }, --- { sync = false, name = 'CommandServerRunCommand', type = 'function', opts = {} }, --- }, --- }) --- vim.api.nvim_call_function('remote#host#RegisterPlugin', { --- 'node', --- path .. '/rplugin/node/cursorless-neovim', --- { --- { sync = false, name = 'CursorlessLoadExtension', type = 'function', opts = {} }, --- }, --- }) --- vim.api.nvim_call_function('remote#host#RegisterPlugin', { --- 'node', --- path .. '/rplugin/node/neovim-registry', --- {}, --- }) --- end - local function register_functions() local path = require('cursorless.utils').cursorless_nvim_path() -- revert to using forward slashes as works when passed to remote#host#RegisterPlugin() @@ -115,9 +89,7 @@ local function configure_command_server_shortcut() -- ]]) end -local function setup() -- setup(user_config) - -- local config = Config.merge_config(user_config) - +local function setup() vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim') register_functions() load_extensions() From 22b556459c9650d9d470b0e77fd43a2a234d1850 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:00:22 +0100 Subject: [PATCH 305/504] refactor: delete unused code --- cursorless.nvim/lua/cursorless/config.lua | 23 ----------------------- cursorless.nvim/lua/cursorless/init.lua | 2 -- 2 files changed, 25 deletions(-) delete mode 100644 cursorless.nvim/lua/cursorless/config.lua diff --git a/cursorless.nvim/lua/cursorless/config.lua b/cursorless.nvim/lua/cursorless/config.lua deleted file mode 100644 index d8240119ef..0000000000 --- a/cursorless.nvim/lua/cursorless/config.lua +++ /dev/null @@ -1,23 +0,0 @@ -local M = {} - -function M.get_default_config() - return { - settings = {}, - } -end - --- Maybe better way to do this eventually, just taken from harpoon for now -function M.merge_config(partial_config, latest_config) - partial_config = partial_config or {} - local config = latest_config or M.get_default_config() - for k, v in pairs(partial_config) do - if k == 'settings' then - config.settings = vim.tbl_extend('force', config.settings, v) - else - config[k] = vim.tbl_extend('force', config[k] or {}, v) - end - end - return config -end - -return M diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index dcabbd2502..aac18e50cc 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -1,5 +1,3 @@ --- local Config = require('cursorless.config') - local function register_functions() local path = require('cursorless.utils').cursorless_nvim_path() -- revert to using forward slashes as works when passed to remote#host#RegisterPlugin() From 56246ad7c43a3cc90ce154a1678d097a9afa6df7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:19:17 +0100 Subject: [PATCH 306/504] refactor: renamed task label --- .vscode/launch.json | 4 ++-- .vscode/tasks.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 45f6ce4686..abba7eed01 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "attach", "processName": "node.exe", "skipFiles": ["/**"], - "preLaunchTask": "Build neovim extension only", + "preLaunchTask": "Build neovim extension", "type": "node" }, { @@ -18,7 +18,7 @@ "request": "attach", "processName": "node.exe", "skipFiles": ["/**"], - "preLaunchTask": "Build neovim extension tests only", + "preLaunchTask": "Build neovim extension tests", "type": "node" }, { diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8c9071e447..0626f248b4 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -17,7 +17,7 @@ } }, { - "label": "Build neovim extension only", + "label": "Build neovim extension", "dependsOn": [ "neovim start", "ESBuild-neovim-registry", @@ -26,7 +26,7 @@ "group": "build" }, { - "label": "Build neovim extension tests only", + "label": "Build neovim extension tests", "dependsOn": [ "neovim test start", "ESBuild-neovim-registry", From 5755d55c6e834a49a1504194d80071cf23005378 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:19:36 +0100 Subject: [PATCH 307/504] refactor: renamed task label --- .vscode/launch.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index abba7eed01..70dbd98c9e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,7 @@ "type": "node" }, { - "name": "Run neovim extension tests", + "name": "Neovim extension tests", "request": "attach", "processName": "node.exe", "skipFiles": ["/**"], From 5f20a30866cfa0ef5baad2d6b755161bafbff697 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:29:02 +0100 Subject: [PATCH 308/504] build: depend on TSBuild here like we do for vscode tests, as it's preferable to detect type issues before trying to run the tests --- .vscode/tasks.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 0626f248b4..5f34e196fa 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -31,6 +31,7 @@ "neovim test start", "ESBuild-neovim-registry", "ESBuild-cursorless-neovim", + "TSBuild", "Build test harness" ], "group": "build" From 901c93a59d660faf716594f8a162650f6f02c9dd Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:34:14 +0100 Subject: [PATCH 309/504] build: remove unnecessary dependencies --- .vscode/tasks.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 5f34e196fa..7485800d97 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -52,11 +52,7 @@ "type": "npm", "script": "compile", "path": "packages/cursorless-neovim", - "dependsOn": [ - "ESBuild-common", - "ESBuild-cursorless-engine", - "ESBuild-neovim-common" - ], + "dependsOn": ["ESBuild-neovim-common"], "presentation": { "reveal": "silent" }, From 68dd6900b32ddbc3dbdab9376ae3a88e5581f590 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 14:44:13 +0100 Subject: [PATCH 310/504] build: remove dead code that has been moved to git issue --- .vscode/tasks.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7485800d97..378d1fce56 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -88,17 +88,6 @@ }, "group": "build" }, - { - "label": "neovim logs", - "type": "shell", - "windows": { - "command": "powershell", - "args": [ - "(New-Object -ComObject WScript.Shell).Run(\"\"\"powershell Get-Content '${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log' -wait -tail 30\"\"\", 1, $false)" - ] - }, - "group": "build" - }, { "label": "neovim start", "type": "process", From b7f84aac0ef93006d4528f1dd5231c7bd709057f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 15:12:27 +0100 Subject: [PATCH 311/504] docs: remove none required neovim plugins --- cursorless.nvim/README.md | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/cursorless.nvim/README.md b/cursorless.nvim/README.md index a0a8f12451..64c4e62306 100644 --- a/cursorless.nvim/README.md +++ b/cursorless.nvim/README.md @@ -11,6 +11,7 @@ - [Frequently asked questions](#frequently-asked-questions) - [nvim does not support Lazy?](#nvim-does-not-support-lazy) - [nvim does not find the `neovim` globally installed package?](#nvim-does-not-find-the-neovim-globally-installed-package) + - [Contributors](#contributors) @@ -23,10 +24,9 @@ Neovim plugin to support Cursorless - neovim: https://neovim.io/ - Talon voice: https://talonvoice.com/ - neovim-talon: https://github.com/hands-free-vim/neovim-talon -- node: https://nodejs.org/en -- npm (generally part of node installation) +- node/npm: https://nodejs.org/en - neovim node package: https://github.com/neovim/node-client (globally installed with `npm`) -- (Optional) talon.nvim: https://github.com/hands-free-vim/talon.nvim +- talon.nvim: https://github.com/hands-free-vim/talon.nvim (optional but recommended) ## Installation @@ -34,22 +34,11 @@ Ideally, you want to use a neovim plugin manager like [lazy.nvim](https://github ### Lazy installation -After the typical [lazy setup](https://github.com/folke/lazy.nvim?tab=readme-ov-file#-installation), you'll have to add the `talon.nvim` plugin to your `init.lua`. We also recommend the following other plugins for the best experience. +After the typical [lazy setup](https://github.com/folke/lazy.nvim?tab=readme-ov-file#-installation), you'll have to add the `cursorless.nvim` plugin to your `init.lua`. ```lua require('lazy').setup({ - -- Git related plugins - 'tpope/vim-fugitive', - - -- Optional: talon.nvim for best experience with neovim-talon - 'hands-free-vim/talon.nvim', - 'hands-free-vim/cursorless.nvim', - - -- dependencies useful for neovim-talon - 'dhruvasagar/vim-zoom', - 'gcmt/taboo.vim', - 'vim-scripts/BufOnly.vim' }) ``` @@ -58,8 +47,7 @@ require('lazy').setup({ This method is not recommended but you can try directly cloning the plugin into your nvim data folder: ``` -git clone https://github.com/hands-free-vim/cursorless.nvim -cd cursorless.nvim +git clone https://github.com/hands-free-vim/cursorless.nvim ``` ## Configuration @@ -69,9 +57,6 @@ cd cursorless.nvim If you aren't using a plugin manager that automatically calls setup for you (e.g. it is needed for lazy), you will need this somewhere in your neovim config, e.g. in [init.lua](https://neovim.io/doc/user/lua-guide.html#lua-guide-config): ```lua - -- Optional: if you are also using talon.nvim -require("talon").setup() --- The actual Cursorless initialization require("cursorless").setup() ``` @@ -94,3 +79,13 @@ Some Linux package managers ship with a version of `nvim` too old for Lazy. If t ### nvim does not find the `neovim` globally installed package? If you are on Linux, avoid using the snap package for `npm` as it may not be able to globally expose the neovim npm package due to sandboxing. If this is the case, install node via another method (nvm, brew, etc). + +## Contributors + +You will need to add the `vim-scripts/BufOnly.vim` neovim plugin if you want to be able to run the tests. For instance, with lazy: + +```lua +require('lazy').setup({ + 'vim-scripts/BufOnly.vim' +}) +``` From 7d0d154140b6e34352ebcf1faac969fb55d39960 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 15:20:07 +0100 Subject: [PATCH 312/504] refactor: remove dead code --- cursorless.nvim/lua/cursorless/cursorless.lua | 55 ------------------- 1 file changed, 55 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/cursorless.lua b/cursorless.nvim/lua/cursorless/cursorless.lua index 0a9b2bf37e..7977788503 100644 --- a/cursorless.nvim/lua/cursorless/cursorless.lua +++ b/cursorless.nvim/lua/cursorless/cursorless.lua @@ -137,59 +137,4 @@ function M.select_range(start_x, start_y, end_x, end_y) vim.api.nvim_win_set_cursor(0, { end_x, end_y }) end --- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278 --- another example is :map lua require("talon.cursorless").select_range2(4, 0, 4, 38) --- NOTE: works for any mode (n,i,v,nt) except in t mode -function M.select_range2(start_row, start_col, end_row, end_col, selection_mode) - local v_table = { charwise = 'v', linewise = 'V', blockwise = '' } - selection_mode = selection_mode or 'charwise' - - -- Normalise selection_mode - if vim.tbl_contains(vim.tbl_keys(v_table), selection_mode) then - selection_mode = v_table[selection_mode] - end - - -- enter visual mode if normal or operator-pending (no) mode - -- Why? According to https://learnvimscriptthehardway.stevelosh.com/chapters/15.html - -- If your operator-pending mapping ends with some text visually selected, Vim will operate on that text. - -- Otherwise, Vim will operate on the text between the original cursor position and the new position. - local mode = vim.api.nvim_get_mode() - if mode.mode ~= selection_mode then - -- Call to `nvim_replace_termcodes()` is needed for sending appropriate command to enter blockwise mode - selection_mode = vim.api.nvim_replace_termcodes(selection_mode, true, true, true) - vim.api.nvim_cmd({ cmd = 'normal', bang = true, args = { selection_mode } }, {}) - end - - vim.api.nvim_win_set_cursor(0, { start_row, start_col }) - vim.cmd('normal! o') - vim.api.nvim_win_set_cursor(0, { end_row, end_col }) -end - --- another example is :map lua require("talon.cursorless").select_range3(4, 0, 4, 38) --- NOTE: works for any mode (n,i,v,nt) except in t mode -function M.select_range3(start_x, start_y, end_x, end_y) - -- print('select_range()') - -- print(('start_x=%d, start_y=%d, end_x=%d, end_y=%d'):format(start_x, start_y, end_x, end_y)) - local key = vim.api.nvim_replace_termcodes('', true, true, true) - vim.api.nvim_feedkeys(key, 't', false) - local key2 = vim.api.nvim_replace_termcodes('', true, true, true) - vim.api.nvim_feedkeys(key2, 't', false) - vim.cmd([[normal! :noh]]) - vim.api.nvim_win_set_cursor(0, { start_x, start_y }) - -- vim.cmd([[normal v]]) - vim.cmd([[normal v]]) - vim.api.nvim_win_set_cursor(0, { end_x, end_y }) -end - --- another example is :map lua require("talon.cursorless").select_range4(4, 0, 4, 38) --- another example is :tmap lua require("talon.cursorless").select_range4(4, 0, 4, 38) --- https://vi.stackexchange.com/questions/11893/exiting-back-to-normal-mode-in-terminal-buffer-from-vimscript -function M.select_range4(start_x, start_y, end_x, end_y) - -- print('select_range4()') - vim.cmd([[normal! ]]) - vim.api.nvim_win_set_cursor(0, { start_x, start_y }) - vim.cmd([[normal v]]) - vim.api.nvim_win_set_cursor(0, { end_x, end_y }) -end - return M From e551bf293fd4d334324725d4d2488fd662a315f4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 15:28:09 +0100 Subject: [PATCH 313/504] refactor: remove dead code --- cursorless.nvim/lua/cursorless/init.lua | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index aac18e50cc..362a6b8394 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -61,30 +61,6 @@ local function configure_command_server_shortcut() 'lua vim.fn.CommandServerRunCommand()', { noremap = true } ) - -- we do change the mode when in terminal mode before running anything though. - -- This is to ease doing stuff - -- like calling select_range() as otherwise it would fail for now - -- vim.api.nvim_set_keymap( - -- 't', - -- '', - -- [[lua vim.fn.CommandServerRunCommand()]], - -- { noremap = true } - -- ) - -- from insert mode, go into normal mode before executing the command - -- https://stackoverflow.com/questions/4416512/why-use-esc-in-vim - -- https://vim.fandom.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings - -- vim.cmd([[ - -- inoremap :call CommandServerRunCommand("i") - -- ]]) - -- vim.cmd([[ - -- nnoremap :call CommandServerRunCommand("n") - -- cnoremap :call CommandServerRunCommand("c") - -- vnoremap :call CommandServerRunCommand("v") - -- ]]) - -- -- https://vi.stackexchange.com/questions/4919/exit-from-terminal-mode-in-neovim-vim-8 - -- vim.cmd([[ - -- tnoremap :call CommandServerRunCommand("t") - -- ]]) end local function setup() From a9ad4879267b662cf6e45420d40f1da2eff4bf2f Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 15:28:50 +0100 Subject: [PATCH 314/504] fix: only sleeping one second seems enough before running the tests since in general not sleeping is fine too --- cursorless.nvim/lua/cursorless/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index 362a6b8394..0d74f39aa0 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -17,7 +17,7 @@ local function load_extensions() if os.getenv('CURSORLESS_MODE') == 'test' then -- make sure cursorless is loaded before starting the tests -- see https://neovim.io/doc/user/various.html#%3Asleep - vim.cmd([[sleep 5]]) + vim.cmd([[sleep 1]]) vim.api.nvim_call_function('TestHarnessRun', {}) end end From 0104a2271838c999feb9a929618afd584d5769f1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 21:20:56 +0100 Subject: [PATCH 315/504] feat: initial CI test code (untested) --- .github/workflows/test.yml | 51 +++++++---- packages/test-harness/package.json | 3 +- packages/test-harness/src/index.ts | 16 +++- .../src/launchNeovimAndRunTests.ts | 90 +++++++++++++++++++ .../src/launchVscodeAndRunTests.ts | 6 +- .../src/scripts/runNeovimTestsCI.ts | 19 ++++ .../{runTestsCI.ts => runVscodeTestsCI.ts} | 2 +- 7 files changed, 163 insertions(+), 24 deletions(-) create mode 100644 packages/test-harness/src/launchNeovimAndRunTests.ts create mode 100644 packages/test-harness/src/scripts/runNeovimTestsCI.ts rename packages/test-harness/src/scripts/{runTestsCI.ts => runVscodeTestsCI.ts} (89%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c975db71b5..45215f7780 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,16 +15,19 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - vscode_version: [stable] - include: - - os: ubuntu-latest - vscode_version: legacy + # XXX: restore this once neovim tests work in CI + # os: [macos-latest, ubuntu-latest, windows-latest] + os: [windows-latest] + app_version: [stable] + # XXX: restore this once neovim tests work in CI + # include: + # - os: ubuntu-latest + # app_version: legacy runs-on: ${{ matrix.os }} env: - VSCODE_VERSION: ${{ matrix.vscode_version }} - VSCODE_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps - VSCODE_LOGS_DIR: ${{ github.workspace }}/artifacts/logs + APP_VERSION: ${{ matrix.app_version }} + APP_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps + APP_LOGS_DIR: ${{ github.workspace }}/artifacts/logs CURSORLESS_REPO_ROOT: ${{ github.workspace }} steps: - uses: actions/checkout@v4 @@ -33,18 +36,32 @@ jobs: with: node-version-file: .nvmrc cache: pnpm - - run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" + - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}" shell: bash - run: pnpm --color install - run: pnpm --color compile - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build - - run: xvfb-run -a pnpm --color test - if: runner.os == 'Linux' - - run: pnpm --color test + # XXX: restore this once neovim tests work in CI + # - run: xvfb-run -a pnpm --color test + # if: runner.os == 'Linux' + # - run: pnpm --color test + # if: runner.os != 'Linux' + - name: Install Neovim + uses: rhysd/action-setup-vim@v1 + id: vim + with: + version: stable + neovim: true + # XXX: enable this once neovim tests work in CI for Windows + # - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim + # if: runner.os == 'Linux' + - run: pnpm -F @cursorless/test-harness testNeovim if: runner.os != 'Linux' + env: + APP_PATH: ${{ steps.vim.outputs.executable }} - name: Create vscode dist that can be installed locally run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install - if: runner.os == 'Linux' && matrix.vscode_version == 'stable' + if: runner.os == 'Linux' && matrix.app_version == 'stable' - name: Test create vsix id: createVsix uses: HaaLeo/publish-vscode-extension@v1 @@ -53,10 +70,10 @@ jobs: packagePath: packages/cursorless-vscode/dist dryRun: true - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix - if: runner.os == 'Linux' && matrix.vscode_version == 'stable' + if: runner.os == 'Linux' && matrix.app_version == 'stable' - name: Upload vsix uses: actions/upload-artifact@v4 - if: runner.os == 'Linux' && matrix.vscode_version == 'stable' + if: runner.os == 'Linux' && matrix.app_version == 'stable' with: name: vsix path: cursorless-development.vsix @@ -64,11 +81,11 @@ jobs: uses: actions/upload-artifact@v4 with: name: logs - path: ${{ env.VSCODE_LOGS_DIR }} + path: ${{ env.APP_LOGS_DIR }} if: failure() - name: Archive dumps uses: actions/upload-artifact@v4 with: name: dumps - path: ${{ env.VSCODE_CRASH_DIR }} + path: ${{ env.APP_CRASH_DIR }} if: failure() diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index a834b092ca..bb2183efc4 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -5,7 +5,8 @@ "private": true, "main": "./out/index.cjs", "scripts": { - "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runTestsCI.ts", + "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runVscodeTestsCI.ts", + "testNeovim": "env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts", "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 432e038123..0d469dd517 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -11,13 +11,25 @@ import type { NeovimClient, NvimPlugin } from "neovim"; */ // FIXME: this is neovim specific atm so in the future we can support other apps here // with an environment variable -export function run(plugin: NvimPlugin): Promise { +export async function run(plugin: NvimPlugin): Promise { // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196 // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type (global as any).additionalParameters = { client: plugin.nvim as NeovimClient, }; - return runAllTests(TestType.neovim, TestType.unit); + try { + await runAllTests(TestType.neovim, TestType.unit); + } catch (error) { + console.error("runAllTests failed"); + console.error(error); + // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim + // XXX: kill neovim with -1 code ":cq!" command? + return; + } + console.log("runAllTests succeeded"); + // XXX: kill neovim with 0 code ":q!" command? + + // XXX: launchNeovimAndRunTests.ts will catch that error code } /** diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts new file mode 100644 index 0000000000..2d370672cb --- /dev/null +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -0,0 +1,90 @@ +// import * as cp from "child_process"; +// import * as path from "path"; +// import * as os from "os"; +// import { +// downloadAndUnzipVSCode, +// resolveCliArgsFromVSCodeExecutablePath, +// runTests, +// } from "@vscode/test-electron"; +// import { +// extensionDependencies, +// getCursorlessRepoRoot, +// } from "@cursorless/common"; +import { getEnvironmentVariableStrict } from "@cursorless/common"; + +/** + * Launches neovim, instructing it to run the test runner + * specified in {@link extensionTestsPath}. + * @param extensionTestsPath The path to test runner, passed to + * `--extensionTestsPath` + */ +export async function launchNeovimAndRunTests(extensionTestsPath: string) { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + // const extensionDevelopmentPath = path.resolve( + // getCursorlessRepoRoot(), + // "packages/cursorless-vscode/dist", + // ); + + const crashDir = getEnvironmentVariableStrict("APP_CRASH_DIR"); + const logsDir = getEnvironmentVariableStrict("APP_LOGS_DIR"); + const useLegacyVscode = + getEnvironmentVariableStrict("APP_VERSION") === "legacy"; + + // NB: We include the exact version here instead of in `test.yml` so that + // we don't have to update the branch protection rules every time we bump + // the legacy VSCode version. + // const vscodeVersion = useLegacyVscode ? "1.75.1" : "stable"; + // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion); + // const [cli, ...args] = + // resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath); + const cli = getEnvironmentVariableStrict("APP_PATH"); + + // Install extension dependencies + // const extensionInstallArgs = [ + // ...args, + // ...extensionDependencies.flatMap((dependency) => [ + // "--install-extension", + // dependency, + // ]), + // ]; + + // console.log("starting to install dependency extensions"); + console.log(`cli: ${cli}`); + // console.log(JSON.stringify(extensionInstallArgs, null, 2)); + + // const { status, signal, error } = cp.spawnSync(cli, extensionInstallArgs, { + // encoding: "utf-8", + // stdio: "inherit", + // }); + + // console.log("status: ", status); + // console.log("signal: ", signal); + // console.log("error: ", error); + + // console.log("finished installing dependency extensions"); + + // Run the integration test + // const code = await runTests({ + // vscodeExecutablePath, + // extensionDevelopmentPath, + // extensionTestsPath, + // // Note: Crash dump causes legacy VSCode and Windows to hang, so we just + // // don't bother. Can be re-enabled if we ever need it; on windows it only + // // hangs some of the time, so might be enough to get a crash dump when you + // // need it. + // launchArgs: + // useLegacyVscode || os.platform() === "win32" + // ? undefined + // : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`], + // }); + const code = 0; + + console.log(`Returned from "runTests" with value: ${code}`); + } catch (err) { + console.error("Test run threw exception:"); + console.error(err); + process.exit(1); + } +} diff --git a/packages/test-harness/src/launchVscodeAndRunTests.ts b/packages/test-harness/src/launchVscodeAndRunTests.ts index d20d7a69ac..e03d7eb9e5 100644 --- a/packages/test-harness/src/launchVscodeAndRunTests.ts +++ b/packages/test-harness/src/launchVscodeAndRunTests.ts @@ -27,10 +27,10 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { "packages/cursorless-vscode/dist", ); - const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR"); - const logsDir = getEnvironmentVariableStrict("VSCODE_LOGS_DIR"); + const crashDir = getEnvironmentVariableStrict("APP_CRASH_DIR"); + const logsDir = getEnvironmentVariableStrict("APP_LOGS_DIR"); const useLegacyVscode = - getEnvironmentVariableStrict("VSCODE_VERSION") === "legacy"; + getEnvironmentVariableStrict("APP_VERSION") === "legacy"; // NB: We include the exact version here instead of in `test.yml` so that // we don't have to update the branch protection rules every time we bump diff --git a/packages/test-harness/src/scripts/runNeovimTestsCI.ts b/packages/test-harness/src/scripts/runNeovimTestsCI.ts new file mode 100644 index 0000000000..0e9ab6747a --- /dev/null +++ b/packages/test-harness/src/scripts/runNeovimTestsCI.ts @@ -0,0 +1,19 @@ +/** + * This file can be run from node to run neovim tests in CI + */ + +import { getCursorlessRepoRoot } from "@cursorless/common"; +import * as path from "path"; +import { launchNeovimAndRunTests } from "../launchNeovimAndRunTests"; + +(async () => { + // Note that we run all extension tests, including unit tests, in neovim, even though + // unit tests could be run separately. + const extensionTestsPath = path.resolve( + getCursorlessRepoRoot(), + // "packages/test-harness/dist/extensionTestsNeovim.cjs", + "packages/test-harness/out/index.cjs", + ); + + await launchNeovimAndRunTests(extensionTestsPath); +})(); diff --git a/packages/test-harness/src/scripts/runTestsCI.ts b/packages/test-harness/src/scripts/runVscodeTestsCI.ts similarity index 89% rename from packages/test-harness/src/scripts/runTestsCI.ts rename to packages/test-harness/src/scripts/runVscodeTestsCI.ts index 9bcb65cb7a..6208df82ae 100644 --- a/packages/test-harness/src/scripts/runTestsCI.ts +++ b/packages/test-harness/src/scripts/runVscodeTestsCI.ts @@ -1,5 +1,5 @@ /** - * This file can be run from node to run tests in CI + * This file can be run from node to run vscode tests in CI */ import { getCursorlessRepoRoot } from "@cursorless/common"; From c9ab06436a04968aff8fc7e20b25b5294aa96f7d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 21:33:28 +0100 Subject: [PATCH 316/504] refactor: disable more stuff so it's faster to run --- .github/workflows/test.yml | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 45215f7780..a853c82ecc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,8 +40,8 @@ jobs: shell: bash - run: pnpm --color install - run: pnpm --color compile - - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build # XXX: restore this once neovim tests work in CI + # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build # - run: xvfb-run -a pnpm --color test # if: runner.os == 'Linux' # - run: pnpm --color test @@ -62,21 +62,22 @@ jobs: - name: Create vscode dist that can be installed locally run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install if: runner.os == 'Linux' && matrix.app_version == 'stable' - - name: Test create vsix - id: createVsix - uses: HaaLeo/publish-vscode-extension@v1 - with: - pat: none - packagePath: packages/cursorless-vscode/dist - dryRun: true - - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix - if: runner.os == 'Linux' && matrix.app_version == 'stable' - - name: Upload vsix - uses: actions/upload-artifact@v4 - if: runner.os == 'Linux' && matrix.app_version == 'stable' - with: - name: vsix - path: cursorless-development.vsix + # XXX: restore this once neovim tests work in CI + # - name: Test create vsix + # id: createVsix + # uses: HaaLeo/publish-vscode-extension@v1 + # with: + # pat: none + # packagePath: packages/cursorless-vscode/dist + # dryRun: true + # - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix + # if: runner.os == 'Linux' && matrix.app_version == 'stable' + # - name: Upload vsix + # uses: actions/upload-artifact@v4 + # if: runner.os == 'Linux' && matrix.app_version == 'stable' + # with: + # name: vsix + # path: cursorless-development.vsix - name: Archive logs uses: actions/upload-artifact@v4 with: From 86e0b9ad699c15e170509faf151e36b45876473d Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Tue, 14 May 2024 22:09:15 +0100 Subject: [PATCH 317/504] build: attempt to use themis.vim --- .github/workflows/test.yml | 21 +++++++++++++++---- .../src/launchNeovimAndRunTests.ts | 3 ++- test/all.vimspec | 14 +++++++++++++ 3 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 test/all.vimspec diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a853c82ecc..f84ac8b772 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,19 +46,32 @@ jobs: # if: runner.os == 'Linux' # - run: pnpm --color test # if: runner.os != 'Linux' + - name: Checkout themis.vim + uses: actions/checkout@v4 + with: + repository: thinca/vim-themis + path: vim-themis - name: Install Neovim uses: rhysd/action-setup-vim@v1 id: vim with: version: stable neovim: true - # XXX: enable this once neovim tests work in CI for Windows - # - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim - # if: runner.os == 'Linux' - - run: pnpm -F @cursorless/test-harness testNeovim + - name: Run neovim unit tests using themis.vim + env: + THEMIS_VIM: ${{ steps.vim.outputs.executable }} + # PROFILE_LOG: profile.txt + run: | + echo "${THEMIS_VIM}" + ./vim-themis/bin/themis ./test/all.vimspec + - name: Run neovim unit tests using test-harness + run: pnpm -F @cursorless/test-harness testNeovim if: runner.os != 'Linux' env: APP_PATH: ${{ steps.vim.outputs.executable }} + # XXX: enable this once neovim tests work in CI for Windows + # - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim + # if: runner.os == 'Linux' - name: Create vscode dist that can be installed locally run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install if: runner.os == 'Linux' && matrix.app_version == 'stable' diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts index 2d370672cb..2ff07108a0 100644 --- a/packages/test-harness/src/launchNeovimAndRunTests.ts +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -39,7 +39,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion); // const [cli, ...args] = // resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath); - const cli = getEnvironmentVariableStrict("APP_PATH"); + let cli = getEnvironmentVariableStrict("APP_PATH"); + cli = cli.replace("nvim.exe", "nvim-qt.exe"); // Install extension dependencies // const extensionInstallArgs = [ diff --git a/test/all.vimspec b/test/all.vimspec new file mode 100644 index 0000000000..7a756bac58 --- /dev/null +++ b/test/all.vimspec @@ -0,0 +1,14 @@ +let s:suite = themis#suite('Test for my plugin') +let s:assert = themis#helper('assert') + +" The function name(my_test_1) will be a test name. +function s:suite.my_test_1() + call s:assert.equals(3, 1 + 2) +endfunction + +function s:suite.my_test_2() + call s:assert.equals(8, 2 * 4) +endfunction +function s:suite.my_fail_test() + call s:assert.fail('this will fail') +endfunction \ No newline at end of file From 9c9fd5fe0f5320f30822101ecef57e85cf34be12 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 21:10:35 +0000 Subject: [PATCH 318/504] [pre-commit.ci lite] apply automatic fixes --- test/all.vimspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/all.vimspec b/test/all.vimspec index 7a756bac58..7d97fb0698 100644 --- a/test/all.vimspec +++ b/test/all.vimspec @@ -11,4 +11,4 @@ function s:suite.my_test_2() endfunction function s:suite.my_fail_test() call s:assert.fail('this will fail') -endfunction \ No newline at end of file +endfunction From 755e1c9d4d51bd5ee56b7cc2728aafcafcbdd7a1 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 10:13:11 +0100 Subject: [PATCH 319/504] feat: attempt to call TestHarnessRun() from themis.vim --- test/all.vimspec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/all.vimspec b/test/all.vimspec index 7d97fb0698..82a4e02144 100644 --- a/test/all.vimspec +++ b/test/all.vimspec @@ -9,6 +9,12 @@ endfunction function s:suite.my_test_2() call s:assert.equals(8, 2 * 4) endfunction -function s:suite.my_fail_test() - call s:assert.fail('this will fail') + +function s:suite.cursorless_test() + let s:result = call TestHarnessRun() + call s:assert.equals(result, 0) endfunction + +"function s:suite.my_fail_test() +" call s:assert.fail('this will fail') +"endfunction From 5c85a89a6df4e8576024723a0eabf3cbf294df39 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 11:13:12 +0100 Subject: [PATCH 320/504] test: attempt to run the test framework synchronously I tried to not call the `TestHarnessRun()` mocha tests from neovim config file, and instead I changed it to be synchronous and I called it manually using the `:call TestHarnessRun()` command. The result is that it hangs every ten minutes. This is really weird because it shouldn't have any fail test because when I do it asynchronously there is no fail test, but instead I skip the ones I don't want to execute. ``` 2024-05-15 10:43:07 INF recorded test cases 2024-05-15 10:43:07 INF - recorded/actions/alternateHighlightHarp 2024-05-15 10:43:07 INF - recorded/actions/breakBat 2024-05-15 10:43:07 INF - recorded/actions/breakCommentSit 2024-05-15 10:43:07 INF - recorded/actions/breakJustThis 2024-05-15 10:43:07 INF - recorded/actions/breakJustThis2 2024-05-15 10:43:07 INF - recorded/actions/bringAirAfterAir 2024-05-15 10:43:07 INF - recorded/actions/bringAirAndBatAndCap 2024-05-15 10:43:07 INF - recorded/actions/bringAirAndBatAndCapToAfterDrum 2024-05-15 10:43:07 INF - recorded/actions/bringAirAndBatAndCapToAfterItemEach 2024-05-15 10:43:07 INF - recorded/actions/bringAirAndBatAndCapToBeforeDrum 2024-05-15 10:43:07 INF - recorded/actions/bringAirAndBatAndCapToBeforeItemEach 2024-05-15 10:43:07 INF - recorded/actions/bringAirBeforeAir 2024-05-15 10:43:07 INF - recorded/actions/bringAirToEndOfAir 2024-05-15 10:43:07 INF - recorded/actions/bringAirToStartOfAir 2024-05-15 10:43:07 INF - recorded/actions/bringArgMadeAfterLook 2024-05-15 10:43:07 INF - recorded/actions/bringArgMadeAfterVest 2024-05-15 10:43:07 INF - recorded/actions/bringArgueFineAndZip 2024-05-15 10:43:07 INF - recorded/actions/bringArgueOxAndZipToAfterJustLeper 2024-05-15 10:43:07 INF - recorded/actions/bringArgWhaleBeforeLook 2024-05-15 10:43:07 INF - recorded/actions/bringFineAfterLineVest 2024-05-15 10:43:07 INF - recorded/actions/bringFineBeforeLineVest 2024-05-15 10:43:07 INF - recorded/actions/bringItemAirAfterCap 2024-05-15 10:43:07 INF - recorded/actions/bringLineAirAndBatAndCapToAfterDrum 2024-05-15 10:43:07 INF - recorded/actions/bringLineAirAndBatAndCapToBeforeDrum 2024-05-15 10:43:07 INF - recorded/actions/bringVest 2024-05-15 10:43:07 INF - recorded/actions/bringVestToCap 2024-05-15 10:43:07 INF - recorded/actions/callFine 2024-05-15 10:43:07 INF - recorded/actions/callFineOnBatt 2024-05-15 10:43:07 INF - recorded/actions/callVest 2024-05-15 10:43:07 INF - recorded/actions/callVestOnCap 2024-05-15 10:43:07 INF - recorded/actions/carveVest 2024-05-15 10:53:07 INF 1) recorded/actions/changeNextInstanceChar 2024-05-15 10:53:07 INF - recorded/actions/chuckArgMadeAndAir 2024-05-15 10:53:07 INF - recorded/actions/chuckArgMadeAndAirAndJustSoon 2024-05-15 10:53:07 INF - recorded/actions/chuckEveryArgMade 2024-05-15 10:53:07 INF - recorded/actions/chuckVest 2024-05-15 10:53:07 INF - recorded/actions/clearVest 2024-05-15 10:53:07 INF - recorded/actions/cloneArgue 2024-05-15 10:53:07 INF - recorded/actions/cloneArgue2 2024-05-15 10:53:07 INF - recorded/actions/cloneEveryArg 2024-05-15 10:53:07 INF - recorded/actions/cloneHarp 2024-05-15 10:53:07 INF - recorded/actions/cloneHarp2 2024-05-15 10:53:07 INF - recorded/actions/cloneToken 2024-05-15 10:53:07 INF - recorded/actions/cloneToken2 2024-05-15 10:53:07 INF - recorded/actions/cloneToken3 2024-05-15 10:53:07 INF - recorded/actions/cloneToken4 2024-05-15 10:53:07 INF - recorded/actions/cloneToken5 2024-05-15 10:53:07 INF - recorded/actions/cloneUpArgue 2024-05-15 10:53:07 INF - recorded/actions/cloneUpArgue2 2024-05-15 10:53:07 INF - recorded/actions/cloneUpEveryArg 2024-05-15 10:53:07 INF - recorded/actions/cloneUpHarp 2024-05-15 10:53:07 INF - recorded/actions/cloneUpHarp2 2024-05-15 11:03:07 INF 2) recorded/actions/cloneUpToken ``` --- cursorless.nvim/lua/cursorless/init.lua | 20 ++++++++++++++------ cursorless.nvim/vim/cursorless.vim | 2 +- packages/test-harness/src/index.ts | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua index 0d74f39aa0..1a7fdb8071 100644 --- a/cursorless.nvim/lua/cursorless/init.lua +++ b/cursorless.nvim/lua/cursorless/init.lua @@ -14,12 +14,12 @@ local function load_extensions() vim.api.nvim_call_function('CursorlessLoadExtension', {}) vim.api.nvim_call_function('CommandServerLoadExtension', {}) - if os.getenv('CURSORLESS_MODE') == 'test' then - -- make sure cursorless is loaded before starting the tests - -- see https://neovim.io/doc/user/various.html#%3Asleep - vim.cmd([[sleep 1]]) - vim.api.nvim_call_function('TestHarnessRun', {}) - end + -- if os.getenv('CURSORLESS_MODE') == 'test' then + -- -- make sure cursorless is loaded before starting the tests + -- -- see https://neovim.io/doc/user/various.html#%3Asleep + -- vim.cmd([[sleep 1]]) + -- vim.api.nvim_call_function('TestHarnessRun', {}) + -- end end -- Cursorless command-server shortcut: CTRL+q @@ -68,6 +68,14 @@ local function setup() register_functions() load_extensions() configure_command_server_shortcut() + + -- if os.getenv('CURSORLESS_MODE') == 'test' then + -- -- make sure cursorless is loaded before starting the tests + -- -- see https://neovim.io/doc/user/various.html#%3Asleep + -- vim.cmd([[sleep 1]]) + -- vim.api.nvim_call_function('TestHarnessRun', {}) + -- end + -- print("TestHarnessRun() done") end local M = { diff --git a/cursorless.nvim/vim/cursorless.vim b/cursorless.nvim/vim/cursorless.vim index b7bce18aa6..3a38c891e8 100644 --- a/cursorless.nvim/vim/cursorless.vim +++ b/cursorless.nvim/vim/cursorless.vim @@ -10,6 +10,6 @@ function RegisterFunctions(cursorless_nvim_path) \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}}, \ ]) call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/test-harness', [ - \ {'sync': v:false, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}}, + \ {'sync': v:true, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}}, \ ]) endfunction diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index 0d469dd517..d541ffed65 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -39,6 +39,6 @@ export async function run(plugin: NvimPlugin): Promise { */ export default function entry(plugin: NvimPlugin) { plugin.registerFunction("TestHarnessRun", async () => await run(plugin), { - sync: false, + sync: true, }); } From c1896d12e52702144a0e4ac39b955a57e4cb6275 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 11:36:11 +0100 Subject: [PATCH 321/504] revert to run tests asynchronously as otherwise it hangs so is not usable --- cursorless.nvim/vim/cursorless.vim | 2 +- packages/test-harness/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cursorless.nvim/vim/cursorless.vim b/cursorless.nvim/vim/cursorless.vim index 3a38c891e8..b7bce18aa6 100644 --- a/cursorless.nvim/vim/cursorless.vim +++ b/cursorless.nvim/vim/cursorless.vim @@ -10,6 +10,6 @@ function RegisterFunctions(cursorless_nvim_path) \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}}, \ ]) call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/test-harness', [ - \ {'sync': v:true, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}}, + \ {'sync': v:false, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}}, \ ]) endfunction diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts index d541ffed65..0d469dd517 100644 --- a/packages/test-harness/src/index.ts +++ b/packages/test-harness/src/index.ts @@ -39,6 +39,6 @@ export async function run(plugin: NvimPlugin): Promise { */ export default function entry(plugin: NvimPlugin) { plugin.registerFunction("TestHarnessRun", async () => await run(plugin), { - sync: true, + sync: false, }); } From 5710738cfc5af3c0c8e3ac68c03657a2b45b61e7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 15:22:16 +0100 Subject: [PATCH 322/504] build: populate a dist/ folder for neovim --- packages/cursorless-neovim/package.json | 5 +++-- .../scripts/populate-cursorless-nvim.sh | 18 ++++++++++++++++++ packages/test-harness/package.json | 5 +++-- .../scripts/populate-cursorless-nvim.sh | 9 +++++++++ scripts/deploy-cursorless-nvim.sh | 6 +----- 5 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 packages/cursorless-neovim/scripts/populate-cursorless-nvim.sh create mode 100644 packages/test-harness/scripts/populate-cursorless-nvim.sh diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json index 401fc457be..b6f7d76fb2 100644 --- a/packages/cursorless-neovim/package.json +++ b/packages/cursorless-neovim/package.json @@ -7,11 +7,12 @@ "scripts": { "compile:tsc": "tsc --build", "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", - "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "compile": "pnpm compile:tsc && pnpm compile:esbuild && pnpm populate-cursorless-nvim", + "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh", "watch:tsc": "pnpm compile:tsc --watch", "watch:esbuild": "pnpm compile:esbuild --watch", "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'", - "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist" }, "keywords": [], "author": "", diff --git a/packages/cursorless-neovim/scripts/populate-cursorless-nvim.sh b/packages/cursorless-neovim/scripts/populate-cursorless-nvim.sh new file mode 100644 index 0000000000..a5a9fcf4fd --- /dev/null +++ b/packages/cursorless-neovim/scripts/populate-cursorless-nvim.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euo pipefail + +in_dir=../../cursorless.nvim +out_dir=../../dist/cursorless.nvim + +mkdir -p "$out_dir/node/cursorless-neovim/out" + +# copy .lua and .vim dependencies as well as other static files +cp -r "$in_dir/README.md" "$out_dir/" +cp -r "$in_dir/assets" "$out_dir/" +cp -r "$in_dir/lua" "$out_dir/" +cp -r "$in_dir/vim" "$out_dir/" +cp -r "$in_dir/node/command-server" "$out_dir/node/command-server" + +# copy the built .js file +cp package.json "$out_dir/node/cursorless-neovim/" +cp out/index.cjs "$out_dir/node/cursorless-neovim/out/" diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json index bb2183efc4..8d32bcd9af 100644 --- a/packages/test-harness/package.json +++ b/packages/test-harness/package.json @@ -8,15 +8,16 @@ "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runVscodeTestsCI.ts", "testNeovim": "env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts", "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node", - "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon", + "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon && pnpm run populate-cursorless-nvim", "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs", "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs", "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs", "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs", "build:tests": "bash ./scripts/build-tests.sh", "compile": "tsc --build", + "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh", "watch": "tsc --build --watch", - "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist", "generate-test-subset-file": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --always-open", "generate-test-subset-file-strict": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists" }, diff --git a/packages/test-harness/scripts/populate-cursorless-nvim.sh b/packages/test-harness/scripts/populate-cursorless-nvim.sh new file mode 100644 index 0000000000..849b4e370c --- /dev/null +++ b/packages/test-harness/scripts/populate-cursorless-nvim.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +out_dir=../../dist/cursorless.nvim +mkdir -p "$out_dir/node/test-harness/out" + +# copy the built .js file +cp package.json "$out_dir/node/test-harness/" +cp out/index.cjs "$out_dir/node/test-harness/out/" \ No newline at end of file diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh index 48d6f82743..6cb98a984c 100644 --- a/scripts/deploy-cursorless-nvim.sh +++ b/scripts/deploy-cursorless-nvim.sh @@ -17,11 +17,7 @@ cd - # Merge the build .js and the static files # -# no snippets at the moment -mkdir -p "$out_dir/assets/cursorless-snippets" -touch "$out_dir/assets/cursorless-snippets/.gitkeep" - -# copy .lua and .vim Dependencies as well as other static files +# copy .lua and .vim dependencies as well as other static files cp -r cursorless.nvim/README.md "$out_dir/" cp -r cursorless.nvim/assets "$out_dir/" cp -r cursorless.nvim/lua "$out_dir/" From 25d5afa6a6cfaa507e84856ef509a5c0e216391e Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 17:11:06 +0100 Subject: [PATCH 323/504] refactor: enable debug for now to understand when it hangs --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 378d1fce56..d83ca0e97c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -123,7 +123,7 @@ "CURSORLESS_REPO_ROOT": "${workspaceFolder}", "NVIM_NODE_HOST_DEBUG": "1", "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log", - "NVIM_NODE_LOG_LEVEL": "info", + "NVIM_NODE_LOG_LEVEL": "debug", "CURSORLESS_MODE": "test" } } From 6410e280227929c01c21eb6094f8ee3b82f33f8e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 16:13:01 +0000 Subject: [PATCH 324/504] [pre-commit.ci lite] apply automatic fixes --- packages/test-harness/scripts/populate-cursorless-nvim.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test-harness/scripts/populate-cursorless-nvim.sh b/packages/test-harness/scripts/populate-cursorless-nvim.sh index 849b4e370c..b131d345bd 100644 --- a/packages/test-harness/scripts/populate-cursorless-nvim.sh +++ b/packages/test-harness/scripts/populate-cursorless-nvim.sh @@ -6,4 +6,4 @@ mkdir -p "$out_dir/node/test-harness/out" # copy the built .js file cp package.json "$out_dir/node/test-harness/" -cp out/index.cjs "$out_dir/node/test-harness/out/" \ No newline at end of file +cp out/index.cjs "$out_dir/node/test-harness/out/" From 09feff504c8d6e60691b391b214d6814b0604963 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 17:17:03 +0100 Subject: [PATCH 325/504] fix: other themis attempt --- test/all.vimspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/all.vimspec b/test/all.vimspec index 82a4e02144..f5fc117f2b 100644 --- a/test/all.vimspec +++ b/test/all.vimspec @@ -11,8 +11,8 @@ function s:suite.my_test_2() endfunction function s:suite.cursorless_test() - let s:result = call TestHarnessRun() - call s:assert.equals(result, 0) + let s:result = TestHarnessRun() + call s:assert.equals(s:result, 0) endfunction "function s:suite.my_fail_test() From 3ca396871dacf4a8dea596ac6832817723ff29da Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Wed, 15 May 2024 17:22:53 +0100 Subject: [PATCH 326/504] fix: disable as "# Vim(let):E117: Unknown function: TestHarnessRun" --- test/all.vimspec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/all.vimspec b/test/all.vimspec index f5fc117f2b..1f75b72958 100644 --- a/test/all.vimspec +++ b/test/all.vimspec @@ -10,10 +10,10 @@ function s:suite.my_test_2() call s:assert.equals(8, 2 * 4) endfunction -function s:suite.cursorless_test() - let s:result = TestHarnessRun() - call s:assert.equals(s:result, 0) -endfunction +"function s:suite.cursorless_test() +" let s:result = TestHarnessRun() +" call s:assert.equals(s:result, 0) +"endfunction "function s:suite.my_fail_test() " call s:assert.fail('this will fail') From 66e4890cb83bc6097be02c906eb7d1f067305107 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 10:13:44 +0100 Subject: [PATCH 327/504] build: pre commit config for lua --- .pre-commit-config.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 33c376f87b..7a4026fb5b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -81,3 +81,8 @@ repos: - id: ruff args: [--fix, --exit-non-zero-on-fix] - id: ruff-format + - repo: https://github.com/rwxcorp/pre-commit-lua.git + rev: v1.0.0 + hooks: + - id: stylua + - id: luacheck From 3f2a56d751e95426785cd6d77baed99c9570b8e5 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 10:19:40 +0100 Subject: [PATCH 328/504] build: stylua and luacheck config files --- .luacheckrc | 8 ++++++++ .stylua.toml | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 .luacheckrc create mode 100644 .stylua.toml diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000000..f3fa0c0198 --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,8 @@ +std = luajit +cache = true +codes = true +ignore = { "432" } + +globals = { + "vim", +} diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000000..48575bec2f --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,5 @@ +column_width = 100 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferSingle" From e6bffee7843bd0eea093e47a8574ccd9102882b0 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 10:29:37 +0100 Subject: [PATCH 329/504] build: recommendations from lua extensions in vscode and fix the talon format one from wenkokke --- .gitignore | 1 + .vscode/extensions.json | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 966aec2d0b..df54c22f59 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ node_modules *.vsix /package-lock.json *.DS_Store +.luacheckcache # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 8606829da6..3994fffb83 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -7,6 +7,8 @@ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "jrieken.vscode-tree-sitter-query", - "wenkokke.tree-sitter-talon" + "wenkokke.talonfmt-vscode", + "sumneko.lua", + "JohnnyMorganz.stylua" ] } From da2b00b7deee8fc206b9981f1e22726d909fdac9 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 10:34:42 +0100 Subject: [PATCH 330/504] build: add vscode settings for lua --- .vscode/settings.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7380c4f033..04daeaa5d8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,7 @@ "editor.defaultFormatter": "AndreasArvidsson.andreas-talon" }, "[talon]": { - "editor.defaultFormatter": "wenkokke.tree-sitter-talon" + "editor.defaultFormatter": "wenkokke.talonfmt-vscode" }, "editor.defaultFormatter": "esbenp.prettier-vscode", // Turn off tsc task auto detection since we have the necessary tasks as npm scripts @@ -25,5 +25,10 @@ "files.eol": "\n", "typescript.enablePromptUseWorkspaceTsdk": true, "typescript.tsdk": "node_modules/typescript/lib", - "eslint.workingDirectories": [{ "pattern": "packages/*/" }] + "eslint.workingDirectories": [{ "pattern": "packages/*/" }], + "Lua.runtime.version": "Lua 5.1", + "Lua.diagnostics.globals": ["vim", "talon"], + "[lua]": { + "editor.defaultFormatter": "JohnnyMorganz.stylua" + } } From e73ed80d711ae93da6e71c4c62973d2522614f48 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 11:06:50 +0100 Subject: [PATCH 331/504] refactor: disable Themis tests --- .github/workflows/test.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f84ac8b772..7f756f6c62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -57,13 +57,14 @@ jobs: with: version: stable neovim: true - - name: Run neovim unit tests using themis.vim - env: - THEMIS_VIM: ${{ steps.vim.outputs.executable }} - # PROFILE_LOG: profile.txt - run: | - echo "${THEMIS_VIM}" - ./vim-themis/bin/themis ./test/all.vimspec + # XXX: delete this because it doesn't work + # - name: Run neovim unit tests using themis.vim + # env: + # THEMIS_VIM: ${{ steps.vim.outputs.executable }} + # # PROFILE_LOG: profile.txt + # run: | + # echo "${THEMIS_VIM}" + # ./vim-themis/bin/themis ./test/all.vimspec - name: Run neovim unit tests using test-harness run: pnpm -F @cursorless/test-harness testNeovim if: runner.os != 'Linux' From ba8910fb65869076d1873945bdf29c1f5c29669b Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 11:08:16 +0100 Subject: [PATCH 332/504] feat: start neovim --- .../src/launchNeovimAndRunTests.ts | 22 ++++++++++++++++++- test/all.vimspec | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts index 2ff07108a0..8e83eb07ca 100644 --- a/packages/test-harness/src/launchNeovimAndRunTests.ts +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -1,4 +1,4 @@ -// import * as cp from "child_process"; +import * as cp from "child_process"; // import * as path from "path"; // import * as os from "os"; // import { @@ -12,6 +12,11 @@ // } from "@cursorless/common"; import { getEnvironmentVariableStrict } from "@cursorless/common"; +// https://stackoverflow.com/questions/37764665/how-to-implement-sleep-function-in-typescript +function delay(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + /** * Launches neovim, instructing it to run the test runner * specified in {@link extensionTestsPath}. @@ -60,6 +65,21 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // stdio: "inherit", // }); + const nvim_process = cp.spawn(cli, [], { + // encoding: "utf-8", + // stdio: "inherit", + }); + + // do not wait for nvim to exit to avoid any blocking + nvim_process.unref(); + + console.log(`pid: ${nvim_process.pid}`); + + await delay(3000); + + nvim_process.kill("SIGTERM"); + console.log(`killed: ${nvim_process.killed}`); + // console.log("status: ", status); // console.log("signal: ", signal); // console.log("error: ", error); diff --git a/test/all.vimspec b/test/all.vimspec index 1f75b72958..9ab1b07d44 100644 --- a/test/all.vimspec +++ b/test/all.vimspec @@ -1,3 +1,5 @@ +" delete this file because it's not needed anymore + let s:suite = themis#suite('Test for my plugin') let s:assert = themis#helper('assert') From bd34a1ef83ff8690b5f7d5af1b7c187e5fb3e525 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 11:37:21 +0100 Subject: [PATCH 333/504] build: more CI stuff --- .github/workflows/test.yml | 13 +++++---- packages/test-harness/src/config/init.lua | 27 +++++++++++++++++++ .../src/launchNeovimAndRunTests.ts | 22 ++++++++++++--- 3 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 packages/test-harness/src/config/init.lua diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7f756f6c62..a7c217b88e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,11 +46,14 @@ jobs: # if: runner.os == 'Linux' # - run: pnpm --color test # if: runner.os != 'Linux' - - name: Checkout themis.vim - uses: actions/checkout@v4 - with: - repository: thinca/vim-themis - path: vim-themis + # XXX: delete this because it doesn't work + # - name: Checkout themis.vim + # uses: actions/checkout@v4 + # with: + # repository: thinca/vim-themis + # path: vim-themis + # testing + - run: pwd - name: Install Neovim uses: rhysd/action-setup-vim@v1 id: vim diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua new file mode 100644 index 0000000000..3052ddca6c --- /dev/null +++ b/packages/test-harness/src/config/init.lua @@ -0,0 +1,27 @@ +-- [[ Install `lazy.nvim` plugin manager ]] +-- https://github.com/folke/lazy.nvim +-- `:help lazy.nvim.txt` for more info +local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + 'git', + 'clone', + '--filter=blob:none', + 'https://github.com/folke/lazy.nvim.git', + '--branch=stable', -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require('lazy').setup({ + -- production cursorless.nvim + 'hands-free-vim/cursorless.nvim', + + 'vim-scripts/BufOnly.vim', +}) + +-- vim.o.runtimepath = vim.o.runtimepath .. "," .. "C:\\path\\cursorless\\dist\\cursorless.nvim" + +require('talon').setup() +require('cursorless').setup() diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts index 8e83eb07ca..9ffc958288 100644 --- a/packages/test-harness/src/launchNeovimAndRunTests.ts +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -24,6 +24,7 @@ function delay(ms: number) { * `--extensionTestsPath` */ export async function launchNeovimAndRunTests(extensionTestsPath: string) { + let code = 1; // failure try { // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath` @@ -45,6 +46,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // const [cli, ...args] = // resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath); let cli = getEnvironmentVariableStrict("APP_PATH"); + // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe cli = cli.replace("nvim.exe", "nvim-qt.exe"); // Install extension dependencies @@ -68,8 +70,21 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { const nvim_process = cp.spawn(cli, [], { // encoding: "utf-8", // stdio: "inherit", + env: { + ...process.env, + CURSORLESS_REPO_ROOT: "${workspaceFolder}", + // "NVIM_NODE_HOST_DEBUG": "1", + NVIM_NODE_LOG_FILE: + "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log", + NVIM_NODE_LOG_LEVEL: "debug", + CURSORLESS_MODE: "test", + }, }); + // C:\Users\user\AppData\Local\nvim\init.lua + // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim} + // C:\Users\user\AppData\Local\nvim-data\log + // do not wait for nvim to exit to avoid any blocking nvim_process.unref(); @@ -100,12 +115,11 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // ? undefined // : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`], // }); - const code = 0; - - console.log(`Returned from "runTests" with value: ${code}`); + code = 0; // success } catch (err) { console.error("Test run threw exception:"); console.error(err); - process.exit(1); } + console.log(`Returned code: ${code}`); + process.exit(code); } From bdf5ee16c80087ad9493219e4ae19efe71f40153 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 11:52:22 +0100 Subject: [PATCH 334/504] more ci --- .github/workflows/test.yml | 2 +- .../src/launchNeovimAndRunTests.ts | 32 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a7c217b88e..a967ef318c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,7 +52,7 @@ jobs: # with: # repository: thinca/vim-themis # path: vim-themis - # testing + # testing - D:\a\cursorless\cursorless - run: pwd - name: Install Neovim uses: rhysd/action-setup-vim@v1 diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts index 9ffc958288..0d0cfe4adb 100644 --- a/packages/test-harness/src/launchNeovimAndRunTests.ts +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -1,15 +1,16 @@ import * as cp from "child_process"; // import * as path from "path"; // import * as os from "os"; +import { copyFile } from "fs"; // import { // downloadAndUnzipVSCode, // resolveCliArgsFromVSCodeExecutablePath, // runTests, // } from "@vscode/test-electron"; -// import { -// extensionDependencies, -// getCursorlessRepoRoot, -// } from "@cursorless/common"; +import { + // extensionDependencies, + getCursorlessRepoRoot, +} from "@cursorless/common"; import { getEnvironmentVariableStrict } from "@cursorless/common"; // https://stackoverflow.com/questions/37764665/how-to-implement-sleep-function-in-typescript @@ -72,25 +73,32 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // stdio: "inherit", env: { ...process.env, - CURSORLESS_REPO_ROOT: "${workspaceFolder}", // "NVIM_NODE_HOST_DEBUG": "1", - NVIM_NODE_LOG_FILE: - "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log", + NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`, NVIM_NODE_LOG_LEVEL: "debug", CURSORLESS_MODE: "test", }, }); - // C:\Users\user\AppData\Local\nvim\init.lua - // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim} - // C:\Users\user\AppData\Local\nvim-data\log - // do not wait for nvim to exit to avoid any blocking nvim_process.unref(); console.log(`pid: ${nvim_process.pid}`); - await delay(3000); + // C:\Users\user\AppData\Local\nvim\init.lua + // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim} + // C:\Users\user\AppData\Local\nvim-data\log + copyFile( + `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`, + "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua", + (err) => { + if (err) { + console.error(err); + } + }, + ); + + await delay(5000); nvim_process.kill("SIGTERM"); console.log(`killed: ${nvim_process.killed}`); From 88c4a823182b4a6c37dc95519a835d4eb1828ae3 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 12:19:04 +0100 Subject: [PATCH 335/504] feat: ci stuff --- .github/workflows/test.yml | 7 ++- packages/test-harness/src/config/empty.lua | 0 .../src/launchNeovimAndRunTests.ts | 43 +++++++++++++------ 3 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 packages/test-harness/src/config/empty.lua diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a967ef318c..4aa8dfc739 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,14 +52,19 @@ jobs: # with: # repository: thinca/vim-themis # path: vim-themis - # testing - D:\a\cursorless\cursorless + # testing - D:\a\cursorless\cursorless (to remove) - run: pwd + - run: dir C:\Users\runneradmin\AppData\Local + - run: dir C:\Users\runneradmin\AppData\Local\nvim - name: Install Neovim uses: rhysd/action-setup-vim@v1 id: vim with: version: stable neovim: true + # testing (to remove) + - run: dir C:\Users\runneradmin\AppData\Local + - run: dir C:\Users\runneradmin\AppData\Local\nvim # XXX: delete this because it doesn't work # - name: Run neovim unit tests using themis.vim # env: diff --git a/packages/test-harness/src/config/empty.lua b/packages/test-harness/src/config/empty.lua new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts index 0d0cfe4adb..3cab3853a7 100644 --- a/packages/test-harness/src/launchNeovimAndRunTests.ts +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts @@ -68,6 +68,36 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { // stdio: "inherit", // }); + console.log(`Starting nvim for creating config directories...`); + const { status, signal, error } = cp.spawnSync( + cli, + [ + "-l", + `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\empty.lua`, + ], + { + encoding: "utf-8", + stdio: "inherit", + }, + ); + console.log(`status: ${status}`); + console.log(`signal: ${signal}`); + console.log(`error: ${error}`); + + // C:\Users\user\AppData\Local\nvim\init.lua + // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim} + // C:\Users\user\AppData\Local\nvim-data\log + copyFile( + `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`, + "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua", + (err) => { + if (err) { + console.error(err); + } + }, + ); + + console.log(`Starting nvim for tests...`); const nvim_process = cp.spawn(cli, [], { // encoding: "utf-8", // stdio: "inherit", @@ -85,19 +115,6 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) { console.log(`pid: ${nvim_process.pid}`); - // C:\Users\user\AppData\Local\nvim\init.lua - // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim} - // C:\Users\user\AppData\Local\nvim-data\log - copyFile( - `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`, - "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua", - (err) => { - if (err) { - console.error(err); - } - }, - ); - await delay(5000); nvim_process.kill("SIGTERM"); From f0e41280552b65ec6e4dfa4ad1fee5b83b5ac3f7 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 13:05:44 +0100 Subject: [PATCH 336/504] build: pre-commit ignore js for now --- .pre-commit-config.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7a4026fb5b..e0e31d446f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,6 +22,8 @@ repos: rev: v4.4.0 hooks: - id: check-added-large-files + # temp - because of already built .js and .cjs files in dist/ while testing CI + exclude: .cjs$ - id: check-case-conflict - id: check-executables-have-shebangs - id: check-merge-conflict @@ -30,17 +32,24 @@ repos: - id: detect-private-key - id: end-of-file-fixer exclude_types: [svg] - exclude: ^patches/.*\.patch$|\.scope$ + # XXX - restore that + # exclude: ^patches/.*\.patch$|\.scope$ + # temp - because of already built .js and .cjs files in dist/ while testing CI + exclude: .js$ - id: fix-byte-order-marker - id: forbid-submodules - id: mixed-line-ending + # temp - because of already built .js and .cjs files in dist/ while testing CI + exclude: .js$ - id: trailing-whitespace + # temp - because of already built .js and .cjs files in dist/ while testing CI + exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/|.js$ # Trailing whitespace breaks yaml files if you use a multiline string # with a line that has trailing white space. Many of our recorded # tests use strings with trailing white space to represent the final # document contents. For example # data/fixtures/recorded/languages/ruby/changeCondition.yml - exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/ + # exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/ - repo: local hooks: - id: eslint @@ -57,6 +66,8 @@ repos: language: system entry: pnpm exec prettier args: [--write, --list-different, --ignore-unknown] + # temp - because of already built .js and .cjs files in dist/ while testing CI + exclude: .js$ - repo: local hooks: - id: format-recorded-tests From e28d2f260e245428c63752c4de5a57a80e21cfd4 Mon Sep 17 00:00:00 2001 From: Cedric Halbronn Date: Thu, 16 May 2024 13:06:33 +0100 Subject: [PATCH 337/504] add already packaged cursorless.nvim to speed up things in CI for now --- dist/cursorless.nvim/README.md | 91 + .../assets/cursorless-snippets/.gitkeep | 0 .../lua/cursorless/cursorless.lua | 140 + dist/cursorless.nvim/lua/cursorless/init.lua | 85 + dist/cursorless.nvim/lua/cursorless/utils.lua | 64 + .../command-server/out/index.cjs | 311 + .../command-server/package.json | 138 + .../node/command-server/out/index.cjs | 311 + .../node/command-server/package.json | 138 + .../node/cursorless-neovim/out/index.cjs | 50785 ++++++++++++++++ .../node/cursorless-neovim/package.json | 42 + .../node/test-harness/out/index.cjs | 26716 ++++++++ .../node/test-harness/package.json | 48 + dist/cursorless.nvim/vim/cursorless.vim | 15 + 14 files changed, 78884 insertions(+) create mode 100644 dist/cursorless.nvim/README.md create mode 100644 dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep create mode 100644 dist/cursorless.nvim/lua/cursorless/cursorless.lua create mode 100644 dist/cursorless.nvim/lua/cursorless/init.lua create mode 100644 dist/cursorless.nvim/lua/cursorless/utils.lua create mode 100644 dist/cursorless.nvim/node/command-server/command-server/out/index.cjs create mode 100644 dist/cursorless.nvim/node/command-server/command-server/package.json create mode 100644 dist/cursorless.nvim/node/command-server/out/index.cjs create mode 100644 dist/cursorless.nvim/node/command-server/package.json create mode 100644 dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs create mode 100644 dist/cursorless.nvim/node/cursorless-neovim/package.json create mode 100644 dist/cursorless.nvim/node/test-harness/out/index.cjs create mode 100644 dist/cursorless.nvim/node/test-harness/package.json create mode 100644 dist/cursorless.nvim/vim/cursorless.vim diff --git a/dist/cursorless.nvim/README.md b/dist/cursorless.nvim/README.md new file mode 100644 index 0000000000..64c4e62306 --- /dev/null +++ b/dist/cursorless.nvim/README.md @@ -0,0 +1,91 @@ + + +- [cursorless.nvim](#cursorlessnvim) + - [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Lazy installation](#lazy-installation) + - [Manual installation](#manual-installation) + - [Configuration](#configuration) + - [neovim configuration](#neovim-configuration) + - [Talon configuration](#talon-configuration) + - [Frequently asked questions](#frequently-asked-questions) + - [nvim does not support Lazy?](#nvim-does-not-support-lazy) + - [nvim does not find the `neovim` globally installed package?](#nvim-does-not-find-the-neovim-globally-installed-package) + - [Contributors](#contributors) + + + +# cursorless.nvim + +Neovim plugin to support Cursorless + +## Prerequisites + +- neovim: https://neovim.io/ +- Talon voice: https://talonvoice.com/ +- neovim-talon: https://github.com/hands-free-vim/neovim-talon +- node/npm: https://nodejs.org/en +- neovim node package: https://github.com/neovim/node-client (globally installed with `npm`) +- talon.nvim: https://github.com/hands-free-vim/talon.nvim (optional but recommended) + +## Installation + +Ideally, you want to use a neovim plugin manager like [lazy.nvim](https://github.com/folke/lazy.nvim). + +### Lazy installation + +After the typical [lazy setup](https://github.com/folke/lazy.nvim?tab=readme-ov-file#-installation), you'll have to add the `cursorless.nvim` plugin to your `init.lua`. + +```lua +require('lazy').setup({ + 'hands-free-vim/cursorless.nvim', +}) +``` + +### Manual installation + +This method is not recommended but you can try directly cloning the plugin into your nvim data folder: + +``` +git clone https://github.com/hands-free-vim/cursorless.nvim +``` + +## Configuration + +### neovim configuration + +If you aren't using a plugin manager that automatically calls setup for you (e.g. it is needed for lazy), you will need this somewhere in your neovim config, e.g. in [init.lua](https://neovim.io/doc/user/lua-guide.html#lua-guide-config): + +```lua +require("cursorless").setup() +``` + +### Talon configuration + +Add a `.talon` file like the following anywhere in your Talon user directory (e.g. named `cursorless_neovim.talon`): + +```talon +app: neovim +- +tag(): user.cursorless +``` + +## Frequently asked questions + +### nvim does not support Lazy? + +Some Linux package managers ship with a version of `nvim` too old for Lazy. If this is the case, [install nvim](https://github.com/neovim/neovim/blob/master/INSTALL.md) via another method. + +### nvim does not find the `neovim` globally installed package? + +If you are on Linux, avoid using the snap package for `npm` as it may not be able to globally expose the neovim npm package due to sandboxing. If this is the case, install node via another method (nvm, brew, etc). + +## Contributors + +You will need to add the `vim-scripts/BufOnly.vim` neovim plugin if you want to be able to run the tests. For instance, with lazy: + +```lua +require('lazy').setup({ + 'vim-scripts/BufOnly.vim' +}) +``` diff --git a/dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep b/dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dist/cursorless.nvim/lua/cursorless/cursorless.lua b/dist/cursorless.nvim/lua/cursorless/cursorless.lua new file mode 100644 index 0000000000..7977788503 --- /dev/null +++ b/dist/cursorless.nvim/lua/cursorless/cursorless.lua @@ -0,0 +1,140 @@ +local M = {} + +-- Get the first and last visible line of the current window/buffer +-- @see https://vi.stackexchange.com/questions/28471/get-first-and-last-visible-line-from-other-buffer-than-current +-- w0/w$ are indexed from 1, similarly to what is shown in neovim +-- e.g. :lua print(dump_table(require('talon.cursorless').window_get_visible_lines()))" +-- window_get_visible_lines +-- { [1] = 28, [2] = 74 } +function M.window_get_visible_lines() + -- print('window_get_visible_lines()') + return { vim.fn.line('w0'), vim.fn.line('w$') } +end + +-- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/ +-- https://neovim.io/doc/user/api.html#nvim_win_get_cursor() +-- +-- luacheck:ignore 631 +-- e.g. run in command mode :vmap lua print(vim.inspect(require('talon.cursorless').buffer_get_selection())) +-- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air" +-- on the second line. +-- Then hit ctrl+b and it will show the selection +-- cline=2, ccol=2, vline=1, vcol=1 +-- sline=1, scol=1, eline=2, ecol=3, reverse=false +-- { 1, 1, 2, 3, false } +-- +-- if instead you select from the end of the "air" word on the second line +-- and select up to the beginning of "hello" on the first line +-- cline=1, ccol=0, vline=3, vcol=3 +-- sline=1, scol=1, eline=2, ecol=3, reverse=true +-- { 1, 1, 2, 3, true } +-- +-- if you want to directly see how it is parsed in the node extension, you can use the below: +-- e.g. run in command mode :vmap :call CursorlessLoadExtension() +-- and again use ctrl+a after selecting the text +function M.buffer_get_selection() + -- print('buffer_get_selection()') + local modeInfo = vim.api.nvim_get_mode() + local mode = modeInfo.mode + + local cursor = vim.api.nvim_win_get_cursor(0) + local cline, ccol = cursor[1], cursor[2] + local vline, vcol = vim.fn.line('v'), vim.fn.col('v') + -- print(('cline=%d, ccol=%d, vline=%d, vcol=%d'):format(cline, ccol, vcol, vcol)) + + local sline, scol + local eline, ecol + local reverse + if cline == vline then + -- if ccol <= vcol then + if ccol < vcol then + sline, scol = cline, ccol + eline, ecol = vline, vcol + scol = scol + 1 + reverse = true + else + sline, scol = vline, vcol + eline, ecol = cline, ccol + ecol = ecol + 1 + reverse = false + end + elseif cline < vline then + sline, scol = cline, ccol + eline, ecol = vline, vcol + scol = scol + 1 + reverse = true + else + sline, scol = vline, vcol + eline, ecol = cline, ccol + ecol = ecol + 1 + reverse = false + end + + if mode == 'V' or mode == 'CTRL-V' or mode == '\22' then + scol = 1 + ecol = nil + end + + -- print( + -- ('sline=%d, scol=%d, eline=%d, ecol=%d, reverse=%s'):format( + -- sline, + -- scol, + -- eline, + -- ecol, + -- tostring(reverse) + -- ) + -- ) + return { sline, scol, eline, ecol, reverse } +end + +-- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/ +-- luacheck:ignore 631 +-- e.g. run in command mode :vmap lua print(vim.inspect(require('talon.cursorless').buffer_get_selection_text())) +-- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air" +-- on the second line. +-- Then hit ctrl+b and it will show the selection +-- { "hello", "air" } +function M.buffer_get_selection_text() + -- print('buffer_get_selection_text()') + local sline, scol, eline, ecol, _ = unpack(require('talon.cursorless').buffer_get_selection()) + + local lines = vim.api.nvim_buf_get_lines(0, sline - 1, eline, 0) + if #lines == 0 then + return + end + + local startText, endText + if #lines == 1 then + startText = string.sub(lines[1], scol, ecol) + else + startText = string.sub(lines[1], scol) + endText = string.sub(lines[#lines], 1, ecol) + end + + local selection = { startText } + if #lines > 2 then + vim.list_extend(selection, vim.list_slice(lines, 2, #lines - 1)) + end + table.insert(selection, endText) + + return selection +end + +-- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278 +-- luacheck:ignore 631 +-- https://github.com/nvim-treesitter/nvim-treesitter-textobjects/blob/master/lua/nvim-treesitter/textobjects/select.lua#L114 +-- as an example if you put that in a vim buffer and do the following you can do a selection: +-- :w c:\work\tmp\test.lua +-- :so % +-- :lua select_range(5, 12, 5, 30) +-- for example it will highlight the last function name (nvim_win_set_cursor). +-- another example is :tmap lua require("talon.cursorless").select_range(4, 0, 4, 38) +-- NOTE: works for any mode (n,i,v,nt) except in t mode +function M.select_range(start_x, start_y, end_x, end_y) + vim.cmd([[normal! :noh]]) + vim.api.nvim_win_set_cursor(0, { start_x, start_y }) + vim.cmd([[normal v]]) + vim.api.nvim_win_set_cursor(0, { end_x, end_y }) +end + +return M diff --git a/dist/cursorless.nvim/lua/cursorless/init.lua b/dist/cursorless.nvim/lua/cursorless/init.lua new file mode 100644 index 0000000000..1a7fdb8071 --- /dev/null +++ b/dist/cursorless.nvim/lua/cursorless/init.lua @@ -0,0 +1,85 @@ +local function register_functions() + local path = require('cursorless.utils').cursorless_nvim_path() + -- revert to using forward slashes as works when passed to remote#host#RegisterPlugin() + if require('cursorless.utils').is_win() then + path = path:gsub('\\', '/') + end + vim.api.nvim_call_function('RegisterFunctions', { path }) +end + +-- this triggers loading the node process as well as calling one function +-- in the cursorless-neovim, command-server and neovim-registry extensions +-- in order to initialize them +local function load_extensions() + vim.api.nvim_call_function('CursorlessLoadExtension', {}) + vim.api.nvim_call_function('CommandServerLoadExtension', {}) + + -- if os.getenv('CURSORLESS_MODE') == 'test' then + -- -- make sure cursorless is loaded before starting the tests + -- -- see https://neovim.io/doc/user/various.html#%3Asleep + -- vim.cmd([[sleep 1]]) + -- vim.api.nvim_call_function('TestHarnessRun', {}) + -- end +end + +-- Cursorless command-server shortcut: CTRL+q +-- https://stackoverflow.com/questions/40504408/can-i-map-a-key-binding-to-a-function-in-vimrc +-- https://stackoverflow.com/questions/7642746/is-there-any-way-to-view-the-currently-mapped-keys-in-vim +-- luacheck:ignore 631 +-- https://stackoverflow.com/questions/3776117/what-is-the-difference-between-the-remap-noremap-nnoremap-and-vnoremap-mapping +local function configure_command_server_shortcut() + -- these mappings don't change the current mode + -- https://neovim.io/doc/user/api.html#nvim_set_keymap() + -- https://www.reddit.com/r/neovim/comments/pt92qn/mapping_cd_in_terminal_mode/ + vim.api.nvim_set_keymap( + 'i', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'n', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'c', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 'v', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) + vim.api.nvim_set_keymap( + 't', + '', + 'lua vim.fn.CommandServerRunCommand()', + { noremap = true } + ) +end + +local function setup() + vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim') + register_functions() + load_extensions() + configure_command_server_shortcut() + + -- if os.getenv('CURSORLESS_MODE') == 'test' then + -- -- make sure cursorless is loaded before starting the tests + -- -- see https://neovim.io/doc/user/various.html#%3Asleep + -- vim.cmd([[sleep 1]]) + -- vim.api.nvim_call_function('TestHarnessRun', {}) + -- end + -- print("TestHarnessRun() done") +end + +local M = { + setup = setup, +} + +return M diff --git a/dist/cursorless.nvim/lua/cursorless/utils.lua b/dist/cursorless.nvim/lua/cursorless/utils.lua new file mode 100644 index 0000000000..30210d9344 --- /dev/null +++ b/dist/cursorless.nvim/lua/cursorless/utils.lua @@ -0,0 +1,64 @@ +local M = {} + +-- :lua print(require('cursorless.utils').is_win()) +function M.is_win() + return package.config:sub(1, 1) == '\\' +end + +-- :lua print(require('cursorless.utils').get_path_separator()) +function M.get_path_separator() + if require('cursorless.utils').is_win() then + return '\\' + end + return '/' +end + +-- https://www.reddit.com/r/neovim/comments/tk1hby/get_the_path_to_the_current_lua_script_in_neovim/ +-- https://pgl.yoyo.org/luai/i/debug.getinfo +-- https://www.gammon.com.au/scripts/doc.php?lua=debug.getinfo +-- e.g. :lua print(require('cursorless.utils').cursorless_nvim_path()) +-- outputs: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim +-- NOTE: Development cursorless-neovim is installed in: C:\Users\User\AppData\Local\nvim\rplugin\node\cursorless-neovim +function M.cursorless_nvim_path() + --source_file=@C:/Users/User/AppData/Local/nvim-data/lazy/talon.nvim/lua/talon/utils.lua + local str = debug.getinfo(1, 'S').source + -- print(('source_file=%s'):format(str)) + -- skip as the file name is prefixed by "@" + str = str:sub(2) + -- print(('source_file2=%s'):format(str)) + if require('cursorless.utils').is_win() then + str = str:gsub('/', '\\') + -- print('is_win') + end + -- print(('source_file3=%s'):format(str)) + -- remove where our current file is located to get talon.nvim base path + str = str:sub(0, -1 - #'lua/cursorless/utils.lua') + -- print(('talon.nvim=%s'):format(str)) + return str +end + +-- assumes we are in terminal mode and switch to normal terminal mode +-- https://www.reddit.com/r/neovim/comments/uk3xmq/change_mode_in_lua/ +-- https://neovim.io/doc/user/api.html#nvim_feedkeys() +-- https://neovim.io/doc/user/builtin.html#feedkeys() +-- https://neovim.io/doc/user/api.html#nvim_replace_termcodes() +-- e.g. run in command mode :tmap lua mode_switch_nt() +function M.mode_switch_nt() + local key = vim.api.nvim_replace_termcodes('', true, false, true) + vim.api.nvim_feedkeys(key, 'n', false) +end + +-- assumes we are in normal terminal mode and switch to terminal mode +-- e.g. run in command mode :nmap lua mode_switch_t() +function M.mode_switch_t() + vim.api.nvim_feedkeys('i', 'n', true) +end + +-- paste what is in the clipboard +-- https://www.baeldung.com/linux/vim-paste-text +-- e.g. run in command mode :imap lua require('cursorless.utils').paste() +function M.paste() + vim.cmd([[normal! "+p]]) +end + +return M diff --git a/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs b/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs new file mode 100644 index 0000000000..e2201d93cf --- /dev/null +++ b/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs @@ -0,0 +1,311 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => entry +}); +module.exports = __toCommonJS(src_exports); + +// src/nativeIo.ts +var import_fs = require("fs"); +var import_path2 = require("path"); +var import_constants = require("constants"); + +// src/paths.ts +var import_os = require("os"); +var import_path = require("path"); +function getCommunicationDirPath() { + const info = (0, import_os.userInfo)(); + const suffix = info.uid >= 0 ? `-${info.uid}` : ""; + return (0, import_path.join)((0, import_os.tmpdir)(), `neovim-command-server${suffix}`); +} +function getSignalDirPath() { + return (0, import_path.join)(getCommunicationDirPath(), "signals"); +} +function getRequestPath() { + return (0, import_path.join)(getCommunicationDirPath(), "request.json"); +} +function getResponsePath() { + return (0, import_path.join)(getCommunicationDirPath(), "response.json"); +} + +// src/nativeIo.ts +var import_os2 = require("os"); +var import_promises = require("fs/promises"); + +// src/constants.ts +var NEOVIM_COMMAND_TIMEOUT_MS = 3e3; + +// src/nativeIo.ts +var InboundSignal = class { + constructor(path) { + this.path = path; + } + /** + * Gets the current version of the signal. This version string changes every + * time the signal is emitted, and can be used to detect whether signal has + * been emitted between two timepoints. + * @returns The current signal version or null if the signal file could not be + * found + */ + async getVersion() { + try { + return (await (0, import_promises.stat)(this.path)).mtimeMs.toString(); + } catch (err) { + if (err.code !== "ENOENT") { + throw err; + } + return null; + } + } +}; +var NativeIo = class { + constructor() { + this.responseFile = null; + } + async initialize() { + const communicationDirPath = getCommunicationDirPath(); + console.warn(`Creating communication dir ${communicationDirPath}`); + (0, import_fs.mkdirSync)(communicationDirPath, { recursive: true, mode: 504 }); + const stats = (0, import_fs.lstatSync)(communicationDirPath); + const info = (0, import_os2.userInfo)(); + if (!stats.isDirectory() || stats.isSymbolicLink() || stats.mode & import_constants.S_IWOTH || // On Windows, uid < 0, so we don't worry about it for simplicity + info.uid >= 0 && stats.uid !== info.uid) { + throw new Error( + `Refusing to proceed because of invalid communication dir ${communicationDirPath}` + ); + } + } + async prepareResponse() { + if (this.responseFile) { + throw new Error("response is already locked"); + } + this.responseFile = await (0, import_promises.open)(getResponsePath(), "wx"); + } + async closeResponse() { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.close(); + this.responseFile = null; + } + /** + * Reads the JSON-encoded request from the request file, unlinking the file + * after reading. + * @returns A promise that resolves to a Response object + */ + async readRequest() { + const requestPath = getRequestPath(); + const stats = await (0, import_promises.stat)(requestPath); + const request = JSON.parse(await (0, import_promises.readFile)(requestPath, "utf-8")); + if (Math.abs(stats.mtimeMs - (/* @__PURE__ */ new Date()).getTime()) > NEOVIM_COMMAND_TIMEOUT_MS) { + throw new Error( + "Request file is older than timeout; refusing to execute command" + ); + } + return request; + } + /** + * Writes the response to the response file as JSON. + * @param file The file to write to + * @param response The response object to JSON-encode and write to disk + */ + async writeResponse(response) { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.write(`${JSON.stringify(response)} +`); + } + getInboundSignal(name) { + const signalDir = getSignalDirPath(); + const path = (0, import_path2.join)(signalDir, name); + return new InboundSignal(path); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts +var import_node_events = require("node:events"); +var NeovimRegistry = class { + constructor() { + this.apis = /* @__PURE__ */ new Map(); + this.commands = /* @__PURE__ */ new Map(); + this.eventEmitter = new import_node_events.EventEmitter(); + } + registerExtensionApi(extensionId, api) { + this.apis.set(extensionId, api); + } + getExtensionApi(extensionId) { + return this.apis.get(extensionId); + } + registerCommand(commandId, callback) { + this.commands.set(commandId, callback); + } + async executeCommand(commandId, ...rest) { + return await this.commands.get(commandId)(...rest); + } + onEvent(eventName, listener) { + return this.eventEmitter.on(eventName, listener); + } + emitEvent(eventName, ...args) { + return this.eventEmitter.emit(eventName, ...args); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/index.ts +function getNeovimRegistry() { + if (global._neovimRegistry == null) { + global._neovimRegistry = new NeovimRegistry(); + } + return global._neovimRegistry; +} + +// src/commandRunner.ts +var CommandRunner = class { + constructor(io) { + this.io = io; + this.reloadConfiguration = this.reloadConfiguration.bind(this); + this.runCommand = this.runCommand.bind(this); + this.reloadConfiguration(); + } + reloadConfiguration() { + } + /** + * Reads a command from the request file and executes it. Writes information + * about command execution to the result of the command to the response file, + * If requested, will wait for command to finish, and can also write command + * output to response file. See also documentation for Request / Response + * types. + */ + async runCommand() { + console.warn("------------------------------------------------------------------------------"); + await this.io.prepareResponse(); + let request; + try { + request = await this.io.readRequest(); + } catch (err) { + await this.io.closeResponse(); + throw err; + } + const { commandId, args, uuid, returnCommandOutput, waitForFinish } = request; + const warnings = []; + try { + if (!commandId.match(this.allowRegex)) { + throw new Error("Command not in allowList"); + } + if (this.denyRegex != null && commandId.match(this.denyRegex)) { + throw new Error("Command in denyList"); + } + const commandPromise = getNeovimRegistry().executeCommand(commandId, ...args); + let commandReturnValue = null; + if (returnCommandOutput) { + commandReturnValue = await commandPromise; + } else if (waitForFinish) { + await commandPromise; + } + await this.io.writeResponse({ + error: null, + uuid, + returnValue: commandReturnValue, + warnings + }); + } catch (err) { + await this.io.writeResponse({ + error: err.message, + uuid, + warnings + }); + } + await this.io.closeResponse(); + } +}; + +// src/singletons/commandRunner.singleton.ts +var cmdRunner_; +function injectCommandRunner(cmdRunner) { + cmdRunner_ = cmdRunner; +} +function commandRunner() { + if (cmdRunner_ == null) { + throw Error("Tried to access CommandRunner before it was injected"); + } + return cmdRunner_; +} + +// src/extension.ts +async function activate() { + const io = new NativeIo(); + await io.initialize(); + const commandRunner2 = new CommandRunner(io); + let focusedElementType; + injectCommandRunner(commandRunner2); + return { + /** + * The type of the focused element in vscode at the moment of the command being executed. + */ + getFocusedElementType: () => focusedElementType, + /** + * These signals can be used as a form of IPC to indicate that an event has + * occurred. + */ + signals: { + /** + * This signal is emitted by the voice engine to indicate that a phrase has + * just begun execution. + */ + prePhrase: io.getInboundSignal("prePhrase") + } + }; +} + +// src/index.ts +function entry(plugin) { + plugin.setOptions({ dev: false }); + plugin.registerFunction("CommandServerTest", () => test(plugin), { + sync: false + }); + plugin.registerFunction( + "CommandServerLoadExtension", + async () => await loadExtension(plugin), + { sync: false } + ); + plugin.registerFunction( + "CommandServerRunCommand", + () => runCommand(), + { sync: false } + ); +} +function test(plugin) { + const currentDate = /* @__PURE__ */ new Date(); + const currentDateStr = currentDate.toLocaleString(); + console.warn("test(): " + currentDateStr); +} +async function loadExtension(plugin) { + console.warn("loadExtension(command-server): start"); + await activate(); + console.warn("loadExtension(command-server): done"); +} +async function runCommand() { + console.warn("runCommand(command-server): start"); + commandRunner().runCommand(); + console.warn("runCommand(command-server): done"); +} +//# sourceMappingURL=index.cjs.map diff --git a/dist/cursorless.nvim/node/command-server/command-server/package.json b/dist/cursorless.nvim/node/command-server/command-server/package.json new file mode 100644 index 0000000000..39b8379d10 --- /dev/null +++ b/dist/cursorless.nvim/node/command-server/command-server/package.json @@ -0,0 +1,138 @@ +{ + "name": "command-server", + "displayName": "Command server", + "description": "Exposes a file-based RPC API for running VSCode commands", + "publisher": "pokey", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/pokey/command-server" + }, + "version": "0.9.1", + "categories": [ + "Other" + ], + "activationEvents": [ + "*" + ], + "main": "./out/index.cjs", + "private": true, + "extensionKind": [ + "ui" + ], + "capabilities": { + "untrustedWorkspaces": { + "supported": "limited", + "description": "Untrusted workspaces can't override allowList / denyList", + "restrictedConfigurations": [ + "allowList", + "denyList" + ] + } + }, + "contributes": { + "commands": [ + { + "command": "command-server.runCommand", + "title": "Read command description from a file and execute the command" + }, + { + "command": "command-server.getFocusedElementType", + "title": "Returns the type of the currently focused element in vscode" + } + ], + "keybindings": [ + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "terminalFocus", + "args": "terminal" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "terminalFocus", + "args": "terminal" + } + ], + "configuration": { + "title": "Command server", + "properties": { + "command-server.allowList": { + "type": "array", + "default": [ + "*" + ], + "description": "Commands to allow. Supports simple glob syntax" + }, + "command-server.denyList": { + "type": "array", + "default": [], + "description": "Commands to deny. Supports simple glob syntax" + }, + "command-server.backgroundWindowProtection": { + "type": "boolean", + "default": false, + "description": "Whether to enable protection against background windows executing a command" + } + } + } + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "devDependencies": { + "@types/glob": "^7.1.3", + "@types/mocha": "8.0.4", + "@types/node": "^18.19.22", + "@types/rimraf": "^3.0.0", + "@types/vscode": "^1.53.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", + "esbuild": "^0.20.2", + "eslint": "^7.15.0", + "glob": "^7.1.6", + "mocha": "8.1.3", + "typescript": "^4.1.2", + "vscode-test": "^1.4.1", + "neovim": "^5.0.1" + }, + "dependencies": { + "@cursorless/neovim-registry": "link:..\\cursorless_fork\\packages\\neovim-registry", + "minimatch": "^3.0.4", + "rimraf": "^3.0.2" + } +} diff --git a/dist/cursorless.nvim/node/command-server/out/index.cjs b/dist/cursorless.nvim/node/command-server/out/index.cjs new file mode 100644 index 0000000000..e2201d93cf --- /dev/null +++ b/dist/cursorless.nvim/node/command-server/out/index.cjs @@ -0,0 +1,311 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => entry +}); +module.exports = __toCommonJS(src_exports); + +// src/nativeIo.ts +var import_fs = require("fs"); +var import_path2 = require("path"); +var import_constants = require("constants"); + +// src/paths.ts +var import_os = require("os"); +var import_path = require("path"); +function getCommunicationDirPath() { + const info = (0, import_os.userInfo)(); + const suffix = info.uid >= 0 ? `-${info.uid}` : ""; + return (0, import_path.join)((0, import_os.tmpdir)(), `neovim-command-server${suffix}`); +} +function getSignalDirPath() { + return (0, import_path.join)(getCommunicationDirPath(), "signals"); +} +function getRequestPath() { + return (0, import_path.join)(getCommunicationDirPath(), "request.json"); +} +function getResponsePath() { + return (0, import_path.join)(getCommunicationDirPath(), "response.json"); +} + +// src/nativeIo.ts +var import_os2 = require("os"); +var import_promises = require("fs/promises"); + +// src/constants.ts +var NEOVIM_COMMAND_TIMEOUT_MS = 3e3; + +// src/nativeIo.ts +var InboundSignal = class { + constructor(path) { + this.path = path; + } + /** + * Gets the current version of the signal. This version string changes every + * time the signal is emitted, and can be used to detect whether signal has + * been emitted between two timepoints. + * @returns The current signal version or null if the signal file could not be + * found + */ + async getVersion() { + try { + return (await (0, import_promises.stat)(this.path)).mtimeMs.toString(); + } catch (err) { + if (err.code !== "ENOENT") { + throw err; + } + return null; + } + } +}; +var NativeIo = class { + constructor() { + this.responseFile = null; + } + async initialize() { + const communicationDirPath = getCommunicationDirPath(); + console.warn(`Creating communication dir ${communicationDirPath}`); + (0, import_fs.mkdirSync)(communicationDirPath, { recursive: true, mode: 504 }); + const stats = (0, import_fs.lstatSync)(communicationDirPath); + const info = (0, import_os2.userInfo)(); + if (!stats.isDirectory() || stats.isSymbolicLink() || stats.mode & import_constants.S_IWOTH || // On Windows, uid < 0, so we don't worry about it for simplicity + info.uid >= 0 && stats.uid !== info.uid) { + throw new Error( + `Refusing to proceed because of invalid communication dir ${communicationDirPath}` + ); + } + } + async prepareResponse() { + if (this.responseFile) { + throw new Error("response is already locked"); + } + this.responseFile = await (0, import_promises.open)(getResponsePath(), "wx"); + } + async closeResponse() { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.close(); + this.responseFile = null; + } + /** + * Reads the JSON-encoded request from the request file, unlinking the file + * after reading. + * @returns A promise that resolves to a Response object + */ + async readRequest() { + const requestPath = getRequestPath(); + const stats = await (0, import_promises.stat)(requestPath); + const request = JSON.parse(await (0, import_promises.readFile)(requestPath, "utf-8")); + if (Math.abs(stats.mtimeMs - (/* @__PURE__ */ new Date()).getTime()) > NEOVIM_COMMAND_TIMEOUT_MS) { + throw new Error( + "Request file is older than timeout; refusing to execute command" + ); + } + return request; + } + /** + * Writes the response to the response file as JSON. + * @param file The file to write to + * @param response The response object to JSON-encode and write to disk + */ + async writeResponse(response) { + if (!this.responseFile) { + throw new Error("response is not locked"); + } + await this.responseFile.write(`${JSON.stringify(response)} +`); + } + getInboundSignal(name) { + const signalDir = getSignalDirPath(); + const path = (0, import_path2.join)(signalDir, name); + return new InboundSignal(path); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts +var import_node_events = require("node:events"); +var NeovimRegistry = class { + constructor() { + this.apis = /* @__PURE__ */ new Map(); + this.commands = /* @__PURE__ */ new Map(); + this.eventEmitter = new import_node_events.EventEmitter(); + } + registerExtensionApi(extensionId, api) { + this.apis.set(extensionId, api); + } + getExtensionApi(extensionId) { + return this.apis.get(extensionId); + } + registerCommand(commandId, callback) { + this.commands.set(commandId, callback); + } + async executeCommand(commandId, ...rest) { + return await this.commands.get(commandId)(...rest); + } + onEvent(eventName, listener) { + return this.eventEmitter.on(eventName, listener); + } + emitEvent(eventName, ...args) { + return this.eventEmitter.emit(eventName, ...args); + } +}; + +// ../cursorless_fork/packages/neovim-registry/src/index.ts +function getNeovimRegistry() { + if (global._neovimRegistry == null) { + global._neovimRegistry = new NeovimRegistry(); + } + return global._neovimRegistry; +} + +// src/commandRunner.ts +var CommandRunner = class { + constructor(io) { + this.io = io; + this.reloadConfiguration = this.reloadConfiguration.bind(this); + this.runCommand = this.runCommand.bind(this); + this.reloadConfiguration(); + } + reloadConfiguration() { + } + /** + * Reads a command from the request file and executes it. Writes information + * about command execution to the result of the command to the response file, + * If requested, will wait for command to finish, and can also write command + * output to response file. See also documentation for Request / Response + * types. + */ + async runCommand() { + console.warn("------------------------------------------------------------------------------"); + await this.io.prepareResponse(); + let request; + try { + request = await this.io.readRequest(); + } catch (err) { + await this.io.closeResponse(); + throw err; + } + const { commandId, args, uuid, returnCommandOutput, waitForFinish } = request; + const warnings = []; + try { + if (!commandId.match(this.allowRegex)) { + throw new Error("Command not in allowList"); + } + if (this.denyRegex != null && commandId.match(this.denyRegex)) { + throw new Error("Command in denyList"); + } + const commandPromise = getNeovimRegistry().executeCommand(commandId, ...args); + let commandReturnValue = null; + if (returnCommandOutput) { + commandReturnValue = await commandPromise; + } else if (waitForFinish) { + await commandPromise; + } + await this.io.writeResponse({ + error: null, + uuid, + returnValue: commandReturnValue, + warnings + }); + } catch (err) { + await this.io.writeResponse({ + error: err.message, + uuid, + warnings + }); + } + await this.io.closeResponse(); + } +}; + +// src/singletons/commandRunner.singleton.ts +var cmdRunner_; +function injectCommandRunner(cmdRunner) { + cmdRunner_ = cmdRunner; +} +function commandRunner() { + if (cmdRunner_ == null) { + throw Error("Tried to access CommandRunner before it was injected"); + } + return cmdRunner_; +} + +// src/extension.ts +async function activate() { + const io = new NativeIo(); + await io.initialize(); + const commandRunner2 = new CommandRunner(io); + let focusedElementType; + injectCommandRunner(commandRunner2); + return { + /** + * The type of the focused element in vscode at the moment of the command being executed. + */ + getFocusedElementType: () => focusedElementType, + /** + * These signals can be used as a form of IPC to indicate that an event has + * occurred. + */ + signals: { + /** + * This signal is emitted by the voice engine to indicate that a phrase has + * just begun execution. + */ + prePhrase: io.getInboundSignal("prePhrase") + } + }; +} + +// src/index.ts +function entry(plugin) { + plugin.setOptions({ dev: false }); + plugin.registerFunction("CommandServerTest", () => test(plugin), { + sync: false + }); + plugin.registerFunction( + "CommandServerLoadExtension", + async () => await loadExtension(plugin), + { sync: false } + ); + plugin.registerFunction( + "CommandServerRunCommand", + () => runCommand(), + { sync: false } + ); +} +function test(plugin) { + const currentDate = /* @__PURE__ */ new Date(); + const currentDateStr = currentDate.toLocaleString(); + console.warn("test(): " + currentDateStr); +} +async function loadExtension(plugin) { + console.warn("loadExtension(command-server): start"); + await activate(); + console.warn("loadExtension(command-server): done"); +} +async function runCommand() { + console.warn("runCommand(command-server): start"); + commandRunner().runCommand(); + console.warn("runCommand(command-server): done"); +} +//# sourceMappingURL=index.cjs.map diff --git a/dist/cursorless.nvim/node/command-server/package.json b/dist/cursorless.nvim/node/command-server/package.json new file mode 100644 index 0000000000..39b8379d10 --- /dev/null +++ b/dist/cursorless.nvim/node/command-server/package.json @@ -0,0 +1,138 @@ +{ + "name": "command-server", + "displayName": "Command server", + "description": "Exposes a file-based RPC API for running VSCode commands", + "publisher": "pokey", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/pokey/command-server" + }, + "version": "0.9.1", + "categories": [ + "Other" + ], + "activationEvents": [ + "*" + ], + "main": "./out/index.cjs", + "private": true, + "extensionKind": [ + "ui" + ], + "capabilities": { + "untrustedWorkspaces": { + "supported": "limited", + "description": "Untrusted workspaces can't override allowList / denyList", + "restrictedConfigurations": [ + "allowList", + "denyList" + ] + } + }, + "contributes": { + "commands": [ + { + "command": "command-server.runCommand", + "title": "Read command description from a file and execute the command" + }, + { + "command": "command-server.getFocusedElementType", + "title": "Returns the type of the currently focused element in vscode" + } + ], + "keybindings": [ + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "editorTextFocus", + "args": "textEditor" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+f17", + "mac": "cmd+shift+f17", + "when": "terminalFocus", + "args": "terminal" + }, + { + "command": "command-server.runCommand", + "key": "ctrl+shift+alt+p", + "mac": "cmd+shift+alt+p", + "when": "terminalFocus", + "args": "terminal" + } + ], + "configuration": { + "title": "Command server", + "properties": { + "command-server.allowList": { + "type": "array", + "default": [ + "*" + ], + "description": "Commands to allow. Supports simple glob syntax" + }, + "command-server.denyList": { + "type": "array", + "default": [], + "description": "Commands to deny. Supports simple glob syntax" + }, + "command-server.backgroundWindowProtection": { + "type": "boolean", + "default": false, + "description": "Whether to enable protection against background windows executing a command" + } + } + } + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile:tsc": "tsc --build", + "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node", + "compile": "pnpm compile:tsc && pnpm compile:esbuild", + "watch:tsc": "pnpm compile:tsc --watch", + "watch:esbuild": "pnpm compile:esbuild --watch", + "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'", + "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build" + }, + "devDependencies": { + "@types/glob": "^7.1.3", + "@types/mocha": "8.0.4", + "@types/node": "^18.19.22", + "@types/rimraf": "^3.0.0", + "@types/vscode": "^1.53.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", + "esbuild": "^0.20.2", + "eslint": "^7.15.0", + "glob": "^7.1.6", + "mocha": "8.1.3", + "typescript": "^4.1.2", + "vscode-test": "^1.4.1", + "neovim": "^5.0.1" + }, + "dependencies": { + "@cursorless/neovim-registry": "link:..\\cursorless_fork\\packages\\neovim-registry", + "minimatch": "^3.0.4", + "rimraf": "^3.0.2" + } +} diff --git a/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs b/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs new file mode 100644 index 0000000000..c641960dee --- /dev/null +++ b/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs @@ -0,0 +1,50785 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// ../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js +var require_lodash = __commonJS({ + "../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"(exports2, module2) { + (function() { + var undefined2; + var VERSION = "4.17.21"; + var LARGE_ARRAY_SIZE = 200; + var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + var MAX_MEMOIZE_SIZE = 500; + var PLACEHOLDER = "__lodash_placeholder__"; + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; + var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; + var HOT_COUNT = 800, HOT_SPAN = 16; + var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; + var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; + var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + var wrapFlags = [ + ["ary", WRAP_ARY_FLAG], + ["bind", WRAP_BIND_FLAG], + ["bindKey", WRAP_BIND_KEY_FLAG], + ["curry", WRAP_CURRY_FLAG], + ["curryRight", WRAP_CURRY_RIGHT_FLAG], + ["flip", WRAP_FLIP_FLAG], + ["partial", WRAP_PARTIAL_FLAG], + ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], + ["rearg", WRAP_REARG_FLAG] + ]; + var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); + var reTrimStart = /^\s+/; + var reWhitespace = /\s/; + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; + var reEscapeChar = /\\(\\)?/g; + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + var reFlags = /\w*$/; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + var reNoMatch = /($^)/; + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; + var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; + var reApos = RegExp(rsApos, "g"); + var reComboMark = RegExp(rsCombo, "g"); + var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); + var reUnicodeWord = RegExp([ + rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", + rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", + rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, + rsUpper + "+" + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join("|"), "g"); + var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + var contextProps = [ + "Array", + "Buffer", + "DataView", + "Date", + "Error", + "Float32Array", + "Float64Array", + "Function", + "Int8Array", + "Int16Array", + "Int32Array", + "Map", + "Math", + "Object", + "Promise", + "RegExp", + "Set", + "String", + "Symbol", + "TypeError", + "Uint8Array", + "Uint8ClampedArray", + "Uint16Array", + "Uint32Array", + "WeakMap", + "_", + "clearTimeout", + "isFinite", + "parseInt", + "setTimeout" + ]; + var templateCounter = -1; + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + var deburredLetters = { + // Latin-1 Supplement block. + "\xC0": "A", + "\xC1": "A", + "\xC2": "A", + "\xC3": "A", + "\xC4": "A", + "\xC5": "A", + "\xE0": "a", + "\xE1": "a", + "\xE2": "a", + "\xE3": "a", + "\xE4": "a", + "\xE5": "a", + "\xC7": "C", + "\xE7": "c", + "\xD0": "D", + "\xF0": "d", + "\xC8": "E", + "\xC9": "E", + "\xCA": "E", + "\xCB": "E", + "\xE8": "e", + "\xE9": "e", + "\xEA": "e", + "\xEB": "e", + "\xCC": "I", + "\xCD": "I", + "\xCE": "I", + "\xCF": "I", + "\xEC": "i", + "\xED": "i", + "\xEE": "i", + "\xEF": "i", + "\xD1": "N", + "\xF1": "n", + "\xD2": "O", + "\xD3": "O", + "\xD4": "O", + "\xD5": "O", + "\xD6": "O", + "\xD8": "O", + "\xF2": "o", + "\xF3": "o", + "\xF4": "o", + "\xF5": "o", + "\xF6": "o", + "\xF8": "o", + "\xD9": "U", + "\xDA": "U", + "\xDB": "U", + "\xDC": "U", + "\xF9": "u", + "\xFA": "u", + "\xFB": "u", + "\xFC": "u", + "\xDD": "Y", + "\xFD": "y", + "\xFF": "y", + "\xC6": "Ae", + "\xE6": "ae", + "\xDE": "Th", + "\xFE": "th", + "\xDF": "ss", + // Latin Extended-A block. + "\u0100": "A", + "\u0102": "A", + "\u0104": "A", + "\u0101": "a", + "\u0103": "a", + "\u0105": "a", + "\u0106": "C", + "\u0108": "C", + "\u010A": "C", + "\u010C": "C", + "\u0107": "c", + "\u0109": "c", + "\u010B": "c", + "\u010D": "c", + "\u010E": "D", + "\u0110": "D", + "\u010F": "d", + "\u0111": "d", + "\u0112": "E", + "\u0114": "E", + "\u0116": "E", + "\u0118": "E", + "\u011A": "E", + "\u0113": "e", + "\u0115": "e", + "\u0117": "e", + "\u0119": "e", + "\u011B": "e", + "\u011C": "G", + "\u011E": "G", + "\u0120": "G", + "\u0122": "G", + "\u011D": "g", + "\u011F": "g", + "\u0121": "g", + "\u0123": "g", + "\u0124": "H", + "\u0126": "H", + "\u0125": "h", + "\u0127": "h", + "\u0128": "I", + "\u012A": "I", + "\u012C": "I", + "\u012E": "I", + "\u0130": "I", + "\u0129": "i", + "\u012B": "i", + "\u012D": "i", + "\u012F": "i", + "\u0131": "i", + "\u0134": "J", + "\u0135": "j", + "\u0136": "K", + "\u0137": "k", + "\u0138": "k", + "\u0139": "L", + "\u013B": "L", + "\u013D": "L", + "\u013F": "L", + "\u0141": "L", + "\u013A": "l", + "\u013C": "l", + "\u013E": "l", + "\u0140": "l", + "\u0142": "l", + "\u0143": "N", + "\u0145": "N", + "\u0147": "N", + "\u014A": "N", + "\u0144": "n", + "\u0146": "n", + "\u0148": "n", + "\u014B": "n", + "\u014C": "O", + "\u014E": "O", + "\u0150": "O", + "\u014D": "o", + "\u014F": "o", + "\u0151": "o", + "\u0154": "R", + "\u0156": "R", + "\u0158": "R", + "\u0155": "r", + "\u0157": "r", + "\u0159": "r", + "\u015A": "S", + "\u015C": "S", + "\u015E": "S", + "\u0160": "S", + "\u015B": "s", + "\u015D": "s", + "\u015F": "s", + "\u0161": "s", + "\u0162": "T", + "\u0164": "T", + "\u0166": "T", + "\u0163": "t", + "\u0165": "t", + "\u0167": "t", + "\u0168": "U", + "\u016A": "U", + "\u016C": "U", + "\u016E": "U", + "\u0170": "U", + "\u0172": "U", + "\u0169": "u", + "\u016B": "u", + "\u016D": "u", + "\u016F": "u", + "\u0171": "u", + "\u0173": "u", + "\u0174": "W", + "\u0175": "w", + "\u0176": "Y", + "\u0177": "y", + "\u0178": "Y", + "\u0179": "Z", + "\u017B": "Z", + "\u017D": "Z", + "\u017A": "z", + "\u017C": "z", + "\u017E": "z", + "\u0132": "IJ", + "\u0133": "ij", + "\u0152": "Oe", + "\u0153": "oe", + "\u0149": "'n", + "\u017F": "s" + }; + var htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + var htmlUnescapes = { + "&": "&", + "<": "<", + ">": ">", + """: '"', + "'": "'" + }; + var stringEscapes = { + "\\": "\\", + "'": "'", + "\n": "n", + "\r": "r", + "\u2028": "u2028", + "\u2029": "u2029" + }; + var freeParseFloat = parseFloat, freeParseInt = parseInt; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2; + var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; + var moduleExports = freeModule && freeModule.exports === freeExports; + var freeProcess = moduleExports && freeGlobal.process; + var nodeUtil = function() { + try { + var types2 = freeModule && freeModule.require && freeModule.require("util").types; + if (types2) { + return types2; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } + }(); + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + function arrayEvery(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + function arrayPush(array, values2) { + var index = -1, length = values2.length, offset = array.length; + while (++index < length) { + array[offset + index] = values2[index]; + } + return array; + } + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + var asciiSize = baseProperty("length"); + function asciiToArray(string2) { + return string2.split(""); + } + function asciiWords(string2) { + return string2.match(reAsciiWord) || []; + } + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection2) { + if (predicate(value, key, collection2)) { + result = key; + return false; + } + }); + return result; + } + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + function baseIsNaN(value) { + return value !== value; + } + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? baseSum(array, iteratee) / length : NAN; + } + function baseProperty(key) { + return function(object) { + return object == null ? undefined2 : object[key]; + }; + } + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined2 : object[key]; + }; + } + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection2) { + accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); + }); + return accumulator; + } + function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + function baseSum(array, iteratee) { + var result, index = -1, length = array.length; + while (++index < length) { + var current2 = iteratee(array[index]); + if (current2 !== undefined2) { + result = result === undefined2 ? current2 : result + current2; + } + } + return result; + } + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + function baseTrim(string2) { + return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2; + } + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + function cacheHas(cache, key) { + return cache.has(key); + } + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, length = strSymbols.length; + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function countHolders(array, placeholder) { + var length = array.length, result = 0; + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + var deburrLetter = basePropertyOf(deburredLetters); + var escapeHtmlChar = basePropertyOf(htmlEscapes); + function escapeStringChar(chr) { + return "\\" + stringEscapes[chr]; + } + function getValue(object, key) { + return object == null ? undefined2 : object[key]; + } + function hasUnicode(string2) { + return reHasUnicode.test(string2); + } + function hasUnicodeWord(string2) { + return reHasUnicodeWord.test(string2); + } + function iteratorToArray(iterator) { + var data, result = []; + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + function mapToArray(map4) { + var index = -1, result = Array(map4.size); + map4.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + function replaceHolders(array, placeholder) { + var index = -1, length = array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + function setToArray(set3) { + var index = -1, result = Array(set3.size); + set3.forEach(function(value) { + result[++index] = value; + }); + return result; + } + function setToPairs(set3) { + var index = -1, result = Array(set3.size); + set3.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + function stringSize(string2) { + return hasUnicode(string2) ? unicodeSize(string2) : asciiSize(string2); + } + function stringToArray(string2) { + return hasUnicode(string2) ? unicodeToArray(string2) : asciiToArray(string2); + } + function trimmedEndIndex(string2) { + var index = string2.length; + while (index-- && reWhitespace.test(string2.charAt(index))) { + } + return index; + } + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + function unicodeSize(string2) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string2)) { + ++result; + } + return result; + } + function unicodeToArray(string2) { + return string2.match(reUnicode) || []; + } + function unicodeWords(string2) { + return string2.match(reUnicodeWord) || []; + } + var runInContext = function runInContext2(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; + var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; + var coreJsData = context["__core-js_shared__"]; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var idCounter = 0; + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + var nativeObjectToString = objectProto.toString; + var objectCtorString2 = funcToString.call(Object2); + var oldDash = root._; + var reIsNative = RegExp2( + "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; + var defineProperty = function() { + try { + var func = getNative(Object2, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + }(); + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; + var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); + var metaMap = WeakMap2 && new WeakMap2(); + var realNames = {}; + var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); + var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, "__wrapped__")) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + var baseCreate = /* @__PURE__ */ function() { + function object() { + } + return function(proto) { + if (!isObject3(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result2 = new object(); + object.prototype = undefined2; + return result2; + }; + }(); + function baseLodash() { + } + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined2; + } + lodash.templateSettings = { + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "escape": reEscape, + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "evaluate": reEvaluate, + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "interpolate": reInterpolate, + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + "variable": "", + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + "imports": { + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + "_": lodash + } + }; + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + function lazyClone() { + var result2 = new LazyWrapper(this.__wrapped__); + result2.__actions__ = copyArray(this.__actions__); + result2.__dir__ = this.__dir__; + result2.__filtered__ = this.__filtered__; + result2.__iteratees__ = copyArray(this.__iteratees__); + result2.__takeCount__ = this.__takeCount__; + result2.__views__ = copyArray(this.__views__); + return result2; + } + function lazyReverse() { + if (this.__filtered__) { + var result2 = new LazyWrapper(this); + result2.__dir__ = -1; + result2.__filtered__ = true; + } else { + result2 = this.clone(); + result2.__dir__ *= -1; + } + return result2; + } + function lazyValue() { + var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); + if (!isArr || !isRight && arrLength == length && takeCount == length) { + return baseWrapperValue(array, this.__actions__); + } + var result2 = []; + outer: + while (length-- && resIndex < takeCount) { + index += dir; + var iterIndex = -1, value = array[index]; + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value); + if (type2 == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type2 == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result2[resIndex++] = value; + } + return result2; + } + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + function hashDelete(key) { + var result2 = this.has(key) && delete this.__data__[key]; + this.size -= result2 ? 1 : 0; + return result2; + } + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result2 = data[key]; + return result2 === HASH_UNDEFINED ? undefined2 : result2; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined2; + } + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); + } + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? undefined2 : data[index][1]; + } + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map2 || ListCache)(), + "string": new Hash() + }; + } + function mapCacheDelete(key) { + var result2 = getMapData(this, key)["delete"](key); + this.size -= result2 ? 1 : 0; + return result2; + } + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + function mapCacheSet(key, value) { + var data = getMapData(this, key), size2 = data.size; + data.set(key, value); + this.size += data.size == size2 ? 0 : 1; + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function SetCache(values3) { + var index = -1, length = values3 == null ? 0 : values3.length; + this.__data__ = new MapCache(); + while (++index < length) { + this.add(values3[index]); + } + } + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + function setCacheHas(value) { + return this.__data__.has(value); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + function Stack2(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + function stackDelete(key) { + var data = this.__data__, result2 = data["delete"](key); + this.size = data.size; + return result2; + } + function stackGet(key) { + return this.__data__.get(key); + } + function stackHas(key) { + return this.__data__.has(key); + } + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs2 = data.__data__; + if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { + pairs2.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs2); + } + data.set(key, value); + this.size = data.size; + return this; + } + Stack2.prototype.clear = stackClear; + Stack2.prototype["delete"] = stackDelete; + Stack2.prototype.get = stackGet; + Stack2.prototype.has = stackHas; + Stack2.prototype.set = stackSet; + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length)))) { + result2.push(key); + } + } + return result2; + } + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined2; + } + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + function assignMergeValue(object, key, value) { + if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + function baseAggregator(collection, setter, iteratee2, accumulator) { + baseEach(collection, function(value, key, collection2) { + setter(accumulator, value, iteratee2(value), collection2); + }); + return accumulator; + } + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } + } + function baseAt(object, paths) { + var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; + while (++index < length) { + result2[index] = skip ? undefined2 : get3(object, paths[index]); + } + return result2; + } + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined2) { + number = number <= upper ? number : upper; + } + if (lower !== undefined2) { + number = number >= lower ? number : lower; + } + } + return number; + } + function baseClone(value, bitmask, customizer, key, object, stack) { + var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { + result2 = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result2 !== undefined2) { + return result2; + } + if (!isObject3(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result2 = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result2); + } + } else { + var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || isFunc && !object) { + result2 = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result2 = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack2()); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result2); + if (isSet2(value)) { + value.forEach(function(subValue) { + result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap2(value)) { + value.forEach(function(subValue, key2) { + result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + } + var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; + var props = isArr ? undefined2 : keysFunc(value); + arrayEach(props || value, function(subValue, key2) { + if (props) { + key2 = subValue; + subValue = value[key2]; + } + assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + return result2; + } + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object2(object); + while (length--) { + var key = props[length], predicate = source[key], value = object[key]; + if (value === undefined2 && !(key in object) || !predicate(value)) { + return false; + } + } + return true; + } + function baseDelay(func, wait, args) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return setTimeout2(function() { + func.apply(undefined2, args); + }, wait); + } + function baseDifference(array, values3, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values3.length; + if (!length) { + return result2; + } + if (iteratee2) { + values3 = arrayMap(values3, baseUnary(iteratee2)); + } + if (comparator) { + includes2 = arrayIncludesWith; + isCommon = false; + } else if (values3.length >= LARGE_ARRAY_SIZE) { + includes2 = cacheHas; + isCommon = false; + values3 = new SetCache(values3); + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values3[valuesIndex] === computed) { + continue outer; + } + } + result2.push(value); + } else if (!includes2(values3, computed, comparator)) { + result2.push(value); + } + } + return result2; + } + var baseEach = createBaseEach(baseForOwn); + var baseEachRight = createBaseEach(baseForOwnRight, true); + function baseEvery(collection, predicate) { + var result2 = true; + baseEach(collection, function(value, index, collection2) { + result2 = !!predicate(value, index, collection2); + return result2; + }); + return result2; + } + function baseExtremum(array, iteratee2, comparator) { + var index = -1, length = array.length; + while (++index < length) { + var value = array[index], current2 = iteratee2(value); + if (current2 != null && (computed === undefined2 ? current2 === current2 && !isSymbol(current2) : comparator(current2, computed))) { + var computed = current2, result2 = value; + } + } + return result2; + } + function baseFill(array, value, start, end) { + var length = array.length; + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end === undefined2 || end > length ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + function baseFilter(collection, predicate) { + var result2 = []; + baseEach(collection, function(value, index, collection2) { + if (predicate(value, index, collection2)) { + result2.push(value); + } + }); + return result2; + } + function baseFlatten(array, depth, predicate, isStrict, result2) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result2 || (result2 = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + baseFlatten(value, depth - 1, predicate, isStrict, result2); + } else { + arrayPush(result2, value); + } + } else if (!isStrict) { + result2[result2.length] = value; + } + } + return result2; + } + var baseFor = createBaseFor(); + var baseForRight = createBaseFor(true); + function baseForOwn(object, iteratee2) { + return object && baseFor(object, iteratee2, keys); + } + function baseForOwnRight(object, iteratee2) { + return object && baseForRight(object, iteratee2, keys); + } + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + function baseGet(object, path8) { + path8 = castPath(path8, object); + var index = 0, length = path8.length; + while (object != null && index < length) { + object = object[toKey(path8[index++])]; + } + return index && index == length ? object : undefined2; + } + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result2 = keysFunc(object); + return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); + } + function baseGetTag(value) { + if (value == null) { + return value === undefined2 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); + } + function baseGt(value, other) { + return value > other; + } + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + function baseHasIn(object, key) { + return object != null && key in Object2(object); + } + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + function baseIntersection(arrays, iteratee2, comparator) { + var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee2) { + array = arrayMap(array, baseUnary(iteratee2)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; + } + array = arrays[0]; + var index = -1, seen = caches[0]; + outer: + while (++index < length && result2.length < maxLength) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseInverter(object, setter, iteratee2, accumulator) { + baseForOwn(object, function(value, key, object2) { + setter(accumulator, iteratee2(value), key, object2); + }); + return accumulator; + } + function baseInvoke(object, path8, args) { + path8 = castPath(path8, object); + object = parent(object, path8); + var func = object == null ? object : object[toKey(last2(path8))]; + return func == null ? undefined2 : apply(func, object, args); + } + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack2()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack2()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack2()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object2(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === undefined2 && !(key in object)) { + return false; + } + } else { + var stack = new Stack2(); + if (customizer) { + var result2 = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { + return false; + } + } + } + return true; + } + function baseIsNative(value) { + if (!isObject3(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + function baseIteratee(value) { + if (typeof value == "function") { + return value; + } + if (value == null) { + return identity3; + } + if (typeof value == "object") { + return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + } + return property(value); + } + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result2 = []; + for (var key in Object2(object)) { + if (hasOwnProperty.call(object, key) && key != "constructor") { + result2.push(key); + } + } + return result2; + } + function baseKeysIn(object) { + if (!isObject3(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), result2 = []; + for (var key in object) { + if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { + result2.push(key); + } + } + return result2; + } + function baseLt(value, other) { + return value < other; + } + function baseMap(collection, iteratee2) { + var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value, key, collection2) { + result2[++index] = iteratee2(value, key, collection2); + }); + return result2; + } + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + function baseMatchesProperty(path8, srcValue) { + if (isKey(path8) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path8), srcValue); + } + return function(object) { + var objValue = get3(object, path8); + return objValue === undefined2 && objValue === srcValue ? hasIn(object, path8) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack2()); + if (isObject3(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; + if (newValue === undefined2) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; + var isCommon = newValue === undefined2; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject3(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject3(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined2; + } + function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee2) { + if (isArray(iteratee2)) { + return function(value) { + return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); + }; + } + return iteratee2; + }); + } else { + iteratees = [identity3]; + } + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + var result2 = baseMap(collection, function(value, key, collection2) { + var criteria = arrayMap(iteratees, function(iteratee2) { + return iteratee2(value); + }); + return { "criteria": criteria, "index": ++index, "value": value }; + }); + return baseSortBy(result2, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path8) { + return hasIn(object, path8); + }); + } + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result2 = {}; + while (++index < length) { + var path8 = paths[index], value = baseGet(object, path8); + if (predicate(value, path8)) { + baseSet(result2, castPath(path8, object), value); + } + } + return result2; + } + function basePropertyDeep(path8) { + return function(object) { + return baseGet(object, path8); + }; + } + function basePullAll(array, values3, iteratee2, comparator) { + var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values3.length, seen = array; + if (array === values3) { + values3 = copyArray(values3); + } + if (iteratee2) { + seen = arrayMap(array, baseUnary(iteratee2)); + } + while (++index < length) { + var fromIndex = 0, value = values3[index], computed = iteratee2 ? iteratee2(value) : value; + while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, lastIndex = length - 1; + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + function baseRange(start, end, step, fromRight) { + var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); + while (length--) { + result2[fromRight ? length : ++index] = start; + start += step; + } + return result2; + } + function baseRepeat(string2, n) { + var result2 = ""; + if (!string2 || n < 1 || n > MAX_SAFE_INTEGER) { + return result2; + } + do { + if (n % 2) { + result2 += string2; + } + n = nativeFloor(n / 2); + if (n) { + string2 += string2; + } + } while (n); + return result2; + } + function baseRest(func, start) { + return setToString(overRest(func, start, identity3), func + ""); + } + function baseSample(collection) { + return arraySample(values2(collection)); + } + function baseSampleSize(collection, n) { + var array = values2(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + function baseSet(object, path8, value, customizer) { + if (!isObject3(object)) { + return object; + } + path8 = castPath(path8, object); + var index = -1, length = path8.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path8[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined2; + if (newValue === undefined2) { + newValue = isObject3(objValue) ? objValue : isIndex(path8[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + var baseSetData = !metaMap ? identity3 : function(func, data) { + metaMap.set(func, data); + return func; + }; + var baseSetToString = !defineProperty ? identity3 : function(func, string2) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string2), + "writable": true + }); + }; + function baseShuffle(collection) { + return shuffleSelf(values2(collection)); + } + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result2 = Array2(length); + while (++index < length) { + result2[index] = array[index + start]; + } + return result2; + } + function baseSome(collection, predicate) { + var result2; + baseEach(collection, function(value, index, collection2) { + result2 = predicate(value, index, collection2); + return !result2; + }); + return !!result2; + } + function baseSortedIndex(array, value, retHighest) { + var low = 0, high = array == null ? low : array.length; + if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = low + high >>> 1, computed = array[mid]; + if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity3, retHighest); + } + function baseSortedIndexBy(array, value, iteratee2, retHighest) { + var low = 0, high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + value = iteratee2(value); + var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; + while (low < high) { + var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? computed <= value : computed < value; + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + function baseSortedUniq(array, iteratee2) { + var index = -1, length = array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + if (!index || !eq(computed, seen)) { + var seen = computed; + result2[resIndex++] = value === 0 ? 0 : value; + } + } + return result2; + } + function baseToNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function baseUniq(array, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; + if (comparator) { + isCommon = false; + includes2 = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set4 = iteratee2 ? null : createSet(array); + if (set4) { + return setToArray(set4); + } + isCommon = false; + includes2 = cacheHas; + seen = new SetCache(); + } else { + seen = iteratee2 ? [] : result2; + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee2) { + seen.push(computed); + } + result2.push(value); + } else if (!includes2(seen, computed, comparator)) { + if (seen !== result2) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseUnset(object, path8) { + path8 = castPath(path8, object); + object = parent(object, path8); + return object == null || delete object[toKey(last2(path8))]; + } + function baseUpdate(object, path8, updater, customizer) { + return baseSet(object, path8, updater(baseGet(object, path8)), customizer); + } + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, index = fromRight ? length : -1; + while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { + } + return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); + } + function baseWrapperValue(value, actions2) { + var result2 = value; + if (result2 instanceof LazyWrapper) { + result2 = result2.value(); + } + return arrayReduce(actions2, function(result3, action) { + return action.func.apply(action.thisArg, arrayPush([result3], action.args)); + }, result2); + } + function baseXor(arrays, iteratee2, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, result2 = Array2(length); + while (++index < length) { + var array = arrays[index], othIndex = -1; + while (++othIndex < length) { + if (othIndex != index) { + result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); + } + } + } + return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); + } + function baseZipObject(props, values3, assignFunc) { + var index = -1, length = props.length, valsLength = values3.length, result2 = {}; + while (++index < length) { + var value = index < valsLength ? values3[index] : undefined2; + assignFunc(result2, props[index], value); + } + return result2; + } + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + function castFunction(value) { + return typeof value == "function" ? value : identity3; + } + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString2(value)); + } + var castRest = baseRest; + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined2 ? length : end; + return !start && end >= length ? array : baseSlice(array, start, end); + } + var clearTimeout2 = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result2); + return result2; + } + function cloneArrayBuffer(arrayBuffer) { + var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); + return result2; + } + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + function cloneRegExp(regexp) { + var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result2.lastIndex = regexp.lastIndex; + return result2; + } + function cloneSymbol(symbol) { + return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; + } + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); + var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; + } + function compareMultiple(object, other, orders) { + var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; + while (++index < length) { + var result2 = compareAscending(objCriteria[index], othCriteria[index]); + if (result2) { + if (index >= ordersLength) { + return result2; + } + var order = orders[index]; + return result2 * (order == "desc" ? -1 : 1); + } + } + return object.index - other.index; + } + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; + while (++leftIndex < leftLength) { + result2[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result2[leftIndex++] = args[argsIndex++]; + } + return result2; + } + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; + while (++argsIndex < rangeLength) { + result2[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result2[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result2; + } + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array2(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; + if (newValue === undefined2) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + function createAggregator(setter, initializer) { + return function(collection, iteratee2) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; + return func(collection, setter, getIteratee(iteratee2, 2), accumulator); + }; + } + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined2 : customizer; + length = 1; + } + object = Object2(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee2) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee2); + } + var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee2(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + function createBaseFor(fromRight) { + return function(object, iteratee2, keysFunc) { + var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee2(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + function createCaseFirst(methodName) { + return function(string2) { + string2 = toString2(string2); + var strSymbols = hasUnicode(string2) ? stringToArray(string2) : undefined2; + var chr = strSymbols ? strSymbols[0] : string2.charAt(0); + var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string2.slice(1); + return chr[methodName]() + trailing; + }; + } + function createCompounder(callback2) { + return function(string2) { + return arrayReduce(words(deburr2(string2).replace(reApos, "")), callback2, ""); + }; + } + function createCtor(Ctor) { + return function() { + var args = arguments; + switch (args.length) { + case 0: + return new Ctor(); + case 1: + return new Ctor(args[0]); + case 2: + return new Ctor(args[0], args[1]); + case 3: + return new Ctor(args[0], args[1], args[2]); + case 4: + return new Ctor(args[0], args[1], args[2], args[3]); + case 5: + return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); + return isObject3(result2) ? result2 : thisBinding; + }; + } + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); + while (index--) { + args[index] = arguments[index]; + } + var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); + length -= holders.length; + if (length < arity) { + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + undefined2, + args, + holders, + undefined2, + undefined2, + arity - length + ); + } + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object2(collection); + if (!isArrayLike(collection)) { + var iteratee2 = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { + return iteratee2(iterable[key], key, iterable); + }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; + }; + } + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == "wrapper") { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; + if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); + } + } + return function() { + var args = arguments, value = args[0]; + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; + while (++index2 < length) { + result2 = funcs[index2].call(this, result2); + } + return result2; + }; + }); + } + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length; + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + thisArg, + args, + newHolders, + argPos, + ary2, + arity - length + ); + } + var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary2 < length) { + args.length = ary2; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + function createInverter(setter, toIteratee) { + return function(object, iteratee2) { + return baseInverter(object, setter, toIteratee(iteratee2), {}); + }; + } + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result2; + if (value === undefined2 && other === undefined2) { + return defaultValue; + } + if (value !== undefined2) { + result2 = value; + } + if (other !== undefined2) { + if (result2 === undefined2) { + return other; + } + if (typeof value == "string" || typeof other == "string") { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result2 = operator(value, other); + } + return result2; + }; + } + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee2) { + return apply(iteratee2, thisArg, args); + }); + }); + }); + } + function createPadding(length, chars) { + chars = chars === undefined2 ? " " : baseToString(chars); + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); + } + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != "number" && isIterateeCall(start, end, step)) { + end = step = undefined2; + } + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == "string" && typeof other == "string")) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; + bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, + bitmask, + thisArg, + newPartials, + newHolders, + newPartialsRight, + newHoldersRight, + argPos, + ary2, + arity + ]; + var result2 = wrapFunc.apply(undefined2, newData); + if (isLaziable(func)) { + setData(result2, newData); + } + result2.placeholder = placeholder; + return setWrapToString(result2, func, bitmask); + } + function createRound(methodName) { + var func = Math2[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + var pair = (toString2(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); + pair = (toString2(value) + "e").split("e"); + return +(pair[0] + "e" + (+pair[1] - precision)); + } + return func(number); + }; + } + var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values3) { + return new Set2(values3); + }; + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined2; + } + ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); + arity = arity === undefined2 ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, holdersRight = holders; + partials = holders = undefined2; + } + var data = isBindKey ? undefined2 : getData(func); + var newData = [ + func, + bitmask, + thisArg, + partials, + holders, + partialsRight, + holdersRight, + argPos, + ary2, + arity + ]; + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result2 = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result2 = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result2 = createPartial(func, bitmask, thisArg, partials); + } else { + result2 = createHybrid.apply(undefined2, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result2, newData), func, bitmask); + } + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { + return srcValue; + } + return objValue; + } + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject3(objValue) && isObject3(srcValue)) { + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); + stack["delete"](srcValue); + } + return objValue; + } + function customOmitClone(value) { + return isPlainObject3(value) ? undefined2 : value; + } + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined2) { + if (compared) { + continue; + } + result2 = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result2 = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result2 = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result2; + } + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + stack.set(object, other); + var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result2; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result2 = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result2 = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result2 && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result2 = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result2; + } + function flatRest(func) { + return setToString(overRest(func, undefined2, flatten13), func + ""); + } + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + function getFuncName(func) { + var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; + while (length--) { + var data = array[length], otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result2; + } + function getHolder(func) { + var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; + return object.placeholder; + } + function getIteratee() { + var result2 = lodash.iteratee || iteratee; + result2 = result2 === iteratee ? baseIteratee : result2; + return arguments.length ? result2(arguments[0], arguments[1]) : result2; + } + function getMapData(map5, key) { + var data = map5.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + function getMatchData(object) { + var result2 = keys(object), length = result2.length; + while (length--) { + var key = result2[length], value = object[key]; + result2[length] = [key, value, isStrictComparable(value)]; + } + return result2; + } + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined2; + } + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; + try { + value[symToStringTag] = undefined2; + var unmasked = true; + } catch (e) { + } + var result2 = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result2; + } + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object2(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result2 = []; + while (object) { + arrayPush(result2, getSymbols(object)); + object = getPrototype(object); + } + return result2; + }; + var getTag = baseGetTag; + if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { + getTag = function(value) { + var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; + case mapCtorString: + return mapTag; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag; + case weakMapCtorString: + return weakMapTag; + } + } + return result2; + }; + } + function getView(start, end, transforms) { + var index = -1, length = transforms.length; + while (++index < length) { + var data = transforms[index], size2 = data.size; + switch (data.type) { + case "drop": + start += size2; + break; + case "dropRight": + end -= size2; + break; + case "take": + end = nativeMin(end, start + size2); + break; + case "takeRight": + start = nativeMax(start, end - size2); + break; + } + } + return { "start": start, "end": end }; + } + function getWrapDetails(source) { + var match2 = source.match(reWrapDetails); + return match2 ? match2[1].split(reSplitDetails) : []; + } + function hasPath(object, path8, hasFunc) { + path8 = castPath(path8, object); + var index = -1, length = path8.length, result2 = false; + while (++index < length) { + var key = toKey(path8[index]); + if (!(result2 = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result2 || ++index != length) { + return result2; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + function initCloneArray(array) { + var length = array.length, result2 = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { + result2.index = array.index; + result2.input = array.input; + } + return result2; + } + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + case boolTag: + case dateTag: + return new Ctor(+object); + case dataViewTag: + return cloneDataView(object, isDeep); + case float32Tag: + case float64Tag: + case int8Tag: + case int16Tag: + case int32Tag: + case uint8Tag: + case uint8ClampedTag: + case uint16Tag: + case uint32Tag: + return cloneTypedArray(object, isDeep); + case mapTag: + return new Ctor(); + case numberTag: + case stringTag: + return new Ctor(object); + case regexpTag: + return cloneRegExp(object); + case setTag: + return new Ctor(); + case symbolTag: + return cloneSymbol(object); + } + } + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; + details = details.join(length > 2 ? ", " : " "); + return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); + } + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + function isIndex(value, length) { + var type2 = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + function isIterateeCall(value, index, object) { + if (!isObject3(object)) { + return false; + } + var type2 = typeof index; + if (type2 == "number" ? isArrayLike(object) && isIndex(index, object.length) : type2 == "string" && index in object) { + return eq(object[index], value); + } + return false; + } + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type2 = typeof value; + if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); + } + function isKeyable(value) { + var type2 = typeof value; + return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null; + } + function isLaziable(func) { + var funcName = getFuncName(func), other = lodash[funcName]; + if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + var isMaskable = coreJsData ? isFunction : stubFalse; + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + function isStrictComparable(value) { + return value === value && !isObject3(value); + } + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); + }; + } + function memoizeCapped(func) { + var result2 = memoize2(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result2.cache; + return result2; + } + function mergeData(data, source) { + var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; + if (!(isCommon || isCombo)) { + return data; + } + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + value = source[7]; + if (value) { + data[7] = value; + } + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + if (data[9] == null) { + data[9] = source[9]; + } + data[0] = source[0]; + data[1] = newBitmask; + return data; + } + function nativeKeysIn(object) { + var result2 = []; + if (object != null) { + for (var key in Object2(object)) { + result2.push(key); + } + } + return result2; + } + function objectToString(value) { + return nativeObjectToString.call(value); + } + function overRest(func, start, transform2) { + start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array2(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform2(array); + return apply(func, this, otherArgs); + }; + } + function parent(object, path8) { + return path8.length < 2 ? object : baseGet(object, baseSlice(path8, 0, -1)); + } + function reorder(array, indexes) { + var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; + } + return array; + } + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object[key]; + } + var setData = shortOut(baseSetData); + var setTimeout2 = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + var setToString = shortOut(baseSetToString); + function setWrapToString(wrapper, reference, bitmask) { + var source = reference + ""; + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + function shortOut(func) { + var count2 = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count2 >= HOT_COUNT) { + return arguments[0]; + } + } else { + count2 = 0; + } + return func.apply(undefined2, arguments); + }; + } + function shuffleSelf(array, size2) { + var index = -1, length = array.length, lastIndex = length - 1; + size2 = size2 === undefined2 ? length : size2; + while (++index < size2) { + var rand = baseRandom(index, lastIndex), value = array[rand]; + array[rand] = array[index]; + array[index] = value; + } + array.length = size2; + return array; + } + var stringToPath = memoizeCapped(function(string2) { + var result2 = []; + if (string2.charCodeAt(0) === 46) { + result2.push(""); + } + string2.replace(rePropName, function(match2, number, quote, subString) { + result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match2); + }); + return result2; + }); + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; + } + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = "_." + pair[0]; + if (bitmask & pair[1] && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result2.__actions__ = copyArray(wrapper.__actions__); + result2.__index__ = wrapper.__index__; + result2.__values__ = wrapper.__values__; + return result2; + } + function chunk(array, size2, guard) { + if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { + size2 = 1; + } else { + size2 = nativeMax(toInteger(size2), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size2 < 1) { + return []; + } + var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); + while (index < length) { + result2[resIndex++] = baseSlice(array, index, index += size2); + } + return result2; + } + function compact(array) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index]; + if (value) { + result2[resIndex++] = value; + } + } + return result2; + } + function concat3() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array2(length - 1), array = arguments[0], index = length; + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + var difference = baseRest(function(array, values3) { + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true)) : []; + }); + var differenceBy = baseRest(function(array, values3) { + var iteratee2 = last2(values3); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; + }); + var differenceWith = baseRest(function(array, values3) { + var comparator = last2(values3); + if (isArrayLikeObject(comparator)) { + comparator = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), undefined2, comparator) : []; + }); + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function dropRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; + } + function dropWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; + } + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != "number" && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + function findLastIndex3(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + function flatten13(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + function fromPairs(pairs2) { + var index = -1, length = pairs2 == null ? 0 : pairs2.length, result2 = {}; + while (++index < length) { + var pair = pairs2[index]; + result2[pair[0]] = pair[1]; + } + return result2; + } + function head(array) { + return array && array.length ? array[0] : undefined2; + } + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; + }); + var intersectionBy = baseRest(function(arrays) { + var iteratee2 = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + if (iteratee2 === last2(mapped)) { + iteratee2 = undefined2; + } else { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; + }); + var intersectionWith = baseRest(function(arrays) { + var comparator = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + comparator = typeof comparator == "function" ? comparator : undefined2; + if (comparator) { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; + }); + function join9(array, separator2) { + return array == null ? "" : nativeJoin.call(array, separator2); + } + function last2(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined2; + } + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); + } + function nth(array, n) { + return array && array.length ? baseNth(array, toInteger(n)) : undefined2; + } + var pull8 = baseRest(pullAll); + function pullAll(array, values3) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3) : array; + } + function pullAllBy(array, values3, iteratee2) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3, getIteratee(iteratee2, 2)) : array; + } + function pullAllWith(array, values3, comparator) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3, undefined2, comparator) : array; + } + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + return result2; + }); + function remove2(array, predicate) { + var result2 = []; + if (!(array && array.length)) { + return result2; + } + var index = -1, indexes = [], length = array.length; + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result2.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result2; + } + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != "number" && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } else { + start = start == null ? 0 : toInteger(start); + end = end === undefined2 ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + function sortedIndexBy2(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); + } + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + function sortedLastIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); + } + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedUniq(array) { + return array && array.length ? baseSortedUniq(array) : []; + } + function sortedUniqBy(array, iteratee2) { + return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; + } + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + function takeRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; + } + function takeWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; + } + var union2 = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + var unionBy = baseRest(function(arrays) { + var iteratee2 = last2(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); + }); + var unionWith = baseRest(function(arrays) { + var comparator = last2(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); + }); + function uniq5(array) { + return array && array.length ? baseUniq(array) : []; + } + function uniqBy(array, iteratee2) { + return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; + } + function uniqWith3(array, comparator) { + comparator = typeof comparator == "function" ? comparator : undefined2; + return array && array.length ? baseUniq(array, undefined2, comparator) : []; + } + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + function unzipWith(array, iteratee2) { + if (!(array && array.length)) { + return []; + } + var result2 = unzip(array); + if (iteratee2 == null) { + return result2; + } + return arrayMap(result2, function(group) { + return apply(iteratee2, undefined2, group); + }); + } + var without = baseRest(function(array, values3) { + return isArrayLikeObject(array) ? baseDifference(array, values3) : []; + }); + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + var xorBy = baseRest(function(arrays) { + var iteratee2 = last2(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); + }); + var xorWith = baseRest(function(arrays) { + var comparator = last2(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); + }); + var zip9 = baseRest(unzip); + function zipObject(props, values3) { + return baseZipObject(props || [], values3 || [], assignValue); + } + function zipObjectDeep(props, values3) { + return baseZipObject(props || [], values3 || [], baseSet); + } + var zipWith = baseRest(function(arrays) { + var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; + iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; + return unzipWith(arrays, iteratee2); + }); + function chain(value) { + var result2 = lodash(value); + result2.__chain__ = true; + return result2; + } + function tap(value, interceptor) { + interceptor(value); + return value; + } + function thru(value, interceptor) { + return interceptor(value); + } + var wrapperAt = flatRest(function(paths) { + var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { + return baseAt(object, paths); + }; + if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + "func": thru, + "args": [interceptor], + "thisArg": undefined2 + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined2); + } + return array; + }); + }); + function wrapperChain() { + return chain(this); + } + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + function wrapperNext() { + if (this.__values__ === undefined2) { + this.__values__ = toArray2(this.value()); + } + var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; + return { "done": done, "value": value }; + } + function wrapperToIterator() { + return this; + } + function wrapperPlant(value) { + var result2, parent2 = this; + while (parent2 instanceof baseLodash) { + var clone2 = wrapperClone(parent2); + clone2.__index__ = 0; + clone2.__values__ = undefined2; + if (result2) { + previous.__wrapped__ = clone2; + } else { + result2 = clone2; + } + var previous = clone2; + parent2 = parent2.__wrapped__; + } + previous.__wrapped__ = value; + return result2; + } + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + "func": thru, + "args": [reverse], + "thisArg": undefined2 + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + var countBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + ++result2[key]; + } else { + baseAssignValue(result2, key, 1); + } + }); + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + function filter2(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + var find = createFind(findIndex); + var findLast2 = createFind(findLastIndex3); + function flatMap(collection, iteratee2) { + return baseFlatten(map4(collection, iteratee2), 1); + } + function flatMapDeep(collection, iteratee2) { + return baseFlatten(map4(collection, iteratee2), INFINITY); + } + function flatMapDepth(collection, iteratee2, depth) { + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(map4(collection, iteratee2), depth); + } + function forEach(collection, iteratee2) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee2, 3)); + } + function forEachRight(collection, iteratee2) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee2, 3)); + } + var groupBy5 = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + result2[key].push(value); + } else { + baseAssignValue(result2, key, [value]); + } + }); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values2(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString3(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + var invokeMap = baseRest(function(collection, path8, args) { + var index = -1, isFunc = typeof path8 == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value) { + result2[++index] = isFunc ? apply(path8, value, args) : baseInvoke(value, path8, args); + }); + return result2; + }); + var keyBy = createAggregator(function(result2, value, key) { + baseAssignValue(result2, key, value); + }); + function map4(collection, iteratee2) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee2, 3)); + } + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined2 : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + var partition = createAggregator(function(result2, value, key) { + result2[key ? 0 : 1].push(value); + }, function() { + return [[], []]; + }); + function reduce(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); + } + function reduceRight(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); + } + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + function sampleSize(collection, n, guard) { + if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + function shuffle2(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString3(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + var sortBy3 = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + var now = ctxNow || function() { + return root.Date.now(); + }; + function after(n, func) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + function ary(func, n, guard) { + n = guard ? undefined2 : n; + n = func && n == null ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); + } + function before(n, func) { + var result2; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result2 = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined2; + } + return result2; + }; + } + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + function curry(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curry.placeholder; + return result2; + } + function curryRight(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curryRight.placeholder; + return result2; + } + function debounce(func, wait, options2) { + var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject3(options2)) { + leading = !!options2.leading; + maxing = "maxWait" in options2; + maxWait = maxing ? nativeMax(toNumber(options2.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options2 ? !!options2.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = undefined2; + lastInvokeTime = time; + result2 = func.apply(thisArg, args); + return result2; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout2(timerExpired, wait); + return leading ? invokeFunc(time) : result2; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout2(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = undefined2; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined2; + return result2; + } + function cancel() { + if (timerId !== undefined2) { + clearTimeout2(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined2; + } + function flush() { + return timerId === undefined2 ? result2 : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined2) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout2(timerId); + timerId = setTimeout2(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined2) { + timerId = setTimeout2(timerExpired, wait); + } + return result2; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + var defer2 = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + function memoize2(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result2 = func.apply(this, args); + memoized.cache = cache.set(key, result2) || cache; + return result2; + }; + memoized.cache = new (memoize2.Cache || MapCache)(); + return memoized; + } + memoize2.Cache = MapCache; + function negate(predicate) { + if (typeof predicate != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: + return !predicate.call(this); + case 1: + return !predicate.call(this, args[0]); + case 2: + return !predicate.call(this, args[0], args[1]); + case 3: + return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + function once(func) { + return before(2, func); + } + var overArgs = castRest(function(func, transforms) { + transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, length = nativeMin(args.length, funcsLength); + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); + }); + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); + }); + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); + }); + function rest(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start === undefined2 ? start : toInteger(start); + return baseRest(func, start); + } + function spread(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], otherArgs = castSlice(args, 0, start); + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + function throttle(func, wait, options2) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (isObject3(options2)) { + leading = "leading" in options2 ? !!options2.leading : leading; + trailing = "trailing" in options2 ? !!options2.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + function unary(func) { + return ary(func, 1); + } + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + function cloneWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + function cloneDeep2(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + function eq(value, other) { + return value === other || value !== value && other !== other; + } + var gt = createRelationalOperation(baseGt); + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + var isArguments = baseIsArguments(/* @__PURE__ */ function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + var isArray = Array2.isArray; + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + function isBoolean2(value) { + return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; + } + var isBuffer = nativeIsBuffer || stubFalse; + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject3(value); + } + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + function isEqual5(value, other) { + return baseIsEqual(value, other); + } + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + var result2 = customizer ? customizer(value, other) : undefined2; + return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; + } + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject3(value); + } + function isFinite2(value) { + return typeof value == "number" && nativeIsFinite(value); + } + function isFunction(value) { + if (!isObject3(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + function isInteger2(value) { + return typeof value == "number" && value == toInteger(value); + } + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + function isObject3(value) { + var type2 = typeof value; + return value != null && (type2 == "object" || type2 == "function"); + } + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + var isMap2 = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + function isNaN2(value) { + return isNumber(value) && value != +value; + } + function isNative(value) { + if (isMaskable(value)) { + throw new Error2(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + function isNull2(value) { + return value === null; + } + function isNil(value) { + return value == null; + } + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; + } + function isPlainObject3(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString2; + } + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + function isSafeInteger(value) { + return isInteger2(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + var isSet2 = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + function isString3(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; + } + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; + } + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + function isUndefined(value) { + return value === undefined2; + } + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + var lt = createRelationalOperation(baseLt); + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + function toArray2(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString3(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values2; + return func(value); + } + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + function toInteger(value) { + var result2 = toFinite(value), remainder = result2 % 1; + return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; + } + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject3(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject3(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary2 = reIsBinary.test(value); + return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + function toSafeInteger(value) { + return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; + } + function toString2(value) { + return value == null ? "" : baseToString(value); + } + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + var at = flatRest(baseAt); + function create(prototype, properties) { + var result2 = baseCreate(prototype); + return properties == null ? result2 : baseAssign(result2, properties); + } + var defaults2 = baseRest(function(object, sources) { + object = Object2(object); + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { + object[key] = source[key]; + } + } + } + return object; + }); + var defaultsDeep = baseRest(function(args) { + args.push(undefined2, customDefaultsMerge); + return apply(mergeWith, undefined2, args); + }); + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + function forIn(object, iteratee2) { + return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); + } + function forInRight(object, iteratee2) { + return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); + } + function forOwn(object, iteratee2) { + return object && baseForOwn(object, getIteratee(iteratee2, 3)); + } + function forOwnRight(object, iteratee2) { + return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); + } + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + function get3(object, path8, defaultValue) { + var result2 = object == null ? undefined2 : baseGet(object, path8); + return result2 === undefined2 ? defaultValue : result2; + } + function has2(object, path8) { + return object != null && hasPath(object, path8, baseHas); + } + function hasIn(object, path8) { + return object != null && hasPath(object, path8, baseHasIn); + } + var invert = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + result2[value] = key; + }, constant(identity3)); + var invertBy = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + if (hasOwnProperty.call(result2, value)) { + result2[value].push(key); + } else { + result2[value] = [key]; + } + }, getIteratee); + var invoke = baseRest(baseInvoke); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + function mapKeys(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, iteratee2(value, key, object2), value); + }); + return result2; + } + function mapValues2(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, key, iteratee2(value, key, object2)); + }); + return result2; + } + var merge4 = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + var omit = flatRest(function(object, paths) { + var result2 = {}; + if (object == null) { + return result2; + } + var isDeep = false; + paths = arrayMap(paths, function(path8) { + path8 = castPath(path8, object); + isDeep || (isDeep = path8.length > 1); + return path8; + }); + copyObject(object, getAllKeysIn(object), result2); + if (isDeep) { + result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result2, paths[length]); + } + return result2; + }); + function omitBy(object, predicate) { + return pickBy2(object, negate(getIteratee(predicate))); + } + var pick2 = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + function pickBy2(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path8) { + return predicate(value, path8[0]); + }); + } + function result(object, path8, defaultValue) { + path8 = castPath(path8, object); + var index = -1, length = path8.length; + if (!length) { + length = 1; + object = undefined2; + } + while (++index < length) { + var value = object == null ? undefined2 : object[toKey(path8[index])]; + if (value === undefined2) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + function set3(object, path8, value) { + return object == null ? object : baseSet(object, path8, value); + } + function setWith(object, path8, value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseSet(object, path8, value, customizer); + } + var toPairs = createToPairs(keys); + var toPairsIn = createToPairs(keysIn); + function transform(object, iteratee2, accumulator) { + var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); + iteratee2 = getIteratee(iteratee2, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor() : []; + } else if (isObject3(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { + return iteratee2(accumulator, value, index, object2); + }); + return accumulator; + } + function unset(object, path8) { + return object == null ? true : baseUnset(object, path8); + } + function update(object, path8, updater) { + return object == null ? object : baseUpdate(object, path8, castFunction(updater)); + } + function updateWith(object, path8, updater, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseUpdate(object, path8, castFunction(updater), customizer); + } + function values2(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + function clamp(number, lower, upper) { + if (upper === undefined2) { + upper = lower; + lower = undefined2; + } + if (upper !== undefined2) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined2) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + function random(lower, upper, floating) { + if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined2; + } + if (floating === undefined2) { + if (typeof upper == "boolean") { + floating = upper; + upper = undefined2; + } else if (typeof lower == "boolean") { + floating = lower; + lower = undefined2; + } + } + if (lower === undefined2 && upper === undefined2) { + lower = 0; + upper = 1; + } else { + lower = toFinite(lower); + if (upper === undefined2) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); + } + return baseRandom(lower, upper); + } + var camelCase = createCompounder(function(result2, word, index) { + word = word.toLowerCase(); + return result2 + (index ? capitalize(word) : word); + }); + function capitalize(string2) { + return upperFirst(toString2(string2).toLowerCase()); + } + function deburr2(string2) { + string2 = toString2(string2); + return string2 && string2.replace(reLatin, deburrLetter).replace(reComboMark, ""); + } + function endsWith(string2, target, position) { + string2 = toString2(string2); + target = baseToString(target); + var length = string2.length; + position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); + var end = position; + position -= target.length; + return position >= 0 && string2.slice(position, end) == target; + } + function escape2(string2) { + string2 = toString2(string2); + return string2 && reHasUnescapedHtml.test(string2) ? string2.replace(reUnescapedHtml, escapeHtmlChar) : string2; + } + function escapeRegExp6(string2) { + string2 = toString2(string2); + return string2 && reHasRegExpChar.test(string2) ? string2.replace(reRegExpChar, "\\$&") : string2; + } + var kebabCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "-" : "") + word.toLowerCase(); + }); + var lowerCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toLowerCase(); + }); + var lowerFirst = createCaseFirst("toLowerCase"); + function pad(string2, length, chars) { + string2 = toString2(string2); + length = toInteger(length); + var strLength = length ? stringSize(string2) : 0; + if (!length || strLength >= length) { + return string2; + } + var mid = (length - strLength) / 2; + return createPadding(nativeFloor(mid), chars) + string2 + createPadding(nativeCeil(mid), chars); + } + function padEnd(string2, length, chars) { + string2 = toString2(string2); + length = toInteger(length); + var strLength = length ? stringSize(string2) : 0; + return length && strLength < length ? string2 + createPadding(length - strLength, chars) : string2; + } + function padStart2(string2, length, chars) { + string2 = toString2(string2); + length = toInteger(length); + var strLength = length ? stringSize(string2) : 0; + return length && strLength < length ? createPadding(length - strLength, chars) + string2 : string2; + } + function parseInt2(string2, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString2(string2).replace(reTrimStart, ""), radix || 0); + } + function repeat3(string2, n, guard) { + if (guard ? isIterateeCall(string2, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString2(string2), n); + } + function replace() { + var args = arguments, string2 = toString2(args[0]); + return args.length < 3 ? string2 : string2.replace(args[1], args[2]); + } + var snakeCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "_" : "") + word.toLowerCase(); + }); + function split(string2, separator2, limit) { + if (limit && typeof limit != "number" && isIterateeCall(string2, separator2, limit)) { + separator2 = limit = undefined2; + } + limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string2 = toString2(string2); + if (string2 && (typeof separator2 == "string" || separator2 != null && !isRegExp(separator2))) { + separator2 = baseToString(separator2); + if (!separator2 && hasUnicode(string2)) { + return castSlice(stringToArray(string2), 0, limit); + } + } + return string2.split(separator2, limit); + } + var startCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + upperFirst(word); + }); + function startsWith(string2, target, position) { + string2 = toString2(string2); + position = position == null ? 0 : baseClamp(toInteger(position), 0, string2.length); + target = baseToString(target); + return string2.slice(position, position + target.length) == target; + } + function template(string2, options2, guard) { + var settings = lodash.templateSettings; + if (guard && isIterateeCall(string2, options2, guard)) { + options2 = undefined2; + } + string2 = toString2(string2); + options2 = assignInWith({}, options2, settings, customDefaultsAssignIn); + var imports = assignInWith({}, options2.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); + var isEscaping, isEvaluating, index = 0, interpolate = options2.interpolate || reNoMatch, source = "__p += '"; + var reDelimiters = RegExp2( + (options2.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options2.evaluate || reNoMatch).source + "|$", + "g" + ); + var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options2, "sourceURL") ? (options2.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; + string2.replace(reDelimiters, function(match2, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { + interpolateValue || (interpolateValue = esTemplateValue); + source += string2.slice(index, offset).replace(reUnescapedString, escapeStringChar); + if (escapeValue) { + isEscaping = true; + source += "' +\n__e(" + escapeValue + ") +\n'"; + } + if (evaluateValue) { + isEvaluating = true; + source += "';\n" + evaluateValue + ";\n__p += '"; + } + if (interpolateValue) { + source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; + } + index = offset + match2.length; + return match2; + }); + source += "';\n"; + var variable = hasOwnProperty.call(options2, "variable") && options2.variable; + if (!variable) { + source = "with (obj) {\n" + source + "\n}\n"; + } else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); + } + source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); + source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; + var result2 = attempt(function() { + return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); + }); + result2.source = source; + if (isError(result2)) { + throw result2; + } + return result2; + } + function toLower(value) { + return toString2(value).toLowerCase(); + } + function toUpper(value) { + return toString2(value).toUpperCase(); + } + function trim(string2, chars, guard) { + string2 = toString2(string2); + if (string2 && (guard || chars === undefined2)) { + return baseTrim(string2); + } + if (!string2 || !(chars = baseToString(chars))) { + return string2; + } + var strSymbols = stringToArray(string2), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; + return castSlice(strSymbols, start, end).join(""); + } + function trimEnd(string2, chars, guard) { + string2 = toString2(string2); + if (string2 && (guard || chars === undefined2)) { + return string2.slice(0, trimmedEndIndex(string2) + 1); + } + if (!string2 || !(chars = baseToString(chars))) { + return string2; + } + var strSymbols = stringToArray(string2), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; + return castSlice(strSymbols, 0, end).join(""); + } + function trimStart(string2, chars, guard) { + string2 = toString2(string2); + if (string2 && (guard || chars === undefined2)) { + return string2.replace(reTrimStart, ""); + } + if (!string2 || !(chars = baseToString(chars))) { + return string2; + } + var strSymbols = stringToArray(string2), start = charsStartIndex(strSymbols, stringToArray(chars)); + return castSlice(strSymbols, start).join(""); + } + function truncate(string2, options2) { + var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; + if (isObject3(options2)) { + var separator2 = "separator" in options2 ? options2.separator : separator2; + length = "length" in options2 ? toInteger(options2.length) : length; + omission = "omission" in options2 ? baseToString(options2.omission) : omission; + } + string2 = toString2(string2); + var strLength = string2.length; + if (hasUnicode(string2)) { + var strSymbols = stringToArray(string2); + strLength = strSymbols.length; + } + if (length >= strLength) { + return string2; + } + var end = length - stringSize(omission); + if (end < 1) { + return omission; + } + var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string2.slice(0, end); + if (separator2 === undefined2) { + return result2 + omission; + } + if (strSymbols) { + end += result2.length - end; + } + if (isRegExp(separator2)) { + if (string2.slice(end).search(separator2)) { + var match2, substring = result2; + if (!separator2.global) { + separator2 = RegExp2(separator2.source, toString2(reFlags.exec(separator2)) + "g"); + } + separator2.lastIndex = 0; + while (match2 = separator2.exec(substring)) { + var newEnd = match2.index; + } + result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); + } + } else if (string2.indexOf(baseToString(separator2), end) != end) { + var index = result2.lastIndexOf(separator2); + if (index > -1) { + result2 = result2.slice(0, index); + } + } + return result2 + omission; + } + function unescape3(string2) { + string2 = toString2(string2); + return string2 && reHasEscapedHtml.test(string2) ? string2.replace(reEscapedHtml, unescapeHtmlChar) : string2; + } + var upperCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toUpperCase(); + }); + var upperFirst = createCaseFirst("toUpperCase"); + function words(string2, pattern, guard) { + string2 = toString2(string2); + pattern = guard ? undefined2 : pattern; + if (pattern === undefined2) { + return hasUnicodeWord(string2) ? unicodeWords(string2) : asciiWords(string2); + } + return string2.match(pattern) || []; + } + var attempt = baseRest(function(func, args) { + try { + return apply(func, undefined2, args); + } catch (e) { + return isError(e) ? e : new Error2(e); + } + }); + var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { + key = toKey(key); + baseAssignValue(object, key, bind(object[key], object)); + }); + return object; + }); + function cond(pairs2) { + var length = pairs2 == null ? 0 : pairs2.length, toIteratee = getIteratee(); + pairs2 = !length ? [] : arrayMap(pairs2, function(pair) { + if (typeof pair[1] != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return [toIteratee(pair[0]), pair[1]]; + }); + return baseRest(function(args) { + var index = -1; + while (++index < length) { + var pair = pairs2[index]; + if (apply(pair[0], this, args)) { + return apply(pair[1], this, args); + } + } + }); + } + function conforms(source) { + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); + } + function constant(value) { + return function() { + return value; + }; + } + function defaultTo(value, defaultValue) { + return value == null || value !== value ? defaultValue : value; + } + var flow2 = createFlow(); + var flowRight = createFlow(true); + function identity3(value) { + return value; + } + function iteratee(func) { + return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); + } + function matches(source) { + return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); + } + function matchesProperty(path8, srcValue) { + return baseMatchesProperty(path8, baseClone(srcValue, CLONE_DEEP_FLAG)); + } + var method = baseRest(function(path8, args) { + return function(object) { + return baseInvoke(object, path8, args); + }; + }); + var methodOf = baseRest(function(object, args) { + return function(path8) { + return baseInvoke(object, path8, args); + }; + }); + function mixin(object, source, options2) { + var props = keys(source), methodNames = baseFunctions(source, props); + if (options2 == null && !(isObject3(source) && (methodNames.length || !props.length))) { + options2 = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain2 = !(isObject3(options2) && "chain" in options2) || !!options2.chain, isFunc = isFunction(object); + arrayEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain2 || chainAll) { + var result2 = object(this.__wrapped__), actions2 = result2.__actions__ = copyArray(this.__actions__); + actions2.push({ "func": func, "args": arguments, "thisArg": object }); + result2.__chain__ = chainAll; + return result2; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + return object; + } + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + function noop() { + } + function nthArg(n) { + n = toInteger(n); + return baseRest(function(args) { + return baseNth(args, n); + }); + } + var over = createOver(arrayMap); + var overEvery = createOver(arrayEvery); + var overSome = createOver(arraySome); + function property(path8) { + return isKey(path8) ? baseProperty(toKey(path8)) : basePropertyDeep(path8); + } + function propertyOf(object) { + return function(path8) { + return object == null ? undefined2 : baseGet(object, path8); + }; + } + var range4 = createRange(); + var rangeRight = createRange(true); + function stubArray() { + return []; + } + function stubFalse() { + return false; + } + function stubObject() { + return {}; + } + function stubString() { + return ""; + } + function stubTrue() { + return true; + } + function times(n, iteratee2) { + n = toInteger(n); + if (n < 1 || n > MAX_SAFE_INTEGER) { + return []; + } + var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); + iteratee2 = getIteratee(iteratee2); + n -= MAX_ARRAY_LENGTH; + var result2 = baseTimes(length, iteratee2); + while (++index < n) { + iteratee2(index); + } + return result2; + } + function toPath(value) { + if (isArray(value)) { + return arrayMap(value, toKey); + } + return isSymbol(value) ? [value] : copyArray(stringToPath(toString2(value))); + } + function uniqueId(prefix) { + var id = ++idCounter; + return toString2(prefix) + id; + } + var add = createMathOperation(function(augend, addend) { + return augend + addend; + }, 0); + var ceil = createRound("ceil"); + var divide = createMathOperation(function(dividend, divisor) { + return dividend / divisor; + }, 1); + var floor = createRound("floor"); + function max2(array) { + return array && array.length ? baseExtremum(array, identity3, baseGt) : undefined2; + } + function maxBy2(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; + } + function mean(array) { + return baseMean(array, identity3); + } + function meanBy(array, iteratee2) { + return baseMean(array, getIteratee(iteratee2, 2)); + } + function min2(array) { + return array && array.length ? baseExtremum(array, identity3, baseLt) : undefined2; + } + function minBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; + } + var multiply = createMathOperation(function(multiplier, multiplicand) { + return multiplier * multiplicand; + }, 1); + var round = createRound("round"); + var subtract = createMathOperation(function(minuend, subtrahend) { + return minuend - subtrahend; + }, 0); + function sum2(array) { + return array && array.length ? baseSum(array, identity3) : 0; + } + function sumBy2(array, iteratee2) { + return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; + } + lodash.after = after; + lodash.ary = ary; + lodash.assign = assign; + lodash.assignIn = assignIn; + lodash.assignInWith = assignInWith; + lodash.assignWith = assignWith; + lodash.at = at; + lodash.before = before; + lodash.bind = bind; + lodash.bindAll = bindAll; + lodash.bindKey = bindKey; + lodash.castArray = castArray; + lodash.chain = chain; + lodash.chunk = chunk; + lodash.compact = compact; + lodash.concat = concat3; + lodash.cond = cond; + lodash.conforms = conforms; + lodash.constant = constant; + lodash.countBy = countBy; + lodash.create = create; + lodash.curry = curry; + lodash.curryRight = curryRight; + lodash.debounce = debounce; + lodash.defaults = defaults2; + lodash.defaultsDeep = defaultsDeep; + lodash.defer = defer2; + lodash.delay = delay; + lodash.difference = difference; + lodash.differenceBy = differenceBy; + lodash.differenceWith = differenceWith; + lodash.drop = drop; + lodash.dropRight = dropRight; + lodash.dropRightWhile = dropRightWhile; + lodash.dropWhile = dropWhile; + lodash.fill = fill; + lodash.filter = filter2; + lodash.flatMap = flatMap; + lodash.flatMapDeep = flatMapDeep; + lodash.flatMapDepth = flatMapDepth; + lodash.flatten = flatten13; + lodash.flattenDeep = flattenDeep; + lodash.flattenDepth = flattenDepth; + lodash.flip = flip; + lodash.flow = flow2; + lodash.flowRight = flowRight; + lodash.fromPairs = fromPairs; + lodash.functions = functions; + lodash.functionsIn = functionsIn; + lodash.groupBy = groupBy5; + lodash.initial = initial; + lodash.intersection = intersection; + lodash.intersectionBy = intersectionBy; + lodash.intersectionWith = intersectionWith; + lodash.invert = invert; + lodash.invertBy = invertBy; + lodash.invokeMap = invokeMap; + lodash.iteratee = iteratee; + lodash.keyBy = keyBy; + lodash.keys = keys; + lodash.keysIn = keysIn; + lodash.map = map4; + lodash.mapKeys = mapKeys; + lodash.mapValues = mapValues2; + lodash.matches = matches; + lodash.matchesProperty = matchesProperty; + lodash.memoize = memoize2; + lodash.merge = merge4; + lodash.mergeWith = mergeWith; + lodash.method = method; + lodash.methodOf = methodOf; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.nthArg = nthArg; + lodash.omit = omit; + lodash.omitBy = omitBy; + lodash.once = once; + lodash.orderBy = orderBy; + lodash.over = over; + lodash.overArgs = overArgs; + lodash.overEvery = overEvery; + lodash.overSome = overSome; + lodash.partial = partial; + lodash.partialRight = partialRight; + lodash.partition = partition; + lodash.pick = pick2; + lodash.pickBy = pickBy2; + lodash.property = property; + lodash.propertyOf = propertyOf; + lodash.pull = pull8; + lodash.pullAll = pullAll; + lodash.pullAllBy = pullAllBy; + lodash.pullAllWith = pullAllWith; + lodash.pullAt = pullAt; + lodash.range = range4; + lodash.rangeRight = rangeRight; + lodash.rearg = rearg; + lodash.reject = reject; + lodash.remove = remove2; + lodash.rest = rest; + lodash.reverse = reverse; + lodash.sampleSize = sampleSize; + lodash.set = set3; + lodash.setWith = setWith; + lodash.shuffle = shuffle2; + lodash.slice = slice; + lodash.sortBy = sortBy3; + lodash.sortedUniq = sortedUniq; + lodash.sortedUniqBy = sortedUniqBy; + lodash.split = split; + lodash.spread = spread; + lodash.tail = tail; + lodash.take = take; + lodash.takeRight = takeRight; + lodash.takeRightWhile = takeRightWhile; + lodash.takeWhile = takeWhile; + lodash.tap = tap; + lodash.throttle = throttle; + lodash.thru = thru; + lodash.toArray = toArray2; + lodash.toPairs = toPairs; + lodash.toPairsIn = toPairsIn; + lodash.toPath = toPath; + lodash.toPlainObject = toPlainObject; + lodash.transform = transform; + lodash.unary = unary; + lodash.union = union2; + lodash.unionBy = unionBy; + lodash.unionWith = unionWith; + lodash.uniq = uniq5; + lodash.uniqBy = uniqBy; + lodash.uniqWith = uniqWith3; + lodash.unset = unset; + lodash.unzip = unzip; + lodash.unzipWith = unzipWith; + lodash.update = update; + lodash.updateWith = updateWith; + lodash.values = values2; + lodash.valuesIn = valuesIn; + lodash.without = without; + lodash.words = words; + lodash.wrap = wrap; + lodash.xor = xor; + lodash.xorBy = xorBy; + lodash.xorWith = xorWith; + lodash.zip = zip9; + lodash.zipObject = zipObject; + lodash.zipObjectDeep = zipObjectDeep; + lodash.zipWith = zipWith; + lodash.entries = toPairs; + lodash.entriesIn = toPairsIn; + lodash.extend = assignIn; + lodash.extendWith = assignInWith; + mixin(lodash, lodash); + lodash.add = add; + lodash.attempt = attempt; + lodash.camelCase = camelCase; + lodash.capitalize = capitalize; + lodash.ceil = ceil; + lodash.clamp = clamp; + lodash.clone = clone; + lodash.cloneDeep = cloneDeep2; + lodash.cloneDeepWith = cloneDeepWith; + lodash.cloneWith = cloneWith; + lodash.conformsTo = conformsTo; + lodash.deburr = deburr2; + lodash.defaultTo = defaultTo; + lodash.divide = divide; + lodash.endsWith = endsWith; + lodash.eq = eq; + lodash.escape = escape2; + lodash.escapeRegExp = escapeRegExp6; + lodash.every = every; + lodash.find = find; + lodash.findIndex = findIndex; + lodash.findKey = findKey; + lodash.findLast = findLast2; + lodash.findLastIndex = findLastIndex3; + lodash.findLastKey = findLastKey; + lodash.floor = floor; + lodash.forEach = forEach; + lodash.forEachRight = forEachRight; + lodash.forIn = forIn; + lodash.forInRight = forInRight; + lodash.forOwn = forOwn; + lodash.forOwnRight = forOwnRight; + lodash.get = get3; + lodash.gt = gt; + lodash.gte = gte; + lodash.has = has2; + lodash.hasIn = hasIn; + lodash.head = head; + lodash.identity = identity3; + lodash.includes = includes; + lodash.indexOf = indexOf; + lodash.inRange = inRange; + lodash.invoke = invoke; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isArrayBuffer = isArrayBuffer; + lodash.isArrayLike = isArrayLike; + lodash.isArrayLikeObject = isArrayLikeObject; + lodash.isBoolean = isBoolean2; + lodash.isBuffer = isBuffer; + lodash.isDate = isDate; + lodash.isElement = isElement; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual5; + lodash.isEqualWith = isEqualWith; + lodash.isError = isError; + lodash.isFinite = isFinite2; + lodash.isFunction = isFunction; + lodash.isInteger = isInteger2; + lodash.isLength = isLength; + lodash.isMap = isMap2; + lodash.isMatch = isMatch; + lodash.isMatchWith = isMatchWith; + lodash.isNaN = isNaN2; + lodash.isNative = isNative; + lodash.isNil = isNil; + lodash.isNull = isNull2; + lodash.isNumber = isNumber; + lodash.isObject = isObject3; + lodash.isObjectLike = isObjectLike; + lodash.isPlainObject = isPlainObject3; + lodash.isRegExp = isRegExp; + lodash.isSafeInteger = isSafeInteger; + lodash.isSet = isSet2; + lodash.isString = isString3; + lodash.isSymbol = isSymbol; + lodash.isTypedArray = isTypedArray; + lodash.isUndefined = isUndefined; + lodash.isWeakMap = isWeakMap; + lodash.isWeakSet = isWeakSet; + lodash.join = join9; + lodash.kebabCase = kebabCase; + lodash.last = last2; + lodash.lastIndexOf = lastIndexOf; + lodash.lowerCase = lowerCase; + lodash.lowerFirst = lowerFirst; + lodash.lt = lt; + lodash.lte = lte; + lodash.max = max2; + lodash.maxBy = maxBy2; + lodash.mean = mean; + lodash.meanBy = meanBy; + lodash.min = min2; + lodash.minBy = minBy; + lodash.stubArray = stubArray; + lodash.stubFalse = stubFalse; + lodash.stubObject = stubObject; + lodash.stubString = stubString; + lodash.stubTrue = stubTrue; + lodash.multiply = multiply; + lodash.nth = nth; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.now = now; + lodash.pad = pad; + lodash.padEnd = padEnd; + lodash.padStart = padStart2; + lodash.parseInt = parseInt2; + lodash.random = random; + lodash.reduce = reduce; + lodash.reduceRight = reduceRight; + lodash.repeat = repeat3; + lodash.replace = replace; + lodash.result = result; + lodash.round = round; + lodash.runInContext = runInContext2; + lodash.sample = sample; + lodash.size = size; + lodash.snakeCase = snakeCase; + lodash.some = some; + lodash.sortedIndex = sortedIndex; + lodash.sortedIndexBy = sortedIndexBy2; + lodash.sortedIndexOf = sortedIndexOf; + lodash.sortedLastIndex = sortedLastIndex; + lodash.sortedLastIndexBy = sortedLastIndexBy; + lodash.sortedLastIndexOf = sortedLastIndexOf; + lodash.startCase = startCase; + lodash.startsWith = startsWith; + lodash.subtract = subtract; + lodash.sum = sum2; + lodash.sumBy = sumBy2; + lodash.template = template; + lodash.times = times; + lodash.toFinite = toFinite; + lodash.toInteger = toInteger; + lodash.toLength = toLength; + lodash.toLower = toLower; + lodash.toNumber = toNumber; + lodash.toSafeInteger = toSafeInteger; + lodash.toString = toString2; + lodash.toUpper = toUpper; + lodash.trim = trim; + lodash.trimEnd = trimEnd; + lodash.trimStart = trimStart; + lodash.truncate = truncate; + lodash.unescape = unescape3; + lodash.uniqueId = uniqueId; + lodash.upperCase = upperCase; + lodash.upperFirst = upperFirst; + lodash.each = forEach; + lodash.eachRight = forEachRight; + lodash.first = head; + mixin(lodash, function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }(), { "chain": false }); + lodash.VERSION = VERSION; + arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { + lodash[methodName].placeholder = lodash; + }); + arrayEach(["drop", "take"], function(methodName, index) { + LazyWrapper.prototype[methodName] = function(n) { + n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); + var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); + if (result2.__filtered__) { + result2.__takeCount__ = nativeMin(n, result2.__takeCount__); + } else { + result2.__views__.push({ + "size": nativeMin(n, MAX_ARRAY_LENGTH), + "type": methodName + (result2.__dir__ < 0 ? "Right" : "") + }); + } + return result2; + }; + LazyWrapper.prototype[methodName + "Right"] = function(n) { + return this.reverse()[methodName](n).reverse(); + }; + }); + arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { + var type2 = index + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG; + LazyWrapper.prototype[methodName] = function(iteratee2) { + var result2 = this.clone(); + result2.__iteratees__.push({ + "iteratee": getIteratee(iteratee2, 3), + "type": type2 + }); + result2.__filtered__ = result2.__filtered__ || isFilter; + return result2; + }; + }); + arrayEach(["head", "last"], function(methodName, index) { + var takeName = "take" + (index ? "Right" : ""); + LazyWrapper.prototype[methodName] = function() { + return this[takeName](1).value()[0]; + }; + }); + arrayEach(["initial", "tail"], function(methodName, index) { + var dropName = "drop" + (index ? "" : "Right"); + LazyWrapper.prototype[methodName] = function() { + return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); + }; + }); + LazyWrapper.prototype.compact = function() { + return this.filter(identity3); + }; + LazyWrapper.prototype.find = function(predicate) { + return this.filter(predicate).head(); + }; + LazyWrapper.prototype.findLast = function(predicate) { + return this.reverse().find(predicate); + }; + LazyWrapper.prototype.invokeMap = baseRest(function(path8, args) { + if (typeof path8 == "function") { + return new LazyWrapper(this); + } + return this.map(function(value) { + return baseInvoke(value, path8, args); + }); + }); + LazyWrapper.prototype.reject = function(predicate) { + return this.filter(negate(getIteratee(predicate))); + }; + LazyWrapper.prototype.slice = function(start, end) { + start = toInteger(start); + var result2 = this; + if (result2.__filtered__ && (start > 0 || end < 0)) { + return new LazyWrapper(result2); + } + if (start < 0) { + result2 = result2.takeRight(-start); + } else if (start) { + result2 = result2.drop(start); + } + if (end !== undefined2) { + end = toInteger(end); + result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); + } + return result2; + }; + LazyWrapper.prototype.takeRightWhile = function(predicate) { + return this.reverse().takeWhile(predicate).reverse(); + }; + LazyWrapper.prototype.toArray = function() { + return this.take(MAX_ARRAY_LENGTH); + }; + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); + if (!lodashFunc) { + return; + } + lodash.prototype[methodName] = function() { + var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); + var interceptor = function(value2) { + var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); + return isTaker && chainAll ? result3[0] : result3; + }; + if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { + isLazy = useLazy = false; + } + var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; + if (!retUnwrapped && useLazy) { + value = onlyLazy ? value : new LazyWrapper(this); + var result2 = func.apply(value, args); + result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); + return new LodashWrapper(result2, chainAll); + } + if (isUnwrapped && onlyLazy) { + return func.apply(this, args); + } + result2 = this.thru(interceptor); + return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; + }; + }); + arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { + var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value2) { + return func.apply(isArray(value2) ? value2 : [], args); + }); + }; + }); + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (lodashFunc) { + var key = lodashFunc.name + ""; + if (!hasOwnProperty.call(realNames, key)) { + realNames[key] = []; + } + realNames[key].push({ "name": methodName, "func": lodashFunc }); + } + }); + realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ + "name": "wrapper", + "func": undefined2 + }]; + LazyWrapper.prototype.clone = lazyClone; + LazyWrapper.prototype.reverse = lazyReverse; + LazyWrapper.prototype.value = lazyValue; + lodash.prototype.at = wrapperAt; + lodash.prototype.chain = wrapperChain; + lodash.prototype.commit = wrapperCommit; + lodash.prototype.next = wrapperNext; + lodash.prototype.plant = wrapperPlant; + lodash.prototype.reverse = wrapperReverse; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.first = lodash.prototype.head; + if (symIterator) { + lodash.prototype[symIterator] = wrapperToIterator; + } + return lodash; + }; + var _ = runInContext(); + if (typeof define == "function" && typeof define.amd == "object" && define.amd) { + root._ = _; + define(function() { + return _; + }); + } else if (freeModule) { + (freeModule.exports = _)._ = _; + freeExports._ = _; + } else { + root._ = _; + } + }).call(exports2); + } +}); + +// ../../node_modules/.pnpm/immutability-helper@3.1.1/node_modules/immutability-helper/index.js +var require_immutability_helper = __commonJS({ + "../../node_modules/.pnpm/immutability-helper@3.1.1/node_modules/immutability-helper/index.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function stringifiable(obj) { + return typeof obj === "object" && !("toString" in obj) ? Object.prototype.toString.call(obj).slice(8, -1) : obj; + } + var isProduction = typeof process === "object" && process.env.NODE_ENV === "production"; + function invariant5(condition, message) { + if (!condition) { + if (isProduction) { + throw new Error("Invariant failed"); + } + throw new Error(message()); + } + } + exports2.invariant = invariant5; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var splice = Array.prototype.splice; + var toString2 = Object.prototype.toString; + function type2(obj) { + return toString2.call(obj).slice(8, -1); + } + var assign = Object.assign || /* istanbul ignore next */ + function(target, source) { + getAllKeys(source).forEach(function(key) { + if (hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + }); + return target; + }; + var getAllKeys = typeof Object.getOwnPropertySymbols === "function" ? function(obj) { + return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); + } : function(obj) { + return Object.keys(obj); + }; + function copy(object) { + return Array.isArray(object) ? assign(object.constructor(object.length), object) : type2(object) === "Map" ? new Map(object) : type2(object) === "Set" ? new Set(object) : object && typeof object === "object" ? assign(Object.create(Object.getPrototypeOf(object)), object) : object; + } + var Context = ( + /** @class */ + function() { + function Context2() { + this.commands = assign({}, defaultCommands); + this.update = this.update.bind(this); + this.update.extend = this.extend = this.extend.bind(this); + this.update.isEquals = function(x, y) { + return x === y; + }; + this.update.newContext = function() { + return new Context2().update; + }; + } + Object.defineProperty(Context2.prototype, "isEquals", { + get: function() { + return this.update.isEquals; + }, + set: function(value) { + this.update.isEquals = value; + }, + enumerable: true, + configurable: true + }); + Context2.prototype.extend = function(directive, fn) { + this.commands[directive] = fn; + }; + Context2.prototype.update = function(object, $spec) { + var _this = this; + var spec = typeof $spec === "function" ? { $apply: $spec } : $spec; + if (!(Array.isArray(object) && Array.isArray(spec))) { + invariant5(!Array.isArray(spec), function() { + return "update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."; + }); + } + invariant5(typeof spec === "object" && spec !== null, function() { + return "update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the " + ("following commands: " + Object.keys(_this.commands).join(", ") + "."); + }); + var nextObject = object; + getAllKeys(spec).forEach(function(key) { + if (hasOwnProperty.call(_this.commands, key)) { + var objectWasNextObject = object === nextObject; + nextObject = _this.commands[key](spec[key], nextObject, spec, object); + if (objectWasNextObject && _this.isEquals(nextObject, object)) { + nextObject = object; + } + } else { + var nextValueForKey = type2(object) === "Map" ? _this.update(object.get(key), spec[key]) : _this.update(object[key], spec[key]); + var nextObjectValue = type2(nextObject) === "Map" ? nextObject.get(key) : nextObject[key]; + if (!_this.isEquals(nextValueForKey, nextObjectValue) || typeof nextValueForKey === "undefined" && !hasOwnProperty.call(object, key)) { + if (nextObject === object) { + nextObject = copy(object); + } + if (type2(nextObject) === "Map") { + nextObject.set(key, nextValueForKey); + } else { + nextObject[key] = nextValueForKey; + } + } + } + }); + return nextObject; + }; + return Context2; + }() + ); + exports2.Context = Context; + var defaultCommands = { + $push: function(value, nextObject, spec) { + invariantPushAndUnshift(nextObject, spec, "$push"); + return value.length ? nextObject.concat(value) : nextObject; + }, + $unshift: function(value, nextObject, spec) { + invariantPushAndUnshift(nextObject, spec, "$unshift"); + return value.length ? value.concat(nextObject) : nextObject; + }, + $splice: function(value, nextObject, spec, originalObject) { + invariantSplices(nextObject, spec); + value.forEach(function(args) { + invariantSplice(args); + if (nextObject === originalObject && args.length) { + nextObject = copy(originalObject); + } + splice.apply(nextObject, args); + }); + return nextObject; + }, + $set: function(value, _nextObject, spec) { + invariantSet(spec); + return value; + }, + $toggle: function(targets, nextObject) { + invariantSpecArray(targets, "$toggle"); + var nextObjectCopy = targets.length ? copy(nextObject) : nextObject; + targets.forEach(function(target) { + nextObjectCopy[target] = !nextObject[target]; + }); + return nextObjectCopy; + }, + $unset: function(value, nextObject, _spec, originalObject) { + invariantSpecArray(value, "$unset"); + value.forEach(function(key) { + if (Object.hasOwnProperty.call(nextObject, key)) { + if (nextObject === originalObject) { + nextObject = copy(originalObject); + } + delete nextObject[key]; + } + }); + return nextObject; + }, + $add: function(values2, nextObject, _spec, originalObject) { + invariantMapOrSet(nextObject, "$add"); + invariantSpecArray(values2, "$add"); + if (type2(nextObject) === "Map") { + values2.forEach(function(_a) { + var key = _a[0], value = _a[1]; + if (nextObject === originalObject && nextObject.get(key) !== value) { + nextObject = copy(originalObject); + } + nextObject.set(key, value); + }); + } else { + values2.forEach(function(value) { + if (nextObject === originalObject && !nextObject.has(value)) { + nextObject = copy(originalObject); + } + nextObject.add(value); + }); + } + return nextObject; + }, + $remove: function(value, nextObject, _spec, originalObject) { + invariantMapOrSet(nextObject, "$remove"); + invariantSpecArray(value, "$remove"); + value.forEach(function(key) { + if (nextObject === originalObject && nextObject.has(key)) { + nextObject = copy(originalObject); + } + nextObject.delete(key); + }); + return nextObject; + }, + $merge: function(value, nextObject, _spec, originalObject) { + invariantMerge(nextObject, value); + getAllKeys(value).forEach(function(key) { + if (value[key] !== nextObject[key]) { + if (nextObject === originalObject) { + nextObject = copy(originalObject); + } + nextObject[key] = value[key]; + } + }); + return nextObject; + }, + $apply: function(value, original) { + invariantApply(value); + return value(original); + } + }; + var defaultContext = new Context(); + exports2.isEquals = defaultContext.update.isEquals; + exports2.extend = defaultContext.extend; + exports2.default = defaultContext.update; + exports2.default.default = module2.exports = assign(exports2.default, exports2); + function invariantPushAndUnshift(value, spec, command) { + invariant5(Array.isArray(value), function() { + return "update(): expected target of " + stringifiable(command) + " to be an array; got " + stringifiable(value) + "."; + }); + invariantSpecArray(spec[command], command); + } + function invariantSpecArray(spec, command) { + invariant5(Array.isArray(spec), function() { + return "update(): expected spec of " + stringifiable(command) + " to be an array; got " + stringifiable(spec) + ". Did you forget to wrap your parameter in an array?"; + }); + } + function invariantSplices(value, spec) { + invariant5(Array.isArray(value), function() { + return "Expected $splice target to be an array; got " + stringifiable(value); + }); + invariantSplice(spec.$splice); + } + function invariantSplice(value) { + invariant5(Array.isArray(value), function() { + return "update(): expected spec of $splice to be an array of arrays; got " + stringifiable(value) + ". Did you forget to wrap your parameters in an array?"; + }); + } + function invariantApply(fn) { + invariant5(typeof fn === "function", function() { + return "update(): expected spec of $apply to be a function; got " + stringifiable(fn) + "."; + }); + } + function invariantSet(spec) { + invariant5(Object.keys(spec).length === 1, function() { + return "Cannot have more than one key in an object with $set"; + }); + } + function invariantMerge(target, specValue) { + invariant5(specValue && typeof specValue === "object", function() { + return "update(): $merge expects a spec of type 'object'; got " + stringifiable(specValue); + }); + invariant5(target && typeof target === "object", function() { + return "update(): $merge expects a target of type 'object'; got " + stringifiable(target); + }); + } + function invariantMapOrSet(target, command) { + var typeOfTarget = type2(target); + invariant5(typeOfTarget === "Map" || typeOfTarget === "Set", function() { + return "update(): " + stringifiable(command) + " expects a target of type Set or Map; got " + stringifiable(typeOfTarget); + }); + } + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js +var require_decode_data_html = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.default = new Uint16Array( + // prettier-ignore + '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(c) { + return c.charCodeAt(0); + }) + ); + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js +var require_decode_data_xml = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.default = new Uint16Array( + // prettier-ignore + "\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(c) { + return c.charCodeAt(0); + }) + ); + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js +var require_decode_codepoint = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js"(exports2) { + "use strict"; + var _a; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.replaceCodePoint = exports2.fromCodePoint = void 0; + var decodeMap = /* @__PURE__ */ new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376] + ]); + exports2.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins + (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) { + var output = ""; + if (codePoint > 65535) { + codePoint -= 65536; + output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + output += String.fromCharCode(codePoint); + return output; + }; + function replaceCodePoint(codePoint) { + var _a2; + if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { + return 65533; + } + return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint; + } + exports2.replaceCodePoint = replaceCodePoint; + function decodeCodePoint(codePoint) { + return (0, exports2.fromCodePoint)(replaceCodePoint(codePoint)); + } + exports2.default = decodeCodePoint; + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js +var require_decode = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeXML = exports2.decodeHTMLStrict = exports2.decodeHTMLAttribute = exports2.decodeHTML = exports2.determineBranch = exports2.EntityDecoder = exports2.DecodingMode = exports2.BinTrieFlags = exports2.fromCodePoint = exports2.replaceCodePoint = exports2.decodeCodePoint = exports2.xmlDecodeTree = exports2.htmlDecodeTree = void 0; + var decode_data_html_js_1 = __importDefault(require_decode_data_html()); + exports2.htmlDecodeTree = decode_data_html_js_1.default; + var decode_data_xml_js_1 = __importDefault(require_decode_data_xml()); + exports2.xmlDecodeTree = decode_data_xml_js_1.default; + var decode_codepoint_js_1 = __importStar(require_decode_codepoint()); + exports2.decodeCodePoint = decode_codepoint_js_1.default; + var decode_codepoint_js_2 = require_decode_codepoint(); + Object.defineProperty(exports2, "replaceCodePoint", { enumerable: true, get: function() { + return decode_codepoint_js_2.replaceCodePoint; + } }); + Object.defineProperty(exports2, "fromCodePoint", { enumerable: true, get: function() { + return decode_codepoint_js_2.fromCodePoint; + } }); + var CharCodes; + (function(CharCodes2) { + CharCodes2[CharCodes2["NUM"] = 35] = "NUM"; + CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI"; + CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS"; + CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO"; + CharCodes2[CharCodes2["NINE"] = 57] = "NINE"; + CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A"; + CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F"; + CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X"; + CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A"; + CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F"; + CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z"; + })(CharCodes || (CharCodes = {})); + var TO_LOWER_BIT = 32; + var BinTrieFlags; + (function(BinTrieFlags2) { + BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; + BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; + })(BinTrieFlags = exports2.BinTrieFlags || (exports2.BinTrieFlags = {})); + function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; + } + function isHexadecimalCharacter(code) { + return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F; + } + function isAsciiAlphaNumeric(code) { + return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber(code); + } + function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); + } + var EntityDecoderState; + (function(EntityDecoderState2) { + EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity"; + })(EntityDecoderState || (EntityDecoderState = {})); + var DecodingMode; + (function(DecodingMode2) { + DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy"; + DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict"; + DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute"; + })(DecodingMode = exports2.DecodingMode || (exports2.DecodingMode = {})); + var EntityDecoder = ( + /** @class */ + function() { + function EntityDecoder2(decodeTree, emitCodePoint, errors2) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors2; + this.state = EntityDecoderState.EntityStart; + this.consumed = 1; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.decodeMode = DecodingMode.Strict; + } + EntityDecoder2.prototype.startEntity = function(decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + }; + EntityDecoder2.prototype.write = function(str2, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (str2.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(str2, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(str2, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(str2, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(str2, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(str2, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(str2, offset); + } + } + }; + EntityDecoder2.prototype.stateNumericStart = function(str2, offset) { + if (offset >= str2.length) { + return -1; + } + if ((str2.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(str2, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(str2, offset); + }; + EntityDecoder2.prototype.addToNumericResult = function(str2, start, end, base) { + if (start !== end) { + var digitCount = end - start; + this.result = this.result * Math.pow(base, digitCount) + parseInt(str2.substr(start, digitCount), base); + this.consumed += digitCount; + } + }; + EntityDecoder2.prototype.stateNumericHex = function(str2, offset) { + var startIdx = offset; + while (offset < str2.length) { + var char = str2.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + offset += 1; + } else { + this.addToNumericResult(str2, startIdx, offset, 16); + return this.emitNumericEntity(char, 3); + } + } + this.addToNumericResult(str2, startIdx, offset, 16); + return -1; + }; + EntityDecoder2.prototype.stateNumericDecimal = function(str2, offset) { + var startIdx = offset; + while (offset < str2.length) { + var char = str2.charCodeAt(offset); + if (isNumber(char)) { + offset += 1; + } else { + this.addToNumericResult(str2, startIdx, offset, 10); + return this.emitNumericEntity(char, 2); + } + } + this.addToNumericResult(str2, startIdx, offset, 10); + return -1; + }; + EntityDecoder2.prototype.emitNumericEntity = function(lastCp, expectedLength) { + var _a; + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + }; + EntityDecoder2.prototype.stateNamedEntity = function(str2, offset) { + var decodeTree = this.decodeTree; + var current2 = decodeTree[this.treeIndex]; + var valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14; + for (; offset < str2.length; offset++, this.excess++) { + var char = str2.charCodeAt(offset); + this.treeIndex = determineBranch(decodeTree, current2, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || // If we are parsing an attribute + this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity(); + } + current2 = decodeTree[this.treeIndex]; + valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14; + if (valueLength !== 0) { + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + if (this.decodeMode !== DecodingMode.Strict) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + } + return -1; + }; + EntityDecoder2.prototype.emitNotTerminatedNamedEntity = function() { + var _a; + var _b = this, result = _b.result, decodeTree = _b.decodeTree; + var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + }; + EntityDecoder2.prototype.emitNamedEntityData = function(result, valueLength, consumed) { + var decodeTree = this.decodeTree; + this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed); + if (valueLength === 3) { + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + }; + EntityDecoder2.prototype.end = function() { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0; + } + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + return 0; + } + } + }; + return EntityDecoder2; + }() + ); + exports2.EntityDecoder = EntityDecoder; + function getDecoder(decodeTree) { + var ret = ""; + var decoder = new EntityDecoder(decodeTree, function(str2) { + return ret += (0, decode_codepoint_js_1.fromCodePoint)(str2); + }); + return function decodeWithTrie(str2, decodeMode) { + var lastIndex = 0; + var offset = 0; + while ((offset = str2.indexOf("&", offset)) >= 0) { + ret += str2.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + var len = decoder.write( + str2, + // Skip the "&" + offset + 1 + ); + if (len < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + len; + offset = len === 0 ? lastIndex + 1 : lastIndex; + } + var result = ret + str2.slice(lastIndex); + ret = ""; + return result; + }; + } + function determineBranch(decodeTree, current2, nodeIdx, char) { + var branchCount = (current2 & BinTrieFlags.BRANCH_LENGTH) >> 7; + var jumpOffset = current2 & BinTrieFlags.JUMP_TABLE; + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; + } + if (jumpOffset) { + var value = char - jumpOffset; + return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1; + } + var lo = nodeIdx; + var hi = lo + branchCount - 1; + while (lo <= hi) { + var mid = lo + hi >>> 1; + var midVal = decodeTree[mid]; + if (midVal < char) { + lo = mid + 1; + } else if (midVal > char) { + hi = mid - 1; + } else { + return decodeTree[mid + branchCount]; + } + } + return -1; + } + exports2.determineBranch = determineBranch; + var htmlDecoder = getDecoder(decode_data_html_js_1.default); + var xmlDecoder = getDecoder(decode_data_xml_js_1.default); + function decodeHTML(str2, mode) { + if (mode === void 0) { + mode = DecodingMode.Legacy; + } + return htmlDecoder(str2, mode); + } + exports2.decodeHTML = decodeHTML; + function decodeHTMLAttribute(str2) { + return htmlDecoder(str2, DecodingMode.Attribute); + } + exports2.decodeHTMLAttribute = decodeHTMLAttribute; + function decodeHTMLStrict(str2) { + return htmlDecoder(str2, DecodingMode.Strict); + } + exports2.decodeHTMLStrict = decodeHTMLStrict; + function decodeXML(str2) { + return xmlDecoder(str2, DecodingMode.Strict); + } + exports2.decodeXML = decodeXML; + } +}); + +// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js +var require_Tokenizer = __commonJS({ + "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.QuoteType = void 0; + var decode_js_1 = require_decode(); + var CharCodes; + (function(CharCodes2) { + CharCodes2[CharCodes2["Tab"] = 9] = "Tab"; + CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine"; + CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed"; + CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn"; + CharCodes2[CharCodes2["Space"] = 32] = "Space"; + CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark"; + CharCodes2[CharCodes2["Number"] = 35] = "Number"; + CharCodes2[CharCodes2["Amp"] = 38] = "Amp"; + CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote"; + CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote"; + CharCodes2[CharCodes2["Dash"] = 45] = "Dash"; + CharCodes2[CharCodes2["Slash"] = 47] = "Slash"; + CharCodes2[CharCodes2["Zero"] = 48] = "Zero"; + CharCodes2[CharCodes2["Nine"] = 57] = "Nine"; + CharCodes2[CharCodes2["Semi"] = 59] = "Semi"; + CharCodes2[CharCodes2["Lt"] = 60] = "Lt"; + CharCodes2[CharCodes2["Eq"] = 61] = "Eq"; + CharCodes2[CharCodes2["Gt"] = 62] = "Gt"; + CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark"; + CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA"; + CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA"; + CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF"; + CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF"; + CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ"; + CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ"; + CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX"; + CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket"; + })(CharCodes || (CharCodes = {})); + var State2; + (function(State3) { + State3[State3["Text"] = 1] = "Text"; + State3[State3["BeforeTagName"] = 2] = "BeforeTagName"; + State3[State3["InTagName"] = 3] = "InTagName"; + State3[State3["InSelfClosingTag"] = 4] = "InSelfClosingTag"; + State3[State3["BeforeClosingTagName"] = 5] = "BeforeClosingTagName"; + State3[State3["InClosingTagName"] = 6] = "InClosingTagName"; + State3[State3["AfterClosingTagName"] = 7] = "AfterClosingTagName"; + State3[State3["BeforeAttributeName"] = 8] = "BeforeAttributeName"; + State3[State3["InAttributeName"] = 9] = "InAttributeName"; + State3[State3["AfterAttributeName"] = 10] = "AfterAttributeName"; + State3[State3["BeforeAttributeValue"] = 11] = "BeforeAttributeValue"; + State3[State3["InAttributeValueDq"] = 12] = "InAttributeValueDq"; + State3[State3["InAttributeValueSq"] = 13] = "InAttributeValueSq"; + State3[State3["InAttributeValueNq"] = 14] = "InAttributeValueNq"; + State3[State3["BeforeDeclaration"] = 15] = "BeforeDeclaration"; + State3[State3["InDeclaration"] = 16] = "InDeclaration"; + State3[State3["InProcessingInstruction"] = 17] = "InProcessingInstruction"; + State3[State3["BeforeComment"] = 18] = "BeforeComment"; + State3[State3["CDATASequence"] = 19] = "CDATASequence"; + State3[State3["InSpecialComment"] = 20] = "InSpecialComment"; + State3[State3["InCommentLike"] = 21] = "InCommentLike"; + State3[State3["BeforeSpecialS"] = 22] = "BeforeSpecialS"; + State3[State3["SpecialStartSequence"] = 23] = "SpecialStartSequence"; + State3[State3["InSpecialTag"] = 24] = "InSpecialTag"; + State3[State3["BeforeEntity"] = 25] = "BeforeEntity"; + State3[State3["BeforeNumericEntity"] = 26] = "BeforeNumericEntity"; + State3[State3["InNamedEntity"] = 27] = "InNamedEntity"; + State3[State3["InNumericEntity"] = 28] = "InNumericEntity"; + State3[State3["InHexEntity"] = 29] = "InHexEntity"; + })(State2 || (State2 = {})); + function isWhitespace2(c) { + return c === CharCodes.Space || c === CharCodes.NewLine || c === CharCodes.Tab || c === CharCodes.FormFeed || c === CharCodes.CarriageReturn; + } + function isEndOfTagSection(c) { + return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace2(c); + } + function isNumber(c) { + return c >= CharCodes.Zero && c <= CharCodes.Nine; + } + function isASCIIAlpha(c) { + return c >= CharCodes.LowerA && c <= CharCodes.LowerZ || c >= CharCodes.UpperA && c <= CharCodes.UpperZ; + } + function isHexDigit(c) { + return c >= CharCodes.UpperA && c <= CharCodes.UpperF || c >= CharCodes.LowerA && c <= CharCodes.LowerF; + } + var QuoteType; + (function(QuoteType2) { + QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue"; + QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted"; + QuoteType2[QuoteType2["Single"] = 2] = "Single"; + QuoteType2[QuoteType2["Double"] = 3] = "Double"; + })(QuoteType = exports2.QuoteType || (exports2.QuoteType = {})); + var Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + CdataEnd: new Uint8Array([93, 93, 62]), + CommentEnd: new Uint8Array([45, 45, 62]), + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]) + // ` this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = State2.BeforeTagName; + this.sectionStart = this.index; + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.state = State2.BeforeEntity; + } + }; + Tokenizer2.prototype.stateSpecialStartSequence = function(c) { + var isEnd = this.sequenceIndex === this.currentSequence.length; + var isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.isSpecial = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = State2.InTagName; + this.stateInTagName(c); + }; + Tokenizer2.prototype.stateInSpecialTag = function(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === CharCodes.Gt || isWhitespace2(c)) { + var endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + var actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.isSpecial = false; + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd) { + if (this.decodeEntities && c === CharCodes.Amp) { + this.state = State2.BeforeEntity; + } + } else if (this.fastForwardTo(CharCodes.Lt)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === CharCodes.Lt); + } + }; + Tokenizer2.prototype.stateCDATASequence = function(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = State2.InCommentLike; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = State2.InDeclaration; + this.stateInDeclaration(c); + } + }; + Tokenizer2.prototype.fastForwardTo = function(c) { + while (++this.index < this.buffer.length + this.offset) { + if (this.buffer.charCodeAt(this.index - this.offset) === c) { + return true; + } + } + this.index = this.buffer.length + this.offset - 1; + return false; + }; + Tokenizer2.prototype.stateInCommentLike = function(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index, 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index, 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = State2.Text; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + }; + Tokenizer2.prototype.isTagStartChar = function(c) { + return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c); + }; + Tokenizer2.prototype.startSpecial = function(sequence, offset) { + this.isSpecial = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + this.state = State2.SpecialStartSequence; + }; + Tokenizer2.prototype.stateBeforeTagName = function(c) { + if (c === CharCodes.ExclamationMark) { + this.state = State2.BeforeDeclaration; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.Questionmark) { + this.state = State2.InProcessingInstruction; + this.sectionStart = this.index + 1; + } else if (this.isTagStartChar(c)) { + var lower = c | 32; + this.sectionStart = this.index; + if (!this.xmlMode && lower === Sequences.TitleEnd[2]) { + this.startSpecial(Sequences.TitleEnd, 3); + } else { + this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State2.BeforeSpecialS : State2.InTagName; + } + } else if (c === CharCodes.Slash) { + this.state = State2.BeforeClosingTagName; + } else { + this.state = State2.Text; + this.stateText(c); + } + }; + Tokenizer2.prototype.stateInTagName = function(c) { + if (isEndOfTagSection(c)) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State2.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } + }; + Tokenizer2.prototype.stateBeforeClosingTagName = function(c) { + if (isWhitespace2(c)) { + } else if (c === CharCodes.Gt) { + this.state = State2.Text; + } else { + this.state = this.isTagStartChar(c) ? State2.InClosingTagName : State2.InSpecialComment; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateInClosingTagName = function(c) { + if (c === CharCodes.Gt || isWhitespace2(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State2.AfterClosingTagName; + this.stateAfterClosingTagName(c); + } + }; + Tokenizer2.prototype.stateAfterClosingTagName = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.state = State2.Text; + this.baseState = State2.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeAttributeName = function(c) { + if (c === CharCodes.Gt) { + this.cbs.onopentagend(this.index); + if (this.isSpecial) { + this.state = State2.InSpecialTag; + this.sequenceIndex = 0; + } else { + this.state = State2.Text; + } + this.baseState = this.state; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.Slash) { + this.state = State2.InSelfClosingTag; + } else if (!isWhitespace2(c)) { + this.state = State2.InAttributeName; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateInSelfClosingTag = function(c) { + if (c === CharCodes.Gt) { + this.cbs.onselfclosingtag(this.index); + this.state = State2.Text; + this.baseState = State2.Text; + this.sectionStart = this.index + 1; + this.isSpecial = false; + } else if (!isWhitespace2(c)) { + this.state = State2.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } + }; + Tokenizer2.prototype.stateInAttributeName = function(c) { + if (c === CharCodes.Eq || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State2.AfterAttributeName; + this.stateAfterAttributeName(c); + } + }; + Tokenizer2.prototype.stateAfterAttributeName = function(c) { + if (c === CharCodes.Eq) { + this.state = State2.BeforeAttributeValue; + } else if (c === CharCodes.Slash || c === CharCodes.Gt) { + this.cbs.onattribend(QuoteType.NoValue, this.index); + this.state = State2.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } else if (!isWhitespace2(c)) { + this.cbs.onattribend(QuoteType.NoValue, this.index); + this.state = State2.InAttributeName; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateBeforeAttributeValue = function(c) { + if (c === CharCodes.DoubleQuote) { + this.state = State2.InAttributeValueDq; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.SingleQuote) { + this.state = State2.InAttributeValueSq; + this.sectionStart = this.index + 1; + } else if (!isWhitespace2(c)) { + this.sectionStart = this.index; + this.state = State2.InAttributeValueNq; + this.stateInAttributeValueNoQuotes(c); + } + }; + Tokenizer2.prototype.handleInAttributeValue = function(c, quote) { + if (c === quote || !this.decodeEntities && this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index); + this.state = State2.BeforeAttributeName; + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.baseState = this.state; + this.state = State2.BeforeEntity; + } + }; + Tokenizer2.prototype.stateInAttributeValueDoubleQuotes = function(c) { + this.handleInAttributeValue(c, CharCodes.DoubleQuote); + }; + Tokenizer2.prototype.stateInAttributeValueSingleQuotes = function(c) { + this.handleInAttributeValue(c, CharCodes.SingleQuote); + }; + Tokenizer2.prototype.stateInAttributeValueNoQuotes = function(c) { + if (isWhitespace2(c) || c === CharCodes.Gt) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(QuoteType.Unquoted, this.index); + this.state = State2.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.baseState = this.state; + this.state = State2.BeforeEntity; + } + }; + Tokenizer2.prototype.stateBeforeDeclaration = function(c) { + if (c === CharCodes.OpeningSquareBracket) { + this.state = State2.CDATASequence; + this.sequenceIndex = 0; + } else { + this.state = c === CharCodes.Dash ? State2.BeforeComment : State2.InDeclaration; + } + }; + Tokenizer2.prototype.stateInDeclaration = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.ondeclaration(this.sectionStart, this.index); + this.state = State2.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateInProcessingInstruction = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = State2.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeComment = function(c) { + if (c === CharCodes.Dash) { + this.state = State2.InCommentLike; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = State2.InDeclaration; + } + }; + Tokenizer2.prototype.stateInSpecialComment = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.oncomment(this.sectionStart, this.index, 0); + this.state = State2.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeSpecialS = function(c) { + var lower = c | 32; + if (lower === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (lower === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = State2.InTagName; + this.stateInTagName(c); + } + }; + Tokenizer2.prototype.stateBeforeEntity = function(c) { + this.entityExcess = 1; + this.entityResult = 0; + if (c === CharCodes.Number) { + this.state = State2.BeforeNumericEntity; + } else if (c === CharCodes.Amp) { + } else { + this.trieIndex = 0; + this.trieCurrent = this.entityTrie[0]; + this.state = State2.InNamedEntity; + this.stateInNamedEntity(c); + } + }; + Tokenizer2.prototype.stateInNamedEntity = function(c) { + this.entityExcess += 1; + this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c); + if (this.trieIndex < 0) { + this.emitNamedEntity(); + this.index--; + return; + } + this.trieCurrent = this.entityTrie[this.trieIndex]; + var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH; + if (masked) { + var valueLength = (masked >> 14) - 1; + if (!this.allowLegacyEntity() && c !== CharCodes.Semi) { + this.trieIndex += valueLength; + } else { + var entityStart = this.index - this.entityExcess + 1; + if (entityStart > this.sectionStart) { + this.emitPartial(this.sectionStart, entityStart); + } + this.entityResult = this.trieIndex; + this.trieIndex += valueLength; + this.entityExcess = 0; + this.sectionStart = this.index + 1; + if (valueLength === 0) { + this.emitNamedEntity(); + } + } + } + }; + Tokenizer2.prototype.emitNamedEntity = function() { + this.state = this.baseState; + if (this.entityResult === 0) { + return; + } + var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + switch (valueLength) { + case 1: { + this.emitCodePoint(this.entityTrie[this.entityResult] & ~decode_js_1.BinTrieFlags.VALUE_LENGTH); + break; + } + case 2: { + this.emitCodePoint(this.entityTrie[this.entityResult + 1]); + break; + } + case 3: { + this.emitCodePoint(this.entityTrie[this.entityResult + 1]); + this.emitCodePoint(this.entityTrie[this.entityResult + 2]); + } + } + }; + Tokenizer2.prototype.stateBeforeNumericEntity = function(c) { + if ((c | 32) === CharCodes.LowerX) { + this.entityExcess++; + this.state = State2.InHexEntity; + } else { + this.state = State2.InNumericEntity; + this.stateInNumericEntity(c); + } + }; + Tokenizer2.prototype.emitNumericEntity = function(strict) { + var entityStart = this.index - this.entityExcess - 1; + var numberStart = entityStart + 2 + Number(this.state === State2.InHexEntity); + if (numberStart !== this.index) { + if (entityStart > this.sectionStart) { + this.emitPartial(this.sectionStart, entityStart); + } + this.sectionStart = this.index + Number(strict); + this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult)); + } + this.state = this.baseState; + }; + Tokenizer2.prototype.stateInNumericEntity = function(c) { + if (c === CharCodes.Semi) { + this.emitNumericEntity(true); + } else if (isNumber(c)) { + this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero); + this.entityExcess++; + } else { + if (this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else { + this.state = this.baseState; + } + this.index--; + } + }; + Tokenizer2.prototype.stateInHexEntity = function(c) { + if (c === CharCodes.Semi) { + this.emitNumericEntity(true); + } else if (isNumber(c)) { + this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero); + this.entityExcess++; + } else if (isHexDigit(c)) { + this.entityResult = this.entityResult * 16 + ((c | 32) - CharCodes.LowerA + 10); + this.entityExcess++; + } else { + if (this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else { + this.state = this.baseState; + } + this.index--; + } + }; + Tokenizer2.prototype.allowLegacyEntity = function() { + return !this.xmlMode && (this.baseState === State2.Text || this.baseState === State2.InSpecialTag); + }; + Tokenizer2.prototype.cleanup = function() { + if (this.running && this.sectionStart !== this.index) { + if (this.state === State2.Text || this.state === State2.InSpecialTag && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueNq) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + }; + Tokenizer2.prototype.shouldContinue = function() { + return this.index < this.buffer.length + this.offset && this.running; + }; + Tokenizer2.prototype.parse = function() { + while (this.shouldContinue()) { + var c = this.buffer.charCodeAt(this.index - this.offset); + switch (this.state) { + case State2.Text: { + this.stateText(c); + break; + } + case State2.SpecialStartSequence: { + this.stateSpecialStartSequence(c); + break; + } + case State2.InSpecialTag: { + this.stateInSpecialTag(c); + break; + } + case State2.CDATASequence: { + this.stateCDATASequence(c); + break; + } + case State2.InAttributeValueDq: { + this.stateInAttributeValueDoubleQuotes(c); + break; + } + case State2.InAttributeName: { + this.stateInAttributeName(c); + break; + } + case State2.InCommentLike: { + this.stateInCommentLike(c); + break; + } + case State2.InSpecialComment: { + this.stateInSpecialComment(c); + break; + } + case State2.BeforeAttributeName: { + this.stateBeforeAttributeName(c); + break; + } + case State2.InTagName: { + this.stateInTagName(c); + break; + } + case State2.InClosingTagName: { + this.stateInClosingTagName(c); + break; + } + case State2.BeforeTagName: { + this.stateBeforeTagName(c); + break; + } + case State2.AfterAttributeName: { + this.stateAfterAttributeName(c); + break; + } + case State2.InAttributeValueSq: { + this.stateInAttributeValueSingleQuotes(c); + break; + } + case State2.BeforeAttributeValue: { + this.stateBeforeAttributeValue(c); + break; + } + case State2.BeforeClosingTagName: { + this.stateBeforeClosingTagName(c); + break; + } + case State2.AfterClosingTagName: { + this.stateAfterClosingTagName(c); + break; + } + case State2.BeforeSpecialS: { + this.stateBeforeSpecialS(c); + break; + } + case State2.InAttributeValueNq: { + this.stateInAttributeValueNoQuotes(c); + break; + } + case State2.InSelfClosingTag: { + this.stateInSelfClosingTag(c); + break; + } + case State2.InDeclaration: { + this.stateInDeclaration(c); + break; + } + case State2.BeforeDeclaration: { + this.stateBeforeDeclaration(c); + break; + } + case State2.BeforeComment: { + this.stateBeforeComment(c); + break; + } + case State2.InProcessingInstruction: { + this.stateInProcessingInstruction(c); + break; + } + case State2.InNamedEntity: { + this.stateInNamedEntity(c); + break; + } + case State2.BeforeEntity: { + this.stateBeforeEntity(c); + break; + } + case State2.InHexEntity: { + this.stateInHexEntity(c); + break; + } + case State2.InNumericEntity: { + this.stateInNumericEntity(c); + break; + } + default: { + this.stateBeforeNumericEntity(c); + } + } + this.index++; + } + this.cleanup(); + }; + Tokenizer2.prototype.finish = function() { + if (this.state === State2.InNamedEntity) { + this.emitNamedEntity(); + } + if (this.sectionStart < this.index) { + this.handleTrailingData(); + } + this.cbs.onend(); + }; + Tokenizer2.prototype.handleTrailingData = function() { + var endIndex = this.buffer.length + this.offset; + if (this.state === State2.InCommentLike) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex, 0); + } else { + this.cbs.oncomment(this.sectionStart, endIndex, 0); + } + } else if (this.state === State2.InNumericEntity && this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else if (this.state === State2.InHexEntity && this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else if (this.state === State2.InTagName || this.state === State2.BeforeAttributeName || this.state === State2.BeforeAttributeValue || this.state === State2.AfterAttributeName || this.state === State2.InAttributeName || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueNq || this.state === State2.InClosingTagName) { + } else { + this.cbs.ontext(this.sectionStart, endIndex); + } + }; + Tokenizer2.prototype.emitPartial = function(start, endIndex) { + if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) { + this.cbs.onattribdata(start, endIndex); + } else { + this.cbs.ontext(start, endIndex); + } + }; + Tokenizer2.prototype.emitCodePoint = function(cp) { + if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) { + this.cbs.onattribentity(cp); + } else { + this.cbs.ontextentity(cp); + } + }; + return Tokenizer2; + }() + ); + exports2.default = Tokenizer; + } +}); + +// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js +var require_Parser = __commonJS({ + "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Parser = void 0; + var Tokenizer_js_1 = __importStar(require_Tokenizer()); + var decode_js_1 = require_decode(); + var formTags = /* @__PURE__ */ new Set([ + "input", + "option", + "optgroup", + "select", + "button", + "datalist", + "textarea" + ]); + var pTag = /* @__PURE__ */ new Set(["p"]); + var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]); + var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]); + var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]); + var openImpliesClose = /* @__PURE__ */ new Map([ + ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])], + ["th", /* @__PURE__ */ new Set(["th"])], + ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])], + ["body", /* @__PURE__ */ new Set(["head", "link", "script"])], + ["li", /* @__PURE__ */ new Set(["li"])], + ["p", pTag], + ["h1", pTag], + ["h2", pTag], + ["h3", pTag], + ["h4", pTag], + ["h5", pTag], + ["h6", pTag], + ["select", formTags], + ["input", formTags], + ["output", formTags], + ["button", formTags], + ["datalist", formTags], + ["textarea", formTags], + ["option", /* @__PURE__ */ new Set(["option"])], + ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])], + ["dd", ddtTags], + ["dt", ddtTags], + ["address", pTag], + ["article", pTag], + ["aside", pTag], + ["blockquote", pTag], + ["details", pTag], + ["div", pTag], + ["dl", pTag], + ["fieldset", pTag], + ["figcaption", pTag], + ["figure", pTag], + ["footer", pTag], + ["form", pTag], + ["header", pTag], + ["hr", pTag], + ["main", pTag], + ["nav", pTag], + ["ol", pTag], + ["pre", pTag], + ["section", pTag], + ["table", pTag], + ["ul", pTag], + ["rt", rtpTags], + ["rp", rtpTags], + ["tbody", tableSectionTags], + ["tfoot", tableSectionTags] + ]); + var voidElements = /* @__PURE__ */ new Set([ + "area", + "base", + "basefont", + "br", + "col", + "command", + "embed", + "frame", + "hr", + "img", + "input", + "isindex", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr" + ]); + var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]); + var htmlIntegrationElements = /* @__PURE__ */ new Set([ + "mi", + "mo", + "mn", + "ms", + "mtext", + "annotation-xml", + "foreignobject", + "desc", + "title" + ]); + var reNameEnd = /\s|\//; + var Parser = ( + /** @class */ + function() { + function Parser2(cbs, options2) { + if (options2 === void 0) { + options2 = {}; + } + var _a, _b, _c, _d, _e; + this.options = options2; + this.startIndex = 0; + this.endIndex = 0; + this.openTagStart = 0; + this.tagname = ""; + this.attribname = ""; + this.attribvalue = ""; + this.attribs = null; + this.stack = []; + this.foreignContext = []; + this.buffers = []; + this.bufferOffset = 0; + this.writeIndex = 0; + this.ended = false; + this.cbs = cbs !== null && cbs !== void 0 ? cbs : {}; + this.lowerCaseTagNames = (_a = options2.lowerCaseTags) !== null && _a !== void 0 ? _a : !options2.xmlMode; + this.lowerCaseAttributeNames = (_b = options2.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options2.xmlMode; + this.tokenizer = new ((_c = options2.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this); + (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this); + } + Parser2.prototype.ontext = function(start, endIndex) { + var _a, _b; + var data = this.getSlice(start, endIndex); + this.endIndex = endIndex - 1; + (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data); + this.startIndex = endIndex; + }; + Parser2.prototype.ontextentity = function(cp) { + var _a, _b; + var index = this.tokenizer.getSectionStart(); + this.endIndex = index - 1; + (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp)); + this.startIndex = index; + }; + Parser2.prototype.isVoidElement = function(name) { + return !this.options.xmlMode && voidElements.has(name); + }; + Parser2.prototype.onopentagname = function(start, endIndex) { + this.endIndex = endIndex; + var name = this.getSlice(start, endIndex); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + this.emitOpenTag(name); + }; + Parser2.prototype.emitOpenTag = function(name) { + var _a, _b, _c, _d; + this.openTagStart = this.startIndex; + this.tagname = name; + var impliesClose = !this.options.xmlMode && openImpliesClose.get(name); + if (impliesClose) { + while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) { + var element = this.stack.pop(); + (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true); + } + } + if (!this.isVoidElement(name)) { + this.stack.push(name); + if (foreignContextElements.has(name)) { + this.foreignContext.push(true); + } else if (htmlIntegrationElements.has(name)) { + this.foreignContext.push(false); + } + } + (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name); + if (this.cbs.onopentag) + this.attribs = {}; + }; + Parser2.prototype.endOpenTag = function(isImplied) { + var _a, _b; + this.startIndex = this.openTagStart; + if (this.attribs) { + (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied); + this.attribs = null; + } + if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) { + this.cbs.onclosetag(this.tagname, true); + } + this.tagname = ""; + }; + Parser2.prototype.onopentagend = function(endIndex) { + this.endIndex = endIndex; + this.endOpenTag(false); + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onclosetag = function(start, endIndex) { + var _a, _b, _c, _d, _e, _f; + this.endIndex = endIndex; + var name = this.getSlice(start, endIndex); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + if (foreignContextElements.has(name) || htmlIntegrationElements.has(name)) { + this.foreignContext.pop(); + } + if (!this.isVoidElement(name)) { + var pos = this.stack.lastIndexOf(name); + if (pos !== -1) { + if (this.cbs.onclosetag) { + var count2 = this.stack.length - pos; + while (count2--) { + this.cbs.onclosetag(this.stack.pop(), count2 !== 0); + } + } else + this.stack.length = pos; + } else if (!this.options.xmlMode && name === "p") { + this.emitOpenTag("p"); + this.closeCurrentTag(true); + } + } else if (!this.options.xmlMode && name === "br") { + (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, "br"); + (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true); + (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", false); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onselfclosingtag = function(endIndex) { + this.endIndex = endIndex; + if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) { + this.closeCurrentTag(false); + this.startIndex = endIndex + 1; + } else { + this.onopentagend(endIndex); + } + }; + Parser2.prototype.closeCurrentTag = function(isOpenImplied) { + var _a, _b; + var name = this.tagname; + this.endOpenTag(isOpenImplied); + if (this.stack[this.stack.length - 1] === name) { + (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied); + this.stack.pop(); + } + }; + Parser2.prototype.onattribname = function(start, endIndex) { + this.startIndex = start; + var name = this.getSlice(start, endIndex); + this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name; + }; + Parser2.prototype.onattribdata = function(start, endIndex) { + this.attribvalue += this.getSlice(start, endIndex); + }; + Parser2.prototype.onattribentity = function(cp) { + this.attribvalue += (0, decode_js_1.fromCodePoint)(cp); + }; + Parser2.prototype.onattribend = function(quote, endIndex) { + var _a, _b; + this.endIndex = endIndex; + (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null); + if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) { + this.attribs[this.attribname] = this.attribvalue; + } + this.attribvalue = ""; + }; + Parser2.prototype.getInstructionName = function(value) { + var index = value.search(reNameEnd); + var name = index < 0 ? value : value.substr(0, index); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + return name; + }; + Parser2.prototype.ondeclaration = function(start, endIndex) { + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex); + if (this.cbs.onprocessinginstruction) { + var name = this.getInstructionName(value); + this.cbs.onprocessinginstruction("!".concat(name), "!".concat(value)); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onprocessinginstruction = function(start, endIndex) { + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex); + if (this.cbs.onprocessinginstruction) { + var name = this.getInstructionName(value); + this.cbs.onprocessinginstruction("?".concat(name), "?".concat(value)); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.oncomment = function(start, endIndex, offset) { + var _a, _b, _c, _d; + this.endIndex = endIndex; + (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset)); + (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c); + this.startIndex = endIndex + 1; + }; + Parser2.prototype.oncdata = function(start, endIndex, offset) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex - offset); + if (this.options.xmlMode || this.options.recognizeCDATA) { + (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a); + (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value); + (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e); + } else { + (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value, "]]")); + (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onend = function() { + var _a, _b; + if (this.cbs.onclosetag) { + this.endIndex = this.startIndex; + for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true)) + ; + } + (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + Parser2.prototype.reset = function() { + var _a, _b, _c, _d; + (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a); + this.tokenizer.reset(); + this.tagname = ""; + this.attribname = ""; + this.attribs = null; + this.stack.length = 0; + this.startIndex = 0; + this.endIndex = 0; + (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this); + this.buffers.length = 0; + this.bufferOffset = 0; + this.writeIndex = 0; + this.ended = false; + }; + Parser2.prototype.parseComplete = function(data) { + this.reset(); + this.end(data); + }; + Parser2.prototype.getSlice = function(start, end) { + while (start - this.bufferOffset >= this.buffers[0].length) { + this.shiftBuffer(); + } + var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset); + while (end - this.bufferOffset > this.buffers[0].length) { + this.shiftBuffer(); + slice += this.buffers[0].slice(0, end - this.bufferOffset); + } + return slice; + }; + Parser2.prototype.shiftBuffer = function() { + this.bufferOffset += this.buffers[0].length; + this.writeIndex--; + this.buffers.shift(); + }; + Parser2.prototype.write = function(chunk) { + var _a, _b; + if (this.ended) { + (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".write() after done!")); + return; + } + this.buffers.push(chunk); + if (this.tokenizer.running) { + this.tokenizer.write(chunk); + this.writeIndex++; + } + }; + Parser2.prototype.end = function(chunk) { + var _a, _b; + if (this.ended) { + (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".end() after done!")); + return; + } + if (chunk) + this.write(chunk); + this.ended = true; + this.tokenizer.end(); + }; + Parser2.prototype.pause = function() { + this.tokenizer.pause(); + }; + Parser2.prototype.resume = function() { + this.tokenizer.resume(); + while (this.tokenizer.running && this.writeIndex < this.buffers.length) { + this.tokenizer.write(this.buffers[this.writeIndex++]); + } + if (this.ended) + this.tokenizer.end(); + }; + Parser2.prototype.parseChunk = function(chunk) { + this.write(chunk); + }; + Parser2.prototype.done = function(chunk) { + this.end(chunk); + }; + return Parser2; + }() + ); + exports2.Parser = Parser; + } +}); + +// ../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js +var require_lib = __commonJS({ + "../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Doctype = exports2.CDATA = exports2.Tag = exports2.Style = exports2.Script = exports2.Comment = exports2.Directive = exports2.Text = exports2.Root = exports2.isTag = exports2.ElementType = void 0; + var ElementType; + (function(ElementType2) { + ElementType2["Root"] = "root"; + ElementType2["Text"] = "text"; + ElementType2["Directive"] = "directive"; + ElementType2["Comment"] = "comment"; + ElementType2["Script"] = "script"; + ElementType2["Style"] = "style"; + ElementType2["Tag"] = "tag"; + ElementType2["CDATA"] = "cdata"; + ElementType2["Doctype"] = "doctype"; + })(ElementType = exports2.ElementType || (exports2.ElementType = {})); + function isTag(elem) { + return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; + } + exports2.isTag = isTag; + exports2.Root = ElementType.Root; + exports2.Text = ElementType.Text; + exports2.Directive = ElementType.Directive; + exports2.Comment = ElementType.Comment; + exports2.Script = ElementType.Script; + exports2.Style = ElementType.Style; + exports2.Tag = ElementType.Tag; + exports2.CDATA = ElementType.CDATA; + exports2.Doctype = ElementType.Doctype; + } +}); + +// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js +var require_node = __commonJS({ + "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || /* @__PURE__ */ function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + var __assign = exports2 && exports2.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.cloneNode = exports2.hasChildren = exports2.isDocument = exports2.isDirective = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = exports2.Element = exports2.Document = exports2.CDATA = exports2.NodeWithChildren = exports2.ProcessingInstruction = exports2.Comment = exports2.Text = exports2.DataNode = exports2.Node = void 0; + var domelementtype_1 = require_lib(); + var Node = ( + /** @class */ + function() { + function Node2() { + this.parent = null; + this.prev = null; + this.next = null; + this.startIndex = null; + this.endIndex = null; + } + Object.defineProperty(Node2.prototype, "parentNode", { + // Read-write aliases for properties + /** + * Same as {@link parent}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.parent; + }, + set: function(parent) { + this.parent = parent; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node2.prototype, "previousSibling", { + /** + * Same as {@link prev}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.prev; + }, + set: function(prev) { + this.prev = prev; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node2.prototype, "nextSibling", { + /** + * Same as {@link next}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.next; + }, + set: function(next) { + this.next = next; + }, + enumerable: false, + configurable: true + }); + Node2.prototype.cloneNode = function(recursive) { + if (recursive === void 0) { + recursive = false; + } + return cloneNode(this, recursive); + }; + return Node2; + }() + ); + exports2.Node = Node; + var DataNode = ( + /** @class */ + function(_super) { + __extends(DataNode2, _super); + function DataNode2(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + Object.defineProperty(DataNode2.prototype, "nodeValue", { + /** + * Same as {@link data}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.data; + }, + set: function(data) { + this.data = data; + }, + enumerable: false, + configurable: true + }); + return DataNode2; + }(Node) + ); + exports2.DataNode = DataNode; + var Text2 = ( + /** @class */ + function(_super) { + __extends(Text3, _super); + function Text3() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Text; + return _this; + } + Object.defineProperty(Text3.prototype, "nodeType", { + get: function() { + return 3; + }, + enumerable: false, + configurable: true + }); + return Text3; + }(DataNode) + ); + exports2.Text = Text2; + var Comment = ( + /** @class */ + function(_super) { + __extends(Comment2, _super); + function Comment2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Comment; + return _this; + } + Object.defineProperty(Comment2.prototype, "nodeType", { + get: function() { + return 8; + }, + enumerable: false, + configurable: true + }); + return Comment2; + }(DataNode) + ); + exports2.Comment = Comment; + var ProcessingInstruction = ( + /** @class */ + function(_super) { + __extends(ProcessingInstruction2, _super); + function ProcessingInstruction2(name, data) { + var _this = _super.call(this, data) || this; + _this.name = name; + _this.type = domelementtype_1.ElementType.Directive; + return _this; + } + Object.defineProperty(ProcessingInstruction2.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + return ProcessingInstruction2; + }(DataNode) + ); + exports2.ProcessingInstruction = ProcessingInstruction; + var NodeWithChildren = ( + /** @class */ + function(_super) { + __extends(NodeWithChildren2, _super); + function NodeWithChildren2(children) { + var _this = _super.call(this) || this; + _this.children = children; + return _this; + } + Object.defineProperty(NodeWithChildren2.prototype, "firstChild", { + // Aliases + /** First child of the node. */ + get: function() { + var _a; + return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren2.prototype, "lastChild", { + /** Last child of the node. */ + get: function() { + return this.children.length > 0 ? this.children[this.children.length - 1] : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren2.prototype, "childNodes", { + /** + * Same as {@link children}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.children; + }, + set: function(children) { + this.children = children; + }, + enumerable: false, + configurable: true + }); + return NodeWithChildren2; + }(Node) + ); + exports2.NodeWithChildren = NodeWithChildren; + var CDATA = ( + /** @class */ + function(_super) { + __extends(CDATA2, _super); + function CDATA2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.CDATA; + return _this; + } + Object.defineProperty(CDATA2.prototype, "nodeType", { + get: function() { + return 4; + }, + enumerable: false, + configurable: true + }); + return CDATA2; + }(NodeWithChildren) + ); + exports2.CDATA = CDATA; + var Document = ( + /** @class */ + function(_super) { + __extends(Document2, _super); + function Document2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Root; + return _this; + } + Object.defineProperty(Document2.prototype, "nodeType", { + get: function() { + return 9; + }, + enumerable: false, + configurable: true + }); + return Document2; + }(NodeWithChildren) + ); + exports2.Document = Document; + var Element = ( + /** @class */ + function(_super) { + __extends(Element2, _super); + function Element2(name, attribs, children, type2) { + if (children === void 0) { + children = []; + } + if (type2 === void 0) { + type2 = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag; + } + var _this = _super.call(this, children) || this; + _this.name = name; + _this.attribs = attribs; + _this.type = type2; + return _this; + } + Object.defineProperty(Element2.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element2.prototype, "tagName", { + // DOM Level 1 aliases + /** + * Same as {@link name}. + * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. + */ + get: function() { + return this.name; + }, + set: function(name) { + this.name = name; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element2.prototype, "attributes", { + get: function() { + var _this = this; + return Object.keys(this.attribs).map(function(name) { + var _a, _b; + return { + name, + value: _this.attribs[name], + namespace: (_a = _this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name], + prefix: (_b = _this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] + }; + }); + }, + enumerable: false, + configurable: true + }); + return Element2; + }(NodeWithChildren) + ); + exports2.Element = Element; + function isTag(node) { + return (0, domelementtype_1.isTag)(node); + } + exports2.isTag = isTag; + function isCDATA(node) { + return node.type === domelementtype_1.ElementType.CDATA; + } + exports2.isCDATA = isCDATA; + function isText(node) { + return node.type === domelementtype_1.ElementType.Text; + } + exports2.isText = isText; + function isComment(node) { + return node.type === domelementtype_1.ElementType.Comment; + } + exports2.isComment = isComment; + function isDirective(node) { + return node.type === domelementtype_1.ElementType.Directive; + } + exports2.isDirective = isDirective; + function isDocument(node) { + return node.type === domelementtype_1.ElementType.Root; + } + exports2.isDocument = isDocument; + function hasChildren(node) { + return Object.prototype.hasOwnProperty.call(node, "children"); + } + exports2.hasChildren = hasChildren; + function cloneNode(node, recursive) { + if (recursive === void 0) { + recursive = false; + } + var result; + if (isText(node)) { + result = new Text2(node.data); + } else if (isComment(node)) { + result = new Comment(node.data); + } else if (isTag(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_1 = new Element(node.name, __assign({}, node.attribs), children); + children.forEach(function(child) { + return child.parent = clone_1; + }); + if (node.namespace != null) { + clone_1.namespace = node.namespace; + } + if (node["x-attribsNamespace"]) { + clone_1["x-attribsNamespace"] = __assign({}, node["x-attribsNamespace"]); + } + if (node["x-attribsPrefix"]) { + clone_1["x-attribsPrefix"] = __assign({}, node["x-attribsPrefix"]); + } + result = clone_1; + } else if (isCDATA(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_2 = new CDATA(children); + children.forEach(function(child) { + return child.parent = clone_2; + }); + result = clone_2; + } else if (isDocument(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_3 = new Document(children); + children.forEach(function(child) { + return child.parent = clone_3; + }); + if (node["x-mode"]) { + clone_3["x-mode"] = node["x-mode"]; + } + result = clone_3; + } else if (isDirective(node)) { + var instruction = new ProcessingInstruction(node.name, node.data); + if (node["x-name"] != null) { + instruction["x-name"] = node["x-name"]; + instruction["x-publicId"] = node["x-publicId"]; + instruction["x-systemId"] = node["x-systemId"]; + } + result = instruction; + } else { + throw new Error("Not implemented yet: ".concat(node.type)); + } + result.startIndex = node.startIndex; + result.endIndex = node.endIndex; + if (node.sourceCodeLocation != null) { + result.sourceCodeLocation = node.sourceCodeLocation; + } + return result; + } + exports2.cloneNode = cloneNode; + function cloneChildren(childs) { + var children = childs.map(function(child) { + return cloneNode(child, true); + }); + for (var i = 1; i < children.length; i++) { + children[i].prev = children[i - 1]; + children[i - 1].next = children[i]; + } + return children; + } + } +}); + +// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js +var require_lib2 = __commonJS({ + "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) + __createBinding(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DomHandler = void 0; + var domelementtype_1 = require_lib(); + var node_js_1 = require_node(); + __exportStar(require_node(), exports2); + var defaultOpts = { + withStartIndices: false, + withEndIndices: false, + xmlMode: false + }; + var DomHandler = ( + /** @class */ + function() { + function DomHandler2(callback2, options2, elementCB) { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [this.root]; + this.lastNode = null; + this.parser = null; + if (typeof options2 === "function") { + elementCB = options2; + options2 = defaultOpts; + } + if (typeof callback2 === "object") { + options2 = callback2; + callback2 = void 0; + } + this.callback = callback2 !== null && callback2 !== void 0 ? callback2 : null; + this.options = options2 !== null && options2 !== void 0 ? options2 : defaultOpts; + this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; + } + DomHandler2.prototype.onparserinit = function(parser) { + this.parser = parser; + }; + DomHandler2.prototype.onreset = function() { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [this.root]; + this.lastNode = null; + this.parser = null; + }; + DomHandler2.prototype.onend = function() { + if (this.done) + return; + this.done = true; + this.parser = null; + this.handleCallback(null); + }; + DomHandler2.prototype.onerror = function(error) { + this.handleCallback(error); + }; + DomHandler2.prototype.onclosetag = function() { + this.lastNode = null; + var elem = this.tagStack.pop(); + if (this.options.withEndIndices) { + elem.endIndex = this.parser.endIndex; + } + if (this.elementCB) + this.elementCB(elem); + }; + DomHandler2.prototype.onopentag = function(name, attribs) { + var type2 = this.options.xmlMode ? domelementtype_1.ElementType.Tag : void 0; + var element = new node_js_1.Element(name, attribs, void 0, type2); + this.addNode(element); + this.tagStack.push(element); + }; + DomHandler2.prototype.ontext = function(data) { + var lastNode = this.lastNode; + if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) { + lastNode.data += data; + if (this.options.withEndIndices) { + lastNode.endIndex = this.parser.endIndex; + } + } else { + var node = new node_js_1.Text(data); + this.addNode(node); + this.lastNode = node; + } + }; + DomHandler2.prototype.oncomment = function(data) { + if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) { + this.lastNode.data += data; + return; + } + var node = new node_js_1.Comment(data); + this.addNode(node); + this.lastNode = node; + }; + DomHandler2.prototype.oncommentend = function() { + this.lastNode = null; + }; + DomHandler2.prototype.oncdatastart = function() { + var text = new node_js_1.Text(""); + var node = new node_js_1.CDATA([text]); + this.addNode(node); + text.parent = node; + this.lastNode = text; + }; + DomHandler2.prototype.oncdataend = function() { + this.lastNode = null; + }; + DomHandler2.prototype.onprocessinginstruction = function(name, data) { + var node = new node_js_1.ProcessingInstruction(name, data); + this.addNode(node); + }; + DomHandler2.prototype.handleCallback = function(error) { + if (typeof this.callback === "function") { + this.callback(error, this.dom); + } else if (error) { + throw error; + } + }; + DomHandler2.prototype.addNode = function(node) { + var parent = this.tagStack[this.tagStack.length - 1]; + var previousSibling = parent.children[parent.children.length - 1]; + if (this.options.withStartIndices) { + node.startIndex = this.parser.startIndex; + } + if (this.options.withEndIndices) { + node.endIndex = this.parser.endIndex; + } + parent.children.push(node); + if (previousSibling) { + node.prev = previousSibling; + previousSibling.next = node; + } + node.parent = parent; + this.lastNode = null; + }; + return DomHandler2; + }() + ); + exports2.DomHandler = DomHandler; + exports2.default = DomHandler; + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js +var require_encode_html = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function restoreDiff(arr) { + for (var i = 1; i < arr.length; i++) { + arr[i][0] += arr[i - 1][0] + 1; + } + return arr; + } + exports2.default = new Map(/* @__PURE__ */ restoreDiff([[9, " "], [0, " "], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, "­"], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, "‌"], [0, "‍"], [0, "‎"], [0, "‏"], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "⟨"], [0, "⟩"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]])); + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js +var require_escape = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.getCodePoint = exports2.xmlReplacer = void 0; + exports2.xmlReplacer = /["&'<>$\x80-\uFFFF]/g; + var xmlCodeMap = /* @__PURE__ */ new Map([ + [34, """], + [38, "&"], + [39, "'"], + [60, "<"], + [62, ">"] + ]); + exports2.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + String.prototype.codePointAt != null ? function(str2, index) { + return str2.codePointAt(index); + } : ( + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + function(c, index) { + return (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index); + } + ); + function encodeXML(str2) { + var ret = ""; + var lastIdx = 0; + var match2; + while ((match2 = exports2.xmlReplacer.exec(str2)) !== null) { + var i = match2.index; + var char = str2.charCodeAt(i); + var next = xmlCodeMap.get(char); + if (next !== void 0) { + ret += str2.substring(lastIdx, i) + next; + lastIdx = i + 1; + } else { + ret += "".concat(str2.substring(lastIdx, i), "&#x").concat((0, exports2.getCodePoint)(str2, i).toString(16), ";"); + lastIdx = exports2.xmlReplacer.lastIndex += Number((char & 64512) === 55296); + } + } + return ret + str2.substr(lastIdx); + } + exports2.encodeXML = encodeXML; + exports2.escape = encodeXML; + function getEscaper(regex, map4) { + return function escape2(data) { + var match2; + var lastIdx = 0; + var result = ""; + while (match2 = regex.exec(data)) { + if (lastIdx !== match2.index) { + result += data.substring(lastIdx, match2.index); + } + result += map4.get(match2[0].charCodeAt(0)); + lastIdx = match2.index + 1; + } + return result + data.substring(lastIdx); + }; + } + exports2.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); + exports2.escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([ + [34, """], + [38, "&"], + [160, " "] + ])); + exports2.escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([ + [38, "&"], + [60, "<"], + [62, ">"], + [160, " "] + ])); + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js +var require_encode = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeNonAsciiHTML = exports2.encodeHTML = void 0; + var encode_html_js_1 = __importDefault(require_encode_html()); + var escape_js_1 = require_escape(); + var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g; + function encodeHTML(data) { + return encodeHTMLTrieRe(htmlReplacer, data); + } + exports2.encodeHTML = encodeHTML; + function encodeNonAsciiHTML(data) { + return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data); + } + exports2.encodeNonAsciiHTML = encodeNonAsciiHTML; + function encodeHTMLTrieRe(regExp, str2) { + var ret = ""; + var lastIdx = 0; + var match2; + while ((match2 = regExp.exec(str2)) !== null) { + var i = match2.index; + ret += str2.substring(lastIdx, i); + var char = str2.charCodeAt(i); + var next = encode_html_js_1.default.get(char); + if (typeof next === "object") { + if (i + 1 < str2.length) { + var nextChar = str2.charCodeAt(i + 1); + var value = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar); + if (value !== void 0) { + ret += value; + lastIdx = regExp.lastIndex += 1; + continue; + } + } + next = next.v; + } + if (next !== void 0) { + ret += next; + lastIdx = i + 1; + } else { + var cp = (0, escape_js_1.getCodePoint)(str2, i); + ret += "&#x".concat(cp.toString(16), ";"); + lastIdx = regExp.lastIndex += Number(cp !== char); + } + } + return ret + str2.substr(lastIdx); + } + } +}); + +// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js +var require_lib3 = __commonJS({ + "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeXMLStrict = exports2.decodeHTML5Strict = exports2.decodeHTML4Strict = exports2.decodeHTML5 = exports2.decodeHTML4 = exports2.decodeHTMLAttribute = exports2.decodeHTMLStrict = exports2.decodeHTML = exports2.decodeXML = exports2.DecodingMode = exports2.EntityDecoder = exports2.encodeHTML5 = exports2.encodeHTML4 = exports2.encodeNonAsciiHTML = exports2.encodeHTML = exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.encode = exports2.decodeStrict = exports2.decode = exports2.EncodingMode = exports2.EntityLevel = void 0; + var decode_js_1 = require_decode(); + var encode_js_1 = require_encode(); + var escape_js_1 = require_escape(); + var EntityLevel; + (function(EntityLevel2) { + EntityLevel2[EntityLevel2["XML"] = 0] = "XML"; + EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML"; + })(EntityLevel = exports2.EntityLevel || (exports2.EntityLevel = {})); + var EncodingMode; + (function(EncodingMode2) { + EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8"; + EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII"; + EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive"; + EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute"; + EncodingMode2[EncodingMode2["Text"] = 4] = "Text"; + })(EncodingMode = exports2.EncodingMode || (exports2.EncodingMode = {})); + function decode(data, options2) { + if (options2 === void 0) { + options2 = EntityLevel.XML; + } + var level = typeof options2 === "number" ? options2 : options2.level; + if (level === EntityLevel.HTML) { + var mode = typeof options2 === "object" ? options2.mode : void 0; + return (0, decode_js_1.decodeHTML)(data, mode); + } + return (0, decode_js_1.decodeXML)(data); + } + exports2.decode = decode; + function decodeStrict(data, options2) { + var _a; + if (options2 === void 0) { + options2 = EntityLevel.XML; + } + var opts = typeof options2 === "number" ? { level: options2 } : options2; + (_a = opts.mode) !== null && _a !== void 0 ? _a : opts.mode = decode_js_1.DecodingMode.Strict; + return decode(data, opts); + } + exports2.decodeStrict = decodeStrict; + function encode(data, options2) { + if (options2 === void 0) { + options2 = EntityLevel.XML; + } + var opts = typeof options2 === "number" ? { level: options2 } : options2; + if (opts.mode === EncodingMode.UTF8) + return (0, escape_js_1.escapeUTF8)(data); + if (opts.mode === EncodingMode.Attribute) + return (0, escape_js_1.escapeAttribute)(data); + if (opts.mode === EncodingMode.Text) + return (0, escape_js_1.escapeText)(data); + if (opts.level === EntityLevel.HTML) { + if (opts.mode === EncodingMode.ASCII) { + return (0, encode_js_1.encodeNonAsciiHTML)(data); + } + return (0, encode_js_1.encodeHTML)(data); + } + return (0, escape_js_1.encodeXML)(data); + } + exports2.encode = encode; + var escape_js_2 = require_escape(); + Object.defineProperty(exports2, "encodeXML", { enumerable: true, get: function() { + return escape_js_2.encodeXML; + } }); + Object.defineProperty(exports2, "escape", { enumerable: true, get: function() { + return escape_js_2.escape; + } }); + Object.defineProperty(exports2, "escapeUTF8", { enumerable: true, get: function() { + return escape_js_2.escapeUTF8; + } }); + Object.defineProperty(exports2, "escapeAttribute", { enumerable: true, get: function() { + return escape_js_2.escapeAttribute; + } }); + Object.defineProperty(exports2, "escapeText", { enumerable: true, get: function() { + return escape_js_2.escapeText; + } }); + var encode_js_2 = require_encode(); + Object.defineProperty(exports2, "encodeHTML", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + Object.defineProperty(exports2, "encodeNonAsciiHTML", { enumerable: true, get: function() { + return encode_js_2.encodeNonAsciiHTML; + } }); + Object.defineProperty(exports2, "encodeHTML4", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + Object.defineProperty(exports2, "encodeHTML5", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + var decode_js_2 = require_decode(); + Object.defineProperty(exports2, "EntityDecoder", { enumerable: true, get: function() { + return decode_js_2.EntityDecoder; + } }); + Object.defineProperty(exports2, "DecodingMode", { enumerable: true, get: function() { + return decode_js_2.DecodingMode; + } }); + Object.defineProperty(exports2, "decodeXML", { enumerable: true, get: function() { + return decode_js_2.decodeXML; + } }); + Object.defineProperty(exports2, "decodeHTML", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports2, "decodeHTMLStrict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports2, "decodeHTMLAttribute", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLAttribute; + } }); + Object.defineProperty(exports2, "decodeHTML4", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports2, "decodeHTML5", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports2, "decodeHTML4Strict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports2, "decodeHTML5Strict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports2, "decodeXMLStrict", { enumerable: true, get: function() { + return decode_js_2.decodeXML; + } }); + } +}); + +// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js +var require_foreignNames = __commonJS({ + "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.attributeNames = exports2.elementNames = void 0; + exports2.elementNames = new Map([ + "altGlyph", + "altGlyphDef", + "altGlyphItem", + "animateColor", + "animateMotion", + "animateTransform", + "clipPath", + "feBlend", + "feColorMatrix", + "feComponentTransfer", + "feComposite", + "feConvolveMatrix", + "feDiffuseLighting", + "feDisplacementMap", + "feDistantLight", + "feDropShadow", + "feFlood", + "feFuncA", + "feFuncB", + "feFuncG", + "feFuncR", + "feGaussianBlur", + "feImage", + "feMerge", + "feMergeNode", + "feMorphology", + "feOffset", + "fePointLight", + "feSpecularLighting", + "feSpotLight", + "feTile", + "feTurbulence", + "foreignObject", + "glyphRef", + "linearGradient", + "radialGradient", + "textPath" + ].map(function(val) { + return [val.toLowerCase(), val]; + })); + exports2.attributeNames = new Map([ + "definitionURL", + "attributeName", + "attributeType", + "baseFrequency", + "baseProfile", + "calcMode", + "clipPathUnits", + "diffuseConstant", + "edgeMode", + "filterUnits", + "glyphRef", + "gradientTransform", + "gradientUnits", + "kernelMatrix", + "kernelUnitLength", + "keyPoints", + "keySplines", + "keyTimes", + "lengthAdjust", + "limitingConeAngle", + "markerHeight", + "markerUnits", + "markerWidth", + "maskContentUnits", + "maskUnits", + "numOctaves", + "pathLength", + "patternContentUnits", + "patternTransform", + "patternUnits", + "pointsAtX", + "pointsAtY", + "pointsAtZ", + "preserveAlpha", + "preserveAspectRatio", + "primitiveUnits", + "refX", + "refY", + "repeatCount", + "repeatDur", + "requiredExtensions", + "requiredFeatures", + "specularConstant", + "specularExponent", + "spreadMethod", + "startOffset", + "stdDeviation", + "stitchTiles", + "surfaceScale", + "systemLanguage", + "tableValues", + "targetX", + "targetY", + "textLength", + "viewBox", + "viewTarget", + "xChannelSelector", + "yChannelSelector", + "zoomAndPan" + ].map(function(val) { + return [val.toLowerCase(), val]; + })); + } +}); + +// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js +var require_lib4 = __commonJS({ + "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js"(exports2) { + "use strict"; + var __assign = exports2 && exports2.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.render = void 0; + var ElementType = __importStar(require_lib()); + var entities_1 = require_lib3(); + var foreignNames_js_1 = require_foreignNames(); + var unencodedElements = /* @__PURE__ */ new Set([ + "style", + "script", + "xmp", + "iframe", + "noembed", + "noframes", + "plaintext", + "noscript" + ]); + function replaceQuotes(value) { + return value.replace(/"/g, """); + } + function formatAttributes(attributes, opts) { + var _a; + if (!attributes) + return; + var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute; + return Object.keys(attributes).map(function(key) { + var _a2, _b; + var value = (_a2 = attributes[key]) !== null && _a2 !== void 0 ? _a2 : ""; + if (opts.xmlMode === "foreign") { + key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; + } + if (!opts.emptyAttrs && !opts.xmlMode && value === "") { + return key; + } + return "".concat(key, '="').concat(encode(value), '"'); + }).join(" "); + } + var singleTag = /* @__PURE__ */ new Set([ + "area", + "base", + "basefont", + "br", + "col", + "command", + "embed", + "frame", + "hr", + "img", + "input", + "isindex", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr" + ]); + function render(node, options2) { + if (options2 === void 0) { + options2 = {}; + } + var nodes = "length" in node ? node : [node]; + var output = ""; + for (var i = 0; i < nodes.length; i++) { + output += renderNode(nodes[i], options2); + } + return output; + } + exports2.render = render; + exports2.default = render; + function renderNode(node, options2) { + switch (node.type) { + case ElementType.Root: + return render(node.children, options2); + case ElementType.Doctype: + case ElementType.Directive: + return renderDirective(node); + case ElementType.Comment: + return renderComment(node); + case ElementType.CDATA: + return renderCdata(node); + case ElementType.Script: + case ElementType.Style: + case ElementType.Tag: + return renderTag(node, options2); + case ElementType.Text: + return renderText(node, options2); + } + } + var foreignModeIntegrationPoints = /* @__PURE__ */ new Set([ + "mi", + "mo", + "mn", + "ms", + "mtext", + "annotation-xml", + "foreignObject", + "desc", + "title" + ]); + var foreignElements = /* @__PURE__ */ new Set(["svg", "math"]); + function renderTag(elem, opts) { + var _a; + if (opts.xmlMode === "foreign") { + elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name; + if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) { + opts = __assign(__assign({}, opts), { xmlMode: false }); + } + } + if (!opts.xmlMode && foreignElements.has(elem.name)) { + opts = __assign(__assign({}, opts), { xmlMode: "foreign" }); + } + var tag = "<".concat(elem.name); + var attribs = formatAttributes(elem.attribs, opts); + if (attribs) { + tag += " ".concat(attribs); + } + if (elem.children.length === 0 && (opts.xmlMode ? ( + // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags + opts.selfClosingTags !== false + ) : ( + // User explicitly asked for self-closing tags, even in HTML mode + opts.selfClosingTags && singleTag.has(elem.name) + ))) { + if (!opts.xmlMode) + tag += " "; + tag += "/>"; + } else { + tag += ">"; + if (elem.children.length > 0) { + tag += render(elem.children, opts); + } + if (opts.xmlMode || !singleTag.has(elem.name)) { + tag += ""); + } + } + return tag; + } + function renderDirective(elem) { + return "<".concat(elem.data, ">"); + } + function renderText(elem, opts) { + var _a; + var data = elem.data || ""; + if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) { + data = opts.xmlMode || opts.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data) : (0, entities_1.escapeText)(data); + } + return data; + } + function renderCdata(elem) { + return ""); + } + function renderComment(elem) { + return ""); + } + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.js +var require_stringify = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.innerText = exports2.textContent = exports2.getText = exports2.getInnerHTML = exports2.getOuterHTML = void 0; + var domhandler_1 = require_lib2(); + var dom_serializer_1 = __importDefault(require_lib4()); + var domelementtype_1 = require_lib(); + function getOuterHTML(node, options2) { + return (0, dom_serializer_1.default)(node, options2); + } + exports2.getOuterHTML = getOuterHTML; + function getInnerHTML(node, options2) { + return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) { + return getOuterHTML(node2, options2); + }).join("") : ""; + } + exports2.getInnerHTML = getInnerHTML; + function getText2(node) { + if (Array.isArray(node)) + return node.map(getText2).join(""); + if ((0, domhandler_1.isTag)(node)) + return node.name === "br" ? "\n" : getText2(node.children); + if ((0, domhandler_1.isCDATA)(node)) + return getText2(node.children); + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports2.getText = getText2; + function textContent(node) { + if (Array.isArray(node)) + return node.map(textContent).join(""); + if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) { + return textContent(node.children); + } + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports2.textContent = textContent; + function innerText(node) { + if (Array.isArray(node)) + return node.map(innerText).join(""); + if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) { + return innerText(node.children); + } + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports2.innerText = innerText; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.js +var require_traversal = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.prevElementSibling = exports2.nextElementSibling = exports2.getName = exports2.hasAttrib = exports2.getAttributeValue = exports2.getSiblings = exports2.getParent = exports2.getChildren = void 0; + var domhandler_1 = require_lib2(); + function getChildren(elem) { + return (0, domhandler_1.hasChildren)(elem) ? elem.children : []; + } + exports2.getChildren = getChildren; + function getParent(elem) { + return elem.parent || null; + } + exports2.getParent = getParent; + function getSiblings(elem) { + var _a, _b; + var parent = getParent(elem); + if (parent != null) + return getChildren(parent); + var siblings = [elem]; + var prev = elem.prev, next = elem.next; + while (prev != null) { + siblings.unshift(prev); + _a = prev, prev = _a.prev; + } + while (next != null) { + siblings.push(next); + _b = next, next = _b.next; + } + return siblings; + } + exports2.getSiblings = getSiblings; + function getAttributeValue(elem, name) { + var _a; + return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name]; + } + exports2.getAttributeValue = getAttributeValue; + function hasAttrib(elem, name) { + return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null; + } + exports2.hasAttrib = hasAttrib; + function getName(elem) { + return elem.name; + } + exports2.getName = getName; + function nextElementSibling(elem) { + var _a; + var next = elem.next; + while (next !== null && !(0, domhandler_1.isTag)(next)) + _a = next, next = _a.next; + return next; + } + exports2.nextElementSibling = nextElementSibling; + function prevElementSibling(elem) { + var _a; + var prev = elem.prev; + while (prev !== null && !(0, domhandler_1.isTag)(prev)) + _a = prev, prev = _a.prev; + return prev; + } + exports2.prevElementSibling = prevElementSibling; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.js +var require_manipulation = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.prepend = exports2.prependChild = exports2.append = exports2.appendChild = exports2.replaceElement = exports2.removeElement = void 0; + function removeElement(elem) { + if (elem.prev) + elem.prev.next = elem.next; + if (elem.next) + elem.next.prev = elem.prev; + if (elem.parent) { + var childs = elem.parent.children; + var childsIndex = childs.lastIndexOf(elem); + if (childsIndex >= 0) { + childs.splice(childsIndex, 1); + } + } + elem.next = null; + elem.prev = null; + elem.parent = null; + } + exports2.removeElement = removeElement; + function replaceElement(elem, replacement) { + var prev = replacement.prev = elem.prev; + if (prev) { + prev.next = replacement; + } + var next = replacement.next = elem.next; + if (next) { + next.prev = replacement; + } + var parent = replacement.parent = elem.parent; + if (parent) { + var childs = parent.children; + childs[childs.lastIndexOf(elem)] = replacement; + elem.parent = null; + } + } + exports2.replaceElement = replaceElement; + function appendChild(parent, child) { + removeElement(child); + child.next = null; + child.parent = parent; + if (parent.children.push(child) > 1) { + var sibling = parent.children[parent.children.length - 2]; + sibling.next = child; + child.prev = sibling; + } else { + child.prev = null; + } + } + exports2.appendChild = appendChild; + function append(elem, next) { + removeElement(next); + var parent = elem.parent; + var currNext = elem.next; + next.next = currNext; + next.prev = elem; + elem.next = next; + next.parent = parent; + if (currNext) { + currNext.prev = next; + if (parent) { + var childs = parent.children; + childs.splice(childs.lastIndexOf(currNext), 0, next); + } + } else if (parent) { + parent.children.push(next); + } + } + exports2.append = append; + function prependChild(parent, child) { + removeElement(child); + child.parent = parent; + child.prev = null; + if (parent.children.unshift(child) !== 1) { + var sibling = parent.children[1]; + sibling.prev = child; + child.next = sibling; + } else { + child.next = null; + } + } + exports2.prependChild = prependChild; + function prepend(elem, prev) { + removeElement(prev); + var parent = elem.parent; + if (parent) { + var childs = parent.children; + childs.splice(childs.indexOf(elem), 0, prev); + } + if (elem.prev) { + elem.prev.next = prev; + } + prev.parent = parent; + prev.prev = elem.prev; + prev.next = elem; + elem.prev = prev; + } + exports2.prepend = prepend; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.js +var require_querying = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.findAll = exports2.existsOne = exports2.findOne = exports2.findOneChild = exports2.find = exports2.filter = void 0; + var domhandler_1 = require_lib2(); + function filter2(test, node, recurse, limit) { + if (recurse === void 0) { + recurse = true; + } + if (limit === void 0) { + limit = Infinity; + } + return find(test, Array.isArray(node) ? node : [node], recurse, limit); + } + exports2.filter = filter2; + function find(test, nodes, recurse, limit) { + var result = []; + var nodeStack = [nodes]; + var indexStack = [0]; + for (; ; ) { + if (indexStack[0] >= nodeStack[0].length) { + if (indexStack.length === 1) { + return result; + } + nodeStack.shift(); + indexStack.shift(); + continue; + } + var elem = nodeStack[0][indexStack[0]++]; + if (test(elem)) { + result.push(elem); + if (--limit <= 0) + return result; + } + if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) { + indexStack.unshift(0); + nodeStack.unshift(elem.children); + } + } + } + exports2.find = find; + function findOneChild(test, nodes) { + return nodes.find(test); + } + exports2.findOneChild = findOneChild; + function findOne(test, nodes, recurse) { + if (recurse === void 0) { + recurse = true; + } + var elem = null; + for (var i = 0; i < nodes.length && !elem; i++) { + var node = nodes[i]; + if (!(0, domhandler_1.isTag)(node)) { + continue; + } else if (test(node)) { + elem = node; + } else if (recurse && node.children.length > 0) { + elem = findOne(test, node.children, true); + } + } + return elem; + } + exports2.findOne = findOne; + function existsOne(test, nodes) { + return nodes.some(function(checked) { + return (0, domhandler_1.isTag)(checked) && (test(checked) || existsOne(test, checked.children)); + }); + } + exports2.existsOne = existsOne; + function findAll(test, nodes) { + var result = []; + var nodeStack = [nodes]; + var indexStack = [0]; + for (; ; ) { + if (indexStack[0] >= nodeStack[0].length) { + if (nodeStack.length === 1) { + return result; + } + nodeStack.shift(); + indexStack.shift(); + continue; + } + var elem = nodeStack[0][indexStack[0]++]; + if (!(0, domhandler_1.isTag)(elem)) + continue; + if (test(elem)) + result.push(elem); + if (elem.children.length > 0) { + indexStack.unshift(0); + nodeStack.unshift(elem.children); + } + } + } + exports2.findAll = findAll; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.js +var require_legacy = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getElementsByTagType = exports2.getElementsByTagName = exports2.getElementById = exports2.getElements = exports2.testElement = void 0; + var domhandler_1 = require_lib2(); + var querying_js_1 = require_querying(); + var Checks = { + tag_name: function(name) { + if (typeof name === "function") { + return function(elem) { + return (0, domhandler_1.isTag)(elem) && name(elem.name); + }; + } else if (name === "*") { + return domhandler_1.isTag; + } + return function(elem) { + return (0, domhandler_1.isTag)(elem) && elem.name === name; + }; + }, + tag_type: function(type2) { + if (typeof type2 === "function") { + return function(elem) { + return type2(elem.type); + }; + } + return function(elem) { + return elem.type === type2; + }; + }, + tag_contains: function(data) { + if (typeof data === "function") { + return function(elem) { + return (0, domhandler_1.isText)(elem) && data(elem.data); + }; + } + return function(elem) { + return (0, domhandler_1.isText)(elem) && elem.data === data; + }; + } + }; + function getAttribCheck(attrib, value) { + if (typeof value === "function") { + return function(elem) { + return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); + }; + } + return function(elem) { + return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; + }; + } + function combineFuncs(a, b) { + return function(elem) { + return a(elem) || b(elem); + }; + } + function compileTest(options2) { + var funcs = Object.keys(options2).map(function(key) { + var value = options2[key]; + return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value); + }); + return funcs.length === 0 ? null : funcs.reduce(combineFuncs); + } + function testElement(options2, node) { + var test = compileTest(options2); + return test ? test(node) : true; + } + exports2.testElement = testElement; + function getElements(options2, nodes, recurse, limit) { + if (limit === void 0) { + limit = Infinity; + } + var test = compileTest(options2); + return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : []; + } + exports2.getElements = getElements; + function getElementById(id, nodes, recurse) { + if (recurse === void 0) { + recurse = true; + } + if (!Array.isArray(nodes)) + nodes = [nodes]; + return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse); + } + exports2.getElementById = getElementById; + function getElementsByTagName(tagName, nodes, recurse, limit) { + if (recurse === void 0) { + recurse = true; + } + if (limit === void 0) { + limit = Infinity; + } + return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit); + } + exports2.getElementsByTagName = getElementsByTagName; + function getElementsByTagType(type2, nodes, recurse, limit) { + if (recurse === void 0) { + recurse = true; + } + if (limit === void 0) { + limit = Infinity; + } + return (0, querying_js_1.filter)(Checks["tag_type"](type2), nodes, recurse, limit); + } + exports2.getElementsByTagType = getElementsByTagType; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.js +var require_helpers = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.uniqueSort = exports2.compareDocumentPosition = exports2.DocumentPosition = exports2.removeSubsets = void 0; + var domhandler_1 = require_lib2(); + function removeSubsets(nodes) { + var idx = nodes.length; + while (--idx >= 0) { + var node = nodes[idx]; + if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) { + nodes.splice(idx, 1); + continue; + } + for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) { + if (nodes.includes(ancestor)) { + nodes.splice(idx, 1); + break; + } + } + } + return nodes; + } + exports2.removeSubsets = removeSubsets; + var DocumentPosition; + (function(DocumentPosition2) { + DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED"; + DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING"; + DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING"; + DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS"; + DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY"; + })(DocumentPosition = exports2.DocumentPosition || (exports2.DocumentPosition = {})); + function compareDocumentPosition(nodeA, nodeB) { + var aParents = []; + var bParents = []; + if (nodeA === nodeB) { + return 0; + } + var current2 = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent; + while (current2) { + aParents.unshift(current2); + current2 = current2.parent; + } + current2 = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent; + while (current2) { + bParents.unshift(current2); + current2 = current2.parent; + } + var maxIdx = Math.min(aParents.length, bParents.length); + var idx = 0; + while (idx < maxIdx && aParents[idx] === bParents[idx]) { + idx++; + } + if (idx === 0) { + return DocumentPosition.DISCONNECTED; + } + var sharedParent = aParents[idx - 1]; + var siblings = sharedParent.children; + var aSibling = aParents[idx]; + var bSibling = bParents[idx]; + if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) { + if (sharedParent === nodeB) { + return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY; + } + return DocumentPosition.FOLLOWING; + } + if (sharedParent === nodeA) { + return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS; + } + return DocumentPosition.PRECEDING; + } + exports2.compareDocumentPosition = compareDocumentPosition; + function uniqueSort(nodes) { + nodes = nodes.filter(function(node, i, arr) { + return !arr.includes(node, i + 1); + }); + nodes.sort(function(a, b) { + var relative2 = compareDocumentPosition(a, b); + if (relative2 & DocumentPosition.PRECEDING) { + return -1; + } else if (relative2 & DocumentPosition.FOLLOWING) { + return 1; + } + return 0; + }); + return nodes; + } + exports2.uniqueSort = uniqueSort; + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.js +var require_feeds = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getFeed = void 0; + var stringify_js_1 = require_stringify(); + var legacy_js_1 = require_legacy(); + function getFeed(doc) { + var feedRoot = getOneElement(isValidFeed, doc); + return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot); + } + exports2.getFeed = getFeed; + function getAtomFeed(feedRoot) { + var _a; + var childs = feedRoot.children; + var feed = { + type: "atom", + items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) { + var _a2; + var children = item.children; + var entry2 = { media: getMediaElements(children) }; + addConditionally(entry2, "id", "id", children); + addConditionally(entry2, "title", "title", children); + var href2 = (_a2 = getOneElement("link", children)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"]; + if (href2) { + entry2.link = href2; + } + var description = fetch("summary", children) || fetch("content", children); + if (description) { + entry2.description = description; + } + var pubDate = fetch("updated", children); + if (pubDate) { + entry2.pubDate = new Date(pubDate); + } + return entry2; + }) + }; + addConditionally(feed, "id", "id", childs); + addConditionally(feed, "title", "title", childs); + var href = (_a = getOneElement("link", childs)) === null || _a === void 0 ? void 0 : _a.attribs["href"]; + if (href) { + feed.link = href; + } + addConditionally(feed, "description", "subtitle", childs); + var updated = fetch("updated", childs); + if (updated) { + feed.updated = new Date(updated); + } + addConditionally(feed, "author", "email", childs, true); + return feed; + } + function getRssFeed(feedRoot) { + var _a, _b; + var childs = (_b = (_a = getOneElement("channel", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : []; + var feed = { + type: feedRoot.name.substr(0, 3), + id: "", + items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) { + var children = item.children; + var entry2 = { media: getMediaElements(children) }; + addConditionally(entry2, "id", "guid", children); + addConditionally(entry2, "title", "title", children); + addConditionally(entry2, "link", "link", children); + addConditionally(entry2, "description", "description", children); + var pubDate = fetch("pubDate", children) || fetch("dc:date", children); + if (pubDate) + entry2.pubDate = new Date(pubDate); + return entry2; + }) + }; + addConditionally(feed, "title", "title", childs); + addConditionally(feed, "link", "link", childs); + addConditionally(feed, "description", "description", childs); + var updated = fetch("lastBuildDate", childs); + if (updated) { + feed.updated = new Date(updated); + } + addConditionally(feed, "author", "managingEditor", childs, true); + return feed; + } + var MEDIA_KEYS_STRING = ["url", "type", "lang"]; + var MEDIA_KEYS_INT = [ + "fileSize", + "bitrate", + "framerate", + "samplingrate", + "channels", + "duration", + "height", + "width" + ]; + function getMediaElements(where) { + return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) { + var attribs = elem.attribs; + var media = { + medium: attribs["medium"], + isDefault: !!attribs["isDefault"] + }; + for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) { + var attrib = MEDIA_KEYS_STRING_1[_i]; + if (attribs[attrib]) { + media[attrib] = attribs[attrib]; + } + } + for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) { + var attrib = MEDIA_KEYS_INT_1[_a]; + if (attribs[attrib]) { + media[attrib] = parseInt(attribs[attrib], 10); + } + } + if (attribs["expression"]) { + media.expression = attribs["expression"]; + } + return media; + }); + } + function getOneElement(tagName, node) { + return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0]; + } + function fetch(tagName, where, recurse) { + if (recurse === void 0) { + recurse = false; + } + return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim(); + } + function addConditionally(obj, prop, tagName, where, recurse) { + if (recurse === void 0) { + recurse = false; + } + var val = fetch(tagName, where, recurse); + if (val) + obj[prop] = val; + } + function isValidFeed(value) { + return value === "rss" || value === "feed" || value === "rdf:RDF"; + } + } +}); + +// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.js +var require_lib5 = __commonJS({ + "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) + __createBinding(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.hasChildren = exports2.isDocument = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = void 0; + __exportStar(require_stringify(), exports2); + __exportStar(require_traversal(), exports2); + __exportStar(require_manipulation(), exports2); + __exportStar(require_querying(), exports2); + __exportStar(require_legacy(), exports2); + __exportStar(require_helpers(), exports2); + __exportStar(require_feeds(), exports2); + var domhandler_1 = require_lib2(); + Object.defineProperty(exports2, "isTag", { enumerable: true, get: function() { + return domhandler_1.isTag; + } }); + Object.defineProperty(exports2, "isCDATA", { enumerable: true, get: function() { + return domhandler_1.isCDATA; + } }); + Object.defineProperty(exports2, "isText", { enumerable: true, get: function() { + return domhandler_1.isText; + } }); + Object.defineProperty(exports2, "isComment", { enumerable: true, get: function() { + return domhandler_1.isComment; + } }); + Object.defineProperty(exports2, "isDocument", { enumerable: true, get: function() { + return domhandler_1.isDocument; + } }); + Object.defineProperty(exports2, "hasChildren", { enumerable: true, get: function() { + return domhandler_1.hasChildren; + } }); + } +}); + +// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js +var require_lib6 = __commonJS({ + "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DomUtils = exports2.parseFeed = exports2.getFeed = exports2.ElementType = exports2.Tokenizer = exports2.createDomStream = exports2.parseDOM = exports2.parseDocument = exports2.DefaultHandler = exports2.DomHandler = exports2.Parser = void 0; + var Parser_js_1 = require_Parser(); + var Parser_js_2 = require_Parser(); + Object.defineProperty(exports2, "Parser", { enumerable: true, get: function() { + return Parser_js_2.Parser; + } }); + var domhandler_1 = require_lib2(); + var domhandler_2 = require_lib2(); + Object.defineProperty(exports2, "DomHandler", { enumerable: true, get: function() { + return domhandler_2.DomHandler; + } }); + Object.defineProperty(exports2, "DefaultHandler", { enumerable: true, get: function() { + return domhandler_2.DomHandler; + } }); + function parseDocument(data, options2) { + var handler = new domhandler_1.DomHandler(void 0, options2); + new Parser_js_1.Parser(handler, options2).end(data); + return handler.root; + } + exports2.parseDocument = parseDocument; + function parseDOM(data, options2) { + return parseDocument(data, options2).children; + } + exports2.parseDOM = parseDOM; + function createDomStream(callback2, options2, elementCallback) { + var handler = new domhandler_1.DomHandler(callback2, options2, elementCallback); + return new Parser_js_1.Parser(handler, options2); + } + exports2.createDomStream = createDomStream; + var Tokenizer_js_1 = require_Tokenizer(); + Object.defineProperty(exports2, "Tokenizer", { enumerable: true, get: function() { + return __importDefault(Tokenizer_js_1).default; + } }); + exports2.ElementType = __importStar(require_lib()); + var domutils_1 = require_lib5(); + var domutils_2 = require_lib5(); + Object.defineProperty(exports2, "getFeed", { enumerable: true, get: function() { + return domutils_2.getFeed; + } }); + var parseFeedDefaultOptions = { xmlMode: true }; + function parseFeed(feed, options2) { + if (options2 === void 0) { + options2 = parseFeedDefaultOptions; + } + return (0, domutils_1.getFeed)(parseDOM(feed, options2)); + } + exports2.parseFeed = parseFeed; + exports2.DomUtils = __importStar(require_lib5()); + } +}); + +// ../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js +var require_escape_string_regexp = __commonJS({ + "../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js"(exports2, module2) { + "use strict"; + module2.exports = (string2) => { + if (typeof string2 !== "string") { + throw new TypeError("Expected a string"); + } + return string2.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); + }; + } +}); + +// ../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.js +var require_is_plain_object = __commonJS({ + "../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function isObject3(o) { + return Object.prototype.toString.call(o) === "[object Object]"; + } + function isPlainObject3(o) { + var ctor, prot; + if (isObject3(o) === false) + return false; + ctor = o.constructor; + if (ctor === void 0) + return true; + prot = ctor.prototype; + if (isObject3(prot) === false) + return false; + if (prot.hasOwnProperty("isPrototypeOf") === false) { + return false; + } + return true; + } + exports2.isPlainObject = isPlainObject3; + } +}); + +// ../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js +var require_cjs = __commonJS({ + "../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js"(exports2, module2) { + "use strict"; + var isMergeableObject = function isMergeableObject2(value) { + return isNonNullObject(value) && !isSpecial(value); + }; + function isNonNullObject(value) { + return !!value && typeof value === "object"; + } + function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value); + } + var canUseSymbol = typeof Symbol === "function" && Symbol.for; + var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103; + function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE; + } + function emptyTarget(val) { + return Array.isArray(val) ? [] : {}; + } + function cloneUnlessOtherwiseSpecified(value, options2) { + return options2.clone !== false && options2.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options2) : value; + } + function defaultArrayMerge(target, source, options2) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options2); + }); + } + function getMergeFunction(key, options2) { + if (!options2.customMerge) { + return deepmerge; + } + var customMerge = options2.customMerge(key); + return typeof customMerge === "function" ? customMerge : deepmerge; + } + function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol); + }) : []; + } + function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)); + } + function propertyIsOnObject(object, property) { + try { + return property in object; + } catch (_) { + return false; + } + } + function propertyIsUnsafe(target, key) { + return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key)); + } + function mergeObject(target, source, options2) { + var destination = {}; + if (options2.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options2); + }); + } + getKeys(source).forEach(function(key) { + if (propertyIsUnsafe(target, key)) { + return; + } + if (propertyIsOnObject(target, key) && options2.isMergeableObject(source[key])) { + destination[key] = getMergeFunction(key, options2)(target[key], source[key], options2); + } else { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], options2); + } + }); + return destination; + } + function deepmerge(target, source, options2) { + options2 = options2 || {}; + options2.arrayMerge = options2.arrayMerge || defaultArrayMerge; + options2.isMergeableObject = options2.isMergeableObject || isMergeableObject; + options2.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options2); + } else if (sourceIsArray) { + return options2.arrayMerge(target, source, options2); + } else { + return mergeObject(target, source, options2); + } + } + deepmerge.all = function deepmergeAll(array, options2) { + if (!Array.isArray(array)) { + throw new Error("first argument should be an array"); + } + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options2); + }, {}); + }; + var deepmerge_1 = deepmerge; + module2.exports = deepmerge_1; + } +}); + +// ../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js +var require_parse_srcset = __commonJS({ + "../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js"(exports2, module2) { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define([], factory); + } else if (typeof module2 === "object" && module2.exports) { + module2.exports = factory(); + } else { + root.parseSrcset = factory(); + } + })(exports2, function() { + return function(input) { + function isSpace(c2) { + return c2 === " " || // space + c2 === " " || // horizontal tab + c2 === "\n" || // new line + c2 === "\f" || // form feed + c2 === "\r"; + } + function collectCharacters(regEx) { + var chars, match2 = regEx.exec(input.substring(pos)); + if (match2) { + chars = match2[0]; + pos += chars.length; + return chars; + } + } + var inputLength = input.length, regexLeadingSpaces = /^[ \t\n\r\u000c]+/, regexLeadingCommasOrSpaces = /^[, \t\n\r\u000c]+/, regexLeadingNotSpaces = /^[^ \t\n\r\u000c]+/, regexTrailingCommas = /[,]+$/, regexNonNegativeInteger = /^\d+$/, regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/, url, descriptors, currentDescriptor, state, c, pos = 0, candidates = []; + while (true) { + collectCharacters(regexLeadingCommasOrSpaces); + if (pos >= inputLength) { + return candidates; + } + url = collectCharacters(regexLeadingNotSpaces); + descriptors = []; + if (url.slice(-1) === ",") { + url = url.replace(regexTrailingCommas, ""); + parseDescriptors(); + } else { + tokenize2(); + } + } + function tokenize2() { + collectCharacters(regexLeadingSpaces); + currentDescriptor = ""; + state = "in descriptor"; + while (true) { + c = input.charAt(pos); + if (state === "in descriptor") { + if (isSpace(c)) { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + currentDescriptor = ""; + state = "after descriptor"; + } + } else if (c === ",") { + pos += 1; + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else if (c === "(") { + currentDescriptor = currentDescriptor + c; + state = "in parens"; + } else if (c === "") { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "in parens") { + if (c === ")") { + currentDescriptor = currentDescriptor + c; + state = "in descriptor"; + } else if (c === "") { + descriptors.push(currentDescriptor); + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "after descriptor") { + if (isSpace(c)) { + } else if (c === "") { + parseDescriptors(); + return; + } else { + state = "in descriptor"; + pos -= 1; + } + } + pos += 1; + } + } + function parseDescriptors() { + var pError = false, w, d, h, i, candidate = {}, desc, lastChar, value, intVal, floatVal; + for (i = 0; i < descriptors.length; i++) { + desc = descriptors[i]; + lastChar = desc[desc.length - 1]; + value = desc.substring(0, desc.length - 1); + intVal = parseInt(value, 10); + floatVal = parseFloat(value); + if (regexNonNegativeInteger.test(value) && lastChar === "w") { + if (w || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + w = intVal; + } + } else if (regexFloatingPoint.test(value) && lastChar === "x") { + if (w || d || h) { + pError = true; + } + if (floatVal < 0) { + pError = true; + } else { + d = floatVal; + } + } else if (regexNonNegativeInteger.test(value) && lastChar === "h") { + if (h || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + h = intVal; + } + } else { + pError = true; + } + } + if (!pError) { + candidate.url = url; + if (w) { + candidate.w = w; + } + if (d) { + candidate.d = d; + } + if (h) { + candidate.h = h; + } + candidates.push(candidate); + } else if (console && console.log) { + console.log("Invalid srcset descriptor found in '" + input + "' at '" + desc + "'."); + } + } + }; + }); + } +}); + +// ../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js +var require_picocolors = __commonJS({ + "../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js"(exports2, module2) { + var tty = require("tty"); + var isColorSupported = !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && ("FORCE_COLOR" in process.env || process.argv.includes("--color") || process.platform === "win32" || tty.isatty(1) && process.env.TERM !== "dumb" || "CI" in process.env); + var formatter = (open2, close, replace = open2) => (input) => { + let string2 = "" + input; + let index = string2.indexOf(close, open2.length); + return ~index ? open2 + replaceClose(string2, close, replace, index) + close : open2 + string2 + close; + }; + var replaceClose = (string2, close, replace, index) => { + let start = string2.substring(0, index) + replace; + let end = string2.substring(index + close.length); + let nextIndex = end.indexOf(close); + return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end; + }; + var createColors = (enabled = isColorSupported) => ({ + isColorSupported: enabled, + reset: enabled ? (s) => `\x1B[0m${s}\x1B[0m` : String, + bold: enabled ? formatter("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m") : String, + dim: enabled ? formatter("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m") : String, + italic: enabled ? formatter("\x1B[3m", "\x1B[23m") : String, + underline: enabled ? formatter("\x1B[4m", "\x1B[24m") : String, + inverse: enabled ? formatter("\x1B[7m", "\x1B[27m") : String, + hidden: enabled ? formatter("\x1B[8m", "\x1B[28m") : String, + strikethrough: enabled ? formatter("\x1B[9m", "\x1B[29m") : String, + black: enabled ? formatter("\x1B[30m", "\x1B[39m") : String, + red: enabled ? formatter("\x1B[31m", "\x1B[39m") : String, + green: enabled ? formatter("\x1B[32m", "\x1B[39m") : String, + yellow: enabled ? formatter("\x1B[33m", "\x1B[39m") : String, + blue: enabled ? formatter("\x1B[34m", "\x1B[39m") : String, + magenta: enabled ? formatter("\x1B[35m", "\x1B[39m") : String, + cyan: enabled ? formatter("\x1B[36m", "\x1B[39m") : String, + white: enabled ? formatter("\x1B[37m", "\x1B[39m") : String, + gray: enabled ? formatter("\x1B[90m", "\x1B[39m") : String, + bgBlack: enabled ? formatter("\x1B[40m", "\x1B[49m") : String, + bgRed: enabled ? formatter("\x1B[41m", "\x1B[49m") : String, + bgGreen: enabled ? formatter("\x1B[42m", "\x1B[49m") : String, + bgYellow: enabled ? formatter("\x1B[43m", "\x1B[49m") : String, + bgBlue: enabled ? formatter("\x1B[44m", "\x1B[49m") : String, + bgMagenta: enabled ? formatter("\x1B[45m", "\x1B[49m") : String, + bgCyan: enabled ? formatter("\x1B[46m", "\x1B[49m") : String, + bgWhite: enabled ? formatter("\x1B[47m", "\x1B[49m") : String + }); + module2.exports = createColors(); + module2.exports.createColors = createColors; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/tokenize.js +var require_tokenize = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/tokenize.js"(exports2, module2) { + "use strict"; + var SINGLE_QUOTE = "'".charCodeAt(0); + var DOUBLE_QUOTE = '"'.charCodeAt(0); + var BACKSLASH = "\\".charCodeAt(0); + var SLASH = "/".charCodeAt(0); + var NEWLINE = "\n".charCodeAt(0); + var SPACE = " ".charCodeAt(0); + var FEED = "\f".charCodeAt(0); + var TAB = " ".charCodeAt(0); + var CR = "\r".charCodeAt(0); + var OPEN_SQUARE = "[".charCodeAt(0); + var CLOSE_SQUARE = "]".charCodeAt(0); + var OPEN_PARENTHESES = "(".charCodeAt(0); + var CLOSE_PARENTHESES = ")".charCodeAt(0); + var OPEN_CURLY = "{".charCodeAt(0); + var CLOSE_CURLY = "}".charCodeAt(0); + var SEMICOLON = ";".charCodeAt(0); + var ASTERISK = "*".charCodeAt(0); + var COLON = ":".charCodeAt(0); + var AT = "@".charCodeAt(0); + var RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g; + var RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; + var RE_BAD_BRACKET = /.[\r\n"'(/\\]/; + var RE_HEX_ESCAPE = /[\da-f]/i; + module2.exports = function tokenizer(input, options2 = {}) { + let css = input.css.valueOf(); + let ignore = options2.ignoreErrors; + let code, next, quote, content, escape2; + let escaped, escapePos, prev, n, currentToken; + let length = css.length; + let pos = 0; + let buffer = []; + let returned = []; + function position() { + return pos; + } + function unclosed(what) { + throw input.error("Unclosed " + what, pos); + } + function endOfFile() { + return returned.length === 0 && pos >= length; + } + function nextToken(opts) { + if (returned.length) + return returned.pop(); + if (pos >= length) + return; + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false; + code = css.charCodeAt(pos); + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED); + currentToken = ["space", css.slice(pos, next)]; + pos = next - 1; + break; + } + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code); + currentToken = [controlChar, controlChar, pos]; + break; + } + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : ""; + n = css.charCodeAt(pos + 1); + if (prev === "url" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) { + next = pos; + do { + escaped = false; + next = css.indexOf(")", next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos; + break; + } else { + unclosed("bracket"); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + currentToken = ["brackets", css.slice(pos, next + 1), pos, next]; + pos = next; + } else { + next = css.indexOf(")", pos + 1); + content = css.slice(pos, next + 1); + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ["(", "(", pos]; + } else { + currentToken = ["brackets", content, pos, next]; + pos = next; + } + } + break; + } + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"'; + next = pos; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1; + break; + } else { + unclosed("string"); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + currentToken = ["string", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + case AT: { + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_AT_END.lastIndex - 2; + } + currentToken = ["at-word", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + case BACKSLASH: { + next = pos; + escape2 = true; + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1; + escape2 = !escape2; + } + code = css.charCodeAt(next + 1); + if (escape2 && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) { + next += 1; + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1; + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1; + } + } + } + currentToken = ["word", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf("*/", pos + 2) + 1; + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length; + } else { + unclosed("comment"); + } + } + currentToken = ["comment", css.slice(pos, next + 1), pos, next]; + pos = next; + } else { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_WORD_END.lastIndex - 2; + } + currentToken = ["word", css.slice(pos, next + 1), pos, next]; + buffer.push(currentToken); + pos = next; + } + break; + } + } + pos++; + return currentToken; + } + function back(token) { + returned.push(token); + } + return { + back, + endOfFile, + nextToken, + position + }; + }; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/terminal-highlight.js +var require_terminal_highlight = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/terminal-highlight.js"(exports2, module2) { + "use strict"; + var pico = require_picocolors(); + var tokenizer = require_tokenize(); + var Input; + function registerInput(dependant) { + Input = dependant; + } + var HIGHLIGHT_THEME = { + ";": pico.yellow, + ":": pico.yellow, + "(": pico.cyan, + ")": pico.cyan, + "[": pico.yellow, + "]": pico.yellow, + "{": pico.yellow, + "}": pico.yellow, + "at-word": pico.cyan, + "brackets": pico.cyan, + "call": pico.cyan, + "class": pico.yellow, + "comment": pico.gray, + "hash": pico.magenta, + "string": pico.green + }; + function getTokenType([type2, value], processor) { + if (type2 === "word") { + if (value[0] === ".") { + return "class"; + } + if (value[0] === "#") { + return "hash"; + } + } + if (!processor.endOfFile()) { + let next = processor.nextToken(); + processor.back(next); + if (next[0] === "brackets" || next[0] === "(") + return "call"; + } + return type2; + } + function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }); + let result = ""; + while (!processor.endOfFile()) { + let token = processor.nextToken(); + let color = HIGHLIGHT_THEME[getTokenType(token, processor)]; + if (color) { + result += token[1].split(/\r?\n/).map((i) => color(i)).join("\n"); + } else { + result += token[1]; + } + } + return result; + } + terminalHighlight.registerInput = registerInput; + module2.exports = terminalHighlight; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/css-syntax-error.js +var require_css_syntax_error = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/css-syntax-error.js"(exports2, module2) { + "use strict"; + var pico = require_picocolors(); + var terminalHighlight = require_terminal_highlight(); + var CssSyntaxError = class _CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message); + this.name = "CssSyntaxError"; + this.reason = message; + if (file) { + this.file = file; + } + if (source) { + this.source = source; + } + if (plugin) { + this.plugin = plugin; + } + if (typeof line !== "undefined" && typeof column !== "undefined") { + if (typeof line === "number") { + this.line = line; + this.column = column; + } else { + this.line = line.line; + this.column = line.column; + this.endLine = column.line; + this.endColumn = column.column; + } + } + this.setMessage(); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, _CssSyntaxError); + } + } + setMessage() { + this.message = this.plugin ? this.plugin + ": " : ""; + this.message += this.file ? this.file : ""; + if (typeof this.line !== "undefined") { + this.message += ":" + this.line + ":" + this.column; + } + this.message += ": " + this.reason; + } + showSourceCode(color) { + if (!this.source) + return ""; + let css = this.source; + if (color == null) + color = pico.isColorSupported; + if (terminalHighlight) { + if (color) + css = terminalHighlight(css); + } + let lines = css.split(/\r?\n/); + let start = Math.max(this.line - 3, 0); + let end = Math.min(this.line + 2, lines.length); + let maxWidth = String(end).length; + let mark, aside; + if (color) { + let { bold, gray, red } = pico.createColors(true); + mark = (text) => bold(red(text)); + aside = (text) => gray(text); + } else { + mark = aside = (str2) => str2; + } + return lines.slice(start, end).map((line, index) => { + let number = start + 1 + index; + let gutter = " " + (" " + number).slice(-maxWidth) + " | "; + if (number === this.line) { + let spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, this.column - 1).replace(/[^\t]/g, " "); + return mark(">") + aside(gutter) + line + "\n " + spacing + mark("^"); + } + return " " + aside(gutter) + line; + }).join("\n"); + } + toString() { + let code = this.showSourceCode(); + if (code) { + code = "\n\n" + code + "\n"; + } + return this.name + ": " + this.message + code; + } + }; + module2.exports = CssSyntaxError; + CssSyntaxError.default = CssSyntaxError; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/symbols.js +var require_symbols = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/symbols.js"(exports2, module2) { + "use strict"; + module2.exports.isClean = Symbol("isClean"); + module2.exports.my = Symbol("my"); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringifier.js +var require_stringifier = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringifier.js"(exports2, module2) { + "use strict"; + var DEFAULT_RAW = { + after: "\n", + beforeClose: "\n", + beforeComment: "\n", + beforeDecl: "\n", + beforeOpen: " ", + beforeRule: "\n", + colon: ": ", + commentLeft: " ", + commentRight: " ", + emptyBody: "", + indent: " ", + semicolon: false + }; + function capitalize(str2) { + return str2[0].toUpperCase() + str2.slice(1); + } + var Stringifier = class { + constructor(builder) { + this.builder = builder; + } + atrule(node, semicolon) { + let name = "@" + node.name; + let params = node.params ? this.rawValue(node, "params") : ""; + if (typeof node.raws.afterName !== "undefined") { + name += node.raws.afterName; + } else if (params) { + name += " "; + } + if (node.nodes) { + this.block(node, name + params); + } else { + let end = (node.raws.between || "") + (semicolon ? ";" : ""); + this.builder(name + params + end, node); + } + } + beforeAfter(node, detect) { + let value; + if (node.type === "decl") { + value = this.raw(node, null, "beforeDecl"); + } else if (node.type === "comment") { + value = this.raw(node, null, "beforeComment"); + } else if (detect === "before") { + value = this.raw(node, null, "beforeRule"); + } else { + value = this.raw(node, null, "beforeClose"); + } + let buf = node.parent; + let depth = 0; + while (buf && buf.type !== "root") { + depth += 1; + buf = buf.parent; + } + if (value.includes("\n")) { + let indent = this.raw(node, null, "indent"); + if (indent.length) { + for (let step = 0; step < depth; step++) + value += indent; + } + } + return value; + } + block(node, start) { + let between = this.raw(node, "between", "beforeOpen"); + this.builder(start + between + "{", node, "start"); + let after; + if (node.nodes && node.nodes.length) { + this.body(node); + after = this.raw(node, "after"); + } else { + after = this.raw(node, "after", "emptyBody"); + } + if (after) + this.builder(after); + this.builder("}", node, "end"); + } + body(node) { + let last2 = node.nodes.length - 1; + while (last2 > 0) { + if (node.nodes[last2].type !== "comment") + break; + last2 -= 1; + } + let semicolon = this.raw(node, "semicolon"); + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + let before = this.raw(child, "before"); + if (before) + this.builder(before); + this.stringify(child, last2 !== i || semicolon); + } + } + comment(node) { + let left = this.raw(node, "left", "commentLeft"); + let right = this.raw(node, "right", "commentRight"); + this.builder("/*" + left + node.text + right + "*/", node); + } + decl(node, semicolon) { + let between = this.raw(node, "between", "colon"); + let string2 = node.prop + between + this.rawValue(node, "value"); + if (node.important) { + string2 += node.raws.important || " !important"; + } + if (semicolon) + string2 += ";"; + this.builder(string2, node); + } + document(node) { + this.body(node); + } + raw(node, own, detect) { + let value; + if (!detect) + detect = own; + if (own) { + value = node.raws[own]; + if (typeof value !== "undefined") + return value; + } + let parent = node.parent; + if (detect === "before") { + if (!parent || parent.type === "root" && parent.first === node) { + return ""; + } + if (parent && parent.type === "document") { + return ""; + } + } + if (!parent) + return DEFAULT_RAW[detect]; + let root = node.root(); + if (!root.rawCache) + root.rawCache = {}; + if (typeof root.rawCache[detect] !== "undefined") { + return root.rawCache[detect]; + } + if (detect === "before" || detect === "after") { + return this.beforeAfter(node, detect); + } else { + let method = "raw" + capitalize(detect); + if (this[method]) { + value = this[method](root, node); + } else { + root.walk((i) => { + value = i.raws[own]; + if (typeof value !== "undefined") + return false; + }); + } + } + if (typeof value === "undefined") + value = DEFAULT_RAW[detect]; + root.rawCache[detect] = value; + return value; + } + rawBeforeClose(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== "undefined") { + value = i.raws.after; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + } + }); + if (value) + value = value.replace(/\S/g, ""); + return value; + } + rawBeforeComment(root, node) { + let value; + root.walkComments((i) => { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + }); + if (typeof value === "undefined") { + value = this.raw(node, null, "beforeDecl"); + } else if (value) { + value = value.replace(/\S/g, ""); + } + return value; + } + rawBeforeDecl(root, node) { + let value; + root.walkDecls((i) => { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + }); + if (typeof value === "undefined") { + value = this.raw(node, null, "beforeRule"); + } else if (value) { + value = value.replace(/\S/g, ""); + } + return value; + } + rawBeforeOpen(root) { + let value; + root.walk((i) => { + if (i.type !== "decl") { + value = i.raws.between; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawBeforeRule(root) { + let value; + root.walk((i) => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + } + }); + if (value) + value = value.replace(/\S/g, ""); + return value; + } + rawColon(root) { + let value; + root.walkDecls((i) => { + if (typeof i.raws.between !== "undefined") { + value = i.raws.between.replace(/[^\s:]/g, ""); + return false; + } + }); + return value; + } + rawEmptyBody(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawIndent(root) { + if (root.raws.indent) + return root.raws.indent; + let value; + root.walk((i) => { + let p = i.parent; + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== "undefined") { + let parts = i.raws.before.split("\n"); + value = parts[parts.length - 1]; + value = value.replace(/\S/g, ""); + return false; + } + } + }); + return value; + } + rawSemicolon(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length && i.last.type === "decl") { + value = i.raws.semicolon; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawValue(node, prop) { + let value = node[prop]; + let raw = node.raws[prop]; + if (raw && raw.value === value) { + return raw.raw; + } + return value; + } + root(node) { + this.body(node); + if (node.raws.after) + this.builder(node.raws.after); + } + rule(node) { + this.block(node, this.rawValue(node, "selector")); + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, "end"); + } + } + stringify(node, semicolon) { + if (!this[node.type]) { + throw new Error( + "Unknown AST node type " + node.type + ". Maybe you need to change PostCSS stringifier." + ); + } + this[node.type](node, semicolon); + } + }; + module2.exports = Stringifier; + Stringifier.default = Stringifier; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringify.js +var require_stringify2 = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringify.js"(exports2, module2) { + "use strict"; + var Stringifier = require_stringifier(); + function stringify2(node, builder) { + let str2 = new Stringifier(builder); + str2.stringify(node); + } + module2.exports = stringify2; + stringify2.default = stringify2; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/node.js +var require_node2 = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/node.js"(exports2, module2) { + "use strict"; + var { isClean, my } = require_symbols(); + var CssSyntaxError = require_css_syntax_error(); + var Stringifier = require_stringifier(); + var stringify2 = require_stringify2(); + function cloneNode(obj, parent) { + let cloned = new obj.constructor(); + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + continue; + } + if (i === "proxyCache") + continue; + let value = obj[i]; + let type2 = typeof value; + if (i === "parent" && type2 === "object") { + if (parent) + cloned[i] = parent; + } else if (i === "source") { + cloned[i] = value; + } else if (Array.isArray(value)) { + cloned[i] = value.map((j) => cloneNode(j, cloned)); + } else { + if (type2 === "object" && value !== null) + value = cloneNode(value); + cloned[i] = value; + } + } + return cloned; + } + var Node = class { + constructor(defaults2 = {}) { + this.raws = {}; + this[isClean] = false; + this[my] = true; + for (let name in defaults2) { + if (name === "nodes") { + this.nodes = []; + for (let node of defaults2[name]) { + if (typeof node.clone === "function") { + this.append(node.clone()); + } else { + this.append(node); + } + } + } else { + this[name] = defaults2[name]; + } + } + } + addToError(error) { + error.postcssNode = this; + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source; + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ); + } + return error; + } + after(add) { + this.parent.insertAfter(this, add); + return this; + } + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name]; + } + return this; + } + before(add) { + this.parent.insertBefore(this, add); + return this; + } + cleanRaws(keepBetween) { + delete this.raws.before; + delete this.raws.after; + if (!keepBetween) + delete this.raws.between; + } + clone(overrides = {}) { + let cloned = cloneNode(this); + for (let name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertAfter(this, cloned); + return cloned; + } + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertBefore(this, cloned); + return cloned; + } + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts); + return this.source.input.error( + message, + { column: start.column, line: start.line }, + { column: end.column, line: end.line }, + opts + ); + } + return new CssSyntaxError(message); + } + getProxyProcessor() { + return { + get(node, prop) { + if (prop === "proxyOf") { + return node; + } else if (prop === "root") { + return () => node.root().toProxy(); + } else { + return node[prop]; + } + }, + set(node, prop, value) { + if (node[prop] === value) + return true; + node[prop] = value; + if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || /* c8 ignore next */ + prop === "text") { + node.markDirty(); + } + return true; + } + }; + } + markDirty() { + if (this[isClean]) { + this[isClean] = false; + let next = this; + while (next = next.parent) { + next[isClean] = false; + } + } + } + next() { + if (!this.parent) + return void 0; + let index = this.parent.index(this); + return this.parent.nodes[index + 1]; + } + positionBy(opts, stringRepresentation) { + let pos = this.source.start; + if (opts.index) { + pos = this.positionInside(opts.index, stringRepresentation); + } else if (opts.word) { + stringRepresentation = this.toString(); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) + pos = this.positionInside(index, stringRepresentation); + } + return pos; + } + positionInside(index, stringRepresentation) { + let string2 = stringRepresentation || this.toString(); + let column = this.source.start.column; + let line = this.source.start.line; + for (let i = 0; i < index; i++) { + if (string2[i] === "\n") { + column = 1; + line += 1; + } else { + column += 1; + } + } + return { column, line }; + } + prev() { + if (!this.parent) + return void 0; + let index = this.parent.index(this); + return this.parent.nodes[index - 1]; + } + rangeBy(opts) { + let start = { + column: this.source.start.column, + line: this.source.start.line + }; + let end = this.source.end ? { + column: this.source.end.column + 1, + line: this.source.end.line + } : { + column: start.column + 1, + line: start.line + }; + if (opts.word) { + let stringRepresentation = this.toString(); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) { + start = this.positionInside(index, stringRepresentation); + end = this.positionInside(index + opts.word.length, stringRepresentation); + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line + }; + } else if (opts.index) { + start = this.positionInside(opts.index); + } + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line + }; + } else if (typeof opts.endIndex === "number") { + end = this.positionInside(opts.endIndex); + } else if (opts.index) { + end = this.positionInside(opts.index + 1); + } + } + if (end.line < start.line || end.line === start.line && end.column <= start.column) { + end = { column: start.column + 1, line: start.line }; + } + return { end, start }; + } + raw(prop, defaultType) { + let str2 = new Stringifier(); + return str2.raw(this, prop, defaultType); + } + remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = void 0; + return this; + } + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this; + let foundSelf = false; + for (let node of nodes) { + if (node === this) { + foundSelf = true; + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node); + bookmark = node; + } else { + this.parent.insertBefore(bookmark, node); + } + } + if (!foundSelf) { + this.remove(); + } + } + return this; + } + root() { + let result = this; + while (result.parent && result.parent.type !== "document") { + result = result.parent; + } + return result; + } + toJSON(_, inputs) { + let fixed = {}; + let emitInputs = inputs == null; + inputs = inputs || /* @__PURE__ */ new Map(); + let inputsNextIndex = 0; + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + continue; + } + if (name === "parent" || name === "proxyCache") + continue; + let value = this[name]; + if (Array.isArray(value)) { + fixed[name] = value.map((i) => { + if (typeof i === "object" && i.toJSON) { + return i.toJSON(null, inputs); + } else { + return i; + } + }); + } else if (typeof value === "object" && value.toJSON) { + fixed[name] = value.toJSON(null, inputs); + } else if (name === "source") { + let inputId = inputs.get(value.input); + if (inputId == null) { + inputId = inputsNextIndex; + inputs.set(value.input, inputsNextIndex); + inputsNextIndex++; + } + fixed[name] = { + end: value.end, + inputId, + start: value.start + }; + } else { + fixed[name] = value; + } + } + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map((input) => input.toJSON()); + } + return fixed; + } + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()); + } + return this.proxyCache; + } + toString(stringifier = stringify2) { + if (stringifier.stringify) + stringifier = stringifier.stringify; + let result = ""; + stringifier(this, (i) => { + result += i; + }); + return result; + } + warn(result, text, opts) { + let data = { node: this }; + for (let i in opts) + data[i] = opts[i]; + return result.warn(text, data); + } + get proxyOf() { + return this; + } + }; + module2.exports = Node; + Node.default = Node; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/declaration.js +var require_declaration = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/declaration.js"(exports2, module2) { + "use strict"; + var Node = require_node2(); + var Declaration = class extends Node { + constructor(defaults2) { + if (defaults2 && typeof defaults2.value !== "undefined" && typeof defaults2.value !== "string") { + defaults2 = { ...defaults2, value: String(defaults2.value) }; + } + super(defaults2); + this.type = "decl"; + } + get variable() { + return this.prop.startsWith("--") || this.prop[0] === "$"; + } + }; + module2.exports = Declaration; + Declaration.default = Declaration; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64.js +var require_base64 = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64.js"(exports2) { + var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); + exports2.encode = function(number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + exports2.decode = function(charCode) { + var bigA = 65; + var bigZ = 90; + var littleA = 97; + var littleZ = 122; + var zero = 48; + var nine = 57; + var plus = 43; + var slash = 47; + var littleOffset = 26; + var numberOffset = 52; + if (bigA <= charCode && charCode <= bigZ) { + return charCode - bigA; + } + if (littleA <= charCode && charCode <= littleZ) { + return charCode - littleA + littleOffset; + } + if (zero <= charCode && charCode <= nine) { + return charCode - zero + numberOffset; + } + if (charCode == plus) { + return 62; + } + if (charCode == slash) { + return 63; + } + return -1; + }; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64-vlq.js +var require_base64_vlq = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64-vlq.js"(exports2) { + var base64 = require_base64(); + var VLQ_BASE_SHIFT = 5; + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + var VLQ_BASE_MASK = VLQ_BASE - 1; + var VLQ_CONTINUATION_BIT = VLQ_BASE; + function toVLQSigned(aValue) { + return aValue < 0 ? (-aValue << 1) + 1 : (aValue << 1) + 0; + } + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative ? -shifted : shifted; + } + exports2.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + var vlq = toVLQSigned(aValue); + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + return encoded; + }; + exports2.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/util.js +var require_util = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/util.js"(exports2) { + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports2.getArg = getArg; + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + function urlParse(aUrl) { + var match2 = aUrl.match(urlRegexp); + if (!match2) { + return null; + } + return { + scheme: match2[1], + auth: match2[2], + host: match2[3], + port: match2[4], + path: match2[5] + }; + } + exports2.urlParse = urlParse; + function urlGenerate(aParsedUrl) { + var url = ""; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ":"; + } + url += "//"; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + "@"; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports2.urlGenerate = urlGenerate; + var MAX_CACHED_INPUTS = 32; + function lruMemoize(f) { + var cache = []; + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + var result = f(input); + cache.unshift({ + input, + result + }); + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + return result; + }; + } + var normalize2 = lruMemoize(function normalize3(aPath) { + var path8 = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path8 = url.path; + } + var isAbsolute = exports2.isAbsolute(path8); + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path8.indexOf("/", start); + if (i === -1) { + parts.push(path8.slice(start)); + break; + } else { + parts.push(path8.slice(start, i)); + while (i < path8.length && path8[i] === "/") { + i++; + } + } + } + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === ".") { + parts.splice(i, 1); + } else if (part === "..") { + up++; + } else if (up > 0) { + if (part === "") { + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path8 = parts.join("/"); + if (path8 === "") { + path8 = isAbsolute ? "/" : "."; + } + if (url) { + url.path = path8; + return urlGenerate(url); + } + return path8; + }); + exports2.normalize = normalize2; + function join9(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || "/"; + } + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + var joined = aPath.charAt(0) === "/" ? aPath : normalize2(aRoot.replace(/\/+$/, "") + "/" + aPath); + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports2.join = join9; + exports2.isAbsolute = function(aPath) { + return aPath.charAt(0) === "/" || urlRegexp.test(aPath); + }; + function relative2(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + aRoot = aRoot.replace(/\/$/, ""); + var level = 0; + while (aPath.indexOf(aRoot + "/") !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + ++level; + } + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports2.relative = relative2; + var supportsNullProto = function() { + var obj = /* @__PURE__ */ Object.create(null); + return !("__proto__" in obj); + }(); + function identity3(s) { + return s; + } + function toSetString(aStr) { + if (isProtoString(aStr)) { + return "$" + aStr; + } + return aStr; + } + exports2.toSetString = supportsNullProto ? identity3 : toSetString; + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + return aStr; + } + exports2.fromSetString = supportsNullProto ? identity3 : fromSetString; + function isProtoString(s) { + if (!s) { + return false; + } + var length = s.length; + if (length < 9) { + return false; + } + if (s.charCodeAt(length - 1) !== 95 || s.charCodeAt(length - 2) !== 95 || s.charCodeAt(length - 3) !== 111 || s.charCodeAt(length - 4) !== 116 || s.charCodeAt(length - 5) !== 111 || s.charCodeAt(length - 6) !== 114 || s.charCodeAt(length - 7) !== 112 || s.charCodeAt(length - 8) !== 95 || s.charCodeAt(length - 9) !== 95) { + return false; + } + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36) { + return false; + } + } + return true; + } + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports2.compareByOriginalPositions = compareByOriginalPositions; + function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp; + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports2.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports2.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports2.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + if (aStr1 === null) { + return 1; + } + if (aStr2 === null) { + return -1; + } + if (aStr1 > aStr2) { + return 1; + } + return -1; + } + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports2.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + function parseSourceMapInput(str2) { + return JSON.parse(str2.replace(/^\)]}'[^\n]*\n/, "")); + } + exports2.parseSourceMapInput = parseSourceMapInput; + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ""; + if (sourceRoot) { + if (sourceRoot[sourceRoot.length - 1] !== "/" && sourceURL[0] !== "/") { + sourceRoot += "/"; + } + sourceURL = sourceRoot + sourceURL; + } + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + var index = parsed.path.lastIndexOf("/"); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join9(urlGenerate(parsed), sourceURL); + } + return normalize2(sourceURL); + } + exports2.computeSourceURL = computeSourceURL; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/array-set.js +var require_array_set = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/array-set.js"(exports2) { + var util2 = require_util(); + var has2 = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null); + } + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set3 = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set3.add(aArray[i], aAllowDuplicates); + } + return set3; + }; + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util2.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has2.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util2.toSetString(aStr); + return has2.call(this._set, sStr); + } + }; + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util2.toSetString(aStr); + if (has2.call(this._set, sStr)) { + return this._set[sStr]; + } + } + throw new Error('"' + aStr + '" is not in the set.'); + }; + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error("No element indexed by " + aIdx); + }; + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + exports2.ArraySet = ArraySet; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/mapping-list.js +var require_mapping_list = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/mapping-list.js"(exports2) { + var util2 = require_util(); + function generatedPositionAfter(mappingA, mappingB) { + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || util2.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + function MappingList() { + this._array = []; + this._sorted = true; + this._last = { generatedLine: -1, generatedColumn: 0 }; + } + MappingList.prototype.unsortedForEach = function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util2.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + exports2.MappingList = MappingList; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-generator.js +var require_source_map_generator = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-generator.js"(exports2) { + var base64VLQ = require_base64_vlq(); + var util2 = require_util(); + var ArraySet = require_array_set().ArraySet; + var MappingList = require_mapping_list().MappingList; + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util2.getArg(aArgs, "file", null); + this._sourceRoot = util2.getArg(aArgs, "sourceRoot", null); + this._skipValidation = util2.getArg(aArgs, "skipValidation", false); + this._ignoreInvalidMapping = util2.getArg(aArgs, "ignoreInvalidMapping", false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + SourceMapGenerator.prototype._version = 3; + SourceMapGenerator.fromSourceMap = function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot + })); + aSourceMapConsumer.eachMapping(function(mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util2.relative(sourceRoot, newMapping.source); + } + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function(sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util2.relative(sourceRoot, sourceFile); + } + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + SourceMapGenerator.prototype.addMapping = function SourceMapGenerator_addMapping(aArgs) { + var generated = util2.getArg(aArgs, "generated"); + var original = util2.getArg(aArgs, "original", null); + var source = util2.getArg(aArgs, "source", null); + var name = util2.getArg(aArgs, "name", null); + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source, + name + }); + }; + SourceMapGenerator.prototype.setSourceContent = function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util2.relative(this._sourceRoot, source); + } + if (aSourceContent != null) { + if (!this._sourcesContents) { + this._sourcesContents = /* @__PURE__ */ Object.create(null); + } + this._sourcesContents[util2.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + delete this._sourcesContents[util2.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + SourceMapGenerator.prototype.applySourceMap = function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + `SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.` + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + if (sourceRoot != null) { + sourceFile = util2.relative(sourceRoot, sourceFile); + } + var newSources = new ArraySet(); + var newNames = new ArraySet(); + this._mappings.unsortedForEach(function(mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util2.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util2.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + }, this); + this._sources = newSources; + this._names = newNames; + aSourceMapConsumer.sources.forEach(function(sourceFile2) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile2); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile2 = util2.join(aSourceMapPath, sourceFile2); + } + if (sourceRoot != null) { + sourceFile2 = util2.relative(sourceRoot, sourceFile2); + } + this.setSourceContent(sourceFile2, content); + } + }, this); + }; + SourceMapGenerator.prototype._validateMapping = function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, aName) { + if (aOriginal && typeof aOriginal.line !== "number" && typeof aOriginal.column !== "number") { + var message = "original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values."; + if (this._ignoreInvalidMapping) { + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + if (aGenerated && "line" in aGenerated && "column" in aGenerated && aGenerated.line > 0 && aGenerated.column >= 0 && !aOriginal && !aSource && !aName) { + return; + } else if (aGenerated && "line" in aGenerated && "column" in aGenerated && aOriginal && "line" in aOriginal && "column" in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) { + return; + } else { + var message = "Invalid mapping: " + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + if (this._ignoreInvalidMapping) { + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + }; + SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ""; + var next; + var mapping; + var nameIdx; + var sourceIdx; + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ""; + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ";"; + previousGeneratedLine++; + } + } else { + if (i > 0) { + if (!util2.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ","; + } + } + next += base64VLQ.encode(mapping.generatedColumn - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + next += base64VLQ.encode(mapping.originalLine - 1 - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + next += base64VLQ.encode(mapping.originalColumn - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + result += next; + } + return result; + }; + SourceMapGenerator.prototype._generateSourcesContent = function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function(source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util2.relative(aSourceRoot, source); + } + var key = util2.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) ? this._sourcesContents[key] : null; + }, this); + }; + SourceMapGenerator.prototype.toJSON = function SourceMapGenerator_toJSON() { + var map4 = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map4.file = this._file; + } + if (this._sourceRoot != null) { + map4.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map4.sourcesContent = this._generateSourcesContent(map4.sources, map4.sourceRoot); + } + return map4; + }; + SourceMapGenerator.prototype.toString = function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + exports2.SourceMapGenerator = SourceMapGenerator; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/binary-search.js +var require_binary_search = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/binary-search.js"(exports2) { + exports2.GREATEST_LOWER_BOUND = 1; + exports2.LEAST_UPPER_BOUND = 2; + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + return mid; + } else if (cmp > 0) { + if (aHigh - mid > 1) { + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + if (aBias == exports2.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } else { + if (mid - aLow > 1) { + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + if (aBias == exports2.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + exports2.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + var index = recursiveSearch( + -1, + aHaystack.length, + aNeedle, + aHaystack, + aCompare, + aBias || exports2.GREATEST_LOWER_BOUND + ); + if (index < 0) { + return -1; + } + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + return index; + }; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/quick-sort.js +var require_quick_sort = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/quick-sort.js"(exports2) { + function SortTemplate(comparator) { + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + function randomIntInRange(low, high) { + return Math.round(low + Math.random() * (high - low)); + } + function doQuickSort(ary, comparator2, p, r) { + if (p < r) { + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + swap(ary, pivotIndex, r); + var pivot = ary[r]; + for (var j = p; j < r; j++) { + if (comparator2(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + swap(ary, i + 1, j); + var q2 = i + 1; + doQuickSort(ary, comparator2, p, q2 - 1); + doQuickSort(ary, comparator2, q2 + 1, r); + } + } + return doQuickSort; + } + function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); + } + var sortCache = /* @__PURE__ */ new WeakMap(); + exports2.quickSort = function(ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); + }; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-consumer.js +var require_source_map_consumer = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-consumer.js"(exports2) { + var util2 = require_util(); + var binarySearch = require_binary_search(); + var ArraySet = require_array_set().ArraySet; + var base64VLQ = require_base64_vlq(); + var quickSort = require_quick_sort().quickSort; + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util2.parseSourceMapInput(aSourceMap); + } + return sourceMap.sections != null ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + }; + SourceMapConsumer.prototype._version = 3; + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, "_generatedMappings", { + configurable: true, + enumerable: true, + get: function() { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + return this.__generatedMappings; + } + }); + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, "_originalMappings", { + configurable: true, + enumerable: true, + get: function() { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + return this.__originalMappings; + } + }); + SourceMapConsumer.prototype._charIsMappingSeparator = function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + SourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + SourceMapConsumer.prototype.eachMapping = function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + source = util2.computeSourceURL(sourceRoot, source, sourceMapURL); + boundCallback({ + source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + SourceMapConsumer.prototype.allGeneratedPositionsFor = function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util2.getArg(aArgs, "line"); + var needle = { + source: util2.getArg(aArgs, "source"), + originalLine: line, + originalColumn: util2.getArg(aArgs, "column", 0) + }; + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + var mappings = []; + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util2.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND + ); + if (index >= 0) { + var mapping = this._originalMappings[index]; + if (aArgs.column === void 0) { + var originalLine = mapping.originalLine; + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util2.getArg(mapping, "generatedLine", null), + column: util2.getArg(mapping, "generatedColumn", null), + lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null) + }); + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + while (mapping && mapping.originalLine === line && mapping.originalColumn == originalColumn) { + mappings.push({ + line: util2.getArg(mapping, "generatedLine", null), + column: util2.getArg(mapping, "generatedColumn", null), + lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null) + }); + mapping = this._originalMappings[++index]; + } + } + } + return mappings; + }; + exports2.SourceMapConsumer = SourceMapConsumer; + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util2.parseSourceMapInput(aSourceMap); + } + var version2 = util2.getArg(sourceMap, "version"); + var sources = util2.getArg(sourceMap, "sources"); + var names = util2.getArg(sourceMap, "names", []); + var sourceRoot = util2.getArg(sourceMap, "sourceRoot", null); + var sourcesContent = util2.getArg(sourceMap, "sourcesContent", null); + var mappings = util2.getArg(sourceMap, "mappings"); + var file = util2.getArg(sourceMap, "file", null); + if (version2 != this._version) { + throw new Error("Unsupported version: " + version2); + } + if (sourceRoot) { + sourceRoot = util2.normalize(sourceRoot); + } + sources = sources.map(String).map(util2.normalize).map(function(source) { + return sourceRoot && util2.isAbsolute(sourceRoot) && util2.isAbsolute(source) ? util2.relative(sourceRoot, source) : source; + }); + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + this._absoluteSources = this._sources.toArray().map(function(s) { + return util2.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util2.relative(this.sourceRoot, relativeSource); + } + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + return -1; + }; + BasicSourceMapConsumer.fromSourceMap = function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent( + smc._sources.toArray(), + smc.sourceRoot + ); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function(s) { + return util2.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping(); + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + destOriginalMappings.push(destMapping); + } + destGeneratedMappings.push(destMapping); + } + quickSort(smc.__originalMappings, util2.compareByOriginalPositions); + return smc; + }; + BasicSourceMapConsumer.prototype._version = 3; + Object.defineProperty(BasicSourceMapConsumer.prototype, "sources", { + get: function() { + return this._absoluteSources.slice(); + } + }); + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + var compareGenerated = util2.compareByGeneratedPositionsDeflatedNoLine; + function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } + } + BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str2, segment, end, value; + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ";") { + generatedLine++; + index++; + previousGeneratedColumn = 0; + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } else if (aStr.charAt(index) === ",") { + index++; + } else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str2 = aStr.slice(index, end); + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + if (segment.length === 2) { + throw new Error("Found a source, but no line and column"); + } + if (segment.length === 3) { + throw new Error("Found a source and line, but no column"); + } + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + if (segment.length > 1) { + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + mapping.originalLine += 1; + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + if (segment.length > 4) { + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + generatedMappings.push(mapping); + if (typeof mapping.originalLine === "number") { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util2.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + BasicSourceMapConsumer.prototype._findMapping = function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, aColumnName, aComparator, aBias) { + if (aNeedle[aLineName] <= 0) { + throw new TypeError("Line must be greater than or equal to 1, got " + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError("Column must be greater than or equal to 0, got " + aNeedle[aColumnName]); + } + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + BasicSourceMapConsumer.prototype.computeColumnSpans = function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + mapping.lastGeneratedColumn = Infinity; + } + }; + BasicSourceMapConsumer.prototype.originalPositionFor = function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util2.getArg(aArgs, "line"), + generatedColumn: util2.getArg(aArgs, "column") + }; + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util2.compareByGeneratedPositionsDeflated, + util2.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + if (index >= 0) { + var mapping = this._generatedMappings[index]; + if (mapping.generatedLine === needle.generatedLine) { + var source = util2.getArg(mapping, "source", null); + if (source !== null) { + source = this._sources.at(source); + source = util2.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util2.getArg(mapping, "name", null); + if (name !== null) { + name = this._names.at(name); + } + return { + source, + line: util2.getArg(mapping, "originalLine", null), + column: util2.getArg(mapping, "originalColumn", null), + name + }; + } + } + return { + source: null, + line: null, + column: null, + name: null + }; + }; + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(sc) { + return sc == null; + }); + }; + BasicSourceMapConsumer.prototype.sourceContentFor = function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util2.relative(this.sourceRoot, relativeSource); + } + var url; + if (this.sourceRoot != null && (url = util2.urlParse(this.sourceRoot))) { + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]; + } + if ((!url.path || url.path == "/") && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + if (nullOnMissing) { + return null; + } else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + BasicSourceMapConsumer.prototype.generatedPositionFor = function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util2.getArg(aArgs, "source"); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + var needle = { + source, + originalLine: util2.getArg(aArgs, "line"), + originalColumn: util2.getArg(aArgs, "column") + }; + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util2.compareByOriginalPositions, + util2.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + if (index >= 0) { + var mapping = this._originalMappings[index]; + if (mapping.source === needle.source) { + return { + line: util2.getArg(mapping, "generatedLine", null), + column: util2.getArg(mapping, "generatedColumn", null), + lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null) + }; + } + } + return { + line: null, + column: null, + lastColumn: null + }; + }; + exports2.BasicSourceMapConsumer = BasicSourceMapConsumer; + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util2.parseSourceMapInput(aSourceMap); + } + var version2 = util2.getArg(sourceMap, "version"); + var sections = util2.getArg(sourceMap, "sections"); + if (version2 != this._version) { + throw new Error("Unsupported version: " + version2); + } + this._sources = new ArraySet(); + this._names = new ArraySet(); + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function(s) { + if (s.url) { + throw new Error("Support for url field in sections not implemented."); + } + var offset = util2.getArg(s, "offset"); + var offsetLine = util2.getArg(offset, "line"); + var offsetColumn = util2.getArg(offset, "column"); + if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) { + throw new Error("Section offsets must be ordered and non-overlapping."); + } + lastOffset = offset; + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util2.getArg(s, "map"), aSourceMapURL) + }; + }); + } + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + IndexedSourceMapConsumer.prototype._version = 3; + Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", { + get: function() { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + IndexedSourceMapConsumer.prototype.originalPositionFor = function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util2.getArg(aArgs, "line"), + generatedColumn: util2.getArg(aArgs, "column") + }; + var sectionIndex = binarySearch.search( + needle, + this._sections, + function(needle2, section2) { + var cmp = needle2.generatedLine - section2.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + return needle2.generatedColumn - section2.generatedOffset.generatedColumn; + } + ); + var section = this._sections[sectionIndex]; + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + return section.consumer.originalPositionFor({ + line: needle.generatedLine - (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - (section.generatedOffset.generatedLine === needle.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0), + bias: aArgs.bias + }); + }; + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function(s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + IndexedSourceMapConsumer.prototype.sourceContentFor = function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === "") { + return content; + } + } + if (nullOnMissing) { + return null; + } else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + IndexedSourceMapConsumer.prototype.generatedPositionFor = function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + if (section.consumer._findSourceIndex(util2.getArg(aArgs, "source")) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + (section.generatedOffset.generatedLine === generatedPosition.line ? section.generatedOffset.generatedColumn - 1 : 0) + }; + return ret; + } + } + return { + line: null, + column: null + }; + }; + IndexedSourceMapConsumer.prototype._parseMappings = function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + var source = section.consumer._sources.at(mapping.source); + source = util2.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + var adjustedMapping = { + source, + generatedLine: mapping.generatedLine + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + (section.generatedOffset.generatedLine === mapping.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name + }; + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === "number") { + this.__originalMappings.push(adjustedMapping); + } + } + } + quickSort(this.__generatedMappings, util2.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util2.compareByOriginalPositions); + }; + exports2.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-node.js +var require_source_node = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-node.js"(exports2) { + var SourceMapGenerator = require_source_map_generator().SourceMapGenerator; + var util2 = require_util(); + var REGEX_NEWLINE = /(\r?\n)/; + var NEWLINE_CODE = 10; + var isSourceNode = "$$$isSourceNode$$$"; + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) + this.add(aChunks); + } + SourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + var node = new SourceNode(); + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + var newLine = getNextLine() || ""; + return lineContents + newLine; + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? remainingLines[remainingLinesIndex++] : void 0; + } + }; + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + var lastMapping = null; + aSourceMapConsumer.eachMapping(function(mapping) { + if (lastMapping !== null) { + if (lastGeneratedLine < mapping.generatedLine) { + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + } else { + var nextLine = remainingLines[remainingLinesIndex] || ""; + var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + lastMapping = mapping; + return; + } + } + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ""; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + addMappingWithCode(lastMapping, shiftNextLine()); + } + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + aSourceMapConsumer.sources.forEach(function(sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util2.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + return node; + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === void 0) { + node.add(code); + } else { + var source = aRelativePath ? util2.join(aRelativePath, mapping.source) : mapping.source; + node.add(new SourceNode( + mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name + )); + } + } + }; + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function(chunk) { + this.add(chunk); + }, this); + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length - 1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } else { + if (chunk !== "") { + aFn(chunk, { + source: this.source, + line: this.line, + column: this.column, + name: this.name + }); + } + } + } + }; + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len - 1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } else if (typeof lastChild === "string") { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } else { + this.children.push("".replace(aPattern, aReplacement)); + } + return this; + }; + SourceNode.prototype.setSourceContent = function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util2.toSetString(aSourceFile)] = aSourceContent; + }; + SourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util2.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + SourceNode.prototype.toString = function SourceNode_toString() { + var str2 = ""; + this.walk(function(chunk) { + str2 += chunk; + }); + return str2; + }; + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map4 = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function(chunk, original) { + generated.code += chunk; + if (original.source !== null && original.line !== null && original.column !== null) { + if (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) { + map4.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map4.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map4.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function(sourceFile, sourceContent) { + map4.setSourceContent(sourceFile, sourceContent); + }); + return { code: generated.code, map: map4 }; + }; + exports2.SourceNode = SourceNode; + } +}); + +// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.js +var require_source_map = __commonJS({ + "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.js"(exports2) { + exports2.SourceMapGenerator = require_source_map_generator().SourceMapGenerator; + exports2.SourceMapConsumer = require_source_map_consumer().SourceMapConsumer; + exports2.SourceNode = require_source_node().SourceNode; + } +}); + +// ../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.cjs +var require_non_secure = __commonJS({ + "../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.cjs"(exports2, module2) { + var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; + var customAlphabet = (alphabet2, defaultSize = 21) => { + return (size = defaultSize) => { + let id = ""; + let i = size; + while (i--) { + id += alphabet2[Math.random() * alphabet2.length | 0]; + } + return id; + }; + }; + var nanoid = (size = 21) => { + let id = ""; + let i = size; + while (i--) { + id += urlAlphabet[Math.random() * 64 | 0]; + } + return id; + }; + module2.exports = { nanoid, customAlphabet }; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/previous-map.js +var require_previous_map = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/previous-map.js"(exports2, module2) { + "use strict"; + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + var { existsSync: existsSync2, readFileSync } = require("fs"); + var { dirname: dirname4, join: join9 } = require("path"); + function fromBase64(str2) { + if (Buffer) { + return Buffer.from(str2, "base64").toString(); + } else { + return window.atob(str2); + } + } + var PreviousMap = class { + constructor(css, opts) { + if (opts.map === false) + return; + this.loadAnnotation(css); + this.inline = this.startWith(this.annotation, "data:"); + let prev = opts.map ? opts.map.prev : void 0; + let text = this.loadMap(opts.from, prev); + if (!this.mapFile && opts.from) { + this.mapFile = opts.from; + } + if (this.mapFile) + this.root = dirname4(this.mapFile); + if (text) + this.text = text; + } + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text); + } + return this.consumerCache; + } + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; + let baseUri = /^data:application\/json;base64,/; + let charsetUri = /^data:application\/json;charset=utf-?8,/; + let uri = /^data:application\/json,/; + if (charsetUri.test(text) || uri.test(text)) { + return decodeURIComponent(text.substr(RegExp.lastMatch.length)); + } + if (baseCharsetUri.test(text) || baseUri.test(text)) { + return fromBase64(text.substr(RegExp.lastMatch.length)); + } + let encoding = text.match(/data:application\/json;([^,]+),/)[1]; + throw new Error("Unsupported source map encoding " + encoding); + } + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim(); + } + isMap(map4) { + if (typeof map4 !== "object") + return false; + return typeof map4.mappings === "string" || typeof map4._mappings === "string" || Array.isArray(map4.sections); + } + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/gm); + if (!comments) + return; + let start = css.lastIndexOf(comments.pop()); + let end = css.indexOf("*/", start); + if (start > -1 && end > -1) { + this.annotation = this.getAnnotationURL(css.substring(start, end)); + } + } + loadFile(path8) { + this.root = dirname4(path8); + if (existsSync2(path8)) { + this.mapFile = path8; + return readFileSync(path8, "utf-8").toString().trim(); + } + } + loadMap(file, prev) { + if (prev === false) + return false; + if (prev) { + if (typeof prev === "string") { + return prev; + } else if (typeof prev === "function") { + let prevPath = prev(file); + if (prevPath) { + let map4 = this.loadFile(prevPath); + if (!map4) { + throw new Error( + "Unable to load previous source map: " + prevPath.toString() + ); + } + return map4; + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString(); + } else if (prev instanceof SourceMapGenerator) { + return prev.toString(); + } else if (this.isMap(prev)) { + return JSON.stringify(prev); + } else { + throw new Error( + "Unsupported previous source map format: " + prev.toString() + ); + } + } else if (this.inline) { + return this.decodeInline(this.annotation); + } else if (this.annotation) { + let map4 = this.annotation; + if (file) + map4 = join9(dirname4(file), map4); + return this.loadFile(map4); + } + } + startWith(string2, start) { + if (!string2) + return false; + return string2.substr(0, start.length) === start; + } + withContent() { + return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); + } + }; + module2.exports = PreviousMap; + PreviousMap.default = PreviousMap; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/input.js +var require_input = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/input.js"(exports2, module2) { + "use strict"; + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + var { fileURLToPath: fileURLToPath3, pathToFileURL } = require("url"); + var { isAbsolute, resolve } = require("path"); + var { nanoid } = require_non_secure(); + var terminalHighlight = require_terminal_highlight(); + var CssSyntaxError = require_css_syntax_error(); + var PreviousMap = require_previous_map(); + var fromOffsetCache = Symbol("fromOffsetCache"); + var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + var pathAvailable = Boolean(resolve && isAbsolute); + var Input = class { + constructor(css, opts = {}) { + if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) { + throw new Error(`PostCSS received ${css} instead of CSS string`); + } + this.css = css.toString(); + if (this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE") { + this.hasBOM = true; + this.css = this.css.slice(1); + } else { + this.hasBOM = false; + } + if (opts.from) { + if (!pathAvailable || /^\w+:\/\//.test(opts.from) || isAbsolute(opts.from)) { + this.file = opts.from; + } else { + this.file = resolve(opts.from); + } + } + if (pathAvailable && sourceMapAvailable) { + let map4 = new PreviousMap(this.css, opts); + if (map4.text) { + this.map = map4; + let file = map4.consumer().file; + if (!this.file && file) + this.file = this.mapResolve(file); + } + } + if (!this.file) { + this.id = ""; + } + if (this.map) + this.map.file = this.from; + } + error(message, line, column, opts = {}) { + let result, endLine, endColumn; + if (line && typeof line === "object") { + let start = line; + let end = column; + if (typeof start.offset === "number") { + let pos = this.fromOffset(start.offset); + line = pos.line; + column = pos.col; + } else { + line = start.line; + column = start.column; + } + if (typeof end.offset === "number") { + let pos = this.fromOffset(end.offset); + endLine = pos.line; + endColumn = pos.col; + } else { + endLine = end.line; + endColumn = end.column; + } + } else if (!column) { + let pos = this.fromOffset(line); + line = pos.line; + column = pos.col; + } + let origin = this.origin(line, column, endLine, endColumn); + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line }, + origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine }, + origin.source, + origin.file, + opts.plugin + ); + } else { + result = new CssSyntaxError( + message, + endLine === void 0 ? line : { column, line }, + endLine === void 0 ? column : { column: endColumn, line: endLine }, + this.css, + this.file, + opts.plugin + ); + } + result.input = { column, endColumn, endLine, line, source: this.css }; + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString(); + } + result.input.file = this.file; + } + return result; + } + fromOffset(offset) { + let lastLine, lineToIndex; + if (!this[fromOffsetCache]) { + let lines = this.css.split("\n"); + lineToIndex = new Array(lines.length); + let prevIndex = 0; + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex; + prevIndex += lines[i].length + 1; + } + this[fromOffsetCache] = lineToIndex; + } else { + lineToIndex = this[fromOffsetCache]; + } + lastLine = lineToIndex[lineToIndex.length - 1]; + let min2 = 0; + if (offset >= lastLine) { + min2 = lineToIndex.length - 1; + } else { + let max2 = lineToIndex.length - 2; + let mid; + while (min2 < max2) { + mid = min2 + (max2 - min2 >> 1); + if (offset < lineToIndex[mid]) { + max2 = mid - 1; + } else if (offset >= lineToIndex[mid + 1]) { + min2 = mid + 1; + } else { + min2 = mid; + break; + } + } + } + return { + col: offset - lineToIndex[min2] + 1, + line: min2 + 1 + }; + } + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file; + } + return resolve(this.map.consumer().sourceRoot || this.map.root || ".", file); + } + origin(line, column, endLine, endColumn) { + if (!this.map) + return false; + let consumer = this.map.consumer(); + let from = consumer.originalPositionFor({ column, line }); + if (!from.source) + return false; + let to; + if (typeof endLine === "number") { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }); + } + let fromUrl; + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source); + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ); + } + let result = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + }; + if (fromUrl.protocol === "file:") { + if (fileURLToPath3) { + result.file = fileURLToPath3(fromUrl); + } else { + throw new Error(`file: protocol is not available in this PostCSS build`); + } + } + let source = consumer.sourceContentFor(from.source); + if (source) + result.source = source; + return result; + } + toJSON() { + let json2 = {}; + for (let name of ["hasBOM", "css", "file", "id"]) { + if (this[name] != null) { + json2[name] = this[name]; + } + } + if (this.map) { + json2.map = { ...this.map }; + if (json2.map.consumerCache) { + json2.map.consumerCache = void 0; + } + } + return json2; + } + get from() { + return this.file || this.id; + } + }; + module2.exports = Input; + Input.default = Input; + if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input); + } + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/map-generator.js +var require_map_generator = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/map-generator.js"(exports2, module2) { + "use strict"; + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + var { dirname: dirname4, relative: relative2, resolve, sep: sep3 } = require("path"); + var { pathToFileURL } = require("url"); + var Input = require_input(); + var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + var pathAvailable = Boolean(dirname4 && resolve && relative2 && sep3); + var MapGenerator = class { + constructor(stringify2, root, opts, cssString) { + this.stringify = stringify2; + this.mapOpts = opts.map || {}; + this.root = root; + this.opts = opts; + this.css = cssString; + this.originalCSS = cssString; + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; + this.memoizedFileURLs = /* @__PURE__ */ new Map(); + this.memoizedPaths = /* @__PURE__ */ new Map(); + this.memoizedURLs = /* @__PURE__ */ new Map(); + } + addAnnotation() { + let content; + if (this.isInline()) { + content = "data:application/json;base64," + this.toBase64(this.map.toString()); + } else if (typeof this.mapOpts.annotation === "string") { + content = this.mapOpts.annotation; + } else if (typeof this.mapOpts.annotation === "function") { + content = this.mapOpts.annotation(this.opts.to, this.root); + } else { + content = this.outputFile() + ".map"; + } + let eol = "\n"; + if (this.css.includes("\r\n")) + eol = "\r\n"; + this.css += eol + "/*# sourceMappingURL=" + content + " */"; + } + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)); + let root = prev.root || dirname4(prev.file); + let map4; + if (this.mapOpts.sourcesContent === false) { + map4 = new SourceMapConsumer(prev.text); + if (map4.sourcesContent) { + map4.sourcesContent = null; + } + } else { + map4 = prev.consumer(); + } + this.map.applySourceMap(map4, from, this.toUrl(this.path(root))); + } + } + clearAnnotation() { + if (this.mapOpts.annotation === false) + return; + if (this.root) { + let node; + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i]; + if (node.type !== "comment") + continue; + if (node.text.indexOf("# sourceMappingURL=") === 0) { + this.root.removeChild(i); + } + } + } else if (this.css) { + this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, ""); + } + } + generate() { + this.clearAnnotation(); + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap(); + } else { + let result = ""; + this.stringify(this.root, (i) => { + result += i; + }); + return [result]; + } + } + generateMap() { + if (this.root) { + this.generateString(); + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer(); + prev.file = this.outputFile(); + this.map = SourceMapGenerator.fromSourceMap(prev, { + ignoreInvalidMapping: true + }); + } else { + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "" + }); + } + if (this.isSourcesContent()) + this.setSourcesContent(); + if (this.root && this.previous().length > 0) + this.applyPrevMaps(); + if (this.isAnnotation()) + this.addAnnotation(); + if (this.isInline()) { + return [this.css]; + } else { + return [this.css, this.map]; + } + } + generateString() { + this.css = ""; + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + let line = 1; + let column = 1; + let noSource = ""; + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: "" + }; + let lines, last2; + this.stringify(this.root, (str2, node, type2) => { + this.css += str2; + if (node && type2 !== "end") { + mapping.generated.line = line; + mapping.generated.column = column - 1; + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.start.line; + mapping.original.column = node.source.start.column - 1; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + this.map.addMapping(mapping); + } + } + lines = str2.match(/\n/g); + if (lines) { + line += lines.length; + last2 = str2.lastIndexOf("\n"); + column = str2.length - last2; + } else { + column += str2.length; + } + if (node && type2 !== "start") { + let p = node.parent || { raws: {} }; + let childless = node.type === "decl" || node.type === "atrule" && !node.nodes; + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.end.line; + mapping.original.column = node.source.end.column - 1; + mapping.generated.line = line; + mapping.generated.column = column - 2; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + mapping.generated.line = line; + mapping.generated.column = column - 1; + this.map.addMapping(mapping); + } + } + } + }); + } + isAnnotation() { + if (this.isInline()) { + return true; + } + if (typeof this.mapOpts.annotation !== "undefined") { + return this.mapOpts.annotation; + } + if (this.previous().length) { + return this.previous().some((i) => i.annotation); + } + return true; + } + isInline() { + if (typeof this.mapOpts.inline !== "undefined") { + return this.mapOpts.inline; + } + let annotation = this.mapOpts.annotation; + if (typeof annotation !== "undefined" && annotation !== true) { + return false; + } + if (this.previous().length) { + return this.previous().some((i) => i.inline); + } + return true; + } + isMap() { + if (typeof this.opts.map !== "undefined") { + return !!this.opts.map; + } + return this.previous().length > 0; + } + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== "undefined") { + return this.mapOpts.sourcesContent; + } + if (this.previous().length) { + return this.previous().some((i) => i.withContent()); + } + return true; + } + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to); + } else if (this.opts.from) { + return this.path(this.opts.from); + } else { + return "to.css"; + } + } + path(file) { + if (this.mapOpts.absolute) + return file; + if (file.charCodeAt(0) === 60) + return file; + if (/^\w+:\/\//.test(file)) + return file; + let cached = this.memoizedPaths.get(file); + if (cached) + return cached; + let from = this.opts.to ? dirname4(this.opts.to) : "."; + if (typeof this.mapOpts.annotation === "string") { + from = dirname4(resolve(from, this.mapOpts.annotation)); + } + let path8 = relative2(from, file); + this.memoizedPaths.set(file, path8); + return path8; + } + previous() { + if (!this.previousMaps) { + this.previousMaps = []; + if (this.root) { + this.root.walk((node) => { + if (node.source && node.source.input.map) { + let map4 = node.source.input.map; + if (!this.previousMaps.includes(map4)) { + this.previousMaps.push(map4); + } + } + }); + } else { + let input = new Input(this.originalCSS, this.opts); + if (input.map) + this.previousMaps.push(input.map); + } + } + return this.previousMaps; + } + setSourcesContent() { + let already = {}; + if (this.root) { + this.root.walk((node) => { + if (node.source) { + let from = node.source.input.from; + if (from && !already[from]) { + already[from] = true; + let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from)); + this.map.setSourceContent(fromUrl, node.source.input.css); + } + } + }); + } else if (this.css) { + let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""; + this.map.setSourceContent(from, this.css); + } + } + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from); + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from); + } else { + return this.toUrl(this.path(node.source.input.from)); + } + } + toBase64(str2) { + if (Buffer) { + return Buffer.from(str2).toString("base64"); + } else { + return window.btoa(unescape(encodeURIComponent(str2))); + } + } + toFileUrl(path8) { + let cached = this.memoizedFileURLs.get(path8); + if (cached) + return cached; + if (pathToFileURL) { + let fileURL = pathToFileURL(path8).toString(); + this.memoizedFileURLs.set(path8, fileURL); + return fileURL; + } else { + throw new Error( + "`map.absolute` option is not available in this PostCSS build" + ); + } + } + toUrl(path8) { + let cached = this.memoizedURLs.get(path8); + if (cached) + return cached; + if (sep3 === "\\") { + path8 = path8.replace(/\\/g, "/"); + } + let url = encodeURI(path8).replace(/[#?]/g, encodeURIComponent); + this.memoizedURLs.set(path8, url); + return url; + } + }; + module2.exports = MapGenerator; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/comment.js +var require_comment = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/comment.js"(exports2, module2) { + "use strict"; + var Node = require_node2(); + var Comment = class extends Node { + constructor(defaults2) { + super(defaults2); + this.type = "comment"; + } + }; + module2.exports = Comment; + Comment.default = Comment; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/container.js +var require_container = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/container.js"(exports2, module2) { + "use strict"; + var { isClean, my } = require_symbols(); + var Declaration = require_declaration(); + var Comment = require_comment(); + var Node = require_node2(); + var parse2; + var Rule; + var AtRule; + var Root; + function cleanSource(nodes) { + return nodes.map((i) => { + if (i.nodes) + i.nodes = cleanSource(i.nodes); + delete i.source; + return i; + }); + } + function markDirtyUp(node) { + node[isClean] = false; + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markDirtyUp(i); + } + } + } + var Container = class _Container extends Node { + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last); + for (let node of nodes) + this.proxyOf.nodes.push(node); + } + this.markDirty(); + return this; + } + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween); + if (this.nodes) { + for (let node of this.nodes) + node.cleanRaws(keepBetween); + } + } + each(callback2) { + if (!this.proxyOf.nodes) + return void 0; + let iterator = this.getIterator(); + let index, result; + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator]; + result = callback2(this.proxyOf.nodes[index], index); + if (result === false) + break; + this.indexes[iterator] += 1; + } + delete this.indexes[iterator]; + return result; + } + every(condition) { + return this.nodes.every(condition); + } + getIterator() { + if (!this.lastEach) + this.lastEach = 0; + if (!this.indexes) + this.indexes = {}; + this.lastEach += 1; + let iterator = this.lastEach; + this.indexes[iterator] = 0; + return iterator; + } + getProxyProcessor() { + return { + get(node, prop) { + if (prop === "proxyOf") { + return node; + } else if (!node[prop]) { + return node[prop]; + } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) { + return (...args) => { + return node[prop]( + ...args.map((i) => { + if (typeof i === "function") { + return (child, index) => i(child.toProxy(), index); + } else { + return i; + } + }) + ); + }; + } else if (prop === "every" || prop === "some") { + return (cb) => { + return node[prop]( + (child, ...other) => cb(child.toProxy(), ...other) + ); + }; + } else if (prop === "root") { + return () => node.root().toProxy(); + } else if (prop === "nodes") { + return node.nodes.map((i) => i.toProxy()); + } else if (prop === "first" || prop === "last") { + return node[prop].toProxy(); + } else { + return node[prop]; + } + }, + set(node, prop, value) { + if (node[prop] === value) + return true; + node[prop] = value; + if (prop === "name" || prop === "params" || prop === "selector") { + node.markDirty(); + } + return true; + } + }; + } + index(child) { + if (typeof child === "number") + return child; + if (child.proxyOf) + child = child.proxyOf; + return this.proxyOf.nodes.indexOf(child); + } + insertAfter(exist, add) { + let existIndex = this.index(exist); + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); + existIndex = this.index(exist); + for (let node of nodes) + this.proxyOf.nodes.splice(existIndex + 1, 0, node); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex < index) { + this.indexes[id] = index + nodes.length; + } + } + this.markDirty(); + return this; + } + insertBefore(exist, add) { + let existIndex = this.index(exist); + let type2 = existIndex === 0 ? "prepend" : false; + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type2).reverse(); + existIndex = this.index(exist); + for (let node of nodes) + this.proxyOf.nodes.splice(existIndex, 0, node); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex <= index) { + this.indexes[id] = index + nodes.length; + } + } + this.markDirty(); + return this; + } + normalize(nodes, sample) { + if (typeof nodes === "string") { + nodes = cleanSource(parse2(nodes).nodes); + } else if (typeof nodes === "undefined") { + nodes = []; + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0); + for (let i of nodes) { + if (i.parent) + i.parent.removeChild(i, "ignore"); + } + } else if (nodes.type === "root" && this.type !== "document") { + nodes = nodes.nodes.slice(0); + for (let i of nodes) { + if (i.parent) + i.parent.removeChild(i, "ignore"); + } + } else if (nodes.type) { + nodes = [nodes]; + } else if (nodes.prop) { + if (typeof nodes.value === "undefined") { + throw new Error("Value field is missed in node creation"); + } else if (typeof nodes.value !== "string") { + nodes.value = String(nodes.value); + } + nodes = [new Declaration(nodes)]; + } else if (nodes.selector) { + nodes = [new Rule(nodes)]; + } else if (nodes.name) { + nodes = [new AtRule(nodes)]; + } else if (nodes.text) { + nodes = [new Comment(nodes)]; + } else { + throw new Error("Unknown node type in node creation"); + } + let processed = nodes.map((i) => { + if (!i[my]) + _Container.rebuild(i); + i = i.proxyOf; + if (i.parent) + i.parent.removeChild(i); + if (i[isClean]) + markDirtyUp(i); + if (typeof i.raws.before === "undefined") { + if (sample && typeof sample.raws.before !== "undefined") { + i.raws.before = sample.raws.before.replace(/\S/g, ""); + } + } + i.parent = this.proxyOf; + return i; + }); + return processed; + } + prepend(...children) { + children = children.reverse(); + for (let child of children) { + let nodes = this.normalize(child, this.first, "prepend").reverse(); + for (let node of nodes) + this.proxyOf.nodes.unshift(node); + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length; + } + } + this.markDirty(); + return this; + } + push(child) { + child.parent = this; + this.proxyOf.nodes.push(child); + return this; + } + removeAll() { + for (let node of this.proxyOf.nodes) + node.parent = void 0; + this.proxyOf.nodes = []; + this.markDirty(); + return this; + } + removeChild(child) { + child = this.index(child); + this.proxyOf.nodes[child].parent = void 0; + this.proxyOf.nodes.splice(child, 1); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + this.markDirty(); + return this; + } + replaceValues(pattern, opts, callback2) { + if (!callback2) { + callback2 = opts; + opts = {}; + } + this.walkDecls((decl) => { + if (opts.props && !opts.props.includes(decl.prop)) + return; + if (opts.fast && !decl.value.includes(opts.fast)) + return; + decl.value = decl.value.replace(pattern, callback2); + }); + this.markDirty(); + return this; + } + some(condition) { + return this.nodes.some(condition); + } + walk(callback2) { + return this.each((child, i) => { + let result; + try { + result = callback2(child, i); + } catch (e) { + throw child.addToError(e); + } + if (result !== false && child.walk) { + result = child.walk(callback2); + } + return result; + }); + } + walkAtRules(name, callback2) { + if (!callback2) { + callback2 = name; + return this.walk((child, i) => { + if (child.type === "atrule") { + return callback2(child, i); + } + }); + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "atrule" && name.test(child.name)) { + return callback2(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "atrule" && child.name === name) { + return callback2(child, i); + } + }); + } + walkComments(callback2) { + return this.walk((child, i) => { + if (child.type === "comment") { + return callback2(child, i); + } + }); + } + walkDecls(prop, callback2) { + if (!callback2) { + callback2 = prop; + return this.walk((child, i) => { + if (child.type === "decl") { + return callback2(child, i); + } + }); + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "decl" && prop.test(child.prop)) { + return callback2(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "decl" && child.prop === prop) { + return callback2(child, i); + } + }); + } + walkRules(selector, callback2) { + if (!callback2) { + callback2 = selector; + return this.walk((child, i) => { + if (child.type === "rule") { + return callback2(child, i); + } + }); + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "rule" && selector.test(child.selector)) { + return callback2(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "rule" && child.selector === selector) { + return callback2(child, i); + } + }); + } + get first() { + if (!this.proxyOf.nodes) + return void 0; + return this.proxyOf.nodes[0]; + } + get last() { + if (!this.proxyOf.nodes) + return void 0; + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; + } + }; + Container.registerParse = (dependant) => { + parse2 = dependant; + }; + Container.registerRule = (dependant) => { + Rule = dependant; + }; + Container.registerAtRule = (dependant) => { + AtRule = dependant; + }; + Container.registerRoot = (dependant) => { + Root = dependant; + }; + module2.exports = Container; + Container.default = Container; + Container.rebuild = (node) => { + if (node.type === "atrule") { + Object.setPrototypeOf(node, AtRule.prototype); + } else if (node.type === "rule") { + Object.setPrototypeOf(node, Rule.prototype); + } else if (node.type === "decl") { + Object.setPrototypeOf(node, Declaration.prototype); + } else if (node.type === "comment") { + Object.setPrototypeOf(node, Comment.prototype); + } else if (node.type === "root") { + Object.setPrototypeOf(node, Root.prototype); + } + node[my] = true; + if (node.nodes) { + node.nodes.forEach((child) => { + Container.rebuild(child); + }); + } + }; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/document.js +var require_document = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/document.js"(exports2, module2) { + "use strict"; + var Container = require_container(); + var LazyResult; + var Processor2; + var Document = class extends Container { + constructor(defaults2) { + super({ type: "document", ...defaults2 }); + if (!this.nodes) { + this.nodes = []; + } + } + toResult(opts = {}) { + let lazy = new LazyResult(new Processor2(), this, opts); + return lazy.stringify(); + } + }; + Document.registerLazyResult = (dependant) => { + LazyResult = dependant; + }; + Document.registerProcessor = (dependant) => { + Processor2 = dependant; + }; + module2.exports = Document; + Document.default = Document; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warn-once.js +var require_warn_once = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warn-once.js"(exports2, module2) { + "use strict"; + var printed = {}; + module2.exports = function warnOnce(message) { + if (printed[message]) + return; + printed[message] = true; + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + }; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warning.js +var require_warning = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warning.js"(exports2, module2) { + "use strict"; + var Warning = class { + constructor(text, opts = {}) { + this.type = "warning"; + this.text = text; + if (opts.node && opts.node.source) { + let range4 = opts.node.rangeBy(opts); + this.line = range4.start.line; + this.column = range4.start.column; + this.endLine = range4.end.line; + this.endColumn = range4.end.column; + } + for (let opt in opts) + this[opt] = opts[opt]; + } + toString() { + if (this.node) { + return this.node.error(this.text, { + index: this.index, + plugin: this.plugin, + word: this.word + }).message; + } + if (this.plugin) { + return this.plugin + ": " + this.text; + } + return this.text; + } + }; + module2.exports = Warning; + Warning.default = Warning; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/result.js +var require_result = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/result.js"(exports2, module2) { + "use strict"; + var Warning = require_warning(); + var Result = class { + constructor(processor, root, opts) { + this.processor = processor; + this.messages = []; + this.root = root; + this.opts = opts; + this.css = void 0; + this.map = void 0; + } + toString() { + return this.css; + } + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin; + } + } + let warning = new Warning(text, opts); + this.messages.push(warning); + return warning; + } + warnings() { + return this.messages.filter((i) => i.type === "warning"); + } + get content() { + return this.css; + } + }; + module2.exports = Result; + Result.default = Result; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/at-rule.js +var require_at_rule = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/at-rule.js"(exports2, module2) { + "use strict"; + var Container = require_container(); + var AtRule = class extends Container { + constructor(defaults2) { + super(defaults2); + this.type = "atrule"; + } + append(...children) { + if (!this.proxyOf.nodes) + this.nodes = []; + return super.append(...children); + } + prepend(...children) { + if (!this.proxyOf.nodes) + this.nodes = []; + return super.prepend(...children); + } + }; + module2.exports = AtRule; + AtRule.default = AtRule; + Container.registerAtRule(AtRule); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/root.js +var require_root = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/root.js"(exports2, module2) { + "use strict"; + var Container = require_container(); + var LazyResult; + var Processor2; + var Root = class extends Container { + constructor(defaults2) { + super(defaults2); + this.type = "root"; + if (!this.nodes) + this.nodes = []; + } + normalize(child, sample, type2) { + let nodes = super.normalize(child); + if (sample) { + if (type2 === "prepend") { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before; + } else { + delete sample.raws.before; + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before; + } + } + } + return nodes; + } + removeChild(child, ignore) { + let index = this.index(child); + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before; + } + return super.removeChild(child); + } + toResult(opts = {}) { + let lazy = new LazyResult(new Processor2(), this, opts); + return lazy.stringify(); + } + }; + Root.registerLazyResult = (dependant) => { + LazyResult = dependant; + }; + Root.registerProcessor = (dependant) => { + Processor2 = dependant; + }; + module2.exports = Root; + Root.default = Root; + Container.registerRoot(Root); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/list.js +var require_list = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/list.js"(exports2, module2) { + "use strict"; + var list = { + comma(string2) { + return list.split(string2, [","], true); + }, + space(string2) { + let spaces = [" ", "\n", " "]; + return list.split(string2, spaces); + }, + split(string2, separators, last2) { + let array = []; + let current2 = ""; + let split = false; + let func = 0; + let inQuote = false; + let prevQuote = ""; + let escape2 = false; + for (let letter of string2) { + if (escape2) { + escape2 = false; + } else if (letter === "\\") { + escape2 = true; + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false; + } + } else if (letter === '"' || letter === "'") { + inQuote = true; + prevQuote = letter; + } else if (letter === "(") { + func += 1; + } else if (letter === ")") { + if (func > 0) + func -= 1; + } else if (func === 0) { + if (separators.includes(letter)) + split = true; + } + if (split) { + if (current2 !== "") + array.push(current2.trim()); + current2 = ""; + split = false; + } else { + current2 += letter; + } + } + if (last2 || current2 !== "") + array.push(current2.trim()); + return array; + } + }; + module2.exports = list; + list.default = list; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/rule.js +var require_rule = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/rule.js"(exports2, module2) { + "use strict"; + var Container = require_container(); + var list = require_list(); + var Rule = class extends Container { + constructor(defaults2) { + super(defaults2); + this.type = "rule"; + if (!this.nodes) + this.nodes = []; + } + get selectors() { + return list.comma(this.selector); + } + set selectors(values2) { + let match2 = this.selector ? this.selector.match(/,\s*/) : null; + let sep3 = match2 ? match2[0] : "," + this.raw("between", "beforeOpen"); + this.selector = values2.join(sep3); + } + }; + module2.exports = Rule; + Rule.default = Rule; + Container.registerRule(Rule); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parser.js +var require_parser = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parser.js"(exports2, module2) { + "use strict"; + var Declaration = require_declaration(); + var tokenizer = require_tokenize(); + var Comment = require_comment(); + var AtRule = require_at_rule(); + var Root = require_root(); + var Rule = require_rule(); + var SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true + }; + function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i]; + let pos = token[3] || token[2]; + if (pos) + return pos; + } + } + var Parser = class { + constructor(input) { + this.input = input; + this.root = new Root(); + this.current = this.root; + this.spaces = ""; + this.semicolon = false; + this.createTokenizer(); + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }; + } + atrule(token) { + let node = new AtRule(); + node.name = token[1].slice(1); + if (node.name === "") { + this.unnamedAtrule(node, token); + } + this.init(node, token[2]); + let type2; + let prev; + let shift; + let last2 = false; + let open2 = false; + let params = []; + let brackets = []; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + type2 = token[0]; + if (type2 === "(" || type2 === "[") { + brackets.push(type2 === "(" ? ")" : "]"); + } else if (type2 === "{" && brackets.length > 0) { + brackets.push("}"); + } else if (type2 === brackets[brackets.length - 1]) { + brackets.pop(); + } + if (brackets.length === 0) { + if (type2 === ";") { + node.source.end = this.getPosition(token[2]); + node.source.end.offset++; + this.semicolon = true; + break; + } else if (type2 === "{") { + open2 = true; + break; + } else if (type2 === "}") { + if (params.length > 0) { + shift = params.length - 1; + prev = params[shift]; + while (prev && prev[0] === "space") { + prev = params[--shift]; + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]); + node.source.end.offset++; + } + } + this.end(token); + break; + } else { + params.push(token); + } + } else { + params.push(token); + } + if (this.tokenizer.endOfFile()) { + last2 = true; + break; + } + } + node.raws.between = this.spacesAndCommentsFromEnd(params); + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params); + this.raw(node, "params", params); + if (last2) { + token = params[params.length - 1]; + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + this.spaces = node.raws.between; + node.raws.between = ""; + } + } else { + node.raws.afterName = ""; + node.params = ""; + } + if (open2) { + node.nodes = []; + this.current = node; + } + } + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens); + if (colon === false) + return; + let founded = 0; + let token; + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j]; + if (token[0] !== "space") { + founded += 1; + if (founded === 2) + break; + } + } + throw this.input.error( + "Missed semicolon", + token[0] === "word" ? token[3] + 1 : token[2] + ); + } + colon(tokens) { + let brackets = 0; + let token, type2, prev; + for (let [i, element] of tokens.entries()) { + token = element; + type2 = token[0]; + if (type2 === "(") { + brackets += 1; + } + if (type2 === ")") { + brackets -= 1; + } + if (brackets === 0 && type2 === ":") { + if (!prev) { + this.doubleColon(token); + } else if (prev[0] === "word" && prev[1] === "progid") { + continue; + } else { + return i; + } + } + prev = token; + } + return false; + } + comment(token) { + let node = new Comment(); + this.init(node, token[2]); + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + let text = token[1].slice(2, -2); + if (/^\s*$/.test(text)) { + node.text = ""; + node.raws.left = text; + node.raws.right = ""; + } else { + let match2 = text.match(/^(\s*)([^]*\S)(\s*)$/); + node.text = match2[2]; + node.raws.left = match2[1]; + node.raws.right = match2[3]; + } + } + createTokenizer() { + this.tokenizer = tokenizer(this.input); + } + decl(tokens, customProperty) { + let node = new Declaration(); + this.init(node, tokens[0][2]); + let last2 = tokens[tokens.length - 1]; + if (last2[0] === ";") { + this.semicolon = true; + tokens.pop(); + } + node.source.end = this.getPosition( + last2[3] || last2[2] || findLastWithPosition(tokens) + ); + node.source.end.offset++; + while (tokens[0][0] !== "word") { + if (tokens.length === 1) + this.unknownWord(tokens); + node.raws.before += tokens.shift()[1]; + } + node.source.start = this.getPosition(tokens[0][2]); + node.prop = ""; + while (tokens.length) { + let type2 = tokens[0][0]; + if (type2 === ":" || type2 === "space" || type2 === "comment") { + break; + } + node.prop += tokens.shift()[1]; + } + node.raws.between = ""; + let token; + while (tokens.length) { + token = tokens.shift(); + if (token[0] === ":") { + node.raws.between += token[1]; + break; + } else { + if (token[0] === "word" && /\w/.test(token[1])) { + this.unknownWord([token]); + } + node.raws.between += token[1]; + } + } + if (node.prop[0] === "_" || node.prop[0] === "*") { + node.raws.before += node.prop[0]; + node.prop = node.prop.slice(1); + } + let firstSpaces = []; + let next; + while (tokens.length) { + next = tokens[0][0]; + if (next !== "space" && next !== "comment") + break; + firstSpaces.push(tokens.shift()); + } + this.precheckMissedSemicolon(tokens); + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i]; + if (token[1].toLowerCase() === "!important") { + node.important = true; + let string2 = this.stringFrom(tokens, i); + string2 = this.spacesFromEnd(tokens) + string2; + if (string2 !== " !important") + node.raws.important = string2; + break; + } else if (token[1].toLowerCase() === "important") { + let cache = tokens.slice(0); + let str2 = ""; + for (let j = i; j > 0; j--) { + let type2 = cache[j][0]; + if (str2.trim().indexOf("!") === 0 && type2 !== "space") { + break; + } + str2 = cache.pop()[1] + str2; + } + if (str2.trim().indexOf("!") === 0) { + node.important = true; + node.raws.important = str2; + tokens = cache; + } + } + if (token[0] !== "space" && token[0] !== "comment") { + break; + } + } + let hasWord = tokens.some((i) => i[0] !== "space" && i[0] !== "comment"); + if (hasWord) { + node.raws.between += firstSpaces.map((i) => i[1]).join(""); + firstSpaces = []; + } + this.raw(node, "value", firstSpaces.concat(tokens), customProperty); + if (node.value.includes(":") && !customProperty) { + this.checkMissedSemicolon(tokens); + } + } + doubleColon(token) { + throw this.input.error( + "Double colon", + { offset: token[2] }, + { offset: token[2] + token[1].length } + ); + } + emptyRule(token) { + let node = new Rule(); + this.init(node, token[2]); + node.selector = ""; + node.raws.between = ""; + this.current = node; + } + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.semicolon = false; + this.current.raws.after = (this.current.raws.after || "") + this.spaces; + this.spaces = ""; + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]); + this.current.source.end.offset++; + this.current = this.current.parent; + } else { + this.unexpectedClose(token); + } + } + endFile() { + if (this.current.parent) + this.unclosedBlock(); + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.current.raws.after = (this.current.raws.after || "") + this.spaces; + this.root.source.end = this.getPosition(this.tokenizer.position()); + } + freeSemicolon(token) { + this.spaces += token[1]; + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1]; + if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces; + this.spaces = ""; + } + } + } + // Helpers + getPosition(offset) { + let pos = this.input.fromOffset(offset); + return { + column: pos.col, + line: pos.line, + offset + }; + } + init(node, offset) { + this.current.push(node); + node.source = { + input: this.input, + start: this.getPosition(offset) + }; + node.raws.before = this.spaces; + this.spaces = ""; + if (node.type !== "comment") + this.semicolon = false; + } + other(start) { + let end = false; + let type2 = null; + let colon = false; + let bracket = null; + let brackets = []; + let customProperty = start[1].startsWith("--"); + let tokens = []; + let token = start; + while (token) { + type2 = token[0]; + tokens.push(token); + if (type2 === "(" || type2 === "[") { + if (!bracket) + bracket = token; + brackets.push(type2 === "(" ? ")" : "]"); + } else if (customProperty && colon && type2 === "{") { + if (!bracket) + bracket = token; + brackets.push("}"); + } else if (brackets.length === 0) { + if (type2 === ";") { + if (colon) { + this.decl(tokens, customProperty); + return; + } else { + break; + } + } else if (type2 === "{") { + this.rule(tokens); + return; + } else if (type2 === "}") { + this.tokenizer.back(tokens.pop()); + end = true; + break; + } else if (type2 === ":") { + colon = true; + } + } else if (type2 === brackets[brackets.length - 1]) { + brackets.pop(); + if (brackets.length === 0) + bracket = null; + } + token = this.tokenizer.nextToken(); + } + if (this.tokenizer.endOfFile()) + end = true; + if (brackets.length > 0) + this.unclosedBracket(bracket); + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0]; + if (token !== "space" && token !== "comment") + break; + this.tokenizer.back(tokens.pop()); + } + } + this.decl(tokens, customProperty); + } else { + this.unknownWord(tokens); + } + } + parse() { + let token; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + switch (token[0]) { + case "space": + this.spaces += token[1]; + break; + case ";": + this.freeSemicolon(token); + break; + case "}": + this.end(token); + break; + case "comment": + this.comment(token); + break; + case "at-word": + this.atrule(token); + break; + case "{": + this.emptyRule(token); + break; + default: + this.other(token); + break; + } + } + this.endFile(); + } + precheckMissedSemicolon() { + } + raw(node, prop, tokens, customProperty) { + let token, type2; + let length = tokens.length; + let value = ""; + let clean = true; + let next, prev; + for (let i = 0; i < length; i += 1) { + token = tokens[i]; + type2 = token[0]; + if (type2 === "space" && i === length - 1 && !customProperty) { + clean = false; + } else if (type2 === "comment") { + prev = tokens[i - 1] ? tokens[i - 1][0] : "empty"; + next = tokens[i + 1] ? tokens[i + 1][0] : "empty"; + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ",") { + clean = false; + } else { + value += token[1]; + } + } else { + clean = false; + } + } else { + value += token[1]; + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], ""); + node.raws[prop] = { raw, value }; + } + node[prop] = value; + } + rule(tokens) { + tokens.pop(); + let node = new Rule(); + this.init(node, tokens[0][2]); + node.raws.between = this.spacesAndCommentsFromEnd(tokens); + this.raw(node, "selector", tokens); + this.current = node; + } + spacesAndCommentsFromEnd(tokens) { + let lastTokenType; + let spaces = ""; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== "space" && lastTokenType !== "comment") + break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + } + // Errors + spacesAndCommentsFromStart(tokens) { + let next; + let spaces = ""; + while (tokens.length) { + next = tokens[0][0]; + if (next !== "space" && next !== "comment") + break; + spaces += tokens.shift()[1]; + } + return spaces; + } + spacesFromEnd(tokens) { + let lastTokenType; + let spaces = ""; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== "space") + break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + } + stringFrom(tokens, from) { + let result = ""; + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1]; + } + tokens.splice(from, tokens.length - from); + return result; + } + unclosedBlock() { + let pos = this.current.source.start; + throw this.input.error("Unclosed block", pos.line, pos.column); + } + unclosedBracket(bracket) { + throw this.input.error( + "Unclosed bracket", + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ); + } + unexpectedClose(token) { + throw this.input.error( + "Unexpected }", + { offset: token[2] }, + { offset: token[2] + 1 } + ); + } + unknownWord(tokens) { + throw this.input.error( + "Unknown word", + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ); + } + unnamedAtrule(node, token) { + throw this.input.error( + "At-rule without name", + { offset: token[2] }, + { offset: token[2] + token[1].length } + ); + } + }; + module2.exports = Parser; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parse.js +var require_parse = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parse.js"(exports2, module2) { + "use strict"; + var Container = require_container(); + var Parser = require_parser(); + var Input = require_input(); + function parse2(css, opts) { + let input = new Input(css, opts); + let parser = new Parser(input); + try { + parser.parse(); + } catch (e) { + if (process.env.NODE_ENV !== "production") { + if (e.name === "CssSyntaxError" && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += "\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser"; + } else if (/\.sass/i.test(opts.from)) { + e.message += "\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser"; + } else if (/\.less$/i.test(opts.from)) { + e.message += "\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser"; + } + } + } + throw e; + } + return parser.root; + } + module2.exports = parse2; + parse2.default = parse2; + Container.registerParse(parse2); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/lazy-result.js +var require_lazy_result = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/lazy-result.js"(exports2, module2) { + "use strict"; + var { isClean, my } = require_symbols(); + var MapGenerator = require_map_generator(); + var stringify2 = require_stringify2(); + var Container = require_container(); + var Document = require_document(); + var warnOnce = require_warn_once(); + var Result = require_result(); + var parse2 = require_parse(); + var Root = require_root(); + var TYPE_TO_CLASS_NAME = { + atrule: "AtRule", + comment: "Comment", + decl: "Declaration", + document: "Document", + root: "Root", + rule: "Rule" + }; + var PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true + }; + var NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: true + }; + var CHILDREN = 0; + function isPromise(obj) { + return typeof obj === "object" && typeof obj.then === "function"; + } + function getEvents(node) { + let key = false; + let type2 = TYPE_TO_CLASS_NAME[node.type]; + if (node.type === "decl") { + key = node.prop.toLowerCase(); + } else if (node.type === "atrule") { + key = node.name.toLowerCase(); + } + if (key && node.append) { + return [ + type2, + type2 + "-" + key, + CHILDREN, + type2 + "Exit", + type2 + "Exit-" + key + ]; + } else if (key) { + return [type2, type2 + "-" + key, type2 + "Exit", type2 + "Exit-" + key]; + } else if (node.append) { + return [type2, CHILDREN, type2 + "Exit"]; + } else { + return [type2, type2 + "Exit"]; + } + } + function toStack(node) { + let events; + if (node.type === "document") { + events = ["Document", CHILDREN, "DocumentExit"]; + } else if (node.type === "root") { + events = ["Root", CHILDREN, "RootExit"]; + } else { + events = getEvents(node); + } + return { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + }; + } + function cleanMarks(node) { + node[isClean] = false; + if (node.nodes) + node.nodes.forEach((i) => cleanMarks(i)); + return node; + } + var postcss = {}; + var LazyResult = class _LazyResult { + constructor(processor, css, opts) { + this.stringified = false; + this.processed = false; + let root; + if (typeof css === "object" && css !== null && (css.type === "root" || css.type === "document")) { + root = cleanMarks(css); + } else if (css instanceof _LazyResult || css instanceof Result) { + root = cleanMarks(css.root); + if (css.map) { + if (typeof opts.map === "undefined") + opts.map = {}; + if (!opts.map.inline) + opts.map.inline = false; + opts.map.prev = css.map; + } + } else { + let parser = parse2; + if (opts.syntax) + parser = opts.syntax.parse; + if (opts.parser) + parser = opts.parser; + if (parser.parse) + parser = parser.parse; + try { + root = parser(css, opts); + } catch (error) { + this.processed = true; + this.error = error; + } + if (root && !root[my]) { + Container.rebuild(root); + } + } + this.result = new Result(processor, root, opts); + this.helpers = { ...postcss, postcss, result: this.result }; + this.plugins = this.processor.plugins.map((plugin) => { + if (typeof plugin === "object" && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) }; + } else { + return plugin; + } + }); + } + async() { + if (this.error) + return Promise.reject(this.error); + if (this.processed) + return Promise.resolve(this.result); + if (!this.processing) { + this.processing = this.runAsync(); + } + return this.processing; + } + catch(onRejected) { + return this.async().catch(onRejected); + } + finally(onFinally) { + return this.async().then(onFinally, onFinally); + } + getAsyncError() { + throw new Error("Use process(css).then(cb) to work with async plugins"); + } + handleError(error, node) { + let plugin = this.result.lastPlugin; + try { + if (node) + node.addToError(error); + this.error = error; + if (error.name === "CssSyntaxError" && !error.plugin) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== "production") { + let pluginName = plugin.postcssPlugin; + let pluginVer = plugin.postcssVersion; + let runtimeVer = this.result.processor.version; + let a = pluginVer.split("."); + let b = runtimeVer.split("."); + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + console.error( + "Unknown error from PostCSS plugin. Your current PostCSS version is " + runtimeVer + ", but " + pluginName + " uses " + pluginVer + ". Perhaps this is the source of the error below." + ); + } + } + } + } catch (err) { + if (console && console.error) + console.error(err); + } + return error; + } + prepareVisitors() { + this.listeners = {}; + let add = (plugin, type2, cb) => { + if (!this.listeners[type2]) + this.listeners[type2] = []; + this.listeners[type2].push([plugin, cb]); + }; + for (let plugin of this.plugins) { + if (typeof plugin === "object") { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).` + ); + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === "object") { + for (let filter2 in plugin[event]) { + if (filter2 === "*") { + add(plugin, event, plugin[event][filter2]); + } else { + add( + plugin, + event + "-" + filter2.toLowerCase(), + plugin[event][filter2] + ); + } + } + } else if (typeof plugin[event] === "function") { + add(plugin, event, plugin[event]); + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0; + } + async runAsync() { + this.plugin = 0; + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i]; + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + try { + await promise; + } catch (error) { + throw this.handleError(error); + } + } + } + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + let stack = [toStack(root)]; + while (stack.length > 0) { + let promise = this.visitTick(stack); + if (isPromise(promise)) { + try { + await promise; + } catch (e) { + let node = stack[stack.length - 1].node; + throw this.handleError(e, node); + } + } + } + } + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin; + try { + if (root.type === "document") { + let roots = root.nodes.map( + (subRoot) => visitor(subRoot, this.helpers) + ); + await Promise.all(roots); + } else { + await visitor(root, this.helpers); + } + } catch (e) { + throw this.handleError(e); + } + } + } + } + this.processed = true; + return this.stringify(); + } + runOnRoot(plugin) { + this.result.lastPlugin = plugin; + try { + if (typeof plugin === "object" && plugin.Once) { + if (this.result.root.type === "document") { + let roots = this.result.root.nodes.map( + (root) => plugin.Once(root, this.helpers) + ); + if (isPromise(roots[0])) { + return Promise.all(roots); + } + return roots; + } + return plugin.Once(this.result.root, this.helpers); + } else if (typeof plugin === "function") { + return plugin(this.result.root, this.result); + } + } catch (error) { + throw this.handleError(error); + } + } + stringify() { + if (this.error) + throw this.error; + if (this.stringified) + return this.result; + this.stringified = true; + this.sync(); + let opts = this.result.opts; + let str2 = stringify2; + if (opts.syntax) + str2 = opts.syntax.stringify; + if (opts.stringifier) + str2 = opts.stringifier; + if (str2.stringify) + str2 = str2.stringify; + let map4 = new MapGenerator(str2, this.result.root, this.result.opts); + let data = map4.generate(); + this.result.css = data[0]; + this.result.map = data[1]; + return this.result; + } + sync() { + if (this.error) + throw this.error; + if (this.processed) + return this.result; + this.processed = true; + if (this.processing) { + throw this.getAsyncError(); + } + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + throw this.getAsyncError(); + } + } + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + this.walkSync(root); + } + if (this.listeners.OnceExit) { + if (root.type === "document") { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot); + } + } else { + this.visitSync(this.listeners.OnceExit, root); + } + } + } + return this.result; + } + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== "production") { + if (!("from" in this.opts)) { + warnOnce( + "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning." + ); + } + } + return this.async().then(onFulfilled, onRejected); + } + toString() { + return this.css; + } + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin; + let promise; + try { + promise = visitor(node, this.helpers); + } catch (e) { + throw this.handleError(e, node.proxyOf); + } + if (node.type !== "root" && node.type !== "document" && !node.parent) { + return true; + } + if (isPromise(promise)) { + throw this.getAsyncError(); + } + } + } + visitTick(stack) { + let visit = stack[stack.length - 1]; + let { node, visitors } = visit; + if (node.type !== "root" && node.type !== "document" && !node.parent) { + stack.pop(); + return; + } + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex]; + visit.visitorIndex += 1; + if (visit.visitorIndex === visitors.length) { + visit.visitors = []; + visit.visitorIndex = 0; + } + this.result.lastPlugin = plugin; + try { + return visitor(node.toProxy(), this.helpers); + } catch (e) { + throw this.handleError(e, node); + } + } + if (visit.iterator !== 0) { + let iterator = visit.iterator; + let child; + while (child = node.nodes[node.indexes[iterator]]) { + node.indexes[iterator] += 1; + if (!child[isClean]) { + child[isClean] = true; + stack.push(toStack(child)); + return; + } + } + visit.iterator = 0; + delete node.indexes[iterator]; + } + let events = visit.events; + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex]; + visit.eventIndex += 1; + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true; + visit.iterator = node.getIterator(); + } + return; + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event]; + return; + } + } + stack.pop(); + } + walkSync(node) { + node[isClean] = true; + let events = getEvents(node); + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each((child) => { + if (!child[isClean]) + this.walkSync(child); + }); + } + } else { + let visitors = this.listeners[event]; + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) + return; + } + } + } + } + warnings() { + return this.sync().warnings(); + } + get content() { + return this.stringify().content; + } + get css() { + return this.stringify().css; + } + get map() { + return this.stringify().map; + } + get messages() { + return this.sync().messages; + } + get opts() { + return this.result.opts; + } + get processor() { + return this.result.processor; + } + get root() { + return this.sync().root; + } + get [Symbol.toStringTag]() { + return "LazyResult"; + } + }; + LazyResult.registerPostcss = (dependant) => { + postcss = dependant; + }; + module2.exports = LazyResult; + LazyResult.default = LazyResult; + Root.registerLazyResult(LazyResult); + Document.registerLazyResult(LazyResult); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/no-work-result.js +var require_no_work_result = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/no-work-result.js"(exports2, module2) { + "use strict"; + var MapGenerator = require_map_generator(); + var stringify2 = require_stringify2(); + var warnOnce = require_warn_once(); + var parse2 = require_parse(); + var Result = require_result(); + var NoWorkResult = class { + constructor(processor, css, opts) { + css = css.toString(); + this.stringified = false; + this._processor = processor; + this._css = css; + this._opts = opts; + this._map = void 0; + let root; + let str2 = stringify2; + this.result = new Result(this._processor, root, this._opts); + this.result.css = css; + let self2 = this; + Object.defineProperty(this.result, "root", { + get() { + return self2.root; + } + }); + let map4 = new MapGenerator(str2, root, this._opts, css); + if (map4.isMap()) { + let [generatedCSS, generatedMap] = map4.generate(); + if (generatedCSS) { + this.result.css = generatedCSS; + } + if (generatedMap) { + this.result.map = generatedMap; + } + } else { + map4.clearAnnotation(); + this.result.css = map4.css; + } + } + async() { + if (this.error) + return Promise.reject(this.error); + return Promise.resolve(this.result); + } + catch(onRejected) { + return this.async().catch(onRejected); + } + finally(onFinally) { + return this.async().then(onFinally, onFinally); + } + sync() { + if (this.error) + throw this.error; + return this.result; + } + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== "production") { + if (!("from" in this._opts)) { + warnOnce( + "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning." + ); + } + } + return this.async().then(onFulfilled, onRejected); + } + toString() { + return this._css; + } + warnings() { + return []; + } + get content() { + return this.result.css; + } + get css() { + return this.result.css; + } + get map() { + return this.result.map; + } + get messages() { + return []; + } + get opts() { + return this.result.opts; + } + get processor() { + return this.result.processor; + } + get root() { + if (this._root) { + return this._root; + } + let root; + let parser = parse2; + try { + root = parser(this._css, this._opts); + } catch (error) { + this.error = error; + } + if (this.error) { + throw this.error; + } else { + this._root = root; + return root; + } + } + get [Symbol.toStringTag]() { + return "NoWorkResult"; + } + }; + module2.exports = NoWorkResult; + NoWorkResult.default = NoWorkResult; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/processor.js +var require_processor = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/processor.js"(exports2, module2) { + "use strict"; + var NoWorkResult = require_no_work_result(); + var LazyResult = require_lazy_result(); + var Document = require_document(); + var Root = require_root(); + var Processor2 = class { + constructor(plugins2 = []) { + this.version = "8.4.38"; + this.plugins = this.normalize(plugins2); + } + normalize(plugins2) { + let normalized = []; + for (let i of plugins2) { + if (i.postcss === true) { + i = i(); + } else if (i.postcss) { + i = i.postcss; + } + if (typeof i === "object" && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins); + } else if (typeof i === "object" && i.postcssPlugin) { + normalized.push(i); + } else if (typeof i === "function") { + normalized.push(i); + } else if (typeof i === "object" && (i.parse || i.stringify)) { + if (process.env.NODE_ENV !== "production") { + throw new Error( + "PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation." + ); + } + } else { + throw new Error(i + " is not a PostCSS plugin"); + } + } + return normalized; + } + process(css, opts = {}) { + if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) { + return new NoWorkResult(this, css, opts); + } else { + return new LazyResult(this, css, opts); + } + } + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])); + return this; + } + }; + module2.exports = Processor2; + Processor2.default = Processor2; + Root.registerProcessor(Processor2); + Document.registerProcessor(Processor2); + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/fromJSON.js +var require_fromJSON = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/fromJSON.js"(exports2, module2) { + "use strict"; + var Declaration = require_declaration(); + var PreviousMap = require_previous_map(); + var Comment = require_comment(); + var AtRule = require_at_rule(); + var Input = require_input(); + var Root = require_root(); + var Rule = require_rule(); + function fromJSON(json2, inputs) { + if (Array.isArray(json2)) + return json2.map((n) => fromJSON(n)); + let { inputs: ownInputs, ...defaults2 } = json2; + if (ownInputs) { + inputs = []; + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype }; + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + }; + } + inputs.push(inputHydrated); + } + } + if (defaults2.nodes) { + defaults2.nodes = json2.nodes.map((n) => fromJSON(n, inputs)); + } + if (defaults2.source) { + let { inputId, ...source } = defaults2.source; + defaults2.source = source; + if (inputId != null) { + defaults2.source.input = inputs[inputId]; + } + } + if (defaults2.type === "root") { + return new Root(defaults2); + } else if (defaults2.type === "decl") { + return new Declaration(defaults2); + } else if (defaults2.type === "rule") { + return new Rule(defaults2); + } else if (defaults2.type === "comment") { + return new Comment(defaults2); + } else if (defaults2.type === "atrule") { + return new AtRule(defaults2); + } else { + throw new Error("Unknown node type: " + json2.type); + } + } + module2.exports = fromJSON; + fromJSON.default = fromJSON; + } +}); + +// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.js +var require_postcss = __commonJS({ + "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.js"(exports2, module2) { + "use strict"; + var CssSyntaxError = require_css_syntax_error(); + var Declaration = require_declaration(); + var LazyResult = require_lazy_result(); + var Container = require_container(); + var Processor2 = require_processor(); + var stringify2 = require_stringify2(); + var fromJSON = require_fromJSON(); + var Document = require_document(); + var Warning = require_warning(); + var Comment = require_comment(); + var AtRule = require_at_rule(); + var Result = require_result(); + var Input = require_input(); + var parse2 = require_parse(); + var list = require_list(); + var Rule = require_rule(); + var Root = require_root(); + var Node = require_node2(); + function postcss(...plugins2) { + if (plugins2.length === 1 && Array.isArray(plugins2[0])) { + plugins2 = plugins2[0]; + } + return new Processor2(plugins2); + } + postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false; + function creator(...args) { + if (console && console.warn && !warningPrinted) { + warningPrinted = true; + console.warn( + name + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration" + ); + if (process.env.LANG && process.env.LANG.startsWith("cn")) { + console.warn( + name + ": \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357:\nhttps://www.w3ctech.com/topic/2226" + ); + } + } + let transformer = initializer(...args); + transformer.postcssPlugin = name; + transformer.postcssVersion = new Processor2().version; + return transformer; + } + let cache; + Object.defineProperty(creator, "postcss", { + get() { + if (!cache) + cache = creator(); + return cache; + } + }); + creator.process = function(css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts); + }; + return creator; + }; + postcss.stringify = stringify2; + postcss.parse = parse2; + postcss.fromJSON = fromJSON; + postcss.list = list; + postcss.comment = (defaults2) => new Comment(defaults2); + postcss.atRule = (defaults2) => new AtRule(defaults2); + postcss.decl = (defaults2) => new Declaration(defaults2); + postcss.rule = (defaults2) => new Rule(defaults2); + postcss.root = (defaults2) => new Root(defaults2); + postcss.document = (defaults2) => new Document(defaults2); + postcss.CssSyntaxError = CssSyntaxError; + postcss.Declaration = Declaration; + postcss.Container = Container; + postcss.Processor = Processor2; + postcss.Document = Document; + postcss.Comment = Comment; + postcss.Warning = Warning; + postcss.AtRule = AtRule; + postcss.Result = Result; + postcss.Input = Input; + postcss.Rule = Rule; + postcss.Root = Root; + postcss.Node = Node; + LazyResult.registerPostcss(postcss); + module2.exports = postcss; + postcss.default = postcss; + } +}); + +// ../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js +var require_sanitize_html = __commonJS({ + "../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js"(exports2, module2) { + var htmlparser = require_lib6(); + var escapeStringRegexp = require_escape_string_regexp(); + var { isPlainObject: isPlainObject3 } = require_is_plain_object(); + var deepmerge = require_cjs(); + var parseSrcset = require_parse_srcset(); + var { parse: postcssParse } = require_postcss(); + var mediaTags = [ + "img", + "audio", + "video", + "picture", + "svg", + "object", + "map", + "iframe", + "embed" + ]; + var vulnerableTags = ["script", "style"]; + function each2(obj, cb) { + if (obj) { + Object.keys(obj).forEach(function(key) { + cb(obj[key], key); + }); + } + } + function has2(obj, key) { + return {}.hasOwnProperty.call(obj, key); + } + function filter2(a, cb) { + const n = []; + each2(a, function(v) { + if (cb(v)) { + n.push(v); + } + }); + return n; + } + function isEmptyObject(obj) { + for (const key in obj) { + if (has2(obj, key)) { + return false; + } + } + return true; + } + function stringifySrcset(parsedSrcset) { + return parsedSrcset.map(function(part) { + if (!part.url) { + throw new Error("URL missing"); + } + return part.url + (part.w ? ` ${part.w}w` : "") + (part.h ? ` ${part.h}h` : "") + (part.d ? ` ${part.d}x` : ""); + }).join(", "); + } + module2.exports = sanitizeHtml; + var VALID_HTML_ATTRIBUTE_NAME = /^[^\0\t\n\f\r /<=>]+$/; + function sanitizeHtml(html, options2, _recursing) { + if (html == null) { + return ""; + } + if (typeof html === "number") { + html = html.toString(); + } + let result = ""; + let tempResult = ""; + function Frame(tag, attribs) { + const that = this; + this.tag = tag; + this.attribs = attribs || {}; + this.tagPosition = result.length; + this.text = ""; + this.mediaChildren = []; + this.updateParentNodeText = function() { + if (stack.length) { + const parentFrame = stack[stack.length - 1]; + parentFrame.text += that.text; + } + }; + this.updateParentNodeMediaChildren = function() { + if (stack.length && mediaTags.includes(this.tag)) { + const parentFrame = stack[stack.length - 1]; + parentFrame.mediaChildren.push(this.tag); + } + }; + } + options2 = Object.assign({}, sanitizeHtml.defaults, options2); + options2.parser = Object.assign({}, htmlParserDefaults, options2.parser); + const tagAllowed = function(name) { + return options2.allowedTags === false || (options2.allowedTags || []).indexOf(name) > -1; + }; + vulnerableTags.forEach(function(tag) { + if (tagAllowed(tag) && !options2.allowVulnerableTags) { + console.warn(` + +\u26A0\uFE0F Your \`allowedTags\` option includes, \`${tag}\`, which is inherently +vulnerable to XSS attacks. Please remove it from \`allowedTags\`. +Or, to disable this warning, add the \`allowVulnerableTags\` option +and ensure you are accounting for this risk. + +`); + } + }); + const nonTextTagsArray = options2.nonTextTags || [ + "script", + "style", + "textarea", + "option" + ]; + let allowedAttributesMap; + let allowedAttributesGlobMap; + if (options2.allowedAttributes) { + allowedAttributesMap = {}; + allowedAttributesGlobMap = {}; + each2(options2.allowedAttributes, function(attributes, tag) { + allowedAttributesMap[tag] = []; + const globRegex = []; + attributes.forEach(function(obj) { + if (typeof obj === "string" && obj.indexOf("*") >= 0) { + globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*")); + } else { + allowedAttributesMap[tag].push(obj); + } + }); + if (globRegex.length) { + allowedAttributesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$"); + } + }); + } + const allowedClassesMap = {}; + const allowedClassesGlobMap = {}; + const allowedClassesRegexMap = {}; + each2(options2.allowedClasses, function(classes, tag) { + if (allowedAttributesMap) { + if (!has2(allowedAttributesMap, tag)) { + allowedAttributesMap[tag] = []; + } + allowedAttributesMap[tag].push("class"); + } + allowedClassesMap[tag] = classes; + if (Array.isArray(classes)) { + const globRegex = []; + allowedClassesMap[tag] = []; + allowedClassesRegexMap[tag] = []; + classes.forEach(function(obj) { + if (typeof obj === "string" && obj.indexOf("*") >= 0) { + globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*")); + } else if (obj instanceof RegExp) { + allowedClassesRegexMap[tag].push(obj); + } else { + allowedClassesMap[tag].push(obj); + } + }); + if (globRegex.length) { + allowedClassesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$"); + } + } + }); + const transformTagsMap = {}; + let transformTagsAll; + each2(options2.transformTags, function(transform, tag) { + let transFun; + if (typeof transform === "function") { + transFun = transform; + } else if (typeof transform === "string") { + transFun = sanitizeHtml.simpleTransform(transform); + } + if (tag === "*") { + transformTagsAll = transFun; + } else { + transformTagsMap[tag] = transFun; + } + }); + let depth; + let stack; + let skipMap; + let transformMap; + let skipText; + let skipTextDepth; + let addedText = false; + initializeState(); + const parser = new htmlparser.Parser({ + onopentag: function(name, attribs) { + if (options2.enforceHtmlBoundary && name === "html") { + initializeState(); + } + if (skipText) { + skipTextDepth++; + return; + } + const frame = new Frame(name, attribs); + stack.push(frame); + let skip = false; + const hasText = !!frame.text; + let transformedTag; + if (has2(transformTagsMap, name)) { + transformedTag = transformTagsMap[name](name, attribs); + frame.attribs = attribs = transformedTag.attribs; + if (transformedTag.text !== void 0) { + frame.innerText = transformedTag.text; + } + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + if (transformTagsAll) { + transformedTag = transformTagsAll(name, attribs); + frame.attribs = attribs = transformedTag.attribs; + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + if (!tagAllowed(name) || options2.disallowedTagsMode === "recursiveEscape" && !isEmptyObject(skipMap) || options2.nestingLimit != null && depth >= options2.nestingLimit) { + skip = true; + skipMap[depth] = true; + if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") { + if (nonTextTagsArray.indexOf(name) !== -1) { + skipText = true; + skipTextDepth = 1; + } + } + skipMap[depth] = true; + } + depth++; + if (skip) { + if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") { + return; + } + tempResult = result; + result = ""; + } + result += "<" + name; + if (name === "script") { + if (options2.allowedScriptHostnames || options2.allowedScriptDomains) { + frame.innerText = ""; + } + } + if (!allowedAttributesMap || has2(allowedAttributesMap, name) || allowedAttributesMap["*"]) { + each2(attribs, function(value, a) { + if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) { + delete frame.attribs[a]; + return; + } + if (value === "" && !options2.allowedEmptyAttributes.includes(a) && (options2.nonBooleanAttributes.includes(a) || options2.nonBooleanAttributes.includes("*"))) { + delete frame.attribs[a]; + return; + } + let passedAllowedAttributesMapCheck = false; + if (!allowedAttributesMap || has2(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1 || allowedAttributesMap["*"] && allowedAttributesMap["*"].indexOf(a) !== -1 || has2(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a) || allowedAttributesGlobMap["*"] && allowedAttributesGlobMap["*"].test(a)) { + passedAllowedAttributesMapCheck = true; + } else if (allowedAttributesMap && allowedAttributesMap[name]) { + for (const o of allowedAttributesMap[name]) { + if (isPlainObject3(o) && o.name && o.name === a) { + passedAllowedAttributesMapCheck = true; + let newValue = ""; + if (o.multiple === true) { + const splitStrArray = value.split(" "); + for (const s of splitStrArray) { + if (o.values.indexOf(s) !== -1) { + if (newValue === "") { + newValue = s; + } else { + newValue += " " + s; + } + } + } + } else if (o.values.indexOf(value) >= 0) { + newValue = value; + } + value = newValue; + } + } + } + if (passedAllowedAttributesMapCheck) { + if (options2.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) { + if (naughtyHref(name, value)) { + delete frame.attribs[a]; + return; + } + } + if (name === "script" && a === "src") { + let allowed = true; + try { + const parsed = parseUrl(value); + if (options2.allowedScriptHostnames || options2.allowedScriptDomains) { + const allowedHostname = (options2.allowedScriptHostnames || []).find(function(hostname) { + return hostname === parsed.url.hostname; + }); + const allowedDomain = (options2.allowedScriptDomains || []).find(function(domain) { + return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`); + }); + allowed = allowedHostname || allowedDomain; + } + } catch (e) { + allowed = false; + } + if (!allowed) { + delete frame.attribs[a]; + return; + } + } + if (name === "iframe" && a === "src") { + let allowed = true; + try { + const parsed = parseUrl(value); + if (parsed.isRelativeUrl) { + allowed = has2(options2, "allowIframeRelativeUrls") ? options2.allowIframeRelativeUrls : !options2.allowedIframeHostnames && !options2.allowedIframeDomains; + } else if (options2.allowedIframeHostnames || options2.allowedIframeDomains) { + const allowedHostname = (options2.allowedIframeHostnames || []).find(function(hostname) { + return hostname === parsed.url.hostname; + }); + const allowedDomain = (options2.allowedIframeDomains || []).find(function(domain) { + return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`); + }); + allowed = allowedHostname || allowedDomain; + } + } catch (e) { + allowed = false; + } + if (!allowed) { + delete frame.attribs[a]; + return; + } + } + if (a === "srcset") { + try { + let parsed = parseSrcset(value); + parsed.forEach(function(value2) { + if (naughtyHref("srcset", value2.url)) { + value2.evil = true; + } + }); + parsed = filter2(parsed, function(v) { + return !v.evil; + }); + if (!parsed.length) { + delete frame.attribs[a]; + return; + } else { + value = stringifySrcset(filter2(parsed, function(v) { + return !v.evil; + })); + frame.attribs[a] = value; + } + } catch (e) { + delete frame.attribs[a]; + return; + } + } + if (a === "class") { + const allowedSpecificClasses = allowedClassesMap[name]; + const allowedWildcardClasses = allowedClassesMap["*"]; + const allowedSpecificClassesGlob = allowedClassesGlobMap[name]; + const allowedSpecificClassesRegex = allowedClassesRegexMap[name]; + const allowedWildcardClassesGlob = allowedClassesGlobMap["*"]; + const allowedClassesGlobs = [ + allowedSpecificClassesGlob, + allowedWildcardClassesGlob + ].concat(allowedSpecificClassesRegex).filter(function(t) { + return t; + }); + if (allowedSpecificClasses && allowedWildcardClasses) { + value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs); + } else { + value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs); + } + if (!value.length) { + delete frame.attribs[a]; + return; + } + } + if (a === "style") { + if (options2.parseStyleAttributes) { + try { + const abstractSyntaxTree = postcssParse(name + " {" + value + "}", { map: false }); + const filteredAST = filterCss(abstractSyntaxTree, options2.allowedStyles); + value = stringifyStyleAttributes(filteredAST); + if (value.length === 0) { + delete frame.attribs[a]; + return; + } + } catch (e) { + if (typeof window !== "undefined") { + console.warn('Failed to parse "' + name + " {" + value + `}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`); + } + delete frame.attribs[a]; + return; + } + } else if (options2.allowedStyles) { + throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false."); + } + } + result += " " + a; + if (value && value.length) { + result += '="' + escapeHtml(value, true) + '"'; + } else if (options2.allowedEmptyAttributes.includes(a)) { + result += '=""'; + } + } else { + delete frame.attribs[a]; + } + }); + } + if (options2.selfClosing.indexOf(name) !== -1) { + result += " />"; + } else { + result += ">"; + if (frame.innerText && !hasText && !options2.textFilter) { + result += escapeHtml(frame.innerText); + addedText = true; + } + } + if (skip) { + result = tempResult + escapeHtml(result); + tempResult = ""; + } + }, + ontext: function(text) { + if (skipText) { + return; + } + const lastFrame = stack[stack.length - 1]; + let tag; + if (lastFrame) { + tag = lastFrame.tag; + text = lastFrame.innerText !== void 0 ? lastFrame.innerText : text; + } + if (options2.disallowedTagsMode === "completelyDiscard" && !tagAllowed(tag)) { + text = ""; + } else if ((options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") && (tag === "script" || tag === "style")) { + result += text; + } else { + const escaped = escapeHtml(text, false); + if (options2.textFilter && !addedText) { + result += options2.textFilter(escaped, tag); + } else if (!addedText) { + result += escaped; + } + } + if (stack.length) { + const frame = stack[stack.length - 1]; + frame.text += text; + } + }, + onclosetag: function(name, isImplied) { + if (skipText) { + skipTextDepth--; + if (!skipTextDepth) { + skipText = false; + } else { + return; + } + } + const frame = stack.pop(); + if (!frame) { + return; + } + if (frame.tag !== name) { + stack.push(frame); + return; + } + skipText = options2.enforceHtmlBoundary ? name === "html" : false; + depth--; + const skip = skipMap[depth]; + if (skip) { + delete skipMap[depth]; + if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") { + frame.updateParentNodeText(); + return; + } + tempResult = result; + result = ""; + } + if (transformMap[depth]) { + name = transformMap[depth]; + delete transformMap[depth]; + } + if (options2.exclusiveFilter && options2.exclusiveFilter(frame)) { + result = result.substr(0, frame.tagPosition); + return; + } + frame.updateParentNodeMediaChildren(); + frame.updateParentNodeText(); + if ( + // Already output /> + options2.selfClosing.indexOf(name) !== -1 || // Escaped tag, closing tag is implied + isImplied && !tagAllowed(name) && ["escape", "recursiveEscape"].indexOf(options2.disallowedTagsMode) >= 0 + ) { + if (skip) { + result = tempResult; + tempResult = ""; + } + return; + } + result += ""; + if (skip) { + result = tempResult + escapeHtml(result); + tempResult = ""; + } + addedText = false; + } + }, options2.parser); + parser.write(html); + parser.end(); + return result; + function initializeState() { + result = ""; + depth = 0; + stack = []; + skipMap = {}; + transformMap = {}; + skipText = false; + skipTextDepth = 0; + } + function escapeHtml(s, quote) { + if (typeof s !== "string") { + s = s + ""; + } + if (options2.parser.decodeEntities) { + s = s.replace(/&/g, "&").replace(//g, ">"); + if (quote) { + s = s.replace(/"/g, """); + } + } + s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, "&").replace(//g, ">"); + if (quote) { + s = s.replace(/"/g, """); + } + return s; + } + function naughtyHref(name, href) { + href = href.replace(/[\x00-\x20]+/g, ""); + while (true) { + const firstIndex = href.indexOf("", firstIndex + 4); + if (lastIndex === -1) { + break; + } + href = href.substring(0, firstIndex) + href.substring(lastIndex + 3); + } + const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/); + if (!matches) { + if (href.match(/^[/\\]{2}/)) { + return !options2.allowProtocolRelative; + } + return false; + } + const scheme = matches[1].toLowerCase(); + if (has2(options2.allowedSchemesByTag, name)) { + return options2.allowedSchemesByTag[name].indexOf(scheme) === -1; + } + return !options2.allowedSchemes || options2.allowedSchemes.indexOf(scheme) === -1; + } + function parseUrl(value) { + value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, "$1//"); + if (value.startsWith("relative:")) { + throw new Error("relative: exploit attempt"); + } + let base = "relative://relative-site"; + for (let i = 0; i < 100; i++) { + base += `/${i}`; + } + const parsed = new URL(value, base); + const isRelativeUrl = parsed && parsed.hostname === "relative-site" && parsed.protocol === "relative:"; + return { + isRelativeUrl, + url: parsed + }; + } + function filterCss(abstractSyntaxTree, allowedStyles) { + if (!allowedStyles) { + return abstractSyntaxTree; + } + const astRules = abstractSyntaxTree.nodes[0]; + let selectedRule; + if (allowedStyles[astRules.selector] && allowedStyles["*"]) { + selectedRule = deepmerge( + allowedStyles[astRules.selector], + allowedStyles["*"] + ); + } else { + selectedRule = allowedStyles[astRules.selector] || allowedStyles["*"]; + } + if (selectedRule) { + abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []); + } + return abstractSyntaxTree; + } + function stringifyStyleAttributes(filteredAST) { + return filteredAST.nodes[0].nodes.reduce(function(extractedAttributes, attrObject) { + extractedAttributes.push( + `${attrObject.prop}:${attrObject.value}${attrObject.important ? " !important" : ""}` + ); + return extractedAttributes; + }, []).join(";"); + } + function filterDeclarations(selectedRule) { + return function(allowedDeclarationsList, attributeObject) { + if (has2(selectedRule, attributeObject.prop)) { + const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) { + return regularExpression.test(attributeObject.value); + }); + if (matchesRegex) { + allowedDeclarationsList.push(attributeObject); + } + } + return allowedDeclarationsList; + }; + } + function filterClasses(classes, allowed, allowedGlobs) { + if (!allowed) { + return classes; + } + classes = classes.split(/\s+/); + return classes.filter(function(clss) { + return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob2) { + return glob2.test(clss); + }); + }).join(" "); + } + } + var htmlParserDefaults = { + decodeEntities: true + }; + sanitizeHtml.defaults = { + allowedTags: [ + // Sections derived from MDN element categories and limited to the more + // benign categories. + // https://developer.mozilla.org/en-US/docs/Web/HTML/Element + // Content sectioning + "address", + "article", + "aside", + "footer", + "header", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hgroup", + "main", + "nav", + "section", + // Text content + "blockquote", + "dd", + "div", + "dl", + "dt", + "figcaption", + "figure", + "hr", + "li", + "main", + "ol", + "p", + "pre", + "ul", + // Inline text semantics + "a", + "abbr", + "b", + "bdi", + "bdo", + "br", + "cite", + "code", + "data", + "dfn", + "em", + "i", + "kbd", + "mark", + "q", + "rb", + "rp", + "rt", + "rtc", + "ruby", + "s", + "samp", + "small", + "span", + "strong", + "sub", + "sup", + "time", + "u", + "var", + "wbr", + // Table content + "caption", + "col", + "colgroup", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + // Tags that cannot be boolean + nonBooleanAttributes: [ + "abbr", + "accept", + "accept-charset", + "accesskey", + "action", + "allow", + "alt", + "as", + "autocapitalize", + "autocomplete", + "blocking", + "charset", + "cite", + "class", + "color", + "cols", + "colspan", + "content", + "contenteditable", + "coords", + "crossorigin", + "data", + "datetime", + "decoding", + "dir", + "dirname", + "download", + "draggable", + "enctype", + "enterkeyhint", + "fetchpriority", + "for", + "form", + "formaction", + "formenctype", + "formmethod", + "formtarget", + "headers", + "height", + "hidden", + "high", + "href", + "hreflang", + "http-equiv", + "id", + "imagesizes", + "imagesrcset", + "inputmode", + "integrity", + "is", + "itemid", + "itemprop", + "itemref", + "itemtype", + "kind", + "label", + "lang", + "list", + "loading", + "low", + "max", + "maxlength", + "media", + "method", + "min", + "minlength", + "name", + "nonce", + "optimum", + "pattern", + "ping", + "placeholder", + "popover", + "popovertarget", + "popovertargetaction", + "poster", + "preload", + "referrerpolicy", + "rel", + "rows", + "rowspan", + "sandbox", + "scope", + "shape", + "size", + "sizes", + "slot", + "span", + "spellcheck", + "src", + "srcdoc", + "srclang", + "srcset", + "start", + "step", + "style", + "tabindex", + "target", + "title", + "translate", + "type", + "usemap", + "value", + "width", + "wrap", + // Event handlers + "onauxclick", + "onafterprint", + "onbeforematch", + "onbeforeprint", + "onbeforeunload", + "onbeforetoggle", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextlost", + "oncontextmenu", + "oncontextrestored", + "oncopy", + "oncuechange", + "oncut", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "onformdata", + "onhashchange", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onlanguagechange", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmessage", + "onmessageerror", + "onmousedown", + "onmouseenter", + "onmouseleave", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onoffline", + "ononline", + "onpagehide", + "onpageshow", + "onpaste", + "onpause", + "onplay", + "onplaying", + "onpopstate", + "onprogress", + "onratechange", + "onreset", + "onresize", + "onrejectionhandled", + "onscroll", + "onscrollend", + "onsecuritypolicyviolation", + "onseeked", + "onseeking", + "onselect", + "onslotchange", + "onstalled", + "onstorage", + "onsubmit", + "onsuspend", + "ontimeupdate", + "ontoggle", + "onunhandledrejection", + "onunload", + "onvolumechange", + "onwaiting", + "onwheel" + ], + disallowedTagsMode: "discard", + allowedAttributes: { + a: ["href", "name", "target"], + // We don't currently allow img itself by default, but + // these attributes would make sense if we did. + img: ["src", "srcset", "alt", "title", "width", "height", "loading"] + }, + allowedEmptyAttributes: [ + "alt" + ], + // Lots of these won't come up by default because we don't allow them + selfClosing: ["img", "br", "hr", "area", "base", "basefont", "input", "link", "meta"], + // URL schemes we permit + allowedSchemes: ["http", "https", "ftp", "mailto", "tel"], + allowedSchemesByTag: {}, + allowedSchemesAppliedToAttributes: ["href", "src", "cite"], + allowProtocolRelative: true, + enforceHtmlBoundary: false, + parseStyleAttributes: true + }; + sanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge4) { + merge4 = merge4 === void 0 ? true : merge4; + newAttribs = newAttribs || {}; + return function(tagName, attribs) { + let attrib; + if (merge4) { + for (attrib in newAttribs) { + attribs[attrib] = newAttribs[attrib]; + } + } else { + attribs = newAttribs; + } + return { + tagName: newTagName, + attribs + }; + }; + }; + } +}); + +// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/stringHelper.js +var require_stringHelper = __commonJS({ + "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/stringHelper.js"(exports2) { + exports2.endsWithChar = function ends_with_char(word, c) { + if (c.length > 1) { + return c.indexOf(word.slice(-1)) > -1; + } + return word.slice(-1) === c; + }; + exports2.endsWith = function ends_with(word, end) { + return word.slice(word.length - end.length) === end; + }; + } +}); + +// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/Match.js +var require_Match = __commonJS({ + "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/Match.js"(exports2) { + var abbreviations; + var englishAbbreviations = [ + "al", + "adj", + "assn", + "Ave", + "BSc", + "MSc", + "Cell", + "Ch", + "Co", + "cc", + "Corp", + "Dem", + "Dept", + "ed", + "eg", + "Eq", + "Eqs", + "est", + "est", + "etc", + "Ex", + "ext", + // + number? + "Fig", + "fig", + "Figs", + "figs", + "i.e", + "ie", + "Inc", + "inc", + "Jan", + "Feb", + "Mar", + "Apr", + "Jun", + "Jul", + "Aug", + "Sep", + "Sept", + "Oct", + "Nov", + "Dec", + "jr", + "mi", + "Miss", + "Mrs", + "Mr", + "Ms", + "Mol", + "mt", + "mts", + "no", + "Nos", + "PhD", + "MD", + "BA", + "MA", + "MM", + "pl", + "pop", + "pp", + "Prof", + "Dr", + "pt", + "Ref", + "Refs", + "Rep", + "repr", + "rev", + "Sec", + "Secs", + "Sgt", + "Col", + "Gen", + "Rep", + "Sen", + "Gov", + "Lt", + "Maj", + "Capt", + "St", + "Sr", + "sr", + "Jr", + "jr", + "Rev", + "Sun", + "Mon", + "Tu", + "Tue", + "Tues", + "Wed", + "Th", + "Thu", + "Thur", + "Thurs", + "Fri", + "Sat", + "trans", + "Univ", + "Viz", + "Vol", + "vs", + "v" + ]; + exports2.setAbbreviations = function(abbr) { + if (abbr) { + abbreviations = abbr; + } else { + abbreviations = englishAbbreviations; + } + }; + var isCapitalized = exports2.isCapitalized = function(str2) { + return /^[A-Z][a-z].*/.test(str2) || isNumber(str2); + }; + exports2.isSentenceStarter = function(str2) { + return isCapitalized(str2) || /``|"|'/.test(str2.substring(0, 2)); + }; + exports2.isCommonAbbreviation = function(str2) { + var noSymbols = str2.replace(/[-'`~!@#$%^&*()_|+=?;:'",.<>\{\}\[\]\\\/]/gi, ""); + return ~abbreviations.indexOf(noSymbols); + }; + exports2.isTimeAbbreviation = function(word, next) { + if (word === "a.m." || word === "p.m.") { + var tmp = next.replace(/\W+/g, "").slice(-3).toLowerCase(); + if (tmp === "day") { + return true; + } + } + return false; + }; + exports2.isDottedAbbreviation = function(word) { + var matches = word.replace(/[\(\)\[\]\{\}]/g, "").match(/(.\.)*/); + return matches && matches[0].length > 0; + }; + exports2.isCustomAbbreviation = function(str2) { + if (str2.length <= 3) { + return true; + } + return isCapitalized(str2); + }; + exports2.isNameAbbreviation = function(wordCount, words) { + if (words.length > 0) { + if (wordCount < 5 && words[0].length < 6 && isCapitalized(words[0])) { + return true; + } + var capitalized = words.filter(function(str2) { + return /[A-Z]/.test(str2.charAt(0)); + }); + return capitalized.length >= 3; + } + return false; + }; + var isNumber = exports2.isNumber = function(str2, dotPos) { + if (dotPos) { + str2 = str2.slice(dotPos - 1, dotPos + 2); + } + return !isNaN(str2); + }; + exports2.isPhoneNr = function(str2) { + return str2.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/); + }; + exports2.isURL = function(str2) { + return str2.match(/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/); + }; + exports2.isConcatenated = function(word) { + var i = 0; + if ((i = word.indexOf(".")) > -1 || (i = word.indexOf("!")) > -1 || (i = word.indexOf("?")) > -1) { + var c = word.charAt(i + 1); + if (c.match(/[a-zA-Z].*/)) { + return [word.slice(0, i), word.slice(i + 1)]; + } + } + return false; + }; + exports2.isBoundaryChar = function(word) { + return word === "." || word === "!" || word === "?"; + }; + } +}); + +// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/tokenizer.js +var require_tokenizer = __commonJS({ + "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/tokenizer.js"(exports2) { + var sanitizeHtml = require_sanitize_html(); + var stringHelper = require_stringHelper(); + var Match = require_Match(); + var newline_placeholder = " @~@ "; + var newline_placeholder_t = newline_placeholder.trim(); + var whiteSpaceCheck = new RegExp("\\S", ""); + var addNewLineBoundaries = new RegExp("\\n+|[-#=_+*]{4,}", "g"); + var splitIntoWords = new RegExp("\\S+|\\n", "g"); + exports2.sentences = function(text, user_options) { + if (!text || typeof text !== "string" || !text.length) { + return []; + } + if (!whiteSpaceCheck.test(text)) { + return []; + } + var options2 = { + "newline_boundaries": false, + "html_boundaries": false, + "html_boundaries_tags": ["p", "div", "ul", "ol"], + "sanitize": false, + "allowed_tags": false, + "preserve_whitespace": false, + "abbreviations": null + }; + if (typeof user_options === "boolean") { + options2.newline_boundaries = true; + } else { + for (var k in user_options) { + options2[k] = user_options[k]; + } + } + Match.setAbbreviations(options2.abbreviations); + if (options2.newline_boundaries) { + text = text.replace(addNewLineBoundaries, newline_placeholder); + } + if (options2.html_boundaries) { + var html_boundaries_regexp = "(|<\\/(" + options2.html_boundaries_tags.join("|") + ")>)"; + var re = new RegExp(html_boundaries_regexp, "g"); + text = text.replace(re, "$1" + newline_placeholder); + } + if (options2.sanitize || options2.allowed_tags) { + if (!options2.allowed_tags) { + options2.allowed_tags = [""]; + } + text = sanitizeHtml(text, { "allowedTags": options2.allowed_tags }); + } + var words; + var tokens; + if (options2.preserve_whitespace) { + tokens = text.split(/(|\S+|\n+)/); + words = tokens.filter(function(token, ii) { + return ii % 2; + }); + } else { + words = text.trim().match(splitIntoWords); + } + var wordCount = 0; + var index = 0; + var temp = []; + var sentences2 = []; + var current2 = []; + if (!words || !words.length) { + return []; + } + for (var i = 0, L = words.length; i < L; i++) { + wordCount++; + current2.push(words[i]); + if (~words[i].indexOf(",")) { + wordCount = 0; + } + if (Match.isBoundaryChar(words[i]) || stringHelper.endsWithChar(words[i], "?!") || words[i] === newline_placeholder_t) { + if ((options2.newline_boundaries || options2.html_boundaries) && words[i] === newline_placeholder_t) { + current2.pop(); + } + sentences2.push(current2); + wordCount = 0; + current2 = []; + continue; + } + if (stringHelper.endsWithChar(words[i], '"') || stringHelper.endsWithChar(words[i], "\u201D")) { + words[i] = words[i].slice(0, -1); + } + if (stringHelper.endsWithChar(words[i], ".")) { + if (i + 1 < L) { + if (words[i].length === 2 && isNaN(words[i].charAt(0))) { + continue; + } + if (Match.isCommonAbbreviation(words[i])) { + continue; + } + if (Match.isSentenceStarter(words[i + 1])) { + if (Match.isTimeAbbreviation(words[i], words[i + 1])) { + continue; + } + if (Match.isNameAbbreviation(wordCount, words.slice(i, 6))) { + continue; + } + if (Match.isNumber(words[i + 1])) { + if (Match.isCustomAbbreviation(words[i])) { + continue; + } + } + } else { + if (stringHelper.endsWith(words[i], "..")) { + continue; + } + if (Match.isDottedAbbreviation(words[i])) { + continue; + } + if (Match.isNameAbbreviation(wordCount, words.slice(i, 5))) { + continue; + } + } + } + sentences2.push(current2); + current2 = []; + wordCount = 0; + continue; + } + if ((index = words[i].indexOf(".")) > -1) { + if (Match.isNumber(words[i], index)) { + continue; + } + if (Match.isDottedAbbreviation(words[i])) { + continue; + } + if (Match.isURL(words[i]) || Match.isPhoneNr(words[i])) { + continue; + } + } + if (temp = Match.isConcatenated(words[i])) { + current2.pop(); + current2.push(temp[0]); + sentences2.push(current2); + current2 = []; + wordCount = 0; + current2.push(temp[1]); + } + } + if (current2.length) { + sentences2.push(current2); + } + sentences2 = sentences2.filter(function(s) { + return s.length > 0; + }); + var result = sentences2.slice(1).reduce(function(out, sentence) { + var lastSentence = out[out.length - 1]; + if (lastSentence.length === 1 && /^.{1,2}[.]$/.test(lastSentence[0])) { + if (!/[.]/.test(sentence[0])) { + out.pop(); + out.push(lastSentence.concat(sentence)); + return out; + } + } + out.push(sentence); + return out; + }, [sentences2[0]]); + return result.map(function(sentence, ii) { + if (options2.preserve_whitespace && !options2.newline_boundaries && !options2.html_boundaries) { + var tokenCount = sentence.length * 2; + if (ii === 0) { + tokenCount += 1; + } + return tokens.splice(0, tokenCount).join(""); + } + return sentence.join(" "); + }); + }; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/rng.js +var require_rng = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/rng.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = rng; + var _crypto = _interopRequireDefault(require("crypto")); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var rnds8Pool = new Uint8Array(256); + var poolPtr = rnds8Pool.length; + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + poolPtr = 0; + } + return rnds8Pool.slice(poolPtr, poolPtr += 16); + } + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/regex.js +var require_regex = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/regex.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _default2 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/validate.js +var require_validate = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/validate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _regex = _interopRequireDefault(require_regex()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function validate2(uuid2) { + return typeof uuid2 === "string" && _regex.default.test(uuid2); + } + var _default2 = validate2; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/stringify.js +var require_stringify3 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/stringify.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + exports2.unsafeStringify = unsafeStringify; + var _validate = _interopRequireDefault(require_validate()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var byteToHex = []; + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).slice(1)); + } + function unsafeStringify(arr, offset = 0) { + return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; + } + function stringify2(arr, offset = 0) { + const uuid2 = unsafeStringify(arr, offset); + if (!(0, _validate.default)(uuid2)) { + throw TypeError("Stringified UUID is invalid"); + } + return uuid2; + } + var _default2 = stringify2; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v1.js +var require_v1 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v1.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _rng = _interopRequireDefault(require_rng()); + var _stringify = require_stringify3(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var _nodeId; + var _clockseq; + var _lastMSecs = 0; + var _lastNSecs = 0; + function v12(options2, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options2 = options2 || {}; + let node = options2.node || _nodeId; + let clockseq = options2.clockseq !== void 0 ? options2.clockseq : _clockseq; + if (node == null || clockseq == null) { + const seedBytes = options2.random || (options2.rng || _rng.default)(); + if (node == null) { + node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + if (clockseq == null) { + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383; + } + } + let msecs = options2.msecs !== void 0 ? options2.msecs : Date.now(); + let nsecs = options2.nsecs !== void 0 ? options2.nsecs : _lastNSecs + 1; + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4; + if (dt < 0 && options2.clockseq === void 0) { + clockseq = clockseq + 1 & 16383; + } + if ((dt < 0 || msecs > _lastMSecs) && options2.nsecs === void 0) { + nsecs = 0; + } + if (nsecs >= 1e4) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + msecs += 122192928e5; + const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296; + b[i++] = tl >>> 24 & 255; + b[i++] = tl >>> 16 & 255; + b[i++] = tl >>> 8 & 255; + b[i++] = tl & 255; + const tmh = msecs / 4294967296 * 1e4 & 268435455; + b[i++] = tmh >>> 8 & 255; + b[i++] = tmh & 255; + b[i++] = tmh >>> 24 & 15 | 16; + b[i++] = tmh >>> 16 & 255; + b[i++] = clockseq >>> 8 | 128; + b[i++] = clockseq & 255; + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + return buf || (0, _stringify.unsafeStringify)(b); + } + var _default2 = v12; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/parse.js +var require_parse2 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/parse.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _validate = _interopRequireDefault(require_validate()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function parse2(uuid2) { + if (!(0, _validate.default)(uuid2)) { + throw TypeError("Invalid UUID"); + } + let v; + const arr = new Uint8Array(16); + arr[0] = (v = parseInt(uuid2.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 255; + arr[2] = v >>> 8 & 255; + arr[3] = v & 255; + arr[4] = (v = parseInt(uuid2.slice(9, 13), 16)) >>> 8; + arr[5] = v & 255; + arr[6] = (v = parseInt(uuid2.slice(14, 18), 16)) >>> 8; + arr[7] = v & 255; + arr[8] = (v = parseInt(uuid2.slice(19, 23), 16)) >>> 8; + arr[9] = v & 255; + arr[10] = (v = parseInt(uuid2.slice(24, 36), 16)) / 1099511627776 & 255; + arr[11] = v / 4294967296 & 255; + arr[12] = v >>> 24 & 255; + arr[13] = v >>> 16 & 255; + arr[14] = v >>> 8 & 255; + arr[15] = v & 255; + return arr; + } + var _default2 = parse2; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v35.js +var require_v35 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v35.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.URL = exports2.DNS = void 0; + exports2.default = v35; + var _stringify = require_stringify3(); + var _parse = _interopRequireDefault(require_parse2()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function stringToBytes(str2) { + str2 = unescape(encodeURIComponent(str2)); + const bytes = []; + for (let i = 0; i < str2.length; ++i) { + bytes.push(str2.charCodeAt(i)); + } + return bytes; + } + var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; + exports2.DNS = DNS; + var URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; + exports2.URL = URL2; + function v35(name, version2, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace; + if (typeof value === "string") { + value = stringToBytes(value); + } + if (typeof namespace === "string") { + namespace = (0, _parse.default)(namespace); + } + if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { + throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); + } + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 15 | version2; + bytes[8] = bytes[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return (0, _stringify.unsafeStringify)(bytes); + } + try { + generateUUID.name = name; + } catch (err) { + } + generateUUID.DNS = DNS; + generateUUID.URL = URL2; + return generateUUID; + } + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/md5.js +var require_md5 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/md5.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _crypto = _interopRequireDefault(require("crypto")); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + return _crypto.default.createHash("md5").update(bytes).digest(); + } + var _default2 = md5; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v3.js +var require_v3 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v3.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _v = _interopRequireDefault(require_v35()); + var _md = _interopRequireDefault(require_md5()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var v32 = (0, _v.default)("v3", 48, _md.default); + var _default2 = v32; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/native.js +var require_native = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/native.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _crypto = _interopRequireDefault(require("crypto")); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var _default2 = { + randomUUID: _crypto.default.randomUUID + }; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v4.js +var require_v4 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v4.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _native = _interopRequireDefault(require_native()); + var _rng = _interopRequireDefault(require_rng()); + var _stringify = require_stringify3(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function v42(options2, buf, offset) { + if (_native.default.randomUUID && !buf && !options2) { + return _native.default.randomUUID(); + } + options2 = options2 || {}; + const rnds = options2.random || (options2.rng || _rng.default)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return (0, _stringify.unsafeStringify)(rnds); + } + var _default2 = v42; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/sha1.js +var require_sha1 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/sha1.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _crypto = _interopRequireDefault(require("crypto")); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + return _crypto.default.createHash("sha1").update(bytes).digest(); + } + var _default2 = sha1; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v5.js +var require_v5 = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v5.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _v = _interopRequireDefault(require_v35()); + var _sha = _interopRequireDefault(require_sha1()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + var v52 = (0, _v.default)("v5", 80, _sha.default); + var _default2 = v52; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/nil.js +var require_nil = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/nil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _default2 = "00000000-0000-0000-0000-000000000000"; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/version.js +var require_version = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/version.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _validate = _interopRequireDefault(require_validate()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function version2(uuid2) { + if (!(0, _validate.default)(uuid2)) { + throw TypeError("Invalid UUID"); + } + return parseInt(uuid2.slice(14, 15), 16); + } + var _default2 = version2; + exports2.default = _default2; + } +}); + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/index.js +var require_dist = __commonJS({ + "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + Object.defineProperty(exports2, "NIL", { + enumerable: true, + get: function() { + return _nil.default; + } + }); + Object.defineProperty(exports2, "parse", { + enumerable: true, + get: function() { + return _parse.default; + } + }); + Object.defineProperty(exports2, "stringify", { + enumerable: true, + get: function() { + return _stringify.default; + } + }); + Object.defineProperty(exports2, "v1", { + enumerable: true, + get: function() { + return _v.default; + } + }); + Object.defineProperty(exports2, "v3", { + enumerable: true, + get: function() { + return _v2.default; + } + }); + Object.defineProperty(exports2, "v4", { + enumerable: true, + get: function() { + return _v3.default; + } + }); + Object.defineProperty(exports2, "v5", { + enumerable: true, + get: function() { + return _v4.default; + } + }); + Object.defineProperty(exports2, "validate", { + enumerable: true, + get: function() { + return _validate.default; + } + }); + Object.defineProperty(exports2, "version", { + enumerable: true, + get: function() { + return _version.default; + } + }); + var _v = _interopRequireDefault(require_v1()); + var _v2 = _interopRequireDefault(require_v3()); + var _v3 = _interopRequireDefault(require_v4()); + var _v4 = _interopRequireDefault(require_v5()); + var _nil = _interopRequireDefault(require_nil()); + var _version = _interopRequireDefault(require_version()); + var _validate = _interopRequireDefault(require_validate()); + var _stringify = _interopRequireDefault(require_stringify3()); + var _parse = _interopRequireDefault(require_parse2()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + } +}); + +// ../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js +var require_balanced_match = __commonJS({ + "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) { + "use strict"; + module2.exports = balanced; + function balanced(a, b, str2) { + if (a instanceof RegExp) + a = maybeMatch(a, str2); + if (b instanceof RegExp) + b = maybeMatch(b, str2); + var r = range4(a, b, str2); + return r && { + start: r[0], + end: r[1], + pre: str2.slice(0, r[0]), + body: str2.slice(r[0] + a.length, r[1]), + post: str2.slice(r[1] + b.length) + }; + } + function maybeMatch(reg, str2) { + var m = str2.match(reg); + return m ? m[0] : null; + } + balanced.range = range4; + function range4(a, b, str2) { + var begs, beg, left, right, result; + var ai = str2.indexOf(a); + var bi = str2.indexOf(b, ai + 1); + var i = ai; + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; + } + begs = []; + left = str2.length; + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str2.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + bi = str2.indexOf(b, i + 1); + } + i = ai < bi && ai >= 0 ? ai : bi; + } + if (begs.length) { + result = [left, right]; + } + } + return result; + } + } +}); + +// ../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js +var require_brace_expansion = __commonJS({ + "../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports2, module2) { + var balanced = require_balanced_match(); + module2.exports = expandTop; + var escSlash = "\0SLASH" + Math.random() + "\0"; + var escOpen = "\0OPEN" + Math.random() + "\0"; + var escClose = "\0CLOSE" + Math.random() + "\0"; + var escComma = "\0COMMA" + Math.random() + "\0"; + var escPeriod = "\0PERIOD" + Math.random() + "\0"; + function numeric(str2) { + return parseInt(str2, 10) == str2 ? parseInt(str2, 10) : str2.charCodeAt(0); + } + function escapeBraces(str2) { + return str2.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); + } + function unescapeBraces(str2) { + return str2.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); + } + function parseCommaParts(str2) { + if (!str2) + return [""]; + var parts = []; + var m = balanced("{", "}", str2); + if (!m) + return str2.split(","); + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(","); + p[p.length - 1] += "{" + body + "}"; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + parts.push.apply(parts, p); + return parts; + } + function expandTop(str2) { + if (!str2) + return []; + if (str2.substr(0, 2) === "{}") { + str2 = "\\{\\}" + str2.substr(2); + } + return expand2(escapeBraces(str2), true).map(unescapeBraces); + } + function embrace(str2) { + return "{" + str2 + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + function lte(i, y) { + return i <= y; + } + function gte(i, y) { + return i >= y; + } + function expand2(str2, isTop) { + var expansions = []; + var m = balanced("{", "}", str2); + if (!m) + return [str2]; + var pre = m.pre; + var post = m.post.length ? expand2(m.post, false) : [""]; + if (/\$$/.test(m.pre)) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + "{" + m.body + "}" + post[k]; + expansions.push(expansion); + } + } else { + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) { + if (m.post.match(/,.*\}/)) { + str2 = m.pre + "{" + m.body + escClose + m.post; + return expand2(str2); + } + return [str2]; + } + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + n = expand2(n[0], false).map(embrace); + if (n.length === 1) { + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + var N; + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + N = []; + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === "\\") + c = ""; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z2 = new Array(need + 1).join("0"); + if (i < 0) + c = "-" + z2 + c.slice(1); + else + c = z2 + c; + } + } + } + N.push(c); + } + } else { + N = []; + for (var j = 0; j < n.length; j++) { + N.push.apply(N, expand2(n[j], false)); + } + } + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + } + return expansions; + } + } +}); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => entry +}); +module.exports = __toCommonJS(src_exports); + +// ../common/src/cursorlessCommandIds.ts +var CURSORLESS_COMMAND_ID = "cursorless.command"; +var Command = class { + constructor(baseTitle) { + this.baseTitle = baseTitle; + } + get title() { + return `Cursorless: ${this.baseTitle}`; + } +}; +var HiddenCommand = class extends Command { + constructor() { + super(...arguments); + this.isVisible = false; + } +}; +var VisibleCommand = class extends Command { + constructor() { + super(...arguments); + this.isVisible = true; + } +}; +var cursorlessCommandDescriptions = { + ["cursorless.toggleDecorations"]: new VisibleCommand("Toggle decorations"), + ["cursorless.recomputeDecorationStyles"]: new VisibleCommand( + "Recompute decoration styles" + ), + ["cursorless.recordTestCase"]: new VisibleCommand("Record test case"), + ["cursorless.recordOneTestCaseThenPause"]: new VisibleCommand( + "Record one test case, then pause" + ), + ["cursorless.pauseRecording"]: new VisibleCommand( + "Pause test case recording" + ), + ["cursorless.resumeRecording"]: new VisibleCommand( + "Resume test case recording" + ), + ["cursorless.showDocumentation"]: new VisibleCommand("Show documentation"), + ["cursorless.showScopeVisualizer"]: new VisibleCommand( + "Show the scope visualizer" + ), + ["cursorless.hideScopeVisualizer"]: new VisibleCommand( + "Hide the scope visualizer" + ), + ["cursorless.analyzeCommandHistory"]: new VisibleCommand( + "Analyze collected command history" + ), + ["cursorless.command"]: new HiddenCommand("The core cursorless command"), + ["cursorless.showQuickPick"]: new HiddenCommand( + "Pop up a quick pick of all cursorless commands" + ), + ["cursorless.showCheatsheet"]: new HiddenCommand( + "Display the cursorless cheatsheet" + ), + ["cursorless.internal.updateCheatsheetDefaults"]: new HiddenCommand( + "Update the default values of the cheatsheet payload used on the website and for local development. Be sure to run this on stock community and cursorless." + ), + ["cursorless.private.logQuickActions"]: new HiddenCommand( + "Log the quick actions available at the current cursor position" + ), + ["cursorless.takeSnapshot"]: new HiddenCommand( + "Take a snapshot of the current editor state" + ), + ["cursorless.keyboard.escape"]: new HiddenCommand( + "Should be mapped to the escape key when using cursorless keyboard. By default, exits modal keyboard mode, but changes behaviour when Cursorless is expecting a continuation keystroke. For example, when you type a color and Cursorless is waiting for a character, it cancels the color and switches back to modal mode." + ), + ["cursorless.keyboard.targeted.targetHat"]: new HiddenCommand( + "Sets the keyboard target to the given hat" + ), + ["cursorless.keyboard.targeted.targetScope"]: new HiddenCommand( + "Sets the keyboard target to the scope containing the current target" + ), + ["cursorless.keyboard.targeted.targetSelection"]: new HiddenCommand( + "Sets the keyboard target to the current selection" + ), + ["cursorless.keyboard.targeted.clearTarget"]: new HiddenCommand( + "Clears the current keyboard target" + ), + ["cursorless.keyboard.targeted.runActionOnTarget"]: new HiddenCommand( + "Run the given action on the current keyboard target" + ), + ["cursorless.keyboard.modal.modeOn"]: new HiddenCommand( + "Turn on the cursorless modal mode" + ), + ["cursorless.keyboard.modal.modeOff"]: new HiddenCommand( + "Turn off the cursorless modal mode" + ), + ["cursorless.keyboard.modal.modeToggle"]: new HiddenCommand( + "Toggle the cursorless modal mode" + ) +}; + +// ../common/src/ide/fake/FakeIDE.ts +var import_lodash3 = __toESM(require_lodash(), 1); + +// ../common/src/ide/fake/FakeCapabilities.ts +var FakeCapabilities = class { + constructor() { + this.commands = { + clipboardCopy: void 0, + toggleLineComment: void 0, + indentLine: void 0, + outdentLine: void 0, + rename: void 0, + quickFix: void 0, + revealDefinition: void 0, + revealTypeDefinition: void 0, + showHover: void 0, + showDebugHover: void 0, + extractVariable: void 0, + fold: void 0, + highlight: { acceptsLocation: true }, + unfold: void 0, + showReferences: void 0 + }; + } +}; + +// ../common/src/ide/fake/FakeClipboard.ts +var FakeClipboard = class { + constructor() { + this.clipboardContents = ""; + } + async readText() { + return this.clipboardContents; + } + async writeText(value) { + this.clipboardContents = value; + } +}; + +// ../common/src/ide/fake/FakeConfiguration.ts +var import_lodash2 = __toESM(require_lodash(), 1); + +// ../common/src/util/Notifier.ts +var import_lodash = __toESM(require_lodash(), 1); +var Notifier = class { + constructor() { + this.listeners = []; + /** + * Notify all listeners that something has changed + */ + this.notifyListeners = (...args) => { + this.listeners.forEach((listener) => listener(...args)); + }; + this.registerListener = this.registerListener.bind(this); + } + /** + * Register to be notified when {@link notifyListeners} is called + * @param listener A function to be called when {@link notifyListeners} is called + * @returns A function that can be called to unsubscribe from notifications + */ + registerListener(listener) { + this.listeners.push(listener); + return { + dispose: () => { + (0, import_lodash.pull)(this.listeners, listener); + } + }; + } +}; + +// ../common/src/ide/types/Configuration.ts +var CONFIGURATION_DEFAULTS = { + tokenHatSplittingMode: { + preserveCase: false, + lettersToPreserve: [], + symbolsToPreserve: [] + }, + wordSeparators: ["_"], + decorationDebounceDelayMs: 50, + experimental: { + snippetsDir: void 0, + hatStability: "balanced" /* balanced */ + }, + commandHistory: false, + debug: false +}; + +// ../common/src/ide/fake/FakeConfiguration.ts +var FakeConfiguration = class { + constructor() { + this.notifier = new Notifier(); + this.mocks = { + ...CONFIGURATION_DEFAULTS + }; + this.scopes = []; + this.onDidChangeConfiguration = this.notifier.registerListener; + this.onDidChangeConfiguration = this.onDidChangeConfiguration.bind(this); + } + getOwnConfiguration(path8, scope) { + if (scope != null) { + for (const { scope: candidateScope, values: values2 } of this.scopes) { + if (scopeMatches(candidateScope, scope)) { + return (0, import_lodash2.get)(values2, path8) ?? (0, import_lodash2.get)(this.mocks, path8); + } + } + } + return (0, import_lodash2.get)(this.mocks, path8); + } + mockConfiguration(key, value) { + this.mocks[key] = value; + this.notifier.notifyListeners(); + } + mockConfigurationScope(scope, values2, noNotification = false) { + this.scopes.push({ scope, values: values2 }); + if (!noNotification) { + this.notifier.notifyListeners(); + } + } +}; +function scopeMatches(candidateScope, scope) { + return candidateScope.languageId === scope.languageId; +} + +// ../common/src/ide/types/State.ts +var STATE_DEFAULTS = { + hideInferenceWarning: false +}; + +// ../common/src/ide/fake/FakeGlobalState.ts +var FakeGlobalState = class { + constructor() { + this.data = { ...STATE_DEFAULTS }; + } + get(key) { + return this.data[key]; + } + set(key, value) { + this.data[key] = value; + return Promise.resolve(); + } +}; + +// ../common/src/ide/fake/FakeMessages.ts +var FakeMessages = class { + async showMessage(_type, _id, _message, ..._options) { + return void 0; + } +}; + +// ../common/src/ide/fake/FakeIDE.ts +var FakeIDE = class { + constructor() { + this.configuration = new FakeConfiguration(); + this.messages = new FakeMessages(); + this.globalState = new FakeGlobalState(); + this.clipboard = new FakeClipboard(); + this.capabilities = new FakeCapabilities(); + this.runMode = "test"; + this.cursorlessVersion = "0.0.0"; + this.workspaceFolders = void 0; + this.disposables = []; + this.quickPickReturnValue = void 0; + this.onDidOpenTextDocument = dummyEvent; + this.onDidCloseTextDocument = dummyEvent; + this.onDidChangeActiveTextEditor = dummyEvent; + this.onDidChangeVisibleTextEditors = dummyEvent; + this.onDidChangeTextEditorSelection = dummyEvent; + this.onDidChangeTextEditorVisibleRanges = dummyEvent; + } + async flashRanges(_flashDescriptors) { + } + async setHighlightRanges(_highlightId, _editor, _ranges) { + } + mockAssetsRoot(_assetsRoot) { + this.assetsRoot_ = _assetsRoot; + } + get assetsRoot() { + if (this.assetsRoot_ == null) { + throw Error("Field `assetsRoot` has not yet been mocked"); + } + return this.assetsRoot_; + } + get activeTextEditor() { + throw Error("Not implemented"); + } + get activeEditableTextEditor() { + throw Error("Not implemented"); + } + get visibleTextEditors() { + throw Error("Not implemented"); + } + getEditableTextEditor(_editor) { + throw Error("Not implemented"); + } + findInDocument(_query, _editor) { + throw Error("Not implemented"); + } + findInWorkspace(_query) { + throw Error("Not implemented"); + } + openTextDocument(_path) { + throw Error("Not implemented"); + } + openUntitledTextDocument(_options) { + throw Error("Not implemented"); + } + setQuickPickReturnValue(value) { + this.quickPickReturnValue = value; + } + async showQuickPick(_items, _options) { + return this.quickPickReturnValue; + } + showInputBox(_options) { + throw Error("Not implemented"); + } + executeCommand(_command, ..._args) { + throw new Error("Method not implemented."); + } + onDidChangeTextDocument(_listener) { + throw Error("Not implemented"); + } + disposeOnExit(...disposables) { + this.disposables.push(...disposables); + return () => (0, import_lodash3.pull)(this.disposables, ...disposables); + } + exit() { + this.disposables.forEach((disposable) => disposable.dispose()); + } +}; +function dummyEvent() { + return { + dispose() { + } + }; +} + +// ../common/src/ide/spy/SpyIDE.ts +var import_lodash4 = __toESM(require_lodash(), 1); + +// ../common/src/ide/PassthroughIDEBase.ts +var PassthroughIDEBase = class { + constructor(original) { + this.original = original; + this.configuration = original.configuration; + this.globalState = original.globalState; + this.clipboard = original.clipboard; + this.messages = original.messages; + this.capabilities = original.capabilities; + } + flashRanges(flashDescriptors) { + return this.original.flashRanges(flashDescriptors); + } + setHighlightRanges(highlightId, editor, ranges) { + return this.original.setHighlightRanges(highlightId, editor, ranges); + } + onDidOpenTextDocument(listener, thisArgs, disposables) { + return this.original.onDidOpenTextDocument(listener, thisArgs, disposables); + } + onDidCloseTextDocument(listener, thisArgs, disposables) { + return this.original.onDidCloseTextDocument( + listener, + thisArgs, + disposables + ); + } + onDidChangeActiveTextEditor(listener, thisArgs, disposables) { + return this.original.onDidChangeActiveTextEditor( + listener, + thisArgs, + disposables + ); + } + onDidChangeVisibleTextEditors(listener, thisArgs, disposables) { + return this.original.onDidChangeVisibleTextEditors( + listener, + thisArgs, + disposables + ); + } + onDidChangeTextEditorSelection(listener, thisArgs, disposables) { + return this.original.onDidChangeTextEditorSelection( + listener, + thisArgs, + disposables + ); + } + onDidChangeTextEditorVisibleRanges(listener, thisArgs, disposables) { + return this.original.onDidChangeTextEditorVisibleRanges( + listener, + thisArgs, + disposables + ); + } + get activeTextEditor() { + return this.original.activeTextEditor; + } + get activeEditableTextEditor() { + return this.original.activeEditableTextEditor; + } + get visibleTextEditors() { + return this.original.visibleTextEditors; + } + get cursorlessVersion() { + return this.original.cursorlessVersion; + } + get assetsRoot() { + return this.original.assetsRoot; + } + get runMode() { + return this.original.runMode; + } + get workspaceFolders() { + return this.original.workspaceFolders; + } + findInDocument(query, editor) { + return this.original.findInDocument(query, editor); + } + findInWorkspace(query) { + return this.original.findInWorkspace(query); + } + openTextDocument(path8) { + return this.original.openTextDocument(path8); + } + openUntitledTextDocument(options2) { + return this.original.openUntitledTextDocument(options2); + } + showQuickPick(items, options2) { + return this.original.showQuickPick(items, options2); + } + showInputBox(options2) { + return this.original.showInputBox(options2); + } + getEditableTextEditor(editor) { + return this.original.getEditableTextEditor(editor); + } + executeCommand(command, ...args) { + return this.original.executeCommand(command, ...args); + } + onDidChangeTextDocument(listener) { + return this.original.onDidChangeTextDocument(listener); + } + disposeOnExit(...disposables) { + return this.original.disposeOnExit(...disposables); + } +}; + +// ../common/src/util/sleep.ts +var import_util = require("util"); +var sleep = (0, import_util.promisify)(setTimeout); + +// ../common/src/ide/util/messages.ts +function showWarning(messages, id, message, ...options2) { + return messages.showMessage("warning" /* warning */, id, message, ...options2); +} +function showError(messages, id, message, ...options2) { + return messages.showMessage("error" /* error */, id, message, ...options2); +} + +// ../common/src/util/splitKey.ts +function getKey(hatStyle, character) { + return `${hatStyle}.${character}`; +} + +// ../common/src/util/timeUtils.ts +var nanosecondsPerSecond = BigInt(1e9); +function hrtimeBigintToSeconds(nanoseconds, precision = BigInt(1e6)) { + return Number(nanoseconds * precision / nanosecondsPerSecond) / Number(precision); +} + +// ../common/src/util/walkAsync.ts +var path = __toESM(require("path"), 1); +var import_promises = require("fs/promises"); +var import_lodash5 = __toESM(require_lodash(), 1); +var walkFiles = async (dir, fileEnding) => { + const dirEntries = await (0, import_promises.readdir)(dir, { withFileTypes: true }); + const files = (0, import_lodash5.flatten)( + await Promise.all( + dirEntries.map(async (dirent) => { + const filePath = path.join(dir, dirent.name); + return dirent.isDirectory() ? await walkFiles(filePath) : [filePath]; + }) + ) + ); + if (fileEnding != null) { + return files.filter((file) => file.endsWith(fileEnding)); + } + return files; +}; + +// ../common/src/util/disposableFrom.ts +function disposableFrom(...disposables) { + return { + dispose() { + disposables.forEach(({ dispose }) => { + try { + dispose(); + } catch (e) { + console.error(e); + } + }); + } + }; +} + +// ../common/src/util/camelCaseToAllDown.ts +function camelCaseToAllDown(input) { + return input.replace(/([A-Z])/g, " $1").split(" ").map((word) => word.toLowerCase()).join(" "); +} + +// ../common/src/types/Position.ts +var Position = class _Position { + /** + * @param line A zero-based line value. + * @param character A zero-based character value. + */ + constructor(line, character) { + this.line = line; + this.character = character; + } + /** + * Check if this position is equal to `other`. + * + * @param other A position. + * @return `true` if the line and character of the given position are equal to + * the line and character of this position. + */ + isEqual(other) { + return this.line === other.line && this.character === other.character; + } + /** + * Check if this position is before `other`. + * + * @param other A position. + * @return `true` if position is on a smaller line + * or on the same line on a smaller character. + */ + isBefore(other) { + if (this.line < other.line) { + return true; + } + if (this.line > other.line) { + return false; + } + return this.character < other.character; + } + /** + * Check if this position is after `other`. + * + * @param other A position. + * @return `true` if position is on a greater line + * or on the same line on a greater character. + */ + isAfter(other) { + if (this.line > other.line) { + return true; + } + if (this.line < other.line) { + return false; + } + return this.character > other.character; + } + /** + * Check if this position is before or equal to `other`. + * + * @param other A position. + * @return `true` if position is on a smaller line + * or on the same line on a smaller or equal character. + */ + isBeforeOrEqual(other) { + return this.isEqual(other) || this.isBefore(other); + } + /** + * Check if this position is after or equal to `other`. + * + * @param other A position. + * @return `true` if position is on a greater line + * or on the same line on a greater or equal character. + */ + isAfterOrEqual(other) { + return this.isEqual(other) || this.isAfter(other); + } + /** + * Compare this to `other`. + * + * @param other A position. + * @return A number smaller than zero if this position is before the given position, + * a number greater than zero if this position is after the given position, or zero when + * this and the given position are equal. + */ + compareTo(other) { + if (this.isBefore(other)) { + return -1; + } + if (this.isAfter(other)) { + return 1; + } + return 0; + } + /** + * Create a new position derived from this position. + * + * @param line Value that should be used as line value, default is the {@link Position.line existing value} + * @param character Value that should be used as character value, default is the {@link Position.character existing value} + * @return A position where line and character are replaced by the given values. + */ + with(line, character) { + return new _Position(line ?? this.line, character ?? this.character); + } + /** + * Create a new position relative to this position. + * + * @param lineDelta Delta value for the line value, default is `0`. + * @param characterDelta Delta value for the character value, default is `0`. + * @return A position which line and character is the sum of the current line and + * character and the corresponding deltas. + */ + translate(lineDelta, characterDelta) { + return new _Position( + this.line + (lineDelta ?? 0), + this.character + (characterDelta ?? 0) + ); + } + /** + * Create a new empty range from this position. + * @returns A {@link Range} + */ + toEmptyRange() { + return new Range(this, this); + } + /** + * Return a concise string representation of the position. + * @returns concise representation + **/ + concise() { + return `${this.line}:${this.character}`; + } + toString() { + return this.concise(); + } +}; +function adjustPosition(doc, pos, by) { + return doc.positionAt(doc.offsetAt(pos) + by); +} + +// ../common/src/types/Range.ts +var Range = class _Range { + constructor(...args) { + const [p1, p2] = (() => { + if (args.length === 2) { + return args; + } + return [new Position(args[0], args[1]), new Position(args[2], args[3])]; + })(); + if (p1.isBefore(p2)) { + this.start = p1; + this.end = p2; + } else { + this.start = p2; + this.end = p1; + } + } + /** + * `true` if `start` and `end` are equal. + */ + get isEmpty() { + return this.start.isEqual(this.end); + } + /** + * `true` if `start.line` and `end.line` are equal. + */ + get isSingleLine() { + return this.start.line === this.end.line; + } + /** + * Check if `other` equals this range. + * + * @param other A range. + * @return `true` when start and end are {@link Position.isEqual equal} to + * start and end of this range. + */ + isRangeEqual(other) { + return this.start.isEqual(other.start) && this.end.isEqual(other.end); + } + /** + * Check if a position or a range is contained in this range. + * + * @param positionOrRange A position or a range. + * @return `true` if the position or range is inside or equal + * to this range. + */ + contains(positionOrRange) { + const [start, end] = positionOrRange instanceof Position ? [positionOrRange, positionOrRange] : [positionOrRange.start, positionOrRange.end]; + return start.isAfterOrEqual(this.start) && end.isBeforeOrEqual(this.end); + } + /** + * Intersect `range` with this range and returns a new range. + * If the ranges are adjacent but non-overlapping, the resulting range is empty. + * If the ranges have no overlap and are not adjacent, it returns `undefined`. + * + * @param other A range. + * @return A range of the greater start and smaller end positions. Will + * return undefined when there is no overlap. + */ + intersection(other) { + const start = this.start.isAfter(other.start) ? this.start : other.start; + const end = this.end.isBefore(other.end) ? this.end : other.end; + return start.isBeforeOrEqual(end) ? new _Range(start, end) : void 0; + } + /** + * Compute the union of `other` with this range. + * + * @param other A range. + * @return A range of smaller start position and the greater end position. + */ + union(other) { + return new _Range( + this.start.isBefore(other.start) ? this.start : other.start, + this.end.isAfter(other.end) ? this.end : other.end + ); + } + /** + * Derive a new range from this range. + * If the resulting range has end before start, they are swapped. + * + * @param start A position that should be used as start. The default value is the {@link Range.start current start}. + * @param end A position that should be used as end. The default value is the {@link Range.end current end}. + * @return A range derived from this range with the given start and end position. + */ + with(start, end) { + return new _Range(start ?? this.start, end ?? this.end); + } + /** + * Construct a new selection from this range + * @param isReversed If true active is before anchor + * @returns A new selection + */ + toSelection(isReversed) { + return isReversed ? new Selection(this.end, this.start) : new Selection(this.start, this.end); + } + /** + * Return a concise string representation of the range + * @returns concise representation + **/ + concise() { + return `${this.start.concise()}-${this.end.concise()}`; + } + toString() { + return this.concise(); + } +}; + +// ../common/src/types/Selection.ts +var Selection = class extends Range { + /** + * Is true if active position is before anchor position. + */ + get isReversed() { + return this.active.isBefore(this.anchor); + } + constructor(...args) { + const [anchor, active] = (() => { + if (args.length === 2) { + return args; + } + return [new Position(args[0], args[1]), new Position(args[2], args[3])]; + })(); + super(anchor, active); + this.anchor = anchor; + this.active = active; + } + /** + * Check if `other` equals this range. + * + * @param other A selection. + * @return `true` when anchor and active are {@link Position.isEqual equal} to + * anchor and active of this range. + */ + isEqual(other) { + return this.anchor.isEqual(other.anchor) && this.active.isEqual(other.active); + } + /** + * Return a concise string representation of the selection + * @returns concise representation + **/ + concise() { + return `${this.anchor.concise()}->${this.active.concise()}`; + } + toString() { + return this.concise(); + } +}; + +// ../common/src/util/textFormatters.ts +var textFormatters = { + camelCase(tokens) { + if (tokens.length === 0) { + return ""; + } + const [first, ...rest] = tokens; + return first + rest.map(capitalizeToken).join(""); + }, + snakeCase(tokens) { + return tokens.join("_"); + }, + upperSnakeCase(tokens) { + return tokens.map((token) => token.toUpperCase()).join("_"); + }, + pascalCase(tokens) { + return tokens.map(capitalizeToken).join(""); + } +}; +function capitalizeToken(token) { + return token.length === 0 ? "" : token[0].toUpperCase() + token.substr(1); +} + +// ../common/src/testUtil/fromPlainObject.ts +function plainObjectToPosition({ + line, + character +}) { + return new Position(line, character); +} +function plainObjectToRange({ start, end }) { + return new Range(plainObjectToPosition(start), plainObjectToPosition(end)); +} + +// ../common/src/types/GeneralizedRange.ts +function toLineRange(range4) { + return { type: "line", start: range4.start.line, end: range4.end.line }; +} +function toCharacterRange({ start, end }) { + return { type: "character", start, end }; +} + +// ../common/src/util/toPlainObject.ts +function rangeToPlainObject(range4) { + return { + start: positionToPlainObject(range4.start), + end: positionToPlainObject(range4.end) + }; +} +function selectionToPlainObject(selection) { + return { + anchor: positionToPlainObject(selection.anchor), + active: positionToPlainObject(selection.active) + }; +} +function positionToPlainObject({ + line, + character +}) { + return { line, character }; +} + +// ../common/src/util/DefaultMap.ts +var DefaultMap = class extends Map { + /** + * @param getDefaultValue A function that returns the default value for a given key + */ + constructor(getDefaultValue) { + super(); + this.getDefaultValue = getDefaultValue; + } + get(key) { + const currentValue = super.get(key); + if (currentValue != null) { + return currentValue; + } + const value = this.getDefaultValue(key); + this.set(key, value); + return value; + } +}; + +// ../common/src/util/omitByDeep.ts +var import_lodash6 = __toESM(require_lodash(), 1); + +// ../common/src/util/range.ts +var import_lodash7 = __toESM(require_lodash(), 1); + +// ../common/src/util/uniqWithHash.ts +var import_lodash8 = __toESM(require_lodash(), 1); +function uniqWithHash(array, isEqual5, hash) { + if (array.length < 2) { + return [...array]; + } + if (array.length === 2) { + if (isEqual5(array[0], array[1])) { + return [array[0]]; + } + return [...array]; + } + const needsUniq = []; + const hashToItems = array.reduce((acc, item) => { + const key = hash(item); + const items = acc.get(key); + if (items == null) { + acc.set(key, [item]); + return acc; + } + acc.get(key).push(item); + if (items.length === 2) { + needsUniq.push(key); + } + return acc; + }, /* @__PURE__ */ new Map()); + if (needsUniq.length === 0) { + return [...array]; + } + needsUniq.forEach((key) => { + hashToItems.set(key, (0, import_lodash8.uniqWith)(hashToItems.get(key), isEqual5)); + }); + return array.flatMap((item) => { + const key = hash(item); + const items = hashToItems.get(key); + if (items == null || items.length === 0) { + return []; + } + const first = items[0]; + if (!isEqual5(first, item)) { + return []; + } + items.shift(); + return first; + }); +} + +// ../common/src/testUtil/isTesting.ts +var isTesting = () => process.env.CURSORLESS_TEST != null; + +// ../common/src/testUtil/getFixturePaths.ts +var path2 = __toESM(require("path"), 1); + +// ../common/src/testUtil/getCursorlessRepoRoot.ts +function getCursorlessRepoRoot() { + const root = process.env["CURSORLESS_REPO_ROOT"]; + if (root == null) { + throw new Error( + "CURSORLESS_REPO_ROOT environment variable must be set to run this script" + ); + } + return root; +} + +// ../common/src/testUtil/getFixturePaths.ts +function getFixturesPath() { + return path2.join(getCursorlessRepoRoot(), "data", "fixtures"); +} +function getFixturePath(fixturePath) { + return path2.join(getFixturesPath(), fixturePath); +} + +// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs +function isNothing(subject) { + return typeof subject === "undefined" || subject === null; +} +function isObject(subject) { + return typeof subject === "object" && subject !== null; +} +function toArray(sequence) { + if (Array.isArray(sequence)) + return sequence; + else if (isNothing(sequence)) + return []; + return [sequence]; +} +function extend(target, source) { + var index, length, key, sourceKeys; + if (source) { + sourceKeys = Object.keys(source); + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + return target; +} +function repeat(string2, count2) { + var result = "", cycle; + for (cycle = 0; cycle < count2; cycle += 1) { + result += string2; + } + return result; +} +function isNegativeZero(number) { + return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; +} +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 +}; +function formatError(exception2, compact) { + var where = "", message = exception2.reason || "(unknown reason)"; + if (!exception2.mark) + return message; + if (exception2.mark.name) { + where += 'in "' + exception2.mark.name + '" '; + } + where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; + if (!compact && exception2.mark.snippet) { + where += "\n\n" + exception2.mark.snippet; + } + return message + " " + where; +} +function YAMLException$1(reason, mark) { + Error.call(this); + this.name = "YAMLException"; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error().stack || ""; + } +} +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ": " + formatError(this, compact); +}; +var exception = YAMLException$1; +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ""; + var tail = ""; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + if (position - lineStart > maxHalfLength) { + head = " ... "; + lineStart = position - maxHalfLength + head.length; + } + if (lineEnd - position > maxHalfLength) { + tail = " ..."; + lineEnd = position + maxHalfLength - tail.length; + } + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, + pos: position - lineStart + head.length + // relative position + }; +} +function padStart(string2, max2) { + return common.repeat(" ", max2 - string2.length) + string2; +} +function makeSnippet(mark, options2) { + options2 = Object.create(options2 || null); + if (!mark.buffer) + return null; + if (!options2.maxLength) + options2.maxLength = 79; + if (typeof options2.indent !== "number") + options2.indent = 1; + if (typeof options2.linesBefore !== "number") + options2.linesBefore = 3; + if (typeof options2.linesAfter !== "number") + options2.linesAfter = 2; + var re = /\r?\n|\r|\0/g; + var lineStarts = [0]; + var lineEnds = []; + var match2; + var foundLineNo = -1; + while (match2 = re.exec(mark.buffer)) { + lineEnds.push(match2.index); + lineStarts.push(match2.index + match2[0].length); + if (mark.position <= match2.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + if (foundLineNo < 0) + foundLineNo = lineStarts.length - 1; + var result = "", i, line; + var lineNoLength = Math.min(mark.line + options2.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options2.maxLength - (options2.indent + lineNoLength + 3); + for (i = 1; i <= options2.linesBefore; i++) { + if (foundLineNo - i < 0) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(" ", options2.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result; + } + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(" ", options2.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + result += common.repeat("-", options2.indent + lineNoLength + 3 + line.pos) + "^\n"; + for (i = 1; i <= options2.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(" ", options2.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + } + return result.replace(/\n$/, ""); +} +var snippet = makeSnippet; +var TYPE_CONSTRUCTOR_OPTIONS = [ + "kind", + "multi", + "resolve", + "construct", + "instanceOf", + "predicate", + "represent", + "representName", + "defaultStyle", + "styleAliases" +]; +var YAML_NODE_KINDS = [ + "scalar", + "sequence", + "mapping" +]; +function compileStyleAliases(map4) { + var result = {}; + if (map4 !== null) { + Object.keys(map4).forEach(function(style) { + map4[style].forEach(function(alias) { + result[String(alias)] = style; + }); + }); + } + return result; +} +function Type$1(tag, options2) { + options2 = options2 || {}; + Object.keys(options2).forEach(function(name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + this.options = options2; + this.tag = tag; + this.kind = options2["kind"] || null; + this.resolve = options2["resolve"] || function() { + return true; + }; + this.construct = options2["construct"] || function(data) { + return data; + }; + this.instanceOf = options2["instanceOf"] || null; + this.predicate = options2["predicate"] || null; + this.represent = options2["represent"] || null; + this.representName = options2["representName"] || null; + this.defaultStyle = options2["defaultStyle"] || null; + this.multi = options2["multi"] || false; + this.styleAliases = compileStyleAliases(options2["styleAliases"] || null); + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} +var type = Type$1; +function compileList(schema3, name) { + var result = []; + schema3[name].forEach(function(currentType) { + var newIndex = result.length; + result.forEach(function(previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { + newIndex = previousIndex; + } + }); + result[newIndex] = currentType; + }); + return result; +} +function compileMap() { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + function collectType(type2) { + if (type2.multi) { + result.multi[type2.kind].push(type2); + result.multi["fallback"].push(type2); + } else { + result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; + } + } + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} +function Schema$1(definition) { + return this.extend(definition); +} +Schema$1.prototype.extend = function extend2(definition) { + var implicit = []; + var explicit = []; + if (definition instanceof type) { + explicit.push(definition); + } else if (Array.isArray(definition)) { + explicit = explicit.concat(definition); + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + if (definition.implicit) + implicit = implicit.concat(definition.implicit); + if (definition.explicit) + explicit = explicit.concat(definition.explicit); + } else { + throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); + } + implicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + if (type$1.loadKind && type$1.loadKind !== "scalar") { + throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); + } + if (type$1.multi) { + throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); + } + }); + explicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + }); + var result = Object.create(Schema$1.prototype); + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + result.compiledImplicit = compileList(result, "implicit"); + result.compiledExplicit = compileList(result, "explicit"); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + return result; +}; +var schema = Schema$1; +var str = new type("tag:yaml.org,2002:str", { + kind: "scalar", + construct: function(data) { + return data !== null ? data : ""; + } +}); +var seq = new type("tag:yaml.org,2002:seq", { + kind: "sequence", + construct: function(data) { + return data !== null ? data : []; + } +}); +var map = new type("tag:yaml.org,2002:map", { + kind: "mapping", + construct: function(data) { + return data !== null ? data : {}; + } +}); +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); +function resolveYamlNull(data) { + if (data === null) + return true; + var max2 = data.length; + return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL"); +} +function constructYamlNull() { + return null; +} +function isNull(object) { + return object === null; +} +var _null = new type("tag:yaml.org,2002:null", { + kind: "scalar", + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function() { + return "~"; + }, + lowercase: function() { + return "null"; + }, + uppercase: function() { + return "NULL"; + }, + camelcase: function() { + return "Null"; + }, + empty: function() { + return ""; + } + }, + defaultStyle: "lowercase" +}); +function resolveYamlBoolean(data) { + if (data === null) + return false; + var max2 = data.length; + return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE"); +} +function constructYamlBoolean(data) { + return data === "true" || data === "True" || data === "TRUE"; +} +function isBoolean(object) { + return Object.prototype.toString.call(object) === "[object Boolean]"; +} +var bool = new type("tag:yaml.org,2002:bool", { + kind: "scalar", + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function(object) { + return object ? "true" : "false"; + }, + uppercase: function(object) { + return object ? "TRUE" : "FALSE"; + }, + camelcase: function(object) { + return object ? "True" : "False"; + } + }, + defaultStyle: "lowercase" +}); +function isHexCode(c) { + return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; +} +function isOctCode(c) { + return 48 <= c && c <= 55; +} +function isDecCode(c) { + return 48 <= c && c <= 57; +} +function resolveYamlInteger(data) { + if (data === null) + return false; + var max2 = data.length, index = 0, hasDigits = false, ch; + if (!max2) + return false; + ch = data[index]; + if (ch === "-" || ch === "+") { + ch = data[++index]; + } + if (ch === "0") { + if (index + 1 === max2) + return true; + ch = data[++index]; + if (ch === "b") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (ch !== "0" && ch !== "1") + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "x") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isHexCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "o") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isOctCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + } + if (ch === "_") + return false; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + if (!hasDigits || ch === "_") + return false; + return true; +} +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + if (value.indexOf("_") !== -1) { + value = value.replace(/_/g, ""); + } + ch = value[0]; + if (ch === "-" || ch === "+") { + if (ch === "-") + sign = -1; + value = value.slice(1); + ch = value[0]; + } + if (value === "0") + return 0; + if (ch === "0") { + if (value[1] === "b") + return sign * parseInt(value.slice(2), 2); + if (value[1] === "x") + return sign * parseInt(value.slice(2), 16); + if (value[1] === "o") + return sign * parseInt(value.slice(2), 8); + } + return sign * parseInt(value, 10); +} +function isInteger(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); +} +var int = new type("tag:yaml.org,2002:int", { + kind: "scalar", + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function(obj) { + return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); + }, + octal: function(obj) { + return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); + }, + decimal: function(obj) { + return obj.toString(10); + }, + /* eslint-disable max-len */ + hexadecimal: function(obj) { + return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); + } + }, + defaultStyle: "decimal", + styleAliases: { + binary: [2, "bin"], + octal: [8, "oct"], + decimal: [10, "dec"], + hexadecimal: [16, "hex"] + } +}); +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" +); +function resolveYamlFloat(data) { + if (data === null) + return false; + if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === "_") { + return false; + } + return true; +} +function constructYamlFloat(data) { + var value, sign; + value = data.replace(/_/g, "").toLowerCase(); + sign = value[0] === "-" ? -1 : 1; + if ("+-".indexOf(value[0]) >= 0) { + value = value.slice(1); + } + if (value === ".inf") { + return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + } else if (value === ".nan") { + return NaN; + } + return sign * parseFloat(value, 10); +} +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; +function representYamlFloat(object, style) { + var res; + if (isNaN(object)) { + switch (style) { + case "lowercase": + return ".nan"; + case "uppercase": + return ".NAN"; + case "camelcase": + return ".NaN"; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return ".inf"; + case "uppercase": + return ".INF"; + case "camelcase": + return ".Inf"; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return "-.inf"; + case "uppercase": + return "-.INF"; + case "camelcase": + return "-.Inf"; + } + } else if (common.isNegativeZero(object)) { + return "-0.0"; + } + res = object.toString(10); + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; +} +function isFloat(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); +} +var float = new type("tag:yaml.org,2002:float", { + kind: "scalar", + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: "lowercase" +}); +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); +var core = json; +var YAML_DATE_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" +); +var YAML_TIMESTAMP_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" +); +function resolveYamlTimestamp(data) { + if (data === null) + return false; + if (YAML_DATE_REGEXP.exec(data) !== null) + return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) + return true; + return false; +} +function constructYamlTimestamp(data) { + var match2, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; + match2 = YAML_DATE_REGEXP.exec(data); + if (match2 === null) + match2 = YAML_TIMESTAMP_REGEXP.exec(data); + if (match2 === null) + throw new Error("Date resolve error"); + year = +match2[1]; + month = +match2[2] - 1; + day = +match2[3]; + if (!match2[4]) { + return new Date(Date.UTC(year, month, day)); + } + hour = +match2[4]; + minute = +match2[5]; + second = +match2[6]; + if (match2[7]) { + fraction = match2[7].slice(0, 3); + while (fraction.length < 3) { + fraction += "0"; + } + fraction = +fraction; + } + if (match2[9]) { + tz_hour = +match2[10]; + tz_minute = +(match2[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 6e4; + if (match2[9] === "-") + delta = -delta; + } + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if (delta) + date.setTime(date.getTime() - delta); + return date; +} +function representYamlTimestamp(object) { + return object.toISOString(); +} +var timestamp = new type("tag:yaml.org,2002:timestamp", { + kind: "scalar", + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); +function resolveYamlMerge(data) { + return data === "<<" || data === null; +} +var merge = new type("tag:yaml.org,2002:merge", { + kind: "scalar", + resolve: resolveYamlMerge +}); +var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; +function resolveYamlBinary(data) { + if (data === null) + return false; + var code, idx, bitlen = 0, max2 = data.length, map4 = BASE64_MAP; + for (idx = 0; idx < max2; idx++) { + code = map4.indexOf(data.charAt(idx)); + if (code > 64) + continue; + if (code < 0) + return false; + bitlen += 6; + } + return bitlen % 8 === 0; +} +function constructYamlBinary(data) { + var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map4 = BASE64_MAP, bits = 0, result = []; + for (idx = 0; idx < max2; idx++) { + if (idx % 4 === 0 && idx) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } + bits = bits << 6 | map4.indexOf(input.charAt(idx)); + } + tailbits = max2 % 4 * 6; + if (tailbits === 0) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } else if (tailbits === 18) { + result.push(bits >> 10 & 255); + result.push(bits >> 2 & 255); + } else if (tailbits === 12) { + result.push(bits >> 4 & 255); + } + return new Uint8Array(result); +} +function representYamlBinary(object) { + var result = "", bits = 0, idx, tail, max2 = object.length, map4 = BASE64_MAP; + for (idx = 0; idx < max2; idx++) { + if (idx % 3 === 0 && idx) { + result += map4[bits >> 18 & 63]; + result += map4[bits >> 12 & 63]; + result += map4[bits >> 6 & 63]; + result += map4[bits & 63]; + } + bits = (bits << 8) + object[idx]; + } + tail = max2 % 3; + if (tail === 0) { + result += map4[bits >> 18 & 63]; + result += map4[bits >> 12 & 63]; + result += map4[bits >> 6 & 63]; + result += map4[bits & 63]; + } else if (tail === 2) { + result += map4[bits >> 10 & 63]; + result += map4[bits >> 4 & 63]; + result += map4[bits << 2 & 63]; + result += map4[64]; + } else if (tail === 1) { + result += map4[bits >> 2 & 63]; + result += map4[bits << 4 & 63]; + result += map4[64]; + result += map4[64]; + } + return result; +} +function isBinary(obj) { + return Object.prototype.toString.call(obj) === "[object Uint8Array]"; +} +var binary = new type("tag:yaml.org,2002:binary", { + kind: "scalar", + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; +function resolveYamlOmap(data) { + if (data === null) + return true; + var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + if (_toString$2.call(pair) !== "[object Object]") + return false; + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) + pairHasKey = true; + else + return false; + } + } + if (!pairHasKey) + return false; + if (objectKeys.indexOf(pairKey) === -1) + objectKeys.push(pairKey); + else + return false; + } + return true; +} +function constructYamlOmap(data) { + return data !== null ? data : []; +} +var omap = new type("tag:yaml.org,2002:omap", { + kind: "sequence", + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); +var _toString$1 = Object.prototype.toString; +function resolveYamlPairs(data) { + if (data === null) + return true; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + if (_toString$1.call(pair) !== "[object Object]") + return false; + keys = Object.keys(pair); + if (keys.length !== 1) + return false; + result[index] = [keys[0], pair[keys[0]]]; + } + return true; +} +function constructYamlPairs(data) { + if (data === null) + return []; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + keys = Object.keys(pair); + result[index] = [keys[0], pair[keys[0]]]; + } + return result; +} +var pairs = new type("tag:yaml.org,2002:pairs", { + kind: "sequence", + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; +function resolveYamlSet(data) { + if (data === null) + return true; + var key, object = data; + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) + return false; + } + } + return true; +} +function constructYamlSet(data) { + return data !== null ? data : {}; +} +var set = new type("tag:yaml.org,2002:set", { + kind: "mapping", + resolve: resolveYamlSet, + construct: constructYamlSet +}); +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +function _class(obj) { + return Object.prototype.toString.call(obj); +} +function is_EOL(c) { + return c === 10 || c === 13; +} +function is_WHITE_SPACE(c) { + return c === 9 || c === 32; +} +function is_WS_OR_EOL(c) { + return c === 9 || c === 32 || c === 10 || c === 13; +} +function is_FLOW_INDICATOR(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; +} +function fromHexCode(c) { + var lc; + if (48 <= c && c <= 57) { + return c - 48; + } + lc = c | 32; + if (97 <= lc && lc <= 102) { + return lc - 97 + 10; + } + return -1; +} +function escapedHexLen(c) { + if (c === 120) { + return 2; + } + if (c === 117) { + return 4; + } + if (c === 85) { + return 8; + } + return 0; +} +function fromDecimalCode(c) { + if (48 <= c && c <= 57) { + return c - 48; + } + return -1; +} +function simpleEscapeSequence(c) { + return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; +} +function charFromCodepoint(c) { + if (c <= 65535) { + return String.fromCharCode(c); + } + return String.fromCharCode( + (c - 65536 >> 10) + 55296, + (c - 65536 & 1023) + 56320 + ); +} +var simpleEscapeCheck = new Array(256); +var simpleEscapeMap = new Array(256); +for (i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} +var i; +function State$1(input, options2) { + this.input = input; + this.filename = options2["filename"] || null; + this.schema = options2["schema"] || _default; + this.onWarning = options2["onWarning"] || null; + this.legacy = options2["legacy"] || false; + this.json = options2["json"] || false; + this.listener = options2["listener"] || null; + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + this.firstTabInLine = -1; + this.documents = []; +} +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), + // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + mark.snippet = snippet(mark); + return new exception(message, mark); +} +function throwError(state, message) { + throw generateError(state, message); +} +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} +var directiveHandlers = { + YAML: function handleYamlDirective(state, name, args) { + var match2, major, minor; + if (state.version !== null) { + throwError(state, "duplication of %YAML directive"); + } + if (args.length !== 1) { + throwError(state, "YAML directive accepts exactly one argument"); + } + match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + if (match2 === null) { + throwError(state, "ill-formed argument of the YAML directive"); + } + major = parseInt(match2[1], 10); + minor = parseInt(match2[2], 10); + if (major !== 1) { + throwError(state, "unacceptable YAML version of the document"); + } + state.version = args[0]; + state.checkLineBreaks = minor < 2; + if (minor !== 1 && minor !== 2) { + throwWarning(state, "unsupported YAML version of the document"); + } + }, + TAG: function handleTagDirective(state, name, args) { + var handle, prefix; + if (args.length !== 2) { + throwError(state, "TAG directive accepts exactly two arguments"); + } + handle = args[0]; + prefix = args[1]; + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, "ill-formed tag handle (first argument) of the TAG directive"); + } + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, "ill-formed tag prefix (second argument) of the TAG directive"); + } + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, "tag prefix is malformed: " + prefix); + } + state.tagMap[handle] = prefix; + } +}; +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + if (start < end) { + _result = state.input.slice(start, end); + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { + throwError(state, "expected valid JSON character"); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, "the stream contains non-printable characters"); + } + state.result += _result; + } +} +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + if (!common.isObject(source)) { + throwError(state, "cannot merge mappings; the provided source object is unacceptable"); + } + sourceKeys = Object.keys(source); + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { + var index, quantity; + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, "nested arrays are not supported inside keys"); + } + if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { + keyNode[index] = "[object Object]"; + } + } + } + if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { + keyNode = "[object Object]"; + } + keyNode = String(keyNode); + if (_result === null) { + _result = {}; + } + if (keyTag === "tag:yaml.org,2002:merge") { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, "duplicated mapping key"); + } + if (keyNode === "__proto__") { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + return _result; +} +function readLineBreak(state) { + var ch; + ch = state.input.charCodeAt(state.position); + if (ch === 10) { + state.position++; + } else if (ch === 13) { + state.position++; + if (state.input.charCodeAt(state.position) === 10) { + state.position++; + } + } else { + throwError(state, "a line break is expected"); + } + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 9 && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + if (allowComments && ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 10 && ch !== 13 && ch !== 0); + } + if (is_EOL(ch)) { + readLineBreak(state); + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + while (ch === 32) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, "deficient indentation"); + } + return lineBreaks; +} +function testDocumentSeparator(state) { + var _position = state.position, ch; + ch = state.input.charCodeAt(_position); + if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { + _position += 3; + ch = state.input.charCodeAt(_position); + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + return false; +} +function writeFoldedLines(state, count2) { + if (count2 === 1) { + state.result += " "; + } else if (count2 > 1) { + state.result += common.repeat("\n", count2 - 1); + } +} +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; + ch = state.input.charCodeAt(state.position); + if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { + return false; + } + if (ch === 63 || ch === 45) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + state.kind = "scalar"; + state.result = ""; + captureStart = captureEnd = state.position; + hasPendingContent = false; + while (ch !== 0) { + if (ch === 58) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + } else if (ch === 35) { + preceding = state.input.charCodeAt(state.position - 1); + if (is_WS_OR_EOL(preceding)) { + break; + } + } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + ch = state.input.charCodeAt(++state.position); + } + captureSegment(state, captureStart, captureEnd, false); + if (state.result) { + return true; + } + state.kind = _kind; + state.result = _result; + return false; +} +function readSingleQuotedScalar(state, nodeIndent) { + var ch, captureStart, captureEnd; + ch = state.input.charCodeAt(state.position); + if (ch !== 39) { + return false; + } + state.kind = "scalar"; + state.result = ""; + state.position++; + captureStart = captureEnd = state.position; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 39) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + if (ch === 39) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, "unexpected end of the document within a single quoted scalar"); + } else { + state.position++; + captureEnd = state.position; + } + } + throwError(state, "unexpected end of the stream within a single quoted scalar"); +} +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, captureEnd, hexLength, hexResult, tmp, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 34) { + return false; + } + state.kind = "scalar"; + state.result = ""; + state.position++; + captureStart = captureEnd = state.position; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 34) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + } else if (ch === 92) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + } else { + throwError(state, "expected hexadecimal character"); + } + } + state.result += charFromCodepoint(hexResult); + state.position++; + } else { + throwError(state, "unknown escape sequence"); + } + captureStart = captureEnd = state.position; + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, "unexpected end of the document within a double quoted scalar"); + } else { + state.position++; + captureEnd = state.position; + } + } + throwError(state, "unexpected end of the stream within a double quoted scalar"); +} +function readFlowCollection(state, nodeIndent) { + var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; + ch = state.input.charCodeAt(state.position); + if (ch === 91) { + terminator = 93; + isMapping = false; + _result = []; + } else if (ch === 123) { + terminator = 125; + isMapping = true; + _result = {}; + } else { + return false; + } + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(++state.position); + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? "mapping" : "sequence"; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, "missed comma between flow collection entries"); + } else if (ch === 44) { + throwError(state, "expected the node content, but found ','"); + } + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + if (ch === 63) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + _line = state.line; + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if ((isExplicitPair || state.line === _line) && ch === 58) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if (ch === 44) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + throwError(state, "unexpected end of the stream within a flow collection"); +} +function readBlockScalar(state, nodeIndent) { + var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; + ch = state.input.charCodeAt(state.position); + if (ch === 124) { + folding = false; + } else if (ch === 62) { + folding = true; + } else { + return false; + } + state.kind = "scalar"; + state.result = ""; + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + if (ch === 43 || ch === 45) { + if (CHOMPING_CLIP === chomping) { + chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, "repeat of a chomping mode identifier"); + } + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, "repeat of an indentation width identifier"); + } + } else { + break; + } + } + if (is_WHITE_SPACE(ch)) { + do { + ch = state.input.charCodeAt(++state.position); + } while (is_WHITE_SPACE(ch)); + if (ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (!is_EOL(ch) && ch !== 0); + } + } + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + ch = state.input.charCodeAt(state.position); + while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + if (is_EOL(ch)) { + emptyLines++; + continue; + } + if (state.lineIndent < textIndent) { + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { + state.result += "\n"; + } + } + break; + } + if (folding) { + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat("\n", emptyLines + 1); + } else if (emptyLines === 0) { + if (didReadContent) { + state.result += " "; + } + } else { + state.result += common.repeat("\n", emptyLines); + } + } else { + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + while (!is_EOL(ch) && ch !== 0) { + ch = state.input.charCodeAt(++state.position); + } + captureSegment(state, captureStart, state.position, false); + } + return true; +} +function readBlockSequence(state, nodeIndent) { + var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; + if (state.firstTabInLine !== -1) + return false; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + if (ch !== 45) { + break; + } + following = state.input.charCodeAt(state.position + 1); + if (!is_WS_OR_EOL(following)) { + break; + } + detected = true; + state.position++; + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { + throwError(state, "bad indentation of a sequence entry"); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = "sequence"; + state.result = _result; + return true; + } + return false; +} +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; + if (state.firstTabInLine !== -1) + return false; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + following = state.input.charCodeAt(state.position + 1); + _line = state.line; + if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { + if (ch === 63) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = true; + allowCompact = true; + } else if (atExplicitKey) { + atExplicitKey = false; + allowCompact = true; + } else { + throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); + } + state.position += 1; + ch = following; + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + break; + } + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (ch === 58) { + ch = state.input.charCodeAt(++state.position); + if (!is_WS_OR_EOL(ch)) { + throwError(state, "a whitespace character is expected after the key-value separator within a block mapping"); + } + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + } else if (detected) { + throwError(state, "can not read an implicit mapping pair; a colon is missed"); + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; + } + } else if (detected) { + throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; + } + } + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { + throwError(state, "bad indentation of a mapping entry"); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = "mapping"; + state.result = _result; + } + return detected; +} +function readTagProperty(state) { + var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 33) + return false; + if (state.tag !== null) { + throwError(state, "duplication of a tag property"); + } + ch = state.input.charCodeAt(++state.position); + if (ch === 60) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + } else if (ch === 33) { + isNamed = true; + tagHandle = "!!"; + ch = state.input.charCodeAt(++state.position); + } else { + tagHandle = "!"; + } + _position = state.position; + if (isVerbatim) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0 && ch !== 62); + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, "unexpected end of the stream within a verbatim tag"); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch === 33) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, "named tag handle cannot contain such characters"); + } + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, "tag suffix cannot contain exclamation marks"); + } + } + ch = state.input.charCodeAt(++state.position); + } + tagName = state.input.slice(_position, state.position); + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, "tag suffix cannot contain flow indicator characters"); + } + } + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, "tag name cannot contain such characters: " + tagName); + } + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, "tag name is malformed: " + tagName); + } + if (isVerbatim) { + state.tag = tagName; + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + } else if (tagHandle === "!") { + state.tag = "!" + tagName; + } else if (tagHandle === "!!") { + state.tag = "tag:yaml.org,2002:" + tagName; + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + return true; +} +function readAnchorProperty(state) { + var _position, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 38) + return false; + if (state.anchor !== null) { + throwError(state, "duplication of an anchor property"); + } + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (state.position === _position) { + throwError(state, "name of an anchor node must contain at least one character"); + } + state.anchor = state.input.slice(_position, state.position); + return true; +} +function readAlias(state) { + var _position, alias, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 42) + return false; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (state.position === _position) { + throwError(state, "name of an alias node must contain at least one character"); + } + alias = state.input.slice(_position, state.position); + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; + if (state.listener !== null) { + state.listener("open", state); + } + state.tag = null; + state.anchor = null; + state.kind = null; + state.result = null; + allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; + if (allowToSeek) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + blockIndent = state.position - state.lineStart; + if (indentStatus === 1) { + if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + } else if (readAlias(state)) { + hasContent = true; + if (state.tag !== null || state.anchor !== null) { + throwError(state, "alias node should not have any properties"); + } + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + if (state.tag === null) { + state.tag = "?"; + } + } + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } else if (state.tag === "?") { + if (state.result !== null && state.kind !== "scalar") { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type2 = state.implicitTypes[typeIndex]; + if (type2.resolve(state.result)) { + state.result = type2.construct(state.result); + state.tag = type2.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== "!") { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) { + type2 = state.typeMap[state.kind || "fallback"][state.tag]; + } else { + type2 = null; + typeList = state.typeMap.multi[state.kind || "fallback"]; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type2 = typeList[typeIndex]; + break; + } + } + } + if (!type2) { + throwError(state, "unknown tag !<" + state.tag + ">"); + } + if (state.result !== null && type2.kind !== state.kind) { + throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"'); + } + if (!type2.resolve(state.result, state.tag)) { + throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); + } else { + state.result = type2.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + if (state.listener !== null) { + state.listener("close", state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} +function readDocument(state) { + var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = /* @__PURE__ */ Object.create(null); + state.anchorMap = /* @__PURE__ */ Object.create(null); + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + if (state.lineIndent > 0 || ch !== 37) { + break; + } + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + if (directiveName.length < 1) { + throwError(state, "directive name must not be less than one character in length"); + } + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0 && !is_EOL(ch)); + break; + } + if (is_EOL(ch)) + break; + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + directiveArgs.push(state.input.slice(_position, state.position)); + } + if (ch !== 0) + readLineBreak(state); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + skipSeparationSpace(state, true, -1); + if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } else if (hasDirectives) { + throwError(state, "directives end mark is expected"); + } + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, "non-ASCII line breaks are interpreted as content"); + } + state.documents.push(state.result); + if (state.position === state.lineStart && testDocumentSeparator(state)) { + if (state.input.charCodeAt(state.position) === 46) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + if (state.position < state.length - 1) { + throwError(state, "end of the stream or a document separator is expected"); + } else { + return; + } +} +function loadDocuments(input, options2) { + input = String(input); + options2 = options2 || {}; + if (input.length !== 0) { + if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { + input += "\n"; + } + if (input.charCodeAt(0) === 65279) { + input = input.slice(1); + } + } + var state = new State$1(input, options2); + var nullpos = input.indexOf("\0"); + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, "null byte is not allowed in input"); + } + state.input += "\0"; + while (state.input.charCodeAt(state.position) === 32) { + state.lineIndent += 1; + state.position += 1; + } + while (state.position < state.length - 1) { + readDocument(state); + } + return state.documents; +} +function loadAll$1(input, iterator, options2) { + if (iterator !== null && typeof iterator === "object" && typeof options2 === "undefined") { + options2 = iterator; + iterator = null; + } + var documents = loadDocuments(input, options2); + if (typeof iterator !== "function") { + return documents; + } + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} +function load$1(input, options2) { + var documents = loadDocuments(input, options2); + if (documents.length === 0) { + return void 0; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception("expected a single document in the stream, but found more"); +} +var loadAll_1 = loadAll$1; +var load_1 = load$1; +var loader = { + loadAll: loadAll_1, + load: load_1 +}; +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var CHAR_BOM = 65279; +var CHAR_TAB = 9; +var CHAR_LINE_FEED = 10; +var CHAR_CARRIAGE_RETURN = 13; +var CHAR_SPACE = 32; +var CHAR_EXCLAMATION = 33; +var CHAR_DOUBLE_QUOTE = 34; +var CHAR_SHARP = 35; +var CHAR_PERCENT = 37; +var CHAR_AMPERSAND = 38; +var CHAR_SINGLE_QUOTE = 39; +var CHAR_ASTERISK = 42; +var CHAR_COMMA = 44; +var CHAR_MINUS = 45; +var CHAR_COLON = 58; +var CHAR_EQUALS = 61; +var CHAR_GREATER_THAN = 62; +var CHAR_QUESTION = 63; +var CHAR_COMMERCIAL_AT = 64; +var CHAR_LEFT_SQUARE_BRACKET = 91; +var CHAR_RIGHT_SQUARE_BRACKET = 93; +var CHAR_GRAVE_ACCENT = 96; +var CHAR_LEFT_CURLY_BRACKET = 123; +var CHAR_VERTICAL_LINE = 124; +var CHAR_RIGHT_CURLY_BRACKET = 125; +var ESCAPE_SEQUENCES = {}; +ESCAPE_SEQUENCES[0] = "\\0"; +ESCAPE_SEQUENCES[7] = "\\a"; +ESCAPE_SEQUENCES[8] = "\\b"; +ESCAPE_SEQUENCES[9] = "\\t"; +ESCAPE_SEQUENCES[10] = "\\n"; +ESCAPE_SEQUENCES[11] = "\\v"; +ESCAPE_SEQUENCES[12] = "\\f"; +ESCAPE_SEQUENCES[13] = "\\r"; +ESCAPE_SEQUENCES[27] = "\\e"; +ESCAPE_SEQUENCES[34] = '\\"'; +ESCAPE_SEQUENCES[92] = "\\\\"; +ESCAPE_SEQUENCES[133] = "\\N"; +ESCAPE_SEQUENCES[160] = "\\_"; +ESCAPE_SEQUENCES[8232] = "\\L"; +ESCAPE_SEQUENCES[8233] = "\\P"; +var DEPRECATED_BOOLEANS_SYNTAX = [ + "y", + "Y", + "yes", + "Yes", + "YES", + "on", + "On", + "ON", + "n", + "N", + "no", + "No", + "NO", + "off", + "Off", + "OFF" +]; +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; +function compileStyleMap(schema3, map4) { + var result, keys, index, length, tag, style, type2; + if (map4 === null) + return {}; + result = {}; + keys = Object.keys(map4); + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map4[tag]); + if (tag.slice(0, 2) === "!!") { + tag = "tag:yaml.org,2002:" + tag.slice(2); + } + type2 = schema3.compiledTypeMap["fallback"][tag]; + if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) { + style = type2.styleAliases[style]; + } + result[tag] = style; + } + return result; +} +function encodeHex(character) { + var string2, handle, length; + string2 = character.toString(16).toUpperCase(); + if (character <= 255) { + handle = "x"; + length = 2; + } else if (character <= 65535) { + handle = "u"; + length = 4; + } else if (character <= 4294967295) { + handle = "U"; + length = 8; + } else { + throw new exception("code point within a string may not be greater than 0xFFFFFFFF"); + } + return "\\" + handle + common.repeat("0", length - string2.length) + string2; +} +var QUOTING_TYPE_SINGLE = 1; +var QUOTING_TYPE_DOUBLE = 2; +function State(options2) { + this.schema = options2["schema"] || _default; + this.indent = Math.max(1, options2["indent"] || 2); + this.noArrayIndent = options2["noArrayIndent"] || false; + this.skipInvalid = options2["skipInvalid"] || false; + this.flowLevel = common.isNothing(options2["flowLevel"]) ? -1 : options2["flowLevel"]; + this.styleMap = compileStyleMap(this.schema, options2["styles"] || null); + this.sortKeys = options2["sortKeys"] || false; + this.lineWidth = options2["lineWidth"] || 80; + this.noRefs = options2["noRefs"] || false; + this.noCompatMode = options2["noCompatMode"] || false; + this.condenseFlow = options2["condenseFlow"] || false; + this.quotingType = options2["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options2["forceQuotes"] || false; + this.replacer = typeof options2["replacer"] === "function" ? options2["replacer"] : null; + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + this.tag = null; + this.result = ""; + this.duplicates = []; + this.usedDuplicates = null; +} +function indentString(string2, spaces) { + var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string2.length; + while (position < length) { + next = string2.indexOf("\n", position); + if (next === -1) { + line = string2.slice(position); + position = length; + } else { + line = string2.slice(position, next + 1); + position = next + 1; + } + if (line.length && line !== "\n") + result += ind; + result += line; + } + return result; +} +function generateNextLine(state, level) { + return "\n" + common.repeat(" ", state.indent * level); +} +function testImplicitResolving(state, str2) { + var index, length, type2; + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type2 = state.implicitTypes[index]; + if (type2.resolve(str2)) { + return true; + } + } + return false; +} +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} +function isPrintable(c) { + return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111; +} +function isNsCharOrWhitespace(c) { + return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; +} +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + (inblock ? ( + // c = flow-in + cIsNsCharOrWhitespace + ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar + ); +} +function isPlainSafeFirst(c) { + return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; +} +function isPlainSafeLast(c) { + return !isWhitespace(c) && c !== CHAR_COLON; +} +function codePointAt(string2, pos) { + var first = string2.charCodeAt(pos), second; + if (first >= 55296 && first <= 56319 && pos + 1 < string2.length) { + second = string2.charCodeAt(pos + 1); + if (second >= 56320 && second <= 57343) { + return (first - 55296) * 1024 + second - 56320 + 65536; + } + } + return first; +} +function needIndentIndicator(string2) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string2); +} +var STYLE_PLAIN = 1; +var STYLE_SINGLE = 2; +var STYLE_LITERAL = 3; +var STYLE_FOLDED = 4; +var STYLE_DOUBLE = 5; +function chooseScalarStyle(string2, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; + var plain = isPlainSafeFirst(codePointAt(string2, 0)) && isPlainSafeLast(codePointAt(string2, string2.length - 1)); + if (singleLineOnly || forceQuotes) { + for (i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string2, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + for (i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string2, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. + i - previousLineBreak - 1 > lineWidth && string2[previousLineBreak + 1] !== " "; + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string2[previousLineBreak + 1] !== " "); + } + if (!hasLineBreak && !hasFoldableLine) { + if (plain && !forceQuotes && !testAmbiguousType(string2)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + if (indentPerLevel > 9 && needIndentIndicator(string2)) { + return STYLE_DOUBLE; + } + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} +function writeScalar(state, string2, level, iskey, inblock) { + state.dump = function() { + if (string2.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string2) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string2)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string2 + '"' : "'" + string2 + "'"; + } + } + var indent = state.indent * Math.max(1, level); + var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; + function testAmbiguity(string3) { + return testImplicitResolving(state, string3); + } + switch (chooseScalarStyle( + string2, + singleLineOnly, + state.indent, + lineWidth, + testAmbiguity, + state.quotingType, + state.forceQuotes && !iskey, + inblock + )) { + case STYLE_PLAIN: + return string2; + case STYLE_SINGLE: + return "'" + string2.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return "|" + blockHeader(string2, state.indent) + dropEndingNewline(indentString(string2, indent)); + case STYLE_FOLDED: + return ">" + blockHeader(string2, state.indent) + dropEndingNewline(indentString(foldString(string2, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string2) + '"'; + default: + throw new exception("impossible error: invalid scalar style"); + } + }(); +} +function blockHeader(string2, indentPerLevel) { + var indentIndicator = needIndentIndicator(string2) ? String(indentPerLevel) : ""; + var clip = string2[string2.length - 1] === "\n"; + var keep = clip && (string2[string2.length - 2] === "\n" || string2 === "\n"); + var chomp = keep ? "+" : clip ? "" : "-"; + return indentIndicator + chomp + "\n"; +} +function dropEndingNewline(string2) { + return string2[string2.length - 1] === "\n" ? string2.slice(0, -1) : string2; +} +function foldString(string2, width) { + var lineRe = /(\n+)([^\n]*)/g; + var result = function() { + var nextLF = string2.indexOf("\n"); + nextLF = nextLF !== -1 ? nextLF : string2.length; + lineRe.lastIndex = nextLF; + return foldLine(string2.slice(0, nextLF), width); + }(); + var prevMoreIndented = string2[0] === "\n" || string2[0] === " "; + var moreIndented; + var match2; + while (match2 = lineRe.exec(string2)) { + var prefix = match2[1], line = match2[2]; + moreIndented = line[0] === " "; + result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width); + prevMoreIndented = moreIndented; + } + return result; +} +function foldLine(line, width) { + if (line === "" || line[0] === " ") + return line; + var breakRe = / [^ ]/g; + var match2; + var start = 0, end, curr = 0, next = 0; + var result = ""; + while (match2 = breakRe.exec(line)) { + next = match2.index; + if (next - start > width) { + end = curr > start ? curr : next; + result += "\n" + line.slice(start, end); + start = end + 1; + } + curr = next; + } + result += "\n"; + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + "\n" + line.slice(curr + 1); + } else { + result += line.slice(start); + } + return result.slice(1); +} +function escapeString(string2) { + var result = ""; + var char = 0; + var escapeSeq; + for (var i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string2, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + if (!escapeSeq && isPrintable(char)) { + result += string2[i]; + if (char >= 65536) + result += string2[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + return result; +} +function writeFlowSequence(state, level, object) { + var _result = "", _tag = state.tag, index, length, value; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) { + if (_result !== "") + _result += "," + (!state.condenseFlow ? " " : ""); + _result += state.dump; + } + } + state.tag = _tag; + state.dump = "[" + _result + "]"; +} +function writeBlockSequence(state, level, object, compact) { + var _result = "", _tag = state.tag, index, length, value; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) { + if (!compact || _result !== "") { + _result += generateNextLine(state, level); + } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += "-"; + } else { + _result += "- "; + } + _result += state.dump; + } + } + state.tag = _tag; + state.dump = _result || "[]"; +} +function writeFlowMapping(state, level, object) { + var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer; + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ""; + if (_result !== "") + pairBuffer += ", "; + if (state.condenseFlow) + pairBuffer += '"'; + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + if (!writeNode(state, level, objectKey, false, false)) { + continue; + } + if (state.dump.length > 1024) + pairBuffer += "? "; + pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); + if (!writeNode(state, level, objectValue, false, false)) { + continue; + } + pairBuffer += state.dump; + _result += pairBuffer; + } + state.tag = _tag; + state.dump = "{" + _result + "}"; +} +function writeBlockMapping(state, level, object, compact) { + var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer; + if (state.sortKeys === true) { + objectKeyList.sort(); + } else if (typeof state.sortKeys === "function") { + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + throw new exception("sortKeys must be a boolean or a function"); + } + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ""; + if (!compact || _result !== "") { + pairBuffer += generateNextLine(state, level); + } + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; + } + explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += "?"; + } else { + pairBuffer += "? "; + } + } + pairBuffer += state.dump; + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; + } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ":"; + } else { + pairBuffer += ": "; + } + pairBuffer += state.dump; + _result += pairBuffer; + } + state.tag = _tag; + state.dump = _result || "{}"; +} +function detectType(state, object, explicit) { + var _result, typeList, index, length, type2, style; + typeList = explicit ? state.explicitTypes : state.implicitTypes; + for (index = 0, length = typeList.length; index < length; index += 1) { + type2 = typeList[index]; + if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { + if (explicit) { + if (type2.multi && type2.representName) { + state.tag = type2.representName(object); + } else { + state.tag = type2.tag; + } + } else { + state.tag = "?"; + } + if (type2.represent) { + style = state.styleMap[type2.tag] || type2.defaultStyle; + if (_toString.call(type2.represent) === "[object Function]") { + _result = type2.represent(object, style); + } else if (_hasOwnProperty.call(type2.represent, style)) { + _result = type2.represent[style](object, style); + } else { + throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); + } + state.dump = _result; + } + return true; + } + } + return false; +} +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + var type2 = _toString.call(state.dump); + var inblock = block; + var tagStr; + if (block) { + block = state.flowLevel < 0 || state.flowLevel > level; + } + var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { + compact = false; + } + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = "*ref_" + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type2 === "[object Object]") { + if (block && Object.keys(state.dump).length !== 0) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + " " + state.dump; + } + } + } else if (type2 === "[object Array]") { + if (block && state.dump.length !== 0) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + " " + state.dump; + } + } + } else if (type2 === "[object String]") { + if (state.tag !== "?") { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type2 === "[object Undefined]") { + return false; + } else { + if (state.skipInvalid) + return false; + throw new exception("unacceptable kind of an object to dump " + type2); + } + if (state.tag !== null && state.tag !== "?") { + tagStr = encodeURI( + state.tag[0] === "!" ? state.tag.slice(1) : state.tag + ).replace(/!/g, "%21"); + if (state.tag[0] === "!") { + tagStr = "!" + tagStr; + } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { + tagStr = "!!" + tagStr.slice(18); + } else { + tagStr = "!<" + tagStr + ">"; + } + state.dump = tagStr + " " + state.dump; + } + } + return true; +} +function getDuplicateReferences(object, state) { + var objects = [], duplicatesIndexes = [], index, length; + inspectNode(object, objects, duplicatesIndexes); + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, index, length; + if (object !== null && typeof object === "object") { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} +function dump$1(input, options2) { + options2 = options2 || {}; + var state = new State(options2); + if (!state.noRefs) + getDuplicateReferences(input, state); + var value = input; + if (state.replacer) { + value = state.replacer.call({ "": value }, "", value); + } + if (writeNode(state, 0, value, true, true)) + return state.dump + "\n"; + return ""; +} +var dump_1 = dump$1; +var dumper = { + dump: dump_1 +}; +function renamed(from, to) { + return function() { + throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default."); + }; +} +var Type = type; +var DEFAULT_SCHEMA = _default; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var safeLoad = renamed("safeLoad", "load"); +var safeLoadAll = renamed("safeLoadAll", "loadAll"); +var safeDump = renamed("safeDump", "dump"); + +// ../common/src/testUtil/serialize.ts +var CustomDump = class { + constructor(data, opts) { + this.data = data; + this.opts = opts; + } + represent() { + let result = dump( + this.data, + Object.assign({ replacer, schema: schema2 }, this.opts) + ); + result = result.trim(); + if (result.includes("\n")) { + result = "\n" + result; + } + return result; + } +}; +var customDumpType = new Type("!format", { + kind: "scalar", + resolve: () => false, + instanceOf: CustomDump, + represent: (d) => d.represent() +}); +var schema2 = DEFAULT_SCHEMA.extend({ implicit: [customDumpType] }); +var isObject2 = (value) => typeof value === "object" && value != null; +function hasSimpleChildren(value) { + if (isObject2(value)) { + return Object.values(value).every( + (value2) => !isObject2(value2) && !Array.isArray(value2) + ); + } + if (Array.isArray(value)) { + return value.every((value2) => !isObject2(value2) && !Array.isArray(value2)); + } +} +function replacer(key, value) { + if (key === "") { + return value; + } + if (hasSimpleChildren(value)) { + return new CustomDump(value, { flowLevel: 0 }); + } + return value; +} + +// ../common/src/errors.ts +var UnsupportedLanguageError = class extends Error { + constructor(languageId) { + super( + `Language '${languageId}' is not implemented yet; See https://www.cursorless.org/docs/contributing/adding-a-new-language/` + ); + this.name = "UnsupportedLanguageError"; + } +}; +var OutdatedExtensionError = class extends Error { + constructor() { + super( + "Cursorless Talon version is ahead of Cursorless VSCode extension version. Please update Cursorless VSCode." + ); + } +}; +var NoContainingScopeError = class extends Error { + /** + * + * @param scopeType The scopeType for the failed match to show to the user + */ + constructor(scopeType) { + super(`Couldn't find containing ${scopeType}.`); + this.name = "NoContainingScopeError"; + } +}; + +// ../common/src/util/CompositeKeyMap.ts +var CompositeKeyMap = class { + /** + * + * @param hashFunction A function that maps from a key to a list whose entries can be converted to string + */ + constructor(hashFunction) { + this.hashFunction = hashFunction; + this.map = {}; + } + hash(key) { + return this.hashFunction(key).join("\0"); + } + set(key, item) { + this.map[this.hash(key)] = item; + return this; + } + has(key) { + return this.hash(key) in this.map; + } + get(key) { + return this.map[this.hash(key)]; + } + delete(key) { + delete this.map[this.hash(key)]; + return this; + } + clear() { + this.map = {}; + return this; + } +}; + +// ../common/src/ide/normalized/NormalizedIDE.ts +var NormalizedIDE = class extends PassthroughIDEBase { + constructor(original, fakeIde, isSilent) { + super(original); + this.fakeIde = fakeIde; + this.isSilent = isSilent; + this.messages = isSilent ? fakeIde.messages : original.messages; + this.configuration = fakeIde.configuration; + this.globalState = fakeIde.globalState; + this.clipboard = fakeIde.clipboard; + this.initializeConfiguration(); + } + initializeConfiguration() { + this.configuration.mockConfigurationScope( + { languageId: "css" }, + { wordSeparators: ["_", "-"] }, + true + ); + this.configuration.mockConfigurationScope( + { languageId: "scss" }, + { wordSeparators: ["_", "-"] }, + true + ); + this.configuration.mockConfigurationScope( + { languageId: "shellscript" }, + { wordSeparators: ["_", "-"] }, + true + ); + this.configuration.mockConfiguration("experimental", { + hatStability: this.configuration.getOwnConfiguration( + "experimental.hatStability" + ), + snippetsDir: getFixturePath("cursorless-snippets") + }); + } + flashRanges(flashDescriptors) { + return this.isSilent ? this.fakeIde.flashRanges(flashDescriptors) : super.flashRanges(flashDescriptors); + } + setHighlightRanges(highlightId, editor, ranges) { + return this.isSilent ? this.fakeIde.setHighlightRanges(highlightId, editor, ranges) : super.setHighlightRanges(highlightId, editor, ranges); + } + async showQuickPick(_items, _options) { + return this.isSilent ? this.fakeIde.showQuickPick(_items, _options) : super.showQuickPick(_items, _options); + } +}; + +// ../common/src/types/command/command.types.ts +var LATEST_VERSION = 7; + +// ../common/src/types/command/PartialTargetDescriptor.types.ts +var simpleSurroundingPairNames = [ + "angleBrackets", + "backtickQuotes", + "curlyBrackets", + "doubleQuotes", + "escapedDoubleQuotes", + "escapedParentheses", + "escapedSquareBrackets", + "escapedSingleQuotes", + "parentheses", + "singleQuotes", + "squareBrackets" +]; +var complexSurroundingPairNames = [ + "string", + "any", + "collectionBoundary" +]; +var surroundingPairNames = [ + ...simpleSurroundingPairNames, + ...complexSurroundingPairNames +]; +var simpleScopeTypeTypes = [ + "argumentOrParameter", + "anonymousFunction", + "attribute", + "branch", + "class", + "className", + "collectionItem", + "collectionKey", + "comment", + "private.fieldAccess", + "functionCall", + "functionCallee", + "functionName", + "ifStatement", + "instance", + "list", + "map", + "name", + "namedFunction", + "regularExpression", + "statement", + "string", + "type", + "value", + "condition", + "section", + "sectionLevelOne", + "sectionLevelTwo", + "sectionLevelThree", + "sectionLevelFour", + "sectionLevelFive", + "sectionLevelSix", + "selector", + "private.switchStatementSubject", + "unit", + "xmlBothTags", + "xmlElement", + "xmlEndTag", + "xmlStartTag", + // Latex scope types + "part", + "chapter", + "subSection", + "subSubSection", + "namedParagraph", + "subParagraph", + "environment", + // Text based scopes + "character", + "word", + "token", + "identifier", + "line", + "sentence", + "paragraph", + "document", + "nonWhitespaceSequence", + "boundedNonWhitespaceSequence", + "url", + "notebookCell", + // Talon + "command" +]; +function isSimpleScopeType(scopeType) { + return simpleScopeTypeTypes.includes(scopeType.type); +} + +// ../common/src/types/command/ActionDescriptor.ts +var simpleActionNames = [ + "breakLine", + "clearAndSetSelection", + "copyToClipboard", + "cutToClipboard", + "decrement", + "deselect", + "editNewLineAfter", + "editNewLineBefore", + "experimental.setInstanceReference", + "extractVariable", + "findInDocument", + "findInWorkspace", + "foldRegion", + "followLink", + "increment", + "indentLine", + "insertCopyAfter", + "insertCopyBefore", + "insertEmptyLineAfter", + "insertEmptyLineBefore", + "insertEmptyLinesAround", + "joinLines", + "outdentLine", + "randomizeTargets", + "remove", + "rename", + "revealDefinition", + "revealTypeDefinition", + "reverseTargets", + "scrollToBottom", + "scrollToCenter", + "scrollToTop", + "setSelection", + "setSelectionAfter", + "setSelectionBefore", + "showDebugHover", + "showHover", + "showQuickFix", + "showReferences", + "sortTargets", + "toggleLineBreakpoint", + "toggleLineComment", + "unfoldRegion", + "private.setKeyboardTarget", + "private.showParseTree", + "private.getTargets" +]; +var complexActionNames = [ + "callAsFunction", + "editNew", + "executeCommand", + "generateSnippet", + "getText", + "highlight", + "insertSnippet", + "moveToTarget", + "pasteFromClipboard", + "replace", + "replaceWithTarget", + "rewrapWithPairedDelimiter", + "swapTargets", + "wrapWithPairedDelimiter", + "wrapWithSnippet" +]; +var actionNames = [ + ...simpleActionNames, + ...complexActionNames +]; + +// ../common/src/util/itertools.ts +function groupBy(list, func) { + const map4 = /* @__PURE__ */ new Map(); + list.forEach((element) => { + const key = func(element); + let group; + if (map4.has(key)) { + group = map4.get(key); + } else { + group = []; + map4.set(key, group); + } + group.push(element); + }); + return map4; +} +function isEmptyIterable(iterable) { + for (const _ of iterable) { + return false; + } + return true; +} + +// ../common/src/FakeCommandServerApi.ts +var FakeCommandServerApi = class { + constructor() { + this.signals = { prePhrase: { getVersion: async () => null } }; + } + async getFocusedElementType() { + return this.focusedElementType; + } + setFocusedElementType(focusedElementType) { + this.focusedElementType = focusedElementType; + } +}; + +// ../common/src/util/type.ts +function isString(arg) { + return typeof arg === "string" || arg instanceof String; +} + +// ../common/src/util/ensureCommandShape.ts +function ensureCommandShape(args) { + const [spokenFormOrCommand, ...rest] = args; + return handleLegacyCommandShape(spokenFormOrCommand, rest); +} +function handleLegacyCommandShape(spokenFormOrCommand, rest) { + let command; + if (isString(spokenFormOrCommand)) { + const spokenForm = spokenFormOrCommand; + const [action, targets, ...extraArgs] = rest; + command = { + version: 0, + spokenForm, + action, + targets, + extraArgs, + usePrePhraseSnapshot: false + }; + } else { + command = spokenFormOrCommand; + } + return command; +} + +// ../common/src/util/clientSupportsFallback.ts +function clientSupportsFallback(command) { + return command.version >= 7; +} + +// ../common/src/scopeSupportFacets/scopeSupportFacets.types.ts +var ScopeSupportFacetLevel = /* @__PURE__ */ ((ScopeSupportFacetLevel2) => { + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supported"] = 0] = "supported"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supportedLegacy"] = 1] = "supportedLegacy"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["unsupported"] = 2] = "unsupported"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["notApplicable"] = 3] = "notApplicable"; + return ScopeSupportFacetLevel2; +})(ScopeSupportFacetLevel || {}); + +// ../common/src/scopeSupportFacets/c.ts +var { supported, unsupported, notApplicable } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/clojure.ts +var { supported: supported2, unsupported: unsupported2, notApplicable: notApplicable2 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/cpp.ts +var { supported: supported3, unsupported: unsupported3, notApplicable: notApplicable3 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/csharp.ts +var { supported: supported4, unsupported: unsupported4, notApplicable: notApplicable4 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/css.ts +var { supported: supported5, unsupported: unsupported5, notApplicable: notApplicable5 } = ScopeSupportFacetLevel; +var cssScopeSupport = { + "comment.line": supported5, + "comment.block": supported5, + "string.singleLine": supported5 +}; + +// ../common/src/scopeSupportFacets/go.ts +var { supported: supported6, unsupported: unsupported6, notApplicable: notApplicable6 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/html.ts +var { supported: supported7, notApplicable: notApplicable7 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/java.ts +var { supported: supported8, notApplicable: notApplicable8 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/javascript.ts +var { supported: supported9, unsupported: unsupported7, notApplicable: notApplicable9 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/json.ts +var { supported: supported10 } = ScopeSupportFacetLevel; +var jsonScopeSupport = { + "comment.line": supported10, + "comment.block": supported10 +}; + +// ../common/src/scopeSupportFacets/jsonc.ts +var { supported: supported11, unsupported: unsupported8, notApplicable: notApplicable10 } = ScopeSupportFacetLevel; +var jsoncScopeSupport = { + ...jsonScopeSupport +}; + +// ../common/src/scopeSupportFacets/latex.ts +var { supported: supported12, unsupported: unsupported9, notApplicable: notApplicable11 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/lua.ts +var { supported: supported13, notApplicable: notApplicable12 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/markdown.ts +var { supported: supported14, unsupported: unsupported10, notApplicable: notApplicable13 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/python.ts +var { supported: supported15, supportedLegacy, notApplicable: notApplicable14 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/ruby.ts +var { supported: supported16, unsupported: unsupported11, notApplicable: notApplicable15 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/rust.ts +var { supported: supported17, unsupported: unsupported12, notApplicable: notApplicable16 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/scala.ts +var { supported: supported18, unsupported: unsupported13, notApplicable: notApplicable17 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/scss.ts +var { supported: supported19, unsupported: unsupported14, notApplicable: notApplicable18 } = ScopeSupportFacetLevel; +var scssScopeSupport = { + ...cssScopeSupport +}; + +// ../common/src/scopeSupportFacets/talon.ts +var { supported: supported20 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/typescript.ts +var { supported: supported21 } = ScopeSupportFacetLevel; +var typescriptScopeSupport = { + // ...javascriptScopeSupport, + "type.variable": supported21, + "type.formalParameter": supported21, + "type.return": supported21, + "type.field": supported21, + "type.interface": supported21, + "type.alias": supported21, + "name.field": supported21, + "value.field": supported21 +}; + +// ../common/src/scopeSupportFacets/typescriptreact.ts +var { supported: supported22, unsupported: unsupported15, notApplicable: notApplicable19 } = ScopeSupportFacetLevel; +var typescriptreactScopeSupport = { + ...typescriptScopeSupport +}; + +// ../common/src/StoredTargetKey.ts +var storedTargetKeys = [ + "that", + "source", + "instanceReference", + "keyboard" +]; + +// ../cursorless-engine/src/processTargets/targets/BaseTarget.ts +var import_lodash9 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/rangeUtils.ts +function expandToFullLine(editor, range4) { + return new Range( + new Position(range4.start.line, 0), + editor.document.lineAt(range4.end).range.end + ); +} +function getRangeLength(editor, range4) { + return range4.isEmpty ? 0 : editor.document.offsetAt(range4.end) - editor.document.offsetAt(range4.start); +} +function strictlyContains(range1, rangeOrPosition) { + const [start, end] = rangeOrPosition instanceof Position ? [rangeOrPosition, rangeOrPosition] : [rangeOrPosition.start, rangeOrPosition.end]; + return range1.start.isBefore(start) && range1.end.isAfter(end); +} +function union(range4, ...unionWith) { + for (const r of unionWith) { + if (r != null) { + range4 = range4.union(r); + } + } + return range4; +} + +// ../cursorless-engine/src/processTargets/targets/DestinationImpl.ts +var DestinationImpl = class _DestinationImpl { + constructor(target, insertionMode, indentationString) { + this.target = target; + this.insertionMode = insertionMode; + this.contentRange = getContentRange(target.contentRange, insertionMode); + this.isBefore = insertionMode === "before"; + this.isLineDelimiter = target.insertionDelimiter.includes("\n"); + this.indentationString = indentationString ?? this.isLineDelimiter ? getIndentationString(target.editor, target.contentRange) : ""; + this.insertionPrefix = target.prefixRange != null ? target.editor.document.getText(target.prefixRange) : void 0; + } + get contentSelection() { + return this.contentRange.toSelection(this.target.isReversed); + } + get editor() { + return this.target.editor; + } + get insertionDelimiter() { + return this.target.insertionDelimiter; + } + get isRaw() { + return this.target.isRaw; + } + /** + * Creates a new destination with the given target while preserving insertion + * mode and indentation string from this destination. This is important + * because our "edit new" code updates the content range of the target when + * multiple edits are performed in the same document, but we want to insert + * the original indentation. + */ + withTarget(target) { + return new _DestinationImpl( + target, + this.insertionMode, + this.indentationString + ); + } + getEditNewActionType() { + if (this.insertionMode === "after" && this.target.contentRange.isSingleLine && this.insertionDelimiter === "\n" && this.insertionPrefix == null) { + return "insertLineAfter"; + } + return "edit"; + } + constructChangeEdit(text) { + return this.insertionMode === "before" || this.insertionMode === "after" ? this.constructEditWithDelimiters(text) : this.constructEditWithoutDelimiters(text); + } + constructEditWithDelimiters(text) { + const range4 = this.getEditRange(); + const editText2 = this.getEditText(text); + const updateRange = (range5) => { + return this.updateRange(range5, text); + }; + return { + range: range4, + text: editText2, + isReplace: this.insertionMode === "after", + updateRange + }; + } + constructEditWithoutDelimiters(text) { + return { + range: this.contentRange, + text, + updateRange: (range4) => range4 + }; + } + getEditRange() { + const position = (() => { + const insertionPosition = this.isBefore ? union(this.target.contentRange, this.target.prefixRange).start : this.target.contentRange.end; + if (this.isLineDelimiter) { + const line = this.editor.document.lineAt(insertionPosition); + const nonWhitespaceCharacterIndex = this.isBefore ? line.firstNonWhitespaceCharacterIndex : line.lastNonWhitespaceCharacterIndex; + if (insertionPosition.character === nonWhitespaceCharacterIndex) { + return this.isBefore ? line.range.start : line.range.end; + } + } + return insertionPosition; + })(); + return new Range(position, position); + } + getEditText(text) { + const insertionText = this.indentationString + (this.insertionPrefix ?? "") + text; + return this.isBefore ? insertionText + this.insertionDelimiter : this.insertionDelimiter + insertionText; + } + updateRange(range4, text) { + const baseStartOffset = this.editor.document.offsetAt(range4.start) + this.indentationString.length + (this.insertionPrefix?.length ?? 0); + const startIndex = this.isBefore ? baseStartOffset : baseStartOffset + this.getLengthOfInsertionDelimiter(); + const endIndex = startIndex + text.length; + return new Range( + this.editor.document.positionAt(startIndex), + this.editor.document.positionAt(endIndex) + ); + } + getLengthOfInsertionDelimiter() { + if (this.editor.document.eol === "CRLF") { + const matches = this.insertionDelimiter.match(/\n/g); + if (matches != null) { + return this.insertionDelimiter.length + matches.length; + } + } + return this.insertionDelimiter.length; + } +}; +function getIndentationString(editor, range4) { + let length = Number.MAX_SAFE_INTEGER; + let indentationString = ""; + for (let i = range4.start.line; i <= range4.end.line; ++i) { + const line = editor.document.lineAt(i); + if (!line.isEmptyOrWhitespace && line.firstNonWhitespaceCharacterIndex < length) { + length = line.firstNonWhitespaceCharacterIndex; + indentationString = line.text.slice(0, length); + } + } + return indentationString; +} +function getContentRange(contentRange, insertionMode) { + switch (insertionMode) { + case "before": + return contentRange.start.toEmptyRange(); + case "after": + return contentRange.end.toEmptyRange(); + case "to": + return contentRange; + } +} + +// ../cursorless-engine/src/processTargets/targets/util/createContinuousRange.ts +function createContinuousRange(startTarget, endTarget, includeStart, includeEnd) { + return createContinuousRangeFromRanges( + startTarget.contentRange, + endTarget.contentRange, + includeStart, + includeEnd + ); +} +function createContinuousRangeFromRanges(startRange, endRange, includeStart, includeEnd) { + return new Range( + includeStart ? startRange.start : startRange.end, + includeEnd ? endRange.end : endRange.start + ); +} +function createContinuousLineRange(startTarget, endTarget, includeStart, includeEnd) { + const start = includeStart ? startTarget.contentRange.start : new Position(startTarget.contentRange.end.line + 1, 0); + const end = includeEnd ? endTarget.contentRange.end : endTarget.editor.document.lineAt(endTarget.contentRange.start.line - 1).range.end; + return new Range(start, end); +} + +// ../cursorless-engine/src/processTargets/targets/BaseTarget.ts +var BaseTarget = class _BaseTarget { + constructor(parameters) { + this.isLine = false; + this.isToken = true; + this.hasExplicitScopeType = true; + this.hasExplicitRange = true; + this.isRaw = false; + this.isImplicit = false; + this.isNotebookCell = false; + this.isWord = false; + this.state = { + editor: parameters.editor, + isReversed: parameters.isReversed, + contentRange: parameters.contentRange, + thatTarget: parameters.thatTarget + }; + } + get editor() { + return this.state.editor; + } + get isReversed() { + return this.state.isReversed; + } + get thatTarget() { + return this.state.thatTarget != null ? this.state.thatTarget.thatTarget : this; + } + get contentText() { + return this.editor.document.getText(this.contentRange); + } + get contentSelection() { + return this.contentRange.toSelection(this.isReversed); + } + get contentRange() { + return this.state.contentRange; + } + constructRemovalEdit() { + return { + range: this.getRemovalRange(), + text: "", + updateRange: (range4) => range4 + }; + } + getRemovalHighlightRange() { + return this.getRemovalRange(); + } + withThatTarget(thatTarget) { + return this.cloneWith({ thatTarget }); + } + withContentRange(contentRange) { + return this.cloneWith({ contentRange }); + } + getInteriorStrict() { + throw new NoContainingScopeError("interior"); + } + getBoundaryStrict() { + throw new NoContainingScopeError("boundary"); + } + cloneWith(parameters) { + const constructor = Object.getPrototypeOf(this).constructor; + return new constructor({ + ...this.getCloneParameters(), + ...parameters + }); + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + const { constructor } = Object.getPrototypeOf(this); + return new constructor({ + ...this.getCloneParameters(), + isReversed, + contentRange: createContinuousRange(this, endTarget, true, true) + }); + } + isEqual(otherTarget) { + return otherTarget instanceof _BaseTarget && (0, import_lodash9.isEqual)(this.getEqualityParameters(), otherTarget.getEqualityParameters()); + } + /** + * Constructs an object that can be used for determining equality between two + * {@link BaseTarget} objects. We proceed by just getting the objects clone + * parameters and removing the `thatTarget`. + * + * We would prefer to instead merge the `thatTarget`s into a list. See #780 + * for more details. + * + * @returns The object to be used for determining equality + */ + getEqualityParameters() { + const { thatTarget, ...otherCloneParameters } = this.getCloneParameters(); + return { + ...otherCloneParameters + }; + } + toDestination(insertionMode) { + return new DestinationImpl(this, insertionMode); + } + /** + * Converts the target to a plain object representation. + * + * Note that this implementation is quite incomplete, but is suitable for + * round-tripping {@link UntypedTarget} objects and capturing the fact that an + * object is not an un typed target if it is not, via the {@link type} + * attribute. In the future, we should override this method in subclasses to + * provide a more complete representation. + * @returns A plain object representation of the target + */ + toPlainObject() { + return { + type: this.type, + contentRange: rangeToPlainObject(this.contentRange), + isReversed: this.isReversed, + hasExplicitRange: this.hasExplicitRange + }; + } +}; + +// ../cursorless-engine/src/util/selectionUtils.ts +function selectionWithEditorFromRange(selection, range4) { + return selectionWithEditorFromPositions(selection, range4.start, range4.end); +} +function selectionWithEditorFromPositions(selection, start, end) { + return { + editor: selection.editor, + selection: selectionFromPositions(selection.selection, start, end) + }; +} +function selectionFromPositions(selection, start, end) { + return !selection.isReversed ? new Selection(start, end) : new Selection(end, start); +} +function shrinkRangeToFitContent(editor, range4) { + const { document } = editor; + const text = document.getText(range4); + const startDelta = text.length - text.trimStart().length; + const endDelta = text.length - text.trimEnd().length; + const startOffset = document.offsetAt(range4.start) + startDelta; + const endOffset = document.offsetAt(range4.end) - endDelta; + const start = document.positionAt(startOffset); + const end = document.positionAt(endOffset); + return new Range(start, end); +} + +// ../cursorless-engine/src/util/tryConstructTarget.ts +function tryConstructTarget(constructor, editor, range4, isReversed) { + return range4 == null ? void 0 : new constructor({ + editor, + isReversed, + contentRange: range4 + }); +} + +// ../cursorless-engine/src/processTargets/targets/PlainTarget.ts +var PlainTarget = class extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "PlainTarget"; + this.getLeadingDelimiterTarget = () => void 0; + this.getTrailingDelimiterTarget = () => void 0; + this.getRemovalRange = () => this.contentRange; + this.isToken = parameters.isToken ?? true; + this.insertionDelimiter = parameters.insertionDelimiter ?? ""; + } + getCloneParameters() { + return { + ...this.state, + isToken: this.isToken, + insertionDelimiter: this.insertionDelimiter + }; + } +}; +function tryConstructPlainTarget(editor, range4, isReversed) { + return tryConstructTarget(PlainTarget, editor, range4, isReversed); +} + +// ../cursorless-engine/src/processTargets/targets/DocumentTarget.ts +var DocumentTarget = class extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "DocumentTarget"; + this.insertionDelimiter = "\n"; + this.isLine = true; + } + getLeadingDelimiterTarget() { + return void 0; + } + getTrailingDelimiterTarget() { + return void 0; + } + getRemovalRange() { + return this.contentRange; + } + getInteriorStrict() { + return [ + // Use plain target instead of interior target since we want the same content and removal range for a document interior. + new PlainTarget({ + editor: this.editor, + isReversed: this.isReversed, + contentRange: shrinkRangeToFitContent(this.editor, this.contentRange) + }) + ]; + } + getCloneParameters() { + return this.state; + } +}; + +// ../cursorless-engine/src/processTargets/targets/LineTarget.ts +var LineTarget = class _LineTarget extends BaseTarget { + constructor() { + super(...arguments); + this.type = "LineTarget"; + this.insertionDelimiter = "\n"; + this.isLine = true; + this.getRemovalHighlightRange = () => this.fullLineContentRange; + } + get fullLineContentRange() { + return expandToFullLine(this.editor, this.contentRange); + } + getLeadingDelimiterTarget() { + return tryConstructPlainTarget( + this.editor, + getLeadingDelimiterRange(this.editor, this.fullLineContentRange), + this.isReversed + ); + } + getTrailingDelimiterTarget() { + return tryConstructPlainTarget( + this.editor, + getTrailingDelimiterRange(this.editor, this.fullLineContentRange), + this.isReversed + ); + } + getRemovalRange() { + const contentRemovalRange = this.fullLineContentRange; + const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget(); + return delimiterTarget == null ? contentRemovalRange : contentRemovalRange.union(delimiterTarget.contentRange); + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + return new _LineTarget({ + editor: this.editor, + isReversed, + contentRange: createContinuousLineRange(this, endTarget, true, true) + }); + } + getCloneParameters() { + return this.state; + } +}; +function getLeadingDelimiterRange(editor, range4) { + const { start } = range4; + return start.line > 0 ? new Range(editor.document.lineAt(start.line - 1).range.end, range4.start) : void 0; +} +function getTrailingDelimiterRange(editor, range4) { + const { end } = range4; + return end.line + 1 < editor.document.lineCount ? new Range(range4.end, new Position(end.line + 1, 0)) : void 0; +} +function constructLineTarget(editor, range4, isReversed) { + return tryConstructTarget(LineTarget, editor, range4, isReversed); +} + +// ../cursorless-engine/src/processTargets/targets/NotebookCellDestination.ts +var NotebookCellDestination = class _NotebookCellDestination { + constructor(target, insertionMode) { + this.target = target; + this.insertionMode = insertionMode; + } + get editor() { + return this.target.editor; + } + get contentRange() { + return this.target.contentRange; + } + get contentSelection() { + return this.target.contentSelection; + } + get insertionDelimiter() { + return this.target.insertionDelimiter; + } + get isRaw() { + return this.target.isRaw; + } + withTarget(target) { + return new _NotebookCellDestination(target, this.insertionMode); + } + getEditNewActionType() { + throw new Error("Method not implemented."); + } + constructChangeEdit(_text) { + throw new Error("Method not implemented."); + } +}; + +// ../cursorless-engine/src/processTargets/targets/NotebookCellTarget.ts +var NotebookCellTarget = class extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "NotebookCellTarget"; + this.insertionDelimiter = "\n"; + this.isNotebookCell = true; + this.getLeadingDelimiterTarget = () => void 0; + this.getTrailingDelimiterTarget = () => void 0; + this.getRemovalRange = () => this.contentRange; + } + getCloneParameters() { + return this.state; + } + toDestination(insertionMode) { + return new NotebookCellDestination(this, insertionMode); + } +}; + +// ../cursorless-engine/src/processTargets/targets/ParagraphTarget.ts +var ParagraphTarget = class _ParagraphTarget extends BaseTarget { + constructor() { + super(...arguments); + this.type = "ParagraphTarget"; + this.insertionDelimiter = "\n\n"; + this.isLine = true; + } + getLeadingDelimiterTarget() { + return constructLineTarget( + this.editor, + getLeadingDelimiterRange2(this.editor, this.fullLineContentRange), + this.isReversed + ); + } + getTrailingDelimiterTarget() { + return constructLineTarget( + this.editor, + getTrailingDelimiterRange2(this.editor, this.fullLineContentRange), + this.isReversed + ); + } + getRemovalRange() { + const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget(); + const removalContentRange = delimiterTarget != null ? this.contentRange.union(delimiterTarget.contentRange) : this.contentRange; + return new LineTarget({ + contentRange: removalContentRange, + editor: this.editor, + isReversed: this.isReversed + }).getRemovalRange(); + } + get fullLineContentRange() { + return expandToFullLine(this.editor, this.contentRange); + } + getRemovalHighlightRange() { + const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget(); + return delimiterTarget != null ? this.fullLineContentRange.union(delimiterTarget.contentRange) : this.fullLineContentRange; + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + return new _ParagraphTarget({ + ...this.getCloneParameters(), + isReversed, + contentRange: createContinuousLineRange(this, endTarget, true, true) + }); + } + getCloneParameters() { + return this.state; + } +}; +function getLeadingDelimiterRange2(editor, contentRange) { + const { document } = editor; + const startLine = document.lineAt(contentRange.start); + const leadingLine = getPreviousNonEmptyLine(document, startLine); + if (leadingLine != null) { + if (leadingLine.lineNumber + 1 === startLine.lineNumber) { + return void 0; + } + return new Range( + new Position(leadingLine.lineNumber + 1, 0), + document.lineAt(startLine.lineNumber - 1).range.end + ); + } + if (startLine.lineNumber > 0) { + return new Range( + new Position(0, 0), + document.lineAt(startLine.lineNumber - 1).range.end + ); + } + return void 0; +} +function getTrailingDelimiterRange2(editor, contentRange) { + const { document } = editor; + const endLine = document.lineAt(contentRange.end); + const trailingLine = getNextNonEmptyLine(document, endLine); + if (trailingLine != null) { + if (trailingLine.lineNumber - 1 === endLine.lineNumber) { + return void 0; + } + return new Range( + new Position(endLine.lineNumber + 1, 0), + document.lineAt(trailingLine.lineNumber - 1).range.end + ); + } + if (endLine.lineNumber < document.lineCount - 1) { + return new Range( + new Position(endLine.lineNumber + 1, 0), + document.lineAt(document.lineCount - 1).range.end + ); + } + return void 0; +} +function getPreviousNonEmptyLine(document, line) { + while (line.lineNumber > 0) { + const previousLine = document.lineAt(line.lineNumber - 1); + if (!previousLine.isEmptyOrWhitespace) { + return previousLine; + } + line = previousLine; + } + return null; +} +function getNextNonEmptyLine(document, line) { + while (line.lineNumber + 1 < document.lineCount) { + const nextLine = document.lineAt(line.lineNumber + 1); + if (!nextLine.isEmptyOrWhitespace) { + return nextLine; + } + line = nextLine; + } + return null; +} + +// ../cursorless-engine/src/processTargets/targets/RawSelectionTarget.ts +var RawSelectionTarget = class extends BaseTarget { + constructor() { + super(...arguments); + this.type = "RawSelectionTarget"; + this.insertionDelimiter = ""; + this.isRaw = true; + this.isToken = false; + this.getLeadingDelimiterTarget = () => void 0; + this.getTrailingDelimiterTarget = () => void 0; + this.getRemovalRange = () => this.contentRange; + this.getCloneParameters = () => this.state; + } +}; + +// ../cursorless-engine/src/processTargets/targets/InteriorTarget.ts +var InteriorTarget = class _InteriorTarget extends BaseTarget { + constructor(parameters) { + super({ + ...parameters, + contentRange: shrinkRangeToFitContent( + parameters.editor, + parameters.fullInteriorRange + ) + }); + this.type = "InteriorTarget"; + this.insertionDelimiter = " "; + this.getLeadingDelimiterTarget = () => void 0; + this.getTrailingDelimiterTarget = () => void 0; + this.getRemovalRange = () => this.fullInteriorRange; + this.fullInteriorRange = parameters.fullInteriorRange; + } + getCloneParameters() { + return { + ...this.state, + fullInteriorRange: this.fullInteriorRange + }; + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + return new _InteriorTarget({ + ...this.getCloneParameters(), + isReversed, + fullInteriorRange: createContinuousRangeFromRanges( + this.fullInteriorRange, + endTarget.fullInteriorRange, + true, + true + ) + }); + } +}; + +// ../cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts +function getDelimitedSequenceRemovalRange(target) { + const contentRange = union(target.contentRange, target.prefixRange); + const delimiterTarget = target.getTrailingDelimiterTarget() ?? target.getLeadingDelimiterTarget(); + return delimiterTarget != null ? contentRange.union(delimiterTarget.contentRange) : contentRange; +} + +// ../cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts +var leadingDelimiters = ['"', "'", "(", "[", "{", "<"]; +var trailingDelimiters = ['"', "'", ")", "]", "}", ">", ",", ";", ":"]; +function getTokenLeadingDelimiterTarget(target) { + const { editor } = target; + const { start } = union(target.contentRange, target.prefixRange); + const startLine = editor.document.lineAt(start); + const leadingText = startLine.text.slice(0, start.character); + const leadingDelimiters2 = leadingText.match(/\s+$/); + return leadingDelimiters2 == null ? void 0 : new PlainTarget({ + contentRange: new Range( + start.line, + start.character - leadingDelimiters2[0].length, + start.line, + start.character + ), + editor, + isReversed: target.isReversed + }); +} +function getTokenTrailingDelimiterTarget(target) { + const { editor } = target; + const { end } = target.contentRange; + const endLine = editor.document.lineAt(end); + const trailingText = endLine.text.slice(end.character); + const trailingDelimiters2 = trailingText.match(/^\s+/); + return trailingDelimiters2 == null ? void 0 : new PlainTarget({ + contentRange: new Range( + end.line, + end.character, + end.line, + end.character + trailingDelimiters2[0].length + ), + editor, + isReversed: target.isReversed + }); +} +function getTokenRemovalRange(target) { + const { editor } = target; + const contentRange = union(target.contentRange, target.prefixRange); + const { start, end } = contentRange; + const leadingWhitespaceRange = target.getLeadingDelimiterTarget()?.contentRange ?? start.toEmptyRange(); + const trailingWhitespaceRange = target.getTrailingDelimiterTarget()?.contentRange ?? end.toEmptyRange(); + const fullLineRange = expandToFullLine(editor, contentRange); + if (leadingWhitespaceRange.union(trailingWhitespaceRange).isRangeEqual(fullLineRange)) { + return fullLineRange; + } + if (!trailingWhitespaceRange.isEmpty) { + if (!leadingWhitespaceRange.isEmpty || contentRange.start.isEqual(fullLineRange.start) || leadingDelimiters.includes(getLeadingCharacter(editor, contentRange))) { + return contentRange.union(trailingWhitespaceRange); + } + } + if (!leadingWhitespaceRange.isEmpty) { + if (contentRange.end.isEqual(fullLineRange.end) || trailingDelimiters.includes(getTrailingCharacter(editor, contentRange))) { + return contentRange.union(leadingWhitespaceRange); + } + } + return contentRange; +} +function getLeadingCharacter(editor, contentRange) { + const { start } = contentRange; + const line = editor.document.lineAt(start); + return start.isAfter(line.range.start) ? editor.document.getText(new Range(start.translate(void 0, -1), start)) : ""; +} +function getTrailingCharacter(editor, contentRange) { + const { end } = contentRange; + const line = editor.document.lineAt(end); + return end.isBefore(line.range.end) ? editor.document.getText(new Range(end.translate(void 0, 1), end)) : ""; +} + +// ../cursorless-engine/src/processTargets/targets/ScopeTypeTarget.ts +var ScopeTypeTarget = class _ScopeTypeTarget extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "ScopeTypeTarget"; + this.scopeTypeType_ = parameters.scopeTypeType; + this.removalRange_ = parameters.removalRange; + this.interiorRange_ = parameters.interiorRange; + this.leadingDelimiterRange_ = parameters.leadingDelimiterRange; + this.trailingDelimiterRange_ = parameters.trailingDelimiterRange; + this.prefixRange = parameters.prefixRange; + this.insertionDelimiter = parameters.insertionDelimiter ?? getInsertionDelimiter(parameters.scopeTypeType); + this.hasDelimiterRange_ = !!this.leadingDelimiterRange_ || !!this.trailingDelimiterRange_; + } + getLeadingDelimiterTarget() { + if (this.leadingDelimiterRange_ != null) { + return new PlainTarget({ + editor: this.editor, + isReversed: this.isReversed, + contentRange: this.leadingDelimiterRange_ + }); + } + if (!this.hasDelimiterRange_) { + return getTokenLeadingDelimiterTarget(this); + } + return void 0; + } + getTrailingDelimiterTarget() { + if (this.trailingDelimiterRange_ != null) { + return new PlainTarget({ + editor: this.editor, + isReversed: this.isReversed, + contentRange: this.trailingDelimiterRange_ + }); + } + if (!this.hasDelimiterRange_) { + return getTokenTrailingDelimiterTarget(this); + } + return void 0; + } + getInteriorStrict() { + if (this.interiorRange_ == null) { + return super.getInteriorStrict(); + } + return [ + new InteriorTarget({ + editor: this.editor, + isReversed: this.isReversed, + fullInteriorRange: this.interiorRange_ + }) + ]; + } + getRemovalRange() { + return this.removalRange_ != null ? this.removalRange_ : this.hasDelimiterRange_ ? getDelimitedSequenceRemovalRange(this) : getTokenRemovalRange(this); + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + if (this.scopeTypeType_ !== endTarget.scopeTypeType_) { + return null; + } + const contentRemovalRange = this.removalRange_ != null || endTarget.removalRange_ != null ? createContinuousRangeFromRanges( + this.removalRange_ ?? this.contentRange, + endTarget.removalRange_ ?? endTarget.contentRange, + true, + true + ) : void 0; + return new _ScopeTypeTarget({ + ...this.getCloneParameters(), + isReversed, + leadingDelimiterRange: this.leadingDelimiterRange_, + trailingDelimiterRange: endTarget.trailingDelimiterRange_, + removalRange: contentRemovalRange, + contentRange: createContinuousRange(this, endTarget, true, true) + }); + } + getCloneParameters() { + return { + ...this.state, + insertionDelimiter: this.insertionDelimiter, + prefixRange: this.prefixRange, + removalRange: void 0, + interiorRange: void 0, + scopeTypeType: this.scopeTypeType_, + leadingDelimiterRange: this.leadingDelimiterRange_, + trailingDelimiterRange: this.trailingDelimiterRange_ + }; + } +}; +function getInsertionDelimiter(scopeType) { + switch (scopeType) { + case "class": + case "namedFunction": + case "section": + case "sectionLevelOne": + case "sectionLevelTwo": + case "sectionLevelThree": + case "sectionLevelFour": + case "sectionLevelFive": + case "sectionLevelSix": + case "part": + case "chapter": + case "subSection": + case "subSubSection": + case "namedParagraph": + case "subParagraph": + return "\n\n"; + case "anonymousFunction": + case "statement": + case "ifStatement": + case "comment": + case "xmlElement": + case "collectionItem": + case "branch": + case "environment": + return "\n"; + default: + return " "; + } +} + +// ../cursorless-engine/src/processTargets/targets/SubTokenWordTarget.ts +var SubTokenWordTarget = class _SubTokenWordTarget extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "SubTokenWordTarget"; + this.isToken = false; + this.isWord = true; + this.leadingDelimiterRange_ = parameters.leadingDelimiterRange; + this.trailingDelimiterRange_ = parameters.trailingDelimiterRange; + this.insertionDelimiter = parameters.insertionDelimiter; + } + getLeadingDelimiterTarget() { + return tryConstructPlainTarget( + this.editor, + this.leadingDelimiterRange_, + this.isReversed + ); + } + getTrailingDelimiterTarget() { + return tryConstructPlainTarget( + this.editor, + this.trailingDelimiterRange_, + this.isReversed + ); + } + getRemovalRange() { + return getDelimitedSequenceRemovalRange(this); + } + maybeCreateRichRangeTarget(isReversed, endTarget) { + return new _SubTokenWordTarget({ + ...this.getCloneParameters(), + isReversed, + contentRange: createContinuousRange(this, endTarget, true, true), + trailingDelimiterRange: endTarget.trailingDelimiterRange_ + }); + } + getCloneParameters() { + return { + ...this.state, + leadingDelimiterRange: this.leadingDelimiterRange_, + trailingDelimiterRange: this.trailingDelimiterRange_, + insertionDelimiter: this.insertionDelimiter + }; + } +}; + +// ../cursorless-engine/src/processTargets/targets/TokenTarget.ts +var TokenTarget = class extends BaseTarget { + constructor() { + super(...arguments); + this.type = "TokenTarget"; + this.insertionDelimiter = " "; + } + getLeadingDelimiterTarget() { + return getTokenLeadingDelimiterTarget(this); + } + getTrailingDelimiterTarget() { + return getTokenTrailingDelimiterTarget(this); + } + getRemovalRange() { + return getTokenRemovalRange(this); + } + getCloneParameters() { + return this.state; + } +}; + +// ../cursorless-engine/src/processTargets/targets/SurroundingPairTarget.ts +var SurroundingPairTarget = class extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "SurroundingPairTarget"; + this.insertionDelimiter = " "; + this.boundary_ = parameters.boundary; + this.interiorRange_ = parameters.interiorRange; + } + getLeadingDelimiterTarget() { + return getTokenLeadingDelimiterTarget(this); + } + getTrailingDelimiterTarget() { + return getTokenTrailingDelimiterTarget(this); + } + getRemovalRange() { + return getTokenRemovalRange(this); + } + getInteriorStrict() { + return [ + new InteriorTarget({ + editor: this.editor, + isReversed: this.isReversed, + fullInteriorRange: this.interiorRange_ + }) + ]; + } + getBoundaryStrict() { + return this.boundary_.map( + (contentRange) => new TokenTarget({ + editor: this.editor, + isReversed: this.isReversed, + contentRange + }) + ); + } + getCloneParameters() { + return { + ...this.state, + interiorRange: this.interiorRange_, + boundary: this.boundary_ + }; + } +}; + +// ../cursorless-engine/src/processTargets/targets/UntypedTarget.ts +var UntypedTarget = class extends BaseTarget { + constructor(parameters) { + super(parameters); + this.type = "UntypedTarget"; + this.insertionDelimiter = " "; + this.hasExplicitScopeType = false; + this.hasExplicitRange = parameters.hasExplicitRange; + this.isToken = parameters.isToken ?? true; + } + getLeadingDelimiterTarget() { + return getTokenLeadingDelimiterTarget(this); + } + getTrailingDelimiterTarget() { + return getTokenTrailingDelimiterTarget(this); + } + getRemovalRange() { + return this.editor.document.getText(this.contentRange).trim().length === 0 ? this.contentRange : getTokenRemovalRange(this); + } + maybeCreateRichRangeTarget() { + return null; + } + getCloneParameters() { + return { + ...this.state, + isToken: this.isToken, + hasExplicitRange: this.hasExplicitRange + }; + } +}; + +// ../cursorless-engine/src/processTargets/targets/ImplicitTarget.ts +var ImplicitTarget = class extends BaseTarget { + constructor() { + super(...arguments); + this.type = "ImplicitTarget"; + this.insertionDelimiter = ""; + this.isRaw = true; + this.hasExplicitScopeType = false; + this.isImplicit = true; + this.isToken = false; + this.getLeadingDelimiterTarget = () => void 0; + this.getTrailingDelimiterTarget = () => void 0; + this.getRemovalRange = () => this.contentRange; + this.getCloneParameters = () => this.state; + } +}; + +// ../cursorless-engine/src/testUtil/plainObjectToTarget.ts +function plainObjectToTarget(editor, plainObject) { + switch (plainObject.type) { + case "UntypedTarget": + return new UntypedTarget({ + editor, + isReversed: plainObject.isReversed, + contentRange: plainObjectToRange(plainObject.contentRange), + hasExplicitRange: plainObject.hasExplicitRange + }); + case "LineTarget": + return new LineTarget({ + editor, + isReversed: plainObject.isReversed, + contentRange: plainObjectToRange(plainObject.contentRange) + }); + default: + throw Error(`Unsupported target type ${plainObject.type}`); + } +} + +// ../cursorless-engine/src/core/Cheatsheet.ts +var import_lodash10 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/singletons/ide.singleton.ts +var ide_; +function injectIde(ide2) { + ide_ = ide2; +} +function ide() { + if (ide_ == null) { + throw Error("Tried to access ide before it was injected"); + } + return ide_; +} + +// ../../node_modules/.pnpm/immer@10.0.4/node_modules/immer/dist/immer.mjs +var NOTHING = Symbol.for("immer-nothing"); +var DRAFTABLE = Symbol.for("immer-draftable"); +var DRAFT_STATE = Symbol.for("immer-state"); +var errors = process.env.NODE_ENV !== "production" ? [ + // All error codes, starting by 0: + function(plugin) { + return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`; + }, + function(thing) { + return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`; + }, + "This object has been frozen and should not be mutated", + function(data) { + return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data; + }, + "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.", + "Immer forbids circular references", + "The first or second argument to `produce` must be a function", + "The third argument to `produce` must be a function or undefined", + "First argument to `createDraft` must be a plain object, an array, or an immerable object", + "First argument to `finishDraft` must be a draft returned by `createDraft`", + function(thing) { + return `'current' expects a draft, got: ${thing}`; + }, + "Object.defineProperty() cannot be used on an Immer draft", + "Object.setPrototypeOf() cannot be used on an Immer draft", + "Immer only supports deleting array indices", + "Immer only supports setting array indices and the 'length' property", + function(thing) { + return `'original' expects a draft, got: ${thing}`; + } + // Note: if more errors are added, the errorOffset in Patches.ts should be increased + // See Patches.ts for additional errors +] : []; +function die(error, ...args) { + if (process.env.NODE_ENV !== "production") { + const e = errors[error]; + const msg = typeof e === "function" ? e.apply(null, args) : e; + throw new Error(`[Immer] ${msg}`); + } + throw new Error( + `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf` + ); +} +var getPrototypeOf = Object.getPrototypeOf; +function isDraft(value) { + return !!value && !!value[DRAFT_STATE]; +} +function isDraftable(value) { + if (!value) + return false; + return isPlainObject2(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value); +} +var objectCtorString = Object.prototype.constructor.toString(); +function isPlainObject2(value) { + if (!value || typeof value !== "object") + return false; + const proto = getPrototypeOf(value); + if (proto === null) { + return true; + } + const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor; + if (Ctor === Object) + return true; + return typeof Ctor == "function" && Function.toString.call(Ctor) === objectCtorString; +} +function each(obj, iter2) { + if (getArchtype(obj) === 0) { + Reflect.ownKeys(obj).forEach((key) => { + iter2(key, obj[key], obj); + }); + } else { + obj.forEach((entry2, index) => iter2(index, entry2, obj)); + } +} +function getArchtype(thing) { + const state = thing[DRAFT_STATE]; + return state ? state.type_ : Array.isArray(thing) ? 1 : isMap(thing) ? 2 : isSet(thing) ? 3 : 0; +} +function has(thing, prop) { + return getArchtype(thing) === 2 ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop); +} +function set2(thing, propOrOldValue, value) { + const t = getArchtype(thing); + if (t === 2) + thing.set(propOrOldValue, value); + else if (t === 3) { + thing.add(value); + } else + thing[propOrOldValue] = value; +} +function is(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} +function isMap(target) { + return target instanceof Map; +} +function isSet(target) { + return target instanceof Set; +} +function latest(state) { + return state.copy_ || state.base_; +} +function shallowCopy(base, strict) { + if (isMap(base)) { + return new Map(base); + } + if (isSet(base)) { + return new Set(base); + } + if (Array.isArray(base)) + return Array.prototype.slice.call(base); + if (!strict && isPlainObject2(base)) { + if (!getPrototypeOf(base)) { + const obj = /* @__PURE__ */ Object.create(null); + return Object.assign(obj, base); + } + return { ...base }; + } + const descriptors = Object.getOwnPropertyDescriptors(base); + delete descriptors[DRAFT_STATE]; + let keys = Reflect.ownKeys(descriptors); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const desc = descriptors[key]; + if (desc.writable === false) { + desc.writable = true; + desc.configurable = true; + } + if (desc.get || desc.set) + descriptors[key] = { + configurable: true, + writable: true, + // could live with !!desc.set as well here... + enumerable: desc.enumerable, + value: base[key] + }; + } + return Object.create(getPrototypeOf(base), descriptors); +} +function freeze(obj, deep = false) { + if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) + return obj; + if (getArchtype(obj) > 1) { + obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections; + } + Object.freeze(obj); + if (deep) + Object.entries(obj).forEach(([key, value]) => freeze(value, true)); + return obj; +} +function dontMutateFrozenCollections() { + die(2); +} +function isFrozen(obj) { + return Object.isFrozen(obj); +} +var plugins = {}; +function getPlugin(pluginKey) { + const plugin = plugins[pluginKey]; + if (!plugin) { + die(0, pluginKey); + } + return plugin; +} +var currentScope; +function getCurrentScope() { + return currentScope; +} +function createScope(parent_, immer_) { + return { + drafts_: [], + parent_, + immer_, + // Whenever the modified draft contains a draft from another scope, we + // need to prevent auto-freezing so the unowned draft can be finalized. + canAutoFreeze_: true, + unfinalizedDrafts_: 0 + }; +} +function usePatchesInScope(scope, patchListener) { + if (patchListener) { + getPlugin("Patches"); + scope.patches_ = []; + scope.inversePatches_ = []; + scope.patchListener_ = patchListener; + } +} +function revokeScope(scope) { + leaveScope(scope); + scope.drafts_.forEach(revokeDraft); + scope.drafts_ = null; +} +function leaveScope(scope) { + if (scope === currentScope) { + currentScope = scope.parent_; + } +} +function enterScope(immer2) { + return currentScope = createScope(currentScope, immer2); +} +function revokeDraft(draft) { + const state = draft[DRAFT_STATE]; + if (state.type_ === 0 || state.type_ === 1) + state.revoke_(); + else + state.revoked_ = true; +} +function processResult(result, scope) { + scope.unfinalizedDrafts_ = scope.drafts_.length; + const baseDraft = scope.drafts_[0]; + const isReplaced = result !== void 0 && result !== baseDraft; + if (isReplaced) { + if (baseDraft[DRAFT_STATE].modified_) { + revokeScope(scope); + die(4); + } + if (isDraftable(result)) { + result = finalize(scope, result); + if (!scope.parent_) + maybeFreeze(scope, result); + } + if (scope.patches_) { + getPlugin("Patches").generateReplacementPatches_( + baseDraft[DRAFT_STATE].base_, + result, + scope.patches_, + scope.inversePatches_ + ); + } + } else { + result = finalize(scope, baseDraft, []); + } + revokeScope(scope); + if (scope.patches_) { + scope.patchListener_(scope.patches_, scope.inversePatches_); + } + return result !== NOTHING ? result : void 0; +} +function finalize(rootScope, value, path8) { + if (isFrozen(value)) + return value; + const state = value[DRAFT_STATE]; + if (!state) { + each( + value, + (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path8) + ); + return value; + } + if (state.scope_ !== rootScope) + return value; + if (!state.modified_) { + maybeFreeze(rootScope, state.base_, true); + return state.base_; + } + if (!state.finalized_) { + state.finalized_ = true; + state.scope_.unfinalizedDrafts_--; + const result = state.copy_; + let resultEach = result; + let isSet2 = false; + if (state.type_ === 3) { + resultEach = new Set(result); + result.clear(); + isSet2 = true; + } + each( + resultEach, + (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path8, isSet2) + ); + maybeFreeze(rootScope, result, false); + if (path8 && rootScope.patches_) { + getPlugin("Patches").generatePatches_( + state, + path8, + rootScope.patches_, + rootScope.inversePatches_ + ); + } + } + return state.copy_; +} +function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) { + if (process.env.NODE_ENV !== "production" && childValue === targetObject) + die(5); + if (isDraft(childValue)) { + const path8 = rootPath && parentState && parentState.type_ !== 3 && // Set objects are atomic since they have no keys. + !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0; + const res = finalize(rootScope, childValue, path8); + set2(targetObject, prop, res); + if (isDraft(res)) { + rootScope.canAutoFreeze_ = false; + } else + return; + } else if (targetIsSet) { + targetObject.add(childValue); + } + if (isDraftable(childValue) && !isFrozen(childValue)) { + if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) { + return; + } + finalize(rootScope, childValue); + if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && Object.prototype.propertyIsEnumerable.call(targetObject, prop)) + maybeFreeze(rootScope, childValue); + } +} +function maybeFreeze(scope, value, deep = false) { + if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) { + freeze(value, deep); + } +} +function createProxyProxy(base, parent) { + const isArray = Array.isArray(base); + const state = { + type_: isArray ? 1 : 0, + // Track which produce call this is associated with. + scope_: parent ? parent.scope_ : getCurrentScope(), + // True for both shallow and deep changes. + modified_: false, + // Used during finalization. + finalized_: false, + // Track which properties have been assigned (true) or deleted (false). + assigned_: {}, + // The parent draft state. + parent_: parent, + // The base state. + base_: base, + // The base proxy. + draft_: null, + // set below + // The base copy with any updated values. + copy_: null, + // Called by the `produce` function. + revoke_: null, + isManual_: false + }; + let target = state; + let traps = objectTraps; + if (isArray) { + target = [state]; + traps = arrayTraps; + } + const { revoke, proxy } = Proxy.revocable(target, traps); + state.draft_ = proxy; + state.revoke_ = revoke; + return proxy; +} +var objectTraps = { + get(state, prop) { + if (prop === DRAFT_STATE) + return state; + const source = latest(state); + if (!has(source, prop)) { + return readPropFromProto(state, source, prop); + } + const value = source[prop]; + if (state.finalized_ || !isDraftable(value)) { + return value; + } + if (value === peek(state.base_, prop)) { + prepareCopy(state); + return state.copy_[prop] = createProxy(value, state); + } + return value; + }, + has(state, prop) { + return prop in latest(state); + }, + ownKeys(state) { + return Reflect.ownKeys(latest(state)); + }, + set(state, prop, value) { + const desc = getDescriptorFromProto(latest(state), prop); + if (desc?.set) { + desc.set.call(state.draft_, value); + return true; + } + if (!state.modified_) { + const current2 = peek(latest(state), prop); + const currentState = current2?.[DRAFT_STATE]; + if (currentState && currentState.base_ === value) { + state.copy_[prop] = value; + state.assigned_[prop] = false; + return true; + } + if (is(value, current2) && (value !== void 0 || has(state.base_, prop))) + return true; + prepareCopy(state); + markChanged(state); + } + if (state.copy_[prop] === value && // special case: handle new props with value 'undefined' + (value !== void 0 || prop in state.copy_) || // special case: NaN + Number.isNaN(value) && Number.isNaN(state.copy_[prop])) + return true; + state.copy_[prop] = value; + state.assigned_[prop] = true; + return true; + }, + deleteProperty(state, prop) { + if (peek(state.base_, prop) !== void 0 || prop in state.base_) { + state.assigned_[prop] = false; + prepareCopy(state); + markChanged(state); + } else { + delete state.assigned_[prop]; + } + if (state.copy_) { + delete state.copy_[prop]; + } + return true; + }, + // Note: We never coerce `desc.value` into an Immer draft, because we can't make + // the same guarantee in ES5 mode. + getOwnPropertyDescriptor(state, prop) { + const owner = latest(state); + const desc = Reflect.getOwnPropertyDescriptor(owner, prop); + if (!desc) + return desc; + return { + writable: true, + configurable: state.type_ !== 1 || prop !== "length", + enumerable: desc.enumerable, + value: owner[prop] + }; + }, + defineProperty() { + die(11); + }, + getPrototypeOf(state) { + return getPrototypeOf(state.base_); + }, + setPrototypeOf() { + die(12); + } +}; +var arrayTraps = {}; +each(objectTraps, (key, fn) => { + arrayTraps[key] = function() { + arguments[0] = arguments[0][0]; + return fn.apply(this, arguments); + }; +}); +arrayTraps.deleteProperty = function(state, prop) { + if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop))) + die(13); + return arrayTraps.set.call(this, state, prop, void 0); +}; +arrayTraps.set = function(state, prop, value) { + if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop))) + die(14); + return objectTraps.set.call(this, state[0], prop, value, state[0]); +}; +function peek(draft, prop) { + const state = draft[DRAFT_STATE]; + const source = state ? latest(state) : draft; + return source[prop]; +} +function readPropFromProto(state, source, prop) { + const desc = getDescriptorFromProto(source, prop); + return desc ? `value` in desc ? desc.value : ( + // This is a very special case, if the prop is a getter defined by the + // prototype, we should invoke it with the draft as context! + desc.get?.call(state.draft_) + ) : void 0; +} +function getDescriptorFromProto(source, prop) { + if (!(prop in source)) + return void 0; + let proto = getPrototypeOf(source); + while (proto) { + const desc = Object.getOwnPropertyDescriptor(proto, prop); + if (desc) + return desc; + proto = getPrototypeOf(proto); + } + return void 0; +} +function markChanged(state) { + if (!state.modified_) { + state.modified_ = true; + if (state.parent_) { + markChanged(state.parent_); + } + } +} +function prepareCopy(state) { + if (!state.copy_) { + state.copy_ = shallowCopy( + state.base_, + state.scope_.immer_.useStrictShallowCopy_ + ); + } +} +var Immer2 = class { + constructor(config) { + this.autoFreeze_ = true; + this.useStrictShallowCopy_ = false; + this.produce = (base, recipe, patchListener) => { + if (typeof base === "function" && typeof recipe !== "function") { + const defaultBase = recipe; + recipe = base; + const self2 = this; + return function curriedProduce(base2 = defaultBase, ...args) { + return self2.produce(base2, (draft) => recipe.call(this, draft, ...args)); + }; + } + if (typeof recipe !== "function") + die(6); + if (patchListener !== void 0 && typeof patchListener !== "function") + die(7); + let result; + if (isDraftable(base)) { + const scope = enterScope(this); + const proxy = createProxy(base, void 0); + let hasError = true; + try { + result = recipe(proxy); + hasError = false; + } finally { + if (hasError) + revokeScope(scope); + else + leaveScope(scope); + } + usePatchesInScope(scope, patchListener); + return processResult(result, scope); + } else if (!base || typeof base !== "object") { + result = recipe(base); + if (result === void 0) + result = base; + if (result === NOTHING) + result = void 0; + if (this.autoFreeze_) + freeze(result, true); + if (patchListener) { + const p = []; + const ip = []; + getPlugin("Patches").generateReplacementPatches_(base, result, p, ip); + patchListener(p, ip); + } + return result; + } else + die(1, base); + }; + this.produceWithPatches = (base, recipe) => { + if (typeof base === "function") { + return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args)); + } + let patches, inversePatches; + const result = this.produce(base, recipe, (p, ip) => { + patches = p; + inversePatches = ip; + }); + return [result, patches, inversePatches]; + }; + if (typeof config?.autoFreeze === "boolean") + this.setAutoFreeze(config.autoFreeze); + if (typeof config?.useStrictShallowCopy === "boolean") + this.setUseStrictShallowCopy(config.useStrictShallowCopy); + } + createDraft(base) { + if (!isDraftable(base)) + die(8); + if (isDraft(base)) + base = current(base); + const scope = enterScope(this); + const proxy = createProxy(base, void 0); + proxy[DRAFT_STATE].isManual_ = true; + leaveScope(scope); + return proxy; + } + finishDraft(draft, patchListener) { + const state = draft && draft[DRAFT_STATE]; + if (!state || !state.isManual_) + die(9); + const { scope_: scope } = state; + usePatchesInScope(scope, patchListener); + return processResult(void 0, scope); + } + /** + * Pass true to automatically freeze all copies created by Immer. + * + * By default, auto-freezing is enabled. + */ + setAutoFreeze(value) { + this.autoFreeze_ = value; + } + /** + * Pass true to enable strict shallow copy. + * + * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties. + */ + setUseStrictShallowCopy(value) { + this.useStrictShallowCopy_ = value; + } + applyPatches(base, patches) { + let i; + for (i = patches.length - 1; i >= 0; i--) { + const patch = patches[i]; + if (patch.path.length === 0 && patch.op === "replace") { + base = patch.value; + break; + } + } + if (i > -1) { + patches = patches.slice(i + 1); + } + const applyPatchesImpl = getPlugin("Patches").applyPatches_; + if (isDraft(base)) { + return applyPatchesImpl(base, patches); + } + return this.produce( + base, + (draft) => applyPatchesImpl(draft, patches) + ); + } +}; +function createProxy(value, parent) { + const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent); + const scope = parent ? parent.scope_ : getCurrentScope(); + scope.drafts_.push(draft); + return draft; +} +function current(value) { + if (!isDraft(value)) + die(10, value); + return currentImpl(value); +} +function currentImpl(value) { + if (!isDraftable(value) || isFrozen(value)) + return value; + const state = value[DRAFT_STATE]; + let copy; + if (state) { + if (!state.modified_) + return state.base_; + state.finalized_ = true; + copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_); + } else { + copy = shallowCopy(value, true); + } + each(copy, (key, childValue) => { + set2(copy, key, currentImpl(childValue)); + }); + if (state) { + state.finalized_ = false; + } + return copy; +} +var immer = new Immer2(); +var produce = immer.produce; +var produceWithPatches = immer.produceWithPatches.bind( + immer +); +var setAutoFreeze = immer.setAutoFreeze.bind(immer); +var setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer); +var applyPatches = immer.applyPatches.bind(immer); +var createDraft = immer.createDraft.bind(immer); +var finishDraft = immer.finishDraft.bind(immer); + +// ../cursorless-engine/src/testUtil/takeSnapshot.ts +async function takeSnapshot(storedTargets, excludeFields = [], extraFields = [], editor, ide2, marks2, extraContext, metadata, clipboard) { + const snapshot = { + documentContents: editor.document.getText(), + selections: editor.selections.map(selectionToPlainObject) + }; + if (marks2 != null) { + snapshot.marks = marks2; + } + if (metadata != null) { + snapshot.metadata = metadata; + } + if (!excludeFields.includes("clipboard")) { + snapshot.clipboard = await (clipboard ?? ide2.clipboard).readText(); + } + if (!excludeFields.includes("visibleRanges")) { + snapshot.visibleRanges = editor.visibleRanges.map(rangeToPlainObject); + } + for (const storedTargetKey of storedTargetKeys) { + const targets = storedTargets?.get(storedTargetKey); + const key = `${storedTargetKey}Mark`; + if (targets != null && !excludeFields.includes(key)) { + snapshot[key] = targets.map((target) => target.toPlainObject()); + } + } + if (extraFields.includes("timeOffsetSeconds")) { + const startTimestamp = extraContext?.startTimestamp; + if (startTimestamp == null) { + throw new Error( + "No start timestamp provided but time offset was requested" + ); + } + const offsetNanoseconds = process.hrtime.bigint() - startTimestamp; + snapshot.timeOffsetSeconds = hrtimeBigintToSeconds(offsetNanoseconds); + } + return snapshot; +} + +// ../cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts +var import_immutability_helper = __toESM(require_immutability_helper(), 1); +var import_lodash12 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/generateSpokenForm/NoSpokenFormError.ts +var NoSpokenFormError = class extends Error { + constructor(reason, requiresTalonUpdate = false, isPrivate2 = false) { + super(`No spoken form for: ${reason}`); + this.reason = reason; + this.requiresTalonUpdate = requiresTalonUpdate; + this.isPrivate = isPrivate2; + } +}; + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/actions.ts +var actions = { + breakLine: "break", + scrollToBottom: "bottom", + toggleLineBreakpoint: "break point", + cutToClipboard: "carve", + scrollToCenter: "center", + clearAndSetSelection: "change", + remove: "chuck", + insertCopyBefore: "clone up", + insertCopyAfter: "clone", + toggleLineComment: "comment", + copyToClipboard: "copy", + scrollToTop: "crown", + outdentLine: "dedent", + revealDefinition: "define", + editNewLineBefore: "drink", + insertEmptyLineBefore: "drop", + extractVariable: "extract", + insertEmptyLineAfter: "float", + foldRegion: "fold", + followLink: "follow", + deselect: "give", + highlight: "highlight", + showHover: "hover", + increment: "increment", + decrement: "decrement", + indentLine: "indent", + showDebugHover: "inspect", + setSelectionAfter: "post", + editNewLineAfter: "pour", + setSelectionBefore: "pre", + insertEmptyLinesAround: "puff", + showQuickFix: "quick fix", + showReferences: "reference", + rename: "rename", + reverseTargets: "reverse", + findInDocument: "scout", + findInWorkspace: "scout all", + randomizeTargets: "shuffle", + generateSnippet: "snippet make", + sortTargets: "sort", + setSelection: "take", + revealTypeDefinition: "type deaf", + unfoldRegion: "unfold", + callAsFunction: "call", + swapTargets: "swap", + replaceWithTarget: "bring", + moveToTarget: "move", + wrapWithPairedDelimiter: "wrap", + wrapWithSnippet: "wrap", + rewrapWithPairedDelimiter: "repack", + insertSnippet: "snippet", + pasteFromClipboard: "paste", + joinLines: "join", + ["private.showParseTree"]: "parse tree", + ["experimental.setInstanceReference"]: "from", + editNew: null, + executeCommand: null, + getText: null, + replace: null, + ["private.getTargets"]: null, + ["private.setKeyboardTarget"]: null + // These actions are implemented talon-side, usually using `getText` followed + // by some other action. + // applyFormatter: "format", + // nextHomophone: "phones", +}; + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts +var connectives = { + rangeExclusive: "between", + rangeInclusive: "past", + // Note: rangeExcludingStart has no default spoken form + rangeExcludingStart: null, + rangeExcludingEnd: "until", + listConnective: "and", + swapConnective: "with", + sourceDestinationConnective: "to", + before: "before", + after: "after", + verticalRange: "slice", + previous: "previous", + next: "next", + forward: "forward", + backward: "backward" +}; + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts +var surroundingPairsDelimiters = { + curlyBrackets: ["{", "}"], + angleBrackets: ["<", ">"], + escapedDoubleQuotes: ['\\"', '\\"'], + escapedSingleQuotes: ["\\'", "\\'"], + escapedParentheses: ["\\(", "\\)"], + escapedSquareBrackets: ["\\[", "\\]"], + doubleQuotes: ['"', '"'], + parentheses: ["(", ")"], + backtickQuotes: ["`", "`"], + squareBrackets: ["[", "]"], + singleQuotes: ["'", "'"], + whitespace: [" ", " "], + any: null, + string: null, + collectionBoundary: null +}; + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts +var surroundingPairDelimiterToName = new CompositeKeyMap((pair) => pair); +for (const [name, pair] of Object.entries(surroundingPairsDelimiters)) { + if (pair != null) { + surroundingPairDelimiterToName.set( + pair, + name + ); + } +} +function surroundingPairDelimitersToSpokenForm(spokenFormMap, left, right) { + const pairName = surroundingPairDelimiterToName.get([left, right]); + if (pairName == null) { + throw Error(`Unknown surrounding pair delimiters '${left} ${right}'`); + } + return spokenFormMap.pairedDelimiter[pairName]; +} + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts +var insertionSnippets = { + ifStatement: "if", + ifElseStatement: "if else", + tryCatchStatement: "try", + functionDeclaration: "funk", + link: "link" +}; +var wrapperSnippets = { + "ifElseStatement.alternative": "else", + "functionDeclaration.body": "funk", + "ifElseStatement.consequence": "if else", + "ifStatement.consequence": "if", + "tryCatchStatement.body": "try", + "link.text": "link" +}; +function insertionSnippetToSpokenForm(snippetDescription) { + if (snippetDescription.type === "custom") { + throw new NoSpokenFormError("Custom insertion snippet"); + } + const result = insertionSnippets[snippetDescription.name]; + if (result == null) { + throw new NoSpokenFormError( + `Named insertion snippet '${snippetDescription.name}'` + ); + } + if (snippetDescription.substitutions != null) { + const values2 = Object.values(snippetDescription.substitutions); + return `${result} ${values2.join(" ")}`; + } + return result; +} +function wrapperSnippetToSpokenForm(snippetDescription) { + if (snippetDescription.type === "custom") { + throw new NoSpokenFormError("Custom wrap with snippet"); + } + const name = `${snippetDescription.name}.${snippetDescription.variableName}`; + const result = wrapperSnippets[name]; + if (result == null) { + throw new NoSpokenFormError(`Named wrap with snippet '${name}'`); + } + return result; +} + +// ../cursorless-engine/src/generateSpokenForm/getRangeConnective.ts +function getRangeConnective(excludeAnchor, excludeActive, type2) { + const prefix = type2 === "vertical" ? `${connectives.verticalRange} ` : ""; + if (excludeAnchor && excludeActive) { + return prefix + connectives.rangeExclusive; + } + if (excludeAnchor) { + throw new NoSpokenFormError("Range exclude anchor"); + } + if (excludeActive) { + return prefix + connectives.rangeExcludingEnd; + } + if (type2 === "vertical") { + return connectives.verticalRange; + } + return connectives.rangeInclusive; +} + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts +var hatColors = { + blue: "blue", + green: "green", + red: "red", + pink: "pink", + yellow: "yellow", + userColor1: "navy", + userColor2: "apricot", + default: null +}; +var hatShapes = { + ex: "ex", + fox: "fox", + wing: "wing", + hole: "hole", + frame: "frame", + curve: "curve", + eye: "eye", + play: "play", + crosshairs: "cross", + bolt: "bolt", + default: null +}; +var marks = { + cursor: "this", + that: "that", + source: "source", + nothing: "nothing", + keyboard: null, + explicit: null, + decoratedSymbol: null, + lineNumber: null, + range: null +}; +var lineDirections = { + modulo100: "row", + relativeUp: "up", + relativeDown: "down" +}; +function hatColorToSpokenForm(color) { + const result = hatColors[color]; + if (result == null) { + throw Error(`Unknown hat color '${color}'`); + } + return result; +} +function hatShapeToSpokenForm(shape) { + const result = hatShapes[shape]; + if (result == null) { + throw Error(`Unknown hat shape '${shape}'`); + } + return result; +} + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts +var numbers = [ + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "ten", + "eleven", + "twelve", + "thirteen", + "fourteen", + "fifteen", + "sixteen", + "seventeen", + "eighteen", + "nineteen", + "twenty", + "twenty one", + "twenty two", + "twenty three", + "twenty four", + "twenty five", + "twenty six", + "twenty seven", + "twenty eight", + "twenty nine", + "thirty", + "thirty one", + "thirty two", + "thirty three", + "thirty four", + "thirty five", + "thirty six", + "thirty seven", + "thirty eight", + "thirty nine", + "forty", + "forty one", + "forty two", + "forty three", + "forty four", + "forty five", + "forty six", + "forty seven", + "forty eight", + "forty nine", + "fifty", + "fifty one", + "fifty two", + "fifty three", + "fifty four", + "fifty five", + "fifty six", + "fifty seven", + "fifty eight", + "fifty nine", + "sixty", + "sixty one", + "sixty two", + "sixty three", + "sixty four", + "sixty five", + "sixty six", + "sixty seven", + "sixty eight", + "sixty nine", + "seventy", + "seventy one", + "seventy two", + "seventy three", + "seventy four", + "seventy five", + "seventy six", + "seventy seven", + "seventy eight", + "seventy nine", + "eighty", + "eighty one", + "eighty two", + "eighty three", + "eighty four", + "eighty five", + "eighty six", + "eighty seven", + "eighty eight", + "eighty nine", + "ninety", + "ninety one", + "ninety two", + "ninety three", + "ninety four", + "ninety five", + "ninety six", + "ninety seven", + "ninety eight", + "ninety nine" +]; +var ordinals = [ + "zeroth", + "first", + "second", + "third", + "fourth", + "fifth", + "sixth", + "seventh", + "eighth", + "ninth", + "tenth", + "eleventh", + "twelfth", + "thirteenth", + "fourteenth", + "fifteenth", + "sixteenth", + "seventeenth", + "eighteenth", + "nineteenth", + "twentieth" +]; +function numberToSpokenForm(number) { + const result = numbers[number]; + if (result == null) { + throw Error(`Unknown number '${number}'`); + } + return result; +} +function ordinalToSpokenForm(ordinal) { + const result = ordinals[ordinal]; + if (result == null) { + throw Error(`Unknown ordinal '${ordinal}'`); + } + return result; +} + +// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/characters.ts +var alphabet = Object.fromEntries( + "air bat cap drum each fine gust harp sit jury crunch look made near odd pit quench red sun trap urge vest whale plex yank zip".split(" ").map((word, index) => [ + String.fromCharCode("a".charCodeAt(0) + index), + word + ]) +); +var digits = Object.fromEntries( + "zero one two three four five six seven eight nine".split(" ").map((word, index) => [index.toString(), word]) +); +var symbols = { + ".": "dot", + ",": "comma", + ";": "semicolon", + ":": "colon", + "!": "bang", + "*": "asterisk", + "@": "at sign", + "&": "ampersand", + "?": "question", + "/": "slash", + "\\": "backslash", + "-": "dash", + "=": "equals", + "+": "plus", + "~": "tilde", + _: "underscore", + "#": "hash", + "%": "percent", + "^": "caret", + "|": "pipe", + $: "dollar", + "\xA3": "pound", + "'": "quote", + '"': "double quote", + "`": "back tick", + "(": "paren", + ")": "right paren", + "{": "brace", + "}": "right brace", + "[": "square", + "]": "right square", + "<": "angle", + ">": "right angle", + "\uFFFD": "special" +}; +var characters = { + ...alphabet, + ...digits, + ...symbols +}; +function characterToSpokenForm(char) { + const result = characters[char]; + if (result == null) { + throw new NoSpokenFormError(`Unknown character '${char}'`); + } + return result; +} + +// ../cursorless-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts +var PrimitiveTargetSpokenFormGenerator = class { + constructor(spokenFormMap) { + this.spokenFormMap = spokenFormMap; + this.handleModifier = this.handleModifier.bind(this); + } + handlePrimitiveTarget(target) { + const components = []; + if (target.modifiers != null) { + components.push(target.modifiers.map(this.handleModifier)); + } + if (target.mark != null) { + components.push(this.handleMark(target.mark)); + } + return components; + } + handleModifier(modifier) { + switch (modifier.type) { + case "cascading": + case "modifyIfUntyped": + throw new NoSpokenFormError(`Modifier '${modifier.type}'`); + case "containingScope": + if (modifier.ancestorIndex == null || modifier.ancestorIndex === 0) { + return this.handleScopeType(modifier.scopeType); + } + if (modifier.ancestorIndex === 1) { + return [ + this.spokenFormMap.modifierExtra.ancestor, + this.handleScopeType(modifier.scopeType) + ]; + } + throw new NoSpokenFormError( + `Modifier '${modifier.type}' with ancestor index ${modifier.ancestorIndex}` + ); + case "everyScope": + return [ + this.spokenFormMap.simpleModifier.everyScope, + this.handleScopeType(modifier.scopeType) + ]; + case "extendThroughStartOf": + case "extendThroughEndOf": { + const type2 = this.spokenFormMap.simpleModifier[modifier.type]; + return modifier.modifiers != null ? [type2, modifier.modifiers.map(this.handleModifier)] : [type2]; + } + case "relativeScope": + return modifier.offset === 0 ? this.handleRelativeScopeInclusive(modifier) : this.handleRelativeScopeExclusive(modifier); + case "ordinalScope": { + const scope = this.handleScopeType(modifier.scopeType); + const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : []; + if (modifier.length === 1) { + if (modifier.start === -1) { + return [isEvery, this.spokenFormMap.modifierExtra.last, scope]; + } + if (modifier.start === 0) { + return [isEvery, this.spokenFormMap.modifierExtra.first, scope]; + } + if (modifier.start < 0) { + return [ + isEvery, + ordinalToSpokenForm(Math.abs(modifier.start)), + this.spokenFormMap.modifierExtra.last, + scope + ]; + } + return [isEvery, ordinalToSpokenForm(modifier.start + 1), scope]; + } + const number = numberToSpokenForm(modifier.length); + if (modifier.start === 0) { + return [ + isEvery, + this.spokenFormMap.modifierExtra.first, + number, + pluralize(scope) + ]; + } + if (modifier.start === -modifier.length) { + return [ + isEvery, + this.spokenFormMap.modifierExtra.last, + number, + pluralize(scope) + ]; + } + throw new NoSpokenFormError( + `'${modifier.type}' with count > 1 and offset away from start / end` + ); + } + case "range": { + if (modifier.anchor.type === "ordinalScope" && modifier.active.type === "ordinalScope" && modifier.anchor.length === 1 && modifier.active.length === 1 && modifier.anchor.scopeType.type === modifier.active.scopeType.type) { + const anchor = modifier.anchor.start === -1 ? this.spokenFormMap.modifierExtra.last : ordinalToSpokenForm(modifier.anchor.start + 1); + const active = this.handleModifier(modifier.active); + const connective = getRangeConnective( + modifier.excludeAnchor, + modifier.excludeActive + ); + return [anchor, connective, active]; + } + throw Error(`Modifier '${modifier.type}' is not fully implemented`); + } + default: + return [this.spokenFormMap.simpleModifier[modifier.type]]; + } + } + handleRelativeScopeInclusive(modifier) { + const scope = this.handleScopeType(modifier.scopeType); + const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : []; + if (modifier.length === 1) { + const direction = modifier.direction === "forward" ? connectives.forward : connectives.backward; + return [isEvery, scope, direction]; + } + const length = numberToSpokenForm(modifier.length); + const scopePlural = pluralize(scope); + if (modifier.direction === "forward") { + return [isEvery, length, scopePlural]; + } + return [isEvery, length, scopePlural, connectives.backward]; + } + handleRelativeScopeExclusive(modifier) { + const scope = this.handleScopeType(modifier.scopeType); + const direction = modifier.direction === "forward" ? connectives.next : connectives.previous; + const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : []; + if (modifier.offset === 1) { + const number = numberToSpokenForm(modifier.length); + if (modifier.length === 1) { + return [isEvery, direction, scope]; + } + const scopePlural = pluralize(scope); + return [isEvery, direction, number, scopePlural]; + } + if (modifier.length === 1) { + const ordinal = ordinalToSpokenForm(modifier.offset); + return [isEvery, ordinal, direction, scope]; + } + throw new NoSpokenFormError( + `${modifier.type} modifier with offset > 1 and length > 1` + ); + } + handleScopeType(scopeType) { + switch (scopeType.type) { + case "oneOf": + throw new NoSpokenFormError(`Scope type '${scopeType.type}'`); + case "glyph": + return [ + this.spokenFormMap.complexScopeTypeType.glyph, + characterToSpokenForm(scopeType.character) + ]; + case "surroundingPair": { + const pair = this.spokenFormMap.pairedDelimiter[scopeType.delimiter]; + if (scopeType.forceDirection != null) { + return [ + this.spokenFormMap.surroundingPairForceDirection[scopeType.forceDirection], + pair + ]; + } + return pair; + } + case "customRegex": + return this.spokenFormMap.customRegex[scopeType.regex] ?? { + type: "customizable", + spokenForms: { + spokenForms: [], + isCustom: true, + defaultSpokenForms: [], + requiresTalonUpdate: false, + isPrivate: false + }, + spokenFormType: "customRegex", + id: scopeType.regex + }; + default: + return this.spokenFormMap.simpleScopeTypeType[scopeType.type]; + } + } + handleMark(mark) { + switch (mark.type) { + case "decoratedSymbol": { + const [color, shape] = mark.symbolColor.split("-"); + const components = []; + if (color !== "default") { + components.push(hatColorToSpokenForm(color)); + } + if (shape != null) { + components.push(hatShapeToSpokenForm(shape)); + } + components.push(characterToSpokenForm(mark.character)); + return components; + } + case "lineNumber": { + return this.handleLineNumberMark(mark); + } + case "range": { + if (mark.anchor.type === "lineNumber" && mark.active.type === "lineNumber") { + const [typeAnchor, numberAnchor] = this.handleLineNumberMark( + mark.anchor + ); + const [typeActive, numberActive] = this.handleLineNumberMark( + mark.active + ); + if (typeAnchor === typeActive) { + const connective = getRangeConnective( + mark.excludeAnchor, + mark.excludeActive + ); + return [typeAnchor, numberAnchor, connective, numberActive]; + } + } + throw Error(`Mark '${mark.type}' is not fully implemented`); + } + case "explicit": + case "keyboard": + throw new NoSpokenFormError(`Mark '${mark.type}'`); + default: + return [marks[mark.type]]; + } + } + handleLineNumberMark(mark) { + switch (mark.lineNumberType) { + case "absolute": + throw new NoSpokenFormError("Absolute line numbers"); + case "modulo100": { + return [ + lineDirections.modulo100, + numberToSpokenForm(mark.lineNumber + 1) + ]; + } + case "relative": { + return [ + mark.lineNumber < 0 ? lineDirections.relativeUp : lineDirections.relativeDown, + numberToSpokenForm(Math.abs(mark.lineNumber)) + ]; + } + } + } +}; +function pluralize(name) { + if (typeof name === "string") { + return pluralizeString(name); + } + if (Array.isArray(name)) { + if (name.length === 0) { + return name; + } + const last2 = name[name.length - 1]; + return [...name.slice(0, -1), pluralize(last2)]; + } + return { + ...name, + spokenForms: { + ...name.spokenForms, + spokenForms: name.spokenForms.spokenForms.map(pluralizeString) + } + }; +} +function pluralizeString(name) { + return `${name}s`; +} + +// ../cursorless-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts +function getSpokenFormComponentMap(spokenFormMap) { + return Object.fromEntries( + Object.entries(spokenFormMap).map(([spokenFormType, map4]) => [ + spokenFormType, + Object.fromEntries( + Object.entries(map4).map(([id, spokenForms]) => [ + id, + { + type: "customizable", + spokenForms, + spokenFormType, + id + } + ]) + ) + ]) + // FIXME: Don't cast here; need to make our own mapValues with stronger typing + // using tricks from our object.d.ts + ); +} + +// ../cursorless-engine/src/generateSpokenForm/generateSpokenForm.ts +var SpokenFormGenerator = class { + constructor(spokenFormMap) { + this.spokenFormMap = getSpokenFormComponentMap(spokenFormMap); + this.primitiveGenerator = new PrimitiveTargetSpokenFormGenerator( + this.spokenFormMap + ); + } + /** + * Given a command, generates its spoken form. + * @param command The command to generate a spoken form for + * @returns The spoken form of the command + */ + processCommand(command) { + return this.componentsToSpokenForm(() => this.handleAction(command.action)); + } + /** + * Given a scope type, generates its spoken form. + * @param scopeType The scope type to generate a spoken form for + * @returns The spoken form of the scope type + */ + processScopeType(scopeType) { + return this.componentsToSpokenForm(() => [ + this.primitiveGenerator.handleScopeType(scopeType) + ]); + } + /** + * Given a function that returns a spoken form component, generates a spoken + * form for that component by flattening the component and performing a + * cartesian product over any elements that have multiple ways to be spoken. + * Note that this spoken form object can correspond to multiple actual spoken + * forms, consisting of a preferred spoken form and a list of alternative + * spoken forms. + * + * Note that today, we arbitrarily choose the first spoken form as the + * preferred spoken form, and the rest as alternative spoken forms. + * + * If the function throws a {@link NoSpokenFormError}, returns an error spoken + * form object instead. + * + * @param getComponents A function that returns the components to generate a + * spoken form for + * @returns A spoken form for the given components + */ + componentsToSpokenForm(getComponents) { + try { + return { + type: "success", + spokenForms: constructSpokenForms(getComponents()) + }; + } catch (e) { + if (e instanceof NoSpokenFormError) { + return { + type: "error", + reason: e.reason, + requiresTalonUpdate: e.requiresTalonUpdate, + isPrivate: e.isPrivate + }; + } + throw e; + } + } + handleAction(action) { + switch (action.name) { + case "editNew": + case "getText": + case "replace": + case "executeCommand": + case "private.getTargets": + case "private.setKeyboardTarget": + throw new NoSpokenFormError(`Action '${action.name}'`); + case "replaceWithTarget": + case "moveToTarget": + return [ + actions[action.name], + this.handleTarget(action.source), + this.handleDestination(action.destination) + ]; + case "swapTargets": + return [ + actions[action.name], + this.handleTarget(action.target1), + connectives.swapConnective, + this.handleTarget(action.target2) + ]; + case "callAsFunction": + if (action.argument.type === "implicit") { + return [actions[action.name], this.handleTarget(action.callee)]; + } + return [ + actions[action.name], + this.handleTarget(action.callee), + "on", + this.handleTarget(action.argument) + ]; + case "wrapWithPairedDelimiter": + case "rewrapWithPairedDelimiter": + return [ + surroundingPairDelimitersToSpokenForm( + this.spokenFormMap, + action.left, + action.right + ), + actions[action.name], + this.handleTarget(action.target) + ]; + case "pasteFromClipboard": + return [ + actions[action.name], + this.handleDestination(action.destination) + ]; + case "insertSnippet": + return [ + actions[action.name], + insertionSnippetToSpokenForm(action.snippetDescription), + this.handleDestination(action.destination) + ]; + case "generateSnippet": + if (action.snippetName != null) { + throw new NoSpokenFormError(`${action.name}.snippetName`); + } + return [actions[action.name], this.handleTarget(action.target)]; + case "wrapWithSnippet": + return [ + wrapperSnippetToSpokenForm(action.snippetDescription), + actions[action.name], + this.handleTarget(action.target) + ]; + case "highlight": { + if (action.highlightId != null) { + throw new NoSpokenFormError(`${action.name}.highlightId`); + } + return [actions[action.name], this.handleTarget(action.target)]; + } + default: { + return [actions[action.name], this.handleTarget(action.target)]; + } + } + } + handleTarget(target) { + switch (target.type) { + case "list": + if (target.elements.length < 2) { + throw new NoSpokenFormError("List target with < 2 elements"); + } + return target.elements.map( + (element, i) => i === 0 ? this.handleTarget(element) : [connectives.listConnective, this.handleTarget(element)] + ); + case "range": { + const anchor = this.handleTarget(target.anchor); + const active = this.handleTarget(target.active); + const connective = getRangeConnective( + target.excludeAnchor, + target.excludeActive, + target.rangeType + ); + return [anchor, connective, active]; + } + case "primitive": + return this.primitiveGenerator.handlePrimitiveTarget(target); + case "implicit": + return []; + } + } + handleDestination(destination) { + switch (destination.type) { + case "list": + if (destination.destinations.length < 2) { + throw new NoSpokenFormError("List destination with < 2 elements"); + } + return destination.destinations.map( + (destination2, i) => i === 0 ? this.handleDestination(destination2) : [connectives.listConnective, this.handleDestination(destination2)] + ); + case "primitive": + return [ + this.handleInsertionMode(destination.insertionMode), + this.handleTarget(destination.target) + ]; + case "implicit": + return []; + } + } + handleInsertionMode(insertionMode) { + switch (insertionMode) { + case "to": + return connectives.sourceDestinationConnective; + case "before": + return connectives.before; + case "after": + return connectives.after; + } + } +}; +function constructSpokenForms(component) { + if (typeof component === "string") { + return [component]; + } + if (Array.isArray(component)) { + if (component.length === 0) { + return [""]; + } + return cartesianProduct(component.map(constructSpokenForms)).map( + (words) => words.filter((word) => word.length !== 0).join(" ") + ); + } + if (component.spokenForms.spokenForms.length === 0) { + const componentInfo = `${camelCaseToAllDown( + component.spokenFormType + )} with id ${component.id}`; + let helpInfo; + if (component.spokenForms.isPrivate) { + helpInfo = "this is a private spoken form currently only for internal experimentation"; + } else if (component.spokenForms.requiresTalonUpdate) { + helpInfo = "please update talon to the latest version (see https://www.cursorless.org/docs/user/updating/)"; + } else { + helpInfo = "please see https://www.cursorless.org/docs/user/customization/ for more information"; + } + throw new NoSpokenFormError( + `${componentInfo}; ${helpInfo}`, + component.spokenForms.requiresTalonUpdate, + component.spokenForms.isPrivate + ); + } + return component.spokenForms.spokenForms; +} +function cartesianProduct(arrays) { + if (arrays.length === 0) { + return []; + } + if (arrays.length === 1) { + return arrays[0].map((element) => [element]); + } + const [first, ...rest] = arrays; + const restCartesianProduct = cartesianProduct(rest); + return first.flatMap( + (element) => restCartesianProduct.map((restElement) => [element, ...restElement]) + ); +} + +// ../cursorless-engine/src/spokenForms/SpokenFormMap.ts +function mapSpokenForms(input, mapper) { + return Object.fromEntries( + Object.entries(input).map(([spokenFormType, map4]) => [ + spokenFormType, + Object.fromEntries( + Object.entries(map4).map(([id, inputValue]) => [ + id, + mapper(inputValue, spokenFormType, id) + ]) + ) + ]) + // FIXME: Don't cast here; need to make our own mapValues with stronger typing + // using tricks from our object.d.ts + ); +} + +// ../cursorless-engine/src/spokenForms/spokenFormMapUtil.ts +function isDisabledByDefault(...spokenForms) { + return { + defaultSpokenForms: spokenForms, + isDisabledByDefault: true, + isPrivate: false + }; +} +function isPrivate(...spokenForms) { + return { + defaultSpokenForms: spokenForms, + isDisabledByDefault: true, + isPrivate: true + }; +} + +// ../cursorless-engine/src/spokenForms/defaultSpokenFormMapCore.ts +var defaultSpokenFormMapCore = { + pairedDelimiter: { + curlyBrackets: "curly", + angleBrackets: "diamond", + escapedDoubleQuotes: "escaped quad", + escapedSingleQuotes: "escaped twin", + escapedParentheses: "escaped round", + escapedSquareBrackets: "escaped box", + doubleQuotes: "quad", + parentheses: "round", + backtickQuotes: "skis", + squareBrackets: "box", + singleQuotes: "twin", + any: "pair", + string: "string", + whitespace: "void", + collectionBoundary: isPrivate("collection boundary") + }, + simpleScopeTypeType: { + argumentOrParameter: "arg", + attribute: "attribute", + functionCall: "call", + functionCallee: "callee", + className: "class name", + class: "class", + comment: "comment", + functionName: "funk name", + namedFunction: "funk", + ifStatement: "if state", + instance: "instance", + collectionItem: "item", + collectionKey: "key", + anonymousFunction: "lambda", + list: "list", + map: "map", + name: "name", + regularExpression: "regex", + section: "section", + sectionLevelOne: isDisabledByDefault("one section"), + sectionLevelTwo: isDisabledByDefault("two section"), + sectionLevelThree: isDisabledByDefault("three section"), + sectionLevelFour: isDisabledByDefault("four section"), + sectionLevelFive: isDisabledByDefault("five section"), + sectionLevelSix: isDisabledByDefault("six section"), + selector: "selector", + statement: "state", + branch: "branch", + type: "type", + value: "value", + condition: "condition", + unit: "unit", + // XML, JSX + xmlElement: "element", + xmlBothTags: "tags", + xmlStartTag: "start tag", + xmlEndTag: "end tag", + // LaTeX + part: "part", + chapter: "chapter", + subSection: "subsection", + subSubSection: "subsubsection", + namedParagraph: "paragraph", + subParagraph: "subparagraph", + environment: "environment", + // Talon + command: "command", + // Text-based scope types + character: "char", + word: "sub", + token: "token", + identifier: "identifier", + line: "line", + sentence: "sentence", + paragraph: "block", + document: "file", + nonWhitespaceSequence: "paint", + boundedNonWhitespaceSequence: "short paint", + url: "link", + notebookCell: "cell", + ["private.fieldAccess"]: isPrivate("access"), + string: isPrivate("parse tree string"), + ["private.switchStatementSubject"]: isPrivate("subject") + }, + complexScopeTypeType: { + glyph: "glyph" + }, + surroundingPairForceDirection: { + left: "left", + right: "right" + }, + simpleModifier: { + excludeInterior: "bounds", + toRawSelection: "just", + leading: "leading", + trailing: "trailing", + keepContentFilter: "content", + keepEmptyFilter: "empty", + inferPreviousMark: "its", + startOf: "start of", + endOf: "end of", + interiorOnly: "inside", + visible: "visible", + extendThroughStartOf: "head", + extendThroughEndOf: "tail", + everyScope: "every" + }, + modifierExtra: { + first: "first", + last: "last", + previous: "previous", + next: "next", + forward: "forward", + backward: "backward", + ancestor: "grand" + }, + customRegex: {} +}; + +// ../cursorless-engine/src/spokenForms/defaultSpokenFormMap.ts +var defaultSpokenFormInfoMap = mapSpokenForms( + defaultSpokenFormMapCore, + (value) => typeof value === "string" ? { + defaultSpokenForms: [value], + isDisabledByDefault: false, + isPrivate: false + } : value +); +var defaultSpokenFormMap = mapSpokenForms( + defaultSpokenFormInfoMap, + ({ defaultSpokenForms, isDisabledByDefault: isDisabledByDefault2, isPrivate: isPrivate2 }) => ({ + spokenForms: isDisabledByDefault2 ? [] : defaultSpokenForms, + isCustom: false, + defaultSpokenForms, + requiresTalonUpdate: false, + isPrivate: isPrivate2 + }) +); + +// ../cursorless-engine/src/testCaseRecorder/TestCase.ts +var import_lodash11 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/getPartialTargetDescriptors.ts +function getPartialTargetDescriptors(action) { + switch (action.name) { + case "callAsFunction": + return [action.callee, action.argument]; + case "replaceWithTarget": + case "moveToTarget": + return [ + action.source, + ...getPartialTargetDescriptorsFromDestination(action.destination) + ]; + case "swapTargets": + return [action.target1, action.target2]; + case "pasteFromClipboard": + case "insertSnippet": + case "replace": + case "editNew": + return getPartialTargetDescriptorsFromDestination(action.destination); + default: + return [action.target]; + } +} +function getPartialTargetDescriptorsFromDestination(destination) { + switch (destination.type) { + case "list": + return destination.destinations.map(({ target }) => target); + case "primitive": + return [destination.target]; + case "implicit": + return []; + } +} + +// ../cursorless-engine/src/util/object.ts +function mergeStrict(...objects) { + const returnValue = {}; + objects.forEach((object) => { + for (const [key, value] of Object.entries(object)) { + if (Object.prototype.hasOwnProperty.call(returnValue, key)) { + throw new Error(`Found duplicate property ${key}`); + } + returnValue[key] = value; + } + }); + return returnValue; +} +function unsafeKeys(o) { + return Object.keys(o); +} + +// ../cursorless-engine/src/core/StoredTargets.ts +var StoredTargetMap = class { + constructor() { + this.targetMap = /* @__PURE__ */ new Map(); + this.notifier = new Notifier(); + } + set(key, targets) { + this.targetMap.set(key, targets); + this.notifier.notifyListeners(key, targets); + } + get(key) { + return this.targetMap.get(key); + } + onStoredTargets(callback2) { + for (const key of storedTargetKeys) { + callback2(key, this.get(key)); + } + return this.notifier.registerListener(callback2); + } +}; + +// ../cursorless-engine/src/core/Debug.ts +var Debug = class { + constructor(treeSitter) { + this.treeSitter = treeSitter; + ide().disposeOnExit(this); + this.evaluateSetting = this.evaluateSetting.bind(this); + this.logBranchTypes = this.logBranchTypes.bind(this); + this.active = true; + switch (ide().runMode) { + case "development": + this.enableDebugLog(); + break; + case "test": + this.disableDebugLog(); + break; + case "production": + this.evaluateSetting(); + this.disposableConfiguration = ide().configuration.onDidChangeConfiguration(this.evaluateSetting); + break; + } + } + log(...args) { + if (this.active) { + console.log(...args); + } + } + dispose() { + if (this.disposableConfiguration) { + this.disposableConfiguration.dispose(); + } + if (this.disposableSelection) { + this.disposableSelection.dispose(); + } + } + enableDebugLog() { + this.active = true; + this.disposableSelection = ide().onDidChangeTextEditorSelection( + this.logBranchTypes + ); + } + disableDebugLog() { + this.active = false; + if (this.disposableSelection) { + this.disposableSelection.dispose(); + this.disposableSelection = void 0; + } + } + evaluateSetting() { + const debugEnabled = ide().configuration.getOwnConfiguration("debug"); + if (debugEnabled) { + this.enableDebugLog(); + } else { + this.disableDebugLog(); + } + } + logBranchTypes(event) { + let node; + try { + node = this.treeSitter.getNodeAtLocation( + ide().activeTextEditor.document, + event.selections[0] + ); + } catch (error) { + return; + } + const ancestors = [node]; + while (node.parent != null) { + ancestors.unshift(node.parent); + node = node.parent; + } + const cursor = node.tree.walk(); + this.printCursorLocationInfo(ancestors, cursor, 0); + } + printCursorLocationInfo(nodes, cursor, index) { + const field = cursor.currentFieldName(); + const fieldText = field != null ? `${field}: ` : ""; + const indent = " ".repeat(index); + const nodeIsLast = index === nodes.length - 1; + const { nodeIsNamed } = cursor; + let text = `${indent}${fieldText}`; + if (nodeIsNamed) { + text += `(${cursor.nodeType}`; + if (nodeIsLast) { + text += ")"; + } + } else { + text += `"${cursor.nodeType}"`; + } + console.log(text); + if (!nodeIsLast && this.cursorGoToChildWithId(cursor, nodes[index + 1].id)) { + this.printCursorLocationInfo(nodes, cursor, index + 1); + } + if (nodeIsNamed && !nodeIsLast) { + console.log(`${indent})`); + } + } + cursorGoToChildWithId(cursor, id) { + cursor.gotoFirstChild(); + while (cursor.currentNode().id !== id) { + if (!cursor.gotoNextSibling()) { + return false; + } + } + return true; + } +}; + +// ../cursorless-engine/src/core/HatTokenMapImpl.ts +var import_process = require("process"); + +// ../cursorless-engine/src/util/bigint.ts +function abs(x) { + return x < BigInt(0) ? -x : x; +} + +// ../cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts +var import_lodash13 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/regex.ts +function _rightAnchored(regex) { + const { source, flags } = regex; + return new RegExp(`(${source})$`, flags.replace("m", "")); +} +function _leftAnchored(regex) { + const { source, flags } = regex; + return new RegExp(`^(${source})`, flags.replace("m", "")); +} +function makeCache(func) { + const cache = /* @__PURE__ */ new Map(); + function wrapper(arg) { + let cachedValue = cache.get(arg); + if (cachedValue == null) { + cachedValue = func(arg); + cache.set(arg, cachedValue); + } + return cachedValue; + } + return wrapper; +} +var rightAnchored = makeCache(_rightAnchored); +var leftAnchored = makeCache(_leftAnchored); +function matchAll(text, regex, mapfn) { + regex.lastIndex = 0; + return Array.from(text.matchAll(regex), mapfn); +} +function testRegex(regex, text) { + regex.lastIndex = 0; + return regex.test(text); +} +function matchRegex(regex, text) { + regex.lastIndex = 0; + return text.match(regex); +} +function matchText(text, regex) { + return matchAll(text, regex, (match2) => ({ + index: match2.index, + text: match2[0] + })); +} + +// ../cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts +var KNOWN_SYMBOLS = [ + "!", + "#", + "$", + "%", + "&", + "'", + "(", + ")", + "*", + "+", + ",", + "-", + ".", + "/", + ":", + ";", + "<", + "=", + ">", + "?", + "@", + "[", + "\\", + "]", + "^", + "_", + "`", + "{", + "|", + "}", + "~", + "\xA3", + '"' +]; +var KNOWN_SYMBOL_REGEXP_STR = KNOWN_SYMBOLS.map(import_lodash13.escapeRegExp).join("|"); +var KNOWN_GRAPHEME_REGEXP_STR = ["[a-zA-Z0-9]", KNOWN_SYMBOL_REGEXP_STR].join( + "|" +); +var KNOWN_GRAPHEME_MATCHER = new RegExp( + `^(${KNOWN_GRAPHEME_REGEXP_STR})$`, + "u" +); +var UNKNOWN = "[unk]"; +var GRAPHEME_SPLIT_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}]/gu; +var TokenGraphemeSplitter = class { + constructor() { + this.disposables = []; + this.algorithmChangeNotifier = new Notifier(); + /** + * Splits {@link token} into a list of graphemes, normalised as per + * {@link normalizeGrapheme}. + * @param token The token to split + * @returns A list of normalised graphemes in {@link token} + */ + this.getTokenGraphemes = (token) => matchAll(token, GRAPHEME_SPLIT_REGEX, (match2) => ({ + text: this.normalizeGrapheme(match2[0]), + tokenStartOffset: match2.index, + tokenEndOffset: match2.index + match2[0].length + })); + /** + * Register to be notified when the graphing splitting algorithm changes, for example if + * the user changes the setting to enable preserving case + * @param listener A function to be called when graphing splitting algorithm changes + * @returns A function that can be called to unsubscribe from notifications + */ + this.registerAlgorithmChangeListener = this.algorithmChangeNotifier.registerListener; + ide().disposeOnExit(this); + this.updateTokenHatSplittingMode = this.updateTokenHatSplittingMode.bind(this); + this.getTokenGraphemes = this.getTokenGraphemes.bind(this); + this.updateTokenHatSplittingMode(); + this.disposables.push( + // Notify listeners in case the user changed their token hat splitting + // setting. + ide().configuration.onDidChangeConfiguration( + this.updateTokenHatSplittingMode + ) + ); + } + updateTokenHatSplittingMode() { + const { lettersToPreserve, symbolsToPreserve, ...rest } = ide().configuration.getOwnConfiguration("tokenHatSplittingMode"); + this.tokenHatSplittingMode = { + lettersToPreserve: lettersToPreserve.map( + (grapheme) => grapheme.toLowerCase().normalize("NFC") + ), + symbolsToPreserve: symbolsToPreserve.map( + (grapheme) => grapheme.normalize("NFC") + ), + ...rest + }; + this.algorithmChangeNotifier.notifyListeners(); + } + /** + * Normalizes the grapheme {@link rawGraphemeText} based on user + * configuration. Proceeds as follows: + * + * 1. Runs text through Unicode NFC normalization to ensure that characters + * that look identical are handled the same (eg whether they use combining + * mark or single codepoint for diacritics). + * 2. If the grapheme is a known grapheme, returns it. + * 3. Transforms grapheme to lowercase if + * {@link TokenHatSplittingMode.preserveCase} is `false` + * 3. Returns the (possibly case-normalised) grapheme if it appears in + * {@link TokenHatSplittingMode.lettersToPreserve} + * 4. Strips diacritics from the grapheme + * 5. If the grapheme doesn't match {@link KNOWN_GRAPHEME_MATCHER}, maps the + * grapheme to the constant {@link UNKNOWN}, so that it can be referred to + * using "special", "red special", etc. + * 6. Returns the grapheme. + * + * @param rawGraphemeText The raw grapheme text to normalise + * @returns The normalised grapheme + */ + normalizeGrapheme(rawGraphemeText) { + const { preserveCase, lettersToPreserve, symbolsToPreserve } = this.tokenHatSplittingMode; + let returnValue = rawGraphemeText.normalize("NFC"); + if (symbolsToPreserve.includes(returnValue)) { + return returnValue; + } + if (!preserveCase) { + returnValue = returnValue.toLowerCase(); + } + if (lettersToPreserve.includes(returnValue.toLowerCase())) { + return returnValue; + } + returnValue = (0, import_lodash13.deburr)(returnValue); + if (!KNOWN_GRAPHEME_MATCHER.test(returnValue)) { + returnValue = UNKNOWN; + } + return returnValue; + } + dispose() { + this.disposables.forEach(({ dispose }) => dispose()); + } +}; + +// ../cursorless-engine/src/singletons/tokenGraphemeSplitter.singleton.ts +function tokenGraphemeSplitter() { + if (tokenGraphemeSplitter_ == null) { + tokenGraphemeSplitter_ = new TokenGraphemeSplitter(); + } + return tokenGraphemeSplitter_; +} +var tokenGraphemeSplitter_; + +// ../cursorless-engine/src/util/allocateHats/HatMetrics.ts +var import_lodash14 = __toESM(require_lodash(), 1); +var negativePenalty = ({ penalty }) => -penalty; +function hatOldTokenRank(hatOldTokenRanks) { + return ({ grapheme: { text: grapheme }, style }) => { + const hatOldTokenRank2 = hatOldTokenRanks.get({ + grapheme, + hatStyle: style + }); + return hatOldTokenRank2 == null ? Infinity : -hatOldTokenRank2; + }; +} +function minimumTokenRankContainingGrapheme(tokenRank, graphemeTokenRanks) { + const coreMetric = (0, import_lodash14.memoize)((graphemeText) => { + return (0, import_lodash14.min)(graphemeTokenRanks[graphemeText].filter((r) => r > tokenRank)) ?? Infinity; + }); + return ({ grapheme: { text } }) => coreMetric(text); +} +function isOldTokenHat(oldTokenHat) { + return (hat) => hat.grapheme.text === oldTokenHat?.grapheme && hat.style === oldTokenHat?.hatStyle ? 1 : 0; +} +function penaltyEquivalenceClass(hatStability) { + switch (hatStability) { + case "greedy" /* greedy */: + return ({ penalty }) => -penalty; + case "balanced" /* balanced */: + return ({ penalty }) => -(penalty < 2 ? 0 : 1); + case "stable" /* stable */: + return (_) => 0; + } +} + +// ../cursorless-engine/src/util/allocateHats/maxByFirstDiffering.ts +function maxByFirstDiffering(arr, fns) { + if (arr.length === 0) { + return void 0; + } + let remainingValues = arr; + for (const fn of fns) { + if (remainingValues.length === 1) { + return remainingValues[0]; + } + remainingValues = maxByAllowingTies(remainingValues, fn); + } + return remainingValues[0]; +} +function maxByAllowingTies(arr, fn) { + let best = -Infinity; + const keep = []; + for (const item of arr) { + const value = fn(item); + if (value < best) { + continue; + } + if (value > best) { + best = value; + keep.length = 0; + } + keep.push(item); + } + return keep; +} + +// ../cursorless-engine/src/util/allocateHats/chooseTokenHat.ts +function chooseTokenHat({ hatOldTokenRanks, graphemeTokenRanks }, hatStability, tokenRank, oldTokenHat, candidates) { + return maxByFirstDiffering(candidates, [ + // 1. Discard any hats that are sufficiently worse than the best hat that we + // wouldn't use them even if they were our old hat + penaltyEquivalenceClass(hatStability), + // 2. Use our old hat if it's still in the running + isOldTokenHat(oldTokenHat), + // 3. Use a free hat if possible; if not, steal the hat of the token with + // lowest rank + hatOldTokenRank(hatOldTokenRanks), + // 4. Narrow to the hats with the lowest penalty + negativePenalty, + // 5. Prefer hats that sit on a grapheme that doesn't appear in any highly + // ranked token + minimumTokenRankContainingGrapheme(tokenRank, graphemeTokenRanks) + ]); +} + +// ../cursorless-engine/src/util/allocateHats/getHatRankingContext.ts +function getHatRankingContext(tokens, oldTokenHatMap, tokenGraphemeSplitter2) { + const graphemeTokenRanks = {}; + const hatOldTokenRanks = new CompositeKeyMap(({ grapheme, hatStyle }) => [grapheme, hatStyle]); + tokens.forEach(({ token, rank }) => { + const existingTokenHat = oldTokenHatMap.get(token); + if (existingTokenHat != null) { + hatOldTokenRanks.set(existingTokenHat, rank); + } + tokenGraphemeSplitter2.getTokenGraphemes(token.text).forEach(({ text: graphemeText }) => { + let tokenRanksForGrapheme; + if (graphemeText in graphemeTokenRanks) { + tokenRanksForGrapheme = graphemeTokenRanks[graphemeText]; + } else { + tokenRanksForGrapheme = []; + graphemeTokenRanks[graphemeText] = tokenRanksForGrapheme; + } + tokenRanksForGrapheme.push(rank); + }); + }); + return { + hatOldTokenRanks, + graphemeTokenRanks + }; +} + +// ../cursorless-engine/src/util/allocateHats/getRankedTokens.ts +var import_lodash17 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/allocateHats/getDisplayLineMap.ts +var import_lodash15 = __toESM(require_lodash(), 1); +function getDisplayLineMap(editor, extraLines = []) { + return new Map( + (0, import_lodash15.flow)( + import_lodash15.flatten, + import_lodash15.uniq + )( + (0, import_lodash15.concat)( + [extraLines], + editor.visibleRanges.map( + (visibleRange) => (0, import_lodash15.range)(visibleRange.start.line, visibleRange.end.line + 1) + ) + ) + ).sort((a, b) => a - b).map((value, index) => [value, index]) + ); +} + +// ../cursorless-engine/src/util/allocateHats/getTokenComparator.ts +function getTokenComparator(selectionDisplayLine, selectionCharacterIndex) { + return (token1, token2) => { + const token1LineDiff = Math.abs(token1.displayLine - selectionDisplayLine); + const token2LineDiff = Math.abs(token2.displayLine - selectionDisplayLine); + if (token1LineDiff < token2LineDiff) { + return -1; + } + if (token1LineDiff > token2LineDiff) { + return 1; + } + const token1CharacterDiff = Math.abs( + token1.range.start.character - selectionCharacterIndex + ); + const token2CharacterDiff = Math.abs( + token2.range.start.character - selectionCharacterIndex + ); + return token1CharacterDiff - token2CharacterDiff; + }; +} + +// ../cursorless-engine/src/tokenizer/tokenizer.ts +var import_lodash16 = __toESM(require_lodash(), 1); +var REPEATABLE_SYMBOLS = [ + "-", + "+", + "*", + "/", + "=", + "<", + ">", + "_", + "#", + ".", + "|", + "&", + ":" +]; +var FIXED_TOKENS = [ + "!==", + "!=", + "+=", + "-=", + "*=", + "/=", + "%=", + "<=", + ">=", + "=>", + "->", + "??", + '"""', + "```", + "/*", + "*/", + "" +]; +var IDENTIFIER_WORD_REGEXES = ["\\p{L}", "\\p{M}", "\\p{N}"]; +var SINGLE_SYMBOLS_REGEX = "[^\\s\\w]"; +var NUMBERS_REGEX = "(? `${s}+`).join("|"); + const fixedTokensRegex = fixedTokens.map(import_lodash16.escapeRegExp).join("|"); + const identifierComponents = identifierWordRegexes.concat( + identifierWordDelimiters.map(import_lodash16.escapeRegExp) + ); + const identifiersRegex = `(${identifierComponents.join("|")})+`; + const wordRegex = `(${identifierWordRegexes.join("|")})+`; + const regex = [ + fixedTokensRegex, + numbersRegex, + identifiersRegex, + repeatableSymbolsRegex, + singleSymbolsRegex + ].join("|"); + return { + identifierMatcher: new RegExp(identifiersRegex, "gu"), + wordMatcher: new RegExp(wordRegex, "gu"), + tokenMatcher: new RegExp(regex, "gu") + }; +} +var matchers = /* @__PURE__ */ new Map(); +function getMatcher(languageId) { + const wordSeparators = ide().configuration.getOwnConfiguration( + "wordSeparators", + { + languageId + } + ); + const key = wordSeparators.join("\0"); + if (!matchers.has(key)) { + const components = { + fixedTokens: FIXED_TOKENS, + repeatableSymbols: REPEATABLE_SYMBOLS, + identifierWordRegexes: IDENTIFIER_WORD_REGEXES, + identifierWordDelimiters: wordSeparators, + numbersRegex: NUMBERS_REGEX, + singleSymbolsRegex: SINGLE_SYMBOLS_REGEX + }; + matchers.set(key, generateMatcher(components)); + } + return matchers.get(key); +} +function tokenize(text, languageId, mapfn) { + return matchAll(text, getMatcher(languageId).tokenMatcher, mapfn); +} + +// ../cursorless-engine/src/util/allocateHats/getTokensInRange.ts +function getTokensInRange(editor, range4) { + const languageId = editor.document.languageId; + const text = editor.document.getText(range4); + const rangeOffset = editor.document.offsetAt(range4.start); + return tokenize(text, languageId, (match2) => { + const startOffset = rangeOffset + match2.index; + const endOffset = rangeOffset + match2.index + match2[0].length; + const range5 = new Range( + editor.document.positionAt(startOffset), + editor.document.positionAt(endOffset) + ); + return { + editor, + text: match2[0], + range: range5, + offsets: { start: startOffset, end: endOffset } + }; + }); +} + +// ../cursorless-engine/src/util/allocateHats/getRankedTokens.ts +function getRankedTokens(activeTextEditor, visibleTextEditors) { + const editors = getRankedEditors( + activeTextEditor, + visibleTextEditors + ); + return editors.flatMap((editor) => { + const referencePosition = editor.selections[0].active; + const displayLineMap = getDisplayLineMap(editor, [referencePosition.line]); + const tokens = (0, import_lodash17.flatten)( + editor.visibleRanges.map( + (range4) => getTokensInRange(editor, range4).map((partialToken) => ({ + ...partialToken, + displayLine: displayLineMap.get(partialToken.range.start.line) + })) + ) + ); + tokens.sort( + getTokenComparator( + displayLineMap.get(referencePosition.line), + referencePosition.character + ) + ); + return tokens.map((token, index) => ({ token, rank: -index })); + }); +} +function getRankedEditors(activeTextEditor, visibleTextEditors) { + let editors; + if (activeTextEditor == null) { + editors = visibleTextEditors; + } else { + editors = [ + activeTextEditor, + ...visibleTextEditors.filter((editor) => editor !== activeTextEditor) + ]; + } + return editors; +} + +// ../cursorless-engine/src/util/allocateHats/allocateHats.ts +function allocateHats(tokenGraphemeSplitter2, enabledHatStyles, oldTokenHats, hatStability, activeTextEditor, visibleTextEditors) { + const tokenOldHatMap = getTokenOldHatMap(oldTokenHats); + const rankedTokens = getRankedTokens(activeTextEditor, visibleTextEditors); + const context = getHatRankingContext( + rankedTokens, + tokenOldHatMap, + tokenGraphemeSplitter2 + ); + const enabledHatStyleNames = Object.keys(enabledHatStyles); + const graphemeRemainingHatCandidates = new DefaultMap( + () => [...enabledHatStyleNames] + ); + return rankedTokens.map(({ token, rank: tokenRank }) => { + const tokenRemainingHatCandidates = getTokenRemainingHatCandidates( + tokenGraphemeSplitter2, + token, + graphemeRemainingHatCandidates, + enabledHatStyles + ); + const chosenHat = chooseTokenHat( + context, + hatStability, + tokenRank, + tokenOldHatMap.get(token), + tokenRemainingHatCandidates + ); + if (chosenHat == null) { + return void 0; + } + graphemeRemainingHatCandidates.set( + chosenHat.grapheme.text, + graphemeRemainingHatCandidates.get(chosenHat.grapheme.text).filter((style) => style !== chosenHat.style) + ); + return constructHatRangeDescriptor(token, chosenHat); + }).filter((value) => value != null); +} +function getTokenOldHatMap(oldTokenHats) { + const tokenOldHatMap = new CompositeKeyMap( + ({ editor, offsets }) => [editor.id, offsets.start, offsets.end] + ); + oldTokenHats.forEach( + (descriptor) => tokenOldHatMap.set(descriptor.token, descriptor) + ); + return tokenOldHatMap; +} +function getTokenRemainingHatCandidates(tokenGraphemeSplitter2, token, graphemeRemainingHatCandidates, enabledHatStyles) { + const candidates = []; + const graphemes = tokenGraphemeSplitter2.getTokenGraphemes(token.text); + for (const grapheme of graphemes) { + for (const style of graphemeRemainingHatCandidates.get(grapheme.text)) { + candidates.push({ + grapheme, + style, + penalty: enabledHatStyles[style].penalty + }); + } + } + return candidates; +} +function constructHatRangeDescriptor(token, chosenHat) { + return { + hatStyle: chosenHat.style, + grapheme: chosenHat.grapheme.text, + token, + hatRange: new Range( + token.range.start.translate( + void 0, + chosenHat.grapheme.tokenStartOffset + ), + token.range.start.translate(void 0, chosenHat.grapheme.tokenEndOffset) + ) + }; +} + +// ../cursorless-engine/src/core/Debouncer.ts +var Debouncer = class { + constructor(callback2, debounceDelayMs) { + this.callback = callback2; + this.debounceDelayMs = debounceDelayMs; + this.timeoutHandle = null; + this.run = this.run.bind(this); + } + run() { + if (this.timeoutHandle != null) { + clearTimeout(this.timeoutHandle); + } + const decorationDebounceDelayMs = this.debounceDelayMs ?? ide().configuration.getOwnConfiguration("decorationDebounceDelayMs"); + this.timeoutHandle = setTimeout(() => { + this.callback(); + this.timeoutHandle = null; + }, decorationDebounceDelayMs); + } + dispose() { + if (this.timeoutHandle != null) { + clearTimeout(this.timeoutHandle); + } + } +}; + +// ../cursorless-engine/src/core/HatAllocator.ts +var HatAllocator = class { + constructor(hats, context) { + this.hats = hats; + this.context = context; + this.disposables = []; + this.debouncer = new Debouncer(() => this.allocateHats()); + ide().disposeOnExit(this); + this.disposables.push( + this.hats.onDidChangeEnabledHatStyles(this.debouncer.run), + this.hats.onDidChangeIsEnabled(this.debouncer.run), + // An event that fires when a text document opens + ide().onDidOpenTextDocument(this.debouncer.run), + // An event that fires when a text document closes + ide().onDidCloseTextDocument(this.debouncer.run), + // An Event which fires when the active editor has changed. Note that the event also fires when the active editor changes to undefined. + ide().onDidChangeActiveTextEditor(this.debouncer.run), + // An Event which fires when the array of visible editors has changed. + ide().onDidChangeVisibleTextEditors(this.debouncer.run), + // An event that is emitted when a text document is changed. This usually happens when the contents changes but also when other things like the dirty-state changes. + ide().onDidChangeTextDocument(this.debouncer.run), + // An Event which fires when the selection in an editor has changed. + ide().onDidChangeTextEditorSelection(this.debouncer.run), + // An Event which fires when the visible ranges of an editor has changed. + ide().onDidChangeTextEditorVisibleRanges(this.debouncer.run), + // Re-draw hats on grapheme splitting algorithm change in case they + // changed their token hat splitting setting. + tokenGraphemeSplitter().registerAlgorithmChangeListener( + this.debouncer.run + ), + this.debouncer + ); + } + /** + * Allocate hats to the visible tokens. + * + * @param oldTokenHats If supplied, pretend that this allocation was the + * previous allocation when trying to maintain stable hats. This parameter is + * used for testing. + */ + async allocateHats(oldTokenHats) { + const activeMap = await this.context.getActiveMap(); + const tokenHats = this.hats.isEnabled ? allocateHats( + tokenGraphemeSplitter(), + this.hats.enabledHatStyles, + oldTokenHats ?? activeMap.tokenHats, + ide().configuration.getOwnConfiguration("experimental.hatStability"), + ide().activeTextEditor, + ide().visibleTextEditors + ) : []; + activeMap.setTokenHats(tokenHats); + await this.hats.setHatRanges( + tokenHats.map(({ hatStyle, hatRange, token: { editor } }) => ({ + editor, + range: hatRange, + styleName: hatStyle + })) + ); + } + dispose() { + this.disposables.forEach(({ dispose }) => dispose()); + } +}; + +// ../cursorless-engine/src/core/IndividualHatMap.ts +var IndividualHatMap = class _IndividualHatMap { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.isExpired = false; + this.documentTokenLists = /* @__PURE__ */ new Map(); + this.deregisterFunctions = []; + this.map = {}; + this._tokenHats = []; + } + get tokenHats() { + return this._tokenHats; + } + getDocumentTokenList(document) { + const key = document.uri.toString(); + let currentValue = this.documentTokenLists.get(key); + if (currentValue == null) { + currentValue = []; + this.documentTokenLists.set(key, currentValue); + this.deregisterFunctions.push( + this.rangeUpdater.registerRangeInfoList(document, currentValue) + ); + } + return currentValue; + } + clone() { + const ret = new _IndividualHatMap(this.rangeUpdater); + ret.setTokenHats(this._tokenHats); + return ret; + } + /** + * Overwrites the hat assignemnt for this hat token map. + * + * @param tokenHats The new hat assignments + */ + setTokenHats(tokenHats) { + this.map = {}; + this.documentTokenLists = /* @__PURE__ */ new Map(); + this.deregisterFunctions.forEach((func) => func()); + const liveTokenHats = tokenHats.map((tokenHat) => { + const { hatStyle, grapheme, token } = tokenHat; + const liveToken = this.makeTokenLive(token); + this.map[getKey(hatStyle, grapheme)] = liveToken; + return { ...tokenHat, token: liveToken }; + }); + this._tokenHats = liveTokenHats; + } + makeTokenLive(token) { + const { tokenMatcher } = getMatcher(token.editor.document.languageId); + const liveToken = { + ...token, + expansionBehavior: { + start: { + type: "regex", + regex: tokenMatcher + }, + end: { + type: "regex", + regex: tokenMatcher + } + } + }; + this.getDocumentTokenList(token.editor.document).push(liveToken); + return liveToken; + } + getEntries() { + this.checkExpired(); + return Object.entries(this.map); + } + getToken(hatStyle, character) { + this.checkExpired(); + return this.map[getKey(hatStyle, tokenGraphemeSplitter().normalizeGrapheme(character))]; + } + checkExpired() { + if (this.isExpired) { + throw Error("Map snapshot has expired"); + } + } + dispose() { + this.isExpired = true; + this.deregisterFunctions.forEach((func) => func()); + } +}; + +// ../cursorless-engine/src/core/HatTokenMapImpl.ts +var PRE_PHRASE_SNAPSHOT_MAX_AGE_NS = BigInt(6e10); +var HatTokenMapImpl = class { + constructor(rangeUpdater, debug, hats, commandServerApi) { + this.debug = debug; + this.commandServerApi = commandServerApi; + this.prePhraseMapsSnapshotTimestamp = null; + this.lastSignalVersion = null; + ide().disposeOnExit(this); + this.activeMap = new IndividualHatMap(rangeUpdater); + this.getActiveMap = this.getActiveMap.bind(this); + this.allocateHats = this.allocateHats.bind(this); + this.hatAllocator = new HatAllocator(hats, { + getActiveMap: this.getActiveMap + }); + } + /** + * Allocate hats to the visible tokens. + * + * @param oldTokenHats If supplied, pretend that this allocation was the + * previous allocation when trying to maintain stable hats. This parameter is + * used for testing. + */ + allocateHats(oldTokenHats) { + return this.hatAllocator.allocateHats(oldTokenHats); + } + async getActiveMap() { + await this.maybeTakePrePhraseSnapshot(); + return this.activeMap; + } + /** + * Returns a transient, read-only hat map for use during the course of a + * single command. + * + * Please do not hold onto this copy beyond the lifetime of a single command, + * because it will get stale. + * @param usePrePhraseSnapshot Whether to use pre-phrase snapshot + * @returns A readable snapshot of the map + */ + async getReadableMap(usePrePhraseSnapshot) { + await this.maybeTakePrePhraseSnapshot(); + if (usePrePhraseSnapshot) { + if (this.lastSignalVersion == null) { + console.error( + "Pre phrase snapshot requested but no signal was present; please upgrade command client" + ); + return this.activeMap; + } + if (this.prePhraseMapSnapshot == null) { + console.error( + "Navigation map pre-phrase snapshot requested, but no snapshot has been taken" + ); + return this.activeMap; + } + if (abs(import_process.hrtime.bigint() - this.prePhraseMapsSnapshotTimestamp) > PRE_PHRASE_SNAPSHOT_MAX_AGE_NS) { + console.error( + "Navigation map pre-phrase snapshot requested, but snapshot is more than a minute old" + ); + return this.activeMap; + } + return this.prePhraseMapSnapshot; + } + return this.activeMap; + } + dispose() { + this.activeMap.dispose(); + if (this.prePhraseMapSnapshot != null) { + this.prePhraseMapSnapshot.dispose(); + } + } + async maybeTakePrePhraseSnapshot() { + const phraseStartSignal = this.commandServerApi?.signals?.prePhrase; + if (phraseStartSignal != null) { + const newSignalVersion = await phraseStartSignal.getVersion(); + if (newSignalVersion !== this.lastSignalVersion) { + this.debug.log("taking snapshot"); + this.lastSignalVersion = newSignalVersion; + if (newSignalVersion != null) { + this.takePrePhraseSnapshot(); + } + } + } + } + takePrePhraseSnapshot() { + if (this.prePhraseMapSnapshot != null) { + this.prePhraseMapSnapshot.dispose(); + } + this.prePhraseMapSnapshot = this.activeMap.clone(); + this.prePhraseMapsSnapshotTimestamp = import_process.hrtime.bigint(); + } +}; + +// ../cursorless-engine/src/core/Snippets.ts +var import_promises2 = require("fs/promises"); +var import_lodash19 = __toESM(require_lodash(), 1); +var import_path = require("path"); + +// ../cursorless-engine/src/core/mergeSnippets.ts +var import_lodash18 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/core/compareSnippetDefinitions.ts +function compareSnippetDefinitions(a, b) { + const scopeComparision = compareSnippetScopes( + a.definition.scope, + b.definition.scope + ); + if (scopeComparision !== 0) { + return scopeComparision; + } + return a.origin - b.origin; +} +function compareSnippetScopes(a, b) { + if (a == null && b == null) { + return 0; + } + if (a == null) { + return -1; + } + if (b == null) { + return 1; + } + if (a.langIds == null && b.langIds != null) { + return -1; + } + if (b.langIds == null && a.langIds != null) { + return 1; + } + const scopeTypesComparision = compareScopeTypes(a.scopeTypes, b.scopeTypes); + if (scopeTypesComparision !== 0) { + return scopeTypesComparision; + } + return a.langIds == null ? 0 : b.langIds.length - a.langIds.length; +} +function compareScopeTypes(a, b) { + if (a == null && b != null) { + return -1; + } + if (b == null && a != null) { + return 1; + } + return 0; +} + +// ../cursorless-engine/src/core/mergeSnippets.ts +function mergeSnippets(coreSnippets, thirdPartySnippets, userSnippets) { + const mergedSnippets = {}; + const mergedMap = (0, import_lodash18.mapValues)( + (0, import_lodash18.groupBy)( + [ + ...prepareSnippetsFromOrigin(0 /* core */, coreSnippets), + ...prepareSnippetsFromOrigin( + 1 /* thirdParty */, + ...Object.values(thirdPartySnippets) + ), + ...prepareSnippetsFromOrigin(2 /* user */, ...userSnippets) + ], + ([key]) => key + ), + (entries) => entries.map(([, value]) => value) + ); + Object.entries(mergedMap).forEach(([key, snippets]) => { + const mergedSnippet = (0, import_lodash18.merge)( + {}, + ...snippets.sort((a, b) => a.origin - b.origin).map(({ snippet: snippet2 }) => snippet2) + ); + mergedSnippet.definitions = snippets.flatMap( + ({ origin, snippet: snippet2 }) => snippet2.definitions.map((definition) => ({ origin, definition })) + ).sort((a, b) => -compareSnippetDefinitions(a, b)).map(({ definition }) => definition); + mergedSnippets[key] = mergedSnippet; + }); + return mergedSnippets; +} +function prepareSnippetsFromOrigin(origin, ...snippetMaps) { + return snippetMaps.map( + (snippetMap) => (0, import_lodash18.mapValues)((0, import_lodash18.cloneDeep)(snippetMap), (snippet2) => ({ + origin, + snippet: snippet2 + })) + ).flatMap((snippetMap) => Object.entries(snippetMap)); +} + +// ../cursorless-engine/src/core/Snippets.ts +var CURSORLESS_SNIPPETS_SUFFIX = ".cursorless-snippets"; +var SNIPPET_DIR_REFRESH_INTERVAL_MS = 1e3; +var Snippets = class { + constructor() { + this.thirdPartySnippets = {}; + /** + * The maximum modification time of any snippet in user snippets dir. + * + * This variable will be set to -1 if no user snippets have yet been read or + * if the user snippets path has changed. + * + * This variable will be set to 0 if the user has no snippets dir configured and + * we've already set userSnippets to {}. + */ + this.maxSnippetMtimeMs = -1; + /** + * If the user has misconfigured their snippet dir, then we keep track of it + * so that we can show them the error message if we can't find a snippet + * later, and so that we don't show them the same error message every time + * we try to poll the directory. + */ + this.directoryErrorMessage = null; + this.updateUserSnippetsPath(); + this.updateUserSnippets = this.updateUserSnippets.bind(this); + this.registerThirdPartySnippets = this.registerThirdPartySnippets.bind(this); + const timer = setInterval( + this.updateUserSnippets, + SNIPPET_DIR_REFRESH_INTERVAL_MS + ); + ide().disposeOnExit( + ide().configuration.onDidChangeConfiguration(() => { + if (this.updateUserSnippetsPath()) { + this.updateUserSnippets(); + } + }), + { + dispose() { + clearInterval(timer); + } + } + ); + } + async init() { + const extensionPath = ide().assetsRoot; + const snippetsDir = (0, import_path.join)(extensionPath, "cursorless-snippets"); + const snippetFiles = await getSnippetPaths(snippetsDir); + this.coreSnippets = mergeStrict( + ...await Promise.all( + snippetFiles.map( + async (path8) => JSON.parse(await (0, import_promises2.readFile)(path8, "utf8")) + ) + ) + ); + await this.updateUserSnippets(); + } + /** + * Updates the userSnippetsDir field if it has change, returning a boolean + * indicating whether there was an update. If there was an update, resets the + * maxSnippetMtime to -1 to ensure snippet update. + * @returns Boolean indicating whether path has changed + */ + updateUserSnippetsPath() { + const newUserSnippetsDir = ide().configuration.getOwnConfiguration( + "experimental.snippetsDir" + ); + if (newUserSnippetsDir === this.userSnippetsDir) { + return false; + } + this.maxSnippetMtimeMs = -1; + this.userSnippetsDir = newUserSnippetsDir; + return true; + } + async updateUserSnippets() { + let snippetFiles; + try { + snippetFiles = this.userSnippetsDir ? await getSnippetPaths(this.userSnippetsDir) : []; + } catch (err) { + if (this.directoryErrorMessage?.directory !== this.userSnippetsDir) { + const errorMessage = `Error with cursorless snippets dir "${this.userSnippetsDir}": ${err.message}`; + showError(ide().messages, "snippetsDirError", errorMessage); + this.directoryErrorMessage = { + directory: this.userSnippetsDir, + errorMessage + }; + } + this.userSnippets = []; + this.mergeSnippets(); + return; + } + this.directoryErrorMessage = null; + const maxSnippetMtime = (0, import_lodash19.max)( + (await Promise.all(snippetFiles.map((file) => (0, import_promises2.stat)(file)))).map( + (stat2) => stat2.mtimeMs + ) + ) ?? 0; + if (maxSnippetMtime <= this.maxSnippetMtimeMs) { + return; + } + this.maxSnippetMtimeMs = maxSnippetMtime; + this.userSnippets = await Promise.all( + snippetFiles.map(async (path8) => { + try { + const content = await (0, import_promises2.readFile)(path8, "utf8"); + if (content.length === 0) { + return {}; + } + return JSON.parse(content); + } catch (err) { + showError( + ide().messages, + "snippetsFileError", + `Error with cursorless snippets file "${path8}": ${err.message}` + ); + return {}; + } + }) + ); + this.mergeSnippets(); + } + /** + * Allows extensions to register third-party snippets. Calling this function + * twice with the same extensionId will replace the older snippets. + * + * Note that third-party snippets take precedence over core snippets, but + * user snippets take precedence over both. + * @param extensionId The id of the extension registering the snippets. + * @param snippets The snippets to be registered. + */ + registerThirdPartySnippets(extensionId, snippets) { + this.thirdPartySnippets[extensionId] = snippets; + this.mergeSnippets(); + } + /** + * Merge core, third-party, and user snippets, with precedence user > third + * party > core. + */ + mergeSnippets() { + this.mergedSnippets = mergeSnippets( + this.coreSnippets, + this.thirdPartySnippets, + this.userSnippets + ); + } + /** + * Looks in merged collection of snippets for a snippet with key + * `snippetName`. Throws an exception if the snippet of the given name could + * not be found + * @param snippetName The name of the snippet to look up + * @returns The named snippet + */ + getSnippetStrict(snippetName) { + const snippet2 = this.mergedSnippets[snippetName]; + if (snippet2 == null) { + let errorMessage = `Couldn't find snippet ${snippetName}. `; + if (this.directoryErrorMessage != null) { + errorMessage += `This could be due to: ${this.directoryErrorMessage.errorMessage}.`; + } + throw Error(errorMessage); + } + return snippet2; + } +}; +function getSnippetPaths(snippetsDir) { + return walkFiles(snippetsDir, CURSORLESS_SNIPPETS_SUFFIX); +} + +// ../cursorless-engine/src/core/updateSelections/RangeUpdater.ts +var import_lodash21 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/map.ts +function getDefault(map4, key, factory) { + let currentValue = map4.get(key); + if (currentValue == null) { + currentValue = factory(); + map4.set(key, currentValue); + } + return currentValue; +} + +// ../cursorless-engine/src/core/updateSelections/updateRangeInfos.ts +var import_lodash20 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts +var import_immutability_helper2 = __toESM(require_immutability_helper(), 1); +function getOffsetsForDeleteOrReplace(changeEventInfo, rangeInfo) { + const { + originalOffsets: { + start: changeOriginalStartOffset, + end: changeOriginalEndOffset + }, + finalOffsets: { end: changeFinalEndOffset }, + displacement + } = changeEventInfo; + const { + offsets: { start: rangeStart, end: rangeEnd } + } = rangeInfo; + (0, import_immutability_helper2.invariant)( + changeOriginalEndOffset > changeOriginalStartOffset, + () => "Change range expected to be nonempty" + ); + (0, import_immutability_helper2.invariant)( + changeOriginalEndOffset >= rangeStart && changeOriginalStartOffset <= rangeEnd, + () => "Change range expected to intersect with selection range" + ); + return { + start: changeOriginalEndOffset <= rangeStart ? rangeStart + displacement : Math.min(rangeStart, changeFinalEndOffset), + end: changeOriginalEndOffset <= rangeEnd ? rangeEnd + displacement : Math.min(rangeEnd, changeFinalEndOffset) + }; +} + +// ../cursorless-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts +var import_immutability_helper3 = __toESM(require_immutability_helper(), 1); +function getOffsetsForEmptyRangeInsert(changeEventInfo, rangeInfo) { + const { + event: { text, isReplace: isReplace3 }, + finalOffsets: { start, end } + } = changeEventInfo; + (0, import_immutability_helper3.invariant)( + start === changeEventInfo.originalOffsets.end && start === rangeInfo.offsets.start && start === rangeInfo.offsets.end, + () => "Selection range and change range expected to be same empty range" + ); + if (isReplace3) { + const expansionBehavior = rangeInfo.expansionBehavior.end; + switch (expansionBehavior.type) { + case "closed": + return { + start, + end: start + }; + case "open": + return { start, end }; + case "regex": { + const matches = text.match(leftAnchored(expansionBehavior.regex)); + return matches == null ? { + start, + end: start + } : { + start, + end: start + matches[0].length + }; + } + } + } else { + const expansionBehavior = rangeInfo.expansionBehavior.start; + switch (expansionBehavior.type) { + case "closed": + return { + start: end, + end + }; + case "open": + return { start, end }; + case "regex": { + const index = text.search(rightAnchored(expansionBehavior.regex)); + return index === -1 ? { + start: end, + end + } : { + start: start + index, + end + }; + } + } + } +} + +// ../cursorless-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts +var import_immutability_helper4 = __toESM(require_immutability_helper(), 1); +function getOffsetsForNonEmptyRangeInsert(changeEventInfo, rangeInfo) { + const { + event: { text: insertedText }, + originalOffsets: { start: insertOffset }, + displacement + } = changeEventInfo; + const { + offsets: { start: rangeStart, end: rangeEnd }, + text: originalRangeText + } = rangeInfo; + (0, import_immutability_helper4.invariant)( + rangeEnd > rangeStart, + () => "Selection range expected to be nonempty" + ); + (0, import_immutability_helper4.invariant)( + insertOffset >= rangeStart && insertOffset <= rangeEnd, + () => "Insertion offset expected to intersect with selection range" + ); + if (insertOffset > rangeStart && insertOffset < rangeEnd) { + return { start: rangeStart, end: rangeEnd + displacement }; + } + if (insertOffset === rangeStart) { + const expansionBehavior = rangeInfo.expansionBehavior.start; + const newRangeEnd = rangeEnd + displacement; + switch (expansionBehavior.type) { + case "closed": + return { + start: rangeStart + displacement, + end: newRangeEnd + }; + case "open": + return { + start: rangeStart, + end: newRangeEnd + }; + case "regex": { + let text = insertedText + originalRangeText; + const regex = rightAnchored(expansionBehavior.regex); + let index = text.search(regex); + while (index > insertedText.length) { + text = text.slice(0, index); + index = text.search(regex); + } + return index === -1 ? { + start: rangeStart, + end: newRangeEnd + } : { + start: rangeStart + index, + end: newRangeEnd + }; + } + } + } else { + const expansionBehavior = rangeInfo.expansionBehavior.end; + const newRangeStart = rangeStart; + switch (expansionBehavior.type) { + case "closed": + return { + start: newRangeStart, + end: rangeEnd + }; + case "open": + return { + start: newRangeStart, + end: rangeEnd + displacement + }; + case "regex": { + let text = originalRangeText + insertedText; + const regex = leftAnchored(expansionBehavior.regex); + let matches = text.match(regex); + let matchLength = matches == null ? 0 : matches[0].length; + while (matchLength !== 0 && matchLength < originalRangeText.length) { + text = originalRangeText.slice(matchLength) + insertedText; + matches = text.match(regex); + matchLength = matches == null ? 0 : matchLength + matches[0].length; + } + return matchLength === 0 ? { + start: newRangeStart, + end: rangeEnd + } : { + start: newRangeStart, + end: rangeStart + matchLength + }; + } + } + } +} + +// ../cursorless-engine/src/core/updateSelections/getUpdatedText.ts +function getUpdatedText(changeEventInfo, rangeInfo, newOffsets) { + const { start: changeOriginalOffsetsStart, end: changeOriginalOffsetsEnd } = changeEventInfo.originalOffsets; + const { start: rangeOriginalOffsetsStart, end: rangeOriginalOffsetsEnd } = rangeInfo.offsets; + const newTextStartOffset = Math.min( + changeOriginalOffsetsStart, + rangeOriginalOffsetsStart + ); + let result = ""; + if (rangeOriginalOffsetsStart < changeOriginalOffsetsStart) { + result += rangeInfo.text.substring( + 0, + changeOriginalOffsetsStart - rangeOriginalOffsetsStart + ); + } + result += changeEventInfo.event.text; + if (changeOriginalOffsetsEnd < rangeOriginalOffsetsEnd) { + result += rangeInfo.text.substring( + rangeOriginalOffsetsEnd - changeOriginalOffsetsEnd, + rangeInfo.text.length + ); + } + return result.substring( + newOffsets.start - newTextStartOffset, + newOffsets.end - newTextStartOffset + ); +} + +// ../cursorless-engine/src/core/updateSelections/updateRangeInfos.ts +function updateRangeInfos(changeEvent, rangeInfoGenerator) { + const { document, contentChanges } = changeEvent; + const changeEventInfos = contentChanges.map((change) => { + const changeDisplacement = change.text.length - change.rangeLength; + const changeOriginalStartOffset = change.rangeOffset; + const changeOriginalEndOffset = changeOriginalStartOffset + change.rangeLength; + const changeFinalStartOffset = changeOriginalStartOffset; + const changeFinalEndOffset = changeOriginalEndOffset + changeDisplacement; + return { + displacement: changeDisplacement, + event: change, + originalOffsets: { + start: changeOriginalStartOffset, + end: changeOriginalEndOffset + }, + finalOffsets: { + start: changeFinalStartOffset, + end: changeFinalEndOffset + } + }; + }); + for (const rangeInfo of rangeInfoGenerator) { + const originalOffsets = rangeInfo.offsets; + const displacements = changeEventInfos.map((changeEventInfo) => { + let newOffsets2; + if (changeEventInfo.originalOffsets.start > originalOffsets.end) { + return { + start: 0, + end: 0 + }; + } + if (changeEventInfo.originalOffsets.end < originalOffsets.start) { + return { + start: changeEventInfo.displacement, + end: changeEventInfo.displacement + }; + } + if (changeEventInfo.event.rangeLength === 0) { + if (rangeInfo.range.isEmpty) { + newOffsets2 = getOffsetsForEmptyRangeInsert( + changeEventInfo, + rangeInfo + ); + } else { + newOffsets2 = getOffsetsForNonEmptyRangeInsert( + changeEventInfo, + rangeInfo + ); + } + } else { + newOffsets2 = getOffsetsForDeleteOrReplace(changeEventInfo, rangeInfo); + } + rangeInfo.text = getUpdatedText(changeEventInfo, rangeInfo, newOffsets2); + return { + start: newOffsets2.start - originalOffsets.start, + end: newOffsets2.end - originalOffsets.end + }; + }); + const newOffsets = { + start: originalOffsets.start + (0, import_lodash20.sumBy)(displacements, ({ start }) => start), + end: originalOffsets.end + (0, import_lodash20.sumBy)(displacements, ({ end }) => end) + }; + rangeInfo.range = rangeInfo.range.with( + document.positionAt(newOffsets.start), + document.positionAt(newOffsets.end) + ); + rangeInfo.offsets = newOffsets; + } +} + +// ../cursorless-engine/src/core/updateSelections/RangeUpdater.ts +var RangeUpdater = class { + constructor() { + this.rangeInfoLists = /* @__PURE__ */ new Map(); + this.replaceEditLists = /* @__PURE__ */ new Map(); + this.listenForDocumentChanges(); + } + getDocumentRangeInfoLists(document) { + return getDefault(this.rangeInfoLists, document.uri.toString(), () => []); + } + getDocumentReplaceEditLists(document) { + return getDefault(this.replaceEditLists, document.uri.toString(), () => []); + } + /** + * Registers a list of range infos to be kept up to date. It is ok to + * add to this list after registering it; any items in the list at the time of + * a document change will be kept up to date. Please be sure to call the + * returned deregister function when you no longer need the ranges + * updated. + * @param document The document containing the ranges + * @param rangeInfoList The ranges to keep up to date; it is ok to add to this list after the fact + * @returns A function that can be used to deregister the list + */ + registerRangeInfoList(document, rangeInfoList) { + const documentRangeInfoLists = this.getDocumentRangeInfoLists(document); + documentRangeInfoLists.push(rangeInfoList); + return () => (0, import_lodash21.pull)(documentRangeInfoLists, rangeInfoList); + } + /** + * Registers a list of edits to treat as replace edits. These edits are + * insertions that will not shift an empty selection to the right. Call this + * function before applying your edits to the document + * + * Note that if you make two edits at the same location with the same text, + * it is not possible to mark only one of them as replace edit. + * + * It is ok to add to this list after registering it; any items in the list + * at the time of a document change will be treated as replace edits. Please + * be sure to call the returned deregister function after you have waited for + * your edits to be applied. + * @param document The document containing the ranges + * @param replaceEditList A list of edits to treat as replace edits; it is ok to add to this list after the fact + * @returns A function that can be used to deregister the list + */ + registerReplaceEditList(document, replaceEditList) { + const documentReplaceEditLists = this.getDocumentReplaceEditLists(document); + documentReplaceEditLists.push(replaceEditList); + return () => (0, import_lodash21.pull)(documentReplaceEditLists, replaceEditList); + } + *documentRangeInfoGenerator(document) { + const documentRangeInfoLists = this.getDocumentRangeInfoLists(document); + for (const rangeInfoLists of documentRangeInfoLists) { + for (const rangeInfo of rangeInfoLists) { + yield rangeInfo; + } + } + } + listenForDocumentChanges() { + this.disposable = ide().onDidChangeTextDocument( + (event) => { + const changes = event.contentChanges; + console.debug( + `RangeUpdater.listenForDocumentChanges(): changes=${JSON.stringify(changes)}` + ); + const documentReplaceEditLists = this.getDocumentReplaceEditLists( + event.document + ); + const extendedEvent = { + ...event, + contentChanges: event.contentChanges.map( + (change) => isReplace(documentReplaceEditLists, change) ? { + ...change, + isReplace: true + } : change + ) + }; + updateRangeInfos( + extendedEvent, + this.documentRangeInfoGenerator(event.document) + ); + } + ); + } + dispose() { + this.disposable.dispose(); + } +}; +function isReplace(documentReplaceEditLists, change) { + for (const replaceEditLists of documentReplaceEditLists) { + for (const replaceEdit of replaceEditLists) { + if (replaceEdit.range.isRangeEqual(change.range) && replaceEdit.text === change.text) { + return true; + } + } + } + return false; +} + +// ../cursorless-engine/src/spokenForms/CustomSpokenForms.ts +var import_lodash22 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/scopeProviders/TalonSpokenForms.ts +var SUPPORTED_ENTRY_TYPES = [ + "simpleScopeTypeType", + "complexScopeTypeType", + "customRegex", + "pairedDelimiter" +]; +var NeedsInitialTalonUpdateError = class extends Error { + constructor(message) { + super(message); + this.name = "NeedsInitialTalonUpdateError"; + } +}; + +// ../cursorless-engine/src/spokenForms/CustomSpokenForms.ts +var CustomSpokenForms = class { + constructor(talonSpokenForms) { + this.talonSpokenForms = talonSpokenForms; + this.notifier = new Notifier(); + this.spokenFormMap_ = { ...defaultSpokenFormMap }; + /** + * Registers a callback to be run when the custom spoken forms change. + * @param callback The callback to run when the scope ranges change + * @returns A {@link Disposable} which will stop the callback from running + */ + this.onDidChangeCustomSpokenForms = this.notifier.registerListener; + this.disposable = talonSpokenForms.onDidChange( + () => this.updateSpokenFormMaps().catch(() => { + }) + ); + this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); + this.customSpokenFormsInitialized.catch(() => { + }); + } + get spokenFormMap() { + return this.spokenFormMap_; + } + /** + * If `true`, indicates they need to update their Talon files to get the + * machinery used to share spoken forms from Talon to the VSCode extension. + */ + get needsInitialTalonUpdate() { + return this.needsInitialTalonUpdate_; + } + async updateSpokenFormMaps() { + let allCustomEntries; + try { + allCustomEntries = await this.talonSpokenForms.getSpokenFormEntries(); + if (allCustomEntries.length === 0) { + throw new Error("Custom spoken forms list empty"); + } + } catch (err) { + if (err instanceof NeedsInitialTalonUpdateError) { + this.needsInitialTalonUpdate_ = true; + } else { + console.error("Error loading custom spoken forms", err); + showError( + ide().messages, + "CustomSpokenForms.updateSpokenFormMaps", + `Error loading custom spoken forms: ${err.message}}}. Falling back to default spoken forms.` + ); + } + this.spokenFormMap_ = { ...defaultSpokenFormMap }; + this.notifier.notifyListeners(); + throw err; + } + for (const entryType of SUPPORTED_ENTRY_TYPES) { + updateEntriesForType( + this.spokenFormMap_, + entryType, + defaultSpokenFormInfoMap[entryType], + Object.fromEntries( + allCustomEntries.filter((entry2) => entry2.type === entryType).map(({ id, spokenForms }) => [id, spokenForms]) + ) + ); + } + this.notifier.notifyListeners(); + } + getCustomRegexScopeTypes() { + return Object.keys(this.spokenFormMap_.customRegex).map((regex) => ({ + type: "customRegex", + regex + })); + } + dispose() { + this.disposable.dispose(); + } +}; +function updateEntriesForType(spokenFormMapToUpdate, key, defaultEntries, customEntries) { + const ids = Array.from( + /* @__PURE__ */ new Set([...Object.keys(defaultEntries), ...Object.keys(customEntries)]) + ); + const obj = {}; + for (const id of ids) { + const { defaultSpokenForms = [], isPrivate: isPrivate2 = false } = defaultEntries[id] ?? {}; + const customSpokenForms = customEntries[id]; + obj[id] = customSpokenForms == null ? ( + // No entry for the given id. This either means that the user needs to + // update Talon, or it's a private spoken form. + { + defaultSpokenForms, + spokenForms: [], + // If it's not a private spoken form, then it's a new scope type + requiresTalonUpdate: !isPrivate2, + isCustom: false, + isPrivate: isPrivate2 + } + ) : ( + // We have an entry for the given id + { + defaultSpokenForms, + spokenForms: customSpokenForms, + requiresTalonUpdate: false, + isCustom: !(0, import_lodash22.isEqual)(defaultSpokenForms, customSpokenForms), + isPrivate: isPrivate2 + } + ); + } + spokenFormMapToUpdate[key] = obj; +} + +// ../cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts +var CustomSpokenFormGeneratorImpl = class { + constructor(talonSpokenForms) { + this.customSpokenForms = new CustomSpokenForms(talonSpokenForms); + this.customSpokenFormsInitialized = this.customSpokenForms.customSpokenFormsInitialized; + this.spokenFormGenerator = new SpokenFormGenerator( + this.customSpokenForms.spokenFormMap + ); + this.disposable = this.customSpokenForms.onDidChangeCustomSpokenForms( + () => { + this.spokenFormGenerator = new SpokenFormGenerator( + this.customSpokenForms.spokenFormMap + ); + } + ); + } + onDidChangeCustomSpokenForms(listener) { + return this.customSpokenForms.onDidChangeCustomSpokenForms(listener); + } + commandToSpokenForm(command) { + return this.spokenFormGenerator.processCommand(command); + } + scopeTypeToSpokenForm(scopeType) { + return this.spokenFormGenerator.processScopeType(scopeType); + } + getCustomRegexScopeTypes() { + return this.customSpokenForms.getCustomRegexScopeTypes(); + } + get needsInitialTalonUpdate() { + return this.customSpokenForms.needsInitialTalonUpdate; + } + dispose() { + this.disposable.dispose(); + } +}; + +// ../cursorless-engine/src/languages/LanguageDefinitions.ts +var import_path3 = require("path"); + +// ../cursorless-engine/src/languages/LanguageDefinition.ts +var import_path2 = require("path"); + +// ../../node_modules/.pnpm/itertools@2.2.5/node_modules/itertools/dist/index.js +function* flatten4(iterableOfIterables) { + for (const iterable of iterableOfIterables) { + for (const item of iterable) { + yield item; + } + } +} +function* itake(n, iterable) { + const it = iter(iterable); + let count2 = n; + while (count2-- > 0) { + const s = it.next(); + if (!s.done) { + yield s.value; + } else { + return; + } + } +} +function* pairwise(iterable) { + const it = iter(iterable); + const first2 = it.next(); + if (first2.done) { + return; + } + let r1 = first2.value; + for (const r2 of it) { + yield [r1, r2]; + r1 = r2; + } +} +var SENTINEL = Symbol(); +function* count(start = 0, step = 1) { + let n = start; + for (; ; ) { + yield n; + n += step; + } +} +function* ifilter(iterable, predicate) { + for (const value of iterable) { + if (predicate(value)) { + yield value; + } + } +} +function* imap(iterable, mapper) { + for (const value of iterable) { + yield mapper(value); + } +} +function* islice(iterable, stopOrStart, possiblyStop, step = 1) { + let start, stop; + if (possiblyStop !== void 0) { + start = stopOrStart; + stop = possiblyStop; + } else { + start = 0; + stop = stopOrStart; + } + if (start < 0) + throw new Error("start cannot be negative"); + if (stop !== null && stop < 0) + throw new Error("stop cannot be negative"); + if (step <= 0) + throw new Error("step cannot be negative"); + let i = -1; + const it = iter(iterable); + let res; + while (true) { + i++; + if (stop !== null && i >= stop) + return; + res = it.next(); + if (res.done) + return; + if (i < start) + continue; + if ((i - start) % step === 0) { + yield res.value; + } + } +} +function* takewhile(iterable, predicate) { + const it = iter(iterable); + let res; + while (!(res = it.next()).done) { + const value = res.value; + if (!predicate(value)) + return; + yield value; + } +} +function iter(iterable) { + return iterable[Symbol.iterator](); +} +function map2(iterable, mapper) { + return Array.from(imap(iterable, mapper)); +} +function range_(start, stop, step) { + const counter = count(start, step); + const pred = step >= 0 ? (n) => n < stop : (n) => n > stop; + return takewhile(counter, pred); +} +function range2(startOrStop, definitelyStop, step = 1) { + if (definitelyStop !== void 0) { + return range_(startOrStop, definitelyStop, step); + } else { + return range_(0, startOrStop, step); + } +} +function flatmap(iterable, mapper) { + return flatten4(imap(iterable, mapper)); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts +function compareTargetScopes(direction, position, { domain: a }, { domain: b }) { + return direction === "forward" ? compareTargetScopesForward(position, a, b) : compareTargetScopesBackward(position, a, b); +} +function compareTargetScopesForward(position, a, b) { + const aIsStartVisible = a.start.isAfterOrEqual(position); + const bIsStartVisible = b.start.isAfterOrEqual(position); + if (aIsStartVisible && bIsStartVisible) { + const value2 = a.start.compareTo(b.start); + return value2 === 0 ? a.end.compareTo(b.end) : value2; + } + if (!aIsStartVisible && !bIsStartVisible) { + const value2 = a.end.compareTo(b.end); + return value2 === 0 ? -a.start.compareTo(b.start) : value2; + } + if (!aIsStartVisible && bIsStartVisible) { + const value2 = a.end.compareTo(b.start); + return value2 !== 0 ? value2 : b.isEmpty ? 1 : -1; + } + const value = a.start.compareTo(b.end); + return value !== 0 ? value : a.isEmpty ? -1 : 1; +} +function compareTargetScopesBackward(position, a, b) { + const aIsEndVisible = a.end.isBeforeOrEqual(position); + const bIsEndVisible = b.end.isBeforeOrEqual(position); + if (aIsEndVisible && bIsEndVisible) { + const value2 = -a.end.compareTo(b.end); + return value2 === 0 ? -a.start.compareTo(b.start) : value2; + } + if (!aIsEndVisible && !bIsEndVisible) { + const value2 = -a.start.compareTo(b.start); + return value2 === 0 ? a.end.compareTo(b.end) : value2; + } + if (!aIsEndVisible && bIsEndVisible) { + const value2 = -a.start.compareTo(b.end); + return value2 !== 0 ? value2 : b.isEmpty ? 1 : -1; + } + const value = -a.end.compareTo(b.start); + return value !== 0 ? value : a.isEmpty ? -1 : 1; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts +function shouldYieldScope(initialPosition, currentPosition, direction, requirements, previousScope, scope) { + return checkRequirements(initialPosition, requirements, previousScope, scope) && // Note that we're using `currentPosition` instead of `initialPosition` + // below, because we want to filter out scopes that are strictly contained + // by previous scopes. However, if we want to include descendant scopes, + // then we do use the initial position + (previousScope == null || compareTargetScopes( + direction, + requirements.includeDescendantScopes ? initialPosition : currentPosition, + previousScope, + scope + ) < 0); +} +function checkRequirements(position, requirements, previousScope, scope) { + const { + containment, + distalPosition, + allowAdjacentScopes, + skipAncestorScopes + } = requirements; + const { domain } = scope; + switch (containment) { + case "disallowed": + if (domain.contains(position)) { + return false; + } + break; + case "disallowedIfStrict": + if (strictlyContains(domain, position)) { + return false; + } + break; + case "required": + if (!domain.contains(position)) { + return false; + } + break; + } + if (skipAncestorScopes && previousScope != null && domain.contains(previousScope.domain)) { + return false; + } + return partiallyContains( + new Range(position, distalPosition), + domain, + allowAdjacentScopes + ); +} +function partiallyContains(range1, range22, allowAdjacent) { + const intersection = range1.intersection(range22); + if (intersection == null) { + return false; + } + return !intersection.isEmpty || allowAdjacent || range22.isEmpty; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts +var DEFAULT_REQUIREMENTS = { + containment: null, + allowAdjacentScopes: false, + skipAncestorScopes: false, + includeDescendantScopes: false +}; +var BaseScopeHandler = class { + constructor() { + this.includeAdjacentInEvery = false; + } + *generateScopes(editor, position, direction, requirements = {}) { + const hints = { + ...DEFAULT_REQUIREMENTS, + ...requirements, + distalPosition: requirements.distalPosition ?? (direction === "forward" ? editor.document.range.end : editor.document.range.start) + }; + let previousScope = void 0; + let currentPosition = position; + for (const scope of this.generateScopeCandidates( + editor, + position, + direction, + hints + )) { + if (shouldYieldScope( + position, + currentPosition, + direction, + hints, + previousScope, + scope + )) { + yield scope; + previousScope = scope; + currentPosition = direction === "forward" ? scope.domain.end : scope.domain.start; + } + if (this.canStopEarly(position, direction, hints, previousScope, scope)) { + return; + } + } + } + canStopEarly(position, direction, requirements, previousScope, scope) { + const { containment, distalPosition, skipAncestorScopes } = requirements; + if (this.isHierarchical && !skipAncestorScopes) { + return false; + } + const scopeToCheck = this.isHierarchical && skipAncestorScopes ? previousScope : scope; + if (scopeToCheck == null) { + return false; + } + if (containment === "required" && (direction === "forward" ? scopeToCheck.domain.end.isAfter(position) : scopeToCheck.domain.start.isBefore(position))) { + return true; + } + if (direction === "forward" ? scopeToCheck.domain.end.isAfterOrEqual(distalPosition) : scopeToCheck.domain.start.isBeforeOrEqual(distalPosition)) { + return true; + } + return false; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts +var NestedScopeHandler = class extends BaseScopeHandler { + constructor(scopeHandlerFactory, scopeType, languageId) { + super(); + this.scopeHandlerFactory = scopeHandlerFactory; + this.scopeType = scopeType; + this.languageId = languageId; + this.isHierarchical = false; + } + /** + * We expand to this scope type before looking for instances of the scope type + * handled by this scope handler. In most cases the iteration scope will + * suffice, but in some cases you want them to diverge. For example, you + * might want the default iteration scope to be `"file"`, but you don't need + * to expand to the file just to find instances of the given scope type. + */ + get searchScopeType() { + return this.iterationScopeType; + } + get searchScopeHandler() { + if (this._searchScopeHandler == null) { + this._searchScopeHandler = this.scopeHandlerFactory.create( + this.searchScopeType, + this.languageId + ); + } + return this._searchScopeHandler; + } + generateScopeCandidates(editor, position, direction, hints) { + const { containment, ...rest } = hints; + const generator = this.searchScopeHandler.generateScopes( + editor, + position, + direction, + // If containment is disallowed, we need to unset that for the search + // scope, because the search scope could contain position but nested + // scopes do not. + { + containment: containment === "required" ? "required" : void 0, + ...rest + } + ); + return flatmap( + generator, + (searchScope) => this.generateScopesInSearchScope(direction, searchScope) + ); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts +var LineScopeHandler = class extends BaseScopeHandler { + constructor(_scopeType, _languageId) { + super(); + this.scopeType = { type: "line" }; + this.iterationScopeType = { + type: "paragraph" + }; + this.isHierarchical = false; + this.includeAdjacentInEvery = true; + } + *generateScopeCandidates(editor, position, direction) { + if (direction === "forward") { + for (let i = position.line; i < editor.document.lineCount; i++) { + yield lineNumberToScope(editor, i); + } + } else { + for (let i = position.line; i >= 0; i--) { + yield lineNumberToScope(editor, i); + } + } + } +}; +function lineNumberToScope(editor, lineNumber) { + const { range: range4 } = editor.document.lineAt(lineNumber); + return { + editor, + domain: range4, + getTargets: (isReversed) => [createLineTarget(editor, isReversed, range4)] + }; +} +function createLineTarget(editor, isReversed, range4) { + return new LineTarget({ + editor, + isReversed, + contentRange: fitRangeToLineContent(editor, range4) + }); +} +function fitRangeToLineContent(editor, range4) { + const startLine = editor.document.lineAt(range4.start); + const endLine = editor.document.lineAt(range4.end); + return new Range( + startLine.lineNumber, + startLine.firstNonWhitespaceCharacterIndex, + endLine.lineNumber, + endLine.lastNonWhitespaceCharacterIndex + ); +} + +// ../cursorless-engine/src/util/getMatchesInRange.ts +function generateMatchesInRange(regex, editor, range4, direction) { + const offset = editor.document.offsetAt(range4.start); + const text = editor.document.getText(range4); + const matchToRange = (match2) => new Range( + editor.document.positionAt(offset + match2.index), + editor.document.positionAt(offset + match2.index + match2[0].length) + ); + regex.lastIndex = 0; + return direction === "forward" ? imap(text.matchAll(regex), matchToRange) : Array.from(text.matchAll(regex), matchToRange).reverse(); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts +var IdentifierScopeHandler = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.scopeType = { type: "identifier" }; + this.iterationScopeType = { type: "line" }; + this.regex = getMatcher(this.languageId).identifierMatcher; + } + generateScopesInSearchScope(direction, { editor, domain }) { + return imap( + generateMatchesInRange(this.regex, editor, domain, direction), + (range4) => ({ + editor, + domain: range4, + getTargets: (isReversed) => [ + new TokenTarget({ + editor, + contentRange: range4, + isReversed + }) + ] + }) + ); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts +function isPreferredOverHelper(scopeA, scopeB, matchers2) { + const textA = scopeA.editor.document.getText(scopeA.domain); + const textB = scopeB.editor.document.getText(scopeB.domain); + for (const matcher2 of matchers2) { + const aMatchesRegex = testRegex(matcher2, textA); + const bMatchesRegex = testRegex(matcher2, textB); + if (aMatchesRegex && !bMatchesRegex) { + return true; + } + if (bMatchesRegex && !aMatchesRegex) { + return false; + } + } + return void 0; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts +var SPLIT_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}\p{Z}\p{C}]/gu; +var PREFERRED_SYMBOLS_REGEX = /[$]/g; +var NONWHITESPACE_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}]/gu; +var CharacterScopeHandler = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.scopeType = { type: "character" }; + this.iterationScopeType = { type: "token" }; + } + get searchScopeType() { + return { type: "line" }; + } + generateScopesInSearchScope(direction, { editor, domain }) { + return imap( + generateMatchesInRange(SPLIT_REGEX, editor, domain, direction), + (range4) => ({ + editor, + domain: range4, + getTargets: (isReversed) => [ + new PlainTarget({ + editor, + contentRange: range4, + isReversed, + isToken: false + }) + ] + }) + ); + } + isPreferredOver(scopeA, scopeB) { + const { identifierMatcher } = getMatcher(this.languageId); + return isPreferredOverHelper(scopeA, scopeB, [ + identifierMatcher, + PREFERRED_SYMBOLS_REGEX, + NONWHITESPACE_REGEX + ]); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts +var CAMEL_REGEX = /\p{Lu}?\p{Ll}+|\p{Lu}+(?!\p{Ll})|\p{N}+/gu; +var WordTokenizer = class { + constructor(languageId) { + this.wordRegex = getMatcher(languageId).wordMatcher; + } + splitIdentifier(text) { + const wordMatches = matchText(text, this.wordRegex); + return wordMatches.length > 1 ? wordMatches : ( + // Secondly try split on camel case + matchText(text, CAMEL_REGEX) + ); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts +var WordScopeHandler = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.scopeType = { type: "word" }; + this.iterationScopeType = { type: "identifier" }; + this.wordTokenizer = new WordTokenizer(this.languageId); + } + getScopesInSearchScope({ + editor, + domain + }) { + const { document } = editor; + const offset = document.offsetAt(domain.start); + const matches = this.wordTokenizer.splitIdentifier( + document.getText(domain) + ); + const contentRanges = matches.map( + (match2) => new Range( + document.positionAt(offset + match2.index), + document.positionAt(offset + match2.index + match2.text.length) + ) + ); + return contentRanges.map((range4, i) => ({ + editor, + domain: range4, + getTargets: (isReversed) => { + const previousContentRange = i > 0 ? contentRanges[i - 1] : null; + const nextContentRange = i + 1 < contentRanges.length ? contentRanges[i + 1] : null; + return [ + constructTarget( + isReversed, + editor, + previousContentRange, + range4, + nextContentRange + ) + ]; + } + })); + } + generateScopesInSearchScope(direction, searchScope) { + const scopes = this.getScopesInSearchScope(searchScope); + if (direction === "backward") { + scopes.reverse(); + } + return scopes; + } +}; +function constructTarget(isReversed, editor, previousContentRange, contentRange, nextContentRange) { + const leadingDelimiterRange = previousContentRange != null && contentRange.start.isAfter(previousContentRange.end) ? new Range(previousContentRange.end, contentRange.start) : void 0; + const trailingDelimiterRange = nextContentRange != null && nextContentRange.start.isAfter(contentRange.end) ? new Range(contentRange.end, nextContentRange.start) : void 0; + const isInDelimitedList = leadingDelimiterRange != null || trailingDelimiterRange != null; + const insertionDelimiter = isInDelimitedList ? editor.document.getText( + leadingDelimiterRange ?? trailingDelimiterRange + ) : ""; + return new SubTokenWordTarget({ + editor, + isReversed, + contentRange, + insertionDelimiter, + leadingDelimiterRange, + trailingDelimiterRange + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts +var PREFERRED_SYMBOLS_REGEX2 = /[$]/g; +var TokenScopeHandler = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.scopeType = { type: "token" }; + this.iterationScopeType = { type: "line" }; + this.regex = getMatcher(this.languageId).tokenMatcher; + } + generateScopesInSearchScope(direction, { editor, domain }) { + return imap( + generateMatchesInRange(this.regex, editor, domain, direction), + (range4) => ({ + editor, + domain: range4, + getTargets: (isReversed) => [ + new TokenTarget({ + editor, + contentRange: range4, + isReversed + }) + ] + }) + ); + } + isPreferredOver(scopeA, scopeB) { + const { identifierMatcher } = getMatcher(this.languageId); + return isPreferredOverHelper(scopeA, scopeB, [ + identifierMatcher, + PREFERRED_SYMBOLS_REGEX2 + ]); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts +var DocumentScopeHandler = class extends BaseScopeHandler { + constructor(_scopeType, _languageId) { + super(); + this.scopeType = { type: "document" }; + this.iterationScopeType = { type: "document" }; + this.isHierarchical = false; + } + *generateScopeCandidates(editor, _position, _direction) { + const contentRange = editor.document.range; + yield { + editor, + domain: contentRange, + getTargets: (isReversed) => [ + new DocumentTarget({ + editor, + isReversed, + contentRange + }) + ] + }; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts +var import_lodash23 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts +function mergeAdjacentBy(input, isEqual5, merge4) { + const result = []; + let current2 = []; + for (const elem of input) { + if (current2.length === 0 || isEqual5(current2[current2.length - 1], elem)) { + current2.push(elem); + } else { + result.push(merge4(current2)); + current2 = [elem]; + } + } + if (current2.length > 0) { + result.push(merge4(current2)); + } + return result; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts +var BaseTreeSitterScopeHandler = class extends BaseScopeHandler { + constructor(query) { + super(); + this.query = query; + } + *generateScopeCandidates(editor, position, direction, _hints) { + const { document } = editor; + const scopes = this.query.matches(document).map((match2) => this.matchToScope(editor, match2)).filter((scope) => scope != null).sort((a, b) => compareTargetScopes(direction, position, a, b)); + yield* mergeAdjacentBy( + scopes, + (a, b) => a.domain.isRangeEqual(b.domain), + (equivalentScopes) => { + if (equivalentScopes.length === 1) { + return equivalentScopes[0]; + } + return { + ...equivalentScopes[0], + getTargets(isReversed) { + const targets = (0, import_lodash23.uniqWith)( + equivalentScopes.flatMap((scope) => scope.getTargets(isReversed)), + (a, b) => a.isEqual(b) + ); + if (targets.length > 1 && !equivalentScopes.every((scope) => scope.allowMultiple)) { + const message = "Please use #allow-multiple! predicate in your query to allow multiple matches for this scope type"; + showError( + ide().messages, + "BaseTreeSitterScopeHandler.allow-multiple", + message + ); + if (ide().runMode === "test") { + throw Error(message); + } + } + return targets; + } + }; + } + ); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts +function getRelatedCapture(match2, scopeTypeType, relationship, matchHasScopeType) { + if (matchHasScopeType) { + return findCaptureByName( + match2, + `${scopeTypeType}.${relationship}`, + `_.${relationship}` + ); + } + return findCaptureByName(match2, `${scopeTypeType}.${relationship}`) ?? (findCaptureByName(match2, scopeTypeType) != null ? findCaptureByName(match2, `_.${relationship}`) : void 0); +} +function getRelatedRange(match2, scopeTypeType, relationship, matchHasScopeType) { + return getRelatedCapture( + match2, + scopeTypeType, + relationship, + matchHasScopeType + )?.range; +} +function findCaptureByName(match2, ...names) { + return match2.captures.find( + (capture) => names.some((name) => capture.name === name) + ); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts +var TreeSitterIterationScopeHandler = class extends BaseTreeSitterScopeHandler { + constructor(query, iterateeScopeType) { + super(query); + this.iterateeScopeType = iterateeScopeType; + this.isHierarchical = true; + // Doesn't correspond to any scope type + this.scopeType = void 0; + } + // Doesn't have any iteration scope type itself; that would correspond to + // something like "every every" + get iterationScopeType() { + throw Error("Not implemented"); + } + matchToScope(editor, match2) { + const scopeTypeType = this.iterateeScopeType.type; + const capture = getRelatedCapture(match2, scopeTypeType, "iteration", false); + if (capture == null) { + return void 0; + } + const { range: contentRange, allowMultiple } = capture; + const domain = getRelatedRange(match2, scopeTypeType, "iteration.domain", false) ?? contentRange; + return { + editor, + domain, + allowMultiple, + getTargets: (isReversed) => [ + new PlainTarget({ + editor, + isReversed, + contentRange + }) + ] + }; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +var TreeSitterScopeHandler = class extends BaseTreeSitterScopeHandler { + constructor(query, scopeType) { + super(query); + this.scopeType = scopeType; + this.isHierarchical = true; + } + // We just create a custom scope handler that doesn't necessarily correspond + // to any well-defined scope type + get iterationScopeType() { + return { + type: "custom", + scopeHandler: new TreeSitterIterationScopeHandler( + this.query, + this.scopeType + ) + }; + } + matchToScope(editor, match2) { + const scopeTypeType = this.scopeType.type; + const capture = findCaptureByName(match2, scopeTypeType); + if (capture == null) { + return void 0; + } + const { range: contentRange, allowMultiple, insertionDelimiter } = capture; + const domain = getRelatedRange(match2, scopeTypeType, "domain", true) ?? contentRange; + const removalRange = getRelatedRange(match2, scopeTypeType, "removal", true); + const interiorRange = getRelatedRange( + match2, + scopeTypeType, + "interior", + true + ); + const prefixRange = getRelatedRange( + match2, + scopeTypeType, + "prefix", + true + )?.with(void 0, contentRange.start); + const leadingDelimiterRange = getRelatedRange( + match2, + scopeTypeType, + "leading", + true + )?.with(void 0, prefixRange?.start ?? contentRange.start); + const trailingDelimiterRange = getRelatedRange( + match2, + scopeTypeType, + "trailing", + true + )?.with(contentRange.end); + return { + editor, + domain, + allowMultiple, + getTargets: (isReversed) => [ + new ScopeTypeTarget({ + scopeTypeType, + editor, + isReversed, + contentRange, + prefixRange, + removalRange, + leadingDelimiterRange, + trailingDelimiterRange, + interiorRange, + insertionDelimiter + }) + ] + }; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts +function getInitialIteratorInfos(iterators) { + return iterators.flatMap((iterator) => { + const { value, done } = iterator.next(); + return done ? [] : [ + { + iterator, + value + } + ]; + }); +} +function advanceIteratorsUntil(iteratorInfos, criterion) { + return iteratorInfos.flatMap((iteratorInfo) => { + const { iterator } = iteratorInfo; + let { value } = iteratorInfo; + let done = false; + while (!criterion(value) && !done) { + ({ value, done } = iterator.next()); + } + if (done) { + return []; + } + return [{ iterator, value }]; + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts +var OneOfScopeHandler = class _OneOfScopeHandler extends BaseScopeHandler { + constructor(scopeType, scopeHandlers, getIterationScopeType) { + super(); + this.scopeType = scopeType; + this.scopeHandlers = scopeHandlers; + this.getIterationScopeType = getIterationScopeType; + this.isHierarchical = true; + } + static create(scopeHandlerFactory, scopeType, languageId) { + const scopeHandlers = scopeType.scopeTypes.map( + (scopeType2) => { + const handler = scopeHandlerFactory.create(scopeType2, languageId); + if (handler == null) { + throw new Error(`No available scope handler for '${scopeType2.type}'`); + } + return handler; + } + ); + const iterationScopeType = () => ({ + type: "custom", + scopeHandler: new _OneOfScopeHandler( + void 0, + scopeHandlers.map( + (scopeHandler) => scopeHandlerFactory.create( + scopeHandler.iterationScopeType, + languageId + ) + ), + () => { + throw new Error("Not implemented"); + } + ) + }); + return new _OneOfScopeHandler(scopeType, scopeHandlers, iterationScopeType); + } + get iterationScopeType() { + return this.getIterationScopeType(); + } + *generateScopeCandidates(editor, position, direction, hints) { + const iterators = this.scopeHandlers.map( + (scopeHandler) => scopeHandler.generateScopes(editor, position, direction, hints)[Symbol.iterator]() + ); + let iteratorInfos = getInitialIteratorInfos(iterators); + while (iteratorInfos.length > 0) { + iteratorInfos.sort( + (a, b) => compareTargetScopes(direction, position, a.value, b.value) + ); + const currentScope2 = iteratorInfos[0].value; + yield currentScope2; + iteratorInfos = advanceIteratorsUntil( + iteratorInfos, + (scope) => compareTargetScopes(direction, position, currentScope2, scope) < 0 + ); + } + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts +var ParagraphScopeHandler = class extends BaseScopeHandler { + constructor(_scopeType, _languageId) { + super(); + this.scopeType = { type: "paragraph" }; + this.iterationScopeType = { type: "document" }; + this.isHierarchical = false; + } + *generateScopeCandidates(editor, position, direction) { + const { document } = editor; + const offset = direction === "forward" ? 1 : -1; + const stop = direction === "forward" ? document.lineCount : -1; + let startLine = getStartLine(document, position, direction); + let previousLine = editor.document.lineAt(position); + for (let i = position.line + offset; i !== stop; i += offset) { + const currentLine = editor.document.lineAt(i); + if (currentLine.isEmptyOrWhitespace) { + if (startLine != null) { + yield createScope2(editor, startLine.range.union(previousLine.range)); + startLine = void 0; + } + } else if (startLine == null) { + startLine = currentLine; + } + previousLine = currentLine; + } + if (startLine != null) { + yield createScope2(editor, startLine.range.union(previousLine.range)); + } + } +}; +function getStartLine(document, position, direction) { + const offset = direction === "forward" ? -1 : 1; + const stop = direction === "forward" ? -1 : document.lineCount; + let startLine = document.lineAt(position); + if (startLine.isEmptyOrWhitespace) { + return void 0; + } + for (let i = position.line + offset; i !== stop; i += offset) { + const line = document.lineAt(i); + if (line.isEmptyOrWhitespace) { + break; + } + startLine = line; + } + return startLine; +} +function createScope2(editor, domain) { + return { + editor, + domain, + getTargets: (isReversed) => [ + new ParagraphTarget({ + editor, + isReversed, + contentRange: fitRangeToLineContent(editor, domain) + }) + ] + }; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts +var sbd = __toESM(require_tokenizer(), 1); +var leadingOffsetRegex = /\S*\p{L}/u; +var skipPartRegex = /(\r?\n[^\p{L}]*\r?\n)|(?<=[.!?])(\s*\r?\n)/gu; +var options = { + ["newline_boundaries"]: false, + ["preserve_whitespace"]: true +}; +var SentenceSegmenter = class { + *segment(text) { + const sentences2 = sbd.sentences(text, options); + let index = 0; + for (const sentence of sentences2) { + const parts = sentence.split(skipPartRegex).filter((p) => p != null); + for (const part of parts) { + if (!skipPart(part)) { + const segment = createSegment(part, index); + if (segment != null) { + yield segment; + } + } + index += part.length; + } + } + } +}; +function createSegment(sentence, index) { + const leadingOffsetMatch = matchRegex(leadingOffsetRegex, sentence); + if (leadingOffsetMatch == null) { + return void 0; + } + const leadingOffset = leadingOffsetMatch.index; + if (leadingOffset !== 0) { + index += leadingOffset; + sentence = sentence.slice(leadingOffset); + } + return { + text: sentence.trimEnd(), + index + }; +} +function skipPart(text) { + return testRegex(skipPartRegex, text); +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts +var SentenceScopeHandler = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.scopeType = { type: "sentence" }; + this.iterationScopeType = { type: "paragraph" }; + this.segmenter = new SentenceSegmenter(); + } + generateScopesInSearchScope(direction, { editor, domain }) { + const offset = editor.document.offsetAt(domain.start); + const text = editor.document.getText(domain); + const sentenceToScope = (sentence) => { + const contentRange = new Range( + editor.document.positionAt(offset + sentence.index), + editor.document.positionAt( + offset + sentence.index + sentence.text.length + ) + ); + return { + editor, + domain: contentRange, + getTargets: (isReversed) => [ + new TokenTarget({ + editor, + contentRange, + isReversed + }) + ] + }; + }; + const sentences2 = this.segmenter.segment(text); + return direction === "forward" ? imap(sentences2, sentenceToScope) : Array.from(sentences2, sentenceToScope).reverse(); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts +var import_lodash24 = __toESM(require_lodash(), 1); +var RegexStageBase = class extends NestedScopeHandler { + constructor() { + super(...arguments); + this.iterationScopeType = { type: "line" }; + } + generateScopesInSearchScope(direction, { editor, domain }) { + return imap( + generateMatchesInRange(this.regex, editor, domain, direction), + (range4) => ({ + editor, + domain: range4, + getTargets: (isReversed) => [ + new TokenTarget({ + editor, + contentRange: range4, + isReversed + }) + ] + }) + ); + } +}; +var NonWhitespaceSequenceScopeHandler = class extends RegexStageBase { + constructor() { + super(...arguments); + this.regex = /\S+/g; + } +}; +var UrlScopeHandler = class extends RegexStageBase { + constructor(scopeHandlerFactory, scopeType, languageId) { + super(scopeHandlerFactory, scopeType, languageId); + this.scopeType = scopeType; + // taken from https://regexr.com/3e6m0 + this.regex = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g; + } +}; +var CustomRegexScopeHandler = class extends RegexStageBase { + constructor(scopeHandlerFactory, scopeType, languageId) { + super(scopeHandlerFactory, scopeType, languageId); + this.scopeType = scopeType; + } + get regex() { + return new RegExp(this.scopeType.regex, "gu"); + } +}; +var GlyphScopeHandler = class extends RegexStageBase { + constructor(scopeHandlerFactory, scopeType, languageId) { + super(scopeHandlerFactory, scopeType, languageId); + this.scopeType = scopeType; + } + get regex() { + return new RegExp((0, import_lodash24.escapeRegExp)(this.scopeType.character), "gui"); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts +var ScopeHandlerFactoryImpl = class { + constructor(languageDefinitions) { + this.languageDefinitions = languageDefinitions; + this.create = this.create.bind(this); + } + create(scopeType, languageId) { + switch (scopeType.type) { + case "character": + return new CharacterScopeHandler(this, scopeType, languageId); + case "word": + return new WordScopeHandler(this, scopeType, languageId); + case "token": + return new TokenScopeHandler(this, scopeType, languageId); + case "identifier": + return new IdentifierScopeHandler(this, scopeType, languageId); + case "line": + return new LineScopeHandler(scopeType, languageId); + case "sentence": + return new SentenceScopeHandler(this, scopeType, languageId); + case "paragraph": + return new ParagraphScopeHandler(scopeType, languageId); + case "document": + return new DocumentScopeHandler(scopeType, languageId); + case "oneOf": + return OneOfScopeHandler.create(this, scopeType, languageId); + case "nonWhitespaceSequence": + return new NonWhitespaceSequenceScopeHandler( + this, + scopeType, + languageId + ); + case "url": + return new UrlScopeHandler(this, scopeType, languageId); + case "customRegex": + return new CustomRegexScopeHandler(this, scopeType, languageId); + case "glyph": + return new GlyphScopeHandler(this, scopeType, languageId); + case "custom": + return scopeType.scopeHandler; + case "instance": + throw Error("Unexpected scope type 'instance'"); + default: + return this.languageDefinitions.get(languageId)?.getScopeHandler(scopeType); + } + } +}; + +// ../cursorless-engine/src/languages/captureNames.ts +var TEXT_FRAGMENT_CAPTURE_NAME = "textFragment"; + +// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterTextFragmentScopeHandler.ts +var TreeSitterTextFragmentScopeHandler = class extends BaseTreeSitterScopeHandler { + constructor(query) { + super(query); + this.isHierarchical = true; + // Doesn't correspond to any scope type + this.scopeType = void 0; + } + // Doesn't have any iteration scope type itself; that would correspond to + // something like "every every" + get iterationScopeType() { + throw Error("Not implemented"); + } + matchToScope(editor, match2) { + const capture = findCaptureByName(match2, TEXT_FRAGMENT_CAPTURE_NAME); + if (capture == null) { + return void 0; + } + const { range: contentRange, allowMultiple } = capture; + if (allowMultiple) { + throw Error( + "The #allow-multiple! predicate is not supported for text fragments" + ); + } + return { + editor, + domain: contentRange, + allowMultiple, + getTargets: (isReversed) => [ + new PlainTarget({ + editor, + isReversed, + contentRange + }) + ] + }; + } +}; + +// ../cursorless-engine/src/util/nodeSelectors.ts +var import_lodash25 = __toESM(require_lodash(), 1); +function makeRangeFromPositions(startPosition, endPosition) { + return new Range( + startPosition.row, + startPosition.column, + endPosition.row, + endPosition.column + ); +} +function positionFromPoint(point) { + return new Position(point.row, point.column); +} +function getNodeRange(node) { + return new Range( + node.startPosition.row, + node.startPosition.column, + node.endPosition.row, + node.endPosition.column + ); +} +function makeNodePairSelection(anchor, active) { + return new Selection( + anchor.startPosition.row, + anchor.startPosition.column, + active.endPosition.row, + active.endPosition.column + ); +} +function getNodeInternalRange(node) { + const children = node.children; + return makeRangeFromPositions( + children[0].endPosition, + children[children.length - 1].startPosition + ); +} +function simpleSelectionExtractor(editor, node) { + return { + selection: new Selection( + new Position(node.startPosition.row, node.startPosition.column), + new Position(node.endPosition.row, node.endPosition.column) + ), + context: {} + }; +} +function extendUntilNextMatchingSiblingOrLast(editor, node, nodeFinder2) { + const endNode = getNextMatchingSiblingNodeOrLast(node, nodeFinder2); + return pairSelectionExtractor(editor, node, endNode); +} +function getNextMatchingSiblingNodeOrLast(node, nodeFinder2) { + let currentNode = node; + let nextNode = node.nextSibling; + while (nextNode != null && nodeFinder2(nextNode) == null) { + currentNode = nextNode; + nextNode = nextNode.nextSibling; + } + return currentNode; +} +function pairSelectionExtractor(editor, node1, node2) { + const isForward = node1.startIndex < node2.startIndex; + const start = isForward ? node1 : node2; + const end = isForward ? node2 : node1; + return { + selection: new Selection( + new Position(start.startPosition.row, start.startPosition.column), + new Position(end.endPosition.row, end.endPosition.column) + ), + context: {} + }; +} +function argumentSelectionExtractor() { + return delimitedSelector( + (node) => node.type === "," || node.type === "(" || node.type === ")" || node.type === "[" || node.type === "]" || node.type === ">" || node.type === "<" || node.type === "}" || node.type === "{", + ", " + ); +} +function unwrapSelectionExtractor(editor, node) { + let startIndex = node.startIndex; + let endIndex = node.endIndex; + if (node.text.startsWith("(") && node.text.endsWith(")")) { + startIndex += 1; + endIndex -= 1; + } else if (node.text.endsWith(";")) { + endIndex -= 1; + } + return { + selection: new Selection( + editor.document.positionAt(startIndex), + editor.document.positionAt(endIndex) + ), + context: {} + }; +} +function selectWithLeadingDelimiter(...delimiters) { + return function(editor, node) { + const firstSibling = node.previousSibling; + const secondSibling = firstSibling?.previousSibling; + let leadingDelimiterRange; + if (firstSibling) { + if (delimiters.includes(firstSibling.type)) { + if (secondSibling) { + leadingDelimiterRange = makeRangeFromPositions( + secondSibling.endPosition, + node.startPosition + ); + } else { + leadingDelimiterRange = makeRangeFromPositions( + firstSibling.startPosition, + node.startPosition + ); + } + } else { + leadingDelimiterRange = makeRangeFromPositions( + firstSibling.endPosition, + node.startPosition + ); + } + } + return { + ...simpleSelectionExtractor(editor, node), + context: { + leadingDelimiterRange + } + }; + }; +} +function childRangeSelector(typesToExclude = [], typesToInclude = [], { includeUnnamedChildren = false } = {}) { + return function(editor, node) { + if (typesToExclude.length > 0 && typesToInclude.length > 0) { + throw new Error("Cannot have both exclusions and inclusions."); + } + let nodes = includeUnnamedChildren ? node.children : node.namedChildren; + const exclusionSet = new Set(typesToExclude); + const inclusionSet = new Set(typesToInclude); + nodes = nodes.filter((child) => { + if (exclusionSet.size > 0) { + return !exclusionSet.has(child.type); + } + if (inclusionSet.size > 0) { + return inclusionSet.has(child.type); + } + return true; + }); + return pairSelectionExtractor(editor, nodes[0], nodes[nodes.length - 1]); + }; +} +function selectWithTrailingDelimiter(...delimiters) { + return function(editor, node) { + const firstSibling = node.nextSibling; + const secondSibling = firstSibling?.nextSibling; + let trailingDelimiterRange; + if (firstSibling) { + if (delimiters.includes(firstSibling.type)) { + if (secondSibling) { + trailingDelimiterRange = makeRangeFromPositions( + node.endPosition, + secondSibling.startPosition + ); + } else { + trailingDelimiterRange = makeRangeFromPositions( + node.endPosition, + firstSibling.endPosition + ); + } + } else { + trailingDelimiterRange = makeRangeFromPositions( + node.endPosition, + firstSibling.startPosition + ); + } + } + return { + ...simpleSelectionExtractor(editor, node), + context: { + trailingDelimiterRange + } + }; + }; +} +function getNextNonDelimiterNode(startNode, isDelimiterNode) { + let node = startNode.nextSibling; + while (node != null) { + if (!isDelimiterNode(node)) { + return node; + } + node = node.nextSibling; + } + return node; +} +function getPreviousNonDelimiterNode(startNode, isDelimiterNode) { + let node = startNode.previousSibling; + while (node != null) { + if (!isDelimiterNode(node)) { + return node; + } + node = node.previousSibling; + } + return node; +} +function delimitedSelector(isDelimiterNode, defaultDelimiter, getStartNode = import_lodash25.identity, getEndNode = import_lodash25.identity) { + return (editor, node) => { + let leadingDelimiterRange; + let trailingDelimiterRange; + const startNode = getStartNode(node); + const endNode = getEndNode(node); + const previousNonDelimiterNode = getPreviousNonDelimiterNode( + startNode, + isDelimiterNode + ); + const nextNonDelimiterNode = getNextNonDelimiterNode( + endNode, + isDelimiterNode + ); + if (previousNonDelimiterNode != null) { + leadingDelimiterRange = makeRangeFromPositions( + previousNonDelimiterNode.endPosition, + startNode.startPosition + ); + } + if (nextNonDelimiterNode != null) { + trailingDelimiterRange = makeRangeFromPositions( + endNode.endPosition, + nextNonDelimiterNode.startPosition + ); + } + const containingListDelimiter = getInsertionDelimiter2( + editor, + leadingDelimiterRange, + trailingDelimiterRange, + defaultDelimiter + ); + return { + selection: new Selection( + new Position( + startNode.startPosition.row, + startNode.startPosition.column + ), + new Position(endNode.endPosition.row, endNode.endPosition.column) + ), + context: { + containingListDelimiter, + leadingDelimiterRange, + trailingDelimiterRange + } + }; + }; +} +function getInsertionDelimiter2(editor, leadingDelimiterRange, trailingDelimiterRange, defaultDelimiterInsertion) { + const { document } = editor; + const delimiters = [ + trailingDelimiterRange != null ? document.getText(trailingDelimiterRange) : defaultDelimiterInsertion, + leadingDelimiterRange != null ? document.getText(leadingDelimiterRange) : defaultDelimiterInsertion + ]; + return (0, import_lodash25.maxBy)(delimiters, "length"); +} + +// ../../node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/index.mjs +var util; +(function(util2) { + util2.assertEqual = (val) => val; + function assertIs(_arg) { + } + util2.assertIs = assertIs; + function assertNever(_x) { + throw new Error(); + } + util2.assertNever = assertNever; + util2.arrayToEnum = (items) => { + const obj = {}; + for (const item of items) { + obj[item] = item; + } + return obj; + }; + util2.getValidEnumValues = (obj) => { + const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); + const filtered = {}; + for (const k of validKeys) { + filtered[k] = obj[k]; + } + return util2.objectValues(filtered); + }; + util2.objectValues = (obj) => { + return util2.objectKeys(obj).map(function(e) { + return obj[e]; + }); + }; + util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => { + const keys = []; + for (const key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + keys.push(key); + } + } + return keys; + }; + util2.find = (arr, checker) => { + for (const item of arr) { + if (checker(item)) + return item; + } + return void 0; + }; + util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val; + function joinValues(array, separator2 = " | ") { + return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator2); + } + util2.joinValues = joinValues; + util2.jsonStringifyReplacer = (_, value) => { + if (typeof value === "bigint") { + return value.toString(); + } + return value; + }; +})(util || (util = {})); +var objectUtil; +(function(objectUtil2) { + objectUtil2.mergeShapes = (first, second) => { + return { + ...first, + ...second + // second overwrites first + }; + }; +})(objectUtil || (objectUtil = {})); +var ZodParsedType = util.arrayToEnum([ + "string", + "nan", + "number", + "integer", + "float", + "boolean", + "date", + "bigint", + "symbol", + "function", + "undefined", + "null", + "array", + "object", + "unknown", + "promise", + "void", + "never", + "map", + "set" +]); +var getParsedType = (data) => { + const t = typeof data; + switch (t) { + case "undefined": + return ZodParsedType.undefined; + case "string": + return ZodParsedType.string; + case "number": + return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; + case "boolean": + return ZodParsedType.boolean; + case "function": + return ZodParsedType.function; + case "bigint": + return ZodParsedType.bigint; + case "symbol": + return ZodParsedType.symbol; + case "object": + if (Array.isArray(data)) { + return ZodParsedType.array; + } + if (data === null) { + return ZodParsedType.null; + } + if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { + return ZodParsedType.promise; + } + if (typeof Map !== "undefined" && data instanceof Map) { + return ZodParsedType.map; + } + if (typeof Set !== "undefined" && data instanceof Set) { + return ZodParsedType.set; + } + if (typeof Date !== "undefined" && data instanceof Date) { + return ZodParsedType.date; + } + return ZodParsedType.object; + default: + return ZodParsedType.unknown; + } +}; +var ZodIssueCode = util.arrayToEnum([ + "invalid_type", + "invalid_literal", + "custom", + "invalid_union", + "invalid_union_discriminator", + "invalid_enum_value", + "unrecognized_keys", + "invalid_arguments", + "invalid_return_type", + "invalid_date", + "invalid_string", + "too_small", + "too_big", + "invalid_intersection_types", + "not_multiple_of", + "not_finite" +]); +var quotelessJson = (obj) => { + const json2 = JSON.stringify(obj, null, 2); + return json2.replace(/"([^"]+)":/g, "$1:"); +}; +var ZodError = class extends Error { + constructor(issues) { + super(); + this.issues = []; + this.addIssue = (sub) => { + this.issues = [...this.issues, sub]; + }; + this.addIssues = (subs = []) => { + this.issues = [...this.issues, ...subs]; + }; + const actualProto = new.target.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(this, actualProto); + } else { + this.__proto__ = actualProto; + } + this.name = "ZodError"; + this.issues = issues; + } + get errors() { + return this.issues; + } + format(_mapper) { + const mapper = _mapper || function(issue) { + return issue.message; + }; + const fieldErrors = { _errors: [] }; + const processError = (error) => { + for (const issue of error.issues) { + if (issue.code === "invalid_union") { + issue.unionErrors.map(processError); + } else if (issue.code === "invalid_return_type") { + processError(issue.returnTypeError); + } else if (issue.code === "invalid_arguments") { + processError(issue.argumentsError); + } else if (issue.path.length === 0) { + fieldErrors._errors.push(mapper(issue)); + } else { + let curr = fieldErrors; + let i = 0; + while (i < issue.path.length) { + const el = issue.path[i]; + const terminal = i === issue.path.length - 1; + if (!terminal) { + curr[el] = curr[el] || { _errors: [] }; + } else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i++; + } + } + } + }; + processError(this); + return fieldErrors; + } + toString() { + return this.message; + } + get message() { + return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); + } + get isEmpty() { + return this.issues.length === 0; + } + flatten(mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of this.issues) { + if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else { + formErrors.push(mapper(sub)); + } + } + return { formErrors, fieldErrors }; + } + get formErrors() { + return this.flatten(); + } +}; +ZodError.create = (issues) => { + const error = new ZodError(issues); + return error; +}; +var errorMap = (issue, _ctx) => { + let message; + switch (issue.code) { + case ZodIssueCode.invalid_type: + if (issue.received === ZodParsedType.undefined) { + message = "Required"; + } else { + message = `Expected ${issue.expected}, received ${issue.received}`; + } + break; + case ZodIssueCode.invalid_literal: + message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; + break; + case ZodIssueCode.unrecognized_keys: + message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; + break; + case ZodIssueCode.invalid_union: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_union_discriminator: + message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; + break; + case ZodIssueCode.invalid_enum_value: + message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; + break; + case ZodIssueCode.invalid_arguments: + message = `Invalid function arguments`; + break; + case ZodIssueCode.invalid_return_type: + message = `Invalid function return type`; + break; + case ZodIssueCode.invalid_date: + message = `Invalid date`; + break; + case ZodIssueCode.invalid_string: + if (typeof issue.validation === "object") { + if ("includes" in issue.validation) { + message = `Invalid input: must include "${issue.validation.includes}"`; + if (typeof issue.validation.position === "number") { + message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; + } + } else if ("startsWith" in issue.validation) { + message = `Invalid input: must start with "${issue.validation.startsWith}"`; + } else if ("endsWith" in issue.validation) { + message = `Invalid input: must end with "${issue.validation.endsWith}"`; + } else { + util.assertNever(issue.validation); + } + } else if (issue.validation !== "regex") { + message = `Invalid ${issue.validation}`; + } else { + message = "Invalid"; + } + break; + case ZodIssueCode.too_small: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.too_big: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "bigint") + message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.custom: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_intersection_types: + message = `Intersection results could not be merged`; + break; + case ZodIssueCode.not_multiple_of: + message = `Number must be a multiple of ${issue.multipleOf}`; + break; + case ZodIssueCode.not_finite: + message = "Number must be finite"; + break; + default: + message = _ctx.defaultError; + util.assertNever(issue); + } + return { message }; +}; +var overrideErrorMap = errorMap; +function setErrorMap(map4) { + overrideErrorMap = map4; +} +function getErrorMap() { + return overrideErrorMap; +} +var makeIssue = (params) => { + const { data, path: path8, errorMaps, issueData } = params; + const fullPath = [...path8, ...issueData.path || []]; + const fullIssue = { + ...issueData, + path: fullPath + }; + let errorMessage = ""; + const maps = errorMaps.filter((m) => !!m).slice().reverse(); + for (const map4 of maps) { + errorMessage = map4(fullIssue, { data, defaultError: errorMessage }).message; + } + return { + ...issueData, + path: fullPath, + message: issueData.message || errorMessage + }; +}; +var EMPTY_PATH = []; +function addIssueToContext(ctx, issueData) { + const issue = makeIssue({ + issueData, + data: ctx.data, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + // then global default map + ].filter((x) => !!x) + }); + ctx.common.issues.push(issue); +} +var ParseStatus = class _ParseStatus { + constructor() { + this.value = "valid"; + } + dirty() { + if (this.value === "valid") + this.value = "dirty"; + } + abort() { + if (this.value !== "aborted") + this.value = "aborted"; + } + static mergeArray(status, results) { + const arrayValue = []; + for (const s of results) { + if (s.status === "aborted") + return INVALID; + if (s.status === "dirty") + status.dirty(); + arrayValue.push(s.value); + } + return { status: status.value, value: arrayValue }; + } + static async mergeObjectAsync(status, pairs2) { + const syncPairs = []; + for (const pair of pairs2) { + syncPairs.push({ + key: await pair.key, + value: await pair.value + }); + } + return _ParseStatus.mergeObjectSync(status, syncPairs); + } + static mergeObjectSync(status, pairs2) { + const finalObject = {}; + for (const pair of pairs2) { + const { key, value } = pair; + if (key.status === "aborted") + return INVALID; + if (value.status === "aborted") + return INVALID; + if (key.status === "dirty") + status.dirty(); + if (value.status === "dirty") + status.dirty(); + if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { + finalObject[key.value] = value.value; + } + } + return { status: status.value, value: finalObject }; + } +}; +var INVALID = Object.freeze({ + status: "aborted" +}); +var DIRTY = (value) => ({ status: "dirty", value }); +var OK = (value) => ({ status: "valid", value }); +var isAborted = (x) => x.status === "aborted"; +var isDirty = (x) => x.status === "dirty"; +var isValid = (x) => x.status === "valid"; +var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise; +var errorUtil; +(function(errorUtil2) { + errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {}; + errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message; +})(errorUtil || (errorUtil = {})); +var ParseInputLazyPath = class { + constructor(parent, value, path8, key) { + this._cachedPath = []; + this.parent = parent; + this.data = value; + this._path = path8; + this._key = key; + } + get path() { + if (!this._cachedPath.length) { + if (this._key instanceof Array) { + this._cachedPath.push(...this._path, ...this._key); + } else { + this._cachedPath.push(...this._path, this._key); + } + } + return this._cachedPath; + } +}; +var handleResult = (ctx, result) => { + if (isValid(result)) { + return { success: true, data: result.value }; + } else { + if (!ctx.common.issues.length) { + throw new Error("Validation failed but no issues detected."); + } + return { + success: false, + get error() { + if (this._error) + return this._error; + const error = new ZodError(ctx.common.issues); + this._error = error; + return this._error; + } + }; + } +}; +function processCreateParams(params) { + if (!params) + return {}; + const { errorMap: errorMap2, invalid_type_error, required_error, description } = params; + if (errorMap2 && (invalid_type_error || required_error)) { + throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); + } + if (errorMap2) + return { errorMap: errorMap2, description }; + const customMap = (iss, ctx) => { + if (iss.code !== "invalid_type") + return { message: ctx.defaultError }; + if (typeof ctx.data === "undefined") { + return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError }; + } + return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError }; + }; + return { errorMap: customMap, description }; +} +var ZodType = class { + constructor(def) { + this.spa = this.safeParseAsync; + this._def = def; + this.parse = this.parse.bind(this); + this.safeParse = this.safeParse.bind(this); + this.parseAsync = this.parseAsync.bind(this); + this.safeParseAsync = this.safeParseAsync.bind(this); + this.spa = this.spa.bind(this); + this.refine = this.refine.bind(this); + this.refinement = this.refinement.bind(this); + this.superRefine = this.superRefine.bind(this); + this.optional = this.optional.bind(this); + this.nullable = this.nullable.bind(this); + this.nullish = this.nullish.bind(this); + this.array = this.array.bind(this); + this.promise = this.promise.bind(this); + this.or = this.or.bind(this); + this.and = this.and.bind(this); + this.transform = this.transform.bind(this); + this.brand = this.brand.bind(this); + this.default = this.default.bind(this); + this.catch = this.catch.bind(this); + this.describe = this.describe.bind(this); + this.pipe = this.pipe.bind(this); + this.readonly = this.readonly.bind(this); + this.isNullable = this.isNullable.bind(this); + this.isOptional = this.isOptional.bind(this); + } + get description() { + return this._def.description; + } + _getType(input) { + return getParsedType(input.data); + } + _getOrReturnCtx(input, ctx) { + return ctx || { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + }; + } + _processInputParams(input) { + return { + status: new ParseStatus(), + ctx: { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + } + }; + } + _parseSync(input) { + const result = this._parse(input); + if (isAsync(result)) { + throw new Error("Synchronous parse encountered promise."); + } + return result; + } + _parseAsync(input) { + const result = this._parse(input); + return Promise.resolve(result); + } + parse(data, params) { + const result = this.safeParse(data, params); + if (result.success) + return result.data; + throw result.error; + } + safeParse(data, params) { + var _a; + const ctx = { + common: { + issues: [], + async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false, + contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap + }, + path: (params === null || params === void 0 ? void 0 : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const result = this._parseSync({ data, path: ctx.path, parent: ctx }); + return handleResult(ctx, result); + } + async parseAsync(data, params) { + const result = await this.safeParseAsync(data, params); + if (result.success) + return result.data; + throw result.error; + } + async safeParseAsync(data, params) { + const ctx = { + common: { + issues: [], + contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap, + async: true + }, + path: (params === null || params === void 0 ? void 0 : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); + const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); + return handleResult(ctx, result); + } + refine(check, message) { + const getIssueProperties = (val) => { + if (typeof message === "string" || typeof message === "undefined") { + return { message }; + } else if (typeof message === "function") { + return message(val); + } else { + return message; + } + }; + return this._refinement((val, ctx) => { + const result = check(val); + const setError = () => ctx.addIssue({ + code: ZodIssueCode.custom, + ...getIssueProperties(val) + }); + if (typeof Promise !== "undefined" && result instanceof Promise) { + return result.then((data) => { + if (!data) { + setError(); + return false; + } else { + return true; + } + }); + } + if (!result) { + setError(); + return false; + } else { + return true; + } + }); + } + refinement(check, refinementData) { + return this._refinement((val, ctx) => { + if (!check(val)) { + ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); + return false; + } else { + return true; + } + }); + } + _refinement(refinement) { + return new ZodEffects({ + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "refinement", refinement } + }); + } + superRefine(refinement) { + return this._refinement(refinement); + } + optional() { + return ZodOptional.create(this, this._def); + } + nullable() { + return ZodNullable.create(this, this._def); + } + nullish() { + return this.nullable().optional(); + } + array() { + return ZodArray.create(this, this._def); + } + promise() { + return ZodPromise.create(this, this._def); + } + or(option) { + return ZodUnion.create([this, option], this._def); + } + and(incoming) { + return ZodIntersection.create(this, incoming, this._def); + } + transform(transform) { + return new ZodEffects({ + ...processCreateParams(this._def), + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "transform", transform } + }); + } + default(def) { + const defaultValueFunc = typeof def === "function" ? def : () => def; + return new ZodDefault({ + ...processCreateParams(this._def), + innerType: this, + defaultValue: defaultValueFunc, + typeName: ZodFirstPartyTypeKind.ZodDefault + }); + } + brand() { + return new ZodBranded({ + typeName: ZodFirstPartyTypeKind.ZodBranded, + type: this, + ...processCreateParams(this._def) + }); + } + catch(def) { + const catchValueFunc = typeof def === "function" ? def : () => def; + return new ZodCatch({ + ...processCreateParams(this._def), + innerType: this, + catchValue: catchValueFunc, + typeName: ZodFirstPartyTypeKind.ZodCatch + }); + } + describe(description) { + const This = this.constructor; + return new This({ + ...this._def, + description + }); + } + pipe(target) { + return ZodPipeline.create(this, target); + } + readonly() { + return ZodReadonly.create(this); + } + isOptional() { + return this.safeParse(void 0).success; + } + isNullable() { + return this.safeParse(null).success; + } +}; +var cuidRegex = /^c[^\s-]{8,}$/i; +var cuid2Regex = /^[a-z][a-z0-9]*$/; +var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/; +var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; +var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; +var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; +var emojiRegex; +var ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/; +var ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/; +var datetimeRegex = (args) => { + if (args.precision) { + if (args.offset) { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`); + } else { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`); + } + } else if (args.precision === 0) { + if (args.offset) { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$`); + } else { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`); + } + } else { + if (args.offset) { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$`); + } else { + return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`); + } + } +}; +function isValidIP(ip, version2) { + if ((version2 === "v4" || !version2) && ipv4Regex.test(ip)) { + return true; + } + if ((version2 === "v6" || !version2) && ipv6Regex.test(ip)) { + return true; + } + return false; +} +var ZodString = class _ZodString extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = String(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.string) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext( + ctx2, + { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.string, + received: ctx2.parsedType + } + // + ); + return INVALID; + } + const status = new ParseStatus(); + let ctx = void 0; + for (const check of this._def.checks) { + if (check.kind === "min") { + if (input.data.length < check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: true, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "max") { + if (input.data.length > check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: true, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "length") { + const tooBig = input.data.length > check.value; + const tooSmall = input.data.length < check.value; + if (tooBig || tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + if (tooBig) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: true, + exact: true, + message: check.message + }); + } else if (tooSmall) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: true, + exact: true, + message: check.message + }); + } + status.dirty(); + } + } else if (check.kind === "email") { + if (!emailRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "email", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "emoji") { + if (!emojiRegex) { + emojiRegex = new RegExp(_emojiRegex, "u"); + } + if (!emojiRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "emoji", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "uuid") { + if (!uuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "uuid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "cuid") { + if (!cuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "cuid2") { + if (!cuid2Regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid2", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "ulid") { + if (!ulidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ulid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "url") { + try { + new URL(input.data); + } catch (_a) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "url", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "regex") { + check.regex.lastIndex = 0; + const testResult = check.regex.test(input.data); + if (!testResult) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "regex", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "trim") { + input.data = input.data.trim(); + } else if (check.kind === "includes") { + if (!input.data.includes(check.value, check.position)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { includes: check.value, position: check.position }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "toLowerCase") { + input.data = input.data.toLowerCase(); + } else if (check.kind === "toUpperCase") { + input.data = input.data.toUpperCase(); + } else if (check.kind === "startsWith") { + if (!input.data.startsWith(check.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { startsWith: check.value }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "endsWith") { + if (!input.data.endsWith(check.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { endsWith: check.value }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "datetime") { + const regex = datetimeRegex(check); + if (!regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "datetime", + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "ip") { + if (!isValidIP(input.data, check.version)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ip", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else { + util.assertNever(check); + } + } + return { status: status.value, value: input.data }; + } + _regex(regex, validation, message) { + return this.refinement((data) => regex.test(data), { + validation, + code: ZodIssueCode.invalid_string, + ...errorUtil.errToObj(message) + }); + } + _addCheck(check) { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + email(message) { + return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); + } + url(message) { + return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); + } + emoji(message) { + return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); + } + uuid(message) { + return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); + } + cuid(message) { + return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); + } + cuid2(message) { + return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); + } + ulid(message) { + return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); + } + ip(options2) { + return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options2) }); + } + datetime(options2) { + var _a; + if (typeof options2 === "string") { + return this._addCheck({ + kind: "datetime", + precision: null, + offset: false, + message: options2 + }); + } + return this._addCheck({ + kind: "datetime", + precision: typeof (options2 === null || options2 === void 0 ? void 0 : options2.precision) === "undefined" ? null : options2 === null || options2 === void 0 ? void 0 : options2.precision, + offset: (_a = options2 === null || options2 === void 0 ? void 0 : options2.offset) !== null && _a !== void 0 ? _a : false, + ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message) + }); + } + regex(regex, message) { + return this._addCheck({ + kind: "regex", + regex, + ...errorUtil.errToObj(message) + }); + } + includes(value, options2) { + return this._addCheck({ + kind: "includes", + value, + position: options2 === null || options2 === void 0 ? void 0 : options2.position, + ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message) + }); + } + startsWith(value, message) { + return this._addCheck({ + kind: "startsWith", + value, + ...errorUtil.errToObj(message) + }); + } + endsWith(value, message) { + return this._addCheck({ + kind: "endsWith", + value, + ...errorUtil.errToObj(message) + }); + } + min(minLength, message) { + return this._addCheck({ + kind: "min", + value: minLength, + ...errorUtil.errToObj(message) + }); + } + max(maxLength, message) { + return this._addCheck({ + kind: "max", + value: maxLength, + ...errorUtil.errToObj(message) + }); + } + length(len, message) { + return this._addCheck({ + kind: "length", + value: len, + ...errorUtil.errToObj(message) + }); + } + /** + * @deprecated Use z.string().min(1) instead. + * @see {@link ZodString.min} + */ + nonempty(message) { + return this.min(1, errorUtil.errToObj(message)); + } + trim() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "trim" }] + }); + } + toLowerCase() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toLowerCase" }] + }); + } + toUpperCase() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toUpperCase" }] + }); + } + get isDatetime() { + return !!this._def.checks.find((ch) => ch.kind === "datetime"); + } + get isEmail() { + return !!this._def.checks.find((ch) => ch.kind === "email"); + } + get isURL() { + return !!this._def.checks.find((ch) => ch.kind === "url"); + } + get isEmoji() { + return !!this._def.checks.find((ch) => ch.kind === "emoji"); + } + get isUUID() { + return !!this._def.checks.find((ch) => ch.kind === "uuid"); + } + get isCUID() { + return !!this._def.checks.find((ch) => ch.kind === "cuid"); + } + get isCUID2() { + return !!this._def.checks.find((ch) => ch.kind === "cuid2"); + } + get isULID() { + return !!this._def.checks.find((ch) => ch.kind === "ulid"); + } + get isIP() { + return !!this._def.checks.find((ch) => ch.kind === "ip"); + } + get minLength() { + let min2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min2 === null || ch.value > min2) + min2 = ch.value; + } + } + return min2; + } + get maxLength() { + let max2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max2 === null || ch.value < max2) + max2 = ch.value; + } + } + return max2; + } +}; +ZodString.create = (params) => { + var _a; + return new ZodString({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodString, + coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false, + ...processCreateParams(params) + }); +}; +function floatSafeRemainder(val, step) { + const valDecCount = (val.toString().split(".")[1] || "").length; + const stepDecCount = (step.toString().split(".")[1] || "").length; + const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; + const valInt = parseInt(val.toFixed(decCount).replace(".", "")); + const stepInt = parseInt(step.toFixed(decCount).replace(".", "")); + return valInt % stepInt / Math.pow(10, decCount); +} +var ZodNumber = class _ZodNumber extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + this.step = this.multipleOf; + } + _parse(input) { + if (this._def.coerce) { + input.data = Number(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.number) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.number, + received: ctx2.parsedType + }); + return INVALID; + } + let ctx = void 0; + const status = new ParseStatus(); + for (const check of this._def.checks) { + if (check.kind === "int") { + if (!util.isInteger(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: "integer", + received: "float", + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "min") { + const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "number", + inclusive: check.inclusive, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "max") { + const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "number", + inclusive: check.inclusive, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "multipleOf") { + if (floatSafeRemainder(input.data, check.value) !== 0) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check.value, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "finite") { + if (!Number.isFinite(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_finite, + message: check.message + }); + status.dirty(); + } + } else { + util.assertNever(check); + } + } + return { status: status.value, value: input.data }; + } + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); + } + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); + } + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); + } + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); + } + setLimit(kind, value, inclusive, message) { + return new _ZodNumber({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); + } + _addCheck(check) { + return new _ZodNumber({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + int(message) { + return this._addCheck({ + kind: "int", + message: errorUtil.toString(message) + }); + } + positive(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + finite(message) { + return this._addCheck({ + kind: "finite", + message: errorUtil.toString(message) + }); + } + safe(message) { + return this._addCheck({ + kind: "min", + inclusive: true, + value: Number.MIN_SAFE_INTEGER, + message: errorUtil.toString(message) + })._addCheck({ + kind: "max", + inclusive: true, + value: Number.MAX_SAFE_INTEGER, + message: errorUtil.toString(message) + }); + } + get minValue() { + let min2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min2 === null || ch.value > min2) + min2 = ch.value; + } + } + return min2; + } + get maxValue() { + let max2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max2 === null || ch.value < max2) + max2 = ch.value; + } + } + return max2; + } + get isInt() { + return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); + } + get isFinite() { + let max2 = null, min2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { + return true; + } else if (ch.kind === "min") { + if (min2 === null || ch.value > min2) + min2 = ch.value; + } else if (ch.kind === "max") { + if (max2 === null || ch.value < max2) + max2 = ch.value; + } + } + return Number.isFinite(min2) && Number.isFinite(max2); + } +}; +ZodNumber.create = (params) => { + return new ZodNumber({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodNumber, + coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false, + ...processCreateParams(params) + }); +}; +var ZodBigInt = class _ZodBigInt extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + } + _parse(input) { + if (this._def.coerce) { + input.data = BigInt(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.bigint) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.bigint, + received: ctx2.parsedType + }); + return INVALID; + } + let ctx = void 0; + const status = new ParseStatus(); + for (const check of this._def.checks) { + if (check.kind === "min") { + const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + type: "bigint", + minimum: check.value, + inclusive: check.inclusive, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "max") { + const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + type: "bigint", + maximum: check.value, + inclusive: check.inclusive, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "multipleOf") { + if (input.data % check.value !== BigInt(0)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check.value, + message: check.message + }); + status.dirty(); + } + } else { + util.assertNever(check); + } + } + return { status: status.value, value: input.data }; + } + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); + } + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); + } + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); + } + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); + } + setLimit(kind, value, inclusive, message) { + return new _ZodBigInt({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); + } + _addCheck(check) { + return new _ZodBigInt({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + positive(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + get minValue() { + let min2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min2 === null || ch.value > min2) + min2 = ch.value; + } + } + return min2; + } + get maxValue() { + let max2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max2 === null || ch.value < max2) + max2 = ch.value; + } + } + return max2; + } +}; +ZodBigInt.create = (params) => { + var _a; + return new ZodBigInt({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodBigInt, + coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false, + ...processCreateParams(params) + }); +}; +var ZodBoolean = class extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = Boolean(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.boolean) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.boolean, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } +}; +ZodBoolean.create = (params) => { + return new ZodBoolean({ + typeName: ZodFirstPartyTypeKind.ZodBoolean, + coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false, + ...processCreateParams(params) + }); +}; +var ZodDate = class _ZodDate extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = new Date(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.date) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.date, + received: ctx2.parsedType + }); + return INVALID; + } + if (isNaN(input.data.getTime())) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_date + }); + return INVALID; + } + const status = new ParseStatus(); + let ctx = void 0; + for (const check of this._def.checks) { + if (check.kind === "min") { + if (input.data.getTime() < check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + message: check.message, + inclusive: true, + exact: false, + minimum: check.value, + type: "date" + }); + status.dirty(); + } + } else if (check.kind === "max") { + if (input.data.getTime() > check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + message: check.message, + inclusive: true, + exact: false, + maximum: check.value, + type: "date" + }); + status.dirty(); + } + } else { + util.assertNever(check); + } + } + return { + status: status.value, + value: new Date(input.data.getTime()) + }; + } + _addCheck(check) { + return new _ZodDate({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + min(minDate, message) { + return this._addCheck({ + kind: "min", + value: minDate.getTime(), + message: errorUtil.toString(message) + }); + } + max(maxDate, message) { + return this._addCheck({ + kind: "max", + value: maxDate.getTime(), + message: errorUtil.toString(message) + }); + } + get minDate() { + let min2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min2 === null || ch.value > min2) + min2 = ch.value; + } + } + return min2 != null ? new Date(min2) : null; + } + get maxDate() { + let max2 = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max2 === null || ch.value < max2) + max2 = ch.value; + } + } + return max2 != null ? new Date(max2) : null; + } +}; +ZodDate.create = (params) => { + return new ZodDate({ + checks: [], + coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false, + typeName: ZodFirstPartyTypeKind.ZodDate, + ...processCreateParams(params) + }); +}; +var ZodSymbol = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.symbol) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.symbol, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } +}; +ZodSymbol.create = (params) => { + return new ZodSymbol({ + typeName: ZodFirstPartyTypeKind.ZodSymbol, + ...processCreateParams(params) + }); +}; +var ZodUndefined = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.undefined, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } +}; +ZodUndefined.create = (params) => { + return new ZodUndefined({ + typeName: ZodFirstPartyTypeKind.ZodUndefined, + ...processCreateParams(params) + }); +}; +var ZodNull = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.null) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.null, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } +}; +ZodNull.create = (params) => { + return new ZodNull({ + typeName: ZodFirstPartyTypeKind.ZodNull, + ...processCreateParams(params) + }); +}; +var ZodAny = class extends ZodType { + constructor() { + super(...arguments); + this._any = true; + } + _parse(input) { + return OK(input.data); + } +}; +ZodAny.create = (params) => { + return new ZodAny({ + typeName: ZodFirstPartyTypeKind.ZodAny, + ...processCreateParams(params) + }); +}; +var ZodUnknown = class extends ZodType { + constructor() { + super(...arguments); + this._unknown = true; + } + _parse(input) { + return OK(input.data); + } +}; +ZodUnknown.create = (params) => { + return new ZodUnknown({ + typeName: ZodFirstPartyTypeKind.ZodUnknown, + ...processCreateParams(params) + }); +}; +var ZodNever = class extends ZodType { + _parse(input) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.never, + received: ctx.parsedType + }); + return INVALID; + } +}; +ZodNever.create = (params) => { + return new ZodNever({ + typeName: ZodFirstPartyTypeKind.ZodNever, + ...processCreateParams(params) + }); +}; +var ZodVoid = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.void, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } +}; +ZodVoid.create = (params) => { + return new ZodVoid({ + typeName: ZodFirstPartyTypeKind.ZodVoid, + ...processCreateParams(params) + }); +}; +var ZodArray = class _ZodArray extends ZodType { + _parse(input) { + const { ctx, status } = this._processInputParams(input); + const def = this._def; + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; + } + if (def.exactLength !== null) { + const tooBig = ctx.data.length > def.exactLength.value; + const tooSmall = ctx.data.length < def.exactLength.value; + if (tooBig || tooSmall) { + addIssueToContext(ctx, { + code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, + minimum: tooSmall ? def.exactLength.value : void 0, + maximum: tooBig ? def.exactLength.value : void 0, + type: "array", + inclusive: true, + exact: true, + message: def.exactLength.message + }); + status.dirty(); + } + } + if (def.minLength !== null) { + if (ctx.data.length < def.minLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.minLength.message + }); + status.dirty(); + } + } + if (def.maxLength !== null) { + if (ctx.data.length > def.maxLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.maxLength.message + }); + status.dirty(); + } + } + if (ctx.common.async) { + return Promise.all([...ctx.data].map((item, i) => { + return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)); + })).then((result2) => { + return ParseStatus.mergeArray(status, result2); + }); + } + const result = [...ctx.data].map((item, i) => { + return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)); + }); + return ParseStatus.mergeArray(status, result); + } + get element() { + return this._def.type; + } + min(minLength, message) { + return new _ZodArray({ + ...this._def, + minLength: { value: minLength, message: errorUtil.toString(message) } + }); + } + max(maxLength, message) { + return new _ZodArray({ + ...this._def, + maxLength: { value: maxLength, message: errorUtil.toString(message) } + }); + } + length(len, message) { + return new _ZodArray({ + ...this._def, + exactLength: { value: len, message: errorUtil.toString(message) } + }); + } + nonempty(message) { + return this.min(1, message); + } +}; +ZodArray.create = (schema3, params) => { + return new ZodArray({ + type: schema3, + minLength: null, + maxLength: null, + exactLength: null, + typeName: ZodFirstPartyTypeKind.ZodArray, + ...processCreateParams(params) + }); +}; +function deepPartialify(schema3) { + if (schema3 instanceof ZodObject) { + const newShape = {}; + for (const key in schema3.shape) { + const fieldSchema = schema3.shape[key]; + newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); + } + return new ZodObject({ + ...schema3._def, + shape: () => newShape + }); + } else if (schema3 instanceof ZodArray) { + return new ZodArray({ + ...schema3._def, + type: deepPartialify(schema3.element) + }); + } else if (schema3 instanceof ZodOptional) { + return ZodOptional.create(deepPartialify(schema3.unwrap())); + } else if (schema3 instanceof ZodNullable) { + return ZodNullable.create(deepPartialify(schema3.unwrap())); + } else if (schema3 instanceof ZodTuple) { + return ZodTuple.create(schema3.items.map((item) => deepPartialify(item))); + } else { + return schema3; + } +} +var ZodObject = class _ZodObject extends ZodType { + constructor() { + super(...arguments); + this._cached = null; + this.nonstrict = this.passthrough; + this.augment = this.extend; + } + _getCached() { + if (this._cached !== null) + return this._cached; + const shape = this._def.shape(); + const keys = util.objectKeys(shape); + return this._cached = { shape, keys }; + } + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.object) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx2.parsedType + }); + return INVALID; + } + const { status, ctx } = this._processInputParams(input); + const { shape, keys: shapeKeys } = this._getCached(); + const extraKeys = []; + if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { + for (const key in ctx.data) { + if (!shapeKeys.includes(key)) { + extraKeys.push(key); + } + } + } + const pairs2 = []; + for (const key of shapeKeys) { + const keyValidator = shape[key]; + const value = ctx.data[key]; + pairs2.push({ + key: { status: "valid", value: key }, + value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), + alwaysSet: key in ctx.data + }); + } + if (this._def.catchall instanceof ZodNever) { + const unknownKeys = this._def.unknownKeys; + if (unknownKeys === "passthrough") { + for (const key of extraKeys) { + pairs2.push({ + key: { status: "valid", value: key }, + value: { status: "valid", value: ctx.data[key] } + }); + } + } else if (unknownKeys === "strict") { + if (extraKeys.length > 0) { + addIssueToContext(ctx, { + code: ZodIssueCode.unrecognized_keys, + keys: extraKeys + }); + status.dirty(); + } + } else if (unknownKeys === "strip") + ; + else { + throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); + } + } else { + const catchall = this._def.catchall; + for (const key of extraKeys) { + const value = ctx.data[key]; + pairs2.push({ + key: { status: "valid", value: key }, + value: catchall._parse( + new ParseInputLazyPath(ctx, value, ctx.path, key) + //, ctx.child(key), value, getParsedType(value) + ), + alwaysSet: key in ctx.data + }); + } + } + if (ctx.common.async) { + return Promise.resolve().then(async () => { + const syncPairs = []; + for (const pair of pairs2) { + const key = await pair.key; + syncPairs.push({ + key, + value: await pair.value, + alwaysSet: pair.alwaysSet + }); + } + return syncPairs; + }).then((syncPairs) => { + return ParseStatus.mergeObjectSync(status, syncPairs); + }); + } else { + return ParseStatus.mergeObjectSync(status, pairs2); + } + } + get shape() { + return this._def.shape(); + } + strict(message) { + errorUtil.errToObj; + return new _ZodObject({ + ...this._def, + unknownKeys: "strict", + ...message !== void 0 ? { + errorMap: (issue, ctx) => { + var _a, _b, _c, _d; + const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError; + if (issue.code === "unrecognized_keys") + return { + message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError + }; + return { + message: defaultError + }; + } + } : {} + }); + } + strip() { + return new _ZodObject({ + ...this._def, + unknownKeys: "strip" + }); + } + passthrough() { + return new _ZodObject({ + ...this._def, + unknownKeys: "passthrough" + }); + } + // const AugmentFactory = + // (def: Def) => + // ( + // augmentation: Augmentation + // ): ZodObject< + // extendShape, Augmentation>, + // Def["unknownKeys"], + // Def["catchall"] + // > => { + // return new ZodObject({ + // ...def, + // shape: () => ({ + // ...def.shape(), + // ...augmentation, + // }), + // }) as any; + // }; + extend(augmentation) { + return new _ZodObject({ + ...this._def, + shape: () => ({ + ...this._def.shape(), + ...augmentation + }) + }); + } + /** + * Prior to zod@1.0.12 there was a bug in the + * inferred type of merged objects. Please + * upgrade if you are experiencing issues. + */ + merge(merging) { + const merged = new _ZodObject({ + unknownKeys: merging._def.unknownKeys, + catchall: merging._def.catchall, + shape: () => ({ + ...this._def.shape(), + ...merging._def.shape() + }), + typeName: ZodFirstPartyTypeKind.ZodObject + }); + return merged; + } + // merge< + // Incoming extends AnyZodObject, + // Augmentation extends Incoming["shape"], + // NewOutput extends { + // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation + // ? Augmentation[k]["_output"] + // : k extends keyof Output + // ? Output[k] + // : never; + // }, + // NewInput extends { + // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation + // ? Augmentation[k]["_input"] + // : k extends keyof Input + // ? Input[k] + // : never; + // } + // >( + // merging: Incoming + // ): ZodObject< + // extendShape>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"], + // NewOutput, + // NewInput + // > { + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + setKey(key, schema3) { + return this.augment({ [key]: schema3 }); + } + // merge( + // merging: Incoming + // ): //ZodObject = (merging) => { + // ZodObject< + // extendShape>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"] + // > { + // // const mergedShape = objectUtil.mergeShapes( + // // this._def.shape(), + // // merging._def.shape() + // // ); + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + catchall(index) { + return new _ZodObject({ + ...this._def, + catchall: index + }); + } + pick(mask) { + const shape = {}; + util.objectKeys(mask).forEach((key) => { + if (mask[key] && this.shape[key]) { + shape[key] = this.shape[key]; + } + }); + return new _ZodObject({ + ...this._def, + shape: () => shape + }); + } + omit(mask) { + const shape = {}; + util.objectKeys(this.shape).forEach((key) => { + if (!mask[key]) { + shape[key] = this.shape[key]; + } + }); + return new _ZodObject({ + ...this._def, + shape: () => shape + }); + } + /** + * @deprecated + */ + deepPartial() { + return deepPartialify(this); + } + partial(mask) { + const newShape = {}; + util.objectKeys(this.shape).forEach((key) => { + const fieldSchema = this.shape[key]; + if (mask && !mask[key]) { + newShape[key] = fieldSchema; + } else { + newShape[key] = fieldSchema.optional(); + } + }); + return new _ZodObject({ + ...this._def, + shape: () => newShape + }); + } + required(mask) { + const newShape = {}; + util.objectKeys(this.shape).forEach((key) => { + if (mask && !mask[key]) { + newShape[key] = this.shape[key]; + } else { + const fieldSchema = this.shape[key]; + let newField = fieldSchema; + while (newField instanceof ZodOptional) { + newField = newField._def.innerType; + } + newShape[key] = newField; + } + }); + return new _ZodObject({ + ...this._def, + shape: () => newShape + }); + } + keyof() { + return createZodEnum(util.objectKeys(this.shape)); + } +}; +ZodObject.create = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; +ZodObject.strictCreate = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strict", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; +ZodObject.lazycreate = (shape, params) => { + return new ZodObject({ + shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; +var ZodUnion = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const options2 = this._def.options; + function handleResults(results) { + for (const result of results) { + if (result.result.status === "valid") { + return result.result; + } + } + for (const result of results) { + if (result.result.status === "dirty") { + ctx.common.issues.push(...result.ctx.common.issues); + return result.result; + } + } + const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; + } + if (ctx.common.async) { + return Promise.all(options2.map(async (option) => { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + return { + result: await option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }), + ctx: childCtx + }; + })).then(handleResults); + } else { + let dirty = void 0; + const issues = []; + for (const option of options2) { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + const result = option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }); + if (result.status === "valid") { + return result; + } else if (result.status === "dirty" && !dirty) { + dirty = { result, ctx: childCtx }; + } + if (childCtx.common.issues.length) { + issues.push(childCtx.common.issues); + } + } + if (dirty) { + ctx.common.issues.push(...dirty.ctx.common.issues); + return dirty.result; + } + const unionErrors = issues.map((issues2) => new ZodError(issues2)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; + } + } + get options() { + return this._def.options; + } +}; +ZodUnion.create = (types2, params) => { + return new ZodUnion({ + options: types2, + typeName: ZodFirstPartyTypeKind.ZodUnion, + ...processCreateParams(params) + }); +}; +var getDiscriminator = (type2) => { + if (type2 instanceof ZodLazy) { + return getDiscriminator(type2.schema); + } else if (type2 instanceof ZodEffects) { + return getDiscriminator(type2.innerType()); + } else if (type2 instanceof ZodLiteral) { + return [type2.value]; + } else if (type2 instanceof ZodEnum) { + return type2.options; + } else if (type2 instanceof ZodNativeEnum) { + return Object.keys(type2.enum); + } else if (type2 instanceof ZodDefault) { + return getDiscriminator(type2._def.innerType); + } else if (type2 instanceof ZodUndefined) { + return [void 0]; + } else if (type2 instanceof ZodNull) { + return [null]; + } else { + return null; + } +}; +var ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; + } + const discriminator = this.discriminator; + const discriminatorValue = ctx.data[discriminator]; + const option = this.optionsMap.get(discriminatorValue); + if (!option) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union_discriminator, + options: Array.from(this.optionsMap.keys()), + path: [discriminator] + }); + return INVALID; + } + if (ctx.common.async) { + return option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } else { + return option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } + } + get discriminator() { + return this._def.discriminator; + } + get options() { + return this._def.options; + } + get optionsMap() { + return this._def.optionsMap; + } + /** + * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. + * However, it only allows a union of objects, all of which need to share a discriminator property. This property must + * have a different value for each object in the union. + * @param discriminator the name of the discriminator property + * @param types an array of object schemas + * @param params + */ + static create(discriminator, options2, params) { + const optionsMap = /* @__PURE__ */ new Map(); + for (const type2 of options2) { + const discriminatorValues = getDiscriminator(type2.shape[discriminator]); + if (!discriminatorValues) { + throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); + } + for (const value of discriminatorValues) { + if (optionsMap.has(value)) { + throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); + } + optionsMap.set(value, type2); + } + } + return new _ZodDiscriminatedUnion({ + typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, + discriminator, + options: options2, + optionsMap, + ...processCreateParams(params) + }); + } +}; +function mergeValues(a, b) { + const aType = getParsedType(a); + const bType = getParsedType(b); + if (a === b) { + return { valid: true, data: a }; + } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { + const bKeys = util.objectKeys(b); + const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { ...a, ...b }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) { + return { valid: false }; + } + newObj[key] = sharedValue.data; + } + return { valid: true, data: newObj }; + } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { + if (a.length !== b.length) { + return { valid: false }; + } + const newArray = []; + for (let index = 0; index < a.length; index++) { + const itemA = a[index]; + const itemB = b[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) { + return { valid: false }; + } + newArray.push(sharedValue.data); + } + return { valid: true, data: newArray }; + } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) { + return { valid: true, data: a }; + } else { + return { valid: false }; + } +} +var ZodIntersection = class extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const handleParsed = (parsedLeft, parsedRight) => { + if (isAborted(parsedLeft) || isAborted(parsedRight)) { + return INVALID; + } + const merged = mergeValues(parsedLeft.value, parsedRight.value); + if (!merged.valid) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_intersection_types + }); + return INVALID; + } + if (isDirty(parsedLeft) || isDirty(parsedRight)) { + status.dirty(); + } + return { status: status.value, value: merged.data }; + }; + if (ctx.common.async) { + return Promise.all([ + this._def.left._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), + this._def.right._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) + ]).then(([left, right]) => handleParsed(left, right)); + } else { + return handleParsed(this._def.left._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), this._def.right._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + })); + } + } +}; +ZodIntersection.create = (left, right, params) => { + return new ZodIntersection({ + left, + right, + typeName: ZodFirstPartyTypeKind.ZodIntersection, + ...processCreateParams(params) + }); +}; +var ZodTuple = class _ZodTuple extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; + } + if (ctx.data.length < this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + return INVALID; + } + const rest = this._def.rest; + if (!rest && ctx.data.length > this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + status.dirty(); + } + const items = [...ctx.data].map((item, itemIndex) => { + const schema3 = this._def.items[itemIndex] || this._def.rest; + if (!schema3) + return null; + return schema3._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); + }).filter((x) => !!x); + if (ctx.common.async) { + return Promise.all(items).then((results) => { + return ParseStatus.mergeArray(status, results); + }); + } else { + return ParseStatus.mergeArray(status, items); + } + } + get items() { + return this._def.items; + } + rest(rest) { + return new _ZodTuple({ + ...this._def, + rest + }); + } +}; +ZodTuple.create = (schemas, params) => { + if (!Array.isArray(schemas)) { + throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); + } + return new ZodTuple({ + items: schemas, + typeName: ZodFirstPartyTypeKind.ZodTuple, + rest: null, + ...processCreateParams(params) + }); +}; +var ZodRecord = class _ZodRecord extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; + } + const pairs2 = []; + const keyType = this._def.keyType; + const valueType = this._def.valueType; + for (const key in ctx.data) { + pairs2.push({ + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), + value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)) + }); + } + if (ctx.common.async) { + return ParseStatus.mergeObjectAsync(status, pairs2); + } else { + return ParseStatus.mergeObjectSync(status, pairs2); + } + } + get element() { + return this._def.valueType; + } + static create(first, second, third) { + if (second instanceof ZodType) { + return new _ZodRecord({ + keyType: first, + valueType: second, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(third) + }); + } + return new _ZodRecord({ + keyType: ZodString.create(), + valueType: first, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(second) + }); + } +}; +var ZodMap = class extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.map) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.map, + received: ctx.parsedType + }); + return INVALID; + } + const keyType = this._def.keyType; + const valueType = this._def.valueType; + const pairs2 = [...ctx.data.entries()].map(([key, value], index) => { + return { + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), + value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) + }; + }); + if (ctx.common.async) { + const finalMap = /* @__PURE__ */ new Map(); + return Promise.resolve().then(async () => { + for (const pair of pairs2) { + const key = await pair.key; + const value = await pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + }); + } else { + const finalMap = /* @__PURE__ */ new Map(); + for (const pair of pairs2) { + const key = pair.key; + const value = pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + } + } +}; +ZodMap.create = (keyType, valueType, params) => { + return new ZodMap({ + valueType, + keyType, + typeName: ZodFirstPartyTypeKind.ZodMap, + ...processCreateParams(params) + }); +}; +var ZodSet = class _ZodSet extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.set) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.set, + received: ctx.parsedType + }); + return INVALID; + } + const def = this._def; + if (def.minSize !== null) { + if (ctx.data.size < def.minSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.minSize.message + }); + status.dirty(); + } + } + if (def.maxSize !== null) { + if (ctx.data.size > def.maxSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.maxSize.message + }); + status.dirty(); + } + } + const valueType = this._def.valueType; + function finalizeSet(elements2) { + const parsedSet = /* @__PURE__ */ new Set(); + for (const element of elements2) { + if (element.status === "aborted") + return INVALID; + if (element.status === "dirty") + status.dirty(); + parsedSet.add(element.value); + } + return { status: status.value, value: parsedSet }; + } + const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); + if (ctx.common.async) { + return Promise.all(elements).then((elements2) => finalizeSet(elements2)); + } else { + return finalizeSet(elements); + } + } + min(minSize, message) { + return new _ZodSet({ + ...this._def, + minSize: { value: minSize, message: errorUtil.toString(message) } + }); + } + max(maxSize, message) { + return new _ZodSet({ + ...this._def, + maxSize: { value: maxSize, message: errorUtil.toString(message) } + }); + } + size(size, message) { + return this.min(size, message).max(size, message); + } + nonempty(message) { + return this.min(1, message); + } +}; +ZodSet.create = (valueType, params) => { + return new ZodSet({ + valueType, + minSize: null, + maxSize: null, + typeName: ZodFirstPartyTypeKind.ZodSet, + ...processCreateParams(params) + }); +}; +var ZodFunction = class _ZodFunction extends ZodType { + constructor() { + super(...arguments); + this.validate = this.implement; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.function) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.function, + received: ctx.parsedType + }); + return INVALID; + } + function makeArgsIssue(args, error) { + return makeIssue({ + data: args, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_arguments, + argumentsError: error + } + }); + } + function makeReturnsIssue(returns, error) { + return makeIssue({ + data: returns, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_return_type, + returnTypeError: error + } + }); + } + const params = { errorMap: ctx.common.contextualErrorMap }; + const fn = ctx.data; + if (this._def.returns instanceof ZodPromise) { + const me = this; + return OK(async function(...args) { + const error = new ZodError([]); + const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { + error.addIssue(makeArgsIssue(args, e)); + throw error; + }); + const result = await Reflect.apply(fn, this, parsedArgs); + const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => { + error.addIssue(makeReturnsIssue(result, e)); + throw error; + }); + return parsedReturns; + }); + } else { + const me = this; + return OK(function(...args) { + const parsedArgs = me._def.args.safeParse(args, params); + if (!parsedArgs.success) { + throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); + } + const result = Reflect.apply(fn, this, parsedArgs.data); + const parsedReturns = me._def.returns.safeParse(result, params); + if (!parsedReturns.success) { + throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); + } + return parsedReturns.data; + }); + } + } + parameters() { + return this._def.args; + } + returnType() { + return this._def.returns; + } + args(...items) { + return new _ZodFunction({ + ...this._def, + args: ZodTuple.create(items).rest(ZodUnknown.create()) + }); + } + returns(returnType) { + return new _ZodFunction({ + ...this._def, + returns: returnType + }); + } + implement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + strictImplement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + static create(args, returns, params) { + return new _ZodFunction({ + args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()), + returns: returns || ZodUnknown.create(), + typeName: ZodFirstPartyTypeKind.ZodFunction, + ...processCreateParams(params) + }); + } +}; +var ZodLazy = class extends ZodType { + get schema() { + return this._def.getter(); + } + _parse(input) { + const { ctx } = this._processInputParams(input); + const lazySchema = this._def.getter(); + return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); + } +}; +ZodLazy.create = (getter, params) => { + return new ZodLazy({ + getter, + typeName: ZodFirstPartyTypeKind.ZodLazy, + ...processCreateParams(params) + }); +}; +var ZodLiteral = class extends ZodType { + _parse(input) { + if (input.data !== this._def.value) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_literal, + expected: this._def.value + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } + get value() { + return this._def.value; + } +}; +ZodLiteral.create = (value, params) => { + return new ZodLiteral({ + value, + typeName: ZodFirstPartyTypeKind.ZodLiteral, + ...processCreateParams(params) + }); +}; +function createZodEnum(values2, params) { + return new ZodEnum({ + values: values2, + typeName: ZodFirstPartyTypeKind.ZodEnum, + ...processCreateParams(params) + }); +} +var ZodEnum = class _ZodEnum extends ZodType { + _parse(input) { + if (typeof input.data !== "string") { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }); + return INVALID; + } + if (this._def.values.indexOf(input.data) === -1) { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }); + return INVALID; + } + return OK(input.data); + } + get options() { + return this._def.values; + } + get enum() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; + } + return enumValues; + } + get Values() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; + } + return enumValues; + } + get Enum() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; + } + return enumValues; + } + extract(values2) { + return _ZodEnum.create(values2); + } + exclude(values2) { + return _ZodEnum.create(this.options.filter((opt) => !values2.includes(opt))); + } +}; +ZodEnum.create = createZodEnum; +var ZodNativeEnum = class extends ZodType { + _parse(input) { + const nativeEnumValues = util.getValidEnumValues(this._def.values); + const ctx = this._getOrReturnCtx(input); + if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }); + return INVALID; + } + if (nativeEnumValues.indexOf(input.data) === -1) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }); + return INVALID; + } + return OK(input.data); + } + get enum() { + return this._def.values; + } +}; +ZodNativeEnum.create = (values2, params) => { + return new ZodNativeEnum({ + values: values2, + typeName: ZodFirstPartyTypeKind.ZodNativeEnum, + ...processCreateParams(params) + }); +}; +var ZodPromise = class extends ZodType { + unwrap() { + return this._def.type; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.promise, + received: ctx.parsedType + }); + return INVALID; + } + const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); + return OK(promisified.then((data) => { + return this._def.type.parseAsync(data, { + path: ctx.path, + errorMap: ctx.common.contextualErrorMap + }); + })); + } +}; +ZodPromise.create = (schema3, params) => { + return new ZodPromise({ + type: schema3, + typeName: ZodFirstPartyTypeKind.ZodPromise, + ...processCreateParams(params) + }); +}; +var ZodEffects = class extends ZodType { + innerType() { + return this._def.schema; + } + sourceType() { + return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const effect = this._def.effect || null; + const checkCtx = { + addIssue: (arg) => { + addIssueToContext(ctx, arg); + if (arg.fatal) { + status.abort(); + } else { + status.dirty(); + } + }, + get path() { + return ctx.path; + } + }; + checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); + if (effect.type === "preprocess") { + const processed = effect.transform(ctx.data, checkCtx); + if (ctx.common.issues.length) { + return { + status: "dirty", + value: ctx.data + }; + } + if (ctx.common.async) { + return Promise.resolve(processed).then((processed2) => { + return this._def.schema._parseAsync({ + data: processed2, + path: ctx.path, + parent: ctx + }); + }); + } else { + return this._def.schema._parseSync({ + data: processed, + path: ctx.path, + parent: ctx + }); + } + } + if (effect.type === "refinement") { + const executeRefinement = (acc) => { + const result = effect.refinement(acc, checkCtx); + if (ctx.common.async) { + return Promise.resolve(result); + } + if (result instanceof Promise) { + throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); + } + return acc; + }; + if (ctx.common.async === false) { + const inner = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + executeRefinement(inner.value); + return { status: status.value, value: inner.value }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + return executeRefinement(inner.value).then(() => { + return { status: status.value, value: inner.value }; + }); + }); + } + } + if (effect.type === "transform") { + if (ctx.common.async === false) { + const base = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (!isValid(base)) + return base; + const result = effect.transform(base.value, checkCtx); + if (result instanceof Promise) { + throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); + } + return { status: status.value, value: result }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { + if (!isValid(base)) + return base; + return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })); + }); + } + } + util.assertNever(effect); + } +}; +ZodEffects.create = (schema3, effect, params) => { + return new ZodEffects({ + schema: schema3, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect, + ...processCreateParams(params) + }); +}; +ZodEffects.createWithPreprocess = (preprocess, schema3, params) => { + return new ZodEffects({ + schema: schema3, + effect: { type: "preprocess", transform: preprocess }, + typeName: ZodFirstPartyTypeKind.ZodEffects, + ...processCreateParams(params) + }); +}; +var ZodOptional = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.undefined) { + return OK(void 0); + } + return this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } +}; +ZodOptional.create = (type2, params) => { + return new ZodOptional({ + innerType: type2, + typeName: ZodFirstPartyTypeKind.ZodOptional, + ...processCreateParams(params) + }); +}; +var ZodNullable = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.null) { + return OK(null); + } + return this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } +}; +ZodNullable.create = (type2, params) => { + return new ZodNullable({ + innerType: type2, + typeName: ZodFirstPartyTypeKind.ZodNullable, + ...processCreateParams(params) + }); +}; +var ZodDefault = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + let data = ctx.data; + if (ctx.parsedType === ZodParsedType.undefined) { + data = this._def.defaultValue(); + } + return this._def.innerType._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + removeDefault() { + return this._def.innerType; + } +}; +ZodDefault.create = (type2, params) => { + return new ZodDefault({ + innerType: type2, + typeName: ZodFirstPartyTypeKind.ZodDefault, + defaultValue: typeof params.default === "function" ? params.default : () => params.default, + ...processCreateParams(params) + }); +}; +var ZodCatch = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const newCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + } + }; + const result = this._def.innerType._parse({ + data: newCtx.data, + path: newCtx.path, + parent: { + ...newCtx + } + }); + if (isAsync(result)) { + return result.then((result2) => { + return { + status: "valid", + value: result2.status === "valid" ? result2.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; + }); + } else { + return { + status: "valid", + value: result.status === "valid" ? result.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; + } + } + removeCatch() { + return this._def.innerType; + } +}; +ZodCatch.create = (type2, params) => { + return new ZodCatch({ + innerType: type2, + typeName: ZodFirstPartyTypeKind.ZodCatch, + catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, + ...processCreateParams(params) + }); +}; +var ZodNaN = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.nan) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.nan, + received: ctx.parsedType + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } +}; +ZodNaN.create = (params) => { + return new ZodNaN({ + typeName: ZodFirstPartyTypeKind.ZodNaN, + ...processCreateParams(params) + }); +}; +var BRAND = Symbol("zod_brand"); +var ZodBranded = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const data = ctx.data; + return this._def.type._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + unwrap() { + return this._def.type; + } +}; +var ZodPipeline = class _ZodPipeline extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.common.async) { + const handleAsync = async () => { + const inResult = await this._def.in._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return DIRTY(inResult.value); + } else { + return this._def.out._parseAsync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + } + }; + return handleAsync(); + } else { + const inResult = this._def.in._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return { + status: "dirty", + value: inResult.value + }; + } else { + return this._def.out._parseSync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + } + } + } + static create(a, b) { + return new _ZodPipeline({ + in: a, + out: b, + typeName: ZodFirstPartyTypeKind.ZodPipeline + }); + } +}; +var ZodReadonly = class extends ZodType { + _parse(input) { + const result = this._def.innerType._parse(input); + if (isValid(result)) { + result.value = Object.freeze(result.value); + } + return result; + } +}; +ZodReadonly.create = (type2, params) => { + return new ZodReadonly({ + innerType: type2, + typeName: ZodFirstPartyTypeKind.ZodReadonly, + ...processCreateParams(params) + }); +}; +var custom = (check, params = {}, fatal) => { + if (check) + return ZodAny.create().superRefine((data, ctx) => { + var _a, _b; + if (!check(data)) { + const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; + const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true; + const p2 = typeof p === "string" ? { message: p } : p; + ctx.addIssue({ code: "custom", ...p2, fatal: _fatal }); + } + }); + return ZodAny.create(); +}; +var late = { + object: ZodObject.lazycreate +}; +var ZodFirstPartyTypeKind; +(function(ZodFirstPartyTypeKind2) { + ZodFirstPartyTypeKind2["ZodString"] = "ZodString"; + ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber"; + ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN"; + ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt"; + ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean"; + ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate"; + ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol"; + ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined"; + ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull"; + ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny"; + ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown"; + ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever"; + ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid"; + ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray"; + ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject"; + ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion"; + ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; + ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection"; + ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple"; + ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord"; + ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap"; + ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet"; + ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction"; + ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy"; + ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral"; + ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum"; + ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects"; + ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum"; + ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional"; + ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable"; + ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault"; + ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch"; + ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise"; + ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded"; + ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline"; + ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly"; +})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); +var instanceOfType = (cls, params = { + message: `Input not instance of ${cls.name}` +}) => custom((data) => data instanceof cls, params); +var stringType = ZodString.create; +var numberType = ZodNumber.create; +var nanType = ZodNaN.create; +var bigIntType = ZodBigInt.create; +var booleanType = ZodBoolean.create; +var dateType = ZodDate.create; +var symbolType = ZodSymbol.create; +var undefinedType = ZodUndefined.create; +var nullType = ZodNull.create; +var anyType = ZodAny.create; +var unknownType = ZodUnknown.create; +var neverType = ZodNever.create; +var voidType = ZodVoid.create; +var arrayType = ZodArray.create; +var objectType = ZodObject.create; +var strictObjectType = ZodObject.strictCreate; +var unionType = ZodUnion.create; +var discriminatedUnionType = ZodDiscriminatedUnion.create; +var intersectionType = ZodIntersection.create; +var tupleType = ZodTuple.create; +var recordType = ZodRecord.create; +var mapType = ZodMap.create; +var setType = ZodSet.create; +var functionType = ZodFunction.create; +var lazyType = ZodLazy.create; +var literalType = ZodLiteral.create; +var enumType = ZodEnum.create; +var nativeEnumType = ZodNativeEnum.create; +var promiseType = ZodPromise.create; +var effectsType = ZodEffects.create; +var optionalType = ZodOptional.create; +var nullableType = ZodNullable.create; +var preprocessType = ZodEffects.createWithPreprocess; +var pipelineType = ZodPipeline.create; +var ostring = () => stringType().optional(); +var onumber = () => numberType().optional(); +var oboolean = () => booleanType().optional(); +var coerce = { + string: (arg) => ZodString.create({ ...arg, coerce: true }), + number: (arg) => ZodNumber.create({ ...arg, coerce: true }), + boolean: (arg) => ZodBoolean.create({ + ...arg, + coerce: true + }), + bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }), + date: (arg) => ZodDate.create({ ...arg, coerce: true }) +}; +var NEVER = INVALID; +var z = /* @__PURE__ */ Object.freeze({ + __proto__: null, + defaultErrorMap: errorMap, + setErrorMap, + getErrorMap, + makeIssue, + EMPTY_PATH, + addIssueToContext, + ParseStatus, + INVALID, + DIRTY, + OK, + isAborted, + isDirty, + isValid, + isAsync, + get util() { + return util; + }, + get objectUtil() { + return objectUtil; + }, + ZodParsedType, + getParsedType, + ZodType, + ZodString, + ZodNumber, + ZodBigInt, + ZodBoolean, + ZodDate, + ZodSymbol, + ZodUndefined, + ZodNull, + ZodAny, + ZodUnknown, + ZodNever, + ZodVoid, + ZodArray, + ZodObject, + ZodUnion, + ZodDiscriminatedUnion, + ZodIntersection, + ZodTuple, + ZodRecord, + ZodMap, + ZodSet, + ZodFunction, + ZodLazy, + ZodLiteral, + ZodEnum, + ZodNativeEnum, + ZodPromise, + ZodEffects, + ZodTransformer: ZodEffects, + ZodOptional, + ZodNullable, + ZodDefault, + ZodCatch, + ZodNaN, + BRAND, + ZodBranded, + ZodPipeline, + ZodReadonly, + custom, + Schema: ZodType, + ZodSchema: ZodType, + late, + get ZodFirstPartyTypeKind() { + return ZodFirstPartyTypeKind; + }, + coerce, + any: anyType, + array: arrayType, + bigint: bigIntType, + boolean: booleanType, + date: dateType, + discriminatedUnion: discriminatedUnionType, + effect: effectsType, + "enum": enumType, + "function": functionType, + "instanceof": instanceOfType, + intersection: intersectionType, + lazy: lazyType, + literal: literalType, + map: mapType, + nan: nanType, + nativeEnum: nativeEnumType, + never: neverType, + "null": nullType, + nullable: nullableType, + number: numberType, + object: objectType, + oboolean, + onumber, + optional: optionalType, + ostring, + pipeline: pipelineType, + preprocess: preprocessType, + promise: promiseType, + record: recordType, + set: setType, + strictObject: strictObjectType, + string: stringType, + symbol: symbolType, + transformer: effectsType, + tuple: tupleType, + "undefined": undefinedType, + union: unionType, + unknown: unknownType, + "void": voidType, + NEVER, + ZodIssueCode, + quotelessJson, + ZodError +}); + +// ../cursorless-engine/src/languages/TreeSitterQuery/predicateToString.ts +function predicateToString(predicateDescriptor) { + const operandList = predicateDescriptor.operands.map(operandToString).join(" "); + return `(#${predicateDescriptor.operator} ${operandList})`; +} +function operandToString(value) { + return value.type === "capture" ? `@${value.name}` : value.value; +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts +function constructZodErrorMessages(inputOperands, error) { + return error.errors.filter( + // If the user has supplied a capture instead of a string, or vice versa, + // we'll get two errors instead of one; we prefer to show the more helpful + // one. + (error2) => !(error2.code === "invalid_type" && error2.path.length === 2 && (error2.path[1] === "name" || error2.path[1] === "value")) + ).map((error2) => getErrorMessage(inputOperands, error2)); +} +function getErrorMessage(inputOperands, error) { + if (error.path.length === 0) { + if (error.code === "too_small") { + return "Too few arguments"; + } else if (error.code === "too_big") { + return "Too many arguments"; + } + return error.message; + } + let message = error.message; + if (error.code === "invalid_literal" && error.path[1] === "type") { + message = error.expected === "capture" ? "Capture names must be prefixed with @" : "Expected string, but received capture"; + } + const argIndex = error.path[0]; + const operandString = operandToString(inputOperands[argIndex]); + return `Error on argument ${argIndex} (\`${operandString}\`): ${message}`; +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts +var QueryPredicateOperator = class { + /** + * Whether it is ok for a node argument to be missing. If true, then the + * operator will just accept the pattern if the given node is missing. If + * false, then the operator will throw an error if the node is missing. + * + * This is useful if we want to set some flag on a node, but only if it's + * present. + * + * @returns A boolean indicating whether it is ok for a node argument to be + * missing. + */ + allowMissingNode() { + return false; + } + /** + * Given a list of operands, return a predicate function that can be used to + * test whether a given match satisfies the predicate. + * + * @param inputOperands The operands to the operator, as returned directly + * from tree-sitter when parse the query file. + * @returns Either a predicate function, or a list of error messages if the operands + * were invalid. + */ + createPredicate(inputOperands) { + const result = this.schema.safeParse(inputOperands); + return result.success ? { + success: true, + predicate: (match2) => { + try { + const acceptArgs = this.constructAcceptArgs(result.data, match2); + return this.run(...acceptArgs); + } catch (err) { + if (err instanceof CaptureNotFoundError && this.allowMissingNode()) { + return true; + } + throw err; + } + } + } : { + success: false, + errors: constructZodErrorMessages(inputOperands, result.error) + }; + } + /** + * Given the output of the schema and a match, construct the arguments to pass + * to the `accept` function. + * @param rawOutput The output of the schema. + * @param match The match to use to convert captures to nodes. + * @returns The arguments to pass to the `accept` function. + */ + constructAcceptArgs(rawOutput, match2) { + return rawOutput.map((operand) => { + if (operand.type === "capture") { + const capture = match2.captures.find( + (capture2) => capture2.name === operand.name + ); + if (capture == null) { + throw new CaptureNotFoundError(operand.name); + } + return capture; + } else { + return operand.value; + } + }); + } +}; +var CaptureNotFoundError = class extends Error { + constructor(operandName) { + super(`Could not find capture ${operandName}`); + } +}; + +// ../cursorless-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts +var string = z.object({ type: z.literal("string"), value: z.string() }); +var q = { + /** + * Expect a capture, eg @foo. The operator will receive the node referenced + * by the capture + */ + node: z.object({ type: z.literal("capture"), name: z.string() }), + /** Expect a string */ + string, + /** Expect an integer */ + integer: string.transform((val, ctx) => { + const parsedValue = parseInt(val.value); + if (isNaN(parsedValue)) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Expected an integer" + }); + return z.NEVER; + } + return { type: "integer", value: parsedValue }; + }), + /** Expect a boolean */ + boolean: string.transform((val, ctx) => { + if (val.value === "true") { + return { type: "boolean", value: true }; + } + if (val.value === "false") { + return { type: "boolean", value: false }; + } + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Expected true or false" + }); + return z.NEVER; + }) +}; + +// ../cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts +var NotType = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "not-type?"; + this.schema = z.tuple([q.node, q.string]).rest(q.string); + } + run({ node }, ...types2) { + return !types2.includes(node.type); + } +}; +var NotParentType = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "not-parent-type?"; + this.schema = z.tuple([q.node, q.string]).rest(q.string); + } + run({ node }, ...types2) { + return node.parent == null || !types2.includes(node.parent.type); + } +}; +var IsNthChild = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "is-nth-child?"; + this.schema = z.tuple([q.node, q.integer]); + } + run({ node }, n) { + return node.parent?.children.findIndex((n2) => n2.id === node.id) === n; + } +}; +var HasMultipleChildrenOfType = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "has-multiple-children-of-type?"; + this.schema = z.tuple([q.node, q.string]); + } + run({ node }, type2) { + const count2 = node.children.filter((n) => n.type === type2).length; + return count2 > 1; + } +}; +var ChildRange = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "child-range!"; + this.schema = z.union([ + z.tuple([q.node, q.integer]), + z.tuple([q.node, q.integer, q.integer]), + z.tuple([q.node, q.integer, q.integer, q.boolean]), + z.tuple([q.node, q.integer, q.integer, q.boolean, q.boolean]) + ]); + } + run(nodeInfo, startIndex, endIndex, excludeStart, excludeEnd) { + const { + node: { children } + } = nodeInfo; + startIndex = startIndex < 0 ? children.length + startIndex : startIndex; + endIndex = endIndex == null ? -1 : endIndex; + endIndex = endIndex < 0 ? children.length + endIndex : endIndex; + const start = children[startIndex]; + const end = children[endIndex]; + nodeInfo.range = makeRangeFromPositions( + excludeStart ? start.endPosition : start.startPosition, + excludeEnd ? end.startPosition : end.endPosition + ); + return true; + } +}; +var ShrinkToMatch = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "shrink-to-match!"; + this.schema = z.tuple([q.node, q.string]); + } + run(nodeInfo, pattern) { + const { document, range: range4 } = nodeInfo; + const text = document.getText(range4); + const match2 = text.match(new RegExp(pattern, "ds")); + if (match2?.index == null) { + throw Error(`No match for pattern '${pattern}'`); + } + const [startOffset, endOffset] = match2.indices?.groups?.keep ?? match2.indices[0]; + const baseOffset = document.offsetAt(range4.start); + nodeInfo.range = new Range( + document.positionAt(baseOffset + startOffset), + document.positionAt(baseOffset + endOffset) + ); + return true; + } +}; +var TrimEnd = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "trim-end!"; + this.schema = z.tuple([q.node]); + } + run(nodeInfo) { + const { document, range: range4 } = nodeInfo; + const text = document.getText(range4); + const whitespaceLength = text.length - text.trimEnd().length; + nodeInfo.range = new Range( + range4.start, + adjustPosition(document, range4.end, -whitespaceLength) + ); + return true; + } +}; +var AllowMultiple = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "allow-multiple!"; + this.schema = z.tuple([q.node]); + } + allowMissingNode() { + return true; + } + run(nodeInfo) { + nodeInfo.allowMultiple = true; + return true; + } +}; +var Log = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "log!"; + this.schema = z.tuple([q.node]); + } + run(nodeInfo) { + console.log(`#log!: ${nodeInfo.name}@${nodeInfo.range}`); + return true; + } +}; +var InsertionDelimiter = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "insertion-delimiter!"; + this.schema = z.tuple([q.node, q.string]); + } + run(nodeInfo, insertionDelimiter) { + nodeInfo.insertionDelimiter = insertionDelimiter; + return true; + } +}; +var SingleOrMultilineDelimiter = class extends QueryPredicateOperator { + constructor() { + super(...arguments); + this.name = "single-or-multi-line-delimiter!"; + this.schema = z.tuple([q.node, q.node, q.string, q.string]); + } + run(nodeInfo, conditionNodeInfo, insertionDelimiterConsequence, insertionDelimiterAlternative) { + nodeInfo.insertionDelimiter = conditionNodeInfo.range.isSingleLine ? insertionDelimiterConsequence : insertionDelimiterAlternative; + return true; + } +}; +var queryPredicateOperators = [ + new Log(), + new NotType(), + new TrimEnd(), + new NotParentType(), + new IsNthChild(), + new ChildRange(), + new ShrinkToMatch(), + new AllowMultiple(), + new InsertionDelimiter(), + new SingleOrMultilineDelimiter(), + new HasMultipleChildrenOfType() +]; + +// ../cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.ts +function parsePredicates(predicateDescriptors) { + const errors2 = []; + const predicates = []; + predicateDescriptors.forEach((patternPredicateDescriptors, patternIdx) => { + const patternPredicates = []; + patternPredicateDescriptors.forEach((predicateDescriptor, predicateIdx) => { + const operator = queryPredicateOperators.find( + ({ name }) => name === predicateDescriptor.operator + ); + if (operator == null) { + errors2.push({ + patternIdx, + predicateIdx, + error: `Unknown predicate operator "${predicateDescriptor.operator}"` + }); + return; + } + const result = operator.createPredicate(predicateDescriptor.operands); + if (!result.success) { + errors2.push( + ...result.errors.map((error) => ({ + patternIdx, + predicateIdx, + error + })) + ); + return; + } + patternPredicates.push(result.predicate); + }); + predicates.push(patternPredicates); + }); + return { errors: errors2, predicates }; +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts +var import_lodash26 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts +function checkCaptureStartEnd(captures, messages) { + if (captures.length === 1) { + return true; + } + let shownError = false; + const lastStart = captures.filter(({ name }) => name.endsWith(".start")).map(({ range: { end } }) => end).sort((a, b) => a.compareTo(b)).at(-1); + const firstEnd = captures.filter(({ name }) => name.endsWith(".end")).map(({ range: { start } }) => start).sort((a, b) => a.compareTo(b)).at(0); + if (lastStart != null && firstEnd != null) { + if (lastStart.isAfter(firstEnd)) { + showError( + messages, + "TreeSitterQuery.checkCaptures.badOrder", + `Start capture must be before end capture: ${captures}` + ); + shownError = true; + } + } + const startCount = captures.filter( + ({ name }) => name.endsWith(".start") + ).length; + const endCount = captures.filter(({ name }) => name.endsWith(".end")).length; + const regularCount = captures.length - startCount - endCount; + if (regularCount > 0 && (startCount > 0 || endCount > 0)) { + showError( + messages, + "TreeSitterQuery.checkCaptures.mixRegularStartEnd", + `Please do not mix regular captures and start/end captures: ${captures.map( + ({ name, range: range4 }) => name + " " + range4.toString() + )}` + ); + shownError = true; + } + if (regularCount > 1) { + showError( + messages, + "TreeSitterQuery.checkCaptures.duplicate", + `A capture with the same name may only appear once in a single pattern: ${captures.map( + ({ name, range: range4 }) => name + " " + range4.toString() + )}` + ); + shownError = true; + } + return !shownError; +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts +function rewriteStartOfEndOf(captures) { + return captures.map((capture) => { + if (capture.name.endsWith(".startOf")) { + return { + ...capture, + name: capture.name.replace(/\.startOf$/, ""), + range: capture.range.start.toEmptyRange() + }; + } + if (capture.name.endsWith(".endOf")) { + return { + ...capture, + name: capture.name.replace(/\.endOf$/, ""), + range: capture.range.end.toEmptyRange() + }; + } + return capture; + }); +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts +var TreeSitterQuery = class _TreeSitterQuery { + constructor(treeSitter, query, patternPredicates) { + this.treeSitter = treeSitter; + this.query = query; + this.patternPredicates = patternPredicates; + } + static create(languageId, treeSitter, query) { + const { errors: errors2, predicates } = parsePredicates(query.predicates); + if (errors2.length > 0) { + for (const error of errors2) { + const context = [ + `language ${languageId}`, + `pattern ${error.patternIdx}`, + `predicate \`${predicateToString( + query.predicates[error.patternIdx][error.predicateIdx] + )}\`` + ].join(", "); + showError( + ide().messages, + "TreeSitterQuery.parsePredicates", + `Error parsing predicate for ${context}: ${error.error}` + ); + } + if (ide().runMode === "test") { + throw new Error("Invalid predicates"); + } + } + return new _TreeSitterQuery(treeSitter, query, predicates); + } + matches(document, start, end) { + return this.query.matches( + this.treeSitter.getTree(document).rootNode, + start == null ? void 0 : positionToPoint(start), + end == null ? void 0 : positionToPoint(end) + ).map( + ({ pattern, captures }) => ({ + patternIdx: pattern, + captures: captures.map(({ name, node }) => ({ + name, + node, + document, + range: getNodeRange(node), + insertionDelimiter: void 0, + allowMultiple: false + })) + }) + ).filter( + (match2) => this.patternPredicates[match2.patternIdx].every( + (predicate) => predicate(match2) + ) + ).map((match2) => { + const captures = Object.entries( + (0, import_lodash26.groupBy)(match2.captures, ({ name }) => normalizeCaptureName(name)) + ).map(([name, captures2]) => { + captures2 = rewriteStartOfEndOf(captures2); + const capturesAreValid = checkCaptureStartEnd( + captures2, + ide().messages + ); + if (!capturesAreValid && ide().runMode === "test") { + throw new Error("Invalid captures"); + } + return { + name, + range: captures2.map(({ range: range4 }) => range4).reduce((accumulator, range4) => range4.union(accumulator)), + allowMultiple: captures2.some((capture) => capture.allowMultiple), + insertionDelimiter: captures2.find( + (capture) => capture.insertionDelimiter != null + )?.insertionDelimiter + }; + }); + return { ...match2, captures }; + }); + } + get captureNames() { + return (0, import_lodash26.uniq)(this.query.captureNames.map(normalizeCaptureName)); + } +}; +function normalizeCaptureName(name) { + return name.replace(/(\.(start|end))?(\.(startOf|endOf))?$/, ""); +} +function positionToPoint(start) { + return { row: start.line, column: start.character }; +} + +// ../cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts +var wildcard = "_"; +var textFragment = "textFragment"; +var captureNames = [wildcard, ...simpleScopeTypeTypes]; +var positionRelationships = ["prefix", "leading", "trailing"]; +var positionSuffixes = ["startOf", "endOf"]; +var rangeRelationships = [ + "domain", + "removal", + "interior", + "iteration", + "iteration.domain" +]; +var rangeSuffixes = [ + "start", + "end", + "start.startOf", + "start.endOf", + "end.startOf", + "end.endOf" +]; +var allowedCaptures = /* @__PURE__ */ new Set(); +allowedCaptures.add(textFragment); +for (const suffix of rangeSuffixes) { + allowedCaptures.add(`${textFragment}.${suffix}`); +} +for (const captureName of captureNames) { + if (captureName !== wildcard) { + allowedCaptures.add(captureName); + for (const suffix of rangeSuffixes) { + allowedCaptures.add(`${captureName}.${suffix}`); + } + } + for (const relationship of positionRelationships) { + allowedCaptures.add(`${captureName}.${relationship}`); + for (const suffix of positionSuffixes) { + allowedCaptures.add(`${captureName}.${relationship}.${suffix}`); + } + } + for (const relationship of rangeRelationships) { + allowedCaptures.add(`${captureName}.${relationship}`); + for (const suffix of rangeSuffixes) { + allowedCaptures.add(`${captureName}.${relationship}.${suffix}`); + } + } +} +var capturePattern = new RegExp(`^(?!;;).*@([\\w.]*)`, "gm"); +function validateQueryCaptures(file, rawQuery) { + const matches = rawQuery.matchAll(capturePattern); + const errors2 = []; + for (const match2 of matches) { + const captureName = match2[1]; + if (captureName.length > 1 && !captureName.includes(".") && captureName.startsWith("_")) { + continue; + } + if (!allowedCaptures.has(captureName)) { + const lineNumber = match2.input.slice(0, match2.index).split("\n").length; + errors2.push(`${file}(${lineNumber}) invalid capture '@${captureName}'.`); + } + } + if (errors2.length === 0) { + return; + } + const message = errors2.join("\n"); + showError( + ide().messages, + "validateQueryCaptures.invalidCaptureName", + message + ); + if (ide().runMode === "test") { + throw new Error(message); + } +} + +// ../cursorless-engine/src/languages/LanguageDefinition.ts +var LanguageDefinition = class _LanguageDefinition { + constructor(query) { + this.query = query; + } + /** + * Construct a language definition for the given language id, if the language + * has a new-style query definition, or return undefined if the language doesn't + * + * @param treeSitter The tree-sitter instance to use for parsing + * @param languageId The language id for which to create a language definition + * @returns A language definition for the given language id, or undefined if the given language + * id doesn't have a new-style query definition + */ + static async create(treeSitter, fileSystem, queryDir, languageId) { + const languageQueryPath = (0, import_path2.join)(queryDir, `${languageId}.scm`); + const rawLanguageQueryString = await readQueryFileAndImports( + fileSystem, + languageQueryPath + ); + if (rawLanguageQueryString == null) { + return void 0; + } + const rawQuery = treeSitter.getLanguage(languageId).query(rawLanguageQueryString); + const query = TreeSitterQuery.create(languageId, treeSitter, rawQuery); + return new _LanguageDefinition(query); + } + /** + * @param scopeType The scope type for which to get a scope handler + * @returns A scope handler for the given scope type and language id, or + * undefined if the given scope type / language id combination is still using + * legacy pathways + */ + getScopeHandler(scopeType) { + if (!this.query.captureNames.includes(scopeType.type)) { + return void 0; + } + return new TreeSitterScopeHandler(this.query, scopeType); + } + getTextFragmentScopeHandler() { + if (!this.query.captureNames.includes(TEXT_FRAGMENT_CAPTURE_NAME)) { + return void 0; + } + return new TreeSitterTextFragmentScopeHandler(this.query); + } +}; +async function readQueryFileAndImports(fileSystem, languageQueryPath) { + const rawQueryStrings = { + [languageQueryPath]: null + }; + const doValidation = ide().runMode !== "production"; + while (Object.values(rawQueryStrings).some((v) => v == null)) { + for (const [queryPath, rawQueryString] of Object.entries(rawQueryStrings)) { + if (rawQueryString != null) { + continue; + } + const fileName = (0, import_path2.basename)(queryPath); + let rawQuery = await fileSystem.readBundledFile(queryPath); + if (rawQuery == null) { + if (queryPath === languageQueryPath) { + return void 0; + } + showError( + ide().messages, + "LanguageDefinition.readQueryFileAndImports.queryNotFound", + `Could not find imported query file ${queryPath}` + ); + if (ide().runMode === "test") { + throw new Error("Invalid import statement"); + } + rawQuery = ""; + } + if (doValidation) { + validateQueryCaptures(fileName, rawQuery); + } + rawQueryStrings[queryPath] = rawQuery; + matchAll( + rawQuery, + // Matches lines like: + // + // ;; import path/to/query.scm + // + // but is very lenient about whitespace and quotes, and also allows + // include instead of import, so that we can throw a nice error message + // if the developer uses the wrong syntax + /^[^\S\r\n]*;;?[^\S\r\n]*(?:import|include)[^\S\r\n]+['"]?([\w|/.]+)['"]?[^\S\r\n]*$/gm, + (match2) => { + const relativeImportPath = match2[1]; + if (doValidation) { + validateImportSyntax(fileName, relativeImportPath, match2[0]); + } + const importQueryPath = (0, import_path2.join)((0, import_path2.dirname)(queryPath), relativeImportPath); + rawQueryStrings[importQueryPath] = rawQueryStrings[importQueryPath] ?? null; + } + ); + } + } + return Object.values(rawQueryStrings).join("\n"); +} +function validateImportSyntax(file, relativeImportPath, actual) { + const canonicalSyntax = `;; import ${relativeImportPath}`; + if (actual !== canonicalSyntax) { + showError( + ide().messages, + "LanguageDefinition.readQueryFileAndImports.malformedImport", + `Malformed import statement in ${file}: "${actual}". Import statements must be of the form "${canonicalSyntax}"` + ); + if (ide().runMode === "test") { + throw new Error("Invalid import statement"); + } + } +} + +// ../cursorless-engine/src/languages/LanguageDefinitions.ts +var LANGUAGE_UNDEFINED = Symbol("LANGUAGE_UNDEFINED"); +var LanguageDefinitions = class { + constructor(fileSystem, treeSitter) { + this.fileSystem = fileSystem; + this.treeSitter = treeSitter; + this.notifier = new Notifier(); + /** + * Maps from language id to {@link LanguageDefinition} or + * {@link LANGUAGE_UNDEFINED} if language doesn't have new-style definitions. + * We use a sentinel value instead of undefined so that we can distinguish + * between a situation where we haven't yet checked whether a language has a + * new-style query definition and a situation where we've checked and found + * that it doesn't. The former case is represented by `undefined` (due to the + * semantics of {@link Map.get}), while the latter is represented by the + * sentinel value. + */ + this.languageDefinitions = /* @__PURE__ */ new Map(); + this.disposables = []; + this.onDidChangeDefinition = this.notifier.registerListener; + ide().onDidOpenTextDocument((document) => { + this.loadLanguage(document.languageId); + }); + ide().onDidChangeVisibleTextEditors((editors) => { + editors.forEach(({ document }) => this.loadLanguage(document.languageId)); + }); + this.queryDir = ide().runMode === "development" ? (0, import_path3.join)(getCursorlessRepoRoot(), "queries") : "queries"; + if (ide().runMode === "development") { + this.disposables.push( + fileSystem.watchDir(this.queryDir, () => { + this.reloadLanguageDefinitions(); + }) + ); + } + } + async init() { + await this.loadAllLanguages(); + } + async loadAllLanguages() { + const languageIds = ide().visibleTextEditors.map( + ({ document }) => document.languageId + ); + await Promise.all( + languageIds.map((languageId) => this.loadLanguage(languageId)) + ); + } + async loadLanguage(languageId) { + if (this.languageDefinitions.has(languageId)) { + return; + } + const definition = await LanguageDefinition.create( + this.treeSitter, + this.fileSystem, + this.queryDir, + languageId + ) ?? LANGUAGE_UNDEFINED; + this.languageDefinitions.set(languageId, definition); + } + async reloadLanguageDefinitions() { + const languageIds = Array.from(this.languageDefinitions.keys()); + this.languageDefinitions.clear(); + await Promise.all( + languageIds.map((languageId) => this.loadLanguage(languageId)) + ); + this.notifier.notifyListeners(); + } + /** + * Get a language definition for the given language id, if the language + * has a new-style query definition, or return undefined if the language doesn't + * + * @param languageId The language id for which to get a language definition + * @returns A language definition for the given language id, or undefined if + * the given language id doesn't have a new-style query definition + */ + get(languageId) { + const definition = this.languageDefinitions.get(languageId); + if (definition == null) { + throw new Error( + "Expected language definition entry is missing for languageId " + languageId + ); + } + return definition === LANGUAGE_UNDEFINED ? void 0 : definition; + } + /** + * @deprecated Only for use in legacy containing scope stage + */ + getNodeAtLocation(document, range4) { + return this.treeSitter.getNodeAtLocation(document, range4); + } + dispose() { + this.disposables.forEach((disposable) => disposable.dispose()); + } +}; + +// ../cursorless-engine/src/nodeCommon/TalonSpokenFormsJsonReader.ts +var import_promises3 = require("fs/promises"); +var path3 = __toESM(require("path"), 1); +var LATEST_SPOKEN_FORMS_JSON_VERSION = 0; +var TalonSpokenFormsJsonReader = class { + constructor(fileSystem) { + this.fileSystem = fileSystem; + this.notifier = new Notifier(); + /** + * Registers a callback to be run when the spoken forms change. + * @param callback The callback to run when the scope ranges change + * @returns A {@link Disposable} which will stop the callback from running + */ + this.onDidChange = this.notifier.registerListener; + this.disposable = this.fileSystem.watchDir( + path3.dirname(this.fileSystem.cursorlessTalonStateJsonPath), + () => this.notifier.notifyListeners() + ); + } + async getSpokenFormEntries() { + let payload; + try { + payload = JSON.parse( + await (0, import_promises3.readFile)(this.fileSystem.cursorlessTalonStateJsonPath, "utf-8") + ); + } catch (err) { + if (isErrnoException(err) && err.code === "ENOENT") { + throw new NeedsInitialTalonUpdateError( + `Custom spoken forms file not found at ${this.fileSystem.cursorlessTalonStateJsonPath}. Using default spoken forms.` + ); + } + throw err; + } + if (payload.version !== LATEST_SPOKEN_FORMS_JSON_VERSION) { + throw new Error( + `Invalid spoken forms version. Expected ${LATEST_SPOKEN_FORMS_JSON_VERSION} but got ${payload.version}` + ); + } + return payload.spokenForms; + } + dispose() { + this.disposable.dispose(); + } +}; +function isErrnoException(error) { + return error instanceof Error && "code" in error; +} + +// ../cursorless-engine/src/processTargets/modifiers/CascadingStage.ts +var CascadingStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + get nestedStages() { + if (this.nestedStages_ == null) { + this.nestedStages_ = this.modifier.modifiers.map( + this.modifierStageFactory.create + ); + } + return this.nestedStages_; + } + run(target) { + for (const nestedStage of this.nestedStages) { + try { + return nestedStage.run(target); + } catch (error) { + continue; + } + } + throw new Error("No modifier could be applied"); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/ConditionalModifierStages.ts +var ConditionalModifierBaseStage = class { + constructor(modifierStageFactory, nestedModifier) { + this.modifierStageFactory = modifierStageFactory; + this.nestedModifier = nestedModifier; + this.suppressErrors = false; + } + run(target) { + if (this.shouldModify(target)) { + try { + return this.nestedStage.run(target).map((newTarget) => newTarget.withThatTarget(target)); + } catch (ex) { + if (!this.suppressErrors) { + throw ex; + } + } + } + return [target]; + } + get nestedStage() { + if (this.nestedStage_ == null) { + this.nestedStage_ = this.modifierStageFactory.create(this.nestedModifier); + } + return this.nestedStage_; + } +}; +var ModifyIfUntypedStage = class extends ConditionalModifierBaseStage { + constructor(modifierStageFactory, modifier) { + super(modifierStageFactory, modifier.modifier); + } + shouldModify(target) { + return !target.hasExplicitScopeType; + } +}; +var ModifyIfUntypedExplicitStage = class extends ConditionalModifierBaseStage { + shouldModify(target) { + return !target.hasExplicitScopeType && !target.isImplicit; + } +}; +var ContainingTokenIfUntypedEmptyStage = class extends ConditionalModifierBaseStage { + constructor(modifierStageFactory) { + super(modifierStageFactory, { + type: "containingScope", + scopeType: { type: "token" } + }); + this.suppressErrors = true; + } + shouldModify(target) { + return !target.hasExplicitScopeType && !target.hasExplicitRange && target.contentRange.isEmpty; + } +}; + +// ../cursorless-engine/src/util/typeUtils.ts +function isSameType(a, b) { + return Object.getPrototypeOf(a).constructor === Object.getPrototypeOf(b).constructor; +} + +// ../cursorless-engine/src/processTargets/createContinuousRangeTarget.ts +function createContinuousRangeTarget(isReversed, startTarget, endTarget, includeStart, includeEnd) { + if (includeStart && includeEnd && isSameType(startTarget, endTarget)) { + const richTarget = startTarget.maybeCreateRichRangeTarget( + isReversed, + endTarget + ); + if (richTarget != null) { + return richTarget; + } + } + if (startTarget.isLine && endTarget.isLine) { + return new LineTarget({ + editor: startTarget.editor, + isReversed, + contentRange: createContinuousLineRange( + startTarget, + endTarget, + includeStart, + includeEnd + ) + }); + } + return new UntypedTarget({ + editor: startTarget.editor, + isReversed, + hasExplicitRange: true, + contentRange: createContinuousRange( + startTarget, + endTarget, + includeStart, + includeEnd + ), + isToken: includeStart && includeEnd && startTarget.isToken && endTarget.isToken + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts +function constructScopeRangeTarget(isReversed, scope1, scope2) { + if (scope1 === scope2) { + return scope1.getTargets(isReversed); + } + const targets1 = scope1.getTargets(isReversed); + const targets2 = scope2.getTargets(isReversed); + if (targets1.length !== 1 || targets2.length !== 1) { + throw Error("Scope range targets must be single-target"); + } + const [target1] = targets1; + const [target2] = targets2; + const isScope2After = target2.contentRange.start.isAfterOrEqual( + target1.contentRange.start + ); + const [startTarget, endTarget] = isScope2After ? [target1, target2] : [target2, target1]; + return [ + createContinuousRangeTarget(isReversed, startTarget, endTarget, true, true) + ]; +} + +// ../cursorless-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts +function getPreferredScopeTouchingPosition(scopeHandler, editor, position, forceDirection) { + const candidates = Array.from( + scopeHandler.generateScopes(editor, position, "forward", { + containment: "required", + allowAdjacentScopes: true, + skipAncestorScopes: true + }) + ); + switch (candidates.length) { + case 0: + return void 0; + case 1: + return candidates[0]; + case 2: { + const [backwardScope, forwardScope] = candidates; + if (forceDirection === "forward") { + return forwardScope; + } + if (forceDirection === "backward") { + return backwardScope; + } + if (scopeHandler.isPreferredOver?.(backwardScope, forwardScope) ?? false) { + return backwardScope; + } + return forwardScope; + } + default: + throw new Error("Expected no more than 2 scope candidates"); + } +} + +// ../cursorless-engine/src/processTargets/modifiers/getContainingScopeTarget.ts +function getContainingScopeTarget(target, scopeHandler, ancestorIndex = 0) { + const { + isReversed, + editor, + contentRange: { start, end } + } = target; + if (end.isEqual(start)) { + let scope = getPreferredScopeTouchingPosition(scopeHandler, editor, start); + if (scope == null) { + return void 0; + } + if (ancestorIndex > 0) { + scope = expandFromPosition( + scopeHandler, + editor, + scope.domain.end, + "forward", + ancestorIndex, + true + ); + } + if (scope == null) { + return void 0; + } + return scope.getTargets(isReversed); + } + const startScope = expandFromPosition( + scopeHandler, + editor, + start, + "forward", + ancestorIndex + ); + if (startScope == null) { + return void 0; + } + if (startScope.domain.contains(end)) { + return startScope.getTargets(isReversed); + } + const endScope = expandFromPosition( + scopeHandler, + editor, + end, + "backward", + ancestorIndex + ); + if (endScope == null) { + return void 0; + } + return constructScopeRangeTarget(isReversed, startScope, endScope); +} +function expandFromPosition(scopeHandler, editor, position, direction, ancestorIndex, allowAdjacentScopes = false) { + let nextAncestorIndex = 0; + for (const scope of scopeHandler.generateScopes(editor, position, direction, { + containment: "required", + allowAdjacentScopes + })) { + if (nextAncestorIndex === ancestorIndex) { + return scope; + } + nextAncestorIndex += 1; + } + return void 0; +} + +// ../cursorless-engine/src/processTargets/modifiers/ContainingScopeStage.ts +var ContainingScopeStage = class { + constructor(modifierStageFactory, scopeHandlerFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.scopeHandlerFactory = scopeHandlerFactory; + this.modifier = modifier; + } + run(target) { + const { scopeType, ancestorIndex = 0 } = this.modifier; + const scopeHandler = this.scopeHandlerFactory.create( + scopeType, + target.editor.document.languageId + ); + if (scopeHandler == null) { + return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target); + } + const containingScope = getContainingScopeTarget( + target, + scopeHandler, + ancestorIndex + ); + if (containingScope == null) { + if (scopeType.type === "collectionItem") { + return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target); + } + throw new NoContainingScopeError(this.modifier.scopeType.type); + } + return containingScope; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts +var EveryScopeStage = class { + constructor(modifierStageFactory, scopeHandlerFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.scopeHandlerFactory = scopeHandlerFactory; + this.modifier = modifier; + } + run(target) { + const { scopeType } = this.modifier; + const { editor, isReversed } = target; + const scopeHandler = this.scopeHandlerFactory.create( + scopeType, + editor.document.languageId + ); + if (scopeHandler == null) { + return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target); + } + let scopes; + if (target.hasExplicitRange) { + scopes = getScopesOverlappingRange( + scopeHandler, + editor, + target.contentRange + ); + if (scopes.length === 1 && scopes[0].domain.contains(target.contentRange)) { + scopes = void 0; + } + } + if (scopes == null) { + try { + scopes = this.getDefaultIterationRange( + scopeHandler, + this.scopeHandlerFactory, + target + ).flatMap( + (iterationRange) => getScopesOverlappingRange(scopeHandler, editor, iterationRange) + ); + } catch (error) { + if (!(error instanceof NoContainingScopeError)) { + throw error; + } + scopes = []; + } + } + if (scopes.length === 0) { + if (scopeType.type === "collectionItem") { + return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target); + } + throw new NoContainingScopeError(scopeType.type); + } + return scopes.flatMap((scope) => scope.getTargets(isReversed)); + } + getDefaultIterationRange(scopeHandler, scopeHandlerFactory, target) { + const iterationScopeHandler = scopeHandlerFactory.create( + scopeHandler.iterationScopeType, + target.editor.document.languageId + ); + if (iterationScopeHandler == null) { + throw Error("Could not find iteration scope handler"); + } + const iterationScopeTarget = getContainingScopeTarget( + target, + iterationScopeHandler + ); + if (iterationScopeTarget == null) { + throw new NoContainingScopeError( + `iteration scope for ${scopeHandler.scopeType.type}` + ); + } + return iterationScopeTarget.map((target2) => target2.contentRange); + } +}; +function getScopesOverlappingRange(scopeHandler, editor, { start, end }) { + return Array.from( + scopeHandler.generateScopes(editor, start, "forward", { + distalPosition: end, + skipAncestorScopes: true, + allowAdjacentScopes: scopeHandler.includeAdjacentInEvery + }) + ); +} + +// ../cursorless-engine/src/processTargets/modifiers/FilterStages.ts +var KeepContentFilterStage = class { + constructor(modifier) { + this.modifier = modifier; + } + run(target) { + return target.contentText.trim() !== "" ? [target] : []; + } +}; +var KeepEmptyFilterStage = class { + constructor(modifier) { + this.modifier = modifier; + } + run(target) { + return target.contentText.trim() === "" ? [target] : []; + } +}; + +// ../cursorless-engine/src/processTargets/TargetPipelineRunner.ts +var import_lodash27 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/processTargets/marks/getActiveSelections.ts +function getActiveSelections(ide2) { + return ide2.activeTextEditor?.selections.map((selection) => ({ + selection, + editor: ide2.activeTextEditor + })) ?? []; +} + +// ../cursorless-engine/src/processTargets/marks/ImplicitStage.ts +var ImplicitStage = class { + run() { + return getActiveSelections(ide()).map( + (selection) => new ImplicitTarget({ + editor: selection.editor, + isReversed: selection.selection.isReversed, + contentRange: selection.selection + }) + ); + } +}; + +// ../cursorless-engine/src/processTargets/TargetPipelineRunner.ts +var TargetPipelineRunner = class { + constructor(modifierStageFactory, markStageFactory) { + this.modifierStageFactory = modifierStageFactory; + this.markStageFactory = markStageFactory; + } + /** + * Converts the abstract target descriptions provided by the user to a + * concrete representation usable by actions. Conceptually, the input will be + * something like "the function call argument containing the cursor" and the + * output will be something like "line 3, characters 5 through 10". + * @param target The abstract target representations provided by the user + * @param actionFinalStages Modifier stages contributed by the action that + * should run at the end of the modifier pipeline + * @returns A list of lists of typed selections, one list per input target. + * Each typed selection includes the selection, as well the uri of the + * document containing it, and potentially rich context information such as + * how to remove the target + */ + run(target, { + actionFinalStages = [], + noAutomaticTokenExpansion = false + } = {}) { + return new TargetPipeline( + this.modifierStageFactory, + this.markStageFactory, + target, + { actionFinalStages, noAutomaticTokenExpansion } + ).run(); + } +}; +var TargetPipeline = class { + constructor(modifierStageFactory, markStageFactory, target, opts) { + this.modifierStageFactory = modifierStageFactory; + this.markStageFactory = markStageFactory; + this.target = target; + this.opts = opts; + } + /** + * Converts the abstract target descriptions provided by the user to a concrete + * representation usable by actions. Conceptually, the input will be something + * like "the function call argument containing the cursor" and the output will be something + * like "line 3, characters 5 through 10". + * @param context Captures the environment needed to convert the abstract target + * description given by the user to a concrete representation usable by + * actions + * @param targets The abstract target representations provided by the user + * @returns A list of lists of typed selections, one list per input target. Each + * typed selection includes the selection, as well the uri of the document + * containing it, and potentially rich context information such as how to remove + * the target + */ + run() { + return uniqTargets(this.processTarget(this.target)); + } + processTarget(target) { + switch (target.type) { + case "list": + return target.elements.flatMap( + (element) => this.processTarget(element) + ); + case "range": + return this.processRangeTarget(target); + case "primitive": + case "implicit": + return this.processPrimitiveTarget(target); + } + } + processRangeTarget(targetDesc) { + const anchorTargets = this.processPrimitiveTarget(targetDesc.anchor); + const activeTargets = this.processPrimitiveTarget(targetDesc.active); + return (0, import_lodash27.zip)(anchorTargets, activeTargets).flatMap( + ([anchorTarget, activeTarget]) => { + if (anchorTarget == null || activeTarget == null) { + throw new Error( + "AnchorTargets and activeTargets lengths don't match" + ); + } + switch (targetDesc.rangeType) { + case "continuous": + return this.processContinuousRangeTarget( + anchorTarget, + activeTarget, + targetDesc + ); + case "vertical": + return targetsToVerticalTarget( + anchorTarget, + activeTarget, + targetDesc.excludeAnchor, + targetDesc.excludeActive + ); + } + } + ); + } + processContinuousRangeTarget(anchorTarget, activeTarget, { excludeAnchor, excludeActive, exclusionScopeType }) { + if (exclusionScopeType == null) { + return [ + targetsToContinuousTarget( + anchorTarget, + activeTarget, + excludeAnchor, + excludeActive + ) + ]; + } + const isReversed = calcIsReversed(anchorTarget, activeTarget); + return [ + targetsToContinuousTarget( + excludeAnchor ? getExcludedScope( + this.modifierStageFactory, + anchorTarget, + exclusionScopeType, + isReversed ? "backward" : "forward" + ) : anchorTarget, + excludeActive ? getExcludedScope( + this.modifierStageFactory, + activeTarget, + exclusionScopeType, + isReversed ? "forward" : "backward" + ) : activeTarget, + false, + false + ) + ]; + } + /** + * This function implements the modifier pipeline that is at the core of Cursorless target processing. + * It proceeds as follows: + * + * 1. It begins by getting the output from the {@link markStage} (eg "air", "this", etc). + * This output is a list of zero or more targets. + * 2. It then constructs a pipeline from the modifiers on the {@link targetDescriptor} + * 3. It then runs each pipeline stage in turn, feeding the first stage with + * the list of targets output from the {@link markStage}. For each pipeline + * stage, it passes the targets from the previous stage to the pipeline stage + * one by one. For each target, the stage will output a list of zero or more output + * targets. It then concatenates all of these lists into the list of targets + * that will be passed to the next pipeline stage. This process is similar to + * the way that [jq](https://stedolan.github.io/jq/) processes its inputs. + * + * @param targetDescriptor The description of the target, consisting of a mark + * and zero or more modifiers + * @returns The output of running the modifier pipeline on the output from the mark + */ + processPrimitiveTarget(targetDescriptor) { + let markStage; + let targetModifierStages; + if (targetDescriptor.type === "implicit") { + markStage = new ImplicitStage(); + targetModifierStages = []; + } else { + markStage = this.markStageFactory.create(targetDescriptor.mark); + targetModifierStages = getModifierStagesFromTargetModifiers( + this.modifierStageFactory, + targetDescriptor.modifiers + ); + } + const markOutputTargets = markStage.run(); + const modifierStages = [ + ...targetModifierStages, + ...this.opts.actionFinalStages, + // This performs auto-expansion to token when you say eg "take this" with an + // empty selection + ...this.opts.noAutomaticTokenExpansion ? [] : [new ContainingTokenIfUntypedEmptyStage(this.modifierStageFactory)] + ]; + return processModifierStages(modifierStages, markOutputTargets); + } +}; +function getModifierStagesFromTargetModifiers(modifierStageFactory, targetModifiers) { + return targetModifiers.map(modifierStageFactory.create).reverse(); +} +function processModifierStages(modifierStages, targets) { + modifierStages.forEach((stage) => { + targets = targets.flatMap((target) => stage.run(target)); + }); + return targets; +} +function getExcludedScope(modifierStageFactory, target, scopeType, direction) { + return modifierStageFactory.create({ + type: "relativeScope", + scopeType, + direction, + length: 1, + offset: 1 + }).run(target)[0]; +} +function calcIsReversed(anchor, active) { + if (anchor.contentRange.start.isAfter(active.contentRange.start)) { + return true; + } + if (anchor.contentRange.start.isBefore(active.contentRange.start)) { + return false; + } + return anchor.contentRange.end.isAfter(active.contentRange.end); +} +function uniqTargets(array) { + return uniqWithHash( + array, + (a, b) => a.isEqual(b), + (a) => a.contentRange.concise() + ); +} +function ensureSingleEditor(anchorTarget, activeTarget) { + if (anchorTarget.editor !== activeTarget.editor) { + throw new Error("Cannot form range between targets in different editors"); + } +} +function targetsToContinuousTarget(anchorTarget, activeTarget, excludeAnchor = false, excludeActive = false) { + ensureSingleEditor(anchorTarget, activeTarget); + const isReversed = calcIsReversed(anchorTarget, activeTarget); + const startTarget = isReversed ? activeTarget : anchorTarget; + const endTarget = isReversed ? anchorTarget : activeTarget; + const excludeStart = isReversed ? excludeActive : excludeAnchor; + const excludeEnd = isReversed ? excludeAnchor : excludeActive; + return createContinuousRangeTarget( + isReversed, + startTarget, + endTarget, + !excludeStart, + !excludeEnd + ); +} +function targetsToVerticalTarget(anchorTarget, activeTarget, excludeAnchor, excludeActive) { + ensureSingleEditor(anchorTarget, activeTarget); + const isReversed = calcIsReversed(anchorTarget, activeTarget); + const delta = isReversed ? -1 : 1; + const anchorPosition = isReversed ? anchorTarget.contentRange.start : anchorTarget.contentRange.end; + const anchorLine = anchorPosition.line + (excludeAnchor ? delta : 0); + const activePosition = isReversed ? activeTarget.contentRange.start : activeTarget.contentRange.end; + const activeLine = activePosition.line - (excludeActive ? delta : 0); + const results = []; + for (let i = anchorLine; true; i += delta) { + const contentRange = new Range( + i, + anchorTarget.contentRange.start.character, + i, + anchorTarget.contentRange.end.character + ); + results.push( + new PlainTarget({ + editor: anchorTarget.editor, + isReversed: anchorTarget.isReversed, + contentRange, + insertionDelimiter: anchorTarget.insertionDelimiter + }) + ); + if (i === activeLine) { + return results; + } + } +} + +// ../cursorless-engine/src/processTargets/modifiers/HeadTailStage.ts +var HeadTailStage = class { + constructor(modifierStageFactory, isReversed, modifiers) { + this.modifierStageFactory = modifierStageFactory; + this.isReversed = isReversed; + this.modifiers = modifiers; + } + run(target) { + const modifiers = this.modifiers ?? [ + { + type: "containingScope", + scopeType: { type: "line" } + } + ]; + const modifierStages = getModifierStagesFromTargetModifiers( + this.modifierStageFactory, + modifiers + ); + const modifiedTargets = processModifierStages(modifierStages, [target]); + return modifiedTargets.map((modifiedTarget) => { + const contentRange = this.constructContentRange( + target.contentRange, + modifiedTarget.contentRange + ); + return new TokenTarget({ + editor: target.editor, + isReversed: this.isReversed, + contentRange + }); + }); + } +}; +var HeadStage = class extends HeadTailStage { + constructor(modifierStageFactory, modifier) { + super(modifierStageFactory, true, modifier.modifiers); + } + constructContentRange(originalRange, modifiedRange) { + return new Range(modifiedRange.start, originalRange.end); + } +}; +var TailStage = class extends HeadTailStage { + constructor(modifierStageFactory, modifier) { + super(modifierStageFactory, false, modifier.modifiers); + } + constructContentRange(originalRange, modifiedRange) { + return new Range(originalRange.start, modifiedRange.end); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/InstanceStage.ts +var import_lodash28 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/processTargets/modifiers/listUtils.ts +var OutOfRangeError = class extends Error { + constructor() { + super("Scope index out of range"); + this.name = "OutOfRangeError"; + } +}; +function sliceStrict(targets, startIndex, endIndex) { + assertIndices(targets, startIndex, endIndex); + return targets.slice(startIndex, endIndex + 1); +} +function assertIndices(targets, startIndex, endIndex) { + if (startIndex < 0 || endIndex >= targets.length) { + throw new OutOfRangeError(); + } +} + +// ../cursorless-engine/src/processTargets/modifiers/InstanceStage.ts +var InstanceStage = class { + constructor(modifierStageFactory, storedTargets, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.storedTargets = storedTargets; + this.modifier = modifier; + } + run(inputTarget) { + const target = new ContainingTokenIfUntypedEmptyStage( + this.modifierStageFactory + ).run(inputTarget)[0]; + switch (this.modifier.type) { + case "everyScope": + return this.handleEveryScope(target); + case "ordinalScope": + return this.handleOrdinalScope(target, this.modifier); + case "relativeScope": + return this.handleRelativeScope(target, this.modifier); + default: + throw Error(`${this.modifier.type} instance scope not supported`); + } + } + handleEveryScope(target) { + return Array.from( + flatmap( + this.getEveryRanges(target), + ([editor, searchRange]) => this.getTargetIterable(target, editor, searchRange, "forward") + ) + ); + } + handleOrdinalScope(target, { start, length }) { + return this.getEveryRanges(target).flatMap( + ([editor, searchRange]) => takeFromOffset( + this.getTargetIterable( + target, + editor, + searchRange, + start >= 0 ? "forward" : "backward" + ), + start >= 0 ? start : -(length + start), + length + ) + ); + } + handleRelativeScope(target, { direction, offset, length }) { + const referenceTargets = this.storedTargets.get("instanceReference") ?? [ + target + ]; + return referenceTargets.flatMap((referenceTarget) => { + const { editor } = referenceTarget; + const iterationRange = direction === "forward" ? new Range( + offset === 0 ? referenceTarget.contentRange.start : referenceTarget.contentRange.end, + editor.document.range.end + ) : new Range( + editor.document.range.start, + offset === 0 ? referenceTarget.contentRange.end : referenceTarget.contentRange.start + ); + return takeFromOffset( + this.getTargetIterable(target, editor, iterationRange, direction), + offset === 0 ? 0 : offset - 1, + length + ); + }); + } + getEveryRanges({ + editor: targetEditor + }) { + return this.storedTargets.get("instanceReference")?.map(({ editor, contentRange }) => [editor, contentRange]) ?? [[targetEditor, targetEditor.document.range]]; + } + getTargetIterable(target, editor, searchRange, direction) { + const iterable = imap( + generateMatchesInRange( + new RegExp((0, import_lodash28.escapeRegExp)(target.contentText), "g"), + editor, + searchRange, + direction + ), + (range4) => new PlainTarget({ + contentRange: range4, + editor, + isReversed: false, + isToken: false + }) + ); + const filterScopeType = getFilterScopeType(target); + if (filterScopeType != null) { + const containingScopeModifier = this.modifierStageFactory.create({ + type: "containingScope", + scopeType: filterScopeType + }); + return ifilter( + imap(iterable, (target2) => { + try { + const containingScope = containingScopeModifier.run(target2); + if (containingScope.length === 1 && containingScope[0].contentRange.isRangeEqual(target2.contentRange)) { + return containingScope[0]; + } + return null; + } catch (err) { + return null; + } + }), + (target2) => target2 != null + ); + } + return iterable; + } +}; +function getFilterScopeType(target) { + if (target.isLine) { + return { type: "line" }; + } + if (target.isToken) { + return { type: "token" }; + } + if (target.isWord) { + return { type: "word" }; + } + return null; +} +function takeFromOffset(iterable, offset, count2) { + Array.from(itake(offset, iterable)); + const items = Array.from(itake(count2, iterable)); + if (items.length < count2) { + throw new OutOfRangeError(); + } + return items; +} + +// ../cursorless-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts +var containingSurroundingPairIfUntypedModifier = { + type: "modifyIfUntyped", + modifier: { + type: "containingScope", + scopeType: { type: "surroundingPair", delimiter: "any" } + } +}; +var containingLineIfUntypedModifier = { + type: "modifyIfUntyped", + modifier: { + type: "containingScope", + scopeType: { type: "line" } + } +}; +var containingTokenIfUntypedModifier = { + type: "modifyIfUntyped", + modifier: { + type: "containingScope", + scopeType: { type: "token" } + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/InteriorStage.ts +var InteriorOnlyStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + return this.modifierStageFactory.create(containingSurroundingPairIfUntypedModifier).run(target).flatMap((target2) => target2.getInteriorStrict()); + } +}; +var ExcludeInteriorStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + return this.modifierStageFactory.create(containingSurroundingPairIfUntypedModifier).run(target).flatMap((target2) => target2.getBoundaryStrict()); + } +}; + +// ../cursorless-engine/src/util/nodeFinders.ts +var nodeFinder = (isTargetNode) => { + return (node) => { + return isTargetNode(node) ? node : null; + }; +}; +function leadingSiblingNodeFinder(nodeFinder2) { + return (node) => { + let currentNode = node; + while (currentNode != null) { + const returnNode = nodeFinder2(currentNode); + if (returnNode != null) { + return returnNode; + } + currentNode = currentNode.previousSibling; + } + return null; + }; +} +function chainedNodeFinder(...nodeFinders) { + return (node) => { + let currentNode = node; + for (const nodeFinder2 of nodeFinders) { + currentNode = nodeFinder2(currentNode); + if (currentNode == null) { + return null; + } + } + return currentNode; + }; +} +function ancestorChainNodeFinder(nodeToReturn, ...nodeFinders) { + return (node) => { + let currentNode = node; + const nodeList = []; + const nodeFindersReversed = [...nodeFinders].reverse(); + for (const nodeFinder2 of nodeFindersReversed) { + if (currentNode == null) { + return null; + } + currentNode = nodeFinder2(currentNode); + if (currentNode == null) { + return null; + } + nodeList.push(currentNode); + currentNode = currentNode.parent ?? null; + } + return nodeList.reverse()[nodeToReturn]; + }; +} +var typedNodeFinder = (...typeNames) => { + return nodeFinder((node) => typeNames.includes(node.type)); +}; +var toPosition = (point) => new Position(point.row, point.column); +var argumentNodeFinder = (...parentTypes) => { + const left = ["(", "{", "[", "<"]; + const right = [")", "}", "]", ">"]; + const delimiters = left.concat(right); + const isType = (node, typeNames) => node != null && typeNames.includes(node.type); + const isOk = (node) => node != null && !isType(node, delimiters); + return (node, selection) => { + let resultNode; + const { start, end } = selection; + if (isType(node.parent, parentTypes)) { + if (isType(node, left)) { + resultNode = node.nextNamedSibling; + } else if (isType(node, right)) { + resultNode = node.previousNamedSibling; + } else if (node.type === ",") { + resultNode = end.isBeforeOrEqual(toPosition(node.startPosition)) ? node.previousNamedSibling : node.nextNamedSibling; + } else { + resultNode = node; + } + return isOk(resultNode) ? resultNode : null; + } else if (isType(node, parentTypes)) { + const children = [...node.children]; + const childRight = children.find( + ({ startPosition }) => toPosition(startPosition).isAfterOrEqual(end) + ) ?? null; + if (isOk(childRight)) { + return childRight; + } + children.reverse(); + const childLeft = children.find( + ({ endPosition }) => toPosition(endPosition).isBeforeOrEqual(start) + ) ?? null; + if (isOk(childLeft)) { + return childLeft; + } + } + return null; + }; +}; +function patternFinder(...patterns) { + const parsedPatterns = parsePatternStrings(patterns); + return (node) => { + for (const pattern of parsedPatterns) { + const match2 = tryPatternMatch(node, pattern); + if (match2 != null) { + return match2; + } + } + return null; + }; +} +function parsePatternStrings(patternStrings) { + return patternStrings.map( + (patternString) => patternString.split(".").map((pattern) => new Pattern(pattern)) + ); +} +function tryPatternMatch(node, patterns) { + let result = searchNodeAscending(node, patterns); + if (!result && patterns.length > 1) { + result = searchNodeDescending(node, patterns); + } + let resultNode = null; + let resultPattern; + if (result != null) { + [resultNode, resultPattern] = result; + } + if (resultNode != null && resultPattern != null && resultPattern.fields != null) { + resultPattern.fields.forEach((field) => { + resultNode = (field.isIndex ? resultNode?.namedChild(field.value) : resultNode?.childForFieldName(field.value)) ?? null; + }); + } + return resultNode; +} +function searchNodeAscending(node, patterns) { + let result = null; + let currentNode = node; + for (let i = patterns.length - 1; i > -1; --i) { + const pattern = patterns[i]; + if (currentNode == null || !pattern.typeEquals(currentNode)) { + if (pattern.isOptional) { + continue; + } + return null; + } + if (!result || !result[1].isImportant) { + result = [currentNode, pattern]; + } + currentNode = currentNode.parent; + } + return result; +} +function searchNodeDescending(node, patterns) { + let result = null; + let currentNode = node; + for (let i = 0; i < patterns.length; ++i) { + const pattern = patterns[i]; + if (currentNode == null || !pattern.typeEquals(currentNode)) { + if (pattern.isOptional) { + continue; + } + return null; + } + if (!result || pattern.isImportant) { + result = [currentNode, pattern]; + } + if (i + 1 < patterns.length) { + const children = currentNode.namedChildren.filter( + (node2) => patterns[i + 1].typeEquals(node2) + ); + currentNode = children.length === 1 ? children[0] : null; + } + } + return result; +} +var Pattern = class { + constructor(pattern) { + this.anyType = false; + this.notType = false; + this.type = pattern.match(/^[\w*~]+/)[0]; + if (this.type === "*") { + this.anyType = true; + } else if (this.type.startsWith("~")) { + this.type = this.type.slice(1); + this.notType = true; + } + this.isImportant = pattern.indexOf("!") > -1; + this.isOptional = pattern.indexOf("?") > -1; + this.fields = [...pattern.matchAll(/(?<=\[).+?(?=\])/g)].map((m) => m[0]).map((field) => { + if (/\d+/.test(field)) { + return { + isIndex: true, + value: Number(field) + }; + } + return { + isIndex: false, + value: field + }; + }); + } + typeEquals(node) { + if (this.anyType) { + return true; + } + if (this.notType) { + return this.type !== node.type; + } + return this.type === node.type; + } +}; + +// ../cursorless-engine/src/util/nodeMatchers.ts +function matcher(finder, selector = simpleSelectionExtractor) { + return function(selection, node) { + const targetNode = finder(node, selection.selection); + return targetNode != null ? [ + { + node: targetNode, + selection: selector(selection.editor, targetNode) + } + ] : null; + }; +} +function chainedMatcher(finders, selector = simpleSelectionExtractor) { + const nodeFinder2 = chainedNodeFinder(...finders); + return function(selection, initialNode) { + const returnNode = nodeFinder2(initialNode); + if (returnNode == null) { + return null; + } + return [ + { + node: returnNode, + selection: selector(selection.editor, returnNode) + } + ]; + }; +} +function ancestorChainNodeMatcher(nodeFinders, nodeToReturn = 0, selector = simpleSelectionExtractor) { + return matcher( + ancestorChainNodeFinder(nodeToReturn, ...nodeFinders), + selector + ); +} +function typeMatcher(...typeNames) { + return matcher(typedNodeFinder(...typeNames)); +} +function patternMatcher(...patterns) { + return matcher(patternFinder(...patterns)); +} +function argumentMatcher(...parentTypes) { + return matcher( + argumentNodeFinder(...parentTypes), + argumentSelectionExtractor() + ); +} +function conditionMatcher(...patterns) { + return matcher(patternFinder(...patterns), unwrapSelectionExtractor); +} +function leadingMatcher(patterns, delimiters = []) { + return matcher( + patternFinder(...patterns), + selectWithLeadingDelimiter(...delimiters) + ); +} +function trailingMatcher(patterns, delimiters = []) { + return matcher( + patternFinder(...patterns), + selectWithTrailingDelimiter(...delimiters) + ); +} +function cascadingMatcher(...matchers2) { + return (selection, node) => { + for (const matcher2 of matchers2) { + const match2 = matcher2(selection, node); + if (match2 != null) { + return match2; + } + } + return null; + }; +} +var notSupported = (_selection, _node) => { + throw new Error("Node type not supported"); +}; +function createPatternMatchers(nodeMatchers14) { + return Object.freeze( + Object.fromEntries( + unsafeKeys(nodeMatchers14).map((scopeType) => { + const matcher2 = nodeMatchers14[scopeType]; + if (Array.isArray(matcher2)) { + return [scopeType, patternMatcher(...matcher2)]; + } else if (typeof matcher2 === "string") { + return [scopeType, patternMatcher(matcher2)]; + } else { + return [scopeType, matcher2]; + } + }) + ) + ); +} + +// ../cursorless-engine/src/languages/clojure.ts +var import_lodash29 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/treeSitterUtils.ts +function getChildNodesForFieldName(node, fieldName) { + const treeCursor = node.walk(); + treeCursor.gotoFirstChild(); + const ret = []; + let hasNext = true; + while (hasNext) { + if (treeCursor.currentFieldName() === fieldName) { + ret.push(treeCursor.currentNode()); + } + hasNext = treeCursor.gotoNextSibling(); + } + return ret; +} +function getAncestors(node, includeNode = true) { + const ancestors = includeNode ? [node] : []; + for (let currentNode = node.parent; currentNode != null; currentNode = currentNode.parent) { + ancestors.push(currentNode); + } + return ancestors; +} +function isContainedInErrorNode(node) { + return getAncestors(node).some((ancestor) => ancestor.type === "ERROR"); +} + +// ../cursorless-engine/src/languages/clojure.ts +function parityNodeFinder(parentFinder, parity) { + return indexNodeFinder( + parentFinder, + (nodeIndex) => Math.floor(nodeIndex / 2) * 2 + parity + ); +} +function mapParityNodeFinder(parity) { + return parityNodeFinder(patternFinder("map_lit"), parity); +} +function indexNodeFinder(parentFinder, indexTransform) { + return (node) => { + const parent = node.parent; + if (parent == null || parentFinder(parent) == null) { + return null; + } + const valueNodes = getValueNodes(parent); + const nodeIndex = valueNodes.findIndex(({ id }) => id === node.id); + if (nodeIndex === -1) { + return null; + } + const desiredIndex = indexTransform(nodeIndex); + if (desiredIndex === -1) { + return null; + } + return valueNodes[desiredIndex]; + }; +} +function itemFinder() { + return indexNodeFinder( + (node) => node, + (nodeIndex) => nodeIndex + ); +} +var getValueNodes = (node) => getChildNodesForFieldName(node, "value"); +var functionCallPattern = "~quoting_lit.list_lit!"; +var functionCallFinder = patternFinder(functionCallPattern); +function functionNameBasedFinder(...names) { + return (node) => { + const functionCallNode = functionCallFinder(node); + if (functionCallNode == null) { + return null; + } + const functionNode = getValueNodes(functionCallNode)[0]; + return names.includes(functionNode?.text) ? functionCallNode : null; + }; +} +function functionNameBasedMatcher(...names) { + return matcher(functionNameBasedFinder(...names)); +} +var functionFinder = functionNameBasedFinder("defn", "defmacro"); +var functionNameMatcher = chainedMatcher([ + functionFinder, + (functionNode) => getValueNodes(functionNode)[1] +]); +var ifStatementFinder = functionNameBasedFinder( + "if", + "if-let", + "when", + "when-let" +); +var ifStatementMatcher = matcher(ifStatementFinder); +var nodeMatchers = { + map: "map_lit", + collectionKey: matcher(mapParityNodeFinder(0)), + collectionItem: cascadingMatcher( + // Treat each key value pair as a single item if we're in a map + matcher( + mapParityNodeFinder(0), + delimitedSelector( + (node) => node.type === "{" || node.type === "}", + ", ", + import_lodash29.identity, + mapParityNodeFinder(1) + ) + ), + // Otherwise just treat every item within a list as an item + matcher(itemFinder()) + ), + value: matcher(mapParityNodeFinder(1)), + // FIXME: Handle formal parameters + argumentOrParameter: matcher( + indexNodeFinder( + patternFinder(functionCallPattern), + (nodeIndex) => nodeIndex !== 0 ? nodeIndex : -1 + ) + ), + // A list is either a vector literal or a quoted list literal + list: ["vec_lit", "quoting_lit.list_lit"], + functionCall: functionCallPattern, + functionCallee: chainedMatcher([ + functionCallFinder, + (functionNode) => getValueNodes(functionNode)[0] + ]), + namedFunction: matcher(functionFinder), + functionName: functionNameMatcher, + // FIXME: Handle `let` declarations, defs, etc + name: functionNameMatcher, + anonymousFunction: cascadingMatcher( + functionNameBasedMatcher("fn"), + patternMatcher("anon_fn_lit") + ), + ifStatement: ifStatementMatcher, + condition: chainedMatcher([ + ifStatementFinder, + (node) => getValueNodes(node)[1] + ]) +}; +var clojure_default = createPatternMatchers(nodeMatchers); + +// ../cursorless-engine/src/languages/cpp.ts +var STATEMENT_TYPES = [ + "_statement", + "_type_specifier", + "alias_declaration", + "declaration", + "function_definition", + "linkage_specification", + "namespace_definition", + "preproc_call", + "preproc_def", + "preproc_function_def", + "preproc_if", + "preproc_ifdef", + "preproc_include", + "static_assert_declaration", + "template_declaration", + "template_instantiation", + "type_definition", + "using_declaration", + "break_statement", + "case_statement", + "compound_statement", + "continue_statement", + "do_statement", + "expression_statement", + "for_range_loop", + "for_statement", + "goto_statement", + "if_statement", + "labeled_statement", + "return_statement", + "switch_statement", + "throw_statement", + "try_statement", + "while_statement" +]; +var TYPE_TYPES = [ + "auto", + "class_specifier", + "decltype", + "dependent_type", + "enum_specifier", + "primitive_type", + "scoped_type_identifier", + "sized_type_specifier", + "struct_specifier", + "template_type", + "type_identifier", + "union_specifier" +]; +var nodeMatchers2 = { + statement: STATEMENT_TYPES, + class: [ + "class_specifier", + "struct_specifier", + "enum_specifier", + "union_specifier" + ], + className: [ + "class_specifier[name]", + "struct_specifier[name]", + "enum_specifier[name]", + "union_specifier[name]", + "function_definition[declarator][declarator][namespace]" + // void ClassName::method() {} + ], + ["private.switchStatementSubject"]: "switch_statement[condition][value]", + anonymousFunction: "lambda_expression", + list: "initializer_list", + functionCall: ["call_expression", "declaration.init_declarator!"], + functionCallee: [ + "call_expression[function]", + "declaration.init_declarator[declarator]!" + ], + name: [ + "*[declarator][declarator][name]", + "*[declarator][name]", + "*[declarator][declarator]", + "*[declarator]", + "assignment_expression[left]", + "*[name]" + ], + namedFunction: ["function_definition", "declaration.function_declarator"], + type: trailingMatcher(TYPE_TYPES.concat(["*[type]"])), + functionName: [ + "function_definition[declarator][declarator][name]", + // void C::funcName() {} + "function_definition[declarator][declarator]", + // void funcName() {} + "declaration.function_declarator![declarator]" + // void funcName(); + ], + value: leadingMatcher( + [ + "*[declarator][value]", + "*[value]", + "assignment_expression[right]", + "optional_parameter_declaration[default_value]" + ], + [":", "=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>="] + ), + argumentOrParameter: argumentMatcher("parameter_list", "argument_list"), + attribute: "attribute" +}; +var cpp_default = createPatternMatchers(nodeMatchers2); + +// ../cursorless-engine/src/languages/csharp.ts +var STATEMENT_TYPES2 = [ + "class_declaration", + "constructor_declaration", + "conversion_operator_declaration", + "delegate_declaration", + "destructor_declaration", + "enum_declaration", + "event_declaration", + "event_field_declaration", + "field_declaration", + "indexer_declaration", + "interface_declaration", + "method_declaration", + "namespace_declaration", + "operator_declaration", + "property_declaration", + "record_declaration", + "struct_declaration", + "using_directive", + "block", + "break_statement", + "checked_statement", + "continue_statement", + "do_statement", + "empty_statement", + "expression_statement", + "fixed_statement", + "for_each_statement", + "for_statement", + "goto_statement", + "if_statement", + "labeled_statement", + "local_declaration_statement", + "local_function_statement", + "lock_statement", + "return_statement", + "switch_statement", + "throw_statement", + "try_statement", + "unsafe_statement", + "using_statement", + "while_statement", + "yield_statement" +]; +var NAMED_FUNCTION_TYPES = [ + "delegate_declaration", + "local_function_statement", + "method_declaration" +]; +var LIST_TYPES_WITH_INITIALIZERS_AS_CHILDREN = [ + "array_creation_expression", + "implicit_array_creation_expression", + "implicit_stack_alloc_array_creation_expression", + "stack_alloc_array_creation_expression" +]; +var OBJECT_TYPES_WITH_INITIALIZERS_AS_CHILDREN = [ + "implicit_object_creation_expression" +]; +var getChildInitializerNode = (node) => node.children.find((child) => child.type === "initializer_expression") ?? null; +var getInitializerNode = (node) => node.childForFieldName("initializer"); +var makeDelimitedSelector = (leftType, rightType) => delimitedSelector( + (node) => node.type === "," || node.type === leftType || node.type === rightType, + ", " +); +var getMapMatchers = { + map: cascadingMatcher( + chainedMatcher([ + typedNodeFinder(...OBJECT_TYPES_WITH_INITIALIZERS_AS_CHILDREN), + getChildInitializerNode + ]), + chainedMatcher([ + typedNodeFinder("object_creation_expression"), + getInitializerNode + ]) + ), + collectionKey: chainedMatcher([ + typedNodeFinder("assignment_expression"), + (node) => node.childForFieldName("left") + ]), + value: leadingMatcher( + [ + "variable_declaration?.variable_declarator[1][0]!", + "assignment_expression[right]" + ], + ["assignment_operator"] + ), + list: cascadingMatcher( + chainedMatcher([ + typedNodeFinder(...LIST_TYPES_WITH_INITIALIZERS_AS_CHILDREN), + getChildInitializerNode + ]), + chainedMatcher([ + typedNodeFinder("object_creation_expression"), + (node) => node.childForFieldName("initializer") + ]) + ), + string: typeMatcher("string_literal") +}; +var nodeMatchers3 = { + ...getMapMatchers, + className: "class_declaration[name]", + condition: cascadingMatcher( + conditionMatcher("*[condition]"), + patternMatcher("while_statement[0]") + ), + ["private.switchStatementSubject"]: [ + "switch_statement.tuple_expression!", + "switch_statement[value]" + ], + statement: STATEMENT_TYPES2, + anonymousFunction: "lambda_expression", + functionCall: ["invocation_expression", "object_creation_expression"], + functionCallee: cascadingMatcher( + patternMatcher("invocation_expression[function]"), + matcher( + patternFinder("object_creation_expression"), + childRangeSelector(["argument_list"], []) + ) + ), + argumentOrParameter: matcher( + nodeFinder( + (node) => node.parent?.type === "argument_list" || node.type === "parameter" + ), + makeDelimitedSelector("(", ")") + ), + namedFunction: NAMED_FUNCTION_TYPES, + functionName: NAMED_FUNCTION_TYPES.map((t) => t + "[name]"), + comment: "comment", + regularExpression: "regex", + type: trailingMatcher(["*[type]"]), + name: [ + "variable_declaration?.variable_declarator.identifier!", + "assignment_expression[left]", + "*[name]" + ] +}; +var csharp_default = createPatternMatchers(nodeMatchers3); + +// ../cursorless-engine/src/languages/go.ts +var nodeMatchers4 = { + ifStatement: "if_statement", + functionCall: ["call_expression", "composite_literal"], + functionCallee: ["call_expression[function]", "composite_literal[type]"], + type: [ + "pointer_type", + "qualified_type", + "type_identifier", + "function_declaration[result]", + "method_declaration[result]" + ], + condition: conditionMatcher("*[condition]"), + argumentOrParameter: cascadingMatcher( + argumentMatcher("argument_list", "parameter_list"), + patternMatcher("parameter_declaration"), + patternMatcher("argument_declaration") + ), + collectionKey: "keyed_element[0]", + value: cascadingMatcher( + patternMatcher("keyed_element[1]"), + patternMatcher("return_statement.expression_list!") + ) +}; +var go_default = createPatternMatchers(nodeMatchers4); + +// ../cursorless-engine/src/languages/java.ts +var nodeMatchers5 = { + argumentOrParameter: argumentMatcher("formal_parameters", "argument_list") +}; +var java_default = createPatternMatchers(nodeMatchers5); + +// ../cursorless-engine/src/languages/latex.ts +var COMMANDS = [ + "command", + "displayed_equation", + "inline_formula", + "math_set", + "block_comment", + "package_include", + "class_include", + "latex_include", + "biblatex_include", + "bibtex_include", + "graphics_include", + "svg_include", + "inkscape_include", + "verbatim_include", + "import_include", + "caption", + "citation", + "label_definition", + "label_reference", + "label_reference_range", + "label_number", + "new_command_definition", + "old_command_definition", + "let_command_definition", + "environment_definition", + "glossary_entry_definition", + "glossary_entry_reference", + "acronym_definition", + "acronym_reference", + "theorem_definition", + "color_definition", + "color_set_definition", + "color_reference", + "tikz_library_import" +]; +var GROUPS = [ + "curly_group", + "curly_group_text", + "curly_group_text_list", + "curly_group_path", + "curly_group_path_list", + "curly_group_command_name", + "curly_group_key_value", + "curly_group_glob_pattern", + "curly_group_impl", + "brack_group", + "brack_group_text", + "brack_group_argc", + "brack_group_key_value", + "mixed_group" +]; +var SECTIONING = [ + "subparagraph", + "paragraph", + "subsubsection", + "subsection", + "section", + "chapter", + "part" +]; +var ENVIRONMENTS = [ + "generic_environment", + "comment_environment", + "verbatim_environment", + "listing_environment", + "minted_environment", + "pycode_environment" +]; +var sectioningText = SECTIONING.map((s) => `${s}[text]`); +var sectioningCommand = SECTIONING.map((s) => `${s}[command]`); +function unwrapGroupParens(editor, node) { + return { + selection: new Selection( + editor.document.positionAt(node.startIndex + 1), + editor.document.positionAt(node.endIndex - 1) + ), + context: { + removalRange: new Selection( + editor.document.positionAt(node.startIndex), + editor.document.positionAt(node.endIndex) + ) + } + }; +} +function extendToNamedSiblingIfExists(editor, node) { + const startIndex = node.startIndex; + let endIndex = node.endIndex; + const sibling = node.nextNamedSibling; + if (sibling != null && sibling.isNamed()) { + endIndex = sibling.endIndex; + } + return { + selection: new Selection( + editor.document.positionAt(startIndex), + editor.document.positionAt(endIndex) + ), + context: {} + }; +} +function extractItemContent(editor, node) { + let contentStartIndex = node.startIndex; + const label = node.childForFieldName("label"); + if (label == null) { + const command = node.childForFieldName("command"); + if (command != null) { + contentStartIndex = command.endIndex + 1; + } + } else { + contentStartIndex = label.endIndex + 1; + } + return { + selection: new Selection( + editor.document.positionAt(contentStartIndex), + editor.document.positionAt(node.endIndex) + ), + context: { + leadingDelimiterRange: new Range( + editor.document.positionAt(node.startIndex), + editor.document.positionAt(contentStartIndex - 1) + ) + } + }; +} +var getStartTag = patternMatcher(`*.begin!`); +var getEndTag = patternMatcher(`*.end!`); +var getTags = (selection, node) => { + const startTag = getStartTag(selection, node); + const endTag = getEndTag(selection, node); + return startTag != null && endTag != null ? startTag.concat(endTag) : null; +}; +var nodeMatchers6 = { + argumentOrParameter: cascadingMatcher( + ancestorChainNodeMatcher( + [patternFinder(...COMMANDS), patternFinder(...GROUPS)], + 1, + unwrapGroupParens + ), + matcher( + patternFinder("begin[name]", "end[name]", ...sectioningText), + unwrapGroupParens + ) + ), + functionCall: cascadingMatcher( + matcher(patternFinder(...COMMANDS, "begin", "end")), + matcher(patternFinder(...sectioningCommand), extendToNamedSiblingIfExists) + ), + name: cascadingMatcher( + matcher(patternFinder(...sectioningText), unwrapGroupParens), + patternMatcher("begin[name][text]", "end[name][text]") + ), + functionCallee: "command_name", + collectionItem: matcher(patternFinder("enum_item"), extractItemContent), + part: "part", + chapter: "chapter", + section: "section", + subSection: "subsection", + subSubSection: "subsubsection", + namedParagraph: "paragraph", + subParagraph: "subparagraph", + environment: ENVIRONMENTS, + xmlElement: ENVIRONMENTS, + xmlBothTags: getTags, + xmlStartTag: getStartTag, + xmlEndTag: getEndTag +}; +var latex_default = createPatternMatchers(nodeMatchers6); + +// ../cursorless-engine/src/languages/markdown.ts +var HEADING_MARKER_TYPES = [ + "atx_h1_marker", + "atx_h2_marker", + "atx_h3_marker", + "atx_h4_marker", + "atx_h5_marker", + "atx_h6_marker" +]; +function makeMinimumHeadingLevelFinder(headingType) { + const markerIndex = HEADING_MARKER_TYPES.indexOf(headingType); + return (node) => { + return node.type === "atx_heading" && HEADING_MARKER_TYPES.indexOf( + node.firstNamedChild?.type + ) <= markerIndex ? node : null; + }; +} +function sectionExtractor(editor, node) { + const finder = makeMinimumHeadingLevelFinder( + node.firstNamedChild?.type + ); + const { context, selection } = extendUntilNextMatchingSiblingOrLast( + editor, + node, + finder + ); + return { + context, + selection: shrinkRangeToFitContent(editor, selection).toSelection( + selection.isReversed + ) + }; +} +function sectionMatcher(...patterns) { + const finder = patternFinder(...patterns); + return matcher(leadingSiblingNodeFinder(finder), sectionExtractor); +} +var nodeMatchers7 = { + section: sectionMatcher("atx_heading"), + sectionLevelOne: sectionMatcher("atx_heading.atx_h1_marker"), + sectionLevelTwo: sectionMatcher("atx_heading.atx_h2_marker"), + sectionLevelThree: sectionMatcher("atx_heading.atx_h3_marker"), + sectionLevelFour: sectionMatcher("atx_heading.atx_h4_marker"), + sectionLevelFive: sectionMatcher("atx_heading.atx_h5_marker"), + sectionLevelSix: sectionMatcher("atx_heading.atx_h6_marker") +}; +var markdown_default = createPatternMatchers(nodeMatchers7); + +// ../cursorless-engine/src/languages/php.ts +var assignmentOperators = [ + "=", + // Arithmetic + "+=", + "-=", + "*=", + "/=", + "%=", + "**=", + // Bitwise + "&=", + "|=", + "^=", + "<<=", + ">>=", + // Other + ".=", + "??=" +]; +function castTypeExtractor(editor, node) { + const range4 = getNodeRange(node); + const contentRange = range4; + const leftParenRange = getNodeRange(node.previousSibling); + const rightParenRange = getNodeRange(node.nextSibling.nextSibling); + const removalRange = range4.with(leftParenRange.start, rightParenRange.start); + return { + selection: new Selection(contentRange.start, contentRange.end), + context: { + removalRange + } + }; +} +var nodeMatchers8 = { + name: [ + "assignment_expression[left]", + "class_declaration[name]", + "function_definition[name]", + "method_declaration[name]" + ], + type: cascadingMatcher( + trailingMatcher(["~cast_expression[type]"]), + matcher(patternFinder("cast_expression[type]"), castTypeExtractor) + ), + value: leadingMatcher( + [ + "array_element_initializer[1]", + "assignment_expression[right]", + "augmented_assignment_expression[right]", + "return_statement[0]", + "yield_expression[0]" + ], + assignmentOperators.concat(["=>"]) + ), + collectionKey: trailingMatcher(["array_element_initializer[0]"], ["=>"]), + argumentOrParameter: argumentMatcher("arguments", "formal_parameters") +}; +var php_default = createPatternMatchers(nodeMatchers8); + +// ../cursorless-engine/src/languages/python.ts +function itemNodeFinder(parentType, childType, excludeFirstChild = false) { + const finder = argumentNodeFinder(parentType); + return (node, selection) => { + const childNode = finder(node, selection); + if (childNode?.type === childType && (!excludeFirstChild || childNode.id !== childNode.parent?.firstNamedChild?.id)) { + return childNode; + } + return null; + }; +} +var nodeMatchers9 = { + collectionItem: cascadingMatcher( + matcher( + itemNodeFinder("import_from_statement", "dotted_name", true), + argumentSelectionExtractor() + ), + matcher( + itemNodeFinder("import_statement", "dotted_name", false), + argumentSelectionExtractor() + ), + matcher( + itemNodeFinder("global_statement", "identifier"), + argumentSelectionExtractor() + ) + ), + argumentOrParameter: cascadingMatcher( + argumentMatcher("parameters", "argument_list"), + matcher(patternFinder("call.generator_expression!"), childRangeSelector()) + ) +}; +var python_default = createPatternMatchers(nodeMatchers9); + +// ../cursorless-engine/src/languages/ruby.ts +var STATEMENT_TYPES3 = [ + "alias", + "begin_block", + "end_block", + "if_modifier", + "rescue_modifier", + "undef", + "unless_modifier", + "until_modifier", + "while_modifier" +]; +var EXPRESSION_TYPES = [ + "array", + "assignment", + "begin", + "binary", + "break", + "call", + "case", + "case_match", + "chained_string", + "character", + "class", + "class_variable", + "complex", + "conditional", + "constant", + "delimited_symbol", + "element_reference", + "false", + "float", + "for", + "global_variable", + "hash", + "heredoc_beginning", + "identifier", + "if", + "instance_variable", + "integer", + "lambda", + "method", + "module", + "next", + "nil", + "operator_assignment", + "parenthesized_statements", + "range", + "rational", + "redo", + "regex", + "retry", + "return", + "scope_resolution", + "self", + "simple_symbol", + "singleton_class", + "singleton_method", + "string", + "string_array", + "subshell", + "super", + "symbol_array", + "true", + "unary", + "unless", + "until", + "while", + "yield" +]; +var EXPRESSION_STATEMENT_PARENT_TYPES = [ + "begin", + "block", + "do", + "do_block", + "else", + "ensure", + "heredoc_beginning", + "lambda", + "method", + "program", + "singleton_class", + "singleton_method", + "then" +]; +var mapTypes = ["hash"]; +var listTypes = ["array", "string_array", "symbol_array"]; +var assignmentOperators2 = [ + "=", + "+=", + "-=", + "*=", + "**=", + "/=", + "||=", + "|=", + "&&=", + "&=", + "%=", + ">>=", + "<<=", + "^=" +]; +var mapKeyValueSeparators = [":", "=>"]; +function blockFinder(node) { + if (node.type !== "call") { + return null; + } + const receiver = node.childForFieldName("receiver"); + const method = node.childForFieldName("method"); + const block = node.childForFieldName("block"); + if (receiver?.text === "Proc" && method?.text === "new" || receiver == null && method?.text === "lambda") { + return node; + } + return block; +} +var nodeMatchers10 = { + statement: cascadingMatcher( + patternMatcher(...STATEMENT_TYPES3), + ancestorChainNodeMatcher( + [ + patternFinder(...EXPRESSION_STATEMENT_PARENT_TYPES), + patternFinder(...EXPRESSION_TYPES) + ], + 1 + ) + ), + string: "string", + functionName: ["method[name]", "singleton_method[name]"], + anonymousFunction: cascadingMatcher( + patternMatcher("lambda", "do_block"), + matcher(blockFinder) + ), + condition: conditionMatcher("*[condition]"), + argumentOrParameter: argumentMatcher( + "lambda_parameters", + "method_parameters", + "block_parameters", + "argument_list" + ), + collectionKey: trailingMatcher(["pair[key]"], [":"]), + name: [ + "assignment[left]", + "operator_assignment[left]", + "class[name]", + "method[name]", + "singleton_method[name]" + ], + value: leadingMatcher( + [ + "pair[value]", + "assignment[right]", + "operator_assignment[right]", + "return.argument_list!" + ], + assignmentOperators2.concat(mapKeyValueSeparators) + ), + collectionItem: argumentMatcher(...mapTypes, ...listTypes) +}; +var patternMatchers = createPatternMatchers(nodeMatchers10); +function stringTextFragmentExtractor(node, _selection) { + if (node.type === "string_content" || node.type === "heredoc_content") { + return getNodeRange(node); + } + return null; +} + +// ../cursorless-engine/src/languages/elseIfExtractor.ts +function elseIfExtractor() { + const contentRangeExtractor = childRangeSelector(["else_clause"], [], { + includeUnnamedChildren: true + }); + return function(editor, node) { + const contentRange = contentRangeExtractor(editor, node); + const parent = node.parent; + if (parent?.type !== "else_clause") { + const alternative = node.childForFieldName("alternative"); + if (alternative == null) { + return contentRange; + } + const { selection: selection2 } = contentRange; + return { + selection: selection2, + context: { + removalRange: new Selection( + selection2.start, + positionFromPoint(alternative.namedChild(0).startPosition) + ) + } + }; + } + const { selection } = contentRange; + return { + selection: new Selection( + positionFromPoint(parent.child(0).startPosition), + selection.end + ), + context: {} + }; + }; +} +function elseExtractor(ifNodeType) { + const nestedElseIfExtractor = elseIfExtractor(); + return function(editor, node) { + return node.namedChild(0).type === ifNodeType ? nestedElseIfExtractor(editor, node.namedChild(0)) : simpleSelectionExtractor(editor, node); + }; +} + +// ../cursorless-engine/src/languages/rust.ts +var STATEMENT_TYPES4 = [ + "associated_type", + "attribute_item", + "const_item", + "empty_statement", + "enum_item", + "extern_crate_declaration", + "foreign_mod_item", + "impl_item", + "inner_attribute_item", + "let_declaration", + "macro_definition", + "macro_invocation", + "function_item", + "function_signature_item", + "mod_item", + "static_item", + "struct_item", + "trait_item", + "type_item", + "union_item", + "use_declaration", + "expression_statement" +]; +var STATEMENT_PARENT_TYPES = ["source_file", "block", "declaration_list"]; +function implItemTypeFinder(node) { + if (node.parent?.type === "impl_item" && node.parent?.childForFieldName("type")?.equals(node)) { + return node; + } + return null; +} +function traitBoundExtractor(editor, node) { + return { + selection: makeNodePairSelection(node.children[1], node.lastNamedChild), + context: { + leadingDelimiterRange: makeRangeFromPositions( + node.children[0].startPosition, + node.children[1].startPosition + ) + } + }; +} +function returnValueFinder(node) { + if (node.type !== "block") { + return null; + } + const { lastNamedChild } = node; + if (lastNamedChild == null) { + return null; + } + if (lastNamedChild.type === "expression_statement") { + const expression = lastNamedChild.child(0); + if (expression.type === "return_expression") { + return expression.child(1); + } + return null; + } + if (STATEMENT_TYPES4.includes(lastNamedChild.type)) { + return null; + } + if (lastNamedChild.type === "return_expression") { + return lastNamedChild.child(1); + } + return lastNamedChild; +} +var nodeMatchers11 = { + statement: ancestorChainNodeMatcher( + [ + patternFinder(...STATEMENT_PARENT_TYPES), + patternFinder(...STATEMENT_TYPES4) + ], + 1 + ), + string: ["raw_string_literal", "string_literal"], + condition: cascadingMatcher( + patternMatcher("while_expression[condition]", "if_expression[condition]"), + matcher( + patternFinder("while_let_expression", "if_let_expression"), + childRangeSelector(["while", "if", "block"], [], { + includeUnnamedChildren: true + }) + ), + leadingMatcher(["*.match_pattern![condition]"], ["if"]) + ), + functionCall: ["call_expression", "macro_invocation", "struct_expression"], + functionCallee: "call_expression[function]", + comment: ["line_comment", "block_comment"], + list: ["array_expression", "tuple_expression"], + collectionItem: argumentMatcher( + "array_expression", + "tuple_expression", + "tuple_type" + ), + namedFunction: "function_item", + type: cascadingMatcher( + leadingMatcher( + [ + "let_declaration[type]", + "parameter[type]", + "field_declaration[type]", + "const_item[type]" + ], + [":"] + ), + matcher( + patternFinder( + "constrained_type_parameter[bounds]", + "where_predicate[bounds]" + ), + traitBoundExtractor + ), + leadingMatcher(["function_item[return_type]"], ["->"]), + matcher(implItemTypeFinder), + patternMatcher( + "struct_item", + "trait_item", + "impl_item", + "array_type[element]" + ) + ), + functionName: ["function_item[name]"], + anonymousFunction: "closure_expression", + argumentOrParameter: argumentMatcher( + "arguments", + "parameters", + "meta_arguments", + "type_parameters", + "ordered_field_declaration_list" + ), + collectionKey: cascadingMatcher( + trailingMatcher(["field_initializer[name]", "field_pattern[name]"], [":"]) + ), + name: cascadingMatcher( + patternMatcher( + "let_declaration.identifier!", + "parameter.identifier!", + "function_item[name]", + "struct_item[name]", + "enum_item[name]", + "enum_variant[name]", + "trait_item[name]", + "const_item[name]", + "meta_item.identifier!", + "let_declaration[pattern]", + "constrained_type_parameter[left]", + "where_predicate[left]", + "field_declaration[name]" + ), + trailingMatcher(["field_initializer[name]", "field_pattern[name]"], [":"]) + ), + class: ["struct_item", "struct_expression", "enum_item"], + className: ["struct_item[name]", "enum_item[name]", "trait_item[name]"], + value: cascadingMatcher( + leadingMatcher(["let_declaration[value]"], ["="]), + leadingMatcher( + ["field_initializer[value]", "field_pattern[pattern]"], + [":"] + ), + patternMatcher("meta_item[value]", "const_item[value]"), + matcher(returnValueFinder) + ), + attribute: trailingMatcher(["mutable_specifier", "attribute_item"]), + branch: cascadingMatcher( + patternMatcher("match_arm"), + matcher(patternFinder("else_clause"), elseExtractor("if_expression")), + matcher(patternFinder("if_expression"), elseIfExtractor()) + ), + ["private.switchStatementSubject"]: "match_expression[value]" +}; +var rust_default = createPatternMatchers(nodeMatchers11); + +// ../cursorless-engine/src/languages/scala.ts +var nodeMatchers12 = { + // treating classes = classlike + class: ["class_definition", "object_definition", "trait_definition"], + className: [ + "class_definition[name]", + "object_definition[name]", + "trait_definition[name]" + ], + string: ["interpolated_string_expression", "string"], + comment: "comment", + // list.size(), does not count foo.size (field_expression), or foo size (postfix_expression) + functionCall: "call_expression", + namedFunction: "function_definition", + anonymousFunction: "lambda_expression", + argumentOrParameter: argumentMatcher( + "arguments", + "parameters", + "class_parameters", + "bindings" + ), + branch: matcher( + patternFinder("case_clause"), + childRangeSelector([], [], { + includeUnnamedChildren: true + }) + ), + ["private.switchStatementSubject"]: "match_expression[value]", + name: ["*[name]", "*[pattern]"], + functionName: "function_definition[name]", + // *[type] does not work here because while we want most of these we don't want "compound" types, + // eg `generic_type[type]`, because that will grab just the inner generic (the String of List[String]) + // and as a rule we want to grab entire type definitions. + type: leadingMatcher( + [ + "upper_bound[type]", + "lower_bound[type]", + "view_bound[type]", + "context_bound[type]", + "val_definition[type]", + "val_declaration[type]", + "var_definition[type]", + "var_declaration[type]", + "type_definition", + "extends_clause[type]", + "class_parameter[type]", + "parameter[type]", + "function_definition[return_type]", + "typed_pattern[type]", + "binding[type]" + ], + [":"] + ), + value: leadingMatcher( + ["*[value]", "*[default_value]", "type_definition[type]"], + ["="] + ), + condition: conditionMatcher("*[condition]") + // Scala features unsupported in Cursorless terminology + // - Pattern matching + // Cursorless terminology not yet supported in this Scala implementation + /* + lists and maps basic definition are just function calls to constructors, eg List(1,2,3,4) + These types are also basically arbitrary, so we can't really hard-code them + There is also fancy list style: val foo = 1 :: (2 :: (3 :: Nil)) // List(1,2,3) + */ + // list: 'call_expression', + // map: 'call_expression', + /* infix_expression, key on left, item on right, operator = "->" + // collectionItem: "???" + // collectionKey: "???", + + /* "foo".r <-, value of type field_expression, value of type string, field of type identifier = "r", + // regularExpression: "???", + + /* + none of this stuff is defined well in the tree sitter (it's all just infix expressions etc), + and native XML/HTML is deprecated in Scala 3 + */ + // attribute: "???", + // xmlElement: "???", + // xmlStartTag: "???", + // xmlEndTag: "???", + // xmlBothTags: "???", +}; +var scala_default = createPatternMatchers(nodeMatchers12); + +// ../cursorless-engine/src/languages/scss.ts +var STATEMENT_TYPES5 = [ + "apply_statement", + "at_rule", + "charset_statement", + "debug_statement", + "each_statement", + "error_statement", + "for_statement", + "forward_statement", + "function_statement", + "if_statement", + "import_statement", + "include_statement", + "keyframes_statement", + "media_statement", + "mixin_statement", + "namespace_statement", + "placeholder", + "rule_set", + "supports_statement", + "use_statement", + "warn_statement", + "while_statement" +]; +function isArgumentListDelimiter(node) { + return [",", "(", ")"].includes(node.type) || isAtDelimiter(node); +} +function isAtDelimiter(node) { + return node.type === "plain_value" && node.text === "at"; +} +function findAdjacentArgValues(siblingFunc) { + return (node) => { + if (isAtDelimiter(node) || node.type === ",") { + node = node.previousSibling; + } + let nextPossibleRange = siblingFunc(node); + while (nextPossibleRange && !isArgumentListDelimiter(nextPossibleRange)) { + node = nextPossibleRange; + nextPossibleRange = siblingFunc(nextPossibleRange); + } + return node; + }; +} +function unitMatcher(selection, node) { + if (node.type !== "declaration") { + return null; + } + return node.descendantsOfType("unit").map((n) => ({ + node: n, + selection: simpleSelectionExtractor(selection.editor, n) + })); +} +var nodeMatchers13 = { + ifStatement: "if_statement", + condition: conditionMatcher("condition"), + statement: cascadingMatcher( + patternMatcher(...STATEMENT_TYPES5), + matcher( + patternFinder("attribute_selector"), + childRangeSelector([], ["attribute_name", "string_value"]) + ) + ), + functionCall: "call_expression", + functionCallee: "call_expression.function_name!", + namedFunction: ["mixin_statement", "function_statement"], + functionName: ["mixin_statement.name!", "function_statement.name!"], + argumentOrParameter: cascadingMatcher( + matcher( + patternFinder("arguments.*!", "parameters.*!"), + delimitedSelector( + (node) => isArgumentListDelimiter(node), + ", ", + findAdjacentArgValues((node) => node.previousSibling), + findAdjacentArgValues((node) => node.nextSibling) + ) + ) + ), + name: [ + "function_statement.name!", + "declaration.property_name!", + "declaration.variable_name!", + "mixin_statement.name!", + "attribute_selector.attribute_name!", + "parameter.variable_name!" + ], + selector: ["rule_set.selectors!"], + collectionKey: trailingMatcher(["declaration.property_name!"], [":"]), + value: cascadingMatcher( + matcher( + patternFinder("declaration"), + childRangeSelector(["property_name", "variable_name"]) + ), + matcher( + patternFinder("include_statement", "namespace_statement"), + childRangeSelector() + ), + patternMatcher( + "return_statement.*!", + "import_statement.*!", + "attribute_selector.plain_value!", + "attribute_selector.string_value!", + "parameter.default_value!" + ) + ), + unit: cascadingMatcher(patternMatcher("integer_value.unit!"), unitMatcher), + collectionItem: "declaration" +}; +var patternMatchers2 = createPatternMatchers(nodeMatchers13); + +// ../cursorless-engine/src/languages/getNodeMatcher.ts +function getNodeMatcher(languageId, scopeTypeType, includeSiblings) { + const matchers2 = languageMatchers[languageId]; + if (matchers2 == null) { + throw new UnsupportedLanguageError(languageId); + } + const matcher2 = matchers2[scopeTypeType]; + if (matcher2 == null) { + return notSupported; + } + if (includeSiblings) { + return matcherIncludeSiblings(matcher2); + } + return matcher2; +} +var languageMatchers = { + c: cpp_default, + clojure: clojure_default, + cpp: cpp_default, + csharp: csharp_default, + css: patternMatchers2, + go: go_default, + java: java_default, + latex: latex_default, + markdown: markdown_default, + php: php_default, + python: python_default, + ruby: patternMatchers, + rust: rust_default, + scala: scala_default, + scss: patternMatchers2 +}; +function matcherIncludeSiblings(matcher2) { + return (selection, node) => { + let matches = matcher2(selection, node); + if (matches == null) { + return null; + } + matches = matches.flatMap( + (match2) => iterateNearestIterableAncestor( + match2.node, + selectionWithEditorFromRange(selection, match2.selection.selection), + matcher2 + ) + ); + if (matches.length > 0) { + return matches; + } + return null; + }; +} +function iterateNearestIterableAncestor(node, selection, nodeMatcher) { + let parent = node.parent; + while (parent != null) { + const matches = parent.namedChildren.flatMap((sibling) => nodeMatcher(selection, sibling)).filter((match2) => match2 != null); + if (matches.length > 0) { + return matches; + } + parent = parent.parent; + } + return []; +} + +// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/LegacyContainingSyntaxScopeStage.ts +var LegacyContainingSyntaxScopeStage = class { + constructor(languageDefinitions, modifier) { + this.languageDefinitions = languageDefinitions; + this.modifier = modifier; + } + run(target) { + const nodeMatcher = getNodeMatcher( + target.editor.document.languageId, + this.modifier.scopeType.type, + this.modifier.type === "everyScope" + ); + const node = this.languageDefinitions.getNodeAtLocation( + target.editor.document, + target.contentRange + ); + const scopeNodes = findNearestContainingAncestorNode(node, nodeMatcher, { + editor: target.editor, + selection: new Selection( + target.contentRange.start, + target.contentRange.end + ) + }); + if (scopeNodes == null) { + throw new NoContainingScopeError(this.modifier.scopeType.type); + } + return scopeNodes.map((scope) => { + const { + containingListDelimiter, + leadingDelimiterRange, + trailingDelimiterRange, + removalRange, + interiorRange + } = scope.context; + if (removalRange != null && (leadingDelimiterRange != null || trailingDelimiterRange != null)) { + throw Error( + "Removal range is mutually exclusive with leading or trailing delimiter range" + ); + } + const { editor, selection: contentSelection } = scope.selection; + return new ScopeTypeTarget({ + scopeTypeType: this.modifier.scopeType.type, + editor, + isReversed: target.isReversed, + contentRange: contentSelection, + removalRange, + interiorRange, + insertionDelimiter: containingListDelimiter, + leadingDelimiterRange, + trailingDelimiterRange + }); + }); + } +}; +function findNearestContainingAncestorNode(startNode, nodeMatcher, selection) { + let node = startNode; + while (node != null) { + const matches = nodeMatcher(selection, node); + if (matches != null) { + return matches.map((match2) => match2.selection).map((matchedSelection) => ({ + selection: selectionWithEditorFromRange( + selection, + matchedSelection.selection + ), + context: matchedSelection.context + })); + } + node = node.parent; + } + return null; +} + +// ../cursorless-engine/src/languages/getTextFragmentExtractor.ts +function constructDefaultTextFragmentExtractor(languageId, stringTextFragmentExtractor2) { + const commentNodeMatcher = getNodeMatcher(languageId, "comment", false); + stringTextFragmentExtractor2 = stringTextFragmentExtractor2 ?? constructDefaultStringTextFragmentExtractor(languageId); + return (node, selection) => { + const stringTextFragment = stringTextFragmentExtractor2(node, selection); + if (stringTextFragment != null) { + return stringTextFragment; + } + if (commentNodeMatcher !== notSupported && commentNodeMatcher(selection, node) != null) { + return getNodeRange(node); + } + if (node.type === "ERROR") { + return getNodeRange(node); + } + return null; + }; +} +function constructDefaultStringTextFragmentExtractor(languageId) { + const stringNodeMatcher = getNodeMatcher(languageId, "string", false); + return (node, selection) => { + if (stringNodeMatcher(selection, node) != null) { + return getNodeInternalRange(node); + } + return null; + }; +} +function constructHackedStringTextFragmentExtractor(languageId) { + const stringNodeMatcher = getNodeMatcher(languageId, "string", false); + return (node, selection) => { + if (stringNodeMatcher(selection, node) != null) { + return getNodeRange(node); + } + return null; + }; +} +function getTextFragmentExtractor(languageId) { + return textFragmentExtractors[languageId]; +} +var textFragmentExtractors = { + ruby: constructDefaultTextFragmentExtractor( + "ruby", + stringTextFragmentExtractor + ), + scala: constructDefaultTextFragmentExtractor( + "scala", + constructHackedStringTextFragmentExtractor("scala") + ), + rust: constructDefaultTextFragmentExtractor("rust") +}; + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/delimiterMaps.ts +var delimiterToText = Object.freeze({ + angleBrackets: [ + ["", "/>"] + ], + backtickQuotes: ["`", "`"], + curlyBrackets: [["{", "${"], "}"], + doubleQuotes: ['"', '"'], + escapedDoubleQuotes: ['\\"', '\\"'], + escapedParentheses: ["\\(", "\\)"], + escapedSquareBrackets: ["\\[", "\\]"], + escapedSingleQuotes: ["\\'", "\\'"], + parentheses: [["(", "$("], ")"], + singleQuotes: ["'", "'"], + squareBrackets: ["[", "]"] +}); +var leftToRightMap = Object.fromEntries( + Object.values(delimiterToText) +); +var complexDelimiterMap = { + any: unsafeKeys(delimiterToText), + string: ["singleQuotes", "doubleQuotes", "backtickQuotes"], + collectionBoundary: [ + "parentheses", + "squareBrackets", + "curlyBrackets", + "angleBrackets" + ] +}; + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts +function extractSelectionFromSurroundingPairOffsets(document, baseOffset, surroundingPairOffsets) { + const interior = new Range( + document.positionAt(baseOffset + surroundingPairOffsets.leftDelimiter.end), + document.positionAt( + baseOffset + surroundingPairOffsets.rightDelimiter.start + ) + ); + const boundary = [ + new Range( + document.positionAt( + baseOffset + surroundingPairOffsets.leftDelimiter.start + ), + document.positionAt( + baseOffset + surroundingPairOffsets.leftDelimiter.end + ) + ), + new Range( + document.positionAt( + baseOffset + surroundingPairOffsets.rightDelimiter.start + ), + document.positionAt( + baseOffset + surroundingPairOffsets.rightDelimiter.end + ) + ) + ]; + return { + contentRange: new Selection( + document.positionAt( + baseOffset + surroundingPairOffsets.leftDelimiter.start + ), + document.positionAt( + baseOffset + surroundingPairOffsets.rightDelimiter.end + ) + ), + boundary, + interiorRange: interior + }; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts +var import_lodash31 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts +var import_lodash30 = __toESM(require_lodash(), 1); +function findUnmatchedDelimiter(delimiterOccurrences, initialIndex, acceptableDelimiters, lookForward) { + const generatorResult = generateUnmatchedDelimiters( + delimiterOccurrences, + initialIndex, + () => acceptableDelimiters, + lookForward + ).next(); + return generatorResult.done ? null : generatorResult.value; +} +function* generateUnmatchedDelimiters(delimiterOccurrences, initialIndex, getCurrentAcceptableDelimiters, lookForward) { + const delimiterIncrements = lookForward ? { + left: 1, + right: -1, + unknown: -1 + } : { + left: -1, + right: 1, + unknown: -1 + }; + const delimiterBalances = {}; + let currentAcceptableDelimiters = getCurrentAcceptableDelimiters(); + const indices = lookForward ? (0, import_lodash30.range)(initialIndex, delimiterOccurrences.length, 1) : (0, import_lodash30.range)(initialIndex, -1, -1); + for (const index of indices) { + const delimiterOccurrence = delimiterOccurrences[index]; + const { delimiterInfo } = delimiterOccurrence; + const delimiterName = delimiterInfo?.delimiter; + if (delimiterName == null || !currentAcceptableDelimiters.includes(delimiterName)) { + continue; + } + const increment = delimiterIncrements[delimiterInfo.side]; + const newDelimiterBalance = (delimiterBalances[delimiterName] ?? 0) + increment; + if (newDelimiterBalance === -1) { + yield delimiterOccurrence; + currentAcceptableDelimiters = getCurrentAcceptableDelimiters(); + delimiterBalances[delimiterName] = 0; + } else { + delimiterBalances[delimiterName] = newDelimiterBalance; + } + } +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts +function findOppositeDelimiter(delimiterOccurrences, index, delimiterInfo, forceDirection) { + const { side, delimiter } = delimiterInfo; + for (const direction of getDirections(side, forceDirection)) { + const unmatchedDelimiter = findUnmatchedDelimiter( + delimiterOccurrences, + direction === "right" ? index + 1 : index - 1, + [delimiter], + direction === "right" + ); + if (unmatchedDelimiter != null) { + return unmatchedDelimiter; + } + } + return null; +} +function getDirections(side, forceDirection) { + if (forceDirection != null) { + return [forceDirection]; + } + switch (side) { + case "left": + return ["right"]; + case "right": + return ["left"]; + case "unknown": + return ["right", "left"]; + } +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts +function getSurroundingPairOffsets(delimiter1, delimiter2) { + const isDelimiter1First = delimiter1.offsets.start < delimiter2.offsets.start; + const leftDelimiter = isDelimiter1First ? delimiter1 : delimiter2; + const rightDelimiter = isDelimiter1First ? delimiter2 : delimiter1; + return { + leftDelimiter: leftDelimiter.offsets, + rightDelimiter: rightDelimiter.offsets + }; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/weaklyContains.ts +function weaklyContains(offsets1, offsets2) { + return offsets1.start <= offsets2.start && offsets1.end >= offsets2.end; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts +function findDelimiterPairAdjacentToSelection(initialIndex, delimiterOccurrences, selectionOffsets, scopeType, bailOnUnmatchedAdjacent = false) { + const indicesToTry = [initialIndex + 1, initialIndex]; + for (const index of indicesToTry) { + const delimiterOccurrence = delimiterOccurrences[index]; + if (delimiterOccurrence != null && weaklyContains(delimiterOccurrence.offsets, selectionOffsets)) { + const { delimiterInfo } = delimiterOccurrence; + if (delimiterInfo != null) { + const possibleMatch = findOppositeDelimiter( + delimiterOccurrences, + index, + delimiterInfo, + scopeType.forceDirection + ); + if (possibleMatch != null) { + const surroundingPairOffsets = getSurroundingPairOffsets( + delimiterOccurrence, + possibleMatch + ); + if (!scopeType.requireStrongContainment || surroundingPairOffsets.leftDelimiter.start < selectionOffsets.start && surroundingPairOffsets.rightDelimiter.end > selectionOffsets.end) { + return surroundingPairOffsets; + } + } else if (bailOnUnmatchedAdjacent) { + return null; + } + } + } + } + return null; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts +function findDelimiterPairContainingSelection(initialIndex, delimiterOccurrences, acceptableDelimiters, selectionOffsets, scopeType) { + const acceptableRightDelimiters = acceptableDelimiters; + let acceptableLeftDelimiters = []; + const rightDelimiterGenerator = generateUnmatchedDelimiters( + delimiterOccurrences, + initialIndex, + () => acceptableRightDelimiters, + true + ); + const leftDelimiterGenerator = generateUnmatchedDelimiters( + delimiterOccurrences, + initialIndex - 1, + () => acceptableLeftDelimiters, + false + ); + while (true) { + const rightNext = rightDelimiterGenerator.next(); + if (rightNext.done) { + return null; + } + const rightDelimiterOccurrence = rightNext.value; + acceptableLeftDelimiters = [ + rightDelimiterOccurrence.delimiterInfo.delimiter + ]; + const leftNext = leftDelimiterGenerator.next(); + if (leftNext.done) { + return null; + } + const leftDelimiterOccurrence = leftNext.value; + if (leftDelimiterOccurrence.offsets.start <= selectionOffsets.start) { + if (scopeType.requireStrongContainment && !(leftDelimiterOccurrence.offsets.end <= selectionOffsets.start && rightDelimiterOccurrence.offsets.start >= selectionOffsets.end)) { + continue; + } + return getSurroundingPairOffsets( + leftDelimiterOccurrence, + rightDelimiterOccurrence + ); + } + } +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts +function findSurroundingPairCore(scopeType, delimiterOccurrences, acceptableDelimiters, selectionOffsets, bailOnUnmatchedAdjacent = false) { + const initialIndex = (0, import_lodash31.sortedIndexBy)( + delimiterOccurrences, + { + offsets: selectionOffsets + }, + "offsets.end" + ); + const delimiterPairAdjacentToSelection = findDelimiterPairAdjacentToSelection( + initialIndex, + delimiterOccurrences, + selectionOffsets, + scopeType, + bailOnUnmatchedAdjacent + ); + if (delimiterPairAdjacentToSelection != null) { + return delimiterPairAdjacentToSelection; + } + return findDelimiterPairContainingSelection( + initialIndex, + delimiterOccurrences, + acceptableDelimiters, + selectionOffsets, + scopeType + ); +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts +var import_lodash32 = __toESM(require_lodash(), 1); +function getIndividualDelimiters(delimiters) { + return delimiters.flatMap((delimiter) => { + const [leftDelimiter, rightDelimiter] = delimiterToText[delimiter]; + const leftDelimiters = isString(leftDelimiter) ? [leftDelimiter] : leftDelimiter; + const rightDelimiters = isString(rightDelimiter) ? [rightDelimiter] : rightDelimiter; + const allDelimiterTexts = (0, import_lodash32.uniq)((0, import_lodash32.concat)(leftDelimiters, rightDelimiters)); + return allDelimiterTexts.map((text) => { + const isLeft = leftDelimiters.includes(text); + const isRight = rightDelimiters.includes(text); + return { + text, + // If delimiter text is the same for left and right, we say it's side + // is "unknown", so must be determined from context. + side: isLeft && !isRight ? "left" : isRight && !isLeft ? "right" : "unknown", + delimiter + }; + }); + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts +function findSurroundingPairParseTreeBased(editor, selection, node, delimiters, scopeType) { + const document = editor.document; + const individualDelimiters = getIndividualDelimiters(delimiters); + const delimiterTextToDelimiterInfoMap = Object.fromEntries( + individualDelimiters.map((individualDelimiter) => [ + individualDelimiter.text, + individualDelimiter + ]) + ); + const selectionOffsets = { + start: document.offsetAt(selection.start), + end: document.offsetAt(selection.end) + }; + const context = { + delimiterTextToDelimiterInfoMap, + individualDelimiters, + delimiters, + selectionOffsets, + scopeType + }; + for (let currentNode = node; currentNode != null; currentNode = currentNode.parent) { + if (!getNodeRange(currentNode).contains(selection)) { + continue; + } + const pairOffsets = findSurroundingPairContainedInNode( + context, + currentNode + ); + if (pairOffsets != null) { + return extractSelectionFromSurroundingPairOffsets( + document, + 0, + pairOffsets + ); + } + } + return null; +} +function findSurroundingPairContainedInNode(context, node) { + const { + delimiterTextToDelimiterInfoMap, + individualDelimiters, + delimiters, + selectionOffsets, + scopeType + } = context; + const possibleDelimiterNodes = node.descendantsOfType(individualDelimiters.map(({ text }) => text)).filter((node2) => !(node2.text === "" && node2.hasError())); + const delimiterOccurrences = possibleDelimiterNodes.map((delimiterNode) => { + return { + offsets: { + start: delimiterNode.startIndex, + end: delimiterNode.endIndex + }, + get delimiterInfo() { + const delimiterInfo = delimiterTextToDelimiterInfoMap[delimiterNode.type]; + if (delimiterInfo.delimiter === "angleBrackets" && inferDelimiterSide(delimiterNode) !== delimiterInfo.side && !isContainedInErrorNode(delimiterNode)) { + return void 0; + } + const side = delimiterInfo.side === "unknown" && scopeType.forceDirection == null ? inferDelimiterSide(delimiterNode) : delimiterInfo.side; + return { + ...delimiterInfo, + side + }; + } + }; + }); + return findSurroundingPairCore( + scopeType, + delimiterOccurrences, + delimiters, + selectionOffsets, + // If we're not the root node of the parse tree (ie `node.parent != + // null`), we tell `findSurroundingPairCore` to bail if it finds a + // delimiter adjacent to our selection, but doesn't find its opposite + // delimiter within our list. We do so because it's possible that the + // adjacent delimiter's opposite might be found when we run again on a + // parent node later. + node.parent != null + ); +} +function inferDelimiterSide(delimiterNode) { + return delimiterNode.parent?.firstChild?.equals(delimiterNode) ? "left" : delimiterNode.parent?.lastChild?.equals(delimiterNode) ? "right" : "unknown"; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts +var import_lodash33 = __toESM(require_lodash(), 1); +var INITIAL_SCAN_LENGTH = 200; +var MAX_SCAN_LENGTH = 5e4; +var SCAN_EXPANSION_FACTOR = 3; +function findSurroundingPairTextBased(editor, range4, allowableRange, delimiters, scopeType) { + const document = editor.document; + const fullRange = allowableRange ?? document.range; + const individualDelimiters = getIndividualDelimiters(delimiters); + const delimiterTextToDelimiterInfoMap = Object.fromEntries( + individualDelimiters.map((individualDelimiter) => [ + individualDelimiter.text, + individualDelimiter + ]) + ); + const delimiterRegex = getDelimiterRegex(individualDelimiters); + const fullRangeOffsets = { + start: document.offsetAt(fullRange.start), + end: document.offsetAt(fullRange.end) + }; + const selectionOffsets = { + start: document.offsetAt(range4.start), + end: document.offsetAt(range4.end) + }; + const context = { + scopeType, + delimiterRegex, + delimiters, + delimiterTextToDelimiterInfoMap + }; + for (let scanLength = INITIAL_SCAN_LENGTH; scanLength < MAX_SCAN_LENGTH; scanLength *= SCAN_EXPANSION_FACTOR) { + const currentRangeOffsets = { + start: Math.max( + fullRangeOffsets.start, + selectionOffsets.end - scanLength / 2 + ), + end: Math.min( + fullRangeOffsets.end, + selectionOffsets.end + scanLength / 2 + ) + }; + const currentRange = new Range( + document.positionAt(currentRangeOffsets.start), + document.positionAt(currentRangeOffsets.end) + ); + if (!currentRange.contains(range4)) { + continue; + } + const adjustedSelectionOffsets = { + start: selectionOffsets.start - currentRangeOffsets.start, + end: selectionOffsets.end - currentRangeOffsets.start + }; + const pairOffsets = getDelimiterPairOffsets( + context, + document.getText(currentRange), + adjustedSelectionOffsets, + currentRangeOffsets.start === fullRangeOffsets.start, + currentRangeOffsets.end === fullRangeOffsets.end + ); + if (pairOffsets != null) { + return extractSelectionFromSurroundingPairOffsets( + document, + currentRangeOffsets.start, + pairOffsets + ); + } + if (currentRange.contains(fullRange)) { + break; + } + } + return null; +} +function getDelimiterRegex(individualDelimiters) { + const individualDelimiterDisjunct = (0, import_lodash33.uniq)( + individualDelimiters.map(({ text }) => text) + ).map(import_lodash33.escapeRegExp).join("|"); + return new RegExp(`(? { + const startOffset = match2.index; + const matchText2 = match2[0]; + let hasCachedDelimiterInfo = false; + let cachedDelimiterInfo = void 0; + return { + offsets: { + start: startOffset, + end: startOffset + matchText2.length + }, + get delimiterInfo() { + if (hasCachedDelimiterInfo) { + return cachedDelimiterInfo; + } + const rawDelimiterInfo = delimiterTextToDelimiterInfoMap[matchText2]; + const side = rawDelimiterInfo.side === "unknown" && forceDirection == null ? inferDelimiterSide2( + text, + delimiterOccurrences, + index, + rawDelimiterInfo?.delimiter, + startOffset + ) : rawDelimiterInfo.side; + const delimiterInfo = { ...rawDelimiterInfo, side }; + hasCachedDelimiterInfo = true; + cachedDelimiterInfo = delimiterInfo; + return delimiterInfo; + } + }; + } + ); + const surroundingPair = findSurroundingPairCore( + scopeType, + delimiterOccurrences, + delimiters, + selectionOffsets, + !isAtStartOfFullRange || !isAtEndOfFullRange + ); + if (surroundingPair == null || !isAtStartOfFullRange && surroundingPair.leftDelimiter.start === 0 || !isAtEndOfFullRange && surroundingPair.rightDelimiter.end === text.length - 1) { + return null; + } + return surroundingPair; +} +function inferDelimiterSide2(fullText, delimiterOccurrences, index, delimiter, occurrenceStartOffset) { + const previousOccurrence = index === 0 ? null : (0, import_lodash33.findLast)( + delimiterOccurrences, + (delimiterOccurrence) => delimiterOccurrence.delimiterInfo?.delimiter === delimiter, + index - 1 + ); + if (previousOccurrence == null || fullText.substring(previousOccurrence.offsets.end, occurrenceStartOffset).includes("\n")) { + return "left"; + } + return previousOccurrence.delimiterInfo.side === "left" ? "right" : "left"; +} + +// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts +function processSurroundingPair(languageDefinitions, target, scopeType) { + const pairInfo = processSurroundingPairCore( + languageDefinitions, + target, + scopeType + ); + if (pairInfo == null) { + return null; + } + return new SurroundingPairTarget({ + ...pairInfo, + editor: target.editor, + isReversed: target.isReversed + }); +} +function processSurroundingPairCore(languageDefinitions, target, scopeType) { + const { editor, contentRange: range4 } = target; + const languageDefinition = languageDefinitions.get( + target.editor.document.languageId + ); + const document = editor.document; + const delimiters = complexDelimiterMap[scopeType.delimiter] ?? [scopeType.delimiter]; + let node; + try { + node = languageDefinitions.getNodeAtLocation(document, range4); + if (nodeHasError(node)) { + return findSurroundingPairTextBased( + editor, + range4, + null, + delimiters, + scopeType + ); + } + } catch (err) { + if (err.name === "UnsupportedLanguageError") { + return findSurroundingPairTextBased( + editor, + range4, + null, + delimiters, + scopeType + ); + } else { + throw err; + } + } + const textFragmentRange = (() => { + const textFragmentScopeHandler = languageDefinition?.getTextFragmentScopeHandler(); + if (textFragmentScopeHandler != null) { + const containingScope = getContainingScopeTarget( + target, + textFragmentScopeHandler, + 0 + ); + return containingScope?.[0].contentRange; + } + const textFragmentExtractor = getTextFragmentExtractor(document.languageId); + if (textFragmentExtractor == null) { + return document.range; + } + const selectionWithEditor = { + editor, + selection: new Selection(range4.start, range4.end) + }; + return textFragmentExtractor(node, selectionWithEditor); + })(); + if (textFragmentRange != null) { + const surroundingRange = findSurroundingPairTextBased( + editor, + range4, + textFragmentRange, + delimiters, + scopeType + ); + if (surroundingRange != null) { + return surroundingRange; + } + } + return findSurroundingPairParseTreeBased( + editor, + range4, + node, + delimiters, + scopeType + ); +} +function nodeHasError(node, includeChildren = false) { + if (nodeIsError(node)) { + return true; + } + if (includeChildren) { + if (node.children.some(nodeIsError)) { + return true; + } + } + if (node.parent != null) { + return nodeHasError(node.parent, true); + } + return false; +} +function nodeIsError(node) { + return node.type === "ERROR"; +} + +// ../cursorless-engine/src/processTargets/modifiers/ItemStage/getIterationScope.ts +function getIterationScope(languageDefinitions, target) { + let surroundingTarget = getSurroundingPair(languageDefinitions, target); + while (surroundingTarget != null) { + if (useInteriorOfSurroundingTarget( + languageDefinitions, + target, + surroundingTarget + )) { + return { + range: surroundingTarget.getInteriorStrict()[0].contentRange, + boundary: getBoundary(surroundingTarget) + }; + } + surroundingTarget = getParentSurroundingPair( + languageDefinitions, + target.editor, + surroundingTarget + ); + } + return { + range: fitRangeToLineContent(target.editor, target.contentRange) + }; +} +function useInteriorOfSurroundingTarget(languageDefinitions, target, surroundingTarget) { + const { contentRange } = target; + if (contentRange.isEmpty) { + const [left, right] = getBoundary(surroundingTarget); + const pos = contentRange.start; + if (pos.isEqual(left.start) || pos.isEqual(right.end)) { + return false; + } + const line = target.editor.document.lineAt(pos); + if (pos.isEqual(left.end) && characterIsWhitespaceOrMissing(line, pos.character)) { + return false; + } + if (pos.isEqual(right.start) && characterIsWhitespaceOrMissing(line, pos.character - 1)) { + return false; + } + } else { + if (contentRange.isRangeEqual(surroundingTarget.contentRange)) { + return false; + } + const [left, right] = getBoundary(surroundingTarget); + if (contentRange.isRangeEqual(left) || contentRange.isRangeEqual(right)) { + return false; + } + } + const surroundingStringTarget = getStringSurroundingPair( + languageDefinitions, + surroundingTarget + ); + if (surroundingStringTarget != null && surroundingTarget.contentRange.start.isBeforeOrEqual( + surroundingStringTarget.contentRange.start + )) { + return false; + } + return true; +} +function getBoundary(surroundingTarget) { + return surroundingTarget.getBoundaryStrict().map((t) => t.contentRange); +} +function characterIsWhitespaceOrMissing(line, index) { + return index < line.range.start.character || index >= line.range.end.character || line.text[index].trim() === ""; +} +function getParentSurroundingPair(languageDefinitions, editor, target) { + const startOffset = editor.document.offsetAt(target.contentRange.start); + if (startOffset === 0) { + return null; + } + const position = editor.document.positionAt(startOffset - 1); + return getSurroundingPair( + languageDefinitions, + new PlainTarget({ + editor, + contentRange: new Range(position, position), + isReversed: false + }) + ); +} +function getSurroundingPair(languageDefinitions, target) { + return processSurroundingPair(languageDefinitions, target, { + type: "surroundingPair", + delimiter: "collectionBoundary", + requireStrongContainment: true + }); +} +function getStringSurroundingPair(languageDefinitions, target) { + return processSurroundingPair(languageDefinitions, target, { + type: "surroundingPair", + delimiter: "string", + requireStrongContainment: true + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/ItemStage/tokenizeRange.ts +function tokenizeRange(editor, interior, boundary) { + const { document } = editor; + const text = document.getText(interior); + const lexemes = text.split(/([,(){}<>[\]"'`])|(? lexeme != null && lexeme.length > 0); + const joinedLexemes = joinLexemesBySkippingMatchingPairs(lexemes); + const tokens = []; + let offset = document.offsetAt(interior.start); + joinedLexemes.forEach((lexeme) => { + if (lexeme.trim().length === 0) { + offset += lexeme.length; + return; + } + if (lexeme === separator) { + tokens.push({ + type: "separator", + range: new Range( + document.positionAt(offset), + document.positionAt(offset + lexeme.length) + ) + }); + } else { + const offsetStart = offset + (lexeme.length - lexeme.trimStart().length); + tokens.push({ + type: "item", + range: new Range( + document.positionAt(offsetStart), + document.positionAt(offsetStart + lexeme.trim().length) + ) + }); + } + offset += lexeme.length; + }); + if (boundary != null) { + return [ + { type: "boundary", range: boundary[0] }, + ...tokens, + { type: "boundary", range: boundary[1] } + ]; + } + return tokens; +} +function joinLexemesBySkippingMatchingPairs(lexemes) { + const result = []; + let delimiterBalance = 0; + let openingDelimiter = null; + let closingDelimiter = null; + let startIndex = -1; + lexemes.forEach((lexeme, index) => { + if (delimiterBalance > 0) { + if (lexeme === closingDelimiter) { + --delimiterBalance; + } else if (lexeme === openingDelimiter) { + ++delimiterBalance; + } + } else if (leftToRightMap2[lexeme] != null && lexemes.indexOf(leftToRightMap2[lexeme], index + 1) > -1) { + openingDelimiter = lexeme; + closingDelimiter = leftToRightMap2[lexeme]; + delimiterBalance = 1; + if (startIndex < 0) { + startIndex = index; + } + } else if (startIndex < 0) { + startIndex = index; + } + const isSeparator = lexeme === separator && delimiterBalance === 0; + if (isSeparator || index === lexemes.length - 1) { + const endIndex = isSeparator ? index : index + 1; + result.push(lexemes.slice(startIndex, endIndex).join("")); + startIndex = -1; + if (isSeparator) { + result.push(lexeme); + } + } + }); + return result; +} +var separator = ","; +var leftToRightMap2 = { + "(": ")", + "{": "}", + "<": ">", + "[": "]", + '"': '"', + "'": "'", + "`": "`" +}; + +// ../cursorless-engine/src/processTargets/modifiers/ItemStage/ItemStage.ts +var ItemStage = class { + constructor(languageDefinitions, modifier) { + this.languageDefinitions = languageDefinitions; + this.modifier = modifier; + } + run(target) { + try { + return new LegacyContainingSyntaxScopeStage( + this.languageDefinitions, + this.modifier + ).run(target); + } catch (_error) { + } + if (this.modifier.type === "everyScope") { + return this.getEveryTarget(this.languageDefinitions, target); + } + return [this.getSingleTarget(this.languageDefinitions, target)]; + } + getEveryTarget(languageDefinitions, target) { + const itemInfos = getItemInfosForIterationScope( + languageDefinitions, + target + ); + const filteredItemInfos = target.hasExplicitRange ? filterItemInfos(target, itemInfos) : itemInfos; + if (filteredItemInfos.length === 0) { + throw new NoContainingScopeError(this.modifier.scopeType.type); + } + return filteredItemInfos.map( + (itemInfo) => this.itemInfoToTarget(target, itemInfo) + ); + } + getSingleTarget(languageDefinitions, target) { + const itemInfos = getItemInfosForIterationScope( + languageDefinitions, + target + ); + const filteredItemInfos = filterItemInfos(target, itemInfos); + if (filteredItemInfos.length === 0) { + throw new NoContainingScopeError(this.modifier.scopeType.type); + } + const first = filteredItemInfos[0]; + const last2 = filteredItemInfos[filteredItemInfos.length - 1]; + const itemInfo = { + contentRange: first.contentRange.union(last2.contentRange), + domain: first.domain.union(last2.domain), + leadingDelimiterRange: first.leadingDelimiterRange, + trailingDelimiterRange: last2.trailingDelimiterRange + }; + const removalRange = itemInfo.leadingDelimiterRange != null && itemInfo.trailingDelimiterRange != null && getRangeLength(target.editor, itemInfo.leadingDelimiterRange) > getRangeLength(target.editor, itemInfo.trailingDelimiterRange) ? itemInfo.contentRange.union(itemInfo.leadingDelimiterRange) : void 0; + return this.itemInfoToTarget(target, itemInfo, removalRange); + } + itemInfoToTarget(target, itemInfo, removalRange) { + const insertionDelimiter = getInsertionDelimiter3( + itemInfo.leadingDelimiterRange, + itemInfo.trailingDelimiterRange + ); + return new ScopeTypeTarget({ + scopeTypeType: this.modifier.scopeType.type, + editor: target.editor, + isReversed: target.isReversed, + contentRange: itemInfo.contentRange, + insertionDelimiter, + leadingDelimiterRange: itemInfo.leadingDelimiterRange, + trailingDelimiterRange: itemInfo.trailingDelimiterRange, + removalRange + }); + } +}; +function getInsertionDelimiter3(leadingDelimiterRange, trailingDelimiterRange) { + return leadingDelimiterRange != null && !leadingDelimiterRange.isSingleLine || trailingDelimiterRange != null && !trailingDelimiterRange.isSingleLine ? ",\n" : ", "; +} +function filterItemInfos(target, itemInfos) { + return itemInfos.filter( + (itemInfo) => itemInfo.domain.intersection(target.contentRange) != null + ); +} +function getItemInfosForIterationScope(languageDefinitions, target) { + const { range: range4, boundary } = getIterationScope(languageDefinitions, target); + return getItemsInRange(target.editor, range4, boundary); +} +function getItemsInRange(editor, interior, boundary) { + const tokens = tokenizeRange(editor, interior, boundary); + const itemInfos = []; + tokens.forEach((token, i) => { + if (token.type === "separator" || token.type === "boundary") { + return; + } + const leadingDelimiterRange = (() => { + if (tokens[i - 2]?.type === "item") { + return new Range(tokens[i - 2].range.end, token.range.start); + } + if (tokens[i - 1]?.type === "separator") { + return new Range(tokens[i - 1].range.start, token.range.start); + } + return void 0; + })(); + const trailingDelimiterRange = (() => { + if (tokens[i + 2]?.type === "item") { + return new Range(token.range.end, tokens[i + 2].range.start); + } + if (tokens[i + 1]?.type === "separator") { + return new Range(token.range.end, tokens[i + 1].range.end); + } + return void 0; + })(); + const domainStart = tokens[i - 1]?.type === "boundary" || tokens[i - 1]?.type === "separator" ? tokens[i - 1].range.end : token.range.start; + const domainEnd = tokens[i + 1]?.type === "boundary" || tokens[i + 1]?.type === "separator" ? tokens[i + 1].range.start : token.range.end; + itemInfos.push({ + contentRange: token.range, + leadingDelimiterRange, + trailingDelimiterRange, + domain: new Range(domainStart, domainEnd) + }); + }); + return itemInfos; +} + +// ../cursorless-engine/src/processTargets/modifiers/LeadingTrailingStages.ts +var NoDelimiterError = class extends Error { + constructor(type2) { + super(`Target has no ${type2} delimiter.`); + this.name = "NoDelimiterError"; + } +}; +var LeadingStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + return this.modifierStageFactory.create(containingTokenIfUntypedModifier).run(target).map((target2) => { + const leading = target2.getLeadingDelimiterTarget(); + if (leading == null) { + throw new NoDelimiterError("leading"); + } + return leading; + }); + } +}; +var TrailingStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + return this.modifierStageFactory.create(containingTokenIfUntypedModifier).run(target).map((target2) => { + const trailing = target2.getTrailingDelimiterTarget(); + if (trailing == null) { + throw new NoDelimiterError("trailing"); + } + return trailing; + }); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/targetSequenceUtils.ts +function createRangeTargetFromIndices(isReversed, targets, startIndex, endIndex) { + assertIndices(targets, startIndex, endIndex); + if (startIndex === endIndex) { + return targets[startIndex]; + } + return createContinuousRangeTarget( + isReversed, + targets[startIndex], + targets[endIndex], + true, + true + ); +} +function getEveryScopeTargets(modifierStageFactory, target, scopeType) { + const containingStage = modifierStageFactory.create({ + type: "everyScope", + scopeType + }); + return containingStage.run(target); +} + +// ../cursorless-engine/src/processTargets/modifiers/OrdinalScopeStage.ts +var OrdinalScopeStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + const targets = getEveryScopeTargets( + this.modifierStageFactory, + target, + this.modifier.scopeType + ); + const startIndex = this.modifier.start + (this.modifier.start < 0 ? targets.length : 0); + const endIndex = startIndex + this.modifier.length - 1; + if (this.modifier.isEvery) { + return sliceStrict(targets, startIndex, endIndex); + } + return [ + createRangeTargetFromIndices( + target.isReversed, + targets, + startIndex, + endIndex + ) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/PositionStage.ts +var PositionStage = class { + run(target) { + const parameters = { + editor: target.editor, + isReversed: target.isReversed, + contentRange: this.getContentRange(target.contentRange) + }; + return [ + target.isRaw ? new RawSelectionTarget(parameters) : new PlainTarget({ ...parameters, isToken: false }) + ]; + } +}; +var StartOfStage = class extends PositionStage { + getContentRange(contentRange) { + return contentRange.start.toEmptyRange(); + } +}; +var EndOfStage = class extends PositionStage { + getContentRange(contentRange) { + return contentRange.end.toEmptyRange(); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/RangeModifierStage.ts +var RangeModifierStage = class { + constructor(modifierStageFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + const anchorStage = this.modifierStageFactory.create(this.modifier.anchor); + const activeStage = this.modifierStageFactory.create(this.modifier.active); + const anchorTargets = anchorStage.run(target); + const activeTargets = activeStage.run(target); + if (anchorTargets.length !== 1 || activeTargets.length !== 1) { + throw new Error("Expected single anchor and active target"); + } + return [ + targetsToContinuousTarget( + anchorTargets[0], + activeTargets[0], + this.modifier.excludeAnchor, + this.modifier.excludeActive + ) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/RawSelectionStage.ts +var RawSelectionStage = class { + constructor(modifier) { + this.modifier = modifier; + } + run(target) { + return [ + new RawSelectionTarget({ + editor: target.editor, + contentRange: target.contentRange, + isReversed: target.isReversed + }) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/relativeScopeLegacy.ts +var import_lodash34 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/processTargets/modifiers/TooFewScopesError.ts +var TooFewScopesError = class extends Error { + constructor(requestedLength, currentLength, scopeType) { + super( + `Requested ${requestedLength} ${scopeType}s, but ${currentLength} are already selected.` + ); + this.name = "TooFewScopesError"; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/relativeScopeLegacy.ts +function runLegacy(modifierStageFactory, modifier, target) { + const targets = getEveryScopeTargets( + modifierStageFactory, + createTargetWithoutExplicitRange(target), + modifier.scopeType + ); + const containingIndices = getContainingIndices(target.contentRange, targets); + return calculateIndicesAndCreateTarget( + modifier, + target, + targets, + containingIndices + ); +} +function calculateIndicesAndCreateTarget(modifier, target, targets, containingIndices) { + const isForward = modifier.direction === "forward"; + const proximalIndex = computeProximalIndex( + modifier, + target.contentRange, + targets, + isForward, + containingIndices + ); + const distalIndex = isForward ? proximalIndex + modifier.length - 1 : proximalIndex - modifier.length + 1; + const startIndex = Math.min(proximalIndex, distalIndex); + const endIndex = Math.max(proximalIndex, distalIndex); + return [ + createRangeTargetFromIndices( + target.isReversed, + targets, + startIndex, + endIndex + ) + ]; +} +function computeProximalIndex(modifier, inputTargetRange, targets, isForward, containingIndices) { + const includeIntersectingScopes = modifier.offset === 0; + if (containingIndices == null) { + const adjacentTargetIndex = isForward ? targets.findIndex( + (t) => t.contentRange.start.isAfter(inputTargetRange.start) + ) : (0, import_lodash34.findLastIndex)( + targets, + (t) => t.contentRange.start.isBefore(inputTargetRange.start) + ); + if (adjacentTargetIndex === -1) { + throw new OutOfRangeError(); + } + if (includeIntersectingScopes) { + return adjacentTargetIndex; + } + return isForward ? adjacentTargetIndex + modifier.offset - 1 : adjacentTargetIndex - modifier.offset + 1; + } + const intersectingStartIndex = containingIndices.start; + const intersectingEndIndex = containingIndices.end; + if (includeIntersectingScopes) { + const intersectingLength = intersectingEndIndex - intersectingStartIndex + 1; + if (intersectingLength > modifier.length) { + throw new TooFewScopesError( + modifier.length, + intersectingLength, + modifier.scopeType.type + ); + } + return isForward ? intersectingStartIndex : intersectingEndIndex; + } + return isForward ? intersectingEndIndex + modifier.offset : intersectingStartIndex - modifier.offset; +} +function getContainingIndices(inputTargetRange, targets) { + const targetsWithIntersection = targets.map((t, i) => ({ + index: i, + intersection: t.contentRange.intersection(inputTargetRange) + })).filter((t) => t.intersection != null); + if (inputTargetRange.isEmpty) { + if (targetsWithIntersection.length === 0) { + return void 0; + } + const index = targetsWithIntersection.at(-1).index; + return { start: index, end: index }; + } + const targetsWithNonEmptyIntersection = targetsWithIntersection.filter((t) => !t.intersection.isEmpty).map((t) => t.index); + if (targetsWithNonEmptyIntersection.length === 0) { + return void 0; + } + return { + start: targetsWithNonEmptyIntersection[0], + end: targetsWithNonEmptyIntersection.at(-1) + }; +} +function createTargetWithoutExplicitRange(target) { + return new UntypedTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange: target.contentRange, + hasExplicitRange: false + }); +} + +// ../cursorless-engine/src/processTargets/modifiers/RelativeScopeStage.ts +var RelativeScopeStage = class { + constructor(modifierStageFactory, scopeHandlerFactory, modifier) { + this.modifierStageFactory = modifierStageFactory; + this.scopeHandlerFactory = scopeHandlerFactory; + this.modifier = modifier; + } + run(target) { + const scopeHandler = this.scopeHandlerFactory.create( + this.modifier.scopeType, + target.editor.document.languageId + ); + if (scopeHandler == null) { + return runLegacy(this.modifierStageFactory, this.modifier, target); + } + const scopes = Array.from( + this.modifier.offset === 0 ? generateScopesInclusive(scopeHandler, target, this.modifier) : generateScopesExclusive(scopeHandler, target, this.modifier) + ); + if (scopes.length < this.modifier.length) { + throw new OutOfRangeError(); + } + const { isReversed } = target; + if (this.modifier.isEvery) { + return scopes.flatMap((scope) => scope.getTargets(isReversed)); + } + return constructScopeRangeTarget( + isReversed, + scopes[0], + scopes[scopes.length - 1] + ); + } +}; +function generateScopesInclusive(scopeHandler, target, modifier) { + const { editor, contentRange } = target; + const { length: desiredScopeCount, direction } = modifier; + const initialRange = getPreferredScopeTouchingPosition( + scopeHandler, + editor, + direction === "forward" ? contentRange.start : contentRange.end, + direction + )?.domain; + if (initialRange == null) { + throw new NoContainingScopeError(modifier.scopeType.type); + } + return itake( + desiredScopeCount, + scopeHandler.generateScopes( + editor, + direction === "forward" ? initialRange.start : initialRange.end, + direction, + { + skipAncestorScopes: true + } + ) + ); +} +function generateScopesExclusive(scopeHandler, target, modifier) { + const { editor, contentRange: inputRange } = target; + const { length: desiredScopeCount, direction, offset } = modifier; + const initialPosition = direction === "forward" ? inputRange.end : inputRange.start; + const containment = inputRange.isEmpty ? "disallowed" : "disallowedIfStrict"; + return islice( + scopeHandler.generateScopes(editor, initialPosition, direction, { + containment, + skipAncestorScopes: true + }), + offset - 1, + offset + desiredScopeCount - 1 + ); +} + +// ../cursorless-engine/src/processTargets/modifiers/SurroundingPairStage.ts +var SurroundingPairStage = class { + constructor(languageDefinitions, modifier) { + this.languageDefinitions = languageDefinitions; + this.modifier = modifier; + } + run(target) { + if (this.modifier.type === "everyScope") { + throw Error(`Unsupported every scope ${this.modifier.scopeType.type}`); + } + return processedSurroundingPairTarget( + this.languageDefinitions, + this.modifier, + target + ); + } +}; +function processedSurroundingPairTarget(languageDefinitions, modifier, target) { + const outputTarget = processSurroundingPair( + languageDefinitions, + target, + modifier.scopeType + ); + if (outputTarget == null) { + throw new Error("Couldn't find containing pair"); + } + return [outputTarget]; +} + +// ../cursorless-engine/src/processTargets/modifiers/VisibleStage.ts +var VisibleStage = class { + constructor(modifier) { + this.modifier = modifier; + } + run(target) { + return target.editor.visibleRanges.map( + (range4) => new PlainTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange: range4 + }) + ); + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts +var BoundedNonWhitespaceSequenceStage = class { + constructor(languageDefinitions, modifierStageFactory, modifier) { + this.languageDefinitions = languageDefinitions; + this.modifierStageFactory = modifierStageFactory; + this.modifier = modifier; + } + run(target) { + const paintStage = this.modifierStageFactory.create({ + type: this.modifier.type, + scopeType: { type: "nonWhitespaceSequence" } + }); + const paintTargets = paintStage.run(target); + const pairInfo = processSurroundingPair(this.languageDefinitions, target, { + type: "surroundingPair", + delimiter: "any", + requireStrongContainment: true + }); + if (pairInfo == null) { + return paintTargets; + } + const targets = paintTargets.flatMap((paintTarget) => { + const contentRange = paintTarget.contentRange.intersection( + pairInfo.getInteriorStrict()[0].contentRange + ); + if (contentRange == null || contentRange.isEmpty) { + return []; + } + return [ + new TokenTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange + }) + ]; + }); + if (targets.length === 0) { + throw new NoContainingScopeError(this.modifier.scopeType.type); + } + return targets; + } +}; + +// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts +var NotebookCellStage = class { + constructor(modifier) { + this.modifier = modifier; + } + run(target) { + if (this.modifier.type === "everyScope") { + throw new Error(`Every ${this.modifier.type} not yet implemented`); + } + return [ + new NotebookCellTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange: target.contentRange + }) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/ModifierStageFactoryImpl.ts +var ModifierStageFactoryImpl = class { + constructor(languageDefinitions, storedTargets, scopeHandlerFactory) { + this.languageDefinitions = languageDefinitions; + this.storedTargets = storedTargets; + this.scopeHandlerFactory = scopeHandlerFactory; + this.create = this.create.bind(this); + } + create(modifier) { + switch (modifier.type) { + case "startOf": + return new StartOfStage(); + case "endOf": + return new EndOfStage(); + case "extendThroughStartOf": + return new HeadStage(this, modifier); + case "extendThroughEndOf": + return new TailStage(this, modifier); + case "toRawSelection": + return new RawSelectionStage(modifier); + case "interiorOnly": + return new InteriorOnlyStage(this, modifier); + case "excludeInterior": + return new ExcludeInteriorStage(this, modifier); + case "leading": + return new LeadingStage(this, modifier); + case "trailing": + return new TrailingStage(this, modifier); + case "visible": + return new VisibleStage(modifier); + case "containingScope": + return new ContainingScopeStage( + this, + this.scopeHandlerFactory, + modifier + ); + case "everyScope": + if (modifier.scopeType.type === "instance") { + return new InstanceStage(this, this.storedTargets, modifier); + } + return new EveryScopeStage(this, this.scopeHandlerFactory, modifier); + case "ordinalScope": + if (modifier.scopeType.type === "instance") { + return new InstanceStage(this, this.storedTargets, modifier); + } + return new OrdinalScopeStage(this, modifier); + case "relativeScope": + if (modifier.scopeType.type === "instance") { + return new InstanceStage(this, this.storedTargets, modifier); + } + return new RelativeScopeStage(this, this.scopeHandlerFactory, modifier); + case "keepContentFilter": + return new KeepContentFilterStage(modifier); + case "keepEmptyFilter": + return new KeepEmptyFilterStage(modifier); + case "cascading": + return new CascadingStage(this, modifier); + case "modifyIfUntyped": + return new ModifyIfUntypedStage(this, modifier); + case "range": + return new RangeModifierStage(this, modifier); + case "inferPreviousMark": + throw Error( + `Unexpected modifier '${modifier.type}'; it should have been removed during inference` + ); + } + } + /** + * Any scope type that has not been fully migrated to the new + * {@link ScopeHandler} setup should have a branch in this `switch` statement. + * Once the scope type is fully migrated, remove the branch and the legacy + * modifier stage. + * + * Note that it is possible for a scope type to be partially migrated. For + * example, we could support modern scope handlers for a certain scope type in + * Ruby, but not yet in Python. + * + * @param modifier The modifier for which to get the modifier stage + * @returns A scope stage implementing the modifier for the given scope type + */ + getLegacyScopeStage(modifier) { + switch (modifier.scopeType.type) { + case "notebookCell": + return new NotebookCellStage(modifier); + case "boundedNonWhitespaceSequence": + return new BoundedNonWhitespaceSequenceStage( + this.languageDefinitions, + this, + modifier + ); + case "collectionItem": + return new ItemStage(this.languageDefinitions, modifier); + case "surroundingPair": + return new SurroundingPairStage( + this.languageDefinitions, + modifier + ); + default: + return new LegacyContainingSyntaxScopeStage( + this.languageDefinitions, + modifier + ); + } + } +}; + +// ../cursorless-engine/src/actions/BreakLine.ts +var import_lodash37 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/core/updateSelections/updateSelections.ts +var import_lodash35 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/performDocumentEdits.ts +async function performDocumentEdits(rangeUpdater, editor, edits) { + const deregister = rangeUpdater.registerReplaceEditList( + editor.document, + edits.filter((edit) => edit.isReplace) + ); + const wereEditsApplied = await editor.edit(edits); + deregister(); + return wereEditsApplied; +} + +// ../cursorless-engine/src/core/updateSelections/updateSelections.ts +function getSelectionInfo(document, selection, rangeBehavior) { + return getSelectionInfoInternal( + document, + selection, + !selection.isReversed, + rangeBehavior + ); +} +function getSelectionInfoInternal(document, range4, isForward, rangeBehavior) { + return { + range: range4, + isForward, + expansionBehavior: { + start: { + type: rangeBehavior === 1 /* closedClosed */ || rangeBehavior === 3 /* closedOpen */ ? "closed" : "open" + }, + end: { + type: rangeBehavior === 1 /* closedClosed */ || rangeBehavior === 2 /* openClosed */ ? "closed" : "open" + } + }, + offsets: { + start: document.offsetAt(range4.start), + end: document.offsetAt(range4.end) + }, + text: document.getText(range4) + }; +} +function selectionsToSelectionInfos(document, selectionMatrix, rangeBehavior = 1 /* closedClosed */) { + return selectionMatrix.map( + (selections) => selections.map( + (selection) => getSelectionInfo(document, selection, rangeBehavior) + ) + ); +} +function rangesToSelectionInfos(document, rangeMatrix, rangeBehavior = 1 /* closedClosed */) { + return rangeMatrix.map( + (ranges) => ranges.map( + (range4) => getSelectionInfoInternal(document, range4, false, rangeBehavior) + ) + ); +} +function selectionInfosToSelections(selectionInfoMatrix) { + return selectionInfoMatrix.map( + (selectionInfos) => selectionInfos.map( + ({ range: { start, end }, isForward }) => isForward ? new Selection(start, end) : new Selection(end, start) + ) + ); +} +async function callFunctionAndUpdateSelections(rangeUpdater, func, document, selectionMatrix) { + const selectionInfoMatrix = selectionsToSelectionInfos( + document, + selectionMatrix + ); + return await callFunctionAndUpdateSelectionInfos( + rangeUpdater, + func, + document, + selectionInfoMatrix + ); +} +async function callFunctionAndUpdateRanges(rangeUpdater, func, document, rangeMatrix) { + const selectionInfoMatrix = rangesToSelectionInfos(document, rangeMatrix); + return await callFunctionAndUpdateSelectionInfos( + rangeUpdater, + func, + document, + selectionInfoMatrix + ); +} +async function callFunctionAndUpdateSelectionInfos(rangeUpdater, func, document, selectionInfoMatrix) { + const unsubscribe = rangeUpdater.registerRangeInfoList( + document, + (0, import_lodash35.flatten)(selectionInfoMatrix) + ); + await func(); + unsubscribe(); + return selectionInfosToSelections(selectionInfoMatrix); +} +function callFunctionAndUpdateSelectionsWithBehavior(rangeUpdater, func, document, originalSelections) { + return callFunctionAndUpdateSelectionInfos( + rangeUpdater, + func, + document, + originalSelections.map( + (selectionsWithBehavior) => selectionsWithBehavior.selections.map( + (selection) => getSelectionInfo( + document, + selection, + selectionsWithBehavior.rangeBehavior ?? 1 /* closedClosed */ + ) + ) + ) + ); +} +async function performEditsAndUpdateSelections(rangeUpdater, editor, edits, originalSelections) { + const document = editor.document; + const selectionInfoMatrix = selectionsToSelectionInfos( + document, + originalSelections + ); + return performEditsAndUpdateFullSelectionInfos( + rangeUpdater, + editor, + edits, + selectionInfoMatrix + ); +} +function performEditsAndUpdateSelectionsWithBehavior(rangeUpdater, editor, edits, originalSelections) { + return performEditsAndUpdateFullSelectionInfos( + rangeUpdater, + editor, + edits, + originalSelections.map( + (selectionsWithBehavior) => selectionsWithBehavior.selections.map( + (selection) => getSelectionInfo( + editor.document, + selection, + selectionsWithBehavior.rangeBehavior ?? 1 /* closedClosed */ + ) + ) + ) + ); +} +async function performEditsAndUpdateRanges(rangeUpdater, editor, edits, originalRanges) { + const document = editor.document; + const selectionInfoMatrix = rangesToSelectionInfos(document, originalRanges); + return performEditsAndUpdateFullSelectionInfos( + rangeUpdater, + editor, + edits, + selectionInfoMatrix + ); +} +async function performEditsAndUpdateFullSelectionInfos(rangeUpdater, editor, edits, originalSelectionInfos) { + const func = async () => { + const wereEditsApplied = await performDocumentEdits( + rangeUpdater, + editor, + edits + ); + if (!wereEditsApplied) { + throw new Error("Could not apply edits"); + } + }; + return await callFunctionAndUpdateSelectionInfos( + rangeUpdater, + func, + editor.document, + originalSelectionInfos + ); +} + +// ../cursorless-engine/src/util/targetUtils.ts +var import_lodash36 = __toESM(require_lodash(), 1); +function ensureSingleEditor2(targets) { + if (targets.length === 0) { + throw new Error("Require at least one target with this action"); + } + const editors = targets.map((target) => target.editor); + if (new Set(editors).size > 1) { + throw new Error("Can only have one editor with this action"); + } + return editors[0]; +} +function ensureSingleTarget(targets) { + if (targets.length !== 1) { + throw new Error("Can only have one target with this action"); + } + return targets[0]; +} +async function runForEachEditor(targets, getEditor, func) { + return Promise.all( + groupForEachEditor(targets, getEditor).map( + ([editor, editorTargets]) => func(editor, editorTargets) + ) + ); +} +async function runOnTargetsForEachEditor(targets, func) { + return runForEachEditor(targets, (target) => target.editor, func); +} +async function runOnTargetsForEachEditorSequentially(targets, func) { + const editorGroups = groupForEachEditor(targets, (target) => target.editor); + const result = []; + for (const [editor, targets2] of editorGroups) { + result.push(await func(editor, targets2)); + } + return result; +} +function groupTargetsForEachEditor(targets) { + return groupForEachEditor(targets, (target) => target.editor); +} +function groupForEachEditor(targets, getEditor) { + const getDocumentUri = (target) => getEditor(target).document.uri; + const editorMap = groupBy(targets, getDocumentUri); + return Array.from(editorMap.values(), (editorTargets) => { + const editor = getEditor(editorTargets[0]); + return [editor, editorTargets]; + }); +} +function getContentRange2(target) { + return target.contentRange; +} +function createThatMark(targets, ranges) { + const thatMark = ranges != null ? (0, import_lodash36.zip)(targets, ranges).map(([target, range4]) => ({ + editor: target.editor, + selection: target?.isReversed ? new Selection(range4.end, range4.start) : new Selection(range4.start, range4.end) + })) : targets.map((target) => ({ + editor: target.editor, + selection: target.contentSelection + })); + return thatMark; +} +function toGeneralizedRange(target) { + const range4 = target.contentRange; + return target.isLine ? toLineRange(range4) : toCharacterRange(range4); +} +function flashTargets(ide2, targets, style, getRange = getContentRange2) { + return ide2.flashRanges( + targets.map((target) => { + const range4 = getRange(target); + if (range4 == null) { + return null; + } + return { + editor: target.editor, + range: target.isLine ? toLineRange(range4) : toCharacterRange(range4), + style + }; + }).filter((flash) => flash != null) + ); +} + +// ../cursorless-engine/src/actions/BreakLine.ts +var BreakLine = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + } + async run(targets) { + await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */); + const thatSelections = (0, import_lodash37.flatten)( + await runOnTargetsForEachEditor(targets, async (editor, targets2) => { + const contentRanges = targets2.map(({ contentRange }) => contentRange); + const edits = getEdits(editor, contentRanges); + const [updatedRanges] = await performEditsAndUpdateRanges( + this.rangeUpdater, + ide().getEditableTextEditor(editor), + edits, + [contentRanges] + ); + return (0, import_lodash37.zip)(targets2, updatedRanges).map(([target, range4]) => ({ + editor: target.editor, + selection: range4.toSelection(target.isReversed) + })); + }) + ); + return { thatSelections }; + } +}; +function getEdits(editor, contentRanges) { + const { document } = editor; + const edits = []; + for (const range4 of contentRanges) { + const position = range4.start; + const line = document.lineAt(position); + const indentation = line.text.slice( + 0, + line.firstNonWhitespaceCharacterIndex + ); + const characterTrailingWhitespace = line.text.slice(0, position.character).search(/\s+$/); + const replacementRange = characterTrailingWhitespace > -1 ? new Range( + new Position(line.lineNumber, characterTrailingWhitespace), + position + ) : position.toEmptyRange(); + edits.push({ + range: replacementRange, + text: "\n" + indentation, + isReplace: !replacementRange.isEmpty + }); + } + return edits; +} + +// ../cursorless-engine/src/actions/BringMoveSwap.ts +var import_lodash38 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/util/setSelectionsAndFocusEditor.ts +async function setSelectionsAndFocusEditor(editor, selections, revealRange = true) { + await setSelectionsWithoutFocusingEditor(editor, selections); + if (revealRange) { + await editor.revealRange(editor.selections[0]); + } + await editor.focus(); +} +async function setSelectionsWithoutFocusingEditor(editor, selections) { + await editor.setSelections( + uniqWithHash( + selections, + (a, b) => a.isEqual(b), + (s) => s.concise() + ) + ); +} + +// ../cursorless-engine/src/util/unifyRanges.ts +function unifyRemovalTargets(targets) { + if (targets.length < 2) { + return targets; + } + return groupTargetsForEachEditor(targets).flatMap(([_editor, targets2]) => { + if (targets2.length < 2) { + return targets2; + } + let results = [...targets2]; + results.sort( + (a, b) => a.contentRange.start.compareTo(b.contentRange.start) + ); + let run = true; + while (run) { + [results, run] = unifyTargetsOnePass(results); + } + return results; + }); +} +function unifyTargetsOnePass(targets) { + if (targets.length < 2) { + return [targets, false]; + } + const results = []; + let currentGroup = []; + targets.forEach((target) => { + if (currentGroup.length && !intersects(currentGroup[currentGroup.length - 1], target)) { + results.push(mergeTargets(currentGroup)); + currentGroup = [target]; + } else { + currentGroup.push(target); + } + }); + results.push(mergeTargets(currentGroup)); + return [results, results.length !== targets.length]; +} +function mergeTargets(targets) { + if (targets.length === 1) { + return targets[0]; + } + const first = targets[0]; + const last2 = targets[targets.length - 1]; + return targetsToContinuousTarget(first, last2); +} +function intersects(targetA, targetB) { + return !!targetA.getRemovalRange().intersection(targetB.getRemovalRange()); +} + +// ../cursorless-engine/src/actions/BringMoveSwap.ts +var BringMoveSwap = class { + constructor(rangeUpdater, type2) { + this.rangeUpdater = rangeUpdater; + this.type = type2; + } + async decorateTargets(sources, destinations) { + await Promise.all([ + flashTargets( + ide(), + sources, + this.decoration.sourceStyle, + this.decoration.getSourceRangeCallback + ), + flashTargets(ide(), destinations, this.decoration.destinationStyle) + ]); + } + getEditsBringMove(sources, destinations) { + const usedSources = []; + const results = []; + const shouldJoinSources = sources.length !== destinations.length && destinations.length === 1; + sources.forEach((source, i) => { + let destination = destinations[i]; + if ((source == null || destination == null) && !shouldJoinSources) { + throw new Error("Targets must have same number of args"); + } + if (destination != null) { + let text; + if (shouldJoinSources) { + text = sources.map((source2, i2) => { + const text2 = source2.contentText; + const delimiter = (destination.isRaw ? null : destination.insertionDelimiter) ?? (source2.isRaw ? null : source2.insertionDelimiter); + return i2 > 0 && delimiter != null ? delimiter + text2 : text2; + }).join(""); + } else { + text = source.contentText; + } + results.push({ + edit: destination.constructChangeEdit(text), + editor: destination.editor, + originalTarget: destination.target, + isSource: false + }); + } else { + destination = destinations[0]; + } + if (!usedSources.includes(source)) { + usedSources.push(source); + if (this.type === "bring") { + results.push({ + edit: source.toDestination("to").constructChangeEdit(destination.target.contentText), + editor: source.editor, + originalTarget: source, + isSource: true + }); + } + } + }); + if (this.type === "move") { + unifyRemovalTargets(usedSources).forEach((source) => { + results.push({ + edit: source.constructRemovalEdit(), + editor: source.editor, + originalTarget: source, + isSource: true + }); + }); + } + return results; + } + async performEditsAndComputeThatMark(edits) { + return (0, import_lodash38.flatten)( + await runForEachEditor( + edits, + (edit) => edit.editor, + async (editor, edits2) => { + const filteredEdits = this.type !== "bring" ? edits2 : edits2.filter(({ isSource }) => !isSource); + const sourceEdits = this.type === "swap" ? [] : edits2.filter(({ isSource }) => isSource); + const destinationEdits = this.type === "swap" ? edits2 : edits2.filter(({ isSource }) => !isSource); + const sourceEditSelectionInfos = sourceEdits.map( + ({ edit: { range: range4 }, originalTarget }) => getSelectionInfo( + editor.document, + range4.toSelection(originalTarget.isReversed), + 1 /* closedClosed */ + ) + ); + const destinationEditSelectionInfos = destinationEdits.map( + ({ edit: { range: range4 }, originalTarget }) => getSelectionInfo( + editor.document, + range4.toSelection(originalTarget.isReversed), + 0 /* openOpen */ + ) + ); + const cursorSelectionInfos = editor.selections.map( + (selection) => getSelectionInfo( + editor.document, + selection, + 1 /* closedClosed */ + ) + ); + const editableEditor = ide().getEditableTextEditor(editor); + const [ + updatedSourceEditSelections, + updatedDestinationEditSelections, + cursorSelections + ] = await performEditsAndUpdateFullSelectionInfos( + this.rangeUpdater, + editableEditor, + filteredEdits.map(({ edit }) => edit), + [ + sourceEditSelectionInfos, + destinationEditSelectionInfos, + cursorSelectionInfos + ] + ); + await setSelectionsWithoutFocusingEditor( + editableEditor, + cursorSelections + ); + const marks2 = [ + ...this.getMarks(sourceEdits, updatedSourceEditSelections), + ...this.getMarks( + destinationEdits, + updatedDestinationEditSelections + ) + ]; + marks2.sort( + (a, b) => edits2.findIndex((e) => e.originalTarget === a.target) - edits2.findIndex((e) => e.originalTarget === b.target) + ); + return marks2; + } + ) + ); + } + getMarks(edits, selections) { + return edits.map((edit, index) => { + const selection = selections[index]; + const range4 = edit.edit.updateRange(selection); + const target = edit.originalTarget; + return { + editor: edit.editor, + selection: range4.toSelection(target.isReversed), + isSource: edit.isSource, + target + }; + }); + } + async decorateThatMark(thatMark) { + const getRange = (target) => thatMark.find((t) => t.target === target).selection; + return Promise.all([ + flashTargets( + ide(), + thatMark.filter(({ isSource }) => isSource).map(({ target }) => target), + this.decoration.sourceStyle, + getRange + ), + flashTargets( + ide(), + thatMark.filter(({ isSource }) => !isSource).map(({ target }) => target), + this.decoration.destinationStyle, + getRange + ) + ]); + } + calculateMarksBringMove(markEntries) { + return { + thatMark: markEntries.filter(({ isSource }) => !isSource), + sourceMark: markEntries.filter(({ isSource }) => isSource) + }; + } +}; +function broadcastSource(sources, destinations) { + if (sources.length === 1) { + return Array(destinations.length).fill(sources[0]); + } + return sources; +} +var Bring = class extends BringMoveSwap { + constructor(rangeUpdater) { + super(rangeUpdater, "bring"); + this.decoration = { + sourceStyle: "referenced" /* referenced */, + destinationStyle: "pendingModification0" /* pendingModification0 */, + getSourceRangeCallback: getContentRange2 + }; + this.run = this.run.bind(this); + } + async run(sources, destinations) { + sources = broadcastSource(sources, destinations); + await this.decorateTargets( + sources, + destinations.map((d) => d.target) + ); + const edits = this.getEditsBringMove(sources, destinations); + const markEntries = await this.performEditsAndComputeThatMark(edits); + const { thatMark, sourceMark } = this.calculateMarksBringMove(markEntries); + await this.decorateThatMark(thatMark); + return { thatSelections: thatMark, sourceSelections: sourceMark }; + } +}; +var Move = class extends BringMoveSwap { + constructor(rangeUpdater) { + super(rangeUpdater, "move"); + this.decoration = { + sourceStyle: "pendingDelete" /* pendingDelete */, + destinationStyle: "pendingModification0" /* pendingModification0 */, + getSourceRangeCallback: getRemovalHighlightRange + }; + this.run = this.run.bind(this); + } + async run(sources, destinations) { + sources = broadcastSource(sources, destinations); + await this.decorateTargets( + sources, + destinations.map((d) => d.target) + ); + const edits = this.getEditsBringMove(sources, destinations); + const markEntries = await this.performEditsAndComputeThatMark(edits); + const { thatMark, sourceMark } = this.calculateMarksBringMove(markEntries); + await this.decorateThatMark(thatMark); + return { thatSelections: thatMark, sourceSelections: sourceMark }; + } +}; +var Swap = class extends BringMoveSwap { + constructor(rangeUpdater) { + super(rangeUpdater, "swap"); + this.decoration = { + sourceStyle: "pendingModification1" /* pendingModification1 */, + destinationStyle: "pendingModification0" /* pendingModification0 */, + getSourceRangeCallback: getContentRange2 + }; + this.run = this.run.bind(this); + } + async run(targets1, targets2) { + await this.decorateTargets(targets1, targets2); + const edits = this.getEditsSwap(targets1, targets2); + const markEntries = await this.performEditsAndComputeThatMark(edits); + await this.decorateThatMark(markEntries); + return { thatSelections: markEntries, sourceSelections: [] }; + } + getEditsSwap(targets1, targets2) { + const results = []; + targets1.forEach((target1, i) => { + const target2 = targets2[i]; + if (target1 == null || target2 == null) { + throw new Error("Targets must have same number of args"); + } + results.push({ + edit: target2.toDestination("to").constructChangeEdit(target1.contentText), + editor: target2.editor, + originalTarget: target2, + isSource: false + }); + results.push({ + edit: target1.toDestination("to").constructChangeEdit(target2.contentText), + editor: target1.editor, + originalTarget: target1, + isSource: true + }); + }); + return results; + } +}; +function getRemovalHighlightRange(target) { + return target.getRemovalHighlightRange(); +} + +// ../cursorless-engine/src/actions/Call.ts +var Call = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(callees, args) { + ensureSingleTarget(callees); + const { returnValue: texts } = await this.actions.getText.run(callees, { + showDecorations: false + }); + const { thatSelections: thatMark } = await this.actions.wrapWithPairedDelimiter.run(args, texts[0] + "(", ")"); + return { thatSelections: thatMark }; + } +}; + +// ../cursorless-engine/src/actions/Clear.ts +var Clear = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(targets) { + const editor = ensureSingleEditor2(targets); + const plainTargets = targets.map( + (target) => new PlainTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange: target.contentRange + }) + ); + const { thatTargets } = await this.actions.remove.run(plainTargets); + if (thatTargets != null) { + await setSelectionsAndFocusEditor( + ide().getEditableTextEditor(editor), + thatTargets.map(({ contentSelection }) => contentSelection) + ); + } + return { thatTargets }; + } +}; + +// ../cursorless-engine/src/actions/CutToClipboard.ts +var CutToClipboard = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(targets) { + await ide().flashRanges( + targets.flatMap((target) => { + const { editor, contentRange } = target; + const removalHighlightRange = target.getRemovalHighlightRange(); + if (target.isLine) { + return [ + { + editor, + range: toCharacterRange(contentRange), + style: "referenced" /* referenced */ + }, + { + editor, + range: toLineRange(removalHighlightRange), + style: "pendingDelete" /* pendingDelete */ + } + ]; + } + return [ + { + editor, + range: toCharacterRange(contentRange), + style: "referenced" /* referenced */ + }, + ...getOutsideOverflow(contentRange, removalHighlightRange).map( + (overflow) => ({ + editor, + range: toCharacterRange(overflow), + style: "pendingDelete" /* pendingDelete */ + }) + ) + ]; + }) + ); + const options2 = { showDecorations: false }; + await this.actions.copyToClipboard.run(targets, options2); + const { thatTargets } = await this.actions.remove.run(targets, options2); + return { thatTargets }; + } +}; +function getOutsideOverflow(insideRange, outsideRange) { + const { start: insideStart, end: insideEnd } = insideRange; + const { start: outsideStart, end: outsideEnd } = outsideRange; + const result = []; + if (outsideStart.isBefore(insideStart)) { + result.push(new Range(outsideStart, insideStart)); + } + if (outsideEnd.isAfter(insideEnd)) { + result.push(new Range(insideEnd, outsideEnd)); + } + return result; +} + +// ../cursorless-engine/src/actions/Deselect.ts +var Deselect = class { + constructor() { + this.run = this.run.bind(this); + } + async run(targets) { + await runOnTargetsForEachEditor(targets, async (editor, targets2) => { + const newSelections = editor.selections.filter( + (selection) => !targets2.some((target) => { + const intersection = target.contentRange.intersection(selection); + return intersection && (!intersection.isEmpty || selection.isEmpty); + }) + ); + if (newSelections.length === 0) { + throw new SelectionRequiredError(); + } + await setSelectionsWithoutFocusingEditor( + ide().getEditableTextEditor(editor), + newSelections + ); + }); + return { + thatTargets: targets + }; + } +}; +var SelectionRequiredError = class extends Error { + constructor() { + super("Can't deselect every selection. At least one is required"); + this.name = "SelectionRequiredError"; + } +}; + +// ../cursorless-engine/src/actions/EditNew/runEditTargets.ts +var import_lodash39 = __toESM(require_lodash(), 1); +async function runEditTargets(rangeUpdater, editor, state) { + const destinations = state.destinations.map((destination, index) => { + const actionType = destination.getEditNewActionType(); + if (actionType === "edit") { + return { + destination, + index + }; + } + }).filter((destination) => !!destination); + if (destinations.length === 0) { + return state; + } + const edits = destinations.map( + (destination) => destination.destination.constructChangeEdit("") + ); + const thatSelections = { + selections: state.thatRanges.map((r) => r.toSelection(false)) + }; + const cursorInfos = state.cursorRanges.map((range4, index) => ({ range: range4, index })).filter(({ range: range4 }) => range4 != null); + const cursorIndices = cursorInfos.map(({ index }) => index); + const cursorSelections = { + selections: cursorInfos.map(({ range: range4 }) => range4.toSelection(false)) + }; + const editSelections = { + selections: edits.map((edit) => edit.range.toSelection(false)), + rangeBehavior: 0 /* openOpen */ + }; + const [ + updatedThatSelections, + updatedCursorSelections, + updatedEditSelections + ] = await performEditsAndUpdateSelectionsWithBehavior( + rangeUpdater, + editor, + edits, + [thatSelections, cursorSelections, editSelections] + ); + const updatedCursorRanges = [...state.cursorRanges]; + (0, import_lodash39.zip)(cursorIndices, updatedCursorSelections).forEach(([index, selection]) => { + updatedCursorRanges[index] = selection; + }); + destinations.forEach((delimiterTarget, index) => { + const edit = edits[index]; + const range4 = edit.updateRange(updatedEditSelections[index]); + updatedCursorRanges[delimiterTarget.index] = range4; + }); + return { + destinations: state.destinations, + thatRanges: updatedThatSelections, + cursorRanges: updatedCursorRanges + }; +} + +// ../cursorless-engine/src/actions/EditNew/runInsertLineAfterTargets.ts +async function runInsertLineAfterTargets(rangeUpdater, editor, state) { + const destinations = state.destinations.map((destination, index) => { + const actionType = destination.getEditNewActionType(); + if (actionType === "insertLineAfter") { + return { + destination, + index + }; + } + }).filter((destination) => !!destination); + if (destinations.length === 0) { + return state; + } + const contentRanges = destinations.map( + ({ destination }) => destination.contentRange + ); + const [updatedTargetRanges, updatedThatRanges] = await callFunctionAndUpdateRanges( + rangeUpdater, + () => editor.insertLineAfter(contentRanges), + editor.document, + [ + state.destinations.map(({ contentRange }) => contentRange), + state.thatRanges + ] + ); + const cursorRanges = [...state.cursorRanges]; + destinations.forEach((commandTarget, index) => { + cursorRanges[commandTarget.index] = editor.selections[index]; + }); + return { + destinations: state.destinations.map( + (destination, index) => destination.withTarget( + destination.target.withContentRange(updatedTargetRanges[index]) + ) + ), + thatRanges: updatedThatRanges, + cursorRanges + }; +} + +// ../cursorless-engine/src/actions/EditNew/runNotebookCellTargets.ts +async function runEditNewNotebookCellTargets(actions2, destinations) { + const destination = ensureSingleTarget(destinations); + const editor = ide().getEditableTextEditor(destination.editor); + const isAbove = destination.insertionMode === "before"; + if (destination.insertionMode === "to") { + throw Error( + `Unsupported insertion mode '${destination.insertionMode}' for notebookcapell` + ); + } + await actions2.setSelection.run([destination.target]); + let modifyThatMark = (selection) => selection; + if (isAbove) { + modifyThatMark = await editor.editNewNotebookCellAbove(); + } else { + await editor.editNewNotebookCellBelow(); + } + const thatMark = createThatMark([destination.target.thatTarget]); + thatMark[0].selection = modifyThatMark(thatMark[0].selection); + return { thatSelections: thatMark }; +} + +// ../cursorless-engine/src/actions/EditNew/EditNew.ts +var EditNew = class { + constructor(rangeUpdater, actions2) { + this.rangeUpdater = rangeUpdater; + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(destinations) { + if (destinations.some(({ target }) => target.isNotebookCell)) { + return runEditNewNotebookCellTargets(this.actions, destinations); + } + const editableEditor = ide().getEditableTextEditor( + ensureSingleEditor2(destinations) + ); + let state = { + destinations, + thatRanges: destinations.map( + ({ target }) => target.thatTarget.contentRange + ), + cursorRanges: new Array(destinations.length).fill( + void 0 + ) + }; + state = await runInsertLineAfterTargets( + this.rangeUpdater, + editableEditor, + state + ); + state = await runEditTargets(this.rangeUpdater, editableEditor, state); + const newSelections = state.destinations.map( + (destination, index) => state.cursorRanges[index].toSelection(destination.target.isReversed) + ); + await setSelectionsAndFocusEditor(editableEditor, newSelections); + return { + thatSelections: createThatMark( + state.destinations.map((d) => d.target), + state.thatRanges + ) + }; + } +}; + +// ../cursorless-engine/src/actions/EditNewLineAction.ts +var EditNewLineAction = class { + constructor(actions2, modifierStageFactory) { + this.actions = actions2; + this.modifierStageFactory = modifierStageFactory; + this.run = this.run.bind(this); + } + getFinalStages() { + return [this.modifierStageFactory.create(containingLineIfUntypedModifier)]; + } + run(targets) { + return this.actions.editNew.run( + targets.map((target) => target.toDestination(this.insertionMode)) + ); + } +}; +var EditNewBefore = class extends EditNewLineAction { + constructor() { + super(...arguments); + this.insertionMode = "before"; + } +}; +var EditNewAfter = class extends EditNewLineAction { + constructor() { + super(...arguments); + this.insertionMode = "after"; + } +}; + +// ../cursorless-engine/src/actions/CallbackAction.ts +var import_lodash40 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts +var selectionToStoredTarget = (selection) => new UntypedTarget({ + editor: selection.editor, + isReversed: selection.selection.isReversed, + contentRange: selection.selection, + hasExplicitRange: true +}); + +// ../cursorless-engine/src/actions/CallbackAction.ts +var CallbackAction = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + } + async run(targets, options2) { + if (options2.showDecorations) { + await flashTargets(ide(), targets, "referenced" /* referenced */); + } + if (options2.ensureSingleEditor) { + ensureSingleEditor2(targets); + } + if (options2.ensureSingleTarget) { + ensureSingleTarget(targets); + } + const originalEditor = ide().activeEditableTextEditor; + const runOnTargets = options2.setSelection ? runOnTargetsForEachEditorSequentially : runOnTargetsForEachEditor; + const thatTargets = (0, import_lodash40.flatten)( + await runOnTargets( + targets, + (editor, targets2) => this.runForEditor(options2, editor, targets2) + ) + ); + if (options2.setSelection && options2.restoreSelection && originalEditor != null && !originalEditor.isActive) { + await originalEditor.focus(); + } + return { thatTargets }; + } + async runForEditor(options2, editor, targets) { + const editableEditor = ide().getEditableTextEditor(editor); + const originalSelections = editor.selections; + const originalEditorVersion = editor.document.version; + const targetSelections = targets.map((target) => target.contentSelection); + if (options2.setSelection) { + await setSelectionsAndFocusEditor( + editableEditor, + targetSelections, + false + ); + } + const [updatedOriginalSelections, updatedTargetSelections] = await callFunctionAndUpdateSelections( + this.rangeUpdater, + () => options2.callback(editableEditor, targets), + editor.document, + [originalSelections, targetSelections] + ); + if (options2.setSelection && options2.restoreSelection) { + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedOriginalSelections + ); + } + return editor.document.version === originalEditorVersion ? targets : updatedTargetSelections.map( + (selection) => selectionToStoredTarget({ + editor, + selection + }) + ); + } +}; + +// ../cursorless-engine/src/actions/ExecuteCommand.ts +var ExecuteCommand = class { + constructor(rangeUpdater) { + this.callbackAction = new CallbackAction(rangeUpdater); + this.run = this.run.bind(this); + } + async run(targets, commandId, { + commandArgs, + ensureSingleEditor: ensureSingleEditor3, + ensureSingleTarget: ensureSingleTarget2, + restoreSelection, + showDecorations + } = {}) { + const args = commandArgs ?? []; + return this.callbackAction.run(targets, { + callback: () => ide().executeCommand(commandId, ...args), + setSelection: true, + ensureSingleEditor: ensureSingleEditor3 ?? false, + ensureSingleTarget: ensureSingleTarget2 ?? false, + restoreSelection: restoreSelection ?? true, + showDecorations: showDecorations ?? true + }); + } +}; + +// ../cursorless-engine/src/actions/Find.ts +var Find = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(targets) { + ensureSingleTarget(targets); + const { returnValue, thatTargets } = await this.actions.getText.run(targets); + const [text] = returnValue; + let query; + if (text.length > 200) { + query = text.substring(0, 200); + showWarning( + ide().messages, + "truncatedSearchText", + "Search text is longer than 200 characters; truncating" + ); + } else { + query = text; + } + await this.find(query); + return { thatTargets }; + } +}; +var FindInDocument = class extends Find { + find(query) { + return ide().findInDocument(query); + } +}; +var FindInWorkspace = class extends Find { + find(query) { + return ide().findInWorkspace(query); + } +}; + +// ../cursorless-engine/src/actions/FollowLink.ts +var FollowLink = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(targets) { + const target = ensureSingleTarget(targets); + await flashTargets(ide(), targets, "referenced" /* referenced */); + const openedLink = await ide().getEditableTextEditor(target.editor).openLink(target.contentRange); + if (!openedLink) { + await this.actions.executeCommand.run( + targets, + "editor.action.revealDefinition", + { restoreSelection: false } + ); + } + return { + thatSelections: createThatMark(targets) + }; + } +}; + +// ../cursorless-engine/src/actions/GenerateSnippet/constructSnippetBody.ts +var import_lodash41 = __toESM(require_lodash(), 1); +function constructSnippetBody(text, linePrefix) { + const outputLines = []; + let currentTabCount = 0; + let currentIndentationString = null; + const [firstLine, ...remainingLines] = text.split(/\r?\n/); + const lines = [ + { + text: linePrefix + firstLine, + startIndex: linePrefix.length + }, + ...remainingLines.map((line) => ({ text: line, startIndex: 0 })) + ]; + lines.forEach(({ text: text2, startIndex }) => { + const newIndentationString = text2.match(/^\s*/)?.[0] ?? ""; + const firstNonWhitespaceCharacterIndex = newIndentationString.length; + if (currentIndentationString != null) { + if (newIndentationString.length > currentIndentationString.length) { + currentTabCount++; + } else if (newIndentationString.length < currentIndentationString.length) { + currentTabCount--; + } + } + currentIndentationString = newIndentationString; + const lineContentStart = Math.max( + firstNonWhitespaceCharacterIndex, + startIndex + ); + const snippetIndentationString = (0, import_lodash41.repeat)(" ", currentTabCount); + const lineContent = text2.slice(lineContentStart); + outputLines.push(snippetIndentationString + lineContent); + }); + return outputLines; +} + +// ../cursorless-engine/src/actions/GenerateSnippet/editText.ts +var import_lodash42 = __toESM(require_lodash(), 1); +function editText(text, edits) { + const sortedEdits = (0, import_lodash42.sortBy)(edits, (edit) => edit.offsets.start); + let output = ""; + let currentOffset = 0; + for (const edit of sortedEdits) { + output += text.slice(currentOffset, edit.offsets.start) + edit.text; + currentOffset = edit.offsets.end; + } + output += text.slice(currentOffset); + return output; +} + +// ../cursorless-engine/src/actions/GenerateSnippet/openNewSnippetFile.ts +var import_promises4 = require("fs/promises"); +var import_path4 = require("path"); +async function openNewSnippetFile(snippetName) { + const userSnippetsDir = ide().configuration.getOwnConfiguration( + "experimental.snippetsDir" + ); + if (!userSnippetsDir) { + throw new Error("User snippets dir not configured."); + } + const path8 = (0, import_path4.join)(userSnippetsDir, `${snippetName}.cursorless-snippets`); + await touch(path8); + await ide().openTextDocument(path8); +} +async function touch(path8) { + const file = await (0, import_promises4.open)(path8, "w"); + await file.close(); +} + +// ../cursorless-engine/src/actions/GenerateSnippet/Substituter.ts +var Substituter = class { + constructor() { + this.substitutions = []; + } + /** + * Get a random id that can be put into your text body that will then be + * replaced by {@link to} when you call {@link makeSubstitutions}. + * @param to The string that you'd like to end up in the final document after + * replacements + * @param isQuoted Use this variable to indicate that in the final text the + * variable will end up quoted. This occurs if you use the replacement string + * as a stand alone string in a json document and then you serialize it + * @returns A unique random id that can be put into the document that will + * then be substituted later + */ + addSubstitution(to, isQuoted = false) { + const randomId = makeid(10); + this.substitutions.push({ + to, + randomId, + isQuoted + }); + return randomId; + } + /** + * Performs substitutions on {@link text}, replacing the random ids generated + * by {@link addSubstitution} with the values passed in for `to`. + * @param text The text to perform substitutions on + * @returns The text with variable substituted for the original values you + * desired + */ + makeSubstitutions(text) { + this.substitutions.forEach(({ to, randomId, isQuoted }) => { + const from = isQuoted ? `"${randomId}"` : randomId; + text = text.split(from).join(to); + }); + return text; + } +}; +function makeid(length) { + let result = ""; + const characters2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const charactersLength = characters2.length; + for (let i = 0; i < length; i++) { + result += characters2.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} + +// ../cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts +var GenerateSnippet = class { + constructor() { + this.run = this.run.bind(this); + } + async run(targets, snippetName) { + const target = ensureSingleTarget(targets); + const editor = target.editor; + flashTargets(ide(), targets, "referenced" /* referenced */); + if (snippetName == null) { + snippetName = await ide().showInputBox({ + prompt: "Name of snippet", + placeHolder: "helloWorld" + }); + } + if (snippetName == null) { + return {}; + } + let currentPlaceholderIndex = 1; + const baseOffset = editor.document.offsetAt(target.contentRange.start); + const variables = editor.selections.filter((selection) => target.contentRange.contains(selection)).map((selection, index) => ({ + offsets: { + start: editor.document.offsetAt(selection.start) - baseOffset, + end: editor.document.offsetAt(selection.end) - baseOffset + }, + defaultName: `variable${index + 1}`, + placeholderIndex: currentPlaceholderIndex++ + })); + const substituter = new Substituter(); + const linePrefix = editor.document.getText( + new Range( + target.contentRange.start.with(void 0, 0), + target.contentRange.start + ) + ); + const originalText = editor.document.getText(target.contentRange); + const snippetBodyText = editText(originalText, [ + ...matchAll(originalText, /\$|\\/g, (match2) => ({ + offsets: { + start: match2.index, + end: match2.index + match2[0].length + }, + text: match2[0] === "\\" ? `\\${match2[0]}` : `\\\\${match2[0]}` + })), + ...variables.map(({ offsets, defaultName, placeholderIndex }) => ({ + offsets, + // Note that the reason we use the substituter here is primarily so + // that the `\` below doesn't get escaped upon conversion to json. + text: substituter.addSubstitution( + [ + // This `\$` will end up being a `$` in the final document. It + // indicates the start of a variable in the user snippet. We need + // the `\` so that the meta-snippet doesn't see it as one of its + // placeholders. + "\\$", + // The remaining text here is a placeholder in the meta-snippet + // that the user can use to name their snippet variable that will + // be in the user snippet. + "${", + placeholderIndex, + ":", + defaultName, + "}" + ].join("") + ) + })) + ]); + const snippetLines = constructSnippetBody(snippetBodyText, linePrefix); + const constructVariableDescriptionEntry = ({ + placeholderIndex + }) => { + const key = "$" + placeholderIndex; + const value = substituter.addSubstitution( + "{$" + currentPlaceholderIndex++ + "}", + true + ); + return [key, value]; + }; + const snippet2 = { + [snippetName]: { + definitions: [ + { + scope: { + langIds: [editor.document.languageId] + }, + body: snippetLines + } + ], + description: "$" + currentPlaceholderIndex++, + variables: variables.length === 0 ? void 0 : Object.fromEntries( + variables.map(constructVariableDescriptionEntry) + ) + } + }; + const snippetText = substituter.makeSubstitutions( + JSON.stringify(snippet2, null, 2) + ); + const editableEditor = ide().getEditableTextEditor(editor); + if (isTesting()) { + await editableEditor.setSelections([ + editor.document.range.toSelection(false) + ]); + } else { + await openNewSnippetFile(snippetName); + } + await editableEditor.insertSnippet(snippetText); + return { + thatSelections: targets.map(({ editor: editor2, contentSelection }) => ({ + editor: editor2, + selection: contentSelection + })) + }; + } +}; + +// ../cursorless-engine/src/actions/GetTargets.ts +var GetTargets = class { + constructor() { + this.run = this.run.bind(this); + } + async run(targets) { + return { + returnValue: targets.map(({ contentRange }) => ({ + contentRange + })), + thatTargets: targets + }; + } +}; + +// ../cursorless-engine/src/actions/GetText.ts +var GetText = class { + constructor() { + this.run = this.run.bind(this); + } + async run(targets, { + showDecorations = true, + ensureSingleTarget: doEnsureSingleTarget = false + } = {}) { + if (showDecorations) { + await flashTargets(ide(), targets, "referenced" /* referenced */); + } + if (doEnsureSingleTarget) { + ensureSingleTarget(targets); + } + return { + returnValue: targets.map((target) => target.contentText), + thatTargets: targets + }; + } +}; + +// ../cursorless-engine/src/actions/Highlight.ts +var Highlight = class { + constructor() { + this.run = this.run.bind(this); + } + async run(targets, highlightId) { + if (ide().capabilities.commands["highlight"] == null) { + throw Error(`The highlight action is not supported by your ide`); + } + if (targets.length === 0) { + await Promise.all( + ide().visibleTextEditors.map( + (editor) => ide().setHighlightRanges(highlightId, editor, []) + ) + ); + } else { + await runOnTargetsForEachEditor( + targets, + (editor, targets2) => ide().setHighlightRanges( + highlightId, + editor, + targets2.map(toGeneralizedRange) + ) + ); + } + return { + thatTargets: targets + }; + } +}; + +// ../cursorless-engine/src/actions/InsertCopy.ts +var import_lodash43 = __toESM(require_lodash(), 1); +var InsertCopy = class { + constructor(rangeUpdater, modifierStageFactory, isBefore) { + this.rangeUpdater = rangeUpdater; + this.modifierStageFactory = modifierStageFactory; + this.isBefore = isBefore; + this.getFinalStages = () => [ + this.modifierStageFactory.create(containingLineIfUntypedModifier) + ]; + this.run = this.run.bind(this); + this.runForEditor = this.runForEditor.bind(this); + } + async run(targets) { + const results = (0, import_lodash43.flatten)( + await runOnTargetsForEachEditor(targets, this.runForEditor) + ); + await ide().flashRanges( + results.flatMap( + (result) => result.thatMark.map((that) => ({ + editor: that.editor, + range: toCharacterRange(that.selection), + style: "justAdded" /* justAdded */ + })) + ) + ); + return { + sourceSelections: results.flatMap(({ sourceMark }) => sourceMark), + thatSelections: results.flatMap(({ thatMark }) => thatMark) + }; + } + async runForEditor(editor, targets) { + const position = this.isBefore ? "after" : "before"; + const edits = targets.flatMap( + (target) => target.toDestination(position).constructChangeEdit(target.contentText) + ); + const cursorSelections = { selections: editor.selections }; + const contentSelections = { + selections: targets.map(({ contentSelection }) => contentSelection) + }; + const editSelections = { + selections: edits.map( + ({ range: range4 }) => new Selection(range4.start, range4.end) + ), + rangeBehavior: 0 /* openOpen */ + }; + const editableEditor = ide().getEditableTextEditor(editor); + const [ + updatedCursorSelections, + updatedContentSelections, + updatedEditSelections + ] = await performEditsAndUpdateSelectionsWithBehavior( + this.rangeUpdater, + editableEditor, + edits, + [cursorSelections, contentSelections, editSelections] + ); + const insertionRanges = (0, import_lodash43.zip)(edits, updatedEditSelections).map( + ([edit, selection]) => edit.updateRange(selection) + ); + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedCursorSelections + ); + const primarySelection = editor.selections[0]; + if (updatedContentSelections.some( + (selection) => selection.intersection(primarySelection) != null + )) { + await editableEditor.revealRange(primarySelection); + } + return { + sourceMark: createThatMark(targets, insertionRanges), + thatMark: createThatMark(targets, updatedContentSelections) + }; + } +}; +var CopyContentBefore = class extends InsertCopy { + constructor(rangeUpdater, modifierStageFactory) { + super(rangeUpdater, modifierStageFactory, true); + } +}; +var CopyContentAfter = class extends InsertCopy { + constructor(rangeUpdater, modifierStageFactory) { + super(rangeUpdater, modifierStageFactory, false); + } +}; + +// ../cursorless-engine/src/actions/InsertEmptyLines.ts +var import_lodash44 = __toESM(require_lodash(), 1); +var InsertEmptyLines = class { + constructor(rangeUpdater, insertAbove, insertBelow) { + this.rangeUpdater = rangeUpdater; + this.insertAbove = insertAbove; + this.insertBelow = insertBelow; + this.run = this.run.bind(this); + } + getRanges(targets) { + let lines = targets.flatMap((target) => { + const lines2 = []; + if (this.insertAbove) { + lines2.push(target.contentRange.start.line); + } + if (this.insertBelow) { + lines2.push(target.contentRange.end.line + 1); + } + return lines2; + }); + lines = [...new Set(lines)]; + return lines.map((line) => new Range(line, 0, line, 0)); + } + getEdits(ranges) { + return ranges.map((range4) => ({ + range: range4, + text: "\n" + })); + } + async run(targets) { + const results = (0, import_lodash44.flatten)( + await runOnTargetsForEachEditor(targets, async (editor, targets2) => { + const ranges = this.getRanges(targets2); + const edits = this.getEdits(ranges); + const editableEditor = ide().getEditableTextEditor(editor); + const [updatedThatSelections, lineSelections, updatedCursorSelections] = await performEditsAndUpdateSelections( + this.rangeUpdater, + editableEditor, + edits, + [ + targets2.map((target) => target.thatTarget.contentSelection), + ranges.map((range4) => new Selection(range4.start, range4.end)), + editor.selections + ] + ); + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedCursorSelections + ); + return { + thatMark: updatedThatSelections.map((selection) => ({ + editor, + selection + })), + lineSelections: lineSelections.map((selection, index) => ({ + editor, + range: ranges[index].start.line < editor.document.lineCount - 1 ? new Range( + selection.start.translate(-1, void 0), + selection.end.translate(-1, void 0) + ) : selection + })) + }; + }) + ); + await ide().flashRanges( + results.flatMap( + (result) => result.lineSelections.map(({ editor, range: range4 }) => ({ + editor, + range: toLineRange(range4), + style: "justAdded" /* justAdded */ + })) + ) + ); + const thatMark = results.flatMap((result) => result.thatMark); + return { thatSelections: thatMark }; + } +}; +var InsertEmptyLinesAround = class extends InsertEmptyLines { + constructor(rangeUpdater) { + super(rangeUpdater, true, true); + } +}; +var InsertEmptyLineAbove = class extends InsertEmptyLines { + constructor(rangeUpdater) { + super(rangeUpdater, true, false); + } +}; +var InsertEmptyLineBelow = class extends InsertEmptyLines { + constructor(rangeUpdater) { + super(rangeUpdater, false, true); + } +}; + +// ../cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts +var Scanner = class _Scanner { + constructor() { + this.value = ""; + this.pos = 0; + } + static { + this._table = { + [36 /* DollarSign */]: 0 /* Dollar */, + [58 /* Colon */]: 1 /* Colon */, + [44 /* Comma */]: 2 /* Comma */, + [123 /* OpenCurlyBrace */]: 3 /* CurlyOpen */, + [125 /* CloseCurlyBrace */]: 4 /* CurlyClose */, + [92 /* Backslash */]: 5 /* Backslash */, + [47 /* Slash */]: 6 /* Forwardslash */, + [124 /* Pipe */]: 7 /* Pipe */, + [43 /* Plus */]: 11 /* Plus */, + [45 /* Dash */]: 12 /* Dash */, + [63 /* QuestionMark */]: 13 /* QuestionMark */ + }; + } + static isDigitCharacter(ch) { + return ch >= 48 /* Digit0 */ && ch <= 57 /* Digit9 */; + } + static isVariableCharacter(ch) { + return ch === 95 /* Underline */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 65 /* A */ && ch <= 90 /* Z */; + } + text(value) { + this.value = value; + this.pos = 0; + } + tokenText(token) { + return this.value.substr(token.pos, token.len); + } + next() { + if (this.pos >= this.value.length) { + return { type: 14 /* EOF */, pos: this.pos, len: 0 }; + } + let pos = this.pos; + let len = 0; + let ch = this.value.charCodeAt(pos); + let type2; + type2 = _Scanner._table[ch]; + if (typeof type2 === "number") { + this.pos += 1; + return { type: type2, pos, len: 1 }; + } + if (_Scanner.isDigitCharacter(ch)) { + type2 = 8 /* Int */; + do { + len += 1; + ch = this.value.charCodeAt(pos + len); + } while (_Scanner.isDigitCharacter(ch)); + this.pos += len; + return { type: type2, pos, len }; + } + if (_Scanner.isVariableCharacter(ch)) { + type2 = 9 /* VariableName */; + do { + ch = this.value.charCodeAt(pos + ++len); + } while (_Scanner.isVariableCharacter(ch) || _Scanner.isDigitCharacter(ch)); + this.pos += len; + return { type: type2, pos, len }; + } + type2 = 10 /* Format */; + do { + len += 1; + ch = this.value.charCodeAt(pos + len); + } while (!isNaN(ch) && typeof _Scanner._table[ch] === "undefined" && !_Scanner.isDigitCharacter(ch) && !_Scanner.isVariableCharacter(ch)); + this.pos += len; + return { type: type2, pos, len }; + } +}; +var Marker = class { + constructor() { + this._children = []; + } + appendChild(child) { + if (child instanceof Text && this._children[this._children.length - 1] instanceof Text) { + this._children[this._children.length - 1].value += child.value; + } else { + child.parent = this; + this._children.push(child); + } + return this; + } + replace(child, others) { + const { parent } = child; + const idx = parent.children.indexOf(child); + const newChildren = parent.children.slice(0); + newChildren.splice(idx, 1, ...others); + parent._children = newChildren; + (function _fixParent(children, parent2) { + for (const child2 of children) { + child2.parent = parent2; + _fixParent(child2.children, child2); + } + })(others, parent); + } + get children() { + return this._children; + } + get snippet() { + let candidate = this; + while (true) { + if (!candidate) { + return void 0; + } + if (candidate instanceof TextmateSnippet) { + return candidate; + } + candidate = candidate.parent; + } + } + toString() { + return this.children.reduce((prev, cur) => prev + cur.toString(), ""); + } + len() { + return 0; + } +}; +var Text = class _Text extends Marker { + constructor(value) { + super(); + this.value = value; + } + static escape(value) { + return value.replace(/\$|}|\\/g, "\\$&"); + } + toString() { + return this.value; + } + toTextmateString() { + return _Text.escape(this.value); + } + len() { + return this.value.length; + } + clone() { + return new _Text(this.value); + } +}; +var TransformableMarker = class extends Marker { +}; +var Placeholder = class _Placeholder extends TransformableMarker { + constructor(index) { + super(); + this.index = index; + } + static compareByIndex(a, b) { + if (a.index === b.index) { + return 0; + } else if (a.isFinalTabstop) { + return 1; + } else if (b.isFinalTabstop) { + return -1; + } else if (a.index < b.index) { + return -1; + } else if (a.index > b.index) { + return 1; + } else { + return 0; + } + } + get isFinalTabstop() { + return this.index === 0; + } + get choice() { + return this._children.length === 1 && this._children[0] instanceof Choice ? this._children[0] : void 0; + } + toTextmateString() { + let transformString = ""; + if (this.transform) { + transformString = this.transform.toTextmateString(); + } + if (this.children.length === 0 && !this.transform) { + return `$${this.index}`; + } else if (this.children.length === 0) { + return `\${${this.index}${transformString}}`; + } else if (this.choice) { + return `\${${this.index}|${this.choice.toTextmateString()}|${transformString}}`; + } else { + return `\${${this.index}:${this.children.map((child) => child.toTextmateString()).join("")}${transformString}}`; + } + } + clone() { + let ret = new _Placeholder(this.index); + if (this.transform) { + ret.transform = this.transform.clone(); + } + ret._children = this.children.map((child) => child.clone()); + return ret; + } +}; +var Choice = class _Choice extends Marker { + constructor() { + super(...arguments); + this.options = []; + } + appendChild(marker) { + if (marker instanceof Text) { + marker.parent = this; + this.options.push(marker); + } + return this; + } + toString() { + return this.options[0].value; + } + toTextmateString() { + return this.options.map((option) => option.value.replace(/\||,|\\/g, "\\$&")).join(","); + } + len() { + return this.options[0].len(); + } + clone() { + let ret = new _Choice(); + this.options.forEach(ret.appendChild, ret); + return ret; + } +}; +var Transform = class _Transform extends Marker { + constructor() { + super(...arguments); + this.regexp = new RegExp(""); + } + resolve(value) { + const _this = this; + let didMatch = false; + let ret = value.replace(this.regexp, function() { + didMatch = true; + return _this._replace(Array.prototype.slice.call(arguments, 0, -2)); + }); + if (!didMatch && this._children.some((child) => child instanceof FormatString && Boolean(child.elseValue))) { + ret = this._replace([]); + } + return ret; + } + _replace(groups) { + let ret = ""; + for (const marker of this._children) { + if (marker instanceof FormatString) { + let value = groups[marker.index] || ""; + value = marker.resolve(value); + ret += value; + } else { + ret += marker.toString(); + } + } + return ret; + } + toString() { + return ""; + } + toTextmateString() { + return `/${this.regexp.source}/${this.children.map((c) => c.toTextmateString())}/${(this.regexp.ignoreCase ? "i" : "") + (this.regexp.global ? "g" : "")}`; + } + clone() { + let ret = new _Transform(); + ret.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? "i" : "") + (this.regexp.global ? "g" : "")); + ret._children = this.children.map((child) => child.clone()); + return ret; + } +}; +var FormatString = class _FormatString extends Marker { + constructor(index, shorthandName, ifValue, elseValue) { + super(); + this.index = index; + this.shorthandName = shorthandName; + this.ifValue = ifValue; + this.elseValue = elseValue; + } + resolve(value) { + if (this.shorthandName === "upcase") { + return !value ? "" : value.toLocaleUpperCase(); + } else if (this.shorthandName === "downcase") { + return !value ? "" : value.toLocaleLowerCase(); + } else if (this.shorthandName === "capitalize") { + return !value ? "" : value[0].toLocaleUpperCase() + value.substr(1); + } else if (this.shorthandName === "pascalcase") { + return !value ? "" : this._toPascalCase(value); + } else if (this.shorthandName === "camelcase") { + return !value ? "" : this._toCamelCase(value); + } else if (Boolean(value) && typeof this.ifValue === "string") { + return this.ifValue; + } else if (!Boolean(value) && typeof this.elseValue === "string") { + return this.elseValue; + } else { + return value || ""; + } + } + _toPascalCase(value) { + const match2 = value.match(/[a-z0-9]+/gi); + if (!match2) { + return value; + } + return match2.map((word) => { + return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase(); + }).join(""); + } + _toCamelCase(value) { + const match2 = value.match(/[a-z0-9]+/gi); + if (!match2) { + return value; + } + return match2.map((word, index) => { + if (index === 0) { + return word.toLowerCase(); + } else { + return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase(); + } + }).join(""); + } + toTextmateString() { + let value = "${"; + value += this.index; + if (this.shorthandName) { + value += `:/${this.shorthandName}`; + } else if (this.ifValue && this.elseValue) { + value += `:?${this.ifValue}:${this.elseValue}`; + } else if (this.ifValue) { + value += `:+${this.ifValue}`; + } else if (this.elseValue) { + value += `:-${this.elseValue}`; + } + value += "}"; + return value; + } + clone() { + let ret = new _FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue); + return ret; + } +}; +var Variable = class _Variable extends TransformableMarker { + constructor(name) { + super(); + this.name = name; + } + resolve(resolver) { + let value = resolver.resolve(this); + if (this.transform) { + value = this.transform.resolve(value || ""); + } + if (value !== void 0) { + this._children = [new Text(value)]; + return true; + } + return false; + } + toTextmateString() { + let transformString = ""; + if (this.transform) { + transformString = this.transform.toTextmateString(); + } + if (this.children.length === 0) { + return `\${${this.name}${transformString}}`; + } else { + return `\${${this.name}:${this.children.map((child) => child.toTextmateString()).join("")}${transformString}}`; + } + } + clone() { + const ret = new _Variable(this.name); + if (this.transform) { + ret.transform = this.transform.clone(); + } + ret._children = this.children.map((child) => child.clone()); + return ret; + } +}; +function walk(marker, visitor) { + const stack = [...marker]; + while (stack.length > 0) { + const marker2 = stack.shift(); + const recurse = visitor(marker2); + if (!recurse) { + break; + } + stack.unshift(...marker2.children); + } +} +var TextmateSnippet = class _TextmateSnippet extends Marker { + get placeholderInfo() { + if (!this._placeholders) { + let all = []; + let last2; + this.walk(function(candidate) { + if (candidate instanceof Placeholder) { + all.push(candidate); + last2 = !last2 || last2.index < candidate.index ? candidate : last2; + } + return true; + }); + this._placeholders = { all, last: last2 }; + } + return this._placeholders; + } + get placeholders() { + const { all } = this.placeholderInfo; + return all; + } + offset(marker) { + let pos = 0; + let found = false; + this.walk((candidate) => { + if (candidate === marker) { + found = true; + return false; + } + pos += candidate.len(); + return true; + }); + if (!found) { + return -1; + } + return pos; + } + fullLen(marker) { + let ret = 0; + walk([marker], (marker2) => { + ret += marker2.len(); + return true; + }); + return ret; + } + enclosingPlaceholders(placeholder) { + let ret = []; + let { parent } = placeholder; + while (parent) { + if (parent instanceof Placeholder) { + ret.push(parent); + } + parent = parent.parent; + } + return ret; + } + resolveVariables(resolver) { + this.walk((candidate) => { + if (candidate instanceof Variable) { + if (candidate.resolve(resolver)) { + this._placeholders = void 0; + } + } + return true; + }); + return this; + } + appendChild(child) { + this._placeholders = void 0; + return super.appendChild(child); + } + replace(child, others) { + this._placeholders = void 0; + return super.replace(child, others); + } + toTextmateString() { + return this.children.reduce((prev, cur) => prev + cur.toTextmateString(), ""); + } + clone() { + let ret = new _TextmateSnippet(); + this._children = this.children.map((child) => child.clone()); + return ret; + } + walk(visitor) { + walk(this.children, visitor); + } +}; +var SnippetParser = class { + constructor() { + this._scanner = new Scanner(); + this._token = { type: 14 /* EOF */, pos: 0, len: 0 }; + } + static escape(value) { + return value.replace(/\$|}|\\/g, "\\$&"); + } + static guessNeedsClipboard(template) { + return /\${?CLIPBOARD/.test(template); + } + text(value) { + return this.parse(value).toString(); + } + parse(value, insertFinalTabstop, enforceFinalTabstop) { + this._scanner.text(value); + this._token = this._scanner.next(); + const snippet2 = new TextmateSnippet(); + while (this._parse(snippet2)) { + } + const placeholderDefaultValues = /* @__PURE__ */ new Map(); + const incompletePlaceholders = []; + let placeholderCount = 0; + snippet2.walk((marker) => { + if (marker instanceof Placeholder) { + placeholderCount += 1; + if (marker.isFinalTabstop) { + placeholderDefaultValues.set(0, void 0); + } else if (!placeholderDefaultValues.has(marker.index) && marker.children.length > 0) { + placeholderDefaultValues.set(marker.index, marker.children); + } else { + incompletePlaceholders.push(marker); + } + } + return true; + }); + for (const placeholder of incompletePlaceholders) { + const defaultValues = placeholderDefaultValues.get(placeholder.index); + if (defaultValues) { + const clone = new Placeholder(placeholder.index); + clone.transform = placeholder.transform; + for (const child of defaultValues) { + clone.appendChild(child.clone()); + } + snippet2.replace(placeholder, [clone]); + } + } + if (!enforceFinalTabstop) { + enforceFinalTabstop = placeholderCount > 0 && insertFinalTabstop; + } + if (!placeholderDefaultValues.has(0) && enforceFinalTabstop) { + snippet2.appendChild(new Placeholder(0)); + } + return snippet2; + } + _accept(type2, value) { + if (type2 === void 0 || this._token.type === type2) { + let ret = !value ? true : this._scanner.tokenText(this._token); + this._token = this._scanner.next(); + return ret; + } + return false; + } + _backTo(token) { + this._scanner.pos = token.pos + token.len; + this._token = token; + return false; + } + _until(type2) { + const start = this._token; + while (this._token.type !== type2) { + if (this._token.type === 14 /* EOF */) { + return false; + } else if (this._token.type === 5 /* Backslash */) { + const nextToken = this._scanner.next(); + if (nextToken.type !== 0 /* Dollar */ && nextToken.type !== 4 /* CurlyClose */ && nextToken.type !== 5 /* Backslash */) { + return false; + } + } + this._token = this._scanner.next(); + } + const value = this._scanner.value.substring(start.pos, this._token.pos).replace(/\\(\$|}|\\)/g, "$1"); + this._token = this._scanner.next(); + return value; + } + _parse(marker) { + return this._parseEscaped(marker) || this._parseTabstopOrVariableName(marker) || this._parseComplexPlaceholder(marker) || this._parseComplexVariable(marker) || this._parseAnything(marker); + } + // \$, \\, \} -> just text + _parseEscaped(marker) { + let value; + if (value = this._accept(5 /* Backslash */, true)) { + value = this._accept(0 /* Dollar */, true) || this._accept(4 /* CurlyClose */, true) || this._accept(5 /* Backslash */, true) || value; + marker.appendChild(new Text(value)); + return true; + } + return false; + } + // $foo -> variable, $1 -> tabstop + _parseTabstopOrVariableName(parent) { + let value; + const token = this._token; + const match2 = this._accept(0 /* Dollar */) && (value = this._accept(9 /* VariableName */, true) || this._accept(8 /* Int */, true)); + if (!match2) { + return this._backTo(token); + } + parent.appendChild( + /^\d+$/.test(value) ? new Placeholder(Number(value)) : new Variable(value) + ); + return true; + } + // ${1:}, ${1} -> placeholder + _parseComplexPlaceholder(parent) { + let index; + const token = this._token; + const match2 = this._accept(0 /* Dollar */) && this._accept(3 /* CurlyOpen */) && (index = this._accept(8 /* Int */, true)); + if (!match2) { + return this._backTo(token); + } + const placeholder = new Placeholder(Number(index)); + if (this._accept(1 /* Colon */)) { + while (true) { + if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(placeholder); + return true; + } + if (this._parse(placeholder)) { + continue; + } + parent.appendChild(new Text("${" + index + ":")); + placeholder.children.forEach(parent.appendChild, parent); + return true; + } + } else if (placeholder.index > 0 && this._accept(7 /* Pipe */)) { + const choice = new Choice(); + while (true) { + if (this._parseChoiceElement(choice)) { + if (this._accept(2 /* Comma */)) { + continue; + } + if (this._accept(7 /* Pipe */)) { + placeholder.appendChild(choice); + if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(placeholder); + return true; + } + } + } + this._backTo(token); + return false; + } + } else if (this._accept(6 /* Forwardslash */)) { + if (this._parseTransform(placeholder)) { + parent.appendChild(placeholder); + return true; + } + this._backTo(token); + return false; + } else if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(placeholder); + return true; + } else { + return this._backTo(token); + } + } + _parseChoiceElement(parent) { + const token = this._token; + const values2 = []; + while (true) { + if (this._token.type === 2 /* Comma */ || this._token.type === 7 /* Pipe */) { + break; + } + let value; + if (value = this._accept(5 /* Backslash */, true)) { + value = this._accept(2 /* Comma */, true) || this._accept(7 /* Pipe */, true) || this._accept(5 /* Backslash */, true) || value; + } else { + value = this._accept(void 0, true); + } + if (!value) { + this._backTo(token); + return false; + } + values2.push(value); + } + if (values2.length === 0) { + this._backTo(token); + return false; + } + parent.appendChild(new Text(values2.join(""))); + return true; + } + // ${foo:}, ${foo} -> variable + _parseComplexVariable(parent) { + let name; + const token = this._token; + const match2 = this._accept(0 /* Dollar */) && this._accept(3 /* CurlyOpen */) && (name = this._accept(9 /* VariableName */, true)); + if (!match2) { + return this._backTo(token); + } + const variable = new Variable(name); + if (this._accept(1 /* Colon */)) { + while (true) { + if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(variable); + return true; + } + if (this._parse(variable)) { + continue; + } + parent.appendChild(new Text("${" + name + ":")); + variable.children.forEach(parent.appendChild, parent); + return true; + } + } else if (this._accept(6 /* Forwardslash */)) { + if (this._parseTransform(variable)) { + parent.appendChild(variable); + return true; + } + this._backTo(token); + return false; + } else if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(variable); + return true; + } else { + return this._backTo(token); + } + } + _parseTransform(parent) { + let transform = new Transform(); + let regexValue = ""; + let regexOptions = ""; + while (true) { + if (this._accept(6 /* Forwardslash */)) { + break; + } + let escaped; + if (escaped = this._accept(5 /* Backslash */, true)) { + escaped = this._accept(6 /* Forwardslash */, true) || escaped; + regexValue += escaped; + continue; + } + if (this._token.type !== 14 /* EOF */) { + regexValue += this._accept(void 0, true); + continue; + } + return false; + } + while (true) { + if (this._accept(6 /* Forwardslash */)) { + break; + } + let escaped; + if (escaped = this._accept(5 /* Backslash */, true)) { + escaped = this._accept(5 /* Backslash */, true) || this._accept(6 /* Forwardslash */, true) || escaped; + transform.appendChild(new Text(escaped)); + continue; + } + if (this._parseFormatString(transform) || this._parseAnything(transform)) { + continue; + } + return false; + } + while (true) { + if (this._accept(4 /* CurlyClose */)) { + break; + } + if (this._token.type !== 14 /* EOF */) { + regexOptions += this._accept(void 0, true); + continue; + } + return false; + } + try { + transform.regexp = new RegExp(regexValue, regexOptions); + } catch (e) { + return false; + } + parent.transform = transform; + return true; + } + _parseFormatString(parent) { + const token = this._token; + if (!this._accept(0 /* Dollar */)) { + return false; + } + let complex = false; + if (this._accept(3 /* CurlyOpen */)) { + complex = true; + } + let index = this._accept(8 /* Int */, true); + if (!index) { + this._backTo(token); + return false; + } else if (!complex) { + parent.appendChild(new FormatString(Number(index))); + return true; + } else if (this._accept(4 /* CurlyClose */)) { + parent.appendChild(new FormatString(Number(index))); + return true; + } else if (!this._accept(1 /* Colon */)) { + this._backTo(token); + return false; + } + if (this._accept(6 /* Forwardslash */)) { + let shorthand = this._accept(9 /* VariableName */, true); + if (!shorthand || !this._accept(4 /* CurlyClose */)) { + this._backTo(token); + return false; + } else { + parent.appendChild(new FormatString(Number(index), shorthand)); + return true; + } + } else if (this._accept(11 /* Plus */)) { + let ifValue = this._until(4 /* CurlyClose */); + if (ifValue) { + parent.appendChild(new FormatString(Number(index), void 0, ifValue, void 0)); + return true; + } + } else if (this._accept(12 /* Dash */)) { + let elseValue = this._until(4 /* CurlyClose */); + if (elseValue) { + parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue)); + return true; + } + } else if (this._accept(13 /* QuestionMark */)) { + let ifValue = this._until(1 /* Colon */); + if (ifValue) { + let elseValue = this._until(4 /* CurlyClose */); + if (elseValue) { + parent.appendChild(new FormatString(Number(index), void 0, ifValue, elseValue)); + return true; + } + } + } else { + let elseValue = this._until(4 /* CurlyClose */); + if (elseValue) { + parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue)); + return true; + } + } + this._backTo(token); + return false; + } + _parseAnything(marker) { + if (this._token.type !== 14 /* EOF */) { + marker.appendChild(new Text(this._scanner.tokenText(this._token))); + this._accept(void 0); + return true; + } + return false; + } +}; + +// ../cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts +var KnownSnippetVariableNames = Object.freeze({ + "CURRENT_YEAR": true, + "CURRENT_YEAR_SHORT": true, + "CURRENT_MONTH": true, + "CURRENT_DATE": true, + "CURRENT_HOUR": true, + "CURRENT_MINUTE": true, + "CURRENT_SECOND": true, + "CURRENT_DAY_NAME": true, + "CURRENT_DAY_NAME_SHORT": true, + "CURRENT_MONTH_NAME": true, + "CURRENT_MONTH_NAME_SHORT": true, + "CURRENT_SECONDS_UNIX": true, + "SELECTION": true, + "CLIPBOARD": true, + "TM_SELECTED_TEXT": true, + "TM_CURRENT_LINE": true, + "TM_CURRENT_WORD": true, + "TM_LINE_INDEX": true, + "TM_LINE_NUMBER": true, + "TM_FILENAME": true, + "TM_FILENAME_BASE": true, + "TM_DIRECTORY": true, + "TM_FILEPATH": true, + "RELATIVE_FILEPATH": true, + "BLOCK_COMMENT_START": true, + "BLOCK_COMMENT_END": true, + "LINE_COMMENT": true, + "WORKSPACE_NAME": true, + "WORKSPACE_FOLDER": true, + "RANDOM": true, + "RANDOM_HEX": true, + "UUID": true +}); + +// ../cursorless-engine/src/snippets/snippet.ts +function transformSnippetVariables(parsedSnippet, placeholderName, substitutions) { + let nextPlaceholderIndex = getMaxPlaceholderIndex(parsedSnippet) + 1; + const placeholderIndexMap = {}; + parsedSnippet.walk((candidate) => { + if (candidate instanceof Variable) { + if (candidate.name === placeholderName) { + candidate.name = "TM_SELECTED_TEXT"; + } else if (substitutions != null && Object.prototype.hasOwnProperty.call(substitutions, candidate.name)) { + candidate.parent.replace(candidate, [ + new Text(substitutions[candidate.name]) + ]); + } else if (!KnownSnippetVariableNames[candidate.name]) { + let placeholderIndex; + if (candidate.name in placeholderIndexMap) { + placeholderIndex = placeholderIndexMap[candidate.name]; + } else { + placeholderIndex = nextPlaceholderIndex++; + placeholderIndexMap[candidate.name] = placeholderIndex; + } + const placeholder = new Placeholder(placeholderIndex); + candidate.children.forEach((child) => placeholder.appendChild(child)); + candidate.parent.replace(candidate, [placeholder]); + } + } else if (candidate instanceof Placeholder) { + if (candidate.index.toString() === placeholderName) { + candidate.parent.replace(candidate, [new Variable("TM_SELECTED_TEXT")]); + } + } + return true; + }); +} +function getMaxPlaceholderIndex(parsedSnippet) { + let placeholderIndex = 0; + parsedSnippet.walk((candidate) => { + if (candidate instanceof Placeholder) { + placeholderIndex = Math.max(placeholderIndex, candidate.index); + } + return true; + }); + return placeholderIndex; +} +function findMatchingSnippetDefinitionStrict(modifierStageFactory, targets, definitions) { + const definitionIndices = targets.map( + (target) => findMatchingSnippetDefinitionForSingleTarget( + modifierStageFactory, + target, + definitions + ) + ); + const definitionIndex = definitionIndices[0]; + if (!definitionIndices.every((index) => index === definitionIndex)) { + throw new Error("Multiple snippet definitions match the given context"); + } + if (definitionIndex === -1) { + throw new Error("Couldn't find matching snippet definition"); + } + return definitions[definitionIndex]; +} +function findMatchingSnippetDefinitionForSingleTarget(modifierStageFactory, target, definitions) { + const languageId = target.editor.document.languageId; + return definitions.findIndex(({ scope }) => { + if (scope == null) { + return true; + } + const { langIds, scopeTypes, excludeDescendantScopeTypes } = scope; + if (langIds != null && !langIds.includes(languageId)) { + return false; + } + if (scopeTypes != null) { + const allScopeTypes = scopeTypes.concat( + excludeDescendantScopeTypes ?? [] + ); + let matchingTarget = void 0; + let matchingScopeType = void 0; + for (const scopeTypeType of allScopeTypes) { + try { + let containingTarget = modifierStageFactory.create({ + type: "containingScope", + scopeType: { type: scopeTypeType } + }).run(target)[0]; + if (target.contentRange.isRangeEqual(containingTarget.contentRange)) { + containingTarget = modifierStageFactory.create({ + type: "containingScope", + scopeType: { type: scopeTypeType }, + ancestorIndex: 1 + }).run(target)[0]; + } + if (matchingTarget == null || matchingTarget.contentRange.contains(containingTarget.contentRange)) { + matchingTarget = containingTarget; + matchingScopeType = scopeTypeType; + } + } catch (e) { + continue; + } + } + return matchingTarget != null && !(excludeDescendantScopeTypes ?? []).includes(matchingScopeType); + } + return true; + }); +} + +// ../cursorless-engine/src/actions/InsertSnippet.ts +var InsertSnippet = class { + constructor(rangeUpdater, snippets, actions2, modifierStageFactory) { + this.rangeUpdater = rangeUpdater; + this.snippets = snippets; + this.actions = actions2; + this.modifierStageFactory = modifierStageFactory; + this.snippetParser = new SnippetParser(); + this.run = this.run.bind(this); + } + getFinalStages(snippetDescription) { + const defaultScopeTypes = this.getScopeTypes(snippetDescription); + return defaultScopeTypes.length === 0 ? [] : [ + new ModifyIfUntypedExplicitStage(this.modifierStageFactory, { + type: "cascading", + modifiers: defaultScopeTypes.map((scopeType) => ({ + type: "containingScope", + scopeType + })) + }) + ]; + } + getScopeTypes(snippetDescription) { + if (snippetDescription.type === "named") { + const { name } = snippetDescription; + const snippet2 = this.snippets.getSnippetStrict(name); + const scopeTypeTypes = snippet2.insertionScopeTypes; + return scopeTypeTypes == null ? [] : scopeTypeTypes.map((scopeTypeType) => ({ + type: scopeTypeType + })); + } else { + return snippetDescription.scopeTypes ?? []; + } + } + getSnippetInfo(snippetDescription, targets) { + if (snippetDescription.type === "named") { + const { name } = snippetDescription; + const snippet2 = this.snippets.getSnippetStrict(name); + const definition = findMatchingSnippetDefinitionStrict( + this.modifierStageFactory, + targets, + snippet2.definitions + ); + return { + body: definition.body.join("\n"), + formatSubstitutions(substitutions) { + return substitutions == null ? void 0 : formatSubstitutions(snippet2, definition, substitutions); + } + }; + } else { + return { + body: snippetDescription.body, + formatSubstitutions(substitutions) { + return substitutions; + } + }; + } + } + async run(destinations, snippetDescription) { + const editor = ide().getEditableTextEditor( + ensureSingleEditor2(destinations) + ); + await this.actions.editNew.run(destinations); + const targetSelectionInfos = editor.selections.map( + (selection) => getSelectionInfo( + editor.document, + selection, + 0 /* openOpen */ + ) + ); + const { body, formatSubstitutions: formatSubstitutions2 } = this.getSnippetInfo( + snippetDescription, + // Use new selection locations instead of original targets because + // that's where we'll be doing the snippet insertion + editor.selections.map( + (selection) => new UntypedTarget({ + editor, + contentRange: selection, + isReversed: false, + hasExplicitRange: true + }) + ) + ); + const parsedSnippet = this.snippetParser.parse(body); + transformSnippetVariables( + parsedSnippet, + null, + formatSubstitutions2(snippetDescription.substitutions) + ); + const snippetString = parsedSnippet.toTextmateString(); + const [updatedTargetSelections] = await callFunctionAndUpdateSelectionInfos( + this.rangeUpdater, + () => editor.insertSnippet(snippetString), + editor.document, + [targetSelectionInfos] + ); + return { + thatSelections: updatedTargetSelections.map((selection) => ({ + editor, + selection + })) + }; + } +}; +function formatSubstitutions(snippet2, definition, substitutions) { + return Object.fromEntries( + Object.entries(substitutions).map(([variableName, value]) => { + const formatterName = (definition.variables ?? {})[variableName]?.formatter ?? (snippet2.variables ?? {})[variableName]?.formatter; + if (formatterName == null) { + return [variableName, value]; + } + const formatter = textFormatters[formatterName]; + if (formatter == null) { + throw new Error( + `Couldn't find formatter ${formatterName} for variable ${variableName}` + ); + } + return [variableName, formatter(value.split(" "))]; + }) + ); +} + +// ../cursorless-engine/src/actions/JoinLines.ts +var import_lodash45 = __toESM(require_lodash(), 1); +var JoinLines = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + } + async run(targets) { + await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */); + const thatSelections = (0, import_lodash45.flatten)( + await runOnTargetsForEachEditor(targets, async (editor, targets2) => { + const contentRanges = targets2.map(({ contentRange }) => contentRange); + const edits = getEdits2(editor, contentRanges); + const [updatedRanges] = await performEditsAndUpdateRanges( + this.rangeUpdater, + ide().getEditableTextEditor(editor), + edits, + [contentRanges] + ); + return (0, import_lodash45.zip)(targets2, updatedRanges).map(([target, range4]) => ({ + editor: target.editor, + selection: range4.toSelection(target.isReversed) + })); + }) + ); + return { thatSelections }; + } +}; +function getEdits2(editor, contentRanges) { + const { document } = editor; + const edits = []; + for (const range4 of contentRanges) { + const startLine = range4.start.line; + const endLine = range4.isSingleLine ? startLine + 1 : range4.end.line; + const lineIter = map2( + range2(startLine, endLine + 1), + (i) => document.lineAt(i) + ); + for (const [line1, line2] of pairwise(lineIter)) { + edits.push({ + range: new Range( + line1.range.end.line, + line1.lastNonWhitespaceCharacterIndex, + line2.range.start.line, + line2.firstNonWhitespaceCharacterIndex + ), + text: line2.isEmptyOrWhitespace ? "" : " ", + isReplace: true + }); + } + } + return edits; +} + +// ../cursorless-engine/src/actions/PasteFromClipboard.ts +var PasteFromClipboard = class { + constructor(rangeUpdater, actions2) { + this.rangeUpdater = rangeUpdater; + this.actions = actions2; + } + async run(destinations) { + const editor = ide().getEditableTextEditor( + ensureSingleEditor2(destinations) + ); + const originalEditor = ide().activeEditableTextEditor; + const [originalCursorSelections] = await callFunctionAndUpdateSelections( + this.rangeUpdater, + async () => { + await this.actions.editNew.run(destinations); + }, + editor.document, + [editor.selections] + ); + const [updatedCursorSelections, updatedTargetSelections] = await callFunctionAndUpdateSelectionsWithBehavior( + this.rangeUpdater, + () => editor.clipboardPaste(), + editor.document, + [ + { + selections: originalCursorSelections + }, + { + selections: editor.selections, + rangeBehavior: 0 /* openOpen */ + } + ] + ); + await setSelectionsWithoutFocusingEditor(editor, updatedCursorSelections); + if (originalEditor != null && !originalEditor.isActive) { + await originalEditor.focus(); + } + await ide().flashRanges( + updatedTargetSelections.map((selection) => ({ + editor, + range: toCharacterRange(selection), + style: "justAdded" /* justAdded */ + })) + ); + return { + thatSelections: updatedTargetSelections.map((selection) => ({ + editor, + selection + })) + }; + } +}; + +// ../cursorless-engine/src/actions/Remove.ts +var import_lodash46 = __toESM(require_lodash(), 1); +var Delete = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + this.runForEditor = this.runForEditor.bind(this); + } + async run(targets, { showDecorations = true } = {}) { + targets = unifyRemovalTargets(targets); + if (showDecorations) { + await flashTargets( + ide(), + targets, + "pendingDelete" /* pendingDelete */, + (target) => target.getRemovalHighlightRange() + ); + } + const thatTargets = (0, import_lodash46.flatten)( + await runOnTargetsForEachEditor(targets, this.runForEditor) + ); + return { thatTargets }; + } + async runForEditor(editor, targets) { + const edits = targets.map((target) => target.constructRemovalEdit()); + const cursorSelections = editor.selections; + const editSelections = edits.map(({ range: range4 }) => range4.toSelection(false)); + const editableEditor = ide().getEditableTextEditor(editor); + const [updatedCursorSelections, updatedEditSelections] = await performEditsAndUpdateSelections( + this.rangeUpdater, + editableEditor, + edits, + [cursorSelections, editSelections] + ); + await setSelectionsWithoutFocusingEditor( + editableEditor, + updatedCursorSelections + ); + return (0, import_lodash46.zip)(targets, updatedEditSelections).map( + ([target, range4]) => new RawSelectionTarget({ + editor: target.editor, + isReversed: target.isReversed, + contentRange: range4 + }) + ); + } +}; + +// ../cursorless-engine/src/actions/Replace.ts +var import_lodash47 = __toESM(require_lodash(), 1); +var Replace = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + } + getTexts(destinations, replaceWith) { + if (Array.isArray(replaceWith)) { + if (replaceWith.length === 1) { + return Array(destinations.length).fill(replaceWith[0]); + } + return replaceWith; + } + const numbers2 = []; + for (let i = 0; i < destinations.length; ++i) { + numbers2[i] = (replaceWith.start + i).toString(); + } + return numbers2; + } + async run(destinations, replaceWith) { + await flashTargets( + ide(), + destinations.map((d) => d.target), + "pendingModification0" /* pendingModification0 */ + ); + const texts = this.getTexts(destinations, replaceWith); + if (destinations.length !== texts.length) { + throw new Error("Targets and texts must have same length"); + } + const edits = (0, import_lodash47.zip)(destinations, texts).map(([destination, text]) => ({ + editor: destination.editor, + target: destination.target, + edit: destination.constructChangeEdit(text) + })); + const sourceTargets = []; + const thatSelections = []; + await runForEachEditor( + edits, + (edit) => edit.editor, + async (editor, edits2) => { + const contentSelections = { + selections: edits2.map(({ target }) => target.contentSelection) + }; + const editSelections = { + selections: edits2.map(({ edit }) => edit.range.toSelection(false)), + rangeBehavior: 0 /* openOpen */ + }; + const [updatedContentSelections, updatedEditSelections] = await performEditsAndUpdateSelectionsWithBehavior( + this.rangeUpdater, + ide().getEditableTextEditor(editor), + edits2.map(({ edit }) => edit), + [contentSelections, editSelections] + ); + for (const [edit, selection] of (0, import_lodash47.zip)(edits2, updatedContentSelections)) { + sourceTargets.push(edit.target.withContentRange(selection)); + } + for (const [edit, selection] of (0, import_lodash47.zip)(edits2, updatedEditSelections)) { + thatSelections.push({ + editor, + selection: edit.edit.updateRange(selection).toSelection(selection.isReversed) + }); + } + } + ); + return { sourceTargets, thatSelections }; + } +}; + +// ../cursorless-engine/src/actions/Rewrap.ts +var Rewrap = class { + constructor(rangeUpdater, modifierStageFactory) { + this.rangeUpdater = rangeUpdater; + this.modifierStageFactory = modifierStageFactory; + this.getFinalStages = () => [ + this.modifierStageFactory.create( + containingSurroundingPairIfUntypedModifier + ) + ]; + this.run = this.run.bind(this); + } + async run(targets, left, right) { + const boundaryTargets = targets.flatMap((target) => { + const boundary = target.getBoundaryStrict(); + if (boundary.length !== 2) { + throw Error("Target must have an opening and closing delimiter"); + } + return boundary; + }); + await flashTargets(ide(), boundaryTargets, "pendingModification0" /* pendingModification0 */); + const results = await runOnTargetsForEachEditor( + boundaryTargets, + async (editor, boundaryTargets2) => { + const edits = boundaryTargets2.map((target, i) => ({ + editor, + range: target.contentRange, + text: i % 2 === 0 ? left : right + })); + const [updatedSourceRanges, updatedThatRanges] = await performEditsAndUpdateRanges( + this.rangeUpdater, + ide().getEditableTextEditor(editor), + edits, + [ + targets.map((target) => target.thatTarget.contentRange), + targets.map((target) => target.contentRange) + ] + ); + return { + sourceMark: createThatMark(targets, updatedSourceRanges), + thatMark: createThatMark(targets, updatedThatRanges) + }; + } + ); + return { + sourceSelections: results.flatMap(({ sourceMark }) => sourceMark), + thatSelections: results.flatMap(({ thatMark }) => thatMark) + }; + } +}; + +// ../cursorless-engine/src/actions/Scroll.ts +var Scroll = class { + constructor(at) { + this.at = at; + this.run = this.run.bind(this); + } + async run(targets) { + const selectionGroups = groupBy(targets, (t) => t.editor); + const lines = Array.from(selectionGroups, ([editor, targets2]) => { + return { lineNumber: getLineNumber(targets2, this.at), editor }; + }); + const originalEditor = ide().activeEditableTextEditor; + for (const lineWithEditor of lines) { + await ide().getEditableTextEditor(lineWithEditor.editor).revealLine(lineWithEditor.lineNumber, this.at); + } + if (originalEditor != null && !originalEditor.isActive) { + await originalEditor.focus(); + } + const decorationTargets = targets.filter((target) => { + const visibleRanges = target.editor.visibleRanges; + const startLine = visibleRanges[0].start.line; + const endLine = visibleRanges[visibleRanges.length - 1].end.line; + return target.contentRange.start.line > startLine || target.contentRange.end.line < endLine || target.contentRange.start.line === startLine && target.contentRange.end.line === endLine; + }); + await ide().flashRanges( + decorationTargets.map((target) => ({ + editor: target.editor, + range: toLineRange(target.contentRange), + style: "referenced" /* referenced */ + })) + ); + return { + thatTargets: targets + }; + } +}; +var ScrollToTop = class extends Scroll { + constructor() { + super("top" /* top */); + } +}; +var ScrollToCenter = class extends Scroll { + constructor() { + super("center" /* center */); + } +}; +var ScrollToBottom = class extends Scroll { + constructor() { + super("bottom" /* bottom */); + } +}; +function getLineNumber(targets, at) { + let startLine = Number.MAX_SAFE_INTEGER; + let endLine = 0; + targets.forEach((target) => { + startLine = Math.min(startLine, target.contentRange.start.line); + endLine = Math.max(endLine, target.contentRange.end.line); + }); + if (at === "top" /* top */) { + return startLine; + } + if (at === "bottom" /* bottom */) { + return endLine; + } + return Math.floor((startLine + endLine) / 2); +} + +// ../cursorless-engine/src/actions/SetSelection.ts +var SetSelection = class { + constructor() { + this.run = this.run.bind(this); + } + getSelection(target) { + return target.contentSelection; + } + async run(targets) { + const editor = ensureSingleEditor2(targets); + const selections = targets.map(this.getSelection); + await setSelectionsAndFocusEditor( + ide().getEditableTextEditor(editor), + selections + ); + return { + thatTargets: targets + }; + } +}; +var SetSelectionBefore = class extends SetSelection { + getSelection(target) { + return new Selection(target.contentRange.start, target.contentRange.start); + } +}; +var SetSelectionAfter = class extends SetSelection { + getSelection(target) { + return new Selection(target.contentRange.end, target.contentRange.end); + } +}; + +// ../cursorless-engine/src/actions/SetSpecialTarget.ts +var SetSpecialTarget = class { + constructor(key) { + this.key = key; + this.noAutomaticTokenExpansion = true; + this.run = this.run.bind(this); + } + async run(targets) { + return { + thatTargets: targets, + [`${this.key}Targets`]: targets + }; + } +}; + +// ../cursorless-engine/src/actions/ShowParseTree.ts +var path4 = __toESM(require("node:path"), 1); +var ShowParseTree = class { + constructor(treeSitter) { + this.treeSitter = treeSitter; + this.run = this.run.bind(this); + } + async run(targets) { + await flashTargets(ide(), targets, "referenced" /* referenced */); + const results = ["# Cursorless parse tree"]; + for (const target of targets) { + const { editor, contentRange } = target; + const tree = this.treeSitter.getTree(editor.document); + results.push(parseTree(editor.document, tree, contentRange)); + } + ide().openUntitledTextDocument({ + language: "markdown", + content: results.join("\n\n") + }); + return { thatTargets: targets }; + } +}; +function parseTree(document, tree, contentRange) { + const resultPlayground = []; + const resultQuery = []; + parseCursor(resultPlayground, resultQuery, contentRange, tree.walk(), 0); + return [ + `## ${path4.basename(document.uri.path)} [${contentRange}] +`, + `\`\`\`${document.languageId}`, + document.getText(contentRange), + "```", + "", + "```scm", + ...resultQuery, + "```", + "", + "```js", + ...resultPlayground, + "```", + "" + ].join("\n"); +} +function parseCursor(resultPlayground, resultQuery, contentRange, cursor, numIndents) { + while (true) { + const nodeRange = new Range( + cursor.startPosition.row, + cursor.startPosition.column, + cursor.endPosition.row, + cursor.endPosition.column + ); + if (contentRange.intersection(nodeRange) != null) { + const indentation = " ".repeat(numIndents); + const fieldName = getFieldName(cursor); + const prefix = indentation + fieldName; + if (cursor.nodeIsNamed) { + resultPlayground.push(`${prefix}${cursor.nodeType} [${nodeRange}]`); + resultQuery.push(`${prefix}(${cursor.nodeType}`); + if (cursor.gotoFirstChild()) { + parseCursor( + resultPlayground, + resultQuery, + contentRange, + cursor, + numIndents + 1 + ); + cursor.gotoParent(); + resultQuery.push(`${indentation})`); + } else { + resultQuery[resultQuery.length - 1] += ")"; + } + } else { + const type2 = `"${cursor.nodeType}"`; + resultPlayground.push(`${prefix}${type2} [${nodeRange}]`); + resultQuery.push(`${prefix}${type2}`); + } + } + if (!cursor.gotoNextSibling()) { + return; + } + } +} +function getFieldName(cursor) { + const field = cursor.currentFieldName(); + return field != null ? `${field}: ` : ""; +} + +// ../cursorless-engine/src/actions/SimpleIdeCommandActions.ts +var SimpleIdeCommandAction = class { + constructor(rangeUpdater) { + this.ensureSingleEditor = false; + this.ensureSingleTarget = false; + this.restoreSelection = true; + this.showDecorations = true; + this.callbackAction = new CallbackAction(rangeUpdater); + this.run = this.run.bind(this); + } + async run(targets, { showDecorations } = {}) { + const capabilities = ide().capabilities.commands[this.command]; + if (capabilities == null) { + throw Error(`Action ${this.command} is not supported by your ide`); + } + const { acceptsLocation } = capabilities; + return this.callbackAction.run(targets, { + callback: (editor, targets2) => callback( + editor, + acceptsLocation ? targets2.map((t) => t.contentRange) : void 0, + this.command + ), + setSelection: !acceptsLocation, + ensureSingleEditor: this.ensureSingleEditor, + ensureSingleTarget: this.ensureSingleTarget, + restoreSelection: this.restoreSelection, + showDecorations: showDecorations ?? this.showDecorations + }); + } +}; +var CopyToClipboard = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "clipboardCopy"; + this.ensureSingleEditor = true; + } +}; +var ToggleLineComment = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "toggleLineComment"; + } +}; +var IndentLine = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "indentLine"; + } +}; +var OutdentLine = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "outdentLine"; + } +}; +var Fold = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "fold"; + } +}; +var Unfold = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "unfold"; + } +}; +var Rename = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "rename"; + this.ensureSingleTarget = true; + } +}; +var ShowReferences = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "showReferences"; + this.ensureSingleTarget = true; + } +}; +var ShowQuickFix = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "quickFix"; + this.ensureSingleTarget = true; + } +}; +var RevealDefinition = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "revealDefinition"; + this.ensureSingleTarget = true; + this.restoreSelection = false; + } +}; +var RevealTypeDefinition = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "revealTypeDefinition"; + this.ensureSingleTarget = true; + this.restoreSelection = false; + } +}; +var ShowHover = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "showHover"; + this.ensureSingleTarget = true; + this.restoreSelection = false; + } +}; +var ShowDebugHover = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "showDebugHover"; + this.ensureSingleTarget = true; + this.restoreSelection = false; + } +}; +var ExtractVariable = class extends SimpleIdeCommandAction { + constructor() { + super(...arguments); + this.command = "extractVariable"; + this.ensureSingleTarget = true; + this.restoreSelection = false; + } +}; +function callback(editor, ranges, command) { + switch (command) { + case "toggleLineComment": + return editor.toggleLineComment(ranges); + case "indentLine": + return editor.indentLine(ranges); + case "outdentLine": + return editor.outdentLine(ranges); + case "clipboardCopy": + return editor.clipboardCopy(ranges); + case "fold": + return editor.fold(ranges); + case "unfold": + return editor.unfold(ranges); + case "rename": + return editor.rename(ranges?.[0]); + case "showReferences": + return editor.showReferences(ranges?.[0]); + case "quickFix": + return editor.quickFix(ranges?.[0]); + case "revealDefinition": + return editor.revealDefinition(ranges?.[0]); + case "revealTypeDefinition": + return editor.revealTypeDefinition(ranges?.[0]); + case "showHover": + return editor.showHover(ranges?.[0]); + case "showDebugHover": + return editor.showDebugHover(ranges?.[0]); + case "extractVariable": + return editor.extractVariable(ranges?.[0]); + case "highlight": + throw Error("Highlight command not supported as simple action"); + } +} + +// ../cursorless-engine/src/actions/Sort.ts +var import_lodash48 = __toESM(require_lodash(), 1); +var SortBase = class { + constructor(actions2) { + this.actions = actions2; + this.run = this.run.bind(this); + } + async run(targets) { + if (targets.length < 2) { + showWarning( + ide().messages, + "tooFewTargets", + 'This action works on multiple targets, e.g. "sort every line block" instead of "sort block".' + ); + } + const sortedTargets = targets.slice().sort((a, b) => a.contentRange.start.compareTo(b.contentRange.start)); + const { returnValue: unsortedTexts } = await this.actions.getText.run( + sortedTargets, + { + showDecorations: false + } + ); + const sortedTexts = this.sortTexts(unsortedTexts); + const { thatSelections } = await this.actions.replace.run( + sortedTargets.map((target) => target.toDestination("to")), + sortedTexts + ); + return { thatSelections }; + } +}; +var Sort = class extends SortBase { + constructor() { + super(...arguments); + this.collator = new Intl.Collator(void 0, { + numeric: true, + caseFirst: "upper" + }); + } + sortTexts(texts) { + return texts.sort(this.collator.compare); + } +}; +var Reverse = class extends SortBase { + sortTexts(texts) { + return texts.reverse(); + } +}; +var Random = class extends SortBase { + sortTexts(texts) { + return (0, import_lodash48.shuffle)(texts); + } +}; + +// ../cursorless-engine/src/actions/ToggleBreakpoint.ts +var ToggleBreakpoint = class { + constructor(modifierStageFactory) { + this.modifierStageFactory = modifierStageFactory; + this.getFinalStages = () => [ + this.modifierStageFactory.create(containingLineIfUntypedModifier) + ]; + this.run = this.run.bind(this); + } + async run(targets) { + const thatTargets = targets.map(({ thatTarget }) => thatTarget); + await flashTargets(ide(), thatTargets, "referenced" /* referenced */); + await runOnTargetsForEachEditor(targets, async (editor, targets2) => { + const breakpointDescriptors = targets2.map( + (target) => { + const range4 = target.contentRange; + return target.isLine ? { + type: "line", + startLine: range4.start.line, + endLine: range4.end.line + } : { + type: "inline", + range: range4 + }; + } + ); + await ide().getEditableTextEditor(editor).toggleBreakpoint(breakpointDescriptors); + }); + return { + thatTargets: targets + }; + } +}; + +// ../cursorless-engine/src/actions/Wrap.ts +var Wrap = class { + constructor(rangeUpdater) { + this.rangeUpdater = rangeUpdater; + this.run = this.run.bind(this); + } + async run(targets, left, right) { + const results = await runOnTargetsForEachEditor( + targets, + async (editor, targets2) => { + const { document } = editor; + const boundaries = targets2.map((target) => ({ + start: new Selection( + target.contentRange.start, + target.contentRange.start + ), + end: new Selection(target.contentRange.end, target.contentRange.end) + })); + const edits = boundaries.flatMap(({ start, end }) => [ + { + text: left, + range: start + }, + { + text: right, + range: end, + isReplace: true + } + ]); + const delimiterSelectionInfos = boundaries.flatMap( + ({ start, end }) => { + return [ + getSelectionInfo( + document, + start, + 2 /* openClosed */ + ), + getSelectionInfo( + document, + end, + 3 /* closedOpen */ + ) + ]; + } + ); + const cursorSelectionInfos = editor.selections.map( + (selection) => getSelectionInfo( + document, + selection, + 1 /* closedClosed */ + ) + ); + const sourceMarkSelectionInfos = targets2.map( + (target) => getSelectionInfo( + document, + target.contentSelection, + 1 /* closedClosed */ + ) + ); + const thatMarkSelectionInfos = targets2.map( + (target) => getSelectionInfo( + document, + target.contentSelection, + 0 /* openOpen */ + ) + ); + const editableEditor = ide().getEditableTextEditor(editor); + const [ + delimiterSelections, + cursorSelections, + sourceMarkSelections, + thatMarkSelections + ] = await performEditsAndUpdateFullSelectionInfos( + this.rangeUpdater, + editableEditor, + edits, + [ + delimiterSelectionInfos, + cursorSelectionInfos, + sourceMarkSelectionInfos, + thatMarkSelectionInfos + ] + ); + await setSelectionsWithoutFocusingEditor( + editableEditor, + cursorSelections + ); + await ide().flashRanges( + delimiterSelections.map((selection) => ({ + editor, + range: toCharacterRange(selection), + style: "justAdded" /* justAdded */ + })) + ); + return { + sourceMark: sourceMarkSelections.map((selection) => ({ + editor, + selection + })), + thatMark: thatMarkSelections.map((selection) => ({ + editor, + selection + })) + }; + } + ); + return { + sourceSelections: results.flatMap(({ sourceMark }) => sourceMark), + thatSelections: results.flatMap(({ thatMark }) => thatMark) + }; + } +}; + +// ../cursorless-engine/src/actions/WrapWithSnippet.ts +var WrapWithSnippet = class { + constructor(rangeUpdater, snippets, modifierStageFactory) { + this.rangeUpdater = rangeUpdater; + this.snippets = snippets; + this.modifierStageFactory = modifierStageFactory; + this.snippetParser = new SnippetParser(); + this.run = this.run.bind(this); + } + getFinalStages(snippet2) { + const defaultScopeType = this.getScopeType(snippet2); + if (defaultScopeType == null) { + return []; + } + return [ + new ModifyIfUntypedStage(this.modifierStageFactory, { + type: "modifyIfUntyped", + modifier: { + type: "containingScope", + scopeType: defaultScopeType + } + }) + ]; + } + getScopeType(snippetDescription) { + if (snippetDescription.type === "named") { + const { name, variableName } = snippetDescription; + const snippet2 = this.snippets.getSnippetStrict(name); + const variables = snippet2.variables ?? {}; + const scopeTypeType = variables[variableName]?.wrapperScopeType; + return scopeTypeType == null ? void 0 : { + type: scopeTypeType + }; + } else { + return snippetDescription.scopeType; + } + } + getBody(snippetDescription, targets) { + if (snippetDescription.type === "named") { + const { name } = snippetDescription; + const snippet2 = this.snippets.getSnippetStrict(name); + const definition = findMatchingSnippetDefinitionStrict( + this.modifierStageFactory, + targets, + snippet2.definitions + ); + return definition.body.join("\n"); + } else { + return snippetDescription.body; + } + } + async run(targets, snippetDescription) { + const editor = ide().getEditableTextEditor(ensureSingleEditor2(targets)); + const body = this.getBody(snippetDescription, targets); + const parsedSnippet = this.snippetParser.parse(body); + transformSnippetVariables(parsedSnippet, snippetDescription.variableName); + const snippetString = parsedSnippet.toTextmateString(); + await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */); + const targetSelections = targets.map((target) => target.contentSelection); + const [updatedTargetSelections] = await callFunctionAndUpdateSelections( + this.rangeUpdater, + () => editor.insertSnippet(snippetString, targetSelections), + editor.document, + [targetSelections] + ); + return { + thatSelections: updatedTargetSelections.map((selection) => ({ + editor, + selection + })) + }; + } +}; + +// ../cursorless-engine/src/actions/incrementDecrement.ts +var REGEX = /-?\d+(\.\d+)?/g; +var IncrementDecrement = class { + constructor(actions2, isIncrement) { + this.actions = actions2; + this.isIncrement = isIncrement; + this.run = this.run.bind(this); + } + async run(targets) { + const thatSelections = []; + await runForEachEditor( + targets, + (target) => target.editor, + async (editor, targets2) => { + const selections = await this.runOnEditor(editor, targets2); + thatSelections.push(...selections); + } + ); + return { thatSelections }; + } + async runOnEditor(editor, targets) { + const { document } = editor; + const destinations = []; + const replaceWith = []; + for (const target of targets) { + const offset = document.offsetAt(target.contentRange.start); + const text = target.contentText; + const matches = matchText(text, REGEX); + for (const match2 of matches) { + destinations.push(createDestination(editor, offset, match2)); + replaceWith.push(updateNumber(this.isIncrement, match2.text)); + } + } + const { thatSelections } = await this.actions.replace.run( + destinations, + replaceWith + ); + return thatSelections; + } +}; +var Increment = class extends IncrementDecrement { + constructor(actions2) { + super(actions2, true); + } +}; +var Decrement = class extends IncrementDecrement { + constructor(actions2) { + super(actions2, false); + } +}; +function createDestination(editor, offset, match2) { + const target = new PlainTarget({ + editor, + isReversed: false, + contentRange: new Range( + editor.document.positionAt(offset + match2.index), + editor.document.positionAt(offset + match2.index + match2.text.length) + ) + }); + return target.toDestination("to"); +} +function updateNumber(isIncrement, text) { + return text.includes(".") ? updateFloat(isIncrement, text).toString() : updateInteger(isIncrement, text).toString(); +} +function updateInteger(isIncrement, text) { + const original = parseInt(text); + const diff = 1; + return original + (isIncrement ? diff : -diff); +} +function updateFloat(isIncrement, text) { + const original = parseFloat(text); + const isPercentage = Math.abs(original) <= 1; + const diff = isPercentage ? 0.1 : 1; + const updated = original + (isIncrement ? diff : -diff); + return parseFloat(updated.toPrecision(15)) / 1; +} + +// ../cursorless-engine/src/actions/Actions.ts +var Actions = class { + constructor(treeSitter, snippets, rangeUpdater, modifierStageFactory) { + this.treeSitter = treeSitter; + this.snippets = snippets; + this.rangeUpdater = rangeUpdater; + this.modifierStageFactory = modifierStageFactory; + this.callAsFunction = new Call(this); + this.clearAndSetSelection = new Clear(this); + this.copyToClipboard = new CopyToClipboard(this.rangeUpdater); + this.cutToClipboard = new CutToClipboard(this); + this.decrement = new Decrement(this); + this.deselect = new Deselect(); + this.editNew = new EditNew(this.rangeUpdater, this); + this.editNewLineAfter = new EditNewAfter( + this, + this.modifierStageFactory + ); + this.editNewLineBefore = new EditNewBefore( + this, + this.modifierStageFactory + ); + this.executeCommand = new ExecuteCommand(this.rangeUpdater); + this.extractVariable = new ExtractVariable(this.rangeUpdater); + this.findInDocument = new FindInDocument(this); + this.findInWorkspace = new FindInWorkspace(this); + this.foldRegion = new Fold(this.rangeUpdater); + this.followLink = new FollowLink(this); + this.generateSnippet = new GenerateSnippet(); + this.getText = new GetText(); + this.highlight = new Highlight(); + this.increment = new Increment(this); + this.indentLine = new IndentLine(this.rangeUpdater); + this.insertCopyAfter = new CopyContentAfter( + this.rangeUpdater, + this.modifierStageFactory + ); + this.insertCopyBefore = new CopyContentBefore( + this.rangeUpdater, + this.modifierStageFactory + ); + this.insertEmptyLineAfter = new InsertEmptyLineBelow(this.rangeUpdater); + this.insertEmptyLineBefore = new InsertEmptyLineAbove(this.rangeUpdater); + this.insertEmptyLinesAround = new InsertEmptyLinesAround(this.rangeUpdater); + this.insertSnippet = new InsertSnippet( + this.rangeUpdater, + this.snippets, + this, + this.modifierStageFactory + ); + this.joinLines = new JoinLines(this.rangeUpdater); + this.breakLine = new BreakLine(this.rangeUpdater); + this.moveToTarget = new Move(this.rangeUpdater); + this.outdentLine = new OutdentLine(this.rangeUpdater); + this.pasteFromClipboard = new PasteFromClipboard(this.rangeUpdater, this); + this.randomizeTargets = new Random(this); + this.remove = new Delete(this.rangeUpdater); + this.rename = new Rename(this.rangeUpdater); + this.replace = new Replace(this.rangeUpdater); + this.replaceWithTarget = new Bring(this.rangeUpdater); + this.revealDefinition = new RevealDefinition(this.rangeUpdater); + this.revealTypeDefinition = new RevealTypeDefinition(this.rangeUpdater); + this.reverseTargets = new Reverse(this); + this.rewrapWithPairedDelimiter = new Rewrap( + this.rangeUpdater, + this.modifierStageFactory + ); + this.scrollToBottom = new ScrollToBottom(); + this.scrollToCenter = new ScrollToCenter(); + this.scrollToTop = new ScrollToTop(); + this["private.setKeyboardTarget"] = new SetSpecialTarget("keyboard"); + this["experimental.setInstanceReference"] = new SetSpecialTarget( + "instanceReference" + ); + this.setSelection = new SetSelection(); + this.setSelectionAfter = new SetSelectionAfter(); + this.setSelectionBefore = new SetSelectionBefore(); + this.showDebugHover = new ShowDebugHover(this.rangeUpdater); + this.showHover = new ShowHover(this.rangeUpdater); + this.showQuickFix = new ShowQuickFix(this.rangeUpdater); + this.showReferences = new ShowReferences(this.rangeUpdater); + this.sortTargets = new Sort(this); + this.swapTargets = new Swap(this.rangeUpdater); + this.toggleLineBreakpoint = new ToggleBreakpoint(this.modifierStageFactory); + this.toggleLineComment = new ToggleLineComment(this.rangeUpdater); + this.unfoldRegion = new Unfold(this.rangeUpdater); + this.wrapWithPairedDelimiter = new Wrap(this.rangeUpdater); + this.wrapWithSnippet = new WrapWithSnippet( + this.rangeUpdater, + this.snippets, + this.modifierStageFactory + ); + this["private.showParseTree"] = new ShowParseTree(this.treeSitter); + this["private.getTargets"] = new GetTargets(); + } +}; + +// ../cursorless-engine/src/core/getCommandFallback.ts +async function getCommandFallback(commandServerApi, runAction, command) { + const focusedElementType = await commandServerApi?.getFocusedElementType(); + if (focusedElementType == null || focusedElementType === "textEditor") { + return null; + } + const action = command.action; + switch (action.name) { + case "replace": + return destinationIsSelection(action.destination) && Array.isArray(action.replaceWith) ? { + action: "insert", + modifiers: getModifiersFromDestination(action.destination), + text: action.replaceWith.join("\n") + } : null; + case "replaceWithTarget": + if (destinationIsSelection(action.destination)) { + return { + action: "insert", + modifiers: getModifiersFromDestination(action.destination), + text: await getText(runAction, action.source) + }; + } + return null; + case "moveToTarget": + if (destinationIsSelection(action.destination)) { + const text = await getText(runAction, action.source); + await remove(runAction, action.source); + return { + action: "insert", + modifiers: getModifiersFromDestination(action.destination), + text + }; + } + return null; + case "callAsFunction": + if (targetIsSelection(action.argument)) { + return { + action: action.name, + modifiers: getModifiersFromTarget(action.argument), + callee: await getText(runAction, action.callee) + }; + } + return null; + case "wrapWithPairedDelimiter": + case "rewrapWithPairedDelimiter": + return targetIsSelection(action.target) ? { + action: action.name, + modifiers: getModifiersFromTarget(action.target), + left: action.left, + right: action.right + } : null; + case "pasteFromClipboard": + return destinationIsSelection(action.destination) ? { + action: action.name, + modifiers: getModifiersFromDestination(action.destination) + } : null; + case "swapTargets": + case "editNew": + case "insertSnippet": + case "generateSnippet": + case "wrapWithSnippet": + return null; + default: + return targetIsSelection(action.target) ? { + action: action.name, + modifiers: getModifiersFromTarget(action.target) + } : null; + } +} +function destinationIsSelection(destination) { + if (destination.type === "implicit") { + return true; + } + if (destination.type === "primitive") { + return destination.insertionMode === "to" && targetIsSelection(destination.target); + } + return false; +} +function targetIsSelection(target) { + if (target.type === "implicit") { + return true; + } + if (target.type === "primitive") { + return target.mark == null || target.mark.type === "cursor"; + } + return false; +} +function getModifiersFromDestination(destination) { + if (destination.type === "primitive") { + return getModifiersFromTarget(destination.target); + } + return []; +} +function getModifiersFromTarget(target) { + if (target.type === "primitive") { + if (target.modifiers != null && target.modifiers.length > 0) { + return target.modifiers; + } + if (target.mark?.type === "cursor") { + return [{ type: "containingTokenIfEmpty" }]; + } + } + return []; +} +async function getText(runAction, target) { + const response = await runAction({ name: "getText", target }); + const texts = response.returnValue; + return texts.join("\n"); +} +async function remove(runAction, target) { + await runAction({ name: "remove", target }); +} + +// ../cursorless-engine/src/core/handleHoistedModifiers.ts +var import_lodash49 = __toESM(require_lodash(), 1); +function handleHoistedModifiers(targetDescriptor, isAnchorMarkImplicit) { + const { anchor, rangeType, active } = targetDescriptor; + if (anchor.type !== "primitive" || rangeType !== "continuous") { + return targetDescriptor; + } + const indexedModifiers = anchor.modifiers.map((v, i) => [v, i]); + for (const [modifier, idx] of indexedModifiers.reverse()) { + for (const hoistedModifierType of hoistedModifierTypes) { + const acceptanceInfo = hoistedModifierType.accept(modifier); + if (acceptanceInfo.accepted) { + const [hoistedModifiers, unhoistedModifiers] = [ + anchor.modifiers.slice(0, idx + 1), + anchor.modifiers.slice(idx + 1) + ]; + let pipelineInputDescriptor = { + ...targetDescriptor, + anchor: ( + // If they say "every line past bat", the anchor is implicit, even though + // it comes across the wire as a primitive target due to the "every line", + // which we've now removed + unhoistedModifiers.length === 0 && isAnchorMarkImplicit ? { type: "implicit" } : { + type: "primitive", + mark: anchor.mark, + modifiers: unhoistedModifiers + } + ), + // Remove the hoisted modifier (and everything before it) from the + // active if it ended up there from inference + active: produce(active, (draft) => { + draft.modifiers = draft.modifiers.slice( + (0, import_lodash49.findLastIndex)( + draft.modifiers, + (modifier2) => hoistedModifierType.accept(modifier2).accepted + ) + 1 + ); + }) + }; + pipelineInputDescriptor = acceptanceInfo.transformTarget?.(pipelineInputDescriptor) ?? pipelineInputDescriptor; + return { + type: "primitive", + mark: { + type: "target", + target: pipelineInputDescriptor + }, + modifiers: hoistedModifiers + }; + } + } + } + return targetDescriptor; +} +var hoistedModifierTypes = [ + // "every" ranges, eg "every line air past bat" + { + accept(modifier) { + return modifier.type === "everyScope" && modifier.scopeType.type !== "instance" ? { + accepted: true, + transformTarget(target) { + return { + ...target, + exclusionScopeType: modifier.scopeType + }; + } + } : { accepted: false }; + } + }, + // "instance" modifiers treat the range as the instance to search for, eg + // "every instance air past bat" searches for instances of the text of the + // range "air past bat". + { + accept(modifier) { + return { + accepted: (modifier.type === "everyScope" || modifier.type === "relativeScope" || modifier.type === "ordinalScope") && modifier.scopeType.type === "instance" + }; + } + } +]; + +// ../cursorless-engine/src/core/inferFullTargetDescriptor.ts +function inferFullTargetDescriptor(target, previousTargets) { + switch (target.type) { + case "list": + return inferListTarget(target, previousTargets); + case "range": + return inferRangeTargetWithHoist(target, previousTargets); + case "primitive": + return inferPrimitiveTarget(target, previousTargets); + case "implicit": + return target; + } +} +function inferListTarget(target, previousTargets) { + return { + ...target, + elements: target.elements.map((element, index) => { + const elementPreviousTargets = previousTargets.concat( + target.elements.slice(0, index) + ); + switch (element.type) { + case "range": + return inferRangeTargetWithHoist(element, elementPreviousTargets); + case "primitive": + return inferPrimitiveTarget(element, elementPreviousTargets); + } + }) + }; +} +function inferRangeTargetWithHoist(target, previousTargets) { + const fullTarget = inferRangeTarget(target, previousTargets); + const isAnchorMarkImplicit = target.anchor.type === "implicit" || target.anchor.mark == null; + return handleHoistedModifiers(fullTarget, isAnchorMarkImplicit); +} +function inferRangeTarget(target, previousTargets) { + return { + type: "range", + rangeType: target.rangeType ?? "continuous", + excludeAnchor: target.excludeAnchor ?? false, + excludeActive: target.excludeActive ?? false, + anchor: target.anchor.type === "implicit" ? target.anchor : inferPrimitiveTarget(target.anchor, previousTargets), + active: inferPrimitiveTarget( + target.active, + previousTargets.concat(target.anchor) + ) + }; +} +function inferPrimitiveTarget(target, previousTargets) { + const mark = target.mark ?? (shouldInferPreviousMark(target) ? getPreviousMark(previousTargets) : null) ?? { + type: "cursor" + }; + const modifiers = getPreservedModifiers(target) ?? getPreviousPreservedModifiers(previousTargets) ?? getPreviousLineNumberMarkModifiers(previousTargets) ?? []; + return { + type: target.type, + mark, + modifiers + }; +} +function shouldInferPreviousMark(target) { + return target.modifiers?.some((m) => m.type === "inferPreviousMark") ?? false; +} +function getPreservedModifiers(target) { + const preservedModifiers = target.modifiers?.filter( + (modifier) => modifier.type !== "inferPreviousMark" + ) ?? []; + return preservedModifiers.length !== 0 ? preservedModifiers : void 0; +} +function getLineNumberMarkModifiers(target) { + if (isLineNumberMark(target)) { + return [ + { + type: "containingScope", + scopeType: { + type: "line" + } + } + ]; + } + return void 0; +} +function isLineNumberMark(target) { + const isLineNumber = (mark) => mark?.type === "lineNumber"; + if (isLineNumber(target.mark)) { + return true; + } + if (target.mark?.type === "range") { + return isLineNumber(target.mark.anchor) && isLineNumber(target.mark.active); + } + return false; +} +function getPreviousMark(previousTargets) { + return getPreviousTargetAttribute( + previousTargets, + (target) => target.mark + ); +} +function getPreviousPreservedModifiers(previousTargets) { + return getPreviousTargetAttribute(previousTargets, getPreservedModifiers); +} +function getPreviousLineNumberMarkModifiers(previousTargets) { + return getPreviousTargetAttribute( + previousTargets, + getLineNumberMarkModifiers + ); +} +function getPreviousTargetAttribute(previousTargets, getAttribute) { + for (let i = previousTargets.length - 1; i > -1; --i) { + const target = previousTargets[i]; + switch (target.type) { + case "primitive": { + const attributeValue = getAttribute(target); + if (attributeValue != null) { + return attributeValue; + } + break; + } + case "range": { + const attributeValue = getPreviousTargetAttribute( + [target.anchor], + getAttribute + ); + if (attributeValue != null) { + return attributeValue; + } + break; + } + case "list": { + const attributeValue = getPreviousTargetAttribute( + target.elements, + getAttribute + ); + if (attributeValue != null) { + return attributeValue; + } + break; + } + } + } + return void 0; +} + +// ../cursorless-engine/src/core/commandRunner/CommandRunnerImpl.ts +var CommandRunnerImpl = class { + constructor(commandServerApi, debug, storedTargets, pipelineRunner, actions2) { + this.commandServerApi = commandServerApi; + this.debug = debug; + this.storedTargets = storedTargets; + this.pipelineRunner = pipelineRunner; + this.actions = actions2; + this.finalStages = []; + this.runAction = this.runAction.bind(this); + this.inferenceContext = new InferenceContext(this.debug); + } + /** + * Runs a Cursorless command. We proceed as follows: + * + * 1. Perform inference on targets to fill in details left out using things + * like previous targets. For example we would automatically infer that + * `"take funk air and bat"` is equivalent to `"take funk air and funk + * bat"`. See {@link inferFullTargetDescriptors} for details of how this is done. + * 2. Call {@link processTargets} to map each abstract {@link Target} object + * to a concrete list of {@link Target} objects. + * 3. Run the requested action on the given selections. The mapping from + * action id (eg `remove`) to implementation is defined in {@link Actions}. + * To understand how actions work, see some examples, such as `"take"` + * {@link SetSelection} and `"chuck"` {@link Delete}. See + * 4. Update `source` and `that` marks, if they have been returned from the + * action, and returns the desired return value indicated by the action, if + * it has one. + */ + async run(command) { + if (clientSupportsFallback(command)) { + const fallback = await getCommandFallback( + this.commandServerApi, + this.runAction, + command + ); + if (fallback != null) { + return { fallback }; + } + } + const { + returnValue, + thatSelections: newThatSelections, + thatTargets: newThatTargets, + sourceSelections: newSourceSelections, + sourceTargets: newSourceTargets, + instanceReferenceTargets: newInstanceReferenceTargets, + keyboardTargets: newKeyboardTargets + } = await this.runAction(command.action); + this.storedTargets.set( + "that", + constructStoredTarget(newThatTargets, newThatSelections) + ); + this.storedTargets.set( + "source", + constructStoredTarget(newSourceTargets, newSourceSelections) + ); + this.storedTargets.set("instanceReference", newInstanceReferenceTargets); + this.storedTargets.set("keyboard", newKeyboardTargets); + return { returnValue }; + } + runAction(actionDescriptor) { + this.inferenceContext.reset(); + this.finalStages = []; + switch (actionDescriptor.name) { + case "replaceWithTarget": + return this.actions.replaceWithTarget.run( + this.getTargets(actionDescriptor.source), + this.getDestinations(actionDescriptor.destination) + ); + case "moveToTarget": + return this.actions.moveToTarget.run( + this.getTargets(actionDescriptor.source), + this.getDestinations(actionDescriptor.destination) + ); + case "swapTargets": + return this.actions.swapTargets.run( + this.getTargets(actionDescriptor.target1), + this.getTargets(actionDescriptor.target2) + ); + case "callAsFunction": + return this.actions.callAsFunction.run( + this.getTargets(actionDescriptor.callee), + this.getTargets(actionDescriptor.argument) + ); + case "wrapWithPairedDelimiter": + return this.actions.wrapWithPairedDelimiter.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.left, + actionDescriptor.right + ); + case "rewrapWithPairedDelimiter": + this.finalStages = this.actions.rewrapWithPairedDelimiter.getFinalStages(); + return this.actions.rewrapWithPairedDelimiter.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.left, + actionDescriptor.right + ); + case "pasteFromClipboard": + return this.actions.pasteFromClipboard.run( + this.getDestinations(actionDescriptor.destination) + ); + case "executeCommand": + return this.actions.executeCommand.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.commandId, + actionDescriptor.options + ); + case "replace": + return this.actions.replace.run( + this.getDestinations(actionDescriptor.destination), + actionDescriptor.replaceWith + ); + case "highlight": + return this.actions.highlight.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.highlightId + ); + case "generateSnippet": + return this.actions.generateSnippet.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.snippetName + ); + case "insertSnippet": + this.finalStages = this.actions.insertSnippet.getFinalStages( + actionDescriptor.snippetDescription + ); + return this.actions.insertSnippet.run( + this.getDestinations(actionDescriptor.destination), + actionDescriptor.snippetDescription + ); + case "wrapWithSnippet": + this.finalStages = this.actions.wrapWithSnippet.getFinalStages( + actionDescriptor.snippetDescription + ); + return this.actions.wrapWithSnippet.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.snippetDescription + ); + case "editNew": + return this.actions.editNew.run( + this.getDestinations(actionDescriptor.destination) + ); + case "getText": + return this.actions.getText.run( + this.getTargets(actionDescriptor.target), + actionDescriptor.options + ); + default: { + const action = this.actions[actionDescriptor.name]; + this.finalStages = action.getFinalStages?.() ?? []; + this.noAutomaticTokenExpansion = action.noAutomaticTokenExpansion ?? false; + return action.run(this.getTargets(actionDescriptor.target)); + } + } + } + getTargets(partialTargetsDescriptor) { + const targetDescriptor = this.inferenceContext.run( + partialTargetsDescriptor + ); + return this.pipelineRunner.run(targetDescriptor, { + actionFinalStages: this.finalStages, + noAutomaticTokenExpansion: this.noAutomaticTokenExpansion + }); + } + getDestinations(destinationDescriptor) { + switch (destinationDescriptor.type) { + case "list": + return destinationDescriptor.destinations.flatMap( + (destination) => this.getDestinations(destination) + ); + case "primitive": + return this.getTargets(destinationDescriptor.target).map( + (target) => target.toDestination(destinationDescriptor.insertionMode) + ); + case "implicit": + return this.getTargets({ type: "implicit" }).map( + (target) => target.toDestination("to") + ); + } + } +}; +var InferenceContext = class { + constructor(debug) { + this.debug = debug; + this.previousTargets = []; + } + run(target) { + const ret = inferFullTargetDescriptor(target, this.previousTargets); + if (this.debug.active) { + this.debug.log("Full target:"); + this.debug.log(JSON.stringify(ret, null, 2)); + } + this.previousTargets.push(target); + return ret; + } + reset() { + this.previousTargets = []; + } +}; +function constructStoredTarget(targets, selections) { + if (targets != null && selections != null) { + throw Error( + "Actions may only return full targets or selections for that mark" + ); + } + if (selections != null) { + return selections.map(selectionToStoredTarget); + } else { + return targets; + } +} + +// ../cursorless-engine/src/util/getPrimitiveTargets.ts +function getPartialPrimitiveTargets(targets) { + return targets.flatMap(getPartialPrimitiveTargetsHelper); +} +function getPartialPrimitiveTargetsHelper(target) { + switch (target.type) { + case "primitive": + return [target]; + case "list": + return target.elements.flatMap(getPartialPrimitiveTargetsHelper); + case "range": + return [target.anchor, target.active].flatMap( + getPartialPrimitiveTargetsHelper + ); + case "implicit": + return []; + } +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts +var SCOPE_TYPE_CANONICALIZATION_MAPPING = { + arrowFunction: "anonymousFunction", + dictionary: "map", + regex: "regularExpression" +}; +var COLOR_CANONICALIZATION_MAPPING = { + purple: "pink" +}; +function canonicalizeScopeTypesInPlace(target) { + target.modifiers?.forEach((mod) => { + if (mod.type === "containingScope" || mod.type === "everyScope") { + mod.scopeType.type = SCOPE_TYPE_CANONICALIZATION_MAPPING[mod.scopeType.type] ?? mod.scopeType.type; + } + }); +} +function canonicalizeColorsInPlace(target) { + if (target.mark?.type === "decoratedSymbol") { + target.mark.symbolColor = COLOR_CANONICALIZATION_MAPPING[target.mark.symbolColor] ?? target.mark.symbolColor; + } +} +function canonicalizeTargetsInPlace(partialTargets) { + getPartialPrimitiveTargets(partialTargets).forEach((target) => { + canonicalizeScopeTypesInPlace(target); + canonicalizeColorsInPlace(target); + }); +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts +function upgradeV0ToV1(command) { + return { ...command, version: 1 }; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts +var import_lodash50 = __toESM(require_lodash(), 1); +var STRICT_HERE = { + type: "primitive", + mark: { type: "cursor" }, + selectionType: "token", + position: "contents", + modifier: { type: "identity" }, + insideOutsideType: "inside" +}; +var IMPLICIT_TARGET = { + type: "primitive", + isImplicit: true +}; +var upgradeStrictHere = (target) => (0, import_lodash50.isEqual)(target, STRICT_HERE) ? IMPLICIT_TARGET : target; + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts +function upgradeV1ToV2(command) { + const actionName = command.action; + return { + spokenForm: command.spokenForm, + action: { + name: actionName, + args: command.extraArgs + }, + targets: upgradeTargets(command.targets, actionName), + usePrePhraseSnapshot: command.usePrePhraseSnapshot ?? false, + version: 2 + }; +} +function upgradeModifier(modifier) { + switch (modifier.type) { + case "identity": + return []; + case "containingScope": { + const { includeSiblings, scopeType, type: type2, ...rest } = modifier; + return [ + { + type: includeSiblings ? "everyScope" : "containingScope", + scopeType: { + type: scopeType + }, + ...rest + } + ]; + } + case "surroundingPair": { + const { delimiterInclusion, ...rest } = modifier; + const surroundingPairModifier = { + type: "containingScope", + scopeType: rest + }; + if (delimiterInclusion === "interiorOnly" || delimiterInclusion === "excludeInterior") { + if (surroundingPairModifier.scopeType.delimiter === "any") { + return [{ type: delimiterInclusion }]; + } + return [{ type: delimiterInclusion }, surroundingPairModifier]; + } + return [surroundingPairModifier]; + } + case "subpiece": { + const { type: type2, pieceType, ...rest } = modifier; + return [ + { + type: "ordinalRange", + scopeType: { type: pieceType }, + ...rest + } + ]; + } + case "head": + return [{ type: "extendThroughStartOf" }]; + case "tail": + return [{ type: "extendThroughEndOf" }]; + default: + return [modifier]; + } +} +function upgradePrimitiveTarget(target, action) { + const { + type: type2, + isImplicit, + mark, + insideOutsideType, + modifier, + selectionType, + position + } = target; + const modifiers = []; + if (position && position !== "contents") { + if (position === "before") { + if (insideOutsideType === "inside") { + modifiers.push({ type: "position", position: "start" }); + } else if (action === "remove") { + modifiers.push({ type: "leading" }); + } else { + modifiers.push({ type: "position", position: "before" }); + } + } else { + if (insideOutsideType === "inside") { + modifiers.push({ type: "position", position: "end" }); + } else if (action === "remove") { + modifiers.push({ type: "trailing" }); + } else { + modifiers.push({ type: "position", position: "after" }); + } + } + } + if (selectionType) { + switch (selectionType) { + case "token": + if (modifier?.type === "subpiece") { + break; + } + case "line": + if (mark?.type === "lineNumber") { + break; + } + default: + modifiers.push({ + type: "containingScope", + scopeType: { type: selectionType } + }); + } + } + if (modifier) { + modifiers.push(...upgradeModifier(modifier)); + } + return { + type: type2, + isImplicit, + // Empty array of modifiers is not allowed + modifiers: modifiers.length > 0 ? modifiers : void 0, + // Cursor token is just cursor position but treated as a token. This is done in the pipeline for normal cursor now + mark: mark?.type === "cursorToken" ? void 0 : mark + }; +} +function upgradeTarget(target, action) { + switch (target.type) { + case "list": + return { + ...target, + elements: target.elements.map( + (target2) => upgradeTarget(target2, action) + ) + }; + case "range": { + const { type: type2, rangeType, start, end, excludeStart, excludeEnd } = target; + return { + type: type2, + rangeType, + anchor: upgradePrimitiveTarget(start, action), + active: upgradePrimitiveTarget(end, action), + excludeAnchor: excludeStart ?? false, + excludeActive: excludeEnd ?? false + }; + } + case "primitive": + return upgradePrimitiveTarget(target, action); + } +} +function upgradeTargets(partialTargets, action) { + return partialTargets.map((target) => upgradeTarget(target, action)).map( + (target) => target.type === "primitive" ? upgradeStrictHere(target) : target + ); +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts +var import_lodash51 = __toESM(require_lodash(), 1); +function upgradeV2ToV3(command) { + return { + ...command, + version: 3, + targets: command.targets.map(upgradeTarget2) + }; +} +function upgradeTarget2(target) { + switch (target.type) { + case "list": + return { + ...target, + elements: target.elements.map( + (target2) => upgradeTarget2(target2) + ) + }; + case "range": { + const { anchor, active, ...rest } = target; + return { + anchor: upgradePrimitiveTarget2( + anchor + ), + active: upgradePrimitiveTarget2( + active + ), + ...rest + }; + } + case "primitive": + return upgradePrimitiveTarget2(target); + } +} +function upgradePrimitiveTarget2(target) { + const modifiers = target.modifiers != null ? target.modifiers.map(updateModifier) : void 0; + if (target.mark?.type === "lineNumber") { + const { anchor, active } = target.mark; + if (anchor.type !== active.type || anchor.lineNumber < 0 !== active.lineNumber < 0) { + return { + type: "range", + anchor: { + type: "primitive", + mark: createLineNumberMarkFromPos(anchor), + modifiers + }, + active: { + type: "primitive", + mark: createLineNumberMarkFromPos(active) + }, + excludeAnchor: false, + excludeActive: false + }; + } + } + return { + ...target, + mark: target.mark != null ? updateMark(target.mark) : void 0, + modifiers + }; +} +function updateMark(mark) { + switch (mark.type) { + case "lineNumber": + return createLineNumberMark(mark); + default: + return mark; + } +} +function updateModifier(modifier) { + switch (modifier.type) { + case "ordinalRange": + return createOrdinalModifier(modifier); + default: + return modifier; + } +} +function createLineNumberMark(mark) { + if ((0, import_lodash51.isEqual)(mark.anchor, mark.active)) { + return createLineNumberMarkFromPos(mark.anchor); + } + return { + type: "range", + anchor: createLineNumberMarkFromPos(mark.anchor), + active: createLineNumberMarkFromPos(mark.active) + }; +} +function createOrdinalModifier(modifier) { + if (modifier.anchor === modifier.active) { + return createAbsoluteOrdinalModifier(modifier.scopeType, modifier.anchor); + } + if (modifier.anchor === 0 && modifier.active > modifier.anchor) { + return createAbsoluteOrdinalModifier( + modifier.scopeType, + modifier.anchor, + modifier.active - modifier.anchor + 1 + ); + } + if (modifier.anchor < 0 && modifier.active === -1) { + return createAbsoluteOrdinalModifier( + modifier.scopeType, + modifier.anchor, + -modifier.anchor + ); + } + return { + type: "range", + anchor: createAbsoluteOrdinalModifier(modifier.scopeType, modifier.anchor), + active: createAbsoluteOrdinalModifier(modifier.scopeType, modifier.active), + excludeAnchor: modifier.excludeAnchor, + excludeActive: modifier.excludeActive + }; +} +function createLineNumberMarkFromPos(position) { + return { + type: "lineNumber", + lineNumberType: position.type, + lineNumber: position.lineNumber + }; +} +function createAbsoluteOrdinalModifier(scopeType, start, length = 1) { + return { + type: "ordinalScope", + scopeType, + start, + length + }; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts +function upgradeV3ToV4(command) { + return { + ...command, + version: 4, + targets: command.targets.map(upgradeTarget3) + }; +} +function upgradeTarget3(target) { + switch (target.type) { + case "primitive": + return upgradePrimitiveTarget3(target); + case "range": { + const { anchor, ...rest } = target; + return { + ...rest, + anchor: upgradePrimitiveTarget3(anchor) + }; + } + case "list": { + const { elements, ...rest } = target; + return { + ...rest, + elements: elements.map(upgradeTarget3) + }; + } + } +} +function upgradePrimitiveTarget3(target) { + if (target.mark == null && target.modifiers == null || target.isImplicit) { + return { type: "implicit" }; + } + return target; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts +function upgradeV4ToV5(command) { + return { + ...command, + version: 5, + action: upgradeAction(command.action), + targets: command.targets.map(upgradeTarget4) + }; +} +function upgradeAction(action) { + switch (action.name) { + case "wrapWithSnippet": { + const [name, variableName] = parseSnippetLocation( + action.args[0] + ); + return { + name: "wrapWithSnippet", + args: [ + { + type: "named", + name, + variableName + } + ] + }; + } + case "insertSnippet": { + const [name, substitutions] = action.args; + const snippetDescription = { + type: "named", + name + }; + if (substitutions != null) { + snippetDescription.substitutions = substitutions; + } + return { + name: "insertSnippet", + args: [snippetDescription] + }; + } + default: + return action; + } +} +function parseSnippetLocation(snippetLocation) { + const [snippetName, placeholderName] = snippetLocation.split("."); + if (snippetName == null || placeholderName == null) { + throw new Error("Snippet location missing '.'"); + } + return [snippetName, placeholderName]; +} +function upgradeTarget4(target) { + switch (target.type) { + case "implicit": + return target; + case "list": + return { + ...target, + elements: target.elements.map( + upgradeTarget4 + ) + }; + case "range": + return { + ...target, + anchor: upgradeTarget4( + target.anchor + ), + active: upgradeTarget4( + target.active + ) + }; + case "primitive": + return { + ...target, + mark: target.mark != null ? upgradeMark(target.mark) : void 0, + modifiers: target.modifiers != null && target.modifiers.length > 0 ? target.modifiers.map(upgradeModifier2) : void 0 + }; + } +} +function upgradeMark(mark) { + if (mark.type === "range") { + return { + ...mark, + anchor: upgradeMark(mark.anchor), + active: upgradeMark(mark.active), + excludeAnchor: mark.excludeAnchor ?? false, + excludeActive: mark.excludeActive ?? false + }; + } + return mark; +} +function upgradeModifier2(modifier) { + if (modifier.type === "range") { + return { + ...modifier, + anchor: upgradeModifier2(modifier.anchor), + active: upgradeModifier2(modifier.active), + excludeAnchor: modifier.excludeAnchor ?? false, + excludeActive: modifier.excludeActive ?? false + }; + } + return modifier; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts +var actionAliasToCanonicalName = { + bring: "replaceWithTarget", + call: "callAsFunction", + clear: "clearAndSetSelection", + commentLines: "toggleLineComment", + copy: "copyToClipboard", + cut: "cutToClipboard", + delete: "remove", + editNewLineAbove: "editNewLineBefore", + editNewLineBelow: "editNewLineAfter", + findInFiles: "findInWorkspace", + fold: "foldRegion", + indentLines: "indentLine", + insertEmptyLineAbove: "insertEmptyLineBefore", + insertEmptyLineBelow: "insertEmptyLineAfter", + insertLineAfter: "editNewLineAfter", + insertLineBefore: "editNewLineBefore", + move: "moveToTarget", + outdentLines: "outdentLine", + paste: "pasteFromClipboard", + reverse: "reverseTargets", + setBreakpoint: "toggleLineBreakpoint", + sort: "sortTargets", + swap: "swapTargets", + unfold: "unfoldRegion", + use: "replaceWithTarget", + wrap: "wrapWithPairedDelimiter" +}; +function canonicalizeActionName(actionName) { + const canonicalName = actionAliasToCanonicalName[actionName] ?? actionName; + if (!actionNames.includes(canonicalName)) { + throw new Error(`Unknown action name: ${canonicalName}`); + } + return canonicalName; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts +function upgradeV5ToV6(command) { + return { + version: 6, + spokenForm: command.spokenForm, + usePrePhraseSnapshot: command.usePrePhraseSnapshot, + action: upgradeAction2(command.action, command.targets) + }; +} +function upgradeAction2(action, targets) { + const name = canonicalizeActionName(action.name); + switch (name) { + case "replaceWithTarget": + case "moveToTarget": + return { + name, + source: upgradeTarget5(targets[0]), + destination: targetToDestination(targets[1]) + }; + case "swapTargets": + return { + name, + target1: upgradeTarget5(targets[0]), + target2: upgradeTarget5(targets[1]) + }; + case "callAsFunction": + return { + name, + callee: upgradeTarget5(targets[0]), + argument: upgradeTarget5(targets[1]) + }; + case "pasteFromClipboard": + return { + name, + destination: targetToDestination(targets[0]) + }; + case "wrapWithPairedDelimiter": + case "rewrapWithPairedDelimiter": + return { + name, + left: action.args[0], + right: action.args[1], + target: upgradeTarget5(targets[0]) + }; + case "generateSnippet": + return { + name, + snippetName: action.args?.[0], + target: upgradeTarget5(targets[0]) + }; + case "insertSnippet": + return { + name, + snippetDescription: action.args[0], + destination: targetToDestination(targets[0]) + }; + case "wrapWithSnippet": + return { + name, + snippetDescription: action.args[0], + target: upgradeTarget5(targets[0]) + }; + case "executeCommand": + return { + name, + commandId: action.args[0], + options: action.args?.[1], + target: upgradeTarget5(targets[0]) + }; + case "replace": + return { + name, + replaceWith: action.args[0], + destination: targetToDestination(targets[0]) + }; + case "highlight": { + const result = { + name, + target: upgradeTarget5(targets[0]) + }; + if (action.args?.[0] != null) { + result.highlightId = action.args?.[0]; + } + return result; + } + case "editNew": + return { + name, + destination: targetToDestination(targets[0]) + }; + case "getText": + return { + name, + options: action.args?.[0], + target: upgradeTarget5(targets[0]) + }; + default: + return { + name, + target: upgradeTarget5(targets[0]) + }; + } +} +function upgradeTarget5(target) { + switch (target.type) { + case "list": + case "range": + case "primitive": + return upgradeNonImplicitTarget(target); + case "implicit": + return target; + } +} +function upgradeNonImplicitTarget(target) { + switch (target.type) { + case "list": + return upgradeListTarget(target); + case "range": + case "primitive": + return upgradeRangeOrPrimitiveTarget(target); + } +} +function upgradeListTarget(target) { + return { + ...target, + elements: target.elements.map(upgradeRangeOrPrimitiveTarget) + }; +} +function upgradeRangeOrPrimitiveTarget(target) { + switch (target.type) { + case "range": + return upgradeRangeTarget(target); + case "primitive": + return upgradePrimitiveTarget4(target); + } +} +function upgradeRangeTarget(target) { + const { anchor, active } = target; + const result = { + type: "range", + anchor: anchor.type === "implicit" ? anchor : upgradePrimitiveTarget4(anchor), + active: upgradePrimitiveTarget4(active), + excludeAnchor: target.excludeAnchor, + excludeActive: target.excludeActive + }; + if (target.rangeType != null) { + result.rangeType = target.rangeType; + } + return result; +} +function upgradePrimitiveTarget4(target) { + const result = { + type: "primitive" + }; + const modifiers = upgradeModifiers(target.modifiers); + if (modifiers != null) { + result.modifiers = modifiers; + } + if (target.mark != null) { + result.mark = target.mark; + } + return result; +} +function targetToDestination(target) { + switch (target.type) { + case "list": + return listTargetToDestination(target); + case "range": + return rangeTargetToDestination(target); + case "primitive": + return primitiveTargetToDestination(target); + case "implicit": + return implicitTargetToDestination(); + } +} +function listTargetToDestination(target) { + const destinations = []; + let currentElements = []; + let currentInsertionMode = void 0; + const potentiallyAddDestination = () => { + if (currentElements.length > 0) { + destinations.push({ + type: "primitive", + insertionMode: currentInsertionMode ?? "to", + target: currentElements.length === 1 ? currentElements[0] : { + type: "list", + elements: currentElements + } + }); + } + }; + target.elements.forEach((element) => { + const insertionMode = getInsertionMode(element); + if (insertionMode != null) { + potentiallyAddDestination(); + currentElements = [upgradeRangeOrPrimitiveTarget(element)]; + currentInsertionMode = insertionMode; + } else { + currentElements.push(upgradeRangeOrPrimitiveTarget(element)); + } + }); + potentiallyAddDestination(); + if (destinations.length > 1) { + return { + type: "list", + destinations + }; + } + return destinations[0]; +} +function rangeTargetToDestination(target) { + return { + type: "primitive", + insertionMode: getInsertionMode(target.anchor) ?? "to", + target: upgradeRangeTarget(target) + }; +} +function primitiveTargetToDestination(target) { + return { + type: "primitive", + insertionMode: getInsertionMode(target) ?? "to", + target: upgradePrimitiveTarget4(target) + }; +} +function implicitTargetToDestination() { + return { type: "implicit" }; +} +function getInsertionMode(target) { + switch (target.type) { + case "implicit": + return "to"; + case "primitive": + return getInsertionModeFromPrimitive(target); + case "range": + return getInsertionMode(target.anchor); + } +} +function getInsertionModeFromPrimitive(target) { + const positionModifier = target.modifiers?.find( + (m) => m.type === "position" + ); + if (positionModifier != null) { + if (target.modifiers.indexOf(positionModifier) !== 0) { + throw Error("Position modifier has to be at first index"); + } + if (positionModifier?.position === "before" || positionModifier?.position === "after") { + return positionModifier.position; + } + } + return void 0; +} +function upgradeModifiers(modifiers) { + const result = []; + if (modifiers != null) { + for (const modifier of modifiers) { + if (modifier.type === "position") { + if (modifier.position === "start") { + result.push({ type: "startOf" }); + } else if (modifier.position === "end") { + result.push({ type: "endOf" }); + } + } else { + result.push(modifier); + } + } + } + return result.length > 0 ? result : void 0; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts +function upgradeV6ToV7(command) { + return { ...command, version: 7 }; +} + +// ../cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts +function canonicalizeAndValidateCommand(command) { + const commandUpgraded = upgradeCommand(command); + const { action, usePrePhraseSnapshot = false, spokenForm } = commandUpgraded; + return { + version: LATEST_VERSION, + spokenForm, + action: produce(action, (draft) => { + const partialTargets = getPartialTargetDescriptors(draft); + canonicalizeTargetsInPlace(partialTargets); + validateCommand(action.name, partialTargets); + }), + usePrePhraseSnapshot + }; +} +function upgradeCommand(command) { + if (command.version > LATEST_VERSION) { + throw new OutdatedExtensionError(); + } + while (command.version < LATEST_VERSION) { + switch (command.version) { + case 0: + command = upgradeV0ToV1(command); + break; + case 1: + command = upgradeV1ToV2(command); + break; + case 2: + command = upgradeV2ToV3(command); + break; + case 3: + command = upgradeV3ToV4(command); + break; + case 4: + command = upgradeV4ToV5(command); + break; + case 5: + command = upgradeV5ToV6(command); + break; + case 6: + command = upgradeV6ToV7(command); + break; + default: + throw new Error( + `Can't upgrade from unknown version ${command.version}` + ); + } + } + if (command.version !== LATEST_VERSION) { + throw new Error("Command is not latest version"); + } + return command; +} +function validateCommand(actionName, partialTargets) { + if (usesScopeType("notebookCell", partialTargets) && !["editNewLineBefore", "editNewLineAfter"].includes(actionName)) { + throw new Error( + "The notebookCell scope type is currently only supported with the actions editNewLineAbove and editNewLineBelow" + ); + } +} +function usesScopeType(scopeTypeType, partialTargets) { + return getPartialPrimitiveTargets(partialTargets).some( + (partialTarget) => partialTarget.modifiers?.find( + (mod) => (mod.type === "containingScope" || mod.type === "everyScope") && mod.scopeType.type === scopeTypeType + ) + ); +} + +// ../cursorless-engine/src/processTargets/marks/CursorStage.ts +var CursorStage = class { + constructor(mark) { + this.mark = mark; + } + run() { + return getActiveSelections(ide()).map( + (selection) => new UntypedTarget({ + editor: selection.editor, + isReversed: selection.selection.isReversed, + contentRange: selection.selection, + hasExplicitRange: !selection.selection.isEmpty, + isToken: false + }) + ); + } +}; + +// ../cursorless-engine/src/processTargets/marks/DecoratedSymbolStage.ts +var DecoratedSymbolStage = class { + constructor(readableHatMap, mark) { + this.readableHatMap = readableHatMap; + this.mark = mark; + } + run() { + const token = this.readableHatMap.getToken( + this.mark.symbolColor, + this.mark.character + ); + if (token == null) { + throw new Error( + `Couldn't find mark ${this.mark.symbolColor} '${this.mark.character}'` + ); + } + return [ + new UntypedTarget({ + editor: token.editor, + contentRange: token.range, + isReversed: false, + hasExplicitRange: false + }) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/marks/ExplicitMarkStage.ts +var ExplicitMarkStage = class { + constructor(mark) { + this.mark = mark; + } + run() { + const { + editorId, + range: { start, end } + } = this.mark; + const editor = ide().visibleTextEditors.find((e) => e.id === editorId); + if (editor == null) { + throw new Error(`Couldn't find editor '${editorId}'`); + } + const contentRange = new Range( + start.line, + start.character, + end.line, + end.character + ); + return [ + new UntypedTarget({ + editor, + contentRange, + isReversed: false, + hasExplicitRange: false + }) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/marks/LineNumberStage.ts +var LineNumberStage = class { + constructor(mark) { + this.mark = mark; + } + run() { + const editor = ide().activeTextEditor; + if (editor == null) { + return []; + } + const lineNumber = getLineNumber2( + editor, + this.mark.lineNumberType, + this.mark.lineNumber + ); + const contentRange = editor.document.lineAt(lineNumber).range; + return [createLineTarget(editor, false, contentRange)]; + } +}; +var getLineNumber2 = (editor, lineNumberType, lineNumber) => { + switch (lineNumberType) { + case "absolute": + return lineNumber; + case "relative": + return editor.selections[0].active.line + lineNumber; + case "modulo100": { + const stepSize = 100; + const startLine = editor.visibleRanges[0].start.line; + const endLine = editor.visibleRanges[editor.visibleRanges.length - 1].end.line; + const base = Math.floor(startLine / stepSize) * stepSize; + const visibleLines = []; + const invisibleLines = []; + let currentLineNumber = base + lineNumber; + while (currentLineNumber <= endLine) { + if (currentLineNumber >= startLine) { + const visible = editor.visibleRanges.find( + (r) => currentLineNumber >= r.start.line && currentLineNumber <= r.end.line + ); + if (visible) { + visibleLines.push(currentLineNumber); + } else { + invisibleLines.push(currentLineNumber); + } + } + currentLineNumber += stepSize; + } + if (visibleLines.length === 1) { + return visibleLines[0]; + } + if (visibleLines.length + invisibleLines.length > 1) { + throw new Error("Multiple lines matching"); + } + if (invisibleLines.length === 1) { + return invisibleLines[0]; + } + throw new Error("Line is not in viewport"); + } + } +}; + +// ../cursorless-engine/src/processTargets/marks/NothingStage.ts +var NothingStage = class { + constructor(mark) { + this.mark = mark; + } + run() { + return []; + } +}; + +// ../cursorless-engine/src/processTargets/marks/RangeMarkStage.ts +var RangeMarkStage = class { + constructor(markStageFactory, mark) { + this.markStageFactory = markStageFactory; + this.mark = mark; + } + run() { + const anchorStage = this.markStageFactory.create(this.mark.anchor); + const activeStage = this.markStageFactory.create(this.mark.active); + const anchorTargets = anchorStage.run(); + const activeTargets = activeStage.run(); + if (anchorTargets.length !== 1 || activeTargets.length !== 1) { + throw new Error("Expected single anchor and active target"); + } + return [ + targetsToContinuousTarget( + anchorTargets[0], + activeTargets[0], + this.mark.excludeAnchor, + this.mark.excludeActive + ) + ]; + } +}; + +// ../cursorless-engine/src/processTargets/marks/StoredTargetStage.ts +var StoredTargetStage = class { + constructor(storedTargets, key) { + this.storedTargets = storedTargets; + this.key = key; + } + run() { + const targets = this.storedTargets.get(this.key); + if (targets == null || targets.length === 0) { + throw Error(`No available ${this.key} marks`); + } + return targets; + } +}; + +// ../cursorless-engine/src/processTargets/marks/TargetMarkStage.ts +var TargetMarkStage = class { + constructor(targetPipelineRunner, mark) { + this.targetPipelineRunner = targetPipelineRunner; + this.mark = mark; + } + run() { + return this.targetPipelineRunner.run(this.mark.target); + } +}; + +// ../cursorless-engine/src/processTargets/MarkStageFactoryImpl.ts +var MarkStageFactoryImpl = class { + constructor(readableHatMap, storedTargets) { + this.readableHatMap = readableHatMap; + this.storedTargets = storedTargets; + this.create = this.create.bind(this); + } + setPipelineRunner(targetPipelineRunner) { + this.targetPipelineRunner = targetPipelineRunner; + } + create(mark) { + switch (mark.type) { + case "cursor": + return new CursorStage(mark); + case "that": + case "source": + case "keyboard": + return new StoredTargetStage(this.storedTargets, mark.type); + case "decoratedSymbol": + return new DecoratedSymbolStage(this.readableHatMap, mark); + case "lineNumber": + return new LineNumberStage(mark); + case "range": + return new RangeMarkStage(this, mark); + case "nothing": + return new NothingStage(mark); + case "target": + return new TargetMarkStage(this.targetPipelineRunner, mark); + case "explicit": + return new ExplicitMarkStage(mark); + } + } +}; + +// ../cursorless-engine/src/runCommand.ts +async function runCommand(treeSitter, commandServerApi, debug, hatTokenMap, snippets, storedTargets, languageDefinitions, rangeUpdater, commandRunnerDecorators, command) { + if (debug.active) { + debug.log(`command:`); + debug.log(JSON.stringify(command, null, 2)); + } + const commandComplete = canonicalizeAndValidateCommand(command); + const readableHatMap = await hatTokenMap.getReadableMap( + commandComplete.usePrePhraseSnapshot + ); + let commandRunner = createCommandRunner( + treeSitter, + commandServerApi, + languageDefinitions, + debug, + storedTargets, + readableHatMap, + snippets, + rangeUpdater + ); + for (const decorator of commandRunnerDecorators) { + commandRunner = decorator.wrapCommandRunner(readableHatMap, commandRunner); + } + const response = await commandRunner.run(commandComplete); + return await unwrapLegacyCommandResponse(command, response); +} +async function unwrapLegacyCommandResponse(command, response) { + if (clientSupportsFallback(command)) { + return response; + } + if ("returnValue" in response) { + return response.returnValue; + } + return void 0; +} +function createCommandRunner(treeSitter, commandServerApi, languageDefinitions, debug, storedTargets, readableHatMap, snippets, rangeUpdater) { + const modifierStageFactory = new ModifierStageFactoryImpl( + languageDefinitions, + storedTargets, + new ScopeHandlerFactoryImpl(languageDefinitions) + ); + const markStageFactory = new MarkStageFactoryImpl( + readableHatMap, + storedTargets + ); + const targetPipelineRunner = new TargetPipelineRunner( + modifierStageFactory, + markStageFactory + ); + markStageFactory.setPipelineRunner(targetPipelineRunner); + return new CommandRunnerImpl( + commandServerApi, + debug, + storedTargets, + targetPipelineRunner, + new Actions(treeSitter, snippets, rangeUpdater, modifierStageFactory) + ); +} + +// ../cursorless-engine/src/languages/LegacyLanguageId.ts +var legacyLanguageIds = [ + "c", + "clojure", + "cpp", + "csharp", + "css", + "go", + "html", + "java", + "javascript", + "javascriptreact", + "json", + "jsonc", + "latex", + "markdown", + "php", + "python", + "ruby", + "rust", + "scala", + "scss", + "typescript", + "typescriptreact", + "xml" +]; + +// ../cursorless-engine/src/runIntegrationTests.ts +var import_assert = __toESM(require("assert"), 1); +async function runIntegrationTests(treeSitter, languageDefinitions) { + await assertNoScopesBothLegacyAndNew(treeSitter, languageDefinitions); +} +async function assertNoScopesBothLegacyAndNew(treeSitter, languageDefinitions) { + const errors2 = []; + for (const languageId of legacyLanguageIds) { + await treeSitter.loadLanguage(languageId); + await languageDefinitions.loadLanguage(languageId); + unsafeKeys(languageMatchers[languageId] ?? {}).map((scopeTypeType) => { + if (languageDefinitions.get(languageId)?.getScopeHandler({ + type: scopeTypeType + }) != null) { + errors2.push( + `Scope '${scopeTypeType}' defined as both legacy and new for language ${languageId}` + ); + } + }); + } + import_assert.default.deepStrictEqual(errors2, []); +} + +// ../cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts +var import_lodash52 = __toESM(require_lodash(), 1); + +// ../cursorless-engine/src/scopeProviders/scopeTypeToString.ts +function scopeTypeToString(scopeType) { + if (isSimpleScopeType(scopeType)) { + return camelCaseToAllDown(scopeType.type).replace(".", " "); + } + if (scopeType.type === "surroundingPair") { + return `Matching pair of ${camelCaseToAllDown(scopeType.delimiter)}`; + } + if (scopeType.type === "customRegex") { + return `Regex \`${scopeType.regex}\``; + } + return "Unknown scope type"; +} + +// ../cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts +var ScopeInfoProvider = class { + constructor(customSpokenFormGenerator) { + this.customSpokenFormGenerator = customSpokenFormGenerator; + this.listeners = []; + this.disposable = customSpokenFormGenerator.onDidChangeCustomSpokenForms( + () => this.onChange() + ); + this.onDidChangeScopeInfo = this.onDidChangeScopeInfo.bind(this); + this.getScopeTypeInfo = this.getScopeTypeInfo.bind(this); + this.updateScopeTypeInfos(); + } + /** + * Registers a callback to be run when the scope info changes. The callback + * will be run immediately once with the current scope info. + * + * Includes information about the available scopes, including their custom + * spoken forms, if available. Note that even custom regex scopes will be + * available, as reported to the engine by Talon. + * @param callback The callback to run when the scope support changes + * @returns A {@link Disposable} which will stop the callback from running + */ + onDidChangeScopeInfo(callback2) { + callback2(this.getScopeTypeInfos()); + this.listeners.push(callback2); + return { + dispose: () => { + (0, import_lodash52.pull)(this.listeners, callback2); + } + }; + } + async onChange() { + this.updateScopeTypeInfos(); + this.listeners.forEach((listener) => listener(this.scopeInfos)); + } + updateScopeTypeInfos() { + const scopeTypes = [ + ...simpleScopeTypeTypes.filter((scopeTypeType) => scopeTypeType !== "instance").map((scopeTypeType) => ({ + type: scopeTypeType + })), + ...surroundingPairNames.map( + (surroundingPairName) => ({ + type: "surroundingPair", + delimiter: surroundingPairName + }) + ), + ...this.customSpokenFormGenerator.getCustomRegexScopeTypes() + ]; + this.scopeInfos = scopeTypes.map( + (scopeType) => this.getScopeTypeInfo(scopeType) + ); + } + getScopeTypeInfos() { + return this.scopeInfos; + } + getScopeTypeInfo(scopeType) { + return { + scopeType, + spokenForm: this.customSpokenFormGenerator.scopeTypeToSpokenForm(scopeType), + humanReadableName: scopeTypeToString(scopeType), + isLanguageSpecific: isLanguageSpecific(scopeType) + }; + } + dispose() { + this.disposable.dispose(); + } +}; +function isLanguageSpecific(scopeType) { + switch (scopeType.type) { + case "string": + case "argumentOrParameter": + case "anonymousFunction": + case "attribute": + case "branch": + case "class": + case "className": + case "collectionItem": + case "collectionKey": + case "command": + case "comment": + case "private.fieldAccess": + case "functionCall": + case "functionCallee": + case "functionName": + case "ifStatement": + case "instance": + case "list": + case "map": + case "name": + case "namedFunction": + case "regularExpression": + case "statement": + case "type": + case "value": + case "condition": + case "section": + case "sectionLevelOne": + case "sectionLevelTwo": + case "sectionLevelThree": + case "sectionLevelFour": + case "sectionLevelFive": + case "sectionLevelSix": + case "selector": + case "private.switchStatementSubject": + case "unit": + case "xmlBothTags": + case "xmlElement": + case "xmlEndTag": + case "xmlStartTag": + case "part": + case "chapter": + case "subSection": + case "subSubSection": + case "namedParagraph": + case "subParagraph": + case "environment": + return true; + case "character": + case "word": + case "token": + case "identifier": + case "line": + case "sentence": + case "paragraph": + case "document": + case "nonWhitespaceSequence": + case "boundedNonWhitespaceSequence": + case "url": + case "notebookCell": + case "surroundingPair": + case "customRegex": + case "glyph": + return false; + case "oneOf": + throw Error( + `Can't decide whether scope type ${JSON.stringify( + scopeType, + void 0, + 3 + )} is language-specific` + ); + } +} + +// ../cursorless-engine/src/scopeProviders/getIterationRange.ts +var import_lodash53 = __toESM(require_lodash(), 1); +function getIterationRange(editor, scopeHandler, visibleOnly) { + if (!visibleOnly) { + return editor.document.range; + } + let visibleRange = editor.visibleRanges.reduce( + (acc, range4) => acc.union(range4) + ); + visibleRange = editor.document.range.intersection( + visibleRange.with( + visibleRange.start.translate(-10), + visibleRange.end.translate(10) + ) + ); + const expandedStart = (0, import_lodash53.last)( + Array.from( + scopeHandler.generateScopes(editor, visibleRange.start, "forward", { + containment: "required" + }) + ) + )?.domain ?? visibleRange; + const expandedEnd = (0, import_lodash53.last)( + Array.from( + scopeHandler.generateScopes(editor, visibleRange.end, "forward", { + containment: "required" + }) + ) + )?.domain ?? visibleRange; + return expandedStart.union(expandedEnd); +} + +// ../cursorless-engine/src/scopeProviders/getTargetRanges.ts +function getTargetRanges(target) { + const interior = (() => { + try { + return target.getInteriorStrict().map(getTargetRanges); + } catch (error) { + if (error instanceof NoContainingScopeError) { + return void 0; + } + throw error; + } + })(); + const boundary = (() => { + try { + return target.getBoundaryStrict().map(getTargetRanges); + } catch (error) { + if (error instanceof NoContainingScopeError) { + return void 0; + } + throw error; + } + })(); + return { + contentRange: target.contentRange, + removalRange: target.getRemovalRange(), + removalHighlightRange: target.isLine ? toLineRange(target.getRemovalHighlightRange()) : toCharacterRange(target.getRemovalHighlightRange()), + leadingDelimiter: getOptionalTarget(target.getLeadingDelimiterTarget()), + trailingDelimiter: getOptionalTarget(target.getTrailingDelimiterTarget()), + interior, + boundary, + insertionDelimiter: target.insertionDelimiter + }; +} +function getOptionalTarget(target) { + return target != null ? getTargetRanges(target) : void 0; +} + +// ../cursorless-engine/src/scopeProviders/getIterationScopeRanges.ts +function getIterationScopeRanges(editor, iterationScopeHandler, everyStage, iterationRange, includeIterationNestedTargets) { + return map2( + iterationScopeHandler.generateScopes( + editor, + iterationRange.start, + "forward", + { + includeDescendantScopes: true, + distalPosition: iterationRange.end + } + ), + (scope) => { + return { + domain: scope.domain, + ranges: scope.getTargets(false).map((target) => ({ + range: target.contentRange, + targets: includeIterationNestedTargets ? getEveryScopeLenient(everyStage, target).map(getTargetRanges) : void 0 + })) + }; + } + ); +} +function getEveryScopeLenient(everyStage, target) { + try { + return everyStage.run(target); + } catch (err) { + if (err.name === "NoContainingScopeError") { + return []; + } + throw err; + } +} + +// ../cursorless-engine/src/scopeProviders/getScopeRanges.ts +function getScopeRanges(editor, scopeHandler, iterationRange) { + return map2( + scopeHandler.generateScopes(editor, iterationRange.start, "forward", { + includeDescendantScopes: true, + distalPosition: iterationRange.end + }), + (scope) => ({ + domain: scope.domain, + targets: scope.getTargets(false).map(getTargetRanges) + }) + ); +} + +// ../cursorless-engine/src/scopeProviders/ScopeRangeProvider.ts +var ScopeRangeProvider = class { + constructor(scopeHandlerFactory, modifierStageFactory) { + this.scopeHandlerFactory = scopeHandlerFactory; + this.modifierStageFactory = modifierStageFactory; + this.provideScopeRanges = this.provideScopeRanges.bind(this); + this.provideIterationScopeRanges = this.provideIterationScopeRanges.bind(this); + } + provideScopeRanges(editor, { scopeType, visibleOnly }) { + const scopeHandler = this.scopeHandlerFactory.create( + scopeType, + editor.document.languageId + ); + if (scopeHandler == null) { + return []; + } + return getScopeRanges( + editor, + scopeHandler, + getIterationRange(editor, scopeHandler, visibleOnly) + ); + } + provideIterationScopeRanges(editor, { scopeType, visibleOnly, includeNestedTargets }) { + const { languageId } = editor.document; + const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId); + if (scopeHandler == null) { + return []; + } + const iterationScopeHandler = this.scopeHandlerFactory.create( + scopeHandler.iterationScopeType, + languageId + ); + if (iterationScopeHandler == null) { + return []; + } + return getIterationScopeRanges( + editor, + iterationScopeHandler, + this.modifierStageFactory.create({ + type: "everyScope", + scopeType + }), + getIterationRange(editor, scopeHandler, visibleOnly), + includeNestedTargets + ); + } +}; + +// ../cursorless-engine/src/scopeProviders/ScopeRangeWatcher.ts +var import_lodash54 = __toESM(require_lodash(), 1); +var ScopeRangeWatcher = class { + constructor(languageDefinitions, scopeRangeProvider) { + this.scopeRangeProvider = scopeRangeProvider; + this.disposables = []; + this.debouncer = new Debouncer(() => this.onChange()); + this.listeners = []; + this.onChange = this.onChange.bind(this); + this.onDidChangeScopeRanges = this.onDidChangeScopeRanges.bind(this); + this.onDidChangeIterationScopeRanges = this.onDidChangeIterationScopeRanges.bind(this); + this.disposables.push( + // An Event which fires when the array of visible editors has changed. + ide().onDidChangeVisibleTextEditors(this.debouncer.run), + // An event that fires when a text document opens + ide().onDidOpenTextDocument(this.debouncer.run), + // An Event that fires when a text document closes + ide().onDidCloseTextDocument(this.debouncer.run), + // An event that is emitted when a text document is changed. This usually + // happens when the contents changes but also when other things like the + // dirty-state changes. + ide().onDidChangeTextDocument(this.debouncer.run), + ide().onDidChangeTextEditorVisibleRanges(this.debouncer.run), + languageDefinitions.onDidChangeDefinition(this.onChange), + this.debouncer + ); + } + /** + * Registers a callback to be run when the scope ranges change for any visible + * editor. The callback will be run immediately once for each visible editor + * with the current scope ranges. + * @param callback The callback to run when the scope ranges change + * @param config The configuration for the scope ranges + * @returns A {@link Disposable} which will stop the callback from running + */ + onDidChangeScopeRanges(callback2, config) { + const fn = () => { + ide().visibleTextEditors.forEach((editor) => { + let scopeRanges; + try { + scopeRanges = this.scopeRangeProvider.provideScopeRanges( + editor, + config + ); + } catch (err) { + showError( + ide().messages, + "ScopeRangeWatcher.provide", + err.message + ); + scopeRanges = []; + if (ide().runMode === "test") { + throw err; + } + } + callback2(editor, scopeRanges); + }); + }; + this.listeners.push(fn); + fn(); + return { + dispose: () => { + (0, import_lodash54.pull)(this.listeners, fn); + } + }; + } + /** + * Registers a callback to be run when the iteration scope ranges change for + * any visible editor. The callback will be run immediately once for each + * visible editor with the current iteration scope ranges. + * @param callback The callback to run when the scope ranges change + * @param config The configuration for the scope ranges + * @returns A {@link Disposable} which will stop the callback from running + */ + onDidChangeIterationScopeRanges(callback2, config) { + const fn = () => { + ide().visibleTextEditors.forEach((editor) => { + callback2( + editor, + this.scopeRangeProvider.provideIterationScopeRanges(editor, config) + ); + }); + }; + this.listeners.push(fn); + fn(); + return { + dispose: () => { + (0, import_lodash54.pull)(this.listeners, fn); + } + }; + } + onChange() { + this.listeners.forEach((listener) => listener()); + } + dispose() { + this.disposables.forEach(({ dispose }) => { + try { + dispose(); + } catch (e) { + } + }); + } +}; + +// ../cursorless-engine/src/scopeProviders/ScopeSupportChecker.ts +var ScopeSupportChecker = class { + constructor(scopeHandlerFactory) { + this.scopeHandlerFactory = scopeHandlerFactory; + this.getScopeSupport = this.getScopeSupport.bind(this); + this.getIterationScopeSupport = this.getIterationScopeSupport.bind(this); + } + /** + * Determine the level of support for {@link scopeType} in {@link editor}, as + * determined by its language id. + * @param editor The editor to check + * @param scopeType The scope type to check + * @returns The level of support for {@link scopeType} in {@link editor} + */ + getScopeSupport(editor, scopeType) { + const { languageId } = editor.document; + const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId); + if (scopeHandler == null) { + return getLegacyScopeSupport(languageId, scopeType); + } + return editorContainsScope(editor, scopeHandler) ? 0 /* supportedAndPresentInEditor */ : 1 /* supportedButNotPresentInEditor */; + } + /** + * Determine the level of support for the iteration scope of {@link scopeType} + * in {@link editor}, as determined by its language id. + * @param editor The editor to check + * @param scopeType The scope type to check + * @returns The level of support for the iteration scope of {@link scopeType} + * in {@link editor} + */ + getIterationScopeSupport(editor, scopeType) { + const { languageId } = editor.document; + const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId); + if (scopeHandler == null) { + return getLegacyScopeSupport(languageId, scopeType); + } + const iterationScopeHandler = this.scopeHandlerFactory.create( + scopeHandler.iterationScopeType, + languageId + ); + if (iterationScopeHandler == null) { + return 3 /* unsupported */; + } + return editorContainsScope(editor, iterationScopeHandler) ? 0 /* supportedAndPresentInEditor */ : 1 /* supportedButNotPresentInEditor */; + } +}; +function editorContainsScope(editor, scopeHandler) { + return !isEmptyIterable( + scopeHandler.generateScopes(editor, new Position(0, 0), "forward") + ); +} +function getLegacyScopeSupport(languageId, scopeType) { + switch (scopeType.type) { + case "boundedNonWhitespaceSequence": + case "surroundingPair": + return 2 /* supportedLegacy */; + case "notebookCell": + return 3 /* unsupported */; + default: + if (languageMatchers[languageId]?.[scopeType.type] != null) { + return 2 /* supportedLegacy */; + } + return 3 /* unsupported */; + } +} + +// ../cursorless-engine/src/scopeProviders/ScopeSupportWatcher.ts +var import_lodash55 = __toESM(require_lodash(), 1); +var ScopeSupportWatcher = class { + constructor(languageDefinitions, scopeSupportChecker, scopeInfoProvider) { + this.scopeSupportChecker = scopeSupportChecker; + this.scopeInfoProvider = scopeInfoProvider; + this.debouncer = new Debouncer(() => this.onChange()); + this.listeners = []; + this.onChange = this.onChange.bind(this); + this.onDidChangeScopeSupport = this.onDidChangeScopeSupport.bind(this); + this.disposable = disposableFrom( + // An event that fires when a text document opens + ide().onDidOpenTextDocument(this.debouncer.run), + // An Event that fires when a text document closes + ide().onDidCloseTextDocument(this.debouncer.run), + // An Event which fires when the active editor has changed. Note that the event also fires when the active editor changes to undefined. + ide().onDidChangeActiveTextEditor(this.debouncer.run), + // An event that is emitted when a text document is changed. This usually + // happens when the contents changes but also when other things like the + // dirty-state changes. + ide().onDidChangeTextDocument(this.debouncer.run), + languageDefinitions.onDidChangeDefinition(this.debouncer.run), + this.scopeInfoProvider.onDidChangeScopeInfo(this.onChange), + this.debouncer + ); + } + /** + * Registers a callback to be run when the scope support changes for the active + * editor. The callback will be run immediately once with the current support + * levels for the active editor. + * + * Note that this watcher could be expensive, because it runs all the scope + * handlers for the active editor every time the content of the active editor + * changes. If you only need info about the available scopes, including their + * spoken forms, you should use {@link onDidChangeScopeInfo} instead. + * @param callback The callback to run when the scope support changes + * @returns A {@link Disposable} which will stop the callback from running + */ + onDidChangeScopeSupport(callback2) { + callback2(this.getSupportLevels()); + this.listeners.push(callback2); + return { + dispose: () => { + (0, import_lodash55.pull)(this.listeners, callback2); + } + }; + } + onChange() { + if (this.listeners.length === 0) { + return; + } + const supportLevels = this.getSupportLevels(); + this.listeners.forEach((listener) => listener(supportLevels)); + } + getSupportLevels() { + const activeTextEditor = ide().activeTextEditor; + const getScopeTypeSupport = activeTextEditor == null ? () => 3 /* unsupported */ : (scopeType) => this.scopeSupportChecker.getScopeSupport( + activeTextEditor, + scopeType + ); + const getIterationScopeTypeSupport = activeTextEditor == null ? () => 3 /* unsupported */ : (scopeType) => this.scopeSupportChecker.getIterationScopeSupport( + activeTextEditor, + scopeType + ); + const scopeTypeInfos = this.scopeInfoProvider.getScopeTypeInfos(); + return scopeTypeInfos.map((scopeTypeInfo) => ({ + ...scopeTypeInfo, + support: getScopeTypeSupport(scopeTypeInfo.scopeType), + iterationScopeSupport: getIterationScopeTypeSupport( + scopeTypeInfo.scopeType + ) + })); + } + dispose() { + this.disposable.dispose(); + } +}; + +// ../cursorless-engine/src/cursorlessEngine.ts +async function createCursorlessEngine(treeSitter, ide2, hats, commandServerApi, fileSystem) { + injectIde(ide2); + const debug = new Debug(treeSitter); + const rangeUpdater = new RangeUpdater(); + const snippets = new Snippets(); + snippets.init(); + const hatTokenMap = new HatTokenMapImpl( + rangeUpdater, + debug, + hats, + commandServerApi + ); + hatTokenMap.allocateHats(); + const storedTargets = new StoredTargetMap(); + const languageDefinitions = new LanguageDefinitions(fileSystem, treeSitter); + await languageDefinitions.init(); + const talonSpokenForms = new TalonSpokenFormsJsonReader(fileSystem); + const customSpokenFormGenerator = new CustomSpokenFormGeneratorImpl( + talonSpokenForms + ); + ide2.disposeOnExit(rangeUpdater, languageDefinitions, hatTokenMap, debug); + const commandRunnerDecorators = []; + return { + commandApi: { + runCommand(command) { + return runCommand( + treeSitter, + commandServerApi, + debug, + hatTokenMap, + snippets, + storedTargets, + languageDefinitions, + rangeUpdater, + commandRunnerDecorators, + command + ); + }, + async runCommandSafe(...args) { + return runCommand( + treeSitter, + commandServerApi, + debug, + hatTokenMap, + snippets, + storedTargets, + languageDefinitions, + rangeUpdater, + commandRunnerDecorators, + ensureCommandShape(args) + ); + } + }, + scopeProvider: createScopeProvider( + languageDefinitions, + storedTargets, + customSpokenFormGenerator + ), + customSpokenFormGenerator, + storedTargets, + hatTokenMap, + snippets, + injectIde, + runIntegrationTests: () => runIntegrationTests(treeSitter, languageDefinitions), + addCommandRunnerDecorator: (decorator) => { + commandRunnerDecorators.push(decorator); + } + }; +} +function createScopeProvider(languageDefinitions, storedTargets, customSpokenFormGenerator) { + const scopeHandlerFactory = new ScopeHandlerFactoryImpl(languageDefinitions); + const rangeProvider = new ScopeRangeProvider( + scopeHandlerFactory, + new ModifierStageFactoryImpl( + languageDefinitions, + storedTargets, + scopeHandlerFactory + ) + ); + const rangeWatcher = new ScopeRangeWatcher( + languageDefinitions, + rangeProvider + ); + const supportChecker = new ScopeSupportChecker(scopeHandlerFactory); + const infoProvider = new ScopeInfoProvider(customSpokenFormGenerator); + const supportWatcher = new ScopeSupportWatcher( + languageDefinitions, + supportChecker, + infoProvider + ); + return { + provideScopeRanges: rangeProvider.provideScopeRanges, + provideIterationScopeRanges: rangeProvider.provideIterationScopeRanges, + onDidChangeScopeRanges: rangeWatcher.onDidChangeScopeRanges, + onDidChangeIterationScopeRanges: rangeWatcher.onDidChangeIterationScopeRanges, + getScopeSupport: supportChecker.getScopeSupport, + getIterationScopeSupport: supportChecker.getIterationScopeSupport, + onDidChangeScopeSupport: supportWatcher.onDidChangeScopeSupport, + getScopeInfo: infoProvider.getScopeTypeInfo, + onDidChangeScopeInfo: infoProvider.onDidChangeScopeInfo + }; +} + +// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/wrapper.mjs +var import_dist = __toESM(require_dist(), 1); +var v1 = import_dist.default.v1; +var v3 = import_dist.default.v3; +var v4 = import_dist.default.v4; +var v5 = import_dist.default.v5; +var NIL = import_dist.default.NIL; +var version = import_dist.default.version; +var validate = import_dist.default.validate; +var stringify = import_dist.default.stringify; +var parse = import_dist.default.parse; + +// ../cursorless-engine/src/CommandHistoryAnalyzer.ts +var import_lodash56 = __toESM(require_lodash(), 1); + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js +var import_brace_expansion = __toESM(require_brace_expansion(), 1); + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +var MAX_PATTERN_LENGTH = 1024 * 64; +var assertValidPattern = (pattern) => { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError("pattern is too long"); + } +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/brace-expressions.js +var posixClasses = { + "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], + "[:alpha:]": ["\\p{L}\\p{Nl}", true], + "[:ascii:]": ["\\x00-\\x7f", false], + "[:blank:]": ["\\p{Zs}\\t", true], + "[:cntrl:]": ["\\p{Cc}", true], + "[:digit:]": ["\\p{Nd}", true], + "[:graph:]": ["\\p{Z}\\p{C}", true, true], + "[:lower:]": ["\\p{Ll}", true], + "[:print:]": ["\\p{C}", true], + "[:punct:]": ["\\p{P}", true], + "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], + "[:upper:]": ["\\p{Lu}", true], + "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], + "[:xdigit:]": ["A-Fa-f0-9", false] +}; +var braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&"); +var regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var rangesToString = (ranges) => ranges.join(""); +var parseClass = (glob2, position) => { + const pos = position; + if (glob2.charAt(pos) !== "[") { + throw new Error("not in a brace expression"); + } + const ranges = []; + const negs = []; + let i = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ""; + WHILE: + while (i < glob2.length) { + const c = glob2.charAt(i); + if ((c === "!" || c === "^") && i === pos + 1) { + negate = true; + i++; + continue; + } + if (c === "]" && sawStart && !escaping) { + endPos = i + 1; + break; + } + sawStart = true; + if (c === "\\") { + if (!escaping) { + escaping = true; + i++; + continue; + } + } + if (c === "[" && !escaping) { + for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { + if (glob2.startsWith(cls, i)) { + if (rangeStart) { + return ["$.", false, glob2.length - pos, true]; + } + i += cls.length; + if (neg) + negs.push(unip); + else + ranges.push(unip); + uflag = uflag || u; + continue WHILE; + } + } + } + escaping = false; + if (rangeStart) { + if (c > rangeStart) { + ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c)); + } else if (c === rangeStart) { + ranges.push(braceEscape(c)); + } + rangeStart = ""; + i++; + continue; + } + if (glob2.startsWith("-]", i + 1)) { + ranges.push(braceEscape(c + "-")); + i += 2; + continue; + } + if (glob2.startsWith("-", i + 1)) { + rangeStart = c; + i += 2; + continue; + } + ranges.push(braceEscape(c)); + i++; + } + if (endPos < i) { + return ["", false, 0, false]; + } + if (!ranges.length && !negs.length) { + return ["$.", false, glob2.length - pos, true]; + } + if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) { + const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r), false, endPos - pos, false]; + } + const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; + const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; + const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs; + return [comb, uflag, endPos - pos, true]; +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/unescape.js +var unescape2 = (s, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/ast.js +var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]); +var isExtglobType = (c) => types.has(c); +var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))"; +var startNoDot = "(?!\\.)"; +var addPatternStart = /* @__PURE__ */ new Set(["[", "."]); +var justDots = /* @__PURE__ */ new Set(["..", "."]); +var reSpecials = new Set("().*{}+?[]^$\\!"); +var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var qmark = "[^/]"; +var star = qmark + "*?"; +var starNoEmpty = qmark + "+?"; +var AST = class _AST { + type; + #root; + #hasMagic; + #uflag = false; + #parts = []; + #parent; + #parentIndex; + #negs; + #filledNegs = false; + #options; + #toString; + // set to true if it's an extglob with no children + // (which really means one child of '') + #emptyExt = false; + constructor(type2, parent, options2 = {}) { + this.type = type2; + if (type2) + this.#hasMagic = true; + this.#parent = parent; + this.#root = this.#parent ? this.#parent.#root : this; + this.#options = this.#root === this ? options2 : this.#root.#options; + this.#negs = this.#root === this ? [] : this.#root.#negs; + if (type2 === "!" && !this.#root.#filledNegs) + this.#negs.push(this); + this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; + } + get hasMagic() { + if (this.#hasMagic !== void 0) + return this.#hasMagic; + for (const p of this.#parts) { + if (typeof p === "string") + continue; + if (p.type || p.hasMagic) + return this.#hasMagic = true; + } + return this.#hasMagic; + } + // reconstructs the pattern + toString() { + if (this.#toString !== void 0) + return this.#toString; + if (!this.type) { + return this.#toString = this.#parts.map((p) => String(p)).join(""); + } else { + return this.#toString = this.type + "(" + this.#parts.map((p) => String(p)).join("|") + ")"; + } + } + #fillNegs() { + if (this !== this.#root) + throw new Error("should only call on root"); + if (this.#filledNegs) + return this; + this.toString(); + this.#filledNegs = true; + let n; + while (n = this.#negs.pop()) { + if (n.type !== "!") + continue; + let p = n; + let pp = p.#parent; + while (pp) { + for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { + for (const part of n.#parts) { + if (typeof part === "string") { + throw new Error("string part in extglob AST??"); + } + part.copyIn(pp.#parts[i]); + } + } + p = pp; + pp = p.#parent; + } + } + return this; + } + push(...parts) { + for (const p of parts) { + if (p === "") + continue; + if (typeof p !== "string" && !(p instanceof _AST && p.#parent === this)) { + throw new Error("invalid part: " + p); + } + this.#parts.push(p); + } + } + toJSON() { + const ret = this.type === null ? this.#parts.slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...this.#parts.map((p) => p.toJSON())]; + if (this.isStart() && !this.type) + ret.unshift([]); + if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) { + ret.push({}); + } + return ret; + } + isStart() { + if (this.#root === this) + return true; + if (!this.#parent?.isStart()) + return false; + if (this.#parentIndex === 0) + return true; + const p = this.#parent; + for (let i = 0; i < this.#parentIndex; i++) { + const pp = p.#parts[i]; + if (!(pp instanceof _AST && pp.type === "!")) { + return false; + } + } + return true; + } + isEnd() { + if (this.#root === this) + return true; + if (this.#parent?.type === "!") + return true; + if (!this.#parent?.isEnd()) + return false; + if (!this.type) + return this.#parent?.isEnd(); + const pl = this.#parent ? this.#parent.#parts.length : 0; + return this.#parentIndex === pl - 1; + } + copyIn(part) { + if (typeof part === "string") + this.push(part); + else + this.push(part.clone(this)); + } + clone(parent) { + const c = new _AST(this.type, parent); + for (const p of this.#parts) { + c.copyIn(p); + } + return c; + } + static #parseAST(str2, ast, pos, opt) { + let escaping = false; + let inBrace = false; + let braceStart = -1; + let braceNeg = false; + if (ast.type === null) { + let i2 = pos; + let acc2 = ""; + while (i2 < str2.length) { + const c = str2.charAt(i2++); + if (escaping || c === "\\") { + escaping = !escaping; + acc2 += c; + continue; + } + if (inBrace) { + if (i2 === braceStart + 1) { + if (c === "^" || c === "!") { + braceNeg = true; + } + } else if (c === "]" && !(i2 === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc2 += c; + continue; + } else if (c === "[") { + inBrace = true; + braceStart = i2; + braceNeg = false; + acc2 += c; + continue; + } + if (!opt.noext && isExtglobType(c) && str2.charAt(i2) === "(") { + ast.push(acc2); + acc2 = ""; + const ext2 = new _AST(c, ast); + i2 = _AST.#parseAST(str2, ext2, i2, opt); + ast.push(ext2); + continue; + } + acc2 += c; + } + ast.push(acc2); + return i2; + } + let i = pos + 1; + let part = new _AST(null, ast); + const parts = []; + let acc = ""; + while (i < str2.length) { + const c = str2.charAt(i++); + if (escaping || c === "\\") { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === "^" || c === "!") { + braceNeg = true; + } + } else if (c === "]" && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } else if (c === "[") { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (isExtglobType(c) && str2.charAt(i) === "(") { + part.push(acc); + acc = ""; + const ext2 = new _AST(c, part); + part.push(ext2); + i = _AST.#parseAST(str2, ext2, i, opt); + continue; + } + if (c === "|") { + part.push(acc); + acc = ""; + parts.push(part); + part = new _AST(null, ast); + continue; + } + if (c === ")") { + if (acc === "" && ast.#parts.length === 0) { + ast.#emptyExt = true; + } + part.push(acc); + acc = ""; + ast.push(...parts, part); + return i; + } + acc += c; + } + ast.type = null; + ast.#hasMagic = void 0; + ast.#parts = [str2.substring(pos - 1)]; + return i; + } + static fromGlob(pattern, options2 = {}) { + const ast = new _AST(null, void 0, options2); + _AST.#parseAST(pattern, ast, 0, options2); + return ast; + } + // returns the regular expression if there's magic, or the unescaped + // string if not. + toMMPattern() { + if (this !== this.#root) + return this.#root.toMMPattern(); + const glob2 = this.toString(); + const [re, body, hasMagic2, uflag] = this.toRegExpSource(); + const anyMagic = hasMagic2 || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob2.toUpperCase() !== glob2.toLowerCase(); + if (!anyMagic) { + return body; + } + const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : ""); + return Object.assign(new RegExp(`^${re}$`, flags), { + _src: re, + _glob: glob2 + }); + } + // returns the string match, the regexp source, whether there's magic + // in the regexp (so a regular expression is required) and whether or + // not the uflag is needed for the regular expression (for posix classes) + // TODO: instead of injecting the start/end at this point, just return + // the BODY of the regexp, along with the start/end portions suitable + // for binding the start/end in either a joined full-path makeRe context + // (where we bind to (^|/), or a standalone matchPart context (where + // we bind to ^, and not /). Otherwise slashes get duped! + // + // In part-matching mode, the start is: + // - if not isStart: nothing + // - if traversal possible, but not allowed: ^(?!\.\.?$) + // - if dots allowed or not possible: ^ + // - if dots possible and not allowed: ^(?!\.) + // end is: + // - if not isEnd(): nothing + // - else: $ + // + // In full-path matching mode, we put the slash at the START of the + // pattern, so start is: + // - if first pattern: same as part-matching mode + // - if not isStart(): nothing + // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) + // - if dots allowed or not possible: / + // - if dots possible and not allowed: /(?!\.) + // end is: + // - if last pattern, same as part-matching mode + // - else nothing + // + // Always put the (?:$|/) on negated tails, though, because that has to be + // there to bind the end of the negated pattern portion, and it's easier to + // just stick it in now rather than try to inject it later in the middle of + // the pattern. + // + // We can just always return the same end, and leave it up to the caller + // to know whether it's going to be used joined or in parts. + // And, if the start is adjusted slightly, can do the same there: + // - if not isStart: nothing + // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) + // - if dots allowed or not possible: (?:/|^) + // - if dots possible and not allowed: (?:/|^)(?!\.) + // + // But it's better to have a simpler binding without a conditional, for + // performance, so probably better to return both start options. + // + // Then the caller just ignores the end if it's not the first pattern, + // and the start always gets applied. + // + // But that's always going to be $ if it's the ending pattern, or nothing, + // so the caller can just attach $ at the end of the pattern when building. + // + // So the todo is: + // - better detect what kind of start is needed + // - return both flavors of starting pattern + // - attach $ at the end of the pattern when creating the actual RegExp + // + // Ah, but wait, no, that all only applies to the root when the first pattern + // is not an extglob. If the first pattern IS an extglob, then we need all + // that dot prevention biz to live in the extglob portions, because eg + // +(*|.x*) can match .xy but not .yx. + // + // So, return the two flavors if it's #root and the first child is not an + // AST, otherwise leave it to the child AST to handle it, and there, + // use the (?:^|/) style of start binding. + // + // Even simplified further: + // - Since the start for a join is eg /(?!\.) and the start for a part + // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root + // or start or whatever) and prepend ^ or / at the Regexp construction. + toRegExpSource(allowDot) { + const dot = allowDot ?? !!this.#options.dot; + if (this.#root === this) + this.#fillNegs(); + if (!this.type) { + const noEmpty = this.isStart() && this.isEnd(); + const src = this.#parts.map((p) => { + const [re, _, hasMagic2, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot); + this.#hasMagic = this.#hasMagic || hasMagic2; + this.#uflag = this.#uflag || uflag; + return re; + }).join(""); + let start2 = ""; + if (this.isStart()) { + if (typeof this.#parts[0] === "string") { + const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); + if (!dotTravAllowed) { + const aps = addPatternStart; + const needNoTrav = ( + // dots are allowed, and the pattern starts with [ or . + dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or . + src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or . + src.startsWith("\\.\\.") && aps.has(src.charAt(4)) + ); + const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); + start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ""; + } + } + } + let end = ""; + if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") { + end = "(?:$|\\/)"; + } + const final2 = start2 + src + end; + return [ + final2, + unescape2(src), + this.#hasMagic = !!this.#hasMagic, + this.#uflag + ]; + } + const repeated = this.type === "*" || this.type === "+"; + const start = this.type === "!" ? "(?:(?!(?:" : "(?:"; + let body = this.#partsToRegExp(dot); + if (this.isStart() && this.isEnd() && !body && this.type !== "!") { + const s = this.toString(); + this.#parts = [s]; + this.type = null; + this.#hasMagic = void 0; + return [s, unescape2(this.toString()), false, false]; + } + let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true); + if (bodyDotAllowed === body) { + bodyDotAllowed = ""; + } + if (bodyDotAllowed) { + body = `(?:${body})(?:${bodyDotAllowed})*?`; + } + let final = ""; + if (this.type === "!" && this.#emptyExt) { + final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty; + } else { + const close = this.type === "!" ? ( + // !() must match something,but !(x) can match '' + "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")" + ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`; + final = start + body + close; + } + return [ + final, + unescape2(body), + this.#hasMagic = !!this.#hasMagic, + this.#uflag + ]; + } + #partsToRegExp(dot) { + return this.#parts.map((p) => { + if (typeof p === "string") { + throw new Error("string type in extglob ast??"); + } + const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); + this.#uflag = this.#uflag || uflag; + return re; + }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|"); + } + static #parseGlob(glob2, hasMagic2, noEmpty = false) { + let escaping = false; + let re = ""; + let uflag = false; + for (let i = 0; i < glob2.length; i++) { + const c = glob2.charAt(i); + if (escaping) { + escaping = false; + re += (reSpecials.has(c) ? "\\" : "") + c; + continue; + } + if (c === "\\") { + if (i === glob2.length - 1) { + re += "\\\\"; + } else { + escaping = true; + } + continue; + } + if (c === "[") { + const [src, needUflag, consumed, magic] = parseClass(glob2, i); + if (consumed) { + re += src; + uflag = uflag || needUflag; + i += consumed - 1; + hasMagic2 = hasMagic2 || magic; + continue; + } + } + if (c === "*") { + if (noEmpty && glob2 === "*") + re += starNoEmpty; + else + re += star; + hasMagic2 = true; + continue; + } + if (c === "?") { + re += qmark; + hasMagic2 = true; + continue; + } + re += regExpEscape(c); + } + return [re, unescape2(glob2), !!hasMagic2, uflag]; + } +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/escape.js +var escape = (s, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&"); +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js +var minimatch = (p, pattern, options2 = {}) => { + assertValidPattern(pattern); + if (!options2.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch(pattern, options2).match(p); +}; +var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; +var starDotExtTest = (ext2) => (f) => !f.startsWith(".") && f.endsWith(ext2); +var starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2); +var starDotExtTestNocase = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext2); +}; +var starDotExtTestNocaseDot = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f) => f.toLowerCase().endsWith(ext2); +}; +var starDotStarRE = /^\*+\.\*+$/; +var starDotStarTest = (f) => !f.startsWith(".") && f.includes("."); +var starDotStarTestDot = (f) => f !== "." && f !== ".." && f.includes("."); +var dotStarRE = /^\.\*+$/; +var dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith("."); +var starRE = /^\*+$/; +var starTest = (f) => f.length !== 0 && !f.startsWith("."); +var starTestDot = (f) => f.length !== 0 && f !== "." && f !== ".."; +var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; +var qmarksTestNocase = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext2); +}; +var qmarksTestNocaseDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext2); +}; +var qmarksTestDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); +}; +var qmarksTest = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); +}; +var qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && !f.startsWith("."); +}; +var qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && f !== "." && f !== ".."; +}; +var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; +var path5 = { + win32: { sep: "\\" }, + posix: { sep: "/" } +}; +var sep2 = defaultPlatform === "win32" ? path5.win32.sep : path5.posix.sep; +minimatch.sep = sep2; +var GLOBSTAR = Symbol("globstar **"); +minimatch.GLOBSTAR = GLOBSTAR; +var qmark2 = "[^/]"; +var star2 = qmark2 + "*?"; +var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; +var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; +var filter = (pattern, options2 = {}) => (p) => minimatch(p, pattern, options2); +minimatch.filter = filter; +var ext = (a, b = {}) => Object.assign({}, a, b); +var defaults = (def) => { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return minimatch; + } + const orig = minimatch; + const m = (p, pattern, options2 = {}) => orig(p, pattern, ext(def, options2)); + return Object.assign(m, { + Minimatch: class Minimatch extends orig.Minimatch { + constructor(pattern, options2 = {}) { + super(pattern, ext(def, options2)); + } + static defaults(options2) { + return orig.defaults(ext(def, options2)).Minimatch; + } + }, + AST: class AST extends orig.AST { + /* c8 ignore start */ + constructor(type2, parent, options2 = {}) { + super(type2, parent, ext(def, options2)); + } + /* c8 ignore stop */ + static fromGlob(pattern, options2 = {}) { + return orig.AST.fromGlob(pattern, ext(def, options2)); + } + }, + unescape: (s, options2 = {}) => orig.unescape(s, ext(def, options2)), + escape: (s, options2 = {}) => orig.escape(s, ext(def, options2)), + filter: (pattern, options2 = {}) => orig.filter(pattern, ext(def, options2)), + defaults: (options2) => orig.defaults(ext(def, options2)), + makeRe: (pattern, options2 = {}) => orig.makeRe(pattern, ext(def, options2)), + braceExpand: (pattern, options2 = {}) => orig.braceExpand(pattern, ext(def, options2)), + match: (list, pattern, options2 = {}) => orig.match(list, pattern, ext(def, options2)), + sep: orig.sep, + GLOBSTAR + }); +}; +minimatch.defaults = defaults; +var braceExpand = (pattern, options2 = {}) => { + assertValidPattern(pattern); + if (options2.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + return [pattern]; + } + return (0, import_brace_expansion.default)(pattern); +}; +minimatch.braceExpand = braceExpand; +var makeRe = (pattern, options2 = {}) => new Minimatch(pattern, options2).makeRe(); +minimatch.makeRe = makeRe; +var match = (list, pattern, options2 = {}) => { + const mm = new Minimatch(pattern, options2); + list = list.filter((f) => mm.match(f)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; +}; +minimatch.match = match; +var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; +var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var Minimatch = class { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options2 = {}) { + assertValidPattern(pattern); + options2 = options2 || {}; + this.options = options2; + this.pattern = pattern; + this.platform = options2.platform || defaultPlatform; + this.isWindows = this.platform === "win32"; + this.windowsPathsNoEscape = !!options2.windowsPathsNoEscape || options2.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, "/"); + } + this.preserveMultipleSlashes = !!options2.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options2.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options2.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = options2.windowsNoMagicRoot !== void 0 ? options2.windowsNoMagicRoot : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { + return true; + } + for (const pattern of this.set) { + for (const part of pattern) { + if (typeof part !== "string") + return true; + } + } + return false; + } + debug(..._) { + } + make() { + const pattern = this.pattern; + const options2 = this.options; + if (!options2.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + this.globSet = [...new Set(this.braceExpand())]; + if (options2.debug) { + this.debug = (...args) => console.error(...args); + } + this.debug(this.pattern, this.globSet); + const rawGlobParts = this.globSet.map((s) => this.slashSplit(s)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + let set3 = this.globParts.map((s, _, __) => { + if (this.isWindows && this.windowsNoMagicRoot) { + const isUNC = s[0] === "" && s[1] === "" && (s[2] === "?" || !globMagic.test(s[2])) && !globMagic.test(s[3]); + const isDrive = /^[a-z]:/i.test(s[0]); + if (isUNC) { + return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))]; + } else if (isDrive) { + return [s[0], ...s.slice(1).map((ss) => this.parse(ss))]; + } + } + return s.map((ss) => this.parse(ss)); + }); + this.debug(this.pattern, set3); + this.set = set3.filter((s) => s.indexOf(false) === -1); + if (this.isWindows) { + for (let i = 0; i < this.set.length; i++) { + const p = this.set[i]; + if (p[0] === "" && p[1] === "" && this.globParts[i][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) { + p[2] = "?"; + } + } + } + this.debug(this.pattern, this.set); + } + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + if (this.options.noglobstar) { + for (let i = 0; i < globParts.length; i++) { + for (let j = 0; j < globParts[i].length; j++) { + if (globParts[i][j] === "**") { + globParts[i][j] = "*"; + } + } + } + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + globParts = this.firstPhasePreProcess(globParts); + globParts = this.secondPhasePreProcess(globParts); + } else if (optimizationLevel >= 1) { + globParts = this.levelOneOptimize(globParts); + } else { + globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; + } + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map((parts) => { + let gs = -1; + while (-1 !== (gs = parts.indexOf("**", gs + 1))) { + let i = gs; + while (parts[i + 1] === "**") { + i++; + } + if (i !== gs) { + parts.splice(gs, i - gs); + } + } + return parts; + }); + } + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map((parts) => { + parts = parts.reduce((set3, part) => { + const prev = set3[set3.length - 1]; + if (part === "**" && prev === "**") { + return set3; + } + if (part === "..") { + if (prev && prev !== ".." && prev !== "." && prev !== "**") { + set3.pop(); + return set3; + } + } + set3.push(part); + return set3; + }, []); + return parts.length === 0 ? [""] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { + didSomething = false; + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + if (i === 1 && p === "" && parts[0] === "") + continue; + if (p === "." || p === "") { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) { + didSomething = true; + parts.pop(); + } + } + let dd = 0; + while (-1 !== (dd = parts.indexOf("..", dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== "." && p !== ".." && p !== "**") { + didSomething = true; + parts.splice(dd - 1, 2); + dd -= 2; + } + } + } while (didSomething); + return parts.length === 0 ? [""] : parts; + } + // First phase: single-pattern processing + //
 is 1 or more portions
+  //  is 1 or more portions
+  // 

is any portion other than ., .., '', or ** + // is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/} + //

// -> 
/
+  // 
/

/../ ->

/
+  // **/**/ -> **/
+  //
+  // **/*/ -> */**/ <== not valid because ** doesn't follow
+  // this WOULD be allowed if ** did follow symlinks, or * didn't
+  firstPhasePreProcess(globParts) {
+    let didSomething = false;
+    do {
+      didSomething = false;
+      for (let parts of globParts) {
+        let gs = -1;
+        while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
+          let gss = gs;
+          while (parts[gss + 1] === "**") {
+            gss++;
+          }
+          if (gss > gs) {
+            parts.splice(gs + 1, gss - gs);
+          }
+          let next = parts[gs + 1];
+          const p = parts[gs + 2];
+          const p2 = parts[gs + 3];
+          if (next !== "..")
+            continue;
+          if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
+            continue;
+          }
+          didSomething = true;
+          parts.splice(gs, 1);
+          const other = parts.slice(0);
+          other[gs] = "**";
+          globParts.push(other);
+          gs--;
+        }
+        if (!this.preserveMultipleSlashes) {
+          for (let i = 1; i < parts.length - 1; i++) {
+            const p = parts[i];
+            if (i === 1 && p === "" && parts[0] === "")
+              continue;
+            if (p === "." || p === "") {
+              didSomething = true;
+              parts.splice(i, 1);
+              i--;
+            }
+          }
+          if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
+            didSomething = true;
+            parts.pop();
+          }
+        }
+        let dd = 0;
+        while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
+          const p = parts[dd - 1];
+          if (p && p !== "." && p !== ".." && p !== "**") {
+            didSomething = true;
+            const needDot = dd === 1 && parts[dd + 1] === "**";
+            const splin = needDot ? ["."] : [];
+            parts.splice(dd - 1, 2, ...splin);
+            if (parts.length === 0)
+              parts.push("");
+            dd -= 2;
+          }
+        }
+      }
+    } while (didSomething);
+    return globParts;
+  }
+  // second phase: multi-pattern dedupes
+  // {
/*/,
/

/} ->

/*/
+  // {
/,
/} -> 
/
+  // {
/**/,
/} -> 
/**/
+  //
+  // {
/**/,
/**/

/} ->

/**/
+  // ^-- not valid because ** doens't follow symlinks
+  secondPhasePreProcess(globParts) {
+    for (let i = 0; i < globParts.length - 1; i++) {
+      for (let j = i + 1; j < globParts.length; j++) {
+        const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
+        if (!matched)
+          continue;
+        globParts[i] = matched;
+        globParts[j] = [];
+      }
+    }
+    return globParts.filter((gs) => gs.length);
+  }
+  partsMatch(a, b, emptyGSMatch = false) {
+    let ai = 0;
+    let bi = 0;
+    let result = [];
+    let which = "";
+    while (ai < a.length && bi < b.length) {
+      if (a[ai] === b[bi]) {
+        result.push(which === "b" ? b[bi] : a[ai]);
+        ai++;
+        bi++;
+      } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
+        result.push(a[ai]);
+        ai++;
+      } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
+        result.push(b[bi]);
+        bi++;
+      } else if (a[ai] === "*" && b[bi] && (this.options.dot || !b[bi].startsWith(".")) && b[bi] !== "**") {
+        if (which === "b")
+          return false;
+        which = "a";
+        result.push(a[ai]);
+        ai++;
+        bi++;
+      } else if (b[bi] === "*" && a[ai] && (this.options.dot || !a[ai].startsWith(".")) && a[ai] !== "**") {
+        if (which === "a")
+          return false;
+        which = "b";
+        result.push(b[bi]);
+        ai++;
+        bi++;
+      } else {
+        return false;
+      }
+    }
+    return a.length === b.length && result;
+  }
+  parseNegate() {
+    if (this.nonegate)
+      return;
+    const pattern = this.pattern;
+    let negate = false;
+    let negateOffset = 0;
+    for (let i = 0; i < pattern.length && pattern.charAt(i) === "!"; i++) {
+      negate = !negate;
+      negateOffset++;
+    }
+    if (negateOffset)
+      this.pattern = pattern.slice(negateOffset);
+    this.negate = negate;
+  }
+  // set partial to true to test if, for example,
+  // "/a/b" matches the start of "/*/b/*/d"
+  // Partial means, if you run out of file before you run
+  // out of pattern, then that's fine, as long as all
+  // the parts match.
+  matchOne(file, pattern, partial = false) {
+    const options2 = this.options;
+    if (this.isWindows) {
+      const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
+      const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
+      const patternDrive = typeof pattern[0] === "string" && /^[a-z]:$/i.test(pattern[0]);
+      const patternUNC = !patternDrive && pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
+      const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
+      const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
+      if (typeof fdi === "number" && typeof pdi === "number") {
+        const [fd, pd] = [file[fdi], pattern[pdi]];
+        if (fd.toLowerCase() === pd.toLowerCase()) {
+          pattern[pdi] = fd;
+          if (pdi > fdi) {
+            pattern = pattern.slice(pdi);
+          } else if (fdi > pdi) {
+            file = file.slice(fdi);
+          }
+        }
+      }
+    }
+    const { optimizationLevel = 1 } = this.options;
+    if (optimizationLevel >= 2) {
+      file = this.levelTwoFileOptimize(file);
+    }
+    this.debug("matchOne", this, { file, pattern });
+    this.debug("matchOne", file.length, pattern.length);
+    for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
+      this.debug("matchOne loop");
+      var p = pattern[pi];
+      var f = file[fi];
+      this.debug(pattern, p, f);
+      if (p === false) {
+        return false;
+      }
+      if (p === GLOBSTAR) {
+        this.debug("GLOBSTAR", [pattern, p, f]);
+        var fr = fi;
+        var pr = pi + 1;
+        if (pr === pl) {
+          this.debug("** at the end");
+          for (; fi < fl; fi++) {
+            if (file[fi] === "." || file[fi] === ".." || !options2.dot && file[fi].charAt(0) === ".")
+              return false;
+          }
+          return true;
+        }
+        while (fr < fl) {
+          var swallowee = file[fr];
+          this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
+          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+            this.debug("globstar found match!", fr, fl, swallowee);
+            return true;
+          } else {
+            if (swallowee === "." || swallowee === ".." || !options2.dot && swallowee.charAt(0) === ".") {
+              this.debug("dot detected!", file, fr, pattern, pr);
+              break;
+            }
+            this.debug("globstar swallow a segment, and continue");
+            fr++;
+          }
+        }
+        if (partial) {
+          this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
+          if (fr === fl) {
+            return true;
+          }
+        }
+        return false;
+      }
+      let hit;
+      if (typeof p === "string") {
+        hit = f === p;
+        this.debug("string match", p, f, hit);
+      } else {
+        hit = p.test(f);
+        this.debug("pattern match", p, f, hit);
+      }
+      if (!hit)
+        return false;
+    }
+    if (fi === fl && pi === pl) {
+      return true;
+    } else if (fi === fl) {
+      return partial;
+    } else if (pi === pl) {
+      return fi === fl - 1 && file[fi] === "";
+    } else {
+      throw new Error("wtf?");
+    }
+  }
+  braceExpand() {
+    return braceExpand(this.pattern, this.options);
+  }
+  parse(pattern) {
+    assertValidPattern(pattern);
+    const options2 = this.options;
+    if (pattern === "**")
+      return GLOBSTAR;
+    if (pattern === "")
+      return "";
+    let m;
+    let fastTest = null;
+    if (m = pattern.match(starRE)) {
+      fastTest = options2.dot ? starTestDot : starTest;
+    } else if (m = pattern.match(starDotExtRE)) {
+      fastTest = (options2.nocase ? options2.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options2.dot ? starDotExtTestDot : starDotExtTest)(m[1]);
+    } else if (m = pattern.match(qmarksRE)) {
+      fastTest = (options2.nocase ? options2.dot ? qmarksTestNocaseDot : qmarksTestNocase : options2.dot ? qmarksTestDot : qmarksTest)(m);
+    } else if (m = pattern.match(starDotStarRE)) {
+      fastTest = options2.dot ? starDotStarTestDot : starDotStarTest;
+    } else if (m = pattern.match(dotStarRE)) {
+      fastTest = dotStarTest;
+    }
+    const re = AST.fromGlob(pattern, this.options).toMMPattern();
+    return fastTest ? Object.assign(re, { test: fastTest }) : re;
+  }
+  makeRe() {
+    if (this.regexp || this.regexp === false)
+      return this.regexp;
+    const set3 = this.set;
+    if (!set3.length) {
+      this.regexp = false;
+      return this.regexp;
+    }
+    const options2 = this.options;
+    const twoStar = options2.noglobstar ? star2 : options2.dot ? twoStarDot : twoStarNoDot;
+    const flags = new Set(options2.nocase ? ["i"] : []);
+    let re = set3.map((pattern) => {
+      const pp = pattern.map((p) => {
+        if (p instanceof RegExp) {
+          for (const f of p.flags.split(""))
+            flags.add(f);
+        }
+        return typeof p === "string" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;
+      });
+      pp.forEach((p, i) => {
+        const next = pp[i + 1];
+        const prev = pp[i - 1];
+        if (p !== GLOBSTAR || prev === GLOBSTAR) {
+          return;
+        }
+        if (prev === void 0) {
+          if (next !== void 0 && next !== GLOBSTAR) {
+            pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
+          } else {
+            pp[i] = twoStar;
+          }
+        } else if (next === void 0) {
+          pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
+        } else if (next !== GLOBSTAR) {
+          pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
+          pp[i + 1] = GLOBSTAR;
+        }
+      });
+      return pp.filter((p) => p !== GLOBSTAR).join("/");
+    }).join("|");
+    const [open2, close] = set3.length > 1 ? ["(?:", ")"] : ["", ""];
+    re = "^" + open2 + re + close + "$";
+    if (this.negate)
+      re = "^(?!" + re + ").+$";
+    try {
+      this.regexp = new RegExp(re, [...flags].join(""));
+    } catch (ex) {
+      this.regexp = false;
+    }
+    return this.regexp;
+  }
+  slashSplit(p) {
+    if (this.preserveMultipleSlashes) {
+      return p.split("/");
+    } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
+      return ["", ...p.split(/\/+/)];
+    } else {
+      return p.split(/\/+/);
+    }
+  }
+  match(f, partial = this.partial) {
+    this.debug("match", f, this.pattern);
+    if (this.comment) {
+      return false;
+    }
+    if (this.empty) {
+      return f === "";
+    }
+    if (f === "/" && partial) {
+      return true;
+    }
+    const options2 = this.options;
+    if (this.isWindows) {
+      f = f.split("\\").join("/");
+    }
+    const ff = this.slashSplit(f);
+    this.debug(this.pattern, "split", ff);
+    const set3 = this.set;
+    this.debug(this.pattern, "set", set3);
+    let filename = ff[ff.length - 1];
+    if (!filename) {
+      for (let i = ff.length - 2; !filename && i >= 0; i--) {
+        filename = ff[i];
+      }
+    }
+    for (let i = 0; i < set3.length; i++) {
+      const pattern = set3[i];
+      let file = ff;
+      if (options2.matchBase && pattern.length === 1) {
+        file = [filename];
+      }
+      const hit = this.matchOne(file, pattern, partial);
+      if (hit) {
+        if (options2.flipNegate) {
+          return true;
+        }
+        return !this.negate;
+      }
+    }
+    if (options2.flipNegate) {
+      return false;
+    }
+    return this.negate;
+  }
+  static defaults(def) {
+    return minimatch.defaults(def).Minimatch;
+  }
+};
+minimatch.AST = AST;
+minimatch.Minimatch = Minimatch;
+minimatch.escape = escape;
+minimatch.unescape = unescape2;
+
+// ../../node_modules/.pnpm/lru-cache@10.2.0/node_modules/lru-cache/dist/esm/index.js
+var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
+var warned = /* @__PURE__ */ new Set();
+var PROCESS = typeof process === "object" && !!process ? process : {};
+var emitWarning = (msg, type2, code, fn) => {
+  typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type2, code, fn) : console.error(`[${code}] ${type2}: ${msg}`);
+};
+var AC = globalThis.AbortController;
+var AS = globalThis.AbortSignal;
+if (typeof AC === "undefined") {
+  AS = class AbortSignal {
+    onabort;
+    _onabort = [];
+    reason;
+    aborted = false;
+    addEventListener(_, fn) {
+      this._onabort.push(fn);
+    }
+  };
+  AC = class AbortController {
+    constructor() {
+      warnACPolyfill();
+    }
+    signal = new AS();
+    abort(reason) {
+      if (this.signal.aborted)
+        return;
+      this.signal.reason = reason;
+      this.signal.aborted = true;
+      for (const fn of this.signal._onabort) {
+        fn(reason);
+      }
+      this.signal.onabort?.(reason);
+    }
+  };
+  let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
+  const warnACPolyfill = () => {
+    if (!printACPolyfillWarning)
+      return;
+    printACPolyfillWarning = false;
+    emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
+  };
+}
+var shouldWarn = (code) => !warned.has(code);
+var TYPE = Symbol("type");
+var isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
+var getUintArray = (max2) => !isPosInt(max2) ? null : max2 <= Math.pow(2, 8) ? Uint8Array : max2 <= Math.pow(2, 16) ? Uint16Array : max2 <= Math.pow(2, 32) ? Uint32Array : max2 <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
+var ZeroArray = class extends Array {
+  constructor(size) {
+    super(size);
+    this.fill(0);
+  }
+};
+var Stack = class _Stack {
+  heap;
+  length;
+  // private constructor
+  static #constructing = false;
+  static create(max2) {
+    const HeapCls = getUintArray(max2);
+    if (!HeapCls)
+      return [];
+    _Stack.#constructing = true;
+    const s = new _Stack(max2, HeapCls);
+    _Stack.#constructing = false;
+    return s;
+  }
+  constructor(max2, HeapCls) {
+    if (!_Stack.#constructing) {
+      throw new TypeError("instantiate Stack using Stack.create(n)");
+    }
+    this.heap = new HeapCls(max2);
+    this.length = 0;
+  }
+  push(n) {
+    this.heap[this.length++] = n;
+  }
+  pop() {
+    return this.heap[--this.length];
+  }
+};
+var LRUCache = class _LRUCache {
+  // properties coming in from the options of these, only max and maxSize
+  // really *need* to be protected. The rest can be modified, as they just
+  // set defaults for various methods.
+  #max;
+  #maxSize;
+  #dispose;
+  #disposeAfter;
+  #fetchMethod;
+  /**
+   * {@link LRUCache.OptionsBase.ttl}
+   */
+  ttl;
+  /**
+   * {@link LRUCache.OptionsBase.ttlResolution}
+   */
+  ttlResolution;
+  /**
+   * {@link LRUCache.OptionsBase.ttlAutopurge}
+   */
+  ttlAutopurge;
+  /**
+   * {@link LRUCache.OptionsBase.updateAgeOnGet}
+   */
+  updateAgeOnGet;
+  /**
+   * {@link LRUCache.OptionsBase.updateAgeOnHas}
+   */
+  updateAgeOnHas;
+  /**
+   * {@link LRUCache.OptionsBase.allowStale}
+   */
+  allowStale;
+  /**
+   * {@link LRUCache.OptionsBase.noDisposeOnSet}
+   */
+  noDisposeOnSet;
+  /**
+   * {@link LRUCache.OptionsBase.noUpdateTTL}
+   */
+  noUpdateTTL;
+  /**
+   * {@link LRUCache.OptionsBase.maxEntrySize}
+   */
+  maxEntrySize;
+  /**
+   * {@link LRUCache.OptionsBase.sizeCalculation}
+   */
+  sizeCalculation;
+  /**
+   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
+   */
+  noDeleteOnFetchRejection;
+  /**
+   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
+   */
+  noDeleteOnStaleGet;
+  /**
+   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
+   */
+  allowStaleOnFetchAbort;
+  /**
+   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
+   */
+  allowStaleOnFetchRejection;
+  /**
+   * {@link LRUCache.OptionsBase.ignoreFetchAbort}
+   */
+  ignoreFetchAbort;
+  // computed properties
+  #size;
+  #calculatedSize;
+  #keyMap;
+  #keyList;
+  #valList;
+  #next;
+  #prev;
+  #head;
+  #tail;
+  #free;
+  #disposed;
+  #sizes;
+  #starts;
+  #ttls;
+  #hasDispose;
+  #hasFetchMethod;
+  #hasDisposeAfter;
+  /**
+   * Do not call this method unless you need to inspect the
+   * inner workings of the cache.  If anything returned by this
+   * object is modified in any way, strange breakage may occur.
+   *
+   * These fields are private for a reason!
+   *
+   * @internal
+   */
+  static unsafeExposeInternals(c) {
+    return {
+      // properties
+      starts: c.#starts,
+      ttls: c.#ttls,
+      sizes: c.#sizes,
+      keyMap: c.#keyMap,
+      keyList: c.#keyList,
+      valList: c.#valList,
+      next: c.#next,
+      prev: c.#prev,
+      get head() {
+        return c.#head;
+      },
+      get tail() {
+        return c.#tail;
+      },
+      free: c.#free,
+      // methods
+      isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
+      backgroundFetch: (k, index, options2, context) => c.#backgroundFetch(k, index, options2, context),
+      moveToTail: (index) => c.#moveToTail(index),
+      indexes: (options2) => c.#indexes(options2),
+      rindexes: (options2) => c.#rindexes(options2),
+      isStale: (index) => c.#isStale(index)
+    };
+  }
+  // Protected read-only members
+  /**
+   * {@link LRUCache.OptionsBase.max} (read-only)
+   */
+  get max() {
+    return this.#max;
+  }
+  /**
+   * {@link LRUCache.OptionsBase.maxSize} (read-only)
+   */
+  get maxSize() {
+    return this.#maxSize;
+  }
+  /**
+   * The total computed size of items in the cache (read-only)
+   */
+  get calculatedSize() {
+    return this.#calculatedSize;
+  }
+  /**
+   * The number of items stored in the cache (read-only)
+   */
+  get size() {
+    return this.#size;
+  }
+  /**
+   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
+   */
+  get fetchMethod() {
+    return this.#fetchMethod;
+  }
+  /**
+   * {@link LRUCache.OptionsBase.dispose} (read-only)
+   */
+  get dispose() {
+    return this.#dispose;
+  }
+  /**
+   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
+   */
+  get disposeAfter() {
+    return this.#disposeAfter;
+  }
+  constructor(options2) {
+    const { max: max2 = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options2;
+    if (max2 !== 0 && !isPosInt(max2)) {
+      throw new TypeError("max option must be a nonnegative integer");
+    }
+    const UintArray = max2 ? getUintArray(max2) : Array;
+    if (!UintArray) {
+      throw new Error("invalid max value: " + max2);
+    }
+    this.#max = max2;
+    this.#maxSize = maxSize;
+    this.maxEntrySize = maxEntrySize || this.#maxSize;
+    this.sizeCalculation = sizeCalculation;
+    if (this.sizeCalculation) {
+      if (!this.#maxSize && !this.maxEntrySize) {
+        throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
+      }
+      if (typeof this.sizeCalculation !== "function") {
+        throw new TypeError("sizeCalculation set to non-function");
+      }
+    }
+    if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
+      throw new TypeError("fetchMethod must be a function if specified");
+    }
+    this.#fetchMethod = fetchMethod;
+    this.#hasFetchMethod = !!fetchMethod;
+    this.#keyMap = /* @__PURE__ */ new Map();
+    this.#keyList = new Array(max2).fill(void 0);
+    this.#valList = new Array(max2).fill(void 0);
+    this.#next = new UintArray(max2);
+    this.#prev = new UintArray(max2);
+    this.#head = 0;
+    this.#tail = 0;
+    this.#free = Stack.create(max2);
+    this.#size = 0;
+    this.#calculatedSize = 0;
+    if (typeof dispose === "function") {
+      this.#dispose = dispose;
+    }
+    if (typeof disposeAfter === "function") {
+      this.#disposeAfter = disposeAfter;
+      this.#disposed = [];
+    } else {
+      this.#disposeAfter = void 0;
+      this.#disposed = void 0;
+    }
+    this.#hasDispose = !!this.#dispose;
+    this.#hasDisposeAfter = !!this.#disposeAfter;
+    this.noDisposeOnSet = !!noDisposeOnSet;
+    this.noUpdateTTL = !!noUpdateTTL;
+    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
+    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
+    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
+    this.ignoreFetchAbort = !!ignoreFetchAbort;
+    if (this.maxEntrySize !== 0) {
+      if (this.#maxSize !== 0) {
+        if (!isPosInt(this.#maxSize)) {
+          throw new TypeError("maxSize must be a positive integer if specified");
+        }
+      }
+      if (!isPosInt(this.maxEntrySize)) {
+        throw new TypeError("maxEntrySize must be a positive integer if specified");
+      }
+      this.#initializeSizeTracking();
+    }
+    this.allowStale = !!allowStale;
+    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
+    this.updateAgeOnGet = !!updateAgeOnGet;
+    this.updateAgeOnHas = !!updateAgeOnHas;
+    this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
+    this.ttlAutopurge = !!ttlAutopurge;
+    this.ttl = ttl || 0;
+    if (this.ttl) {
+      if (!isPosInt(this.ttl)) {
+        throw new TypeError("ttl must be a positive integer if specified");
+      }
+      this.#initializeTTLTracking();
+    }
+    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
+      throw new TypeError("At least one of max, maxSize, or ttl is required");
+    }
+    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
+      const code = "LRU_CACHE_UNBOUNDED";
+      if (shouldWarn(code)) {
+        warned.add(code);
+        const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
+        emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
+      }
+    }
+  }
+  /**
+   * Return the remaining TTL time for a given entry key
+   */
+  getRemainingTTL(key) {
+    return this.#keyMap.has(key) ? Infinity : 0;
+  }
+  #initializeTTLTracking() {
+    const ttls = new ZeroArray(this.#max);
+    const starts = new ZeroArray(this.#max);
+    this.#ttls = ttls;
+    this.#starts = starts;
+    this.#setItemTTL = (index, ttl, start = perf.now()) => {
+      starts[index] = ttl !== 0 ? start : 0;
+      ttls[index] = ttl;
+      if (ttl !== 0 && this.ttlAutopurge) {
+        const t = setTimeout(() => {
+          if (this.#isStale(index)) {
+            this.delete(this.#keyList[index]);
+          }
+        }, ttl + 1);
+        if (t.unref) {
+          t.unref();
+        }
+      }
+    };
+    this.#updateItemAge = (index) => {
+      starts[index] = ttls[index] !== 0 ? perf.now() : 0;
+    };
+    this.#statusTTL = (status, index) => {
+      if (ttls[index]) {
+        const ttl = ttls[index];
+        const start = starts[index];
+        if (!ttl || !start)
+          return;
+        status.ttl = ttl;
+        status.start = start;
+        status.now = cachedNow || getNow();
+        const age = status.now - start;
+        status.remainingTTL = ttl - age;
+      }
+    };
+    let cachedNow = 0;
+    const getNow = () => {
+      const n = perf.now();
+      if (this.ttlResolution > 0) {
+        cachedNow = n;
+        const t = setTimeout(() => cachedNow = 0, this.ttlResolution);
+        if (t.unref) {
+          t.unref();
+        }
+      }
+      return n;
+    };
+    this.getRemainingTTL = (key) => {
+      const index = this.#keyMap.get(key);
+      if (index === void 0) {
+        return 0;
+      }
+      const ttl = ttls[index];
+      const start = starts[index];
+      if (!ttl || !start) {
+        return Infinity;
+      }
+      const age = (cachedNow || getNow()) - start;
+      return ttl - age;
+    };
+    this.#isStale = (index) => {
+      const s = starts[index];
+      const t = ttls[index];
+      return !!t && !!s && (cachedNow || getNow()) - s > t;
+    };
+  }
+  // conditionally set private methods related to TTL
+  #updateItemAge = () => {
+  };
+  #statusTTL = () => {
+  };
+  #setItemTTL = () => {
+  };
+  /* c8 ignore stop */
+  #isStale = () => false;
+  #initializeSizeTracking() {
+    const sizes = new ZeroArray(this.#max);
+    this.#calculatedSize = 0;
+    this.#sizes = sizes;
+    this.#removeItemSize = (index) => {
+      this.#calculatedSize -= sizes[index];
+      sizes[index] = 0;
+    };
+    this.#requireSize = (k, v, size, sizeCalculation) => {
+      if (this.#isBackgroundFetch(v)) {
+        return 0;
+      }
+      if (!isPosInt(size)) {
+        if (sizeCalculation) {
+          if (typeof sizeCalculation !== "function") {
+            throw new TypeError("sizeCalculation must be a function");
+          }
+          size = sizeCalculation(v, k);
+          if (!isPosInt(size)) {
+            throw new TypeError("sizeCalculation return invalid (expect positive integer)");
+          }
+        } else {
+          throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
+        }
+      }
+      return size;
+    };
+    this.#addItemSize = (index, size, status) => {
+      sizes[index] = size;
+      if (this.#maxSize) {
+        const maxSize = this.#maxSize - sizes[index];
+        while (this.#calculatedSize > maxSize) {
+          this.#evict(true);
+        }
+      }
+      this.#calculatedSize += sizes[index];
+      if (status) {
+        status.entrySize = size;
+        status.totalCalculatedSize = this.#calculatedSize;
+      }
+    };
+  }
+  #removeItemSize = (_i) => {
+  };
+  #addItemSize = (_i, _s, _st) => {
+  };
+  #requireSize = (_k, _v, size, sizeCalculation) => {
+    if (size || sizeCalculation) {
+      throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
+    }
+    return 0;
+  };
+  *#indexes({ allowStale = this.allowStale } = {}) {
+    if (this.#size) {
+      for (let i = this.#tail; true; ) {
+        if (!this.#isValidIndex(i)) {
+          break;
+        }
+        if (allowStale || !this.#isStale(i)) {
+          yield i;
+        }
+        if (i === this.#head) {
+          break;
+        } else {
+          i = this.#prev[i];
+        }
+      }
+    }
+  }
+  *#rindexes({ allowStale = this.allowStale } = {}) {
+    if (this.#size) {
+      for (let i = this.#head; true; ) {
+        if (!this.#isValidIndex(i)) {
+          break;
+        }
+        if (allowStale || !this.#isStale(i)) {
+          yield i;
+        }
+        if (i === this.#tail) {
+          break;
+        } else {
+          i = this.#next[i];
+        }
+      }
+    }
+  }
+  #isValidIndex(index) {
+    return index !== void 0 && this.#keyMap.get(this.#keyList[index]) === index;
+  }
+  /**
+   * Return a generator yielding `[key, value]` pairs,
+   * in order from most recently used to least recently used.
+   */
+  *entries() {
+    for (const i of this.#indexes()) {
+      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield [this.#keyList[i], this.#valList[i]];
+      }
+    }
+  }
+  /**
+   * Inverse order version of {@link LRUCache.entries}
+   *
+   * Return a generator yielding `[key, value]` pairs,
+   * in order from least recently used to most recently used.
+   */
+  *rentries() {
+    for (const i of this.#rindexes()) {
+      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield [this.#keyList[i], this.#valList[i]];
+      }
+    }
+  }
+  /**
+   * Return a generator yielding the keys in the cache,
+   * in order from most recently used to least recently used.
+   */
+  *keys() {
+    for (const i of this.#indexes()) {
+      const k = this.#keyList[i];
+      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield k;
+      }
+    }
+  }
+  /**
+   * Inverse order version of {@link LRUCache.keys}
+   *
+   * Return a generator yielding the keys in the cache,
+   * in order from least recently used to most recently used.
+   */
+  *rkeys() {
+    for (const i of this.#rindexes()) {
+      const k = this.#keyList[i];
+      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield k;
+      }
+    }
+  }
+  /**
+   * Return a generator yielding the values in the cache,
+   * in order from most recently used to least recently used.
+   */
+  *values() {
+    for (const i of this.#indexes()) {
+      const v = this.#valList[i];
+      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield this.#valList[i];
+      }
+    }
+  }
+  /**
+   * Inverse order version of {@link LRUCache.values}
+   *
+   * Return a generator yielding the values in the cache,
+   * in order from least recently used to most recently used.
+   */
+  *rvalues() {
+    for (const i of this.#rindexes()) {
+      const v = this.#valList[i];
+      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
+        yield this.#valList[i];
+      }
+    }
+  }
+  /**
+   * Iterating over the cache itself yields the same results as
+   * {@link LRUCache.entries}
+   */
+  [Symbol.iterator]() {
+    return this.entries();
+  }
+  /**
+   * A String value that is used in the creation of the default string description of an object.
+   * Called by the built-in method Object.prototype.toString.
+   */
+  [Symbol.toStringTag] = "LRUCache";
+  /**
+   * Find a value for which the supplied fn method returns a truthy value,
+   * similar to Array.find().  fn is called as fn(value, key, cache).
+   */
+  find(fn, getOptions = {}) {
+    for (const i of this.#indexes()) {
+      const v = this.#valList[i];
+      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+      if (value === void 0)
+        continue;
+      if (fn(value, this.#keyList[i], this)) {
+        return this.get(this.#keyList[i], getOptions);
+      }
+    }
+  }
+  /**
+   * Call the supplied function on each item in the cache, in order from
+   * most recently used to least recently used.  fn is called as
+   * fn(value, key, cache).  Does not update age or recenty of use.
+   * Does not iterate over stale values.
+   */
+  forEach(fn, thisp = this) {
+    for (const i of this.#indexes()) {
+      const v = this.#valList[i];
+      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+      if (value === void 0)
+        continue;
+      fn.call(thisp, value, this.#keyList[i], this);
+    }
+  }
+  /**
+   * The same as {@link LRUCache.forEach} but items are iterated over in
+   * reverse order.  (ie, less recently used items are iterated over first.)
+   */
+  rforEach(fn, thisp = this) {
+    for (const i of this.#rindexes()) {
+      const v = this.#valList[i];
+      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+      if (value === void 0)
+        continue;
+      fn.call(thisp, value, this.#keyList[i], this);
+    }
+  }
+  /**
+   * Delete any stale entries. Returns true if anything was removed,
+   * false otherwise.
+   */
+  purgeStale() {
+    let deleted = false;
+    for (const i of this.#rindexes({ allowStale: true })) {
+      if (this.#isStale(i)) {
+        this.delete(this.#keyList[i]);
+        deleted = true;
+      }
+    }
+    return deleted;
+  }
+  /**
+   * Get the extended info about a given entry, to get its value, size, and
+   * TTL info simultaneously. Like {@link LRUCache#dump}, but just for a
+   * single key. Always returns stale values, if their info is found in the
+   * cache, so be sure to check for expired TTLs if relevant.
+   */
+  info(key) {
+    const i = this.#keyMap.get(key);
+    if (i === void 0)
+      return void 0;
+    const v = this.#valList[i];
+    const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+    if (value === void 0)
+      return void 0;
+    const entry2 = { value };
+    if (this.#ttls && this.#starts) {
+      const ttl = this.#ttls[i];
+      const start = this.#starts[i];
+      if (ttl && start) {
+        const remain = ttl - (perf.now() - start);
+        entry2.ttl = remain;
+        entry2.start = Date.now();
+      }
+    }
+    if (this.#sizes) {
+      entry2.size = this.#sizes[i];
+    }
+    return entry2;
+  }
+  /**
+   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
+   * passed to cache.load()
+   */
+  dump() {
+    const arr = [];
+    for (const i of this.#indexes({ allowStale: true })) {
+      const key = this.#keyList[i];
+      const v = this.#valList[i];
+      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+      if (value === void 0 || key === void 0)
+        continue;
+      const entry2 = { value };
+      if (this.#ttls && this.#starts) {
+        entry2.ttl = this.#ttls[i];
+        const age = perf.now() - this.#starts[i];
+        entry2.start = Math.floor(Date.now() - age);
+      }
+      if (this.#sizes) {
+        entry2.size = this.#sizes[i];
+      }
+      arr.unshift([key, entry2]);
+    }
+    return arr;
+  }
+  /**
+   * Reset the cache and load in the items in entries in the order listed.
+   * Note that the shape of the resulting cache may be different if the
+   * same options are not used in both caches.
+   */
+  load(arr) {
+    this.clear();
+    for (const [key, entry2] of arr) {
+      if (entry2.start) {
+        const age = Date.now() - entry2.start;
+        entry2.start = perf.now() - age;
+      }
+      this.set(key, entry2.value, entry2);
+    }
+  }
+  /**
+   * Add a value to the cache.
+   *
+   * Note: if `undefined` is specified as a value, this is an alias for
+   * {@link LRUCache#delete}
+   */
+  set(k, v, setOptions = {}) {
+    if (v === void 0) {
+      this.delete(k);
+      return this;
+    }
+    const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions;
+    let { noUpdateTTL = this.noUpdateTTL } = setOptions;
+    const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
+    if (this.maxEntrySize && size > this.maxEntrySize) {
+      if (status) {
+        status.set = "miss";
+        status.maxEntrySizeExceeded = true;
+      }
+      this.delete(k);
+      return this;
+    }
+    let index = this.#size === 0 ? void 0 : this.#keyMap.get(k);
+    if (index === void 0) {
+      index = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size;
+      this.#keyList[index] = k;
+      this.#valList[index] = v;
+      this.#keyMap.set(k, index);
+      this.#next[this.#tail] = index;
+      this.#prev[index] = this.#tail;
+      this.#tail = index;
+      this.#size++;
+      this.#addItemSize(index, size, status);
+      if (status)
+        status.set = "add";
+      noUpdateTTL = false;
+    } else {
+      this.#moveToTail(index);
+      const oldVal = this.#valList[index];
+      if (v !== oldVal) {
+        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
+          oldVal.__abortController.abort(new Error("replaced"));
+          const { __staleWhileFetching: s } = oldVal;
+          if (s !== void 0 && !noDisposeOnSet) {
+            if (this.#hasDispose) {
+              this.#dispose?.(s, k, "set");
+            }
+            if (this.#hasDisposeAfter) {
+              this.#disposed?.push([s, k, "set"]);
+            }
+          }
+        } else if (!noDisposeOnSet) {
+          if (this.#hasDispose) {
+            this.#dispose?.(oldVal, k, "set");
+          }
+          if (this.#hasDisposeAfter) {
+            this.#disposed?.push([oldVal, k, "set"]);
+          }
+        }
+        this.#removeItemSize(index);
+        this.#addItemSize(index, size, status);
+        this.#valList[index] = v;
+        if (status) {
+          status.set = "replace";
+          const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal;
+          if (oldValue !== void 0)
+            status.oldValue = oldValue;
+        }
+      } else if (status) {
+        status.set = "update";
+      }
+    }
+    if (ttl !== 0 && !this.#ttls) {
+      this.#initializeTTLTracking();
+    }
+    if (this.#ttls) {
+      if (!noUpdateTTL) {
+        this.#setItemTTL(index, ttl, start);
+      }
+      if (status)
+        this.#statusTTL(status, index);
+    }
+    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
+      const dt = this.#disposed;
+      let task;
+      while (task = dt?.shift()) {
+        this.#disposeAfter?.(...task);
+      }
+    }
+    return this;
+  }
+  /**
+   * Evict the least recently used item, returning its value or
+   * `undefined` if cache is empty.
+   */
+  pop() {
+    try {
+      while (this.#size) {
+        const val = this.#valList[this.#head];
+        this.#evict(true);
+        if (this.#isBackgroundFetch(val)) {
+          if (val.__staleWhileFetching) {
+            return val.__staleWhileFetching;
+          }
+        } else if (val !== void 0) {
+          return val;
+        }
+      }
+    } finally {
+      if (this.#hasDisposeAfter && this.#disposed) {
+        const dt = this.#disposed;
+        let task;
+        while (task = dt?.shift()) {
+          this.#disposeAfter?.(...task);
+        }
+      }
+    }
+  }
+  #evict(free) {
+    const head = this.#head;
+    const k = this.#keyList[head];
+    const v = this.#valList[head];
+    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
+      v.__abortController.abort(new Error("evicted"));
+    } else if (this.#hasDispose || this.#hasDisposeAfter) {
+      if (this.#hasDispose) {
+        this.#dispose?.(v, k, "evict");
+      }
+      if (this.#hasDisposeAfter) {
+        this.#disposed?.push([v, k, "evict"]);
+      }
+    }
+    this.#removeItemSize(head);
+    if (free) {
+      this.#keyList[head] = void 0;
+      this.#valList[head] = void 0;
+      this.#free.push(head);
+    }
+    if (this.#size === 1) {
+      this.#head = this.#tail = 0;
+      this.#free.length = 0;
+    } else {
+      this.#head = this.#next[head];
+    }
+    this.#keyMap.delete(k);
+    this.#size--;
+    return head;
+  }
+  /**
+   * Check if a key is in the cache, without updating the recency of use.
+   * Will return false if the item is stale, even though it is technically
+   * in the cache.
+   *
+   * Will not update item age unless
+   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
+   */
+  has(k, hasOptions = {}) {
+    const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
+    const index = this.#keyMap.get(k);
+    if (index !== void 0) {
+      const v = this.#valList[index];
+      if (this.#isBackgroundFetch(v) && v.__staleWhileFetching === void 0) {
+        return false;
+      }
+      if (!this.#isStale(index)) {
+        if (updateAgeOnHas) {
+          this.#updateItemAge(index);
+        }
+        if (status) {
+          status.has = "hit";
+          this.#statusTTL(status, index);
+        }
+        return true;
+      } else if (status) {
+        status.has = "stale";
+        this.#statusTTL(status, index);
+      }
+    } else if (status) {
+      status.has = "miss";
+    }
+    return false;
+  }
+  /**
+   * Like {@link LRUCache#get} but doesn't update recency or delete stale
+   * items.
+   *
+   * Returns `undefined` if the item is stale, unless
+   * {@link LRUCache.OptionsBase.allowStale} is set.
+   */
+  peek(k, peekOptions = {}) {
+    const { allowStale = this.allowStale } = peekOptions;
+    const index = this.#keyMap.get(k);
+    if (index === void 0 || !allowStale && this.#isStale(index)) {
+      return;
+    }
+    const v = this.#valList[index];
+    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
+  }
+  #backgroundFetch(k, index, options2, context) {
+    const v = index === void 0 ? void 0 : this.#valList[index];
+    if (this.#isBackgroundFetch(v)) {
+      return v;
+    }
+    const ac = new AC();
+    const { signal } = options2;
+    signal?.addEventListener("abort", () => ac.abort(signal.reason), {
+      signal: ac.signal
+    });
+    const fetchOpts = {
+      signal: ac.signal,
+      options: options2,
+      context
+    };
+    const cb = (v2, updateCache = false) => {
+      const { aborted } = ac.signal;
+      const ignoreAbort = options2.ignoreFetchAbort && v2 !== void 0;
+      if (options2.status) {
+        if (aborted && !updateCache) {
+          options2.status.fetchAborted = true;
+          options2.status.fetchError = ac.signal.reason;
+          if (ignoreAbort)
+            options2.status.fetchAbortIgnored = true;
+        } else {
+          options2.status.fetchResolved = true;
+        }
+      }
+      if (aborted && !ignoreAbort && !updateCache) {
+        return fetchFail(ac.signal.reason);
+      }
+      const bf2 = p;
+      if (this.#valList[index] === p) {
+        if (v2 === void 0) {
+          if (bf2.__staleWhileFetching) {
+            this.#valList[index] = bf2.__staleWhileFetching;
+          } else {
+            this.delete(k);
+          }
+        } else {
+          if (options2.status)
+            options2.status.fetchUpdated = true;
+          this.set(k, v2, fetchOpts.options);
+        }
+      }
+      return v2;
+    };
+    const eb = (er) => {
+      if (options2.status) {
+        options2.status.fetchRejected = true;
+        options2.status.fetchError = er;
+      }
+      return fetchFail(er);
+    };
+    const fetchFail = (er) => {
+      const { aborted } = ac.signal;
+      const allowStaleAborted = aborted && options2.allowStaleOnFetchAbort;
+      const allowStale = allowStaleAborted || options2.allowStaleOnFetchRejection;
+      const noDelete = allowStale || options2.noDeleteOnFetchRejection;
+      const bf2 = p;
+      if (this.#valList[index] === p) {
+        const del = !noDelete || bf2.__staleWhileFetching === void 0;
+        if (del) {
+          this.delete(k);
+        } else if (!allowStaleAborted) {
+          this.#valList[index] = bf2.__staleWhileFetching;
+        }
+      }
+      if (allowStale) {
+        if (options2.status && bf2.__staleWhileFetching !== void 0) {
+          options2.status.returnedStale = true;
+        }
+        return bf2.__staleWhileFetching;
+      } else if (bf2.__returned === bf2) {
+        throw er;
+      }
+    };
+    const pcall = (res, rej) => {
+      const fmp = this.#fetchMethod?.(k, v, fetchOpts);
+      if (fmp && fmp instanceof Promise) {
+        fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej);
+      }
+      ac.signal.addEventListener("abort", () => {
+        if (!options2.ignoreFetchAbort || options2.allowStaleOnFetchAbort) {
+          res(void 0);
+          if (options2.allowStaleOnFetchAbort) {
+            res = (v2) => cb(v2, true);
+          }
+        }
+      });
+    };
+    if (options2.status)
+      options2.status.fetchDispatched = true;
+    const p = new Promise(pcall).then(cb, eb);
+    const bf = Object.assign(p, {
+      __abortController: ac,
+      __staleWhileFetching: v,
+      __returned: void 0
+    });
+    if (index === void 0) {
+      this.set(k, bf, { ...fetchOpts.options, status: void 0 });
+      index = this.#keyMap.get(k);
+    } else {
+      this.#valList[index] = bf;
+    }
+    return bf;
+  }
+  #isBackgroundFetch(p) {
+    if (!this.#hasFetchMethod)
+      return false;
+    const b = p;
+    return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC;
+  }
+  async fetch(k, fetchOptions = {}) {
+    const {
+      // get options
+      allowStale = this.allowStale,
+      updateAgeOnGet = this.updateAgeOnGet,
+      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
+      // set options
+      ttl = this.ttl,
+      noDisposeOnSet = this.noDisposeOnSet,
+      size = 0,
+      sizeCalculation = this.sizeCalculation,
+      noUpdateTTL = this.noUpdateTTL,
+      // fetch exclusive options
+      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
+      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
+      ignoreFetchAbort = this.ignoreFetchAbort,
+      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
+      context,
+      forceRefresh = false,
+      status,
+      signal
+    } = fetchOptions;
+    if (!this.#hasFetchMethod) {
+      if (status)
+        status.fetch = "get";
+      return this.get(k, {
+        allowStale,
+        updateAgeOnGet,
+        noDeleteOnStaleGet,
+        status
+      });
+    }
+    const options2 = {
+      allowStale,
+      updateAgeOnGet,
+      noDeleteOnStaleGet,
+      ttl,
+      noDisposeOnSet,
+      size,
+      sizeCalculation,
+      noUpdateTTL,
+      noDeleteOnFetchRejection,
+      allowStaleOnFetchRejection,
+      allowStaleOnFetchAbort,
+      ignoreFetchAbort,
+      status,
+      signal
+    };
+    let index = this.#keyMap.get(k);
+    if (index === void 0) {
+      if (status)
+        status.fetch = "miss";
+      const p = this.#backgroundFetch(k, index, options2, context);
+      return p.__returned = p;
+    } else {
+      const v = this.#valList[index];
+      if (this.#isBackgroundFetch(v)) {
+        const stale = allowStale && v.__staleWhileFetching !== void 0;
+        if (status) {
+          status.fetch = "inflight";
+          if (stale)
+            status.returnedStale = true;
+        }
+        return stale ? v.__staleWhileFetching : v.__returned = v;
+      }
+      const isStale = this.#isStale(index);
+      if (!forceRefresh && !isStale) {
+        if (status)
+          status.fetch = "hit";
+        this.#moveToTail(index);
+        if (updateAgeOnGet) {
+          this.#updateItemAge(index);
+        }
+        if (status)
+          this.#statusTTL(status, index);
+        return v;
+      }
+      const p = this.#backgroundFetch(k, index, options2, context);
+      const hasStale = p.__staleWhileFetching !== void 0;
+      const staleVal = hasStale && allowStale;
+      if (status) {
+        status.fetch = isStale ? "stale" : "refresh";
+        if (staleVal && isStale)
+          status.returnedStale = true;
+      }
+      return staleVal ? p.__staleWhileFetching : p.__returned = p;
+    }
+  }
+  /**
+   * Return a value from the cache. Will update the recency of the cache
+   * entry found.
+   *
+   * If the key is not found, get() will return `undefined`.
+   */
+  get(k, getOptions = {}) {
+    const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions;
+    const index = this.#keyMap.get(k);
+    if (index !== void 0) {
+      const value = this.#valList[index];
+      const fetching = this.#isBackgroundFetch(value);
+      if (status)
+        this.#statusTTL(status, index);
+      if (this.#isStale(index)) {
+        if (status)
+          status.get = "stale";
+        if (!fetching) {
+          if (!noDeleteOnStaleGet) {
+            this.delete(k);
+          }
+          if (status && allowStale)
+            status.returnedStale = true;
+          return allowStale ? value : void 0;
+        } else {
+          if (status && allowStale && value.__staleWhileFetching !== void 0) {
+            status.returnedStale = true;
+          }
+          return allowStale ? value.__staleWhileFetching : void 0;
+        }
+      } else {
+        if (status)
+          status.get = "hit";
+        if (fetching) {
+          return value.__staleWhileFetching;
+        }
+        this.#moveToTail(index);
+        if (updateAgeOnGet) {
+          this.#updateItemAge(index);
+        }
+        return value;
+      }
+    } else if (status) {
+      status.get = "miss";
+    }
+  }
+  #connect(p, n) {
+    this.#prev[n] = p;
+    this.#next[p] = n;
+  }
+  #moveToTail(index) {
+    if (index !== this.#tail) {
+      if (index === this.#head) {
+        this.#head = this.#next[index];
+      } else {
+        this.#connect(this.#prev[index], this.#next[index]);
+      }
+      this.#connect(this.#tail, index);
+      this.#tail = index;
+    }
+  }
+  /**
+   * Deletes a key out of the cache.
+   * Returns true if the key was deleted, false otherwise.
+   */
+  delete(k) {
+    let deleted = false;
+    if (this.#size !== 0) {
+      const index = this.#keyMap.get(k);
+      if (index !== void 0) {
+        deleted = true;
+        if (this.#size === 1) {
+          this.clear();
+        } else {
+          this.#removeItemSize(index);
+          const v = this.#valList[index];
+          if (this.#isBackgroundFetch(v)) {
+            v.__abortController.abort(new Error("deleted"));
+          } else if (this.#hasDispose || this.#hasDisposeAfter) {
+            if (this.#hasDispose) {
+              this.#dispose?.(v, k, "delete");
+            }
+            if (this.#hasDisposeAfter) {
+              this.#disposed?.push([v, k, "delete"]);
+            }
+          }
+          this.#keyMap.delete(k);
+          this.#keyList[index] = void 0;
+          this.#valList[index] = void 0;
+          if (index === this.#tail) {
+            this.#tail = this.#prev[index];
+          } else if (index === this.#head) {
+            this.#head = this.#next[index];
+          } else {
+            const pi = this.#prev[index];
+            this.#next[pi] = this.#next[index];
+            const ni = this.#next[index];
+            this.#prev[ni] = this.#prev[index];
+          }
+          this.#size--;
+          this.#free.push(index);
+        }
+      }
+    }
+    if (this.#hasDisposeAfter && this.#disposed?.length) {
+      const dt = this.#disposed;
+      let task;
+      while (task = dt?.shift()) {
+        this.#disposeAfter?.(...task);
+      }
+    }
+    return deleted;
+  }
+  /**
+   * Clear the cache entirely, throwing away all values.
+   */
+  clear() {
+    for (const index of this.#rindexes({ allowStale: true })) {
+      const v = this.#valList[index];
+      if (this.#isBackgroundFetch(v)) {
+        v.__abortController.abort(new Error("deleted"));
+      } else {
+        const k = this.#keyList[index];
+        if (this.#hasDispose) {
+          this.#dispose?.(v, k, "delete");
+        }
+        if (this.#hasDisposeAfter) {
+          this.#disposed?.push([v, k, "delete"]);
+        }
+      }
+    }
+    this.#keyMap.clear();
+    this.#valList.fill(void 0);
+    this.#keyList.fill(void 0);
+    if (this.#ttls && this.#starts) {
+      this.#ttls.fill(0);
+      this.#starts.fill(0);
+    }
+    if (this.#sizes) {
+      this.#sizes.fill(0);
+    }
+    this.#head = 0;
+    this.#tail = 0;
+    this.#free.length = 0;
+    this.#calculatedSize = 0;
+    this.#size = 0;
+    if (this.#hasDisposeAfter && this.#disposed) {
+      const dt = this.#disposed;
+      let task;
+      while (task = dt?.shift()) {
+        this.#disposeAfter?.(...task);
+      }
+    }
+  }
+};
+
+// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
+var import_path5 = require("path");
+var import_url = require("url");
+var actualFS = __toESM(require("fs"), 1);
+var import_fs = require("fs");
+var import_promises5 = require("fs/promises");
+
+// ../../node_modules/.pnpm/minipass@7.0.4/node_modules/minipass/dist/esm/index.js
+var import_events = require("events");
+var import_stream = __toESM(require("stream"), 1);
+var import_string_decoder = require("string_decoder");
+var proc = typeof process === "object" && process ? process : {
+  stdout: null,
+  stderr: null
+};
+var isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof import_stream.default || isReadable(s) || isWritable(s));
+var isReadable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
+s.pipe !== import_stream.default.Writable.prototype.pipe;
+var isWritable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.write === "function" && typeof s.end === "function";
+var EOF = Symbol("EOF");
+var MAYBE_EMIT_END = Symbol("maybeEmitEnd");
+var EMITTED_END = Symbol("emittedEnd");
+var EMITTING_END = Symbol("emittingEnd");
+var EMITTED_ERROR = Symbol("emittedError");
+var CLOSED = Symbol("closed");
+var READ = Symbol("read");
+var FLUSH = Symbol("flush");
+var FLUSHCHUNK = Symbol("flushChunk");
+var ENCODING = Symbol("encoding");
+var DECODER = Symbol("decoder");
+var FLOWING = Symbol("flowing");
+var PAUSED = Symbol("paused");
+var RESUME = Symbol("resume");
+var BUFFER = Symbol("buffer");
+var PIPES = Symbol("pipes");
+var BUFFERLENGTH = Symbol("bufferLength");
+var BUFFERPUSH = Symbol("bufferPush");
+var BUFFERSHIFT = Symbol("bufferShift");
+var OBJECTMODE = Symbol("objectMode");
+var DESTROYED = Symbol("destroyed");
+var ERROR = Symbol("error");
+var EMITDATA = Symbol("emitData");
+var EMITEND = Symbol("emitEnd");
+var EMITEND2 = Symbol("emitEnd2");
+var ASYNC = Symbol("async");
+var ABORT = Symbol("abort");
+var ABORTED = Symbol("aborted");
+var SIGNAL = Symbol("signal");
+var DATALISTENERS = Symbol("dataListeners");
+var DISCARDED = Symbol("discarded");
+var defer = (fn) => Promise.resolve().then(fn);
+var nodefer = (fn) => fn();
+var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
+var isArrayBufferLike = (b) => b instanceof ArrayBuffer || !!b && typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
+var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
+var Pipe = class {
+  src;
+  dest;
+  opts;
+  ondrain;
+  constructor(src, dest, opts) {
+    this.src = src;
+    this.dest = dest;
+    this.opts = opts;
+    this.ondrain = () => src[RESUME]();
+    this.dest.on("drain", this.ondrain);
+  }
+  unpipe() {
+    this.dest.removeListener("drain", this.ondrain);
+  }
+  // only here for the prototype
+  /* c8 ignore start */
+  proxyErrors(_er) {
+  }
+  /* c8 ignore stop */
+  end() {
+    this.unpipe();
+    if (this.opts.end)
+      this.dest.end();
+  }
+};
+var PipeProxyErrors = class extends Pipe {
+  unpipe() {
+    this.src.removeListener("error", this.proxyErrors);
+    super.unpipe();
+  }
+  constructor(src, dest, opts) {
+    super(src, dest, opts);
+    this.proxyErrors = (er) => dest.emit("error", er);
+    src.on("error", this.proxyErrors);
+  }
+};
+var isObjectModeOptions = (o) => !!o.objectMode;
+var isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== "buffer";
+var Minipass = class extends import_events.EventEmitter {
+  [FLOWING] = false;
+  [PAUSED] = false;
+  [PIPES] = [];
+  [BUFFER] = [];
+  [OBJECTMODE];
+  [ENCODING];
+  [ASYNC];
+  [DECODER];
+  [EOF] = false;
+  [EMITTED_END] = false;
+  [EMITTING_END] = false;
+  [CLOSED] = false;
+  [EMITTED_ERROR] = null;
+  [BUFFERLENGTH] = 0;
+  [DESTROYED] = false;
+  [SIGNAL];
+  [ABORTED] = false;
+  [DATALISTENERS] = 0;
+  [DISCARDED] = false;
+  /**
+   * true if the stream can be written
+   */
+  writable = true;
+  /**
+   * true if the stream can be read
+   */
+  readable = true;
+  /**
+   * If `RType` is Buffer, then options do not need to be provided.
+   * Otherwise, an options object must be provided to specify either
+   * {@link Minipass.SharedOptions.objectMode} or
+   * {@link Minipass.SharedOptions.encoding}, as appropriate.
+   */
+  constructor(...args) {
+    const options2 = args[0] || {};
+    super();
+    if (options2.objectMode && typeof options2.encoding === "string") {
+      throw new TypeError("Encoding and objectMode may not be used together");
+    }
+    if (isObjectModeOptions(options2)) {
+      this[OBJECTMODE] = true;
+      this[ENCODING] = null;
+    } else if (isEncodingOptions(options2)) {
+      this[ENCODING] = options2.encoding;
+      this[OBJECTMODE] = false;
+    } else {
+      this[OBJECTMODE] = false;
+      this[ENCODING] = null;
+    }
+    this[ASYNC] = !!options2.async;
+    this[DECODER] = this[ENCODING] ? new import_string_decoder.StringDecoder(this[ENCODING]) : null;
+    if (options2 && options2.debugExposeBuffer === true) {
+      Object.defineProperty(this, "buffer", { get: () => this[BUFFER] });
+    }
+    if (options2 && options2.debugExposePipes === true) {
+      Object.defineProperty(this, "pipes", { get: () => this[PIPES] });
+    }
+    const { signal } = options2;
+    if (signal) {
+      this[SIGNAL] = signal;
+      if (signal.aborted) {
+        this[ABORT]();
+      } else {
+        signal.addEventListener("abort", () => this[ABORT]());
+      }
+    }
+  }
+  /**
+   * The amount of data stored in the buffer waiting to be read.
+   *
+   * For Buffer strings, this will be the total byte length.
+   * For string encoding streams, this will be the string character length,
+   * according to JavaScript's `string.length` logic.
+   * For objectMode streams, this is a count of the items waiting to be
+   * emitted.
+   */
+  get bufferLength() {
+    return this[BUFFERLENGTH];
+  }
+  /**
+   * The `BufferEncoding` currently in use, or `null`
+   */
+  get encoding() {
+    return this[ENCODING];
+  }
+  /**
+   * @deprecated - This is a read only property
+   */
+  set encoding(_enc) {
+    throw new Error("Encoding must be set at instantiation time");
+  }
+  /**
+   * @deprecated - Encoding may only be set at instantiation time
+   */
+  setEncoding(_enc) {
+    throw new Error("Encoding must be set at instantiation time");
+  }
+  /**
+   * True if this is an objectMode stream
+   */
+  get objectMode() {
+    return this[OBJECTMODE];
+  }
+  /**
+   * @deprecated - This is a read-only property
+   */
+  set objectMode(_om) {
+    throw new Error("objectMode must be set at instantiation time");
+  }
+  /**
+   * true if this is an async stream
+   */
+  get ["async"]() {
+    return this[ASYNC];
+  }
+  /**
+   * Set to true to make this stream async.
+   *
+   * Once set, it cannot be unset, as this would potentially cause incorrect
+   * behavior.  Ie, a sync stream can be made async, but an async stream
+   * cannot be safely made sync.
+   */
+  set ["async"](a) {
+    this[ASYNC] = this[ASYNC] || !!a;
+  }
+  // drop everything and get out of the flow completely
+  [ABORT]() {
+    this[ABORTED] = true;
+    this.emit("abort", this[SIGNAL]?.reason);
+    this.destroy(this[SIGNAL]?.reason);
+  }
+  /**
+   * True if the stream has been aborted.
+   */
+  get aborted() {
+    return this[ABORTED];
+  }
+  /**
+   * No-op setter. Stream aborted status is set via the AbortSignal provided
+   * in the constructor options.
+   */
+  set aborted(_) {
+  }
+  write(chunk, encoding, cb) {
+    if (this[ABORTED])
+      return false;
+    if (this[EOF])
+      throw new Error("write after end");
+    if (this[DESTROYED]) {
+      this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" }));
+      return true;
+    }
+    if (typeof encoding === "function") {
+      cb = encoding;
+      encoding = "utf8";
+    }
+    if (!encoding)
+      encoding = "utf8";
+    const fn = this[ASYNC] ? defer : nodefer;
+    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
+      if (isArrayBufferView(chunk)) {
+        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
+      } else if (isArrayBufferLike(chunk)) {
+        chunk = Buffer.from(chunk);
+      } else if (typeof chunk !== "string") {
+        throw new Error("Non-contiguous data written to non-objectMode stream");
+      }
+    }
+    if (this[OBJECTMODE]) {
+      if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
+        this[FLUSH](true);
+      if (this[FLOWING])
+        this.emit("data", chunk);
+      else
+        this[BUFFERPUSH](chunk);
+      if (this[BUFFERLENGTH] !== 0)
+        this.emit("readable");
+      if (cb)
+        fn(cb);
+      return this[FLOWING];
+    }
+    if (!chunk.length) {
+      if (this[BUFFERLENGTH] !== 0)
+        this.emit("readable");
+      if (cb)
+        fn(cb);
+      return this[FLOWING];
+    }
+    if (typeof chunk === "string" && // unless it is a string already ready for us to use
+    !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
+      chunk = Buffer.from(chunk, encoding);
+    }
+    if (Buffer.isBuffer(chunk) && this[ENCODING]) {
+      chunk = this[DECODER].write(chunk);
+    }
+    if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
+      this[FLUSH](true);
+    if (this[FLOWING])
+      this.emit("data", chunk);
+    else
+      this[BUFFERPUSH](chunk);
+    if (this[BUFFERLENGTH] !== 0)
+      this.emit("readable");
+    if (cb)
+      fn(cb);
+    return this[FLOWING];
+  }
+  /**
+   * Low-level explicit read method.
+   *
+   * In objectMode, the argument is ignored, and one item is returned if
+   * available.
+   *
+   * `n` is the number of bytes (or in the case of encoding streams,
+   * characters) to consume. If `n` is not provided, then the entire buffer
+   * is returned, or `null` is returned if no data is available.
+   *
+   * If `n` is greater that the amount of data in the internal buffer,
+   * then `null` is returned.
+   */
+  read(n) {
+    if (this[DESTROYED])
+      return null;
+    this[DISCARDED] = false;
+    if (this[BUFFERLENGTH] === 0 || n === 0 || n && n > this[BUFFERLENGTH]) {
+      this[MAYBE_EMIT_END]();
+      return null;
+    }
+    if (this[OBJECTMODE])
+      n = null;
+    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
+      this[BUFFER] = [
+        this[ENCODING] ? this[BUFFER].join("") : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])
+      ];
+    }
+    const ret = this[READ](n || null, this[BUFFER][0]);
+    this[MAYBE_EMIT_END]();
+    return ret;
+  }
+  [READ](n, chunk) {
+    if (this[OBJECTMODE])
+      this[BUFFERSHIFT]();
+    else {
+      const c = chunk;
+      if (n === c.length || n === null)
+        this[BUFFERSHIFT]();
+      else if (typeof c === "string") {
+        this[BUFFER][0] = c.slice(n);
+        chunk = c.slice(0, n);
+        this[BUFFERLENGTH] -= n;
+      } else {
+        this[BUFFER][0] = c.subarray(n);
+        chunk = c.subarray(0, n);
+        this[BUFFERLENGTH] -= n;
+      }
+    }
+    this.emit("data", chunk);
+    if (!this[BUFFER].length && !this[EOF])
+      this.emit("drain");
+    return chunk;
+  }
+  end(chunk, encoding, cb) {
+    if (typeof chunk === "function") {
+      cb = chunk;
+      chunk = void 0;
+    }
+    if (typeof encoding === "function") {
+      cb = encoding;
+      encoding = "utf8";
+    }
+    if (chunk !== void 0)
+      this.write(chunk, encoding);
+    if (cb)
+      this.once("end", cb);
+    this[EOF] = true;
+    this.writable = false;
+    if (this[FLOWING] || !this[PAUSED])
+      this[MAYBE_EMIT_END]();
+    return this;
+  }
+  // don't let the internal resume be overwritten
+  [RESUME]() {
+    if (this[DESTROYED])
+      return;
+    if (!this[DATALISTENERS] && !this[PIPES].length) {
+      this[DISCARDED] = true;
+    }
+    this[PAUSED] = false;
+    this[FLOWING] = true;
+    this.emit("resume");
+    if (this[BUFFER].length)
+      this[FLUSH]();
+    else if (this[EOF])
+      this[MAYBE_EMIT_END]();
+    else
+      this.emit("drain");
+  }
+  /**
+   * Resume the stream if it is currently in a paused state
+   *
+   * If called when there are no pipe destinations or `data` event listeners,
+   * this will place the stream in a "discarded" state, where all data will
+   * be thrown away. The discarded state is removed if a pipe destination or
+   * data handler is added, if pause() is called, or if any synchronous or
+   * asynchronous iteration is started.
+   */
+  resume() {
+    return this[RESUME]();
+  }
+  /**
+   * Pause the stream
+   */
+  pause() {
+    this[FLOWING] = false;
+    this[PAUSED] = true;
+    this[DISCARDED] = false;
+  }
+  /**
+   * true if the stream has been forcibly destroyed
+   */
+  get destroyed() {
+    return this[DESTROYED];
+  }
+  /**
+   * true if the stream is currently in a flowing state, meaning that
+   * any writes will be immediately emitted.
+   */
+  get flowing() {
+    return this[FLOWING];
+  }
+  /**
+   * true if the stream is currently in a paused state
+   */
+  get paused() {
+    return this[PAUSED];
+  }
+  [BUFFERPUSH](chunk) {
+    if (this[OBJECTMODE])
+      this[BUFFERLENGTH] += 1;
+    else
+      this[BUFFERLENGTH] += chunk.length;
+    this[BUFFER].push(chunk);
+  }
+  [BUFFERSHIFT]() {
+    if (this[OBJECTMODE])
+      this[BUFFERLENGTH] -= 1;
+    else
+      this[BUFFERLENGTH] -= this[BUFFER][0].length;
+    return this[BUFFER].shift();
+  }
+  [FLUSH](noDrain = false) {
+    do {
+    } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length);
+    if (!noDrain && !this[BUFFER].length && !this[EOF])
+      this.emit("drain");
+  }
+  [FLUSHCHUNK](chunk) {
+    this.emit("data", chunk);
+    return this[FLOWING];
+  }
+  /**
+   * Pipe all data emitted by this stream into the destination provided.
+   *
+   * Triggers the flow of data.
+   */
+  pipe(dest, opts) {
+    if (this[DESTROYED])
+      return dest;
+    this[DISCARDED] = false;
+    const ended = this[EMITTED_END];
+    opts = opts || {};
+    if (dest === proc.stdout || dest === proc.stderr)
+      opts.end = false;
+    else
+      opts.end = opts.end !== false;
+    opts.proxyErrors = !!opts.proxyErrors;
+    if (ended) {
+      if (opts.end)
+        dest.end();
+    } else {
+      this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
+      if (this[ASYNC])
+        defer(() => this[RESUME]());
+      else
+        this[RESUME]();
+    }
+    return dest;
+  }
+  /**
+   * Fully unhook a piped destination stream.
+   *
+   * If the destination stream was the only consumer of this stream (ie,
+   * there are no other piped destinations or `'data'` event listeners)
+   * then the flow of data will stop until there is another consumer or
+   * {@link Minipass#resume} is explicitly called.
+   */
+  unpipe(dest) {
+    const p = this[PIPES].find((p2) => p2.dest === dest);
+    if (p) {
+      if (this[PIPES].length === 1) {
+        if (this[FLOWING] && this[DATALISTENERS] === 0) {
+          this[FLOWING] = false;
+        }
+        this[PIPES] = [];
+      } else
+        this[PIPES].splice(this[PIPES].indexOf(p), 1);
+      p.unpipe();
+    }
+  }
+  /**
+   * Alias for {@link Minipass#on}
+   */
+  addListener(ev, handler) {
+    return this.on(ev, handler);
+  }
+  /**
+   * Mostly identical to `EventEmitter.on`, with the following
+   * behavior differences to prevent data loss and unnecessary hangs:
+   *
+   * - Adding a 'data' event handler will trigger the flow of data
+   *
+   * - Adding a 'readable' event handler when there is data waiting to be read
+   *   will cause 'readable' to be emitted immediately.
+   *
+   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
+   *   already passed will cause the event to be emitted immediately and all
+   *   handlers removed.
+   *
+   * - Adding an 'error' event handler after an error has been emitted will
+   *   cause the event to be re-emitted immediately with the error previously
+   *   raised.
+   */
+  on(ev, handler) {
+    const ret = super.on(ev, handler);
+    if (ev === "data") {
+      this[DISCARDED] = false;
+      this[DATALISTENERS]++;
+      if (!this[PIPES].length && !this[FLOWING]) {
+        this[RESUME]();
+      }
+    } else if (ev === "readable" && this[BUFFERLENGTH] !== 0) {
+      super.emit("readable");
+    } else if (isEndish(ev) && this[EMITTED_END]) {
+      super.emit(ev);
+      this.removeAllListeners(ev);
+    } else if (ev === "error" && this[EMITTED_ERROR]) {
+      const h = handler;
+      if (this[ASYNC])
+        defer(() => h.call(this, this[EMITTED_ERROR]));
+      else
+        h.call(this, this[EMITTED_ERROR]);
+    }
+    return ret;
+  }
+  /**
+   * Alias for {@link Minipass#off}
+   */
+  removeListener(ev, handler) {
+    return this.off(ev, handler);
+  }
+  /**
+   * Mostly identical to `EventEmitter.off`
+   *
+   * If a 'data' event handler is removed, and it was the last consumer
+   * (ie, there are no pipe destinations or other 'data' event listeners),
+   * then the flow of data will stop until there is another consumer or
+   * {@link Minipass#resume} is explicitly called.
+   */
+  off(ev, handler) {
+    const ret = super.off(ev, handler);
+    if (ev === "data") {
+      this[DATALISTENERS] = this.listeners("data").length;
+      if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) {
+        this[FLOWING] = false;
+      }
+    }
+    return ret;
+  }
+  /**
+   * Mostly identical to `EventEmitter.removeAllListeners`
+   *
+   * If all 'data' event handlers are removed, and they were the last consumer
+   * (ie, there are no pipe destinations), then the flow of data will stop
+   * until there is another consumer or {@link Minipass#resume} is explicitly
+   * called.
+   */
+  removeAllListeners(ev) {
+    const ret = super.removeAllListeners(ev);
+    if (ev === "data" || ev === void 0) {
+      this[DATALISTENERS] = 0;
+      if (!this[DISCARDED] && !this[PIPES].length) {
+        this[FLOWING] = false;
+      }
+    }
+    return ret;
+  }
+  /**
+   * true if the 'end' event has been emitted
+   */
+  get emittedEnd() {
+    return this[EMITTED_END];
+  }
+  [MAYBE_EMIT_END]() {
+    if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
+      this[EMITTING_END] = true;
+      this.emit("end");
+      this.emit("prefinish");
+      this.emit("finish");
+      if (this[CLOSED])
+        this.emit("close");
+      this[EMITTING_END] = false;
+    }
+  }
+  /**
+   * Mostly identical to `EventEmitter.emit`, with the following
+   * behavior differences to prevent data loss and unnecessary hangs:
+   *
+   * If the stream has been destroyed, and the event is something other
+   * than 'close' or 'error', then `false` is returned and no handlers
+   * are called.
+   *
+   * If the event is 'end', and has already been emitted, then the event
+   * is ignored. If the stream is in a paused or non-flowing state, then
+   * the event will be deferred until data flow resumes. If the stream is
+   * async, then handlers will be called on the next tick rather than
+   * immediately.
+   *
+   * If the event is 'close', and 'end' has not yet been emitted, then
+   * the event will be deferred until after 'end' is emitted.
+   *
+   * If the event is 'error', and an AbortSignal was provided for the stream,
+   * and there are no listeners, then the event is ignored, matching the
+   * behavior of node core streams in the presense of an AbortSignal.
+   *
+   * If the event is 'finish' or 'prefinish', then all listeners will be
+   * removed after emitting the event, to prevent double-firing.
+   */
+  emit(ev, ...args) {
+    const data = args[0];
+    if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) {
+      return false;
+    } else if (ev === "data") {
+      return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? (defer(() => this[EMITDATA](data)), true) : this[EMITDATA](data);
+    } else if (ev === "end") {
+      return this[EMITEND]();
+    } else if (ev === "close") {
+      this[CLOSED] = true;
+      if (!this[EMITTED_END] && !this[DESTROYED])
+        return false;
+      const ret2 = super.emit("close");
+      this.removeAllListeners("close");
+      return ret2;
+    } else if (ev === "error") {
+      this[EMITTED_ERROR] = data;
+      super.emit(ERROR, data);
+      const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false;
+      this[MAYBE_EMIT_END]();
+      return ret2;
+    } else if (ev === "resume") {
+      const ret2 = super.emit("resume");
+      this[MAYBE_EMIT_END]();
+      return ret2;
+    } else if (ev === "finish" || ev === "prefinish") {
+      const ret2 = super.emit(ev);
+      this.removeAllListeners(ev);
+      return ret2;
+    }
+    const ret = super.emit(ev, ...args);
+    this[MAYBE_EMIT_END]();
+    return ret;
+  }
+  [EMITDATA](data) {
+    for (const p of this[PIPES]) {
+      if (p.dest.write(data) === false)
+        this.pause();
+    }
+    const ret = this[DISCARDED] ? false : super.emit("data", data);
+    this[MAYBE_EMIT_END]();
+    return ret;
+  }
+  [EMITEND]() {
+    if (this[EMITTED_END])
+      return false;
+    this[EMITTED_END] = true;
+    this.readable = false;
+    return this[ASYNC] ? (defer(() => this[EMITEND2]()), true) : this[EMITEND2]();
+  }
+  [EMITEND2]() {
+    if (this[DECODER]) {
+      const data = this[DECODER].end();
+      if (data) {
+        for (const p of this[PIPES]) {
+          p.dest.write(data);
+        }
+        if (!this[DISCARDED])
+          super.emit("data", data);
+      }
+    }
+    for (const p of this[PIPES]) {
+      p.end();
+    }
+    const ret = super.emit("end");
+    this.removeAllListeners("end");
+    return ret;
+  }
+  /**
+   * Return a Promise that resolves to an array of all emitted data once
+   * the stream ends.
+   */
+  async collect() {
+    const buf = Object.assign([], {
+      dataLength: 0
+    });
+    if (!this[OBJECTMODE])
+      buf.dataLength = 0;
+    const p = this.promise();
+    this.on("data", (c) => {
+      buf.push(c);
+      if (!this[OBJECTMODE])
+        buf.dataLength += c.length;
+    });
+    await p;
+    return buf;
+  }
+  /**
+   * Return a Promise that resolves to the concatenation of all emitted data
+   * once the stream ends.
+   *
+   * Not allowed on objectMode streams.
+   */
+  async concat() {
+    if (this[OBJECTMODE]) {
+      throw new Error("cannot concat in objectMode");
+    }
+    const buf = await this.collect();
+    return this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength);
+  }
+  /**
+   * Return a void Promise that resolves once the stream ends.
+   */
+  async promise() {
+    return new Promise((resolve, reject) => {
+      this.on(DESTROYED, () => reject(new Error("stream destroyed")));
+      this.on("error", (er) => reject(er));
+      this.on("end", () => resolve());
+    });
+  }
+  /**
+   * Asynchronous `for await of` iteration.
+   *
+   * This will continue emitting all chunks until the stream terminates.
+   */
+  [Symbol.asyncIterator]() {
+    this[DISCARDED] = false;
+    let stopped = false;
+    const stop = async () => {
+      this.pause();
+      stopped = true;
+      return { value: void 0, done: true };
+    };
+    const next = () => {
+      if (stopped)
+        return stop();
+      const res = this.read();
+      if (res !== null)
+        return Promise.resolve({ done: false, value: res });
+      if (this[EOF])
+        return stop();
+      let resolve;
+      let reject;
+      const onerr = (er) => {
+        this.off("data", ondata);
+        this.off("end", onend);
+        this.off(DESTROYED, ondestroy);
+        stop();
+        reject(er);
+      };
+      const ondata = (value) => {
+        this.off("error", onerr);
+        this.off("end", onend);
+        this.off(DESTROYED, ondestroy);
+        this.pause();
+        resolve({ value, done: !!this[EOF] });
+      };
+      const onend = () => {
+        this.off("error", onerr);
+        this.off("data", ondata);
+        this.off(DESTROYED, ondestroy);
+        stop();
+        resolve({ done: true, value: void 0 });
+      };
+      const ondestroy = () => onerr(new Error("stream destroyed"));
+      return new Promise((res2, rej) => {
+        reject = rej;
+        resolve = res2;
+        this.once(DESTROYED, ondestroy);
+        this.once("error", onerr);
+        this.once("end", onend);
+        this.once("data", ondata);
+      });
+    };
+    return {
+      next,
+      throw: stop,
+      return: stop,
+      [Symbol.asyncIterator]() {
+        return this;
+      }
+    };
+  }
+  /**
+   * Synchronous `for of` iteration.
+   *
+   * The iteration will terminate when the internal buffer runs out, even
+   * if the stream has not yet terminated.
+   */
+  [Symbol.iterator]() {
+    this[DISCARDED] = false;
+    let stopped = false;
+    const stop = () => {
+      this.pause();
+      this.off(ERROR, stop);
+      this.off(DESTROYED, stop);
+      this.off("end", stop);
+      stopped = true;
+      return { done: true, value: void 0 };
+    };
+    const next = () => {
+      if (stopped)
+        return stop();
+      const value = this.read();
+      return value === null ? stop() : { done: false, value };
+    };
+    this.once("end", stop);
+    this.once(ERROR, stop);
+    this.once(DESTROYED, stop);
+    return {
+      next,
+      throw: stop,
+      return: stop,
+      [Symbol.iterator]() {
+        return this;
+      }
+    };
+  }
+  /**
+   * Destroy a stream, preventing it from being used for any further purpose.
+   *
+   * If the stream has a `close()` method, then it will be called on
+   * destruction.
+   *
+   * After destruction, any attempt to write data, read data, or emit most
+   * events will be ignored.
+   *
+   * If an error argument is provided, then it will be emitted in an
+   * 'error' event.
+   */
+  destroy(er) {
+    if (this[DESTROYED]) {
+      if (er)
+        this.emit("error", er);
+      else
+        this.emit(DESTROYED);
+      return this;
+    }
+    this[DESTROYED] = true;
+    this[DISCARDED] = true;
+    this[BUFFER].length = 0;
+    this[BUFFERLENGTH] = 0;
+    const wc = this;
+    if (typeof wc.close === "function" && !this[CLOSED])
+      wc.close();
+    if (er)
+      this.emit("error", er);
+    else
+      this.emit(DESTROYED);
+    return this;
+  }
+  /**
+   * Alias for {@link isStream}
+   *
+   * Former export location, maintained for backwards compatibility.
+   *
+   * @deprecated
+   */
+  static get isStream() {
+    return isStream;
+  }
+};
+
+// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
+var realpathSync = import_fs.realpathSync.native;
+var defaultFS = {
+  lstatSync: import_fs.lstatSync,
+  readdir: import_fs.readdir,
+  readdirSync: import_fs.readdirSync,
+  readlinkSync: import_fs.readlinkSync,
+  realpathSync,
+  promises: {
+    lstat: import_promises5.lstat,
+    readdir: import_promises5.readdir,
+    readlink: import_promises5.readlink,
+    realpath: import_promises5.realpath
+  }
+};
+var fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ? defaultFS : {
+  ...defaultFS,
+  ...fsOption,
+  promises: {
+    ...defaultFS.promises,
+    ...fsOption.promises || {}
+  }
+};
+var uncDriveRegexp = /^\\\\\?\\([a-z]:)\\?$/i;
+var uncToDrive = (rootPath) => rootPath.replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
+var eitherSep = /[\\\/]/;
+var UNKNOWN2 = 0;
+var IFIFO = 1;
+var IFCHR = 2;
+var IFDIR = 4;
+var IFBLK = 6;
+var IFREG = 8;
+var IFLNK = 10;
+var IFSOCK = 12;
+var IFMT = 15;
+var IFMT_UNKNOWN = ~IFMT;
+var READDIR_CALLED = 16;
+var LSTAT_CALLED = 32;
+var ENOTDIR = 64;
+var ENOENT = 128;
+var ENOREADLINK = 256;
+var ENOREALPATH = 512;
+var ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
+var TYPEMASK = 1023;
+var entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN2;
+var normalizeCache = /* @__PURE__ */ new Map();
+var normalize = (s) => {
+  const c = normalizeCache.get(s);
+  if (c)
+    return c;
+  const n = s.normalize("NFKD");
+  normalizeCache.set(s, n);
+  return n;
+};
+var normalizeNocaseCache = /* @__PURE__ */ new Map();
+var normalizeNocase = (s) => {
+  const c = normalizeNocaseCache.get(s);
+  if (c)
+    return c;
+  const n = normalize(s.toLowerCase());
+  normalizeNocaseCache.set(s, n);
+  return n;
+};
+var ResolveCache = class extends LRUCache {
+  constructor() {
+    super({ max: 256 });
+  }
+};
+var ChildrenCache = class extends LRUCache {
+  constructor(maxSize = 16 * 1024) {
+    super({
+      maxSize,
+      // parent + children
+      sizeCalculation: (a) => a.length + 1
+    });
+  }
+};
+var setAsCwd = Symbol("PathScurry setAsCwd");
+var PathBase = class {
+  /**
+   * the basename of this path
+   *
+   * **Important**: *always* test the path name against any test string
+   * usingthe {@link isNamed} method, and not by directly comparing this
+   * string. Otherwise, unicode path strings that the system sees as identical
+   * will not be properly treated as the same path, leading to incorrect
+   * behavior and possible security issues.
+   */
+  name;
+  /**
+   * the Path entry corresponding to the path root.
+   *
+   * @internal
+   */
+  root;
+  /**
+   * All roots found within the current PathScurry family
+   *
+   * @internal
+   */
+  roots;
+  /**
+   * a reference to the parent path, or undefined in the case of root entries
+   *
+   * @internal
+   */
+  parent;
+  /**
+   * boolean indicating whether paths are compared case-insensitively
+   * @internal
+   */
+  nocase;
+  // potential default fs override
+  #fs;
+  // Stats fields
+  #dev;
+  get dev() {
+    return this.#dev;
+  }
+  #mode;
+  get mode() {
+    return this.#mode;
+  }
+  #nlink;
+  get nlink() {
+    return this.#nlink;
+  }
+  #uid;
+  get uid() {
+    return this.#uid;
+  }
+  #gid;
+  get gid() {
+    return this.#gid;
+  }
+  #rdev;
+  get rdev() {
+    return this.#rdev;
+  }
+  #blksize;
+  get blksize() {
+    return this.#blksize;
+  }
+  #ino;
+  get ino() {
+    return this.#ino;
+  }
+  #size;
+  get size() {
+    return this.#size;
+  }
+  #blocks;
+  get blocks() {
+    return this.#blocks;
+  }
+  #atimeMs;
+  get atimeMs() {
+    return this.#atimeMs;
+  }
+  #mtimeMs;
+  get mtimeMs() {
+    return this.#mtimeMs;
+  }
+  #ctimeMs;
+  get ctimeMs() {
+    return this.#ctimeMs;
+  }
+  #birthtimeMs;
+  get birthtimeMs() {
+    return this.#birthtimeMs;
+  }
+  #atime;
+  get atime() {
+    return this.#atime;
+  }
+  #mtime;
+  get mtime() {
+    return this.#mtime;
+  }
+  #ctime;
+  get ctime() {
+    return this.#ctime;
+  }
+  #birthtime;
+  get birthtime() {
+    return this.#birthtime;
+  }
+  #matchName;
+  #depth;
+  #fullpath;
+  #fullpathPosix;
+  #relative;
+  #relativePosix;
+  #type;
+  #children;
+  #linkTarget;
+  #realpath;
+  /**
+   * This property is for compatibility with the Dirent class as of
+   * Node v20, where Dirent['path'] refers to the path of the directory
+   * that was passed to readdir.  So, somewhat counterintuitively, this
+   * property refers to the *parent* path, not the path object itself.
+   * For root entries, it's the path to the entry itself.
+   */
+  get path() {
+    return (this.parent || this).fullpath();
+  }
+  /**
+   * Do not create new Path objects directly.  They should always be accessed
+   * via the PathScurry class or other methods on the Path class.
+   *
+   * @internal
+   */
+  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
+    this.name = name;
+    this.#matchName = nocase ? normalizeNocase(name) : normalize(name);
+    this.#type = type2 & TYPEMASK;
+    this.nocase = nocase;
+    this.roots = roots;
+    this.root = root || this;
+    this.#children = children;
+    this.#fullpath = opts.fullpath;
+    this.#relative = opts.relative;
+    this.#relativePosix = opts.relativePosix;
+    this.parent = opts.parent;
+    if (this.parent) {
+      this.#fs = this.parent.#fs;
+    } else {
+      this.#fs = fsFromOption(opts.fs);
+    }
+  }
+  /**
+   * Returns the depth of the Path object from its root.
+   *
+   * For example, a path at `/foo/bar` would have a depth of 2.
+   */
+  depth() {
+    if (this.#depth !== void 0)
+      return this.#depth;
+    if (!this.parent)
+      return this.#depth = 0;
+    return this.#depth = this.parent.depth() + 1;
+  }
+  /**
+   * @internal
+   */
+  childrenCache() {
+    return this.#children;
+  }
+  /**
+   * Get the Path object referenced by the string path, resolved from this Path
+   */
+  resolve(path8) {
+    if (!path8) {
+      return this;
+    }
+    const rootPath = this.getRootString(path8);
+    const dir = path8.substring(rootPath.length);
+    const dirParts = dir.split(this.splitSep);
+    const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts);
+    return result;
+  }
+  #resolveParts(dirParts) {
+    let p = this;
+    for (const part of dirParts) {
+      p = p.child(part);
+    }
+    return p;
+  }
+  /**
+   * Returns the cached children Path objects, if still available.  If they
+   * have fallen out of the cache, then returns an empty array, and resets the
+   * READDIR_CALLED bit, so that future calls to readdir() will require an fs
+   * lookup.
+   *
+   * @internal
+   */
+  children() {
+    const cached = this.#children.get(this);
+    if (cached) {
+      return cached;
+    }
+    const children = Object.assign([], { provisional: 0 });
+    this.#children.set(this, children);
+    this.#type &= ~READDIR_CALLED;
+    return children;
+  }
+  /**
+   * Resolves a path portion and returns or creates the child Path.
+   *
+   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is
+   * `'..'`.
+   *
+   * This should not be called directly.  If `pathPart` contains any path
+   * separators, it will lead to unsafe undefined behavior.
+   *
+   * Use `Path.resolve()` instead.
+   *
+   * @internal
+   */
+  child(pathPart, opts) {
+    if (pathPart === "" || pathPart === ".") {
+      return this;
+    }
+    if (pathPart === "..") {
+      return this.parent || this;
+    }
+    const children = this.children();
+    const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
+    for (const p of children) {
+      if (p.#matchName === name) {
+        return p;
+      }
+    }
+    const s = this.parent ? this.sep : "";
+    const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0;
+    const pchild = this.newChild(pathPart, UNKNOWN2, {
+      ...opts,
+      parent: this,
+      fullpath
+    });
+    if (!this.canReaddir()) {
+      pchild.#type |= ENOENT;
+    }
+    children.push(pchild);
+    return pchild;
+  }
+  /**
+   * The relative path from the cwd. If it does not share an ancestor with
+   * the cwd, then this ends up being equivalent to the fullpath()
+   */
+  relative() {
+    if (this.#relative !== void 0) {
+      return this.#relative;
+    }
+    const name = this.name;
+    const p = this.parent;
+    if (!p) {
+      return this.#relative = this.name;
+    }
+    const pv = p.relative();
+    return pv + (!pv || !p.parent ? "" : this.sep) + name;
+  }
+  /**
+   * The relative path from the cwd, using / as the path separator.
+   * If it does not share an ancestor with
+   * the cwd, then this ends up being equivalent to the fullpathPosix()
+   * On posix systems, this is identical to relative().
+   */
+  relativePosix() {
+    if (this.sep === "/")
+      return this.relative();
+    if (this.#relativePosix !== void 0)
+      return this.#relativePosix;
+    const name = this.name;
+    const p = this.parent;
+    if (!p) {
+      return this.#relativePosix = this.fullpathPosix();
+    }
+    const pv = p.relativePosix();
+    return pv + (!pv || !p.parent ? "" : "/") + name;
+  }
+  /**
+   * The fully resolved path string for this Path entry
+   */
+  fullpath() {
+    if (this.#fullpath !== void 0) {
+      return this.#fullpath;
+    }
+    const name = this.name;
+    const p = this.parent;
+    if (!p) {
+      return this.#fullpath = this.name;
+    }
+    const pv = p.fullpath();
+    const fp = pv + (!p.parent ? "" : this.sep) + name;
+    return this.#fullpath = fp;
+  }
+  /**
+   * On platforms other than windows, this is identical to fullpath.
+   *
+   * On windows, this is overridden to return the forward-slash form of the
+   * full UNC path.
+   */
+  fullpathPosix() {
+    if (this.#fullpathPosix !== void 0)
+      return this.#fullpathPosix;
+    if (this.sep === "/")
+      return this.#fullpathPosix = this.fullpath();
+    if (!this.parent) {
+      const p2 = this.fullpath().replace(/\\/g, "/");
+      if (/^[a-z]:\//i.test(p2)) {
+        return this.#fullpathPosix = `//?/${p2}`;
+      } else {
+        return this.#fullpathPosix = p2;
+      }
+    }
+    const p = this.parent;
+    const pfpp = p.fullpathPosix();
+    const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name;
+    return this.#fullpathPosix = fpp;
+  }
+  /**
+   * Is the Path of an unknown type?
+   *
+   * Note that we might know *something* about it if there has been a previous
+   * filesystem operation, for example that it does not exist, or is not a
+   * link, or whether it has child entries.
+   */
+  isUnknown() {
+    return (this.#type & IFMT) === UNKNOWN2;
+  }
+  isType(type2) {
+    return this[`is${type2}`]();
+  }
+  getType() {
+    return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : (
+      /* c8 ignore start */
+      this.isSocket() ? "Socket" : "Unknown"
+    );
+  }
+  /**
+   * Is the Path a regular file?
+   */
+  isFile() {
+    return (this.#type & IFMT) === IFREG;
+  }
+  /**
+   * Is the Path a directory?
+   */
+  isDirectory() {
+    return (this.#type & IFMT) === IFDIR;
+  }
+  /**
+   * Is the path a character device?
+   */
+  isCharacterDevice() {
+    return (this.#type & IFMT) === IFCHR;
+  }
+  /**
+   * Is the path a block device?
+   */
+  isBlockDevice() {
+    return (this.#type & IFMT) === IFBLK;
+  }
+  /**
+   * Is the path a FIFO pipe?
+   */
+  isFIFO() {
+    return (this.#type & IFMT) === IFIFO;
+  }
+  /**
+   * Is the path a socket?
+   */
+  isSocket() {
+    return (this.#type & IFMT) === IFSOCK;
+  }
+  /**
+   * Is the path a symbolic link?
+   */
+  isSymbolicLink() {
+    return (this.#type & IFLNK) === IFLNK;
+  }
+  /**
+   * Return the entry if it has been subject of a successful lstat, or
+   * undefined otherwise.
+   *
+   * Does not read the filesystem, so an undefined result *could* simply
+   * mean that we haven't called lstat on it.
+   */
+  lstatCached() {
+    return this.#type & LSTAT_CALLED ? this : void 0;
+  }
+  /**
+   * Return the cached link target if the entry has been the subject of a
+   * successful readlink, or undefined otherwise.
+   *
+   * Does not read the filesystem, so an undefined result *could* just mean we
+   * don't have any cached data. Only use it if you are very sure that a
+   * readlink() has been called at some point.
+   */
+  readlinkCached() {
+    return this.#linkTarget;
+  }
+  /**
+   * Returns the cached realpath target if the entry has been the subject
+   * of a successful realpath, or undefined otherwise.
+   *
+   * Does not read the filesystem, so an undefined result *could* just mean we
+   * don't have any cached data. Only use it if you are very sure that a
+   * realpath() has been called at some point.
+   */
+  realpathCached() {
+    return this.#realpath;
+  }
+  /**
+   * Returns the cached child Path entries array if the entry has been the
+   * subject of a successful readdir(), or [] otherwise.
+   *
+   * Does not read the filesystem, so an empty array *could* just mean we
+   * don't have any cached data. Only use it if you are very sure that a
+   * readdir() has been called recently enough to still be valid.
+   */
+  readdirCached() {
+    const children = this.children();
+    return children.slice(0, children.provisional);
+  }
+  /**
+   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have
+   * any indication that readlink will definitely fail.
+   *
+   * Returns false if the path is known to not be a symlink, if a previous
+   * readlink failed, or if the entry does not exist.
+   */
+  canReadlink() {
+    if (this.#linkTarget)
+      return true;
+    if (!this.parent)
+      return false;
+    const ifmt = this.#type & IFMT;
+    return !(ifmt !== UNKNOWN2 && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT);
+  }
+  /**
+   * Return true if readdir has previously been successfully called on this
+   * path, indicating that cachedReaddir() is likely valid.
+   */
+  calledReaddir() {
+    return !!(this.#type & READDIR_CALLED);
+  }
+  /**
+   * Returns true if the path is known to not exist. That is, a previous lstat
+   * or readdir failed to verify its existence when that would have been
+   * expected, or a parent entry was marked either enoent or enotdir.
+   */
+  isENOENT() {
+    return !!(this.#type & ENOENT);
+  }
+  /**
+   * Return true if the path is a match for the given path name.  This handles
+   * case sensitivity and unicode normalization.
+   *
+   * Note: even on case-sensitive systems, it is **not** safe to test the
+   * equality of the `.name` property to determine whether a given pathname
+   * matches, due to unicode normalization mismatches.
+   *
+   * Always use this method instead of testing the `path.name` property
+   * directly.
+   */
+  isNamed(n) {
+    return !this.nocase ? this.#matchName === normalize(n) : this.#matchName === normalizeNocase(n);
+  }
+  /**
+   * Return the Path object corresponding to the target of a symbolic link.
+   *
+   * If the Path is not a symbolic link, or if the readlink call fails for any
+   * reason, `undefined` is returned.
+   *
+   * Result is cached, and thus may be outdated if the filesystem is mutated.
+   */
+  async readlink() {
+    const target = this.#linkTarget;
+    if (target) {
+      return target;
+    }
+    if (!this.canReadlink()) {
+      return void 0;
+    }
+    if (!this.parent) {
+      return void 0;
+    }
+    try {
+      const read = await this.#fs.promises.readlink(this.fullpath());
+      const linkTarget = this.parent.resolve(read);
+      if (linkTarget) {
+        return this.#linkTarget = linkTarget;
+      }
+    } catch (er) {
+      this.#readlinkFail(er.code);
+      return void 0;
+    }
+  }
+  /**
+   * Synchronous {@link PathBase.readlink}
+   */
+  readlinkSync() {
+    const target = this.#linkTarget;
+    if (target) {
+      return target;
+    }
+    if (!this.canReadlink()) {
+      return void 0;
+    }
+    if (!this.parent) {
+      return void 0;
+    }
+    try {
+      const read = this.#fs.readlinkSync(this.fullpath());
+      const linkTarget = this.parent.resolve(read);
+      if (linkTarget) {
+        return this.#linkTarget = linkTarget;
+      }
+    } catch (er) {
+      this.#readlinkFail(er.code);
+      return void 0;
+    }
+  }
+  #readdirSuccess(children) {
+    this.#type |= READDIR_CALLED;
+    for (let p = children.provisional; p < children.length; p++) {
+      children[p].#markENOENT();
+    }
+  }
+  #markENOENT() {
+    if (this.#type & ENOENT)
+      return;
+    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;
+    this.#markChildrenENOENT();
+  }
+  #markChildrenENOENT() {
+    const children = this.children();
+    children.provisional = 0;
+    for (const p of children) {
+      p.#markENOENT();
+    }
+  }
+  #markENOREALPATH() {
+    this.#type |= ENOREALPATH;
+    this.#markENOTDIR();
+  }
+  // save the information when we know the entry is not a dir
+  #markENOTDIR() {
+    if (this.#type & ENOTDIR)
+      return;
+    let t = this.#type;
+    if ((t & IFMT) === IFDIR)
+      t &= IFMT_UNKNOWN;
+    this.#type = t | ENOTDIR;
+    this.#markChildrenENOENT();
+  }
+  #readdirFail(code = "") {
+    if (code === "ENOTDIR" || code === "EPERM") {
+      this.#markENOTDIR();
+    } else if (code === "ENOENT") {
+      this.#markENOENT();
+    } else {
+      this.children().provisional = 0;
+    }
+  }
+  #lstatFail(code = "") {
+    if (code === "ENOTDIR") {
+      const p = this.parent;
+      p.#markENOTDIR();
+    } else if (code === "ENOENT") {
+      this.#markENOENT();
+    }
+  }
+  #readlinkFail(code = "") {
+    let ter = this.#type;
+    ter |= ENOREADLINK;
+    if (code === "ENOENT")
+      ter |= ENOENT;
+    if (code === "EINVAL" || code === "UNKNOWN") {
+      ter &= IFMT_UNKNOWN;
+    }
+    this.#type = ter;
+    if (code === "ENOTDIR" && this.parent) {
+      this.parent.#markENOTDIR();
+    }
+  }
+  #readdirAddChild(e, c) {
+    return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c);
+  }
+  #readdirAddNewChild(e, c) {
+    const type2 = entToType(e);
+    const child = this.newChild(e.name, type2, { parent: this });
+    const ifmt = child.#type & IFMT;
+    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN2) {
+      child.#type |= ENOTDIR;
+    }
+    c.unshift(child);
+    c.provisional++;
+    return child;
+  }
+  #readdirMaybePromoteChild(e, c) {
+    for (let p = c.provisional; p < c.length; p++) {
+      const pchild = c[p];
+      const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);
+      if (name !== pchild.#matchName) {
+        continue;
+      }
+      return this.#readdirPromoteChild(e, pchild, p, c);
+    }
+  }
+  #readdirPromoteChild(e, p, index, c) {
+    const v = p.name;
+    p.#type = p.#type & IFMT_UNKNOWN | entToType(e);
+    if (v !== e.name)
+      p.name = e.name;
+    if (index !== c.provisional) {
+      if (index === c.length - 1)
+        c.pop();
+      else
+        c.splice(index, 1);
+      c.unshift(p);
+    }
+    c.provisional++;
+    return p;
+  }
+  /**
+   * Call lstat() on this Path, and update all known information that can be
+   * determined.
+   *
+   * Note that unlike `fs.lstat()`, the returned value does not contain some
+   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
+   * information is required, you will need to call `fs.lstat` yourself.
+   *
+   * If the Path refers to a nonexistent file, or if the lstat call fails for
+   * any reason, `undefined` is returned.  Otherwise the updated Path object is
+   * returned.
+   *
+   * Results are cached, and thus may be out of date if the filesystem is
+   * mutated.
+   */
+  async lstat() {
+    if ((this.#type & ENOENT) === 0) {
+      try {
+        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));
+        return this;
+      } catch (er) {
+        this.#lstatFail(er.code);
+      }
+    }
+  }
+  /**
+   * synchronous {@link PathBase.lstat}
+   */
+  lstatSync() {
+    if ((this.#type & ENOENT) === 0) {
+      try {
+        this.#applyStat(this.#fs.lstatSync(this.fullpath()));
+        return this;
+      } catch (er) {
+        this.#lstatFail(er.code);
+      }
+    }
+  }
+  #applyStat(st) {
+    const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st;
+    this.#atime = atime;
+    this.#atimeMs = atimeMs;
+    this.#birthtime = birthtime;
+    this.#birthtimeMs = birthtimeMs;
+    this.#blksize = blksize;
+    this.#blocks = blocks;
+    this.#ctime = ctime;
+    this.#ctimeMs = ctimeMs;
+    this.#dev = dev;
+    this.#gid = gid;
+    this.#ino = ino;
+    this.#mode = mode;
+    this.#mtime = mtime;
+    this.#mtimeMs = mtimeMs;
+    this.#nlink = nlink;
+    this.#rdev = rdev;
+    this.#size = size;
+    this.#uid = uid;
+    const ifmt = entToType(st);
+    this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED;
+    if (ifmt !== UNKNOWN2 && ifmt !== IFDIR && ifmt !== IFLNK) {
+      this.#type |= ENOTDIR;
+    }
+  }
+  #onReaddirCB = [];
+  #readdirCBInFlight = false;
+  #callOnReaddirCB(children) {
+    this.#readdirCBInFlight = false;
+    const cbs = this.#onReaddirCB.slice();
+    this.#onReaddirCB.length = 0;
+    cbs.forEach((cb) => cb(null, children));
+  }
+  /**
+   * Standard node-style callback interface to get list of directory entries.
+   *
+   * If the Path cannot or does not contain any children, then an empty array
+   * is returned.
+   *
+   * Results are cached, and thus may be out of date if the filesystem is
+   * mutated.
+   *
+   * @param cb The callback called with (er, entries).  Note that the `er`
+   * param is somewhat extraneous, as all readdir() errors are handled and
+   * simply result in an empty set of entries being returned.
+   * @param allowZalgo Boolean indicating that immediately known results should
+   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release
+   * zalgo at your peril, the dark pony lord is devious and unforgiving.
+   */
+  readdirCB(cb, allowZalgo = false) {
+    if (!this.canReaddir()) {
+      if (allowZalgo)
+        cb(null, []);
+      else
+        queueMicrotask(() => cb(null, []));
+      return;
+    }
+    const children = this.children();
+    if (this.calledReaddir()) {
+      const c = children.slice(0, children.provisional);
+      if (allowZalgo)
+        cb(null, c);
+      else
+        queueMicrotask(() => cb(null, c));
+      return;
+    }
+    this.#onReaddirCB.push(cb);
+    if (this.#readdirCBInFlight) {
+      return;
+    }
+    this.#readdirCBInFlight = true;
+    const fullpath = this.fullpath();
+    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {
+      if (er) {
+        this.#readdirFail(er.code);
+        children.provisional = 0;
+      } else {
+        for (const e of entries) {
+          this.#readdirAddChild(e, children);
+        }
+        this.#readdirSuccess(children);
+      }
+      this.#callOnReaddirCB(children.slice(0, children.provisional));
+      return;
+    });
+  }
+  #asyncReaddirInFlight;
+  /**
+   * Return an array of known child entries.
+   *
+   * If the Path cannot or does not contain any children, then an empty array
+   * is returned.
+   *
+   * Results are cached, and thus may be out of date if the filesystem is
+   * mutated.
+   */
+  async readdir() {
+    if (!this.canReaddir()) {
+      return [];
+    }
+    const children = this.children();
+    if (this.calledReaddir()) {
+      return children.slice(0, children.provisional);
+    }
+    const fullpath = this.fullpath();
+    if (this.#asyncReaddirInFlight) {
+      await this.#asyncReaddirInFlight;
+    } else {
+      let resolve = () => {
+      };
+      this.#asyncReaddirInFlight = new Promise((res) => resolve = res);
+      try {
+        for (const e of await this.#fs.promises.readdir(fullpath, {
+          withFileTypes: true
+        })) {
+          this.#readdirAddChild(e, children);
+        }
+        this.#readdirSuccess(children);
+      } catch (er) {
+        this.#readdirFail(er.code);
+        children.provisional = 0;
+      }
+      this.#asyncReaddirInFlight = void 0;
+      resolve();
+    }
+    return children.slice(0, children.provisional);
+  }
+  /**
+   * synchronous {@link PathBase.readdir}
+   */
+  readdirSync() {
+    if (!this.canReaddir()) {
+      return [];
+    }
+    const children = this.children();
+    if (this.calledReaddir()) {
+      return children.slice(0, children.provisional);
+    }
+    const fullpath = this.fullpath();
+    try {
+      for (const e of this.#fs.readdirSync(fullpath, {
+        withFileTypes: true
+      })) {
+        this.#readdirAddChild(e, children);
+      }
+      this.#readdirSuccess(children);
+    } catch (er) {
+      this.#readdirFail(er.code);
+      children.provisional = 0;
+    }
+    return children.slice(0, children.provisional);
+  }
+  canReaddir() {
+    if (this.#type & ENOCHILD)
+      return false;
+    const ifmt = IFMT & this.#type;
+    if (!(ifmt === UNKNOWN2 || ifmt === IFDIR || ifmt === IFLNK)) {
+      return false;
+    }
+    return true;
+  }
+  shouldWalk(dirs, walkFilter) {
+    return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this));
+  }
+  /**
+   * Return the Path object corresponding to path as resolved
+   * by realpath(3).
+   *
+   * If the realpath call fails for any reason, `undefined` is returned.
+   *
+   * Result is cached, and thus may be outdated if the filesystem is mutated.
+   * On success, returns a Path object.
+   */
+  async realpath() {
+    if (this.#realpath)
+      return this.#realpath;
+    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
+      return void 0;
+    try {
+      const rp = await this.#fs.promises.realpath(this.fullpath());
+      return this.#realpath = this.resolve(rp);
+    } catch (_) {
+      this.#markENOREALPATH();
+    }
+  }
+  /**
+   * Synchronous {@link realpath}
+   */
+  realpathSync() {
+    if (this.#realpath)
+      return this.#realpath;
+    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
+      return void 0;
+    try {
+      const rp = this.#fs.realpathSync(this.fullpath());
+      return this.#realpath = this.resolve(rp);
+    } catch (_) {
+      this.#markENOREALPATH();
+    }
+  }
+  /**
+   * Internal method to mark this Path object as the scurry cwd,
+   * called by {@link PathScurry#chdir}
+   *
+   * @internal
+   */
+  [setAsCwd](oldCwd) {
+    if (oldCwd === this)
+      return;
+    const changed = /* @__PURE__ */ new Set([]);
+    let rp = [];
+    let p = this;
+    while (p && p.parent) {
+      changed.add(p);
+      p.#relative = rp.join(this.sep);
+      p.#relativePosix = rp.join("/");
+      p = p.parent;
+      rp.push("..");
+    }
+    p = oldCwd;
+    while (p && p.parent && !changed.has(p)) {
+      p.#relative = void 0;
+      p.#relativePosix = void 0;
+      p = p.parent;
+    }
+  }
+};
+var PathWin32 = class _PathWin32 extends PathBase {
+  /**
+   * Separator for generating path strings.
+   */
+  sep = "\\";
+  /**
+   * Separator for parsing path strings.
+   */
+  splitSep = eitherSep;
+  /**
+   * Do not create new Path objects directly.  They should always be accessed
+   * via the PathScurry class or other methods on the Path class.
+   *
+   * @internal
+   */
+  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
+    super(name, type2, root, roots, nocase, children, opts);
+  }
+  /**
+   * @internal
+   */
+  newChild(name, type2 = UNKNOWN2, opts = {}) {
+    return new _PathWin32(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
+  }
+  /**
+   * @internal
+   */
+  getRootString(path8) {
+    return import_path5.win32.parse(path8).root;
+  }
+  /**
+   * @internal
+   */
+  getRoot(rootPath) {
+    rootPath = uncToDrive(rootPath.toUpperCase());
+    if (rootPath === this.root.name) {
+      return this.root;
+    }
+    for (const [compare, root] of Object.entries(this.roots)) {
+      if (this.sameRoot(rootPath, compare)) {
+        return this.roots[rootPath] = root;
+      }
+    }
+    return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root;
+  }
+  /**
+   * @internal
+   */
+  sameRoot(rootPath, compare = this.root.name) {
+    rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
+    return rootPath === compare;
+  }
+};
+var PathPosix = class _PathPosix extends PathBase {
+  /**
+   * separator for parsing path strings
+   */
+  splitSep = "/";
+  /**
+   * separator for generating path strings
+   */
+  sep = "/";
+  /**
+   * Do not create new Path objects directly.  They should always be accessed
+   * via the PathScurry class or other methods on the Path class.
+   *
+   * @internal
+   */
+  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
+    super(name, type2, root, roots, nocase, children, opts);
+  }
+  /**
+   * @internal
+   */
+  getRootString(path8) {
+    return path8.startsWith("/") ? "/" : "";
+  }
+  /**
+   * @internal
+   */
+  getRoot(_rootPath) {
+    return this.root;
+  }
+  /**
+   * @internal
+   */
+  newChild(name, type2 = UNKNOWN2, opts = {}) {
+    return new _PathPosix(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
+  }
+};
+var PathScurryBase = class {
+  /**
+   * The root Path entry for the current working directory of this Scurry
+   */
+  root;
+  /**
+   * The string path for the root of this Scurry's current working directory
+   */
+  rootPath;
+  /**
+   * A collection of all roots encountered, referenced by rootPath
+   */
+  roots;
+  /**
+   * The Path entry corresponding to this PathScurry's current working directory.
+   */
+  cwd;
+  #resolveCache;
+  #resolvePosixCache;
+  #children;
+  /**
+   * Perform path comparisons case-insensitively.
+   *
+   * Defaults true on Darwin and Windows systems, false elsewhere.
+   */
+  nocase;
+  #fs;
+  /**
+   * This class should not be instantiated directly.
+   *
+   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry
+   *
+   * @internal
+   */
+  constructor(cwd = process.cwd(), pathImpl, sep3, { nocase, childrenCacheSize = 16 * 1024, fs: fs2 = defaultFS } = {}) {
+    this.#fs = fsFromOption(fs2);
+    if (cwd instanceof URL || cwd.startsWith("file://")) {
+      cwd = (0, import_url.fileURLToPath)(cwd);
+    }
+    const cwdPath = pathImpl.resolve(cwd);
+    this.roots = /* @__PURE__ */ Object.create(null);
+    this.rootPath = this.parseRootPath(cwdPath);
+    this.#resolveCache = new ResolveCache();
+    this.#resolvePosixCache = new ResolveCache();
+    this.#children = new ChildrenCache(childrenCacheSize);
+    const split = cwdPath.substring(this.rootPath.length).split(sep3);
+    if (split.length === 1 && !split[0]) {
+      split.pop();
+    }
+    if (nocase === void 0) {
+      throw new TypeError("must provide nocase setting to PathScurryBase ctor");
+    }
+    this.nocase = nocase;
+    this.root = this.newRoot(this.#fs);
+    this.roots[this.rootPath] = this.root;
+    let prev = this.root;
+    let len = split.length - 1;
+    const joinSep = pathImpl.sep;
+    let abs2 = this.rootPath;
+    let sawFirst = false;
+    for (const part of split) {
+      const l = len--;
+      prev = prev.child(part, {
+        relative: new Array(l).fill("..").join(joinSep),
+        relativePosix: new Array(l).fill("..").join("/"),
+        fullpath: abs2 += (sawFirst ? "" : joinSep) + part
+      });
+      sawFirst = true;
+    }
+    this.cwd = prev;
+  }
+  /**
+   * Get the depth of a provided path, string, or the cwd
+   */
+  depth(path8 = this.cwd) {
+    if (typeof path8 === "string") {
+      path8 = this.cwd.resolve(path8);
+    }
+    return path8.depth();
+  }
+  /**
+   * Return the cache of child entries.  Exposed so subclasses can create
+   * child Path objects in a platform-specific way.
+   *
+   * @internal
+   */
+  childrenCache() {
+    return this.#children;
+  }
+  /**
+   * Resolve one or more path strings to a resolved string
+   *
+   * Same interface as require('path').resolve.
+   *
+   * Much faster than path.resolve() when called multiple times for the same
+   * path, because the resolved Path objects are cached.  Much slower
+   * otherwise.
+   */
+  resolve(...paths) {
+    let r = "";
+    for (let i = paths.length - 1; i >= 0; i--) {
+      const p = paths[i];
+      if (!p || p === ".")
+        continue;
+      r = r ? `${p}/${r}` : p;
+      if (this.isAbsolute(p)) {
+        break;
+      }
+    }
+    const cached = this.#resolveCache.get(r);
+    if (cached !== void 0) {
+      return cached;
+    }
+    const result = this.cwd.resolve(r).fullpath();
+    this.#resolveCache.set(r, result);
+    return result;
+  }
+  /**
+   * Resolve one or more path strings to a resolved string, returning
+   * the posix path.  Identical to .resolve() on posix systems, but on
+   * windows will return a forward-slash separated UNC path.
+   *
+   * Same interface as require('path').resolve.
+   *
+   * Much faster than path.resolve() when called multiple times for the same
+   * path, because the resolved Path objects are cached.  Much slower
+   * otherwise.
+   */
+  resolvePosix(...paths) {
+    let r = "";
+    for (let i = paths.length - 1; i >= 0; i--) {
+      const p = paths[i];
+      if (!p || p === ".")
+        continue;
+      r = r ? `${p}/${r}` : p;
+      if (this.isAbsolute(p)) {
+        break;
+      }
+    }
+    const cached = this.#resolvePosixCache.get(r);
+    if (cached !== void 0) {
+      return cached;
+    }
+    const result = this.cwd.resolve(r).fullpathPosix();
+    this.#resolvePosixCache.set(r, result);
+    return result;
+  }
+  /**
+   * find the relative path from the cwd to the supplied path string or entry
+   */
+  relative(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return entry2.relative();
+  }
+  /**
+   * find the relative path from the cwd to the supplied path string or
+   * entry, using / as the path delimiter, even on Windows.
+   */
+  relativePosix(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return entry2.relativePosix();
+  }
+  /**
+   * Return the basename for the provided string or Path object
+   */
+  basename(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return entry2.name;
+  }
+  /**
+   * Return the dirname for the provided string or Path object
+   */
+  dirname(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return (entry2.parent || entry2).fullpath();
+  }
+  async readdir(entry2 = this.cwd, opts = {
+    withFileTypes: true
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes } = opts;
+    if (!entry2.canReaddir()) {
+      return [];
+    } else {
+      const p = await entry2.readdir();
+      return withFileTypes ? p : p.map((e) => e.name);
+    }
+  }
+  readdirSync(entry2 = this.cwd, opts = {
+    withFileTypes: true
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true } = opts;
+    if (!entry2.canReaddir()) {
+      return [];
+    } else if (withFileTypes) {
+      return entry2.readdirSync();
+    } else {
+      return entry2.readdirSync().map((e) => e.name);
+    }
+  }
+  /**
+   * Call lstat() on the string or Path object, and update all known
+   * information that can be determined.
+   *
+   * Note that unlike `fs.lstat()`, the returned value does not contain some
+   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
+   * information is required, you will need to call `fs.lstat` yourself.
+   *
+   * If the Path refers to a nonexistent file, or if the lstat call fails for
+   * any reason, `undefined` is returned.  Otherwise the updated Path object is
+   * returned.
+   *
+   * Results are cached, and thus may be out of date if the filesystem is
+   * mutated.
+   */
+  async lstat(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return entry2.lstat();
+  }
+  /**
+   * synchronous {@link PathScurryBase.lstat}
+   */
+  lstatSync(entry2 = this.cwd) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    }
+    return entry2.lstatSync();
+  }
+  async readlink(entry2 = this.cwd, { withFileTypes } = {
+    withFileTypes: false
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      withFileTypes = entry2.withFileTypes;
+      entry2 = this.cwd;
+    }
+    const e = await entry2.readlink();
+    return withFileTypes ? e : e?.fullpath();
+  }
+  readlinkSync(entry2 = this.cwd, { withFileTypes } = {
+    withFileTypes: false
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      withFileTypes = entry2.withFileTypes;
+      entry2 = this.cwd;
+    }
+    const e = entry2.readlinkSync();
+    return withFileTypes ? e : e?.fullpath();
+  }
+  async realpath(entry2 = this.cwd, { withFileTypes } = {
+    withFileTypes: false
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      withFileTypes = entry2.withFileTypes;
+      entry2 = this.cwd;
+    }
+    const e = await entry2.realpath();
+    return withFileTypes ? e : e?.fullpath();
+  }
+  realpathSync(entry2 = this.cwd, { withFileTypes } = {
+    withFileTypes: false
+  }) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      withFileTypes = entry2.withFileTypes;
+      entry2 = this.cwd;
+    }
+    const e = entry2.realpathSync();
+    return withFileTypes ? e : e?.fullpath();
+  }
+  async walk(entry2 = this.cwd, opts = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
+    const results = [];
+    if (!filter2 || filter2(entry2)) {
+      results.push(withFileTypes ? entry2 : entry2.fullpath());
+    }
+    const dirs = /* @__PURE__ */ new Set();
+    const walk2 = (dir, cb) => {
+      dirs.add(dir);
+      dir.readdirCB((er, entries) => {
+        if (er) {
+          return cb(er);
+        }
+        let len = entries.length;
+        if (!len)
+          return cb();
+        const next = () => {
+          if (--len === 0) {
+            cb();
+          }
+        };
+        for (const e of entries) {
+          if (!filter2 || filter2(e)) {
+            results.push(withFileTypes ? e : e.fullpath());
+          }
+          if (follow && e.isSymbolicLink()) {
+            e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk2(r, next) : next());
+          } else {
+            if (e.shouldWalk(dirs, walkFilter)) {
+              walk2(e, next);
+            } else {
+              next();
+            }
+          }
+        }
+      }, true);
+    };
+    const start = entry2;
+    return new Promise((res, rej) => {
+      walk2(start, (er) => {
+        if (er)
+          return rej(er);
+        res(results);
+      });
+    });
+  }
+  walkSync(entry2 = this.cwd, opts = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
+    const results = [];
+    if (!filter2 || filter2(entry2)) {
+      results.push(withFileTypes ? entry2 : entry2.fullpath());
+    }
+    const dirs = /* @__PURE__ */ new Set([entry2]);
+    for (const dir of dirs) {
+      const entries = dir.readdirSync();
+      for (const e of entries) {
+        if (!filter2 || filter2(e)) {
+          results.push(withFileTypes ? e : e.fullpath());
+        }
+        let r = e;
+        if (e.isSymbolicLink()) {
+          if (!(follow && (r = e.realpathSync())))
+            continue;
+          if (r.isUnknown())
+            r.lstatSync();
+        }
+        if (r.shouldWalk(dirs, walkFilter)) {
+          dirs.add(r);
+        }
+      }
+    }
+    return results;
+  }
+  /**
+   * Support for `for await`
+   *
+   * Alias for {@link PathScurryBase.iterate}
+   *
+   * Note: As of Node 19, this is very slow, compared to other methods of
+   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead
+   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.
+   */
+  [Symbol.asyncIterator]() {
+    return this.iterate();
+  }
+  iterate(entry2 = this.cwd, options2 = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      options2 = entry2;
+      entry2 = this.cwd;
+    }
+    return this.stream(entry2, options2)[Symbol.asyncIterator]();
+  }
+  /**
+   * Iterating over a PathScurry performs a synchronous walk.
+   *
+   * Alias for {@link PathScurryBase.iterateSync}
+   */
+  [Symbol.iterator]() {
+    return this.iterateSync();
+  }
+  *iterateSync(entry2 = this.cwd, opts = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
+    if (!filter2 || filter2(entry2)) {
+      yield withFileTypes ? entry2 : entry2.fullpath();
+    }
+    const dirs = /* @__PURE__ */ new Set([entry2]);
+    for (const dir of dirs) {
+      const entries = dir.readdirSync();
+      for (const e of entries) {
+        if (!filter2 || filter2(e)) {
+          yield withFileTypes ? e : e.fullpath();
+        }
+        let r = e;
+        if (e.isSymbolicLink()) {
+          if (!(follow && (r = e.realpathSync())))
+            continue;
+          if (r.isUnknown())
+            r.lstatSync();
+        }
+        if (r.shouldWalk(dirs, walkFilter)) {
+          dirs.add(r);
+        }
+      }
+    }
+  }
+  stream(entry2 = this.cwd, opts = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
+    const results = new Minipass({ objectMode: true });
+    if (!filter2 || filter2(entry2)) {
+      results.write(withFileTypes ? entry2 : entry2.fullpath());
+    }
+    const dirs = /* @__PURE__ */ new Set();
+    const queue = [entry2];
+    let processing = 0;
+    const process2 = () => {
+      let paused = false;
+      while (!paused) {
+        const dir = queue.shift();
+        if (!dir) {
+          if (processing === 0)
+            results.end();
+          return;
+        }
+        processing++;
+        dirs.add(dir);
+        const onReaddir = (er, entries, didRealpaths = false) => {
+          if (er)
+            return results.emit("error", er);
+          if (follow && !didRealpaths) {
+            const promises = [];
+            for (const e of entries) {
+              if (e.isSymbolicLink()) {
+                promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r));
+              }
+            }
+            if (promises.length) {
+              Promise.all(promises).then(() => onReaddir(null, entries, true));
+              return;
+            }
+          }
+          for (const e of entries) {
+            if (e && (!filter2 || filter2(e))) {
+              if (!results.write(withFileTypes ? e : e.fullpath())) {
+                paused = true;
+              }
+            }
+          }
+          processing--;
+          for (const e of entries) {
+            const r = e.realpathCached() || e;
+            if (r.shouldWalk(dirs, walkFilter)) {
+              queue.push(r);
+            }
+          }
+          if (paused && !results.flowing) {
+            results.once("drain", process2);
+          } else if (!sync2) {
+            process2();
+          }
+        };
+        let sync2 = true;
+        dir.readdirCB(onReaddir, true);
+        sync2 = false;
+      }
+    };
+    process2();
+    return results;
+  }
+  streamSync(entry2 = this.cwd, opts = {}) {
+    if (typeof entry2 === "string") {
+      entry2 = this.cwd.resolve(entry2);
+    } else if (!(entry2 instanceof PathBase)) {
+      opts = entry2;
+      entry2 = this.cwd;
+    }
+    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
+    const results = new Minipass({ objectMode: true });
+    const dirs = /* @__PURE__ */ new Set();
+    if (!filter2 || filter2(entry2)) {
+      results.write(withFileTypes ? entry2 : entry2.fullpath());
+    }
+    const queue = [entry2];
+    let processing = 0;
+    const process2 = () => {
+      let paused = false;
+      while (!paused) {
+        const dir = queue.shift();
+        if (!dir) {
+          if (processing === 0)
+            results.end();
+          return;
+        }
+        processing++;
+        dirs.add(dir);
+        const entries = dir.readdirSync();
+        for (const e of entries) {
+          if (!filter2 || filter2(e)) {
+            if (!results.write(withFileTypes ? e : e.fullpath())) {
+              paused = true;
+            }
+          }
+        }
+        processing--;
+        for (const e of entries) {
+          let r = e;
+          if (e.isSymbolicLink()) {
+            if (!(follow && (r = e.realpathSync())))
+              continue;
+            if (r.isUnknown())
+              r.lstatSync();
+          }
+          if (r.shouldWalk(dirs, walkFilter)) {
+            queue.push(r);
+          }
+        }
+      }
+      if (paused && !results.flowing)
+        results.once("drain", process2);
+    };
+    process2();
+    return results;
+  }
+  chdir(path8 = this.cwd) {
+    const oldCwd = this.cwd;
+    this.cwd = typeof path8 === "string" ? this.cwd.resolve(path8) : path8;
+    this.cwd[setAsCwd](oldCwd);
+  }
+};
+var PathScurryWin32 = class extends PathScurryBase {
+  /**
+   * separator for generating path strings
+   */
+  sep = "\\";
+  constructor(cwd = process.cwd(), opts = {}) {
+    const { nocase = true } = opts;
+    super(cwd, import_path5.win32, "\\", { ...opts, nocase });
+    this.nocase = nocase;
+    for (let p = this.cwd; p; p = p.parent) {
+      p.nocase = this.nocase;
+    }
+  }
+  /**
+   * @internal
+   */
+  parseRootPath(dir) {
+    return import_path5.win32.parse(dir).root.toUpperCase();
+  }
+  /**
+   * @internal
+   */
+  newRoot(fs2) {
+    return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
+  }
+  /**
+   * Return true if the provided path string is an absolute path
+   */
+  isAbsolute(p) {
+    return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p);
+  }
+};
+var PathScurryPosix = class extends PathScurryBase {
+  /**
+   * separator for generating path strings
+   */
+  sep = "/";
+  constructor(cwd = process.cwd(), opts = {}) {
+    const { nocase = false } = opts;
+    super(cwd, import_path5.posix, "/", { ...opts, nocase });
+    this.nocase = nocase;
+  }
+  /**
+   * @internal
+   */
+  parseRootPath(_dir) {
+    return "/";
+  }
+  /**
+   * @internal
+   */
+  newRoot(fs2) {
+    return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
+  }
+  /**
+   * Return true if the provided path string is an absolute path
+   */
+  isAbsolute(p) {
+    return p.startsWith("/");
+  }
+};
+var PathScurryDarwin = class extends PathScurryPosix {
+  constructor(cwd = process.cwd(), opts = {}) {
+    const { nocase = true } = opts;
+    super(cwd, { ...opts, nocase });
+  }
+};
+var Path = process.platform === "win32" ? PathWin32 : PathPosix;
+var PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix;
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
+var import_url2 = require("url");
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/pattern.js
+var isPatternList = (pl) => pl.length >= 1;
+var isGlobList = (gl) => gl.length >= 1;
+var Pattern2 = class _Pattern {
+  #patternList;
+  #globList;
+  #index;
+  length;
+  #platform;
+  #rest;
+  #globString;
+  #isDrive;
+  #isUNC;
+  #isAbsolute;
+  #followGlobstar = true;
+  constructor(patternList, globList, index, platform) {
+    if (!isPatternList(patternList)) {
+      throw new TypeError("empty pattern list");
+    }
+    if (!isGlobList(globList)) {
+      throw new TypeError("empty glob list");
+    }
+    if (globList.length !== patternList.length) {
+      throw new TypeError("mismatched pattern list and glob list lengths");
+    }
+    this.length = patternList.length;
+    if (index < 0 || index >= this.length) {
+      throw new TypeError("index out of range");
+    }
+    this.#patternList = patternList;
+    this.#globList = globList;
+    this.#index = index;
+    this.#platform = platform;
+    if (this.#index === 0) {
+      if (this.isUNC()) {
+        const [p0, p1, p2, p3, ...prest] = this.#patternList;
+        const [g0, g1, g2, g3, ...grest] = this.#globList;
+        if (prest[0] === "") {
+          prest.shift();
+          grest.shift();
+        }
+        const p = [p0, p1, p2, p3, ""].join("/");
+        const g = [g0, g1, g2, g3, ""].join("/");
+        this.#patternList = [p, ...prest];
+        this.#globList = [g, ...grest];
+        this.length = this.#patternList.length;
+      } else if (this.isDrive() || this.isAbsolute()) {
+        const [p1, ...prest] = this.#patternList;
+        const [g1, ...grest] = this.#globList;
+        if (prest[0] === "") {
+          prest.shift();
+          grest.shift();
+        }
+        const p = p1 + "/";
+        const g = g1 + "/";
+        this.#patternList = [p, ...prest];
+        this.#globList = [g, ...grest];
+        this.length = this.#patternList.length;
+      }
+    }
+  }
+  /**
+   * The first entry in the parsed list of patterns
+   */
+  pattern() {
+    return this.#patternList[this.#index];
+  }
+  /**
+   * true of if pattern() returns a string
+   */
+  isString() {
+    return typeof this.#patternList[this.#index] === "string";
+  }
+  /**
+   * true of if pattern() returns GLOBSTAR
+   */
+  isGlobstar() {
+    return this.#patternList[this.#index] === GLOBSTAR;
+  }
+  /**
+   * true if pattern() returns a regexp
+   */
+  isRegExp() {
+    return this.#patternList[this.#index] instanceof RegExp;
+  }
+  /**
+   * The /-joined set of glob parts that make up this pattern
+   */
+  globString() {
+    return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/"));
+  }
+  /**
+   * true if there are more pattern parts after this one
+   */
+  hasMore() {
+    return this.length > this.#index + 1;
+  }
+  /**
+   * The rest of the pattern after this part, or null if this is the end
+   */
+  rest() {
+    if (this.#rest !== void 0)
+      return this.#rest;
+    if (!this.hasMore())
+      return this.#rest = null;
+    this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
+    this.#rest.#isAbsolute = this.#isAbsolute;
+    this.#rest.#isUNC = this.#isUNC;
+    this.#rest.#isDrive = this.#isDrive;
+    return this.#rest;
+  }
+  /**
+   * true if the pattern represents a //unc/path/ on windows
+   */
+  isUNC() {
+    const pl = this.#patternList;
+    return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3];
+  }
+  // pattern like C:/...
+  // split = ['C:', ...]
+  // XXX: would be nice to handle patterns like `c:*` to test the cwd
+  // in c: for *, but I don't know of a way to even figure out what that
+  // cwd is without actually chdir'ing into it?
+  /**
+   * True if the pattern starts with a drive letter on Windows
+   */
+  isDrive() {
+    const pl = this.#patternList;
+    return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]);
+  }
+  // pattern = '/' or '/...' or '/x/...'
+  // split = ['', ''] or ['', ...] or ['', 'x', ...]
+  // Drive and UNC both considered absolute on windows
+  /**
+   * True if the pattern is rooted on an absolute path
+   */
+  isAbsolute() {
+    const pl = this.#patternList;
+    return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC();
+  }
+  /**
+   * consume the root of the pattern, and return it
+   */
+  root() {
+    const p = this.#patternList[0];
+    return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : "";
+  }
+  /**
+   * Check to see if the current globstar pattern is allowed to follow
+   * a symbolic link.
+   */
+  checkFollowGlobstar() {
+    return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar);
+  }
+  /**
+   * Mark that the current globstar pattern is following a symbolic link
+   */
+  markFollowGlobstar() {
+    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
+      return false;
+    this.#followGlobstar = false;
+    return true;
+  }
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/ignore.js
+var defaultPlatform2 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
+var Ignore = class {
+  relative;
+  relativeChildren;
+  absolute;
+  absoluteChildren;
+  constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform2 }) {
+    this.relative = [];
+    this.absolute = [];
+    this.relativeChildren = [];
+    this.absoluteChildren = [];
+    const mmopts = {
+      dot: true,
+      nobrace,
+      nocase,
+      noext,
+      noglobstar,
+      optimizationLevel: 2,
+      platform,
+      nocomment: true,
+      nonegate: true
+    };
+    for (const ign of ignored) {
+      const mm = new Minimatch(ign, mmopts);
+      for (let i = 0; i < mm.set.length; i++) {
+        const parsed = mm.set[i];
+        const globParts = mm.globParts[i];
+        if (!parsed || !globParts) {
+          throw new Error("invalid pattern object");
+        }
+        const p = new Pattern2(parsed, globParts, 0, platform);
+        const m = new Minimatch(p.globString(), mmopts);
+        const children = globParts[globParts.length - 1] === "**";
+        const absolute = p.isAbsolute();
+        if (absolute)
+          this.absolute.push(m);
+        else
+          this.relative.push(m);
+        if (children) {
+          if (absolute)
+            this.absoluteChildren.push(m);
+          else
+            this.relativeChildren.push(m);
+        }
+      }
+    }
+  }
+  ignored(p) {
+    const fullpath = p.fullpath();
+    const fullpaths = `${fullpath}/`;
+    const relative2 = p.relative() || ".";
+    const relatives = `${relative2}/`;
+    for (const m of this.relative) {
+      if (m.match(relative2) || m.match(relatives))
+        return true;
+    }
+    for (const m of this.absolute) {
+      if (m.match(fullpath) || m.match(fullpaths))
+        return true;
+    }
+    return false;
+  }
+  childrenIgnored(p) {
+    const fullpath = p.fullpath() + "/";
+    const relative2 = (p.relative() || ".") + "/";
+    for (const m of this.relativeChildren) {
+      if (m.match(relative2))
+        return true;
+    }
+    for (const m of this.absoluteChildren) {
+      if (m.match(fullpath))
+        return true;
+    }
+    return false;
+  }
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/processor.js
+var HasWalkedCache = class _HasWalkedCache {
+  store;
+  constructor(store = /* @__PURE__ */ new Map()) {
+    this.store = store;
+  }
+  copy() {
+    return new _HasWalkedCache(new Map(this.store));
+  }
+  hasWalked(target, pattern) {
+    return this.store.get(target.fullpath())?.has(pattern.globString());
+  }
+  storeWalked(target, pattern) {
+    const fullpath = target.fullpath();
+    const cached = this.store.get(fullpath);
+    if (cached)
+      cached.add(pattern.globString());
+    else
+      this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()]));
+  }
+};
+var MatchRecord = class {
+  store = /* @__PURE__ */ new Map();
+  add(target, absolute, ifDir) {
+    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
+    const current2 = this.store.get(target);
+    this.store.set(target, current2 === void 0 ? n : n & current2);
+  }
+  // match, absolute, ifdir
+  entries() {
+    return [...this.store.entries()].map(([path8, n]) => [
+      path8,
+      !!(n & 2),
+      !!(n & 1)
+    ]);
+  }
+};
+var SubWalks = class {
+  store = /* @__PURE__ */ new Map();
+  add(target, pattern) {
+    if (!target.canReaddir()) {
+      return;
+    }
+    const subs = this.store.get(target);
+    if (subs) {
+      if (!subs.find((p) => p.globString() === pattern.globString())) {
+        subs.push(pattern);
+      }
+    } else
+      this.store.set(target, [pattern]);
+  }
+  get(target) {
+    const subs = this.store.get(target);
+    if (!subs) {
+      throw new Error("attempting to walk unknown path");
+    }
+    return subs;
+  }
+  entries() {
+    return this.keys().map((k) => [k, this.store.get(k)]);
+  }
+  keys() {
+    return [...this.store.keys()].filter((t) => t.canReaddir());
+  }
+};
+var Processor = class _Processor {
+  hasWalkedCache;
+  matches = new MatchRecord();
+  subwalks = new SubWalks();
+  patterns;
+  follow;
+  dot;
+  opts;
+  constructor(opts, hasWalkedCache) {
+    this.opts = opts;
+    this.follow = !!opts.follow;
+    this.dot = !!opts.dot;
+    this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();
+  }
+  processPatterns(target, patterns) {
+    this.patterns = patterns;
+    const processingSet = patterns.map((p) => [target, p]);
+    for (let [t, pattern] of processingSet) {
+      this.hasWalkedCache.storeWalked(t, pattern);
+      const root = pattern.root();
+      const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
+      if (root) {
+        t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root);
+        const rest2 = pattern.rest();
+        if (!rest2) {
+          this.matches.add(t, true, false);
+          continue;
+        } else {
+          pattern = rest2;
+        }
+      }
+      if (t.isENOENT())
+        continue;
+      let p;
+      let rest;
+      let changed = false;
+      while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) {
+        const c = t.resolve(p);
+        t = c;
+        pattern = rest;
+        changed = true;
+      }
+      p = pattern.pattern();
+      rest = pattern.rest();
+      if (changed) {
+        if (this.hasWalkedCache.hasWalked(t, pattern))
+          continue;
+        this.hasWalkedCache.storeWalked(t, pattern);
+      }
+      if (typeof p === "string") {
+        const ifDir = p === ".." || p === "" || p === ".";
+        this.matches.add(t.resolve(p), absolute, ifDir);
+        continue;
+      } else if (p === GLOBSTAR) {
+        if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) {
+          this.subwalks.add(t, pattern);
+        }
+        const rp = rest?.pattern();
+        const rrest = rest?.rest();
+        if (!rest || (rp === "" || rp === ".") && !rrest) {
+          this.matches.add(t, absolute, rp === "" || rp === ".");
+        } else {
+          if (rp === "..") {
+            const tp = t.parent || t;
+            if (!rrest)
+              this.matches.add(tp, absolute, true);
+            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
+              this.subwalks.add(tp, rrest);
+            }
+          }
+        }
+      } else if (p instanceof RegExp) {
+        this.subwalks.add(t, pattern);
+      }
+    }
+    return this;
+  }
+  subwalkTargets() {
+    return this.subwalks.keys();
+  }
+  child() {
+    return new _Processor(this.opts, this.hasWalkedCache);
+  }
+  // return a new Processor containing the subwalks for each
+  // child entry, and a set of matches, and
+  // a hasWalkedCache that's a copy of this one
+  // then we're going to call
+  filterEntries(parent, entries) {
+    const patterns = this.subwalks.get(parent);
+    const results = this.child();
+    for (const e of entries) {
+      for (const pattern of patterns) {
+        const absolute = pattern.isAbsolute();
+        const p = pattern.pattern();
+        const rest = pattern.rest();
+        if (p === GLOBSTAR) {
+          results.testGlobstar(e, pattern, rest, absolute);
+        } else if (p instanceof RegExp) {
+          results.testRegExp(e, p, rest, absolute);
+        } else {
+          results.testString(e, p, rest, absolute);
+        }
+      }
+    }
+    return results;
+  }
+  testGlobstar(e, pattern, rest, absolute) {
+    if (this.dot || !e.name.startsWith(".")) {
+      if (!pattern.hasMore()) {
+        this.matches.add(e, absolute, false);
+      }
+      if (e.canReaddir()) {
+        if (this.follow || !e.isSymbolicLink()) {
+          this.subwalks.add(e, pattern);
+        } else if (e.isSymbolicLink()) {
+          if (rest && pattern.checkFollowGlobstar()) {
+            this.subwalks.add(e, rest);
+          } else if (pattern.markFollowGlobstar()) {
+            this.subwalks.add(e, pattern);
+          }
+        }
+      }
+    }
+    if (rest) {
+      const rp = rest.pattern();
+      if (typeof rp === "string" && // dots and empty were handled already
+      rp !== ".." && rp !== "" && rp !== ".") {
+        this.testString(e, rp, rest.rest(), absolute);
+      } else if (rp === "..") {
+        const ep = e.parent || e;
+        this.subwalks.add(ep, rest);
+      } else if (rp instanceof RegExp) {
+        this.testRegExp(e, rp, rest.rest(), absolute);
+      }
+    }
+  }
+  testRegExp(e, p, rest, absolute) {
+    if (!p.test(e.name))
+      return;
+    if (!rest) {
+      this.matches.add(e, absolute, false);
+    } else {
+      this.subwalks.add(e, rest);
+    }
+  }
+  testString(e, p, rest, absolute) {
+    if (!e.isNamed(p))
+      return;
+    if (!rest) {
+      this.matches.add(e, absolute, false);
+    } else {
+      this.subwalks.add(e, rest);
+    }
+  }
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/walker.js
+var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new Ignore([ignore], opts) : Array.isArray(ignore) ? new Ignore(ignore, opts) : ignore;
+var GlobUtil = class {
+  path;
+  patterns;
+  opts;
+  seen = /* @__PURE__ */ new Set();
+  paused = false;
+  aborted = false;
+  #onResume = [];
+  #ignore;
+  #sep;
+  signal;
+  maxDepth;
+  constructor(patterns, path8, opts) {
+    this.patterns = patterns;
+    this.path = path8;
+    this.opts = opts;
+    this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/";
+    if (opts.ignore) {
+      this.#ignore = makeIgnore(opts.ignore, opts);
+    }
+    this.maxDepth = opts.maxDepth || Infinity;
+    if (opts.signal) {
+      this.signal = opts.signal;
+      this.signal.addEventListener("abort", () => {
+        this.#onResume.length = 0;
+      });
+    }
+  }
+  #ignored(path8) {
+    return this.seen.has(path8) || !!this.#ignore?.ignored?.(path8);
+  }
+  #childrenIgnored(path8) {
+    return !!this.#ignore?.childrenIgnored?.(path8);
+  }
+  // backpressure mechanism
+  pause() {
+    this.paused = true;
+  }
+  resume() {
+    if (this.signal?.aborted)
+      return;
+    this.paused = false;
+    let fn = void 0;
+    while (!this.paused && (fn = this.#onResume.shift())) {
+      fn();
+    }
+  }
+  onResume(fn) {
+    if (this.signal?.aborted)
+      return;
+    if (!this.paused) {
+      fn();
+    } else {
+      this.#onResume.push(fn);
+    }
+  }
+  // do the requisite realpath/stat checking, and return the path
+  // to add or undefined to filter it out.
+  async matchCheck(e, ifDir) {
+    if (ifDir && this.opts.nodir)
+      return void 0;
+    let rpc;
+    if (this.opts.realpath) {
+      rpc = e.realpathCached() || await e.realpath();
+      if (!rpc)
+        return void 0;
+      e = rpc;
+    }
+    const needStat = e.isUnknown() || this.opts.stat;
+    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
+  }
+  matchCheckTest(e, ifDir) {
+    return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0;
+  }
+  matchCheckSync(e, ifDir) {
+    if (ifDir && this.opts.nodir)
+      return void 0;
+    let rpc;
+    if (this.opts.realpath) {
+      rpc = e.realpathCached() || e.realpathSync();
+      if (!rpc)
+        return void 0;
+      e = rpc;
+    }
+    const needStat = e.isUnknown() || this.opts.stat;
+    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
+  }
+  matchFinish(e, absolute) {
+    if (this.#ignored(e))
+      return;
+    const abs2 = this.opts.absolute === void 0 ? absolute : this.opts.absolute;
+    this.seen.add(e);
+    const mark = this.opts.mark && e.isDirectory() ? this.#sep : "";
+    if (this.opts.withFileTypes) {
+      this.matchEmit(e);
+    } else if (abs2) {
+      const abs3 = this.opts.posix ? e.fullpathPosix() : e.fullpath();
+      this.matchEmit(abs3 + mark);
+    } else {
+      const rel = this.opts.posix ? e.relativePosix() : e.relative();
+      const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : "";
+      this.matchEmit(!rel ? "." + mark : pre + rel + mark);
+    }
+  }
+  async match(e, absolute, ifDir) {
+    const p = await this.matchCheck(e, ifDir);
+    if (p)
+      this.matchFinish(p, absolute);
+  }
+  matchSync(e, absolute, ifDir) {
+    const p = this.matchCheckSync(e, ifDir);
+    if (p)
+      this.matchFinish(p, absolute);
+  }
+  walkCB(target, patterns, cb) {
+    if (this.signal?.aborted)
+      cb();
+    this.walkCB2(target, patterns, new Processor(this.opts), cb);
+  }
+  walkCB2(target, patterns, processor, cb) {
+    if (this.#childrenIgnored(target))
+      return cb();
+    if (this.signal?.aborted)
+      cb();
+    if (this.paused) {
+      this.onResume(() => this.walkCB2(target, patterns, processor, cb));
+      return;
+    }
+    processor.processPatterns(target, patterns);
+    let tasks = 1;
+    const next = () => {
+      if (--tasks === 0)
+        cb();
+    };
+    for (const [m, absolute, ifDir] of processor.matches.entries()) {
+      if (this.#ignored(m))
+        continue;
+      tasks++;
+      this.match(m, absolute, ifDir).then(() => next());
+    }
+    for (const t of processor.subwalkTargets()) {
+      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
+        continue;
+      }
+      tasks++;
+      const childrenCached = t.readdirCached();
+      if (t.calledReaddir())
+        this.walkCB3(t, childrenCached, processor, next);
+      else {
+        t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
+      }
+    }
+    next();
+  }
+  walkCB3(target, entries, processor, cb) {
+    processor = processor.filterEntries(target, entries);
+    let tasks = 1;
+    const next = () => {
+      if (--tasks === 0)
+        cb();
+    };
+    for (const [m, absolute, ifDir] of processor.matches.entries()) {
+      if (this.#ignored(m))
+        continue;
+      tasks++;
+      this.match(m, absolute, ifDir).then(() => next());
+    }
+    for (const [target2, patterns] of processor.subwalks.entries()) {
+      tasks++;
+      this.walkCB2(target2, patterns, processor.child(), next);
+    }
+    next();
+  }
+  walkCBSync(target, patterns, cb) {
+    if (this.signal?.aborted)
+      cb();
+    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
+  }
+  walkCB2Sync(target, patterns, processor, cb) {
+    if (this.#childrenIgnored(target))
+      return cb();
+    if (this.signal?.aborted)
+      cb();
+    if (this.paused) {
+      this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
+      return;
+    }
+    processor.processPatterns(target, patterns);
+    let tasks = 1;
+    const next = () => {
+      if (--tasks === 0)
+        cb();
+    };
+    for (const [m, absolute, ifDir] of processor.matches.entries()) {
+      if (this.#ignored(m))
+        continue;
+      this.matchSync(m, absolute, ifDir);
+    }
+    for (const t of processor.subwalkTargets()) {
+      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
+        continue;
+      }
+      tasks++;
+      const children = t.readdirSync();
+      this.walkCB3Sync(t, children, processor, next);
+    }
+    next();
+  }
+  walkCB3Sync(target, entries, processor, cb) {
+    processor = processor.filterEntries(target, entries);
+    let tasks = 1;
+    const next = () => {
+      if (--tasks === 0)
+        cb();
+    };
+    for (const [m, absolute, ifDir] of processor.matches.entries()) {
+      if (this.#ignored(m))
+        continue;
+      this.matchSync(m, absolute, ifDir);
+    }
+    for (const [target2, patterns] of processor.subwalks.entries()) {
+      tasks++;
+      this.walkCB2Sync(target2, patterns, processor.child(), next);
+    }
+    next();
+  }
+};
+var GlobWalker = class extends GlobUtil {
+  matches;
+  constructor(patterns, path8, opts) {
+    super(patterns, path8, opts);
+    this.matches = /* @__PURE__ */ new Set();
+  }
+  matchEmit(e) {
+    this.matches.add(e);
+  }
+  async walk() {
+    if (this.signal?.aborted)
+      throw this.signal.reason;
+    if (this.path.isUnknown()) {
+      await this.path.lstat();
+    }
+    await new Promise((res, rej) => {
+      this.walkCB(this.path, this.patterns, () => {
+        if (this.signal?.aborted) {
+          rej(this.signal.reason);
+        } else {
+          res(this.matches);
+        }
+      });
+    });
+    return this.matches;
+  }
+  walkSync() {
+    if (this.signal?.aborted)
+      throw this.signal.reason;
+    if (this.path.isUnknown()) {
+      this.path.lstatSync();
+    }
+    this.walkCBSync(this.path, this.patterns, () => {
+      if (this.signal?.aborted)
+        throw this.signal.reason;
+    });
+    return this.matches;
+  }
+};
+var GlobStream = class extends GlobUtil {
+  results;
+  constructor(patterns, path8, opts) {
+    super(patterns, path8, opts);
+    this.results = new Minipass({
+      signal: this.signal,
+      objectMode: true
+    });
+    this.results.on("drain", () => this.resume());
+    this.results.on("resume", () => this.resume());
+  }
+  matchEmit(e) {
+    this.results.write(e);
+    if (!this.results.flowing)
+      this.pause();
+  }
+  stream() {
+    const target = this.path;
+    if (target.isUnknown()) {
+      target.lstat().then(() => {
+        this.walkCB(target, this.patterns, () => this.results.end());
+      });
+    } else {
+      this.walkCB(target, this.patterns, () => this.results.end());
+    }
+    return this.results;
+  }
+  streamSync() {
+    if (this.path.isUnknown()) {
+      this.path.lstatSync();
+    }
+    this.walkCBSync(this.path, this.patterns, () => this.results.end());
+    return this.results;
+  }
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
+var defaultPlatform3 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
+var Glob = class {
+  absolute;
+  cwd;
+  root;
+  dot;
+  dotRelative;
+  follow;
+  ignore;
+  magicalBraces;
+  mark;
+  matchBase;
+  maxDepth;
+  nobrace;
+  nocase;
+  nodir;
+  noext;
+  noglobstar;
+  pattern;
+  platform;
+  realpath;
+  scurry;
+  stat;
+  signal;
+  windowsPathsNoEscape;
+  withFileTypes;
+  /**
+   * The options provided to the constructor.
+   */
+  opts;
+  /**
+   * An array of parsed immutable {@link Pattern} objects.
+   */
+  patterns;
+  /**
+   * All options are stored as properties on the `Glob` object.
+   *
+   * See {@link GlobOptions} for full options descriptions.
+   *
+   * Note that a previous `Glob` object can be passed as the
+   * `GlobOptions` to another `Glob` instantiation to re-use settings
+   * and caches with a new pattern.
+   *
+   * Traversal functions can be called multiple times to run the walk
+   * again.
+   */
+  constructor(pattern, opts) {
+    if (!opts)
+      throw new TypeError("glob options required");
+    this.withFileTypes = !!opts.withFileTypes;
+    this.signal = opts.signal;
+    this.follow = !!opts.follow;
+    this.dot = !!opts.dot;
+    this.dotRelative = !!opts.dotRelative;
+    this.nodir = !!opts.nodir;
+    this.mark = !!opts.mark;
+    if (!opts.cwd) {
+      this.cwd = "";
+    } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
+      opts.cwd = (0, import_url2.fileURLToPath)(opts.cwd);
+    }
+    this.cwd = opts.cwd || "";
+    this.root = opts.root;
+    this.magicalBraces = !!opts.magicalBraces;
+    this.nobrace = !!opts.nobrace;
+    this.noext = !!opts.noext;
+    this.realpath = !!opts.realpath;
+    this.absolute = opts.absolute;
+    this.noglobstar = !!opts.noglobstar;
+    this.matchBase = !!opts.matchBase;
+    this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity;
+    this.stat = !!opts.stat;
+    this.ignore = opts.ignore;
+    if (this.withFileTypes && this.absolute !== void 0) {
+      throw new Error("cannot set absolute and withFileTypes:true");
+    }
+    if (typeof pattern === "string") {
+      pattern = [pattern];
+    }
+    this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false;
+    if (this.windowsPathsNoEscape) {
+      pattern = pattern.map((p) => p.replace(/\\/g, "/"));
+    }
+    if (this.matchBase) {
+      if (opts.noglobstar) {
+        throw new TypeError("base matching requires globstar");
+      }
+      pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`);
+    }
+    this.pattern = pattern;
+    this.platform = opts.platform || defaultPlatform3;
+    this.opts = { ...opts, platform: this.platform };
+    if (opts.scurry) {
+      this.scurry = opts.scurry;
+      if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) {
+        throw new Error("nocase option contradicts provided scurry option");
+      }
+    } else {
+      const Scurry = opts.platform === "win32" ? PathScurryWin32 : opts.platform === "darwin" ? PathScurryDarwin : opts.platform ? PathScurryPosix : PathScurry;
+      this.scurry = new Scurry(this.cwd, {
+        nocase: opts.nocase,
+        fs: opts.fs
+      });
+    }
+    this.nocase = this.scurry.nocase;
+    const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32";
+    const mmo = {
+      // default nocase based on platform
+      ...opts,
+      dot: this.dot,
+      matchBase: this.matchBase,
+      nobrace: this.nobrace,
+      nocase: this.nocase,
+      nocaseMagicOnly,
+      nocomment: true,
+      noext: this.noext,
+      nonegate: true,
+      optimizationLevel: 2,
+      platform: this.platform,
+      windowsPathsNoEscape: this.windowsPathsNoEscape,
+      debug: !!this.opts.debug
+    };
+    const mms = this.pattern.map((p) => new Minimatch(p, mmo));
+    const [matchSet, globParts] = mms.reduce((set3, m) => {
+      set3[0].push(...m.set);
+      set3[1].push(...m.globParts);
+      return set3;
+    }, [[], []]);
+    this.patterns = matchSet.map((set3, i) => {
+      const g = globParts[i];
+      if (!g)
+        throw new Error("invalid pattern object");
+      return new Pattern2(set3, g, 0, this.platform);
+    });
+  }
+  async walk() {
+    return [
+      ...await new GlobWalker(this.patterns, this.scurry.cwd, {
+        ...this.opts,
+        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
+        platform: this.platform,
+        nocase: this.nocase
+      }).walk()
+    ];
+  }
+  walkSync() {
+    return [
+      ...new GlobWalker(this.patterns, this.scurry.cwd, {
+        ...this.opts,
+        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
+        platform: this.platform,
+        nocase: this.nocase
+      }).walkSync()
+    ];
+  }
+  stream() {
+    return new GlobStream(this.patterns, this.scurry.cwd, {
+      ...this.opts,
+      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
+      platform: this.platform,
+      nocase: this.nocase
+    }).stream();
+  }
+  streamSync() {
+    return new GlobStream(this.patterns, this.scurry.cwd, {
+      ...this.opts,
+      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
+      platform: this.platform,
+      nocase: this.nocase
+    }).streamSync();
+  }
+  /**
+   * Default sync iteration function. Returns a Generator that
+   * iterates over the results.
+   */
+  iterateSync() {
+    return this.streamSync()[Symbol.iterator]();
+  }
+  [Symbol.iterator]() {
+    return this.iterateSync();
+  }
+  /**
+   * Default async iteration function. Returns an AsyncGenerator that
+   * iterates over the results.
+   */
+  iterate() {
+    return this.stream()[Symbol.asyncIterator]();
+  }
+  [Symbol.asyncIterator]() {
+    return this.iterate();
+  }
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/has-magic.js
+var hasMagic = (pattern, options2 = {}) => {
+  if (!Array.isArray(pattern)) {
+    pattern = [pattern];
+  }
+  for (const p of pattern) {
+    if (new Minimatch(p, options2).hasMagic())
+      return true;
+  }
+  return false;
+};
+
+// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/index.js
+function globStreamSync(pattern, options2 = {}) {
+  return new Glob(pattern, options2).streamSync();
+}
+function globStream(pattern, options2 = {}) {
+  return new Glob(pattern, options2).stream();
+}
+function globSync(pattern, options2 = {}) {
+  return new Glob(pattern, options2).walkSync();
+}
+async function glob_(pattern, options2 = {}) {
+  return new Glob(pattern, options2).walk();
+}
+function globIterateSync(pattern, options2 = {}) {
+  return new Glob(pattern, options2).iterateSync();
+}
+function globIterate(pattern, options2 = {}) {
+  return new Glob(pattern, options2).iterate();
+}
+var streamSync = globStreamSync;
+var stream = Object.assign(globStream, { sync: globStreamSync });
+var iterateSync = globIterateSync;
+var iterate = Object.assign(globIterate, {
+  sync: globIterateSync
+});
+var sync = Object.assign(globSync, {
+  stream: globStreamSync,
+  iterate: globIterateSync
+});
+var glob = Object.assign(glob_, {
+  glob: glob_,
+  globSync,
+  sync,
+  globStream,
+  stream,
+  globStreamSync,
+  streamSync,
+  globIterate,
+  iterate,
+  globIterateSync,
+  iterateSync,
+  Glob,
+  hasMagic,
+  escape,
+  unescape: unescape2
+});
+glob.glob = glob;
+
+// ../cursorless-engine/src/util/grammarHelpers.ts
+var import_lodash57 = __toESM(require_lodash(), 1);
+var UNUSED = Symbol("unused");
+var ArgPosition = class {
+  constructor(position) {
+    this.position = position;
+  }
+};
+var argPositions = {
+  $0: new ArgPosition(0),
+  $1: new ArgPosition(1),
+  $2: new ArgPosition(2)
+};
+
+// ../neovim-registry/src/NeovimRegistry.ts
+var import_node_events = require("node:events");
+var NeovimRegistry = class {
+  constructor() {
+    this.apis = /* @__PURE__ */ new Map();
+    this.commands = /* @__PURE__ */ new Map();
+    this.eventEmitter = new import_node_events.EventEmitter();
+  }
+  registerExtensionApi(extensionId, api) {
+    this.apis.set(extensionId, api);
+  }
+  getExtensionApi(extensionId) {
+    return this.apis.get(extensionId);
+  }
+  registerCommand(commandId, callback2) {
+    this.commands.set(commandId, callback2);
+  }
+  async executeCommand(commandId, ...rest) {
+    return await this.commands.get(commandId)(...rest);
+  }
+  onEvent(eventName, listener) {
+    return this.eventEmitter.on(eventName, listener);
+  }
+  emitEvent(eventName, ...args) {
+    return this.eventEmitter.emit(eventName, ...args);
+  }
+};
+
+// ../neovim-registry/src/index.ts
+function getNeovimRegistry() {
+  if (global._neovimRegistry == null) {
+    global._neovimRegistry = new NeovimRegistry();
+  }
+  return global._neovimRegistry;
+}
+
+// ../neovim-common/src/getExtensionApi.ts
+var EXTENSION_ID = "pokey.cursorless";
+
+// ../neovim-common/src/neovimApi.ts
+async function bufferGetSelections(window2, client) {
+  const luaCode = `return require("cursorless.cursorless").buffer_get_selection()`;
+  const [startLine, startCol, endLine, endCol, reverse] = await client.executeLua(luaCode, []);
+  let selections;
+  if (reverse === true) {
+    selections = [
+      new Selection(
+        new Position(endLine - 1, endCol - 1),
+        new Position(startLine - 1, startCol - 1)
+      )
+    ];
+  } else {
+    selections = [
+      new Selection(
+        new Position(startLine - 1, startCol - 1),
+        new Position(endLine - 1, endCol - 1)
+      )
+    ];
+  }
+  console.debug(
+    `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character}) neovim=(${startLine},${startCol}),(${endLine},${endCol}),reverse=${reverse}`
+  );
+  return selections;
+}
+async function bufferSetSelections(client, selections) {
+  if (selections.length !== 1) {
+    throw new Error("bufferSetSelections() only supports one selection");
+  }
+  const luaCode = `return require("cursorless.cursorless").select_range(${selections[0].start.line + 1}, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${selections[0].end.character})`;
+  console.debug(
+    `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`
+  );
+  await client.executeLua(luaCode, []);
+}
+async function windowGetVisibleRanges(window2, client, lines) {
+  const luaCode = `return require("cursorless.cursorless").window_get_visible_lines()`;
+  const [firstLine, lastLine] = await client.executeLua(luaCode, []);
+  const range4 = new Range(
+    new Position(firstLine - 1, 0),
+    // subtract -1 to the line.length to get the correct 0-based column number
+    new Position(lastLine - 1, lines[lastLine - 1].length - 1)
+  );
+  console.debug(
+    `windowGetVisibleRanges(): range=(${range4.start.line}, ${range4.start.character}), (${range4.end.line}, ${range4.end.character})`
+  );
+  return [range4];
+}
+async function getCursorlessNvimPath(client) {
+  const luaCode = `return require("cursorless.utils").cursorless_nvim_path()`;
+  const data = await client.executeLua(luaCode, []);
+  return data;
+}
+async function putToClipboard(data, client) {
+  await client.callFunction("setreg", ["*", data]);
+}
+async function getFromClipboard(client) {
+  return await client.callFunction("getreg", ["*"]);
+}
+async function pasteFromClipboard(client) {
+  const luaCode = `return require("cursorless.utils").paste()`;
+  await client.executeLua(luaCode, []);
+}
+async function modeSwitchNormalTerminal(client) {
+  const luaCode = `return require("cursorless.utils").mode_switch_nt()`;
+  await client.executeLua(luaCode, []);
+}
+async function modeSwitchTerminal(client) {
+  const luaCode = `return require("cursorless.utils").mode_switch_t()`;
+  await client.executeLua(luaCode, []);
+}
+async function showErrorMessage(client, message) {
+  const luaCode = `vim.notify("${message}")`;
+  await client.executeLua(luaCode, []);
+}
+
+// ../neovim-common/src/ide/neovim/NeovimCapabilities.ts
+var COMMAND_CAPABILITIES = {
+  clipboardCopy: { acceptsLocation: false },
+  toggleLineComment: void 0,
+  indentLine: void 0,
+  outdentLine: void 0,
+  rename: void 0,
+  quickFix: void 0,
+  revealDefinition: void 0,
+  revealTypeDefinition: void 0,
+  showHover: void 0,
+  showDebugHover: void 0,
+  extractVariable: void 0,
+  fold: void 0,
+  highlight: { acceptsLocation: true },
+  unfold: void 0,
+  showReferences: void 0
+};
+var NeovimCapabilities = class {
+  constructor() {
+    this.commands = COMMAND_CAPABILITIES;
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimClipboard.ts
+var NeovimClipboard = class {
+  constructor(client) {
+    this.client = client;
+  }
+  async readText() {
+    return await getFromClipboard(this.client);
+  }
+  async writeText(value) {
+    return await putToClipboard(value, this.client);
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimConfiguration.ts
+var import_lodash58 = __toESM(require_lodash(), 1);
+var NeovimConfiguration = class {
+  constructor() {
+    this.notifier = new Notifier();
+    this.mocks = {
+      ...CONFIGURATION_DEFAULTS
+    };
+    this.scopes = [];
+    this.onDidChangeConfiguration = this.notifier.registerListener;
+    this.onDidChangeConfiguration = this.onDidChangeConfiguration.bind(this);
+  }
+  getOwnConfiguration(path8, scope) {
+    if (scope != null) {
+      for (const { scope: candidateScope, values: values2 } of this.scopes) {
+        if (scopeMatches2(candidateScope, scope)) {
+          return (0, import_lodash58.get)(values2, path8) ?? (0, import_lodash58.get)(this.mocks, path8);
+        }
+      }
+    }
+    return (0, import_lodash58.get)(this.mocks, path8);
+  }
+  mockConfiguration(key, value) {
+    this.mocks[key] = value;
+    this.notifier.notifyListeners();
+  }
+  mockConfigurationScope(scope, values2, noNotification = false) {
+    this.scopes.push({ scope, values: values2 });
+    if (!noNotification) {
+      this.notifier.notifyListeners();
+    }
+  }
+};
+function scopeMatches2(candidateScope, scope) {
+  return candidateScope.languageId === scope.languageId;
+}
+
+// ../neovim-common/src/ide/neovim/NeovimEdit.ts
+async function neovimEdit(client, neovimIDE, window2, edits) {
+  console.debug("neovimEdit() [unsorted]:");
+  for (const edit of edits) {
+    console.debug(
+      `	range=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`
+    );
+  }
+  edits.sort((a, b) => {
+    if ((isInsert(a) || isReplace2(a)) && (isInsert(b) || isReplace2(b))) {
+      return 1;
+    }
+    if (a.range.start.line === b.range.start.line) {
+      return b.range.start.character - a.range.start.character;
+    }
+    return b.range.start.line - a.range.start.line;
+  });
+  console.debug("neovimEdit() [sorted]:");
+  for (const edit of edits) {
+    console.debug(
+      `	range=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`
+    );
+  }
+  const document = neovimIDE.getTextDocument(
+    await client.window.buffer
+  );
+  const changes = [];
+  for (const edit of edits) {
+    changes.push({
+      range: edit.range,
+      rangeOffset: document.offsetAt(edit.range.start),
+      rangeLength: document.offsetAt(edit.range.end) - document.offsetAt(edit.range.start),
+      text: edit.text
+    });
+  }
+  getNeovimRegistry().emitEvent("onDidChangeTextDocument", {
+    document,
+    contentChanges: changes
+  });
+  for (const edit of edits) {
+    const { range: range4, text, isReplace: isReplace3 } = edit;
+    if (text === "") {
+      await neovimDelete(client, range4);
+    } else if (range4.isEmpty && !isReplace3) {
+      await neovimInsert(client, range4.start, text);
+    } else {
+      await neovimReplace(client, range4, text);
+    }
+  }
+  await neovimIDE.updateTextEditor();
+  return true;
+}
+async function neovimDelete(client, range4) {
+  console.debug(`neovimDelete(): range=${JSON.stringify(range4)}`);
+  const buffer = await client.window.buffer;
+  const lastLine = (await buffer.getLines({
+    start: range4.end.line,
+    end: range4.end.line + 1,
+    strictIndexing: true
+  }))[0];
+  const endOfLastLine = lastLine.slice(range4.end.character);
+  if (range4.start.line === range4.end.line) {
+    const singleLine = lastLine.slice(0, range4.start.character) + endOfLastLine;
+    await buffer.setLines(singleLine, {
+      start: range4.start.line,
+      end: range4.start.line + 1,
+      strictIndexing: true
+    });
+    return;
+  }
+  if (range4.start.character === 0) {
+    await buffer.setLines(endOfLastLine, {
+      start: range4.start.line,
+      end: range4.end.line + 1,
+      strictIndexing: true
+    });
+    return;
+  }
+  const firstLine = (await buffer.getLines({
+    start: range4.start.line,
+    end: range4.start.line + 1,
+    strictIndexing: true
+  }))[0];
+  const startOfFirstLine = firstLine.slice(0, range4.start.character);
+  if (range4.start.character <= firstLine.length) {
+    await buffer.setLines(startOfFirstLine + endOfLastLine, {
+      start: range4.start.line,
+      end: range4.end.line + 1,
+      strictIndexing: true
+    });
+    return;
+  }
+  await buffer.setLines([startOfFirstLine, endOfLastLine], {
+    start: range4.start.line,
+    end: range4.end.line + 1,
+    strictIndexing: true
+  });
+}
+async function neovimInsert(client, position, text) {
+  console.debug(
+    `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`
+  );
+  const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n");
+  const buffer = await client.window.buffer;
+  const lineWhereInsertion = (await buffer.getLines({
+    start: position.line,
+    end: position.line + 1,
+    strictIndexing: true
+  }))[0];
+  const startOfFirstLine = lineWhereInsertion.slice(0, position.character);
+  const endOfLastLine = lineWhereInsertion.slice(position.character);
+  if (newLines.length == 1) {
+    const singleLine = startOfFirstLine + newLines[0] + endOfLastLine;
+    await buffer.setLines(singleLine, {
+      start: position.line,
+      end: position.line + 1,
+      strictIndexing: true
+    });
+    return;
+  }
+  const firstLine = startOfFirstLine + newLines[0];
+  const lastLine = newLines[newLines.length - 1] + endOfLastLine;
+  await buffer.setLines(
+    [firstLine, ...newLines.slice(1, newLines.length - 1), lastLine],
+    {
+      start: position.line,
+      end: position.line + 1,
+      strictIndexing: true
+    }
+  );
+}
+async function neovimReplace(client, range4, text) {
+  console.debug(
+    `neovimReplace(): range=${JSON.stringify(range4)}, text='${text}'`
+  );
+  await neovimDelete(client, range4);
+  await neovimInsert(client, range4.start, text);
+}
+function isInsert(edit) {
+  return edit.range.isEmpty && !edit.isReplace;
+}
+function isReplace2(edit) {
+  return edit.text !== "" && (!edit.range.isEmpty || edit.isReplace ? true : false);
+}
+
+// ../neovim-common/src/ide/neovim/NeovimEvents.ts
+function neovimOnDidChangeTextDocument(listener) {
+  getNeovimRegistry().onEvent("onDidChangeTextDocument", listener);
+  return dummyEvent2();
+}
+function neovimOnDidOpenTextDocument(listener, thisArgs, disposables) {
+  getNeovimRegistry().onEvent("onDidOpenTextDocument", listener);
+  return dummyEvent2();
+}
+function dummyEvent2() {
+  return {
+    dispose() {
+    }
+  };
+}
+
+// ../neovim-common/src/ide/neovim/NeovimFileSystem.ts
+var import_path6 = require("path");
+var fs = __toESM(require("fs"), 1);
+var NeovimFileSystem = class {
+  constructor(runMode, cursorlessDir) {
+    this.runMode = runMode;
+    this.cursorlessDir = cursorlessDir;
+    this.cursorlessTalonStateJsonPath = (0, import_path6.join)(this.cursorlessDir, "state.json");
+    this.cursorlessCommandHistoryDirPath = (0, import_path6.join)(
+      this.cursorlessDir,
+      "commandHistory"
+    );
+  }
+  async initialize() {
+    if (!fs.existsSync(this.cursorlessDir)) {
+      try {
+        fs.mkdirSync(this.cursorlessDir);
+      } catch (err) {
+        console.debug("Cannot create cursorlessDir", this.cursorlessDir, err);
+      }
+    }
+  }
+  /**
+   * Reads a file that comes bundled with Cursorless, with the utf-8 encoding.
+   * {@link path} is expected to be relative to the root of the extension
+   * bundle. If the file doesn't exist, returns `undefined`.
+   *
+   * Note that in development mode, it is possible to supply an absolute path to
+   * a file on the local filesystem, for things like hot-reloading.
+   *
+   * @param path The path of the file to read
+   * @returns The contents of path, decoded as UTF-8
+   */
+  async readBundledFile(path8) {
+    console.debug("readBundledFile() Not implemented");
+    return void 0;
+  }
+  resolveBundledPath(path8) {
+    throw Error("resolveBundledPath() Not implemented");
+  }
+  watchDir(path8, onDidChange) {
+    return dummyEvent3();
+  }
+};
+function dummyEvent3() {
+  return {
+    dispose() {
+    }
+  };
+}
+
+// ../neovim-common/src/ide/neovim/NeovimGlobalState.ts
+var NeovimGlobalState = class {
+  constructor() {
+    this.data = { ...STATE_DEFAULTS };
+  }
+  get(key) {
+    return this.data[key];
+  }
+  set(key, value) {
+    this.data[key] = value;
+    return Promise.resolve();
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimIDE.ts
+var import_lodash59 = __toESM(require_lodash(), 1);
+
+// ../neovim-common/src/ide/neovim/NeovimMessages.ts
+var NeovimMessages = class {
+  async showMessage(_type, _id, _message, ..._options) {
+    return void 0;
+  }
+};
+
+// ../neovim-common/src/neovimHelpers.ts
+async function neovimClipboardCopy(client, ide2) {
+  const editor = ide2.activeTextEditor;
+  const window2 = await client.window;
+  const selections = await bufferGetSelections(window2, client);
+  const data = editor.document.getText(selections[0]);
+  await putToClipboard(data, client);
+}
+async function neovimClipboardPaste(client, ide2) {
+  await pasteFromClipboard(client);
+}
+
+// ../neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts
+var NeovimTextEditorImpl = class {
+  constructor(id, client, neovimIDE, window2, doc, visibleRanges, selections) {
+    this.id = id;
+    this.client = client;
+    this.neovimIDE = neovimIDE;
+    this.window = window2;
+    this._document = doc;
+    this._selections = selections;
+    this._visibleRanges = visibleRanges;
+  }
+  get document() {
+    return this._document;
+  }
+  updateDocument(visibleRanges, selections, doc, lines) {
+    if (doc) {
+      this._document = doc;
+    } else if (lines) {
+      this._document.update(lines);
+    } else {
+      throw Error("updateDocument(): invalid arguments");
+    }
+    this._selections = selections;
+    this._visibleRanges = visibleRanges;
+    return this._document;
+  }
+  get selections() {
+    return this._selections;
+  }
+  async setSelections(selections) {
+    this._selections = selections;
+    await bufferSetSelections(this.client, selections);
+  }
+  get visibleRanges() {
+    return this._visibleRanges;
+  }
+  get options() {
+    throw Error("get options Not implemented");
+  }
+  set options(options2) {
+    throw Error("set options Not implemented");
+  }
+  get isActive() {
+    return true;
+  }
+  isEqual(other) {
+    return this.id === other.id;
+  }
+  async revealRange(range4) {
+  }
+  revealLine(lineNumber, at) {
+    throw Error("revealLine Not implemented");
+  }
+  async edit(edits) {
+    return await neovimEdit(this.client, this.neovimIDE, this.window, edits);
+  }
+  focus() {
+    return Promise.resolve();
+  }
+  editNewNotebookCellAbove() {
+    throw Error("editNewNotebookCellAbove Not implemented");
+  }
+  editNewNotebookCellBelow() {
+    throw Error("editNewNotebookCellBelow Not implemented");
+  }
+  openLink(location) {
+    throw Error("openLink Not implemented");
+  }
+  fold(ranges) {
+    throw Error("fold Not implemented");
+  }
+  unfold(ranges) {
+    throw Error("unfold Not implemented");
+  }
+  toggleBreakpoint(descriptors) {
+    throw Error("toggleBreakpoint Not implemented");
+  }
+  async toggleLineComment(_ranges) {
+    throw Error("toggleLineComment Not implemented");
+  }
+  async clipboardCopy(_ranges) {
+    await neovimClipboardCopy(this.client, this.neovimIDE);
+  }
+  async clipboardPaste(_ranges) {
+    await neovimClipboardPaste(this.client, this.neovimIDE);
+  }
+  async indentLine(_ranges) {
+    throw Error("indentLine Not implemented");
+  }
+  async outdentLine(_ranges) {
+    throw Error("outdentLine Not implemented");
+  }
+  async insertLineAfter(ranges) {
+    throw Error("insertLineAfter Not implemented");
+  }
+  insertSnippet(snippet2, ranges) {
+    throw Error("insertSnippet Not implemented");
+  }
+  async rename(_range) {
+    throw Error("rename Not implemented");
+  }
+  async showReferences(_range) {
+    throw Error("showReferences Not implemented");
+  }
+  async quickFix(_range) {
+    throw Error("quickFix Not implemented");
+  }
+  async revealDefinition(_range) {
+    throw Error("revealDefinition Not implemented");
+  }
+  async revealTypeDefinition(_range) {
+    throw Error("revealTypeDefinition Not implemented");
+  }
+  async showHover(_range) {
+    throw Error("showHover Not implemented");
+  }
+  async showDebugHover(_range) {
+    throw Error("showDebugHover Not implemented");
+  }
+  async extractVariable(_range) {
+    throw Error("extractVariable Not implemented");
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimIDE.ts
+var import_path7 = __toESM(require("path"), 1);
+
+// ../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/esm/index.mjs
+var LIB;
+(() => {
+  "use strict";
+  var t = { 470: (t2) => {
+    function e2(t3) {
+      if ("string" != typeof t3)
+        throw new TypeError("Path must be a string. Received " + JSON.stringify(t3));
+    }
+    function r2(t3, e3) {
+      for (var r3, n3 = "", i = 0, o = -1, s = 0, h = 0; h <= t3.length; ++h) {
+        if (h < t3.length)
+          r3 = t3.charCodeAt(h);
+        else {
+          if (47 === r3)
+            break;
+          r3 = 47;
+        }
+        if (47 === r3) {
+          if (o === h - 1 || 1 === s)
+            ;
+          else if (o !== h - 1 && 2 === s) {
+            if (n3.length < 2 || 2 !== i || 46 !== n3.charCodeAt(n3.length - 1) || 46 !== n3.charCodeAt(n3.length - 2)) {
+              if (n3.length > 2) {
+                var a = n3.lastIndexOf("/");
+                if (a !== n3.length - 1) {
+                  -1 === a ? (n3 = "", i = 0) : i = (n3 = n3.slice(0, a)).length - 1 - n3.lastIndexOf("/"), o = h, s = 0;
+                  continue;
+                }
+              } else if (2 === n3.length || 1 === n3.length) {
+                n3 = "", i = 0, o = h, s = 0;
+                continue;
+              }
+            }
+            e3 && (n3.length > 0 ? n3 += "/.." : n3 = "..", i = 2);
+          } else
+            n3.length > 0 ? n3 += "/" + t3.slice(o + 1, h) : n3 = t3.slice(o + 1, h), i = h - o - 1;
+          o = h, s = 0;
+        } else
+          46 === r3 && -1 !== s ? ++s : s = -1;
+      }
+      return n3;
+    }
+    var n2 = { resolve: function() {
+      for (var t3, n3 = "", i = false, o = arguments.length - 1; o >= -1 && !i; o--) {
+        var s;
+        o >= 0 ? s = arguments[o] : (void 0 === t3 && (t3 = process.cwd()), s = t3), e2(s), 0 !== s.length && (n3 = s + "/" + n3, i = 47 === s.charCodeAt(0));
+      }
+      return n3 = r2(n3, !i), i ? n3.length > 0 ? "/" + n3 : "/" : n3.length > 0 ? n3 : ".";
+    }, normalize: function(t3) {
+      if (e2(t3), 0 === t3.length)
+        return ".";
+      var n3 = 47 === t3.charCodeAt(0), i = 47 === t3.charCodeAt(t3.length - 1);
+      return 0 !== (t3 = r2(t3, !n3)).length || n3 || (t3 = "."), t3.length > 0 && i && (t3 += "/"), n3 ? "/" + t3 : t3;
+    }, isAbsolute: function(t3) {
+      return e2(t3), t3.length > 0 && 47 === t3.charCodeAt(0);
+    }, join: function() {
+      if (0 === arguments.length)
+        return ".";
+      for (var t3, r3 = 0; r3 < arguments.length; ++r3) {
+        var i = arguments[r3];
+        e2(i), i.length > 0 && (void 0 === t3 ? t3 = i : t3 += "/" + i);
+      }
+      return void 0 === t3 ? "." : n2.normalize(t3);
+    }, relative: function(t3, r3) {
+      if (e2(t3), e2(r3), t3 === r3)
+        return "";
+      if ((t3 = n2.resolve(t3)) === (r3 = n2.resolve(r3)))
+        return "";
+      for (var i = 1; i < t3.length && 47 === t3.charCodeAt(i); ++i)
+        ;
+      for (var o = t3.length, s = o - i, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h)
+        ;
+      for (var a = r3.length - h, c = s < a ? s : a, f = -1, u = 0; u <= c; ++u) {
+        if (u === c) {
+          if (a > c) {
+            if (47 === r3.charCodeAt(h + u))
+              return r3.slice(h + u + 1);
+            if (0 === u)
+              return r3.slice(h + u);
+          } else
+            s > c && (47 === t3.charCodeAt(i + u) ? f = u : 0 === u && (f = 0));
+          break;
+        }
+        var l = t3.charCodeAt(i + u);
+        if (l !== r3.charCodeAt(h + u))
+          break;
+        47 === l && (f = u);
+      }
+      var g = "";
+      for (u = i + f + 1; u <= o; ++u)
+        u !== o && 47 !== t3.charCodeAt(u) || (0 === g.length ? g += ".." : g += "/..");
+      return g.length > 0 ? g + r3.slice(h + f) : (h += f, 47 === r3.charCodeAt(h) && ++h, r3.slice(h));
+    }, _makeLong: function(t3) {
+      return t3;
+    }, dirname: function(t3) {
+      if (e2(t3), 0 === t3.length)
+        return ".";
+      for (var r3 = t3.charCodeAt(0), n3 = 47 === r3, i = -1, o = true, s = t3.length - 1; s >= 1; --s)
+        if (47 === (r3 = t3.charCodeAt(s))) {
+          if (!o) {
+            i = s;
+            break;
+          }
+        } else
+          o = false;
+      return -1 === i ? n3 ? "/" : "." : n3 && 1 === i ? "//" : t3.slice(0, i);
+    }, basename: function(t3, r3) {
+      if (void 0 !== r3 && "string" != typeof r3)
+        throw new TypeError('"ext" argument must be a string');
+      e2(t3);
+      var n3, i = 0, o = -1, s = true;
+      if (void 0 !== r3 && r3.length > 0 && r3.length <= t3.length) {
+        if (r3.length === t3.length && r3 === t3)
+          return "";
+        var h = r3.length - 1, a = -1;
+        for (n3 = t3.length - 1; n3 >= 0; --n3) {
+          var c = t3.charCodeAt(n3);
+          if (47 === c) {
+            if (!s) {
+              i = n3 + 1;
+              break;
+            }
+          } else
+            -1 === a && (s = false, a = n3 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (o = n3) : (h = -1, o = a));
+        }
+        return i === o ? o = a : -1 === o && (o = t3.length), t3.slice(i, o);
+      }
+      for (n3 = t3.length - 1; n3 >= 0; --n3)
+        if (47 === t3.charCodeAt(n3)) {
+          if (!s) {
+            i = n3 + 1;
+            break;
+          }
+        } else
+          -1 === o && (s = false, o = n3 + 1);
+      return -1 === o ? "" : t3.slice(i, o);
+    }, extname: function(t3) {
+      e2(t3);
+      for (var r3 = -1, n3 = 0, i = -1, o = true, s = 0, h = t3.length - 1; h >= 0; --h) {
+        var a = t3.charCodeAt(h);
+        if (47 !== a)
+          -1 === i && (o = false, i = h + 1), 46 === a ? -1 === r3 ? r3 = h : 1 !== s && (s = 1) : -1 !== r3 && (s = -1);
+        else if (!o) {
+          n3 = h + 1;
+          break;
+        }
+      }
+      return -1 === r3 || -1 === i || 0 === s || 1 === s && r3 === i - 1 && r3 === n3 + 1 ? "" : t3.slice(r3, i);
+    }, format: function(t3) {
+      if (null === t3 || "object" != typeof t3)
+        throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t3);
+      return function(t4, e3) {
+        var r3 = e3.dir || e3.root, n3 = e3.base || (e3.name || "") + (e3.ext || "");
+        return r3 ? r3 === e3.root ? r3 + n3 : r3 + "/" + n3 : n3;
+      }(0, t3);
+    }, parse: function(t3) {
+      e2(t3);
+      var r3 = { root: "", dir: "", base: "", ext: "", name: "" };
+      if (0 === t3.length)
+        return r3;
+      var n3, i = t3.charCodeAt(0), o = 47 === i;
+      o ? (r3.root = "/", n3 = 1) : n3 = 0;
+      for (var s = -1, h = 0, a = -1, c = true, f = t3.length - 1, u = 0; f >= n3; --f)
+        if (47 !== (i = t3.charCodeAt(f)))
+          -1 === a && (c = false, a = f + 1), 46 === i ? -1 === s ? s = f : 1 !== u && (u = 1) : -1 !== s && (u = -1);
+        else if (!c) {
+          h = f + 1;
+          break;
+        }
+      return -1 === s || -1 === a || 0 === u || 1 === u && s === a - 1 && s === h + 1 ? -1 !== a && (r3.base = r3.name = 0 === h && o ? t3.slice(1, a) : t3.slice(h, a)) : (0 === h && o ? (r3.name = t3.slice(1, s), r3.base = t3.slice(1, a)) : (r3.name = t3.slice(h, s), r3.base = t3.slice(h, a)), r3.ext = t3.slice(s, a)), h > 0 ? r3.dir = t3.slice(0, h - 1) : o && (r3.dir = "/"), r3;
+    }, sep: "/", delimiter: ":", win32: null, posix: null };
+    n2.posix = n2, t2.exports = n2;
+  } }, e = {};
+  function r(n2) {
+    var i = e[n2];
+    if (void 0 !== i)
+      return i.exports;
+    var o = e[n2] = { exports: {} };
+    return t[n2](o, o.exports, r), o.exports;
+  }
+  r.d = (t2, e2) => {
+    for (var n2 in e2)
+      r.o(e2, n2) && !r.o(t2, n2) && Object.defineProperty(t2, n2, { enumerable: true, get: e2[n2] });
+  }, r.o = (t2, e2) => Object.prototype.hasOwnProperty.call(t2, e2), r.r = (t2) => {
+    "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t2, "__esModule", { value: true });
+  };
+  var n = {};
+  (() => {
+    let t2;
+    if (r.r(n), r.d(n, { URI: () => f, Utils: () => P }), "object" == typeof process)
+      t2 = "win32" === process.platform;
+    else if ("object" == typeof navigator) {
+      let e3 = navigator.userAgent;
+      t2 = e3.indexOf("Windows") >= 0;
+    }
+    const e2 = /^\w[\w\d+.-]*$/, i = /^\//, o = /^\/\//;
+    function s(t3, r2) {
+      if (!t3.scheme && r2)
+        throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t3.authority}", path: "${t3.path}", query: "${t3.query}", fragment: "${t3.fragment}"}`);
+      if (t3.scheme && !e2.test(t3.scheme))
+        throw new Error("[UriError]: Scheme contains illegal characters.");
+      if (t3.path) {
+        if (t3.authority) {
+          if (!i.test(t3.path))
+            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
+        } else if (o.test(t3.path))
+          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
+      }
+    }
+    const h = "", a = "/", c = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
+    class f {
+      static isUri(t3) {
+        return t3 instanceof f || !!t3 && "string" == typeof t3.authority && "string" == typeof t3.fragment && "string" == typeof t3.path && "string" == typeof t3.query && "string" == typeof t3.scheme && "string" == typeof t3.fsPath && "function" == typeof t3.with && "function" == typeof t3.toString;
+      }
+      scheme;
+      authority;
+      path;
+      query;
+      fragment;
+      constructor(t3, e3, r2, n2, i2, o2 = false) {
+        "object" == typeof t3 ? (this.scheme = t3.scheme || h, this.authority = t3.authority || h, this.path = t3.path || h, this.query = t3.query || h, this.fragment = t3.fragment || h) : (this.scheme = /* @__PURE__ */ function(t4, e4) {
+          return t4 || e4 ? t4 : "file";
+        }(t3, o2), this.authority = e3 || h, this.path = function(t4, e4) {
+          switch (t4) {
+            case "https":
+            case "http":
+            case "file":
+              e4 ? e4[0] !== a && (e4 = a + e4) : e4 = a;
+          }
+          return e4;
+        }(this.scheme, r2 || h), this.query = n2 || h, this.fragment = i2 || h, s(this, o2));
+      }
+      get fsPath() {
+        return m(this, false);
+      }
+      with(t3) {
+        if (!t3)
+          return this;
+        let { scheme: e3, authority: r2, path: n2, query: i2, fragment: o2 } = t3;
+        return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = h), void 0 === r2 ? r2 = this.authority : null === r2 && (r2 = h), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = h), void 0 === i2 ? i2 = this.query : null === i2 && (i2 = h), void 0 === o2 ? o2 = this.fragment : null === o2 && (o2 = h), e3 === this.scheme && r2 === this.authority && n2 === this.path && i2 === this.query && o2 === this.fragment ? this : new l(e3, r2, n2, i2, o2);
+      }
+      static parse(t3, e3 = false) {
+        const r2 = c.exec(t3);
+        return r2 ? new l(r2[2] || h, C(r2[4] || h), C(r2[5] || h), C(r2[7] || h), C(r2[9] || h), e3) : new l(h, h, h, h, h);
+      }
+      static file(e3) {
+        let r2 = h;
+        if (t2 && (e3 = e3.replace(/\\/g, a)), e3[0] === a && e3[1] === a) {
+          const t3 = e3.indexOf(a, 2);
+          -1 === t3 ? (r2 = e3.substring(2), e3 = a) : (r2 = e3.substring(2, t3), e3 = e3.substring(t3) || a);
+        }
+        return new l("file", r2, e3, h, h);
+      }
+      static from(t3) {
+        const e3 = new l(t3.scheme, t3.authority, t3.path, t3.query, t3.fragment);
+        return s(e3, true), e3;
+      }
+      toString(t3 = false) {
+        return y(this, t3);
+      }
+      toJSON() {
+        return this;
+      }
+      static revive(t3) {
+        if (t3) {
+          if (t3 instanceof f)
+            return t3;
+          {
+            const e3 = new l(t3);
+            return e3._formatted = t3.external, e3._fsPath = t3._sep === u ? t3.fsPath : null, e3;
+          }
+        }
+        return t3;
+      }
+    }
+    const u = t2 ? 1 : void 0;
+    class l extends f {
+      _formatted = null;
+      _fsPath = null;
+      get fsPath() {
+        return this._fsPath || (this._fsPath = m(this, false)), this._fsPath;
+      }
+      toString(t3 = false) {
+        return t3 ? y(this, true) : (this._formatted || (this._formatted = y(this, false)), this._formatted);
+      }
+      toJSON() {
+        const t3 = { $mid: 1 };
+        return this._fsPath && (t3.fsPath = this._fsPath, t3._sep = u), this._formatted && (t3.external = this._formatted), this.path && (t3.path = this.path), this.scheme && (t3.scheme = this.scheme), this.authority && (t3.authority = this.authority), this.query && (t3.query = this.query), this.fragment && (t3.fragment = this.fragment), t3;
+      }
+    }
+    const g = { 58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20" };
+    function d(t3, e3, r2) {
+      let n2, i2 = -1;
+      for (let o2 = 0; o2 < t3.length; o2++) {
+        const s2 = t3.charCodeAt(o2);
+        if (s2 >= 97 && s2 <= 122 || s2 >= 65 && s2 <= 90 || s2 >= 48 && s2 <= 57 || 45 === s2 || 46 === s2 || 95 === s2 || 126 === s2 || e3 && 47 === s2 || r2 && 91 === s2 || r2 && 93 === s2 || r2 && 58 === s2)
+          -1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += t3.charAt(o2));
+        else {
+          void 0 === n2 && (n2 = t3.substr(0, o2));
+          const e4 = g[s2];
+          void 0 !== e4 ? (-1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2, o2)), i2 = -1), n2 += e4) : -1 === i2 && (i2 = o2);
+        }
+      }
+      return -1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2))), void 0 !== n2 ? n2 : t3;
+    }
+    function p(t3) {
+      let e3;
+      for (let r2 = 0; r2 < t3.length; r2++) {
+        const n2 = t3.charCodeAt(r2);
+        35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t3.substr(0, r2)), e3 += g[n2]) : void 0 !== e3 && (e3 += t3[r2]);
+      }
+      return void 0 !== e3 ? e3 : t3;
+    }
+    function m(e3, r2) {
+      let n2;
+      return n2 = e3.authority && e3.path.length > 1 && "file" === e3.scheme ? `//${e3.authority}${e3.path}` : 47 === e3.path.charCodeAt(0) && (e3.path.charCodeAt(1) >= 65 && e3.path.charCodeAt(1) <= 90 || e3.path.charCodeAt(1) >= 97 && e3.path.charCodeAt(1) <= 122) && 58 === e3.path.charCodeAt(2) ? r2 ? e3.path.substr(1) : e3.path[1].toLowerCase() + e3.path.substr(2) : e3.path, t2 && (n2 = n2.replace(/\//g, "\\")), n2;
+    }
+    function y(t3, e3) {
+      const r2 = e3 ? p : d;
+      let n2 = "", { scheme: i2, authority: o2, path: s2, query: h2, fragment: c2 } = t3;
+      if (i2 && (n2 += i2, n2 += ":"), (o2 || "file" === i2) && (n2 += a, n2 += a), o2) {
+        let t4 = o2.indexOf("@");
+        if (-1 !== t4) {
+          const e4 = o2.substr(0, t4);
+          o2 = o2.substr(t4 + 1), t4 = e4.lastIndexOf(":"), -1 === t4 ? n2 += r2(e4, false, false) : (n2 += r2(e4.substr(0, t4), false, false), n2 += ":", n2 += r2(e4.substr(t4 + 1), false, true)), n2 += "@";
+        }
+        o2 = o2.toLowerCase(), t4 = o2.lastIndexOf(":"), -1 === t4 ? n2 += r2(o2, false, true) : (n2 += r2(o2.substr(0, t4), false, true), n2 += o2.substr(t4));
+      }
+      if (s2) {
+        if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {
+          const t4 = s2.charCodeAt(1);
+          t4 >= 65 && t4 <= 90 && (s2 = `/${String.fromCharCode(t4 + 32)}:${s2.substr(3)}`);
+        } else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {
+          const t4 = s2.charCodeAt(0);
+          t4 >= 65 && t4 <= 90 && (s2 = `${String.fromCharCode(t4 + 32)}:${s2.substr(2)}`);
+        }
+        n2 += r2(s2, true, false);
+      }
+      return h2 && (n2 += "?", n2 += r2(h2, false, false)), c2 && (n2 += "#", n2 += e3 ? c2 : d(c2, false, false)), n2;
+    }
+    function v(t3) {
+      try {
+        return decodeURIComponent(t3);
+      } catch {
+        return t3.length > 3 ? t3.substr(0, 3) + v(t3.substr(3)) : t3;
+      }
+    }
+    const b = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
+    function C(t3) {
+      return t3.match(b) ? t3.replace(b, (t4) => v(t4)) : t3;
+    }
+    var A = r(470);
+    const w = A.posix || A, x = "/";
+    var P;
+    !function(t3) {
+      t3.joinPath = function(t4, ...e3) {
+        return t4.with({ path: w.join(t4.path, ...e3) });
+      }, t3.resolvePath = function(t4, ...e3) {
+        let r2 = t4.path, n2 = false;
+        r2[0] !== x && (r2 = x + r2, n2 = true);
+        let i2 = w.resolve(r2, ...e3);
+        return n2 && i2[0] === x && !t4.authority && (i2 = i2.substring(1)), t4.with({ path: i2 });
+      }, t3.dirname = function(t4) {
+        if (0 === t4.path.length || t4.path === x)
+          return t4;
+        let e3 = w.dirname(t4.path);
+        return 1 === e3.length && 46 === e3.charCodeAt(0) && (e3 = ""), t4.with({ path: e3 });
+      }, t3.basename = function(t4) {
+        return w.basename(t4.path);
+      }, t3.extname = function(t4) {
+        return w.extname(t4.path);
+      };
+    }(P || (P = {}));
+  })(), LIB = n;
+})();
+var { URI, Utils } = LIB;
+
+// ../neovim-common/src/ide/neovim/NeovimTextLineImpl.ts
+var NeovimTextLineImpl = class {
+  constructor(lineNumber, text, isLastLine) {
+    this._lineNumber = lineNumber;
+    this._text = text;
+    this._isLastLine = isLastLine;
+  }
+  get lineNumber() {
+    return this._lineNumber;
+  }
+  get text() {
+    return this._text;
+  }
+  get range() {
+    return new Range(this._lineNumber, 0, this._lineNumber, this._text.length);
+  }
+  get rangeIncludingLineBreak() {
+    if (this._isLastLine) {
+      return this.range;
+    }
+    return new Range(this._lineNumber, 0, this._lineNumber + 1, 0);
+  }
+  get firstNonWhitespaceCharacterIndex() {
+    const index = /^(\s*)/.exec(this._text)[1].length;
+    return index;
+  }
+  get lastNonWhitespaceCharacterIndex() {
+    const index = this.text.trimEnd().length;
+    return index;
+  }
+  get isEmptyOrWhitespace() {
+    return this.firstNonWhitespaceCharacterIndex === this._text.length;
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts
+var NeovimTextDocumentImpl = class {
+  get uri() {
+    return this._uri;
+  }
+  get languageId() {
+    return this._languageId;
+  }
+  get version() {
+    return this._version;
+  }
+  get lineCount() {
+    return this._lineCount;
+  }
+  get range() {
+    const { end } = this.lineAt(this.lineCount - 1).range;
+    const range4 = new Range(0, 0, end.line, end.character);
+    return range4;
+  }
+  get eol() {
+    return this._eol === "\n" ? "LF" : "CRLF";
+  }
+  constructor(uri, languageId, version2, eol, lines) {
+    this._uri = uri;
+    this._languageId = languageId;
+    this._version = version2;
+    this._eol = eol;
+    this._lines = lines;
+    this._lineCount = lines.length;
+    this._lineStarts = null;
+    this._cachedTextValue = null;
+  }
+  update(lines) {
+    this._lines = lines;
+    this._lineCount = lines.length;
+    this._lineStarts = null;
+    this._cachedTextValue = null;
+  }
+  lineAt(lineOrPosition) {
+    let line;
+    if (lineOrPosition instanceof Position) {
+      line = lineOrPosition.line;
+    } else if (typeof lineOrPosition === "number") {
+      line = lineOrPosition;
+    }
+    if (typeof line !== "number" || line < 0 || line >= this._lines.length || Math.floor(line) !== line) {
+      throw new Error("Illegal value for `line`");
+    }
+    return new NeovimTextLineImpl(
+      line,
+      this._lines[line],
+      line === this._lines.length - 1
+    );
+  }
+  offsetAt(position) {
+    position = this._validatePosition(position);
+    this._ensureLineStarts();
+    return this._lineStarts.getPrefixSum(position.line - 1) + position.character;
+  }
+  positionAt(offset) {
+    offset = Math.floor(offset);
+    offset = Math.max(0, offset);
+    this._ensureLineStarts();
+    const out = this._lineStarts.getIndexOf(offset);
+    const lineLength = this._lines[out.index].length;
+    return new Position(out.index, Math.min(out.remainder, lineLength));
+  }
+  getText(range4) {
+    if (range4 === void 0) {
+      if (this._cachedTextValue == null) {
+        this._cachedTextValue = this._lines.join(this._eol);
+      }
+      return this._cachedTextValue;
+    } else {
+    }
+    range4 = this._validateRange(range4);
+    if (range4.isEmpty) {
+      return "";
+    }
+    if (range4.isSingleLine) {
+      return this._lines[range4.start.line].substring(
+        range4.start.character,
+        range4.end.character
+      );
+    }
+    const lineEnding = this._eol, startLineIndex = range4.start.line, endLineIndex = range4.end.line, resultLines = [];
+    resultLines.push(
+      this._lines[startLineIndex].substring(range4.start.character)
+    );
+    for (let i = startLineIndex + 1; i < endLineIndex; i++) {
+      resultLines.push(this._lines[i]);
+    }
+    resultLines.push(
+      this._lines[endLineIndex].substring(0, range4.end.character)
+    );
+    return resultLines.join(lineEnding);
+  }
+  // ---- range math
+  _validateRange(range4) {
+    if (!(range4 instanceof Range)) {
+      throw new Error("Invalid argument");
+    }
+    const start = this._validatePosition(range4.start);
+    const end = this._validatePosition(range4.end);
+    if (start === range4.start && end === range4.end) {
+      return range4;
+    }
+    return new Range(start.line, start.character, end.line, end.character);
+  }
+  _validatePosition(position) {
+    if (!(position instanceof Position)) {
+      throw new Error("Invalid argument");
+    }
+    if (this._lines.length === 0) {
+      return position.with(0, 0);
+    }
+    let { line, character } = position;
+    let hasChanged = false;
+    if (line < 0) {
+      line = 0;
+      character = 0;
+      hasChanged = true;
+    } else if (line >= this._lines.length) {
+      line = this._lines.length - 1;
+      character = this._lines[line].length;
+      hasChanged = true;
+    } else {
+      const maxCharacter = this._lines[line].length;
+      if (character < 0) {
+        character = 0;
+        hasChanged = true;
+      } else if (character > maxCharacter) {
+        character = maxCharacter;
+        hasChanged = true;
+      }
+    }
+    if (!hasChanged) {
+      return position;
+    }
+    return new Position(line, character);
+  }
+  _ensureLineStarts() {
+    if (!this._lineStarts) {
+      const eolLength = this._eol.length;
+      const linesLength = this._lines.length;
+      const lineStartValues = new Uint32Array(linesLength);
+      for (let i = 0; i < linesLength; i++) {
+        lineStartValues[i] = this._lines[i].length + eolLength;
+      }
+      this._lineStarts = new PrefixSumComputer(lineStartValues);
+    }
+  }
+};
+function toUint32(v) {
+  if (v < 0) {
+    return 0;
+  }
+  const maxUint32 = 4294967295;
+  if (v > maxUint32) {
+    return maxUint32;
+  }
+  return v | 0;
+}
+var PrefixSumComputer = class {
+  constructor(values2) {
+    this.values = values2;
+    this.prefixSum = new Uint32Array(values2.length);
+    this.prefixSumValidIndex = new Int32Array(1);
+    this.prefixSumValidIndex[0] = -1;
+  }
+  getCount() {
+    return this.values.length;
+  }
+  getTotalSum() {
+    if (this.values.length === 0) {
+      return 0;
+    }
+    return this._getPrefixSum(this.values.length - 1);
+  }
+  /**
+   * Returns the sum of the first `index + 1` many items.
+   * @returns `SUM(0 <= j <= index, values[j])`.
+   */
+  getPrefixSum(index) {
+    if (index < 0) {
+      return 0;
+    }
+    index = toUint32(index);
+    return this._getPrefixSum(index);
+  }
+  _getPrefixSum(index) {
+    if (index <= this.prefixSumValidIndex[0]) {
+      return this.prefixSum[index];
+    }
+    let startIndex = this.prefixSumValidIndex[0] + 1;
+    if (startIndex === 0) {
+      this.prefixSum[0] = this.values[0];
+      startIndex++;
+    }
+    if (index >= this.values.length) {
+      index = this.values.length - 1;
+    }
+    for (let i = startIndex; i <= index; i++) {
+      this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];
+    }
+    this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);
+    return this.prefixSum[index];
+  }
+  getIndexOf(sum2) {
+    sum2 = Math.floor(sum2);
+    this.getTotalSum();
+    let low = 0;
+    let high = this.values.length - 1;
+    let mid = 0;
+    let midStop = 0;
+    let midStart = 0;
+    while (low <= high) {
+      mid = low + (high - low) / 2 | 0;
+      midStop = this.prefixSum[mid];
+      midStart = midStop - this.values[mid];
+      if (sum2 < midStart) {
+        high = mid - 1;
+      } else if (sum2 >= midStop) {
+        low = mid + 1;
+      } else {
+        break;
+      }
+    }
+    return new PrefixSumIndexOfResult(mid, sum2 - midStart);
+  }
+};
+var PrefixSumIndexOfResult = class {
+  constructor(index, remainder) {
+    this.index = index;
+    this.remainder = remainder;
+    this._prefixSumIndexOfResultBrand = void 0;
+    this.index = index;
+    this.remainder = remainder;
+  }
+};
+
+// ../neovim-common/src/ide/neovim/NeovimIDE.ts
+var NeovimIDE = class {
+  constructor(client) {
+    this.client = client;
+    this.cursorlessVersion = "0.0.0";
+    this.workspaceFolders = void 0;
+    this.disposables = [];
+    this.quickPickReturnValue = void 0;
+    this.onDidCloseTextDocument = dummyEvent4;
+    this.onDidChangeActiveTextEditor = dummyEvent4;
+    this.onDidChangeVisibleTextEditors = dummyEvent4;
+    this.onDidChangeTextEditorSelection = dummyEvent4;
+    this.onDidChangeTextEditorVisibleRanges = dummyEvent4;
+    this.configuration = new NeovimConfiguration();
+    this.globalState = new NeovimGlobalState();
+    this.messages = new NeovimMessages();
+    this.clipboard = new NeovimClipboard(this.client);
+    this.capabilities = new NeovimCapabilities();
+    this.editorMap = /* @__PURE__ */ new Map();
+    this.documentMap = /* @__PURE__ */ new Map();
+    this.activeWindow = void 0;
+    this.activeBuffer = void 0;
+  }
+  async init() {
+    const rootPath = await getCursorlessNvimPath(this.client);
+    this.assetsRoot_ = import_path7.default.join(rootPath, "assets");
+    this.cursorlessNeovimPath = import_path7.default.join(
+      rootPath,
+      "node",
+      "cursorless-neovim"
+    );
+  }
+  async showQuickPick(_items, _options) {
+    throw Error("showQuickPick Not implemented");
+  }
+  async setHighlightRanges(_highlightId, _editor, _ranges) {
+    throw Error("setHighlightRanges Not implemented");
+  }
+  async flashRanges(_flashDescriptors) {
+    console.debug("flashRanges Not implemented");
+  }
+  get assetsRoot() {
+    if (this.assetsRoot_ == null) {
+      throw Error("Field `assetsRoot` has not yet been mocked");
+    }
+    return this.assetsRoot_;
+  }
+  // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode
+  get runMode() {
+    const runMode = process.env.CURSORLESS_MODE;
+    const ret = runMode == null ? "production" : runMode === "test" ? "test" : runMode == "development" ? "development" : "unknown";
+    if (ret === "unknown") {
+      throw Error("Invalid runMode");
+    }
+    return ret;
+  }
+  get activeTextEditor() {
+    return this.getActiveTextEditor();
+  }
+  get activeEditableTextEditor() {
+    return this.getActiveTextEditor();
+  }
+  getActiveTextEditor() {
+    const editor = this.activeWindow ? this.getTextEditor(this.activeWindow) : void 0;
+    if (editor === void 0) {
+      console.debug("getActiveTextEditor: editor is undefined");
+    }
+    return editor;
+  }
+  getTextEditor(w) {
+    for (const [window2, textEditor] of this.editorMap) {
+      if (window2.id === w.id) {
+        return textEditor;
+      }
+    }
+    return void 0;
+  }
+  getTextDocument(b) {
+    for (const [buffer, textDocument] of this.documentMap) {
+      if (buffer.id === b.id) {
+        return textDocument;
+      }
+    }
+    return void 0;
+  }
+  get visibleTextEditors() {
+    return Array.from(this.editorMap.values());
+  }
+  getEditableTextEditor(editor) {
+    return editor;
+  }
+  async findInDocument(_query, _editor) {
+    throw Error("findInDocument Not implemented");
+  }
+  async findInWorkspace(_query) {
+    throw Error("findInWorkspace Not implemented");
+  }
+  async openTextDocument(_path) {
+    throw Error("openTextDocument Not implemented");
+  }
+  async openUntitledTextDocument(_options) {
+    throw Error("openUntitledTextDocument Not implemented");
+  }
+  async showInputBox(_options) {
+    throw Error("TextDocumentChangeEvent Not implemented");
+  }
+  async executeCommand(_command, ..._args) {
+    throw new Error("executeCommand Method not implemented.");
+  }
+  onDidChangeTextDocument(listener) {
+    return neovimOnDidChangeTextDocument(listener);
+  }
+  onDidOpenTextDocument(listener, thisArgs, disposables) {
+    return neovimOnDidOpenTextDocument(listener, thisArgs, disposables);
+  }
+  /**
+   * Initialize the current editor (and current document).
+   * If the current editor already exists, it will only update the current document of that editor.
+   *
+   * when we receive our first cursorless command, we will initialize an editor an document for it.
+   * for the following commands, we will only update the document.
+   *
+   * Atm, we only initialize one editor(current window) with one document(current buffer)
+   */
+  async updateTextEditor(minimal = false) {
+    const window2 = await this.client.window;
+    const buffer = await window2.buffer;
+    const lines = await buffer.lines;
+    let linesShown = lines;
+    if (lines.length >= 30) {
+      linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15));
+    }
+    console.debug(
+      `updateTextEditor(): window:${window2.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`
+    );
+    let selections;
+    let visibleRanges;
+    if (!minimal) {
+      selections = await bufferGetSelections(window2, this.client);
+      visibleRanges = await windowGetVisibleRanges(window2, this.client, lines);
+    } else {
+      selections = [];
+      visibleRanges = [];
+    }
+    const editor = this.toNeovimEditor(
+      window2,
+      buffer,
+      lines,
+      visibleRanges,
+      selections
+    );
+    getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document);
+    return editor;
+  }
+  toNeovimEditor(window2, buffer, lines, visibleRanges, selections) {
+    let document = this.getTextDocument(buffer);
+    let editor = this.getTextEditor(window2);
+    if (!document) {
+      console.debug(
+        `toNeovimEditor(): creating new document: buffer=${buffer.id}`
+      );
+      document = new NeovimTextDocumentImpl(
+        URI.parse(`neovim://${buffer.id}`),
+        // URI.parse(`file://${buffer.id}`),
+        "plaintext",
+        1,
+        "\n",
+        // "\r\n",
+        lines
+      );
+      this.documentMap.set(buffer, document);
+    } else {
+      console.debug(`toNeovimEditor(): updating document: buffer=${buffer.id}`);
+      document.update(lines);
+    }
+    if (!editor) {
+      console.debug(
+        `toNeovimEditor(): creating new editor: window=${window2.id}`
+      );
+      editor = new NeovimTextEditorImpl(
+        v4(),
+        this.client,
+        this,
+        window2,
+        document,
+        visibleRanges,
+        selections
+      );
+      this.editorMap.set(window2, editor);
+    } else {
+      console.debug(`toNeovimEditor(): updating editor: window=${window2.id}`);
+      editor.updateDocument(visibleRanges, selections, document);
+    }
+    this.activeBuffer = buffer;
+    this.activeWindow = window2;
+    return this.activeTextEditor;
+  }
+  handleCommandError(err) {
+    showErrorMessage(this.client, err.message);
+  }
+  disposeOnExit(...disposables) {
+    this.disposables.push(...disposables);
+    return () => (0, import_lodash59.pull)(this.disposables, ...disposables);
+  }
+};
+function dummyEvent4() {
+  return {
+    dispose() {
+    }
+  };
+}
+
+// ../neovim-common/src/ide/neovim/hats/NeovimHats.ts
+var NeovimHats = class {
+  constructor(ide2) {
+    this.ide = ide2;
+    this.enabledHatStyleNotifier = new Notifier();
+    this.isEnabledNotifier = new Notifier();
+    this.enabledHatStyles = {};
+    this.isEnabled = false;
+  }
+  async init() {
+  }
+  async setHatRanges(hatRanges) {
+  }
+  onDidChangeEnabledHatStyles(listener) {
+    return this.enabledHatStyleNotifier.registerListener(listener);
+  }
+  onDidChangeIsEnabled(listener) {
+    return this.isEnabledNotifier.registerListener(listener);
+  }
+};
+
+// src/extension.ts
+var crypto = __toESM(require("crypto"));
+var os = __toESM(require("os"));
+var path7 = __toESM(require("path"));
+
+// src/NeovimCommandServerApi.ts
+var NeovimCommandServerApi = class {
+  constructor(client) {
+    this.client = client;
+    this.signals = { prePhrase: { getVersion: async () => null } };
+  }
+  // for vscode, it is actually stored into the command-server
+  // but for neovim, it is stored in cursorless
+  // https://github.com/pokey/command-server/blob/main/src/extension.ts#L32
+  async getFocusedElementType() {
+    const currentMode = await this.client.mode;
+    if (currentMode.mode === "t" || currentMode.mode === "nt") {
+      return "terminal";
+    } else {
+      return "textEditor";
+    }
+  }
+};
+
+// src/constructTestHelpers.ts
+function constructTestHelpers(commandServerApi, storedTargets, hatTokenMap, neovimIDE, normalizedIde, fileSystem, scopeProvider, injectIde2, runIntegrationTests2) {
+  return {
+    commandServerApi,
+    ide: normalizedIde,
+    neovimIDE,
+    injectIde: injectIde2,
+    scopeProvider,
+    // FIXME: Remove this once we have a better way to get this function
+    // accessible from our tests
+    takeSnapshot(excludeFields, extraFields, editor, ide2, marks2, forceRealClipboard) {
+      return takeSnapshot(
+        storedTargets,
+        excludeFields,
+        extraFields,
+        editor,
+        ide2,
+        marks2,
+        void 0,
+        void 0,
+        forceRealClipboard ? neovimIDE.clipboard : void 0
+      );
+    },
+    cursorlessTalonStateJsonPath: fileSystem.cursorlessTalonStateJsonPath,
+    cursorlessCommandHistoryDirPath: fileSystem.cursorlessCommandHistoryDirPath,
+    setStoredTarget(editor, key, targets) {
+      storedTargets.set(
+        key,
+        targets?.map((target) => plainObjectToTarget(editor, target))
+      );
+    },
+    hatTokenMap,
+    runIntegrationTests: runIntegrationTests2
+  };
+}
+
+// src/registerCommands.ts
+async function registerCommands(client, neovimIDE, commandApi, commandServerApi) {
+  const commands = {
+    // The core Cursorless command
+    [CURSORLESS_COMMAND_ID]: async (...args) => {
+      const originalMode = await client.mode;
+      if (originalMode.mode === "t") {
+        modeSwitchNormalTerminal(client);
+      }
+      try {
+        await neovimIDE.updateTextEditor();
+        const result = await commandApi.runCommandSafe(...args);
+        const command = ensureCommandShape(args);
+        const focusedElementType = await commandServerApi.getFocusedElementType();
+        if (focusedElementType === "terminal" && clientSupportsFallback(command)) {
+          const commandResponse = result;
+          if ("fallback" in commandResponse && commandResponse.fallback.action === "insert") {
+            modeSwitchTerminal(client);
+          }
+        }
+        return result;
+      } catch (e) {
+        if (neovimIDE.runMode !== "test") {
+          const err = e;
+          console.error(err.stack);
+          neovimIDE.handleCommandError(err);
+        }
+        throw e;
+      }
+    },
+    // Cheatsheet commands
+    ["cursorless.showCheatsheet"]: dummyCommandHandler,
+    ["cursorless.internal.updateCheatsheetDefaults"]: dummyCommandHandler,
+    // Testcase recorder commands
+    ["cursorless.recordTestCase"]: dummyCommandHandler,
+    ["cursorless.recordOneTestCaseThenPause"]: dummyCommandHandler,
+    ["cursorless.pauseRecording"]: dummyCommandHandler,
+    ["cursorless.resumeRecording"]: dummyCommandHandler,
+    ["cursorless.takeSnapshot"]: dummyCommandHandler,
+    // Other commands
+    ["cursorless.showQuickPick"]: dummyCommandHandler,
+    ["cursorless.showDocumentation"]: dummyCommandHandler,
+    ["cursorless.private.logQuickActions"]: dummyCommandHandler,
+    // Hats
+    ["cursorless.toggleDecorations"]: dummyCommandHandler,
+    ["cursorless.recomputeDecorationStyles"]: dummyCommandHandler,
+    // Scope visualizer
+    ["cursorless.showScopeVisualizer"]: dummyCommandHandler,
+    ["cursorless.hideScopeVisualizer"]: dummyCommandHandler,
+    // Command history
+    ["cursorless.analyzeCommandHistory"]: dummyCommandHandler,
+    // General keyboard commands
+    ["cursorless.keyboard.escape"]: dummyCommandHandler,
+    // Targeted keyboard commands
+    ["cursorless.keyboard.targeted.targetHat"]: dummyCommandHandler,
+    ["cursorless.keyboard.targeted.targetScope"]: dummyCommandHandler,
+    ["cursorless.keyboard.targeted.targetSelection"]: dummyCommandHandler,
+    ["cursorless.keyboard.targeted.clearTarget"]: dummyCommandHandler,
+    ["cursorless.keyboard.targeted.runActionOnTarget"]: dummyCommandHandler,
+    // Modal keyboard commands
+    ["cursorless.keyboard.modal.modeOn"]: dummyCommandHandler,
+    ["cursorless.keyboard.modal.modeOff"]: dummyCommandHandler,
+    ["cursorless.keyboard.modal.modeToggle"]: dummyCommandHandler
+  };
+  Object.entries(commands).map(
+    ([commandId, callback2]) => getNeovimRegistry().registerCommand(commandId, callback2)
+  );
+}
+async function dummyCommandHandler(...args) {
+  console.debug(`dummyCommandHandler(): args=${args}`);
+}
+
+// src/extension.ts
+async function activate(plugin) {
+  const client = plugin.nvim;
+  const { neovimIDE, hats, fileSystem } = await createNeovimIde(client);
+  const normalizedIde = neovimIDE.runMode === "production" ? neovimIDE : new NormalizedIDE(
+    neovimIDE,
+    new FakeIDE(),
+    neovimIDE.runMode === "test"
+  );
+  const fakeCommandServerApi = new FakeCommandServerApi();
+  const neovimCommandServerApi = new NeovimCommandServerApi(client);
+  const commandServerApi = neovimIDE.runMode === "test" ? fakeCommandServerApi : neovimCommandServerApi;
+  const treeSitter = createTreeSitter();
+  const {
+    commandApi,
+    storedTargets,
+    hatTokenMap,
+    scopeProvider,
+    snippets,
+    injectIde: injectIde2,
+    runIntegrationTests: runIntegrationTests2,
+    addCommandRunnerDecorator,
+    customSpokenFormGenerator
+  } = await createCursorlessEngine(
+    treeSitter,
+    normalizedIde,
+    hats,
+    commandServerApi,
+    fileSystem
+  );
+  await registerCommands(client, neovimIDE, commandApi, commandServerApi);
+  const cursorlessApi = {
+    testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers(
+      fakeCommandServerApi,
+      storedTargets,
+      hatTokenMap,
+      neovimIDE,
+      normalizedIde,
+      fileSystem,
+      scopeProvider,
+      injectIde2,
+      runIntegrationTests2
+    ) : void 0,
+    experimental: {
+      registerThirdPartySnippets: snippets.registerThirdPartySnippets
+    }
+  };
+  getNeovimRegistry().registerExtensionApi(EXTENSION_ID, cursorlessApi);
+  console.log("activate(): Cursorless extension loaded");
+}
+async function createNeovimIde(client) {
+  const neovimIDE = new NeovimIDE(client);
+  await neovimIDE.init();
+  const hats = new NeovimHats(neovimIDE);
+  await hats.init();
+  const cursorlessDir = neovimIDE.runMode === "test" ? path7.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) : path7.join(os.homedir(), ".cursorless");
+  const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir);
+  await fileSystem.initialize();
+  return { neovimIDE, hats, fileSystem };
+}
+function createTreeSitter() {
+  return {
+    getNodeAtLocation(document, range4) {
+      throw new UnsupportedLanguageError2(document.languageId);
+    },
+    getTree(document) {
+      return null;
+    },
+    loadLanguage(languageId) {
+      return Promise.resolve(false);
+    },
+    getLanguage(languageId) {
+      return void 0;
+    }
+  };
+}
+var UnsupportedLanguageError2 = class extends Error {
+  constructor(language) {
+    super(
+      `Language '${language}' not supported by parse tree extension.  See https://github.com/pokey/vscode-parse-tree#adding-a-new-language`
+    );
+    this.name = "UnsupportedLanguageError";
+  }
+};
+
+// src/index.ts
+function entry(plugin) {
+  plugin.setOptions({ dev: false });
+  plugin.registerFunction(
+    "CursorlessLoadExtension",
+    async () => await loadExtension(plugin),
+    { sync: false }
+  );
+}
+async function loadExtension(plugin) {
+  console.log(
+    "==============================================================================================="
+  );
+  console.log("loadExtension(cursorless-neovim): start");
+  await activate(plugin);
+  console.log("loadExtension(cursorless-neovim): done");
+}
+/*! Bundled license information:
+
+lodash/lodash.js:
+  (**
+   * @license
+   * Lodash 
+   * Copyright OpenJS Foundation and other contributors 
+   * Released under MIT license 
+   * Based on Underscore.js 1.8.3 
+   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+   *)
+
+is-plain-object/dist/is-plain-object.js:
+  (*!
+   * is-plain-object 
+   *
+   * Copyright (c) 2014-2017, Jon Schlinkert.
+   * Released under the MIT License.
+   *)
+
+js-yaml/dist/js-yaml.mjs:
+  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
+
+itertools/dist/index.js:
+  (* istanbul ignore else -- @preserve *)
+  (* istanbul ignore if -- @preserve *)
+*/
+//# sourceMappingURL=index.cjs.map
diff --git a/dist/cursorless.nvim/node/cursorless-neovim/package.json b/dist/cursorless.nvim/node/cursorless-neovim/package.json
new file mode 100644
index 0000000000..b6f7d76fb2
--- /dev/null
+++ b/dist/cursorless.nvim/node/cursorless-neovim/package.json
@@ -0,0 +1,42 @@
+{
+  "name": "@cursorless/cursorless-neovim",
+  "version": "1.0.0",
+  "description": "cursorless in neovim",
+  "main": "./out/index.cjs",
+  "private": true,
+  "scripts": {
+    "compile:tsc": "tsc --build",
+    "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node",
+    "compile": "pnpm compile:tsc && pnpm compile:esbuild && pnpm populate-cursorless-nvim",
+    "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh",
+    "watch:tsc": "pnpm compile:tsc --watch",
+    "watch:esbuild": "pnpm compile:esbuild --watch",
+    "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'",
+    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "MIT",
+  "types": "./out/index.d.ts",
+  "exports": {
+    ".": {
+      "cursorless:bundler": "./src/index.ts",
+      "default": "./out/index.cjs"
+    }
+  },
+  "dependencies": {
+    "@cursorless/common": "workspace:*",
+    "@cursorless/cursorless-engine": "workspace:*",
+    "@cursorless/neovim-common": "workspace:*",
+    "@cursorless/neovim-registry": "workspace:*"
+  },
+  "devDependencies": {
+    "@types/chai": "^4.3.14",
+    "@types/js-yaml": "^4.0.9",
+    "@types/lodash": "4.17.0",
+    "@types/uuid": "^9.0.8",
+    "lodash": "^4.17.21",
+    "neovim": "5.1.0",
+    "vscode-uri": "^3.0.8"
+  }
+}
diff --git a/dist/cursorless.nvim/node/test-harness/out/index.cjs b/dist/cursorless.nvim/node/test-harness/out/index.cjs
new file mode 100644
index 0000000000..7e0e706635
--- /dev/null
+++ b/dist/cursorless.nvim/node/test-harness/out/index.cjs
@@ -0,0 +1,26716 @@
+"use strict";
+var __create = Object.create;
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __getProtoOf = Object.getPrototypeOf;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __commonJS = (cb, mod) => function __require() {
+  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+var __export = (target, all) => {
+  for (var name in all)
+    __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __copyProps = (to, from, except, desc) => {
+  if (from && typeof from === "object" || typeof from === "function") {
+    for (let key of __getOwnPropNames(from))
+      if (!__hasOwnProp.call(to, key) && key !== except)
+        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+  }
+  return to;
+};
+var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+  // If the importer is in node compatibility mode or this is not an ESM
+  // file that has been converted to a CommonJS file using a Babel-
+  // compatible transform (i.e. "__esModule" has not been set), then set
+  // "default" to the CommonJS "module.exports" for node compatibility.
+  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+  mod
+));
+var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+// ../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js
+var require_escape_string_regexp = __commonJS({
+  "../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js"(exports2, module2) {
+    "use strict";
+    module2.exports = (string) => {
+      if (typeof string !== "string") {
+        throw new TypeError("Expected a string");
+      }
+      return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/base.js
+var require_base = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/base.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2["default"] = Diff;
+    function Diff() {
+    }
+    Diff.prototype = {
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      diff: function diff(oldString, newString) {
+        var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
+        var callback = options.callback;
+        if (typeof options === "function") {
+          callback = options;
+          options = {};
+        }
+        this.options = options;
+        var self2 = this;
+        function done(value) {
+          if (callback) {
+            setTimeout(function() {
+              callback(void 0, value);
+            }, 0);
+            return true;
+          } else {
+            return value;
+          }
+        }
+        oldString = this.castInput(oldString);
+        newString = this.castInput(newString);
+        oldString = this.removeEmpty(this.tokenize(oldString));
+        newString = this.removeEmpty(this.tokenize(newString));
+        var newLen = newString.length, oldLen = oldString.length;
+        var editLength = 1;
+        var maxEditLength = newLen + oldLen;
+        var bestPath = [{
+          newPos: -1,
+          components: []
+        }];
+        var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
+        if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
+          return done([{
+            value: this.join(newString),
+            count: newString.length
+          }]);
+        }
+        function execEditLength() {
+          for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
+            var basePath = (
+              /*istanbul ignore start*/
+              void 0
+            );
+            var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
+            if (addPath) {
+              bestPath[diagonalPath - 1] = void 0;
+            }
+            var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
+            if (!canAdd && !canRemove) {
+              bestPath[diagonalPath] = void 0;
+              continue;
+            }
+            if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
+              basePath = clonePath(removePath);
+              self2.pushComponent(basePath.components, void 0, true);
+            } else {
+              basePath = addPath;
+              basePath.newPos++;
+              self2.pushComponent(basePath.components, true, void 0);
+            }
+            _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath);
+            if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
+              return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken));
+            } else {
+              bestPath[diagonalPath] = basePath;
+            }
+          }
+          editLength++;
+        }
+        if (callback) {
+          (function exec() {
+            setTimeout(function() {
+              if (editLength > maxEditLength) {
+                return callback();
+              }
+              if (!execEditLength()) {
+                exec();
+              }
+            }, 0);
+          })();
+        } else {
+          while (editLength <= maxEditLength) {
+            var ret = execEditLength();
+            if (ret) {
+              return ret;
+            }
+          }
+        }
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      pushComponent: function pushComponent(components, added, removed) {
+        var last = components[components.length - 1];
+        if (last && last.added === added && last.removed === removed) {
+          components[components.length - 1] = {
+            count: last.count + 1,
+            added,
+            removed
+          };
+        } else {
+          components.push({
+            count: 1,
+            added,
+            removed
+          });
+        }
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
+        var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0;
+        while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
+          newPos++;
+          oldPos++;
+          commonCount++;
+        }
+        if (commonCount) {
+          basePath.components.push({
+            count: commonCount
+          });
+        }
+        basePath.newPos = newPos;
+        return oldPos;
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      equals: function equals(left, right) {
+        if (this.options.comparator) {
+          return this.options.comparator(left, right);
+        } else {
+          return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
+        }
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      removeEmpty: function removeEmpty(array) {
+        var ret = [];
+        for (var i = 0; i < array.length; i++) {
+          if (array[i]) {
+            ret.push(array[i]);
+          }
+        }
+        return ret;
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      castInput: function castInput(value) {
+        return value;
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      tokenize: function tokenize(value) {
+        return value.split("");
+      },
+      /*istanbul ignore start*/
+      /*istanbul ignore end*/
+      join: function join3(chars) {
+        return chars.join("");
+      }
+    };
+    function buildValues(diff, components, newString, oldString, useLongestToken) {
+      var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0;
+      for (; componentPos < componentLen; componentPos++) {
+        var component = components[componentPos];
+        if (!component.removed) {
+          if (!component.added && useLongestToken) {
+            var value = newString.slice(newPos, newPos + component.count);
+            value = value.map(function(value2, i) {
+              var oldValue = oldString[oldPos + i];
+              return oldValue.length > value2.length ? oldValue : value2;
+            });
+            component.value = diff.join(value);
+          } else {
+            component.value = diff.join(newString.slice(newPos, newPos + component.count));
+          }
+          newPos += component.count;
+          if (!component.added) {
+            oldPos += component.count;
+          }
+        } else {
+          component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
+          oldPos += component.count;
+          if (componentPos && components[componentPos - 1].added) {
+            var tmp = components[componentPos - 1];
+            components[componentPos - 1] = components[componentPos];
+            components[componentPos] = tmp;
+          }
+        }
+      }
+      var lastComponent = components[componentLen - 1];
+      if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) {
+        components[componentLen - 2].value += lastComponent.value;
+        components.pop();
+      }
+      return components;
+    }
+    function clonePath(path4) {
+      return {
+        newPos: path4.newPos,
+        components: path4.components.slice(0)
+      };
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/character.js
+var require_character = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/character.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffChars = diffChars;
+    exports2.characterDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var characterDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.characterDiff = characterDiff;
+    function diffChars(oldStr, newStr, options) {
+      return characterDiff.diff(oldStr, newStr, options);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/params.js
+var require_params = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/params.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.generateOptions = generateOptions;
+    function generateOptions(options, defaults2) {
+      if (typeof options === "function") {
+        defaults2.callback = options;
+      } else if (options) {
+        for (var name in options) {
+          if (options.hasOwnProperty(name)) {
+            defaults2[name] = options[name];
+          }
+        }
+      }
+      return defaults2;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/word.js
+var require_word = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/word.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffWords = diffWords;
+    exports2.diffWordsWithSpace = diffWordsWithSpace;
+    exports2.wordDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    var _params = require_params();
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
+    var reWhitespace = /\S/;
+    var wordDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.wordDiff = wordDiff;
+    wordDiff.equals = function(left, right) {
+      if (this.options.ignoreCase) {
+        left = left.toLowerCase();
+        right = right.toLowerCase();
+      }
+      return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
+    };
+    wordDiff.tokenize = function(value) {
+      var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/);
+      for (var i = 0; i < tokens.length - 1; i++) {
+        if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
+          tokens[i] += tokens[i + 2];
+          tokens.splice(i + 1, 2);
+          i--;
+        }
+      }
+      return tokens;
+    };
+    function diffWords(oldStr, newStr, options) {
+      options = /*istanbul ignore start*/
+      (0, /*istanbul ignore end*/
+      /*istanbul ignore start*/
+      _params.generateOptions)(options, {
+        ignoreWhitespace: true
+      });
+      return wordDiff.diff(oldStr, newStr, options);
+    }
+    function diffWordsWithSpace(oldStr, newStr, options) {
+      return wordDiff.diff(oldStr, newStr, options);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/line.js
+var require_line = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/line.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffLines = diffLines;
+    exports2.diffTrimmedLines = diffTrimmedLines;
+    exports2.lineDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    var _params = require_params();
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var lineDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.lineDiff = lineDiff;
+    lineDiff.tokenize = function(value) {
+      var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
+      if (!linesAndNewlines[linesAndNewlines.length - 1]) {
+        linesAndNewlines.pop();
+      }
+      for (var i = 0; i < linesAndNewlines.length; i++) {
+        var line = linesAndNewlines[i];
+        if (i % 2 && !this.options.newlineIsToken) {
+          retLines[retLines.length - 1] += line;
+        } else {
+          if (this.options.ignoreWhitespace) {
+            line = line.trim();
+          }
+          retLines.push(line);
+        }
+      }
+      return retLines;
+    };
+    function diffLines(oldStr, newStr, callback) {
+      return lineDiff.diff(oldStr, newStr, callback);
+    }
+    function diffTrimmedLines(oldStr, newStr, callback) {
+      var options = (
+        /*istanbul ignore start*/
+        (0, /*istanbul ignore end*/
+        /*istanbul ignore start*/
+        _params.generateOptions)(callback, {
+          ignoreWhitespace: true
+        })
+      );
+      return lineDiff.diff(oldStr, newStr, options);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/sentence.js
+var require_sentence = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/sentence.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffSentences = diffSentences;
+    exports2.sentenceDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var sentenceDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.sentenceDiff = sentenceDiff;
+    sentenceDiff.tokenize = function(value) {
+      return value.split(/(\S.+?[.!?])(?=\s+|$)/);
+    };
+    function diffSentences(oldStr, newStr, callback) {
+      return sentenceDiff.diff(oldStr, newStr, callback);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/css.js
+var require_css = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/css.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffCss = diffCss;
+    exports2.cssDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var cssDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.cssDiff = cssDiff;
+    cssDiff.tokenize = function(value) {
+      return value.split(/([{}:;,]|\s+)/);
+    };
+    function diffCss(oldStr, newStr, callback) {
+      return cssDiff.diff(oldStr, newStr, callback);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/json.js
+var require_json = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/json.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffJson = diffJson;
+    exports2.canonicalize = canonicalize;
+    exports2.jsonDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    var _line = require_line();
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    function _typeof(obj) {
+      "@babel/helpers - typeof";
+      if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+        _typeof = function _typeof2(obj2) {
+          return typeof obj2;
+        };
+      } else {
+        _typeof = function _typeof2(obj2) {
+          return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+        };
+      }
+      return _typeof(obj);
+    }
+    var objectPrototypeToString = Object.prototype.toString;
+    var jsonDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.jsonDiff = jsonDiff;
+    jsonDiff.useLongestToken = true;
+    jsonDiff.tokenize = /*istanbul ignore start*/
+    _line.lineDiff.tokenize;
+    jsonDiff.castInput = function(value) {
+      var _this$options = (
+        /*istanbul ignore end*/
+        this.options
+      ), undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) {
+        return (
+          /*istanbul ignore end*/
+          typeof v === "undefined" ? undefinedReplacement : v
+        );
+      } : _this$options$stringi;
+      return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, "  ");
+    };
+    jsonDiff.equals = function(left, right) {
+      return (
+        /*istanbul ignore start*/
+        _base[
+          /*istanbul ignore start*/
+          "default"
+          /*istanbul ignore end*/
+        ].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"))
+      );
+    };
+    function diffJson(oldObj, newObj, options) {
+      return jsonDiff.diff(oldObj, newObj, options);
+    }
+    function canonicalize(obj, stack, replacementStack, replacer2, key) {
+      stack = stack || [];
+      replacementStack = replacementStack || [];
+      if (replacer2) {
+        obj = replacer2(key, obj);
+      }
+      var i;
+      for (i = 0; i < stack.length; i += 1) {
+        if (stack[i] === obj) {
+          return replacementStack[i];
+        }
+      }
+      var canonicalizedObj;
+      if ("[object Array]" === objectPrototypeToString.call(obj)) {
+        stack.push(obj);
+        canonicalizedObj = new Array(obj.length);
+        replacementStack.push(canonicalizedObj);
+        for (i = 0; i < obj.length; i += 1) {
+          canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer2, key);
+        }
+        stack.pop();
+        replacementStack.pop();
+        return canonicalizedObj;
+      }
+      if (obj && obj.toJSON) {
+        obj = obj.toJSON();
+      }
+      if (
+        /*istanbul ignore start*/
+        _typeof(
+          /*istanbul ignore end*/
+          obj
+        ) === "object" && obj !== null
+      ) {
+        stack.push(obj);
+        canonicalizedObj = {};
+        replacementStack.push(canonicalizedObj);
+        var sortedKeys = [], _key;
+        for (_key in obj) {
+          if (obj.hasOwnProperty(_key)) {
+            sortedKeys.push(_key);
+          }
+        }
+        sortedKeys.sort();
+        for (i = 0; i < sortedKeys.length; i += 1) {
+          _key = sortedKeys[i];
+          canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer2, _key);
+        }
+        stack.pop();
+        replacementStack.pop();
+      } else {
+        canonicalizedObj = obj;
+      }
+      return canonicalizedObj;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/array.js
+var require_array = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/array.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.diffArrays = diffArrays;
+    exports2.arrayDiff = void 0;
+    var _base = _interopRequireDefault(require_base());
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    var arrayDiff = new /*istanbul ignore start*/
+    _base[
+      /*istanbul ignore start*/
+      "default"
+      /*istanbul ignore end*/
+    ]();
+    exports2.arrayDiff = arrayDiff;
+    arrayDiff.tokenize = function(value) {
+      return value.slice();
+    };
+    arrayDiff.join = arrayDiff.removeEmpty = function(value) {
+      return value;
+    };
+    function diffArrays(oldArr, newArr, callback) {
+      return arrayDiff.diff(oldArr, newArr, callback);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/parse.js
+var require_parse = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/parse.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.parsePatch = parsePatch;
+    function parsePatch(uniDiff) {
+      var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
+      var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], list = [], i = 0;
+      function parseIndex() {
+        var index = {};
+        list.push(index);
+        while (i < diffstr.length) {
+          var line = diffstr[i];
+          if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
+            break;
+          }
+          var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
+          if (header) {
+            index.index = header[1];
+          }
+          i++;
+        }
+        parseFileHeader(index);
+        parseFileHeader(index);
+        index.hunks = [];
+        while (i < diffstr.length) {
+          var _line = diffstr[i];
+          if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
+            break;
+          } else if (/^@@/.test(_line)) {
+            index.hunks.push(parseHunk());
+          } else if (_line && options.strict) {
+            throw new Error("Unknown line " + (i + 1) + " " + JSON.stringify(_line));
+          } else {
+            i++;
+          }
+        }
+      }
+      function parseFileHeader(index) {
+        var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
+        if (fileHeader) {
+          var keyPrefix = fileHeader[1] === "---" ? "old" : "new";
+          var data = fileHeader[2].split("	", 2);
+          var fileName = data[0].replace(/\\\\/g, "\\");
+          if (/^".*"$/.test(fileName)) {
+            fileName = fileName.substr(1, fileName.length - 2);
+          }
+          index[keyPrefix + "FileName"] = fileName;
+          index[keyPrefix + "Header"] = (data[1] || "").trim();
+          i++;
+        }
+      }
+      function parseHunk() {
+        var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
+        var hunk = {
+          oldStart: +chunkHeader[1],
+          oldLines: typeof chunkHeader[2] === "undefined" ? 1 : +chunkHeader[2],
+          newStart: +chunkHeader[3],
+          newLines: typeof chunkHeader[4] === "undefined" ? 1 : +chunkHeader[4],
+          lines: [],
+          linedelimiters: []
+        };
+        if (hunk.oldLines === 0) {
+          hunk.oldStart += 1;
+        }
+        if (hunk.newLines === 0) {
+          hunk.newStart += 1;
+        }
+        var addCount = 0, removeCount = 0;
+        for (; i < diffstr.length; i++) {
+          if (diffstr[i].indexOf("--- ") === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf("+++ ") === 0 && diffstr[i + 2].indexOf("@@") === 0) {
+            break;
+          }
+          var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? " " : diffstr[i][0];
+          if (operation === "+" || operation === "-" || operation === " " || operation === "\\") {
+            hunk.lines.push(diffstr[i]);
+            hunk.linedelimiters.push(delimiters[i] || "\n");
+            if (operation === "+") {
+              addCount++;
+            } else if (operation === "-") {
+              removeCount++;
+            } else if (operation === " ") {
+              addCount++;
+              removeCount++;
+            }
+          } else {
+            break;
+          }
+        }
+        if (!addCount && hunk.newLines === 1) {
+          hunk.newLines = 0;
+        }
+        if (!removeCount && hunk.oldLines === 1) {
+          hunk.oldLines = 0;
+        }
+        if (options.strict) {
+          if (addCount !== hunk.newLines) {
+            throw new Error("Added line count did not match for hunk at line " + (chunkHeaderIndex + 1));
+          }
+          if (removeCount !== hunk.oldLines) {
+            throw new Error("Removed line count did not match for hunk at line " + (chunkHeaderIndex + 1));
+          }
+        }
+        return hunk;
+      }
+      while (i < diffstr.length) {
+        parseIndex();
+      }
+      return list;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/distance-iterator.js
+var require_distance_iterator = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/distance-iterator.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2["default"] = _default2;
+    function _default2(start, minLine, maxLine) {
+      var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;
+      return function iterator() {
+        if (wantForward && !forwardExhausted) {
+          if (backwardExhausted) {
+            localOffset++;
+          } else {
+            wantForward = false;
+          }
+          if (start + localOffset <= maxLine) {
+            return localOffset;
+          }
+          forwardExhausted = true;
+        }
+        if (!backwardExhausted) {
+          if (!forwardExhausted) {
+            wantForward = true;
+          }
+          if (minLine <= start - localOffset) {
+            return -localOffset++;
+          }
+          backwardExhausted = true;
+          return iterator();
+        }
+      };
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/apply.js
+var require_apply = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/apply.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.applyPatch = applyPatch;
+    exports2.applyPatches = applyPatches;
+    var _parse = require_parse();
+    var _distanceIterator = _interopRequireDefault(require_distance_iterator());
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+    function applyPatch(source, uniDiff) {
+      var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
+      if (typeof uniDiff === "string") {
+        uniDiff = /*istanbul ignore start*/
+        (0, /*istanbul ignore end*/
+        /*istanbul ignore start*/
+        _parse.parsePatch)(uniDiff);
+      }
+      if (Array.isArray(uniDiff)) {
+        if (uniDiff.length > 1) {
+          throw new Error("applyPatch only works with a single input.");
+        }
+        uniDiff = uniDiff[0];
+      }
+      var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, compareLine = options.compareLine || function(lineNumber, line2, operation2, patchContent) {
+        return (
+          /*istanbul ignore end*/
+          line2 === patchContent
+        );
+      }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, minLine = 0, offset = 0, removeEOFNL, addEOFNL;
+      function hunkFits(hunk2, toPos2) {
+        for (var j2 = 0; j2 < hunk2.lines.length; j2++) {
+          var line2 = hunk2.lines[j2], operation2 = line2.length > 0 ? line2[0] : " ", content2 = line2.length > 0 ? line2.substr(1) : line2;
+          if (operation2 === " " || operation2 === "-") {
+            if (!compareLine(toPos2 + 1, lines[toPos2], operation2, content2)) {
+              errorCount++;
+              if (errorCount > fuzzFactor) {
+                return false;
+              }
+            }
+            toPos2++;
+          }
+        }
+        return true;
+      }
+      for (var i = 0; i < hunks.length; i++) {
+        var hunk = hunks[i], maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1;
+        var iterator = (
+          /*istanbul ignore start*/
+          (0, /*istanbul ignore end*/
+          /*istanbul ignore start*/
+          _distanceIterator[
+            /*istanbul ignore start*/
+            "default"
+            /*istanbul ignore end*/
+          ])(toPos, minLine, maxLine)
+        );
+        for (; localOffset !== void 0; localOffset = iterator()) {
+          if (hunkFits(hunk, toPos + localOffset)) {
+            hunk.offset = offset += localOffset;
+            break;
+          }
+        }
+        if (localOffset === void 0) {
+          return false;
+        }
+        minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
+      }
+      var diffOffset = 0;
+      for (var _i = 0; _i < hunks.length; _i++) {
+        var _hunk = hunks[_i], _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
+        diffOffset += _hunk.newLines - _hunk.oldLines;
+        for (var j = 0; j < _hunk.lines.length; j++) {
+          var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : " ", content = line.length > 0 ? line.substr(1) : line, delimiter = _hunk.linedelimiters[j];
+          if (operation === " ") {
+            _toPos++;
+          } else if (operation === "-") {
+            lines.splice(_toPos, 1);
+            delimiters.splice(_toPos, 1);
+          } else if (operation === "+") {
+            lines.splice(_toPos, 0, content);
+            delimiters.splice(_toPos, 0, delimiter);
+            _toPos++;
+          } else if (operation === "\\") {
+            var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
+            if (previousOperation === "+") {
+              removeEOFNL = true;
+            } else if (previousOperation === "-") {
+              addEOFNL = true;
+            }
+          }
+        }
+      }
+      if (removeEOFNL) {
+        while (!lines[lines.length - 1]) {
+          lines.pop();
+          delimiters.pop();
+        }
+      } else if (addEOFNL) {
+        lines.push("");
+        delimiters.push("\n");
+      }
+      for (var _k = 0; _k < lines.length - 1; _k++) {
+        lines[_k] = lines[_k] + delimiters[_k];
+      }
+      return lines.join("");
+    }
+    function applyPatches(uniDiff, options) {
+      if (typeof uniDiff === "string") {
+        uniDiff = /*istanbul ignore start*/
+        (0, /*istanbul ignore end*/
+        /*istanbul ignore start*/
+        _parse.parsePatch)(uniDiff);
+      }
+      var currentIndex = 0;
+      function processIndex() {
+        var index = uniDiff[currentIndex++];
+        if (!index) {
+          return options.complete();
+        }
+        options.loadFile(index, function(err, data) {
+          if (err) {
+            return options.complete(err);
+          }
+          var updatedContent = applyPatch(data, index, options);
+          options.patched(index, updatedContent, function(err2) {
+            if (err2) {
+              return options.complete(err2);
+            }
+            processIndex();
+          });
+        });
+      }
+      processIndex();
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/create.js
+var require_create = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/create.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.structuredPatch = structuredPatch;
+    exports2.formatPatch = formatPatch;
+    exports2.createTwoFilesPatch = createTwoFilesPatch;
+    exports2.createPatch = createPatch;
+    var _line = require_line();
+    function _toConsumableArray(arr) {
+      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+    }
+    function _nonIterableSpread() {
+      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+    }
+    function _unsupportedIterableToArray(o, minLen) {
+      if (!o)
+        return;
+      if (typeof o === "string")
+        return _arrayLikeToArray(o, minLen);
+      var n = Object.prototype.toString.call(o).slice(8, -1);
+      if (n === "Object" && o.constructor)
+        n = o.constructor.name;
+      if (n === "Map" || n === "Set")
+        return Array.from(o);
+      if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
+        return _arrayLikeToArray(o, minLen);
+    }
+    function _iterableToArray(iter) {
+      if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+        return Array.from(iter);
+    }
+    function _arrayWithoutHoles(arr) {
+      if (Array.isArray(arr))
+        return _arrayLikeToArray(arr);
+    }
+    function _arrayLikeToArray(arr, len) {
+      if (len == null || len > arr.length)
+        len = arr.length;
+      for (var i = 0, arr2 = new Array(len); i < len; i++) {
+        arr2[i] = arr[i];
+      }
+      return arr2;
+    }
+    function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
+      if (!options) {
+        options = {};
+      }
+      if (typeof options.context === "undefined") {
+        options.context = 4;
+      }
+      var diff = (
+        /*istanbul ignore start*/
+        (0, /*istanbul ignore end*/
+        /*istanbul ignore start*/
+        _line.diffLines)(oldStr, newStr, options)
+      );
+      diff.push({
+        value: "",
+        lines: []
+      });
+      function contextLines(lines) {
+        return lines.map(function(entry2) {
+          return " " + entry2;
+        });
+      }
+      var hunks = [];
+      var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
+      var _loop = function _loop2(i2) {
+        var current = diff[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n");
+        current.lines = lines;
+        if (current.added || current.removed) {
+          var _curRange;
+          if (!oldRangeStart) {
+            var prev = diff[i2 - 1];
+            oldRangeStart = oldLine;
+            newRangeStart = newLine;
+            if (prev) {
+              curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
+              oldRangeStart -= curRange.length;
+              newRangeStart -= curRange.length;
+            }
+          }
+          (_curRange = /*istanbul ignore end*/
+          curRange).push.apply(
+            /*istanbul ignore start*/
+            _curRange,
+            /*istanbul ignore start*/
+            _toConsumableArray(
+              /*istanbul ignore end*/
+              lines.map(function(entry2) {
+                return (current.added ? "+" : "-") + entry2;
+              })
+            )
+          );
+          if (current.added) {
+            newLine += lines.length;
+          } else {
+            oldLine += lines.length;
+          }
+        } else {
+          if (oldRangeStart) {
+            if (lines.length <= options.context * 2 && i2 < diff.length - 2) {
+              var _curRange2;
+              (_curRange2 = /*istanbul ignore end*/
+              curRange).push.apply(
+                /*istanbul ignore start*/
+                _curRange2,
+                /*istanbul ignore start*/
+                _toConsumableArray(
+                  /*istanbul ignore end*/
+                  contextLines(lines)
+                )
+              );
+            } else {
+              var _curRange3;
+              var contextSize = Math.min(lines.length, options.context);
+              (_curRange3 = /*istanbul ignore end*/
+              curRange).push.apply(
+                /*istanbul ignore start*/
+                _curRange3,
+                /*istanbul ignore start*/
+                _toConsumableArray(
+                  /*istanbul ignore end*/
+                  contextLines(lines.slice(0, contextSize))
+                )
+              );
+              var hunk = {
+                oldStart: oldRangeStart,
+                oldLines: oldLine - oldRangeStart + contextSize,
+                newStart: newRangeStart,
+                newLines: newLine - newRangeStart + contextSize,
+                lines: curRange
+              };
+              if (i2 >= diff.length - 2 && lines.length <= options.context) {
+                var oldEOFNewline = /\n$/.test(oldStr);
+                var newEOFNewline = /\n$/.test(newStr);
+                var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
+                if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
+                  curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file");
+                }
+                if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
+                  curRange.push("\\ No newline at end of file");
+                }
+              }
+              hunks.push(hunk);
+              oldRangeStart = 0;
+              newRangeStart = 0;
+              curRange = [];
+            }
+          }
+          oldLine += lines.length;
+          newLine += lines.length;
+        }
+      };
+      for (var i = 0; i < diff.length; i++) {
+        _loop(
+          /*istanbul ignore end*/
+          i
+        );
+      }
+      return {
+        oldFileName,
+        newFileName,
+        oldHeader,
+        newHeader,
+        hunks
+      };
+    }
+    function formatPatch(diff) {
+      var ret = [];
+      if (diff.oldFileName == diff.newFileName) {
+        ret.push("Index: " + diff.oldFileName);
+      }
+      ret.push("===================================================================");
+      ret.push("--- " + diff.oldFileName + (typeof diff.oldHeader === "undefined" ? "" : "	" + diff.oldHeader));
+      ret.push("+++ " + diff.newFileName + (typeof diff.newHeader === "undefined" ? "" : "	" + diff.newHeader));
+      for (var i = 0; i < diff.hunks.length; i++) {
+        var hunk = diff.hunks[i];
+        if (hunk.oldLines === 0) {
+          hunk.oldStart -= 1;
+        }
+        if (hunk.newLines === 0) {
+          hunk.newStart -= 1;
+        }
+        ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@");
+        ret.push.apply(ret, hunk.lines);
+      }
+      return ret.join("\n") + "\n";
+    }
+    function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
+      return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
+    }
+    function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
+      return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/array.js
+var require_array2 = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/array.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.arrayEqual = arrayEqual;
+    exports2.arrayStartsWith = arrayStartsWith;
+    function arrayEqual(a, b) {
+      if (a.length !== b.length) {
+        return false;
+      }
+      return arrayStartsWith(a, b);
+    }
+    function arrayStartsWith(array, start) {
+      if (start.length > array.length) {
+        return false;
+      }
+      for (var i = 0; i < start.length; i++) {
+        if (start[i] !== array[i]) {
+          return false;
+        }
+      }
+      return true;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/merge.js
+var require_merge = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/merge.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.calcLineCount = calcLineCount;
+    exports2.merge = merge2;
+    var _create = require_create();
+    var _parse = require_parse();
+    var _array = require_array2();
+    function _toConsumableArray(arr) {
+      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+    }
+    function _nonIterableSpread() {
+      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+    }
+    function _unsupportedIterableToArray(o, minLen) {
+      if (!o)
+        return;
+      if (typeof o === "string")
+        return _arrayLikeToArray(o, minLen);
+      var n = Object.prototype.toString.call(o).slice(8, -1);
+      if (n === "Object" && o.constructor)
+        n = o.constructor.name;
+      if (n === "Map" || n === "Set")
+        return Array.from(o);
+      if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
+        return _arrayLikeToArray(o, minLen);
+    }
+    function _iterableToArray(iter) {
+      if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+        return Array.from(iter);
+    }
+    function _arrayWithoutHoles(arr) {
+      if (Array.isArray(arr))
+        return _arrayLikeToArray(arr);
+    }
+    function _arrayLikeToArray(arr, len) {
+      if (len == null || len > arr.length)
+        len = arr.length;
+      for (var i = 0, arr2 = new Array(len); i < len; i++) {
+        arr2[i] = arr[i];
+      }
+      return arr2;
+    }
+    function calcLineCount(hunk) {
+      var _calcOldNewLineCount = (
+        /*istanbul ignore end*/
+        calcOldNewLineCount(hunk.lines)
+      ), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines;
+      if (oldLines !== void 0) {
+        hunk.oldLines = oldLines;
+      } else {
+        delete hunk.oldLines;
+      }
+      if (newLines !== void 0) {
+        hunk.newLines = newLines;
+      } else {
+        delete hunk.newLines;
+      }
+    }
+    function merge2(mine, theirs, base) {
+      mine = loadPatch(mine, base);
+      theirs = loadPatch(theirs, base);
+      var ret = {};
+      if (mine.index || theirs.index) {
+        ret.index = mine.index || theirs.index;
+      }
+      if (mine.newFileName || theirs.newFileName) {
+        if (!fileNameChanged(mine)) {
+          ret.oldFileName = theirs.oldFileName || mine.oldFileName;
+          ret.newFileName = theirs.newFileName || mine.newFileName;
+          ret.oldHeader = theirs.oldHeader || mine.oldHeader;
+          ret.newHeader = theirs.newHeader || mine.newHeader;
+        } else if (!fileNameChanged(theirs)) {
+          ret.oldFileName = mine.oldFileName;
+          ret.newFileName = mine.newFileName;
+          ret.oldHeader = mine.oldHeader;
+          ret.newHeader = mine.newHeader;
+        } else {
+          ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
+          ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
+          ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
+          ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
+        }
+      }
+      ret.hunks = [];
+      var mineIndex = 0, theirsIndex = 0, mineOffset = 0, theirsOffset = 0;
+      while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
+        var mineCurrent = mine.hunks[mineIndex] || {
+          oldStart: Infinity
+        }, theirsCurrent = theirs.hunks[theirsIndex] || {
+          oldStart: Infinity
+        };
+        if (hunkBefore(mineCurrent, theirsCurrent)) {
+          ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
+          mineIndex++;
+          theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
+        } else if (hunkBefore(theirsCurrent, mineCurrent)) {
+          ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
+          theirsIndex++;
+          mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
+        } else {
+          var mergedHunk = {
+            oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
+            oldLines: 0,
+            newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
+            newLines: 0,
+            lines: []
+          };
+          mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
+          theirsIndex++;
+          mineIndex++;
+          ret.hunks.push(mergedHunk);
+        }
+      }
+      return ret;
+    }
+    function loadPatch(param, base) {
+      if (typeof param === "string") {
+        if (/^@@/m.test(param) || /^Index:/m.test(param)) {
+          return (
+            /*istanbul ignore start*/
+            (0, /*istanbul ignore end*/
+            /*istanbul ignore start*/
+            _parse.parsePatch)(param)[0]
+          );
+        }
+        if (!base) {
+          throw new Error("Must provide a base reference or pass in a patch");
+        }
+        return (
+          /*istanbul ignore start*/
+          (0, /*istanbul ignore end*/
+          /*istanbul ignore start*/
+          _create.structuredPatch)(void 0, void 0, base, param)
+        );
+      }
+      return param;
+    }
+    function fileNameChanged(patch) {
+      return patch.newFileName && patch.newFileName !== patch.oldFileName;
+    }
+    function selectField(index, mine, theirs) {
+      if (mine === theirs) {
+        return mine;
+      } else {
+        index.conflict = true;
+        return {
+          mine,
+          theirs
+        };
+      }
+    }
+    function hunkBefore(test, check) {
+      return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
+    }
+    function cloneHunk(hunk, offset) {
+      return {
+        oldStart: hunk.oldStart,
+        oldLines: hunk.oldLines,
+        newStart: hunk.newStart + offset,
+        newLines: hunk.newLines,
+        lines: hunk.lines
+      };
+    }
+    function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
+      var mine = {
+        offset: mineOffset,
+        lines: mineLines,
+        index: 0
+      }, their = {
+        offset: theirOffset,
+        lines: theirLines,
+        index: 0
+      };
+      insertLeading(hunk, mine, their);
+      insertLeading(hunk, their, mine);
+      while (mine.index < mine.lines.length && their.index < their.lines.length) {
+        var mineCurrent = mine.lines[mine.index], theirCurrent = their.lines[their.index];
+        if ((mineCurrent[0] === "-" || mineCurrent[0] === "+") && (theirCurrent[0] === "-" || theirCurrent[0] === "+")) {
+          mutualChange(hunk, mine, their);
+        } else if (mineCurrent[0] === "+" && theirCurrent[0] === " ") {
+          var _hunk$lines;
+          (_hunk$lines = /*istanbul ignore end*/
+          hunk.lines).push.apply(
+            /*istanbul ignore start*/
+            _hunk$lines,
+            /*istanbul ignore start*/
+            _toConsumableArray(
+              /*istanbul ignore end*/
+              collectChange(mine)
+            )
+          );
+        } else if (theirCurrent[0] === "+" && mineCurrent[0] === " ") {
+          var _hunk$lines2;
+          (_hunk$lines2 = /*istanbul ignore end*/
+          hunk.lines).push.apply(
+            /*istanbul ignore start*/
+            _hunk$lines2,
+            /*istanbul ignore start*/
+            _toConsumableArray(
+              /*istanbul ignore end*/
+              collectChange(their)
+            )
+          );
+        } else if (mineCurrent[0] === "-" && theirCurrent[0] === " ") {
+          removal(hunk, mine, their);
+        } else if (theirCurrent[0] === "-" && mineCurrent[0] === " ") {
+          removal(hunk, their, mine, true);
+        } else if (mineCurrent === theirCurrent) {
+          hunk.lines.push(mineCurrent);
+          mine.index++;
+          their.index++;
+        } else {
+          conflict(hunk, collectChange(mine), collectChange(their));
+        }
+      }
+      insertTrailing(hunk, mine);
+      insertTrailing(hunk, their);
+      calcLineCount(hunk);
+    }
+    function mutualChange(hunk, mine, their) {
+      var myChanges = collectChange(mine), theirChanges = collectChange(their);
+      if (allRemoves(myChanges) && allRemoves(theirChanges)) {
+        if (
+          /*istanbul ignore start*/
+          (0, /*istanbul ignore end*/
+          /*istanbul ignore start*/
+          _array.arrayStartsWith)(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)
+        ) {
+          var _hunk$lines3;
+          (_hunk$lines3 = /*istanbul ignore end*/
+          hunk.lines).push.apply(
+            /*istanbul ignore start*/
+            _hunk$lines3,
+            /*istanbul ignore start*/
+            _toConsumableArray(
+              /*istanbul ignore end*/
+              myChanges
+            )
+          );
+          return;
+        } else if (
+          /*istanbul ignore start*/
+          (0, /*istanbul ignore end*/
+          /*istanbul ignore start*/
+          _array.arrayStartsWith)(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)
+        ) {
+          var _hunk$lines4;
+          (_hunk$lines4 = /*istanbul ignore end*/
+          hunk.lines).push.apply(
+            /*istanbul ignore start*/
+            _hunk$lines4,
+            /*istanbul ignore start*/
+            _toConsumableArray(
+              /*istanbul ignore end*/
+              theirChanges
+            )
+          );
+          return;
+        }
+      } else if (
+        /*istanbul ignore start*/
+        (0, /*istanbul ignore end*/
+        /*istanbul ignore start*/
+        _array.arrayEqual)(myChanges, theirChanges)
+      ) {
+        var _hunk$lines5;
+        (_hunk$lines5 = /*istanbul ignore end*/
+        hunk.lines).push.apply(
+          /*istanbul ignore start*/
+          _hunk$lines5,
+          /*istanbul ignore start*/
+          _toConsumableArray(
+            /*istanbul ignore end*/
+            myChanges
+          )
+        );
+        return;
+      }
+      conflict(hunk, myChanges, theirChanges);
+    }
+    function removal(hunk, mine, their, swap) {
+      var myChanges = collectChange(mine), theirChanges = collectContext(their, myChanges);
+      if (theirChanges.merged) {
+        var _hunk$lines6;
+        (_hunk$lines6 = /*istanbul ignore end*/
+        hunk.lines).push.apply(
+          /*istanbul ignore start*/
+          _hunk$lines6,
+          /*istanbul ignore start*/
+          _toConsumableArray(
+            /*istanbul ignore end*/
+            theirChanges.merged
+          )
+        );
+      } else {
+        conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
+      }
+    }
+    function conflict(hunk, mine, their) {
+      hunk.conflict = true;
+      hunk.lines.push({
+        conflict: true,
+        mine,
+        theirs: their
+      });
+    }
+    function insertLeading(hunk, insert, their) {
+      while (insert.offset < their.offset && insert.index < insert.lines.length) {
+        var line = insert.lines[insert.index++];
+        hunk.lines.push(line);
+        insert.offset++;
+      }
+    }
+    function insertTrailing(hunk, insert) {
+      while (insert.index < insert.lines.length) {
+        var line = insert.lines[insert.index++];
+        hunk.lines.push(line);
+      }
+    }
+    function collectChange(state) {
+      var ret = [], operation = state.lines[state.index][0];
+      while (state.index < state.lines.length) {
+        var line = state.lines[state.index];
+        if (operation === "-" && line[0] === "+") {
+          operation = "+";
+        }
+        if (operation === line[0]) {
+          ret.push(line);
+          state.index++;
+        } else {
+          break;
+        }
+      }
+      return ret;
+    }
+    function collectContext(state, matchChanges) {
+      var changes = [], merged = [], matchIndex = 0, contextChanges = false, conflicted = false;
+      while (matchIndex < matchChanges.length && state.index < state.lines.length) {
+        var change = state.lines[state.index], match2 = matchChanges[matchIndex];
+        if (match2[0] === "+") {
+          break;
+        }
+        contextChanges = contextChanges || change[0] !== " ";
+        merged.push(match2);
+        matchIndex++;
+        if (change[0] === "+") {
+          conflicted = true;
+          while (change[0] === "+") {
+            changes.push(change);
+            change = state.lines[++state.index];
+          }
+        }
+        if (match2.substr(1) === change.substr(1)) {
+          changes.push(change);
+          state.index++;
+        } else {
+          conflicted = true;
+        }
+      }
+      if ((matchChanges[matchIndex] || "")[0] === "+" && contextChanges) {
+        conflicted = true;
+      }
+      if (conflicted) {
+        return changes;
+      }
+      while (matchIndex < matchChanges.length) {
+        merged.push(matchChanges[matchIndex++]);
+      }
+      return {
+        merged,
+        changes
+      };
+    }
+    function allRemoves(changes) {
+      return changes.reduce(function(prev, change) {
+        return prev && change[0] === "-";
+      }, true);
+    }
+    function skipRemoveSuperset(state, removeChanges, delta) {
+      for (var i = 0; i < delta; i++) {
+        var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
+        if (state.lines[state.index + i] !== " " + changeContent) {
+          return false;
+        }
+      }
+      state.index += delta;
+      return true;
+    }
+    function calcOldNewLineCount(lines) {
+      var oldLines = 0;
+      var newLines = 0;
+      lines.forEach(function(line) {
+        if (typeof line !== "string") {
+          var myCount = calcOldNewLineCount(line.mine);
+          var theirCount = calcOldNewLineCount(line.theirs);
+          if (oldLines !== void 0) {
+            if (myCount.oldLines === theirCount.oldLines) {
+              oldLines += myCount.oldLines;
+            } else {
+              oldLines = void 0;
+            }
+          }
+          if (newLines !== void 0) {
+            if (myCount.newLines === theirCount.newLines) {
+              newLines += myCount.newLines;
+            } else {
+              newLines = void 0;
+            }
+          }
+        } else {
+          if (newLines !== void 0 && (line[0] === "+" || line[0] === " ")) {
+            newLines++;
+          }
+          if (oldLines !== void 0 && (line[0] === "-" || line[0] === " ")) {
+            oldLines++;
+          }
+        }
+      });
+      return {
+        oldLines,
+        newLines
+      };
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/dmp.js
+var require_dmp = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/dmp.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.convertChangesToDMP = convertChangesToDMP;
+    function convertChangesToDMP(changes) {
+      var ret = [], change, operation;
+      for (var i = 0; i < changes.length; i++) {
+        change = changes[i];
+        if (change.added) {
+          operation = 1;
+        } else if (change.removed) {
+          operation = -1;
+        } else {
+          operation = 0;
+        }
+        ret.push([operation, change.value]);
+      }
+      return ret;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/xml.js
+var require_xml = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/xml.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    exports2.convertChangesToXML = convertChangesToXML;
+    function convertChangesToXML(changes) {
+      var ret = [];
+      for (var i = 0; i < changes.length; i++) {
+        var change = changes[i];
+        if (change.added) {
+          ret.push("");
+        } else if (change.removed) {
+          ret.push("");
+        }
+        ret.push(escapeHTML(change.value));
+        if (change.added) {
+          ret.push("");
+        } else if (change.removed) {
+          ret.push("");
+        }
+      }
+      return ret.join("");
+    }
+    function escapeHTML(s) {
+      var n = s;
+      n = n.replace(/&/g, "&");
+      n = n.replace(//g, ">");
+      n = n.replace(/"/g, """);
+      return n;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/index.js
+var require_lib = __commonJS({
+  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/index.js"(exports2) {
+    "use strict";
+    Object.defineProperty(exports2, "__esModule", {
+      value: true
+    });
+    Object.defineProperty(exports2, "Diff", {
+      enumerable: true,
+      get: function get2() {
+        return _base["default"];
+      }
+    });
+    Object.defineProperty(exports2, "diffChars", {
+      enumerable: true,
+      get: function get2() {
+        return _character.diffChars;
+      }
+    });
+    Object.defineProperty(exports2, "diffWords", {
+      enumerable: true,
+      get: function get2() {
+        return _word.diffWords;
+      }
+    });
+    Object.defineProperty(exports2, "diffWordsWithSpace", {
+      enumerable: true,
+      get: function get2() {
+        return _word.diffWordsWithSpace;
+      }
+    });
+    Object.defineProperty(exports2, "diffLines", {
+      enumerable: true,
+      get: function get2() {
+        return _line.diffLines;
+      }
+    });
+    Object.defineProperty(exports2, "diffTrimmedLines", {
+      enumerable: true,
+      get: function get2() {
+        return _line.diffTrimmedLines;
+      }
+    });
+    Object.defineProperty(exports2, "diffSentences", {
+      enumerable: true,
+      get: function get2() {
+        return _sentence.diffSentences;
+      }
+    });
+    Object.defineProperty(exports2, "diffCss", {
+      enumerable: true,
+      get: function get2() {
+        return _css.diffCss;
+      }
+    });
+    Object.defineProperty(exports2, "diffJson", {
+      enumerable: true,
+      get: function get2() {
+        return _json.diffJson;
+      }
+    });
+    Object.defineProperty(exports2, "canonicalize", {
+      enumerable: true,
+      get: function get2() {
+        return _json.canonicalize;
+      }
+    });
+    Object.defineProperty(exports2, "diffArrays", {
+      enumerable: true,
+      get: function get2() {
+        return _array.diffArrays;
+      }
+    });
+    Object.defineProperty(exports2, "applyPatch", {
+      enumerable: true,
+      get: function get2() {
+        return _apply.applyPatch;
+      }
+    });
+    Object.defineProperty(exports2, "applyPatches", {
+      enumerable: true,
+      get: function get2() {
+        return _apply.applyPatches;
+      }
+    });
+    Object.defineProperty(exports2, "parsePatch", {
+      enumerable: true,
+      get: function get2() {
+        return _parse.parsePatch;
+      }
+    });
+    Object.defineProperty(exports2, "merge", {
+      enumerable: true,
+      get: function get2() {
+        return _merge.merge;
+      }
+    });
+    Object.defineProperty(exports2, "structuredPatch", {
+      enumerable: true,
+      get: function get2() {
+        return _create.structuredPatch;
+      }
+    });
+    Object.defineProperty(exports2, "createTwoFilesPatch", {
+      enumerable: true,
+      get: function get2() {
+        return _create.createTwoFilesPatch;
+      }
+    });
+    Object.defineProperty(exports2, "createPatch", {
+      enumerable: true,
+      get: function get2() {
+        return _create.createPatch;
+      }
+    });
+    Object.defineProperty(exports2, "convertChangesToDMP", {
+      enumerable: true,
+      get: function get2() {
+        return _dmp.convertChangesToDMP;
+      }
+    });
+    Object.defineProperty(exports2, "convertChangesToXML", {
+      enumerable: true,
+      get: function get2() {
+        return _xml.convertChangesToXML;
+      }
+    });
+    var _base = _interopRequireDefault(require_base());
+    var _character = require_character();
+    var _word = require_word();
+    var _line = require_line();
+    var _sentence = require_sentence();
+    var _css = require_css();
+    var _json = require_json();
+    var _array = require_array();
+    var _apply = require_apply();
+    var _parse = require_parse();
+    var _merge = require_merge();
+    var _create = require_create();
+    var _dmp = require_dmp();
+    var _xml = require_xml();
+    function _interopRequireDefault(obj) {
+      return obj && obj.__esModule ? obj : { "default": obj };
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
+var require_ms = __commonJS({
+  "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"(exports2, module2) {
+    var s = 1e3;
+    var m = s * 60;
+    var h = m * 60;
+    var d = h * 24;
+    var w = d * 7;
+    var y = d * 365.25;
+    module2.exports = function(val, options) {
+      options = options || {};
+      var type2 = typeof val;
+      if (type2 === "string" && val.length > 0) {
+        return parse(val);
+      } else if (type2 === "number" && isFinite(val)) {
+        return options.long ? fmtLong(val) : fmtShort(val);
+      }
+      throw new Error(
+        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
+      );
+    };
+    function parse(str2) {
+      str2 = String(str2);
+      if (str2.length > 100) {
+        return;
+      }
+      var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+        str2
+      );
+      if (!match2) {
+        return;
+      }
+      var n = parseFloat(match2[1]);
+      var type2 = (match2[2] || "ms").toLowerCase();
+      switch (type2) {
+        case "years":
+        case "year":
+        case "yrs":
+        case "yr":
+        case "y":
+          return n * y;
+        case "weeks":
+        case "week":
+        case "w":
+          return n * w;
+        case "days":
+        case "day":
+        case "d":
+          return n * d;
+        case "hours":
+        case "hour":
+        case "hrs":
+        case "hr":
+        case "h":
+          return n * h;
+        case "minutes":
+        case "minute":
+        case "mins":
+        case "min":
+        case "m":
+          return n * m;
+        case "seconds":
+        case "second":
+        case "secs":
+        case "sec":
+        case "s":
+          return n * s;
+        case "milliseconds":
+        case "millisecond":
+        case "msecs":
+        case "msec":
+        case "ms":
+          return n;
+        default:
+          return void 0;
+      }
+    }
+    function fmtShort(ms) {
+      var msAbs = Math.abs(ms);
+      if (msAbs >= d) {
+        return Math.round(ms / d) + "d";
+      }
+      if (msAbs >= h) {
+        return Math.round(ms / h) + "h";
+      }
+      if (msAbs >= m) {
+        return Math.round(ms / m) + "m";
+      }
+      if (msAbs >= s) {
+        return Math.round(ms / s) + "s";
+      }
+      return ms + "ms";
+    }
+    function fmtLong(ms) {
+      var msAbs = Math.abs(ms);
+      if (msAbs >= d) {
+        return plural(ms, msAbs, d, "day");
+      }
+      if (msAbs >= h) {
+        return plural(ms, msAbs, h, "hour");
+      }
+      if (msAbs >= m) {
+        return plural(ms, msAbs, m, "minute");
+      }
+      if (msAbs >= s) {
+        return plural(ms, msAbs, s, "second");
+      }
+      return ms + " ms";
+    }
+    function plural(ms, msAbs, n, name) {
+      var isPlural = msAbs >= n * 1.5;
+      return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js
+var require_he = __commonJS({
+  "../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js"(exports2, module2) {
+    (function(root) {
+      var freeExports = typeof exports2 == "object" && exports2;
+      var freeModule = typeof module2 == "object" && module2 && module2.exports == freeExports && module2;
+      var freeGlobal = typeof global == "object" && global;
+      if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
+        root = freeGlobal;
+      }
+      var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+      var regexAsciiWhitelist = /[\x01-\x7F]/g;
+      var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
+      var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
+      var encodeMap = { "\xAD": "shy", "\u200C": "zwnj", "\u200D": "zwj", "\u200E": "lrm", "\u2063": "ic", "\u2062": "it", "\u2061": "af", "\u200F": "rlm", "\u200B": "ZeroWidthSpace", "\u2060": "NoBreak", "\u0311": "DownBreve", "\u20DB": "tdot", "\u20DC": "DotDot", "	": "Tab", "\n": "NewLine", "\u2008": "puncsp", "\u205F": "MediumSpace", "\u2009": "thinsp", "\u200A": "hairsp", "\u2004": "emsp13", "\u2002": "ensp", "\u2005": "emsp14", "\u2003": "emsp", "\u2007": "numsp", "\xA0": "nbsp", "\u205F\u200A": "ThickSpace", "\u203E": "oline", "_": "lowbar", "\u2010": "dash", "\u2013": "ndash", "\u2014": "mdash", "\u2015": "horbar", ",": "comma", ";": "semi", "\u204F": "bsemi", ":": "colon", "\u2A74": "Colone", "!": "excl", "\xA1": "iexcl", "?": "quest", "\xBF": "iquest", ".": "period", "\u2025": "nldr", "\u2026": "mldr", "\xB7": "middot", "'": "apos", "\u2018": "lsquo", "\u2019": "rsquo", "\u201A": "sbquo", "\u2039": "lsaquo", "\u203A": "rsaquo", '"': "quot", "\u201C": "ldquo", "\u201D": "rdquo", "\u201E": "bdquo", "\xAB": "laquo", "\xBB": "raquo", "(": "lpar", ")": "rpar", "[": "lsqb", "]": "rsqb", "{": "lcub", "}": "rcub", "\u2308": "lceil", "\u2309": "rceil", "\u230A": "lfloor", "\u230B": "rfloor", "\u2985": "lopar", "\u2986": "ropar", "\u298B": "lbrke", "\u298C": "rbrke", "\u298D": "lbrkslu", "\u298E": "rbrksld", "\u298F": "lbrksld", "\u2990": "rbrkslu", "\u2991": "langd", "\u2992": "rangd", "\u2993": "lparlt", "\u2994": "rpargt", "\u2995": "gtlPar", "\u2996": "ltrPar", "\u27E6": "lobrk", "\u27E7": "robrk", "\u27E8": "lang", "\u27E9": "rang", "\u27EA": "Lang", "\u27EB": "Rang", "\u27EC": "loang", "\u27ED": "roang", "\u2772": "lbbrk", "\u2773": "rbbrk", "\u2016": "Vert", "\xA7": "sect", "\xB6": "para", "@": "commat", "*": "ast", "/": "sol", "undefined": null, "&": "amp", "#": "num", "%": "percnt", "\u2030": "permil", "\u2031": "pertenk", "\u2020": "dagger", "\u2021": "Dagger", "\u2022": "bull", "\u2043": "hybull", "\u2032": "prime", "\u2033": "Prime", "\u2034": "tprime", "\u2057": "qprime", "\u2035": "bprime", "\u2041": "caret", "`": "grave", "\xB4": "acute", "\u02DC": "tilde", "^": "Hat", "\xAF": "macr", "\u02D8": "breve", "\u02D9": "dot", "\xA8": "die", "\u02DA": "ring", "\u02DD": "dblac", "\xB8": "cedil", "\u02DB": "ogon", "\u02C6": "circ", "\u02C7": "caron", "\xB0": "deg", "\xA9": "copy", "\xAE": "reg", "\u2117": "copysr", "\u2118": "wp", "\u211E": "rx", "\u2127": "mho", "\u2129": "iiota", "\u2190": "larr", "\u219A": "nlarr", "\u2192": "rarr", "\u219B": "nrarr", "\u2191": "uarr", "\u2193": "darr", "\u2194": "harr", "\u21AE": "nharr", "\u2195": "varr", "\u2196": "nwarr", "\u2197": "nearr", "\u2198": "searr", "\u2199": "swarr", "\u219D": "rarrw", "\u219D\u0338": "nrarrw", "\u219E": "Larr", "\u219F": "Uarr", "\u21A0": "Rarr", "\u21A1": "Darr", "\u21A2": "larrtl", "\u21A3": "rarrtl", "\u21A4": "mapstoleft", "\u21A5": "mapstoup", "\u21A6": "map", "\u21A7": "mapstodown", "\u21A9": "larrhk", "\u21AA": "rarrhk", "\u21AB": "larrlp", "\u21AC": "rarrlp", "\u21AD": "harrw", "\u21B0": "lsh", "\u21B1": "rsh", "\u21B2": "ldsh", "\u21B3": "rdsh", "\u21B5": "crarr", "\u21B6": "cularr", "\u21B7": "curarr", "\u21BA": "olarr", "\u21BB": "orarr", "\u21BC": "lharu", "\u21BD": "lhard", "\u21BE": "uharr", "\u21BF": "uharl", "\u21C0": "rharu", "\u21C1": "rhard", "\u21C2": "dharr", "\u21C3": "dharl", "\u21C4": "rlarr", "\u21C5": "udarr", "\u21C6": "lrarr", "\u21C7": "llarr", "\u21C8": "uuarr", "\u21C9": "rrarr", "\u21CA": "ddarr", "\u21CB": "lrhar", "\u21CC": "rlhar", "\u21D0": "lArr", "\u21CD": "nlArr", "\u21D1": "uArr", "\u21D2": "rArr", "\u21CF": "nrArr", "\u21D3": "dArr", "\u21D4": "iff", "\u21CE": "nhArr", "\u21D5": "vArr", "\u21D6": "nwArr", "\u21D7": "neArr", "\u21D8": "seArr", "\u21D9": "swArr", "\u21DA": "lAarr", "\u21DB": "rAarr", "\u21DD": "zigrarr", "\u21E4": "larrb", "\u21E5": "rarrb", "\u21F5": "duarr", "\u21FD": "loarr", "\u21FE": "roarr", "\u21FF": "hoarr", "\u2200": "forall", "\u2201": "comp", "\u2202": "part", "\u2202\u0338": "npart", "\u2203": "exist", "\u2204": "nexist", "\u2205": "empty", "\u2207": "Del", "\u2208": "in", "\u2209": "notin", "\u220B": "ni", "\u220C": "notni", "\u03F6": "bepsi", "\u220F": "prod", "\u2210": "coprod", "\u2211": "sum", "+": "plus", "\xB1": "pm", "\xF7": "div", "\xD7": "times", "<": "lt", "\u226E": "nlt", "<\u20D2": "nvlt", "=": "equals", "\u2260": "ne", "=\u20E5": "bne", "\u2A75": "Equal", ">": "gt", "\u226F": "ngt", ">\u20D2": "nvgt", "\xAC": "not", "|": "vert", "\xA6": "brvbar", "\u2212": "minus", "\u2213": "mp", "\u2214": "plusdo", "\u2044": "frasl", "\u2216": "setmn", "\u2217": "lowast", "\u2218": "compfn", "\u221A": "Sqrt", "\u221D": "prop", "\u221E": "infin", "\u221F": "angrt", "\u2220": "ang", "\u2220\u20D2": "nang", "\u2221": "angmsd", "\u2222": "angsph", "\u2223": "mid", "\u2224": "nmid", "\u2225": "par", "\u2226": "npar", "\u2227": "and", "\u2228": "or", "\u2229": "cap", "\u2229\uFE00": "caps", "\u222A": "cup", "\u222A\uFE00": "cups", "\u222B": "int", "\u222C": "Int", "\u222D": "tint", "\u2A0C": "qint", "\u222E": "oint", "\u222F": "Conint", "\u2230": "Cconint", "\u2231": "cwint", "\u2232": "cwconint", "\u2233": "awconint", "\u2234": "there4", "\u2235": "becaus", "\u2236": "ratio", "\u2237": "Colon", "\u2238": "minusd", "\u223A": "mDDot", "\u223B": "homtht", "\u223C": "sim", "\u2241": "nsim", "\u223C\u20D2": "nvsim", "\u223D": "bsim", "\u223D\u0331": "race", "\u223E": "ac", "\u223E\u0333": "acE", "\u223F": "acd", "\u2240": "wr", "\u2242": "esim", "\u2242\u0338": "nesim", "\u2243": "sime", "\u2244": "nsime", "\u2245": "cong", "\u2247": "ncong", "\u2246": "simne", "\u2248": "ap", "\u2249": "nap", "\u224A": "ape", "\u224B": "apid", "\u224B\u0338": "napid", "\u224C": "bcong", "\u224D": "CupCap", "\u226D": "NotCupCap", "\u224D\u20D2": "nvap", "\u224E": "bump", "\u224E\u0338": "nbump", "\u224F": "bumpe", "\u224F\u0338": "nbumpe", "\u2250": "doteq", "\u2250\u0338": "nedot", "\u2251": "eDot", "\u2252": "efDot", "\u2253": "erDot", "\u2254": "colone", "\u2255": "ecolon", "\u2256": "ecir", "\u2257": "cire", "\u2259": "wedgeq", "\u225A": "veeeq", "\u225C": "trie", "\u225F": "equest", "\u2261": "equiv", "\u2262": "nequiv", "\u2261\u20E5": "bnequiv", "\u2264": "le", "\u2270": "nle", "\u2264\u20D2": "nvle", "\u2265": "ge", "\u2271": "nge", "\u2265\u20D2": "nvge", "\u2266": "lE", "\u2266\u0338": "nlE", "\u2267": "gE", "\u2267\u0338": "ngE", "\u2268\uFE00": "lvnE", "\u2268": "lnE", "\u2269": "gnE", "\u2269\uFE00": "gvnE", "\u226A": "ll", "\u226A\u0338": "nLtv", "\u226A\u20D2": "nLt", "\u226B": "gg", "\u226B\u0338": "nGtv", "\u226B\u20D2": "nGt", "\u226C": "twixt", "\u2272": "lsim", "\u2274": "nlsim", "\u2273": "gsim", "\u2275": "ngsim", "\u2276": "lg", "\u2278": "ntlg", "\u2277": "gl", "\u2279": "ntgl", "\u227A": "pr", "\u2280": "npr", "\u227B": "sc", "\u2281": "nsc", "\u227C": "prcue", "\u22E0": "nprcue", "\u227D": "sccue", "\u22E1": "nsccue", "\u227E": "prsim", "\u227F": "scsim", "\u227F\u0338": "NotSucceedsTilde", "\u2282": "sub", "\u2284": "nsub", "\u2282\u20D2": "vnsub", "\u2283": "sup", "\u2285": "nsup", "\u2283\u20D2": "vnsup", "\u2286": "sube", "\u2288": "nsube", "\u2287": "supe", "\u2289": "nsupe", "\u228A\uFE00": "vsubne", "\u228A": "subne", "\u228B\uFE00": "vsupne", "\u228B": "supne", "\u228D": "cupdot", "\u228E": "uplus", "\u228F": "sqsub", "\u228F\u0338": "NotSquareSubset", "\u2290": "sqsup", "\u2290\u0338": "NotSquareSuperset", "\u2291": "sqsube", "\u22E2": "nsqsube", "\u2292": "sqsupe", "\u22E3": "nsqsupe", "\u2293": "sqcap", "\u2293\uFE00": "sqcaps", "\u2294": "sqcup", "\u2294\uFE00": "sqcups", "\u2295": "oplus", "\u2296": "ominus", "\u2297": "otimes", "\u2298": "osol", "\u2299": "odot", "\u229A": "ocir", "\u229B": "oast", "\u229D": "odash", "\u229E": "plusb", "\u229F": "minusb", "\u22A0": "timesb", "\u22A1": "sdotb", "\u22A2": "vdash", "\u22AC": "nvdash", "\u22A3": "dashv", "\u22A4": "top", "\u22A5": "bot", "\u22A7": "models", "\u22A8": "vDash", "\u22AD": "nvDash", "\u22A9": "Vdash", "\u22AE": "nVdash", "\u22AA": "Vvdash", "\u22AB": "VDash", "\u22AF": "nVDash", "\u22B0": "prurel", "\u22B2": "vltri", "\u22EA": "nltri", "\u22B3": "vrtri", "\u22EB": "nrtri", "\u22B4": "ltrie", "\u22EC": "nltrie", "\u22B4\u20D2": "nvltrie", "\u22B5": "rtrie", "\u22ED": "nrtrie", "\u22B5\u20D2": "nvrtrie", "\u22B6": "origof", "\u22B7": "imof", "\u22B8": "mumap", "\u22B9": "hercon", "\u22BA": "intcal", "\u22BB": "veebar", "\u22BD": "barvee", "\u22BE": "angrtvb", "\u22BF": "lrtri", "\u22C0": "Wedge", "\u22C1": "Vee", "\u22C2": "xcap", "\u22C3": "xcup", "\u22C4": "diam", "\u22C5": "sdot", "\u22C6": "Star", "\u22C7": "divonx", "\u22C8": "bowtie", "\u22C9": "ltimes", "\u22CA": "rtimes", "\u22CB": "lthree", "\u22CC": "rthree", "\u22CD": "bsime", "\u22CE": "cuvee", "\u22CF": "cuwed", "\u22D0": "Sub", "\u22D1": "Sup", "\u22D2": "Cap", "\u22D3": "Cup", "\u22D4": "fork", "\u22D5": "epar", "\u22D6": "ltdot", "\u22D7": "gtdot", "\u22D8": "Ll", "\u22D8\u0338": "nLl", "\u22D9": "Gg", "\u22D9\u0338": "nGg", "\u22DA\uFE00": "lesg", "\u22DA": "leg", "\u22DB": "gel", "\u22DB\uFE00": "gesl", "\u22DE": "cuepr", "\u22DF": "cuesc", "\u22E6": "lnsim", "\u22E7": "gnsim", "\u22E8": "prnsim", "\u22E9": "scnsim", "\u22EE": "vellip", "\u22EF": "ctdot", "\u22F0": "utdot", "\u22F1": "dtdot", "\u22F2": "disin", "\u22F3": "isinsv", "\u22F4": "isins", "\u22F5": "isindot", "\u22F5\u0338": "notindot", "\u22F6": "notinvc", "\u22F7": "notinvb", "\u22F9": "isinE", "\u22F9\u0338": "notinE", "\u22FA": "nisd", "\u22FB": "xnis", "\u22FC": "nis", "\u22FD": "notnivc", "\u22FE": "notnivb", "\u2305": "barwed", "\u2306": "Barwed", "\u230C": "drcrop", "\u230D": "dlcrop", "\u230E": "urcrop", "\u230F": "ulcrop", "\u2310": "bnot", "\u2312": "profline", "\u2313": "profsurf", "\u2315": "telrec", "\u2316": "target", "\u231C": "ulcorn", "\u231D": "urcorn", "\u231E": "dlcorn", "\u231F": "drcorn", "\u2322": "frown", "\u2323": "smile", "\u232D": "cylcty", "\u232E": "profalar", "\u2336": "topbot", "\u233D": "ovbar", "\u233F": "solbar", "\u237C": "angzarr", "\u23B0": "lmoust", "\u23B1": "rmoust", "\u23B4": "tbrk", "\u23B5": "bbrk", "\u23B6": "bbrktbrk", "\u23DC": "OverParenthesis", "\u23DD": "UnderParenthesis", "\u23DE": "OverBrace", "\u23DF": "UnderBrace", "\u23E2": "trpezium", "\u23E7": "elinters", "\u2423": "blank", "\u2500": "boxh", "\u2502": "boxv", "\u250C": "boxdr", "\u2510": "boxdl", "\u2514": "boxur", "\u2518": "boxul", "\u251C": "boxvr", "\u2524": "boxvl", "\u252C": "boxhd", "\u2534": "boxhu", "\u253C": "boxvh", "\u2550": "boxH", "\u2551": "boxV", "\u2552": "boxdR", "\u2553": "boxDr", "\u2554": "boxDR", "\u2555": "boxdL", "\u2556": "boxDl", "\u2557": "boxDL", "\u2558": "boxuR", "\u2559": "boxUr", "\u255A": "boxUR", "\u255B": "boxuL", "\u255C": "boxUl", "\u255D": "boxUL", "\u255E": "boxvR", "\u255F": "boxVr", "\u2560": "boxVR", "\u2561": "boxvL", "\u2562": "boxVl", "\u2563": "boxVL", "\u2564": "boxHd", "\u2565": "boxhD", "\u2566": "boxHD", "\u2567": "boxHu", "\u2568": "boxhU", "\u2569": "boxHU", "\u256A": "boxvH", "\u256B": "boxVh", "\u256C": "boxVH", "\u2580": "uhblk", "\u2584": "lhblk", "\u2588": "block", "\u2591": "blk14", "\u2592": "blk12", "\u2593": "blk34", "\u25A1": "squ", "\u25AA": "squf", "\u25AB": "EmptyVerySmallSquare", "\u25AD": "rect", "\u25AE": "marker", "\u25B1": "fltns", "\u25B3": "xutri", "\u25B4": "utrif", "\u25B5": "utri", "\u25B8": "rtrif", "\u25B9": "rtri", "\u25BD": "xdtri", "\u25BE": "dtrif", "\u25BF": "dtri", "\u25C2": "ltrif", "\u25C3": "ltri", "\u25CA": "loz", "\u25CB": "cir", "\u25EC": "tridot", "\u25EF": "xcirc", "\u25F8": "ultri", "\u25F9": "urtri", "\u25FA": "lltri", "\u25FB": "EmptySmallSquare", "\u25FC": "FilledSmallSquare", "\u2605": "starf", "\u2606": "star", "\u260E": "phone", "\u2640": "female", "\u2642": "male", "\u2660": "spades", "\u2663": "clubs", "\u2665": "hearts", "\u2666": "diams", "\u266A": "sung", "\u2713": "check", "\u2717": "cross", "\u2720": "malt", "\u2736": "sext", "\u2758": "VerticalSeparator", "\u27C8": "bsolhsub", "\u27C9": "suphsol", "\u27F5": "xlarr", "\u27F6": "xrarr", "\u27F7": "xharr", "\u27F8": "xlArr", "\u27F9": "xrArr", "\u27FA": "xhArr", "\u27FC": "xmap", "\u27FF": "dzigrarr", "\u2902": "nvlArr", "\u2903": "nvrArr", "\u2904": "nvHarr", "\u2905": "Map", "\u290C": "lbarr", "\u290D": "rbarr", "\u290E": "lBarr", "\u290F": "rBarr", "\u2910": "RBarr", "\u2911": "DDotrahd", "\u2912": "UpArrowBar", "\u2913": "DownArrowBar", "\u2916": "Rarrtl", "\u2919": "latail", "\u291A": "ratail", "\u291B": "lAtail", "\u291C": "rAtail", "\u291D": "larrfs", "\u291E": "rarrfs", "\u291F": "larrbfs", "\u2920": "rarrbfs", "\u2923": "nwarhk", "\u2924": "nearhk", "\u2925": "searhk", "\u2926": "swarhk", "\u2927": "nwnear", "\u2928": "toea", "\u2929": "tosa", "\u292A": "swnwar", "\u2933": "rarrc", "\u2933\u0338": "nrarrc", "\u2935": "cudarrr", "\u2936": "ldca", "\u2937": "rdca", "\u2938": "cudarrl", "\u2939": "larrpl", "\u293C": "curarrm", "\u293D": "cularrp", "\u2945": "rarrpl", "\u2948": "harrcir", "\u2949": "Uarrocir", "\u294A": "lurdshar", "\u294B": "ldrushar", "\u294E": "LeftRightVector", "\u294F": "RightUpDownVector", "\u2950": "DownLeftRightVector", "\u2951": "LeftUpDownVector", "\u2952": "LeftVectorBar", "\u2953": "RightVectorBar", "\u2954": "RightUpVectorBar", "\u2955": "RightDownVectorBar", "\u2956": "DownLeftVectorBar", "\u2957": "DownRightVectorBar", "\u2958": "LeftUpVectorBar", "\u2959": "LeftDownVectorBar", "\u295A": "LeftTeeVector", "\u295B": "RightTeeVector", "\u295C": "RightUpTeeVector", "\u295D": "RightDownTeeVector", "\u295E": "DownLeftTeeVector", "\u295F": "DownRightTeeVector", "\u2960": "LeftUpTeeVector", "\u2961": "LeftDownTeeVector", "\u2962": "lHar", "\u2963": "uHar", "\u2964": "rHar", "\u2965": "dHar", "\u2966": "luruhar", "\u2967": "ldrdhar", "\u2968": "ruluhar", "\u2969": "rdldhar", "\u296A": "lharul", "\u296B": "llhard", "\u296C": "rharul", "\u296D": "lrhard", "\u296E": "udhar", "\u296F": "duhar", "\u2970": "RoundImplies", "\u2971": "erarr", "\u2972": "simrarr", "\u2973": "larrsim", "\u2974": "rarrsim", "\u2975": "rarrap", "\u2976": "ltlarr", "\u2978": "gtrarr", "\u2979": "subrarr", "\u297B": "suplarr", "\u297C": "lfisht", "\u297D": "rfisht", "\u297E": "ufisht", "\u297F": "dfisht", "\u299A": "vzigzag", "\u299C": "vangrt", "\u299D": "angrtvbd", "\u29A4": "ange", "\u29A5": "range", "\u29A6": "dwangle", "\u29A7": "uwangle", "\u29A8": "angmsdaa", "\u29A9": "angmsdab", "\u29AA": "angmsdac", "\u29AB": "angmsdad", "\u29AC": "angmsdae", "\u29AD": "angmsdaf", "\u29AE": "angmsdag", "\u29AF": "angmsdah", "\u29B0": "bemptyv", "\u29B1": "demptyv", "\u29B2": "cemptyv", "\u29B3": "raemptyv", "\u29B4": "laemptyv", "\u29B5": "ohbar", "\u29B6": "omid", "\u29B7": "opar", "\u29B9": "operp", "\u29BB": "olcross", "\u29BC": "odsold", "\u29BE": "olcir", "\u29BF": "ofcir", "\u29C0": "olt", "\u29C1": "ogt", "\u29C2": "cirscir", "\u29C3": "cirE", "\u29C4": "solb", "\u29C5": "bsolb", "\u29C9": "boxbox", "\u29CD": "trisb", "\u29CE": "rtriltri", "\u29CF": "LeftTriangleBar", "\u29CF\u0338": "NotLeftTriangleBar", "\u29D0": "RightTriangleBar", "\u29D0\u0338": "NotRightTriangleBar", "\u29DC": "iinfin", "\u29DD": "infintie", "\u29DE": "nvinfin", "\u29E3": "eparsl", "\u29E4": "smeparsl", "\u29E5": "eqvparsl", "\u29EB": "lozf", "\u29F4": "RuleDelayed", "\u29F6": "dsol", "\u2A00": "xodot", "\u2A01": "xoplus", "\u2A02": "xotime", "\u2A04": "xuplus", "\u2A06": "xsqcup", "\u2A0D": "fpartint", "\u2A10": "cirfnint", "\u2A11": "awint", "\u2A12": "rppolint", "\u2A13": "scpolint", "\u2A14": "npolint", "\u2A15": "pointint", "\u2A16": "quatint", "\u2A17": "intlarhk", "\u2A22": "pluscir", "\u2A23": "plusacir", "\u2A24": "simplus", "\u2A25": "plusdu", "\u2A26": "plussim", "\u2A27": "plustwo", "\u2A29": "mcomma", "\u2A2A": "minusdu", "\u2A2D": "loplus", "\u2A2E": "roplus", "\u2A2F": "Cross", "\u2A30": "timesd", "\u2A31": "timesbar", "\u2A33": "smashp", "\u2A34": "lotimes", "\u2A35": "rotimes", "\u2A36": "otimesas", "\u2A37": "Otimes", "\u2A38": "odiv", "\u2A39": "triplus", "\u2A3A": "triminus", "\u2A3B": "tritime", "\u2A3C": "iprod", "\u2A3F": "amalg", "\u2A40": "capdot", "\u2A42": "ncup", "\u2A43": "ncap", "\u2A44": "capand", "\u2A45": "cupor", "\u2A46": "cupcap", "\u2A47": "capcup", "\u2A48": "cupbrcap", "\u2A49": "capbrcup", "\u2A4A": "cupcup", "\u2A4B": "capcap", "\u2A4C": "ccups", "\u2A4D": "ccaps", "\u2A50": "ccupssm", "\u2A53": "And", "\u2A54": "Or", "\u2A55": "andand", "\u2A56": "oror", "\u2A57": "orslope", "\u2A58": "andslope", "\u2A5A": "andv", "\u2A5B": "orv", "\u2A5C": "andd", "\u2A5D": "ord", "\u2A5F": "wedbar", "\u2A66": "sdote", "\u2A6A": "simdot", "\u2A6D": "congdot", "\u2A6D\u0338": "ncongdot", "\u2A6E": "easter", "\u2A6F": "apacir", "\u2A70": "apE", "\u2A70\u0338": "napE", "\u2A71": "eplus", "\u2A72": "pluse", "\u2A73": "Esim", "\u2A77": "eDDot", "\u2A78": "equivDD", "\u2A79": "ltcir", "\u2A7A": "gtcir", "\u2A7B": "ltquest", "\u2A7C": "gtquest", "\u2A7D": "les", "\u2A7D\u0338": "nles", "\u2A7E": "ges", "\u2A7E\u0338": "nges", "\u2A7F": "lesdot", "\u2A80": "gesdot", "\u2A81": "lesdoto", "\u2A82": "gesdoto", "\u2A83": "lesdotor", "\u2A84": "gesdotol", "\u2A85": "lap", "\u2A86": "gap", "\u2A87": "lne", "\u2A88": "gne", "\u2A89": "lnap", "\u2A8A": "gnap", "\u2A8B": "lEg", "\u2A8C": "gEl", "\u2A8D": "lsime", "\u2A8E": "gsime", "\u2A8F": "lsimg", "\u2A90": "gsiml", "\u2A91": "lgE", "\u2A92": "glE", "\u2A93": "lesges", "\u2A94": "gesles", "\u2A95": "els", "\u2A96": "egs", "\u2A97": "elsdot", "\u2A98": "egsdot", "\u2A99": "el", "\u2A9A": "eg", "\u2A9D": "siml", "\u2A9E": "simg", "\u2A9F": "simlE", "\u2AA0": "simgE", "\u2AA1": "LessLess", "\u2AA1\u0338": "NotNestedLessLess", "\u2AA2": "GreaterGreater", "\u2AA2\u0338": "NotNestedGreaterGreater", "\u2AA4": "glj", "\u2AA5": "gla", "\u2AA6": "ltcc", "\u2AA7": "gtcc", "\u2AA8": "lescc", "\u2AA9": "gescc", "\u2AAA": "smt", "\u2AAB": "lat", "\u2AAC": "smte", "\u2AAC\uFE00": "smtes", "\u2AAD": "late", "\u2AAD\uFE00": "lates", "\u2AAE": "bumpE", "\u2AAF": "pre", "\u2AAF\u0338": "npre", "\u2AB0": "sce", "\u2AB0\u0338": "nsce", "\u2AB3": "prE", "\u2AB4": "scE", "\u2AB5": "prnE", "\u2AB6": "scnE", "\u2AB7": "prap", "\u2AB8": "scap", "\u2AB9": "prnap", "\u2ABA": "scnap", "\u2ABB": "Pr", "\u2ABC": "Sc", "\u2ABD": "subdot", "\u2ABE": "supdot", "\u2ABF": "subplus", "\u2AC0": "supplus", "\u2AC1": "submult", "\u2AC2": "supmult", "\u2AC3": "subedot", "\u2AC4": "supedot", "\u2AC5": "subE", "\u2AC5\u0338": "nsubE", "\u2AC6": "supE", "\u2AC6\u0338": "nsupE", "\u2AC7": "subsim", "\u2AC8": "supsim", "\u2ACB\uFE00": "vsubnE", "\u2ACB": "subnE", "\u2ACC\uFE00": "vsupnE", "\u2ACC": "supnE", "\u2ACF": "csub", "\u2AD0": "csup", "\u2AD1": "csube", "\u2AD2": "csupe", "\u2AD3": "subsup", "\u2AD4": "supsub", "\u2AD5": "subsub", "\u2AD6": "supsup", "\u2AD7": "suphsub", "\u2AD8": "supdsub", "\u2AD9": "forkv", "\u2ADA": "topfork", "\u2ADB": "mlcp", "\u2AE4": "Dashv", "\u2AE6": "Vdashl", "\u2AE7": "Barv", "\u2AE8": "vBar", "\u2AE9": "vBarv", "\u2AEB": "Vbar", "\u2AEC": "Not", "\u2AED": "bNot", "\u2AEE": "rnmid", "\u2AEF": "cirmid", "\u2AF0": "midcir", "\u2AF1": "topcir", "\u2AF2": "nhpar", "\u2AF3": "parsim", "\u2AFD": "parsl", "\u2AFD\u20E5": "nparsl", "\u266D": "flat", "\u266E": "natur", "\u266F": "sharp", "\xA4": "curren", "\xA2": "cent", "$": "dollar", "\xA3": "pound", "\xA5": "yen", "\u20AC": "euro", "\xB9": "sup1", "\xBD": "half", "\u2153": "frac13", "\xBC": "frac14", "\u2155": "frac15", "\u2159": "frac16", "\u215B": "frac18", "\xB2": "sup2", "\u2154": "frac23", "\u2156": "frac25", "\xB3": "sup3", "\xBE": "frac34", "\u2157": "frac35", "\u215C": "frac38", "\u2158": "frac45", "\u215A": "frac56", "\u215D": "frac58", "\u215E": "frac78", "\u{1D4B6}": "ascr", "\u{1D552}": "aopf", "\u{1D51E}": "afr", "\u{1D538}": "Aopf", "\u{1D504}": "Afr", "\u{1D49C}": "Ascr", "\xAA": "ordf", "\xE1": "aacute", "\xC1": "Aacute", "\xE0": "agrave", "\xC0": "Agrave", "\u0103": "abreve", "\u0102": "Abreve", "\xE2": "acirc", "\xC2": "Acirc", "\xE5": "aring", "\xC5": "angst", "\xE4": "auml", "\xC4": "Auml", "\xE3": "atilde", "\xC3": "Atilde", "\u0105": "aogon", "\u0104": "Aogon", "\u0101": "amacr", "\u0100": "Amacr", "\xE6": "aelig", "\xC6": "AElig", "\u{1D4B7}": "bscr", "\u{1D553}": "bopf", "\u{1D51F}": "bfr", "\u{1D539}": "Bopf", "\u212C": "Bscr", "\u{1D505}": "Bfr", "\u{1D520}": "cfr", "\u{1D4B8}": "cscr", "\u{1D554}": "copf", "\u212D": "Cfr", "\u{1D49E}": "Cscr", "\u2102": "Copf", "\u0107": "cacute", "\u0106": "Cacute", "\u0109": "ccirc", "\u0108": "Ccirc", "\u010D": "ccaron", "\u010C": "Ccaron", "\u010B": "cdot", "\u010A": "Cdot", "\xE7": "ccedil", "\xC7": "Ccedil", "\u2105": "incare", "\u{1D521}": "dfr", "\u2146": "dd", "\u{1D555}": "dopf", "\u{1D4B9}": "dscr", "\u{1D49F}": "Dscr", "\u{1D507}": "Dfr", "\u2145": "DD", "\u{1D53B}": "Dopf", "\u010F": "dcaron", "\u010E": "Dcaron", "\u0111": "dstrok", "\u0110": "Dstrok", "\xF0": "eth", "\xD0": "ETH", "\u2147": "ee", "\u212F": "escr", "\u{1D522}": "efr", "\u{1D556}": "eopf", "\u2130": "Escr", "\u{1D508}": "Efr", "\u{1D53C}": "Eopf", "\xE9": "eacute", "\xC9": "Eacute", "\xE8": "egrave", "\xC8": "Egrave", "\xEA": "ecirc", "\xCA": "Ecirc", "\u011B": "ecaron", "\u011A": "Ecaron", "\xEB": "euml", "\xCB": "Euml", "\u0117": "edot", "\u0116": "Edot", "\u0119": "eogon", "\u0118": "Eogon", "\u0113": "emacr", "\u0112": "Emacr", "\u{1D523}": "ffr", "\u{1D557}": "fopf", "\u{1D4BB}": "fscr", "\u{1D509}": "Ffr", "\u{1D53D}": "Fopf", "\u2131": "Fscr", "\uFB00": "fflig", "\uFB03": "ffilig", "\uFB04": "ffllig", "\uFB01": "filig", "fj": "fjlig", "\uFB02": "fllig", "\u0192": "fnof", "\u210A": "gscr", "\u{1D558}": "gopf", "\u{1D524}": "gfr", "\u{1D4A2}": "Gscr", "\u{1D53E}": "Gopf", "\u{1D50A}": "Gfr", "\u01F5": "gacute", "\u011F": "gbreve", "\u011E": "Gbreve", "\u011D": "gcirc", "\u011C": "Gcirc", "\u0121": "gdot", "\u0120": "Gdot", "\u0122": "Gcedil", "\u{1D525}": "hfr", "\u210E": "planckh", "\u{1D4BD}": "hscr", "\u{1D559}": "hopf", "\u210B": "Hscr", "\u210C": "Hfr", "\u210D": "Hopf", "\u0125": "hcirc", "\u0124": "Hcirc", "\u210F": "hbar", "\u0127": "hstrok", "\u0126": "Hstrok", "\u{1D55A}": "iopf", "\u{1D526}": "ifr", "\u{1D4BE}": "iscr", "\u2148": "ii", "\u{1D540}": "Iopf", "\u2110": "Iscr", "\u2111": "Im", "\xED": "iacute", "\xCD": "Iacute", "\xEC": "igrave", "\xCC": "Igrave", "\xEE": "icirc", "\xCE": "Icirc", "\xEF": "iuml", "\xCF": "Iuml", "\u0129": "itilde", "\u0128": "Itilde", "\u0130": "Idot", "\u012F": "iogon", "\u012E": "Iogon", "\u012B": "imacr", "\u012A": "Imacr", "\u0133": "ijlig", "\u0132": "IJlig", "\u0131": "imath", "\u{1D4BF}": "jscr", "\u{1D55B}": "jopf", "\u{1D527}": "jfr", "\u{1D4A5}": "Jscr", "\u{1D50D}": "Jfr", "\u{1D541}": "Jopf", "\u0135": "jcirc", "\u0134": "Jcirc", "\u0237": "jmath", "\u{1D55C}": "kopf", "\u{1D4C0}": "kscr", "\u{1D528}": "kfr", "\u{1D4A6}": "Kscr", "\u{1D542}": "Kopf", "\u{1D50E}": "Kfr", "\u0137": "kcedil", "\u0136": "Kcedil", "\u{1D529}": "lfr", "\u{1D4C1}": "lscr", "\u2113": "ell", "\u{1D55D}": "lopf", "\u2112": "Lscr", "\u{1D50F}": "Lfr", "\u{1D543}": "Lopf", "\u013A": "lacute", "\u0139": "Lacute", "\u013E": "lcaron", "\u013D": "Lcaron", "\u013C": "lcedil", "\u013B": "Lcedil", "\u0142": "lstrok", "\u0141": "Lstrok", "\u0140": "lmidot", "\u013F": "Lmidot", "\u{1D52A}": "mfr", "\u{1D55E}": "mopf", "\u{1D4C2}": "mscr", "\u{1D510}": "Mfr", "\u{1D544}": "Mopf", "\u2133": "Mscr", "\u{1D52B}": "nfr", "\u{1D55F}": "nopf", "\u{1D4C3}": "nscr", "\u2115": "Nopf", "\u{1D4A9}": "Nscr", "\u{1D511}": "Nfr", "\u0144": "nacute", "\u0143": "Nacute", "\u0148": "ncaron", "\u0147": "Ncaron", "\xF1": "ntilde", "\xD1": "Ntilde", "\u0146": "ncedil", "\u0145": "Ncedil", "\u2116": "numero", "\u014B": "eng", "\u014A": "ENG", "\u{1D560}": "oopf", "\u{1D52C}": "ofr", "\u2134": "oscr", "\u{1D4AA}": "Oscr", "\u{1D512}": "Ofr", "\u{1D546}": "Oopf", "\xBA": "ordm", "\xF3": "oacute", "\xD3": "Oacute", "\xF2": "ograve", "\xD2": "Ograve", "\xF4": "ocirc", "\xD4": "Ocirc", "\xF6": "ouml", "\xD6": "Ouml", "\u0151": "odblac", "\u0150": "Odblac", "\xF5": "otilde", "\xD5": "Otilde", "\xF8": "oslash", "\xD8": "Oslash", "\u014D": "omacr", "\u014C": "Omacr", "\u0153": "oelig", "\u0152": "OElig", "\u{1D52D}": "pfr", "\u{1D4C5}": "pscr", "\u{1D561}": "popf", "\u2119": "Popf", "\u{1D513}": "Pfr", "\u{1D4AB}": "Pscr", "\u{1D562}": "qopf", "\u{1D52E}": "qfr", "\u{1D4C6}": "qscr", "\u{1D4AC}": "Qscr", "\u{1D514}": "Qfr", "\u211A": "Qopf", "\u0138": "kgreen", "\u{1D52F}": "rfr", "\u{1D563}": "ropf", "\u{1D4C7}": "rscr", "\u211B": "Rscr", "\u211C": "Re", "\u211D": "Ropf", "\u0155": "racute", "\u0154": "Racute", "\u0159": "rcaron", "\u0158": "Rcaron", "\u0157": "rcedil", "\u0156": "Rcedil", "\u{1D564}": "sopf", "\u{1D4C8}": "sscr", "\u{1D530}": "sfr", "\u{1D54A}": "Sopf", "\u{1D516}": "Sfr", "\u{1D4AE}": "Sscr", "\u24C8": "oS", "\u015B": "sacute", "\u015A": "Sacute", "\u015D": "scirc", "\u015C": "Scirc", "\u0161": "scaron", "\u0160": "Scaron", "\u015F": "scedil", "\u015E": "Scedil", "\xDF": "szlig", "\u{1D531}": "tfr", "\u{1D4C9}": "tscr", "\u{1D565}": "topf", "\u{1D4AF}": "Tscr", "\u{1D517}": "Tfr", "\u{1D54B}": "Topf", "\u0165": "tcaron", "\u0164": "Tcaron", "\u0163": "tcedil", "\u0162": "Tcedil", "\u2122": "trade", "\u0167": "tstrok", "\u0166": "Tstrok", "\u{1D4CA}": "uscr", "\u{1D566}": "uopf", "\u{1D532}": "ufr", "\u{1D54C}": "Uopf", "\u{1D518}": "Ufr", "\u{1D4B0}": "Uscr", "\xFA": "uacute", "\xDA": "Uacute", "\xF9": "ugrave", "\xD9": "Ugrave", "\u016D": "ubreve", "\u016C": "Ubreve", "\xFB": "ucirc", "\xDB": "Ucirc", "\u016F": "uring", "\u016E": "Uring", "\xFC": "uuml", "\xDC": "Uuml", "\u0171": "udblac", "\u0170": "Udblac", "\u0169": "utilde", "\u0168": "Utilde", "\u0173": "uogon", "\u0172": "Uogon", "\u016B": "umacr", "\u016A": "Umacr", "\u{1D533}": "vfr", "\u{1D567}": "vopf", "\u{1D4CB}": "vscr", "\u{1D519}": "Vfr", "\u{1D54D}": "Vopf", "\u{1D4B1}": "Vscr", "\u{1D568}": "wopf", "\u{1D4CC}": "wscr", "\u{1D534}": "wfr", "\u{1D4B2}": "Wscr", "\u{1D54E}": "Wopf", "\u{1D51A}": "Wfr", "\u0175": "wcirc", "\u0174": "Wcirc", "\u{1D535}": "xfr", "\u{1D4CD}": "xscr", "\u{1D569}": "xopf", "\u{1D54F}": "Xopf", "\u{1D51B}": "Xfr", "\u{1D4B3}": "Xscr", "\u{1D536}": "yfr", "\u{1D4CE}": "yscr", "\u{1D56A}": "yopf", "\u{1D4B4}": "Yscr", "\u{1D51C}": "Yfr", "\u{1D550}": "Yopf", "\xFD": "yacute", "\xDD": "Yacute", "\u0177": "ycirc", "\u0176": "Ycirc", "\xFF": "yuml", "\u0178": "Yuml", "\u{1D4CF}": "zscr", "\u{1D537}": "zfr", "\u{1D56B}": "zopf", "\u2128": "Zfr", "\u2124": "Zopf", "\u{1D4B5}": "Zscr", "\u017A": "zacute", "\u0179": "Zacute", "\u017E": "zcaron", "\u017D": "Zcaron", "\u017C": "zdot", "\u017B": "Zdot", "\u01B5": "imped", "\xFE": "thorn", "\xDE": "THORN", "\u0149": "napos", "\u03B1": "alpha", "\u0391": "Alpha", "\u03B2": "beta", "\u0392": "Beta", "\u03B3": "gamma", "\u0393": "Gamma", "\u03B4": "delta", "\u0394": "Delta", "\u03B5": "epsi", "\u03F5": "epsiv", "\u0395": "Epsilon", "\u03DD": "gammad", "\u03DC": "Gammad", "\u03B6": "zeta", "\u0396": "Zeta", "\u03B7": "eta", "\u0397": "Eta", "\u03B8": "theta", "\u03D1": "thetav", "\u0398": "Theta", "\u03B9": "iota", "\u0399": "Iota", "\u03BA": "kappa", "\u03F0": "kappav", "\u039A": "Kappa", "\u03BB": "lambda", "\u039B": "Lambda", "\u03BC": "mu", "\xB5": "micro", "\u039C": "Mu", "\u03BD": "nu", "\u039D": "Nu", "\u03BE": "xi", "\u039E": "Xi", "\u03BF": "omicron", "\u039F": "Omicron", "\u03C0": "pi", "\u03D6": "piv", "\u03A0": "Pi", "\u03C1": "rho", "\u03F1": "rhov", "\u03A1": "Rho", "\u03C3": "sigma", "\u03A3": "Sigma", "\u03C2": "sigmaf", "\u03C4": "tau", "\u03A4": "Tau", "\u03C5": "upsi", "\u03A5": "Upsilon", "\u03D2": "Upsi", "\u03C6": "phi", "\u03D5": "phiv", "\u03A6": "Phi", "\u03C7": "chi", "\u03A7": "Chi", "\u03C8": "psi", "\u03A8": "Psi", "\u03C9": "omega", "\u03A9": "ohm", "\u0430": "acy", "\u0410": "Acy", "\u0431": "bcy", "\u0411": "Bcy", "\u0432": "vcy", "\u0412": "Vcy", "\u0433": "gcy", "\u0413": "Gcy", "\u0453": "gjcy", "\u0403": "GJcy", "\u0434": "dcy", "\u0414": "Dcy", "\u0452": "djcy", "\u0402": "DJcy", "\u0435": "iecy", "\u0415": "IEcy", "\u0451": "iocy", "\u0401": "IOcy", "\u0454": "jukcy", "\u0404": "Jukcy", "\u0436": "zhcy", "\u0416": "ZHcy", "\u0437": "zcy", "\u0417": "Zcy", "\u0455": "dscy", "\u0405": "DScy", "\u0438": "icy", "\u0418": "Icy", "\u0456": "iukcy", "\u0406": "Iukcy", "\u0457": "yicy", "\u0407": "YIcy", "\u0439": "jcy", "\u0419": "Jcy", "\u0458": "jsercy", "\u0408": "Jsercy", "\u043A": "kcy", "\u041A": "Kcy", "\u045C": "kjcy", "\u040C": "KJcy", "\u043B": "lcy", "\u041B": "Lcy", "\u0459": "ljcy", "\u0409": "LJcy", "\u043C": "mcy", "\u041C": "Mcy", "\u043D": "ncy", "\u041D": "Ncy", "\u045A": "njcy", "\u040A": "NJcy", "\u043E": "ocy", "\u041E": "Ocy", "\u043F": "pcy", "\u041F": "Pcy", "\u0440": "rcy", "\u0420": "Rcy", "\u0441": "scy", "\u0421": "Scy", "\u0442": "tcy", "\u0422": "Tcy", "\u045B": "tshcy", "\u040B": "TSHcy", "\u0443": "ucy", "\u0423": "Ucy", "\u045E": "ubrcy", "\u040E": "Ubrcy", "\u0444": "fcy", "\u0424": "Fcy", "\u0445": "khcy", "\u0425": "KHcy", "\u0446": "tscy", "\u0426": "TScy", "\u0447": "chcy", "\u0427": "CHcy", "\u045F": "dzcy", "\u040F": "DZcy", "\u0448": "shcy", "\u0428": "SHcy", "\u0449": "shchcy", "\u0429": "SHCHcy", "\u044A": "hardcy", "\u042A": "HARDcy", "\u044B": "ycy", "\u042B": "Ycy", "\u044C": "softcy", "\u042C": "SOFTcy", "\u044D": "ecy", "\u042D": "Ecy", "\u044E": "yucy", "\u042E": "YUcy", "\u044F": "yacy", "\u042F": "YAcy", "\u2135": "aleph", "\u2136": "beth", "\u2137": "gimel", "\u2138": "daleth" };
+      var regexEscape = /["&'<>`]/g;
+      var escapeMap = {
+        '"': """,
+        "&": "&",
+        "'": "'",
+        "<": "<",
+        // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
+        // following is not strictly necessary unless it’s part of a tag or an
+        // unquoted attribute value. We’re only escaping it to support those
+        // situations, and for XML support.
+        ">": ">",
+        // In Internet Explorer ≤ 8, the backtick character can be used
+        // to break out of (un)quoted attribute values or HTML comments.
+        // See http://html5sec.org/#102, http://html5sec.org/#108, and
+        // http://html5sec.org/#133.
+        "`": "`"
+      };
+      var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
+      var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+      var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
+      var decodeMap = { "aacute": "\xE1", "Aacute": "\xC1", "abreve": "\u0103", "Abreve": "\u0102", "ac": "\u223E", "acd": "\u223F", "acE": "\u223E\u0333", "acirc": "\xE2", "Acirc": "\xC2", "acute": "\xB4", "acy": "\u0430", "Acy": "\u0410", "aelig": "\xE6", "AElig": "\xC6", "af": "\u2061", "afr": "\u{1D51E}", "Afr": "\u{1D504}", "agrave": "\xE0", "Agrave": "\xC0", "alefsym": "\u2135", "aleph": "\u2135", "alpha": "\u03B1", "Alpha": "\u0391", "amacr": "\u0101", "Amacr": "\u0100", "amalg": "\u2A3F", "amp": "&", "AMP": "&", "and": "\u2227", "And": "\u2A53", "andand": "\u2A55", "andd": "\u2A5C", "andslope": "\u2A58", "andv": "\u2A5A", "ang": "\u2220", "ange": "\u29A4", "angle": "\u2220", "angmsd": "\u2221", "angmsdaa": "\u29A8", "angmsdab": "\u29A9", "angmsdac": "\u29AA", "angmsdad": "\u29AB", "angmsdae": "\u29AC", "angmsdaf": "\u29AD", "angmsdag": "\u29AE", "angmsdah": "\u29AF", "angrt": "\u221F", "angrtvb": "\u22BE", "angrtvbd": "\u299D", "angsph": "\u2222", "angst": "\xC5", "angzarr": "\u237C", "aogon": "\u0105", "Aogon": "\u0104", "aopf": "\u{1D552}", "Aopf": "\u{1D538}", "ap": "\u2248", "apacir": "\u2A6F", "ape": "\u224A", "apE": "\u2A70", "apid": "\u224B", "apos": "'", "ApplyFunction": "\u2061", "approx": "\u2248", "approxeq": "\u224A", "aring": "\xE5", "Aring": "\xC5", "ascr": "\u{1D4B6}", "Ascr": "\u{1D49C}", "Assign": "\u2254", "ast": "*", "asymp": "\u2248", "asympeq": "\u224D", "atilde": "\xE3", "Atilde": "\xC3", "auml": "\xE4", "Auml": "\xC4", "awconint": "\u2233", "awint": "\u2A11", "backcong": "\u224C", "backepsilon": "\u03F6", "backprime": "\u2035", "backsim": "\u223D", "backsimeq": "\u22CD", "Backslash": "\u2216", "Barv": "\u2AE7", "barvee": "\u22BD", "barwed": "\u2305", "Barwed": "\u2306", "barwedge": "\u2305", "bbrk": "\u23B5", "bbrktbrk": "\u23B6", "bcong": "\u224C", "bcy": "\u0431", "Bcy": "\u0411", "bdquo": "\u201E", "becaus": "\u2235", "because": "\u2235", "Because": "\u2235", "bemptyv": "\u29B0", "bepsi": "\u03F6", "bernou": "\u212C", "Bernoullis": "\u212C", "beta": "\u03B2", "Beta": "\u0392", "beth": "\u2136", "between": "\u226C", "bfr": "\u{1D51F}", "Bfr": "\u{1D505}", "bigcap": "\u22C2", "bigcirc": "\u25EF", "bigcup": "\u22C3", "bigodot": "\u2A00", "bigoplus": "\u2A01", "bigotimes": "\u2A02", "bigsqcup": "\u2A06", "bigstar": "\u2605", "bigtriangledown": "\u25BD", "bigtriangleup": "\u25B3", "biguplus": "\u2A04", "bigvee": "\u22C1", "bigwedge": "\u22C0", "bkarow": "\u290D", "blacklozenge": "\u29EB", "blacksquare": "\u25AA", "blacktriangle": "\u25B4", "blacktriangledown": "\u25BE", "blacktriangleleft": "\u25C2", "blacktriangleright": "\u25B8", "blank": "\u2423", "blk12": "\u2592", "blk14": "\u2591", "blk34": "\u2593", "block": "\u2588", "bne": "=\u20E5", "bnequiv": "\u2261\u20E5", "bnot": "\u2310", "bNot": "\u2AED", "bopf": "\u{1D553}", "Bopf": "\u{1D539}", "bot": "\u22A5", "bottom": "\u22A5", "bowtie": "\u22C8", "boxbox": "\u29C9", "boxdl": "\u2510", "boxdL": "\u2555", "boxDl": "\u2556", "boxDL": "\u2557", "boxdr": "\u250C", "boxdR": "\u2552", "boxDr": "\u2553", "boxDR": "\u2554", "boxh": "\u2500", "boxH": "\u2550", "boxhd": "\u252C", "boxhD": "\u2565", "boxHd": "\u2564", "boxHD": "\u2566", "boxhu": "\u2534", "boxhU": "\u2568", "boxHu": "\u2567", "boxHU": "\u2569", "boxminus": "\u229F", "boxplus": "\u229E", "boxtimes": "\u22A0", "boxul": "\u2518", "boxuL": "\u255B", "boxUl": "\u255C", "boxUL": "\u255D", "boxur": "\u2514", "boxuR": "\u2558", "boxUr": "\u2559", "boxUR": "\u255A", "boxv": "\u2502", "boxV": "\u2551", "boxvh": "\u253C", "boxvH": "\u256A", "boxVh": "\u256B", "boxVH": "\u256C", "boxvl": "\u2524", "boxvL": "\u2561", "boxVl": "\u2562", "boxVL": "\u2563", "boxvr": "\u251C", "boxvR": "\u255E", "boxVr": "\u255F", "boxVR": "\u2560", "bprime": "\u2035", "breve": "\u02D8", "Breve": "\u02D8", "brvbar": "\xA6", "bscr": "\u{1D4B7}", "Bscr": "\u212C", "bsemi": "\u204F", "bsim": "\u223D", "bsime": "\u22CD", "bsol": "\\", "bsolb": "\u29C5", "bsolhsub": "\u27C8", "bull": "\u2022", "bullet": "\u2022", "bump": "\u224E", "bumpe": "\u224F", "bumpE": "\u2AAE", "bumpeq": "\u224F", "Bumpeq": "\u224E", "cacute": "\u0107", "Cacute": "\u0106", "cap": "\u2229", "Cap": "\u22D2", "capand": "\u2A44", "capbrcup": "\u2A49", "capcap": "\u2A4B", "capcup": "\u2A47", "capdot": "\u2A40", "CapitalDifferentialD": "\u2145", "caps": "\u2229\uFE00", "caret": "\u2041", "caron": "\u02C7", "Cayleys": "\u212D", "ccaps": "\u2A4D", "ccaron": "\u010D", "Ccaron": "\u010C", "ccedil": "\xE7", "Ccedil": "\xC7", "ccirc": "\u0109", "Ccirc": "\u0108", "Cconint": "\u2230", "ccups": "\u2A4C", "ccupssm": "\u2A50", "cdot": "\u010B", "Cdot": "\u010A", "cedil": "\xB8", "Cedilla": "\xB8", "cemptyv": "\u29B2", "cent": "\xA2", "centerdot": "\xB7", "CenterDot": "\xB7", "cfr": "\u{1D520}", "Cfr": "\u212D", "chcy": "\u0447", "CHcy": "\u0427", "check": "\u2713", "checkmark": "\u2713", "chi": "\u03C7", "Chi": "\u03A7", "cir": "\u25CB", "circ": "\u02C6", "circeq": "\u2257", "circlearrowleft": "\u21BA", "circlearrowright": "\u21BB", "circledast": "\u229B", "circledcirc": "\u229A", "circleddash": "\u229D", "CircleDot": "\u2299", "circledR": "\xAE", "circledS": "\u24C8", "CircleMinus": "\u2296", "CirclePlus": "\u2295", "CircleTimes": "\u2297", "cire": "\u2257", "cirE": "\u29C3", "cirfnint": "\u2A10", "cirmid": "\u2AEF", "cirscir": "\u29C2", "ClockwiseContourIntegral": "\u2232", "CloseCurlyDoubleQuote": "\u201D", "CloseCurlyQuote": "\u2019", "clubs": "\u2663", "clubsuit": "\u2663", "colon": ":", "Colon": "\u2237", "colone": "\u2254", "Colone": "\u2A74", "coloneq": "\u2254", "comma": ",", "commat": "@", "comp": "\u2201", "compfn": "\u2218", "complement": "\u2201", "complexes": "\u2102", "cong": "\u2245", "congdot": "\u2A6D", "Congruent": "\u2261", "conint": "\u222E", "Conint": "\u222F", "ContourIntegral": "\u222E", "copf": "\u{1D554}", "Copf": "\u2102", "coprod": "\u2210", "Coproduct": "\u2210", "copy": "\xA9", "COPY": "\xA9", "copysr": "\u2117", "CounterClockwiseContourIntegral": "\u2233", "crarr": "\u21B5", "cross": "\u2717", "Cross": "\u2A2F", "cscr": "\u{1D4B8}", "Cscr": "\u{1D49E}", "csub": "\u2ACF", "csube": "\u2AD1", "csup": "\u2AD0", "csupe": "\u2AD2", "ctdot": "\u22EF", "cudarrl": "\u2938", "cudarrr": "\u2935", "cuepr": "\u22DE", "cuesc": "\u22DF", "cularr": "\u21B6", "cularrp": "\u293D", "cup": "\u222A", "Cup": "\u22D3", "cupbrcap": "\u2A48", "cupcap": "\u2A46", "CupCap": "\u224D", "cupcup": "\u2A4A", "cupdot": "\u228D", "cupor": "\u2A45", "cups": "\u222A\uFE00", "curarr": "\u21B7", "curarrm": "\u293C", "curlyeqprec": "\u22DE", "curlyeqsucc": "\u22DF", "curlyvee": "\u22CE", "curlywedge": "\u22CF", "curren": "\xA4", "curvearrowleft": "\u21B6", "curvearrowright": "\u21B7", "cuvee": "\u22CE", "cuwed": "\u22CF", "cwconint": "\u2232", "cwint": "\u2231", "cylcty": "\u232D", "dagger": "\u2020", "Dagger": "\u2021", "daleth": "\u2138", "darr": "\u2193", "dArr": "\u21D3", "Darr": "\u21A1", "dash": "\u2010", "dashv": "\u22A3", "Dashv": "\u2AE4", "dbkarow": "\u290F", "dblac": "\u02DD", "dcaron": "\u010F", "Dcaron": "\u010E", "dcy": "\u0434", "Dcy": "\u0414", "dd": "\u2146", "DD": "\u2145", "ddagger": "\u2021", "ddarr": "\u21CA", "DDotrahd": "\u2911", "ddotseq": "\u2A77", "deg": "\xB0", "Del": "\u2207", "delta": "\u03B4", "Delta": "\u0394", "demptyv": "\u29B1", "dfisht": "\u297F", "dfr": "\u{1D521}", "Dfr": "\u{1D507}", "dHar": "\u2965", "dharl": "\u21C3", "dharr": "\u21C2", "DiacriticalAcute": "\xB4", "DiacriticalDot": "\u02D9", "DiacriticalDoubleAcute": "\u02DD", "DiacriticalGrave": "`", "DiacriticalTilde": "\u02DC", "diam": "\u22C4", "diamond": "\u22C4", "Diamond": "\u22C4", "diamondsuit": "\u2666", "diams": "\u2666", "die": "\xA8", "DifferentialD": "\u2146", "digamma": "\u03DD", "disin": "\u22F2", "div": "\xF7", "divide": "\xF7", "divideontimes": "\u22C7", "divonx": "\u22C7", "djcy": "\u0452", "DJcy": "\u0402", "dlcorn": "\u231E", "dlcrop": "\u230D", "dollar": "$", "dopf": "\u{1D555}", "Dopf": "\u{1D53B}", "dot": "\u02D9", "Dot": "\xA8", "DotDot": "\u20DC", "doteq": "\u2250", "doteqdot": "\u2251", "DotEqual": "\u2250", "dotminus": "\u2238", "dotplus": "\u2214", "dotsquare": "\u22A1", "doublebarwedge": "\u2306", "DoubleContourIntegral": "\u222F", "DoubleDot": "\xA8", "DoubleDownArrow": "\u21D3", "DoubleLeftArrow": "\u21D0", "DoubleLeftRightArrow": "\u21D4", "DoubleLeftTee": "\u2AE4", "DoubleLongLeftArrow": "\u27F8", "DoubleLongLeftRightArrow": "\u27FA", "DoubleLongRightArrow": "\u27F9", "DoubleRightArrow": "\u21D2", "DoubleRightTee": "\u22A8", "DoubleUpArrow": "\u21D1", "DoubleUpDownArrow": "\u21D5", "DoubleVerticalBar": "\u2225", "downarrow": "\u2193", "Downarrow": "\u21D3", "DownArrow": "\u2193", "DownArrowBar": "\u2913", "DownArrowUpArrow": "\u21F5", "DownBreve": "\u0311", "downdownarrows": "\u21CA", "downharpoonleft": "\u21C3", "downharpoonright": "\u21C2", "DownLeftRightVector": "\u2950", "DownLeftTeeVector": "\u295E", "DownLeftVector": "\u21BD", "DownLeftVectorBar": "\u2956", "DownRightTeeVector": "\u295F", "DownRightVector": "\u21C1", "DownRightVectorBar": "\u2957", "DownTee": "\u22A4", "DownTeeArrow": "\u21A7", "drbkarow": "\u2910", "drcorn": "\u231F", "drcrop": "\u230C", "dscr": "\u{1D4B9}", "Dscr": "\u{1D49F}", "dscy": "\u0455", "DScy": "\u0405", "dsol": "\u29F6", "dstrok": "\u0111", "Dstrok": "\u0110", "dtdot": "\u22F1", "dtri": "\u25BF", "dtrif": "\u25BE", "duarr": "\u21F5", "duhar": "\u296F", "dwangle": "\u29A6", "dzcy": "\u045F", "DZcy": "\u040F", "dzigrarr": "\u27FF", "eacute": "\xE9", "Eacute": "\xC9", "easter": "\u2A6E", "ecaron": "\u011B", "Ecaron": "\u011A", "ecir": "\u2256", "ecirc": "\xEA", "Ecirc": "\xCA", "ecolon": "\u2255", "ecy": "\u044D", "Ecy": "\u042D", "eDDot": "\u2A77", "edot": "\u0117", "eDot": "\u2251", "Edot": "\u0116", "ee": "\u2147", "efDot": "\u2252", "efr": "\u{1D522}", "Efr": "\u{1D508}", "eg": "\u2A9A", "egrave": "\xE8", "Egrave": "\xC8", "egs": "\u2A96", "egsdot": "\u2A98", "el": "\u2A99", "Element": "\u2208", "elinters": "\u23E7", "ell": "\u2113", "els": "\u2A95", "elsdot": "\u2A97", "emacr": "\u0113", "Emacr": "\u0112", "empty": "\u2205", "emptyset": "\u2205", "EmptySmallSquare": "\u25FB", "emptyv": "\u2205", "EmptyVerySmallSquare": "\u25AB", "emsp": "\u2003", "emsp13": "\u2004", "emsp14": "\u2005", "eng": "\u014B", "ENG": "\u014A", "ensp": "\u2002", "eogon": "\u0119", "Eogon": "\u0118", "eopf": "\u{1D556}", "Eopf": "\u{1D53C}", "epar": "\u22D5", "eparsl": "\u29E3", "eplus": "\u2A71", "epsi": "\u03B5", "epsilon": "\u03B5", "Epsilon": "\u0395", "epsiv": "\u03F5", "eqcirc": "\u2256", "eqcolon": "\u2255", "eqsim": "\u2242", "eqslantgtr": "\u2A96", "eqslantless": "\u2A95", "Equal": "\u2A75", "equals": "=", "EqualTilde": "\u2242", "equest": "\u225F", "Equilibrium": "\u21CC", "equiv": "\u2261", "equivDD": "\u2A78", "eqvparsl": "\u29E5", "erarr": "\u2971", "erDot": "\u2253", "escr": "\u212F", "Escr": "\u2130", "esdot": "\u2250", "esim": "\u2242", "Esim": "\u2A73", "eta": "\u03B7", "Eta": "\u0397", "eth": "\xF0", "ETH": "\xD0", "euml": "\xEB", "Euml": "\xCB", "euro": "\u20AC", "excl": "!", "exist": "\u2203", "Exists": "\u2203", "expectation": "\u2130", "exponentiale": "\u2147", "ExponentialE": "\u2147", "fallingdotseq": "\u2252", "fcy": "\u0444", "Fcy": "\u0424", "female": "\u2640", "ffilig": "\uFB03", "fflig": "\uFB00", "ffllig": "\uFB04", "ffr": "\u{1D523}", "Ffr": "\u{1D509}", "filig": "\uFB01", "FilledSmallSquare": "\u25FC", "FilledVerySmallSquare": "\u25AA", "fjlig": "fj", "flat": "\u266D", "fllig": "\uFB02", "fltns": "\u25B1", "fnof": "\u0192", "fopf": "\u{1D557}", "Fopf": "\u{1D53D}", "forall": "\u2200", "ForAll": "\u2200", "fork": "\u22D4", "forkv": "\u2AD9", "Fouriertrf": "\u2131", "fpartint": "\u2A0D", "frac12": "\xBD", "frac13": "\u2153", "frac14": "\xBC", "frac15": "\u2155", "frac16": "\u2159", "frac18": "\u215B", "frac23": "\u2154", "frac25": "\u2156", "frac34": "\xBE", "frac35": "\u2157", "frac38": "\u215C", "frac45": "\u2158", "frac56": "\u215A", "frac58": "\u215D", "frac78": "\u215E", "frasl": "\u2044", "frown": "\u2322", "fscr": "\u{1D4BB}", "Fscr": "\u2131", "gacute": "\u01F5", "gamma": "\u03B3", "Gamma": "\u0393", "gammad": "\u03DD", "Gammad": "\u03DC", "gap": "\u2A86", "gbreve": "\u011F", "Gbreve": "\u011E", "Gcedil": "\u0122", "gcirc": "\u011D", "Gcirc": "\u011C", "gcy": "\u0433", "Gcy": "\u0413", "gdot": "\u0121", "Gdot": "\u0120", "ge": "\u2265", "gE": "\u2267", "gel": "\u22DB", "gEl": "\u2A8C", "geq": "\u2265", "geqq": "\u2267", "geqslant": "\u2A7E", "ges": "\u2A7E", "gescc": "\u2AA9", "gesdot": "\u2A80", "gesdoto": "\u2A82", "gesdotol": "\u2A84", "gesl": "\u22DB\uFE00", "gesles": "\u2A94", "gfr": "\u{1D524}", "Gfr": "\u{1D50A}", "gg": "\u226B", "Gg": "\u22D9", "ggg": "\u22D9", "gimel": "\u2137", "gjcy": "\u0453", "GJcy": "\u0403", "gl": "\u2277", "gla": "\u2AA5", "glE": "\u2A92", "glj": "\u2AA4", "gnap": "\u2A8A", "gnapprox": "\u2A8A", "gne": "\u2A88", "gnE": "\u2269", "gneq": "\u2A88", "gneqq": "\u2269", "gnsim": "\u22E7", "gopf": "\u{1D558}", "Gopf": "\u{1D53E}", "grave": "`", "GreaterEqual": "\u2265", "GreaterEqualLess": "\u22DB", "GreaterFullEqual": "\u2267", "GreaterGreater": "\u2AA2", "GreaterLess": "\u2277", "GreaterSlantEqual": "\u2A7E", "GreaterTilde": "\u2273", "gscr": "\u210A", "Gscr": "\u{1D4A2}", "gsim": "\u2273", "gsime": "\u2A8E", "gsiml": "\u2A90", "gt": ">", "Gt": "\u226B", "GT": ">", "gtcc": "\u2AA7", "gtcir": "\u2A7A", "gtdot": "\u22D7", "gtlPar": "\u2995", "gtquest": "\u2A7C", "gtrapprox": "\u2A86", "gtrarr": "\u2978", "gtrdot": "\u22D7", "gtreqless": "\u22DB", "gtreqqless": "\u2A8C", "gtrless": "\u2277", "gtrsim": "\u2273", "gvertneqq": "\u2269\uFE00", "gvnE": "\u2269\uFE00", "Hacek": "\u02C7", "hairsp": "\u200A", "half": "\xBD", "hamilt": "\u210B", "hardcy": "\u044A", "HARDcy": "\u042A", "harr": "\u2194", "hArr": "\u21D4", "harrcir": "\u2948", "harrw": "\u21AD", "Hat": "^", "hbar": "\u210F", "hcirc": "\u0125", "Hcirc": "\u0124", "hearts": "\u2665", "heartsuit": "\u2665", "hellip": "\u2026", "hercon": "\u22B9", "hfr": "\u{1D525}", "Hfr": "\u210C", "HilbertSpace": "\u210B", "hksearow": "\u2925", "hkswarow": "\u2926", "hoarr": "\u21FF", "homtht": "\u223B", "hookleftarrow": "\u21A9", "hookrightarrow": "\u21AA", "hopf": "\u{1D559}", "Hopf": "\u210D", "horbar": "\u2015", "HorizontalLine": "\u2500", "hscr": "\u{1D4BD}", "Hscr": "\u210B", "hslash": "\u210F", "hstrok": "\u0127", "Hstrok": "\u0126", "HumpDownHump": "\u224E", "HumpEqual": "\u224F", "hybull": "\u2043", "hyphen": "\u2010", "iacute": "\xED", "Iacute": "\xCD", "ic": "\u2063", "icirc": "\xEE", "Icirc": "\xCE", "icy": "\u0438", "Icy": "\u0418", "Idot": "\u0130", "iecy": "\u0435", "IEcy": "\u0415", "iexcl": "\xA1", "iff": "\u21D4", "ifr": "\u{1D526}", "Ifr": "\u2111", "igrave": "\xEC", "Igrave": "\xCC", "ii": "\u2148", "iiiint": "\u2A0C", "iiint": "\u222D", "iinfin": "\u29DC", "iiota": "\u2129", "ijlig": "\u0133", "IJlig": "\u0132", "Im": "\u2111", "imacr": "\u012B", "Imacr": "\u012A", "image": "\u2111", "ImaginaryI": "\u2148", "imagline": "\u2110", "imagpart": "\u2111", "imath": "\u0131", "imof": "\u22B7", "imped": "\u01B5", "Implies": "\u21D2", "in": "\u2208", "incare": "\u2105", "infin": "\u221E", "infintie": "\u29DD", "inodot": "\u0131", "int": "\u222B", "Int": "\u222C", "intcal": "\u22BA", "integers": "\u2124", "Integral": "\u222B", "intercal": "\u22BA", "Intersection": "\u22C2", "intlarhk": "\u2A17", "intprod": "\u2A3C", "InvisibleComma": "\u2063", "InvisibleTimes": "\u2062", "iocy": "\u0451", "IOcy": "\u0401", "iogon": "\u012F", "Iogon": "\u012E", "iopf": "\u{1D55A}", "Iopf": "\u{1D540}", "iota": "\u03B9", "Iota": "\u0399", "iprod": "\u2A3C", "iquest": "\xBF", "iscr": "\u{1D4BE}", "Iscr": "\u2110", "isin": "\u2208", "isindot": "\u22F5", "isinE": "\u22F9", "isins": "\u22F4", "isinsv": "\u22F3", "isinv": "\u2208", "it": "\u2062", "itilde": "\u0129", "Itilde": "\u0128", "iukcy": "\u0456", "Iukcy": "\u0406", "iuml": "\xEF", "Iuml": "\xCF", "jcirc": "\u0135", "Jcirc": "\u0134", "jcy": "\u0439", "Jcy": "\u0419", "jfr": "\u{1D527}", "Jfr": "\u{1D50D}", "jmath": "\u0237", "jopf": "\u{1D55B}", "Jopf": "\u{1D541}", "jscr": "\u{1D4BF}", "Jscr": "\u{1D4A5}", "jsercy": "\u0458", "Jsercy": "\u0408", "jukcy": "\u0454", "Jukcy": "\u0404", "kappa": "\u03BA", "Kappa": "\u039A", "kappav": "\u03F0", "kcedil": "\u0137", "Kcedil": "\u0136", "kcy": "\u043A", "Kcy": "\u041A", "kfr": "\u{1D528}", "Kfr": "\u{1D50E}", "kgreen": "\u0138", "khcy": "\u0445", "KHcy": "\u0425", "kjcy": "\u045C", "KJcy": "\u040C", "kopf": "\u{1D55C}", "Kopf": "\u{1D542}", "kscr": "\u{1D4C0}", "Kscr": "\u{1D4A6}", "lAarr": "\u21DA", "lacute": "\u013A", "Lacute": "\u0139", "laemptyv": "\u29B4", "lagran": "\u2112", "lambda": "\u03BB", "Lambda": "\u039B", "lang": "\u27E8", "Lang": "\u27EA", "langd": "\u2991", "langle": "\u27E8", "lap": "\u2A85", "Laplacetrf": "\u2112", "laquo": "\xAB", "larr": "\u2190", "lArr": "\u21D0", "Larr": "\u219E", "larrb": "\u21E4", "larrbfs": "\u291F", "larrfs": "\u291D", "larrhk": "\u21A9", "larrlp": "\u21AB", "larrpl": "\u2939", "larrsim": "\u2973", "larrtl": "\u21A2", "lat": "\u2AAB", "latail": "\u2919", "lAtail": "\u291B", "late": "\u2AAD", "lates": "\u2AAD\uFE00", "lbarr": "\u290C", "lBarr": "\u290E", "lbbrk": "\u2772", "lbrace": "{", "lbrack": "[", "lbrke": "\u298B", "lbrksld": "\u298F", "lbrkslu": "\u298D", "lcaron": "\u013E", "Lcaron": "\u013D", "lcedil": "\u013C", "Lcedil": "\u013B", "lceil": "\u2308", "lcub": "{", "lcy": "\u043B", "Lcy": "\u041B", "ldca": "\u2936", "ldquo": "\u201C", "ldquor": "\u201E", "ldrdhar": "\u2967", "ldrushar": "\u294B", "ldsh": "\u21B2", "le": "\u2264", "lE": "\u2266", "LeftAngleBracket": "\u27E8", "leftarrow": "\u2190", "Leftarrow": "\u21D0", "LeftArrow": "\u2190", "LeftArrowBar": "\u21E4", "LeftArrowRightArrow": "\u21C6", "leftarrowtail": "\u21A2", "LeftCeiling": "\u2308", "LeftDoubleBracket": "\u27E6", "LeftDownTeeVector": "\u2961", "LeftDownVector": "\u21C3", "LeftDownVectorBar": "\u2959", "LeftFloor": "\u230A", "leftharpoondown": "\u21BD", "leftharpoonup": "\u21BC", "leftleftarrows": "\u21C7", "leftrightarrow": "\u2194", "Leftrightarrow": "\u21D4", "LeftRightArrow": "\u2194", "leftrightarrows": "\u21C6", "leftrightharpoons": "\u21CB", "leftrightsquigarrow": "\u21AD", "LeftRightVector": "\u294E", "LeftTee": "\u22A3", "LeftTeeArrow": "\u21A4", "LeftTeeVector": "\u295A", "leftthreetimes": "\u22CB", "LeftTriangle": "\u22B2", "LeftTriangleBar": "\u29CF", "LeftTriangleEqual": "\u22B4", "LeftUpDownVector": "\u2951", "LeftUpTeeVector": "\u2960", "LeftUpVector": "\u21BF", "LeftUpVectorBar": "\u2958", "LeftVector": "\u21BC", "LeftVectorBar": "\u2952", "leg": "\u22DA", "lEg": "\u2A8B", "leq": "\u2264", "leqq": "\u2266", "leqslant": "\u2A7D", "les": "\u2A7D", "lescc": "\u2AA8", "lesdot": "\u2A7F", "lesdoto": "\u2A81", "lesdotor": "\u2A83", "lesg": "\u22DA\uFE00", "lesges": "\u2A93", "lessapprox": "\u2A85", "lessdot": "\u22D6", "lesseqgtr": "\u22DA", "lesseqqgtr": "\u2A8B", "LessEqualGreater": "\u22DA", "LessFullEqual": "\u2266", "LessGreater": "\u2276", "lessgtr": "\u2276", "LessLess": "\u2AA1", "lesssim": "\u2272", "LessSlantEqual": "\u2A7D", "LessTilde": "\u2272", "lfisht": "\u297C", "lfloor": "\u230A", "lfr": "\u{1D529}", "Lfr": "\u{1D50F}", "lg": "\u2276", "lgE": "\u2A91", "lHar": "\u2962", "lhard": "\u21BD", "lharu": "\u21BC", "lharul": "\u296A", "lhblk": "\u2584", "ljcy": "\u0459", "LJcy": "\u0409", "ll": "\u226A", "Ll": "\u22D8", "llarr": "\u21C7", "llcorner": "\u231E", "Lleftarrow": "\u21DA", "llhard": "\u296B", "lltri": "\u25FA", "lmidot": "\u0140", "Lmidot": "\u013F", "lmoust": "\u23B0", "lmoustache": "\u23B0", "lnap": "\u2A89", "lnapprox": "\u2A89", "lne": "\u2A87", "lnE": "\u2268", "lneq": "\u2A87", "lneqq": "\u2268", "lnsim": "\u22E6", "loang": "\u27EC", "loarr": "\u21FD", "lobrk": "\u27E6", "longleftarrow": "\u27F5", "Longleftarrow": "\u27F8", "LongLeftArrow": "\u27F5", "longleftrightarrow": "\u27F7", "Longleftrightarrow": "\u27FA", "LongLeftRightArrow": "\u27F7", "longmapsto": "\u27FC", "longrightarrow": "\u27F6", "Longrightarrow": "\u27F9", "LongRightArrow": "\u27F6", "looparrowleft": "\u21AB", "looparrowright": "\u21AC", "lopar": "\u2985", "lopf": "\u{1D55D}", "Lopf": "\u{1D543}", "loplus": "\u2A2D", "lotimes": "\u2A34", "lowast": "\u2217", "lowbar": "_", "LowerLeftArrow": "\u2199", "LowerRightArrow": "\u2198", "loz": "\u25CA", "lozenge": "\u25CA", "lozf": "\u29EB", "lpar": "(", "lparlt": "\u2993", "lrarr": "\u21C6", "lrcorner": "\u231F", "lrhar": "\u21CB", "lrhard": "\u296D", "lrm": "\u200E", "lrtri": "\u22BF", "lsaquo": "\u2039", "lscr": "\u{1D4C1}", "Lscr": "\u2112", "lsh": "\u21B0", "Lsh": "\u21B0", "lsim": "\u2272", "lsime": "\u2A8D", "lsimg": "\u2A8F", "lsqb": "[", "lsquo": "\u2018", "lsquor": "\u201A", "lstrok": "\u0142", "Lstrok": "\u0141", "lt": "<", "Lt": "\u226A", "LT": "<", "ltcc": "\u2AA6", "ltcir": "\u2A79", "ltdot": "\u22D6", "lthree": "\u22CB", "ltimes": "\u22C9", "ltlarr": "\u2976", "ltquest": "\u2A7B", "ltri": "\u25C3", "ltrie": "\u22B4", "ltrif": "\u25C2", "ltrPar": "\u2996", "lurdshar": "\u294A", "luruhar": "\u2966", "lvertneqq": "\u2268\uFE00", "lvnE": "\u2268\uFE00", "macr": "\xAF", "male": "\u2642", "malt": "\u2720", "maltese": "\u2720", "map": "\u21A6", "Map": "\u2905", "mapsto": "\u21A6", "mapstodown": "\u21A7", "mapstoleft": "\u21A4", "mapstoup": "\u21A5", "marker": "\u25AE", "mcomma": "\u2A29", "mcy": "\u043C", "Mcy": "\u041C", "mdash": "\u2014", "mDDot": "\u223A", "measuredangle": "\u2221", "MediumSpace": "\u205F", "Mellintrf": "\u2133", "mfr": "\u{1D52A}", "Mfr": "\u{1D510}", "mho": "\u2127", "micro": "\xB5", "mid": "\u2223", "midast": "*", "midcir": "\u2AF0", "middot": "\xB7", "minus": "\u2212", "minusb": "\u229F", "minusd": "\u2238", "minusdu": "\u2A2A", "MinusPlus": "\u2213", "mlcp": "\u2ADB", "mldr": "\u2026", "mnplus": "\u2213", "models": "\u22A7", "mopf": "\u{1D55E}", "Mopf": "\u{1D544}", "mp": "\u2213", "mscr": "\u{1D4C2}", "Mscr": "\u2133", "mstpos": "\u223E", "mu": "\u03BC", "Mu": "\u039C", "multimap": "\u22B8", "mumap": "\u22B8", "nabla": "\u2207", "nacute": "\u0144", "Nacute": "\u0143", "nang": "\u2220\u20D2", "nap": "\u2249", "napE": "\u2A70\u0338", "napid": "\u224B\u0338", "napos": "\u0149", "napprox": "\u2249", "natur": "\u266E", "natural": "\u266E", "naturals": "\u2115", "nbsp": "\xA0", "nbump": "\u224E\u0338", "nbumpe": "\u224F\u0338", "ncap": "\u2A43", "ncaron": "\u0148", "Ncaron": "\u0147", "ncedil": "\u0146", "Ncedil": "\u0145", "ncong": "\u2247", "ncongdot": "\u2A6D\u0338", "ncup": "\u2A42", "ncy": "\u043D", "Ncy": "\u041D", "ndash": "\u2013", "ne": "\u2260", "nearhk": "\u2924", "nearr": "\u2197", "neArr": "\u21D7", "nearrow": "\u2197", "nedot": "\u2250\u0338", "NegativeMediumSpace": "\u200B", "NegativeThickSpace": "\u200B", "NegativeThinSpace": "\u200B", "NegativeVeryThinSpace": "\u200B", "nequiv": "\u2262", "nesear": "\u2928", "nesim": "\u2242\u0338", "NestedGreaterGreater": "\u226B", "NestedLessLess": "\u226A", "NewLine": "\n", "nexist": "\u2204", "nexists": "\u2204", "nfr": "\u{1D52B}", "Nfr": "\u{1D511}", "nge": "\u2271", "ngE": "\u2267\u0338", "ngeq": "\u2271", "ngeqq": "\u2267\u0338", "ngeqslant": "\u2A7E\u0338", "nges": "\u2A7E\u0338", "nGg": "\u22D9\u0338", "ngsim": "\u2275", "ngt": "\u226F", "nGt": "\u226B\u20D2", "ngtr": "\u226F", "nGtv": "\u226B\u0338", "nharr": "\u21AE", "nhArr": "\u21CE", "nhpar": "\u2AF2", "ni": "\u220B", "nis": "\u22FC", "nisd": "\u22FA", "niv": "\u220B", "njcy": "\u045A", "NJcy": "\u040A", "nlarr": "\u219A", "nlArr": "\u21CD", "nldr": "\u2025", "nle": "\u2270", "nlE": "\u2266\u0338", "nleftarrow": "\u219A", "nLeftarrow": "\u21CD", "nleftrightarrow": "\u21AE", "nLeftrightarrow": "\u21CE", "nleq": "\u2270", "nleqq": "\u2266\u0338", "nleqslant": "\u2A7D\u0338", "nles": "\u2A7D\u0338", "nless": "\u226E", "nLl": "\u22D8\u0338", "nlsim": "\u2274", "nlt": "\u226E", "nLt": "\u226A\u20D2", "nltri": "\u22EA", "nltrie": "\u22EC", "nLtv": "\u226A\u0338", "nmid": "\u2224", "NoBreak": "\u2060", "NonBreakingSpace": "\xA0", "nopf": "\u{1D55F}", "Nopf": "\u2115", "not": "\xAC", "Not": "\u2AEC", "NotCongruent": "\u2262", "NotCupCap": "\u226D", "NotDoubleVerticalBar": "\u2226", "NotElement": "\u2209", "NotEqual": "\u2260", "NotEqualTilde": "\u2242\u0338", "NotExists": "\u2204", "NotGreater": "\u226F", "NotGreaterEqual": "\u2271", "NotGreaterFullEqual": "\u2267\u0338", "NotGreaterGreater": "\u226B\u0338", "NotGreaterLess": "\u2279", "NotGreaterSlantEqual": "\u2A7E\u0338", "NotGreaterTilde": "\u2275", "NotHumpDownHump": "\u224E\u0338", "NotHumpEqual": "\u224F\u0338", "notin": "\u2209", "notindot": "\u22F5\u0338", "notinE": "\u22F9\u0338", "notinva": "\u2209", "notinvb": "\u22F7", "notinvc": "\u22F6", "NotLeftTriangle": "\u22EA", "NotLeftTriangleBar": "\u29CF\u0338", "NotLeftTriangleEqual": "\u22EC", "NotLess": "\u226E", "NotLessEqual": "\u2270", "NotLessGreater": "\u2278", "NotLessLess": "\u226A\u0338", "NotLessSlantEqual": "\u2A7D\u0338", "NotLessTilde": "\u2274", "NotNestedGreaterGreater": "\u2AA2\u0338", "NotNestedLessLess": "\u2AA1\u0338", "notni": "\u220C", "notniva": "\u220C", "notnivb": "\u22FE", "notnivc": "\u22FD", "NotPrecedes": "\u2280", "NotPrecedesEqual": "\u2AAF\u0338", "NotPrecedesSlantEqual": "\u22E0", "NotReverseElement": "\u220C", "NotRightTriangle": "\u22EB", "NotRightTriangleBar": "\u29D0\u0338", "NotRightTriangleEqual": "\u22ED", "NotSquareSubset": "\u228F\u0338", "NotSquareSubsetEqual": "\u22E2", "NotSquareSuperset": "\u2290\u0338", "NotSquareSupersetEqual": "\u22E3", "NotSubset": "\u2282\u20D2", "NotSubsetEqual": "\u2288", "NotSucceeds": "\u2281", "NotSucceedsEqual": "\u2AB0\u0338", "NotSucceedsSlantEqual": "\u22E1", "NotSucceedsTilde": "\u227F\u0338", "NotSuperset": "\u2283\u20D2", "NotSupersetEqual": "\u2289", "NotTilde": "\u2241", "NotTildeEqual": "\u2244", "NotTildeFullEqual": "\u2247", "NotTildeTilde": "\u2249", "NotVerticalBar": "\u2224", "npar": "\u2226", "nparallel": "\u2226", "nparsl": "\u2AFD\u20E5", "npart": "\u2202\u0338", "npolint": "\u2A14", "npr": "\u2280", "nprcue": "\u22E0", "npre": "\u2AAF\u0338", "nprec": "\u2280", "npreceq": "\u2AAF\u0338", "nrarr": "\u219B", "nrArr": "\u21CF", "nrarrc": "\u2933\u0338", "nrarrw": "\u219D\u0338", "nrightarrow": "\u219B", "nRightarrow": "\u21CF", "nrtri": "\u22EB", "nrtrie": "\u22ED", "nsc": "\u2281", "nsccue": "\u22E1", "nsce": "\u2AB0\u0338", "nscr": "\u{1D4C3}", "Nscr": "\u{1D4A9}", "nshortmid": "\u2224", "nshortparallel": "\u2226", "nsim": "\u2241", "nsime": "\u2244", "nsimeq": "\u2244", "nsmid": "\u2224", "nspar": "\u2226", "nsqsube": "\u22E2", "nsqsupe": "\u22E3", "nsub": "\u2284", "nsube": "\u2288", "nsubE": "\u2AC5\u0338", "nsubset": "\u2282\u20D2", "nsubseteq": "\u2288", "nsubseteqq": "\u2AC5\u0338", "nsucc": "\u2281", "nsucceq": "\u2AB0\u0338", "nsup": "\u2285", "nsupe": "\u2289", "nsupE": "\u2AC6\u0338", "nsupset": "\u2283\u20D2", "nsupseteq": "\u2289", "nsupseteqq": "\u2AC6\u0338", "ntgl": "\u2279", "ntilde": "\xF1", "Ntilde": "\xD1", "ntlg": "\u2278", "ntriangleleft": "\u22EA", "ntrianglelefteq": "\u22EC", "ntriangleright": "\u22EB", "ntrianglerighteq": "\u22ED", "nu": "\u03BD", "Nu": "\u039D", "num": "#", "numero": "\u2116", "numsp": "\u2007", "nvap": "\u224D\u20D2", "nvdash": "\u22AC", "nvDash": "\u22AD", "nVdash": "\u22AE", "nVDash": "\u22AF", "nvge": "\u2265\u20D2", "nvgt": ">\u20D2", "nvHarr": "\u2904", "nvinfin": "\u29DE", "nvlArr": "\u2902", "nvle": "\u2264\u20D2", "nvlt": "<\u20D2", "nvltrie": "\u22B4\u20D2", "nvrArr": "\u2903", "nvrtrie": "\u22B5\u20D2", "nvsim": "\u223C\u20D2", "nwarhk": "\u2923", "nwarr": "\u2196", "nwArr": "\u21D6", "nwarrow": "\u2196", "nwnear": "\u2927", "oacute": "\xF3", "Oacute": "\xD3", "oast": "\u229B", "ocir": "\u229A", "ocirc": "\xF4", "Ocirc": "\xD4", "ocy": "\u043E", "Ocy": "\u041E", "odash": "\u229D", "odblac": "\u0151", "Odblac": "\u0150", "odiv": "\u2A38", "odot": "\u2299", "odsold": "\u29BC", "oelig": "\u0153", "OElig": "\u0152", "ofcir": "\u29BF", "ofr": "\u{1D52C}", "Ofr": "\u{1D512}", "ogon": "\u02DB", "ograve": "\xF2", "Ograve": "\xD2", "ogt": "\u29C1", "ohbar": "\u29B5", "ohm": "\u03A9", "oint": "\u222E", "olarr": "\u21BA", "olcir": "\u29BE", "olcross": "\u29BB", "oline": "\u203E", "olt": "\u29C0", "omacr": "\u014D", "Omacr": "\u014C", "omega": "\u03C9", "Omega": "\u03A9", "omicron": "\u03BF", "Omicron": "\u039F", "omid": "\u29B6", "ominus": "\u2296", "oopf": "\u{1D560}", "Oopf": "\u{1D546}", "opar": "\u29B7", "OpenCurlyDoubleQuote": "\u201C", "OpenCurlyQuote": "\u2018", "operp": "\u29B9", "oplus": "\u2295", "or": "\u2228", "Or": "\u2A54", "orarr": "\u21BB", "ord": "\u2A5D", "order": "\u2134", "orderof": "\u2134", "ordf": "\xAA", "ordm": "\xBA", "origof": "\u22B6", "oror": "\u2A56", "orslope": "\u2A57", "orv": "\u2A5B", "oS": "\u24C8", "oscr": "\u2134", "Oscr": "\u{1D4AA}", "oslash": "\xF8", "Oslash": "\xD8", "osol": "\u2298", "otilde": "\xF5", "Otilde": "\xD5", "otimes": "\u2297", "Otimes": "\u2A37", "otimesas": "\u2A36", "ouml": "\xF6", "Ouml": "\xD6", "ovbar": "\u233D", "OverBar": "\u203E", "OverBrace": "\u23DE", "OverBracket": "\u23B4", "OverParenthesis": "\u23DC", "par": "\u2225", "para": "\xB6", "parallel": "\u2225", "parsim": "\u2AF3", "parsl": "\u2AFD", "part": "\u2202", "PartialD": "\u2202", "pcy": "\u043F", "Pcy": "\u041F", "percnt": "%", "period": ".", "permil": "\u2030", "perp": "\u22A5", "pertenk": "\u2031", "pfr": "\u{1D52D}", "Pfr": "\u{1D513}", "phi": "\u03C6", "Phi": "\u03A6", "phiv": "\u03D5", "phmmat": "\u2133", "phone": "\u260E", "pi": "\u03C0", "Pi": "\u03A0", "pitchfork": "\u22D4", "piv": "\u03D6", "planck": "\u210F", "planckh": "\u210E", "plankv": "\u210F", "plus": "+", "plusacir": "\u2A23", "plusb": "\u229E", "pluscir": "\u2A22", "plusdo": "\u2214", "plusdu": "\u2A25", "pluse": "\u2A72", "PlusMinus": "\xB1", "plusmn": "\xB1", "plussim": "\u2A26", "plustwo": "\u2A27", "pm": "\xB1", "Poincareplane": "\u210C", "pointint": "\u2A15", "popf": "\u{1D561}", "Popf": "\u2119", "pound": "\xA3", "pr": "\u227A", "Pr": "\u2ABB", "prap": "\u2AB7", "prcue": "\u227C", "pre": "\u2AAF", "prE": "\u2AB3", "prec": "\u227A", "precapprox": "\u2AB7", "preccurlyeq": "\u227C", "Precedes": "\u227A", "PrecedesEqual": "\u2AAF", "PrecedesSlantEqual": "\u227C", "PrecedesTilde": "\u227E", "preceq": "\u2AAF", "precnapprox": "\u2AB9", "precneqq": "\u2AB5", "precnsim": "\u22E8", "precsim": "\u227E", "prime": "\u2032", "Prime": "\u2033", "primes": "\u2119", "prnap": "\u2AB9", "prnE": "\u2AB5", "prnsim": "\u22E8", "prod": "\u220F", "Product": "\u220F", "profalar": "\u232E", "profline": "\u2312", "profsurf": "\u2313", "prop": "\u221D", "Proportion": "\u2237", "Proportional": "\u221D", "propto": "\u221D", "prsim": "\u227E", "prurel": "\u22B0", "pscr": "\u{1D4C5}", "Pscr": "\u{1D4AB}", "psi": "\u03C8", "Psi": "\u03A8", "puncsp": "\u2008", "qfr": "\u{1D52E}", "Qfr": "\u{1D514}", "qint": "\u2A0C", "qopf": "\u{1D562}", "Qopf": "\u211A", "qprime": "\u2057", "qscr": "\u{1D4C6}", "Qscr": "\u{1D4AC}", "quaternions": "\u210D", "quatint": "\u2A16", "quest": "?", "questeq": "\u225F", "quot": '"', "QUOT": '"', "rAarr": "\u21DB", "race": "\u223D\u0331", "racute": "\u0155", "Racute": "\u0154", "radic": "\u221A", "raemptyv": "\u29B3", "rang": "\u27E9", "Rang": "\u27EB", "rangd": "\u2992", "range": "\u29A5", "rangle": "\u27E9", "raquo": "\xBB", "rarr": "\u2192", "rArr": "\u21D2", "Rarr": "\u21A0", "rarrap": "\u2975", "rarrb": "\u21E5", "rarrbfs": "\u2920", "rarrc": "\u2933", "rarrfs": "\u291E", "rarrhk": "\u21AA", "rarrlp": "\u21AC", "rarrpl": "\u2945", "rarrsim": "\u2974", "rarrtl": "\u21A3", "Rarrtl": "\u2916", "rarrw": "\u219D", "ratail": "\u291A", "rAtail": "\u291C", "ratio": "\u2236", "rationals": "\u211A", "rbarr": "\u290D", "rBarr": "\u290F", "RBarr": "\u2910", "rbbrk": "\u2773", "rbrace": "}", "rbrack": "]", "rbrke": "\u298C", "rbrksld": "\u298E", "rbrkslu": "\u2990", "rcaron": "\u0159", "Rcaron": "\u0158", "rcedil": "\u0157", "Rcedil": "\u0156", "rceil": "\u2309", "rcub": "}", "rcy": "\u0440", "Rcy": "\u0420", "rdca": "\u2937", "rdldhar": "\u2969", "rdquo": "\u201D", "rdquor": "\u201D", "rdsh": "\u21B3", "Re": "\u211C", "real": "\u211C", "realine": "\u211B", "realpart": "\u211C", "reals": "\u211D", "rect": "\u25AD", "reg": "\xAE", "REG": "\xAE", "ReverseElement": "\u220B", "ReverseEquilibrium": "\u21CB", "ReverseUpEquilibrium": "\u296F", "rfisht": "\u297D", "rfloor": "\u230B", "rfr": "\u{1D52F}", "Rfr": "\u211C", "rHar": "\u2964", "rhard": "\u21C1", "rharu": "\u21C0", "rharul": "\u296C", "rho": "\u03C1", "Rho": "\u03A1", "rhov": "\u03F1", "RightAngleBracket": "\u27E9", "rightarrow": "\u2192", "Rightarrow": "\u21D2", "RightArrow": "\u2192", "RightArrowBar": "\u21E5", "RightArrowLeftArrow": "\u21C4", "rightarrowtail": "\u21A3", "RightCeiling": "\u2309", "RightDoubleBracket": "\u27E7", "RightDownTeeVector": "\u295D", "RightDownVector": "\u21C2", "RightDownVectorBar": "\u2955", "RightFloor": "\u230B", "rightharpoondown": "\u21C1", "rightharpoonup": "\u21C0", "rightleftarrows": "\u21C4", "rightleftharpoons": "\u21CC", "rightrightarrows": "\u21C9", "rightsquigarrow": "\u219D", "RightTee": "\u22A2", "RightTeeArrow": "\u21A6", "RightTeeVector": "\u295B", "rightthreetimes": "\u22CC", "RightTriangle": "\u22B3", "RightTriangleBar": "\u29D0", "RightTriangleEqual": "\u22B5", "RightUpDownVector": "\u294F", "RightUpTeeVector": "\u295C", "RightUpVector": "\u21BE", "RightUpVectorBar": "\u2954", "RightVector": "\u21C0", "RightVectorBar": "\u2953", "ring": "\u02DA", "risingdotseq": "\u2253", "rlarr": "\u21C4", "rlhar": "\u21CC", "rlm": "\u200F", "rmoust": "\u23B1", "rmoustache": "\u23B1", "rnmid": "\u2AEE", "roang": "\u27ED", "roarr": "\u21FE", "robrk": "\u27E7", "ropar": "\u2986", "ropf": "\u{1D563}", "Ropf": "\u211D", "roplus": "\u2A2E", "rotimes": "\u2A35", "RoundImplies": "\u2970", "rpar": ")", "rpargt": "\u2994", "rppolint": "\u2A12", "rrarr": "\u21C9", "Rrightarrow": "\u21DB", "rsaquo": "\u203A", "rscr": "\u{1D4C7}", "Rscr": "\u211B", "rsh": "\u21B1", "Rsh": "\u21B1", "rsqb": "]", "rsquo": "\u2019", "rsquor": "\u2019", "rthree": "\u22CC", "rtimes": "\u22CA", "rtri": "\u25B9", "rtrie": "\u22B5", "rtrif": "\u25B8", "rtriltri": "\u29CE", "RuleDelayed": "\u29F4", "ruluhar": "\u2968", "rx": "\u211E", "sacute": "\u015B", "Sacute": "\u015A", "sbquo": "\u201A", "sc": "\u227B", "Sc": "\u2ABC", "scap": "\u2AB8", "scaron": "\u0161", "Scaron": "\u0160", "sccue": "\u227D", "sce": "\u2AB0", "scE": "\u2AB4", "scedil": "\u015F", "Scedil": "\u015E", "scirc": "\u015D", "Scirc": "\u015C", "scnap": "\u2ABA", "scnE": "\u2AB6", "scnsim": "\u22E9", "scpolint": "\u2A13", "scsim": "\u227F", "scy": "\u0441", "Scy": "\u0421", "sdot": "\u22C5", "sdotb": "\u22A1", "sdote": "\u2A66", "searhk": "\u2925", "searr": "\u2198", "seArr": "\u21D8", "searrow": "\u2198", "sect": "\xA7", "semi": ";", "seswar": "\u2929", "setminus": "\u2216", "setmn": "\u2216", "sext": "\u2736", "sfr": "\u{1D530}", "Sfr": "\u{1D516}", "sfrown": "\u2322", "sharp": "\u266F", "shchcy": "\u0449", "SHCHcy": "\u0429", "shcy": "\u0448", "SHcy": "\u0428", "ShortDownArrow": "\u2193", "ShortLeftArrow": "\u2190", "shortmid": "\u2223", "shortparallel": "\u2225", "ShortRightArrow": "\u2192", "ShortUpArrow": "\u2191", "shy": "\xAD", "sigma": "\u03C3", "Sigma": "\u03A3", "sigmaf": "\u03C2", "sigmav": "\u03C2", "sim": "\u223C", "simdot": "\u2A6A", "sime": "\u2243", "simeq": "\u2243", "simg": "\u2A9E", "simgE": "\u2AA0", "siml": "\u2A9D", "simlE": "\u2A9F", "simne": "\u2246", "simplus": "\u2A24", "simrarr": "\u2972", "slarr": "\u2190", "SmallCircle": "\u2218", "smallsetminus": "\u2216", "smashp": "\u2A33", "smeparsl": "\u29E4", "smid": "\u2223", "smile": "\u2323", "smt": "\u2AAA", "smte": "\u2AAC", "smtes": "\u2AAC\uFE00", "softcy": "\u044C", "SOFTcy": "\u042C", "sol": "/", "solb": "\u29C4", "solbar": "\u233F", "sopf": "\u{1D564}", "Sopf": "\u{1D54A}", "spades": "\u2660", "spadesuit": "\u2660", "spar": "\u2225", "sqcap": "\u2293", "sqcaps": "\u2293\uFE00", "sqcup": "\u2294", "sqcups": "\u2294\uFE00", "Sqrt": "\u221A", "sqsub": "\u228F", "sqsube": "\u2291", "sqsubset": "\u228F", "sqsubseteq": "\u2291", "sqsup": "\u2290", "sqsupe": "\u2292", "sqsupset": "\u2290", "sqsupseteq": "\u2292", "squ": "\u25A1", "square": "\u25A1", "Square": "\u25A1", "SquareIntersection": "\u2293", "SquareSubset": "\u228F", "SquareSubsetEqual": "\u2291", "SquareSuperset": "\u2290", "SquareSupersetEqual": "\u2292", "SquareUnion": "\u2294", "squarf": "\u25AA", "squf": "\u25AA", "srarr": "\u2192", "sscr": "\u{1D4C8}", "Sscr": "\u{1D4AE}", "ssetmn": "\u2216", "ssmile": "\u2323", "sstarf": "\u22C6", "star": "\u2606", "Star": "\u22C6", "starf": "\u2605", "straightepsilon": "\u03F5", "straightphi": "\u03D5", "strns": "\xAF", "sub": "\u2282", "Sub": "\u22D0", "subdot": "\u2ABD", "sube": "\u2286", "subE": "\u2AC5", "subedot": "\u2AC3", "submult": "\u2AC1", "subne": "\u228A", "subnE": "\u2ACB", "subplus": "\u2ABF", "subrarr": "\u2979", "subset": "\u2282", "Subset": "\u22D0", "subseteq": "\u2286", "subseteqq": "\u2AC5", "SubsetEqual": "\u2286", "subsetneq": "\u228A", "subsetneqq": "\u2ACB", "subsim": "\u2AC7", "subsub": "\u2AD5", "subsup": "\u2AD3", "succ": "\u227B", "succapprox": "\u2AB8", "succcurlyeq": "\u227D", "Succeeds": "\u227B", "SucceedsEqual": "\u2AB0", "SucceedsSlantEqual": "\u227D", "SucceedsTilde": "\u227F", "succeq": "\u2AB0", "succnapprox": "\u2ABA", "succneqq": "\u2AB6", "succnsim": "\u22E9", "succsim": "\u227F", "SuchThat": "\u220B", "sum": "\u2211", "Sum": "\u2211", "sung": "\u266A", "sup": "\u2283", "Sup": "\u22D1", "sup1": "\xB9", "sup2": "\xB2", "sup3": "\xB3", "supdot": "\u2ABE", "supdsub": "\u2AD8", "supe": "\u2287", "supE": "\u2AC6", "supedot": "\u2AC4", "Superset": "\u2283", "SupersetEqual": "\u2287", "suphsol": "\u27C9", "suphsub": "\u2AD7", "suplarr": "\u297B", "supmult": "\u2AC2", "supne": "\u228B", "supnE": "\u2ACC", "supplus": "\u2AC0", "supset": "\u2283", "Supset": "\u22D1", "supseteq": "\u2287", "supseteqq": "\u2AC6", "supsetneq": "\u228B", "supsetneqq": "\u2ACC", "supsim": "\u2AC8", "supsub": "\u2AD4", "supsup": "\u2AD6", "swarhk": "\u2926", "swarr": "\u2199", "swArr": "\u21D9", "swarrow": "\u2199", "swnwar": "\u292A", "szlig": "\xDF", "Tab": "	", "target": "\u2316", "tau": "\u03C4", "Tau": "\u03A4", "tbrk": "\u23B4", "tcaron": "\u0165", "Tcaron": "\u0164", "tcedil": "\u0163", "Tcedil": "\u0162", "tcy": "\u0442", "Tcy": "\u0422", "tdot": "\u20DB", "telrec": "\u2315", "tfr": "\u{1D531}", "Tfr": "\u{1D517}", "there4": "\u2234", "therefore": "\u2234", "Therefore": "\u2234", "theta": "\u03B8", "Theta": "\u0398", "thetasym": "\u03D1", "thetav": "\u03D1", "thickapprox": "\u2248", "thicksim": "\u223C", "ThickSpace": "\u205F\u200A", "thinsp": "\u2009", "ThinSpace": "\u2009", "thkap": "\u2248", "thksim": "\u223C", "thorn": "\xFE", "THORN": "\xDE", "tilde": "\u02DC", "Tilde": "\u223C", "TildeEqual": "\u2243", "TildeFullEqual": "\u2245", "TildeTilde": "\u2248", "times": "\xD7", "timesb": "\u22A0", "timesbar": "\u2A31", "timesd": "\u2A30", "tint": "\u222D", "toea": "\u2928", "top": "\u22A4", "topbot": "\u2336", "topcir": "\u2AF1", "topf": "\u{1D565}", "Topf": "\u{1D54B}", "topfork": "\u2ADA", "tosa": "\u2929", "tprime": "\u2034", "trade": "\u2122", "TRADE": "\u2122", "triangle": "\u25B5", "triangledown": "\u25BF", "triangleleft": "\u25C3", "trianglelefteq": "\u22B4", "triangleq": "\u225C", "triangleright": "\u25B9", "trianglerighteq": "\u22B5", "tridot": "\u25EC", "trie": "\u225C", "triminus": "\u2A3A", "TripleDot": "\u20DB", "triplus": "\u2A39", "trisb": "\u29CD", "tritime": "\u2A3B", "trpezium": "\u23E2", "tscr": "\u{1D4C9}", "Tscr": "\u{1D4AF}", "tscy": "\u0446", "TScy": "\u0426", "tshcy": "\u045B", "TSHcy": "\u040B", "tstrok": "\u0167", "Tstrok": "\u0166", "twixt": "\u226C", "twoheadleftarrow": "\u219E", "twoheadrightarrow": "\u21A0", "uacute": "\xFA", "Uacute": "\xDA", "uarr": "\u2191", "uArr": "\u21D1", "Uarr": "\u219F", "Uarrocir": "\u2949", "ubrcy": "\u045E", "Ubrcy": "\u040E", "ubreve": "\u016D", "Ubreve": "\u016C", "ucirc": "\xFB", "Ucirc": "\xDB", "ucy": "\u0443", "Ucy": "\u0423", "udarr": "\u21C5", "udblac": "\u0171", "Udblac": "\u0170", "udhar": "\u296E", "ufisht": "\u297E", "ufr": "\u{1D532}", "Ufr": "\u{1D518}", "ugrave": "\xF9", "Ugrave": "\xD9", "uHar": "\u2963", "uharl": "\u21BF", "uharr": "\u21BE", "uhblk": "\u2580", "ulcorn": "\u231C", "ulcorner": "\u231C", "ulcrop": "\u230F", "ultri": "\u25F8", "umacr": "\u016B", "Umacr": "\u016A", "uml": "\xA8", "UnderBar": "_", "UnderBrace": "\u23DF", "UnderBracket": "\u23B5", "UnderParenthesis": "\u23DD", "Union": "\u22C3", "UnionPlus": "\u228E", "uogon": "\u0173", "Uogon": "\u0172", "uopf": "\u{1D566}", "Uopf": "\u{1D54C}", "uparrow": "\u2191", "Uparrow": "\u21D1", "UpArrow": "\u2191", "UpArrowBar": "\u2912", "UpArrowDownArrow": "\u21C5", "updownarrow": "\u2195", "Updownarrow": "\u21D5", "UpDownArrow": "\u2195", "UpEquilibrium": "\u296E", "upharpoonleft": "\u21BF", "upharpoonright": "\u21BE", "uplus": "\u228E", "UpperLeftArrow": "\u2196", "UpperRightArrow": "\u2197", "upsi": "\u03C5", "Upsi": "\u03D2", "upsih": "\u03D2", "upsilon": "\u03C5", "Upsilon": "\u03A5", "UpTee": "\u22A5", "UpTeeArrow": "\u21A5", "upuparrows": "\u21C8", "urcorn": "\u231D", "urcorner": "\u231D", "urcrop": "\u230E", "uring": "\u016F", "Uring": "\u016E", "urtri": "\u25F9", "uscr": "\u{1D4CA}", "Uscr": "\u{1D4B0}", "utdot": "\u22F0", "utilde": "\u0169", "Utilde": "\u0168", "utri": "\u25B5", "utrif": "\u25B4", "uuarr": "\u21C8", "uuml": "\xFC", "Uuml": "\xDC", "uwangle": "\u29A7", "vangrt": "\u299C", "varepsilon": "\u03F5", "varkappa": "\u03F0", "varnothing": "\u2205", "varphi": "\u03D5", "varpi": "\u03D6", "varpropto": "\u221D", "varr": "\u2195", "vArr": "\u21D5", "varrho": "\u03F1", "varsigma": "\u03C2", "varsubsetneq": "\u228A\uFE00", "varsubsetneqq": "\u2ACB\uFE00", "varsupsetneq": "\u228B\uFE00", "varsupsetneqq": "\u2ACC\uFE00", "vartheta": "\u03D1", "vartriangleleft": "\u22B2", "vartriangleright": "\u22B3", "vBar": "\u2AE8", "Vbar": "\u2AEB", "vBarv": "\u2AE9", "vcy": "\u0432", "Vcy": "\u0412", "vdash": "\u22A2", "vDash": "\u22A8", "Vdash": "\u22A9", "VDash": "\u22AB", "Vdashl": "\u2AE6", "vee": "\u2228", "Vee": "\u22C1", "veebar": "\u22BB", "veeeq": "\u225A", "vellip": "\u22EE", "verbar": "|", "Verbar": "\u2016", "vert": "|", "Vert": "\u2016", "VerticalBar": "\u2223", "VerticalLine": "|", "VerticalSeparator": "\u2758", "VerticalTilde": "\u2240", "VeryThinSpace": "\u200A", "vfr": "\u{1D533}", "Vfr": "\u{1D519}", "vltri": "\u22B2", "vnsub": "\u2282\u20D2", "vnsup": "\u2283\u20D2", "vopf": "\u{1D567}", "Vopf": "\u{1D54D}", "vprop": "\u221D", "vrtri": "\u22B3", "vscr": "\u{1D4CB}", "Vscr": "\u{1D4B1}", "vsubne": "\u228A\uFE00", "vsubnE": "\u2ACB\uFE00", "vsupne": "\u228B\uFE00", "vsupnE": "\u2ACC\uFE00", "Vvdash": "\u22AA", "vzigzag": "\u299A", "wcirc": "\u0175", "Wcirc": "\u0174", "wedbar": "\u2A5F", "wedge": "\u2227", "Wedge": "\u22C0", "wedgeq": "\u2259", "weierp": "\u2118", "wfr": "\u{1D534}", "Wfr": "\u{1D51A}", "wopf": "\u{1D568}", "Wopf": "\u{1D54E}", "wp": "\u2118", "wr": "\u2240", "wreath": "\u2240", "wscr": "\u{1D4CC}", "Wscr": "\u{1D4B2}", "xcap": "\u22C2", "xcirc": "\u25EF", "xcup": "\u22C3", "xdtri": "\u25BD", "xfr": "\u{1D535}", "Xfr": "\u{1D51B}", "xharr": "\u27F7", "xhArr": "\u27FA", "xi": "\u03BE", "Xi": "\u039E", "xlarr": "\u27F5", "xlArr": "\u27F8", "xmap": "\u27FC", "xnis": "\u22FB", "xodot": "\u2A00", "xopf": "\u{1D569}", "Xopf": "\u{1D54F}", "xoplus": "\u2A01", "xotime": "\u2A02", "xrarr": "\u27F6", "xrArr": "\u27F9", "xscr": "\u{1D4CD}", "Xscr": "\u{1D4B3}", "xsqcup": "\u2A06", "xuplus": "\u2A04", "xutri": "\u25B3", "xvee": "\u22C1", "xwedge": "\u22C0", "yacute": "\xFD", "Yacute": "\xDD", "yacy": "\u044F", "YAcy": "\u042F", "ycirc": "\u0177", "Ycirc": "\u0176", "ycy": "\u044B", "Ycy": "\u042B", "yen": "\xA5", "yfr": "\u{1D536}", "Yfr": "\u{1D51C}", "yicy": "\u0457", "YIcy": "\u0407", "yopf": "\u{1D56A}", "Yopf": "\u{1D550}", "yscr": "\u{1D4CE}", "Yscr": "\u{1D4B4}", "yucy": "\u044E", "YUcy": "\u042E", "yuml": "\xFF", "Yuml": "\u0178", "zacute": "\u017A", "Zacute": "\u0179", "zcaron": "\u017E", "Zcaron": "\u017D", "zcy": "\u0437", "Zcy": "\u0417", "zdot": "\u017C", "Zdot": "\u017B", "zeetrf": "\u2128", "ZeroWidthSpace": "\u200B", "zeta": "\u03B6", "Zeta": "\u0396", "zfr": "\u{1D537}", "Zfr": "\u2128", "zhcy": "\u0436", "ZHcy": "\u0416", "zigrarr": "\u21DD", "zopf": "\u{1D56B}", "Zopf": "\u2124", "zscr": "\u{1D4CF}", "Zscr": "\u{1D4B5}", "zwj": "\u200D", "zwnj": "\u200C" };
+      var decodeMapLegacy = { "aacute": "\xE1", "Aacute": "\xC1", "acirc": "\xE2", "Acirc": "\xC2", "acute": "\xB4", "aelig": "\xE6", "AElig": "\xC6", "agrave": "\xE0", "Agrave": "\xC0", "amp": "&", "AMP": "&", "aring": "\xE5", "Aring": "\xC5", "atilde": "\xE3", "Atilde": "\xC3", "auml": "\xE4", "Auml": "\xC4", "brvbar": "\xA6", "ccedil": "\xE7", "Ccedil": "\xC7", "cedil": "\xB8", "cent": "\xA2", "copy": "\xA9", "COPY": "\xA9", "curren": "\xA4", "deg": "\xB0", "divide": "\xF7", "eacute": "\xE9", "Eacute": "\xC9", "ecirc": "\xEA", "Ecirc": "\xCA", "egrave": "\xE8", "Egrave": "\xC8", "eth": "\xF0", "ETH": "\xD0", "euml": "\xEB", "Euml": "\xCB", "frac12": "\xBD", "frac14": "\xBC", "frac34": "\xBE", "gt": ">", "GT": ">", "iacute": "\xED", "Iacute": "\xCD", "icirc": "\xEE", "Icirc": "\xCE", "iexcl": "\xA1", "igrave": "\xEC", "Igrave": "\xCC", "iquest": "\xBF", "iuml": "\xEF", "Iuml": "\xCF", "laquo": "\xAB", "lt": "<", "LT": "<", "macr": "\xAF", "micro": "\xB5", "middot": "\xB7", "nbsp": "\xA0", "not": "\xAC", "ntilde": "\xF1", "Ntilde": "\xD1", "oacute": "\xF3", "Oacute": "\xD3", "ocirc": "\xF4", "Ocirc": "\xD4", "ograve": "\xF2", "Ograve": "\xD2", "ordf": "\xAA", "ordm": "\xBA", "oslash": "\xF8", "Oslash": "\xD8", "otilde": "\xF5", "Otilde": "\xD5", "ouml": "\xF6", "Ouml": "\xD6", "para": "\xB6", "plusmn": "\xB1", "pound": "\xA3", "quot": '"', "QUOT": '"', "raquo": "\xBB", "reg": "\xAE", "REG": "\xAE", "sect": "\xA7", "shy": "\xAD", "sup1": "\xB9", "sup2": "\xB2", "sup3": "\xB3", "szlig": "\xDF", "thorn": "\xFE", "THORN": "\xDE", "times": "\xD7", "uacute": "\xFA", "Uacute": "\xDA", "ucirc": "\xFB", "Ucirc": "\xDB", "ugrave": "\xF9", "Ugrave": "\xD9", "uml": "\xA8", "uuml": "\xFC", "Uuml": "\xDC", "yacute": "\xFD", "Yacute": "\xDD", "yen": "\xA5", "yuml": "\xFF" };
+      var decodeMapNumeric = { "0": "\uFFFD", "128": "\u20AC", "130": "\u201A", "131": "\u0192", "132": "\u201E", "133": "\u2026", "134": "\u2020", "135": "\u2021", "136": "\u02C6", "137": "\u2030", "138": "\u0160", "139": "\u2039", "140": "\u0152", "142": "\u017D", "145": "\u2018", "146": "\u2019", "147": "\u201C", "148": "\u201D", "149": "\u2022", "150": "\u2013", "151": "\u2014", "152": "\u02DC", "153": "\u2122", "154": "\u0161", "155": "\u203A", "156": "\u0153", "158": "\u017E", "159": "\u0178" };
+      var invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];
+      var stringFromCharCode = String.fromCharCode;
+      var object = {};
+      var hasOwnProperty = object.hasOwnProperty;
+      var has = function(object2, propertyName) {
+        return hasOwnProperty.call(object2, propertyName);
+      };
+      var contains = function(array, value) {
+        var index = -1;
+        var length = array.length;
+        while (++index < length) {
+          if (array[index] == value) {
+            return true;
+          }
+        }
+        return false;
+      };
+      var merge2 = function(options, defaults2) {
+        if (!options) {
+          return defaults2;
+        }
+        var result = {};
+        var key2;
+        for (key2 in defaults2) {
+          result[key2] = has(options, key2) ? options[key2] : defaults2[key2];
+        }
+        return result;
+      };
+      var codePointToSymbol = function(codePoint, strict) {
+        var output = "";
+        if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
+          if (strict) {
+            parseError("character reference outside the permissible Unicode range");
+          }
+          return "\uFFFD";
+        }
+        if (has(decodeMapNumeric, codePoint)) {
+          if (strict) {
+            parseError("disallowed character reference");
+          }
+          return decodeMapNumeric[codePoint];
+        }
+        if (strict && contains(invalidReferenceCodePoints, codePoint)) {
+          parseError("disallowed character reference");
+        }
+        if (codePoint > 65535) {
+          codePoint -= 65536;
+          output += stringFromCharCode(codePoint >>> 10 & 1023 | 55296);
+          codePoint = 56320 | codePoint & 1023;
+        }
+        output += stringFromCharCode(codePoint);
+        return output;
+      };
+      var hexEscape = function(codePoint) {
+        return "&#x" + codePoint.toString(16).toUpperCase() + ";";
+      };
+      var decEscape = function(codePoint) {
+        return "&#" + codePoint + ";";
+      };
+      var parseError = function(message) {
+        throw Error("Parse error: " + message);
+      };
+      var encode = function(string, options) {
+        options = merge2(options, encode.options);
+        var strict = options.strict;
+        if (strict && regexInvalidRawCodePoint.test(string)) {
+          parseError("forbidden code point");
+        }
+        var encodeEverything = options.encodeEverything;
+        var useNamedReferences = options.useNamedReferences;
+        var allowUnsafeSymbols = options.allowUnsafeSymbols;
+        var escapeCodePoint = options.decimal ? decEscape : hexEscape;
+        var escapeBmpSymbol = function(symbol) {
+          return escapeCodePoint(symbol.charCodeAt(0));
+        };
+        if (encodeEverything) {
+          string = string.replace(regexAsciiWhitelist, function(symbol) {
+            if (useNamedReferences && has(encodeMap, symbol)) {
+              return "&" + encodeMap[symbol] + ";";
+            }
+            return escapeBmpSymbol(symbol);
+          });
+          if (useNamedReferences) {
+            string = string.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒").replace(/fj/g, "fj");
+          }
+          if (useNamedReferences) {
+            string = string.replace(regexEncodeNonAscii, function(string2) {
+              return "&" + encodeMap[string2] + ";";
+            });
+          }
+        } else if (useNamedReferences) {
+          if (!allowUnsafeSymbols) {
+            string = string.replace(regexEscape, function(string2) {
+              return "&" + encodeMap[string2] + ";";
+            });
+          }
+          string = string.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒");
+          string = string.replace(regexEncodeNonAscii, function(string2) {
+            return "&" + encodeMap[string2] + ";";
+          });
+        } else if (!allowUnsafeSymbols) {
+          string = string.replace(regexEscape, escapeBmpSymbol);
+        }
+        return string.replace(regexAstralSymbols, function($0) {
+          var high = $0.charCodeAt(0);
+          var low = $0.charCodeAt(1);
+          var codePoint = (high - 55296) * 1024 + low - 56320 + 65536;
+          return escapeCodePoint(codePoint);
+        }).replace(regexBmpWhitelist, escapeBmpSymbol);
+      };
+      encode.options = {
+        "allowUnsafeSymbols": false,
+        "encodeEverything": false,
+        "strict": false,
+        "useNamedReferences": false,
+        "decimal": false
+      };
+      var decode = function(html, options) {
+        options = merge2(options, decode.options);
+        var strict = options.strict;
+        if (strict && regexInvalidEntity.test(html)) {
+          parseError("malformed character reference");
+        }
+        return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {
+          var codePoint;
+          var semicolon;
+          var decDigits;
+          var hexDigits;
+          var reference;
+          var next;
+          if ($1) {
+            reference = $1;
+            return decodeMap[reference];
+          }
+          if ($2) {
+            reference = $2;
+            next = $3;
+            if (next && options.isAttributeValue) {
+              if (strict && next == "=") {
+                parseError("`&` did not start a character reference");
+              }
+              return $0;
+            } else {
+              if (strict) {
+                parseError(
+                  "named character reference was not terminated by a semicolon"
+                );
+              }
+              return decodeMapLegacy[reference] + (next || "");
+            }
+          }
+          if ($4) {
+            decDigits = $4;
+            semicolon = $5;
+            if (strict && !semicolon) {
+              parseError("character reference was not terminated by a semicolon");
+            }
+            codePoint = parseInt(decDigits, 10);
+            return codePointToSymbol(codePoint, strict);
+          }
+          if ($6) {
+            hexDigits = $6;
+            semicolon = $7;
+            if (strict && !semicolon) {
+              parseError("character reference was not terminated by a semicolon");
+            }
+            codePoint = parseInt(hexDigits, 16);
+            return codePointToSymbol(codePoint, strict);
+          }
+          if (strict) {
+            parseError(
+              "named character reference was not terminated by a semicolon"
+            );
+          }
+          return $0;
+        });
+      };
+      decode.options = {
+        "isAttributeValue": false,
+        "strict": false
+      };
+      var escape2 = function(string) {
+        return string.replace(regexEscape, function($0) {
+          return escapeMap[$0];
+        });
+      };
+      var he = {
+        "version": "1.2.0",
+        "encode": encode,
+        "decode": decode,
+        "escape": escape2,
+        "unescape": decode
+      };
+      if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
+        define(function() {
+          return he;
+        });
+      } else if (freeExports && !freeExports.nodeType) {
+        if (freeModule) {
+          freeModule.exports = he;
+        } else {
+          for (var key in he) {
+            has(he, key) && (freeExports[key] = he[key]);
+          }
+        }
+      } else {
+        root.he = he;
+      }
+    })(exports2);
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/utils.js
+var require_utils = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/utils.js"(exports2) {
+    "use strict";
+    var path4 = require("path");
+    var util = require("util");
+    var he = require_he();
+    var MOCHA_ID_PROP_NAME = "__mocha_id__";
+    exports2.inherits = util.inherits;
+    exports2.escape = function(html) {
+      return he.encode(String(html), { useNamedReferences: false });
+    };
+    exports2.isString = function(obj) {
+      return typeof obj === "string";
+    };
+    exports2.slug = function(str2) {
+      return str2.toLowerCase().replace(/\s+/g, "-").replace(/[^-\w]/g, "").replace(/-{2,}/g, "-");
+    };
+    exports2.clean = function(str2) {
+      str2 = str2.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/, "").replace(
+        /^function(?:\s*|\s[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\}|((?:.|\n)*))$/,
+        "$1$2$3"
+      );
+      var spaces = str2.match(/^\n?( *)/)[1].length;
+      var tabs = str2.match(/^\n?(\t*)/)[1].length;
+      var re = new RegExp(
+        "^\n?" + (tabs ? "	" : " ") + "{" + (tabs || spaces) + "}",
+        "gm"
+      );
+      str2 = str2.replace(re, "");
+      return str2.trim();
+    };
+    function emptyRepresentation(value, typeHint) {
+      switch (typeHint) {
+        case "function":
+          return "[Function]";
+        case "object":
+          return "{}";
+        case "array":
+          return "[]";
+        default:
+          return value.toString();
+      }
+    }
+    var canonicalType = exports2.canonicalType = function canonicalType2(value) {
+      if (value === void 0) {
+        return "undefined";
+      } else if (value === null) {
+        return "null";
+      } else if (Buffer.isBuffer(value)) {
+        return "buffer";
+      }
+      return Object.prototype.toString.call(value).replace(/^\[.+\s(.+?)]$/, "$1").toLowerCase();
+    };
+    exports2.type = function type2(value) {
+      if (value === null)
+        return "null";
+      const primitives = /* @__PURE__ */ new Set([
+        "undefined",
+        "boolean",
+        "number",
+        "string",
+        "bigint",
+        "symbol"
+      ]);
+      const _type = typeof value;
+      if (_type === "function")
+        return _type;
+      if (primitives.has(_type))
+        return _type;
+      if (value instanceof String)
+        return "string";
+      if (value instanceof Error)
+        return "error";
+      if (Array.isArray(value))
+        return "array";
+      return _type;
+    };
+    exports2.stringify = function(value) {
+      var typeHint = canonicalType(value);
+      if (!~["object", "array", "function"].indexOf(typeHint)) {
+        if (typeHint === "buffer") {
+          var json2 = Buffer.prototype.toJSON.call(value);
+          return jsonStringify(
+            json2.data && json2.type ? json2.data : json2,
+            2
+          ).replace(/,(\n|$)/g, "$1");
+        }
+        if (typeHint === "string" && typeof value === "object") {
+          value = value.split("").reduce(function(acc, char, idx) {
+            acc[idx] = char;
+            return acc;
+          }, {});
+          typeHint = "object";
+        } else {
+          return jsonStringify(value);
+        }
+      }
+      for (var prop in value) {
+        if (Object.prototype.hasOwnProperty.call(value, prop)) {
+          return jsonStringify(
+            exports2.canonicalize(value, null, typeHint),
+            2
+          ).replace(/,(\n|$)/g, "$1");
+        }
+      }
+      return emptyRepresentation(value, typeHint);
+    };
+    function jsonStringify(object, spaces, depth) {
+      if (typeof spaces === "undefined") {
+        return _stringify(object);
+      }
+      depth = depth || 1;
+      var space = spaces * depth;
+      var str2 = Array.isArray(object) ? "[" : "{";
+      var end = Array.isArray(object) ? "]" : "}";
+      var length = typeof object.length === "number" ? object.length : Object.keys(object).length;
+      function repeat2(s, n) {
+        return new Array(n).join(s);
+      }
+      function _stringify(val) {
+        switch (canonicalType(val)) {
+          case "null":
+          case "undefined":
+            val = "[" + val + "]";
+            break;
+          case "array":
+          case "object":
+            val = jsonStringify(val, spaces, depth + 1);
+            break;
+          case "boolean":
+          case "regexp":
+          case "symbol":
+          case "number":
+            val = val === 0 && 1 / val === -Infinity ? "-0" : val.toString();
+            break;
+          case "bigint":
+            val = val.toString() + "n";
+            break;
+          case "date":
+            var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();
+            val = "[Date: " + sDate + "]";
+            break;
+          case "buffer":
+            var json2 = val.toJSON();
+            json2 = json2.data && json2.type ? json2.data : json2;
+            val = "[Buffer: " + jsonStringify(json2, 2, depth + 1) + "]";
+            break;
+          default:
+            val = val === "[Function]" || val === "[Circular]" ? val : JSON.stringify(val);
+        }
+        return val;
+      }
+      for (var i in object) {
+        if (!Object.prototype.hasOwnProperty.call(object, i)) {
+          continue;
+        }
+        --length;
+        str2 += "\n " + repeat2(" ", space) + (Array.isArray(object) ? "" : '"' + i + '": ') + // key
+        _stringify(object[i]) + // value
+        (length ? "," : "");
+      }
+      return str2 + // [], {}
+      (str2.length !== 1 ? "\n" + repeat2(" ", --space) + end : end);
+    }
+    exports2.canonicalize = function canonicalize(value, stack, typeHint) {
+      var canonicalizedObj;
+      var prop;
+      typeHint = typeHint || canonicalType(value);
+      function withStack(value2, fn) {
+        stack.push(value2);
+        fn();
+        stack.pop();
+      }
+      stack = stack || [];
+      if (stack.indexOf(value) !== -1) {
+        return "[Circular]";
+      }
+      switch (typeHint) {
+        case "undefined":
+        case "buffer":
+        case "null":
+          canonicalizedObj = value;
+          break;
+        case "array":
+          withStack(value, function() {
+            canonicalizedObj = value.map(function(item) {
+              return exports2.canonicalize(item, stack);
+            });
+          });
+          break;
+        case "function":
+          for (prop in value) {
+            canonicalizedObj = {};
+            break;
+          }
+          if (!canonicalizedObj) {
+            canonicalizedObj = emptyRepresentation(value, typeHint);
+            break;
+          }
+        case "object":
+          canonicalizedObj = canonicalizedObj || {};
+          withStack(value, function() {
+            Object.keys(value).sort().forEach(function(key) {
+              canonicalizedObj[key] = exports2.canonicalize(value[key], stack);
+            });
+          });
+          break;
+        case "date":
+        case "number":
+        case "regexp":
+        case "boolean":
+        case "symbol":
+          canonicalizedObj = value;
+          break;
+        default:
+          canonicalizedObj = value + "";
+      }
+      return canonicalizedObj;
+    };
+    exports2.stackTraceFilter = function() {
+      var is = typeof document === "undefined" ? { node: true } : { browser: true };
+      var slash = path4.sep;
+      var cwd;
+      if (is.node) {
+        cwd = exports2.cwd() + slash;
+      } else {
+        cwd = (typeof location === "undefined" ? window.location : location).href.replace(/\/[^/]*$/, "/");
+        slash = "/";
+      }
+      function isMochaInternal(line) {
+        return ~line.indexOf("node_modules" + slash + "mocha" + slash) || ~line.indexOf(slash + "mocha.js") || ~line.indexOf(slash + "mocha.min.js");
+      }
+      function isNodeInternal(line) {
+        return ~line.indexOf("(timers.js:") || ~line.indexOf("(events.js:") || ~line.indexOf("(node.js:") || ~line.indexOf("(module.js:") || ~line.indexOf("GeneratorFunctionPrototype.next (native)") || false;
+      }
+      return function(stack) {
+        stack = stack.split("\n");
+        stack = stack.reduce(function(list, line) {
+          if (isMochaInternal(line)) {
+            return list;
+          }
+          if (is.node && isNodeInternal(line)) {
+            return list;
+          }
+          if (/:\d+:\d+\)?$/.test(line)) {
+            line = line.replace("(" + cwd, "(");
+          }
+          list.push(line);
+          return list;
+        }, []);
+        return stack.join("\n");
+      };
+    };
+    exports2.isPromise = function isPromise2(value) {
+      return typeof value === "object" && value !== null && typeof value.then === "function";
+    };
+    exports2.clamp = function clamp(value, range) {
+      return Math.min(Math.max(value, range[0]), range[1]);
+    };
+    exports2.noop = function() {
+    };
+    exports2.createMap = function(obj) {
+      return Object.assign.apply(
+        null,
+        [/* @__PURE__ */ Object.create(null)].concat(Array.prototype.slice.call(arguments))
+      );
+    };
+    exports2.defineConstants = function(obj) {
+      if (canonicalType(obj) !== "object" || !Object.keys(obj).length) {
+        throw new TypeError("Invalid argument; expected a non-empty object");
+      }
+      return Object.freeze(exports2.createMap(obj));
+    };
+    exports2.cwd = function cwd() {
+      return process.cwd();
+    };
+    exports2.isBrowser = function isBrowser() {
+      return Boolean(process.browser);
+    };
+    exports2.castArray = function castArray(value) {
+      if (value === void 0) {
+        return [];
+      }
+      if (value === null) {
+        return [null];
+      }
+      if (typeof value === "object" && (typeof value[Symbol.iterator] === "function" || value.length !== void 0)) {
+        return Array.from(value);
+      }
+      return [value];
+    };
+    exports2.constants = exports2.defineConstants({
+      MOCHA_ID_PROP_NAME
+    });
+    var uniqueIDBase = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
+    exports2.uniqueID = () => {
+      let id = "";
+      for (let i = 0; i < 21; i++) {
+        id += uniqueIDBase[Math.random() * 64 | 0];
+      }
+      return id;
+    };
+    exports2.assignNewMochaID = (obj) => {
+      const id = exports2.uniqueID();
+      Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {
+        get() {
+          return id;
+        }
+      });
+      return obj;
+    };
+    exports2.getMochaID = (obj) => obj && typeof obj === "object" ? obj[MOCHA_ID_PROP_NAME] : void 0;
+  }
+});
+
+// ../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
+var require_has_flag = __commonJS({
+  "../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports2, module2) {
+    "use strict";
+    module2.exports = (flag, argv = process.argv) => {
+      const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
+      const position = argv.indexOf(prefix + flag);
+      const terminatorPosition = argv.indexOf("--");
+      return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js
+var require_supports_color = __commonJS({
+  "../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js"(exports2, module2) {
+    "use strict";
+    var os = require("os");
+    var tty = require("tty");
+    var hasFlag = require_has_flag();
+    var { env } = process;
+    var flagForceColor;
+    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
+      flagForceColor = 0;
+    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
+      flagForceColor = 1;
+    }
+    function envForceColor() {
+      if ("FORCE_COLOR" in env) {
+        if (env.FORCE_COLOR === "true") {
+          return 1;
+        }
+        if (env.FORCE_COLOR === "false") {
+          return 0;
+        }
+        return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
+      }
+    }
+    function translateLevel(level) {
+      if (level === 0) {
+        return false;
+      }
+      return {
+        level,
+        hasBasic: true,
+        has256: level >= 2,
+        has16m: level >= 3
+      };
+    }
+    function supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
+      const noFlagForceColor = envForceColor();
+      if (noFlagForceColor !== void 0) {
+        flagForceColor = noFlagForceColor;
+      }
+      const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
+      if (forceColor === 0) {
+        return 0;
+      }
+      if (sniffFlags) {
+        if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
+          return 3;
+        }
+        if (hasFlag("color=256")) {
+          return 2;
+        }
+      }
+      if (haveStream && !streamIsTTY && forceColor === void 0) {
+        return 0;
+      }
+      const min = forceColor || 0;
+      if (env.TERM === "dumb") {
+        return min;
+      }
+      if (process.platform === "win32") {
+        const osRelease = os.release().split(".");
+        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
+          return Number(osRelease[2]) >= 14931 ? 3 : 2;
+        }
+        return 1;
+      }
+      if ("CI" in env) {
+        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
+          return 1;
+        }
+        return min;
+      }
+      if ("TEAMCITY_VERSION" in env) {
+        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
+      }
+      if (env.COLORTERM === "truecolor") {
+        return 3;
+      }
+      if ("TERM_PROGRAM" in env) {
+        const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
+        switch (env.TERM_PROGRAM) {
+          case "iTerm.app":
+            return version >= 3 ? 3 : 2;
+          case "Apple_Terminal":
+            return 2;
+        }
+      }
+      if (/-256(color)?$/i.test(env.TERM)) {
+        return 2;
+      }
+      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
+        return 1;
+      }
+      if ("COLORTERM" in env) {
+        return 1;
+      }
+      return min;
+    }
+    function getSupportLevel(stream2, options = {}) {
+      const level = supportsColor(stream2, {
+        streamIsTTY: stream2 && stream2.isTTY,
+        ...options
+      });
+      return translateLevel(level);
+    }
+    module2.exports = {
+      supportsColor: getSupportLevel,
+      stdout: getSupportLevel({ isTTY: tty.isatty(1) }),
+      stderr: getSupportLevel({ isTTY: tty.isatty(2) })
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js
+var require_color_name = __commonJS({
+  "../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports2, module2) {
+    "use strict";
+    module2.exports = {
+      "aliceblue": [240, 248, 255],
+      "antiquewhite": [250, 235, 215],
+      "aqua": [0, 255, 255],
+      "aquamarine": [127, 255, 212],
+      "azure": [240, 255, 255],
+      "beige": [245, 245, 220],
+      "bisque": [255, 228, 196],
+      "black": [0, 0, 0],
+      "blanchedalmond": [255, 235, 205],
+      "blue": [0, 0, 255],
+      "blueviolet": [138, 43, 226],
+      "brown": [165, 42, 42],
+      "burlywood": [222, 184, 135],
+      "cadetblue": [95, 158, 160],
+      "chartreuse": [127, 255, 0],
+      "chocolate": [210, 105, 30],
+      "coral": [255, 127, 80],
+      "cornflowerblue": [100, 149, 237],
+      "cornsilk": [255, 248, 220],
+      "crimson": [220, 20, 60],
+      "cyan": [0, 255, 255],
+      "darkblue": [0, 0, 139],
+      "darkcyan": [0, 139, 139],
+      "darkgoldenrod": [184, 134, 11],
+      "darkgray": [169, 169, 169],
+      "darkgreen": [0, 100, 0],
+      "darkgrey": [169, 169, 169],
+      "darkkhaki": [189, 183, 107],
+      "darkmagenta": [139, 0, 139],
+      "darkolivegreen": [85, 107, 47],
+      "darkorange": [255, 140, 0],
+      "darkorchid": [153, 50, 204],
+      "darkred": [139, 0, 0],
+      "darksalmon": [233, 150, 122],
+      "darkseagreen": [143, 188, 143],
+      "darkslateblue": [72, 61, 139],
+      "darkslategray": [47, 79, 79],
+      "darkslategrey": [47, 79, 79],
+      "darkturquoise": [0, 206, 209],
+      "darkviolet": [148, 0, 211],
+      "deeppink": [255, 20, 147],
+      "deepskyblue": [0, 191, 255],
+      "dimgray": [105, 105, 105],
+      "dimgrey": [105, 105, 105],
+      "dodgerblue": [30, 144, 255],
+      "firebrick": [178, 34, 34],
+      "floralwhite": [255, 250, 240],
+      "forestgreen": [34, 139, 34],
+      "fuchsia": [255, 0, 255],
+      "gainsboro": [220, 220, 220],
+      "ghostwhite": [248, 248, 255],
+      "gold": [255, 215, 0],
+      "goldenrod": [218, 165, 32],
+      "gray": [128, 128, 128],
+      "green": [0, 128, 0],
+      "greenyellow": [173, 255, 47],
+      "grey": [128, 128, 128],
+      "honeydew": [240, 255, 240],
+      "hotpink": [255, 105, 180],
+      "indianred": [205, 92, 92],
+      "indigo": [75, 0, 130],
+      "ivory": [255, 255, 240],
+      "khaki": [240, 230, 140],
+      "lavender": [230, 230, 250],
+      "lavenderblush": [255, 240, 245],
+      "lawngreen": [124, 252, 0],
+      "lemonchiffon": [255, 250, 205],
+      "lightblue": [173, 216, 230],
+      "lightcoral": [240, 128, 128],
+      "lightcyan": [224, 255, 255],
+      "lightgoldenrodyellow": [250, 250, 210],
+      "lightgray": [211, 211, 211],
+      "lightgreen": [144, 238, 144],
+      "lightgrey": [211, 211, 211],
+      "lightpink": [255, 182, 193],
+      "lightsalmon": [255, 160, 122],
+      "lightseagreen": [32, 178, 170],
+      "lightskyblue": [135, 206, 250],
+      "lightslategray": [119, 136, 153],
+      "lightslategrey": [119, 136, 153],
+      "lightsteelblue": [176, 196, 222],
+      "lightyellow": [255, 255, 224],
+      "lime": [0, 255, 0],
+      "limegreen": [50, 205, 50],
+      "linen": [250, 240, 230],
+      "magenta": [255, 0, 255],
+      "maroon": [128, 0, 0],
+      "mediumaquamarine": [102, 205, 170],
+      "mediumblue": [0, 0, 205],
+      "mediumorchid": [186, 85, 211],
+      "mediumpurple": [147, 112, 219],
+      "mediumseagreen": [60, 179, 113],
+      "mediumslateblue": [123, 104, 238],
+      "mediumspringgreen": [0, 250, 154],
+      "mediumturquoise": [72, 209, 204],
+      "mediumvioletred": [199, 21, 133],
+      "midnightblue": [25, 25, 112],
+      "mintcream": [245, 255, 250],
+      "mistyrose": [255, 228, 225],
+      "moccasin": [255, 228, 181],
+      "navajowhite": [255, 222, 173],
+      "navy": [0, 0, 128],
+      "oldlace": [253, 245, 230],
+      "olive": [128, 128, 0],
+      "olivedrab": [107, 142, 35],
+      "orange": [255, 165, 0],
+      "orangered": [255, 69, 0],
+      "orchid": [218, 112, 214],
+      "palegoldenrod": [238, 232, 170],
+      "palegreen": [152, 251, 152],
+      "paleturquoise": [175, 238, 238],
+      "palevioletred": [219, 112, 147],
+      "papayawhip": [255, 239, 213],
+      "peachpuff": [255, 218, 185],
+      "peru": [205, 133, 63],
+      "pink": [255, 192, 203],
+      "plum": [221, 160, 221],
+      "powderblue": [176, 224, 230],
+      "purple": [128, 0, 128],
+      "rebeccapurple": [102, 51, 153],
+      "red": [255, 0, 0],
+      "rosybrown": [188, 143, 143],
+      "royalblue": [65, 105, 225],
+      "saddlebrown": [139, 69, 19],
+      "salmon": [250, 128, 114],
+      "sandybrown": [244, 164, 96],
+      "seagreen": [46, 139, 87],
+      "seashell": [255, 245, 238],
+      "sienna": [160, 82, 45],
+      "silver": [192, 192, 192],
+      "skyblue": [135, 206, 235],
+      "slateblue": [106, 90, 205],
+      "slategray": [112, 128, 144],
+      "slategrey": [112, 128, 144],
+      "snow": [255, 250, 250],
+      "springgreen": [0, 255, 127],
+      "steelblue": [70, 130, 180],
+      "tan": [210, 180, 140],
+      "teal": [0, 128, 128],
+      "thistle": [216, 191, 216],
+      "tomato": [255, 99, 71],
+      "turquoise": [64, 224, 208],
+      "violet": [238, 130, 238],
+      "wheat": [245, 222, 179],
+      "white": [255, 255, 255],
+      "whitesmoke": [245, 245, 245],
+      "yellow": [255, 255, 0],
+      "yellowgreen": [154, 205, 50]
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js
+var require_conversions = __commonJS({
+  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js"(exports2, module2) {
+    var cssKeywords = require_color_name();
+    var reverseKeywords = {};
+    for (const key of Object.keys(cssKeywords)) {
+      reverseKeywords[cssKeywords[key]] = key;
+    }
+    var convert = {
+      rgb: { channels: 3, labels: "rgb" },
+      hsl: { channels: 3, labels: "hsl" },
+      hsv: { channels: 3, labels: "hsv" },
+      hwb: { channels: 3, labels: "hwb" },
+      cmyk: { channels: 4, labels: "cmyk" },
+      xyz: { channels: 3, labels: "xyz" },
+      lab: { channels: 3, labels: "lab" },
+      lch: { channels: 3, labels: "lch" },
+      hex: { channels: 1, labels: ["hex"] },
+      keyword: { channels: 1, labels: ["keyword"] },
+      ansi16: { channels: 1, labels: ["ansi16"] },
+      ansi256: { channels: 1, labels: ["ansi256"] },
+      hcg: { channels: 3, labels: ["h", "c", "g"] },
+      apple: { channels: 3, labels: ["r16", "g16", "b16"] },
+      gray: { channels: 1, labels: ["gray"] }
+    };
+    module2.exports = convert;
+    for (const model of Object.keys(convert)) {
+      if (!("channels" in convert[model])) {
+        throw new Error("missing channels property: " + model);
+      }
+      if (!("labels" in convert[model])) {
+        throw new Error("missing channel labels property: " + model);
+      }
+      if (convert[model].labels.length !== convert[model].channels) {
+        throw new Error("channel and label counts mismatch: " + model);
+      }
+      const { channels, labels } = convert[model];
+      delete convert[model].channels;
+      delete convert[model].labels;
+      Object.defineProperty(convert[model], "channels", { value: channels });
+      Object.defineProperty(convert[model], "labels", { value: labels });
+    }
+    convert.rgb.hsl = function(rgb) {
+      const r = rgb[0] / 255;
+      const g = rgb[1] / 255;
+      const b = rgb[2] / 255;
+      const min = Math.min(r, g, b);
+      const max = Math.max(r, g, b);
+      const delta = max - min;
+      let h;
+      let s;
+      if (max === min) {
+        h = 0;
+      } else if (r === max) {
+        h = (g - b) / delta;
+      } else if (g === max) {
+        h = 2 + (b - r) / delta;
+      } else if (b === max) {
+        h = 4 + (r - g) / delta;
+      }
+      h = Math.min(h * 60, 360);
+      if (h < 0) {
+        h += 360;
+      }
+      const l = (min + max) / 2;
+      if (max === min) {
+        s = 0;
+      } else if (l <= 0.5) {
+        s = delta / (max + min);
+      } else {
+        s = delta / (2 - max - min);
+      }
+      return [h, s * 100, l * 100];
+    };
+    convert.rgb.hsv = function(rgb) {
+      let rdif;
+      let gdif;
+      let bdif;
+      let h;
+      let s;
+      const r = rgb[0] / 255;
+      const g = rgb[1] / 255;
+      const b = rgb[2] / 255;
+      const v = Math.max(r, g, b);
+      const diff = v - Math.min(r, g, b);
+      const diffc = function(c) {
+        return (v - c) / 6 / diff + 1 / 2;
+      };
+      if (diff === 0) {
+        h = 0;
+        s = 0;
+      } else {
+        s = diff / v;
+        rdif = diffc(r);
+        gdif = diffc(g);
+        bdif = diffc(b);
+        if (r === v) {
+          h = bdif - gdif;
+        } else if (g === v) {
+          h = 1 / 3 + rdif - bdif;
+        } else if (b === v) {
+          h = 2 / 3 + gdif - rdif;
+        }
+        if (h < 0) {
+          h += 1;
+        } else if (h > 1) {
+          h -= 1;
+        }
+      }
+      return [
+        h * 360,
+        s * 100,
+        v * 100
+      ];
+    };
+    convert.rgb.hwb = function(rgb) {
+      const r = rgb[0];
+      const g = rgb[1];
+      let b = rgb[2];
+      const h = convert.rgb.hsl(rgb)[0];
+      const w = 1 / 255 * Math.min(r, Math.min(g, b));
+      b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
+      return [h, w * 100, b * 100];
+    };
+    convert.rgb.cmyk = function(rgb) {
+      const r = rgb[0] / 255;
+      const g = rgb[1] / 255;
+      const b = rgb[2] / 255;
+      const k = Math.min(1 - r, 1 - g, 1 - b);
+      const c = (1 - r - k) / (1 - k) || 0;
+      const m = (1 - g - k) / (1 - k) || 0;
+      const y = (1 - b - k) / (1 - k) || 0;
+      return [c * 100, m * 100, y * 100, k * 100];
+    };
+    function comparativeDistance(x, y) {
+      return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
+    }
+    convert.rgb.keyword = function(rgb) {
+      const reversed = reverseKeywords[rgb];
+      if (reversed) {
+        return reversed;
+      }
+      let currentClosestDistance = Infinity;
+      let currentClosestKeyword;
+      for (const keyword of Object.keys(cssKeywords)) {
+        const value = cssKeywords[keyword];
+        const distance = comparativeDistance(rgb, value);
+        if (distance < currentClosestDistance) {
+          currentClosestDistance = distance;
+          currentClosestKeyword = keyword;
+        }
+      }
+      return currentClosestKeyword;
+    };
+    convert.keyword.rgb = function(keyword) {
+      return cssKeywords[keyword];
+    };
+    convert.rgb.xyz = function(rgb) {
+      let r = rgb[0] / 255;
+      let g = rgb[1] / 255;
+      let b = rgb[2] / 255;
+      r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;
+      g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;
+      b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;
+      const x = r * 0.4124 + g * 0.3576 + b * 0.1805;
+      const y = r * 0.2126 + g * 0.7152 + b * 0.0722;
+      const z = r * 0.0193 + g * 0.1192 + b * 0.9505;
+      return [x * 100, y * 100, z * 100];
+    };
+    convert.rgb.lab = function(rgb) {
+      const xyz = convert.rgb.xyz(rgb);
+      let x = xyz[0];
+      let y = xyz[1];
+      let z = xyz[2];
+      x /= 95.047;
+      y /= 100;
+      z /= 108.883;
+      x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
+      y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
+      z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
+      const l = 116 * y - 16;
+      const a = 500 * (x - y);
+      const b = 200 * (y - z);
+      return [l, a, b];
+    };
+    convert.hsl.rgb = function(hsl) {
+      const h = hsl[0] / 360;
+      const s = hsl[1] / 100;
+      const l = hsl[2] / 100;
+      let t2;
+      let t3;
+      let val;
+      if (s === 0) {
+        val = l * 255;
+        return [val, val, val];
+      }
+      if (l < 0.5) {
+        t2 = l * (1 + s);
+      } else {
+        t2 = l + s - l * s;
+      }
+      const t1 = 2 * l - t2;
+      const rgb = [0, 0, 0];
+      for (let i = 0; i < 3; i++) {
+        t3 = h + 1 / 3 * -(i - 1);
+        if (t3 < 0) {
+          t3++;
+        }
+        if (t3 > 1) {
+          t3--;
+        }
+        if (6 * t3 < 1) {
+          val = t1 + (t2 - t1) * 6 * t3;
+        } else if (2 * t3 < 1) {
+          val = t2;
+        } else if (3 * t3 < 2) {
+          val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
+        } else {
+          val = t1;
+        }
+        rgb[i] = val * 255;
+      }
+      return rgb;
+    };
+    convert.hsl.hsv = function(hsl) {
+      const h = hsl[0];
+      let s = hsl[1] / 100;
+      let l = hsl[2] / 100;
+      let smin = s;
+      const lmin = Math.max(l, 0.01);
+      l *= 2;
+      s *= l <= 1 ? l : 2 - l;
+      smin *= lmin <= 1 ? lmin : 2 - lmin;
+      const v = (l + s) / 2;
+      const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
+      return [h, sv * 100, v * 100];
+    };
+    convert.hsv.rgb = function(hsv) {
+      const h = hsv[0] / 60;
+      const s = hsv[1] / 100;
+      let v = hsv[2] / 100;
+      const hi = Math.floor(h) % 6;
+      const f = h - Math.floor(h);
+      const p = 255 * v * (1 - s);
+      const q = 255 * v * (1 - s * f);
+      const t = 255 * v * (1 - s * (1 - f));
+      v *= 255;
+      switch (hi) {
+        case 0:
+          return [v, t, p];
+        case 1:
+          return [q, v, p];
+        case 2:
+          return [p, v, t];
+        case 3:
+          return [p, q, v];
+        case 4:
+          return [t, p, v];
+        case 5:
+          return [v, p, q];
+      }
+    };
+    convert.hsv.hsl = function(hsv) {
+      const h = hsv[0];
+      const s = hsv[1] / 100;
+      const v = hsv[2] / 100;
+      const vmin = Math.max(v, 0.01);
+      let sl;
+      let l;
+      l = (2 - s) * v;
+      const lmin = (2 - s) * vmin;
+      sl = s * vmin;
+      sl /= lmin <= 1 ? lmin : 2 - lmin;
+      sl = sl || 0;
+      l /= 2;
+      return [h, sl * 100, l * 100];
+    };
+    convert.hwb.rgb = function(hwb) {
+      const h = hwb[0] / 360;
+      let wh = hwb[1] / 100;
+      let bl = hwb[2] / 100;
+      const ratio = wh + bl;
+      let f;
+      if (ratio > 1) {
+        wh /= ratio;
+        bl /= ratio;
+      }
+      const i = Math.floor(6 * h);
+      const v = 1 - bl;
+      f = 6 * h - i;
+      if ((i & 1) !== 0) {
+        f = 1 - f;
+      }
+      const n = wh + f * (v - wh);
+      let r;
+      let g;
+      let b;
+      switch (i) {
+        default:
+        case 6:
+        case 0:
+          r = v;
+          g = n;
+          b = wh;
+          break;
+        case 1:
+          r = n;
+          g = v;
+          b = wh;
+          break;
+        case 2:
+          r = wh;
+          g = v;
+          b = n;
+          break;
+        case 3:
+          r = wh;
+          g = n;
+          b = v;
+          break;
+        case 4:
+          r = n;
+          g = wh;
+          b = v;
+          break;
+        case 5:
+          r = v;
+          g = wh;
+          b = n;
+          break;
+      }
+      return [r * 255, g * 255, b * 255];
+    };
+    convert.cmyk.rgb = function(cmyk) {
+      const c = cmyk[0] / 100;
+      const m = cmyk[1] / 100;
+      const y = cmyk[2] / 100;
+      const k = cmyk[3] / 100;
+      const r = 1 - Math.min(1, c * (1 - k) + k);
+      const g = 1 - Math.min(1, m * (1 - k) + k);
+      const b = 1 - Math.min(1, y * (1 - k) + k);
+      return [r * 255, g * 255, b * 255];
+    };
+    convert.xyz.rgb = function(xyz) {
+      const x = xyz[0] / 100;
+      const y = xyz[1] / 100;
+      const z = xyz[2] / 100;
+      let r;
+      let g;
+      let b;
+      r = x * 3.2406 + y * -1.5372 + z * -0.4986;
+      g = x * -0.9689 + y * 1.8758 + z * 0.0415;
+      b = x * 0.0557 + y * -0.204 + z * 1.057;
+      r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92;
+      g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92;
+      b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92;
+      r = Math.min(Math.max(0, r), 1);
+      g = Math.min(Math.max(0, g), 1);
+      b = Math.min(Math.max(0, b), 1);
+      return [r * 255, g * 255, b * 255];
+    };
+    convert.xyz.lab = function(xyz) {
+      let x = xyz[0];
+      let y = xyz[1];
+      let z = xyz[2];
+      x /= 95.047;
+      y /= 100;
+      z /= 108.883;
+      x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
+      y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
+      z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
+      const l = 116 * y - 16;
+      const a = 500 * (x - y);
+      const b = 200 * (y - z);
+      return [l, a, b];
+    };
+    convert.lab.xyz = function(lab) {
+      const l = lab[0];
+      const a = lab[1];
+      const b = lab[2];
+      let x;
+      let y;
+      let z;
+      y = (l + 16) / 116;
+      x = a / 500 + y;
+      z = y - b / 200;
+      const y2 = y ** 3;
+      const x2 = x ** 3;
+      const z2 = z ** 3;
+      y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;
+      x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;
+      z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;
+      x *= 95.047;
+      y *= 100;
+      z *= 108.883;
+      return [x, y, z];
+    };
+    convert.lab.lch = function(lab) {
+      const l = lab[0];
+      const a = lab[1];
+      const b = lab[2];
+      let h;
+      const hr = Math.atan2(b, a);
+      h = hr * 360 / 2 / Math.PI;
+      if (h < 0) {
+        h += 360;
+      }
+      const c = Math.sqrt(a * a + b * b);
+      return [l, c, h];
+    };
+    convert.lch.lab = function(lch) {
+      const l = lch[0];
+      const c = lch[1];
+      const h = lch[2];
+      const hr = h / 360 * 2 * Math.PI;
+      const a = c * Math.cos(hr);
+      const b = c * Math.sin(hr);
+      return [l, a, b];
+    };
+    convert.rgb.ansi16 = function(args, saturation = null) {
+      const [r, g, b] = args;
+      let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;
+      value = Math.round(value / 50);
+      if (value === 0) {
+        return 30;
+      }
+      let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
+      if (value === 2) {
+        ansi += 60;
+      }
+      return ansi;
+    };
+    convert.hsv.ansi16 = function(args) {
+      return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
+    };
+    convert.rgb.ansi256 = function(args) {
+      const r = args[0];
+      const g = args[1];
+      const b = args[2];
+      if (r === g && g === b) {
+        if (r < 8) {
+          return 16;
+        }
+        if (r > 248) {
+          return 231;
+        }
+        return Math.round((r - 8) / 247 * 24) + 232;
+      }
+      const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
+      return ansi;
+    };
+    convert.ansi16.rgb = function(args) {
+      let color = args % 10;
+      if (color === 0 || color === 7) {
+        if (args > 50) {
+          color += 3.5;
+        }
+        color = color / 10.5 * 255;
+        return [color, color, color];
+      }
+      const mult = (~~(args > 50) + 1) * 0.5;
+      const r = (color & 1) * mult * 255;
+      const g = (color >> 1 & 1) * mult * 255;
+      const b = (color >> 2 & 1) * mult * 255;
+      return [r, g, b];
+    };
+    convert.ansi256.rgb = function(args) {
+      if (args >= 232) {
+        const c = (args - 232) * 10 + 8;
+        return [c, c, c];
+      }
+      args -= 16;
+      let rem;
+      const r = Math.floor(args / 36) / 5 * 255;
+      const g = Math.floor((rem = args % 36) / 6) / 5 * 255;
+      const b = rem % 6 / 5 * 255;
+      return [r, g, b];
+    };
+    convert.rgb.hex = function(args) {
+      const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
+      const string = integer.toString(16).toUpperCase();
+      return "000000".substring(string.length) + string;
+    };
+    convert.hex.rgb = function(args) {
+      const match2 = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
+      if (!match2) {
+        return [0, 0, 0];
+      }
+      let colorString = match2[0];
+      if (match2[0].length === 3) {
+        colorString = colorString.split("").map((char) => {
+          return char + char;
+        }).join("");
+      }
+      const integer = parseInt(colorString, 16);
+      const r = integer >> 16 & 255;
+      const g = integer >> 8 & 255;
+      const b = integer & 255;
+      return [r, g, b];
+    };
+    convert.rgb.hcg = function(rgb) {
+      const r = rgb[0] / 255;
+      const g = rgb[1] / 255;
+      const b = rgb[2] / 255;
+      const max = Math.max(Math.max(r, g), b);
+      const min = Math.min(Math.min(r, g), b);
+      const chroma = max - min;
+      let grayscale;
+      let hue;
+      if (chroma < 1) {
+        grayscale = min / (1 - chroma);
+      } else {
+        grayscale = 0;
+      }
+      if (chroma <= 0) {
+        hue = 0;
+      } else if (max === r) {
+        hue = (g - b) / chroma % 6;
+      } else if (max === g) {
+        hue = 2 + (b - r) / chroma;
+      } else {
+        hue = 4 + (r - g) / chroma;
+      }
+      hue /= 6;
+      hue %= 1;
+      return [hue * 360, chroma * 100, grayscale * 100];
+    };
+    convert.hsl.hcg = function(hsl) {
+      const s = hsl[1] / 100;
+      const l = hsl[2] / 100;
+      const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);
+      let f = 0;
+      if (c < 1) {
+        f = (l - 0.5 * c) / (1 - c);
+      }
+      return [hsl[0], c * 100, f * 100];
+    };
+    convert.hsv.hcg = function(hsv) {
+      const s = hsv[1] / 100;
+      const v = hsv[2] / 100;
+      const c = s * v;
+      let f = 0;
+      if (c < 1) {
+        f = (v - c) / (1 - c);
+      }
+      return [hsv[0], c * 100, f * 100];
+    };
+    convert.hcg.rgb = function(hcg) {
+      const h = hcg[0] / 360;
+      const c = hcg[1] / 100;
+      const g = hcg[2] / 100;
+      if (c === 0) {
+        return [g * 255, g * 255, g * 255];
+      }
+      const pure = [0, 0, 0];
+      const hi = h % 1 * 6;
+      const v = hi % 1;
+      const w = 1 - v;
+      let mg = 0;
+      switch (Math.floor(hi)) {
+        case 0:
+          pure[0] = 1;
+          pure[1] = v;
+          pure[2] = 0;
+          break;
+        case 1:
+          pure[0] = w;
+          pure[1] = 1;
+          pure[2] = 0;
+          break;
+        case 2:
+          pure[0] = 0;
+          pure[1] = 1;
+          pure[2] = v;
+          break;
+        case 3:
+          pure[0] = 0;
+          pure[1] = w;
+          pure[2] = 1;
+          break;
+        case 4:
+          pure[0] = v;
+          pure[1] = 0;
+          pure[2] = 1;
+          break;
+        default:
+          pure[0] = 1;
+          pure[1] = 0;
+          pure[2] = w;
+      }
+      mg = (1 - c) * g;
+      return [
+        (c * pure[0] + mg) * 255,
+        (c * pure[1] + mg) * 255,
+        (c * pure[2] + mg) * 255
+      ];
+    };
+    convert.hcg.hsv = function(hcg) {
+      const c = hcg[1] / 100;
+      const g = hcg[2] / 100;
+      const v = c + g * (1 - c);
+      let f = 0;
+      if (v > 0) {
+        f = c / v;
+      }
+      return [hcg[0], f * 100, v * 100];
+    };
+    convert.hcg.hsl = function(hcg) {
+      const c = hcg[1] / 100;
+      const g = hcg[2] / 100;
+      const l = g * (1 - c) + 0.5 * c;
+      let s = 0;
+      if (l > 0 && l < 0.5) {
+        s = c / (2 * l);
+      } else if (l >= 0.5 && l < 1) {
+        s = c / (2 * (1 - l));
+      }
+      return [hcg[0], s * 100, l * 100];
+    };
+    convert.hcg.hwb = function(hcg) {
+      const c = hcg[1] / 100;
+      const g = hcg[2] / 100;
+      const v = c + g * (1 - c);
+      return [hcg[0], (v - c) * 100, (1 - v) * 100];
+    };
+    convert.hwb.hcg = function(hwb) {
+      const w = hwb[1] / 100;
+      const b = hwb[2] / 100;
+      const v = 1 - b;
+      const c = v - w;
+      let g = 0;
+      if (c < 1) {
+        g = (v - c) / (1 - c);
+      }
+      return [hwb[0], c * 100, g * 100];
+    };
+    convert.apple.rgb = function(apple) {
+      return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
+    };
+    convert.rgb.apple = function(rgb) {
+      return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
+    };
+    convert.gray.rgb = function(args) {
+      return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
+    };
+    convert.gray.hsl = function(args) {
+      return [0, 0, args[0]];
+    };
+    convert.gray.hsv = convert.gray.hsl;
+    convert.gray.hwb = function(gray) {
+      return [0, 100, gray[0]];
+    };
+    convert.gray.cmyk = function(gray) {
+      return [0, 0, 0, gray[0]];
+    };
+    convert.gray.lab = function(gray) {
+      return [gray[0], 0, 0];
+    };
+    convert.gray.hex = function(gray) {
+      const val = Math.round(gray[0] / 100 * 255) & 255;
+      const integer = (val << 16) + (val << 8) + val;
+      const string = integer.toString(16).toUpperCase();
+      return "000000".substring(string.length) + string;
+    };
+    convert.rgb.gray = function(rgb) {
+      const val = (rgb[0] + rgb[1] + rgb[2]) / 3;
+      return [val / 255 * 100];
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js
+var require_route = __commonJS({
+  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js"(exports2, module2) {
+    var conversions = require_conversions();
+    function buildGraph() {
+      const graph = {};
+      const models = Object.keys(conversions);
+      for (let len = models.length, i = 0; i < len; i++) {
+        graph[models[i]] = {
+          // http://jsperf.com/1-vs-infinity
+          // micro-opt, but this is simple.
+          distance: -1,
+          parent: null
+        };
+      }
+      return graph;
+    }
+    function deriveBFS(fromModel) {
+      const graph = buildGraph();
+      const queue = [fromModel];
+      graph[fromModel].distance = 0;
+      while (queue.length) {
+        const current = queue.pop();
+        const adjacents = Object.keys(conversions[current]);
+        for (let len = adjacents.length, i = 0; i < len; i++) {
+          const adjacent = adjacents[i];
+          const node = graph[adjacent];
+          if (node.distance === -1) {
+            node.distance = graph[current].distance + 1;
+            node.parent = current;
+            queue.unshift(adjacent);
+          }
+        }
+      }
+      return graph;
+    }
+    function link(from, to) {
+      return function(args) {
+        return to(from(args));
+      };
+    }
+    function wrapConversion(toModel, graph) {
+      const path4 = [graph[toModel].parent, toModel];
+      let fn = conversions[graph[toModel].parent][toModel];
+      let cur = graph[toModel].parent;
+      while (graph[cur].parent) {
+        path4.unshift(graph[cur].parent);
+        fn = link(conversions[graph[cur].parent][cur], fn);
+        cur = graph[cur].parent;
+      }
+      fn.conversion = path4;
+      return fn;
+    }
+    module2.exports = function(fromModel) {
+      const graph = deriveBFS(fromModel);
+      const conversion = {};
+      const models = Object.keys(graph);
+      for (let len = models.length, i = 0; i < len; i++) {
+        const toModel = models[i];
+        const node = graph[toModel];
+        if (node.parent === null) {
+          continue;
+        }
+        conversion[toModel] = wrapConversion(toModel, graph);
+      }
+      return conversion;
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js
+var require_color_convert = __commonJS({
+  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js"(exports2, module2) {
+    var conversions = require_conversions();
+    var route = require_route();
+    var convert = {};
+    var models = Object.keys(conversions);
+    function wrapRaw(fn) {
+      const wrappedFn = function(...args) {
+        const arg0 = args[0];
+        if (arg0 === void 0 || arg0 === null) {
+          return arg0;
+        }
+        if (arg0.length > 1) {
+          args = arg0;
+        }
+        return fn(args);
+      };
+      if ("conversion" in fn) {
+        wrappedFn.conversion = fn.conversion;
+      }
+      return wrappedFn;
+    }
+    function wrapRounded(fn) {
+      const wrappedFn = function(...args) {
+        const arg0 = args[0];
+        if (arg0 === void 0 || arg0 === null) {
+          return arg0;
+        }
+        if (arg0.length > 1) {
+          args = arg0;
+        }
+        const result = fn(args);
+        if (typeof result === "object") {
+          for (let len = result.length, i = 0; i < len; i++) {
+            result[i] = Math.round(result[i]);
+          }
+        }
+        return result;
+      };
+      if ("conversion" in fn) {
+        wrappedFn.conversion = fn.conversion;
+      }
+      return wrappedFn;
+    }
+    models.forEach((fromModel) => {
+      convert[fromModel] = {};
+      Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels });
+      Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels });
+      const routes = route(fromModel);
+      const routeModels = Object.keys(routes);
+      routeModels.forEach((toModel) => {
+        const fn = routes[toModel];
+        convert[fromModel][toModel] = wrapRounded(fn);
+        convert[fromModel][toModel].raw = wrapRaw(fn);
+      });
+    });
+    module2.exports = convert;
+  }
+});
+
+// ../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js
+var require_ansi_styles = __commonJS({
+  "../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js"(exports2, module2) {
+    "use strict";
+    var wrapAnsi16 = (fn, offset) => (...args) => {
+      const code = fn(...args);
+      return `\x1B[${code + offset}m`;
+    };
+    var wrapAnsi256 = (fn, offset) => (...args) => {
+      const code = fn(...args);
+      return `\x1B[${38 + offset};5;${code}m`;
+    };
+    var wrapAnsi16m = (fn, offset) => (...args) => {
+      const rgb = fn(...args);
+      return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
+    };
+    var ansi2ansi = (n) => n;
+    var rgb2rgb = (r, g, b) => [r, g, b];
+    var setLazyProperty = (object, property, get2) => {
+      Object.defineProperty(object, property, {
+        get: () => {
+          const value = get2();
+          Object.defineProperty(object, property, {
+            value,
+            enumerable: true,
+            configurable: true
+          });
+          return value;
+        },
+        enumerable: true,
+        configurable: true
+      });
+    };
+    var colorConvert;
+    var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {
+      if (colorConvert === void 0) {
+        colorConvert = require_color_convert();
+      }
+      const offset = isBackground ? 10 : 0;
+      const styles = {};
+      for (const [sourceSpace, suite] of Object.entries(colorConvert)) {
+        const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace;
+        if (sourceSpace === targetSpace) {
+          styles[name] = wrap(identity, offset);
+        } else if (typeof suite === "object") {
+          styles[name] = wrap(suite[targetSpace], offset);
+        }
+      }
+      return styles;
+    };
+    function assembleStyles() {
+      const codes = /* @__PURE__ */ new Map();
+      const styles = {
+        modifier: {
+          reset: [0, 0],
+          // 21 isn't widely supported and 22 does the same thing
+          bold: [1, 22],
+          dim: [2, 22],
+          italic: [3, 23],
+          underline: [4, 24],
+          inverse: [7, 27],
+          hidden: [8, 28],
+          strikethrough: [9, 29]
+        },
+        color: {
+          black: [30, 39],
+          red: [31, 39],
+          green: [32, 39],
+          yellow: [33, 39],
+          blue: [34, 39],
+          magenta: [35, 39],
+          cyan: [36, 39],
+          white: [37, 39],
+          // Bright color
+          blackBright: [90, 39],
+          redBright: [91, 39],
+          greenBright: [92, 39],
+          yellowBright: [93, 39],
+          blueBright: [94, 39],
+          magentaBright: [95, 39],
+          cyanBright: [96, 39],
+          whiteBright: [97, 39]
+        },
+        bgColor: {
+          bgBlack: [40, 49],
+          bgRed: [41, 49],
+          bgGreen: [42, 49],
+          bgYellow: [43, 49],
+          bgBlue: [44, 49],
+          bgMagenta: [45, 49],
+          bgCyan: [46, 49],
+          bgWhite: [47, 49],
+          // Bright color
+          bgBlackBright: [100, 49],
+          bgRedBright: [101, 49],
+          bgGreenBright: [102, 49],
+          bgYellowBright: [103, 49],
+          bgBlueBright: [104, 49],
+          bgMagentaBright: [105, 49],
+          bgCyanBright: [106, 49],
+          bgWhiteBright: [107, 49]
+        }
+      };
+      styles.color.gray = styles.color.blackBright;
+      styles.bgColor.bgGray = styles.bgColor.bgBlackBright;
+      styles.color.grey = styles.color.blackBright;
+      styles.bgColor.bgGrey = styles.bgColor.bgBlackBright;
+      for (const [groupName, group] of Object.entries(styles)) {
+        for (const [styleName, style] of Object.entries(group)) {
+          styles[styleName] = {
+            open: `\x1B[${style[0]}m`,
+            close: `\x1B[${style[1]}m`
+          };
+          group[styleName] = styles[styleName];
+          codes.set(style[0], style[1]);
+        }
+        Object.defineProperty(styles, groupName, {
+          value: group,
+          enumerable: false
+        });
+      }
+      Object.defineProperty(styles, "codes", {
+        value: codes,
+        enumerable: false
+      });
+      styles.color.close = "\x1B[39m";
+      styles.bgColor.close = "\x1B[49m";
+      setLazyProperty(styles.color, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, false));
+      setLazyProperty(styles.color, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, false));
+      setLazyProperty(styles.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, false));
+      setLazyProperty(styles.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, true));
+      setLazyProperty(styles.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, true));
+      setLazyProperty(styles.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, true));
+      return styles;
+    }
+    Object.defineProperty(module2, "exports", {
+      enumerable: true,
+      get: assembleStyles
+    });
+  }
+});
+
+// ../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
+var require_supports_color2 = __commonJS({
+  "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports2, module2) {
+    "use strict";
+    var os = require("os");
+    var tty = require("tty");
+    var hasFlag = require_has_flag();
+    var { env } = process;
+    var forceColor;
+    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
+      forceColor = 0;
+    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
+      forceColor = 1;
+    }
+    if ("FORCE_COLOR" in env) {
+      if (env.FORCE_COLOR === "true") {
+        forceColor = 1;
+      } else if (env.FORCE_COLOR === "false") {
+        forceColor = 0;
+      } else {
+        forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
+      }
+    }
+    function translateLevel(level) {
+      if (level === 0) {
+        return false;
+      }
+      return {
+        level,
+        hasBasic: true,
+        has256: level >= 2,
+        has16m: level >= 3
+      };
+    }
+    function supportsColor(haveStream, streamIsTTY) {
+      if (forceColor === 0) {
+        return 0;
+      }
+      if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
+        return 3;
+      }
+      if (hasFlag("color=256")) {
+        return 2;
+      }
+      if (haveStream && !streamIsTTY && forceColor === void 0) {
+        return 0;
+      }
+      const min = forceColor || 0;
+      if (env.TERM === "dumb") {
+        return min;
+      }
+      if (process.platform === "win32") {
+        const osRelease = os.release().split(".");
+        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
+          return Number(osRelease[2]) >= 14931 ? 3 : 2;
+        }
+        return 1;
+      }
+      if ("CI" in env) {
+        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
+          return 1;
+        }
+        return min;
+      }
+      if ("TEAMCITY_VERSION" in env) {
+        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
+      }
+      if (env.COLORTERM === "truecolor") {
+        return 3;
+      }
+      if ("TERM_PROGRAM" in env) {
+        const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
+        switch (env.TERM_PROGRAM) {
+          case "iTerm.app":
+            return version >= 3 ? 3 : 2;
+          case "Apple_Terminal":
+            return 2;
+        }
+      }
+      if (/-256(color)?$/i.test(env.TERM)) {
+        return 2;
+      }
+      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
+        return 1;
+      }
+      if ("COLORTERM" in env) {
+        return 1;
+      }
+      return min;
+    }
+    function getSupportLevel(stream2) {
+      const level = supportsColor(stream2, stream2 && stream2.isTTY);
+      return translateLevel(level);
+    }
+    module2.exports = {
+      supportsColor: getSupportLevel,
+      stdout: translateLevel(supportsColor(true, tty.isatty(1))),
+      stderr: translateLevel(supportsColor(true, tty.isatty(2)))
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js
+var require_util = __commonJS({
+  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js"(exports2, module2) {
+    "use strict";
+    var stringReplaceAll = (string, substring, replacer2) => {
+      let index = string.indexOf(substring);
+      if (index === -1) {
+        return string;
+      }
+      const substringLength = substring.length;
+      let endIndex = 0;
+      let returnValue = "";
+      do {
+        returnValue += string.substr(endIndex, index - endIndex) + substring + replacer2;
+        endIndex = index + substringLength;
+        index = string.indexOf(substring, endIndex);
+      } while (index !== -1);
+      returnValue += string.substr(endIndex);
+      return returnValue;
+    };
+    var stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
+      let endIndex = 0;
+      let returnValue = "";
+      do {
+        const gotCR = string[index - 1] === "\r";
+        returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
+        endIndex = index + 1;
+        index = string.indexOf("\n", endIndex);
+      } while (index !== -1);
+      returnValue += string.substr(endIndex);
+      return returnValue;
+    };
+    module2.exports = {
+      stringReplaceAll,
+      stringEncaseCRLFWithFirstIndex
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js
+var require_templates = __commonJS({
+  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js"(exports2, module2) {
+    "use strict";
+    var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
+    var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
+    var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
+    var ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi;
+    var ESCAPES = /* @__PURE__ */ new Map([
+      ["n", "\n"],
+      ["r", "\r"],
+      ["t", "	"],
+      ["b", "\b"],
+      ["f", "\f"],
+      ["v", "\v"],
+      ["0", "\0"],
+      ["\\", "\\"],
+      ["e", "\x1B"],
+      ["a", "\x07"]
+    ]);
+    function unescape2(c) {
+      const u = c[0] === "u";
+      const bracket = c[1] === "{";
+      if (u && !bracket && c.length === 5 || c[0] === "x" && c.length === 3) {
+        return String.fromCharCode(parseInt(c.slice(1), 16));
+      }
+      if (u && bracket) {
+        return String.fromCodePoint(parseInt(c.slice(2, -1), 16));
+      }
+      return ESCAPES.get(c) || c;
+    }
+    function parseArguments(name, arguments_) {
+      const results = [];
+      const chunks = arguments_.trim().split(/\s*,\s*/g);
+      let matches;
+      for (const chunk of chunks) {
+        const number = Number(chunk);
+        if (!Number.isNaN(number)) {
+          results.push(number);
+        } else if (matches = chunk.match(STRING_REGEX)) {
+          results.push(matches[2].replace(ESCAPE_REGEX, (m, escape2, character) => escape2 ? unescape2(escape2) : character));
+        } else {
+          throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
+        }
+      }
+      return results;
+    }
+    function parseStyle(style) {
+      STYLE_REGEX.lastIndex = 0;
+      const results = [];
+      let matches;
+      while ((matches = STYLE_REGEX.exec(style)) !== null) {
+        const name = matches[1];
+        if (matches[2]) {
+          const args = parseArguments(name, matches[2]);
+          results.push([name].concat(args));
+        } else {
+          results.push([name]);
+        }
+      }
+      return results;
+    }
+    function buildStyle(chalk, styles) {
+      const enabled = {};
+      for (const layer of styles) {
+        for (const style of layer.styles) {
+          enabled[style[0]] = layer.inverse ? null : style.slice(1);
+        }
+      }
+      let current = chalk;
+      for (const [styleName, styles2] of Object.entries(enabled)) {
+        if (!Array.isArray(styles2)) {
+          continue;
+        }
+        if (!(styleName in current)) {
+          throw new Error(`Unknown Chalk style: ${styleName}`);
+        }
+        current = styles2.length > 0 ? current[styleName](...styles2) : current[styleName];
+      }
+      return current;
+    }
+    module2.exports = (chalk, temporary) => {
+      const styles = [];
+      const chunks = [];
+      let chunk = [];
+      temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {
+        if (escapeCharacter) {
+          chunk.push(unescape2(escapeCharacter));
+        } else if (style) {
+          const string = chunk.join("");
+          chunk = [];
+          chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));
+          styles.push({ inverse, styles: parseStyle(style) });
+        } else if (close) {
+          if (styles.length === 0) {
+            throw new Error("Found extraneous } in Chalk template literal");
+          }
+          chunks.push(buildStyle(chalk, styles)(chunk.join("")));
+          chunk = [];
+          styles.pop();
+        } else {
+          chunk.push(character);
+        }
+      });
+      chunks.push(chunk.join(""));
+      if (styles.length > 0) {
+        const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`;
+        throw new Error(errMessage);
+      }
+      return chunks.join("");
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js
+var require_source = __commonJS({
+  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js"(exports2, module2) {
+    "use strict";
+    var ansiStyles = require_ansi_styles();
+    var { stdout: stdoutColor, stderr: stderrColor } = require_supports_color2();
+    var {
+      stringReplaceAll,
+      stringEncaseCRLFWithFirstIndex
+    } = require_util();
+    var { isArray } = Array;
+    var levelMapping = [
+      "ansi",
+      "ansi",
+      "ansi256",
+      "ansi16m"
+    ];
+    var styles = /* @__PURE__ */ Object.create(null);
+    var applyOptions = (object, options = {}) => {
+      if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
+        throw new Error("The `level` option should be an integer from 0 to 3");
+      }
+      const colorLevel = stdoutColor ? stdoutColor.level : 0;
+      object.level = options.level === void 0 ? colorLevel : options.level;
+    };
+    var ChalkClass = class {
+      constructor(options) {
+        return chalkFactory(options);
+      }
+    };
+    var chalkFactory = (options) => {
+      const chalk2 = {};
+      applyOptions(chalk2, options);
+      chalk2.template = (...arguments_) => chalkTag(chalk2.template, ...arguments_);
+      Object.setPrototypeOf(chalk2, Chalk.prototype);
+      Object.setPrototypeOf(chalk2.template, chalk2);
+      chalk2.template.constructor = () => {
+        throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.");
+      };
+      chalk2.template.Instance = ChalkClass;
+      return chalk2.template;
+    };
+    function Chalk(options) {
+      return chalkFactory(options);
+    }
+    for (const [styleName, style] of Object.entries(ansiStyles)) {
+      styles[styleName] = {
+        get() {
+          const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);
+          Object.defineProperty(this, styleName, { value: builder });
+          return builder;
+        }
+      };
+    }
+    styles.visible = {
+      get() {
+        const builder = createBuilder(this, this._styler, true);
+        Object.defineProperty(this, "visible", { value: builder });
+        return builder;
+      }
+    };
+    var usedModels = ["rgb", "hex", "keyword", "hsl", "hsv", "hwb", "ansi", "ansi256"];
+    for (const model of usedModels) {
+      styles[model] = {
+        get() {
+          const { level } = this;
+          return function(...arguments_) {
+            const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);
+            return createBuilder(this, styler, this._isEmpty);
+          };
+        }
+      };
+    }
+    for (const model of usedModels) {
+      const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
+      styles[bgModel] = {
+        get() {
+          const { level } = this;
+          return function(...arguments_) {
+            const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);
+            return createBuilder(this, styler, this._isEmpty);
+          };
+        }
+      };
+    }
+    var proto = Object.defineProperties(() => {
+    }, {
+      ...styles,
+      level: {
+        enumerable: true,
+        get() {
+          return this._generator.level;
+        },
+        set(level) {
+          this._generator.level = level;
+        }
+      }
+    });
+    var createStyler = (open, close, parent) => {
+      let openAll;
+      let closeAll;
+      if (parent === void 0) {
+        openAll = open;
+        closeAll = close;
+      } else {
+        openAll = parent.openAll + open;
+        closeAll = close + parent.closeAll;
+      }
+      return {
+        open,
+        close,
+        openAll,
+        closeAll,
+        parent
+      };
+    };
+    var createBuilder = (self2, _styler, _isEmpty) => {
+      const builder = (...arguments_) => {
+        if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {
+          return applyStyle(builder, chalkTag(builder, ...arguments_));
+        }
+        return applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
+      };
+      Object.setPrototypeOf(builder, proto);
+      builder._generator = self2;
+      builder._styler = _styler;
+      builder._isEmpty = _isEmpty;
+      return builder;
+    };
+    var applyStyle = (self2, string) => {
+      if (self2.level <= 0 || !string) {
+        return self2._isEmpty ? "" : string;
+      }
+      let styler = self2._styler;
+      if (styler === void 0) {
+        return string;
+      }
+      const { openAll, closeAll } = styler;
+      if (string.indexOf("\x1B") !== -1) {
+        while (styler !== void 0) {
+          string = stringReplaceAll(string, styler.close, styler.open);
+          styler = styler.parent;
+        }
+      }
+      const lfIndex = string.indexOf("\n");
+      if (lfIndex !== -1) {
+        string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
+      }
+      return openAll + string + closeAll;
+    };
+    var template;
+    var chalkTag = (chalk2, ...strings) => {
+      const [firstString] = strings;
+      if (!isArray(firstString) || !isArray(firstString.raw)) {
+        return strings.join(" ");
+      }
+      const arguments_ = strings.slice(1);
+      const parts = [firstString.raw[0]];
+      for (let i = 1; i < firstString.length; i++) {
+        parts.push(
+          String(arguments_[i - 1]).replace(/[{}\\]/g, "\\$&"),
+          String(firstString.raw[i])
+        );
+      }
+      if (template === void 0) {
+        template = require_templates();
+      }
+      return template(chalk2, parts.join(""));
+    };
+    Object.defineProperties(Chalk.prototype, styles);
+    var chalk = Chalk();
+    chalk.supportsColor = stdoutColor;
+    chalk.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });
+    chalk.stderr.supportsColor = stderrColor;
+    module2.exports = chalk;
+  }
+});
+
+// ../../node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js
+var require_is_unicode_supported = __commonJS({
+  "../../node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js"(exports2, module2) {
+    "use strict";
+    module2.exports = () => {
+      if (process.platform !== "win32") {
+        return true;
+      }
+      return Boolean(process.env.CI) || Boolean(process.env.WT_SESSION) || // Windows Terminal
+      process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty";
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js
+var require_log_symbols = __commonJS({
+  "../../node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js"(exports2, module2) {
+    "use strict";
+    var chalk = require_source();
+    var isUnicodeSupported = require_is_unicode_supported();
+    var main = {
+      info: chalk.blue("\u2139"),
+      success: chalk.green("\u2714"),
+      warning: chalk.yellow("\u26A0"),
+      error: chalk.red("\u2716")
+    };
+    var fallback = {
+      info: chalk.blue("i"),
+      success: chalk.green("\u221A"),
+      warning: chalk.yellow("\u203C"),
+      error: chalk.red("\xD7")
+    };
+    module2.exports = isUnicodeSupported() ? main : fallback;
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/pending.js
+var require_pending = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/pending.js"(exports2, module2) {
+    "use strict";
+    module2.exports = Pending;
+    function Pending(message) {
+      this.message = message;
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js
+var require_ms2 = __commonJS({
+  "../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports2, module2) {
+    var s = 1e3;
+    var m = s * 60;
+    var h = m * 60;
+    var d = h * 24;
+    var w = d * 7;
+    var y = d * 365.25;
+    module2.exports = function(val, options) {
+      options = options || {};
+      var type2 = typeof val;
+      if (type2 === "string" && val.length > 0) {
+        return parse(val);
+      } else if (type2 === "number" && isFinite(val)) {
+        return options.long ? fmtLong(val) : fmtShort(val);
+      }
+      throw new Error(
+        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
+      );
+    };
+    function parse(str2) {
+      str2 = String(str2);
+      if (str2.length > 100) {
+        return;
+      }
+      var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+        str2
+      );
+      if (!match2) {
+        return;
+      }
+      var n = parseFloat(match2[1]);
+      var type2 = (match2[2] || "ms").toLowerCase();
+      switch (type2) {
+        case "years":
+        case "year":
+        case "yrs":
+        case "yr":
+        case "y":
+          return n * y;
+        case "weeks":
+        case "week":
+        case "w":
+          return n * w;
+        case "days":
+        case "day":
+        case "d":
+          return n * d;
+        case "hours":
+        case "hour":
+        case "hrs":
+        case "hr":
+        case "h":
+          return n * h;
+        case "minutes":
+        case "minute":
+        case "mins":
+        case "min":
+        case "m":
+          return n * m;
+        case "seconds":
+        case "second":
+        case "secs":
+        case "sec":
+        case "s":
+          return n * s;
+        case "milliseconds":
+        case "millisecond":
+        case "msecs":
+        case "msec":
+        case "ms":
+          return n;
+        default:
+          return void 0;
+      }
+    }
+    function fmtShort(ms) {
+      var msAbs = Math.abs(ms);
+      if (msAbs >= d) {
+        return Math.round(ms / d) + "d";
+      }
+      if (msAbs >= h) {
+        return Math.round(ms / h) + "h";
+      }
+      if (msAbs >= m) {
+        return Math.round(ms / m) + "m";
+      }
+      if (msAbs >= s) {
+        return Math.round(ms / s) + "s";
+      }
+      return ms + "ms";
+    }
+    function fmtLong(ms) {
+      var msAbs = Math.abs(ms);
+      if (msAbs >= d) {
+        return plural(ms, msAbs, d, "day");
+      }
+      if (msAbs >= h) {
+        return plural(ms, msAbs, h, "hour");
+      }
+      if (msAbs >= m) {
+        return plural(ms, msAbs, m, "minute");
+      }
+      if (msAbs >= s) {
+        return plural(ms, msAbs, s, "second");
+      }
+      return ms + " ms";
+    }
+    function plural(ms, msAbs, n, name) {
+      var isPlural = msAbs >= n * 1.5;
+      return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/common.js
+var require_common = __commonJS({
+  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/common.js"(exports2, module2) {
+    function setup(env) {
+      createDebug.debug = createDebug;
+      createDebug.default = createDebug;
+      createDebug.coerce = coerce;
+      createDebug.disable = disable;
+      createDebug.enable = enable;
+      createDebug.enabled = enabled;
+      createDebug.humanize = require_ms2();
+      createDebug.destroy = destroy;
+      Object.keys(env).forEach((key) => {
+        createDebug[key] = env[key];
+      });
+      createDebug.names = [];
+      createDebug.skips = [];
+      createDebug.formatters = {};
+      function selectColor(namespace) {
+        let hash = 0;
+        for (let i = 0; i < namespace.length; i++) {
+          hash = (hash << 5) - hash + namespace.charCodeAt(i);
+          hash |= 0;
+        }
+        return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
+      }
+      createDebug.selectColor = selectColor;
+      function createDebug(namespace) {
+        let prevTime;
+        let enableOverride = null;
+        let namespacesCache;
+        let enabledCache;
+        function debug(...args) {
+          if (!debug.enabled) {
+            return;
+          }
+          const self2 = debug;
+          const curr = Number(/* @__PURE__ */ new Date());
+          const ms = curr - (prevTime || curr);
+          self2.diff = ms;
+          self2.prev = prevTime;
+          self2.curr = curr;
+          prevTime = curr;
+          args[0] = createDebug.coerce(args[0]);
+          if (typeof args[0] !== "string") {
+            args.unshift("%O");
+          }
+          let index = 0;
+          args[0] = args[0].replace(/%([a-zA-Z%])/g, (match2, format) => {
+            if (match2 === "%%") {
+              return "%";
+            }
+            index++;
+            const formatter = createDebug.formatters[format];
+            if (typeof formatter === "function") {
+              const val = args[index];
+              match2 = formatter.call(self2, val);
+              args.splice(index, 1);
+              index--;
+            }
+            return match2;
+          });
+          createDebug.formatArgs.call(self2, args);
+          const logFn = self2.log || createDebug.log;
+          logFn.apply(self2, args);
+        }
+        debug.namespace = namespace;
+        debug.useColors = createDebug.useColors();
+        debug.color = createDebug.selectColor(namespace);
+        debug.extend = extend3;
+        debug.destroy = createDebug.destroy;
+        Object.defineProperty(debug, "enabled", {
+          enumerable: true,
+          configurable: false,
+          get: () => {
+            if (enableOverride !== null) {
+              return enableOverride;
+            }
+            if (namespacesCache !== createDebug.namespaces) {
+              namespacesCache = createDebug.namespaces;
+              enabledCache = createDebug.enabled(namespace);
+            }
+            return enabledCache;
+          },
+          set: (v) => {
+            enableOverride = v;
+          }
+        });
+        if (typeof createDebug.init === "function") {
+          createDebug.init(debug);
+        }
+        return debug;
+      }
+      function extend3(namespace, delimiter) {
+        const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
+        newDebug.log = this.log;
+        return newDebug;
+      }
+      function enable(namespaces) {
+        createDebug.save(namespaces);
+        createDebug.namespaces = namespaces;
+        createDebug.names = [];
+        createDebug.skips = [];
+        let i;
+        const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
+        const len = split.length;
+        for (i = 0; i < len; i++) {
+          if (!split[i]) {
+            continue;
+          }
+          namespaces = split[i].replace(/\*/g, ".*?");
+          if (namespaces[0] === "-") {
+            createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
+          } else {
+            createDebug.names.push(new RegExp("^" + namespaces + "$"));
+          }
+        }
+      }
+      function disable() {
+        const namespaces = [
+          ...createDebug.names.map(toNamespace),
+          ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
+        ].join(",");
+        createDebug.enable("");
+        return namespaces;
+      }
+      function enabled(name) {
+        if (name[name.length - 1] === "*") {
+          return true;
+        }
+        let i;
+        let len;
+        for (i = 0, len = createDebug.skips.length; i < len; i++) {
+          if (createDebug.skips[i].test(name)) {
+            return false;
+          }
+        }
+        for (i = 0, len = createDebug.names.length; i < len; i++) {
+          if (createDebug.names[i].test(name)) {
+            return true;
+          }
+        }
+        return false;
+      }
+      function toNamespace(regexp) {
+        return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
+      }
+      function coerce(val) {
+        if (val instanceof Error) {
+          return val.stack || val.message;
+        }
+        return val;
+      }
+      function destroy() {
+        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
+      }
+      createDebug.enable(createDebug.load());
+      return createDebug;
+    }
+    module2.exports = setup;
+  }
+});
+
+// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/browser.js
+var require_browser = __commonJS({
+  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/browser.js"(exports2, module2) {
+    exports2.formatArgs = formatArgs;
+    exports2.save = save;
+    exports2.load = load2;
+    exports2.useColors = useColors;
+    exports2.storage = localstorage();
+    exports2.destroy = /* @__PURE__ */ (() => {
+      let warned2 = false;
+      return () => {
+        if (!warned2) {
+          warned2 = true;
+          console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
+        }
+      };
+    })();
+    exports2.colors = [
+      "#0000CC",
+      "#0000FF",
+      "#0033CC",
+      "#0033FF",
+      "#0066CC",
+      "#0066FF",
+      "#0099CC",
+      "#0099FF",
+      "#00CC00",
+      "#00CC33",
+      "#00CC66",
+      "#00CC99",
+      "#00CCCC",
+      "#00CCFF",
+      "#3300CC",
+      "#3300FF",
+      "#3333CC",
+      "#3333FF",
+      "#3366CC",
+      "#3366FF",
+      "#3399CC",
+      "#3399FF",
+      "#33CC00",
+      "#33CC33",
+      "#33CC66",
+      "#33CC99",
+      "#33CCCC",
+      "#33CCFF",
+      "#6600CC",
+      "#6600FF",
+      "#6633CC",
+      "#6633FF",
+      "#66CC00",
+      "#66CC33",
+      "#9900CC",
+      "#9900FF",
+      "#9933CC",
+      "#9933FF",
+      "#99CC00",
+      "#99CC33",
+      "#CC0000",
+      "#CC0033",
+      "#CC0066",
+      "#CC0099",
+      "#CC00CC",
+      "#CC00FF",
+      "#CC3300",
+      "#CC3333",
+      "#CC3366",
+      "#CC3399",
+      "#CC33CC",
+      "#CC33FF",
+      "#CC6600",
+      "#CC6633",
+      "#CC9900",
+      "#CC9933",
+      "#CCCC00",
+      "#CCCC33",
+      "#FF0000",
+      "#FF0033",
+      "#FF0066",
+      "#FF0099",
+      "#FF00CC",
+      "#FF00FF",
+      "#FF3300",
+      "#FF3333",
+      "#FF3366",
+      "#FF3399",
+      "#FF33CC",
+      "#FF33FF",
+      "#FF6600",
+      "#FF6633",
+      "#FF9900",
+      "#FF9933",
+      "#FFCC00",
+      "#FFCC33"
+    ];
+    function useColors() {
+      if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
+        return true;
+      }
+      if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
+        return false;
+      }
+      return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
+      typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
+      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
+      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
+    }
+    function formatArgs(args) {
+      args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
+      if (!this.useColors) {
+        return;
+      }
+      const c = "color: " + this.color;
+      args.splice(1, 0, c, "color: inherit");
+      let index = 0;
+      let lastC = 0;
+      args[0].replace(/%[a-zA-Z%]/g, (match2) => {
+        if (match2 === "%%") {
+          return;
+        }
+        index++;
+        if (match2 === "%c") {
+          lastC = index;
+        }
+      });
+      args.splice(lastC, 0, c);
+    }
+    exports2.log = console.debug || console.log || (() => {
+    });
+    function save(namespaces) {
+      try {
+        if (namespaces) {
+          exports2.storage.setItem("debug", namespaces);
+        } else {
+          exports2.storage.removeItem("debug");
+        }
+      } catch (error) {
+      }
+    }
+    function load2() {
+      let r;
+      try {
+        r = exports2.storage.getItem("debug");
+      } catch (error) {
+      }
+      if (!r && typeof process !== "undefined" && "env" in process) {
+        r = process.env.DEBUG;
+      }
+      return r;
+    }
+    function localstorage() {
+      try {
+        return localStorage;
+      } catch (error) {
+      }
+    }
+    module2.exports = require_common()(exports2);
+    var { formatters } = module2.exports;
+    formatters.j = function(v) {
+      try {
+        return JSON.stringify(v);
+      } catch (error) {
+        return "[UnexpectedJSONParseError]: " + error.message;
+      }
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/node.js
+var require_node = __commonJS({
+  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/node.js"(exports2, module2) {
+    var tty = require("tty");
+    var util = require("util");
+    exports2.init = init;
+    exports2.log = log;
+    exports2.formatArgs = formatArgs;
+    exports2.save = save;
+    exports2.load = load2;
+    exports2.useColors = useColors;
+    exports2.destroy = util.deprecate(
+      () => {
+      },
+      "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
+    );
+    exports2.colors = [6, 2, 3, 4, 5, 1];
+    try {
+      const supportsColor = require_supports_color();
+      if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
+        exports2.colors = [
+          20,
+          21,
+          26,
+          27,
+          32,
+          33,
+          38,
+          39,
+          40,
+          41,
+          42,
+          43,
+          44,
+          45,
+          56,
+          57,
+          62,
+          63,
+          68,
+          69,
+          74,
+          75,
+          76,
+          77,
+          78,
+          79,
+          80,
+          81,
+          92,
+          93,
+          98,
+          99,
+          112,
+          113,
+          128,
+          129,
+          134,
+          135,
+          148,
+          149,
+          160,
+          161,
+          162,
+          163,
+          164,
+          165,
+          166,
+          167,
+          168,
+          169,
+          170,
+          171,
+          172,
+          173,
+          178,
+          179,
+          184,
+          185,
+          196,
+          197,
+          198,
+          199,
+          200,
+          201,
+          202,
+          203,
+          204,
+          205,
+          206,
+          207,
+          208,
+          209,
+          214,
+          215,
+          220,
+          221
+        ];
+      }
+    } catch (error) {
+    }
+    exports2.inspectOpts = Object.keys(process.env).filter((key) => {
+      return /^debug_/i.test(key);
+    }).reduce((obj, key) => {
+      const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
+        return k.toUpperCase();
+      });
+      let val = process.env[key];
+      if (/^(yes|on|true|enabled)$/i.test(val)) {
+        val = true;
+      } else if (/^(no|off|false|disabled)$/i.test(val)) {
+        val = false;
+      } else if (val === "null") {
+        val = null;
+      } else {
+        val = Number(val);
+      }
+      obj[prop] = val;
+      return obj;
+    }, {});
+    function useColors() {
+      return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
+    }
+    function formatArgs(args) {
+      const { namespace: name, useColors: useColors2 } = this;
+      if (useColors2) {
+        const c = this.color;
+        const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
+        const prefix = `  ${colorCode};1m${name} \x1B[0m`;
+        args[0] = prefix + args[0].split("\n").join("\n" + prefix);
+        args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
+      } else {
+        args[0] = getDate() + name + " " + args[0];
+      }
+    }
+    function getDate() {
+      if (exports2.inspectOpts.hideDate) {
+        return "";
+      }
+      return (/* @__PURE__ */ new Date()).toISOString() + " ";
+    }
+    function log(...args) {
+      return process.stderr.write(util.format(...args) + "\n");
+    }
+    function save(namespaces) {
+      if (namespaces) {
+        process.env.DEBUG = namespaces;
+      } else {
+        delete process.env.DEBUG;
+      }
+    }
+    function load2() {
+      return process.env.DEBUG;
+    }
+    function init(debug) {
+      debug.inspectOpts = {};
+      const keys = Object.keys(exports2.inspectOpts);
+      for (let i = 0; i < keys.length; i++) {
+        debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
+      }
+    }
+    module2.exports = require_common()(exports2);
+    var { formatters } = module2.exports;
+    formatters.o = function(v) {
+      this.inspectOpts.colors = this.useColors;
+      return util.inspect(v, this.inspectOpts).split("\n").map((str2) => str2.trim()).join(" ");
+    };
+    formatters.O = function(v) {
+      this.inspectOpts.colors = this.useColors;
+      return util.inspect(v, this.inspectOpts);
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/index.js
+var require_src = __commonJS({
+  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/index.js"(exports2, module2) {
+    if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
+      module2.exports = require_browser();
+    } else {
+      module2.exports = require_node();
+    }
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/errors.js
+var require_errors = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/errors.js"(exports2, module2) {
+    "use strict";
+    var { format } = require("util");
+    var emitWarning2 = (msg, type2) => {
+      if (process.emitWarning) {
+        process.emitWarning(msg, type2);
+      } else {
+        process.nextTick(function() {
+          console.warn(type2 + ": " + msg);
+        });
+      }
+    };
+    var deprecate = (msg) => {
+      msg = String(msg);
+      if (msg && !deprecate.cache[msg]) {
+        deprecate.cache[msg] = true;
+        emitWarning2(msg, "DeprecationWarning");
+      }
+    };
+    deprecate.cache = {};
+    var warn = (msg) => {
+      if (msg) {
+        emitWarning2(msg);
+      }
+    };
+    var constants = {
+      /**
+       * An unrecoverable error.
+       * @constant
+       * @default
+       */
+      FATAL: "ERR_MOCHA_FATAL",
+      /**
+       * The type of an argument to a function call is invalid
+       * @constant
+       * @default
+       */
+      INVALID_ARG_TYPE: "ERR_MOCHA_INVALID_ARG_TYPE",
+      /**
+       * The value of an argument to a function call is invalid
+       * @constant
+       * @default
+       */
+      INVALID_ARG_VALUE: "ERR_MOCHA_INVALID_ARG_VALUE",
+      /**
+       * Something was thrown, but it wasn't an `Error`
+       * @constant
+       * @default
+       */
+      INVALID_EXCEPTION: "ERR_MOCHA_INVALID_EXCEPTION",
+      /**
+       * An interface (e.g., `Mocha.interfaces`) is unknown or invalid
+       * @constant
+       * @default
+       */
+      INVALID_INTERFACE: "ERR_MOCHA_INVALID_INTERFACE",
+      /**
+       * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid
+       * @constant
+       * @default
+       */
+      INVALID_REPORTER: "ERR_MOCHA_INVALID_REPORTER",
+      /**
+       * `done()` was called twice in a `Test` or `Hook` callback
+       * @constant
+       * @default
+       */
+      MULTIPLE_DONE: "ERR_MOCHA_MULTIPLE_DONE",
+      /**
+       * No files matched the pattern provided by the user
+       * @constant
+       * @default
+       */
+      NO_FILES_MATCH_PATTERN: "ERR_MOCHA_NO_FILES_MATCH_PATTERN",
+      /**
+       * Known, but unsupported behavior of some kind
+       * @constant
+       * @default
+       */
+      UNSUPPORTED: "ERR_MOCHA_UNSUPPORTED",
+      /**
+       * Invalid state transition occurring in `Mocha` instance
+       * @constant
+       * @default
+       */
+      INSTANCE_ALREADY_RUNNING: "ERR_MOCHA_INSTANCE_ALREADY_RUNNING",
+      /**
+       * Invalid state transition occurring in `Mocha` instance
+       * @constant
+       * @default
+       */
+      INSTANCE_ALREADY_DISPOSED: "ERR_MOCHA_INSTANCE_ALREADY_DISPOSED",
+      /**
+       * Use of `only()` w/ `--forbid-only` results in this error.
+       * @constant
+       * @default
+       */
+      FORBIDDEN_EXCLUSIVITY: "ERR_MOCHA_FORBIDDEN_EXCLUSIVITY",
+      /**
+       * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid
+       * @constant
+       * @default
+       */
+      INVALID_PLUGIN_IMPLEMENTATION: "ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION",
+      /**
+       * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid
+       * @constant
+       * @default
+       */
+      INVALID_PLUGIN_DEFINITION: "ERR_MOCHA_INVALID_PLUGIN_DEFINITION",
+      /**
+       * When a runnable exceeds its allowed run time.
+       * @constant
+       * @default
+       */
+      TIMEOUT: "ERR_MOCHA_TIMEOUT",
+      /**
+       * Input file is not able to be parsed
+       * @constant
+       * @default
+       */
+      UNPARSABLE_FILE: "ERR_MOCHA_UNPARSABLE_FILE"
+    };
+    var MOCHA_ERRORS = new Set(Object.values(constants));
+    function createNoFilesMatchPatternError(message, pattern) {
+      var err = new Error(message);
+      err.code = constants.NO_FILES_MATCH_PATTERN;
+      err.pattern = pattern;
+      return err;
+    }
+    function createInvalidReporterError(message, reporter) {
+      var err = new TypeError(message);
+      err.code = constants.INVALID_REPORTER;
+      err.reporter = reporter;
+      return err;
+    }
+    function createInvalidInterfaceError(message, ui) {
+      var err = new Error(message);
+      err.code = constants.INVALID_INTERFACE;
+      err.interface = ui;
+      return err;
+    }
+    function createUnsupportedError(message) {
+      var err = new Error(message);
+      err.code = constants.UNSUPPORTED;
+      return err;
+    }
+    function createMissingArgumentError(message, argument, expected) {
+      return createInvalidArgumentTypeError(message, argument, expected);
+    }
+    function createInvalidArgumentTypeError(message, argument, expected) {
+      var err = new TypeError(message);
+      err.code = constants.INVALID_ARG_TYPE;
+      err.argument = argument;
+      err.expected = expected;
+      err.actual = typeof argument;
+      return err;
+    }
+    function createInvalidArgumentValueError(message, argument, value, reason) {
+      var err = new TypeError(message);
+      err.code = constants.INVALID_ARG_VALUE;
+      err.argument = argument;
+      err.value = value;
+      err.reason = typeof reason !== "undefined" ? reason : "is invalid";
+      return err;
+    }
+    function createInvalidExceptionError(message, value) {
+      var err = new Error(message);
+      err.code = constants.INVALID_EXCEPTION;
+      err.valueType = typeof value;
+      err.value = value;
+      return err;
+    }
+    function createFatalError(message, value) {
+      var err = new Error(message);
+      err.code = constants.FATAL;
+      err.valueType = typeof value;
+      err.value = value;
+      return err;
+    }
+    function createInvalidLegacyPluginError(message, pluginType, pluginId) {
+      switch (pluginType) {
+        case "reporter":
+          return createInvalidReporterError(message, pluginId);
+        case "ui":
+          return createInvalidInterfaceError(message, pluginId);
+        default:
+          throw new Error('unknown pluginType "' + pluginType + '"');
+      }
+    }
+    function createInvalidPluginError(...args) {
+      deprecate("Use createInvalidLegacyPluginError() instead");
+      return createInvalidLegacyPluginError(...args);
+    }
+    function createMochaInstanceAlreadyDisposedError(message, cleanReferencesAfterRun, instance) {
+      var err = new Error(message);
+      err.code = constants.INSTANCE_ALREADY_DISPOSED;
+      err.cleanReferencesAfterRun = cleanReferencesAfterRun;
+      err.instance = instance;
+      return err;
+    }
+    function createMochaInstanceAlreadyRunningError(message, instance) {
+      var err = new Error(message);
+      err.code = constants.INSTANCE_ALREADY_RUNNING;
+      err.instance = instance;
+      return err;
+    }
+    function createMultipleDoneError(runnable, originalErr) {
+      var title;
+      try {
+        title = format("<%s>", runnable.fullTitle());
+        if (runnable.parent.root) {
+          title += " (of root suite)";
+        }
+      } catch (ignored) {
+        title = format("<%s> (of unknown suite)", runnable.title);
+      }
+      var message = format(
+        "done() called multiple times in %s %s",
+        runnable.type ? runnable.type : "unknown runnable",
+        title
+      );
+      if (runnable.file) {
+        message += format(" of file %s", runnable.file);
+      }
+      if (originalErr) {
+        message += format("; in addition, done() received error: %s", originalErr);
+      }
+      var err = new Error(message);
+      err.code = constants.MULTIPLE_DONE;
+      err.valueType = typeof originalErr;
+      err.value = originalErr;
+      return err;
+    }
+    function createForbiddenExclusivityError(mocha) {
+      var err = new Error(
+        mocha.isWorker ? "`.only` is not supported in parallel mode" : "`.only` forbidden by --forbid-only"
+      );
+      err.code = constants.FORBIDDEN_EXCLUSIVITY;
+      return err;
+    }
+    function createInvalidPluginDefinitionError(msg, pluginDef) {
+      const err = new Error(msg);
+      err.code = constants.INVALID_PLUGIN_DEFINITION;
+      err.pluginDef = pluginDef;
+      return err;
+    }
+    function createInvalidPluginImplementationError(msg, { pluginDef, pluginImpl } = {}) {
+      const err = new Error(msg);
+      err.code = constants.INVALID_PLUGIN_IMPLEMENTATION;
+      err.pluginDef = pluginDef;
+      err.pluginImpl = pluginImpl;
+      return err;
+    }
+    function createTimeoutError(msg, timeout, file) {
+      const err = new Error(msg);
+      err.code = constants.TIMEOUT;
+      err.timeout = timeout;
+      err.file = file;
+      return err;
+    }
+    function createUnparsableFileError(message, filename) {
+      var err = new Error(message);
+      err.code = constants.UNPARSABLE_FILE;
+      return err;
+    }
+    var isMochaError = (err) => Boolean(err && typeof err === "object" && MOCHA_ERRORS.has(err.code));
+    module2.exports = {
+      constants,
+      createFatalError,
+      createForbiddenExclusivityError,
+      createInvalidArgumentTypeError,
+      createInvalidArgumentValueError,
+      createInvalidExceptionError,
+      createInvalidInterfaceError,
+      createInvalidLegacyPluginError,
+      createInvalidPluginDefinitionError,
+      createInvalidPluginError,
+      createInvalidPluginImplementationError,
+      createInvalidReporterError,
+      createMissingArgumentError,
+      createMochaInstanceAlreadyDisposedError,
+      createMochaInstanceAlreadyRunningError,
+      createMultipleDoneError,
+      createNoFilesMatchPatternError,
+      createTimeoutError,
+      createUnparsableFileError,
+      createUnsupportedError,
+      deprecate,
+      isMochaError,
+      warn
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runnable.js
+var require_runnable = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runnable.js"(exports2, module2) {
+    "use strict";
+    var EventEmitter2 = require("events").EventEmitter;
+    var Pending = require_pending();
+    var debug = require_src()("mocha:runnable");
+    var milliseconds = require_ms();
+    var utils = require_utils();
+    var {
+      createInvalidExceptionError,
+      createMultipleDoneError,
+      createTimeoutError
+    } = require_errors();
+    var Date2 = global.Date;
+    var setTimeout2 = global.setTimeout;
+    var clearTimeout2 = global.clearTimeout;
+    var toString2 = Object.prototype.toString;
+    module2.exports = Runnable;
+    function Runnable(title, fn) {
+      this.title = title;
+      this.fn = fn;
+      this.body = (fn || "").toString();
+      this.async = fn && fn.length;
+      this.sync = !this.async;
+      this._timeout = 2e3;
+      this._slow = 75;
+      this._retries = -1;
+      utils.assignNewMochaID(this);
+      Object.defineProperty(this, "id", {
+        get() {
+          return utils.getMochaID(this);
+        }
+      });
+      this.reset();
+    }
+    utils.inherits(Runnable, EventEmitter2);
+    Runnable.prototype.reset = function() {
+      this.timedOut = false;
+      this._currentRetry = 0;
+      this.pending = false;
+      delete this.state;
+      delete this.err;
+    };
+    Runnable.prototype.timeout = function(ms) {
+      if (!arguments.length) {
+        return this._timeout;
+      }
+      if (typeof ms === "string") {
+        ms = milliseconds(ms);
+      }
+      var INT_MAX = Math.pow(2, 31) - 1;
+      var range = [0, INT_MAX];
+      ms = utils.clamp(ms, range);
+      if (ms === range[0] || ms === range[1]) {
+        this._timeout = 0;
+      } else {
+        this._timeout = ms;
+      }
+      debug("timeout %d", this._timeout);
+      if (this.timer) {
+        this.resetTimeout();
+      }
+      return this;
+    };
+    Runnable.prototype.slow = function(ms) {
+      if (!arguments.length || typeof ms === "undefined") {
+        return this._slow;
+      }
+      if (typeof ms === "string") {
+        ms = milliseconds(ms);
+      }
+      debug("slow %d", ms);
+      this._slow = ms;
+      return this;
+    };
+    Runnable.prototype.skip = function() {
+      this.pending = true;
+      throw new Pending("sync skip; aborting execution");
+    };
+    Runnable.prototype.isPending = function() {
+      return this.pending || this.parent && this.parent.isPending();
+    };
+    Runnable.prototype.isFailed = function() {
+      return !this.isPending() && this.state === constants.STATE_FAILED;
+    };
+    Runnable.prototype.isPassed = function() {
+      return !this.isPending() && this.state === constants.STATE_PASSED;
+    };
+    Runnable.prototype.retries = function(n) {
+      if (!arguments.length) {
+        return this._retries;
+      }
+      this._retries = n;
+    };
+    Runnable.prototype.currentRetry = function(n) {
+      if (!arguments.length) {
+        return this._currentRetry;
+      }
+      this._currentRetry = n;
+    };
+    Runnable.prototype.fullTitle = function() {
+      return this.titlePath().join(" ");
+    };
+    Runnable.prototype.titlePath = function() {
+      return this.parent.titlePath().concat([this.title]);
+    };
+    Runnable.prototype.clearTimeout = function() {
+      clearTimeout2(this.timer);
+    };
+    Runnable.prototype.resetTimeout = function() {
+      var self2 = this;
+      var ms = this.timeout();
+      if (ms === 0) {
+        return;
+      }
+      this.clearTimeout();
+      this.timer = setTimeout2(function() {
+        if (self2.timeout() === 0) {
+          return;
+        }
+        self2.callback(self2._timeoutError(ms));
+        self2.timedOut = true;
+      }, ms);
+    };
+    Runnable.prototype.globals = function(globals) {
+      if (!arguments.length) {
+        return this._allowedGlobals;
+      }
+      this._allowedGlobals = globals;
+    };
+    Runnable.prototype.run = function(fn) {
+      var self2 = this;
+      var start = new Date2();
+      var ctx = this.ctx;
+      var finished;
+      var errorWasHandled = false;
+      if (this.isPending())
+        return fn();
+      if (ctx && ctx.runnable) {
+        ctx.runnable(this);
+      }
+      function multiple(err) {
+        if (errorWasHandled) {
+          return;
+        }
+        errorWasHandled = true;
+        self2.emit("error", createMultipleDoneError(self2, err));
+      }
+      function done(err) {
+        var ms = self2.timeout();
+        if (self2.timedOut) {
+          return;
+        }
+        if (finished) {
+          return multiple(err);
+        }
+        self2.clearTimeout();
+        self2.duration = new Date2() - start;
+        finished = true;
+        if (!err && self2.duration > ms && ms > 0) {
+          err = self2._timeoutError(ms);
+        }
+        fn(err);
+      }
+      this.callback = done;
+      if (this.fn && typeof this.fn.call !== "function") {
+        done(
+          new TypeError(
+            "A runnable must be passed a function as its second argument."
+          )
+        );
+        return;
+      }
+      if (this.async) {
+        this.resetTimeout();
+        this.skip = function asyncSkip() {
+          this.pending = true;
+          done();
+          throw new Pending("async skip; aborting execution");
+        };
+        try {
+          callFnAsync(this.fn);
+        } catch (err) {
+          errorWasHandled = true;
+          if (err instanceof Pending) {
+            return;
+          } else if (this.allowUncaught) {
+            throw err;
+          }
+          done(Runnable.toValueOrError(err));
+        }
+        return;
+      }
+      try {
+        callFn(this.fn);
+      } catch (err) {
+        errorWasHandled = true;
+        if (err instanceof Pending) {
+          return done();
+        } else if (this.allowUncaught) {
+          throw err;
+        }
+        done(Runnable.toValueOrError(err));
+      }
+      function callFn(fn2) {
+        var result = fn2.call(ctx);
+        if (result && typeof result.then === "function") {
+          self2.resetTimeout();
+          result.then(
+            function() {
+              done();
+              return null;
+            },
+            function(reason) {
+              done(reason || new Error("Promise rejected with no or falsy reason"));
+            }
+          );
+        } else {
+          if (self2.asyncOnly) {
+            return done(
+              new Error(
+                "--async-only option in use without declaring `done()` or returning a promise"
+              )
+            );
+          }
+          done();
+        }
+      }
+      function callFnAsync(fn2) {
+        var result = fn2.call(ctx, function(err) {
+          if (err instanceof Error || toString2.call(err) === "[object Error]") {
+            return done(err);
+          }
+          if (err) {
+            if (Object.prototype.toString.call(err) === "[object Object]") {
+              return done(
+                new Error("done() invoked with non-Error: " + JSON.stringify(err))
+              );
+            }
+            return done(new Error("done() invoked with non-Error: " + err));
+          }
+          if (result && utils.isPromise(result)) {
+            return done(
+              new Error(
+                "Resolution method is overspecified. Specify a callback *or* return a Promise; not both."
+              )
+            );
+          }
+          done();
+        });
+      }
+    };
+    Runnable.prototype._timeoutError = function(ms) {
+      let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.`;
+      if (this.file) {
+        msg += " (" + this.file + ")";
+      }
+      return createTimeoutError(msg, ms, this.file);
+    };
+    var constants = utils.defineConstants(
+      /**
+       * {@link Runnable}-related constants.
+       * @public
+       * @memberof Runnable
+       * @readonly
+       * @static
+       * @alias constants
+       * @enum {string}
+       */
+      {
+        /**
+         * Value of `state` prop when a `Runnable` has failed
+         */
+        STATE_FAILED: "failed",
+        /**
+         * Value of `state` prop when a `Runnable` has passed
+         */
+        STATE_PASSED: "passed",
+        /**
+         * Value of `state` prop when a `Runnable` has been skipped by user
+         */
+        STATE_PENDING: "pending"
+      }
+    );
+    Runnable.toValueOrError = function(value) {
+      return value || createInvalidExceptionError(
+        "Runnable failed with falsy or undefined exception. Please throw an Error instead.",
+        value
+      );
+    };
+    Runnable.constants = constants;
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/hook.js
+var require_hook = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/hook.js"(exports2, module2) {
+    "use strict";
+    var Runnable = require_runnable();
+    var { inherits, constants } = require_utils();
+    var { MOCHA_ID_PROP_NAME } = constants;
+    module2.exports = Hook;
+    function Hook(title, fn) {
+      Runnable.call(this, title, fn);
+      this.type = "hook";
+    }
+    inherits(Hook, Runnable);
+    Hook.prototype.reset = function() {
+      Runnable.prototype.reset.call(this);
+      delete this._error;
+    };
+    Hook.prototype.error = function(err) {
+      if (!arguments.length) {
+        err = this._error;
+        this._error = null;
+        return err;
+      }
+      this._error = err;
+    };
+    Hook.prototype.serialize = function serialize2() {
+      return {
+        $$currentRetry: this.currentRetry(),
+        $$fullTitle: this.fullTitle(),
+        $$isPending: Boolean(this.isPending()),
+        $$titlePath: this.titlePath(),
+        ctx: this.ctx && this.ctx.currentTest ? {
+          currentTest: {
+            title: this.ctx.currentTest.title,
+            [MOCHA_ID_PROP_NAME]: this.ctx.currentTest.id
+          }
+        } : {},
+        duration: this.duration,
+        file: this.file,
+        parent: {
+          $$fullTitle: this.parent.fullTitle(),
+          [MOCHA_ID_PROP_NAME]: this.parent.id
+        },
+        state: this.state,
+        title: this.title,
+        type: this.type,
+        [MOCHA_ID_PROP_NAME]: this.id
+      };
+    };
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/suite.js
+var require_suite = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/suite.js"(exports2, module2) {
+    "use strict";
+    var { EventEmitter: EventEmitter2 } = require("events");
+    var Hook = require_hook();
+    var {
+      assignNewMochaID,
+      clamp,
+      constants: utilsConstants,
+      defineConstants,
+      getMochaID,
+      inherits,
+      isString: isString2
+    } = require_utils();
+    var debug = require_src()("mocha:suite");
+    var milliseconds = require_ms();
+    var errors = require_errors();
+    var { MOCHA_ID_PROP_NAME } = utilsConstants;
+    exports2 = module2.exports = Suite;
+    Suite.create = function(parent, title) {
+      var suite = new Suite(title, parent.ctx);
+      suite.parent = parent;
+      title = suite.fullTitle();
+      parent.addSuite(suite);
+      return suite;
+    };
+    function Suite(title, parentContext, isRoot) {
+      if (!isString2(title)) {
+        throw errors.createInvalidArgumentTypeError(
+          'Suite argument "title" must be a string. Received type "' + typeof title + '"',
+          "title",
+          "string"
+        );
+      }
+      this.title = title;
+      function Context() {
+      }
+      Context.prototype = parentContext;
+      this.ctx = new Context();
+      this.suites = [];
+      this.tests = [];
+      this.root = isRoot === true;
+      this.pending = false;
+      this._retries = -1;
+      this._beforeEach = [];
+      this._beforeAll = [];
+      this._afterEach = [];
+      this._afterAll = [];
+      this._timeout = 2e3;
+      this._slow = 75;
+      this._bail = false;
+      this._onlyTests = [];
+      this._onlySuites = [];
+      assignNewMochaID(this);
+      Object.defineProperty(this, "id", {
+        get() {
+          return getMochaID(this);
+        }
+      });
+      this.reset();
+    }
+    inherits(Suite, EventEmitter2);
+    Suite.prototype.reset = function() {
+      this.delayed = false;
+      function doReset(thingToReset) {
+        thingToReset.reset();
+      }
+      this.suites.forEach(doReset);
+      this.tests.forEach(doReset);
+      this._beforeEach.forEach(doReset);
+      this._afterEach.forEach(doReset);
+      this._beforeAll.forEach(doReset);
+      this._afterAll.forEach(doReset);
+    };
+    Suite.prototype.clone = function() {
+      var suite = new Suite(this.title);
+      debug("clone");
+      suite.ctx = this.ctx;
+      suite.root = this.root;
+      suite.timeout(this.timeout());
+      suite.retries(this.retries());
+      suite.slow(this.slow());
+      suite.bail(this.bail());
+      return suite;
+    };
+    Suite.prototype.timeout = function(ms) {
+      if (!arguments.length) {
+        return this._timeout;
+      }
+      if (typeof ms === "string") {
+        ms = milliseconds(ms);
+      }
+      var INT_MAX = Math.pow(2, 31) - 1;
+      var range = [0, INT_MAX];
+      ms = clamp(ms, range);
+      debug("timeout %d", ms);
+      this._timeout = parseInt(ms, 10);
+      return this;
+    };
+    Suite.prototype.retries = function(n) {
+      if (!arguments.length) {
+        return this._retries;
+      }
+      debug("retries %d", n);
+      this._retries = parseInt(n, 10) || 0;
+      return this;
+    };
+    Suite.prototype.slow = function(ms) {
+      if (!arguments.length) {
+        return this._slow;
+      }
+      if (typeof ms === "string") {
+        ms = milliseconds(ms);
+      }
+      debug("slow %d", ms);
+      this._slow = ms;
+      return this;
+    };
+    Suite.prototype.bail = function(bail) {
+      if (!arguments.length) {
+        return this._bail;
+      }
+      debug("bail %s", bail);
+      this._bail = bail;
+      return this;
+    };
+    Suite.prototype.isPending = function() {
+      return this.pending || this.parent && this.parent.isPending();
+    };
+    Suite.prototype._createHook = function(title, fn) {
+      var hook = new Hook(title, fn);
+      hook.parent = this;
+      hook.timeout(this.timeout());
+      hook.retries(this.retries());
+      hook.slow(this.slow());
+      hook.ctx = this.ctx;
+      hook.file = this.file;
+      return hook;
+    };
+    Suite.prototype.beforeAll = function(title, fn) {
+      if (this.isPending()) {
+        return this;
+      }
+      if (typeof title === "function") {
+        fn = title;
+        title = fn.name;
+      }
+      title = '"before all" hook' + (title ? ": " + title : "");
+      var hook = this._createHook(title, fn);
+      this._beforeAll.push(hook);
+      this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);
+      return this;
+    };
+    Suite.prototype.afterAll = function(title, fn) {
+      if (this.isPending()) {
+        return this;
+      }
+      if (typeof title === "function") {
+        fn = title;
+        title = fn.name;
+      }
+      title = '"after all" hook' + (title ? ": " + title : "");
+      var hook = this._createHook(title, fn);
+      this._afterAll.push(hook);
+      this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);
+      return this;
+    };
+    Suite.prototype.beforeEach = function(title, fn) {
+      if (this.isPending()) {
+        return this;
+      }
+      if (typeof title === "function") {
+        fn = title;
+        title = fn.name;
+      }
+      title = '"before each" hook' + (title ? ": " + title : "");
+      var hook = this._createHook(title, fn);
+      this._beforeEach.push(hook);
+      this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);
+      return this;
+    };
+    Suite.prototype.afterEach = function(title, fn) {
+      if (this.isPending()) {
+        return this;
+      }
+      if (typeof title === "function") {
+        fn = title;
+        title = fn.name;
+      }
+      title = '"after each" hook' + (title ? ": " + title : "");
+      var hook = this._createHook(title, fn);
+      this._afterEach.push(hook);
+      this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);
+      return this;
+    };
+    Suite.prototype.addSuite = function(suite) {
+      suite.parent = this;
+      suite.root = false;
+      suite.timeout(this.timeout());
+      suite.retries(this.retries());
+      suite.slow(this.slow());
+      suite.bail(this.bail());
+      this.suites.push(suite);
+      this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);
+      return this;
+    };
+    Suite.prototype.addTest = function(test) {
+      test.parent = this;
+      test.timeout(this.timeout());
+      test.retries(this.retries());
+      test.slow(this.slow());
+      test.ctx = this.ctx;
+      this.tests.push(test);
+      this.emit(constants.EVENT_SUITE_ADD_TEST, test);
+      return this;
+    };
+    Suite.prototype.fullTitle = function() {
+      return this.titlePath().join(" ");
+    };
+    Suite.prototype.titlePath = function() {
+      var result = [];
+      if (this.parent) {
+        result = result.concat(this.parent.titlePath());
+      }
+      if (!this.root) {
+        result.push(this.title);
+      }
+      return result;
+    };
+    Suite.prototype.total = function() {
+      return this.suites.reduce(function(sum, suite) {
+        return sum + suite.total();
+      }, 0) + this.tests.length;
+    };
+    Suite.prototype.eachTest = function(fn) {
+      this.tests.forEach(fn);
+      this.suites.forEach(function(suite) {
+        suite.eachTest(fn);
+      });
+      return this;
+    };
+    Suite.prototype.run = function run2() {
+      if (this.root) {
+        this.emit(constants.EVENT_ROOT_SUITE_RUN);
+      }
+    };
+    Suite.prototype.hasOnly = function hasOnly() {
+      return this._onlyTests.length > 0 || this._onlySuites.length > 0 || this.suites.some(function(suite) {
+        return suite.hasOnly();
+      });
+    };
+    Suite.prototype.filterOnly = function filterOnly() {
+      if (this._onlyTests.length) {
+        this.tests = this._onlyTests;
+        this.suites = [];
+      } else {
+        this.tests = [];
+        this._onlySuites.forEach(function(onlySuite) {
+          if (onlySuite.hasOnly()) {
+            onlySuite.filterOnly();
+          }
+        });
+        var onlySuites = this._onlySuites;
+        this.suites = this.suites.filter(function(childSuite) {
+          return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();
+        });
+      }
+      return this.tests.length > 0 || this.suites.length > 0;
+    };
+    Suite.prototype.appendOnlySuite = function(suite) {
+      this._onlySuites.push(suite);
+    };
+    Suite.prototype.markOnly = function() {
+      this.parent && this.parent.appendOnlySuite(this);
+    };
+    Suite.prototype.appendOnlyTest = function(test) {
+      this._onlyTests.push(test);
+    };
+    Suite.prototype.getHooks = function getHooks(name) {
+      return this["_" + name];
+    };
+    Suite.prototype.dispose = function() {
+      this.suites.forEach(function(suite) {
+        suite.dispose();
+      });
+      this.cleanReferences();
+    };
+    Suite.prototype.cleanReferences = function cleanReferences() {
+      function cleanArrReferences(arr) {
+        for (var i2 = 0; i2 < arr.length; i2++) {
+          delete arr[i2].fn;
+        }
+      }
+      if (Array.isArray(this._beforeAll)) {
+        cleanArrReferences(this._beforeAll);
+      }
+      if (Array.isArray(this._beforeEach)) {
+        cleanArrReferences(this._beforeEach);
+      }
+      if (Array.isArray(this._afterAll)) {
+        cleanArrReferences(this._afterAll);
+      }
+      if (Array.isArray(this._afterEach)) {
+        cleanArrReferences(this._afterEach);
+      }
+      for (var i = 0; i < this.tests.length; i++) {
+        delete this.tests[i].fn;
+      }
+    };
+    Suite.prototype.serialize = function serialize2() {
+      return {
+        _bail: this._bail,
+        $$fullTitle: this.fullTitle(),
+        $$isPending: Boolean(this.isPending()),
+        root: this.root,
+        title: this.title,
+        [MOCHA_ID_PROP_NAME]: this.id,
+        parent: this.parent ? { [MOCHA_ID_PROP_NAME]: this.parent.id } : null
+      };
+    };
+    var constants = defineConstants(
+      /**
+       * {@link Suite}-related constants.
+       * @public
+       * @memberof Suite
+       * @alias constants
+       * @readonly
+       * @static
+       * @enum {string}
+       */
+      {
+        /**
+         * Event emitted after a test file has been loaded. Not emitted in browser.
+         */
+        EVENT_FILE_POST_REQUIRE: "post-require",
+        /**
+         * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.
+         */
+        EVENT_FILE_PRE_REQUIRE: "pre-require",
+        /**
+         * Event emitted immediately after a test file has been loaded. Not emitted in browser.
+         */
+        EVENT_FILE_REQUIRE: "require",
+        /**
+         * Event emitted when `global.run()` is called (use with `delay` option).
+         */
+        EVENT_ROOT_SUITE_RUN: "run",
+        /**
+         * Namespace for collection of a `Suite`'s "after all" hooks.
+         */
+        HOOK_TYPE_AFTER_ALL: "afterAll",
+        /**
+         * Namespace for collection of a `Suite`'s "after each" hooks.
+         */
+        HOOK_TYPE_AFTER_EACH: "afterEach",
+        /**
+         * Namespace for collection of a `Suite`'s "before all" hooks.
+         */
+        HOOK_TYPE_BEFORE_ALL: "beforeAll",
+        /**
+         * Namespace for collection of a `Suite`'s "before each" hooks.
+         */
+        HOOK_TYPE_BEFORE_EACH: "beforeEach",
+        /**
+         * Emitted after a child `Suite` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_SUITE: "suite",
+        /**
+         * Emitted after an "after all" `Hook` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_HOOK_AFTER_ALL: "afterAll",
+        /**
+         * Emitted after an "after each" `Hook` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_HOOK_AFTER_EACH: "afterEach",
+        /**
+         * Emitted after an "before all" `Hook` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_HOOK_BEFORE_ALL: "beforeAll",
+        /**
+         * Emitted after an "before each" `Hook` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_HOOK_BEFORE_EACH: "beforeEach",
+        /**
+         * Emitted after a `Test` has been added to a `Suite`.
+         */
+        EVENT_SUITE_ADD_TEST: "test"
+      }
+    );
+    Suite.constants = constants;
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runner.js
+var require_runner = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runner.js"(exports2, module2) {
+    "use strict";
+    var EventEmitter2 = require("events").EventEmitter;
+    var Pending = require_pending();
+    var utils = require_utils();
+    var debug = require_src()("mocha:runner");
+    var Runnable = require_runnable();
+    var Suite = require_suite();
+    var HOOK_TYPE_BEFORE_EACH = Suite.constants.HOOK_TYPE_BEFORE_EACH;
+    var HOOK_TYPE_AFTER_EACH = Suite.constants.HOOK_TYPE_AFTER_EACH;
+    var HOOK_TYPE_AFTER_ALL = Suite.constants.HOOK_TYPE_AFTER_ALL;
+    var HOOK_TYPE_BEFORE_ALL = Suite.constants.HOOK_TYPE_BEFORE_ALL;
+    var EVENT_ROOT_SUITE_RUN = Suite.constants.EVENT_ROOT_SUITE_RUN;
+    var STATE_FAILED = Runnable.constants.STATE_FAILED;
+    var STATE_PASSED = Runnable.constants.STATE_PASSED;
+    var STATE_PENDING = Runnable.constants.STATE_PENDING;
+    var stackFilter = utils.stackTraceFilter();
+    var stringify = utils.stringify;
+    var {
+      createInvalidExceptionError,
+      createUnsupportedError,
+      createFatalError,
+      isMochaError,
+      constants: errorConstants
+    } = require_errors();
+    var globals = [
+      "setTimeout",
+      "clearTimeout",
+      "setInterval",
+      "clearInterval",
+      "XMLHttpRequest",
+      "Date",
+      "setImmediate",
+      "clearImmediate"
+    ];
+    var constants = utils.defineConstants(
+      /**
+       * {@link Runner}-related constants.
+       * @public
+       * @memberof Runner
+       * @readonly
+       * @alias constants
+       * @static
+       * @enum {string}
+       */
+      {
+        /**
+         * Emitted when {@link Hook} execution begins
+         */
+        EVENT_HOOK_BEGIN: "hook",
+        /**
+         * Emitted when {@link Hook} execution ends
+         */
+        EVENT_HOOK_END: "hook end",
+        /**
+         * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)
+         */
+        EVENT_RUN_BEGIN: "start",
+        /**
+         * Emitted when Root {@link Suite} execution has been delayed via `delay` option
+         */
+        EVENT_DELAY_BEGIN: "waiting",
+        /**
+         * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`
+         */
+        EVENT_DELAY_END: "ready",
+        /**
+         * Emitted when Root {@link Suite} execution ends
+         */
+        EVENT_RUN_END: "end",
+        /**
+         * Emitted when {@link Suite} execution begins
+         */
+        EVENT_SUITE_BEGIN: "suite",
+        /**
+         * Emitted when {@link Suite} execution ends
+         */
+        EVENT_SUITE_END: "suite end",
+        /**
+         * Emitted when {@link Test} execution begins
+         */
+        EVENT_TEST_BEGIN: "test",
+        /**
+         * Emitted when {@link Test} execution ends
+         */
+        EVENT_TEST_END: "test end",
+        /**
+         * Emitted when {@link Test} execution fails
+         */
+        EVENT_TEST_FAIL: "fail",
+        /**
+         * Emitted when {@link Test} execution succeeds
+         */
+        EVENT_TEST_PASS: "pass",
+        /**
+         * Emitted when {@link Test} becomes pending
+         */
+        EVENT_TEST_PENDING: "pending",
+        /**
+         * Emitted when {@link Test} execution has failed, but will retry
+         */
+        EVENT_TEST_RETRY: "retry",
+        /**
+         * Initial state of Runner
+         */
+        STATE_IDLE: "idle",
+        /**
+         * State set to this value when the Runner has started running
+         */
+        STATE_RUNNING: "running",
+        /**
+         * State set to this value when the Runner has stopped
+         */
+        STATE_STOPPED: "stopped"
+      }
+    );
+    var Runner = class extends EventEmitter2 {
+      /**
+       * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.
+       *
+       * @extends external:EventEmitter
+       * @public
+       * @class
+       * @param {Suite} suite - Root suite
+       * @param {Object} [opts] - Settings object
+       * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
+       * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.
+       * @param {boolean} [opts.dryRun] - Whether to report tests without running them.
+       * @param {boolean} [opts.failZero] - Whether to fail test run if zero tests encountered.
+       */
+      constructor(suite, opts = {}) {
+        super();
+        var self2 = this;
+        this._globals = [];
+        this._abort = false;
+        this.suite = suite;
+        this._opts = opts;
+        this.state = constants.STATE_IDLE;
+        this.total = suite.total();
+        this.failures = 0;
+        this._eventListeners = /* @__PURE__ */ new Map();
+        this.on(constants.EVENT_TEST_END, function(test) {
+          if (test.type === "test" && test.retriedTest() && test.parent) {
+            var idx = test.parent.tests && test.parent.tests.indexOf(test.retriedTest());
+            if (idx > -1)
+              test.parent.tests[idx] = test;
+          }
+          self2.checkGlobals(test);
+        });
+        this.on(constants.EVENT_HOOK_END, function(hook) {
+          self2.checkGlobals(hook);
+        });
+        this._defaultGrep = /.*/;
+        this.grep(this._defaultGrep);
+        this.globals(this.globalProps());
+        this.uncaught = this._uncaught.bind(this);
+        this.unhandled = (reason, promise) => {
+          if (isMochaError(reason)) {
+            debug(
+              "trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:",
+              reason
+            );
+            this.uncaught(reason);
+          } else {
+            debug(
+              "trapped unhandled rejection from (probably) user code; re-emitting on process"
+            );
+            this._removeEventListener(
+              process,
+              "unhandledRejection",
+              this.unhandled
+            );
+            try {
+              process.emit("unhandledRejection", reason, promise);
+            } finally {
+              this._addEventListener(process, "unhandledRejection", this.unhandled);
+            }
+          }
+        };
+      }
+    };
+    Runner.immediately = global.setImmediate || process.nextTick;
+    Runner.prototype._addEventListener = function(target, eventName, listener) {
+      debug(
+        "_addEventListener(): adding for event %s; %d current listeners",
+        eventName,
+        target.listenerCount(eventName)
+      );
+      if (this._eventListeners.has(target) && this._eventListeners.get(target).has(eventName) && this._eventListeners.get(target).get(eventName).has(listener)) {
+        debug(
+          "warning: tried to attach duplicate event listener for %s",
+          eventName
+        );
+        return;
+      }
+      target.on(eventName, listener);
+      const targetListeners = this._eventListeners.has(target) ? this._eventListeners.get(target) : /* @__PURE__ */ new Map();
+      const targetEventListeners = targetListeners.has(eventName) ? targetListeners.get(eventName) : /* @__PURE__ */ new Set();
+      targetEventListeners.add(listener);
+      targetListeners.set(eventName, targetEventListeners);
+      this._eventListeners.set(target, targetListeners);
+    };
+    Runner.prototype._removeEventListener = function(target, eventName, listener) {
+      target.removeListener(eventName, listener);
+      if (this._eventListeners.has(target)) {
+        const targetListeners = this._eventListeners.get(target);
+        if (targetListeners.has(eventName)) {
+          const targetEventListeners = targetListeners.get(eventName);
+          targetEventListeners.delete(listener);
+          if (!targetEventListeners.size) {
+            targetListeners.delete(eventName);
+          }
+        }
+        if (!targetListeners.size) {
+          this._eventListeners.delete(target);
+        }
+      } else {
+        debug("trying to remove listener for untracked object %s", target);
+      }
+    };
+    Runner.prototype.dispose = function() {
+      this.removeAllListeners();
+      this._eventListeners.forEach((targetListeners, target) => {
+        targetListeners.forEach((targetEventListeners, eventName) => {
+          targetEventListeners.forEach((listener) => {
+            target.removeListener(eventName, listener);
+          });
+        });
+      });
+      this._eventListeners.clear();
+    };
+    Runner.prototype.grep = function(re, invert) {
+      debug("grep(): setting to %s", re);
+      this._grep = re;
+      this._invert = invert;
+      this.total = this.grepTotal(this.suite);
+      return this;
+    };
+    Runner.prototype.grepTotal = function(suite) {
+      var self2 = this;
+      var total = 0;
+      suite.eachTest(function(test) {
+        var match2 = self2._grep.test(test.fullTitle());
+        if (self2._invert) {
+          match2 = !match2;
+        }
+        if (match2) {
+          total++;
+        }
+      });
+      return total;
+    };
+    Runner.prototype.globalProps = function() {
+      var props = Object.keys(global);
+      for (var i = 0; i < globals.length; ++i) {
+        if (~props.indexOf(globals[i])) {
+          continue;
+        }
+        props.push(globals[i]);
+      }
+      return props;
+    };
+    Runner.prototype.globals = function(arr) {
+      if (!arguments.length) {
+        return this._globals;
+      }
+      debug("globals(): setting to %O", arr);
+      this._globals = this._globals.concat(arr);
+      return this;
+    };
+    Runner.prototype.checkGlobals = function(test) {
+      if (!this.checkLeaks) {
+        return;
+      }
+      var ok = this._globals;
+      var globals2 = this.globalProps();
+      var leaks;
+      if (test) {
+        ok = ok.concat(test._allowedGlobals || []);
+      }
+      if (this.prevGlobalsLength === globals2.length) {
+        return;
+      }
+      this.prevGlobalsLength = globals2.length;
+      leaks = filterLeaks(ok, globals2);
+      this._globals = this._globals.concat(leaks);
+      if (leaks.length) {
+        var msg = `global leak(s) detected: ${leaks.map((e) => `'${e}'`).join(", ")}`;
+        this.fail(test, new Error(msg));
+      }
+    };
+    Runner.prototype.fail = function(test, err, force) {
+      force = force === true;
+      if (test.isPending() && !force) {
+        return;
+      }
+      if (this.state === constants.STATE_STOPPED) {
+        if (err.code === errorConstants.MULTIPLE_DONE) {
+          throw err;
+        }
+        throw createFatalError(
+          "Test failed after root suite execution completed!",
+          err
+        );
+      }
+      ++this.failures;
+      debug("total number of failures: %d", this.failures);
+      test.state = STATE_FAILED;
+      if (!isError(err)) {
+        err = thrown2Error(err);
+      }
+      try {
+        err.stack = this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);
+      } catch (ignore) {
+      }
+      this.emit(constants.EVENT_TEST_FAIL, test, err);
+    };
+    Runner.prototype.hook = function(name, fn) {
+      if (this._opts.dryRun)
+        return fn();
+      var suite = this.suite;
+      var hooks = suite.getHooks(name);
+      var self2 = this;
+      function next(i) {
+        var hook = hooks[i];
+        if (!hook) {
+          return fn();
+        }
+        self2.currentRunnable = hook;
+        if (name === HOOK_TYPE_BEFORE_ALL) {
+          hook.ctx.currentTest = hook.parent.tests[0];
+        } else if (name === HOOK_TYPE_AFTER_ALL) {
+          hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];
+        } else {
+          hook.ctx.currentTest = self2.test;
+        }
+        setHookTitle(hook);
+        hook.allowUncaught = self2.allowUncaught;
+        self2.emit(constants.EVENT_HOOK_BEGIN, hook);
+        if (!hook.listeners("error").length) {
+          self2._addEventListener(hook, "error", function(err) {
+            self2.fail(hook, err);
+          });
+        }
+        hook.run(function cbHookRun(err) {
+          var testError = hook.error();
+          if (testError) {
+            self2.fail(self2.test, testError);
+          }
+          if (hook.pending) {
+            if (name === HOOK_TYPE_AFTER_EACH) {
+              if (self2.test) {
+                self2.test.pending = true;
+              }
+            } else if (name === HOOK_TYPE_BEFORE_EACH) {
+              if (self2.test) {
+                self2.test.pending = true;
+              }
+              self2.emit(constants.EVENT_HOOK_END, hook);
+              hook.pending = false;
+              return fn(new Error("abort hookDown"));
+            } else if (name === HOOK_TYPE_BEFORE_ALL) {
+              suite.tests.forEach(function(test) {
+                test.pending = true;
+              });
+              suite.suites.forEach(function(suite2) {
+                suite2.pending = true;
+              });
+              hooks = [];
+            } else {
+              hook.pending = false;
+              var errForbid = createUnsupportedError("`this.skip` forbidden");
+              self2.fail(hook, errForbid);
+              return fn(errForbid);
+            }
+          } else if (err) {
+            self2.fail(hook, err);
+            return fn(err);
+          }
+          self2.emit(constants.EVENT_HOOK_END, hook);
+          delete hook.ctx.currentTest;
+          setHookTitle(hook);
+          next(++i);
+        });
+        function setHookTitle(hook2) {
+          hook2.originalTitle = hook2.originalTitle || hook2.title;
+          if (hook2.ctx && hook2.ctx.currentTest) {
+            hook2.title = `${hook2.originalTitle} for "${hook2.ctx.currentTest.title}"`;
+          } else {
+            var parentTitle;
+            if (hook2.parent.title) {
+              parentTitle = hook2.parent.title;
+            } else {
+              parentTitle = hook2.parent.root ? "{root}" : "";
+            }
+            hook2.title = `${hook2.originalTitle} in "${parentTitle}"`;
+          }
+        }
+      }
+      Runner.immediately(function() {
+        next(0);
+      });
+    };
+    Runner.prototype.hooks = function(name, suites, fn) {
+      var self2 = this;
+      var orig = this.suite;
+      function next(suite) {
+        self2.suite = suite;
+        if (!suite) {
+          self2.suite = orig;
+          return fn();
+        }
+        self2.hook(name, function(err) {
+          if (err) {
+            var errSuite = self2.suite;
+            self2.suite = orig;
+            return fn(err, errSuite);
+          }
+          next(suites.pop());
+        });
+      }
+      next(suites.pop());
+    };
+    Runner.prototype.hookUp = function(name, fn) {
+      var suites = [this.suite].concat(this.parents()).reverse();
+      this.hooks(name, suites, fn);
+    };
+    Runner.prototype.hookDown = function(name, fn) {
+      var suites = [this.suite].concat(this.parents());
+      this.hooks(name, suites, fn);
+    };
+    Runner.prototype.parents = function() {
+      var suite = this.suite;
+      var suites = [];
+      while (suite.parent) {
+        suite = suite.parent;
+        suites.push(suite);
+      }
+      return suites;
+    };
+    Runner.prototype.runTest = function(fn) {
+      if (this._opts.dryRun)
+        return Runner.immediately(fn);
+      var self2 = this;
+      var test = this.test;
+      if (!test) {
+        return;
+      }
+      if (this.asyncOnly) {
+        test.asyncOnly = true;
+      }
+      this._addEventListener(test, "error", function(err) {
+        self2.fail(test, err);
+      });
+      if (this.allowUncaught) {
+        test.allowUncaught = true;
+        return test.run(fn);
+      }
+      try {
+        test.run(fn);
+      } catch (err) {
+        fn(err);
+      }
+    };
+    Runner.prototype.runTests = function(suite, fn) {
+      var self2 = this;
+      var tests = suite.tests.slice();
+      var test;
+      function hookErr(_, errSuite, after) {
+        var orig = self2.suite;
+        self2.suite = after ? errSuite.parent : errSuite;
+        if (self2.suite) {
+          self2.hookUp(HOOK_TYPE_AFTER_EACH, function(err2, errSuite2) {
+            self2.suite = orig;
+            if (err2) {
+              return hookErr(err2, errSuite2, true);
+            }
+            fn(errSuite);
+          });
+        } else {
+          self2.suite = orig;
+          fn(errSuite);
+        }
+      }
+      function next(err, errSuite) {
+        if (self2.failures && suite._bail) {
+          tests = [];
+        }
+        if (self2._abort) {
+          return fn();
+        }
+        if (err) {
+          return hookErr(err, errSuite, true);
+        }
+        test = tests.shift();
+        if (!test) {
+          return fn();
+        }
+        var match2 = self2._grep.test(test.fullTitle());
+        if (self2._invert) {
+          match2 = !match2;
+        }
+        if (!match2) {
+          if (self2._grep !== self2._defaultGrep) {
+            Runner.immediately(next);
+          } else {
+            next();
+          }
+          return;
+        }
+        if (test.isPending()) {
+          if (self2.forbidPending) {
+            self2.fail(test, new Error("Pending test forbidden"), true);
+          } else {
+            test.state = STATE_PENDING;
+            self2.emit(constants.EVENT_TEST_PENDING, test);
+          }
+          self2.emit(constants.EVENT_TEST_END, test);
+          return next();
+        }
+        self2.emit(constants.EVENT_TEST_BEGIN, self2.test = test);
+        self2.hookDown(HOOK_TYPE_BEFORE_EACH, function(err2, errSuite2) {
+          if (test.isPending()) {
+            if (self2.forbidPending) {
+              self2.fail(test, new Error("Pending test forbidden"), true);
+            } else {
+              test.state = STATE_PENDING;
+              self2.emit(constants.EVENT_TEST_PENDING, test);
+            }
+            self2.emit(constants.EVENT_TEST_END, test);
+            var origSuite = self2.suite;
+            self2.suite = errSuite2 || self2.suite;
+            return self2.hookUp(HOOK_TYPE_AFTER_EACH, function(e, eSuite) {
+              self2.suite = origSuite;
+              next(e, eSuite);
+            });
+          }
+          if (err2) {
+            return hookErr(err2, errSuite2, false);
+          }
+          self2.currentRunnable = self2.test;
+          self2.runTest(function(err3) {
+            test = self2.test;
+            if (test.pending) {
+              if (self2.forbidPending) {
+                self2.fail(test, new Error("Pending test forbidden"), true);
+              } else {
+                test.state = STATE_PENDING;
+                self2.emit(constants.EVENT_TEST_PENDING, test);
+              }
+              self2.emit(constants.EVENT_TEST_END, test);
+              return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
+            } else if (err3) {
+              var retry = test.currentRetry();
+              if (retry < test.retries()) {
+                var clonedTest = test.clone();
+                clonedTest.currentRetry(retry + 1);
+                tests.unshift(clonedTest);
+                self2.emit(constants.EVENT_TEST_RETRY, test, err3);
+                return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
+              } else {
+                self2.fail(test, err3);
+              }
+              self2.emit(constants.EVENT_TEST_END, test);
+              return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
+            }
+            test.state = STATE_PASSED;
+            self2.emit(constants.EVENT_TEST_PASS, test);
+            self2.emit(constants.EVENT_TEST_END, test);
+            self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
+          });
+        });
+      }
+      this.next = next;
+      this.hookErr = hookErr;
+      next();
+    };
+    Runner.prototype.runSuite = function(suite, fn) {
+      var i = 0;
+      var self2 = this;
+      var total = this.grepTotal(suite);
+      debug("runSuite(): running %s", suite.fullTitle());
+      if (!total || self2.failures && suite._bail) {
+        debug("runSuite(): bailing");
+        return fn();
+      }
+      this.emit(constants.EVENT_SUITE_BEGIN, this.suite = suite);
+      function next(errSuite) {
+        if (errSuite) {
+          if (errSuite === suite) {
+            return done();
+          }
+          return done(errSuite);
+        }
+        if (self2._abort) {
+          return done();
+        }
+        var curr = suite.suites[i++];
+        if (!curr) {
+          return done();
+        }
+        if (self2._grep !== self2._defaultGrep) {
+          Runner.immediately(function() {
+            self2.runSuite(curr, next);
+          });
+        } else {
+          self2.runSuite(curr, next);
+        }
+      }
+      function done(errSuite) {
+        self2.suite = suite;
+        self2.nextSuite = next;
+        delete self2.test;
+        self2.hook(HOOK_TYPE_AFTER_ALL, function() {
+          self2.emit(constants.EVENT_SUITE_END, suite);
+          fn(errSuite);
+        });
+      }
+      this.nextSuite = next;
+      this.hook(HOOK_TYPE_BEFORE_ALL, function(err) {
+        if (err) {
+          return done();
+        }
+        self2.runTests(suite, next);
+      });
+    };
+    Runner.prototype._uncaught = function(err) {
+      if (!(this instanceof Runner)) {
+        throw createFatalError(
+          "Runner#uncaught() called with invalid context",
+          this
+        );
+      }
+      if (err instanceof Pending) {
+        debug("uncaught(): caught a Pending");
+        return;
+      }
+      if (this.allowUncaught && !utils.isBrowser()) {
+        debug("uncaught(): bubbling exception due to --allow-uncaught");
+        throw err;
+      }
+      if (this.state === constants.STATE_STOPPED) {
+        debug("uncaught(): throwing after run has completed!");
+        throw err;
+      }
+      if (err) {
+        debug("uncaught(): got truthy exception %O", err);
+      } else {
+        debug("uncaught(): undefined/falsy exception");
+        err = createInvalidExceptionError(
+          "Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger",
+          err
+        );
+      }
+      if (!isError(err)) {
+        err = thrown2Error(err);
+        debug('uncaught(): converted "error" %o to Error', err);
+      }
+      err.uncaught = true;
+      var runnable = this.currentRunnable;
+      if (!runnable) {
+        runnable = new Runnable("Uncaught error outside test suite");
+        debug("uncaught(): no current Runnable; created a phony one");
+        runnable.parent = this.suite;
+        if (this.state === constants.STATE_RUNNING) {
+          debug("uncaught(): failing gracefully");
+          this.fail(runnable, err);
+        } else {
+          debug("uncaught(): test run has not yet started; unrecoverable");
+          this.emit(constants.EVENT_RUN_BEGIN);
+          this.fail(runnable, err);
+          this.emit(constants.EVENT_RUN_END);
+        }
+        return;
+      }
+      runnable.clearTimeout();
+      if (runnable.isFailed()) {
+        debug("uncaught(): Runnable has already failed");
+        return;
+      } else if (runnable.isPending()) {
+        debug("uncaught(): pending Runnable wound up failing!");
+        this.fail(runnable, err, true);
+        return;
+      }
+      if (runnable.isPassed()) {
+        debug("uncaught(): Runnable has already passed; bailing gracefully");
+        this.fail(runnable, err);
+        this.abort();
+      } else {
+        debug("uncaught(): forcing Runnable to complete with Error");
+        return runnable.callback(err);
+      }
+    };
+    Runner.prototype.run = function(fn, opts = {}) {
+      var rootSuite = this.suite;
+      var options = opts.options || {};
+      debug("run(): got options: %O", options);
+      fn = fn || function() {
+      };
+      const end = () => {
+        if (!this.total && this._opts.failZero)
+          this.failures = 1;
+        debug("run(): root suite completed; emitting %s", constants.EVENT_RUN_END);
+        this.emit(constants.EVENT_RUN_END);
+      };
+      const begin = () => {
+        debug("run(): emitting %s", constants.EVENT_RUN_BEGIN);
+        this.emit(constants.EVENT_RUN_BEGIN);
+        debug("run(): emitted %s", constants.EVENT_RUN_BEGIN);
+        this.runSuite(rootSuite, end);
+      };
+      const prepare = () => {
+        debug("run(): starting");
+        if (rootSuite.hasOnly()) {
+          rootSuite.filterOnly();
+          debug("run(): filtered exclusive Runnables");
+        }
+        this.state = constants.STATE_RUNNING;
+        if (this._opts.delay) {
+          this.emit(constants.EVENT_DELAY_END);
+          debug('run(): "delay" ended');
+        }
+        return begin();
+      };
+      if (this._opts.cleanReferencesAfterRun) {
+        this.on(constants.EVENT_SUITE_END, (suite) => {
+          suite.cleanReferences();
+        });
+      }
+      this.on(constants.EVENT_RUN_END, function() {
+        this.state = constants.STATE_STOPPED;
+        debug("run(): emitted %s", constants.EVENT_RUN_END);
+        fn(this.failures);
+      });
+      this._removeEventListener(process, "uncaughtException", this.uncaught);
+      this._removeEventListener(process, "unhandledRejection", this.unhandled);
+      this._addEventListener(process, "uncaughtException", this.uncaught);
+      this._addEventListener(process, "unhandledRejection", this.unhandled);
+      if (this._opts.delay) {
+        this.emit(constants.EVENT_DELAY_BEGIN, rootSuite);
+        rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);
+        debug("run(): waiting for green light due to --delay");
+      } else {
+        Runner.immediately(prepare);
+      }
+      return this;
+    };
+    Runner.prototype.linkPartialObjects = function(value) {
+      return this;
+    };
+    Runner.prototype.runAsync = async function runAsync(opts = {}) {
+      return new Promise((resolve2) => {
+        this.run(resolve2, opts);
+      });
+    };
+    Runner.prototype.abort = function() {
+      debug("abort(): aborting");
+      this._abort = true;
+      return this;
+    };
+    Runner.prototype.isParallelMode = function isParallelMode() {
+      return false;
+    };
+    Runner.prototype.workerReporter = function() {
+      throw createUnsupportedError("workerReporter() not supported in serial mode");
+    };
+    function filterLeaks(ok, globals2) {
+      return globals2.filter(function(key) {
+        if (/^\d+/.test(key)) {
+          return false;
+        }
+        if (global.navigator && /^getInterface/.test(key)) {
+          return false;
+        }
+        if (global.navigator && /^\d+/.test(key)) {
+          return false;
+        }
+        if (/^mocha-/.test(key)) {
+          return false;
+        }
+        var matched = ok.filter(function(ok2) {
+          if (~ok2.indexOf("*")) {
+            return key.indexOf(ok2.split("*")[0]) === 0;
+          }
+          return key === ok2;
+        });
+        return !matched.length && (!global.navigator || key !== "onerror");
+      });
+    }
+    function isError(err) {
+      return err instanceof Error || err && typeof err.message === "string";
+    }
+    function thrown2Error(err) {
+      return new Error(
+        `the ${utils.canonicalType(err)} ${stringify(
+          err
+        )} was thrown, throw an Error :)`
+      );
+    }
+    Runner.constants = constants;
+    module2.exports = Runner;
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/base.js
+var require_base2 = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/base.js"(exports2, module2) {
+    "use strict";
+    var diff = require_lib();
+    var milliseconds = require_ms();
+    var utils = require_utils();
+    var supportsColor = require_supports_color();
+    var symbols = require_log_symbols();
+    var constants = require_runner().constants;
+    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+    var isBrowser = utils.isBrowser();
+    function getBrowserWindowSize() {
+      if ("innerHeight" in global) {
+        return [global.innerHeight, global.innerWidth];
+      }
+      return [640, 480];
+    }
+    exports2 = module2.exports = Base;
+    var isatty = isBrowser || process.stdout.isTTY && process.stderr.isTTY;
+    var consoleLog = console.log;
+    exports2.useColors = !isBrowser && (supportsColor.stdout || process.env.MOCHA_COLORS !== void 0);
+    exports2.inlineDiffs = false;
+    exports2.maxDiffSize = 8192;
+    exports2.colors = {
+      pass: 90,
+      fail: 31,
+      "bright pass": 92,
+      "bright fail": 91,
+      "bright yellow": 93,
+      pending: 36,
+      suite: 0,
+      "error title": 0,
+      "error message": 31,
+      "error stack": 90,
+      checkmark: 32,
+      fast: 90,
+      medium: 33,
+      slow: 31,
+      green: 32,
+      light: 90,
+      "diff gutter": 90,
+      "diff added": 32,
+      "diff removed": 31,
+      "diff added inline": "30;42",
+      "diff removed inline": "30;41"
+    };
+    exports2.symbols = {
+      ok: symbols.success,
+      err: symbols.error,
+      dot: ".",
+      comma: ",",
+      bang: "!"
+    };
+    var color = exports2.color = function(type2, str2) {
+      if (!exports2.useColors) {
+        return String(str2);
+      }
+      return "\x1B[" + exports2.colors[type2] + "m" + str2 + "\x1B[0m";
+    };
+    exports2.window = {
+      width: 75
+    };
+    if (isatty) {
+      if (isBrowser) {
+        exports2.window.width = getBrowserWindowSize()[1];
+      } else {
+        exports2.window.width = process.stdout.getWindowSize(1)[0];
+      }
+    }
+    exports2.cursor = {
+      hide: function() {
+        isatty && process.stdout.write("\x1B[?25l");
+      },
+      show: function() {
+        isatty && process.stdout.write("\x1B[?25h");
+      },
+      deleteLine: function() {
+        isatty && process.stdout.write("\x1B[2K");
+      },
+      beginningOfLine: function() {
+        isatty && process.stdout.write("\x1B[0G");
+      },
+      CR: function() {
+        if (isatty) {
+          exports2.cursor.deleteLine();
+          exports2.cursor.beginningOfLine();
+        } else {
+          process.stdout.write("\r");
+        }
+      }
+    };
+    var showDiff = exports2.showDiff = function(err) {
+      return err && err.showDiff !== false && sameType(err.actual, err.expected) && err.expected !== void 0;
+    };
+    function stringifyDiffObjs(err) {
+      if (!utils.isString(err.actual) || !utils.isString(err.expected)) {
+        err.actual = utils.stringify(err.actual);
+        err.expected = utils.stringify(err.expected);
+      }
+    }
+    var generateDiff = exports2.generateDiff = function(actual, expected) {
+      try {
+        var maxLen = exports2.maxDiffSize;
+        var skipped = 0;
+        if (maxLen > 0) {
+          skipped = Math.max(actual.length - maxLen, expected.length - maxLen);
+          actual = actual.slice(0, maxLen);
+          expected = expected.slice(0, maxLen);
+        }
+        let result = exports2.inlineDiffs ? inlineDiff(actual, expected) : unifiedDiff(actual, expected);
+        if (skipped > 0) {
+          result = `${result}
+      [mocha] output truncated to ${maxLen} characters, see "maxDiffSize" reporter-option
+`;
+        }
+        return result;
+      } catch (err) {
+        var msg = "\n      " + color("diff added", "+ expected") + " " + color("diff removed", "- actual:  failed to generate Mocha diff") + "\n";
+        return msg;
+      }
+    };
+    exports2.list = function(failures) {
+      var multipleErr, multipleTest;
+      Base.consoleLog();
+      failures.forEach(function(test, i) {
+        var fmt = color("error title", "  %s) %s:\n") + color("error message", "     %s") + color("error stack", "\n%s\n");
+        var msg;
+        var err;
+        if (test.err && test.err.multiple) {
+          if (multipleTest !== test) {
+            multipleTest = test;
+            multipleErr = [test.err].concat(test.err.multiple);
+          }
+          err = multipleErr.shift();
+        } else {
+          err = test.err;
+        }
+        var message;
+        if (typeof err.inspect === "function") {
+          message = err.inspect() + "";
+        } else if (err.message && typeof err.message.toString === "function") {
+          message = err.message + "";
+        } else {
+          message = "";
+        }
+        var stack = err.stack || message;
+        var index = message ? stack.indexOf(message) : -1;
+        if (index === -1) {
+          msg = message;
+        } else {
+          index += message.length;
+          msg = stack.slice(0, index);
+          stack = stack.slice(index + 1);
+        }
+        if (err.uncaught) {
+          msg = "Uncaught " + msg;
+        }
+        if (!exports2.hideDiff && showDiff(err)) {
+          stringifyDiffObjs(err);
+          fmt = color("error title", "  %s) %s:\n%s") + color("error stack", "\n%s\n");
+          var match2 = message.match(/^([^:]+): expected/);
+          msg = "\n      " + color("error message", match2 ? match2[1] : msg);
+          msg += generateDiff(err.actual, err.expected);
+        }
+        stack = stack.replace(/^/gm, "  ");
+        var testTitle = "";
+        test.titlePath().forEach(function(str2, index2) {
+          if (index2 !== 0) {
+            testTitle += "\n     ";
+          }
+          for (var i2 = 0; i2 < index2; i2++) {
+            testTitle += "  ";
+          }
+          testTitle += str2;
+        });
+        Base.consoleLog(fmt, i + 1, testTitle, msg, stack);
+      });
+    };
+    function Base(runner, options) {
+      var failures = this.failures = [];
+      if (!runner) {
+        throw new TypeError("Missing runner argument");
+      }
+      this.options = options || {};
+      this.runner = runner;
+      this.stats = runner.stats;
+      var maxDiffSizeOpt = this.options.reporterOption && this.options.reporterOption.maxDiffSize;
+      if (maxDiffSizeOpt !== void 0 && !isNaN(Number(maxDiffSizeOpt))) {
+        exports2.maxDiffSize = Number(maxDiffSizeOpt);
+      }
+      runner.on(EVENT_TEST_PASS, function(test) {
+        if (test.duration > test.slow()) {
+          test.speed = "slow";
+        } else if (test.duration > test.slow() / 2) {
+          test.speed = "medium";
+        } else {
+          test.speed = "fast";
+        }
+      });
+      runner.on(EVENT_TEST_FAIL, function(test, err) {
+        if (showDiff(err)) {
+          stringifyDiffObjs(err);
+        }
+        if (test.err && err instanceof Error) {
+          test.err.multiple = (test.err.multiple || []).concat(err);
+        } else {
+          test.err = err;
+        }
+        failures.push(test);
+      });
+    }
+    Base.prototype.epilogue = function() {
+      var stats = this.stats;
+      var fmt;
+      Base.consoleLog();
+      fmt = color("bright pass", " ") + color("green", " %d passing") + color("light", " (%s)");
+      Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));
+      if (stats.pending) {
+        fmt = color("pending", " ") + color("pending", " %d pending");
+        Base.consoleLog(fmt, stats.pending);
+      }
+      if (stats.failures) {
+        fmt = color("fail", "  %d failing");
+        Base.consoleLog(fmt, stats.failures);
+        Base.list(this.failures);
+        Base.consoleLog();
+      }
+      Base.consoleLog();
+    };
+    function pad(str2, len) {
+      str2 = String(str2);
+      return Array(len - str2.length + 1).join(" ") + str2;
+    }
+    function inlineDiff(actual, expected) {
+      var msg = errorDiff(actual, expected);
+      var lines = msg.split("\n");
+      if (lines.length > 4) {
+        var width = String(lines.length).length;
+        msg = lines.map(function(str2, i) {
+          return pad(++i, width) + " | " + str2;
+        }).join("\n");
+      }
+      msg = "\n" + color("diff removed inline", "actual") + " " + color("diff added inline", "expected") + "\n\n" + msg + "\n";
+      msg = msg.replace(/^/gm, "      ");
+      return msg;
+    }
+    function unifiedDiff(actual, expected) {
+      var indent = "      ";
+      function cleanUp(line) {
+        if (line[0] === "+") {
+          return indent + colorLines("diff added", line);
+        }
+        if (line[0] === "-") {
+          return indent + colorLines("diff removed", line);
+        }
+        if (line.match(/@@/)) {
+          return "--";
+        }
+        if (line.match(/\\ No newline/)) {
+          return null;
+        }
+        return indent + line;
+      }
+      function notBlank(line) {
+        return typeof line !== "undefined" && line !== null;
+      }
+      var msg = diff.createPatch("string", actual, expected);
+      var lines = msg.split("\n").splice(5);
+      return "\n      " + colorLines("diff added", "+ expected") + " " + colorLines("diff removed", "- actual") + "\n\n" + lines.map(cleanUp).filter(notBlank).join("\n");
+    }
+    function errorDiff(actual, expected) {
+      return diff.diffWordsWithSpace(actual, expected).map(function(str2) {
+        if (str2.added) {
+          return colorLines("diff added inline", str2.value);
+        }
+        if (str2.removed) {
+          return colorLines("diff removed inline", str2.value);
+        }
+        return str2.value;
+      }).join("");
+    }
+    function colorLines(name, str2) {
+      return str2.split("\n").map(function(str3) {
+        return color(name, str3);
+      }).join("\n");
+    }
+    var objToString = Object.prototype.toString;
+    function sameType(a, b) {
+      return objToString.call(a) === objToString.call(b);
+    }
+    Base.consoleLog = consoleLog;
+    Base.abstract = true;
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/dot.js
+var require_dot = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/dot.js"(exports2, module2) {
+    "use strict";
+    var Base = require_base2();
+    var inherits = require_utils().inherits;
+    var constants = require_runner().constants;
+    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+    var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+    var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+    var EVENT_RUN_END = constants.EVENT_RUN_END;
+    exports2 = module2.exports = Dot;
+    function Dot(runner, options) {
+      Base.call(this, runner, options);
+      var self2 = this;
+      var width = Base.window.width * 0.75 | 0;
+      var n = -1;
+      runner.on(EVENT_RUN_BEGIN, function() {
+        process.stdout.write("\n");
+      });
+      runner.on(EVENT_TEST_PENDING, function() {
+        if (++n % width === 0) {
+          process.stdout.write("\n  ");
+        }
+        process.stdout.write(Base.color("pending", Base.symbols.comma));
+      });
+      runner.on(EVENT_TEST_PASS, function(test) {
+        if (++n % width === 0) {
+          process.stdout.write("\n  ");
+        }
+        if (test.speed === "slow") {
+          process.stdout.write(Base.color("bright yellow", Base.symbols.dot));
+        } else {
+          process.stdout.write(Base.color(test.speed, Base.symbols.dot));
+        }
+      });
+      runner.on(EVENT_TEST_FAIL, function() {
+        if (++n % width === 0) {
+          process.stdout.write("\n  ");
+        }
+        process.stdout.write(Base.color("fail", Base.symbols.bang));
+      });
+      runner.once(EVENT_RUN_END, function() {
+        process.stdout.write("\n");
+        self2.epilogue();
+      });
+    }
+    inherits(Dot, Base);
+    Dot.description = "dot matrix representation";
+  }
+});
+
+// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/doc.js
+var require_doc = __commonJS({
+  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/doc.js"(exports2, module2) {
+    "use strict";
+    var Base = require_base2();
+    var utils = require_utils();
+    var constants = require_runner().constants;
+    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+    var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+    var EVENT_SUITE_END = constants.EVENT_SUITE_END;
+    exports2 = module2.exports = Doc;
+    function Doc(runner, options) {
+      Base.call(this, runner, options);
+      var indents = 2;
+      function indent() {
+        return Array(indents).join("  ");
+      }
+      runner.on(EVENT_SUITE_BEGIN, function(suite) {
+        if (suite.root) {
+          return;
+        }
+        ++indents;
+        Base.consoleLog('%s
', indent()); + ++indents; + Base.consoleLog("%s

%s

", indent(), utils.escape(suite.title)); + Base.consoleLog("%s
", indent()); + }); + runner.on(EVENT_SUITE_END, function(suite) { + if (suite.root) { + return; + } + Base.consoleLog("%s
", indent()); + --indents; + Base.consoleLog("%s
", indent()); + --indents; + }); + runner.on(EVENT_TEST_PASS, function(test) { + Base.consoleLog("%s
%s
", indent(), utils.escape(test.title)); + Base.consoleLog("%s
%s
", indent(), utils.escape(test.file)); + var code = utils.escape(utils.clean(test.body)); + Base.consoleLog("%s
%s
", indent(), code); + }); + runner.on(EVENT_TEST_FAIL, function(test, err) { + Base.consoleLog( + '%s
%s
', + indent(), + utils.escape(test.title) + ); + Base.consoleLog( + '%s
%s
', + indent(), + utils.escape(test.file) + ); + var code = utils.escape(utils.clean(test.body)); + Base.consoleLog( + '%s
%s
', + indent(), + code + ); + Base.consoleLog( + '%s
%s
', + indent(), + utils.escape(err) + ); + }); + } + Doc.description = "HTML documentation"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/tap.js +var require_tap = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/tap.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var Base = require_base2(); + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var EVENT_TEST_END = constants.EVENT_TEST_END; + var inherits = require_utils().inherits; + var sprintf = util.format; + exports2 = module2.exports = TAP; + function TAP(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var n = 1; + var tapVersion = "12"; + if (options && options.reporterOptions) { + if (options.reporterOptions.tapVersion) { + tapVersion = options.reporterOptions.tapVersion.toString(); + } + } + this._producer = createProducer(tapVersion); + runner.once(EVENT_RUN_BEGIN, function() { + self2._producer.writeVersion(); + }); + runner.on(EVENT_TEST_END, function() { + ++n; + }); + runner.on(EVENT_TEST_PENDING, function(test) { + self2._producer.writePending(n, test); + }); + runner.on(EVENT_TEST_PASS, function(test) { + self2._producer.writePass(n, test); + }); + runner.on(EVENT_TEST_FAIL, function(test, err) { + self2._producer.writeFail(n, test, err); + }); + runner.once(EVENT_RUN_END, function() { + self2._producer.writeEpilogue(runner.stats); + }); + } + inherits(TAP, Base); + function title(test) { + return test.fullTitle().replace(/#/g, ""); + } + function println(format, varArgs) { + var vargs = Array.from(arguments); + vargs[0] += "\n"; + process.stdout.write(sprintf.apply(null, vargs)); + } + function createProducer(tapVersion) { + var producers = { + 12: new TAP12Producer(), + 13: new TAP13Producer() + }; + var producer = producers[tapVersion]; + if (!producer) { + throw new Error( + "invalid or unsupported TAP version: " + JSON.stringify(tapVersion) + ); + } + return producer; + } + function TAPProducer() { + } + TAPProducer.prototype.writeVersion = function() { + }; + TAPProducer.prototype.writePlan = function(ntests) { + println("%d..%d", 1, ntests); + }; + TAPProducer.prototype.writePass = function(n, test) { + println("ok %d %s", n, title(test)); + }; + TAPProducer.prototype.writePending = function(n, test) { + println("ok %d %s # SKIP -", n, title(test)); + }; + TAPProducer.prototype.writeFail = function(n, test, err) { + println("not ok %d %s", n, title(test)); + }; + TAPProducer.prototype.writeEpilogue = function(stats) { + println("# tests " + (stats.passes + stats.failures)); + println("# pass " + stats.passes); + println("# fail " + stats.failures); + this.writePlan(stats.passes + stats.failures + stats.pending); + }; + function TAP12Producer() { + this.writeFail = function(n, test, err) { + TAPProducer.prototype.writeFail.call(this, n, test, err); + if (err.message) { + println(err.message.replace(/^/gm, " ")); + } + if (err.stack) { + println(err.stack.replace(/^/gm, " ")); + } + }; + } + inherits(TAP12Producer, TAPProducer); + function TAP13Producer() { + this.writeVersion = function() { + println("TAP version 13"); + }; + this.writeFail = function(n, test, err) { + TAPProducer.prototype.writeFail.call(this, n, test, err); + var emitYamlBlock = err.message != null || err.stack != null; + if (emitYamlBlock) { + println(indent(1) + "---"); + if (err.message) { + println(indent(2) + "message: |-"); + println(err.message.replace(/^/gm, indent(3))); + } + if (err.stack) { + println(indent(2) + "stack: |-"); + println(err.stack.replace(/^/gm, indent(3))); + } + println(indent(1) + "..."); + } + }; + function indent(level) { + return Array(level + 1).join(" "); + } + } + inherits(TAP13Producer, TAPProducer); + TAP.description = "TAP-compatible output"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json.js +var require_json2 = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var fs2 = require("fs"); + var path4 = require("path"); + var createUnsupportedError = require_errors().createUnsupportedError; + var utils = require_utils(); + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_TEST_END = constants.EVENT_TEST_END; + var EVENT_RUN_END = constants.EVENT_RUN_END; + exports2 = module2.exports = JSONReporter; + function JSONReporter(runner, options = {}) { + Base.call(this, runner, options); + var self2 = this; + var tests = []; + var pending = []; + var failures = []; + var passes = []; + var output; + if (options.reporterOption && options.reporterOption.output) { + if (utils.isBrowser()) { + throw createUnsupportedError("file output not supported in browser"); + } + output = options.reporterOption.output; + } + runner.on(EVENT_TEST_END, function(test) { + tests.push(test); + }); + runner.on(EVENT_TEST_PASS, function(test) { + passes.push(test); + }); + runner.on(EVENT_TEST_FAIL, function(test) { + failures.push(test); + }); + runner.on(EVENT_TEST_PENDING, function(test) { + pending.push(test); + }); + runner.once(EVENT_RUN_END, function() { + var obj = { + stats: self2.stats, + tests: tests.map(clean), + pending: pending.map(clean), + failures: failures.map(clean), + passes: passes.map(clean) + }; + runner.testResults = obj; + var json2 = JSON.stringify(obj, null, 2); + if (output) { + try { + fs2.mkdirSync(path4.dirname(output), { recursive: true }); + fs2.writeFileSync(output, json2); + } catch (err) { + console.error( + `${Base.symbols.err} [mocha] writing output to "${output}" failed: ${err.message} +` + ); + process.stdout.write(json2); + } + } else { + process.stdout.write(json2); + } + }); + } + function clean(test) { + var err = test.err || {}; + if (err instanceof Error) { + err = errorJSON(err); + } + return { + title: test.title, + fullTitle: test.fullTitle(), + file: test.file, + duration: test.duration, + currentRetry: test.currentRetry(), + speed: test.speed, + err: cleanCycles(err) + }; + } + function cleanCycles(obj) { + var cache = []; + return JSON.parse( + JSON.stringify(obj, function(key, value) { + if (typeof value === "object" && value !== null) { + if (cache.indexOf(value) !== -1) { + return "" + value; + } + cache.push(value); + } + return value; + }) + ); + } + function errorJSON(err) { + var res = {}; + Object.getOwnPropertyNames(err).forEach(function(key) { + res[key] = err[key]; + }, err); + return res; + } + JSONReporter.description = "single JSON object"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/browser/progress.js +var require_progress = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/browser/progress.js"(exports2, module2) { + "use strict"; + module2.exports = Progress; + function Progress() { + this.percent = 0; + this.size(0); + this.fontSize(11); + this.font("helvetica, arial, sans-serif"); + } + Progress.prototype.size = function(size) { + this._size = size; + return this; + }; + Progress.prototype.text = function(text) { + this._text = text; + return this; + }; + Progress.prototype.fontSize = function(size) { + this._fontSize = size; + return this; + }; + Progress.prototype.font = function(family) { + this._font = family; + return this; + }; + Progress.prototype.update = function(n) { + this.percent = n; + return this; + }; + Progress.prototype.draw = function(ctx) { + try { + var darkMatcher = window.matchMedia("(prefers-color-scheme: dark)"); + var isDarkMode = !!darkMatcher.matches; + var lightColors = { + outerCircle: "#9f9f9f", + innerCircle: "#eee", + text: "#000" + }; + var darkColors = { + outerCircle: "#888", + innerCircle: "#444", + text: "#fff" + }; + var colors = isDarkMode ? darkColors : lightColors; + var percent = Math.min(this.percent, 100); + var size = this._size; + var half = size / 2; + var x = half; + var y = half; + var rad = half - 1; + var fontSize = this._fontSize; + ctx.font = fontSize + "px " + this._font; + var angle = Math.PI * 2 * (percent / 100); + ctx.clearRect(0, 0, size, size); + ctx.strokeStyle = colors.outerCircle; + ctx.beginPath(); + ctx.arc(x, y, rad, 0, angle, false); + ctx.stroke(); + ctx.strokeStyle = colors.innerCircle; + ctx.beginPath(); + ctx.arc(x, y, rad - 1, 0, angle, true); + ctx.stroke(); + var text = this._text || (percent | 0) + "%"; + var w = ctx.measureText(text).width; + ctx.fillStyle = colors.text; + ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1); + } catch (ignore) { + } + return this; + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/html.js +var require_html = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/html.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var utils = require_utils(); + var Progress = require_progress(); + var escapeRe = require_escape_string_regexp(); + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; + var EVENT_SUITE_END = constants.EVENT_SUITE_END; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var escape2 = utils.escape; + var Date2 = global.Date; + exports2 = module2.exports = HTML; + var statsTemplate = ''; + var playIcon = "‣"; + function HTML(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var stats = this.stats; + var stat = fragment(statsTemplate); + var items = stat.getElementsByTagName("li"); + var passes = items[1].getElementsByTagName("em")[0]; + var passesLink = items[1].getElementsByTagName("a")[0]; + var failures = items[2].getElementsByTagName("em")[0]; + var failuresLink = items[2].getElementsByTagName("a")[0]; + var duration = items[3].getElementsByTagName("em")[0]; + var canvas = stat.getElementsByTagName("canvas")[0]; + var report = fragment('
    '); + var stack = [report]; + var progress; + var ctx; + var root = document.getElementById("mocha"); + if (canvas.getContext) { + var ratio = window.devicePixelRatio || 1; + canvas.style.width = canvas.width; + canvas.style.height = canvas.height; + canvas.width *= ratio; + canvas.height *= ratio; + ctx = canvas.getContext("2d"); + ctx.scale(ratio, ratio); + progress = new Progress(); + } + if (!root) { + return error("#mocha div missing, add it to your document"); + } + on(passesLink, "click", function(evt) { + evt.preventDefault(); + unhide(); + var name = /pass/.test(report.className) ? "" : " pass"; + report.className = report.className.replace(/fail|pass/g, "") + name; + if (report.className.trim()) { + hideSuitesWithout("test pass"); + } + }); + on(failuresLink, "click", function(evt) { + evt.preventDefault(); + unhide(); + var name = /fail/.test(report.className) ? "" : " fail"; + report.className = report.className.replace(/fail|pass/g, "") + name; + if (report.className.trim()) { + hideSuitesWithout("test fail"); + } + }); + root.appendChild(stat); + root.appendChild(report); + if (progress) { + progress.size(40); + } + runner.on(EVENT_SUITE_BEGIN, function(suite) { + if (suite.root) { + return; + } + var url = self2.suiteURL(suite); + var el = fragment( + '
  • %s

  • ', + url, + escape2(suite.title) + ); + stack[0].appendChild(el); + stack.unshift(document.createElement("ul")); + el.appendChild(stack[0]); + }); + runner.on(EVENT_SUITE_END, function(suite) { + if (suite.root) { + updateStats(); + return; + } + stack.shift(); + }); + runner.on(EVENT_TEST_PASS, function(test) { + var url = self2.testURL(test); + var markup = '
  • %e%ems ' + playIcon + "

  • "; + var el = fragment(markup, test.speed, test.title, test.duration, url); + self2.addCodeToggle(el, test.body); + appendToStack(el); + updateStats(); + }); + runner.on(EVENT_TEST_FAIL, function(test) { + var el = fragment( + '
  • %e ' + playIcon + "

  • ", + test.title, + self2.testURL(test) + ); + var stackString; + var message = test.err.toString(); + if (message === "[object Error]") { + message = test.err.message; + } + if (test.err.stack) { + var indexOfMessage = test.err.stack.indexOf(test.err.message); + if (indexOfMessage === -1) { + stackString = test.err.stack; + } else { + stackString = test.err.stack.slice( + test.err.message.length + indexOfMessage + ); + } + } else if (test.err.sourceURL && test.err.line !== void 0) { + stackString = "\n(" + test.err.sourceURL + ":" + test.err.line + ")"; + } + stackString = stackString || ""; + if (test.err.htmlMessage && stackString) { + el.appendChild( + fragment( + '
    %s\n
    %e
    ', + test.err.htmlMessage, + stackString + ) + ); + } else if (test.err.htmlMessage) { + el.appendChild( + fragment('
    %s
    ', test.err.htmlMessage) + ); + } else { + el.appendChild( + fragment('
    %e%e
    ', message, stackString) + ); + } + self2.addCodeToggle(el, test.body); + appendToStack(el); + updateStats(); + }); + runner.on(EVENT_TEST_PENDING, function(test) { + var el = fragment( + '
  • %e

  • ', + test.title + ); + appendToStack(el); + updateStats(); + }); + function appendToStack(el) { + if (stack[0]) { + stack[0].appendChild(el); + } + } + function updateStats() { + var percent = stats.tests / runner.total * 100 | 0; + if (progress) { + progress.update(percent).draw(ctx); + } + var ms = new Date2() - stats.start; + text(passes, stats.passes); + text(failures, stats.failures); + text(duration, (ms / 1e3).toFixed(2)); + } + } + function makeUrl(s) { + var search = window.location.search; + if (search) { + search = search.replace(/[?&]grep=[^&\s]*/g, "").replace(/^&/, "?"); + } + return window.location.pathname + (search ? search + "&" : "?") + "grep=" + encodeURIComponent(escapeRe(s)); + } + HTML.prototype.suiteURL = function(suite) { + return makeUrl(suite.fullTitle()); + }; + HTML.prototype.testURL = function(test) { + return makeUrl(test.fullTitle()); + }; + HTML.prototype.addCodeToggle = function(el, contents) { + var h2 = el.getElementsByTagName("h2")[0]; + on(h2, "click", function() { + pre.style.display = pre.style.display === "none" ? "block" : "none"; + }); + var pre = fragment("
    %e
    ", utils.clean(contents)); + el.appendChild(pre); + pre.style.display = "none"; + }; + function error(msg) { + document.body.appendChild(fragment('
    %s
    ', msg)); + } + function fragment(html) { + var args = arguments; + var div = document.createElement("div"); + var i = 1; + div.innerHTML = html.replace(/%([se])/g, function(_, type2) { + switch (type2) { + case "s": + return String(args[i++]); + case "e": + return escape2(args[i++]); + } + }); + return div.firstChild; + } + function hideSuitesWithout(classname) { + var suites = document.getElementsByClassName("suite"); + for (var i = 0; i < suites.length; i++) { + var els = suites[i].getElementsByClassName(classname); + if (!els.length) { + suites[i].className += " hidden"; + } + } + } + function unhide() { + var els = document.getElementsByClassName("suite hidden"); + while (els.length > 0) { + els[0].className = els[0].className.replace("suite hidden", "suite"); + } + } + function text(el, contents) { + if (el.textContent) { + el.textContent = contents; + } else { + el.innerText = contents; + } + } + function on(el, event, fn) { + if (el.addEventListener) { + el.addEventListener(event, fn, false); + } else { + el.attachEvent("on" + event, fn); + } + } + HTML.browserOnly = true; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/list.js +var require_list = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/list.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var inherits = require_utils().inherits; + var constants = require_runner().constants; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var color = Base.color; + var cursor = Base.cursor; + exports2 = module2.exports = List; + function List(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var n = 0; + runner.on(EVENT_RUN_BEGIN, function() { + Base.consoleLog(); + }); + runner.on(EVENT_TEST_BEGIN, function(test) { + process.stdout.write(color("pass", " " + test.fullTitle() + ": ")); + }); + runner.on(EVENT_TEST_PENDING, function(test) { + var fmt = color("checkmark", " -") + color("pending", " %s"); + Base.consoleLog(fmt, test.fullTitle()); + }); + runner.on(EVENT_TEST_PASS, function(test) { + var fmt = color("checkmark", " " + Base.symbols.ok) + color("pass", " %s: ") + color(test.speed, "%dms"); + cursor.CR(); + Base.consoleLog(fmt, test.fullTitle(), test.duration); + }); + runner.on(EVENT_TEST_FAIL, function(test) { + cursor.CR(); + Base.consoleLog(color("fail", " %d) %s"), ++n, test.fullTitle()); + }); + runner.once(EVENT_RUN_END, self2.epilogue.bind(self2)); + } + inherits(List, Base); + List.description = 'like "spec" reporter but flat'; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/min.js +var require_min = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/min.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var inherits = require_utils().inherits; + var constants = require_runner().constants; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + exports2 = module2.exports = Min; + function Min(runner, options) { + Base.call(this, runner, options); + runner.on(EVENT_RUN_BEGIN, function() { + process.stdout.write("\x1B[2J"); + process.stdout.write("\x1B[1;3H"); + }); + runner.once(EVENT_RUN_END, this.epilogue.bind(this)); + } + inherits(Min, Base); + Min.description = "essentially just a summary"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/spec.js +var require_spec = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/spec.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var constants = require_runner().constants; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; + var EVENT_SUITE_END = constants.EVENT_SUITE_END; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var inherits = require_utils().inherits; + var color = Base.color; + exports2 = module2.exports = Spec; + function Spec(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var indents = 0; + var n = 0; + function indent() { + return Array(indents).join(" "); + } + runner.on(EVENT_RUN_BEGIN, function() { + Base.consoleLog(); + }); + runner.on(EVENT_SUITE_BEGIN, function(suite) { + ++indents; + Base.consoleLog(color("suite", "%s%s"), indent(), suite.title); + }); + runner.on(EVENT_SUITE_END, function() { + --indents; + if (indents === 1) { + Base.consoleLog(); + } + }); + runner.on(EVENT_TEST_PENDING, function(test) { + var fmt = indent() + color("pending", " - %s"); + Base.consoleLog(fmt, test.title); + }); + runner.on(EVENT_TEST_PASS, function(test) { + var fmt; + if (test.speed === "fast") { + fmt = indent() + color("checkmark", " " + Base.symbols.ok) + color("pass", " %s"); + Base.consoleLog(fmt, test.title); + } else { + fmt = indent() + color("checkmark", " " + Base.symbols.ok) + color("pass", " %s") + color(test.speed, " (%dms)"); + Base.consoleLog(fmt, test.title, test.duration); + } + }); + runner.on(EVENT_TEST_FAIL, function(test) { + Base.consoleLog(indent() + color("fail", " %d) %s"), ++n, test.title); + }); + runner.once(EVENT_RUN_END, self2.epilogue.bind(self2)); + } + inherits(Spec, Base); + Spec.description = "hierarchical & verbose [default]"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/nyan.js +var require_nyan = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/nyan.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var constants = require_runner().constants; + var inherits = require_utils().inherits; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + exports2 = module2.exports = NyanCat; + function NyanCat(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var width = Base.window.width * 0.75 | 0; + var nyanCatWidth = this.nyanCatWidth = 11; + this.colorIndex = 0; + this.numberOfLines = 4; + this.rainbowColors = self2.generateColors(); + this.scoreboardWidth = 5; + this.tick = 0; + this.trajectories = [[], [], [], []]; + this.trajectoryWidthMax = width - nyanCatWidth; + runner.on(EVENT_RUN_BEGIN, function() { + Base.cursor.hide(); + self2.draw(); + }); + runner.on(EVENT_TEST_PENDING, function() { + self2.draw(); + }); + runner.on(EVENT_TEST_PASS, function() { + self2.draw(); + }); + runner.on(EVENT_TEST_FAIL, function() { + self2.draw(); + }); + runner.once(EVENT_RUN_END, function() { + Base.cursor.show(); + for (var i = 0; i < self2.numberOfLines; i++) { + process.stdout.write("\n"); + } + self2.epilogue(); + }); + } + inherits(NyanCat, Base); + NyanCat.prototype.draw = function() { + this.appendRainbow(); + this.drawScoreboard(); + this.drawRainbow(); + this.drawNyanCat(); + this.tick = !this.tick; + }; + NyanCat.prototype.drawScoreboard = function() { + var stats = this.stats; + function draw(type2, n) { + process.stdout.write(" "); + process.stdout.write(Base.color(type2, n)); + process.stdout.write("\n"); + } + draw("green", stats.passes); + draw("fail", stats.failures); + draw("pending", stats.pending); + process.stdout.write("\n"); + this.cursorUp(this.numberOfLines); + }; + NyanCat.prototype.appendRainbow = function() { + var segment = this.tick ? "_" : "-"; + var rainbowified = this.rainbowify(segment); + for (var index = 0; index < this.numberOfLines; index++) { + var trajectory = this.trajectories[index]; + if (trajectory.length >= this.trajectoryWidthMax) { + trajectory.shift(); + } + trajectory.push(rainbowified); + } + }; + NyanCat.prototype.drawRainbow = function() { + var self2 = this; + this.trajectories.forEach(function(line) { + process.stdout.write("\x1B[" + self2.scoreboardWidth + "C"); + process.stdout.write(line.join("")); + process.stdout.write("\n"); + }); + this.cursorUp(this.numberOfLines); + }; + NyanCat.prototype.drawNyanCat = function() { + var self2 = this; + var startWidth = this.scoreboardWidth + this.trajectories[0].length; + var dist = "\x1B[" + startWidth + "C"; + var padding = ""; + process.stdout.write(dist); + process.stdout.write("_,------,"); + process.stdout.write("\n"); + process.stdout.write(dist); + padding = self2.tick ? " " : " "; + process.stdout.write("_|" + padding + "/\\_/\\ "); + process.stdout.write("\n"); + process.stdout.write(dist); + padding = self2.tick ? "_" : "__"; + var tail = self2.tick ? "~" : "^"; + process.stdout.write(tail + "|" + padding + this.face() + " "); + process.stdout.write("\n"); + process.stdout.write(dist); + padding = self2.tick ? " " : " "; + process.stdout.write(padding + '"" "" '); + process.stdout.write("\n"); + this.cursorUp(this.numberOfLines); + }; + NyanCat.prototype.face = function() { + var stats = this.stats; + if (stats.failures) { + return "( x .x)"; + } else if (stats.pending) { + return "( o .o)"; + } else if (stats.passes) { + return "( ^ .^)"; + } + return "( - .-)"; + }; + NyanCat.prototype.cursorUp = function(n) { + process.stdout.write("\x1B[" + n + "A"); + }; + NyanCat.prototype.cursorDown = function(n) { + process.stdout.write("\x1B[" + n + "B"); + }; + NyanCat.prototype.generateColors = function() { + var colors = []; + for (var i = 0; i < 6 * 7; i++) { + var pi3 = Math.floor(Math.PI / 3); + var n = i * (1 / 6); + var r = Math.floor(3 * Math.sin(n) + 3); + var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); + var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); + colors.push(36 * r + 6 * g + b + 16); + } + return colors; + }; + NyanCat.prototype.rainbowify = function(str2) { + if (!Base.useColors) { + return str2; + } + var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; + this.colorIndex += 1; + return "\x1B[38;5;" + color + "m" + str2 + "\x1B[0m"; + }; + NyanCat.description = '"nyan cat"'; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/xunit.js +var require_xunit = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/xunit.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var utils = require_utils(); + var fs2 = require("fs"); + var path4 = require("path"); + var errors = require_errors(); + var createUnsupportedError = errors.createUnsupportedError; + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var STATE_FAILED = require_runnable().constants.STATE_FAILED; + var inherits = utils.inherits; + var escape2 = utils.escape; + var Date2 = global.Date; + exports2 = module2.exports = XUnit; + function XUnit(runner, options) { + Base.call(this, runner, options); + var stats = this.stats; + var tests = []; + var self2 = this; + var suiteName; + var DEFAULT_SUITE_NAME = "Mocha Tests"; + if (options && options.reporterOptions) { + if (options.reporterOptions.output) { + if (!fs2.createWriteStream) { + throw createUnsupportedError("file output not supported in browser"); + } + fs2.mkdirSync(path4.dirname(options.reporterOptions.output), { + recursive: true + }); + self2.fileStream = fs2.createWriteStream(options.reporterOptions.output); + } + suiteName = options.reporterOptions.suiteName; + } + suiteName = suiteName || DEFAULT_SUITE_NAME; + runner.on(EVENT_TEST_PENDING, function(test) { + tests.push(test); + }); + runner.on(EVENT_TEST_PASS, function(test) { + tests.push(test); + }); + runner.on(EVENT_TEST_FAIL, function(test) { + tests.push(test); + }); + runner.once(EVENT_RUN_END, function() { + self2.write( + tag( + "testsuite", + { + name: suiteName, + tests: stats.tests, + failures: 0, + errors: stats.failures, + skipped: stats.tests - stats.failures - stats.passes, + timestamp: new Date2().toUTCString(), + time: stats.duration / 1e3 || 0 + }, + false + ) + ); + tests.forEach(function(t) { + self2.test(t); + }); + self2.write(""); + }); + } + inherits(XUnit, Base); + XUnit.prototype.done = function(failures, fn) { + if (this.fileStream) { + this.fileStream.end(function() { + fn(failures); + }); + } else { + fn(failures); + } + }; + XUnit.prototype.write = function(line) { + if (this.fileStream) { + this.fileStream.write(line + "\n"); + } else if (typeof process === "object" && process.stdout) { + process.stdout.write(line + "\n"); + } else { + Base.consoleLog(line); + } + }; + XUnit.prototype.test = function(test) { + Base.useColors = false; + var attrs = { + classname: test.parent.fullTitle(), + name: test.title, + time: test.duration / 1e3 || 0 + }; + if (test.state === STATE_FAILED) { + var err = test.err; + var diff = !Base.hideDiff && Base.showDiff(err) ? "\n" + Base.generateDiff(err.actual, err.expected) : ""; + this.write( + tag( + "testcase", + attrs, + false, + tag( + "failure", + {}, + false, + escape2(err.message) + escape2(diff) + "\n" + escape2(err.stack) + ) + ) + ); + } else if (test.isPending()) { + this.write(tag("testcase", attrs, false, tag("skipped", {}, true))); + } else { + this.write(tag("testcase", attrs, true)); + } + }; + function tag(name, attrs, close, content) { + var end = close ? "/>" : ">"; + var pairs2 = []; + var tag2; + for (var key in attrs) { + if (Object.prototype.hasOwnProperty.call(attrs, key)) { + pairs2.push(key + '="' + escape2(attrs[key]) + '"'); + } + } + tag2 = "<" + name + (pairs2.length ? " " + pairs2.join(" ") : "") + end; + if (content) { + tag2 += content + "\n'; + buf += title(suite.title) + "\n"; + }); + runner.on(EVENT_SUITE_END, function() { + --level; + }); + runner.on(EVENT_TEST_PASS, function(test) { + var code = utils.clean(test.body); + buf += test.title + ".\n"; + buf += "\n```js\n"; + buf += code + "\n"; + buf += "```\n\n"; + }); + runner.once(EVENT_RUN_END, function() { + process.stdout.write("# TOC\n"); + process.stdout.write(generateTOC(runner.suite)); + process.stdout.write(buf); + }); + } + Markdown.description = "GitHub Flavored Markdown"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/progress.js +var require_progress2 = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/progress.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var constants = require_runner().constants; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_TEST_END = constants.EVENT_TEST_END; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var inherits = require_utils().inherits; + var color = Base.color; + var cursor = Base.cursor; + exports2 = module2.exports = Progress; + Base.colors.progress = 90; + function Progress(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var width = Base.window.width * 0.5 | 0; + var total = runner.total; + var complete = 0; + var lastN = -1; + options = options || {}; + var reporterOptions = options.reporterOptions || {}; + options.open = reporterOptions.open || "["; + options.complete = reporterOptions.complete || "\u25AC"; + options.incomplete = reporterOptions.incomplete || Base.symbols.dot; + options.close = reporterOptions.close || "]"; + options.verbose = reporterOptions.verbose || false; + runner.on(EVENT_RUN_BEGIN, function() { + process.stdout.write("\n"); + cursor.hide(); + }); + runner.on(EVENT_TEST_END, function() { + complete++; + var percent = complete / total; + var n = width * percent | 0; + var i = width - n; + if (n === lastN && !options.verbose) { + return; + } + lastN = n; + cursor.CR(); + process.stdout.write("\x1B[J"); + process.stdout.write(color("progress", " " + options.open)); + process.stdout.write(Array(n).join(options.complete)); + process.stdout.write(Array(i).join(options.incomplete)); + process.stdout.write(color("progress", options.close)); + if (options.verbose) { + process.stdout.write(color("progress", " " + complete + " of " + total)); + } + }); + runner.once(EVENT_RUN_END, function() { + cursor.show(); + process.stdout.write("\n"); + self2.epilogue(); + }); + } + inherits(Progress, Base); + Progress.description = "a progress bar"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/landing.js +var require_landing = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/landing.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var inherits = require_utils().inherits; + var constants = require_runner().constants; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_END = constants.EVENT_TEST_END; + var STATE_FAILED = require_runnable().constants.STATE_FAILED; + var cursor = Base.cursor; + var color = Base.color; + exports2 = module2.exports = Landing; + Base.colors.plane = 0; + Base.colors["plane crash"] = 31; + Base.colors.runway = 90; + function Landing(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var width = Base.window.width * 0.75 | 0; + var stream2 = process.stdout; + var plane = color("plane", "\u2708"); + var crashed = -1; + var n = 0; + var total = 0; + function runway() { + var buf = Array(width).join("-"); + return " " + color("runway", buf); + } + runner.on(EVENT_RUN_BEGIN, function() { + stream2.write("\n\n\n "); + cursor.hide(); + }); + runner.on(EVENT_TEST_END, function(test) { + var col = crashed === -1 ? width * ++n / ++total | 0 : crashed; + if (test.state === STATE_FAILED) { + plane = color("plane crash", "\u2708"); + crashed = col; + } + stream2.write("\x1B[" + (width + 1) + "D\x1B[2A"); + stream2.write(runway()); + stream2.write("\n "); + stream2.write(color("runway", Array(col).join("\u22C5"))); + stream2.write(plane); + stream2.write(color("runway", Array(width - col).join("\u22C5") + "\n")); + stream2.write(runway()); + stream2.write("\x1B[0m"); + }); + runner.once(EVENT_RUN_END, function() { + cursor.show(); + process.stdout.write("\n"); + self2.epilogue(); + }); + process.once("SIGINT", function() { + cursor.show(); + process.nextTick(function() { + process.kill(process.pid, "SIGINT"); + }); + }); + } + inherits(Landing, Base); + Landing.description = "Unicode landing strip"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json-stream.js +var require_json_stream = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json-stream.js"(exports2, module2) { + "use strict"; + var Base = require_base2(); + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_RUN_END = constants.EVENT_RUN_END; + exports2 = module2.exports = JSONStream; + function JSONStream(runner, options) { + Base.call(this, runner, options); + var self2 = this; + var total = runner.total; + runner.once(EVENT_RUN_BEGIN, function() { + writeEvent(["start", { total }]); + }); + runner.on(EVENT_TEST_PASS, function(test) { + writeEvent(["pass", clean(test)]); + }); + runner.on(EVENT_TEST_FAIL, function(test, err) { + test = clean(test); + test.err = err.message; + test.stack = err.stack || null; + writeEvent(["fail", test]); + }); + runner.once(EVENT_RUN_END, function() { + writeEvent(["end", self2.stats]); + }); + } + function writeEvent(event) { + process.stdout.write(JSON.stringify(event) + "\n"); + } + function clean(test) { + return { + title: test.title, + fullTitle: test.fullTitle(), + file: test.file, + duration: test.duration, + currentRetry: test.currentRetry(), + speed: test.speed + }; + } + JSONStream.description = "newline delimited JSON events"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/index.js +var require_reporters = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/index.js"(exports2) { + "use strict"; + exports2.Base = exports2.base = require_base2(); + exports2.Dot = exports2.dot = require_dot(); + exports2.Doc = exports2.doc = require_doc(); + exports2.TAP = exports2.tap = require_tap(); + exports2.JSON = exports2.json = require_json2(); + exports2.HTML = exports2.html = require_html(); + exports2.List = exports2.list = require_list(); + exports2.Min = exports2.min = require_min(); + exports2.Spec = exports2.spec = require_spec(); + exports2.Nyan = exports2.nyan = require_nyan(); + exports2.XUnit = exports2.xunit = require_xunit(); + exports2.Markdown = exports2.markdown = require_markdown(); + exports2.Progress = exports2.progress = require_progress2(); + exports2.Landing = exports2.landing = require_landing(); + exports2.JSONStream = exports2["json-stream"] = require_json_stream(); + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocharc.json +var require_mocharc = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocharc.json"(exports2, module2) { + module2.exports = { + diff: true, + extension: ["js", "cjs", "mjs"], + package: "./package.json", + reporter: "spec", + slow: 75, + timeout: 2e3, + ui: "bdd", + "watch-ignore": ["node_modules", ".git"] + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/esm-utils.js +var require_esm_utils = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/esm-utils.js"(exports2) { + var path4 = require("path"); + var url = require("url"); + var forward = (x) => x; + var formattedImport = async (file, esmDecorator = forward) => { + if (path4.isAbsolute(file)) { + try { + return await exports2.doImport(esmDecorator(url.pathToFileURL(file))); + } catch (err) { + if (err instanceof SyntaxError && err.message && err.stack && !err.stack.includes(file)) { + const newErrorWithFilename = new SyntaxError(err.message); + newErrorWithFilename.stack = err.stack.replace( + /^SyntaxError/, + `SyntaxError[ @${file} ]` + ); + throw newErrorWithFilename; + } + throw err; + } + } + return exports2.doImport(esmDecorator(file)); + }; + exports2.doImport = async (file) => import(file); + exports2.requireOrImport = async (file, esmDecorator) => { + if (path4.extname(file) === ".mjs") { + return formattedImport(file, esmDecorator); + } + try { + return dealWithExports(await formattedImport(file, esmDecorator)); + } catch (err) { + if (err.code === "ERR_MODULE_NOT_FOUND" || err.code === "ERR_UNKNOWN_FILE_EXTENSION" || err.code === "ERR_UNSUPPORTED_DIR_IMPORT") { + try { + return require(file); + } catch (requireErr) { + if (requireErr.code === "ERR_REQUIRE_ESM" || requireErr instanceof SyntaxError && requireErr.toString().includes("Cannot use import statement outside a module")) { + throw err; + } else { + throw requireErr; + } + } + } else { + throw err; + } + } + }; + function dealWithExports(module3) { + if (module3.default) { + return module3.default; + } else { + return { ...module3, default: void 0 }; + } + } + exports2.loadFilesAsync = async (files, preLoadFunc, postLoadFunc, esmDecorator) => { + for (const file of files) { + preLoadFunc(file); + const result = await exports2.requireOrImport( + path4.resolve(file), + esmDecorator + ); + postLoadFunc(file, result); + } + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/stats-collector.js +var require_stats_collector = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/stats-collector.js"(exports2, module2) { + "use strict"; + var constants = require_runner().constants; + var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; + var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; + var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; + var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; + var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; + var EVENT_RUN_END = constants.EVENT_RUN_END; + var EVENT_TEST_END = constants.EVENT_TEST_END; + var Date2 = global.Date; + function createStatsCollector(runner) { + var stats = { + suites: 0, + tests: 0, + passes: 0, + pending: 0, + failures: 0 + }; + if (!runner) { + throw new TypeError("Missing runner argument"); + } + runner.stats = stats; + runner.once(EVENT_RUN_BEGIN, function() { + stats.start = new Date2(); + }); + runner.on(EVENT_SUITE_BEGIN, function(suite) { + suite.root || stats.suites++; + }); + runner.on(EVENT_TEST_PASS, function() { + stats.passes++; + }); + runner.on(EVENT_TEST_FAIL, function() { + stats.failures++; + }); + runner.on(EVENT_TEST_PENDING, function() { + stats.pending++; + }); + runner.on(EVENT_TEST_END, function() { + stats.tests++; + }); + runner.once(EVENT_RUN_END, function() { + stats.end = new Date2(); + stats.duration = stats.end - stats.start; + }); + } + module2.exports = createStatsCollector; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/test.js +var require_test = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/test.js"(exports2, module2) { + "use strict"; + var Runnable = require_runnable(); + var utils = require_utils(); + var errors = require_errors(); + var createInvalidArgumentTypeError = errors.createInvalidArgumentTypeError; + var isString2 = utils.isString; + var { MOCHA_ID_PROP_NAME } = utils.constants; + module2.exports = Test; + function Test(title, fn) { + if (!isString2(title)) { + throw createInvalidArgumentTypeError( + 'Test argument "title" should be a string. Received type "' + typeof title + '"', + "title", + "string" + ); + } + this.type = "test"; + Runnable.call(this, title, fn); + this.reset(); + } + utils.inherits(Test, Runnable); + Test.prototype.reset = function() { + Runnable.prototype.reset.call(this); + this.pending = !this.fn; + delete this.state; + }; + Test.prototype.retriedTest = function(n) { + if (!arguments.length) { + return this._retriedTest; + } + this._retriedTest = n; + }; + Test.prototype.markOnly = function() { + this.parent.appendOnlyTest(this); + }; + Test.prototype.clone = function() { + var test = new Test(this.title, this.fn); + test.timeout(this.timeout()); + test.slow(this.slow()); + test.retries(this.retries()); + test.currentRetry(this.currentRetry()); + test.retriedTest(this.retriedTest() || this); + test.globals(this.globals()); + test.parent = this.parent; + test.file = this.file; + test.ctx = this.ctx; + return test; + }; + Test.prototype.serialize = function serialize2() { + return { + $$currentRetry: this._currentRetry, + $$fullTitle: this.fullTitle(), + $$isPending: Boolean(this.pending), + $$retriedTest: this._retriedTest || null, + $$slow: this._slow, + $$titlePath: this.titlePath(), + body: this.body, + duration: this.duration, + err: this.err, + parent: { + $$fullTitle: this.parent.fullTitle(), + [MOCHA_ID_PROP_NAME]: this.parent.id + }, + speed: this.speed, + state: this.state, + title: this.title, + type: this.type, + file: this.file, + [MOCHA_ID_PROP_NAME]: this.id + }; + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/common.js +var require_common2 = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/common.js"(exports2, module2) { + "use strict"; + var Suite = require_suite(); + var errors = require_errors(); + var createMissingArgumentError = errors.createMissingArgumentError; + var createUnsupportedError = errors.createUnsupportedError; + var createForbiddenExclusivityError = errors.createForbiddenExclusivityError; + module2.exports = function(suites, context, mocha) { + function shouldBeTested(suite) { + return !mocha.options.grep || mocha.options.grep && mocha.options.grep.test(suite.fullTitle()) && !mocha.options.invert; + } + return { + /** + * This is only present if flag --delay is passed into Mocha. It triggers + * root suite execution. + * + * @param {Suite} suite The root suite. + * @return {Function} A function which runs the root suite + */ + runWithSuite: function runWithSuite(suite) { + return function run2() { + suite.run(); + }; + }, + /** + * Execute before running tests. + * + * @param {string} name + * @param {Function} fn + */ + before: function(name, fn) { + suites[0].beforeAll(name, fn); + }, + /** + * Execute after running tests. + * + * @param {string} name + * @param {Function} fn + */ + after: function(name, fn) { + suites[0].afterAll(name, fn); + }, + /** + * Execute before each test case. + * + * @param {string} name + * @param {Function} fn + */ + beforeEach: function(name, fn) { + suites[0].beforeEach(name, fn); + }, + /** + * Execute after each test case. + * + * @param {string} name + * @param {Function} fn + */ + afterEach: function(name, fn) { + suites[0].afterEach(name, fn); + }, + suite: { + /** + * Create an exclusive Suite; convenience function + * See docstring for create() below. + * + * @param {Object} opts + * @returns {Suite} + */ + only: function only(opts) { + if (mocha.options.forbidOnly) { + throw createForbiddenExclusivityError(mocha); + } + opts.isOnly = true; + return this.create(opts); + }, + /** + * Create a Suite, but skip it; convenience function + * See docstring for create() below. + * + * @param {Object} opts + * @returns {Suite} + */ + skip: function skip(opts) { + opts.pending = true; + return this.create(opts); + }, + /** + * Creates a suite. + * + * @param {Object} opts Options + * @param {string} opts.title Title of Suite + * @param {Function} [opts.fn] Suite Function (not always applicable) + * @param {boolean} [opts.pending] Is Suite pending? + * @param {string} [opts.file] Filepath where this Suite resides + * @param {boolean} [opts.isOnly] Is Suite exclusive? + * @returns {Suite} + */ + create: function create(opts) { + var suite = Suite.create(suites[0], opts.title); + suite.pending = Boolean(opts.pending); + suite.file = opts.file; + suites.unshift(suite); + if (opts.isOnly) { + suite.markOnly(); + } + if (suite.pending && mocha.options.forbidPending && shouldBeTested(suite)) { + throw createUnsupportedError("Pending test forbidden"); + } + if (typeof opts.fn === "function") { + opts.fn.call(suite); + suites.shift(); + } else if (typeof opts.fn === "undefined" && !suite.pending) { + throw createMissingArgumentError( + 'Suite "' + suite.fullTitle() + '" was defined but no callback was supplied. Supply a callback or explicitly skip the suite.', + "callback", + "function" + ); + } else if (!opts.fn && suite.pending) { + suites.shift(); + } + return suite; + } + }, + test: { + /** + * Exclusive test-case. + * + * @param {Object} mocha + * @param {Function} test + * @returns {*} + */ + only: function(mocha2, test) { + if (mocha2.options.forbidOnly) { + throw createForbiddenExclusivityError(mocha2); + } + test.markOnly(); + return test; + }, + /** + * Pending test case. + * + * @param {string} title + */ + skip: function(title) { + context.test(title); + } + } + }; + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/bdd.js +var require_bdd = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/bdd.js"(exports2, module2) { + "use strict"; + var Test = require_test(); + var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; + module2.exports = function bddInterface(suite) { + var suites = [suite]; + suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { + var common2 = require_common2()(suites, context, mocha); + context.before = common2.before; + context.after = common2.after; + context.beforeEach = common2.beforeEach; + context.afterEach = common2.afterEach; + context.run = mocha.options.delay && common2.runWithSuite(suite); + context.describe = context.context = function(title, fn) { + return common2.suite.create({ + title, + file, + fn + }); + }; + context.xdescribe = context.xcontext = context.describe.skip = function(title, fn) { + return common2.suite.skip({ + title, + file, + fn + }); + }; + context.describe.only = function(title, fn) { + return common2.suite.only({ + title, + file, + fn + }); + }; + context.it = context.specify = function(title, fn) { + var suite2 = suites[0]; + if (suite2.isPending()) { + fn = null; + } + var test = new Test(title, fn); + test.file = file; + suite2.addTest(test); + return test; + }; + context.it.only = function(title, fn) { + return common2.test.only(mocha, context.it(title, fn)); + }; + context.xit = context.xspecify = context.it.skip = function(title) { + return context.it(title); + }; + }); + }; + module2.exports.description = "BDD or RSpec style [default]"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/tdd.js +var require_tdd = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/tdd.js"(exports2, module2) { + "use strict"; + var Test = require_test(); + var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; + module2.exports = function(suite) { + var suites = [suite]; + suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { + var common2 = require_common2()(suites, context, mocha); + context.setup = common2.beforeEach; + context.teardown = common2.afterEach; + context.suiteSetup = common2.before; + context.suiteTeardown = common2.after; + context.run = mocha.options.delay && common2.runWithSuite(suite); + context.suite = function(title, fn) { + return common2.suite.create({ + title, + file, + fn + }); + }; + context.suite.skip = function(title, fn) { + return common2.suite.skip({ + title, + file, + fn + }); + }; + context.suite.only = function(title, fn) { + return common2.suite.only({ + title, + file, + fn + }); + }; + context.test = function(title, fn) { + var suite2 = suites[0]; + if (suite2.isPending()) { + fn = null; + } + var test = new Test(title, fn); + test.file = file; + suite2.addTest(test); + return test; + }; + context.test.only = function(title, fn) { + return common2.test.only(mocha, context.test(title, fn)); + }; + context.test.skip = common2.test.skip; + }); + }; + module2.exports.description = `traditional "suite"/"test" instead of BDD's "describe"/"it"`; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/qunit.js +var require_qunit = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/qunit.js"(exports2, module2) { + "use strict"; + var Test = require_test(); + var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; + module2.exports = function qUnitInterface(suite) { + var suites = [suite]; + suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { + var common2 = require_common2()(suites, context, mocha); + context.before = common2.before; + context.after = common2.after; + context.beforeEach = common2.beforeEach; + context.afterEach = common2.afterEach; + context.run = mocha.options.delay && common2.runWithSuite(suite); + context.suite = function(title) { + if (suites.length > 1) { + suites.shift(); + } + return common2.suite.create({ + title, + file, + fn: false + }); + }; + context.suite.only = function(title) { + if (suites.length > 1) { + suites.shift(); + } + return common2.suite.only({ + title, + file, + fn: false + }); + }; + context.test = function(title, fn) { + var test = new Test(title, fn); + test.file = file; + suites[0].addTest(test); + return test; + }; + context.test.only = function(title, fn) { + return common2.test.only(mocha, context.test(title, fn)); + }; + context.test.skip = common2.test.skip; + }); + }; + module2.exports.description = "QUnit style"; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/exports.js +var require_exports = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/exports.js"(exports2, module2) { + "use strict"; + var Suite = require_suite(); + var Test = require_test(); + module2.exports = function(suite) { + var suites = [suite]; + suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit); + function visit(obj, file) { + var suite2; + for (var key in obj) { + if (typeof obj[key] === "function") { + var fn = obj[key]; + switch (key) { + case "before": + suites[0].beforeAll(fn); + break; + case "after": + suites[0].afterAll(fn); + break; + case "beforeEach": + suites[0].beforeEach(fn); + break; + case "afterEach": + suites[0].afterEach(fn); + break; + default: + var test = new Test(key, fn); + test.file = file; + suites[0].addTest(test); + } + } else { + suite2 = Suite.create(suites[0], key); + suites.unshift(suite2); + visit(obj[key], file); + suites.shift(); + } + } + } + }; + module2.exports.description = 'Node.js module ("exports") style'; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/index.js +var require_interfaces = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/index.js"(exports2) { + "use strict"; + exports2.bdd = require_bdd(); + exports2.tdd = require_tdd(); + exports2.qunit = require_qunit(); + exports2.exports = require_exports(); + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/context.js +var require_context = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/context.js"(exports2, module2) { + "use strict"; + module2.exports = Context; + function Context() { + } + Context.prototype.runnable = function(runnable) { + if (!arguments.length) { + return this._runnable; + } + this.test = this._runnable = runnable; + return this; + }; + Context.prototype.timeout = function(ms) { + if (!arguments.length) { + return this.runnable().timeout(); + } + this.runnable().timeout(ms); + return this; + }; + Context.prototype.slow = function(ms) { + if (!arguments.length) { + return this.runnable().slow(); + } + this.runnable().slow(ms); + return this; + }; + Context.prototype.skip = function() { + this.runnable().skip(); + }; + Context.prototype.retries = function(n) { + if (!arguments.length) { + return this.runnable().retries(); + } + this.runnable().retries(n); + return this; + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/file-unloader.js +var require_file_unloader = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/file-unloader.js"(exports2) { + "use strict"; + exports2.unloadFile = (file) => { + delete require.cache[require.resolve(file)]; + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/package.json +var require_package = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/package.json"(exports2, module2) { + module2.exports = { + name: "mocha", + version: "10.3.0", + type: "commonjs", + description: "simple, flexible, fun test framework", + keywords: [ + "mocha", + "test", + "bdd", + "tdd", + "tap", + "testing", + "chai", + "assertion", + "ava", + "jest", + "tape", + "jasmine", + "karma" + ], + author: "TJ Holowaychuk ", + license: "MIT", + repository: { + type: "git", + url: "https://github.com/mochajs/mocha.git" + }, + bugs: { + url: "https://github.com/mochajs/mocha/issues/" + }, + discord: "https://discord.gg/KeDn2uXhER", + homepage: "https://mochajs.org/", + logo: "https://cldup.com/S9uQ-cOLYz.svg", + notifyLogo: "https://ibin.co/4QuRuGjXvl36.png", + bin: { + mocha: "./bin/mocha.js", + _mocha: "./bin/_mocha" + }, + directories: { + lib: "./lib", + test: "./test" + }, + engines: { + node: ">= 14.0.0" + }, + scripts: { + prepublishOnly: "nps test clean build", + start: "nps", + test: "nps test", + version: "nps version", + "test:smoke": "node ./bin/mocha --no-config test/smoke/smoke.spec.js" + }, + dependencies: { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + chokidar: "3.5.3", + debug: "4.3.4", + diff: "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + glob: "8.1.0", + he: "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + minimatch: "5.0.1", + ms: "2.1.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + workerpool: "6.2.1", + yargs: "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + devDependencies: { + "@11ty/eleventy": "^1.0.0", + "@11ty/eleventy-plugin-inclusive-language": "^1.0.3", + "@babel/eslint-parser": "^7.19.1", + "@mocha/docdash": "^4.0.1", + "@rollup/plugin-commonjs": "^21.0.2", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-multi-entry": "^4.0.1", + "@rollup/plugin-node-resolve": "^13.1.3", + autoprefixer: "^9.8.6", + chai: "^4.3.4", + coffeescript: "^2.6.1", + coveralls: "^3.1.1", + "cross-env": "^7.0.2", + eslint: "^8.24.0", + "eslint-config-prettier": "^8.3.0", + "eslint-config-semistandard": "^17.0.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.24.2", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.0.1", + "fail-on-errors-webpack-plugin": "^3.0.0", + "fs-extra": "^10.0.0", + husky: "^4.2.5", + hyperlink: "^5.0.4", + jsdoc: "^3.6.7", + "jsdoc-ts-utils": "^2.0.1", + karma: "^6.4.2", + "karma-chrome-launcher": "^3.2.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-sauce-launcher": "^4.3.6", + "lint-staged": "^10.2.11", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "markdown-it-attrs": "^4.1.3", + "markdown-it-emoji": "^2.0.0", + "markdown-it-prism": "^2.2.2", + "markdown-toc": "^1.2.0", + "markdownlint-cli": "^0.30.0", + needle: "^2.5.0", + nps: "^5.10.0", + nyc: "^15.1.0", + pidtree: "^0.5.0", + prettier: "^2.4.1", + remark: "^14.0.2", + "remark-github": "^11.2.2", + "remark-inline-links": "^6.0.1", + rewiremock: "^3.14.3", + rimraf: "^3.0.2", + rollup: "^2.70.1", + "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-polyfill-node": "^0.8.0", + "rollup-plugin-visualizer": "^5.6.0", + sinon: "^9.0.3", + "strip-ansi": "^6.0.0", + svgo: "^1.3.2", + unexpected: "^11.14.0", + "unexpected-eventemitter": "^2.2.0", + "unexpected-map": "^2.0.0", + "unexpected-set": "^3.0.0", + "unexpected-sinon": "^10.11.2", + "update-notifier": "^4.1.0", + uslug: "^1.0.4", + webpack: "^5.67.0", + "webpack-cli": "^4.9.1" + }, + files: [ + "bin/*mocha*", + "lib/**/*.{js,html,json}", + "index.js", + "mocha.css", + "mocha.js", + "mocha.js.map", + "browser-entry.js" + ], + browser: { + "./index.js": "./browser-entry.js", + fs: false, + path: false, + "supports-color": false, + "./lib/nodejs/buffered-worker-pool.js": false, + "./lib/nodejs/esm-utils.js": false, + "./lib/nodejs/file-unloader.js": false, + "./lib/nodejs/parallel-buffered-runner.js": false, + "./lib/nodejs/serializer.js": false, + "./lib/nodejs/worker.js": false, + "./lib/nodejs/reporters/parallel-buffered.js": false, + "./lib/cli/index.js": false + }, + prettier: { + arrowParens: "avoid", + bracketSpacing: false, + endOfLine: "auto", + singleQuote: true, + trailingComma: "none" + }, + overrides: { + webdriverio: "^7.33.0" + }, + husky: { + hooks: { + "pre-commit": "lint-staged" + } + } + }; + } +}); + +// ../../node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js +var require_randombytes = __commonJS({ + "../../node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js"(exports2, module2) { + module2.exports = require("crypto").randomBytes; + } +}); + +// ../../node_modules/.pnpm/serialize-javascript@6.0.0/node_modules/serialize-javascript/index.js +var require_serialize_javascript = __commonJS({ + "../../node_modules/.pnpm/serialize-javascript@6.0.0/node_modules/serialize-javascript/index.js"(exports2, module2) { + "use strict"; + var randomBytes = require_randombytes(); + var UID_LENGTH = 16; + var UID = generateUID(); + var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\d+)__@"', "g"); + var IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g; + var IS_PURE_FUNCTION = /function.*?\(/; + var IS_ARROW_FUNCTION = /.*?=>.*?/; + var UNSAFE_CHARS_REGEXP = /[<>\/\u2028\u2029]/g; + var RESERVED_SYMBOLS = ["*", "async"]; + var ESCAPED_CHARS = { + "<": "\\u003C", + ">": "\\u003E", + "/": "\\u002F", + "\u2028": "\\u2028", + "\u2029": "\\u2029" + }; + function escapeUnsafeChars(unsafeChar) { + return ESCAPED_CHARS[unsafeChar]; + } + function generateUID() { + var bytes = randomBytes(UID_LENGTH); + var result = ""; + for (var i = 0; i < UID_LENGTH; ++i) { + result += bytes[i].toString(16); + } + return result; + } + function deleteFunctions(obj) { + var functionKeys = []; + for (var key in obj) { + if (typeof obj[key] === "function") { + functionKeys.push(key); + } + } + for (var i = 0; i < functionKeys.length; i++) { + delete obj[functionKeys[i]]; + } + } + module2.exports = function serialize2(obj, options) { + options || (options = {}); + if (typeof options === "number" || typeof options === "string") { + options = { space: options }; + } + var functions = []; + var regexps = []; + var dates = []; + var maps = []; + var sets = []; + var arrays = []; + var undefs = []; + var infinities = []; + var bigInts = []; + var urls = []; + function replacer2(key, value) { + if (options.ignoreFunction) { + deleteFunctions(value); + } + if (!value && value !== void 0) { + return value; + } + var origValue = this[key]; + var type2 = typeof origValue; + if (type2 === "object") { + if (origValue instanceof RegExp) { + return "@__R-" + UID + "-" + (regexps.push(origValue) - 1) + "__@"; + } + if (origValue instanceof Date) { + return "@__D-" + UID + "-" + (dates.push(origValue) - 1) + "__@"; + } + if (origValue instanceof Map) { + return "@__M-" + UID + "-" + (maps.push(origValue) - 1) + "__@"; + } + if (origValue instanceof Set) { + return "@__S-" + UID + "-" + (sets.push(origValue) - 1) + "__@"; + } + if (origValue instanceof Array) { + var isSparse = origValue.filter(function() { + return true; + }).length !== origValue.length; + if (isSparse) { + return "@__A-" + UID + "-" + (arrays.push(origValue) - 1) + "__@"; + } + } + if (origValue instanceof URL) { + return "@__L-" + UID + "-" + (urls.push(origValue) - 1) + "__@"; + } + } + if (type2 === "function") { + return "@__F-" + UID + "-" + (functions.push(origValue) - 1) + "__@"; + } + if (type2 === "undefined") { + return "@__U-" + UID + "-" + (undefs.push(origValue) - 1) + "__@"; + } + if (type2 === "number" && !isNaN(origValue) && !isFinite(origValue)) { + return "@__I-" + UID + "-" + (infinities.push(origValue) - 1) + "__@"; + } + if (type2 === "bigint") { + return "@__B-" + UID + "-" + (bigInts.push(origValue) - 1) + "__@"; + } + return value; + } + function serializeFunc(fn) { + var serializedFn = fn.toString(); + if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) { + throw new TypeError("Serializing native function: " + fn.name); + } + if (IS_PURE_FUNCTION.test(serializedFn)) { + return serializedFn; + } + if (IS_ARROW_FUNCTION.test(serializedFn)) { + return serializedFn; + } + var argsStartsAt = serializedFn.indexOf("("); + var def = serializedFn.substr(0, argsStartsAt).trim().split(" ").filter(function(val) { + return val.length > 0; + }); + var nonReservedSymbols = def.filter(function(val) { + return RESERVED_SYMBOLS.indexOf(val) === -1; + }); + if (nonReservedSymbols.length > 0) { + return (def.indexOf("async") > -1 ? "async " : "") + "function" + (def.join("").indexOf("*") > -1 ? "*" : "") + serializedFn.substr(argsStartsAt); + } + return serializedFn; + } + if (options.ignoreFunction && typeof obj === "function") { + obj = void 0; + } + if (obj === void 0) { + return String(obj); + } + var str2; + if (options.isJSON && !options.space) { + str2 = JSON.stringify(obj); + } else { + str2 = JSON.stringify(obj, options.isJSON ? null : replacer2, options.space); + } + if (typeof str2 !== "string") { + return String(str2); + } + if (options.unsafe !== true) { + str2 = str2.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars); + } + if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) { + return str2; + } + return str2.replace(PLACE_HOLDER_REGEXP, function(match2, backSlash, type2, valueIndex) { + if (backSlash) { + return match2; + } + if (type2 === "D") { + return 'new Date("' + dates[valueIndex].toISOString() + '")'; + } + if (type2 === "R") { + return "new RegExp(" + serialize2(regexps[valueIndex].source) + ', "' + regexps[valueIndex].flags + '")'; + } + if (type2 === "M") { + return "new Map(" + serialize2(Array.from(maps[valueIndex].entries()), options) + ")"; + } + if (type2 === "S") { + return "new Set(" + serialize2(Array.from(sets[valueIndex].values()), options) + ")"; + } + if (type2 === "A") { + return "Array.prototype.slice.call(" + serialize2(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), options) + ")"; + } + if (type2 === "U") { + return "undefined"; + } + if (type2 === "I") { + return infinities[valueIndex]; + } + if (type2 === "B") { + return 'BigInt("' + bigInts[valueIndex] + '")'; + } + if (type2 === "L") { + return 'new URL("' + urls[valueIndex].toString() + '")'; + } + var fn = functions[valueIndex]; + return serializeFunc(fn); + }); + }; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/requireFoolWebpack.js +var require_requireFoolWebpack = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/requireFoolWebpack.js"(exports, module) { + var requireFoolWebpack = eval( + `typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }` + ); + module.exports = requireFoolWebpack; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/environment.js +var require_environment = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/environment.js"(exports2, module2) { + var requireFoolWebpack2 = require_requireFoolWebpack(); + var isNode = function(nodeProcess) { + return typeof nodeProcess !== "undefined" && nodeProcess.versions != null && nodeProcess.versions.node != null; + }; + module2.exports.isNode = isNode; + module2.exports.platform = typeof process !== "undefined" && isNode(process) ? "node" : "browser"; + var worker_threads = tryRequireFoolWebpack("worker_threads"); + module2.exports.isMainThread = module2.exports.platform === "node" ? (!worker_threads || worker_threads.isMainThread) && !process.connected : typeof Window !== "undefined"; + module2.exports.cpus = module2.exports.platform === "browser" ? self.navigator.hardwareConcurrency : requireFoolWebpack2("os").cpus().length; + function tryRequireFoolWebpack(module3) { + try { + return requireFoolWebpack2(module3); + } catch (err) { + return null; + } + } + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Promise.js +var require_Promise = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Promise.js"(exports2, module2) { + "use strict"; + function Promise2(handler, parent) { + var me = this; + if (!(this instanceof Promise2)) { + throw new SyntaxError("Constructor must be called with the new operator"); + } + if (typeof handler !== "function") { + throw new SyntaxError("Function parameter handler(resolve, reject) missing"); + } + var _onSuccess = []; + var _onFail = []; + this.resolved = false; + this.rejected = false; + this.pending = true; + var _process = function(onSuccess, onFail) { + _onSuccess.push(onSuccess); + _onFail.push(onFail); + }; + this.then = function(onSuccess, onFail) { + return new Promise2(function(resolve2, reject) { + var s = onSuccess ? _then(onSuccess, resolve2, reject) : resolve2; + var f = onFail ? _then(onFail, resolve2, reject) : reject; + _process(s, f); + }, me); + }; + var _resolve = function(result) { + me.resolved = true; + me.rejected = false; + me.pending = false; + _onSuccess.forEach(function(fn) { + fn(result); + }); + _process = function(onSuccess, onFail) { + onSuccess(result); + }; + _resolve = _reject = function() { + }; + return me; + }; + var _reject = function(error) { + me.resolved = false; + me.rejected = true; + me.pending = false; + _onFail.forEach(function(fn) { + fn(error); + }); + _process = function(onSuccess, onFail) { + onFail(error); + }; + _resolve = _reject = function() { + }; + return me; + }; + this.cancel = function() { + if (parent) { + parent.cancel(); + } else { + _reject(new CancellationError()); + } + return me; + }; + this.timeout = function(delay) { + if (parent) { + parent.timeout(delay); + } else { + var timer = setTimeout(function() { + _reject(new TimeoutError("Promise timed out after " + delay + " ms")); + }, delay); + me.always(function() { + clearTimeout(timer); + }); + } + return me; + }; + handler(function(result) { + _resolve(result); + }, function(error) { + _reject(error); + }); + } + function _then(callback, resolve2, reject) { + return function(result) { + try { + var res = callback(result); + if (res && typeof res.then === "function" && typeof res["catch"] === "function") { + res.then(resolve2, reject); + } else { + resolve2(res); + } + } catch (error) { + reject(error); + } + }; + } + Promise2.prototype["catch"] = function(onFail) { + return this.then(null, onFail); + }; + Promise2.prototype.always = function(fn) { + return this.then(fn, fn); + }; + Promise2.all = function(promises) { + return new Promise2(function(resolve2, reject) { + var remaining = promises.length, results = []; + if (remaining) { + promises.forEach(function(p, i) { + p.then(function(result) { + results[i] = result; + remaining--; + if (remaining == 0) { + resolve2(results); + } + }, function(error) { + remaining = 0; + reject(error); + }); + }); + } else { + resolve2(results); + } + }); + }; + Promise2.defer = function() { + var resolver = {}; + resolver.promise = new Promise2(function(resolve2, reject) { + resolver.resolve = resolve2; + resolver.reject = reject; + }); + return resolver; + }; + function CancellationError(message) { + this.message = message || "promise cancelled"; + this.stack = new Error().stack; + } + CancellationError.prototype = new Error(); + CancellationError.prototype.constructor = Error; + CancellationError.prototype.name = "CancellationError"; + Promise2.CancellationError = CancellationError; + function TimeoutError(message) { + this.message = message || "timeout exceeded"; + this.stack = new Error().stack; + } + TimeoutError.prototype = new Error(); + TimeoutError.prototype.constructor = Error; + TimeoutError.prototype.name = "TimeoutError"; + Promise2.TimeoutError = TimeoutError; + module2.exports = Promise2; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/generated/embeddedWorker.js +var require_embeddedWorker = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/generated/embeddedWorker.js"(exports2, module2) { + module2.exports = `!function(){var __webpack_exports__={};!function(){var exports=__webpack_exports__,__webpack_unused_export__;function _typeof(r){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var requireFoolWebpack=eval("typeof require !== 'undefined' ? require : function (module) { throw new Error('Module \\" + module + \\" not found.') }"),TERMINATE_METHOD_ID="__workerpool-terminate__",worker={exit:function(){}},WorkerThreads,parentPort;if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");try{WorkerThreads=requireFoolWebpack("worker_threads")}catch(error){if("object"!==_typeof(error)||null===error||"MODULE_NOT_FOUND"!==error.code)throw error}WorkerThreads&&null!==WorkerThreads.parentPort?(parentPort=WorkerThreads.parentPort,worker.send=parentPort.postMessage.bind(parentPort),worker.on=parentPort.on.bind(parentPort)):(worker.on=process.on.bind(process),worker.send=process.send.bind(process),worker.on("disconnect",function(){process.exit(1)}),worker.exit=process.exit.bind(process))}function convertError(o){return Object.getOwnPropertyNames(o).reduce(function(r,e){return Object.defineProperty(r,e,{value:o[e],enumerable:!0})},{})}function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r.catch}worker.methods={},worker.methods.run=function(r,e){r=new Function("return ("+r+").apply(null, arguments);");return r.apply(r,e)},worker.methods.methods=function(){return Object.keys(worker.methods)};var currentRequestId=null;worker.on("message",function(e){if(e===TERMINATE_METHOD_ID)return worker.exit(0);try{var r=worker.methods[e.method];if(!r)throw new Error('Unknown method "'+e.method+'"');currentRequestId=e.id;var o=r.apply(r,e.params);isPromise(o)?o.then(function(r){worker.send({id:e.id,result:r,error:null}),currentRequestId=null}).catch(function(r){worker.send({id:e.id,result:null,error:convertError(r)}),currentRequestId=null}):(worker.send({id:e.id,result:o,error:null}),currentRequestId=null)}catch(r){worker.send({id:e.id,result:null,error:convertError(r)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e]);worker.send("ready")},worker.emit=function(r){currentRequestId&&worker.send({id:currentRequestId,isEvent:!0,payload:r})},__webpack_unused_export__=worker.register,worker.emit}()}();`; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/WorkerHandler.js +var require_WorkerHandler = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/WorkerHandler.js"(exports2, module2) { + "use strict"; + var Promise2 = require_Promise(); + var environment = require_environment(); + var requireFoolWebpack2 = require_requireFoolWebpack(); + var TERMINATE_METHOD_ID2 = "__workerpool-terminate__"; + var CHILD_PROCESS_EXIT_TIMEOUT = 1e3; + function ensureWorkerThreads() { + var WorkerThreads2 = tryRequireWorkerThreads(); + if (!WorkerThreads2) { + throw new Error("WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required"); + } + return WorkerThreads2; + } + function ensureWebWorker() { + if (typeof Worker !== "function" && (typeof Worker !== "object" || typeof Worker.prototype.constructor !== "function")) { + throw new Error("WorkerPool: Web Workers not supported"); + } + } + function tryRequireWorkerThreads() { + try { + return requireFoolWebpack2("worker_threads"); + } catch (error) { + if (typeof error === "object" && error !== null && error.code === "MODULE_NOT_FOUND") { + return null; + } else { + throw error; + } + } + } + function getDefaultWorker() { + if (environment.platform === "browser") { + if (typeof Blob === "undefined") { + throw new Error("Blob not supported by the browser"); + } + if (!window.URL || typeof window.URL.createObjectURL !== "function") { + throw new Error("URL.createObjectURL not supported by the browser"); + } + var blob = new Blob([require_embeddedWorker()], { type: "text/javascript" }); + return window.URL.createObjectURL(blob); + } else { + return __dirname + "/worker.js"; + } + } + function setupWorker(script, options) { + if (options.workerType === "web") { + ensureWebWorker(); + return setupBrowserWorker(script, Worker); + } else if (options.workerType === "thread") { + WorkerThreads2 = ensureWorkerThreads(); + return setupWorkerThreadWorker(script, WorkerThreads2); + } else if (options.workerType === "process" || !options.workerType) { + return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process")); + } else { + if (environment.platform === "browser") { + ensureWebWorker(); + return setupBrowserWorker(script, Worker); + } else { + var WorkerThreads2 = tryRequireWorkerThreads(); + if (WorkerThreads2) { + return setupWorkerThreadWorker(script, WorkerThreads2); + } else { + return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process")); + } + } + } + } + function setupBrowserWorker(script, Worker2) { + var worker2 = new Worker2(script); + worker2.isBrowserWorker = true; + worker2.on = function(event, callback) { + this.addEventListener(event, function(message) { + callback(message.data); + }); + }; + worker2.send = function(message) { + this.postMessage(message); + }; + return worker2; + } + function setupWorkerThreadWorker(script, WorkerThreads2) { + var worker2 = new WorkerThreads2.Worker(script, { + stdout: false, + // automatically pipe worker.STDOUT to process.STDOUT + stderr: false + // automatically pipe worker.STDERR to process.STDERR + }); + worker2.isWorkerThread = true; + worker2.send = function(message) { + this.postMessage(message); + }; + worker2.kill = function() { + this.terminate(); + return true; + }; + worker2.disconnect = function() { + this.terminate(); + }; + return worker2; + } + function setupProcessWorker(script, options, child_process) { + var worker2 = child_process.fork( + script, + options.forkArgs, + options.forkOpts + ); + worker2.isChildProcess = true; + return worker2; + } + function resolveForkOptions(opts) { + opts = opts || {}; + var processExecArgv = process.execArgv.join(" "); + var inspectorActive = processExecArgv.indexOf("--inspect") !== -1; + var debugBrk = processExecArgv.indexOf("--debug-brk") !== -1; + var execArgv = []; + if (inspectorActive) { + execArgv.push("--inspect=" + opts.debugPort); + if (debugBrk) { + execArgv.push("--debug-brk"); + } + } + process.execArgv.forEach(function(arg) { + if (arg.indexOf("--max-old-space-size") > -1) { + execArgv.push(arg); + } + }); + return Object.assign({}, opts, { + forkArgs: opts.forkArgs, + forkOpts: Object.assign({}, opts.forkOpts, { + execArgv: (opts.forkOpts && opts.forkOpts.execArgv || []).concat(execArgv) + }) + }); + } + function objectToError(obj) { + var temp = new Error(""); + var props = Object.keys(obj); + for (var i = 0; i < props.length; i++) { + temp[props[i]] = obj[props[i]]; + } + return temp; + } + function WorkerHandler(script, _options) { + var me = this; + var options = _options || {}; + this.script = script || getDefaultWorker(); + this.worker = setupWorker(this.script, options); + this.debugPort = options.debugPort; + this.forkOpts = options.forkOpts; + this.forkArgs = options.forkArgs; + if (!script) { + this.worker.ready = true; + } + this.requestQueue = []; + this.worker.on("message", function(response) { + if (me.terminated) { + return; + } + if (typeof response === "string" && response === "ready") { + me.worker.ready = true; + dispatchQueuedRequests(); + } else { + var id = response.id; + var task = me.processing[id]; + if (task !== void 0) { + if (response.isEvent) { + if (task.options && typeof task.options.on === "function") { + task.options.on(response.payload); + } + } else { + delete me.processing[id]; + if (me.terminating === true) { + me.terminate(); + } + if (response.error) { + task.resolver.reject(objectToError(response.error)); + } else { + task.resolver.resolve(response.result); + } + } + } + } + }); + function onError(error) { + me.terminated = true; + for (var id in me.processing) { + if (me.processing[id] !== void 0) { + me.processing[id].resolver.reject(error); + } + } + me.processing = /* @__PURE__ */ Object.create(null); + } + function dispatchQueuedRequests() { + for (const request of me.requestQueue.splice(0)) { + me.worker.send(request); + } + } + var worker2 = this.worker; + this.worker.on("error", onError); + this.worker.on("exit", function(exitCode, signalCode) { + var message = "Workerpool Worker terminated Unexpectedly\n"; + message += " exitCode: `" + exitCode + "`\n"; + message += " signalCode: `" + signalCode + "`\n"; + message += " workerpool.script: `" + me.script + "`\n"; + message += " spawnArgs: `" + worker2.spawnargs + "`\n"; + message += " spawnfile: `" + worker2.spawnfile + "`\n"; + message += " stdout: `" + worker2.stdout + "`\n"; + message += " stderr: `" + worker2.stderr + "`\n"; + onError(new Error(message)); + }); + this.processing = /* @__PURE__ */ Object.create(null); + this.terminating = false; + this.terminated = false; + this.terminationHandler = null; + this.lastId = 0; + } + WorkerHandler.prototype.methods = function() { + return this.exec("methods"); + }; + WorkerHandler.prototype.exec = function(method, params, resolver, options) { + if (!resolver) { + resolver = Promise2.defer(); + } + var id = ++this.lastId; + this.processing[id] = { + id, + resolver, + options + }; + var request = { + id, + method, + params + }; + if (this.terminated) { + resolver.reject(new Error("Worker is terminated")); + } else if (this.worker.ready) { + this.worker.send(request); + } else { + this.requestQueue.push(request); + } + var me = this; + return resolver.promise.catch(function(error) { + if (error instanceof Promise2.CancellationError || error instanceof Promise2.TimeoutError) { + delete me.processing[id]; + return me.terminateAndNotify(true).then(function() { + throw error; + }, function(err) { + throw err; + }); + } else { + throw error; + } + }); + }; + WorkerHandler.prototype.busy = function() { + return Object.keys(this.processing).length > 0; + }; + WorkerHandler.prototype.terminate = function(force, callback) { + var me = this; + if (force) { + for (var id in this.processing) { + if (this.processing[id] !== void 0) { + this.processing[id].resolver.reject(new Error("Worker terminated")); + } + } + this.processing = /* @__PURE__ */ Object.create(null); + } + if (typeof callback === "function") { + this.terminationHandler = callback; + } + if (!this.busy()) { + var cleanup = function(err) { + me.terminated = true; + if (me.worker != null && me.worker.removeAllListeners) { + me.worker.removeAllListeners("message"); + } + me.worker = null; + me.terminating = false; + if (me.terminationHandler) { + me.terminationHandler(err, me); + } else if (err) { + throw err; + } + }; + if (this.worker) { + if (typeof this.worker.kill === "function") { + if (this.worker.killed) { + cleanup(new Error("worker already killed!")); + return; + } + if (this.worker.isChildProcess) { + var cleanExitTimeout = setTimeout(function() { + if (me.worker) { + me.worker.kill(); + } + }, CHILD_PROCESS_EXIT_TIMEOUT); + this.worker.once("exit", function() { + clearTimeout(cleanExitTimeout); + if (me.worker) { + me.worker.killed = true; + } + cleanup(); + }); + if (this.worker.ready) { + this.worker.send(TERMINATE_METHOD_ID2); + } else { + this.requestQueue.push(TERMINATE_METHOD_ID2); + } + } else { + this.worker.kill(); + this.worker.killed = true; + cleanup(); + } + return; + } else if (typeof this.worker.terminate === "function") { + this.worker.terminate(); + this.worker.killed = true; + } else { + throw new Error("Failed to terminate worker"); + } + } + cleanup(); + } else { + this.terminating = true; + } + }; + WorkerHandler.prototype.terminateAndNotify = function(force, timeout) { + var resolver = Promise2.defer(); + if (timeout) { + resolver.promise.timeout = timeout; + } + this.terminate(force, function(err, worker2) { + if (err) { + resolver.reject(err); + } else { + resolver.resolve(worker2); + } + }); + return resolver.promise; + }; + module2.exports = WorkerHandler; + module2.exports._tryRequireWorkerThreads = tryRequireWorkerThreads; + module2.exports._setupProcessWorker = setupProcessWorker; + module2.exports._setupBrowserWorker = setupBrowserWorker; + module2.exports._setupWorkerThreadWorker = setupWorkerThreadWorker; + module2.exports.ensureWorkerThreads = ensureWorkerThreads; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/debug-port-allocator.js +var require_debug_port_allocator = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/debug-port-allocator.js"(exports2, module2) { + "use strict"; + var MAX_PORTS = 65535; + module2.exports = DebugPortAllocator; + function DebugPortAllocator() { + this.ports = /* @__PURE__ */ Object.create(null); + this.length = 0; + } + DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) { + while (this.ports[starting] === true) { + starting++; + } + if (starting >= MAX_PORTS) { + throw new Error("WorkerPool debug port limit reached: " + starting + ">= " + MAX_PORTS); + } + this.ports[starting] = true; + this.length++; + return starting; + }; + DebugPortAllocator.prototype.releasePort = function(port) { + delete this.ports[port]; + this.length--; + }; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Pool.js +var require_Pool = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Pool.js"(exports2, module2) { + var Promise2 = require_Promise(); + var WorkerHandler = require_WorkerHandler(); + var environment = require_environment(); + var DebugPortAllocator = require_debug_port_allocator(); + var DEBUG_PORT_ALLOCATOR = new DebugPortAllocator(); + function Pool(script, options) { + if (typeof script === "string") { + this.script = script || null; + } else { + this.script = null; + options = script; + } + this.workers = []; + this.tasks = []; + options = options || {}; + this.forkArgs = Object.freeze(options.forkArgs || []); + this.forkOpts = Object.freeze(options.forkOpts || {}); + this.debugPortStart = options.debugPortStart || 43210; + this.nodeWorker = options.nodeWorker; + this.workerType = options.workerType || options.nodeWorker || "auto"; + this.maxQueueSize = options.maxQueueSize || Infinity; + this.onCreateWorker = options.onCreateWorker || (() => null); + this.onTerminateWorker = options.onTerminateWorker || (() => null); + if (options && "maxWorkers" in options) { + validateMaxWorkers(options.maxWorkers); + this.maxWorkers = options.maxWorkers; + } else { + this.maxWorkers = Math.max((environment.cpus || 4) - 1, 1); + } + if (options && "minWorkers" in options) { + if (options.minWorkers === "max") { + this.minWorkers = this.maxWorkers; + } else { + validateMinWorkers(options.minWorkers); + this.minWorkers = options.minWorkers; + this.maxWorkers = Math.max(this.minWorkers, this.maxWorkers); + } + this._ensureMinWorkers(); + } + this._boundNext = this._next.bind(this); + if (this.workerType === "thread") { + WorkerHandler.ensureWorkerThreads(); + } + } + Pool.prototype.exec = function(method, params, options) { + if (params && !Array.isArray(params)) { + throw new TypeError('Array expected as argument "params"'); + } + if (typeof method === "string") { + var resolver = Promise2.defer(); + if (this.tasks.length >= this.maxQueueSize) { + throw new Error("Max queue size of " + this.maxQueueSize + " reached"); + } + var tasks = this.tasks; + var task = { + method, + params, + resolver, + timeout: null, + options + }; + tasks.push(task); + var originalTimeout = resolver.promise.timeout; + resolver.promise.timeout = function timeout(delay) { + if (tasks.indexOf(task) !== -1) { + task.timeout = delay; + return resolver.promise; + } else { + return originalTimeout.call(resolver.promise, delay); + } + }; + this._next(); + return resolver.promise; + } else if (typeof method === "function") { + return this.exec("run", [String(method), params]); + } else { + throw new TypeError('Function or string expected as argument "method"'); + } + }; + Pool.prototype.proxy = function() { + if (arguments.length > 0) { + throw new Error("No arguments expected"); + } + var pool = this; + return this.exec("methods").then(function(methods) { + var proxy = {}; + methods.forEach(function(method) { + proxy[method] = function() { + return pool.exec(method, Array.prototype.slice.call(arguments)); + }; + }); + return proxy; + }); + }; + Pool.prototype._next = function() { + if (this.tasks.length > 0) { + var worker2 = this._getWorker(); + if (worker2) { + var me = this; + var task = this.tasks.shift(); + if (task.resolver.promise.pending) { + var promise = worker2.exec(task.method, task.params, task.resolver, task.options).then(me._boundNext).catch(function() { + if (worker2.terminated) { + return me._removeWorker(worker2); + } + }).then(function() { + me._next(); + }); + if (typeof task.timeout === "number") { + promise.timeout(task.timeout); + } + } else { + me._next(); + } + } + } + }; + Pool.prototype._getWorker = function() { + var workers = this.workers; + for (var i = 0; i < workers.length; i++) { + var worker2 = workers[i]; + if (worker2.busy() === false) { + return worker2; + } + } + if (workers.length < this.maxWorkers) { + worker2 = this._createWorkerHandler(); + workers.push(worker2); + return worker2; + } + return null; + }; + Pool.prototype._removeWorker = function(worker2) { + var me = this; + DEBUG_PORT_ALLOCATOR.releasePort(worker2.debugPort); + this._removeWorkerFromList(worker2); + this._ensureMinWorkers(); + return new Promise2(function(resolve2, reject) { + worker2.terminate(false, function(err) { + me.onTerminateWorker({ + forkArgs: worker2.forkArgs, + forkOpts: worker2.forkOpts, + script: worker2.script + }); + if (err) { + reject(err); + } else { + resolve2(worker2); + } + }); + }); + }; + Pool.prototype._removeWorkerFromList = function(worker2) { + var index = this.workers.indexOf(worker2); + if (index !== -1) { + this.workers.splice(index, 1); + } + }; + Pool.prototype.terminate = function(force, timeout) { + var me = this; + this.tasks.forEach(function(task) { + task.resolver.reject(new Error("Pool terminated")); + }); + this.tasks.length = 0; + var f = function(worker2) { + this._removeWorkerFromList(worker2); + }; + var removeWorker = f.bind(this); + var promises = []; + var workers = this.workers.slice(); + workers.forEach(function(worker2) { + var termPromise = worker2.terminateAndNotify(force, timeout).then(removeWorker).always(function() { + me.onTerminateWorker({ + forkArgs: worker2.forkArgs, + forkOpts: worker2.forkOpts, + script: worker2.script + }); + }); + promises.push(termPromise); + }); + return Promise2.all(promises); + }; + Pool.prototype.stats = function() { + var totalWorkers = this.workers.length; + var busyWorkers = this.workers.filter(function(worker2) { + return worker2.busy(); + }).length; + return { + totalWorkers, + busyWorkers, + idleWorkers: totalWorkers - busyWorkers, + pendingTasks: this.tasks.length, + activeTasks: busyWorkers + }; + }; + Pool.prototype._ensureMinWorkers = function() { + if (this.minWorkers) { + for (var i = this.workers.length; i < this.minWorkers; i++) { + this.workers.push(this._createWorkerHandler()); + } + } + }; + Pool.prototype._createWorkerHandler = function() { + const overridenParams = this.onCreateWorker({ + forkArgs: this.forkArgs, + forkOpts: this.forkOpts, + script: this.script + }) || {}; + return new WorkerHandler(overridenParams.script || this.script, { + forkArgs: overridenParams.forkArgs || this.forkArgs, + forkOpts: overridenParams.forkOpts || this.forkOpts, + debugPort: DEBUG_PORT_ALLOCATOR.nextAvailableStartingAt(this.debugPortStart), + workerType: this.workerType + }); + }; + function validateMaxWorkers(maxWorkers) { + if (!isNumber(maxWorkers) || !isInteger2(maxWorkers) || maxWorkers < 1) { + throw new TypeError("Option maxWorkers must be an integer number >= 1"); + } + } + function validateMinWorkers(minWorkers) { + if (!isNumber(minWorkers) || !isInteger2(minWorkers) || minWorkers < 0) { + throw new TypeError("Option minWorkers must be an integer number >= 0"); + } + } + function isNumber(value) { + return typeof value === "number"; + } + function isInteger2(value) { + return Math.round(value) == value; + } + module2.exports = Pool; + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/worker.js +var require_worker = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/worker.js"(exports, module) { + var requireFoolWebpack = eval( + `typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }` + ); + var TERMINATE_METHOD_ID = "__workerpool-terminate__"; + var worker = { + exit: function() { + } + }; + if (typeof self !== "undefined" && typeof postMessage === "function" && typeof addEventListener === "function") { + worker.on = function(event, callback) { + addEventListener(event, function(message) { + callback(message.data); + }); + }; + worker.send = function(message) { + postMessage(message); + }; + } else if (typeof process !== "undefined") { + try { + WorkerThreads = requireFoolWebpack("worker_threads"); + } catch (error) { + if (typeof error === "object" && error !== null && error.code === "MODULE_NOT_FOUND") { + } else { + throw error; + } + } + if (WorkerThreads && /* if there is a parentPort, we are in a WorkerThread */ + WorkerThreads.parentPort !== null) { + parentPort = WorkerThreads.parentPort; + worker.send = parentPort.postMessage.bind(parentPort); + worker.on = parentPort.on.bind(parentPort); + } else { + worker.on = process.on.bind(process); + worker.send = process.send.bind(process); + worker.on("disconnect", function() { + process.exit(1); + }); + worker.exit = process.exit.bind(process); + } + } else { + throw new Error("Script must be executed as a worker"); + } + var WorkerThreads; + var parentPort; + function convertError(error) { + return Object.getOwnPropertyNames(error).reduce(function(product, name) { + return Object.defineProperty(product, name, { + value: error[name], + enumerable: true + }); + }, {}); + } + function isPromise(value) { + return value && typeof value.then === "function" && typeof value.catch === "function"; + } + worker.methods = {}; + worker.methods.run = function run2(fn, args) { + var f = new Function("return (" + fn + ").apply(null, arguments);"); + return f.apply(f, args); + }; + worker.methods.methods = function methods() { + return Object.keys(worker.methods); + }; + var currentRequestId = null; + worker.on("message", function(request) { + if (request === TERMINATE_METHOD_ID) { + return worker.exit(0); + } + try { + var method = worker.methods[request.method]; + if (method) { + currentRequestId = request.id; + var result = method.apply(method, request.params); + if (isPromise(result)) { + result.then(function(result2) { + worker.send({ + id: request.id, + result: result2, + error: null + }); + currentRequestId = null; + }).catch(function(err) { + worker.send({ + id: request.id, + result: null, + error: convertError(err) + }); + currentRequestId = null; + }); + } else { + worker.send({ + id: request.id, + result, + error: null + }); + currentRequestId = null; + } + } else { + throw new Error('Unknown method "' + request.method + '"'); + } + } catch (err) { + worker.send({ + id: request.id, + result: null, + error: convertError(err) + }); + } + }); + worker.register = function(methods) { + if (methods) { + for (var name in methods) { + if (methods.hasOwnProperty(name)) { + worker.methods[name] = methods[name]; + } + } + } + worker.send("ready"); + }; + worker.emit = function(payload) { + if (currentRequestId) { + worker.send({ + id: currentRequestId, + isEvent: true, + payload + }); + } + }; + if (typeof exports !== "undefined") { + exports.add = worker.register; + exports.emit = worker.emit; + } + } +}); + +// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/index.js +var require_src2 = __commonJS({ + "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/index.js"(exports2) { + var environment = require_environment(); + exports2.pool = function pool(script, options) { + var Pool = require_Pool(); + return new Pool(script, options); + }; + exports2.worker = function worker2(methods) { + var worker3 = require_worker(); + worker3.add(methods); + }; + exports2.workerEmit = function workerEmit(payload) { + var worker2 = require_worker(); + worker2.emit(payload); + }; + exports2.Promise = require_Promise(); + exports2.platform = environment.platform; + exports2.isMainThread = environment.isMainThread; + exports2.cpus = environment.cpus; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/serializer.js +var require_serializer = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/serializer.js"(exports2) { + "use strict"; + var { type: type2 } = require_utils(); + var { createInvalidArgumentTypeError } = require_errors(); + var debug = require_src()("mocha:serializer"); + var SERIALIZABLE_RESULT_NAME = "SerializableWorkerResult"; + var SERIALIZABLE_TYPES = /* @__PURE__ */ new Set(["object", "array", "function", "error"]); + var SerializableWorkerResult = class _SerializableWorkerResult { + /** + * Creates instance props; of note, the `__type` prop. + * + * Note that the failure count is _redundant_ and could be derived from the + * list of events; but since we're already doing the work, might as well use + * it. + * @param {SerializableEvent[]} [events=[]] - Events to eventually serialize + * @param {number} [failureCount=0] - Failure count + */ + constructor(events = [], failureCount = 0) { + this.failureCount = failureCount; + this.events = events; + Object.defineProperty(this, "__type", { + value: SERIALIZABLE_RESULT_NAME, + enumerable: true, + writable: false + }); + } + /** + * Instantiates a new {@link SerializableWorkerResult}. + * @param {...any} args - Args to constructor + * @returns {SerializableWorkerResult} + */ + static create(...args) { + return new _SerializableWorkerResult(...args); + } + /** + * Serializes each {@link SerializableEvent} in our `events` prop; + * makes this object read-only. + * @returns {Readonly} + */ + serialize() { + this.events.forEach((event) => { + event.serialize(); + }); + return Object.freeze(this); + } + /** + * Deserializes a {@link SerializedWorkerResult} into something reporters can + * use; calls {@link SerializableEvent.deserialize} on each item in its + * `events` prop. + * @param {SerializedWorkerResult} obj + * @returns {SerializedWorkerResult} + */ + static deserialize(obj) { + obj.events.forEach((event) => { + SerializableEvent.deserialize(event); + }); + return obj; + } + /** + * Returns `true` if this is a {@link SerializedWorkerResult} or a + * {@link SerializableWorkerResult}. + * @param {*} value - A value to check + * @returns {boolean} If true, it's deserializable + */ + static isSerializedWorkerResult(value) { + return value instanceof _SerializableWorkerResult || type2(value) === "object" && value.__type === SERIALIZABLE_RESULT_NAME; + } + }; + var SerializableEvent = class _SerializableEvent { + /** + * Constructs a `SerializableEvent`, throwing if we receive unexpected data. + * + * Practically, events emitted from `Runner` have a minumum of zero (0) + * arguments-- (for example, {@link Runnable.constants.EVENT_RUN_BEGIN}) and a + * maximum of two (2) (for example, + * {@link Runnable.constants.EVENT_TEST_FAIL}, where the second argument is an + * `Error`). The first argument, if present, is a {@link Runnable}. This + * constructor's arguments adhere to this convention. + * @param {string} eventName - A non-empty event name. + * @param {any} [originalValue] - Some data. Corresponds to extra arguments + * passed to `EventEmitter#emit`. + * @param {Error} [originalError] - An error, if there's an error. + * @throws If `eventName` is empty, or `originalValue` is a non-object. + */ + constructor(eventName, originalValue, originalError) { + if (!eventName) { + throw createInvalidArgumentTypeError( + "Empty `eventName` string argument", + "eventName", + "string" + ); + } + this.eventName = eventName; + const originalValueType = type2(originalValue); + if (originalValueType !== "object" && originalValueType !== "undefined") { + throw createInvalidArgumentTypeError( + `Expected object but received ${originalValueType}`, + "originalValue", + "object" + ); + } + Object.defineProperty(this, "originalError", { + value: originalError, + enumerable: false + }); + Object.defineProperty(this, "originalValue", { + value: originalValue, + enumerable: false + }); + } + /** + * In case you hated using `new` (I do). + * + * @param {...any} args - Args for {@link SerializableEvent#constructor}. + * @returns {SerializableEvent} A new `SerializableEvent` + */ + static create(...args) { + return new _SerializableEvent(...args); + } + /** + * Used internally by {@link SerializableEvent#serialize}. + * @ignore + * @param {Array} pairs - List of parent/key tuples to process; modified in-place. This JSDoc type is an approximation + * @param {object} parent - Some parent object + * @param {string} key - Key to inspect + * @param {WeakSet} seenObjects - For avoiding circular references + */ + static _serialize(pairs2, parent, key, seenObjects) { + let value = parent[key]; + if (seenObjects.has(value)) { + parent[key] = /* @__PURE__ */ Object.create(null); + return; + } + let _type = type2(value); + if (_type === "error") { + value = Object.assign(/* @__PURE__ */ Object.create(null), value, { + stack: value.stack, + message: value.message, + __type: "Error" + }); + parent[key] = value; + _type = "object"; + } + switch (_type) { + case "object": + if (type2(value.serialize) === "function") { + parent[key] = value.serialize(); + } else { + pairs2.push( + ...Object.keys(value).filter((key2) => SERIALIZABLE_TYPES.has(type2(value[key2]))).map((key2) => [value, key2]) + ); + } + break; + case "function": + delete parent[key]; + break; + case "array": + pairs2.push( + ...value.filter((value2) => SERIALIZABLE_TYPES.has(type2(value2))).map((value2, index) => [value2, index]) + ); + break; + } + } + /** + * Modifies this object *in place* (for theoretical memory consumption & + * performance reasons); serializes `SerializableEvent#originalValue` (placing + * the result in `SerializableEvent#data`) and `SerializableEvent#error`. + * Freezes this object. The result is an object that can be transmitted over + * IPC. + * If this quickly becomes unmaintainable, we will want to move towards immutable + * objects post-haste. + */ + serialize() { + const originalValue = this.originalValue; + const result = Object.assign(/* @__PURE__ */ Object.create(null), { + data: type2(originalValue) === "object" && type2(originalValue.serialize) === "function" ? originalValue.serialize() : originalValue, + error: this.originalError + }); + const pairs2 = Object.keys(result).map((key) => [result, key]); + const seenObjects = /* @__PURE__ */ new WeakSet(); + let pair; + while (pair = pairs2.shift()) { + _SerializableEvent._serialize(pairs2, ...pair, seenObjects); + seenObjects.add(pair[0]); + } + this.data = result.data; + this.error = result.error; + return Object.freeze(this); + } + /** + * Used internally by {@link SerializableEvent.deserialize}; creates an `Error` + * from an `Error`-like (serialized) object + * @ignore + * @param {Object} value - An Error-like value + * @returns {Error} Real error + */ + static _deserializeError(value) { + const error = new Error(value.message); + error.stack = value.stack; + Object.assign(error, value); + delete error.__type; + return error; + } + /** + * Used internally by {@link SerializableEvent.deserialize}; recursively + * deserializes an object in-place. + * @param {object|Array} parent - Some object or array + * @param {string|number} key - Some prop name or array index within `parent` + */ + static _deserializeObject(parent, key) { + if (key === "__proto__") { + delete parent[key]; + return; + } + const value = parent[key]; + if (type2(key) === "string" && key.startsWith("$$")) { + const newKey = key.slice(2); + parent[newKey] = () => value; + delete parent[key]; + key = newKey; + } + if (type2(value) === "array") { + value.forEach((_, idx) => { + _SerializableEvent._deserializeObject(value, idx); + }); + } else if (type2(value) === "object") { + if (value.__type === "Error") { + parent[key] = _SerializableEvent._deserializeError(value); + } else { + Object.keys(value).forEach((key2) => { + _SerializableEvent._deserializeObject(value, key2); + }); + } + } + } + /** + * Deserialize value returned from a worker into something more useful. + * Does not return the same object. + * @todo do this in a loop instead of with recursion (if necessary) + * @param {SerializedEvent} obj - Object returned from worker + * @returns {SerializedEvent} Deserialized result + */ + static deserialize(obj) { + if (!obj) { + throw createInvalidArgumentTypeError("Expected value", obj); + } + obj = Object.assign(/* @__PURE__ */ Object.create(null), obj); + if (obj.data) { + Object.keys(obj.data).forEach((key) => { + _SerializableEvent._deserializeObject(obj.data, key); + }); + } + if (obj.error) { + obj.error = _SerializableEvent._deserializeError(obj.error); + } + return obj; + } + }; + exports2.serialize = function serialize2(value) { + const result = type2(value) === "object" && type2(value.serialize) === "function" ? value.serialize() : value; + debug("serialized: %O", result); + return result; + }; + exports2.deserialize = function deserialize(value) { + const result = SerializableWorkerResult.isSerializedWorkerResult(value) ? SerializableWorkerResult.deserialize(value) : value; + debug("deserialized: %O", result); + return result; + }; + exports2.SerializableEvent = SerializableEvent; + exports2.SerializableWorkerResult = SerializableWorkerResult; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/buffered-worker-pool.js +var require_buffered_worker_pool = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/buffered-worker-pool.js"(exports2) { + "use strict"; + var serializeJavascript = require_serialize_javascript(); + var workerpool = require_src2(); + var { deserialize } = require_serializer(); + var debug = require_src()("mocha:parallel:buffered-worker-pool"); + var { createInvalidArgumentTypeError } = require_errors(); + var WORKER_PATH = require.resolve("./worker.js"); + var optionsCache = /* @__PURE__ */ new WeakMap(); + var WORKER_POOL_DEFAULT_OPTS = { + // use child processes, not worker threads! + workerType: "process", + // ensure the same flags sent to `node` for this `mocha` invocation are passed + // along to children + forkOpts: { execArgv: process.execArgv }, + maxWorkers: workerpool.cpus - 1 + }; + var BufferedWorkerPool = class _BufferedWorkerPool { + /** + * Creates an underlying worker pool instance; determines max worker count + * @param {Partial} [opts] - Options + */ + constructor(opts = {}) { + const maxWorkers = Math.max( + 1, + typeof opts.maxWorkers === "undefined" ? WORKER_POOL_DEFAULT_OPTS.maxWorkers : opts.maxWorkers + ); + if (workerpool.cpus < 2) { + debug( + "not enough CPU cores available to run multiple jobs; avoid --parallel on this machine" + ); + } else if (maxWorkers >= workerpool.cpus) { + debug( + "%d concurrent job(s) requested, but only %d core(s) available", + maxWorkers, + workerpool.cpus + ); + } + debug( + "run(): starting worker pool of max size %d, using node args: %s", + maxWorkers, + process.execArgv.join(" ") + ); + let counter = 0; + const onCreateWorker = ({ forkOpts }) => { + return { + forkOpts: { + ...forkOpts, + // adds an incremental id to all workers, which can be useful to allocate resources for each process + env: { ...process.env, MOCHA_WORKER_ID: counter++ } + } + }; + }; + this.options = { + ...WORKER_POOL_DEFAULT_OPTS, + ...opts, + maxWorkers, + onCreateWorker + }; + this._pool = workerpool.pool(WORKER_PATH, this.options); + } + /** + * Terminates all workers in the pool. + * @param {boolean} [force] - Whether to force-kill workers. By default, lets workers finish their current task before termination. + * @private + * @returns {Promise} + */ + async terminate(force = false) { + debug("terminate(): terminating with force = %s", force); + return this._pool.terminate(force); + } + /** + * Adds a test file run to the worker pool queue for execution by a worker process. + * + * Handles serialization/deserialization. + * + * @param {string} filepath - Filepath of test + * @param {Options} [options] - Options for Mocha instance + * @private + * @returns {Promise} + */ + async run(filepath, options = {}) { + if (!filepath || typeof filepath !== "string") { + throw createInvalidArgumentTypeError( + "Expected a non-empty filepath", + "filepath", + "string" + ); + } + const serializedOptions = _BufferedWorkerPool.serializeOptions(options); + const result = await this._pool.exec("run", [filepath, serializedOptions]); + return deserialize(result); + } + /** + * Returns stats about the state of the worker processes in the pool. + * + * Used for debugging. + * + * @private + */ + stats() { + return this._pool.stats(); + } + /** + * Instantiates a {@link WorkerPool}. + * @private + */ + static create(...args) { + return new _BufferedWorkerPool(...args); + } + /** + * Given Mocha options object `opts`, serialize into a format suitable for + * transmission over IPC. + * + * @param {Options} [opts] - Mocha options + * @private + * @returns {string} Serialized options + */ + static serializeOptions(opts = {}) { + if (!optionsCache.has(opts)) { + const serialized = serializeJavascript(opts, { + unsafe: true, + // this means we don't care about XSS + ignoreFunction: true + // do not serialize functions + }); + optionsCache.set(opts, serialized); + debug( + "serializeOptions(): serialized options %O to: %s", + opts, + serialized + ); + } + return optionsCache.get(opts); + } + /** + * Resets internal cache of serialized options objects. + * + * For testing/debugging + * @private + */ + static resetOptionsCache() { + optionsCache = /* @__PURE__ */ new WeakMap(); + } + }; + exports2.BufferedWorkerPool = BufferedWorkerPool; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js +var require_parallel_buffered_runner = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js"(exports2, module2) { + "use strict"; + var Runner = require_runner(); + var { EVENT_RUN_BEGIN, EVENT_RUN_END } = Runner.constants; + var debug = require_src()("mocha:parallel:parallel-buffered-runner"); + var { BufferedWorkerPool } = require_buffered_worker_pool(); + var { setInterval, clearInterval } = global; + var { createMap, constants } = require_utils(); + var { MOCHA_ID_PROP_NAME } = constants; + var { createFatalError } = require_errors(); + var DEFAULT_WORKER_REPORTER = require.resolve("./reporters/parallel-buffered"); + var DENY_OPTIONS = [ + "globalSetup", + "globalTeardown", + "parallel", + "p", + "jobs", + "j" + ]; + var debugStats = (pool) => { + const { totalWorkers, busyWorkers, idleWorkers, pendingTasks } = pool.stats(); + debug( + "%d/%d busy workers; %d idle; %d tasks queued", + busyWorkers, + totalWorkers, + idleWorkers, + pendingTasks + ); + }; + var DEBUG_STATS_INTERVAL = 5e3; + var ABORTED2 = "ABORTED"; + var IDLE = "IDLE"; + var ABORTING = "ABORTING"; + var RUNNING = "RUNNING"; + var BAILING = "BAILING"; + var BAILED = "BAILED"; + var COMPLETE = "COMPLETE"; + var states = createMap({ + [IDLE]: /* @__PURE__ */ new Set([RUNNING, ABORTING]), + [RUNNING]: /* @__PURE__ */ new Set([COMPLETE, BAILING, ABORTING]), + [COMPLETE]: /* @__PURE__ */ new Set(), + [ABORTED2]: /* @__PURE__ */ new Set(), + [ABORTING]: /* @__PURE__ */ new Set([ABORTED2]), + [BAILING]: /* @__PURE__ */ new Set([BAILED, ABORTING]), + [BAILED]: /* @__PURE__ */ new Set([COMPLETE, ABORTING]) + }); + var ParallelBufferedRunner = class extends Runner { + constructor(...args) { + super(...args); + let state = IDLE; + Object.defineProperty(this, "_state", { + get() { + return state; + }, + set(newState) { + if (states[state].has(newState)) { + state = newState; + } else { + throw new Error(`invalid state transition: ${state} => ${newState}`); + } + } + }); + this._workerReporter = DEFAULT_WORKER_REPORTER; + this._linkPartialObjects = false; + this._linkedObjectMap = /* @__PURE__ */ new Map(); + this.once(Runner.constants.EVENT_RUN_END, () => { + this._state = COMPLETE; + }); + } + /** + * Returns a mapping function to enqueue a file in the worker pool and return results of its execution. + * @param {BufferedWorkerPool} pool - Worker pool + * @param {Options} options - Mocha options + * @returns {FileRunner} Mapping function + * @private + */ + _createFileRunner(pool, options) { + const emitEvent = (event, failureCount) => { + this.emit(event.eventName, event.data, event.error); + if (this._state !== BAILING && event.data && event.data._bail && (failureCount || event.error)) { + debug("run(): nonzero failure count & found bail flag"); + this._state = BAILING; + } + }; + const linkEvent = (event) => { + const stack = [{ parent: event, prop: "data" }]; + while (stack.length) { + const { parent, prop } = stack.pop(); + const obj = parent[prop]; + let newObj; + if (obj && typeof obj === "object") { + if (obj[MOCHA_ID_PROP_NAME]) { + const id = obj[MOCHA_ID_PROP_NAME]; + newObj = this._linkedObjectMap.has(id) ? Object.assign(this._linkedObjectMap.get(id), obj) : obj; + this._linkedObjectMap.set(id, newObj); + parent[prop] = newObj; + } else { + throw createFatalError( + "Object missing ID received in event data", + obj + ); + } + } + Object.keys(newObj).forEach((key) => { + const value = obj[key]; + if (value && typeof value === "object" && value[MOCHA_ID_PROP_NAME]) { + stack.push({ obj: value, parent: newObj, prop: key }); + } + }); + } + }; + return async (file) => { + debug("run(): enqueueing test file %s", file); + try { + const { failureCount, events } = await pool.run(file, options); + if (this._state === BAILED) { + return; + } + debug( + "run(): completed run of file %s; %d failures / %d events", + file, + failureCount, + events.length + ); + this.failures += failureCount; + let event = events.shift(); + if (this._linkPartialObjects) { + while (event) { + linkEvent(event); + emitEvent(event, failureCount); + event = events.shift(); + } + } else { + while (event) { + emitEvent(event, failureCount); + event = events.shift(); + } + } + if (this._state === BAILING) { + debug('run(): terminating pool due to "bail" flag'); + this._state = BAILED; + await pool.terminate(); + } + } catch (err) { + if (this._state === BAILED || this._state === ABORTING) { + debug( + "run(): worker pool terminated with intent; skipping file %s", + file + ); + } else { + debug("run(): encountered uncaught exception: %O", err); + if (this.allowUncaught) { + this._state = ABORTING; + await pool.terminate(true); + } + throw err; + } + } finally { + debug("run(): done running file %s", file); + } + }; + } + /** + * Listen on `Process.SIGINT`; terminate pool if caught. + * Returns the listener for later call to `process.removeListener()`. + * @param {BufferedWorkerPool} pool - Worker pool + * @returns {SigIntListener} Listener + * @private + */ + _bindSigIntListener(pool) { + const sigIntListener = async () => { + debug("run(): caught a SIGINT"); + this._state = ABORTING; + try { + debug("run(): force-terminating worker pool"); + await pool.terminate(true); + } catch (err) { + console.error( + `Error while attempting to force-terminate worker pool: ${err}` + ); + process.exitCode = 1; + } finally { + process.nextTick(() => { + debug("run(): imminent death"); + this._state = ABORTED2; + process.kill(process.pid, "SIGINT"); + }); + } + }; + process.once("SIGINT", sigIntListener); + return sigIntListener; + } + /** + * Runs Mocha tests by creating a thread pool, then delegating work to the + * worker threads. + * + * Each worker receives one file, and as workers become available, they take a + * file from the queue and run it. The worker thread execution is treated like + * an RPC--it returns a `Promise` containing serialized information about the + * run. The information is processed as it's received, and emitted to a + * {@link Reporter}, which is likely listening for these events. + * + * @param {Function} callback - Called with an exit code corresponding to + * number of test failures. + * @param {Object} [opts] - options + * @param {string[]} opts.files - Files to run + * @param {Options} opts.options - command-line options + */ + run(callback, { files, options = {} } = {}) { + let sigIntListener; + options = { ...options, reporter: this._workerReporter }; + (async () => { + let debugInterval; + let pool; + try { + pool = BufferedWorkerPool.create({ maxWorkers: options.jobs }); + sigIntListener = this._bindSigIntListener(pool); + debugInterval = setInterval( + () => debugStats(pool), + DEBUG_STATS_INTERVAL + ).unref(); + this.started = true; + this._state = RUNNING; + this.emit(EVENT_RUN_BEGIN); + options = { ...options }; + DENY_OPTIONS.forEach((opt) => { + delete options[opt]; + }); + const results = await Promise.allSettled( + files.map(this._createFileRunner(pool, options)) + ); + await pool.terminate(); + results.filter(({ status }) => status === "rejected").forEach(({ reason }) => { + if (this.allowUncaught) { + throw reason; + } + this.uncaught(reason); + }); + if (this._state === ABORTING) { + return; + } + this.emit(EVENT_RUN_END); + debug("run(): completing with failure count %d", this.failures); + callback(this.failures); + } catch (err) { + process.nextTick(() => { + debug("run(): re-throwing uncaught exception"); + throw err; + }); + } finally { + clearInterval(debugInterval); + process.removeListener("SIGINT", sigIntListener); + } + })(); + return this; + } + /** + * Toggle partial object linking behavior; used for building object references from + * unique ID's. + * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable + * @returns {Runner} + * @chainable + * @public + * @example + * // this reporter needs proper object references when run in parallel mode + * class MyReporter() { + * constructor(runner) { + * this.runner.linkPartialObjects(true) + * .on(EVENT_SUITE_BEGIN, suite => { + // this Suite may be the same object... + * }) + * .on(EVENT_TEST_BEGIN, test => { + * // ...as the `test.parent` property + * }); + * } + * } + */ + linkPartialObjects(value) { + this._linkPartialObjects = Boolean(value); + return super.linkPartialObjects(value); + } + /** + * If this class is the `Runner` in use, then this is going to return `true`. + * + * For use by reporters. + * @returns {true} + * @public + */ + isParallelMode() { + return true; + } + /** + * Configures an alternate reporter for worker processes to use. Subclasses + * using worker processes should implement this. + * @public + * @param {string} path - Absolute path to alternate reporter for worker processes to use + * @returns {Runner} + * @throws When in serial mode + * @chainable + */ + workerReporter(reporter) { + this._workerReporter = reporter; + return this; + } + }; + module2.exports = ParallelBufferedRunner; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocha.js +var require_mocha = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocha.js"(exports2, module2) { + "use strict"; + var escapeRe = require_escape_string_regexp(); + var path4 = require("path"); + var builtinReporters = require_reporters(); + var utils = require_utils(); + var mocharc = require_mocharc(); + var Suite = require_suite(); + var esmUtils = require_esm_utils(); + var createStatsCollector = require_stats_collector(); + var { + createInvalidReporterError, + createInvalidInterfaceError, + createMochaInstanceAlreadyDisposedError, + createMochaInstanceAlreadyRunningError, + createUnsupportedError + } = require_errors(); + var { EVENT_FILE_PRE_REQUIRE, EVENT_FILE_POST_REQUIRE, EVENT_FILE_REQUIRE } = Suite.constants; + var debug = require_src()("mocha:mocha"); + exports2 = module2.exports = Mocha2; + var mochaStates = utils.defineConstants({ + /** + * Initial state of the mocha instance + * @private + */ + INIT: "init", + /** + * Mocha instance is running tests + * @private + */ + RUNNING: "running", + /** + * Mocha instance is done running tests and references to test functions and hooks are cleaned. + * You can reset this state by unloading the test files. + * @private + */ + REFERENCES_CLEANED: "referencesCleaned", + /** + * Mocha instance is disposed and can no longer be used. + * @private + */ + DISPOSED: "disposed" + }); + if (!utils.isBrowser() && typeof module2.paths !== "undefined") { + cwd = utils.cwd(); + module2.paths.push(cwd, path4.join(cwd, "node_modules")); + } + var cwd; + exports2.utils = utils; + exports2.interfaces = require_interfaces(); + exports2.reporters = builtinReporters; + exports2.Runnable = require_runnable(); + exports2.Context = require_context(); + exports2.Runner = require_runner(); + exports2.Suite = Suite; + exports2.Hook = require_hook(); + exports2.Test = require_test(); + var currentContext; + exports2.afterEach = function(...args) { + return (currentContext.afterEach || currentContext.teardown).apply( + this, + args + ); + }; + exports2.after = function(...args) { + return (currentContext.after || currentContext.suiteTeardown).apply( + this, + args + ); + }; + exports2.beforeEach = function(...args) { + return (currentContext.beforeEach || currentContext.setup).apply(this, args); + }; + exports2.before = function(...args) { + return (currentContext.before || currentContext.suiteSetup).apply(this, args); + }; + exports2.describe = function(...args) { + return (currentContext.describe || currentContext.suite).apply(this, args); + }; + exports2.describe.only = function(...args) { + return (currentContext.describe || currentContext.suite).only.apply( + this, + args + ); + }; + exports2.describe.skip = function(...args) { + return (currentContext.describe || currentContext.suite).skip.apply( + this, + args + ); + }; + exports2.it = function(...args) { + return (currentContext.it || currentContext.test).apply(this, args); + }; + exports2.it.only = function(...args) { + return (currentContext.it || currentContext.test).only.apply(this, args); + }; + exports2.it.skip = function(...args) { + return (currentContext.it || currentContext.test).skip.apply(this, args); + }; + exports2.xdescribe = exports2.describe.skip; + exports2.xit = exports2.it.skip; + exports2.setup = exports2.beforeEach; + exports2.suiteSetup = exports2.before; + exports2.suiteTeardown = exports2.after; + exports2.suite = exports2.describe; + exports2.teardown = exports2.afterEach; + exports2.test = exports2.it; + exports2.run = function(...args) { + return currentContext.run.apply(this, args); + }; + function Mocha2(options = {}) { + options = { ...mocharc, ...options }; + this.files = []; + this.options = options; + this.suite = new exports2.Suite("", new exports2.Context(), true); + this._cleanReferencesAfterRun = true; + this._state = mochaStates.INIT; + this.grep(options.grep).fgrep(options.fgrep).ui(options.ui).reporter( + options.reporter, + options.reporterOption || options.reporterOptions + // for backwards compatibility + ).slow(options.slow).global(options.global); + if (typeof options.timeout !== "undefined") { + this.timeout(options.timeout === false ? 0 : options.timeout); + } + if ("retries" in options) { + this.retries(options.retries); + } + [ + "allowUncaught", + "asyncOnly", + "bail", + "checkLeaks", + "color", + "delay", + "diff", + "dryRun", + "failZero", + "forbidOnly", + "forbidPending", + "fullTrace", + "inlineDiffs", + "invert" + ].forEach(function(opt) { + if (options[opt]) { + this[opt](); + } + }, this); + if (options.rootHooks) { + this.rootHooks(options.rootHooks); + } + this._runnerClass = exports2.Runner; + this._lazyLoadFiles = false; + this.isWorker = Boolean(options.isWorker); + this.globalSetup(options.globalSetup).globalTeardown(options.globalTeardown).enableGlobalSetup(options.enableGlobalSetup).enableGlobalTeardown(options.enableGlobalTeardown); + if (options.parallel && (typeof options.jobs === "undefined" || options.jobs > 1)) { + debug("attempting to enable parallel mode"); + this.parallelMode(true); + } + } + Mocha2.prototype.bail = function(bail) { + this.suite.bail(bail !== false); + return this; + }; + Mocha2.prototype.addFile = function(file) { + this.files.push(file); + return this; + }; + Mocha2.prototype.reporter = function(reporterName, reporterOptions) { + if (typeof reporterName === "function") { + this._reporter = reporterName; + } else { + reporterName = reporterName || "spec"; + var reporter; + if (builtinReporters[reporterName]) { + reporter = builtinReporters[reporterName]; + } + if (!reporter) { + let foundReporter; + try { + foundReporter = require.resolve(reporterName); + reporter = require(foundReporter); + } catch (err) { + if (foundReporter) { + throw createInvalidReporterError(err.message, foundReporter); + } + try { + reporter = require(path4.resolve(reporterName)); + } catch (e) { + throw createInvalidReporterError(e.message, reporterName); + } + } + } + this._reporter = reporter; + } + this.options.reporterOption = reporterOptions; + this.options.reporterOptions = reporterOptions; + return this; + }; + Mocha2.prototype.ui = function(ui) { + var bindInterface; + if (typeof ui === "function") { + bindInterface = ui; + } else { + ui = ui || "bdd"; + bindInterface = exports2.interfaces[ui]; + if (!bindInterface) { + try { + bindInterface = require(ui); + } catch (err) { + throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui); + } + } + } + bindInterface(this.suite); + this.suite.on(EVENT_FILE_PRE_REQUIRE, function(context) { + currentContext = context; + }); + return this; + }; + Mocha2.prototype.loadFiles = function(fn) { + var self2 = this; + var suite = this.suite; + this.files.forEach(function(file) { + file = path4.resolve(file); + suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self2); + suite.emit(EVENT_FILE_REQUIRE, require(file), file, self2); + suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self2); + }); + fn && fn(); + }; + Mocha2.prototype.loadFilesAsync = function({ esmDecorator } = {}) { + var self2 = this; + var suite = this.suite; + this.lazyLoadFiles(true); + return esmUtils.loadFilesAsync( + this.files, + function(file) { + suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self2); + }, + function(file, resultModule) { + suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self2); + suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self2); + }, + esmDecorator + ); + }; + Mocha2.unloadFile = function(file) { + if (utils.isBrowser()) { + throw createUnsupportedError( + "unloadFile() is only supported in a Node.js environment" + ); + } + return require_file_unloader().unloadFile(file); + }; + Mocha2.prototype.unloadFiles = function() { + if (this._state === mochaStates.DISPOSED) { + throw createMochaInstanceAlreadyDisposedError( + "Mocha instance is already disposed, it cannot be used again.", + this._cleanReferencesAfterRun, + this + ); + } + this.files.forEach(function(file) { + Mocha2.unloadFile(file); + }); + this._state = mochaStates.INIT; + return this; + }; + Mocha2.prototype.fgrep = function(str2) { + if (!str2) { + return this; + } + return this.grep(new RegExp(escapeRe(str2))); + }; + Mocha2.prototype.grep = function(re) { + if (utils.isString(re)) { + var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/); + this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); + } else { + this.options.grep = re; + } + return this; + }; + Mocha2.prototype.invert = function() { + this.options.invert = true; + return this; + }; + Mocha2.prototype.checkLeaks = function(checkLeaks) { + this.options.checkLeaks = checkLeaks !== false; + return this; + }; + Mocha2.prototype.cleanReferencesAfterRun = function(cleanReferencesAfterRun) { + this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false; + return this; + }; + Mocha2.prototype.dispose = function() { + if (this._state === mochaStates.RUNNING) { + throw createMochaInstanceAlreadyRunningError( + "Cannot dispose while the mocha instance is still running tests." + ); + } + this.unloadFiles(); + this._previousRunner && this._previousRunner.dispose(); + this.suite.dispose(); + this._state = mochaStates.DISPOSED; + }; + Mocha2.prototype.fullTrace = function(fullTrace) { + this.options.fullTrace = fullTrace !== false; + return this; + }; + Mocha2.prototype.global = function(global2) { + this.options.global = (this.options.global || []).concat(global2).filter(Boolean).filter(function(elt, idx, arr) { + return arr.indexOf(elt) === idx; + }); + return this; + }; + Mocha2.prototype.globals = Mocha2.prototype.global; + Mocha2.prototype.color = function(color) { + this.options.color = color !== false; + return this; + }; + Mocha2.prototype.inlineDiffs = function(inlineDiffs) { + this.options.inlineDiffs = inlineDiffs !== false; + return this; + }; + Mocha2.prototype.diff = function(diff) { + this.options.diff = diff !== false; + return this; + }; + Mocha2.prototype.timeout = function(msecs) { + this.suite.timeout(msecs); + return this; + }; + Mocha2.prototype.retries = function(retry) { + this.suite.retries(retry); + return this; + }; + Mocha2.prototype.slow = function(msecs) { + this.suite.slow(msecs); + return this; + }; + Mocha2.prototype.asyncOnly = function(asyncOnly) { + this.options.asyncOnly = asyncOnly !== false; + return this; + }; + Mocha2.prototype.noHighlighting = function() { + this.options.noHighlighting = true; + return this; + }; + Mocha2.prototype.allowUncaught = function(allowUncaught) { + this.options.allowUncaught = allowUncaught !== false; + return this; + }; + Mocha2.prototype.delay = function delay() { + this.options.delay = true; + return this; + }; + Mocha2.prototype.dryRun = function(dryRun) { + this.options.dryRun = dryRun !== false; + return this; + }; + Mocha2.prototype.failZero = function(failZero) { + this.options.failZero = failZero !== false; + return this; + }; + Mocha2.prototype.forbidOnly = function(forbidOnly) { + this.options.forbidOnly = forbidOnly !== false; + return this; + }; + Mocha2.prototype.forbidPending = function(forbidPending) { + this.options.forbidPending = forbidPending !== false; + return this; + }; + Mocha2.prototype._guardRunningStateTransition = function() { + if (this._state === mochaStates.RUNNING) { + throw createMochaInstanceAlreadyRunningError( + "Mocha instance is currently running tests, cannot start a next test run until this one is done", + this + ); + } + if (this._state === mochaStates.DISPOSED || this._state === mochaStates.REFERENCES_CLEANED) { + throw createMochaInstanceAlreadyDisposedError( + "Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.", + this._cleanReferencesAfterRun, + this + ); + } + }; + Object.defineProperty(Mocha2.prototype, "version", { + value: require_package().version, + configurable: false, + enumerable: true, + writable: false + }); + Mocha2.prototype.run = function(fn) { + this._guardRunningStateTransition(); + this._state = mochaStates.RUNNING; + if (this._previousRunner) { + this._previousRunner.dispose(); + this.suite.reset(); + } + if (this.files.length && !this._lazyLoadFiles) { + this.loadFiles(); + } + var suite = this.suite; + var options = this.options; + options.files = this.files; + const runner = new this._runnerClass(suite, { + cleanReferencesAfterRun: this._cleanReferencesAfterRun, + delay: options.delay, + dryRun: options.dryRun, + failZero: options.failZero + }); + createStatsCollector(runner); + var reporter = new this._reporter(runner, options); + runner.checkLeaks = options.checkLeaks === true; + runner.fullStackTrace = options.fullTrace; + runner.asyncOnly = options.asyncOnly; + runner.allowUncaught = options.allowUncaught; + runner.forbidOnly = options.forbidOnly; + runner.forbidPending = options.forbidPending; + if (options.grep) { + runner.grep(options.grep, options.invert); + } + if (options.global) { + runner.globals(options.global); + } + if (options.color !== void 0) { + exports2.reporters.Base.useColors = options.color; + } + exports2.reporters.Base.inlineDiffs = options.inlineDiffs; + exports2.reporters.Base.hideDiff = !options.diff; + const done = (failures) => { + this._previousRunner = runner; + this._state = this._cleanReferencesAfterRun ? mochaStates.REFERENCES_CLEANED : mochaStates.INIT; + fn = fn || utils.noop; + if (typeof reporter.done === "function") { + reporter.done(failures, fn); + } else { + fn(failures); + } + }; + const runAsync = async (runner2) => { + const context = this.options.enableGlobalSetup && this.hasGlobalSetupFixtures() ? await this.runGlobalSetup(runner2) : {}; + const failureCount = await runner2.runAsync({ + files: this.files, + options + }); + if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) { + await this.runGlobalTeardown(runner2, { context }); + } + return failureCount; + }; + runAsync(runner).then(done); + return runner; + }; + Mocha2.prototype.rootHooks = function rootHooks({ + beforeAll = [], + beforeEach = [], + afterAll = [], + afterEach = [] + } = {}) { + beforeAll = utils.castArray(beforeAll); + beforeEach = utils.castArray(beforeEach); + afterAll = utils.castArray(afterAll); + afterEach = utils.castArray(afterEach); + beforeAll.forEach((hook) => { + this.suite.beforeAll(hook); + }); + beforeEach.forEach((hook) => { + this.suite.beforeEach(hook); + }); + afterAll.forEach((hook) => { + this.suite.afterAll(hook); + }); + afterEach.forEach((hook) => { + this.suite.afterEach(hook); + }); + return this; + }; + Mocha2.prototype.parallelMode = function parallelMode(enable = true) { + if (utils.isBrowser()) { + throw createUnsupportedError("parallel mode is only supported in Node.js"); + } + const parallel = Boolean(enable); + if (parallel === this.options.parallel && this._lazyLoadFiles && this._runnerClass !== exports2.Runner) { + return this; + } + if (this._state !== mochaStates.INIT) { + throw createUnsupportedError( + "cannot change parallel mode after having called run()" + ); + } + this.options.parallel = parallel; + this._runnerClass = parallel ? require_parallel_buffered_runner() : exports2.Runner; + return this.lazyLoadFiles(this._lazyLoadFiles || parallel); + }; + Mocha2.prototype.lazyLoadFiles = function lazyLoadFiles(enable) { + this._lazyLoadFiles = enable === true; + debug("set lazy load to %s", enable); + return this; + }; + Mocha2.prototype.globalSetup = function globalSetup(setupFns = []) { + setupFns = utils.castArray(setupFns); + this.options.globalSetup = setupFns; + debug("configured %d global setup functions", setupFns.length); + return this; + }; + Mocha2.prototype.globalTeardown = function globalTeardown(teardownFns = []) { + teardownFns = utils.castArray(teardownFns); + this.options.globalTeardown = teardownFns; + debug("configured %d global teardown functions", teardownFns.length); + return this; + }; + Mocha2.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) { + const { globalSetup } = this.options; + if (globalSetup && globalSetup.length) { + debug("run(): global setup starting"); + await this._runGlobalFixtures(globalSetup, context); + debug("run(): global setup complete"); + } + return context; + }; + Mocha2.prototype.runGlobalTeardown = async function runGlobalTeardown(context = {}) { + const { globalTeardown } = this.options; + if (globalTeardown && globalTeardown.length) { + debug("run(): global teardown starting"); + await this._runGlobalFixtures(globalTeardown, context); + } + debug("run(): global teardown complete"); + return context; + }; + Mocha2.prototype._runGlobalFixtures = async function _runGlobalFixtures(fixtureFns = [], context = {}) { + for await (const fixtureFn of fixtureFns) { + await fixtureFn.call(context); + } + return context; + }; + Mocha2.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) { + this.options.enableGlobalSetup = Boolean(enabled); + return this; + }; + Mocha2.prototype.enableGlobalTeardown = function enableGlobalTeardown(enabled = true) { + this.options.enableGlobalTeardown = Boolean(enabled); + return this; + }; + Mocha2.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() { + return Boolean(this.options.globalSetup.length); + }; + Mocha2.prototype.hasGlobalTeardownFixtures = function hasGlobalTeardownFixtures() { + return Boolean(this.options.globalTeardown.length); + }; + } +}); + +// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/index.js +var require_mocha2 = __commonJS({ + "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/index.js"(exports2, module2) { + "use strict"; + module2.exports = require_mocha(); + } +}); + +// ../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js +var require_lodash = __commonJS({ + "../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"(exports2, module2) { + (function() { + var undefined2; + var VERSION = "4.17.21"; + var LARGE_ARRAY_SIZE = 200; + var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + var MAX_MEMOIZE_SIZE = 500; + var PLACEHOLDER = "__lodash_placeholder__"; + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; + var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; + var HOT_COUNT = 800, HOT_SPAN = 16; + var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; + var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; + var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + var wrapFlags = [ + ["ary", WRAP_ARY_FLAG], + ["bind", WRAP_BIND_FLAG], + ["bindKey", WRAP_BIND_KEY_FLAG], + ["curry", WRAP_CURRY_FLAG], + ["curryRight", WRAP_CURRY_RIGHT_FLAG], + ["flip", WRAP_FLIP_FLAG], + ["partial", WRAP_PARTIAL_FLAG], + ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], + ["rearg", WRAP_REARG_FLAG] + ]; + var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); + var reTrimStart = /^\s+/; + var reWhitespace = /\s/; + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; + var reEscapeChar = /\\(\\)?/g; + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + var reFlags = /\w*$/; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + var reNoMatch = /($^)/; + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; + var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; + var reApos = RegExp(rsApos, "g"); + var reComboMark = RegExp(rsCombo, "g"); + var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); + var reUnicodeWord = RegExp([ + rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", + rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", + rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, + rsUpper + "+" + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join("|"), "g"); + var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + var contextProps = [ + "Array", + "Buffer", + "DataView", + "Date", + "Error", + "Float32Array", + "Float64Array", + "Function", + "Int8Array", + "Int16Array", + "Int32Array", + "Map", + "Math", + "Object", + "Promise", + "RegExp", + "Set", + "String", + "Symbol", + "TypeError", + "Uint8Array", + "Uint8ClampedArray", + "Uint16Array", + "Uint32Array", + "WeakMap", + "_", + "clearTimeout", + "isFinite", + "parseInt", + "setTimeout" + ]; + var templateCounter = -1; + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + var deburredLetters = { + // Latin-1 Supplement block. + "\xC0": "A", + "\xC1": "A", + "\xC2": "A", + "\xC3": "A", + "\xC4": "A", + "\xC5": "A", + "\xE0": "a", + "\xE1": "a", + "\xE2": "a", + "\xE3": "a", + "\xE4": "a", + "\xE5": "a", + "\xC7": "C", + "\xE7": "c", + "\xD0": "D", + "\xF0": "d", + "\xC8": "E", + "\xC9": "E", + "\xCA": "E", + "\xCB": "E", + "\xE8": "e", + "\xE9": "e", + "\xEA": "e", + "\xEB": "e", + "\xCC": "I", + "\xCD": "I", + "\xCE": "I", + "\xCF": "I", + "\xEC": "i", + "\xED": "i", + "\xEE": "i", + "\xEF": "i", + "\xD1": "N", + "\xF1": "n", + "\xD2": "O", + "\xD3": "O", + "\xD4": "O", + "\xD5": "O", + "\xD6": "O", + "\xD8": "O", + "\xF2": "o", + "\xF3": "o", + "\xF4": "o", + "\xF5": "o", + "\xF6": "o", + "\xF8": "o", + "\xD9": "U", + "\xDA": "U", + "\xDB": "U", + "\xDC": "U", + "\xF9": "u", + "\xFA": "u", + "\xFB": "u", + "\xFC": "u", + "\xDD": "Y", + "\xFD": "y", + "\xFF": "y", + "\xC6": "Ae", + "\xE6": "ae", + "\xDE": "Th", + "\xFE": "th", + "\xDF": "ss", + // Latin Extended-A block. + "\u0100": "A", + "\u0102": "A", + "\u0104": "A", + "\u0101": "a", + "\u0103": "a", + "\u0105": "a", + "\u0106": "C", + "\u0108": "C", + "\u010A": "C", + "\u010C": "C", + "\u0107": "c", + "\u0109": "c", + "\u010B": "c", + "\u010D": "c", + "\u010E": "D", + "\u0110": "D", + "\u010F": "d", + "\u0111": "d", + "\u0112": "E", + "\u0114": "E", + "\u0116": "E", + "\u0118": "E", + "\u011A": "E", + "\u0113": "e", + "\u0115": "e", + "\u0117": "e", + "\u0119": "e", + "\u011B": "e", + "\u011C": "G", + "\u011E": "G", + "\u0120": "G", + "\u0122": "G", + "\u011D": "g", + "\u011F": "g", + "\u0121": "g", + "\u0123": "g", + "\u0124": "H", + "\u0126": "H", + "\u0125": "h", + "\u0127": "h", + "\u0128": "I", + "\u012A": "I", + "\u012C": "I", + "\u012E": "I", + "\u0130": "I", + "\u0129": "i", + "\u012B": "i", + "\u012D": "i", + "\u012F": "i", + "\u0131": "i", + "\u0134": "J", + "\u0135": "j", + "\u0136": "K", + "\u0137": "k", + "\u0138": "k", + "\u0139": "L", + "\u013B": "L", + "\u013D": "L", + "\u013F": "L", + "\u0141": "L", + "\u013A": "l", + "\u013C": "l", + "\u013E": "l", + "\u0140": "l", + "\u0142": "l", + "\u0143": "N", + "\u0145": "N", + "\u0147": "N", + "\u014A": "N", + "\u0144": "n", + "\u0146": "n", + "\u0148": "n", + "\u014B": "n", + "\u014C": "O", + "\u014E": "O", + "\u0150": "O", + "\u014D": "o", + "\u014F": "o", + "\u0151": "o", + "\u0154": "R", + "\u0156": "R", + "\u0158": "R", + "\u0155": "r", + "\u0157": "r", + "\u0159": "r", + "\u015A": "S", + "\u015C": "S", + "\u015E": "S", + "\u0160": "S", + "\u015B": "s", + "\u015D": "s", + "\u015F": "s", + "\u0161": "s", + "\u0162": "T", + "\u0164": "T", + "\u0166": "T", + "\u0163": "t", + "\u0165": "t", + "\u0167": "t", + "\u0168": "U", + "\u016A": "U", + "\u016C": "U", + "\u016E": "U", + "\u0170": "U", + "\u0172": "U", + "\u0169": "u", + "\u016B": "u", + "\u016D": "u", + "\u016F": "u", + "\u0171": "u", + "\u0173": "u", + "\u0174": "W", + "\u0175": "w", + "\u0176": "Y", + "\u0177": "y", + "\u0178": "Y", + "\u0179": "Z", + "\u017B": "Z", + "\u017D": "Z", + "\u017A": "z", + "\u017C": "z", + "\u017E": "z", + "\u0132": "IJ", + "\u0133": "ij", + "\u0152": "Oe", + "\u0153": "oe", + "\u0149": "'n", + "\u017F": "s" + }; + var htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + var htmlUnescapes = { + "&": "&", + "<": "<", + ">": ">", + """: '"', + "'": "'" + }; + var stringEscapes = { + "\\": "\\", + "'": "'", + "\n": "n", + "\r": "r", + "\u2028": "u2028", + "\u2029": "u2029" + }; + var freeParseFloat = parseFloat, freeParseInt = parseInt; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2; + var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; + var moduleExports = freeModule && freeModule.exports === freeExports; + var freeProcess = moduleExports && freeGlobal.process; + var nodeUtil = function() { + try { + var types2 = freeModule && freeModule.require && freeModule.require("util").types; + if (types2) { + return types2; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } + }(); + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + function arrayEvery(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + function arrayPush(array, values2) { + var index = -1, length = values2.length, offset = array.length; + while (++index < length) { + array[offset + index] = values2[index]; + } + return array; + } + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + var asciiSize = baseProperty("length"); + function asciiToArray(string) { + return string.split(""); + } + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection2) { + if (predicate(value, key, collection2)) { + result = key; + return false; + } + }); + return result; + } + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + function baseIsNaN(value) { + return value !== value; + } + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? baseSum(array, iteratee) / length : NAN; + } + function baseProperty(key) { + return function(object) { + return object == null ? undefined2 : object[key]; + }; + } + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined2 : object[key]; + }; + } + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection2) { + accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); + }); + return accumulator; + } + function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + function baseSum(array, iteratee) { + var result, index = -1, length = array.length; + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined2) { + result = result === undefined2 ? current : result + current; + } + } + return result; + } + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; + } + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + function cacheHas(cache, key) { + return cache.has(key); + } + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, length = strSymbols.length; + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function countHolders(array, placeholder) { + var length = array.length, result = 0; + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + var deburrLetter = basePropertyOf(deburredLetters); + var escapeHtmlChar = basePropertyOf(htmlEscapes); + function escapeStringChar(chr) { + return "\\" + stringEscapes[chr]; + } + function getValue(object, key) { + return object == null ? undefined2 : object[key]; + } + function hasUnicode(string) { + return reHasUnicode.test(string); + } + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + function iteratorToArray(iterator) { + var data, result = []; + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + function mapToArray(map2) { + var index = -1, result = Array(map2.size); + map2.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + function replaceHolders(array, placeholder) { + var index = -1, length = array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + function setToArray(set2) { + var index = -1, result = Array(set2.size); + set2.forEach(function(value) { + result[++index] = value; + }); + return result; + } + function setToPairs(set2) { + var index = -1, result = Array(set2.size); + set2.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + function stringSize(string) { + return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); + } + function stringToArray(string) { + return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); + } + function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))) { + } + return index; + } + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + var runInContext = function runInContext2(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; + var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; + var coreJsData = context["__core-js_shared__"]; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var idCounter = 0; + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + var nativeObjectToString = objectProto.toString; + var objectCtorString = funcToString.call(Object2); + var oldDash = root._; + var reIsNative = RegExp2( + "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; + var defineProperty = function() { + try { + var func = getNative(Object2, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + }(); + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; + var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); + var metaMap = WeakMap2 && new WeakMap2(); + var realNames = {}; + var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); + var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, "__wrapped__")) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + var baseCreate = /* @__PURE__ */ function() { + function object() { + } + return function(proto) { + if (!isObject3(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result2 = new object(); + object.prototype = undefined2; + return result2; + }; + }(); + function baseLodash() { + } + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined2; + } + lodash.templateSettings = { + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "escape": reEscape, + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "evaluate": reEvaluate, + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "interpolate": reInterpolate, + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + "variable": "", + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + "imports": { + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + "_": lodash + } + }; + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + function lazyClone() { + var result2 = new LazyWrapper(this.__wrapped__); + result2.__actions__ = copyArray(this.__actions__); + result2.__dir__ = this.__dir__; + result2.__filtered__ = this.__filtered__; + result2.__iteratees__ = copyArray(this.__iteratees__); + result2.__takeCount__ = this.__takeCount__; + result2.__views__ = copyArray(this.__views__); + return result2; + } + function lazyReverse() { + if (this.__filtered__) { + var result2 = new LazyWrapper(this); + result2.__dir__ = -1; + result2.__filtered__ = true; + } else { + result2 = this.clone(); + result2.__dir__ *= -1; + } + return result2; + } + function lazyValue() { + var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); + if (!isArr || !isRight && arrLength == length && takeCount == length) { + return baseWrapperValue(array, this.__actions__); + } + var result2 = []; + outer: + while (length-- && resIndex < takeCount) { + index += dir; + var iterIndex = -1, value = array[index]; + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value); + if (type2 == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type2 == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result2[resIndex++] = value; + } + return result2; + } + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + function hashDelete(key) { + var result2 = this.has(key) && delete this.__data__[key]; + this.size -= result2 ? 1 : 0; + return result2; + } + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result2 = data[key]; + return result2 === HASH_UNDEFINED ? undefined2 : result2; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined2; + } + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); + } + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? undefined2 : data[index][1]; + } + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry2 = entries[index]; + this.set(entry2[0], entry2[1]); + } + } + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map2 || ListCache)(), + "string": new Hash() + }; + } + function mapCacheDelete(key) { + var result2 = getMapData(this, key)["delete"](key); + this.size -= result2 ? 1 : 0; + return result2; + } + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + function mapCacheSet(key, value) { + var data = getMapData(this, key), size2 = data.size; + data.set(key, value); + this.size += data.size == size2 ? 0 : 1; + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function SetCache(values3) { + var index = -1, length = values3 == null ? 0 : values3.length; + this.__data__ = new MapCache(); + while (++index < length) { + this.add(values3[index]); + } + } + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + function setCacheHas(value) { + return this.__data__.has(value); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + function Stack2(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + function stackDelete(key) { + var data = this.__data__, result2 = data["delete"](key); + this.size = data.size; + return result2; + } + function stackGet(key) { + return this.__data__.get(key); + } + function stackHas(key) { + return this.__data__.has(key); + } + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs2 = data.__data__; + if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { + pairs2.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs2); + } + data.set(key, value); + this.size = data.size; + return this; + } + Stack2.prototype.clear = stackClear; + Stack2.prototype["delete"] = stackDelete; + Stack2.prototype.get = stackGet; + Stack2.prototype.has = stackHas; + Stack2.prototype.set = stackSet; + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length)))) { + result2.push(key); + } + } + return result2; + } + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined2; + } + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + function assignMergeValue(object, key, value) { + if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + function baseAggregator(collection, setter, iteratee2, accumulator) { + baseEach(collection, function(value, key, collection2) { + setter(accumulator, value, iteratee2(value), collection2); + }); + return accumulator; + } + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } + } + function baseAt(object, paths) { + var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; + while (++index < length) { + result2[index] = skip ? undefined2 : get2(object, paths[index]); + } + return result2; + } + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined2) { + number = number <= upper ? number : upper; + } + if (lower !== undefined2) { + number = number >= lower ? number : lower; + } + } + return number; + } + function baseClone(value, bitmask, customizer, key, object, stack) { + var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { + result2 = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result2 !== undefined2) { + return result2; + } + if (!isObject3(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result2 = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result2); + } + } else { + var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || isFunc && !object) { + result2 = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result2 = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack2()); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result2); + if (isSet(value)) { + value.forEach(function(subValue) { + result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key2) { + result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + } + var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; + var props = isArr ? undefined2 : keysFunc(value); + arrayEach(props || value, function(subValue, key2) { + if (props) { + key2 = subValue; + subValue = value[key2]; + } + assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + return result2; + } + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object2(object); + while (length--) { + var key = props[length], predicate = source[key], value = object[key]; + if (value === undefined2 && !(key in object) || !predicate(value)) { + return false; + } + } + return true; + } + function baseDelay(func, wait, args) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return setTimeout2(function() { + func.apply(undefined2, args); + }, wait); + } + function baseDifference(array, values3, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values3.length; + if (!length) { + return result2; + } + if (iteratee2) { + values3 = arrayMap(values3, baseUnary(iteratee2)); + } + if (comparator) { + includes2 = arrayIncludesWith; + isCommon = false; + } else if (values3.length >= LARGE_ARRAY_SIZE) { + includes2 = cacheHas; + isCommon = false; + values3 = new SetCache(values3); + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values3[valuesIndex] === computed) { + continue outer; + } + } + result2.push(value); + } else if (!includes2(values3, computed, comparator)) { + result2.push(value); + } + } + return result2; + } + var baseEach = createBaseEach(baseForOwn); + var baseEachRight = createBaseEach(baseForOwnRight, true); + function baseEvery(collection, predicate) { + var result2 = true; + baseEach(collection, function(value, index, collection2) { + result2 = !!predicate(value, index, collection2); + return result2; + }); + return result2; + } + function baseExtremum(array, iteratee2, comparator) { + var index = -1, length = array.length; + while (++index < length) { + var value = array[index], current = iteratee2(value); + if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { + var computed = current, result2 = value; + } + } + return result2; + } + function baseFill(array, value, start, end) { + var length = array.length; + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end === undefined2 || end > length ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + function baseFilter(collection, predicate) { + var result2 = []; + baseEach(collection, function(value, index, collection2) { + if (predicate(value, index, collection2)) { + result2.push(value); + } + }); + return result2; + } + function baseFlatten(array, depth, predicate, isStrict, result2) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result2 || (result2 = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + baseFlatten(value, depth - 1, predicate, isStrict, result2); + } else { + arrayPush(result2, value); + } + } else if (!isStrict) { + result2[result2.length] = value; + } + } + return result2; + } + var baseFor = createBaseFor(); + var baseForRight = createBaseFor(true); + function baseForOwn(object, iteratee2) { + return object && baseFor(object, iteratee2, keys); + } + function baseForOwnRight(object, iteratee2) { + return object && baseForRight(object, iteratee2, keys); + } + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + function baseGet(object, path4) { + path4 = castPath(path4, object); + var index = 0, length = path4.length; + while (object != null && index < length) { + object = object[toKey(path4[index++])]; + } + return index && index == length ? object : undefined2; + } + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result2 = keysFunc(object); + return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); + } + function baseGetTag(value) { + if (value == null) { + return value === undefined2 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); + } + function baseGt(value, other) { + return value > other; + } + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + function baseHasIn(object, key) { + return object != null && key in Object2(object); + } + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + function baseIntersection(arrays, iteratee2, comparator) { + var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee2) { + array = arrayMap(array, baseUnary(iteratee2)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; + } + array = arrays[0]; + var index = -1, seen = caches[0]; + outer: + while (++index < length && result2.length < maxLength) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseInverter(object, setter, iteratee2, accumulator) { + baseForOwn(object, function(value, key, object2) { + setter(accumulator, iteratee2(value), key, object2); + }); + return accumulator; + } + function baseInvoke(object, path4, args) { + path4 = castPath(path4, object); + object = parent(object, path4); + var func = object == null ? object : object[toKey(last(path4))]; + return func == null ? undefined2 : apply(func, object, args); + } + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack2()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack2()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack2()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object2(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === undefined2 && !(key in object)) { + return false; + } + } else { + var stack = new Stack2(); + if (customizer) { + var result2 = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { + return false; + } + } + } + return true; + } + function baseIsNative(value) { + if (!isObject3(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + function baseIteratee(value) { + if (typeof value == "function") { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == "object") { + return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + } + return property(value); + } + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result2 = []; + for (var key in Object2(object)) { + if (hasOwnProperty.call(object, key) && key != "constructor") { + result2.push(key); + } + } + return result2; + } + function baseKeysIn(object) { + if (!isObject3(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), result2 = []; + for (var key in object) { + if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { + result2.push(key); + } + } + return result2; + } + function baseLt(value, other) { + return value < other; + } + function baseMap(collection, iteratee2) { + var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value, key, collection2) { + result2[++index] = iteratee2(value, key, collection2); + }); + return result2; + } + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + function baseMatchesProperty(path4, srcValue) { + if (isKey(path4) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path4), srcValue); + } + return function(object) { + var objValue = get2(object, path4); + return objValue === undefined2 && objValue === srcValue ? hasIn(object, path4) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack2()); + if (isObject3(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; + if (newValue === undefined2) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; + var isCommon = newValue === undefined2; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject2(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject3(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined2; + } + function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee2) { + if (isArray(iteratee2)) { + return function(value) { + return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); + }; + } + return iteratee2; + }); + } else { + iteratees = [identity]; + } + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + var result2 = baseMap(collection, function(value, key, collection2) { + var criteria = arrayMap(iteratees, function(iteratee2) { + return iteratee2(value); + }); + return { "criteria": criteria, "index": ++index, "value": value }; + }); + return baseSortBy(result2, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path4) { + return hasIn(object, path4); + }); + } + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result2 = {}; + while (++index < length) { + var path4 = paths[index], value = baseGet(object, path4); + if (predicate(value, path4)) { + baseSet(result2, castPath(path4, object), value); + } + } + return result2; + } + function basePropertyDeep(path4) { + return function(object) { + return baseGet(object, path4); + }; + } + function basePullAll(array, values3, iteratee2, comparator) { + var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values3.length, seen = array; + if (array === values3) { + values3 = copyArray(values3); + } + if (iteratee2) { + seen = arrayMap(array, baseUnary(iteratee2)); + } + while (++index < length) { + var fromIndex = 0, value = values3[index], computed = iteratee2 ? iteratee2(value) : value; + while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, lastIndex = length - 1; + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + function baseRange(start, end, step, fromRight) { + var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); + while (length--) { + result2[fromRight ? length : ++index] = start; + start += step; + } + return result2; + } + function baseRepeat(string, n) { + var result2 = ""; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result2; + } + do { + if (n % 2) { + result2 += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + return result2; + } + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ""); + } + function baseSample(collection) { + return arraySample(values2(collection)); + } + function baseSampleSize(collection, n) { + var array = values2(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + function baseSet(object, path4, value, customizer) { + if (!isObject3(object)) { + return object; + } + path4 = castPath(path4, object); + var index = -1, length = path4.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path4[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined2; + if (newValue === undefined2) { + newValue = isObject3(objValue) ? objValue : isIndex(path4[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); + }; + function baseShuffle(collection) { + return shuffleSelf(values2(collection)); + } + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result2 = Array2(length); + while (++index < length) { + result2[index] = array[index + start]; + } + return result2; + } + function baseSome(collection, predicate) { + var result2; + baseEach(collection, function(value, index, collection2) { + result2 = predicate(value, index, collection2); + return !result2; + }); + return !!result2; + } + function baseSortedIndex(array, value, retHighest) { + var low = 0, high = array == null ? low : array.length; + if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = low + high >>> 1, computed = array[mid]; + if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + function baseSortedIndexBy(array, value, iteratee2, retHighest) { + var low = 0, high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + value = iteratee2(value); + var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; + while (low < high) { + var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? computed <= value : computed < value; + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + function baseSortedUniq(array, iteratee2) { + var index = -1, length = array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + if (!index || !eq(computed, seen)) { + var seen = computed; + result2[resIndex++] = value === 0 ? 0 : value; + } + } + return result2; + } + function baseToNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function baseUniq(array, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; + if (comparator) { + isCommon = false; + includes2 = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set3 = iteratee2 ? null : createSet(array); + if (set3) { + return setToArray(set3); + } + isCommon = false; + includes2 = cacheHas; + seen = new SetCache(); + } else { + seen = iteratee2 ? [] : result2; + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee2) { + seen.push(computed); + } + result2.push(value); + } else if (!includes2(seen, computed, comparator)) { + if (seen !== result2) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseUnset(object, path4) { + path4 = castPath(path4, object); + object = parent(object, path4); + return object == null || delete object[toKey(last(path4))]; + } + function baseUpdate(object, path4, updater, customizer) { + return baseSet(object, path4, updater(baseGet(object, path4)), customizer); + } + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, index = fromRight ? length : -1; + while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { + } + return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); + } + function baseWrapperValue(value, actions) { + var result2 = value; + if (result2 instanceof LazyWrapper) { + result2 = result2.value(); + } + return arrayReduce(actions, function(result3, action) { + return action.func.apply(action.thisArg, arrayPush([result3], action.args)); + }, result2); + } + function baseXor(arrays, iteratee2, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, result2 = Array2(length); + while (++index < length) { + var array = arrays[index], othIndex = -1; + while (++othIndex < length) { + if (othIndex != index) { + result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); + } + } + } + return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); + } + function baseZipObject(props, values3, assignFunc) { + var index = -1, length = props.length, valsLength = values3.length, result2 = {}; + while (++index < length) { + var value = index < valsLength ? values3[index] : undefined2; + assignFunc(result2, props[index], value); + } + return result2; + } + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + function castFunction(value) { + return typeof value == "function" ? value : identity; + } + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString2(value)); + } + var castRest = baseRest; + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined2 ? length : end; + return !start && end >= length ? array : baseSlice(array, start, end); + } + var clearTimeout2 = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result2); + return result2; + } + function cloneArrayBuffer(arrayBuffer) { + var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); + return result2; + } + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + function cloneRegExp(regexp) { + var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result2.lastIndex = regexp.lastIndex; + return result2; + } + function cloneSymbol(symbol) { + return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; + } + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); + var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; + } + function compareMultiple(object, other, orders) { + var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; + while (++index < length) { + var result2 = compareAscending(objCriteria[index], othCriteria[index]); + if (result2) { + if (index >= ordersLength) { + return result2; + } + var order = orders[index]; + return result2 * (order == "desc" ? -1 : 1); + } + } + return object.index - other.index; + } + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; + while (++leftIndex < leftLength) { + result2[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result2[leftIndex++] = args[argsIndex++]; + } + return result2; + } + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; + while (++argsIndex < rangeLength) { + result2[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result2[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result2; + } + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array2(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; + if (newValue === undefined2) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + function createAggregator(setter, initializer) { + return function(collection, iteratee2) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; + return func(collection, setter, getIteratee(iteratee2, 2), accumulator); + }; + } + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined2 : customizer; + length = 1; + } + object = Object2(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee2) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee2); + } + var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee2(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + function createBaseFor(fromRight) { + return function(object, iteratee2, keysFunc) { + var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee2(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + function createCaseFirst(methodName) { + return function(string) { + string = toString2(string); + var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; + var chr = strSymbols ? strSymbols[0] : string.charAt(0); + var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); + return chr[methodName]() + trailing; + }; + } + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); + }; + } + function createCtor(Ctor) { + return function() { + var args = arguments; + switch (args.length) { + case 0: + return new Ctor(); + case 1: + return new Ctor(args[0]); + case 2: + return new Ctor(args[0], args[1]); + case 3: + return new Ctor(args[0], args[1], args[2]); + case 4: + return new Ctor(args[0], args[1], args[2], args[3]); + case 5: + return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); + return isObject3(result2) ? result2 : thisBinding; + }; + } + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); + while (index--) { + args[index] = arguments[index]; + } + var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); + length -= holders.length; + if (length < arity) { + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + undefined2, + args, + holders, + undefined2, + undefined2, + arity - length + ); + } + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object2(collection); + if (!isArrayLike(collection)) { + var iteratee2 = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { + return iteratee2(iterable[key], key, iterable); + }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; + }; + } + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == "wrapper") { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; + if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); + } + } + return function() { + var args = arguments, value = args[0]; + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; + while (++index2 < length) { + result2 = funcs[index2].call(this, result2); + } + return result2; + }; + }); + } + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length; + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + thisArg, + args, + newHolders, + argPos, + ary2, + arity - length + ); + } + var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary2 < length) { + args.length = ary2; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + function createInverter(setter, toIteratee) { + return function(object, iteratee2) { + return baseInverter(object, setter, toIteratee(iteratee2), {}); + }; + } + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result2; + if (value === undefined2 && other === undefined2) { + return defaultValue; + } + if (value !== undefined2) { + result2 = value; + } + if (other !== undefined2) { + if (result2 === undefined2) { + return other; + } + if (typeof value == "string" || typeof other == "string") { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result2 = operator(value, other); + } + return result2; + }; + } + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee2) { + return apply(iteratee2, thisArg, args); + }); + }); + }); + } + function createPadding(length, chars) { + chars = chars === undefined2 ? " " : baseToString(chars); + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); + } + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != "number" && isIterateeCall(start, end, step)) { + end = step = undefined2; + } + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == "string" && typeof other == "string")) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; + bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, + bitmask, + thisArg, + newPartials, + newHolders, + newPartialsRight, + newHoldersRight, + argPos, + ary2, + arity + ]; + var result2 = wrapFunc.apply(undefined2, newData); + if (isLaziable(func)) { + setData(result2, newData); + } + result2.placeholder = placeholder; + return setWrapToString(result2, func, bitmask); + } + function createRound(methodName) { + var func = Math2[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + var pair = (toString2(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); + pair = (toString2(value) + "e").split("e"); + return +(pair[0] + "e" + (+pair[1] - precision)); + } + return func(number); + }; + } + var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values3) { + return new Set2(values3); + }; + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined2; + } + ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); + arity = arity === undefined2 ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, holdersRight = holders; + partials = holders = undefined2; + } + var data = isBindKey ? undefined2 : getData(func); + var newData = [ + func, + bitmask, + thisArg, + partials, + holders, + partialsRight, + holdersRight, + argPos, + ary2, + arity + ]; + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result2 = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result2 = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result2 = createPartial(func, bitmask, thisArg, partials); + } else { + result2 = createHybrid.apply(undefined2, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result2, newData), func, bitmask); + } + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { + return srcValue; + } + return objValue; + } + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject3(objValue) && isObject3(srcValue)) { + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); + stack["delete"](srcValue); + } + return objValue; + } + function customOmitClone(value) { + return isPlainObject2(value) ? undefined2 : value; + } + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined2) { + if (compared) { + continue; + } + result2 = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result2 = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result2 = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result2; + } + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + stack.set(object, other); + var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result2; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result2 = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result2 = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result2 && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result2 = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result2; + } + function flatRest(func) { + return setToString(overRest(func, undefined2, flatten2), func + ""); + } + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + function getFuncName(func) { + var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; + while (length--) { + var data = array[length], otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result2; + } + function getHolder(func) { + var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; + return object.placeholder; + } + function getIteratee() { + var result2 = lodash.iteratee || iteratee; + result2 = result2 === iteratee ? baseIteratee : result2; + return arguments.length ? result2(arguments[0], arguments[1]) : result2; + } + function getMapData(map3, key) { + var data = map3.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + function getMatchData(object) { + var result2 = keys(object), length = result2.length; + while (length--) { + var key = result2[length], value = object[key]; + result2[length] = [key, value, isStrictComparable(value)]; + } + return result2; + } + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined2; + } + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; + try { + value[symToStringTag] = undefined2; + var unmasked = true; + } catch (e) { + } + var result2 = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result2; + } + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object2(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result2 = []; + while (object) { + arrayPush(result2, getSymbols(object)); + object = getPrototype(object); + } + return result2; + }; + var getTag = baseGetTag; + if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { + getTag = function(value) { + var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; + case mapCtorString: + return mapTag; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag; + case weakMapCtorString: + return weakMapTag; + } + } + return result2; + }; + } + function getView(start, end, transforms) { + var index = -1, length = transforms.length; + while (++index < length) { + var data = transforms[index], size2 = data.size; + switch (data.type) { + case "drop": + start += size2; + break; + case "dropRight": + end -= size2; + break; + case "take": + end = nativeMin(end, start + size2); + break; + case "takeRight": + start = nativeMax(start, end - size2); + break; + } + } + return { "start": start, "end": end }; + } + function getWrapDetails(source) { + var match2 = source.match(reWrapDetails); + return match2 ? match2[1].split(reSplitDetails) : []; + } + function hasPath(object, path4, hasFunc) { + path4 = castPath(path4, object); + var index = -1, length = path4.length, result2 = false; + while (++index < length) { + var key = toKey(path4[index]); + if (!(result2 = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result2 || ++index != length) { + return result2; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + function initCloneArray(array) { + var length = array.length, result2 = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { + result2.index = array.index; + result2.input = array.input; + } + return result2; + } + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + case boolTag: + case dateTag: + return new Ctor(+object); + case dataViewTag: + return cloneDataView(object, isDeep); + case float32Tag: + case float64Tag: + case int8Tag: + case int16Tag: + case int32Tag: + case uint8Tag: + case uint8ClampedTag: + case uint16Tag: + case uint32Tag: + return cloneTypedArray(object, isDeep); + case mapTag: + return new Ctor(); + case numberTag: + case stringTag: + return new Ctor(object); + case regexpTag: + return cloneRegExp(object); + case setTag: + return new Ctor(); + case symbolTag: + return cloneSymbol(object); + } + } + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; + details = details.join(length > 2 ? ", " : " "); + return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); + } + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + function isIndex(value, length) { + var type2 = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + function isIterateeCall(value, index, object) { + if (!isObject3(object)) { + return false; + } + var type2 = typeof index; + if (type2 == "number" ? isArrayLike(object) && isIndex(index, object.length) : type2 == "string" && index in object) { + return eq(object[index], value); + } + return false; + } + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type2 = typeof value; + if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); + } + function isKeyable(value) { + var type2 = typeof value; + return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null; + } + function isLaziable(func) { + var funcName = getFuncName(func), other = lodash[funcName]; + if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + var isMaskable = coreJsData ? isFunction : stubFalse; + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + function isStrictComparable(value) { + return value === value && !isObject3(value); + } + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); + }; + } + function memoizeCapped(func) { + var result2 = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result2.cache; + return result2; + } + function mergeData(data, source) { + var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; + if (!(isCommon || isCombo)) { + return data; + } + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + value = source[7]; + if (value) { + data[7] = value; + } + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + if (data[9] == null) { + data[9] = source[9]; + } + data[0] = source[0]; + data[1] = newBitmask; + return data; + } + function nativeKeysIn(object) { + var result2 = []; + if (object != null) { + for (var key in Object2(object)) { + result2.push(key); + } + } + return result2; + } + function objectToString(value) { + return nativeObjectToString.call(value); + } + function overRest(func, start, transform2) { + start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array2(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform2(array); + return apply(func, this, otherArgs); + }; + } + function parent(object, path4) { + return path4.length < 2 ? object : baseGet(object, baseSlice(path4, 0, -1)); + } + function reorder(array, indexes) { + var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; + } + return array; + } + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object[key]; + } + var setData = shortOut(baseSetData); + var setTimeout2 = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + var setToString = shortOut(baseSetToString); + function setWrapToString(wrapper, reference, bitmask) { + var source = reference + ""; + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined2, arguments); + }; + } + function shuffleSelf(array, size2) { + var index = -1, length = array.length, lastIndex = length - 1; + size2 = size2 === undefined2 ? length : size2; + while (++index < size2) { + var rand = baseRandom(index, lastIndex), value = array[rand]; + array[rand] = array[index]; + array[index] = value; + } + array.length = size2; + return array; + } + var stringToPath = memoizeCapped(function(string) { + var result2 = []; + if (string.charCodeAt(0) === 46) { + result2.push(""); + } + string.replace(rePropName, function(match2, number, quote, subString) { + result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match2); + }); + return result2; + }); + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; + } + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = "_." + pair[0]; + if (bitmask & pair[1] && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result2.__actions__ = copyArray(wrapper.__actions__); + result2.__index__ = wrapper.__index__; + result2.__values__ = wrapper.__values__; + return result2; + } + function chunk(array, size2, guard) { + if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { + size2 = 1; + } else { + size2 = nativeMax(toInteger(size2), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size2 < 1) { + return []; + } + var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); + while (index < length) { + result2[resIndex++] = baseSlice(array, index, index += size2); + } + return result2; + } + function compact(array) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index]; + if (value) { + result2[resIndex++] = value; + } + } + return result2; + } + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array2(length - 1), array = arguments[0], index = length; + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + var difference = baseRest(function(array, values3) { + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true)) : []; + }); + var differenceBy = baseRest(function(array, values3) { + var iteratee2 = last(values3); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; + }); + var differenceWith = baseRest(function(array, values3) { + var comparator = last(values3); + if (isArrayLikeObject(comparator)) { + comparator = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), undefined2, comparator) : []; + }); + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function dropRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; + } + function dropWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; + } + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != "number" && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + function flatten2(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + function fromPairs(pairs2) { + var index = -1, length = pairs2 == null ? 0 : pairs2.length, result2 = {}; + while (++index < length) { + var pair = pairs2[index]; + result2[pair[0]] = pair[1]; + } + return result2; + } + function head(array) { + return array && array.length ? array[0] : undefined2; + } + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; + }); + var intersectionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + if (iteratee2 === last(mapped)) { + iteratee2 = undefined2; + } else { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; + }); + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + comparator = typeof comparator == "function" ? comparator : undefined2; + if (comparator) { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; + }); + function join3(array, separator) { + return array == null ? "" : nativeJoin.call(array, separator); + } + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined2; + } + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); + } + function nth(array, n) { + return array && array.length ? baseNth(array, toInteger(n)) : undefined2; + } + var pull3 = baseRest(pullAll); + function pullAll(array, values3) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3) : array; + } + function pullAllBy(array, values3, iteratee2) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3, getIteratee(iteratee2, 2)) : array; + } + function pullAllWith(array, values3, comparator) { + return array && array.length && values3 && values3.length ? basePullAll(array, values3, undefined2, comparator) : array; + } + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + return result2; + }); + function remove(array, predicate) { + var result2 = []; + if (!(array && array.length)) { + return result2; + } + var index = -1, indexes = [], length = array.length; + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result2.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result2; + } + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != "number" && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } else { + start = start == null ? 0 : toInteger(start); + end = end === undefined2 ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + function sortedIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); + } + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + function sortedLastIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); + } + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedUniq(array) { + return array && array.length ? baseSortedUniq(array) : []; + } + function sortedUniqBy(array, iteratee2) { + return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; + } + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + function takeRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; + } + function takeWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; + } + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + var unionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); + }); + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); + }); + function uniq(array) { + return array && array.length ? baseUniq(array) : []; + } + function uniqBy(array, iteratee2) { + return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; + } + function uniqWith2(array, comparator) { + comparator = typeof comparator == "function" ? comparator : undefined2; + return array && array.length ? baseUniq(array, undefined2, comparator) : []; + } + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + function unzipWith(array, iteratee2) { + if (!(array && array.length)) { + return []; + } + var result2 = unzip(array); + if (iteratee2 == null) { + return result2; + } + return arrayMap(result2, function(group) { + return apply(iteratee2, undefined2, group); + }); + } + var without = baseRest(function(array, values3) { + return isArrayLikeObject(array) ? baseDifference(array, values3) : []; + }); + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + var xorBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); + }); + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); + }); + var zip = baseRest(unzip); + function zipObject(props, values3) { + return baseZipObject(props || [], values3 || [], assignValue); + } + function zipObjectDeep(props, values3) { + return baseZipObject(props || [], values3 || [], baseSet); + } + var zipWith = baseRest(function(arrays) { + var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; + iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; + return unzipWith(arrays, iteratee2); + }); + function chain(value) { + var result2 = lodash(value); + result2.__chain__ = true; + return result2; + } + function tap(value, interceptor) { + interceptor(value); + return value; + } + function thru(value, interceptor) { + return interceptor(value); + } + var wrapperAt = flatRest(function(paths) { + var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { + return baseAt(object, paths); + }; + if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + "func": thru, + "args": [interceptor], + "thisArg": undefined2 + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined2); + } + return array; + }); + }); + function wrapperChain() { + return chain(this); + } + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + function wrapperNext() { + if (this.__values__ === undefined2) { + this.__values__ = toArray2(this.value()); + } + var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; + return { "done": done, "value": value }; + } + function wrapperToIterator() { + return this; + } + function wrapperPlant(value) { + var result2, parent2 = this; + while (parent2 instanceof baseLodash) { + var clone2 = wrapperClone(parent2); + clone2.__index__ = 0; + clone2.__values__ = undefined2; + if (result2) { + previous.__wrapped__ = clone2; + } else { + result2 = clone2; + } + var previous = clone2; + parent2 = parent2.__wrapped__; + } + previous.__wrapped__ = value; + return result2; + } + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + "func": thru, + "args": [reverse], + "thisArg": undefined2 + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + var countBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + ++result2[key]; + } else { + baseAssignValue(result2, key, 1); + } + }); + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + function filter2(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + var find = createFind(findIndex); + var findLast = createFind(findLastIndex); + function flatMap(collection, iteratee2) { + return baseFlatten(map2(collection, iteratee2), 1); + } + function flatMapDeep(collection, iteratee2) { + return baseFlatten(map2(collection, iteratee2), INFINITY); + } + function flatMapDepth(collection, iteratee2, depth) { + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(map2(collection, iteratee2), depth); + } + function forEach(collection, iteratee2) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee2, 3)); + } + function forEachRight(collection, iteratee2) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee2, 3)); + } + var groupBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + result2[key].push(value); + } else { + baseAssignValue(result2, key, [value]); + } + }); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values2(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + var invokeMap = baseRest(function(collection, path4, args) { + var index = -1, isFunc = typeof path4 == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value) { + result2[++index] = isFunc ? apply(path4, value, args) : baseInvoke(value, path4, args); + }); + return result2; + }); + var keyBy = createAggregator(function(result2, value, key) { + baseAssignValue(result2, key, value); + }); + function map2(collection, iteratee2) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee2, 3)); + } + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined2 : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + var partition = createAggregator(function(result2, value, key) { + result2[key ? 0 : 1].push(value); + }, function() { + return [[], []]; + }); + function reduce(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); + } + function reduceRight(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); + } + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + function sampleSize(collection, n, guard) { + if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString2(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + var now = ctxNow || function() { + return root.Date.now(); + }; + function after(n, func) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + function ary(func, n, guard) { + n = guard ? undefined2 : n; + n = func && n == null ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); + } + function before(n, func) { + var result2; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result2 = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined2; + } + return result2; + }; + } + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + function curry(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curry.placeholder; + return result2; + } + function curryRight(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curryRight.placeholder; + return result2; + } + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject3(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = undefined2; + lastInvokeTime = time; + result2 = func.apply(thisArg, args); + return result2; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout2(timerExpired, wait); + return leading ? invokeFunc(time) : result2; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout2(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = undefined2; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined2; + return result2; + } + function cancel() { + if (timerId !== undefined2) { + clearTimeout2(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined2; + } + function flush() { + return timerId === undefined2 ? result2 : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined2) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout2(timerId); + timerId = setTimeout2(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined2) { + timerId = setTimeout2(timerExpired, wait); + } + return result2; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + var defer2 = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result2 = func.apply(this, args); + memoized.cache = cache.set(key, result2) || cache; + return result2; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + memoize.Cache = MapCache; + function negate(predicate) { + if (typeof predicate != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: + return !predicate.call(this); + case 1: + return !predicate.call(this, args[0]); + case 2: + return !predicate.call(this, args[0], args[1]); + case 3: + return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + function once(func) { + return before(2, func); + } + var overArgs = castRest(function(func, transforms) { + transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, length = nativeMin(args.length, funcsLength); + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); + }); + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); + }); + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); + }); + function rest(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start === undefined2 ? start : toInteger(start); + return baseRest(func, start); + } + function spread(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], otherArgs = castSlice(args, 0, start); + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (isObject3(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + function unary(func) { + return ary(func, 1); + } + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + function cloneWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + function eq(value, other) { + return value === other || value !== value && other !== other; + } + var gt = createRelationalOperation(baseGt); + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + var isArguments = baseIsArguments(/* @__PURE__ */ function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + var isArray = Array2.isArray; + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + function isBoolean2(value) { + return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; + } + var isBuffer = nativeIsBuffer || stubFalse; + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject2(value); + } + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + function isEqual(value, other) { + return baseIsEqual(value, other); + } + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + var result2 = customizer ? customizer(value, other) : undefined2; + return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; + } + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject2(value); + } + function isFinite2(value) { + return typeof value == "number" && nativeIsFinite(value); + } + function isFunction(value) { + if (!isObject3(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + function isInteger2(value) { + return typeof value == "number" && value == toInteger(value); + } + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + function isObject3(value) { + var type2 = typeof value; + return value != null && (type2 == "object" || type2 == "function"); + } + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + function isNaN2(value) { + return isNumber(value) && value != +value; + } + function isNative(value) { + if (isMaskable(value)) { + throw new Error2(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + function isNull2(value) { + return value === null; + } + function isNil(value) { + return value == null; + } + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; + } + function isPlainObject2(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + function isSafeInteger(value) { + return isInteger2(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + function isString2(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; + } + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; + } + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + function isUndefined(value) { + return value === undefined2; + } + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + var lt = createRelationalOperation(baseLt); + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + function toArray2(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString2(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values2; + return func(value); + } + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + function toInteger(value) { + var result2 = toFinite(value), remainder = result2 % 1; + return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; + } + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject3(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject3(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary2 = reIsBinary.test(value); + return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + function toSafeInteger(value) { + return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; + } + function toString2(value) { + return value == null ? "" : baseToString(value); + } + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + var at = flatRest(baseAt); + function create(prototype, properties) { + var result2 = baseCreate(prototype); + return properties == null ? result2 : baseAssign(result2, properties); + } + var defaults2 = baseRest(function(object, sources) { + object = Object2(object); + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { + object[key] = source[key]; + } + } + } + return object; + }); + var defaultsDeep = baseRest(function(args) { + args.push(undefined2, customDefaultsMerge); + return apply(mergeWith, undefined2, args); + }); + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + function forIn(object, iteratee2) { + return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); + } + function forInRight(object, iteratee2) { + return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); + } + function forOwn(object, iteratee2) { + return object && baseForOwn(object, getIteratee(iteratee2, 3)); + } + function forOwnRight(object, iteratee2) { + return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); + } + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + function get2(object, path4, defaultValue) { + var result2 = object == null ? undefined2 : baseGet(object, path4); + return result2 === undefined2 ? defaultValue : result2; + } + function has(object, path4) { + return object != null && hasPath(object, path4, baseHas); + } + function hasIn(object, path4) { + return object != null && hasPath(object, path4, baseHasIn); + } + var invert = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + result2[value] = key; + }, constant(identity)); + var invertBy = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + if (hasOwnProperty.call(result2, value)) { + result2[value].push(key); + } else { + result2[value] = [key]; + } + }, getIteratee); + var invoke = baseRest(baseInvoke); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + function mapKeys(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, iteratee2(value, key, object2), value); + }); + return result2; + } + function mapValues(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, key, iteratee2(value, key, object2)); + }); + return result2; + } + var merge2 = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + var omit = flatRest(function(object, paths) { + var result2 = {}; + if (object == null) { + return result2; + } + var isDeep = false; + paths = arrayMap(paths, function(path4) { + path4 = castPath(path4, object); + isDeep || (isDeep = path4.length > 1); + return path4; + }); + copyObject(object, getAllKeysIn(object), result2); + if (isDeep) { + result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result2, paths[length]); + } + return result2; + }); + function omitBy(object, predicate) { + return pickBy2(object, negate(getIteratee(predicate))); + } + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + function pickBy2(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path4) { + return predicate(value, path4[0]); + }); + } + function result(object, path4, defaultValue) { + path4 = castPath(path4, object); + var index = -1, length = path4.length; + if (!length) { + length = 1; + object = undefined2; + } + while (++index < length) { + var value = object == null ? undefined2 : object[toKey(path4[index])]; + if (value === undefined2) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + function set2(object, path4, value) { + return object == null ? object : baseSet(object, path4, value); + } + function setWith(object, path4, value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseSet(object, path4, value, customizer); + } + var toPairs = createToPairs(keys); + var toPairsIn = createToPairs(keysIn); + function transform(object, iteratee2, accumulator) { + var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); + iteratee2 = getIteratee(iteratee2, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor() : []; + } else if (isObject3(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { + return iteratee2(accumulator, value, index, object2); + }); + return accumulator; + } + function unset(object, path4) { + return object == null ? true : baseUnset(object, path4); + } + function update(object, path4, updater) { + return object == null ? object : baseUpdate(object, path4, castFunction(updater)); + } + function updateWith(object, path4, updater, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseUpdate(object, path4, castFunction(updater), customizer); + } + function values2(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + function clamp(number, lower, upper) { + if (upper === undefined2) { + upper = lower; + lower = undefined2; + } + if (upper !== undefined2) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined2) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + function random(lower, upper, floating) { + if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined2; + } + if (floating === undefined2) { + if (typeof upper == "boolean") { + floating = upper; + upper = undefined2; + } else if (typeof lower == "boolean") { + floating = lower; + lower = undefined2; + } + } + if (lower === undefined2 && upper === undefined2) { + lower = 0; + upper = 1; + } else { + lower = toFinite(lower); + if (upper === undefined2) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); + } + return baseRandom(lower, upper); + } + var camelCase = createCompounder(function(result2, word, index) { + word = word.toLowerCase(); + return result2 + (index ? capitalize(word) : word); + }); + function capitalize(string) { + return upperFirst(toString2(string).toLowerCase()); + } + function deburr(string) { + string = toString2(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); + } + function endsWith(string, target, position) { + string = toString2(string); + target = baseToString(target); + var length = string.length; + position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + function escape2(string) { + string = toString2(string); + return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; + } + function escapeRegExp(string) { + string = toString2(string); + return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; + } + var kebabCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "-" : "") + word.toLowerCase(); + }); + var lowerCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toLowerCase(); + }); + var lowerFirst = createCaseFirst("toLowerCase"); + function pad(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); + } + function padEnd(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? string + createPadding(length - strLength, chars) : string; + } + function padStart2(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? createPadding(length - strLength, chars) + string : string; + } + function parseInt2(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString2(string).replace(reTrimStart, ""), radix || 0); + } + function repeat2(string, n, guard) { + if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString2(string), n); + } + function replace() { + var args = arguments, string = toString2(args[0]); + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + var snakeCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "_" : "") + word.toLowerCase(); + }); + function split(string, separator, limit) { + if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { + separator = limit = undefined2; + } + limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString2(string); + if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + var startCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + upperFirst(word); + }); + function startsWith(string, target, position) { + string = toString2(string); + position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + function template(string, options, guard) { + var settings = lodash.templateSettings; + if (guard && isIterateeCall(string, options, guard)) { + options = undefined2; + } + string = toString2(string); + options = assignInWith({}, options, settings, customDefaultsAssignIn); + var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); + var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; + var reDelimiters = RegExp2( + (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", + "g" + ); + var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; + string.replace(reDelimiters, function(match2, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { + interpolateValue || (interpolateValue = esTemplateValue); + source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); + if (escapeValue) { + isEscaping = true; + source += "' +\n__e(" + escapeValue + ") +\n'"; + } + if (evaluateValue) { + isEvaluating = true; + source += "';\n" + evaluateValue + ";\n__p += '"; + } + if (interpolateValue) { + source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; + } + index = offset + match2.length; + return match2; + }); + source += "';\n"; + var variable = hasOwnProperty.call(options, "variable") && options.variable; + if (!variable) { + source = "with (obj) {\n" + source + "\n}\n"; + } else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); + } + source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); + source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; + var result2 = attempt(function() { + return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); + }); + result2.source = source; + if (isError(result2)) { + throw result2; + } + return result2; + } + function toLower(value) { + return toString2(value).toLowerCase(); + } + function toUpper(value) { + return toString2(value).toUpperCase(); + } + function trim(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return baseTrim(string); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; + return castSlice(strSymbols, start, end).join(""); + } + function trimEnd(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return string.slice(0, trimmedEndIndex(string) + 1); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; + return castSlice(strSymbols, 0, end).join(""); + } + function trimStart(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return string.replace(reTrimStart, ""); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); + return castSlice(strSymbols, start).join(""); + } + function truncate(string, options) { + var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; + if (isObject3(options)) { + var separator = "separator" in options ? options.separator : separator; + length = "length" in options ? toInteger(options.length) : length; + omission = "omission" in options ? baseToString(options.omission) : omission; + } + string = toString2(string); + var strLength = string.length; + if (hasUnicode(string)) { + var strSymbols = stringToArray(string); + strLength = strSymbols.length; + } + if (length >= strLength) { + return string; + } + var end = length - stringSize(omission); + if (end < 1) { + return omission; + } + var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end); + if (separator === undefined2) { + return result2 + omission; + } + if (strSymbols) { + end += result2.length - end; + } + if (isRegExp(separator)) { + if (string.slice(end).search(separator)) { + var match2, substring = result2; + if (!separator.global) { + separator = RegExp2(separator.source, toString2(reFlags.exec(separator)) + "g"); + } + separator.lastIndex = 0; + while (match2 = separator.exec(substring)) { + var newEnd = match2.index; + } + result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); + } + } else if (string.indexOf(baseToString(separator), end) != end) { + var index = result2.lastIndexOf(separator); + if (index > -1) { + result2 = result2.slice(0, index); + } + } + return result2 + omission; + } + function unescape2(string) { + string = toString2(string); + return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; + } + var upperCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toUpperCase(); + }); + var upperFirst = createCaseFirst("toUpperCase"); + function words(string, pattern, guard) { + string = toString2(string); + pattern = guard ? undefined2 : pattern; + if (pattern === undefined2) { + return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); + } + return string.match(pattern) || []; + } + var attempt = baseRest(function(func, args) { + try { + return apply(func, undefined2, args); + } catch (e) { + return isError(e) ? e : new Error2(e); + } + }); + var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { + key = toKey(key); + baseAssignValue(object, key, bind(object[key], object)); + }); + return object; + }); + function cond(pairs2) { + var length = pairs2 == null ? 0 : pairs2.length, toIteratee = getIteratee(); + pairs2 = !length ? [] : arrayMap(pairs2, function(pair) { + if (typeof pair[1] != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return [toIteratee(pair[0]), pair[1]]; + }); + return baseRest(function(args) { + var index = -1; + while (++index < length) { + var pair = pairs2[index]; + if (apply(pair[0], this, args)) { + return apply(pair[1], this, args); + } + } + }); + } + function conforms(source) { + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); + } + function constant(value) { + return function() { + return value; + }; + } + function defaultTo(value, defaultValue) { + return value == null || value !== value ? defaultValue : value; + } + var flow = createFlow(); + var flowRight = createFlow(true); + function identity(value) { + return value; + } + function iteratee(func) { + return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); + } + function matches(source) { + return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); + } + function matchesProperty(path4, srcValue) { + return baseMatchesProperty(path4, baseClone(srcValue, CLONE_DEEP_FLAG)); + } + var method = baseRest(function(path4, args) { + return function(object) { + return baseInvoke(object, path4, args); + }; + }); + var methodOf = baseRest(function(object, args) { + return function(path4) { + return baseInvoke(object, path4, args); + }; + }); + function mixin(object, source, options) { + var props = keys(source), methodNames = baseFunctions(source, props); + if (options == null && !(isObject3(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain2 = !(isObject3(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object); + arrayEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain2 || chainAll) { + var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); + actions.push({ "func": func, "args": arguments, "thisArg": object }); + result2.__chain__ = chainAll; + return result2; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + return object; + } + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + function noop() { + } + function nthArg(n) { + n = toInteger(n); + return baseRest(function(args) { + return baseNth(args, n); + }); + } + var over = createOver(arrayMap); + var overEvery = createOver(arrayEvery); + var overSome = createOver(arraySome); + function property(path4) { + return isKey(path4) ? baseProperty(toKey(path4)) : basePropertyDeep(path4); + } + function propertyOf(object) { + return function(path4) { + return object == null ? undefined2 : baseGet(object, path4); + }; + } + var range = createRange(); + var rangeRight = createRange(true); + function stubArray() { + return []; + } + function stubFalse() { + return false; + } + function stubObject() { + return {}; + } + function stubString() { + return ""; + } + function stubTrue() { + return true; + } + function times(n, iteratee2) { + n = toInteger(n); + if (n < 1 || n > MAX_SAFE_INTEGER) { + return []; + } + var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); + iteratee2 = getIteratee(iteratee2); + n -= MAX_ARRAY_LENGTH; + var result2 = baseTimes(length, iteratee2); + while (++index < n) { + iteratee2(index); + } + return result2; + } + function toPath(value) { + if (isArray(value)) { + return arrayMap(value, toKey); + } + return isSymbol(value) ? [value] : copyArray(stringToPath(toString2(value))); + } + function uniqueId(prefix) { + var id = ++idCounter; + return toString2(prefix) + id; + } + var add = createMathOperation(function(augend, addend) { + return augend + addend; + }, 0); + var ceil = createRound("ceil"); + var divide = createMathOperation(function(dividend, divisor) { + return dividend / divisor; + }, 1); + var floor = createRound("floor"); + function max(array) { + return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; + } + function maxBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; + } + function mean(array) { + return baseMean(array, identity); + } + function meanBy(array, iteratee2) { + return baseMean(array, getIteratee(iteratee2, 2)); + } + function min(array) { + return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; + } + function minBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; + } + var multiply = createMathOperation(function(multiplier, multiplicand) { + return multiplier * multiplicand; + }, 1); + var round = createRound("round"); + var subtract = createMathOperation(function(minuend, subtrahend) { + return minuend - subtrahend; + }, 0); + function sum(array) { + return array && array.length ? baseSum(array, identity) : 0; + } + function sumBy(array, iteratee2) { + return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; + } + lodash.after = after; + lodash.ary = ary; + lodash.assign = assign; + lodash.assignIn = assignIn; + lodash.assignInWith = assignInWith; + lodash.assignWith = assignWith; + lodash.at = at; + lodash.before = before; + lodash.bind = bind; + lodash.bindAll = bindAll; + lodash.bindKey = bindKey; + lodash.castArray = castArray; + lodash.chain = chain; + lodash.chunk = chunk; + lodash.compact = compact; + lodash.concat = concat; + lodash.cond = cond; + lodash.conforms = conforms; + lodash.constant = constant; + lodash.countBy = countBy; + lodash.create = create; + lodash.curry = curry; + lodash.curryRight = curryRight; + lodash.debounce = debounce; + lodash.defaults = defaults2; + lodash.defaultsDeep = defaultsDeep; + lodash.defer = defer2; + lodash.delay = delay; + lodash.difference = difference; + lodash.differenceBy = differenceBy; + lodash.differenceWith = differenceWith; + lodash.drop = drop; + lodash.dropRight = dropRight; + lodash.dropRightWhile = dropRightWhile; + lodash.dropWhile = dropWhile; + lodash.fill = fill; + lodash.filter = filter2; + lodash.flatMap = flatMap; + lodash.flatMapDeep = flatMapDeep; + lodash.flatMapDepth = flatMapDepth; + lodash.flatten = flatten2; + lodash.flattenDeep = flattenDeep; + lodash.flattenDepth = flattenDepth; + lodash.flip = flip; + lodash.flow = flow; + lodash.flowRight = flowRight; + lodash.fromPairs = fromPairs; + lodash.functions = functions; + lodash.functionsIn = functionsIn; + lodash.groupBy = groupBy; + lodash.initial = initial; + lodash.intersection = intersection; + lodash.intersectionBy = intersectionBy; + lodash.intersectionWith = intersectionWith; + lodash.invert = invert; + lodash.invertBy = invertBy; + lodash.invokeMap = invokeMap; + lodash.iteratee = iteratee; + lodash.keyBy = keyBy; + lodash.keys = keys; + lodash.keysIn = keysIn; + lodash.map = map2; + lodash.mapKeys = mapKeys; + lodash.mapValues = mapValues; + lodash.matches = matches; + lodash.matchesProperty = matchesProperty; + lodash.memoize = memoize; + lodash.merge = merge2; + lodash.mergeWith = mergeWith; + lodash.method = method; + lodash.methodOf = methodOf; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.nthArg = nthArg; + lodash.omit = omit; + lodash.omitBy = omitBy; + lodash.once = once; + lodash.orderBy = orderBy; + lodash.over = over; + lodash.overArgs = overArgs; + lodash.overEvery = overEvery; + lodash.overSome = overSome; + lodash.partial = partial; + lodash.partialRight = partialRight; + lodash.partition = partition; + lodash.pick = pick; + lodash.pickBy = pickBy2; + lodash.property = property; + lodash.propertyOf = propertyOf; + lodash.pull = pull3; + lodash.pullAll = pullAll; + lodash.pullAllBy = pullAllBy; + lodash.pullAllWith = pullAllWith; + lodash.pullAt = pullAt; + lodash.range = range; + lodash.rangeRight = rangeRight; + lodash.rearg = rearg; + lodash.reject = reject; + lodash.remove = remove; + lodash.rest = rest; + lodash.reverse = reverse; + lodash.sampleSize = sampleSize; + lodash.set = set2; + lodash.setWith = setWith; + lodash.shuffle = shuffle; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.sortedUniq = sortedUniq; + lodash.sortedUniqBy = sortedUniqBy; + lodash.split = split; + lodash.spread = spread; + lodash.tail = tail; + lodash.take = take; + lodash.takeRight = takeRight; + lodash.takeRightWhile = takeRightWhile; + lodash.takeWhile = takeWhile; + lodash.tap = tap; + lodash.throttle = throttle; + lodash.thru = thru; + lodash.toArray = toArray2; + lodash.toPairs = toPairs; + lodash.toPairsIn = toPairsIn; + lodash.toPath = toPath; + lodash.toPlainObject = toPlainObject; + lodash.transform = transform; + lodash.unary = unary; + lodash.union = union; + lodash.unionBy = unionBy; + lodash.unionWith = unionWith; + lodash.uniq = uniq; + lodash.uniqBy = uniqBy; + lodash.uniqWith = uniqWith2; + lodash.unset = unset; + lodash.unzip = unzip; + lodash.unzipWith = unzipWith; + lodash.update = update; + lodash.updateWith = updateWith; + lodash.values = values2; + lodash.valuesIn = valuesIn; + lodash.without = without; + lodash.words = words; + lodash.wrap = wrap; + lodash.xor = xor; + lodash.xorBy = xorBy; + lodash.xorWith = xorWith; + lodash.zip = zip; + lodash.zipObject = zipObject; + lodash.zipObjectDeep = zipObjectDeep; + lodash.zipWith = zipWith; + lodash.entries = toPairs; + lodash.entriesIn = toPairsIn; + lodash.extend = assignIn; + lodash.extendWith = assignInWith; + mixin(lodash, lodash); + lodash.add = add; + lodash.attempt = attempt; + lodash.camelCase = camelCase; + lodash.capitalize = capitalize; + lodash.ceil = ceil; + lodash.clamp = clamp; + lodash.clone = clone; + lodash.cloneDeep = cloneDeep; + lodash.cloneDeepWith = cloneDeepWith; + lodash.cloneWith = cloneWith; + lodash.conformsTo = conformsTo; + lodash.deburr = deburr; + lodash.defaultTo = defaultTo; + lodash.divide = divide; + lodash.endsWith = endsWith; + lodash.eq = eq; + lodash.escape = escape2; + lodash.escapeRegExp = escapeRegExp; + lodash.every = every; + lodash.find = find; + lodash.findIndex = findIndex; + lodash.findKey = findKey; + lodash.findLast = findLast; + lodash.findLastIndex = findLastIndex; + lodash.findLastKey = findLastKey; + lodash.floor = floor; + lodash.forEach = forEach; + lodash.forEachRight = forEachRight; + lodash.forIn = forIn; + lodash.forInRight = forInRight; + lodash.forOwn = forOwn; + lodash.forOwnRight = forOwnRight; + lodash.get = get2; + lodash.gt = gt; + lodash.gte = gte; + lodash.has = has; + lodash.hasIn = hasIn; + lodash.head = head; + lodash.identity = identity; + lodash.includes = includes; + lodash.indexOf = indexOf; + lodash.inRange = inRange; + lodash.invoke = invoke; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isArrayBuffer = isArrayBuffer; + lodash.isArrayLike = isArrayLike; + lodash.isArrayLikeObject = isArrayLikeObject; + lodash.isBoolean = isBoolean2; + lodash.isBuffer = isBuffer; + lodash.isDate = isDate; + lodash.isElement = isElement; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isEqualWith = isEqualWith; + lodash.isError = isError; + lodash.isFinite = isFinite2; + lodash.isFunction = isFunction; + lodash.isInteger = isInteger2; + lodash.isLength = isLength; + lodash.isMap = isMap; + lodash.isMatch = isMatch; + lodash.isMatchWith = isMatchWith; + lodash.isNaN = isNaN2; + lodash.isNative = isNative; + lodash.isNil = isNil; + lodash.isNull = isNull2; + lodash.isNumber = isNumber; + lodash.isObject = isObject3; + lodash.isObjectLike = isObjectLike; + lodash.isPlainObject = isPlainObject2; + lodash.isRegExp = isRegExp; + lodash.isSafeInteger = isSafeInteger; + lodash.isSet = isSet; + lodash.isString = isString2; + lodash.isSymbol = isSymbol; + lodash.isTypedArray = isTypedArray; + lodash.isUndefined = isUndefined; + lodash.isWeakMap = isWeakMap; + lodash.isWeakSet = isWeakSet; + lodash.join = join3; + lodash.kebabCase = kebabCase; + lodash.last = last; + lodash.lastIndexOf = lastIndexOf; + lodash.lowerCase = lowerCase; + lodash.lowerFirst = lowerFirst; + lodash.lt = lt; + lodash.lte = lte; + lodash.max = max; + lodash.maxBy = maxBy; + lodash.mean = mean; + lodash.meanBy = meanBy; + lodash.min = min; + lodash.minBy = minBy; + lodash.stubArray = stubArray; + lodash.stubFalse = stubFalse; + lodash.stubObject = stubObject; + lodash.stubString = stubString; + lodash.stubTrue = stubTrue; + lodash.multiply = multiply; + lodash.nth = nth; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.now = now; + lodash.pad = pad; + lodash.padEnd = padEnd; + lodash.padStart = padStart2; + lodash.parseInt = parseInt2; + lodash.random = random; + lodash.reduce = reduce; + lodash.reduceRight = reduceRight; + lodash.repeat = repeat2; + lodash.replace = replace; + lodash.result = result; + lodash.round = round; + lodash.runInContext = runInContext2; + lodash.sample = sample; + lodash.size = size; + lodash.snakeCase = snakeCase; + lodash.some = some; + lodash.sortedIndex = sortedIndex; + lodash.sortedIndexBy = sortedIndexBy; + lodash.sortedIndexOf = sortedIndexOf; + lodash.sortedLastIndex = sortedLastIndex; + lodash.sortedLastIndexBy = sortedLastIndexBy; + lodash.sortedLastIndexOf = sortedLastIndexOf; + lodash.startCase = startCase; + lodash.startsWith = startsWith; + lodash.subtract = subtract; + lodash.sum = sum; + lodash.sumBy = sumBy; + lodash.template = template; + lodash.times = times; + lodash.toFinite = toFinite; + lodash.toInteger = toInteger; + lodash.toLength = toLength; + lodash.toLower = toLower; + lodash.toNumber = toNumber; + lodash.toSafeInteger = toSafeInteger; + lodash.toString = toString2; + lodash.toUpper = toUpper; + lodash.trim = trim; + lodash.trimEnd = trimEnd; + lodash.trimStart = trimStart; + lodash.truncate = truncate; + lodash.unescape = unescape2; + lodash.uniqueId = uniqueId; + lodash.upperCase = upperCase; + lodash.upperFirst = upperFirst; + lodash.each = forEach; + lodash.eachRight = forEachRight; + lodash.first = head; + mixin(lodash, function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }(), { "chain": false }); + lodash.VERSION = VERSION; + arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { + lodash[methodName].placeholder = lodash; + }); + arrayEach(["drop", "take"], function(methodName, index) { + LazyWrapper.prototype[methodName] = function(n) { + n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); + var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); + if (result2.__filtered__) { + result2.__takeCount__ = nativeMin(n, result2.__takeCount__); + } else { + result2.__views__.push({ + "size": nativeMin(n, MAX_ARRAY_LENGTH), + "type": methodName + (result2.__dir__ < 0 ? "Right" : "") + }); + } + return result2; + }; + LazyWrapper.prototype[methodName + "Right"] = function(n) { + return this.reverse()[methodName](n).reverse(); + }; + }); + arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { + var type2 = index + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG; + LazyWrapper.prototype[methodName] = function(iteratee2) { + var result2 = this.clone(); + result2.__iteratees__.push({ + "iteratee": getIteratee(iteratee2, 3), + "type": type2 + }); + result2.__filtered__ = result2.__filtered__ || isFilter; + return result2; + }; + }); + arrayEach(["head", "last"], function(methodName, index) { + var takeName = "take" + (index ? "Right" : ""); + LazyWrapper.prototype[methodName] = function() { + return this[takeName](1).value()[0]; + }; + }); + arrayEach(["initial", "tail"], function(methodName, index) { + var dropName = "drop" + (index ? "" : "Right"); + LazyWrapper.prototype[methodName] = function() { + return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); + }; + }); + LazyWrapper.prototype.compact = function() { + return this.filter(identity); + }; + LazyWrapper.prototype.find = function(predicate) { + return this.filter(predicate).head(); + }; + LazyWrapper.prototype.findLast = function(predicate) { + return this.reverse().find(predicate); + }; + LazyWrapper.prototype.invokeMap = baseRest(function(path4, args) { + if (typeof path4 == "function") { + return new LazyWrapper(this); + } + return this.map(function(value) { + return baseInvoke(value, path4, args); + }); + }); + LazyWrapper.prototype.reject = function(predicate) { + return this.filter(negate(getIteratee(predicate))); + }; + LazyWrapper.prototype.slice = function(start, end) { + start = toInteger(start); + var result2 = this; + if (result2.__filtered__ && (start > 0 || end < 0)) { + return new LazyWrapper(result2); + } + if (start < 0) { + result2 = result2.takeRight(-start); + } else if (start) { + result2 = result2.drop(start); + } + if (end !== undefined2) { + end = toInteger(end); + result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); + } + return result2; + }; + LazyWrapper.prototype.takeRightWhile = function(predicate) { + return this.reverse().takeWhile(predicate).reverse(); + }; + LazyWrapper.prototype.toArray = function() { + return this.take(MAX_ARRAY_LENGTH); + }; + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); + if (!lodashFunc) { + return; + } + lodash.prototype[methodName] = function() { + var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); + var interceptor = function(value2) { + var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); + return isTaker && chainAll ? result3[0] : result3; + }; + if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { + isLazy = useLazy = false; + } + var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; + if (!retUnwrapped && useLazy) { + value = onlyLazy ? value : new LazyWrapper(this); + var result2 = func.apply(value, args); + result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); + return new LodashWrapper(result2, chainAll); + } + if (isUnwrapped && onlyLazy) { + return func.apply(this, args); + } + result2 = this.thru(interceptor); + return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; + }; + }); + arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { + var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value2) { + return func.apply(isArray(value2) ? value2 : [], args); + }); + }; + }); + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (lodashFunc) { + var key = lodashFunc.name + ""; + if (!hasOwnProperty.call(realNames, key)) { + realNames[key] = []; + } + realNames[key].push({ "name": methodName, "func": lodashFunc }); + } + }); + realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ + "name": "wrapper", + "func": undefined2 + }]; + LazyWrapper.prototype.clone = lazyClone; + LazyWrapper.prototype.reverse = lazyReverse; + LazyWrapper.prototype.value = lazyValue; + lodash.prototype.at = wrapperAt; + lodash.prototype.chain = wrapperChain; + lodash.prototype.commit = wrapperCommit; + lodash.prototype.next = wrapperNext; + lodash.prototype.plant = wrapperPlant; + lodash.prototype.reverse = wrapperReverse; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.first = lodash.prototype.head; + if (symIterator) { + lodash.prototype[symIterator] = wrapperToIterator; + } + return lodash; + }; + var _ = runInContext(); + if (typeof define == "function" && typeof define.amd == "object" && define.amd) { + root._ = _; + define(function() { + return _; + }); + } else if (freeModule) { + (freeModule.exports = _)._ = _; + freeExports._ = _; + } else { + root._ = _; + } + }).call(exports2); + } +}); + +// ../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js +var require_balanced_match = __commonJS({ + "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) { + "use strict"; + module2.exports = balanced; + function balanced(a, b, str2) { + if (a instanceof RegExp) + a = maybeMatch(a, str2); + if (b instanceof RegExp) + b = maybeMatch(b, str2); + var r = range(a, b, str2); + return r && { + start: r[0], + end: r[1], + pre: str2.slice(0, r[0]), + body: str2.slice(r[0] + a.length, r[1]), + post: str2.slice(r[1] + b.length) + }; + } + function maybeMatch(reg, str2) { + var m = str2.match(reg); + return m ? m[0] : null; + } + balanced.range = range; + function range(a, b, str2) { + var begs, beg, left, right, result; + var ai = str2.indexOf(a); + var bi = str2.indexOf(b, ai + 1); + var i = ai; + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; + } + begs = []; + left = str2.length; + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str2.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + bi = str2.indexOf(b, i + 1); + } + i = ai < bi && ai >= 0 ? ai : bi; + } + if (begs.length) { + result = [left, right]; + } + } + return result; + } + } +}); + +// ../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js +var require_brace_expansion = __commonJS({ + "../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports2, module2) { + var balanced = require_balanced_match(); + module2.exports = expandTop; + var escSlash = "\0SLASH" + Math.random() + "\0"; + var escOpen = "\0OPEN" + Math.random() + "\0"; + var escClose = "\0CLOSE" + Math.random() + "\0"; + var escComma = "\0COMMA" + Math.random() + "\0"; + var escPeriod = "\0PERIOD" + Math.random() + "\0"; + function numeric(str2) { + return parseInt(str2, 10) == str2 ? parseInt(str2, 10) : str2.charCodeAt(0); + } + function escapeBraces(str2) { + return str2.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); + } + function unescapeBraces(str2) { + return str2.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); + } + function parseCommaParts(str2) { + if (!str2) + return [""]; + var parts = []; + var m = balanced("{", "}", str2); + if (!m) + return str2.split(","); + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(","); + p[p.length - 1] += "{" + body + "}"; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + parts.push.apply(parts, p); + return parts; + } + function expandTop(str2) { + if (!str2) + return []; + if (str2.substr(0, 2) === "{}") { + str2 = "\\{\\}" + str2.substr(2); + } + return expand2(escapeBraces(str2), true).map(unescapeBraces); + } + function embrace(str2) { + return "{" + str2 + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + function lte(i, y) { + return i <= y; + } + function gte(i, y) { + return i >= y; + } + function expand2(str2, isTop) { + var expansions = []; + var m = balanced("{", "}", str2); + if (!m) + return [str2]; + var pre = m.pre; + var post = m.post.length ? expand2(m.post, false) : [""]; + if (/\$$/.test(m.pre)) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + "{" + m.body + "}" + post[k]; + expansions.push(expansion); + } + } else { + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) { + if (m.post.match(/,.*\}/)) { + str2 = m.pre + "{" + m.body + escClose + m.post; + return expand2(str2); + } + return [str2]; + } + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + n = expand2(n[0], false).map(embrace); + if (n.length === 1) { + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + var N; + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + N = []; + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === "\\") + c = ""; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join("0"); + if (i < 0) + c = "-" + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = []; + for (var j = 0; j < n.length; j++) { + N.push.apply(N, expand2(n[j], false)); + } + } + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + } + return expansions; + } + } +}); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => entry, + run: () => run +}); +module.exports = __toCommonJS(src_exports); + +// src/runAllTests.ts +var import_mocha = __toESM(require_mocha2(), 1); +var path3 = __toESM(require("path"), 1); + +// ../common/src/cursorlessCommandIds.ts +var Command = class { + constructor(baseTitle) { + this.baseTitle = baseTitle; + } + get title() { + return `Cursorless: ${this.baseTitle}`; + } +}; +var HiddenCommand = class extends Command { + constructor() { + super(...arguments); + this.isVisible = false; + } +}; +var VisibleCommand = class extends Command { + constructor() { + super(...arguments); + this.isVisible = true; + } +}; +var cursorlessCommandDescriptions = { + ["cursorless.toggleDecorations"]: new VisibleCommand("Toggle decorations"), + ["cursorless.recomputeDecorationStyles"]: new VisibleCommand( + "Recompute decoration styles" + ), + ["cursorless.recordTestCase"]: new VisibleCommand("Record test case"), + ["cursorless.recordOneTestCaseThenPause"]: new VisibleCommand( + "Record one test case, then pause" + ), + ["cursorless.pauseRecording"]: new VisibleCommand( + "Pause test case recording" + ), + ["cursorless.resumeRecording"]: new VisibleCommand( + "Resume test case recording" + ), + ["cursorless.showDocumentation"]: new VisibleCommand("Show documentation"), + ["cursorless.showScopeVisualizer"]: new VisibleCommand( + "Show the scope visualizer" + ), + ["cursorless.hideScopeVisualizer"]: new VisibleCommand( + "Hide the scope visualizer" + ), + ["cursorless.analyzeCommandHistory"]: new VisibleCommand( + "Analyze collected command history" + ), + ["cursorless.command"]: new HiddenCommand("The core cursorless command"), + ["cursorless.showQuickPick"]: new HiddenCommand( + "Pop up a quick pick of all cursorless commands" + ), + ["cursorless.showCheatsheet"]: new HiddenCommand( + "Display the cursorless cheatsheet" + ), + ["cursorless.internal.updateCheatsheetDefaults"]: new HiddenCommand( + "Update the default values of the cheatsheet payload used on the website and for local development. Be sure to run this on stock community and cursorless." + ), + ["cursorless.private.logQuickActions"]: new HiddenCommand( + "Log the quick actions available at the current cursor position" + ), + ["cursorless.takeSnapshot"]: new HiddenCommand( + "Take a snapshot of the current editor state" + ), + ["cursorless.keyboard.escape"]: new HiddenCommand( + "Should be mapped to the escape key when using cursorless keyboard. By default, exits modal keyboard mode, but changes behaviour when Cursorless is expecting a continuation keystroke. For example, when you type a color and Cursorless is waiting for a character, it cancels the color and switches back to modal mode." + ), + ["cursorless.keyboard.targeted.targetHat"]: new HiddenCommand( + "Sets the keyboard target to the given hat" + ), + ["cursorless.keyboard.targeted.targetScope"]: new HiddenCommand( + "Sets the keyboard target to the scope containing the current target" + ), + ["cursorless.keyboard.targeted.targetSelection"]: new HiddenCommand( + "Sets the keyboard target to the current selection" + ), + ["cursorless.keyboard.targeted.clearTarget"]: new HiddenCommand( + "Clears the current keyboard target" + ), + ["cursorless.keyboard.targeted.runActionOnTarget"]: new HiddenCommand( + "Run the given action on the current keyboard target" + ), + ["cursorless.keyboard.modal.modeOn"]: new HiddenCommand( + "Turn on the cursorless modal mode" + ), + ["cursorless.keyboard.modal.modeOff"]: new HiddenCommand( + "Turn off the cursorless modal mode" + ), + ["cursorless.keyboard.modal.modeToggle"]: new HiddenCommand( + "Toggle the cursorless modal mode" + ) +}; + +// ../common/src/ide/fake/FakeIDE.ts +var import_lodash3 = __toESM(require_lodash(), 1); + +// ../common/src/ide/fake/FakeConfiguration.ts +var import_lodash2 = __toESM(require_lodash(), 1); + +// ../common/src/util/Notifier.ts +var import_lodash = __toESM(require_lodash(), 1); + +// ../common/src/ide/types/Configuration.ts +var CONFIGURATION_DEFAULTS = { + tokenHatSplittingMode: { + preserveCase: false, + lettersToPreserve: [], + symbolsToPreserve: [] + }, + wordSeparators: ["_"], + decorationDebounceDelayMs: 50, + experimental: { + snippetsDir: void 0, + hatStability: "balanced" /* balanced */ + }, + commandHistory: false, + debug: false +}; + +// ../common/src/ide/spy/SpyIDE.ts +var import_lodash4 = __toESM(require_lodash(), 1); + +// ../common/src/util/sleep.ts +var import_util = require("util"); +var sleep = (0, import_util.promisify)(setTimeout); + +// ../common/src/util/timeUtils.ts +var nanosecondsPerSecond = BigInt(1e9); + +// ../common/src/util/walkAsync.ts +var import_lodash5 = __toESM(require_lodash(), 1); + +// ../common/src/util/omitByDeep.ts +var import_lodash6 = __toESM(require_lodash(), 1); + +// ../common/src/util/range.ts +var import_lodash7 = __toESM(require_lodash(), 1); + +// ../common/src/util/uniqWithHash.ts +var import_lodash8 = __toESM(require_lodash(), 1); + +// ../common/src/testUtil/getCursorlessRepoRoot.ts +function getCursorlessRepoRoot() { + const root = process.env["CURSORLESS_REPO_ROOT"]; + if (root == null) { + throw new Error( + "CURSORLESS_REPO_ROOT environment variable must be set to run this script" + ); + } + return root; +} + +// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs +function isNothing(subject) { + return typeof subject === "undefined" || subject === null; +} +function isObject(subject) { + return typeof subject === "object" && subject !== null; +} +function toArray(sequence) { + if (Array.isArray(sequence)) + return sequence; + else if (isNothing(sequence)) + return []; + return [sequence]; +} +function extend(target, source) { + var index, length, key, sourceKeys; + if (source) { + sourceKeys = Object.keys(source); + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + return target; +} +function repeat(string, count) { + var result = "", cycle; + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + return result; +} +function isNegativeZero(number) { + return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; +} +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 +}; +function formatError(exception2, compact) { + var where = "", message = exception2.reason || "(unknown reason)"; + if (!exception2.mark) + return message; + if (exception2.mark.name) { + where += 'in "' + exception2.mark.name + '" '; + } + where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; + if (!compact && exception2.mark.snippet) { + where += "\n\n" + exception2.mark.snippet; + } + return message + " " + where; +} +function YAMLException$1(reason, mark) { + Error.call(this); + this.name = "YAMLException"; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error().stack || ""; + } +} +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ": " + formatError(this, compact); +}; +var exception = YAMLException$1; +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ""; + var tail = ""; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + if (position - lineStart > maxHalfLength) { + head = " ... "; + lineStart = position - maxHalfLength + head.length; + } + if (lineEnd - position > maxHalfLength) { + tail = " ..."; + lineEnd = position + maxHalfLength - tail.length; + } + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, + pos: position - lineStart + head.length + // relative position + }; +} +function padStart(string, max) { + return common.repeat(" ", max - string.length) + string; +} +function makeSnippet(mark, options) { + options = Object.create(options || null); + if (!mark.buffer) + return null; + if (!options.maxLength) + options.maxLength = 79; + if (typeof options.indent !== "number") + options.indent = 1; + if (typeof options.linesBefore !== "number") + options.linesBefore = 3; + if (typeof options.linesAfter !== "number") + options.linesAfter = 2; + var re = /\r?\n|\r|\0/g; + var lineStarts = [0]; + var lineEnds = []; + var match2; + var foundLineNo = -1; + while (match2 = re.exec(mark.buffer)) { + lineEnds.push(match2.index); + lineStarts.push(match2.index + match2[0].length); + if (mark.position <= match2.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + if (foundLineNo < 0) + foundLineNo = lineStarts.length - 1; + var result = "", i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result; + } + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n"; + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + } + return result.replace(/\n$/, ""); +} +var snippet = makeSnippet; +var TYPE_CONSTRUCTOR_OPTIONS = [ + "kind", + "multi", + "resolve", + "construct", + "instanceOf", + "predicate", + "represent", + "representName", + "defaultStyle", + "styleAliases" +]; +var YAML_NODE_KINDS = [ + "scalar", + "sequence", + "mapping" +]; +function compileStyleAliases(map2) { + var result = {}; + if (map2 !== null) { + Object.keys(map2).forEach(function(style) { + map2[style].forEach(function(alias) { + result[String(alias)] = style; + }); + }); + } + return result; +} +function Type$1(tag, options) { + options = options || {}; + Object.keys(options).forEach(function(name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + this.options = options; + this.tag = tag; + this.kind = options["kind"] || null; + this.resolve = options["resolve"] || function() { + return true; + }; + this.construct = options["construct"] || function(data) { + return data; + }; + this.instanceOf = options["instanceOf"] || null; + this.predicate = options["predicate"] || null; + this.represent = options["represent"] || null; + this.representName = options["representName"] || null; + this.defaultStyle = options["defaultStyle"] || null; + this.multi = options["multi"] || false; + this.styleAliases = compileStyleAliases(options["styleAliases"] || null); + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} +var type = Type$1; +function compileList(schema3, name) { + var result = []; + schema3[name].forEach(function(currentType) { + var newIndex = result.length; + result.forEach(function(previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { + newIndex = previousIndex; + } + }); + result[newIndex] = currentType; + }); + return result; +} +function compileMap() { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + function collectType(type2) { + if (type2.multi) { + result.multi[type2.kind].push(type2); + result.multi["fallback"].push(type2); + } else { + result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; + } + } + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} +function Schema$1(definition) { + return this.extend(definition); +} +Schema$1.prototype.extend = function extend2(definition) { + var implicit = []; + var explicit = []; + if (definition instanceof type) { + explicit.push(definition); + } else if (Array.isArray(definition)) { + explicit = explicit.concat(definition); + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + if (definition.implicit) + implicit = implicit.concat(definition.implicit); + if (definition.explicit) + explicit = explicit.concat(definition.explicit); + } else { + throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); + } + implicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + if (type$1.loadKind && type$1.loadKind !== "scalar") { + throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); + } + if (type$1.multi) { + throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); + } + }); + explicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + }); + var result = Object.create(Schema$1.prototype); + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + result.compiledImplicit = compileList(result, "implicit"); + result.compiledExplicit = compileList(result, "explicit"); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + return result; +}; +var schema = Schema$1; +var str = new type("tag:yaml.org,2002:str", { + kind: "scalar", + construct: function(data) { + return data !== null ? data : ""; + } +}); +var seq = new type("tag:yaml.org,2002:seq", { + kind: "sequence", + construct: function(data) { + return data !== null ? data : []; + } +}); +var map = new type("tag:yaml.org,2002:map", { + kind: "mapping", + construct: function(data) { + return data !== null ? data : {}; + } +}); +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); +function resolveYamlNull(data) { + if (data === null) + return true; + var max = data.length; + return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); +} +function constructYamlNull() { + return null; +} +function isNull(object) { + return object === null; +} +var _null = new type("tag:yaml.org,2002:null", { + kind: "scalar", + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function() { + return "~"; + }, + lowercase: function() { + return "null"; + }, + uppercase: function() { + return "NULL"; + }, + camelcase: function() { + return "Null"; + }, + empty: function() { + return ""; + } + }, + defaultStyle: "lowercase" +}); +function resolveYamlBoolean(data) { + if (data === null) + return false; + var max = data.length; + return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); +} +function constructYamlBoolean(data) { + return data === "true" || data === "True" || data === "TRUE"; +} +function isBoolean(object) { + return Object.prototype.toString.call(object) === "[object Boolean]"; +} +var bool = new type("tag:yaml.org,2002:bool", { + kind: "scalar", + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function(object) { + return object ? "true" : "false"; + }, + uppercase: function(object) { + return object ? "TRUE" : "FALSE"; + }, + camelcase: function(object) { + return object ? "True" : "False"; + } + }, + defaultStyle: "lowercase" +}); +function isHexCode(c) { + return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; +} +function isOctCode(c) { + return 48 <= c && c <= 55; +} +function isDecCode(c) { + return 48 <= c && c <= 57; +} +function resolveYamlInteger(data) { + if (data === null) + return false; + var max = data.length, index = 0, hasDigits = false, ch; + if (!max) + return false; + ch = data[index]; + if (ch === "-" || ch === "+") { + ch = data[++index]; + } + if (ch === "0") { + if (index + 1 === max) + return true; + ch = data[++index]; + if (ch === "b") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (ch !== "0" && ch !== "1") + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "x") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isHexCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "o") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isOctCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + } + if (ch === "_") + return false; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + if (!hasDigits || ch === "_") + return false; + return true; +} +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + if (value.indexOf("_") !== -1) { + value = value.replace(/_/g, ""); + } + ch = value[0]; + if (ch === "-" || ch === "+") { + if (ch === "-") + sign = -1; + value = value.slice(1); + ch = value[0]; + } + if (value === "0") + return 0; + if (ch === "0") { + if (value[1] === "b") + return sign * parseInt(value.slice(2), 2); + if (value[1] === "x") + return sign * parseInt(value.slice(2), 16); + if (value[1] === "o") + return sign * parseInt(value.slice(2), 8); + } + return sign * parseInt(value, 10); +} +function isInteger(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); +} +var int = new type("tag:yaml.org,2002:int", { + kind: "scalar", + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function(obj) { + return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); + }, + octal: function(obj) { + return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); + }, + decimal: function(obj) { + return obj.toString(10); + }, + /* eslint-disable max-len */ + hexadecimal: function(obj) { + return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); + } + }, + defaultStyle: "decimal", + styleAliases: { + binary: [2, "bin"], + octal: [8, "oct"], + decimal: [10, "dec"], + hexadecimal: [16, "hex"] + } +}); +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" +); +function resolveYamlFloat(data) { + if (data === null) + return false; + if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === "_") { + return false; + } + return true; +} +function constructYamlFloat(data) { + var value, sign; + value = data.replace(/_/g, "").toLowerCase(); + sign = value[0] === "-" ? -1 : 1; + if ("+-".indexOf(value[0]) >= 0) { + value = value.slice(1); + } + if (value === ".inf") { + return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + } else if (value === ".nan") { + return NaN; + } + return sign * parseFloat(value, 10); +} +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; +function representYamlFloat(object, style) { + var res; + if (isNaN(object)) { + switch (style) { + case "lowercase": + return ".nan"; + case "uppercase": + return ".NAN"; + case "camelcase": + return ".NaN"; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return ".inf"; + case "uppercase": + return ".INF"; + case "camelcase": + return ".Inf"; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return "-.inf"; + case "uppercase": + return "-.INF"; + case "camelcase": + return "-.Inf"; + } + } else if (common.isNegativeZero(object)) { + return "-0.0"; + } + res = object.toString(10); + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; +} +function isFloat(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); +} +var float = new type("tag:yaml.org,2002:float", { + kind: "scalar", + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: "lowercase" +}); +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); +var core = json; +var YAML_DATE_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" +); +var YAML_TIMESTAMP_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" +); +function resolveYamlTimestamp(data) { + if (data === null) + return false; + if (YAML_DATE_REGEXP.exec(data) !== null) + return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) + return true; + return false; +} +function constructYamlTimestamp(data) { + var match2, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; + match2 = YAML_DATE_REGEXP.exec(data); + if (match2 === null) + match2 = YAML_TIMESTAMP_REGEXP.exec(data); + if (match2 === null) + throw new Error("Date resolve error"); + year = +match2[1]; + month = +match2[2] - 1; + day = +match2[3]; + if (!match2[4]) { + return new Date(Date.UTC(year, month, day)); + } + hour = +match2[4]; + minute = +match2[5]; + second = +match2[6]; + if (match2[7]) { + fraction = match2[7].slice(0, 3); + while (fraction.length < 3) { + fraction += "0"; + } + fraction = +fraction; + } + if (match2[9]) { + tz_hour = +match2[10]; + tz_minute = +(match2[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 6e4; + if (match2[9] === "-") + delta = -delta; + } + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if (delta) + date.setTime(date.getTime() - delta); + return date; +} +function representYamlTimestamp(object) { + return object.toISOString(); +} +var timestamp = new type("tag:yaml.org,2002:timestamp", { + kind: "scalar", + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); +function resolveYamlMerge(data) { + return data === "<<" || data === null; +} +var merge = new type("tag:yaml.org,2002:merge", { + kind: "scalar", + resolve: resolveYamlMerge +}); +var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; +function resolveYamlBinary(data) { + if (data === null) + return false; + var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP; + for (idx = 0; idx < max; idx++) { + code = map2.indexOf(data.charAt(idx)); + if (code > 64) + continue; + if (code < 0) + return false; + bitlen += 6; + } + return bitlen % 8 === 0; +} +function constructYamlBinary(data) { + var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = []; + for (idx = 0; idx < max; idx++) { + if (idx % 4 === 0 && idx) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } + bits = bits << 6 | map2.indexOf(input.charAt(idx)); + } + tailbits = max % 4 * 6; + if (tailbits === 0) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } else if (tailbits === 18) { + result.push(bits >> 10 & 255); + result.push(bits >> 2 & 255); + } else if (tailbits === 12) { + result.push(bits >> 4 & 255); + } + return new Uint8Array(result); +} +function representYamlBinary(object) { + var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP; + for (idx = 0; idx < max; idx++) { + if (idx % 3 === 0 && idx) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } + bits = (bits << 8) + object[idx]; + } + tail = max % 3; + if (tail === 0) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } else if (tail === 2) { + result += map2[bits >> 10 & 63]; + result += map2[bits >> 4 & 63]; + result += map2[bits << 2 & 63]; + result += map2[64]; + } else if (tail === 1) { + result += map2[bits >> 2 & 63]; + result += map2[bits << 4 & 63]; + result += map2[64]; + result += map2[64]; + } + return result; +} +function isBinary(obj) { + return Object.prototype.toString.call(obj) === "[object Uint8Array]"; +} +var binary = new type("tag:yaml.org,2002:binary", { + kind: "scalar", + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; +function resolveYamlOmap(data) { + if (data === null) + return true; + var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + if (_toString$2.call(pair) !== "[object Object]") + return false; + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) + pairHasKey = true; + else + return false; + } + } + if (!pairHasKey) + return false; + if (objectKeys.indexOf(pairKey) === -1) + objectKeys.push(pairKey); + else + return false; + } + return true; +} +function constructYamlOmap(data) { + return data !== null ? data : []; +} +var omap = new type("tag:yaml.org,2002:omap", { + kind: "sequence", + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); +var _toString$1 = Object.prototype.toString; +function resolveYamlPairs(data) { + if (data === null) + return true; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + if (_toString$1.call(pair) !== "[object Object]") + return false; + keys = Object.keys(pair); + if (keys.length !== 1) + return false; + result[index] = [keys[0], pair[keys[0]]]; + } + return true; +} +function constructYamlPairs(data) { + if (data === null) + return []; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + keys = Object.keys(pair); + result[index] = [keys[0], pair[keys[0]]]; + } + return result; +} +var pairs = new type("tag:yaml.org,2002:pairs", { + kind: "sequence", + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; +function resolveYamlSet(data) { + if (data === null) + return true; + var key, object = data; + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) + return false; + } + } + return true; +} +function constructYamlSet(data) { + return data !== null ? data : {}; +} +var set = new type("tag:yaml.org,2002:set", { + kind: "mapping", + resolve: resolveYamlSet, + construct: constructYamlSet +}); +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +function _class(obj) { + return Object.prototype.toString.call(obj); +} +function is_EOL(c) { + return c === 10 || c === 13; +} +function is_WHITE_SPACE(c) { + return c === 9 || c === 32; +} +function is_WS_OR_EOL(c) { + return c === 9 || c === 32 || c === 10 || c === 13; +} +function is_FLOW_INDICATOR(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; +} +function fromHexCode(c) { + var lc; + if (48 <= c && c <= 57) { + return c - 48; + } + lc = c | 32; + if (97 <= lc && lc <= 102) { + return lc - 97 + 10; + } + return -1; +} +function escapedHexLen(c) { + if (c === 120) { + return 2; + } + if (c === 117) { + return 4; + } + if (c === 85) { + return 8; + } + return 0; +} +function fromDecimalCode(c) { + if (48 <= c && c <= 57) { + return c - 48; + } + return -1; +} +function simpleEscapeSequence(c) { + return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; +} +function charFromCodepoint(c) { + if (c <= 65535) { + return String.fromCharCode(c); + } + return String.fromCharCode( + (c - 65536 >> 10) + 55296, + (c - 65536 & 1023) + 56320 + ); +} +var simpleEscapeCheck = new Array(256); +var simpleEscapeMap = new Array(256); +for (i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} +var i; +function State$1(input, options) { + this.input = input; + this.filename = options["filename"] || null; + this.schema = options["schema"] || _default; + this.onWarning = options["onWarning"] || null; + this.legacy = options["legacy"] || false; + this.json = options["json"] || false; + this.listener = options["listener"] || null; + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + this.firstTabInLine = -1; + this.documents = []; +} +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), + // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + mark.snippet = snippet(mark); + return new exception(message, mark); +} +function throwError(state, message) { + throw generateError(state, message); +} +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} +var directiveHandlers = { + YAML: function handleYamlDirective(state, name, args) { + var match2, major, minor; + if (state.version !== null) { + throwError(state, "duplication of %YAML directive"); + } + if (args.length !== 1) { + throwError(state, "YAML directive accepts exactly one argument"); + } + match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + if (match2 === null) { + throwError(state, "ill-formed argument of the YAML directive"); + } + major = parseInt(match2[1], 10); + minor = parseInt(match2[2], 10); + if (major !== 1) { + throwError(state, "unacceptable YAML version of the document"); + } + state.version = args[0]; + state.checkLineBreaks = minor < 2; + if (minor !== 1 && minor !== 2) { + throwWarning(state, "unsupported YAML version of the document"); + } + }, + TAG: function handleTagDirective(state, name, args) { + var handle, prefix; + if (args.length !== 2) { + throwError(state, "TAG directive accepts exactly two arguments"); + } + handle = args[0]; + prefix = args[1]; + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, "ill-formed tag handle (first argument) of the TAG directive"); + } + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, "ill-formed tag prefix (second argument) of the TAG directive"); + } + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, "tag prefix is malformed: " + prefix); + } + state.tagMap[handle] = prefix; + } +}; +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + if (start < end) { + _result = state.input.slice(start, end); + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { + throwError(state, "expected valid JSON character"); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, "the stream contains non-printable characters"); + } + state.result += _result; + } +} +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + if (!common.isObject(source)) { + throwError(state, "cannot merge mappings; the provided source object is unacceptable"); + } + sourceKeys = Object.keys(source); + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { + var index, quantity; + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, "nested arrays are not supported inside keys"); + } + if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { + keyNode[index] = "[object Object]"; + } + } + } + if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { + keyNode = "[object Object]"; + } + keyNode = String(keyNode); + if (_result === null) { + _result = {}; + } + if (keyTag === "tag:yaml.org,2002:merge") { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, "duplicated mapping key"); + } + if (keyNode === "__proto__") { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + return _result; +} +function readLineBreak(state) { + var ch; + ch = state.input.charCodeAt(state.position); + if (ch === 10) { + state.position++; + } else if (ch === 13) { + state.position++; + if (state.input.charCodeAt(state.position) === 10) { + state.position++; + } + } else { + throwError(state, "a line break is expected"); + } + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 9 && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + if (allowComments && ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 10 && ch !== 13 && ch !== 0); + } + if (is_EOL(ch)) { + readLineBreak(state); + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + while (ch === 32) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, "deficient indentation"); + } + return lineBreaks; +} +function testDocumentSeparator(state) { + var _position = state.position, ch; + ch = state.input.charCodeAt(_position); + if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { + _position += 3; + ch = state.input.charCodeAt(_position); + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + return false; +} +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += " "; + } else if (count > 1) { + state.result += common.repeat("\n", count - 1); + } +} +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; + ch = state.input.charCodeAt(state.position); + if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { + return false; + } + if (ch === 63 || ch === 45) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + state.kind = "scalar"; + state.result = ""; + captureStart = captureEnd = state.position; + hasPendingContent = false; + while (ch !== 0) { + if (ch === 58) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + } else if (ch === 35) { + preceding = state.input.charCodeAt(state.position - 1); + if (is_WS_OR_EOL(preceding)) { + break; + } + } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + ch = state.input.charCodeAt(++state.position); + } + captureSegment(state, captureStart, captureEnd, false); + if (state.result) { + return true; + } + state.kind = _kind; + state.result = _result; + return false; +} +function readSingleQuotedScalar(state, nodeIndent) { + var ch, captureStart, captureEnd; + ch = state.input.charCodeAt(state.position); + if (ch !== 39) { + return false; + } + state.kind = "scalar"; + state.result = ""; + state.position++; + captureStart = captureEnd = state.position; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 39) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + if (ch === 39) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, "unexpected end of the document within a single quoted scalar"); + } else { + state.position++; + captureEnd = state.position; + } + } + throwError(state, "unexpected end of the stream within a single quoted scalar"); +} +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, captureEnd, hexLength, hexResult, tmp, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 34) { + return false; + } + state.kind = "scalar"; + state.result = ""; + state.position++; + captureStart = captureEnd = state.position; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 34) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + } else if (ch === 92) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + } else { + throwError(state, "expected hexadecimal character"); + } + } + state.result += charFromCodepoint(hexResult); + state.position++; + } else { + throwError(state, "unknown escape sequence"); + } + captureStart = captureEnd = state.position; + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, "unexpected end of the document within a double quoted scalar"); + } else { + state.position++; + captureEnd = state.position; + } + } + throwError(state, "unexpected end of the stream within a double quoted scalar"); +} +function readFlowCollection(state, nodeIndent) { + var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; + ch = state.input.charCodeAt(state.position); + if (ch === 91) { + terminator = 93; + isMapping = false; + _result = []; + } else if (ch === 123) { + terminator = 125; + isMapping = true; + _result = {}; + } else { + return false; + } + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(++state.position); + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? "mapping" : "sequence"; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, "missed comma between flow collection entries"); + } else if (ch === 44) { + throwError(state, "expected the node content, but found ','"); + } + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + if (ch === 63) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + _line = state.line; + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if ((isExplicitPair || state.line === _line) && ch === 58) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + skipSeparationSpace(state, true, nodeIndent); + ch = state.input.charCodeAt(state.position); + if (ch === 44) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + throwError(state, "unexpected end of the stream within a flow collection"); +} +function readBlockScalar(state, nodeIndent) { + var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; + ch = state.input.charCodeAt(state.position); + if (ch === 124) { + folding = false; + } else if (ch === 62) { + folding = true; + } else { + return false; + } + state.kind = "scalar"; + state.result = ""; + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + if (ch === 43 || ch === 45) { + if (CHOMPING_CLIP === chomping) { + chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, "repeat of a chomping mode identifier"); + } + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, "repeat of an indentation width identifier"); + } + } else { + break; + } + } + if (is_WHITE_SPACE(ch)) { + do { + ch = state.input.charCodeAt(++state.position); + } while (is_WHITE_SPACE(ch)); + if (ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (!is_EOL(ch) && ch !== 0); + } + } + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + ch = state.input.charCodeAt(state.position); + while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + if (is_EOL(ch)) { + emptyLines++; + continue; + } + if (state.lineIndent < textIndent) { + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { + state.result += "\n"; + } + } + break; + } + if (folding) { + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat("\n", emptyLines + 1); + } else if (emptyLines === 0) { + if (didReadContent) { + state.result += " "; + } + } else { + state.result += common.repeat("\n", emptyLines); + } + } else { + state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + while (!is_EOL(ch) && ch !== 0) { + ch = state.input.charCodeAt(++state.position); + } + captureSegment(state, captureStart, state.position, false); + } + return true; +} +function readBlockSequence(state, nodeIndent) { + var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; + if (state.firstTabInLine !== -1) + return false; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + if (ch !== 45) { + break; + } + following = state.input.charCodeAt(state.position + 1); + if (!is_WS_OR_EOL(following)) { + break; + } + detected = true; + state.position++; + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { + throwError(state, "bad indentation of a sequence entry"); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = "sequence"; + state.result = _result; + return true; + } + return false; +} +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; + if (state.firstTabInLine !== -1) + return false; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + following = state.input.charCodeAt(state.position + 1); + _line = state.line; + if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { + if (ch === 63) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = true; + allowCompact = true; + } else if (atExplicitKey) { + atExplicitKey = false; + allowCompact = true; + } else { + throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); + } + state.position += 1; + ch = following; + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + break; + } + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (ch === 58) { + ch = state.input.charCodeAt(++state.position); + if (!is_WS_OR_EOL(ch)) { + throwError(state, "a whitespace character is expected after the key-value separator within a block mapping"); + } + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + } else if (detected) { + throwError(state, "can not read an implicit mapping pair; a colon is missed"); + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; + } + } else if (detected) { + throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; + } + } + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { + throwError(state, "bad indentation of a mapping entry"); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = "mapping"; + state.result = _result; + } + return detected; +} +function readTagProperty(state) { + var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 33) + return false; + if (state.tag !== null) { + throwError(state, "duplication of a tag property"); + } + ch = state.input.charCodeAt(++state.position); + if (ch === 60) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + } else if (ch === 33) { + isNamed = true; + tagHandle = "!!"; + ch = state.input.charCodeAt(++state.position); + } else { + tagHandle = "!"; + } + _position = state.position; + if (isVerbatim) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0 && ch !== 62); + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, "unexpected end of the stream within a verbatim tag"); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch === 33) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, "named tag handle cannot contain such characters"); + } + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, "tag suffix cannot contain exclamation marks"); + } + } + ch = state.input.charCodeAt(++state.position); + } + tagName = state.input.slice(_position, state.position); + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, "tag suffix cannot contain flow indicator characters"); + } + } + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, "tag name cannot contain such characters: " + tagName); + } + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, "tag name is malformed: " + tagName); + } + if (isVerbatim) { + state.tag = tagName; + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + } else if (tagHandle === "!") { + state.tag = "!" + tagName; + } else if (tagHandle === "!!") { + state.tag = "tag:yaml.org,2002:" + tagName; + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + return true; +} +function readAnchorProperty(state) { + var _position, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 38) + return false; + if (state.anchor !== null) { + throwError(state, "duplication of an anchor property"); + } + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (state.position === _position) { + throwError(state, "name of an anchor node must contain at least one character"); + } + state.anchor = state.input.slice(_position, state.position); + return true; +} +function readAlias(state) { + var _position, alias, ch; + ch = state.input.charCodeAt(state.position); + if (ch !== 42) + return false; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (state.position === _position) { + throwError(state, "name of an alias node must contain at least one character"); + } + alias = state.input.slice(_position, state.position); + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; + if (state.listener !== null) { + state.listener("open", state); + } + state.tag = null; + state.anchor = null; + state.kind = null; + state.result = null; + allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; + if (allowToSeek) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + blockIndent = state.position - state.lineStart; + if (indentStatus === 1) { + if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + } else if (readAlias(state)) { + hasContent = true; + if (state.tag !== null || state.anchor !== null) { + throwError(state, "alias node should not have any properties"); + } + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + if (state.tag === null) { + state.tag = "?"; + } + } + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } else if (state.tag === "?") { + if (state.result !== null && state.kind !== "scalar") { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type2 = state.implicitTypes[typeIndex]; + if (type2.resolve(state.result)) { + state.result = type2.construct(state.result); + state.tag = type2.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== "!") { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) { + type2 = state.typeMap[state.kind || "fallback"][state.tag]; + } else { + type2 = null; + typeList = state.typeMap.multi[state.kind || "fallback"]; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type2 = typeList[typeIndex]; + break; + } + } + } + if (!type2) { + throwError(state, "unknown tag !<" + state.tag + ">"); + } + if (state.result !== null && type2.kind !== state.kind) { + throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"'); + } + if (!type2.resolve(state.result, state.tag)) { + throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); + } else { + state.result = type2.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + if (state.listener !== null) { + state.listener("close", state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} +function readDocument(state) { + var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = /* @__PURE__ */ Object.create(null); + state.anchorMap = /* @__PURE__ */ Object.create(null); + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + if (state.lineIndent > 0 || ch !== 37) { + break; + } + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + if (directiveName.length < 1) { + throwError(state, "directive name must not be less than one character in length"); + } + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + if (ch === 35) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0 && !is_EOL(ch)); + break; + } + if (is_EOL(ch)) + break; + _position = state.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + directiveArgs.push(state.input.slice(_position, state.position)); + } + if (ch !== 0) + readLineBreak(state); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + skipSeparationSpace(state, true, -1); + if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } else if (hasDirectives) { + throwError(state, "directives end mark is expected"); + } + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, "non-ASCII line breaks are interpreted as content"); + } + state.documents.push(state.result); + if (state.position === state.lineStart && testDocumentSeparator(state)) { + if (state.input.charCodeAt(state.position) === 46) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + if (state.position < state.length - 1) { + throwError(state, "end of the stream or a document separator is expected"); + } else { + return; + } +} +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + if (input.length !== 0) { + if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { + input += "\n"; + } + if (input.charCodeAt(0) === 65279) { + input = input.slice(1); + } + } + var state = new State$1(input, options); + var nullpos = input.indexOf("\0"); + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, "null byte is not allowed in input"); + } + state.input += "\0"; + while (state.input.charCodeAt(state.position) === 32) { + state.lineIndent += 1; + state.position += 1; + } + while (state.position < state.length - 1) { + readDocument(state); + } + return state.documents; +} +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { + options = iterator; + iterator = null; + } + var documents = loadDocuments(input, options); + if (typeof iterator !== "function") { + return documents; + } + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} +function load$1(input, options) { + var documents = loadDocuments(input, options); + if (documents.length === 0) { + return void 0; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception("expected a single document in the stream, but found more"); +} +var loadAll_1 = loadAll$1; +var load_1 = load$1; +var loader = { + loadAll: loadAll_1, + load: load_1 +}; +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var CHAR_BOM = 65279; +var CHAR_TAB = 9; +var CHAR_LINE_FEED = 10; +var CHAR_CARRIAGE_RETURN = 13; +var CHAR_SPACE = 32; +var CHAR_EXCLAMATION = 33; +var CHAR_DOUBLE_QUOTE = 34; +var CHAR_SHARP = 35; +var CHAR_PERCENT = 37; +var CHAR_AMPERSAND = 38; +var CHAR_SINGLE_QUOTE = 39; +var CHAR_ASTERISK = 42; +var CHAR_COMMA = 44; +var CHAR_MINUS = 45; +var CHAR_COLON = 58; +var CHAR_EQUALS = 61; +var CHAR_GREATER_THAN = 62; +var CHAR_QUESTION = 63; +var CHAR_COMMERCIAL_AT = 64; +var CHAR_LEFT_SQUARE_BRACKET = 91; +var CHAR_RIGHT_SQUARE_BRACKET = 93; +var CHAR_GRAVE_ACCENT = 96; +var CHAR_LEFT_CURLY_BRACKET = 123; +var CHAR_VERTICAL_LINE = 124; +var CHAR_RIGHT_CURLY_BRACKET = 125; +var ESCAPE_SEQUENCES = {}; +ESCAPE_SEQUENCES[0] = "\\0"; +ESCAPE_SEQUENCES[7] = "\\a"; +ESCAPE_SEQUENCES[8] = "\\b"; +ESCAPE_SEQUENCES[9] = "\\t"; +ESCAPE_SEQUENCES[10] = "\\n"; +ESCAPE_SEQUENCES[11] = "\\v"; +ESCAPE_SEQUENCES[12] = "\\f"; +ESCAPE_SEQUENCES[13] = "\\r"; +ESCAPE_SEQUENCES[27] = "\\e"; +ESCAPE_SEQUENCES[34] = '\\"'; +ESCAPE_SEQUENCES[92] = "\\\\"; +ESCAPE_SEQUENCES[133] = "\\N"; +ESCAPE_SEQUENCES[160] = "\\_"; +ESCAPE_SEQUENCES[8232] = "\\L"; +ESCAPE_SEQUENCES[8233] = "\\P"; +var DEPRECATED_BOOLEANS_SYNTAX = [ + "y", + "Y", + "yes", + "Yes", + "YES", + "on", + "On", + "ON", + "n", + "N", + "no", + "No", + "NO", + "off", + "Off", + "OFF" +]; +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; +function compileStyleMap(schema3, map2) { + var result, keys, index, length, tag, style, type2; + if (map2 === null) + return {}; + result = {}; + keys = Object.keys(map2); + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map2[tag]); + if (tag.slice(0, 2) === "!!") { + tag = "tag:yaml.org,2002:" + tag.slice(2); + } + type2 = schema3.compiledTypeMap["fallback"][tag]; + if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) { + style = type2.styleAliases[style]; + } + result[tag] = style; + } + return result; +} +function encodeHex(character) { + var string, handle, length; + string = character.toString(16).toUpperCase(); + if (character <= 255) { + handle = "x"; + length = 2; + } else if (character <= 65535) { + handle = "u"; + length = 4; + } else if (character <= 4294967295) { + handle = "U"; + length = 8; + } else { + throw new exception("code point within a string may not be greater than 0xFFFFFFFF"); + } + return "\\" + handle + common.repeat("0", length - string.length) + string; +} +var QUOTING_TYPE_SINGLE = 1; +var QUOTING_TYPE_DOUBLE = 2; +function State(options) { + this.schema = options["schema"] || _default; + this.indent = Math.max(1, options["indent"] || 2); + this.noArrayIndent = options["noArrayIndent"] || false; + this.skipInvalid = options["skipInvalid"] || false; + this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"]; + this.styleMap = compileStyleMap(this.schema, options["styles"] || null); + this.sortKeys = options["sortKeys"] || false; + this.lineWidth = options["lineWidth"] || 80; + this.noRefs = options["noRefs"] || false; + this.noCompatMode = options["noCompatMode"] || false; + this.condenseFlow = options["condenseFlow"] || false; + this.quotingType = options["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options["forceQuotes"] || false; + this.replacer = typeof options["replacer"] === "function" ? options["replacer"] : null; + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + this.tag = null; + this.result = ""; + this.duplicates = []; + this.usedDuplicates = null; +} +function indentString(string, spaces) { + var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string.length; + while (position < length) { + next = string.indexOf("\n", position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + if (line.length && line !== "\n") + result += ind; + result += line; + } + return result; +} +function generateNextLine(state, level) { + return "\n" + common.repeat(" ", state.indent * level); +} +function testImplicitResolving(state, str2) { + var index, length, type2; + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type2 = state.implicitTypes[index]; + if (type2.resolve(str2)) { + return true; + } + } + return false; +} +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} +function isPrintable(c) { + return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111; +} +function isNsCharOrWhitespace(c) { + return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; +} +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + (inblock ? ( + // c = flow-in + cIsNsCharOrWhitespace + ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar + ); +} +function isPlainSafeFirst(c) { + return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; +} +function isPlainSafeLast(c) { + return !isWhitespace(c) && c !== CHAR_COLON; +} +function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 56320 && second <= 57343) { + return (first - 55296) * 1024 + second - 56320 + 65536; + } + } + return first; +} +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} +var STYLE_PLAIN = 1; +var STYLE_SINGLE = 2; +var STYLE_LITERAL = 3; +var STYLE_FOLDED = 4; +var STYLE_DOUBLE = 5; +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; + var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1)); + if (singleLineOnly || forceQuotes) { + for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. + i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "); + } + if (!hasLineBreak && !hasFoldableLine) { + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} +function writeScalar(state, string, level, iskey, inblock) { + state.dump = function() { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'"; + } + } + var indent = state.indent * Math.max(1, level); + var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; + function testAmbiguity(string2) { + return testImplicitResolving(state, string2); + } + switch (chooseScalarStyle( + string, + singleLineOnly, + state.indent, + lineWidth, + testAmbiguity, + state.quotingType, + state.forceQuotes && !iskey, + inblock + )) { + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return "|" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return ">" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception("impossible error: invalid scalar style"); + } + }(); +} +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ""; + var clip = string[string.length - 1] === "\n"; + var keep = clip && (string[string.length - 2] === "\n" || string === "\n"); + var chomp = keep ? "+" : clip ? "" : "-"; + return indentIndicator + chomp + "\n"; +} +function dropEndingNewline(string) { + return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; +} +function foldString(string, width) { + var lineRe = /(\n+)([^\n]*)/g; + var result = function() { + var nextLF = string.indexOf("\n"); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }(); + var prevMoreIndented = string[0] === "\n" || string[0] === " "; + var moreIndented; + var match2; + while (match2 = lineRe.exec(string)) { + var prefix = match2[1], line = match2[2]; + moreIndented = line[0] === " "; + result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width); + prevMoreIndented = moreIndented; + } + return result; +} +function foldLine(line, width) { + if (line === "" || line[0] === " ") + return line; + var breakRe = / [^ ]/g; + var match2; + var start = 0, end, curr = 0, next = 0; + var result = ""; + while (match2 = breakRe.exec(line)) { + next = match2.index; + if (next - start > width) { + end = curr > start ? curr : next; + result += "\n" + line.slice(start, end); + start = end + 1; + } + curr = next; + } + result += "\n"; + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + "\n" + line.slice(curr + 1); + } else { + result += line.slice(start); + } + return result.slice(1); +} +function escapeString(string) { + var result = ""; + var char = 0; + var escapeSeq; + for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 65536) + result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + return result; +} +function writeFlowSequence(state, level, object) { + var _result = "", _tag = state.tag, index, length, value; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) { + if (_result !== "") + _result += "," + (!state.condenseFlow ? " " : ""); + _result += state.dump; + } + } + state.tag = _tag; + state.dump = "[" + _result + "]"; +} +function writeBlockSequence(state, level, object, compact) { + var _result = "", _tag = state.tag, index, length, value; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) { + if (!compact || _result !== "") { + _result += generateNextLine(state, level); + } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += "-"; + } else { + _result += "- "; + } + _result += state.dump; + } + } + state.tag = _tag; + state.dump = _result || "[]"; +} +function writeFlowMapping(state, level, object) { + var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer; + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ""; + if (_result !== "") + pairBuffer += ", "; + if (state.condenseFlow) + pairBuffer += '"'; + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + if (!writeNode(state, level, objectKey, false, false)) { + continue; + } + if (state.dump.length > 1024) + pairBuffer += "? "; + pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); + if (!writeNode(state, level, objectValue, false, false)) { + continue; + } + pairBuffer += state.dump; + _result += pairBuffer; + } + state.tag = _tag; + state.dump = "{" + _result + "}"; +} +function writeBlockMapping(state, level, object, compact) { + var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer; + if (state.sortKeys === true) { + objectKeyList.sort(); + } else if (typeof state.sortKeys === "function") { + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + throw new exception("sortKeys must be a boolean or a function"); + } + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ""; + if (!compact || _result !== "") { + pairBuffer += generateNextLine(state, level); + } + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; + } + explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += "?"; + } else { + pairBuffer += "? "; + } + } + pairBuffer += state.dump; + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; + } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ":"; + } else { + pairBuffer += ": "; + } + pairBuffer += state.dump; + _result += pairBuffer; + } + state.tag = _tag; + state.dump = _result || "{}"; +} +function detectType(state, object, explicit) { + var _result, typeList, index, length, type2, style; + typeList = explicit ? state.explicitTypes : state.implicitTypes; + for (index = 0, length = typeList.length; index < length; index += 1) { + type2 = typeList[index]; + if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { + if (explicit) { + if (type2.multi && type2.representName) { + state.tag = type2.representName(object); + } else { + state.tag = type2.tag; + } + } else { + state.tag = "?"; + } + if (type2.represent) { + style = state.styleMap[type2.tag] || type2.defaultStyle; + if (_toString.call(type2.represent) === "[object Function]") { + _result = type2.represent(object, style); + } else if (_hasOwnProperty.call(type2.represent, style)) { + _result = type2.represent[style](object, style); + } else { + throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); + } + state.dump = _result; + } + return true; + } + } + return false; +} +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + var type2 = _toString.call(state.dump); + var inblock = block; + var tagStr; + if (block) { + block = state.flowLevel < 0 || state.flowLevel > level; + } + var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { + compact = false; + } + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = "*ref_" + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type2 === "[object Object]") { + if (block && Object.keys(state.dump).length !== 0) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + " " + state.dump; + } + } + } else if (type2 === "[object Array]") { + if (block && state.dump.length !== 0) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = "&ref_" + duplicateIndex + " " + state.dump; + } + } + } else if (type2 === "[object String]") { + if (state.tag !== "?") { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type2 === "[object Undefined]") { + return false; + } else { + if (state.skipInvalid) + return false; + throw new exception("unacceptable kind of an object to dump " + type2); + } + if (state.tag !== null && state.tag !== "?") { + tagStr = encodeURI( + state.tag[0] === "!" ? state.tag.slice(1) : state.tag + ).replace(/!/g, "%21"); + if (state.tag[0] === "!") { + tagStr = "!" + tagStr; + } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { + tagStr = "!!" + tagStr.slice(18); + } else { + tagStr = "!<" + tagStr + ">"; + } + state.dump = tagStr + " " + state.dump; + } + } + return true; +} +function getDuplicateReferences(object, state) { + var objects = [], duplicatesIndexes = [], index, length; + inspectNode(object, objects, duplicatesIndexes); + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, index, length; + if (object !== null && typeof object === "object") { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} +function dump$1(input, options) { + options = options || {}; + var state = new State(options); + if (!state.noRefs) + getDuplicateReferences(input, state); + var value = input; + if (state.replacer) { + value = state.replacer.call({ "": value }, "", value); + } + if (writeNode(state, 0, value, true, true)) + return state.dump + "\n"; + return ""; +} +var dump_1 = dump$1; +var dumper = { + dump: dump_1 +}; +function renamed(from, to) { + return function() { + throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default."); + }; +} +var Type = type; +var DEFAULT_SCHEMA = _default; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var safeLoad = renamed("safeLoad", "load"); +var safeLoadAll = renamed("safeLoadAll", "loadAll"); +var safeDump = renamed("safeDump", "dump"); + +// ../common/src/testUtil/serialize.ts +var CustomDump = class { + constructor(data, opts) { + this.data = data; + this.opts = opts; + } + represent() { + let result = dump( + this.data, + Object.assign({ replacer, schema: schema2 }, this.opts) + ); + result = result.trim(); + if (result.includes("\n")) { + result = "\n" + result; + } + return result; + } +}; +var customDumpType = new Type("!format", { + kind: "scalar", + resolve: () => false, + instanceOf: CustomDump, + represent: (d) => d.represent() +}); +var schema2 = DEFAULT_SCHEMA.extend({ implicit: [customDumpType] }); +var isObject2 = (value) => typeof value === "object" && value != null; +function hasSimpleChildren(value) { + if (isObject2(value)) { + return Object.values(value).every( + (value2) => !isObject2(value2) && !Array.isArray(value2) + ); + } + if (Array.isArray(value)) { + return value.every((value2) => !isObject2(value2) && !Array.isArray(value2)); + } +} +function replacer(key, value) { + if (key === "") { + return value; + } + if (hasSimpleChildren(value)) { + return new CustomDump(value, { flowLevel: 0 }); + } + return value; +} + +// ../common/src/types/command/PartialTargetDescriptor.types.ts +var simpleSurroundingPairNames = [ + "angleBrackets", + "backtickQuotes", + "curlyBrackets", + "doubleQuotes", + "escapedDoubleQuotes", + "escapedParentheses", + "escapedSquareBrackets", + "escapedSingleQuotes", + "parentheses", + "singleQuotes", + "squareBrackets" +]; +var complexSurroundingPairNames = [ + "string", + "any", + "collectionBoundary" +]; +var surroundingPairNames = [ + ...simpleSurroundingPairNames, + ...complexSurroundingPairNames +]; + +// ../common/src/types/command/ActionDescriptor.ts +var simpleActionNames = [ + "breakLine", + "clearAndSetSelection", + "copyToClipboard", + "cutToClipboard", + "decrement", + "deselect", + "editNewLineAfter", + "editNewLineBefore", + "experimental.setInstanceReference", + "extractVariable", + "findInDocument", + "findInWorkspace", + "foldRegion", + "followLink", + "increment", + "indentLine", + "insertCopyAfter", + "insertCopyBefore", + "insertEmptyLineAfter", + "insertEmptyLineBefore", + "insertEmptyLinesAround", + "joinLines", + "outdentLine", + "randomizeTargets", + "remove", + "rename", + "revealDefinition", + "revealTypeDefinition", + "reverseTargets", + "scrollToBottom", + "scrollToCenter", + "scrollToTop", + "setSelection", + "setSelectionAfter", + "setSelectionBefore", + "showDebugHover", + "showHover", + "showQuickFix", + "showReferences", + "sortTargets", + "toggleLineBreakpoint", + "toggleLineComment", + "unfoldRegion", + "private.setKeyboardTarget", + "private.showParseTree", + "private.getTargets" +]; +var complexActionNames = [ + "callAsFunction", + "editNew", + "executeCommand", + "generateSnippet", + "getText", + "highlight", + "insertSnippet", + "moveToTarget", + "pasteFromClipboard", + "replace", + "replaceWithTarget", + "rewrapWithPairedDelimiter", + "swapTargets", + "wrapWithPairedDelimiter", + "wrapWithSnippet" +]; +var actionNames = [ + ...simpleActionNames, + ...complexActionNames +]; + +// ../common/src/scopeSupportFacets/scopeSupportFacets.types.ts +var ScopeSupportFacetLevel = /* @__PURE__ */ ((ScopeSupportFacetLevel2) => { + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supported"] = 0] = "supported"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supportedLegacy"] = 1] = "supportedLegacy"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["unsupported"] = 2] = "unsupported"; + ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["notApplicable"] = 3] = "notApplicable"; + return ScopeSupportFacetLevel2; +})(ScopeSupportFacetLevel || {}); + +// ../common/src/scopeSupportFacets/c.ts +var { supported, unsupported, notApplicable } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/clojure.ts +var { supported: supported2, unsupported: unsupported2, notApplicable: notApplicable2 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/cpp.ts +var { supported: supported3, unsupported: unsupported3, notApplicable: notApplicable3 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/csharp.ts +var { supported: supported4, unsupported: unsupported4, notApplicable: notApplicable4 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/css.ts +var { supported: supported5, unsupported: unsupported5, notApplicable: notApplicable5 } = ScopeSupportFacetLevel; +var cssScopeSupport = { + "comment.line": supported5, + "comment.block": supported5, + "string.singleLine": supported5 +}; + +// ../common/src/scopeSupportFacets/go.ts +var { supported: supported6, unsupported: unsupported6, notApplicable: notApplicable6 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/html.ts +var { supported: supported7, notApplicable: notApplicable7 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/java.ts +var { supported: supported8, notApplicable: notApplicable8 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/javascript.ts +var { supported: supported9, unsupported: unsupported7, notApplicable: notApplicable9 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/json.ts +var { supported: supported10 } = ScopeSupportFacetLevel; +var jsonScopeSupport = { + "comment.line": supported10, + "comment.block": supported10 +}; + +// ../common/src/scopeSupportFacets/jsonc.ts +var { supported: supported11, unsupported: unsupported8, notApplicable: notApplicable10 } = ScopeSupportFacetLevel; +var jsoncScopeSupport = { + ...jsonScopeSupport +}; + +// ../common/src/scopeSupportFacets/latex.ts +var { supported: supported12, unsupported: unsupported9, notApplicable: notApplicable11 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/lua.ts +var { supported: supported13, notApplicable: notApplicable12 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/markdown.ts +var { supported: supported14, unsupported: unsupported10, notApplicable: notApplicable13 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/python.ts +var { supported: supported15, supportedLegacy, notApplicable: notApplicable14 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/ruby.ts +var { supported: supported16, unsupported: unsupported11, notApplicable: notApplicable15 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/rust.ts +var { supported: supported17, unsupported: unsupported12, notApplicable: notApplicable16 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/scala.ts +var { supported: supported18, unsupported: unsupported13, notApplicable: notApplicable17 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/scss.ts +var { supported: supported19, unsupported: unsupported14, notApplicable: notApplicable18 } = ScopeSupportFacetLevel; +var scssScopeSupport = { + ...cssScopeSupport +}; + +// ../common/src/scopeSupportFacets/talon.ts +var { supported: supported20 } = ScopeSupportFacetLevel; + +// ../common/src/scopeSupportFacets/typescript.ts +var { supported: supported21 } = ScopeSupportFacetLevel; +var typescriptScopeSupport = { + // ...javascriptScopeSupport, + "type.variable": supported21, + "type.formalParameter": supported21, + "type.return": supported21, + "type.field": supported21, + "type.interface": supported21, + "type.alias": supported21, + "name.field": supported21, + "value.field": supported21 +}; + +// ../common/src/scopeSupportFacets/typescriptreact.ts +var { supported: supported22, unsupported: unsupported15, notApplicable: notApplicable19 } = ScopeSupportFacetLevel; +var typescriptreactScopeSupport = { + ...typescriptScopeSupport +}; + +// src/testSubset.ts +var fs = __toESM(require("fs"), 1); +var path = __toESM(require("path"), 1); +function testSubsetGrepString() { + const inFile = testSubsetFilePath(); + return fs.readFileSync(inFile, "utf-8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#")).join("|"); +} +function testSubsetFilePath() { + return path.join( + getCursorlessRepoRoot(), + "packages", + "test-harness", + "testSubsetGrep.properties" + ); +} +function runTestSubset() { + return process.env.CURSORLESS_RUN_TEST_SUBSET === "true"; +} + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js +var import_brace_expansion = __toESM(require_brace_expansion(), 1); + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +var MAX_PATTERN_LENGTH = 1024 * 64; +var assertValidPattern = (pattern) => { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError("pattern is too long"); + } +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/brace-expressions.js +var posixClasses = { + "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], + "[:alpha:]": ["\\p{L}\\p{Nl}", true], + "[:ascii:]": ["\\x00-\\x7f", false], + "[:blank:]": ["\\p{Zs}\\t", true], + "[:cntrl:]": ["\\p{Cc}", true], + "[:digit:]": ["\\p{Nd}", true], + "[:graph:]": ["\\p{Z}\\p{C}", true, true], + "[:lower:]": ["\\p{Ll}", true], + "[:print:]": ["\\p{C}", true], + "[:punct:]": ["\\p{P}", true], + "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], + "[:upper:]": ["\\p{Lu}", true], + "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], + "[:xdigit:]": ["A-Fa-f0-9", false] +}; +var braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&"); +var regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var rangesToString = (ranges) => ranges.join(""); +var parseClass = (glob2, position) => { + const pos = position; + if (glob2.charAt(pos) !== "[") { + throw new Error("not in a brace expression"); + } + const ranges = []; + const negs = []; + let i = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ""; + WHILE: + while (i < glob2.length) { + const c = glob2.charAt(i); + if ((c === "!" || c === "^") && i === pos + 1) { + negate = true; + i++; + continue; + } + if (c === "]" && sawStart && !escaping) { + endPos = i + 1; + break; + } + sawStart = true; + if (c === "\\") { + if (!escaping) { + escaping = true; + i++; + continue; + } + } + if (c === "[" && !escaping) { + for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { + if (glob2.startsWith(cls, i)) { + if (rangeStart) { + return ["$.", false, glob2.length - pos, true]; + } + i += cls.length; + if (neg) + negs.push(unip); + else + ranges.push(unip); + uflag = uflag || u; + continue WHILE; + } + } + } + escaping = false; + if (rangeStart) { + if (c > rangeStart) { + ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c)); + } else if (c === rangeStart) { + ranges.push(braceEscape(c)); + } + rangeStart = ""; + i++; + continue; + } + if (glob2.startsWith("-]", i + 1)) { + ranges.push(braceEscape(c + "-")); + i += 2; + continue; + } + if (glob2.startsWith("-", i + 1)) { + rangeStart = c; + i += 2; + continue; + } + ranges.push(braceEscape(c)); + i++; + } + if (endPos < i) { + return ["", false, 0, false]; + } + if (!ranges.length && !negs.length) { + return ["$.", false, glob2.length - pos, true]; + } + if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) { + const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r), false, endPos - pos, false]; + } + const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; + const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; + const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs; + return [comb, uflag, endPos - pos, true]; +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/unescape.js +var unescape = (s, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/ast.js +var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]); +var isExtglobType = (c) => types.has(c); +var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))"; +var startNoDot = "(?!\\.)"; +var addPatternStart = /* @__PURE__ */ new Set(["[", "."]); +var justDots = /* @__PURE__ */ new Set(["..", "."]); +var reSpecials = new Set("().*{}+?[]^$\\!"); +var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var qmark = "[^/]"; +var star = qmark + "*?"; +var starNoEmpty = qmark + "+?"; +var AST = class _AST { + type; + #root; + #hasMagic; + #uflag = false; + #parts = []; + #parent; + #parentIndex; + #negs; + #filledNegs = false; + #options; + #toString; + // set to true if it's an extglob with no children + // (which really means one child of '') + #emptyExt = false; + constructor(type2, parent, options = {}) { + this.type = type2; + if (type2) + this.#hasMagic = true; + this.#parent = parent; + this.#root = this.#parent ? this.#parent.#root : this; + this.#options = this.#root === this ? options : this.#root.#options; + this.#negs = this.#root === this ? [] : this.#root.#negs; + if (type2 === "!" && !this.#root.#filledNegs) + this.#negs.push(this); + this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; + } + get hasMagic() { + if (this.#hasMagic !== void 0) + return this.#hasMagic; + for (const p of this.#parts) { + if (typeof p === "string") + continue; + if (p.type || p.hasMagic) + return this.#hasMagic = true; + } + return this.#hasMagic; + } + // reconstructs the pattern + toString() { + if (this.#toString !== void 0) + return this.#toString; + if (!this.type) { + return this.#toString = this.#parts.map((p) => String(p)).join(""); + } else { + return this.#toString = this.type + "(" + this.#parts.map((p) => String(p)).join("|") + ")"; + } + } + #fillNegs() { + if (this !== this.#root) + throw new Error("should only call on root"); + if (this.#filledNegs) + return this; + this.toString(); + this.#filledNegs = true; + let n; + while (n = this.#negs.pop()) { + if (n.type !== "!") + continue; + let p = n; + let pp = p.#parent; + while (pp) { + for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { + for (const part of n.#parts) { + if (typeof part === "string") { + throw new Error("string part in extglob AST??"); + } + part.copyIn(pp.#parts[i]); + } + } + p = pp; + pp = p.#parent; + } + } + return this; + } + push(...parts) { + for (const p of parts) { + if (p === "") + continue; + if (typeof p !== "string" && !(p instanceof _AST && p.#parent === this)) { + throw new Error("invalid part: " + p); + } + this.#parts.push(p); + } + } + toJSON() { + const ret = this.type === null ? this.#parts.slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...this.#parts.map((p) => p.toJSON())]; + if (this.isStart() && !this.type) + ret.unshift([]); + if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) { + ret.push({}); + } + return ret; + } + isStart() { + if (this.#root === this) + return true; + if (!this.#parent?.isStart()) + return false; + if (this.#parentIndex === 0) + return true; + const p = this.#parent; + for (let i = 0; i < this.#parentIndex; i++) { + const pp = p.#parts[i]; + if (!(pp instanceof _AST && pp.type === "!")) { + return false; + } + } + return true; + } + isEnd() { + if (this.#root === this) + return true; + if (this.#parent?.type === "!") + return true; + if (!this.#parent?.isEnd()) + return false; + if (!this.type) + return this.#parent?.isEnd(); + const pl = this.#parent ? this.#parent.#parts.length : 0; + return this.#parentIndex === pl - 1; + } + copyIn(part) { + if (typeof part === "string") + this.push(part); + else + this.push(part.clone(this)); + } + clone(parent) { + const c = new _AST(this.type, parent); + for (const p of this.#parts) { + c.copyIn(p); + } + return c; + } + static #parseAST(str2, ast, pos, opt) { + let escaping = false; + let inBrace = false; + let braceStart = -1; + let braceNeg = false; + if (ast.type === null) { + let i2 = pos; + let acc2 = ""; + while (i2 < str2.length) { + const c = str2.charAt(i2++); + if (escaping || c === "\\") { + escaping = !escaping; + acc2 += c; + continue; + } + if (inBrace) { + if (i2 === braceStart + 1) { + if (c === "^" || c === "!") { + braceNeg = true; + } + } else if (c === "]" && !(i2 === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc2 += c; + continue; + } else if (c === "[") { + inBrace = true; + braceStart = i2; + braceNeg = false; + acc2 += c; + continue; + } + if (!opt.noext && isExtglobType(c) && str2.charAt(i2) === "(") { + ast.push(acc2); + acc2 = ""; + const ext2 = new _AST(c, ast); + i2 = _AST.#parseAST(str2, ext2, i2, opt); + ast.push(ext2); + continue; + } + acc2 += c; + } + ast.push(acc2); + return i2; + } + let i = pos + 1; + let part = new _AST(null, ast); + const parts = []; + let acc = ""; + while (i < str2.length) { + const c = str2.charAt(i++); + if (escaping || c === "\\") { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === "^" || c === "!") { + braceNeg = true; + } + } else if (c === "]" && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } else if (c === "[") { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (isExtglobType(c) && str2.charAt(i) === "(") { + part.push(acc); + acc = ""; + const ext2 = new _AST(c, part); + part.push(ext2); + i = _AST.#parseAST(str2, ext2, i, opt); + continue; + } + if (c === "|") { + part.push(acc); + acc = ""; + parts.push(part); + part = new _AST(null, ast); + continue; + } + if (c === ")") { + if (acc === "" && ast.#parts.length === 0) { + ast.#emptyExt = true; + } + part.push(acc); + acc = ""; + ast.push(...parts, part); + return i; + } + acc += c; + } + ast.type = null; + ast.#hasMagic = void 0; + ast.#parts = [str2.substring(pos - 1)]; + return i; + } + static fromGlob(pattern, options = {}) { + const ast = new _AST(null, void 0, options); + _AST.#parseAST(pattern, ast, 0, options); + return ast; + } + // returns the regular expression if there's magic, or the unescaped + // string if not. + toMMPattern() { + if (this !== this.#root) + return this.#root.toMMPattern(); + const glob2 = this.toString(); + const [re, body, hasMagic2, uflag] = this.toRegExpSource(); + const anyMagic = hasMagic2 || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob2.toUpperCase() !== glob2.toLowerCase(); + if (!anyMagic) { + return body; + } + const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : ""); + return Object.assign(new RegExp(`^${re}$`, flags), { + _src: re, + _glob: glob2 + }); + } + // returns the string match, the regexp source, whether there's magic + // in the regexp (so a regular expression is required) and whether or + // not the uflag is needed for the regular expression (for posix classes) + // TODO: instead of injecting the start/end at this point, just return + // the BODY of the regexp, along with the start/end portions suitable + // for binding the start/end in either a joined full-path makeRe context + // (where we bind to (^|/), or a standalone matchPart context (where + // we bind to ^, and not /). Otherwise slashes get duped! + // + // In part-matching mode, the start is: + // - if not isStart: nothing + // - if traversal possible, but not allowed: ^(?!\.\.?$) + // - if dots allowed or not possible: ^ + // - if dots possible and not allowed: ^(?!\.) + // end is: + // - if not isEnd(): nothing + // - else: $ + // + // In full-path matching mode, we put the slash at the START of the + // pattern, so start is: + // - if first pattern: same as part-matching mode + // - if not isStart(): nothing + // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) + // - if dots allowed or not possible: / + // - if dots possible and not allowed: /(?!\.) + // end is: + // - if last pattern, same as part-matching mode + // - else nothing + // + // Always put the (?:$|/) on negated tails, though, because that has to be + // there to bind the end of the negated pattern portion, and it's easier to + // just stick it in now rather than try to inject it later in the middle of + // the pattern. + // + // We can just always return the same end, and leave it up to the caller + // to know whether it's going to be used joined or in parts. + // And, if the start is adjusted slightly, can do the same there: + // - if not isStart: nothing + // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) + // - if dots allowed or not possible: (?:/|^) + // - if dots possible and not allowed: (?:/|^)(?!\.) + // + // But it's better to have a simpler binding without a conditional, for + // performance, so probably better to return both start options. + // + // Then the caller just ignores the end if it's not the first pattern, + // and the start always gets applied. + // + // But that's always going to be $ if it's the ending pattern, or nothing, + // so the caller can just attach $ at the end of the pattern when building. + // + // So the todo is: + // - better detect what kind of start is needed + // - return both flavors of starting pattern + // - attach $ at the end of the pattern when creating the actual RegExp + // + // Ah, but wait, no, that all only applies to the root when the first pattern + // is not an extglob. If the first pattern IS an extglob, then we need all + // that dot prevention biz to live in the extglob portions, because eg + // +(*|.x*) can match .xy but not .yx. + // + // So, return the two flavors if it's #root and the first child is not an + // AST, otherwise leave it to the child AST to handle it, and there, + // use the (?:^|/) style of start binding. + // + // Even simplified further: + // - Since the start for a join is eg /(?!\.) and the start for a part + // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root + // or start or whatever) and prepend ^ or / at the Regexp construction. + toRegExpSource(allowDot) { + const dot = allowDot ?? !!this.#options.dot; + if (this.#root === this) + this.#fillNegs(); + if (!this.type) { + const noEmpty = this.isStart() && this.isEnd(); + const src = this.#parts.map((p) => { + const [re, _, hasMagic2, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot); + this.#hasMagic = this.#hasMagic || hasMagic2; + this.#uflag = this.#uflag || uflag; + return re; + }).join(""); + let start2 = ""; + if (this.isStart()) { + if (typeof this.#parts[0] === "string") { + const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); + if (!dotTravAllowed) { + const aps = addPatternStart; + const needNoTrav = ( + // dots are allowed, and the pattern starts with [ or . + dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or . + src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or . + src.startsWith("\\.\\.") && aps.has(src.charAt(4)) + ); + const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); + start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ""; + } + } + } + let end = ""; + if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") { + end = "(?:$|\\/)"; + } + const final2 = start2 + src + end; + return [ + final2, + unescape(src), + this.#hasMagic = !!this.#hasMagic, + this.#uflag + ]; + } + const repeated = this.type === "*" || this.type === "+"; + const start = this.type === "!" ? "(?:(?!(?:" : "(?:"; + let body = this.#partsToRegExp(dot); + if (this.isStart() && this.isEnd() && !body && this.type !== "!") { + const s = this.toString(); + this.#parts = [s]; + this.type = null; + this.#hasMagic = void 0; + return [s, unescape(this.toString()), false, false]; + } + let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true); + if (bodyDotAllowed === body) { + bodyDotAllowed = ""; + } + if (bodyDotAllowed) { + body = `(?:${body})(?:${bodyDotAllowed})*?`; + } + let final = ""; + if (this.type === "!" && this.#emptyExt) { + final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty; + } else { + const close = this.type === "!" ? ( + // !() must match something,but !(x) can match '' + "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")" + ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`; + final = start + body + close; + } + return [ + final, + unescape(body), + this.#hasMagic = !!this.#hasMagic, + this.#uflag + ]; + } + #partsToRegExp(dot) { + return this.#parts.map((p) => { + if (typeof p === "string") { + throw new Error("string type in extglob ast??"); + } + const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); + this.#uflag = this.#uflag || uflag; + return re; + }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|"); + } + static #parseGlob(glob2, hasMagic2, noEmpty = false) { + let escaping = false; + let re = ""; + let uflag = false; + for (let i = 0; i < glob2.length; i++) { + const c = glob2.charAt(i); + if (escaping) { + escaping = false; + re += (reSpecials.has(c) ? "\\" : "") + c; + continue; + } + if (c === "\\") { + if (i === glob2.length - 1) { + re += "\\\\"; + } else { + escaping = true; + } + continue; + } + if (c === "[") { + const [src, needUflag, consumed, magic] = parseClass(glob2, i); + if (consumed) { + re += src; + uflag = uflag || needUflag; + i += consumed - 1; + hasMagic2 = hasMagic2 || magic; + continue; + } + } + if (c === "*") { + if (noEmpty && glob2 === "*") + re += starNoEmpty; + else + re += star; + hasMagic2 = true; + continue; + } + if (c === "?") { + re += qmark; + hasMagic2 = true; + continue; + } + re += regExpEscape(c); + } + return [re, unescape(glob2), !!hasMagic2, uflag]; + } +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/escape.js +var escape = (s, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&"); +}; + +// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js +var minimatch = (p, pattern, options = {}) => { + assertValidPattern(pattern); + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch(pattern, options).match(p); +}; +var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; +var starDotExtTest = (ext2) => (f) => !f.startsWith(".") && f.endsWith(ext2); +var starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2); +var starDotExtTestNocase = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext2); +}; +var starDotExtTestNocaseDot = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f) => f.toLowerCase().endsWith(ext2); +}; +var starDotStarRE = /^\*+\.\*+$/; +var starDotStarTest = (f) => !f.startsWith(".") && f.includes("."); +var starDotStarTestDot = (f) => f !== "." && f !== ".." && f.includes("."); +var dotStarRE = /^\.\*+$/; +var dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith("."); +var starRE = /^\*+$/; +var starTest = (f) => f.length !== 0 && !f.startsWith("."); +var starTestDot = (f) => f.length !== 0 && f !== "." && f !== ".."; +var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; +var qmarksTestNocase = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext2); +}; +var qmarksTestNocaseDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext2); +}; +var qmarksTestDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); +}; +var qmarksTest = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); +}; +var qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && !f.startsWith("."); +}; +var qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && f !== "." && f !== ".."; +}; +var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; +var path2 = { + win32: { sep: "\\" }, + posix: { sep: "/" } +}; +var sep = defaultPlatform === "win32" ? path2.win32.sep : path2.posix.sep; +minimatch.sep = sep; +var GLOBSTAR = Symbol("globstar **"); +minimatch.GLOBSTAR = GLOBSTAR; +var qmark2 = "[^/]"; +var star2 = qmark2 + "*?"; +var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; +var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; +var filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options); +minimatch.filter = filter; +var ext = (a, b = {}) => Object.assign({}, a, b); +var defaults = (def) => { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return minimatch; + } + const orig = minimatch; + const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options)); + return Object.assign(m, { + Minimatch: class Minimatch extends orig.Minimatch { + constructor(pattern, options = {}) { + super(pattern, ext(def, options)); + } + static defaults(options) { + return orig.defaults(ext(def, options)).Minimatch; + } + }, + AST: class AST extends orig.AST { + /* c8 ignore start */ + constructor(type2, parent, options = {}) { + super(type2, parent, ext(def, options)); + } + /* c8 ignore stop */ + static fromGlob(pattern, options = {}) { + return orig.AST.fromGlob(pattern, ext(def, options)); + } + }, + unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), + escape: (s, options = {}) => orig.escape(s, ext(def, options)), + filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), + defaults: (options) => orig.defaults(ext(def, options)), + makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), + braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), + match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), + sep: orig.sep, + GLOBSTAR + }); +}; +minimatch.defaults = defaults; +var braceExpand = (pattern, options = {}) => { + assertValidPattern(pattern); + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + return [pattern]; + } + return (0, import_brace_expansion.default)(pattern); +}; +minimatch.braceExpand = braceExpand; +var makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); +minimatch.makeRe = makeRe; +var match = (list, pattern, options = {}) => { + const mm = new Minimatch(pattern, options); + list = list.filter((f) => mm.match(f)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; +}; +minimatch.match = match; +var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; +var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +var Minimatch = class { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options = {}) { + assertValidPattern(pattern); + options = options || {}; + this.options = options; + this.pattern = pattern; + this.platform = options.platform || defaultPlatform; + this.isWindows = this.platform === "win32"; + this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, "/"); + } + this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { + return true; + } + for (const pattern of this.set) { + for (const part of pattern) { + if (typeof part !== "string") + return true; + } + } + return false; + } + debug(..._) { + } + make() { + const pattern = this.pattern; + const options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + this.globSet = [...new Set(this.braceExpand())]; + if (options.debug) { + this.debug = (...args) => console.error(...args); + } + this.debug(this.pattern, this.globSet); + const rawGlobParts = this.globSet.map((s) => this.slashSplit(s)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + let set2 = this.globParts.map((s, _, __) => { + if (this.isWindows && this.windowsNoMagicRoot) { + const isUNC = s[0] === "" && s[1] === "" && (s[2] === "?" || !globMagic.test(s[2])) && !globMagic.test(s[3]); + const isDrive = /^[a-z]:/i.test(s[0]); + if (isUNC) { + return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))]; + } else if (isDrive) { + return [s[0], ...s.slice(1).map((ss) => this.parse(ss))]; + } + } + return s.map((ss) => this.parse(ss)); + }); + this.debug(this.pattern, set2); + this.set = set2.filter((s) => s.indexOf(false) === -1); + if (this.isWindows) { + for (let i = 0; i < this.set.length; i++) { + const p = this.set[i]; + if (p[0] === "" && p[1] === "" && this.globParts[i][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) { + p[2] = "?"; + } + } + } + this.debug(this.pattern, this.set); + } + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + if (this.options.noglobstar) { + for (let i = 0; i < globParts.length; i++) { + for (let j = 0; j < globParts[i].length; j++) { + if (globParts[i][j] === "**") { + globParts[i][j] = "*"; + } + } + } + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + globParts = this.firstPhasePreProcess(globParts); + globParts = this.secondPhasePreProcess(globParts); + } else if (optimizationLevel >= 1) { + globParts = this.levelOneOptimize(globParts); + } else { + globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; + } + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map((parts) => { + let gs = -1; + while (-1 !== (gs = parts.indexOf("**", gs + 1))) { + let i = gs; + while (parts[i + 1] === "**") { + i++; + } + if (i !== gs) { + parts.splice(gs, i - gs); + } + } + return parts; + }); + } + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map((parts) => { + parts = parts.reduce((set2, part) => { + const prev = set2[set2.length - 1]; + if (part === "**" && prev === "**") { + return set2; + } + if (part === "..") { + if (prev && prev !== ".." && prev !== "." && prev !== "**") { + set2.pop(); + return set2; + } + } + set2.push(part); + return set2; + }, []); + return parts.length === 0 ? [""] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { + didSomething = false; + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + if (i === 1 && p === "" && parts[0] === "") + continue; + if (p === "." || p === "") { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) { + didSomething = true; + parts.pop(); + } + } + let dd = 0; + while (-1 !== (dd = parts.indexOf("..", dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== "." && p !== ".." && p !== "**") { + didSomething = true; + parts.splice(dd - 1, 2); + dd -= 2; + } + } + } while (didSomething); + return parts.length === 0 ? [""] : parts; + } + // First phase: single-pattern processing + //
     is 1 or more portions
    +  //  is 1 or more portions
    +  // 

    is any portion other than ., .., '', or ** + // is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + //

    /**/../

    /

    / -> {

    /../

    /

    /,

    /**/

    /

    /} + //

    // -> 
    /
    +  // 
    /

    /../ ->

    /
    +  // **/**/ -> **/
    +  //
    +  // **/*/ -> */**/ <== not valid because ** doesn't follow
    +  // this WOULD be allowed if ** did follow symlinks, or * didn't
    +  firstPhasePreProcess(globParts) {
    +    let didSomething = false;
    +    do {
    +      didSomething = false;
    +      for (let parts of globParts) {
    +        let gs = -1;
    +        while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
    +          let gss = gs;
    +          while (parts[gss + 1] === "**") {
    +            gss++;
    +          }
    +          if (gss > gs) {
    +            parts.splice(gs + 1, gss - gs);
    +          }
    +          let next = parts[gs + 1];
    +          const p = parts[gs + 2];
    +          const p2 = parts[gs + 3];
    +          if (next !== "..")
    +            continue;
    +          if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
    +            continue;
    +          }
    +          didSomething = true;
    +          parts.splice(gs, 1);
    +          const other = parts.slice(0);
    +          other[gs] = "**";
    +          globParts.push(other);
    +          gs--;
    +        }
    +        if (!this.preserveMultipleSlashes) {
    +          for (let i = 1; i < parts.length - 1; i++) {
    +            const p = parts[i];
    +            if (i === 1 && p === "" && parts[0] === "")
    +              continue;
    +            if (p === "." || p === "") {
    +              didSomething = true;
    +              parts.splice(i, 1);
    +              i--;
    +            }
    +          }
    +          if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
    +            didSomething = true;
    +            parts.pop();
    +          }
    +        }
    +        let dd = 0;
    +        while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
    +          const p = parts[dd - 1];
    +          if (p && p !== "." && p !== ".." && p !== "**") {
    +            didSomething = true;
    +            const needDot = dd === 1 && parts[dd + 1] === "**";
    +            const splin = needDot ? ["."] : [];
    +            parts.splice(dd - 1, 2, ...splin);
    +            if (parts.length === 0)
    +              parts.push("");
    +            dd -= 2;
    +          }
    +        }
    +      }
    +    } while (didSomething);
    +    return globParts;
    +  }
    +  // second phase: multi-pattern dedupes
    +  // {
    /*/,
    /

    /} ->

    /*/
    +  // {
    /,
    /} -> 
    /
    +  // {
    /**/,
    /} -> 
    /**/
    +  //
    +  // {
    /**/,
    /**/

    /} ->

    /**/
    +  // ^-- not valid because ** doens't follow symlinks
    +  secondPhasePreProcess(globParts) {
    +    for (let i = 0; i < globParts.length - 1; i++) {
    +      for (let j = i + 1; j < globParts.length; j++) {
    +        const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
    +        if (!matched)
    +          continue;
    +        globParts[i] = matched;
    +        globParts[j] = [];
    +      }
    +    }
    +    return globParts.filter((gs) => gs.length);
    +  }
    +  partsMatch(a, b, emptyGSMatch = false) {
    +    let ai = 0;
    +    let bi = 0;
    +    let result = [];
    +    let which = "";
    +    while (ai < a.length && bi < b.length) {
    +      if (a[ai] === b[bi]) {
    +        result.push(which === "b" ? b[bi] : a[ai]);
    +        ai++;
    +        bi++;
    +      } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
    +        result.push(a[ai]);
    +        ai++;
    +      } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
    +        result.push(b[bi]);
    +        bi++;
    +      } else if (a[ai] === "*" && b[bi] && (this.options.dot || !b[bi].startsWith(".")) && b[bi] !== "**") {
    +        if (which === "b")
    +          return false;
    +        which = "a";
    +        result.push(a[ai]);
    +        ai++;
    +        bi++;
    +      } else if (b[bi] === "*" && a[ai] && (this.options.dot || !a[ai].startsWith(".")) && a[ai] !== "**") {
    +        if (which === "a")
    +          return false;
    +        which = "b";
    +        result.push(b[bi]);
    +        ai++;
    +        bi++;
    +      } else {
    +        return false;
    +      }
    +    }
    +    return a.length === b.length && result;
    +  }
    +  parseNegate() {
    +    if (this.nonegate)
    +      return;
    +    const pattern = this.pattern;
    +    let negate = false;
    +    let negateOffset = 0;
    +    for (let i = 0; i < pattern.length && pattern.charAt(i) === "!"; i++) {
    +      negate = !negate;
    +      negateOffset++;
    +    }
    +    if (negateOffset)
    +      this.pattern = pattern.slice(negateOffset);
    +    this.negate = negate;
    +  }
    +  // set partial to true to test if, for example,
    +  // "/a/b" matches the start of "/*/b/*/d"
    +  // Partial means, if you run out of file before you run
    +  // out of pattern, then that's fine, as long as all
    +  // the parts match.
    +  matchOne(file, pattern, partial = false) {
    +    const options = this.options;
    +    if (this.isWindows) {
    +      const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
    +      const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
    +      const patternDrive = typeof pattern[0] === "string" && /^[a-z]:$/i.test(pattern[0]);
    +      const patternUNC = !patternDrive && pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
    +      const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
    +      const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
    +      if (typeof fdi === "number" && typeof pdi === "number") {
    +        const [fd, pd] = [file[fdi], pattern[pdi]];
    +        if (fd.toLowerCase() === pd.toLowerCase()) {
    +          pattern[pdi] = fd;
    +          if (pdi > fdi) {
    +            pattern = pattern.slice(pdi);
    +          } else if (fdi > pdi) {
    +            file = file.slice(fdi);
    +          }
    +        }
    +      }
    +    }
    +    const { optimizationLevel = 1 } = this.options;
    +    if (optimizationLevel >= 2) {
    +      file = this.levelTwoFileOptimize(file);
    +    }
    +    this.debug("matchOne", this, { file, pattern });
    +    this.debug("matchOne", file.length, pattern.length);
    +    for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
    +      this.debug("matchOne loop");
    +      var p = pattern[pi];
    +      var f = file[fi];
    +      this.debug(pattern, p, f);
    +      if (p === false) {
    +        return false;
    +      }
    +      if (p === GLOBSTAR) {
    +        this.debug("GLOBSTAR", [pattern, p, f]);
    +        var fr = fi;
    +        var pr = pi + 1;
    +        if (pr === pl) {
    +          this.debug("** at the end");
    +          for (; fi < fl; fi++) {
    +            if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
    +              return false;
    +          }
    +          return true;
    +        }
    +        while (fr < fl) {
    +          var swallowee = file[fr];
    +          this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
    +          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
    +            this.debug("globstar found match!", fr, fl, swallowee);
    +            return true;
    +          } else {
    +            if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
    +              this.debug("dot detected!", file, fr, pattern, pr);
    +              break;
    +            }
    +            this.debug("globstar swallow a segment, and continue");
    +            fr++;
    +          }
    +        }
    +        if (partial) {
    +          this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
    +          if (fr === fl) {
    +            return true;
    +          }
    +        }
    +        return false;
    +      }
    +      let hit;
    +      if (typeof p === "string") {
    +        hit = f === p;
    +        this.debug("string match", p, f, hit);
    +      } else {
    +        hit = p.test(f);
    +        this.debug("pattern match", p, f, hit);
    +      }
    +      if (!hit)
    +        return false;
    +    }
    +    if (fi === fl && pi === pl) {
    +      return true;
    +    } else if (fi === fl) {
    +      return partial;
    +    } else if (pi === pl) {
    +      return fi === fl - 1 && file[fi] === "";
    +    } else {
    +      throw new Error("wtf?");
    +    }
    +  }
    +  braceExpand() {
    +    return braceExpand(this.pattern, this.options);
    +  }
    +  parse(pattern) {
    +    assertValidPattern(pattern);
    +    const options = this.options;
    +    if (pattern === "**")
    +      return GLOBSTAR;
    +    if (pattern === "")
    +      return "";
    +    let m;
    +    let fastTest = null;
    +    if (m = pattern.match(starRE)) {
    +      fastTest = options.dot ? starTestDot : starTest;
    +    } else if (m = pattern.match(starDotExtRE)) {
    +      fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m[1]);
    +    } else if (m = pattern.match(qmarksRE)) {
    +      fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m);
    +    } else if (m = pattern.match(starDotStarRE)) {
    +      fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
    +    } else if (m = pattern.match(dotStarRE)) {
    +      fastTest = dotStarTest;
    +    }
    +    const re = AST.fromGlob(pattern, this.options).toMMPattern();
    +    return fastTest ? Object.assign(re, { test: fastTest }) : re;
    +  }
    +  makeRe() {
    +    if (this.regexp || this.regexp === false)
    +      return this.regexp;
    +    const set2 = this.set;
    +    if (!set2.length) {
    +      this.regexp = false;
    +      return this.regexp;
    +    }
    +    const options = this.options;
    +    const twoStar = options.noglobstar ? star2 : options.dot ? twoStarDot : twoStarNoDot;
    +    const flags = new Set(options.nocase ? ["i"] : []);
    +    let re = set2.map((pattern) => {
    +      const pp = pattern.map((p) => {
    +        if (p instanceof RegExp) {
    +          for (const f of p.flags.split(""))
    +            flags.add(f);
    +        }
    +        return typeof p === "string" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;
    +      });
    +      pp.forEach((p, i) => {
    +        const next = pp[i + 1];
    +        const prev = pp[i - 1];
    +        if (p !== GLOBSTAR || prev === GLOBSTAR) {
    +          return;
    +        }
    +        if (prev === void 0) {
    +          if (next !== void 0 && next !== GLOBSTAR) {
    +            pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
    +          } else {
    +            pp[i] = twoStar;
    +          }
    +        } else if (next === void 0) {
    +          pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
    +        } else if (next !== GLOBSTAR) {
    +          pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
    +          pp[i + 1] = GLOBSTAR;
    +        }
    +      });
    +      return pp.filter((p) => p !== GLOBSTAR).join("/");
    +    }).join("|");
    +    const [open, close] = set2.length > 1 ? ["(?:", ")"] : ["", ""];
    +    re = "^" + open + re + close + "$";
    +    if (this.negate)
    +      re = "^(?!" + re + ").+$";
    +    try {
    +      this.regexp = new RegExp(re, [...flags].join(""));
    +    } catch (ex) {
    +      this.regexp = false;
    +    }
    +    return this.regexp;
    +  }
    +  slashSplit(p) {
    +    if (this.preserveMultipleSlashes) {
    +      return p.split("/");
    +    } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
    +      return ["", ...p.split(/\/+/)];
    +    } else {
    +      return p.split(/\/+/);
    +    }
    +  }
    +  match(f, partial = this.partial) {
    +    this.debug("match", f, this.pattern);
    +    if (this.comment) {
    +      return false;
    +    }
    +    if (this.empty) {
    +      return f === "";
    +    }
    +    if (f === "/" && partial) {
    +      return true;
    +    }
    +    const options = this.options;
    +    if (this.isWindows) {
    +      f = f.split("\\").join("/");
    +    }
    +    const ff = this.slashSplit(f);
    +    this.debug(this.pattern, "split", ff);
    +    const set2 = this.set;
    +    this.debug(this.pattern, "set", set2);
    +    let filename = ff[ff.length - 1];
    +    if (!filename) {
    +      for (let i = ff.length - 2; !filename && i >= 0; i--) {
    +        filename = ff[i];
    +      }
    +    }
    +    for (let i = 0; i < set2.length; i++) {
    +      const pattern = set2[i];
    +      let file = ff;
    +      if (options.matchBase && pattern.length === 1) {
    +        file = [filename];
    +      }
    +      const hit = this.matchOne(file, pattern, partial);
    +      if (hit) {
    +        if (options.flipNegate) {
    +          return true;
    +        }
    +        return !this.negate;
    +      }
    +    }
    +    if (options.flipNegate) {
    +      return false;
    +    }
    +    return this.negate;
    +  }
    +  static defaults(def) {
    +    return minimatch.defaults(def).Minimatch;
    +  }
    +};
    +minimatch.AST = AST;
    +minimatch.Minimatch = Minimatch;
    +minimatch.escape = escape;
    +minimatch.unescape = unescape;
    +
    +// ../../node_modules/.pnpm/lru-cache@10.2.0/node_modules/lru-cache/dist/esm/index.js
    +var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
    +var warned = /* @__PURE__ */ new Set();
    +var PROCESS = typeof process === "object" && !!process ? process : {};
    +var emitWarning = (msg, type2, code, fn) => {
    +  typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type2, code, fn) : console.error(`[${code}] ${type2}: ${msg}`);
    +};
    +var AC = globalThis.AbortController;
    +var AS = globalThis.AbortSignal;
    +if (typeof AC === "undefined") {
    +  AS = class AbortSignal {
    +    onabort;
    +    _onabort = [];
    +    reason;
    +    aborted = false;
    +    addEventListener(_, fn) {
    +      this._onabort.push(fn);
    +    }
    +  };
    +  AC = class AbortController {
    +    constructor() {
    +      warnACPolyfill();
    +    }
    +    signal = new AS();
    +    abort(reason) {
    +      if (this.signal.aborted)
    +        return;
    +      this.signal.reason = reason;
    +      this.signal.aborted = true;
    +      for (const fn of this.signal._onabort) {
    +        fn(reason);
    +      }
    +      this.signal.onabort?.(reason);
    +    }
    +  };
    +  let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
    +  const warnACPolyfill = () => {
    +    if (!printACPolyfillWarning)
    +      return;
    +    printACPolyfillWarning = false;
    +    emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
    +  };
    +}
    +var shouldWarn = (code) => !warned.has(code);
    +var TYPE = Symbol("type");
    +var isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
    +var getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
    +var ZeroArray = class extends Array {
    +  constructor(size) {
    +    super(size);
    +    this.fill(0);
    +  }
    +};
    +var Stack = class _Stack {
    +  heap;
    +  length;
    +  // private constructor
    +  static #constructing = false;
    +  static create(max) {
    +    const HeapCls = getUintArray(max);
    +    if (!HeapCls)
    +      return [];
    +    _Stack.#constructing = true;
    +    const s = new _Stack(max, HeapCls);
    +    _Stack.#constructing = false;
    +    return s;
    +  }
    +  constructor(max, HeapCls) {
    +    if (!_Stack.#constructing) {
    +      throw new TypeError("instantiate Stack using Stack.create(n)");
    +    }
    +    this.heap = new HeapCls(max);
    +    this.length = 0;
    +  }
    +  push(n) {
    +    this.heap[this.length++] = n;
    +  }
    +  pop() {
    +    return this.heap[--this.length];
    +  }
    +};
    +var LRUCache = class _LRUCache {
    +  // properties coming in from the options of these, only max and maxSize
    +  // really *need* to be protected. The rest can be modified, as they just
    +  // set defaults for various methods.
    +  #max;
    +  #maxSize;
    +  #dispose;
    +  #disposeAfter;
    +  #fetchMethod;
    +  /**
    +   * {@link LRUCache.OptionsBase.ttl}
    +   */
    +  ttl;
    +  /**
    +   * {@link LRUCache.OptionsBase.ttlResolution}
    +   */
    +  ttlResolution;
    +  /**
    +   * {@link LRUCache.OptionsBase.ttlAutopurge}
    +   */
    +  ttlAutopurge;
    +  /**
    +   * {@link LRUCache.OptionsBase.updateAgeOnGet}
    +   */
    +  updateAgeOnGet;
    +  /**
    +   * {@link LRUCache.OptionsBase.updateAgeOnHas}
    +   */
    +  updateAgeOnHas;
    +  /**
    +   * {@link LRUCache.OptionsBase.allowStale}
    +   */
    +  allowStale;
    +  /**
    +   * {@link LRUCache.OptionsBase.noDisposeOnSet}
    +   */
    +  noDisposeOnSet;
    +  /**
    +   * {@link LRUCache.OptionsBase.noUpdateTTL}
    +   */
    +  noUpdateTTL;
    +  /**
    +   * {@link LRUCache.OptionsBase.maxEntrySize}
    +   */
    +  maxEntrySize;
    +  /**
    +   * {@link LRUCache.OptionsBase.sizeCalculation}
    +   */
    +  sizeCalculation;
    +  /**
    +   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
    +   */
    +  noDeleteOnFetchRejection;
    +  /**
    +   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
    +   */
    +  noDeleteOnStaleGet;
    +  /**
    +   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
    +   */
    +  allowStaleOnFetchAbort;
    +  /**
    +   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
    +   */
    +  allowStaleOnFetchRejection;
    +  /**
    +   * {@link LRUCache.OptionsBase.ignoreFetchAbort}
    +   */
    +  ignoreFetchAbort;
    +  // computed properties
    +  #size;
    +  #calculatedSize;
    +  #keyMap;
    +  #keyList;
    +  #valList;
    +  #next;
    +  #prev;
    +  #head;
    +  #tail;
    +  #free;
    +  #disposed;
    +  #sizes;
    +  #starts;
    +  #ttls;
    +  #hasDispose;
    +  #hasFetchMethod;
    +  #hasDisposeAfter;
    +  /**
    +   * Do not call this method unless you need to inspect the
    +   * inner workings of the cache.  If anything returned by this
    +   * object is modified in any way, strange breakage may occur.
    +   *
    +   * These fields are private for a reason!
    +   *
    +   * @internal
    +   */
    +  static unsafeExposeInternals(c) {
    +    return {
    +      // properties
    +      starts: c.#starts,
    +      ttls: c.#ttls,
    +      sizes: c.#sizes,
    +      keyMap: c.#keyMap,
    +      keyList: c.#keyList,
    +      valList: c.#valList,
    +      next: c.#next,
    +      prev: c.#prev,
    +      get head() {
    +        return c.#head;
    +      },
    +      get tail() {
    +        return c.#tail;
    +      },
    +      free: c.#free,
    +      // methods
    +      isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
    +      backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),
    +      moveToTail: (index) => c.#moveToTail(index),
    +      indexes: (options) => c.#indexes(options),
    +      rindexes: (options) => c.#rindexes(options),
    +      isStale: (index) => c.#isStale(index)
    +    };
    +  }
    +  // Protected read-only members
    +  /**
    +   * {@link LRUCache.OptionsBase.max} (read-only)
    +   */
    +  get max() {
    +    return this.#max;
    +  }
    +  /**
    +   * {@link LRUCache.OptionsBase.maxSize} (read-only)
    +   */
    +  get maxSize() {
    +    return this.#maxSize;
    +  }
    +  /**
    +   * The total computed size of items in the cache (read-only)
    +   */
    +  get calculatedSize() {
    +    return this.#calculatedSize;
    +  }
    +  /**
    +   * The number of items stored in the cache (read-only)
    +   */
    +  get size() {
    +    return this.#size;
    +  }
    +  /**
    +   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
    +   */
    +  get fetchMethod() {
    +    return this.#fetchMethod;
    +  }
    +  /**
    +   * {@link LRUCache.OptionsBase.dispose} (read-only)
    +   */
    +  get dispose() {
    +    return this.#dispose;
    +  }
    +  /**
    +   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
    +   */
    +  get disposeAfter() {
    +    return this.#disposeAfter;
    +  }
    +  constructor(options) {
    +    const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options;
    +    if (max !== 0 && !isPosInt(max)) {
    +      throw new TypeError("max option must be a nonnegative integer");
    +    }
    +    const UintArray = max ? getUintArray(max) : Array;
    +    if (!UintArray) {
    +      throw new Error("invalid max value: " + max);
    +    }
    +    this.#max = max;
    +    this.#maxSize = maxSize;
    +    this.maxEntrySize = maxEntrySize || this.#maxSize;
    +    this.sizeCalculation = sizeCalculation;
    +    if (this.sizeCalculation) {
    +      if (!this.#maxSize && !this.maxEntrySize) {
    +        throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
    +      }
    +      if (typeof this.sizeCalculation !== "function") {
    +        throw new TypeError("sizeCalculation set to non-function");
    +      }
    +    }
    +    if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
    +      throw new TypeError("fetchMethod must be a function if specified");
    +    }
    +    this.#fetchMethod = fetchMethod;
    +    this.#hasFetchMethod = !!fetchMethod;
    +    this.#keyMap = /* @__PURE__ */ new Map();
    +    this.#keyList = new Array(max).fill(void 0);
    +    this.#valList = new Array(max).fill(void 0);
    +    this.#next = new UintArray(max);
    +    this.#prev = new UintArray(max);
    +    this.#head = 0;
    +    this.#tail = 0;
    +    this.#free = Stack.create(max);
    +    this.#size = 0;
    +    this.#calculatedSize = 0;
    +    if (typeof dispose === "function") {
    +      this.#dispose = dispose;
    +    }
    +    if (typeof disposeAfter === "function") {
    +      this.#disposeAfter = disposeAfter;
    +      this.#disposed = [];
    +    } else {
    +      this.#disposeAfter = void 0;
    +      this.#disposed = void 0;
    +    }
    +    this.#hasDispose = !!this.#dispose;
    +    this.#hasDisposeAfter = !!this.#disposeAfter;
    +    this.noDisposeOnSet = !!noDisposeOnSet;
    +    this.noUpdateTTL = !!noUpdateTTL;
    +    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
    +    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
    +    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
    +    this.ignoreFetchAbort = !!ignoreFetchAbort;
    +    if (this.maxEntrySize !== 0) {
    +      if (this.#maxSize !== 0) {
    +        if (!isPosInt(this.#maxSize)) {
    +          throw new TypeError("maxSize must be a positive integer if specified");
    +        }
    +      }
    +      if (!isPosInt(this.maxEntrySize)) {
    +        throw new TypeError("maxEntrySize must be a positive integer if specified");
    +      }
    +      this.#initializeSizeTracking();
    +    }
    +    this.allowStale = !!allowStale;
    +    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
    +    this.updateAgeOnGet = !!updateAgeOnGet;
    +    this.updateAgeOnHas = !!updateAgeOnHas;
    +    this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
    +    this.ttlAutopurge = !!ttlAutopurge;
    +    this.ttl = ttl || 0;
    +    if (this.ttl) {
    +      if (!isPosInt(this.ttl)) {
    +        throw new TypeError("ttl must be a positive integer if specified");
    +      }
    +      this.#initializeTTLTracking();
    +    }
    +    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
    +      throw new TypeError("At least one of max, maxSize, or ttl is required");
    +    }
    +    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
    +      const code = "LRU_CACHE_UNBOUNDED";
    +      if (shouldWarn(code)) {
    +        warned.add(code);
    +        const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
    +        emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
    +      }
    +    }
    +  }
    +  /**
    +   * Return the remaining TTL time for a given entry key
    +   */
    +  getRemainingTTL(key) {
    +    return this.#keyMap.has(key) ? Infinity : 0;
    +  }
    +  #initializeTTLTracking() {
    +    const ttls = new ZeroArray(this.#max);
    +    const starts = new ZeroArray(this.#max);
    +    this.#ttls = ttls;
    +    this.#starts = starts;
    +    this.#setItemTTL = (index, ttl, start = perf.now()) => {
    +      starts[index] = ttl !== 0 ? start : 0;
    +      ttls[index] = ttl;
    +      if (ttl !== 0 && this.ttlAutopurge) {
    +        const t = setTimeout(() => {
    +          if (this.#isStale(index)) {
    +            this.delete(this.#keyList[index]);
    +          }
    +        }, ttl + 1);
    +        if (t.unref) {
    +          t.unref();
    +        }
    +      }
    +    };
    +    this.#updateItemAge = (index) => {
    +      starts[index] = ttls[index] !== 0 ? perf.now() : 0;
    +    };
    +    this.#statusTTL = (status, index) => {
    +      if (ttls[index]) {
    +        const ttl = ttls[index];
    +        const start = starts[index];
    +        if (!ttl || !start)
    +          return;
    +        status.ttl = ttl;
    +        status.start = start;
    +        status.now = cachedNow || getNow();
    +        const age = status.now - start;
    +        status.remainingTTL = ttl - age;
    +      }
    +    };
    +    let cachedNow = 0;
    +    const getNow = () => {
    +      const n = perf.now();
    +      if (this.ttlResolution > 0) {
    +        cachedNow = n;
    +        const t = setTimeout(() => cachedNow = 0, this.ttlResolution);
    +        if (t.unref) {
    +          t.unref();
    +        }
    +      }
    +      return n;
    +    };
    +    this.getRemainingTTL = (key) => {
    +      const index = this.#keyMap.get(key);
    +      if (index === void 0) {
    +        return 0;
    +      }
    +      const ttl = ttls[index];
    +      const start = starts[index];
    +      if (!ttl || !start) {
    +        return Infinity;
    +      }
    +      const age = (cachedNow || getNow()) - start;
    +      return ttl - age;
    +    };
    +    this.#isStale = (index) => {
    +      const s = starts[index];
    +      const t = ttls[index];
    +      return !!t && !!s && (cachedNow || getNow()) - s > t;
    +    };
    +  }
    +  // conditionally set private methods related to TTL
    +  #updateItemAge = () => {
    +  };
    +  #statusTTL = () => {
    +  };
    +  #setItemTTL = () => {
    +  };
    +  /* c8 ignore stop */
    +  #isStale = () => false;
    +  #initializeSizeTracking() {
    +    const sizes = new ZeroArray(this.#max);
    +    this.#calculatedSize = 0;
    +    this.#sizes = sizes;
    +    this.#removeItemSize = (index) => {
    +      this.#calculatedSize -= sizes[index];
    +      sizes[index] = 0;
    +    };
    +    this.#requireSize = (k, v, size, sizeCalculation) => {
    +      if (this.#isBackgroundFetch(v)) {
    +        return 0;
    +      }
    +      if (!isPosInt(size)) {
    +        if (sizeCalculation) {
    +          if (typeof sizeCalculation !== "function") {
    +            throw new TypeError("sizeCalculation must be a function");
    +          }
    +          size = sizeCalculation(v, k);
    +          if (!isPosInt(size)) {
    +            throw new TypeError("sizeCalculation return invalid (expect positive integer)");
    +          }
    +        } else {
    +          throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
    +        }
    +      }
    +      return size;
    +    };
    +    this.#addItemSize = (index, size, status) => {
    +      sizes[index] = size;
    +      if (this.#maxSize) {
    +        const maxSize = this.#maxSize - sizes[index];
    +        while (this.#calculatedSize > maxSize) {
    +          this.#evict(true);
    +        }
    +      }
    +      this.#calculatedSize += sizes[index];
    +      if (status) {
    +        status.entrySize = size;
    +        status.totalCalculatedSize = this.#calculatedSize;
    +      }
    +    };
    +  }
    +  #removeItemSize = (_i) => {
    +  };
    +  #addItemSize = (_i, _s, _st) => {
    +  };
    +  #requireSize = (_k, _v, size, sizeCalculation) => {
    +    if (size || sizeCalculation) {
    +      throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
    +    }
    +    return 0;
    +  };
    +  *#indexes({ allowStale = this.allowStale } = {}) {
    +    if (this.#size) {
    +      for (let i = this.#tail; true; ) {
    +        if (!this.#isValidIndex(i)) {
    +          break;
    +        }
    +        if (allowStale || !this.#isStale(i)) {
    +          yield i;
    +        }
    +        if (i === this.#head) {
    +          break;
    +        } else {
    +          i = this.#prev[i];
    +        }
    +      }
    +    }
    +  }
    +  *#rindexes({ allowStale = this.allowStale } = {}) {
    +    if (this.#size) {
    +      for (let i = this.#head; true; ) {
    +        if (!this.#isValidIndex(i)) {
    +          break;
    +        }
    +        if (allowStale || !this.#isStale(i)) {
    +          yield i;
    +        }
    +        if (i === this.#tail) {
    +          break;
    +        } else {
    +          i = this.#next[i];
    +        }
    +      }
    +    }
    +  }
    +  #isValidIndex(index) {
    +    return index !== void 0 && this.#keyMap.get(this.#keyList[index]) === index;
    +  }
    +  /**
    +   * Return a generator yielding `[key, value]` pairs,
    +   * in order from most recently used to least recently used.
    +   */
    +  *entries() {
    +    for (const i of this.#indexes()) {
    +      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield [this.#keyList[i], this.#valList[i]];
    +      }
    +    }
    +  }
    +  /**
    +   * Inverse order version of {@link LRUCache.entries}
    +   *
    +   * Return a generator yielding `[key, value]` pairs,
    +   * in order from least recently used to most recently used.
    +   */
    +  *rentries() {
    +    for (const i of this.#rindexes()) {
    +      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield [this.#keyList[i], this.#valList[i]];
    +      }
    +    }
    +  }
    +  /**
    +   * Return a generator yielding the keys in the cache,
    +   * in order from most recently used to least recently used.
    +   */
    +  *keys() {
    +    for (const i of this.#indexes()) {
    +      const k = this.#keyList[i];
    +      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield k;
    +      }
    +    }
    +  }
    +  /**
    +   * Inverse order version of {@link LRUCache.keys}
    +   *
    +   * Return a generator yielding the keys in the cache,
    +   * in order from least recently used to most recently used.
    +   */
    +  *rkeys() {
    +    for (const i of this.#rindexes()) {
    +      const k = this.#keyList[i];
    +      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield k;
    +      }
    +    }
    +  }
    +  /**
    +   * Return a generator yielding the values in the cache,
    +   * in order from most recently used to least recently used.
    +   */
    +  *values() {
    +    for (const i of this.#indexes()) {
    +      const v = this.#valList[i];
    +      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield this.#valList[i];
    +      }
    +    }
    +  }
    +  /**
    +   * Inverse order version of {@link LRUCache.values}
    +   *
    +   * Return a generator yielding the values in the cache,
    +   * in order from least recently used to most recently used.
    +   */
    +  *rvalues() {
    +    for (const i of this.#rindexes()) {
    +      const v = this.#valList[i];
    +      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    +        yield this.#valList[i];
    +      }
    +    }
    +  }
    +  /**
    +   * Iterating over the cache itself yields the same results as
    +   * {@link LRUCache.entries}
    +   */
    +  [Symbol.iterator]() {
    +    return this.entries();
    +  }
    +  /**
    +   * A String value that is used in the creation of the default string description of an object.
    +   * Called by the built-in method Object.prototype.toString.
    +   */
    +  [Symbol.toStringTag] = "LRUCache";
    +  /**
    +   * Find a value for which the supplied fn method returns a truthy value,
    +   * similar to Array.find().  fn is called as fn(value, key, cache).
    +   */
    +  find(fn, getOptions = {}) {
    +    for (const i of this.#indexes()) {
    +      const v = this.#valList[i];
    +      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +      if (value === void 0)
    +        continue;
    +      if (fn(value, this.#keyList[i], this)) {
    +        return this.get(this.#keyList[i], getOptions);
    +      }
    +    }
    +  }
    +  /**
    +   * Call the supplied function on each item in the cache, in order from
    +   * most recently used to least recently used.  fn is called as
    +   * fn(value, key, cache).  Does not update age or recenty of use.
    +   * Does not iterate over stale values.
    +   */
    +  forEach(fn, thisp = this) {
    +    for (const i of this.#indexes()) {
    +      const v = this.#valList[i];
    +      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +      if (value === void 0)
    +        continue;
    +      fn.call(thisp, value, this.#keyList[i], this);
    +    }
    +  }
    +  /**
    +   * The same as {@link LRUCache.forEach} but items are iterated over in
    +   * reverse order.  (ie, less recently used items are iterated over first.)
    +   */
    +  rforEach(fn, thisp = this) {
    +    for (const i of this.#rindexes()) {
    +      const v = this.#valList[i];
    +      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +      if (value === void 0)
    +        continue;
    +      fn.call(thisp, value, this.#keyList[i], this);
    +    }
    +  }
    +  /**
    +   * Delete any stale entries. Returns true if anything was removed,
    +   * false otherwise.
    +   */
    +  purgeStale() {
    +    let deleted = false;
    +    for (const i of this.#rindexes({ allowStale: true })) {
    +      if (this.#isStale(i)) {
    +        this.delete(this.#keyList[i]);
    +        deleted = true;
    +      }
    +    }
    +    return deleted;
    +  }
    +  /**
    +   * Get the extended info about a given entry, to get its value, size, and
    +   * TTL info simultaneously. Like {@link LRUCache#dump}, but just for a
    +   * single key. Always returns stale values, if their info is found in the
    +   * cache, so be sure to check for expired TTLs if relevant.
    +   */
    +  info(key) {
    +    const i = this.#keyMap.get(key);
    +    if (i === void 0)
    +      return void 0;
    +    const v = this.#valList[i];
    +    const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +    if (value === void 0)
    +      return void 0;
    +    const entry2 = { value };
    +    if (this.#ttls && this.#starts) {
    +      const ttl = this.#ttls[i];
    +      const start = this.#starts[i];
    +      if (ttl && start) {
    +        const remain = ttl - (perf.now() - start);
    +        entry2.ttl = remain;
    +        entry2.start = Date.now();
    +      }
    +    }
    +    if (this.#sizes) {
    +      entry2.size = this.#sizes[i];
    +    }
    +    return entry2;
    +  }
    +  /**
    +   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
    +   * passed to cache.load()
    +   */
    +  dump() {
    +    const arr = [];
    +    for (const i of this.#indexes({ allowStale: true })) {
    +      const key = this.#keyList[i];
    +      const v = this.#valList[i];
    +      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +      if (value === void 0 || key === void 0)
    +        continue;
    +      const entry2 = { value };
    +      if (this.#ttls && this.#starts) {
    +        entry2.ttl = this.#ttls[i];
    +        const age = perf.now() - this.#starts[i];
    +        entry2.start = Math.floor(Date.now() - age);
    +      }
    +      if (this.#sizes) {
    +        entry2.size = this.#sizes[i];
    +      }
    +      arr.unshift([key, entry2]);
    +    }
    +    return arr;
    +  }
    +  /**
    +   * Reset the cache and load in the items in entries in the order listed.
    +   * Note that the shape of the resulting cache may be different if the
    +   * same options are not used in both caches.
    +   */
    +  load(arr) {
    +    this.clear();
    +    for (const [key, entry2] of arr) {
    +      if (entry2.start) {
    +        const age = Date.now() - entry2.start;
    +        entry2.start = perf.now() - age;
    +      }
    +      this.set(key, entry2.value, entry2);
    +    }
    +  }
    +  /**
    +   * Add a value to the cache.
    +   *
    +   * Note: if `undefined` is specified as a value, this is an alias for
    +   * {@link LRUCache#delete}
    +   */
    +  set(k, v, setOptions = {}) {
    +    if (v === void 0) {
    +      this.delete(k);
    +      return this;
    +    }
    +    const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions;
    +    let { noUpdateTTL = this.noUpdateTTL } = setOptions;
    +    const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
    +    if (this.maxEntrySize && size > this.maxEntrySize) {
    +      if (status) {
    +        status.set = "miss";
    +        status.maxEntrySizeExceeded = true;
    +      }
    +      this.delete(k);
    +      return this;
    +    }
    +    let index = this.#size === 0 ? void 0 : this.#keyMap.get(k);
    +    if (index === void 0) {
    +      index = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size;
    +      this.#keyList[index] = k;
    +      this.#valList[index] = v;
    +      this.#keyMap.set(k, index);
    +      this.#next[this.#tail] = index;
    +      this.#prev[index] = this.#tail;
    +      this.#tail = index;
    +      this.#size++;
    +      this.#addItemSize(index, size, status);
    +      if (status)
    +        status.set = "add";
    +      noUpdateTTL = false;
    +    } else {
    +      this.#moveToTail(index);
    +      const oldVal = this.#valList[index];
    +      if (v !== oldVal) {
    +        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
    +          oldVal.__abortController.abort(new Error("replaced"));
    +          const { __staleWhileFetching: s } = oldVal;
    +          if (s !== void 0 && !noDisposeOnSet) {
    +            if (this.#hasDispose) {
    +              this.#dispose?.(s, k, "set");
    +            }
    +            if (this.#hasDisposeAfter) {
    +              this.#disposed?.push([s, k, "set"]);
    +            }
    +          }
    +        } else if (!noDisposeOnSet) {
    +          if (this.#hasDispose) {
    +            this.#dispose?.(oldVal, k, "set");
    +          }
    +          if (this.#hasDisposeAfter) {
    +            this.#disposed?.push([oldVal, k, "set"]);
    +          }
    +        }
    +        this.#removeItemSize(index);
    +        this.#addItemSize(index, size, status);
    +        this.#valList[index] = v;
    +        if (status) {
    +          status.set = "replace";
    +          const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal;
    +          if (oldValue !== void 0)
    +            status.oldValue = oldValue;
    +        }
    +      } else if (status) {
    +        status.set = "update";
    +      }
    +    }
    +    if (ttl !== 0 && !this.#ttls) {
    +      this.#initializeTTLTracking();
    +    }
    +    if (this.#ttls) {
    +      if (!noUpdateTTL) {
    +        this.#setItemTTL(index, ttl, start);
    +      }
    +      if (status)
    +        this.#statusTTL(status, index);
    +    }
    +    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
    +      const dt = this.#disposed;
    +      let task;
    +      while (task = dt?.shift()) {
    +        this.#disposeAfter?.(...task);
    +      }
    +    }
    +    return this;
    +  }
    +  /**
    +   * Evict the least recently used item, returning its value or
    +   * `undefined` if cache is empty.
    +   */
    +  pop() {
    +    try {
    +      while (this.#size) {
    +        const val = this.#valList[this.#head];
    +        this.#evict(true);
    +        if (this.#isBackgroundFetch(val)) {
    +          if (val.__staleWhileFetching) {
    +            return val.__staleWhileFetching;
    +          }
    +        } else if (val !== void 0) {
    +          return val;
    +        }
    +      }
    +    } finally {
    +      if (this.#hasDisposeAfter && this.#disposed) {
    +        const dt = this.#disposed;
    +        let task;
    +        while (task = dt?.shift()) {
    +          this.#disposeAfter?.(...task);
    +        }
    +      }
    +    }
    +  }
    +  #evict(free) {
    +    const head = this.#head;
    +    const k = this.#keyList[head];
    +    const v = this.#valList[head];
    +    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
    +      v.__abortController.abort(new Error("evicted"));
    +    } else if (this.#hasDispose || this.#hasDisposeAfter) {
    +      if (this.#hasDispose) {
    +        this.#dispose?.(v, k, "evict");
    +      }
    +      if (this.#hasDisposeAfter) {
    +        this.#disposed?.push([v, k, "evict"]);
    +      }
    +    }
    +    this.#removeItemSize(head);
    +    if (free) {
    +      this.#keyList[head] = void 0;
    +      this.#valList[head] = void 0;
    +      this.#free.push(head);
    +    }
    +    if (this.#size === 1) {
    +      this.#head = this.#tail = 0;
    +      this.#free.length = 0;
    +    } else {
    +      this.#head = this.#next[head];
    +    }
    +    this.#keyMap.delete(k);
    +    this.#size--;
    +    return head;
    +  }
    +  /**
    +   * Check if a key is in the cache, without updating the recency of use.
    +   * Will return false if the item is stale, even though it is technically
    +   * in the cache.
    +   *
    +   * Will not update item age unless
    +   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
    +   */
    +  has(k, hasOptions = {}) {
    +    const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
    +    const index = this.#keyMap.get(k);
    +    if (index !== void 0) {
    +      const v = this.#valList[index];
    +      if (this.#isBackgroundFetch(v) && v.__staleWhileFetching === void 0) {
    +        return false;
    +      }
    +      if (!this.#isStale(index)) {
    +        if (updateAgeOnHas) {
    +          this.#updateItemAge(index);
    +        }
    +        if (status) {
    +          status.has = "hit";
    +          this.#statusTTL(status, index);
    +        }
    +        return true;
    +      } else if (status) {
    +        status.has = "stale";
    +        this.#statusTTL(status, index);
    +      }
    +    } else if (status) {
    +      status.has = "miss";
    +    }
    +    return false;
    +  }
    +  /**
    +   * Like {@link LRUCache#get} but doesn't update recency or delete stale
    +   * items.
    +   *
    +   * Returns `undefined` if the item is stale, unless
    +   * {@link LRUCache.OptionsBase.allowStale} is set.
    +   */
    +  peek(k, peekOptions = {}) {
    +    const { allowStale = this.allowStale } = peekOptions;
    +    const index = this.#keyMap.get(k);
    +    if (index === void 0 || !allowStale && this.#isStale(index)) {
    +      return;
    +    }
    +    const v = this.#valList[index];
    +    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    +  }
    +  #backgroundFetch(k, index, options, context) {
    +    const v = index === void 0 ? void 0 : this.#valList[index];
    +    if (this.#isBackgroundFetch(v)) {
    +      return v;
    +    }
    +    const ac = new AC();
    +    const { signal } = options;
    +    signal?.addEventListener("abort", () => ac.abort(signal.reason), {
    +      signal: ac.signal
    +    });
    +    const fetchOpts = {
    +      signal: ac.signal,
    +      options,
    +      context
    +    };
    +    const cb = (v2, updateCache = false) => {
    +      const { aborted } = ac.signal;
    +      const ignoreAbort = options.ignoreFetchAbort && v2 !== void 0;
    +      if (options.status) {
    +        if (aborted && !updateCache) {
    +          options.status.fetchAborted = true;
    +          options.status.fetchError = ac.signal.reason;
    +          if (ignoreAbort)
    +            options.status.fetchAbortIgnored = true;
    +        } else {
    +          options.status.fetchResolved = true;
    +        }
    +      }
    +      if (aborted && !ignoreAbort && !updateCache) {
    +        return fetchFail(ac.signal.reason);
    +      }
    +      const bf2 = p;
    +      if (this.#valList[index] === p) {
    +        if (v2 === void 0) {
    +          if (bf2.__staleWhileFetching) {
    +            this.#valList[index] = bf2.__staleWhileFetching;
    +          } else {
    +            this.delete(k);
    +          }
    +        } else {
    +          if (options.status)
    +            options.status.fetchUpdated = true;
    +          this.set(k, v2, fetchOpts.options);
    +        }
    +      }
    +      return v2;
    +    };
    +    const eb = (er) => {
    +      if (options.status) {
    +        options.status.fetchRejected = true;
    +        options.status.fetchError = er;
    +      }
    +      return fetchFail(er);
    +    };
    +    const fetchFail = (er) => {
    +      const { aborted } = ac.signal;
    +      const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
    +      const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
    +      const noDelete = allowStale || options.noDeleteOnFetchRejection;
    +      const bf2 = p;
    +      if (this.#valList[index] === p) {
    +        const del = !noDelete || bf2.__staleWhileFetching === void 0;
    +        if (del) {
    +          this.delete(k);
    +        } else if (!allowStaleAborted) {
    +          this.#valList[index] = bf2.__staleWhileFetching;
    +        }
    +      }
    +      if (allowStale) {
    +        if (options.status && bf2.__staleWhileFetching !== void 0) {
    +          options.status.returnedStale = true;
    +        }
    +        return bf2.__staleWhileFetching;
    +      } else if (bf2.__returned === bf2) {
    +        throw er;
    +      }
    +    };
    +    const pcall = (res, rej) => {
    +      const fmp = this.#fetchMethod?.(k, v, fetchOpts);
    +      if (fmp && fmp instanceof Promise) {
    +        fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej);
    +      }
    +      ac.signal.addEventListener("abort", () => {
    +        if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {
    +          res(void 0);
    +          if (options.allowStaleOnFetchAbort) {
    +            res = (v2) => cb(v2, true);
    +          }
    +        }
    +      });
    +    };
    +    if (options.status)
    +      options.status.fetchDispatched = true;
    +    const p = new Promise(pcall).then(cb, eb);
    +    const bf = Object.assign(p, {
    +      __abortController: ac,
    +      __staleWhileFetching: v,
    +      __returned: void 0
    +    });
    +    if (index === void 0) {
    +      this.set(k, bf, { ...fetchOpts.options, status: void 0 });
    +      index = this.#keyMap.get(k);
    +    } else {
    +      this.#valList[index] = bf;
    +    }
    +    return bf;
    +  }
    +  #isBackgroundFetch(p) {
    +    if (!this.#hasFetchMethod)
    +      return false;
    +    const b = p;
    +    return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC;
    +  }
    +  async fetch(k, fetchOptions = {}) {
    +    const {
    +      // get options
    +      allowStale = this.allowStale,
    +      updateAgeOnGet = this.updateAgeOnGet,
    +      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
    +      // set options
    +      ttl = this.ttl,
    +      noDisposeOnSet = this.noDisposeOnSet,
    +      size = 0,
    +      sizeCalculation = this.sizeCalculation,
    +      noUpdateTTL = this.noUpdateTTL,
    +      // fetch exclusive options
    +      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
    +      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
    +      ignoreFetchAbort = this.ignoreFetchAbort,
    +      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
    +      context,
    +      forceRefresh = false,
    +      status,
    +      signal
    +    } = fetchOptions;
    +    if (!this.#hasFetchMethod) {
    +      if (status)
    +        status.fetch = "get";
    +      return this.get(k, {
    +        allowStale,
    +        updateAgeOnGet,
    +        noDeleteOnStaleGet,
    +        status
    +      });
    +    }
    +    const options = {
    +      allowStale,
    +      updateAgeOnGet,
    +      noDeleteOnStaleGet,
    +      ttl,
    +      noDisposeOnSet,
    +      size,
    +      sizeCalculation,
    +      noUpdateTTL,
    +      noDeleteOnFetchRejection,
    +      allowStaleOnFetchRejection,
    +      allowStaleOnFetchAbort,
    +      ignoreFetchAbort,
    +      status,
    +      signal
    +    };
    +    let index = this.#keyMap.get(k);
    +    if (index === void 0) {
    +      if (status)
    +        status.fetch = "miss";
    +      const p = this.#backgroundFetch(k, index, options, context);
    +      return p.__returned = p;
    +    } else {
    +      const v = this.#valList[index];
    +      if (this.#isBackgroundFetch(v)) {
    +        const stale = allowStale && v.__staleWhileFetching !== void 0;
    +        if (status) {
    +          status.fetch = "inflight";
    +          if (stale)
    +            status.returnedStale = true;
    +        }
    +        return stale ? v.__staleWhileFetching : v.__returned = v;
    +      }
    +      const isStale = this.#isStale(index);
    +      if (!forceRefresh && !isStale) {
    +        if (status)
    +          status.fetch = "hit";
    +        this.#moveToTail(index);
    +        if (updateAgeOnGet) {
    +          this.#updateItemAge(index);
    +        }
    +        if (status)
    +          this.#statusTTL(status, index);
    +        return v;
    +      }
    +      const p = this.#backgroundFetch(k, index, options, context);
    +      const hasStale = p.__staleWhileFetching !== void 0;
    +      const staleVal = hasStale && allowStale;
    +      if (status) {
    +        status.fetch = isStale ? "stale" : "refresh";
    +        if (staleVal && isStale)
    +          status.returnedStale = true;
    +      }
    +      return staleVal ? p.__staleWhileFetching : p.__returned = p;
    +    }
    +  }
    +  /**
    +   * Return a value from the cache. Will update the recency of the cache
    +   * entry found.
    +   *
    +   * If the key is not found, get() will return `undefined`.
    +   */
    +  get(k, getOptions = {}) {
    +    const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions;
    +    const index = this.#keyMap.get(k);
    +    if (index !== void 0) {
    +      const value = this.#valList[index];
    +      const fetching = this.#isBackgroundFetch(value);
    +      if (status)
    +        this.#statusTTL(status, index);
    +      if (this.#isStale(index)) {
    +        if (status)
    +          status.get = "stale";
    +        if (!fetching) {
    +          if (!noDeleteOnStaleGet) {
    +            this.delete(k);
    +          }
    +          if (status && allowStale)
    +            status.returnedStale = true;
    +          return allowStale ? value : void 0;
    +        } else {
    +          if (status && allowStale && value.__staleWhileFetching !== void 0) {
    +            status.returnedStale = true;
    +          }
    +          return allowStale ? value.__staleWhileFetching : void 0;
    +        }
    +      } else {
    +        if (status)
    +          status.get = "hit";
    +        if (fetching) {
    +          return value.__staleWhileFetching;
    +        }
    +        this.#moveToTail(index);
    +        if (updateAgeOnGet) {
    +          this.#updateItemAge(index);
    +        }
    +        return value;
    +      }
    +    } else if (status) {
    +      status.get = "miss";
    +    }
    +  }
    +  #connect(p, n) {
    +    this.#prev[n] = p;
    +    this.#next[p] = n;
    +  }
    +  #moveToTail(index) {
    +    if (index !== this.#tail) {
    +      if (index === this.#head) {
    +        this.#head = this.#next[index];
    +      } else {
    +        this.#connect(this.#prev[index], this.#next[index]);
    +      }
    +      this.#connect(this.#tail, index);
    +      this.#tail = index;
    +    }
    +  }
    +  /**
    +   * Deletes a key out of the cache.
    +   * Returns true if the key was deleted, false otherwise.
    +   */
    +  delete(k) {
    +    let deleted = false;
    +    if (this.#size !== 0) {
    +      const index = this.#keyMap.get(k);
    +      if (index !== void 0) {
    +        deleted = true;
    +        if (this.#size === 1) {
    +          this.clear();
    +        } else {
    +          this.#removeItemSize(index);
    +          const v = this.#valList[index];
    +          if (this.#isBackgroundFetch(v)) {
    +            v.__abortController.abort(new Error("deleted"));
    +          } else if (this.#hasDispose || this.#hasDisposeAfter) {
    +            if (this.#hasDispose) {
    +              this.#dispose?.(v, k, "delete");
    +            }
    +            if (this.#hasDisposeAfter) {
    +              this.#disposed?.push([v, k, "delete"]);
    +            }
    +          }
    +          this.#keyMap.delete(k);
    +          this.#keyList[index] = void 0;
    +          this.#valList[index] = void 0;
    +          if (index === this.#tail) {
    +            this.#tail = this.#prev[index];
    +          } else if (index === this.#head) {
    +            this.#head = this.#next[index];
    +          } else {
    +            const pi = this.#prev[index];
    +            this.#next[pi] = this.#next[index];
    +            const ni = this.#next[index];
    +            this.#prev[ni] = this.#prev[index];
    +          }
    +          this.#size--;
    +          this.#free.push(index);
    +        }
    +      }
    +    }
    +    if (this.#hasDisposeAfter && this.#disposed?.length) {
    +      const dt = this.#disposed;
    +      let task;
    +      while (task = dt?.shift()) {
    +        this.#disposeAfter?.(...task);
    +      }
    +    }
    +    return deleted;
    +  }
    +  /**
    +   * Clear the cache entirely, throwing away all values.
    +   */
    +  clear() {
    +    for (const index of this.#rindexes({ allowStale: true })) {
    +      const v = this.#valList[index];
    +      if (this.#isBackgroundFetch(v)) {
    +        v.__abortController.abort(new Error("deleted"));
    +      } else {
    +        const k = this.#keyList[index];
    +        if (this.#hasDispose) {
    +          this.#dispose?.(v, k, "delete");
    +        }
    +        if (this.#hasDisposeAfter) {
    +          this.#disposed?.push([v, k, "delete"]);
    +        }
    +      }
    +    }
    +    this.#keyMap.clear();
    +    this.#valList.fill(void 0);
    +    this.#keyList.fill(void 0);
    +    if (this.#ttls && this.#starts) {
    +      this.#ttls.fill(0);
    +      this.#starts.fill(0);
    +    }
    +    if (this.#sizes) {
    +      this.#sizes.fill(0);
    +    }
    +    this.#head = 0;
    +    this.#tail = 0;
    +    this.#free.length = 0;
    +    this.#calculatedSize = 0;
    +    this.#size = 0;
    +    if (this.#hasDisposeAfter && this.#disposed) {
    +      const dt = this.#disposed;
    +      let task;
    +      while (task = dt?.shift()) {
    +        this.#disposeAfter?.(...task);
    +      }
    +    }
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
    +var import_path = require("path");
    +var import_url = require("url");
    +var actualFS = __toESM(require("fs"), 1);
    +var import_fs = require("fs");
    +var import_promises = require("fs/promises");
    +
    +// ../../node_modules/.pnpm/minipass@7.0.4/node_modules/minipass/dist/esm/index.js
    +var import_events = require("events");
    +var import_stream = __toESM(require("stream"), 1);
    +var import_string_decoder = require("string_decoder");
    +var proc = typeof process === "object" && process ? process : {
    +  stdout: null,
    +  stderr: null
    +};
    +var isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof import_stream.default || isReadable(s) || isWritable(s));
    +var isReadable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
    +s.pipe !== import_stream.default.Writable.prototype.pipe;
    +var isWritable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.write === "function" && typeof s.end === "function";
    +var EOF = Symbol("EOF");
    +var MAYBE_EMIT_END = Symbol("maybeEmitEnd");
    +var EMITTED_END = Symbol("emittedEnd");
    +var EMITTING_END = Symbol("emittingEnd");
    +var EMITTED_ERROR = Symbol("emittedError");
    +var CLOSED = Symbol("closed");
    +var READ = Symbol("read");
    +var FLUSH = Symbol("flush");
    +var FLUSHCHUNK = Symbol("flushChunk");
    +var ENCODING = Symbol("encoding");
    +var DECODER = Symbol("decoder");
    +var FLOWING = Symbol("flowing");
    +var PAUSED = Symbol("paused");
    +var RESUME = Symbol("resume");
    +var BUFFER = Symbol("buffer");
    +var PIPES = Symbol("pipes");
    +var BUFFERLENGTH = Symbol("bufferLength");
    +var BUFFERPUSH = Symbol("bufferPush");
    +var BUFFERSHIFT = Symbol("bufferShift");
    +var OBJECTMODE = Symbol("objectMode");
    +var DESTROYED = Symbol("destroyed");
    +var ERROR = Symbol("error");
    +var EMITDATA = Symbol("emitData");
    +var EMITEND = Symbol("emitEnd");
    +var EMITEND2 = Symbol("emitEnd2");
    +var ASYNC = Symbol("async");
    +var ABORT = Symbol("abort");
    +var ABORTED = Symbol("aborted");
    +var SIGNAL = Symbol("signal");
    +var DATALISTENERS = Symbol("dataListeners");
    +var DISCARDED = Symbol("discarded");
    +var defer = (fn) => Promise.resolve().then(fn);
    +var nodefer = (fn) => fn();
    +var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
    +var isArrayBufferLike = (b) => b instanceof ArrayBuffer || !!b && typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
    +var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
    +var Pipe = class {
    +  src;
    +  dest;
    +  opts;
    +  ondrain;
    +  constructor(src, dest, opts) {
    +    this.src = src;
    +    this.dest = dest;
    +    this.opts = opts;
    +    this.ondrain = () => src[RESUME]();
    +    this.dest.on("drain", this.ondrain);
    +  }
    +  unpipe() {
    +    this.dest.removeListener("drain", this.ondrain);
    +  }
    +  // only here for the prototype
    +  /* c8 ignore start */
    +  proxyErrors(_er) {
    +  }
    +  /* c8 ignore stop */
    +  end() {
    +    this.unpipe();
    +    if (this.opts.end)
    +      this.dest.end();
    +  }
    +};
    +var PipeProxyErrors = class extends Pipe {
    +  unpipe() {
    +    this.src.removeListener("error", this.proxyErrors);
    +    super.unpipe();
    +  }
    +  constructor(src, dest, opts) {
    +    super(src, dest, opts);
    +    this.proxyErrors = (er) => dest.emit("error", er);
    +    src.on("error", this.proxyErrors);
    +  }
    +};
    +var isObjectModeOptions = (o) => !!o.objectMode;
    +var isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== "buffer";
    +var Minipass = class extends import_events.EventEmitter {
    +  [FLOWING] = false;
    +  [PAUSED] = false;
    +  [PIPES] = [];
    +  [BUFFER] = [];
    +  [OBJECTMODE];
    +  [ENCODING];
    +  [ASYNC];
    +  [DECODER];
    +  [EOF] = false;
    +  [EMITTED_END] = false;
    +  [EMITTING_END] = false;
    +  [CLOSED] = false;
    +  [EMITTED_ERROR] = null;
    +  [BUFFERLENGTH] = 0;
    +  [DESTROYED] = false;
    +  [SIGNAL];
    +  [ABORTED] = false;
    +  [DATALISTENERS] = 0;
    +  [DISCARDED] = false;
    +  /**
    +   * true if the stream can be written
    +   */
    +  writable = true;
    +  /**
    +   * true if the stream can be read
    +   */
    +  readable = true;
    +  /**
    +   * If `RType` is Buffer, then options do not need to be provided.
    +   * Otherwise, an options object must be provided to specify either
    +   * {@link Minipass.SharedOptions.objectMode} or
    +   * {@link Minipass.SharedOptions.encoding}, as appropriate.
    +   */
    +  constructor(...args) {
    +    const options = args[0] || {};
    +    super();
    +    if (options.objectMode && typeof options.encoding === "string") {
    +      throw new TypeError("Encoding and objectMode may not be used together");
    +    }
    +    if (isObjectModeOptions(options)) {
    +      this[OBJECTMODE] = true;
    +      this[ENCODING] = null;
    +    } else if (isEncodingOptions(options)) {
    +      this[ENCODING] = options.encoding;
    +      this[OBJECTMODE] = false;
    +    } else {
    +      this[OBJECTMODE] = false;
    +      this[ENCODING] = null;
    +    }
    +    this[ASYNC] = !!options.async;
    +    this[DECODER] = this[ENCODING] ? new import_string_decoder.StringDecoder(this[ENCODING]) : null;
    +    if (options && options.debugExposeBuffer === true) {
    +      Object.defineProperty(this, "buffer", { get: () => this[BUFFER] });
    +    }
    +    if (options && options.debugExposePipes === true) {
    +      Object.defineProperty(this, "pipes", { get: () => this[PIPES] });
    +    }
    +    const { signal } = options;
    +    if (signal) {
    +      this[SIGNAL] = signal;
    +      if (signal.aborted) {
    +        this[ABORT]();
    +      } else {
    +        signal.addEventListener("abort", () => this[ABORT]());
    +      }
    +    }
    +  }
    +  /**
    +   * The amount of data stored in the buffer waiting to be read.
    +   *
    +   * For Buffer strings, this will be the total byte length.
    +   * For string encoding streams, this will be the string character length,
    +   * according to JavaScript's `string.length` logic.
    +   * For objectMode streams, this is a count of the items waiting to be
    +   * emitted.
    +   */
    +  get bufferLength() {
    +    return this[BUFFERLENGTH];
    +  }
    +  /**
    +   * The `BufferEncoding` currently in use, or `null`
    +   */
    +  get encoding() {
    +    return this[ENCODING];
    +  }
    +  /**
    +   * @deprecated - This is a read only property
    +   */
    +  set encoding(_enc) {
    +    throw new Error("Encoding must be set at instantiation time");
    +  }
    +  /**
    +   * @deprecated - Encoding may only be set at instantiation time
    +   */
    +  setEncoding(_enc) {
    +    throw new Error("Encoding must be set at instantiation time");
    +  }
    +  /**
    +   * True if this is an objectMode stream
    +   */
    +  get objectMode() {
    +    return this[OBJECTMODE];
    +  }
    +  /**
    +   * @deprecated - This is a read-only property
    +   */
    +  set objectMode(_om) {
    +    throw new Error("objectMode must be set at instantiation time");
    +  }
    +  /**
    +   * true if this is an async stream
    +   */
    +  get ["async"]() {
    +    return this[ASYNC];
    +  }
    +  /**
    +   * Set to true to make this stream async.
    +   *
    +   * Once set, it cannot be unset, as this would potentially cause incorrect
    +   * behavior.  Ie, a sync stream can be made async, but an async stream
    +   * cannot be safely made sync.
    +   */
    +  set ["async"](a) {
    +    this[ASYNC] = this[ASYNC] || !!a;
    +  }
    +  // drop everything and get out of the flow completely
    +  [ABORT]() {
    +    this[ABORTED] = true;
    +    this.emit("abort", this[SIGNAL]?.reason);
    +    this.destroy(this[SIGNAL]?.reason);
    +  }
    +  /**
    +   * True if the stream has been aborted.
    +   */
    +  get aborted() {
    +    return this[ABORTED];
    +  }
    +  /**
    +   * No-op setter. Stream aborted status is set via the AbortSignal provided
    +   * in the constructor options.
    +   */
    +  set aborted(_) {
    +  }
    +  write(chunk, encoding, cb) {
    +    if (this[ABORTED])
    +      return false;
    +    if (this[EOF])
    +      throw new Error("write after end");
    +    if (this[DESTROYED]) {
    +      this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" }));
    +      return true;
    +    }
    +    if (typeof encoding === "function") {
    +      cb = encoding;
    +      encoding = "utf8";
    +    }
    +    if (!encoding)
    +      encoding = "utf8";
    +    const fn = this[ASYNC] ? defer : nodefer;
    +    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
    +      if (isArrayBufferView(chunk)) {
    +        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
    +      } else if (isArrayBufferLike(chunk)) {
    +        chunk = Buffer.from(chunk);
    +      } else if (typeof chunk !== "string") {
    +        throw new Error("Non-contiguous data written to non-objectMode stream");
    +      }
    +    }
    +    if (this[OBJECTMODE]) {
    +      if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
    +        this[FLUSH](true);
    +      if (this[FLOWING])
    +        this.emit("data", chunk);
    +      else
    +        this[BUFFERPUSH](chunk);
    +      if (this[BUFFERLENGTH] !== 0)
    +        this.emit("readable");
    +      if (cb)
    +        fn(cb);
    +      return this[FLOWING];
    +    }
    +    if (!chunk.length) {
    +      if (this[BUFFERLENGTH] !== 0)
    +        this.emit("readable");
    +      if (cb)
    +        fn(cb);
    +      return this[FLOWING];
    +    }
    +    if (typeof chunk === "string" && // unless it is a string already ready for us to use
    +    !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
    +      chunk = Buffer.from(chunk, encoding);
    +    }
    +    if (Buffer.isBuffer(chunk) && this[ENCODING]) {
    +      chunk = this[DECODER].write(chunk);
    +    }
    +    if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
    +      this[FLUSH](true);
    +    if (this[FLOWING])
    +      this.emit("data", chunk);
    +    else
    +      this[BUFFERPUSH](chunk);
    +    if (this[BUFFERLENGTH] !== 0)
    +      this.emit("readable");
    +    if (cb)
    +      fn(cb);
    +    return this[FLOWING];
    +  }
    +  /**
    +   * Low-level explicit read method.
    +   *
    +   * In objectMode, the argument is ignored, and one item is returned if
    +   * available.
    +   *
    +   * `n` is the number of bytes (or in the case of encoding streams,
    +   * characters) to consume. If `n` is not provided, then the entire buffer
    +   * is returned, or `null` is returned if no data is available.
    +   *
    +   * If `n` is greater that the amount of data in the internal buffer,
    +   * then `null` is returned.
    +   */
    +  read(n) {
    +    if (this[DESTROYED])
    +      return null;
    +    this[DISCARDED] = false;
    +    if (this[BUFFERLENGTH] === 0 || n === 0 || n && n > this[BUFFERLENGTH]) {
    +      this[MAYBE_EMIT_END]();
    +      return null;
    +    }
    +    if (this[OBJECTMODE])
    +      n = null;
    +    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
    +      this[BUFFER] = [
    +        this[ENCODING] ? this[BUFFER].join("") : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])
    +      ];
    +    }
    +    const ret = this[READ](n || null, this[BUFFER][0]);
    +    this[MAYBE_EMIT_END]();
    +    return ret;
    +  }
    +  [READ](n, chunk) {
    +    if (this[OBJECTMODE])
    +      this[BUFFERSHIFT]();
    +    else {
    +      const c = chunk;
    +      if (n === c.length || n === null)
    +        this[BUFFERSHIFT]();
    +      else if (typeof c === "string") {
    +        this[BUFFER][0] = c.slice(n);
    +        chunk = c.slice(0, n);
    +        this[BUFFERLENGTH] -= n;
    +      } else {
    +        this[BUFFER][0] = c.subarray(n);
    +        chunk = c.subarray(0, n);
    +        this[BUFFERLENGTH] -= n;
    +      }
    +    }
    +    this.emit("data", chunk);
    +    if (!this[BUFFER].length && !this[EOF])
    +      this.emit("drain");
    +    return chunk;
    +  }
    +  end(chunk, encoding, cb) {
    +    if (typeof chunk === "function") {
    +      cb = chunk;
    +      chunk = void 0;
    +    }
    +    if (typeof encoding === "function") {
    +      cb = encoding;
    +      encoding = "utf8";
    +    }
    +    if (chunk !== void 0)
    +      this.write(chunk, encoding);
    +    if (cb)
    +      this.once("end", cb);
    +    this[EOF] = true;
    +    this.writable = false;
    +    if (this[FLOWING] || !this[PAUSED])
    +      this[MAYBE_EMIT_END]();
    +    return this;
    +  }
    +  // don't let the internal resume be overwritten
    +  [RESUME]() {
    +    if (this[DESTROYED])
    +      return;
    +    if (!this[DATALISTENERS] && !this[PIPES].length) {
    +      this[DISCARDED] = true;
    +    }
    +    this[PAUSED] = false;
    +    this[FLOWING] = true;
    +    this.emit("resume");
    +    if (this[BUFFER].length)
    +      this[FLUSH]();
    +    else if (this[EOF])
    +      this[MAYBE_EMIT_END]();
    +    else
    +      this.emit("drain");
    +  }
    +  /**
    +   * Resume the stream if it is currently in a paused state
    +   *
    +   * If called when there are no pipe destinations or `data` event listeners,
    +   * this will place the stream in a "discarded" state, where all data will
    +   * be thrown away. The discarded state is removed if a pipe destination or
    +   * data handler is added, if pause() is called, or if any synchronous or
    +   * asynchronous iteration is started.
    +   */
    +  resume() {
    +    return this[RESUME]();
    +  }
    +  /**
    +   * Pause the stream
    +   */
    +  pause() {
    +    this[FLOWING] = false;
    +    this[PAUSED] = true;
    +    this[DISCARDED] = false;
    +  }
    +  /**
    +   * true if the stream has been forcibly destroyed
    +   */
    +  get destroyed() {
    +    return this[DESTROYED];
    +  }
    +  /**
    +   * true if the stream is currently in a flowing state, meaning that
    +   * any writes will be immediately emitted.
    +   */
    +  get flowing() {
    +    return this[FLOWING];
    +  }
    +  /**
    +   * true if the stream is currently in a paused state
    +   */
    +  get paused() {
    +    return this[PAUSED];
    +  }
    +  [BUFFERPUSH](chunk) {
    +    if (this[OBJECTMODE])
    +      this[BUFFERLENGTH] += 1;
    +    else
    +      this[BUFFERLENGTH] += chunk.length;
    +    this[BUFFER].push(chunk);
    +  }
    +  [BUFFERSHIFT]() {
    +    if (this[OBJECTMODE])
    +      this[BUFFERLENGTH] -= 1;
    +    else
    +      this[BUFFERLENGTH] -= this[BUFFER][0].length;
    +    return this[BUFFER].shift();
    +  }
    +  [FLUSH](noDrain = false) {
    +    do {
    +    } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length);
    +    if (!noDrain && !this[BUFFER].length && !this[EOF])
    +      this.emit("drain");
    +  }
    +  [FLUSHCHUNK](chunk) {
    +    this.emit("data", chunk);
    +    return this[FLOWING];
    +  }
    +  /**
    +   * Pipe all data emitted by this stream into the destination provided.
    +   *
    +   * Triggers the flow of data.
    +   */
    +  pipe(dest, opts) {
    +    if (this[DESTROYED])
    +      return dest;
    +    this[DISCARDED] = false;
    +    const ended = this[EMITTED_END];
    +    opts = opts || {};
    +    if (dest === proc.stdout || dest === proc.stderr)
    +      opts.end = false;
    +    else
    +      opts.end = opts.end !== false;
    +    opts.proxyErrors = !!opts.proxyErrors;
    +    if (ended) {
    +      if (opts.end)
    +        dest.end();
    +    } else {
    +      this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
    +      if (this[ASYNC])
    +        defer(() => this[RESUME]());
    +      else
    +        this[RESUME]();
    +    }
    +    return dest;
    +  }
    +  /**
    +   * Fully unhook a piped destination stream.
    +   *
    +   * If the destination stream was the only consumer of this stream (ie,
    +   * there are no other piped destinations or `'data'` event listeners)
    +   * then the flow of data will stop until there is another consumer or
    +   * {@link Minipass#resume} is explicitly called.
    +   */
    +  unpipe(dest) {
    +    const p = this[PIPES].find((p2) => p2.dest === dest);
    +    if (p) {
    +      if (this[PIPES].length === 1) {
    +        if (this[FLOWING] && this[DATALISTENERS] === 0) {
    +          this[FLOWING] = false;
    +        }
    +        this[PIPES] = [];
    +      } else
    +        this[PIPES].splice(this[PIPES].indexOf(p), 1);
    +      p.unpipe();
    +    }
    +  }
    +  /**
    +   * Alias for {@link Minipass#on}
    +   */
    +  addListener(ev, handler) {
    +    return this.on(ev, handler);
    +  }
    +  /**
    +   * Mostly identical to `EventEmitter.on`, with the following
    +   * behavior differences to prevent data loss and unnecessary hangs:
    +   *
    +   * - Adding a 'data' event handler will trigger the flow of data
    +   *
    +   * - Adding a 'readable' event handler when there is data waiting to be read
    +   *   will cause 'readable' to be emitted immediately.
    +   *
    +   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
    +   *   already passed will cause the event to be emitted immediately and all
    +   *   handlers removed.
    +   *
    +   * - Adding an 'error' event handler after an error has been emitted will
    +   *   cause the event to be re-emitted immediately with the error previously
    +   *   raised.
    +   */
    +  on(ev, handler) {
    +    const ret = super.on(ev, handler);
    +    if (ev === "data") {
    +      this[DISCARDED] = false;
    +      this[DATALISTENERS]++;
    +      if (!this[PIPES].length && !this[FLOWING]) {
    +        this[RESUME]();
    +      }
    +    } else if (ev === "readable" && this[BUFFERLENGTH] !== 0) {
    +      super.emit("readable");
    +    } else if (isEndish(ev) && this[EMITTED_END]) {
    +      super.emit(ev);
    +      this.removeAllListeners(ev);
    +    } else if (ev === "error" && this[EMITTED_ERROR]) {
    +      const h = handler;
    +      if (this[ASYNC])
    +        defer(() => h.call(this, this[EMITTED_ERROR]));
    +      else
    +        h.call(this, this[EMITTED_ERROR]);
    +    }
    +    return ret;
    +  }
    +  /**
    +   * Alias for {@link Minipass#off}
    +   */
    +  removeListener(ev, handler) {
    +    return this.off(ev, handler);
    +  }
    +  /**
    +   * Mostly identical to `EventEmitter.off`
    +   *
    +   * If a 'data' event handler is removed, and it was the last consumer
    +   * (ie, there are no pipe destinations or other 'data' event listeners),
    +   * then the flow of data will stop until there is another consumer or
    +   * {@link Minipass#resume} is explicitly called.
    +   */
    +  off(ev, handler) {
    +    const ret = super.off(ev, handler);
    +    if (ev === "data") {
    +      this[DATALISTENERS] = this.listeners("data").length;
    +      if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) {
    +        this[FLOWING] = false;
    +      }
    +    }
    +    return ret;
    +  }
    +  /**
    +   * Mostly identical to `EventEmitter.removeAllListeners`
    +   *
    +   * If all 'data' event handlers are removed, and they were the last consumer
    +   * (ie, there are no pipe destinations), then the flow of data will stop
    +   * until there is another consumer or {@link Minipass#resume} is explicitly
    +   * called.
    +   */
    +  removeAllListeners(ev) {
    +    const ret = super.removeAllListeners(ev);
    +    if (ev === "data" || ev === void 0) {
    +      this[DATALISTENERS] = 0;
    +      if (!this[DISCARDED] && !this[PIPES].length) {
    +        this[FLOWING] = false;
    +      }
    +    }
    +    return ret;
    +  }
    +  /**
    +   * true if the 'end' event has been emitted
    +   */
    +  get emittedEnd() {
    +    return this[EMITTED_END];
    +  }
    +  [MAYBE_EMIT_END]() {
    +    if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
    +      this[EMITTING_END] = true;
    +      this.emit("end");
    +      this.emit("prefinish");
    +      this.emit("finish");
    +      if (this[CLOSED])
    +        this.emit("close");
    +      this[EMITTING_END] = false;
    +    }
    +  }
    +  /**
    +   * Mostly identical to `EventEmitter.emit`, with the following
    +   * behavior differences to prevent data loss and unnecessary hangs:
    +   *
    +   * If the stream has been destroyed, and the event is something other
    +   * than 'close' or 'error', then `false` is returned and no handlers
    +   * are called.
    +   *
    +   * If the event is 'end', and has already been emitted, then the event
    +   * is ignored. If the stream is in a paused or non-flowing state, then
    +   * the event will be deferred until data flow resumes. If the stream is
    +   * async, then handlers will be called on the next tick rather than
    +   * immediately.
    +   *
    +   * If the event is 'close', and 'end' has not yet been emitted, then
    +   * the event will be deferred until after 'end' is emitted.
    +   *
    +   * If the event is 'error', and an AbortSignal was provided for the stream,
    +   * and there are no listeners, then the event is ignored, matching the
    +   * behavior of node core streams in the presense of an AbortSignal.
    +   *
    +   * If the event is 'finish' or 'prefinish', then all listeners will be
    +   * removed after emitting the event, to prevent double-firing.
    +   */
    +  emit(ev, ...args) {
    +    const data = args[0];
    +    if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) {
    +      return false;
    +    } else if (ev === "data") {
    +      return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? (defer(() => this[EMITDATA](data)), true) : this[EMITDATA](data);
    +    } else if (ev === "end") {
    +      return this[EMITEND]();
    +    } else if (ev === "close") {
    +      this[CLOSED] = true;
    +      if (!this[EMITTED_END] && !this[DESTROYED])
    +        return false;
    +      const ret2 = super.emit("close");
    +      this.removeAllListeners("close");
    +      return ret2;
    +    } else if (ev === "error") {
    +      this[EMITTED_ERROR] = data;
    +      super.emit(ERROR, data);
    +      const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false;
    +      this[MAYBE_EMIT_END]();
    +      return ret2;
    +    } else if (ev === "resume") {
    +      const ret2 = super.emit("resume");
    +      this[MAYBE_EMIT_END]();
    +      return ret2;
    +    } else if (ev === "finish" || ev === "prefinish") {
    +      const ret2 = super.emit(ev);
    +      this.removeAllListeners(ev);
    +      return ret2;
    +    }
    +    const ret = super.emit(ev, ...args);
    +    this[MAYBE_EMIT_END]();
    +    return ret;
    +  }
    +  [EMITDATA](data) {
    +    for (const p of this[PIPES]) {
    +      if (p.dest.write(data) === false)
    +        this.pause();
    +    }
    +    const ret = this[DISCARDED] ? false : super.emit("data", data);
    +    this[MAYBE_EMIT_END]();
    +    return ret;
    +  }
    +  [EMITEND]() {
    +    if (this[EMITTED_END])
    +      return false;
    +    this[EMITTED_END] = true;
    +    this.readable = false;
    +    return this[ASYNC] ? (defer(() => this[EMITEND2]()), true) : this[EMITEND2]();
    +  }
    +  [EMITEND2]() {
    +    if (this[DECODER]) {
    +      const data = this[DECODER].end();
    +      if (data) {
    +        for (const p of this[PIPES]) {
    +          p.dest.write(data);
    +        }
    +        if (!this[DISCARDED])
    +          super.emit("data", data);
    +      }
    +    }
    +    for (const p of this[PIPES]) {
    +      p.end();
    +    }
    +    const ret = super.emit("end");
    +    this.removeAllListeners("end");
    +    return ret;
    +  }
    +  /**
    +   * Return a Promise that resolves to an array of all emitted data once
    +   * the stream ends.
    +   */
    +  async collect() {
    +    const buf = Object.assign([], {
    +      dataLength: 0
    +    });
    +    if (!this[OBJECTMODE])
    +      buf.dataLength = 0;
    +    const p = this.promise();
    +    this.on("data", (c) => {
    +      buf.push(c);
    +      if (!this[OBJECTMODE])
    +        buf.dataLength += c.length;
    +    });
    +    await p;
    +    return buf;
    +  }
    +  /**
    +   * Return a Promise that resolves to the concatenation of all emitted data
    +   * once the stream ends.
    +   *
    +   * Not allowed on objectMode streams.
    +   */
    +  async concat() {
    +    if (this[OBJECTMODE]) {
    +      throw new Error("cannot concat in objectMode");
    +    }
    +    const buf = await this.collect();
    +    return this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength);
    +  }
    +  /**
    +   * Return a void Promise that resolves once the stream ends.
    +   */
    +  async promise() {
    +    return new Promise((resolve2, reject) => {
    +      this.on(DESTROYED, () => reject(new Error("stream destroyed")));
    +      this.on("error", (er) => reject(er));
    +      this.on("end", () => resolve2());
    +    });
    +  }
    +  /**
    +   * Asynchronous `for await of` iteration.
    +   *
    +   * This will continue emitting all chunks until the stream terminates.
    +   */
    +  [Symbol.asyncIterator]() {
    +    this[DISCARDED] = false;
    +    let stopped = false;
    +    const stop = async () => {
    +      this.pause();
    +      stopped = true;
    +      return { value: void 0, done: true };
    +    };
    +    const next = () => {
    +      if (stopped)
    +        return stop();
    +      const res = this.read();
    +      if (res !== null)
    +        return Promise.resolve({ done: false, value: res });
    +      if (this[EOF])
    +        return stop();
    +      let resolve2;
    +      let reject;
    +      const onerr = (er) => {
    +        this.off("data", ondata);
    +        this.off("end", onend);
    +        this.off(DESTROYED, ondestroy);
    +        stop();
    +        reject(er);
    +      };
    +      const ondata = (value) => {
    +        this.off("error", onerr);
    +        this.off("end", onend);
    +        this.off(DESTROYED, ondestroy);
    +        this.pause();
    +        resolve2({ value, done: !!this[EOF] });
    +      };
    +      const onend = () => {
    +        this.off("error", onerr);
    +        this.off("data", ondata);
    +        this.off(DESTROYED, ondestroy);
    +        stop();
    +        resolve2({ done: true, value: void 0 });
    +      };
    +      const ondestroy = () => onerr(new Error("stream destroyed"));
    +      return new Promise((res2, rej) => {
    +        reject = rej;
    +        resolve2 = res2;
    +        this.once(DESTROYED, ondestroy);
    +        this.once("error", onerr);
    +        this.once("end", onend);
    +        this.once("data", ondata);
    +      });
    +    };
    +    return {
    +      next,
    +      throw: stop,
    +      return: stop,
    +      [Symbol.asyncIterator]() {
    +        return this;
    +      }
    +    };
    +  }
    +  /**
    +   * Synchronous `for of` iteration.
    +   *
    +   * The iteration will terminate when the internal buffer runs out, even
    +   * if the stream has not yet terminated.
    +   */
    +  [Symbol.iterator]() {
    +    this[DISCARDED] = false;
    +    let stopped = false;
    +    const stop = () => {
    +      this.pause();
    +      this.off(ERROR, stop);
    +      this.off(DESTROYED, stop);
    +      this.off("end", stop);
    +      stopped = true;
    +      return { done: true, value: void 0 };
    +    };
    +    const next = () => {
    +      if (stopped)
    +        return stop();
    +      const value = this.read();
    +      return value === null ? stop() : { done: false, value };
    +    };
    +    this.once("end", stop);
    +    this.once(ERROR, stop);
    +    this.once(DESTROYED, stop);
    +    return {
    +      next,
    +      throw: stop,
    +      return: stop,
    +      [Symbol.iterator]() {
    +        return this;
    +      }
    +    };
    +  }
    +  /**
    +   * Destroy a stream, preventing it from being used for any further purpose.
    +   *
    +   * If the stream has a `close()` method, then it will be called on
    +   * destruction.
    +   *
    +   * After destruction, any attempt to write data, read data, or emit most
    +   * events will be ignored.
    +   *
    +   * If an error argument is provided, then it will be emitted in an
    +   * 'error' event.
    +   */
    +  destroy(er) {
    +    if (this[DESTROYED]) {
    +      if (er)
    +        this.emit("error", er);
    +      else
    +        this.emit(DESTROYED);
    +      return this;
    +    }
    +    this[DESTROYED] = true;
    +    this[DISCARDED] = true;
    +    this[BUFFER].length = 0;
    +    this[BUFFERLENGTH] = 0;
    +    const wc = this;
    +    if (typeof wc.close === "function" && !this[CLOSED])
    +      wc.close();
    +    if (er)
    +      this.emit("error", er);
    +    else
    +      this.emit(DESTROYED);
    +    return this;
    +  }
    +  /**
    +   * Alias for {@link isStream}
    +   *
    +   * Former export location, maintained for backwards compatibility.
    +   *
    +   * @deprecated
    +   */
    +  static get isStream() {
    +    return isStream;
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
    +var realpathSync = import_fs.realpathSync.native;
    +var defaultFS = {
    +  lstatSync: import_fs.lstatSync,
    +  readdir: import_fs.readdir,
    +  readdirSync: import_fs.readdirSync,
    +  readlinkSync: import_fs.readlinkSync,
    +  realpathSync,
    +  promises: {
    +    lstat: import_promises.lstat,
    +    readdir: import_promises.readdir,
    +    readlink: import_promises.readlink,
    +    realpath: import_promises.realpath
    +  }
    +};
    +var fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ? defaultFS : {
    +  ...defaultFS,
    +  ...fsOption,
    +  promises: {
    +    ...defaultFS.promises,
    +    ...fsOption.promises || {}
    +  }
    +};
    +var uncDriveRegexp = /^\\\\\?\\([a-z]:)\\?$/i;
    +var uncToDrive = (rootPath) => rootPath.replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
    +var eitherSep = /[\\\/]/;
    +var UNKNOWN = 0;
    +var IFIFO = 1;
    +var IFCHR = 2;
    +var IFDIR = 4;
    +var IFBLK = 6;
    +var IFREG = 8;
    +var IFLNK = 10;
    +var IFSOCK = 12;
    +var IFMT = 15;
    +var IFMT_UNKNOWN = ~IFMT;
    +var READDIR_CALLED = 16;
    +var LSTAT_CALLED = 32;
    +var ENOTDIR = 64;
    +var ENOENT = 128;
    +var ENOREADLINK = 256;
    +var ENOREALPATH = 512;
    +var ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
    +var TYPEMASK = 1023;
    +var entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN;
    +var normalizeCache = /* @__PURE__ */ new Map();
    +var normalize = (s) => {
    +  const c = normalizeCache.get(s);
    +  if (c)
    +    return c;
    +  const n = s.normalize("NFKD");
    +  normalizeCache.set(s, n);
    +  return n;
    +};
    +var normalizeNocaseCache = /* @__PURE__ */ new Map();
    +var normalizeNocase = (s) => {
    +  const c = normalizeNocaseCache.get(s);
    +  if (c)
    +    return c;
    +  const n = normalize(s.toLowerCase());
    +  normalizeNocaseCache.set(s, n);
    +  return n;
    +};
    +var ResolveCache = class extends LRUCache {
    +  constructor() {
    +    super({ max: 256 });
    +  }
    +};
    +var ChildrenCache = class extends LRUCache {
    +  constructor(maxSize = 16 * 1024) {
    +    super({
    +      maxSize,
    +      // parent + children
    +      sizeCalculation: (a) => a.length + 1
    +    });
    +  }
    +};
    +var setAsCwd = Symbol("PathScurry setAsCwd");
    +var PathBase = class {
    +  /**
    +   * the basename of this path
    +   *
    +   * **Important**: *always* test the path name against any test string
    +   * usingthe {@link isNamed} method, and not by directly comparing this
    +   * string. Otherwise, unicode path strings that the system sees as identical
    +   * will not be properly treated as the same path, leading to incorrect
    +   * behavior and possible security issues.
    +   */
    +  name;
    +  /**
    +   * the Path entry corresponding to the path root.
    +   *
    +   * @internal
    +   */
    +  root;
    +  /**
    +   * All roots found within the current PathScurry family
    +   *
    +   * @internal
    +   */
    +  roots;
    +  /**
    +   * a reference to the parent path, or undefined in the case of root entries
    +   *
    +   * @internal
    +   */
    +  parent;
    +  /**
    +   * boolean indicating whether paths are compared case-insensitively
    +   * @internal
    +   */
    +  nocase;
    +  // potential default fs override
    +  #fs;
    +  // Stats fields
    +  #dev;
    +  get dev() {
    +    return this.#dev;
    +  }
    +  #mode;
    +  get mode() {
    +    return this.#mode;
    +  }
    +  #nlink;
    +  get nlink() {
    +    return this.#nlink;
    +  }
    +  #uid;
    +  get uid() {
    +    return this.#uid;
    +  }
    +  #gid;
    +  get gid() {
    +    return this.#gid;
    +  }
    +  #rdev;
    +  get rdev() {
    +    return this.#rdev;
    +  }
    +  #blksize;
    +  get blksize() {
    +    return this.#blksize;
    +  }
    +  #ino;
    +  get ino() {
    +    return this.#ino;
    +  }
    +  #size;
    +  get size() {
    +    return this.#size;
    +  }
    +  #blocks;
    +  get blocks() {
    +    return this.#blocks;
    +  }
    +  #atimeMs;
    +  get atimeMs() {
    +    return this.#atimeMs;
    +  }
    +  #mtimeMs;
    +  get mtimeMs() {
    +    return this.#mtimeMs;
    +  }
    +  #ctimeMs;
    +  get ctimeMs() {
    +    return this.#ctimeMs;
    +  }
    +  #birthtimeMs;
    +  get birthtimeMs() {
    +    return this.#birthtimeMs;
    +  }
    +  #atime;
    +  get atime() {
    +    return this.#atime;
    +  }
    +  #mtime;
    +  get mtime() {
    +    return this.#mtime;
    +  }
    +  #ctime;
    +  get ctime() {
    +    return this.#ctime;
    +  }
    +  #birthtime;
    +  get birthtime() {
    +    return this.#birthtime;
    +  }
    +  #matchName;
    +  #depth;
    +  #fullpath;
    +  #fullpathPosix;
    +  #relative;
    +  #relativePosix;
    +  #type;
    +  #children;
    +  #linkTarget;
    +  #realpath;
    +  /**
    +   * This property is for compatibility with the Dirent class as of
    +   * Node v20, where Dirent['path'] refers to the path of the directory
    +   * that was passed to readdir.  So, somewhat counterintuitively, this
    +   * property refers to the *parent* path, not the path object itself.
    +   * For root entries, it's the path to the entry itself.
    +   */
    +  get path() {
    +    return (this.parent || this).fullpath();
    +  }
    +  /**
    +   * Do not create new Path objects directly.  They should always be accessed
    +   * via the PathScurry class or other methods on the Path class.
    +   *
    +   * @internal
    +   */
    +  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
    +    this.name = name;
    +    this.#matchName = nocase ? normalizeNocase(name) : normalize(name);
    +    this.#type = type2 & TYPEMASK;
    +    this.nocase = nocase;
    +    this.roots = roots;
    +    this.root = root || this;
    +    this.#children = children;
    +    this.#fullpath = opts.fullpath;
    +    this.#relative = opts.relative;
    +    this.#relativePosix = opts.relativePosix;
    +    this.parent = opts.parent;
    +    if (this.parent) {
    +      this.#fs = this.parent.#fs;
    +    } else {
    +      this.#fs = fsFromOption(opts.fs);
    +    }
    +  }
    +  /**
    +   * Returns the depth of the Path object from its root.
    +   *
    +   * For example, a path at `/foo/bar` would have a depth of 2.
    +   */
    +  depth() {
    +    if (this.#depth !== void 0)
    +      return this.#depth;
    +    if (!this.parent)
    +      return this.#depth = 0;
    +    return this.#depth = this.parent.depth() + 1;
    +  }
    +  /**
    +   * @internal
    +   */
    +  childrenCache() {
    +    return this.#children;
    +  }
    +  /**
    +   * Get the Path object referenced by the string path, resolved from this Path
    +   */
    +  resolve(path4) {
    +    if (!path4) {
    +      return this;
    +    }
    +    const rootPath = this.getRootString(path4);
    +    const dir = path4.substring(rootPath.length);
    +    const dirParts = dir.split(this.splitSep);
    +    const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts);
    +    return result;
    +  }
    +  #resolveParts(dirParts) {
    +    let p = this;
    +    for (const part of dirParts) {
    +      p = p.child(part);
    +    }
    +    return p;
    +  }
    +  /**
    +   * Returns the cached children Path objects, if still available.  If they
    +   * have fallen out of the cache, then returns an empty array, and resets the
    +   * READDIR_CALLED bit, so that future calls to readdir() will require an fs
    +   * lookup.
    +   *
    +   * @internal
    +   */
    +  children() {
    +    const cached = this.#children.get(this);
    +    if (cached) {
    +      return cached;
    +    }
    +    const children = Object.assign([], { provisional: 0 });
    +    this.#children.set(this, children);
    +    this.#type &= ~READDIR_CALLED;
    +    return children;
    +  }
    +  /**
    +   * Resolves a path portion and returns or creates the child Path.
    +   *
    +   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is
    +   * `'..'`.
    +   *
    +   * This should not be called directly.  If `pathPart` contains any path
    +   * separators, it will lead to unsafe undefined behavior.
    +   *
    +   * Use `Path.resolve()` instead.
    +   *
    +   * @internal
    +   */
    +  child(pathPart, opts) {
    +    if (pathPart === "" || pathPart === ".") {
    +      return this;
    +    }
    +    if (pathPart === "..") {
    +      return this.parent || this;
    +    }
    +    const children = this.children();
    +    const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
    +    for (const p of children) {
    +      if (p.#matchName === name) {
    +        return p;
    +      }
    +    }
    +    const s = this.parent ? this.sep : "";
    +    const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0;
    +    const pchild = this.newChild(pathPart, UNKNOWN, {
    +      ...opts,
    +      parent: this,
    +      fullpath
    +    });
    +    if (!this.canReaddir()) {
    +      pchild.#type |= ENOENT;
    +    }
    +    children.push(pchild);
    +    return pchild;
    +  }
    +  /**
    +   * The relative path from the cwd. If it does not share an ancestor with
    +   * the cwd, then this ends up being equivalent to the fullpath()
    +   */
    +  relative() {
    +    if (this.#relative !== void 0) {
    +      return this.#relative;
    +    }
    +    const name = this.name;
    +    const p = this.parent;
    +    if (!p) {
    +      return this.#relative = this.name;
    +    }
    +    const pv = p.relative();
    +    return pv + (!pv || !p.parent ? "" : this.sep) + name;
    +  }
    +  /**
    +   * The relative path from the cwd, using / as the path separator.
    +   * If it does not share an ancestor with
    +   * the cwd, then this ends up being equivalent to the fullpathPosix()
    +   * On posix systems, this is identical to relative().
    +   */
    +  relativePosix() {
    +    if (this.sep === "/")
    +      return this.relative();
    +    if (this.#relativePosix !== void 0)
    +      return this.#relativePosix;
    +    const name = this.name;
    +    const p = this.parent;
    +    if (!p) {
    +      return this.#relativePosix = this.fullpathPosix();
    +    }
    +    const pv = p.relativePosix();
    +    return pv + (!pv || !p.parent ? "" : "/") + name;
    +  }
    +  /**
    +   * The fully resolved path string for this Path entry
    +   */
    +  fullpath() {
    +    if (this.#fullpath !== void 0) {
    +      return this.#fullpath;
    +    }
    +    const name = this.name;
    +    const p = this.parent;
    +    if (!p) {
    +      return this.#fullpath = this.name;
    +    }
    +    const pv = p.fullpath();
    +    const fp = pv + (!p.parent ? "" : this.sep) + name;
    +    return this.#fullpath = fp;
    +  }
    +  /**
    +   * On platforms other than windows, this is identical to fullpath.
    +   *
    +   * On windows, this is overridden to return the forward-slash form of the
    +   * full UNC path.
    +   */
    +  fullpathPosix() {
    +    if (this.#fullpathPosix !== void 0)
    +      return this.#fullpathPosix;
    +    if (this.sep === "/")
    +      return this.#fullpathPosix = this.fullpath();
    +    if (!this.parent) {
    +      const p2 = this.fullpath().replace(/\\/g, "/");
    +      if (/^[a-z]:\//i.test(p2)) {
    +        return this.#fullpathPosix = `//?/${p2}`;
    +      } else {
    +        return this.#fullpathPosix = p2;
    +      }
    +    }
    +    const p = this.parent;
    +    const pfpp = p.fullpathPosix();
    +    const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name;
    +    return this.#fullpathPosix = fpp;
    +  }
    +  /**
    +   * Is the Path of an unknown type?
    +   *
    +   * Note that we might know *something* about it if there has been a previous
    +   * filesystem operation, for example that it does not exist, or is not a
    +   * link, or whether it has child entries.
    +   */
    +  isUnknown() {
    +    return (this.#type & IFMT) === UNKNOWN;
    +  }
    +  isType(type2) {
    +    return this[`is${type2}`]();
    +  }
    +  getType() {
    +    return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : (
    +      /* c8 ignore start */
    +      this.isSocket() ? "Socket" : "Unknown"
    +    );
    +  }
    +  /**
    +   * Is the Path a regular file?
    +   */
    +  isFile() {
    +    return (this.#type & IFMT) === IFREG;
    +  }
    +  /**
    +   * Is the Path a directory?
    +   */
    +  isDirectory() {
    +    return (this.#type & IFMT) === IFDIR;
    +  }
    +  /**
    +   * Is the path a character device?
    +   */
    +  isCharacterDevice() {
    +    return (this.#type & IFMT) === IFCHR;
    +  }
    +  /**
    +   * Is the path a block device?
    +   */
    +  isBlockDevice() {
    +    return (this.#type & IFMT) === IFBLK;
    +  }
    +  /**
    +   * Is the path a FIFO pipe?
    +   */
    +  isFIFO() {
    +    return (this.#type & IFMT) === IFIFO;
    +  }
    +  /**
    +   * Is the path a socket?
    +   */
    +  isSocket() {
    +    return (this.#type & IFMT) === IFSOCK;
    +  }
    +  /**
    +   * Is the path a symbolic link?
    +   */
    +  isSymbolicLink() {
    +    return (this.#type & IFLNK) === IFLNK;
    +  }
    +  /**
    +   * Return the entry if it has been subject of a successful lstat, or
    +   * undefined otherwise.
    +   *
    +   * Does not read the filesystem, so an undefined result *could* simply
    +   * mean that we haven't called lstat on it.
    +   */
    +  lstatCached() {
    +    return this.#type & LSTAT_CALLED ? this : void 0;
    +  }
    +  /**
    +   * Return the cached link target if the entry has been the subject of a
    +   * successful readlink, or undefined otherwise.
    +   *
    +   * Does not read the filesystem, so an undefined result *could* just mean we
    +   * don't have any cached data. Only use it if you are very sure that a
    +   * readlink() has been called at some point.
    +   */
    +  readlinkCached() {
    +    return this.#linkTarget;
    +  }
    +  /**
    +   * Returns the cached realpath target if the entry has been the subject
    +   * of a successful realpath, or undefined otherwise.
    +   *
    +   * Does not read the filesystem, so an undefined result *could* just mean we
    +   * don't have any cached data. Only use it if you are very sure that a
    +   * realpath() has been called at some point.
    +   */
    +  realpathCached() {
    +    return this.#realpath;
    +  }
    +  /**
    +   * Returns the cached child Path entries array if the entry has been the
    +   * subject of a successful readdir(), or [] otherwise.
    +   *
    +   * Does not read the filesystem, so an empty array *could* just mean we
    +   * don't have any cached data. Only use it if you are very sure that a
    +   * readdir() has been called recently enough to still be valid.
    +   */
    +  readdirCached() {
    +    const children = this.children();
    +    return children.slice(0, children.provisional);
    +  }
    +  /**
    +   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have
    +   * any indication that readlink will definitely fail.
    +   *
    +   * Returns false if the path is known to not be a symlink, if a previous
    +   * readlink failed, or if the entry does not exist.
    +   */
    +  canReadlink() {
    +    if (this.#linkTarget)
    +      return true;
    +    if (!this.parent)
    +      return false;
    +    const ifmt = this.#type & IFMT;
    +    return !(ifmt !== UNKNOWN && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT);
    +  }
    +  /**
    +   * Return true if readdir has previously been successfully called on this
    +   * path, indicating that cachedReaddir() is likely valid.
    +   */
    +  calledReaddir() {
    +    return !!(this.#type & READDIR_CALLED);
    +  }
    +  /**
    +   * Returns true if the path is known to not exist. That is, a previous lstat
    +   * or readdir failed to verify its existence when that would have been
    +   * expected, or a parent entry was marked either enoent or enotdir.
    +   */
    +  isENOENT() {
    +    return !!(this.#type & ENOENT);
    +  }
    +  /**
    +   * Return true if the path is a match for the given path name.  This handles
    +   * case sensitivity and unicode normalization.
    +   *
    +   * Note: even on case-sensitive systems, it is **not** safe to test the
    +   * equality of the `.name` property to determine whether a given pathname
    +   * matches, due to unicode normalization mismatches.
    +   *
    +   * Always use this method instead of testing the `path.name` property
    +   * directly.
    +   */
    +  isNamed(n) {
    +    return !this.nocase ? this.#matchName === normalize(n) : this.#matchName === normalizeNocase(n);
    +  }
    +  /**
    +   * Return the Path object corresponding to the target of a symbolic link.
    +   *
    +   * If the Path is not a symbolic link, or if the readlink call fails for any
    +   * reason, `undefined` is returned.
    +   *
    +   * Result is cached, and thus may be outdated if the filesystem is mutated.
    +   */
    +  async readlink() {
    +    const target = this.#linkTarget;
    +    if (target) {
    +      return target;
    +    }
    +    if (!this.canReadlink()) {
    +      return void 0;
    +    }
    +    if (!this.parent) {
    +      return void 0;
    +    }
    +    try {
    +      const read = await this.#fs.promises.readlink(this.fullpath());
    +      const linkTarget = this.parent.resolve(read);
    +      if (linkTarget) {
    +        return this.#linkTarget = linkTarget;
    +      }
    +    } catch (er) {
    +      this.#readlinkFail(er.code);
    +      return void 0;
    +    }
    +  }
    +  /**
    +   * Synchronous {@link PathBase.readlink}
    +   */
    +  readlinkSync() {
    +    const target = this.#linkTarget;
    +    if (target) {
    +      return target;
    +    }
    +    if (!this.canReadlink()) {
    +      return void 0;
    +    }
    +    if (!this.parent) {
    +      return void 0;
    +    }
    +    try {
    +      const read = this.#fs.readlinkSync(this.fullpath());
    +      const linkTarget = this.parent.resolve(read);
    +      if (linkTarget) {
    +        return this.#linkTarget = linkTarget;
    +      }
    +    } catch (er) {
    +      this.#readlinkFail(er.code);
    +      return void 0;
    +    }
    +  }
    +  #readdirSuccess(children) {
    +    this.#type |= READDIR_CALLED;
    +    for (let p = children.provisional; p < children.length; p++) {
    +      children[p].#markENOENT();
    +    }
    +  }
    +  #markENOENT() {
    +    if (this.#type & ENOENT)
    +      return;
    +    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;
    +    this.#markChildrenENOENT();
    +  }
    +  #markChildrenENOENT() {
    +    const children = this.children();
    +    children.provisional = 0;
    +    for (const p of children) {
    +      p.#markENOENT();
    +    }
    +  }
    +  #markENOREALPATH() {
    +    this.#type |= ENOREALPATH;
    +    this.#markENOTDIR();
    +  }
    +  // save the information when we know the entry is not a dir
    +  #markENOTDIR() {
    +    if (this.#type & ENOTDIR)
    +      return;
    +    let t = this.#type;
    +    if ((t & IFMT) === IFDIR)
    +      t &= IFMT_UNKNOWN;
    +    this.#type = t | ENOTDIR;
    +    this.#markChildrenENOENT();
    +  }
    +  #readdirFail(code = "") {
    +    if (code === "ENOTDIR" || code === "EPERM") {
    +      this.#markENOTDIR();
    +    } else if (code === "ENOENT") {
    +      this.#markENOENT();
    +    } else {
    +      this.children().provisional = 0;
    +    }
    +  }
    +  #lstatFail(code = "") {
    +    if (code === "ENOTDIR") {
    +      const p = this.parent;
    +      p.#markENOTDIR();
    +    } else if (code === "ENOENT") {
    +      this.#markENOENT();
    +    }
    +  }
    +  #readlinkFail(code = "") {
    +    let ter = this.#type;
    +    ter |= ENOREADLINK;
    +    if (code === "ENOENT")
    +      ter |= ENOENT;
    +    if (code === "EINVAL" || code === "UNKNOWN") {
    +      ter &= IFMT_UNKNOWN;
    +    }
    +    this.#type = ter;
    +    if (code === "ENOTDIR" && this.parent) {
    +      this.parent.#markENOTDIR();
    +    }
    +  }
    +  #readdirAddChild(e, c) {
    +    return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c);
    +  }
    +  #readdirAddNewChild(e, c) {
    +    const type2 = entToType(e);
    +    const child = this.newChild(e.name, type2, { parent: this });
    +    const ifmt = child.#type & IFMT;
    +    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {
    +      child.#type |= ENOTDIR;
    +    }
    +    c.unshift(child);
    +    c.provisional++;
    +    return child;
    +  }
    +  #readdirMaybePromoteChild(e, c) {
    +    for (let p = c.provisional; p < c.length; p++) {
    +      const pchild = c[p];
    +      const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);
    +      if (name !== pchild.#matchName) {
    +        continue;
    +      }
    +      return this.#readdirPromoteChild(e, pchild, p, c);
    +    }
    +  }
    +  #readdirPromoteChild(e, p, index, c) {
    +    const v = p.name;
    +    p.#type = p.#type & IFMT_UNKNOWN | entToType(e);
    +    if (v !== e.name)
    +      p.name = e.name;
    +    if (index !== c.provisional) {
    +      if (index === c.length - 1)
    +        c.pop();
    +      else
    +        c.splice(index, 1);
    +      c.unshift(p);
    +    }
    +    c.provisional++;
    +    return p;
    +  }
    +  /**
    +   * Call lstat() on this Path, and update all known information that can be
    +   * determined.
    +   *
    +   * Note that unlike `fs.lstat()`, the returned value does not contain some
    +   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
    +   * information is required, you will need to call `fs.lstat` yourself.
    +   *
    +   * If the Path refers to a nonexistent file, or if the lstat call fails for
    +   * any reason, `undefined` is returned.  Otherwise the updated Path object is
    +   * returned.
    +   *
    +   * Results are cached, and thus may be out of date if the filesystem is
    +   * mutated.
    +   */
    +  async lstat() {
    +    if ((this.#type & ENOENT) === 0) {
    +      try {
    +        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));
    +        return this;
    +      } catch (er) {
    +        this.#lstatFail(er.code);
    +      }
    +    }
    +  }
    +  /**
    +   * synchronous {@link PathBase.lstat}
    +   */
    +  lstatSync() {
    +    if ((this.#type & ENOENT) === 0) {
    +      try {
    +        this.#applyStat(this.#fs.lstatSync(this.fullpath()));
    +        return this;
    +      } catch (er) {
    +        this.#lstatFail(er.code);
    +      }
    +    }
    +  }
    +  #applyStat(st) {
    +    const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st;
    +    this.#atime = atime;
    +    this.#atimeMs = atimeMs;
    +    this.#birthtime = birthtime;
    +    this.#birthtimeMs = birthtimeMs;
    +    this.#blksize = blksize;
    +    this.#blocks = blocks;
    +    this.#ctime = ctime;
    +    this.#ctimeMs = ctimeMs;
    +    this.#dev = dev;
    +    this.#gid = gid;
    +    this.#ino = ino;
    +    this.#mode = mode;
    +    this.#mtime = mtime;
    +    this.#mtimeMs = mtimeMs;
    +    this.#nlink = nlink;
    +    this.#rdev = rdev;
    +    this.#size = size;
    +    this.#uid = uid;
    +    const ifmt = entToType(st);
    +    this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED;
    +    if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {
    +      this.#type |= ENOTDIR;
    +    }
    +  }
    +  #onReaddirCB = [];
    +  #readdirCBInFlight = false;
    +  #callOnReaddirCB(children) {
    +    this.#readdirCBInFlight = false;
    +    const cbs = this.#onReaddirCB.slice();
    +    this.#onReaddirCB.length = 0;
    +    cbs.forEach((cb) => cb(null, children));
    +  }
    +  /**
    +   * Standard node-style callback interface to get list of directory entries.
    +   *
    +   * If the Path cannot or does not contain any children, then an empty array
    +   * is returned.
    +   *
    +   * Results are cached, and thus may be out of date if the filesystem is
    +   * mutated.
    +   *
    +   * @param cb The callback called with (er, entries).  Note that the `er`
    +   * param is somewhat extraneous, as all readdir() errors are handled and
    +   * simply result in an empty set of entries being returned.
    +   * @param allowZalgo Boolean indicating that immediately known results should
    +   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release
    +   * zalgo at your peril, the dark pony lord is devious and unforgiving.
    +   */
    +  readdirCB(cb, allowZalgo = false) {
    +    if (!this.canReaddir()) {
    +      if (allowZalgo)
    +        cb(null, []);
    +      else
    +        queueMicrotask(() => cb(null, []));
    +      return;
    +    }
    +    const children = this.children();
    +    if (this.calledReaddir()) {
    +      const c = children.slice(0, children.provisional);
    +      if (allowZalgo)
    +        cb(null, c);
    +      else
    +        queueMicrotask(() => cb(null, c));
    +      return;
    +    }
    +    this.#onReaddirCB.push(cb);
    +    if (this.#readdirCBInFlight) {
    +      return;
    +    }
    +    this.#readdirCBInFlight = true;
    +    const fullpath = this.fullpath();
    +    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {
    +      if (er) {
    +        this.#readdirFail(er.code);
    +        children.provisional = 0;
    +      } else {
    +        for (const e of entries) {
    +          this.#readdirAddChild(e, children);
    +        }
    +        this.#readdirSuccess(children);
    +      }
    +      this.#callOnReaddirCB(children.slice(0, children.provisional));
    +      return;
    +    });
    +  }
    +  #asyncReaddirInFlight;
    +  /**
    +   * Return an array of known child entries.
    +   *
    +   * If the Path cannot or does not contain any children, then an empty array
    +   * is returned.
    +   *
    +   * Results are cached, and thus may be out of date if the filesystem is
    +   * mutated.
    +   */
    +  async readdir() {
    +    if (!this.canReaddir()) {
    +      return [];
    +    }
    +    const children = this.children();
    +    if (this.calledReaddir()) {
    +      return children.slice(0, children.provisional);
    +    }
    +    const fullpath = this.fullpath();
    +    if (this.#asyncReaddirInFlight) {
    +      await this.#asyncReaddirInFlight;
    +    } else {
    +      let resolve2 = () => {
    +      };
    +      this.#asyncReaddirInFlight = new Promise((res) => resolve2 = res);
    +      try {
    +        for (const e of await this.#fs.promises.readdir(fullpath, {
    +          withFileTypes: true
    +        })) {
    +          this.#readdirAddChild(e, children);
    +        }
    +        this.#readdirSuccess(children);
    +      } catch (er) {
    +        this.#readdirFail(er.code);
    +        children.provisional = 0;
    +      }
    +      this.#asyncReaddirInFlight = void 0;
    +      resolve2();
    +    }
    +    return children.slice(0, children.provisional);
    +  }
    +  /**
    +   * synchronous {@link PathBase.readdir}
    +   */
    +  readdirSync() {
    +    if (!this.canReaddir()) {
    +      return [];
    +    }
    +    const children = this.children();
    +    if (this.calledReaddir()) {
    +      return children.slice(0, children.provisional);
    +    }
    +    const fullpath = this.fullpath();
    +    try {
    +      for (const e of this.#fs.readdirSync(fullpath, {
    +        withFileTypes: true
    +      })) {
    +        this.#readdirAddChild(e, children);
    +      }
    +      this.#readdirSuccess(children);
    +    } catch (er) {
    +      this.#readdirFail(er.code);
    +      children.provisional = 0;
    +    }
    +    return children.slice(0, children.provisional);
    +  }
    +  canReaddir() {
    +    if (this.#type & ENOCHILD)
    +      return false;
    +    const ifmt = IFMT & this.#type;
    +    if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {
    +      return false;
    +    }
    +    return true;
    +  }
    +  shouldWalk(dirs, walkFilter) {
    +    return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this));
    +  }
    +  /**
    +   * Return the Path object corresponding to path as resolved
    +   * by realpath(3).
    +   *
    +   * If the realpath call fails for any reason, `undefined` is returned.
    +   *
    +   * Result is cached, and thus may be outdated if the filesystem is mutated.
    +   * On success, returns a Path object.
    +   */
    +  async realpath() {
    +    if (this.#realpath)
    +      return this.#realpath;
    +    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
    +      return void 0;
    +    try {
    +      const rp = await this.#fs.promises.realpath(this.fullpath());
    +      return this.#realpath = this.resolve(rp);
    +    } catch (_) {
    +      this.#markENOREALPATH();
    +    }
    +  }
    +  /**
    +   * Synchronous {@link realpath}
    +   */
    +  realpathSync() {
    +    if (this.#realpath)
    +      return this.#realpath;
    +    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
    +      return void 0;
    +    try {
    +      const rp = this.#fs.realpathSync(this.fullpath());
    +      return this.#realpath = this.resolve(rp);
    +    } catch (_) {
    +      this.#markENOREALPATH();
    +    }
    +  }
    +  /**
    +   * Internal method to mark this Path object as the scurry cwd,
    +   * called by {@link PathScurry#chdir}
    +   *
    +   * @internal
    +   */
    +  [setAsCwd](oldCwd) {
    +    if (oldCwd === this)
    +      return;
    +    const changed = /* @__PURE__ */ new Set([]);
    +    let rp = [];
    +    let p = this;
    +    while (p && p.parent) {
    +      changed.add(p);
    +      p.#relative = rp.join(this.sep);
    +      p.#relativePosix = rp.join("/");
    +      p = p.parent;
    +      rp.push("..");
    +    }
    +    p = oldCwd;
    +    while (p && p.parent && !changed.has(p)) {
    +      p.#relative = void 0;
    +      p.#relativePosix = void 0;
    +      p = p.parent;
    +    }
    +  }
    +};
    +var PathWin32 = class _PathWin32 extends PathBase {
    +  /**
    +   * Separator for generating path strings.
    +   */
    +  sep = "\\";
    +  /**
    +   * Separator for parsing path strings.
    +   */
    +  splitSep = eitherSep;
    +  /**
    +   * Do not create new Path objects directly.  They should always be accessed
    +   * via the PathScurry class or other methods on the Path class.
    +   *
    +   * @internal
    +   */
    +  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
    +    super(name, type2, root, roots, nocase, children, opts);
    +  }
    +  /**
    +   * @internal
    +   */
    +  newChild(name, type2 = UNKNOWN, opts = {}) {
    +    return new _PathWin32(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
    +  }
    +  /**
    +   * @internal
    +   */
    +  getRootString(path4) {
    +    return import_path.win32.parse(path4).root;
    +  }
    +  /**
    +   * @internal
    +   */
    +  getRoot(rootPath) {
    +    rootPath = uncToDrive(rootPath.toUpperCase());
    +    if (rootPath === this.root.name) {
    +      return this.root;
    +    }
    +    for (const [compare, root] of Object.entries(this.roots)) {
    +      if (this.sameRoot(rootPath, compare)) {
    +        return this.roots[rootPath] = root;
    +      }
    +    }
    +    return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root;
    +  }
    +  /**
    +   * @internal
    +   */
    +  sameRoot(rootPath, compare = this.root.name) {
    +    rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
    +    return rootPath === compare;
    +  }
    +};
    +var PathPosix = class _PathPosix extends PathBase {
    +  /**
    +   * separator for parsing path strings
    +   */
    +  splitSep = "/";
    +  /**
    +   * separator for generating path strings
    +   */
    +  sep = "/";
    +  /**
    +   * Do not create new Path objects directly.  They should always be accessed
    +   * via the PathScurry class or other methods on the Path class.
    +   *
    +   * @internal
    +   */
    +  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
    +    super(name, type2, root, roots, nocase, children, opts);
    +  }
    +  /**
    +   * @internal
    +   */
    +  getRootString(path4) {
    +    return path4.startsWith("/") ? "/" : "";
    +  }
    +  /**
    +   * @internal
    +   */
    +  getRoot(_rootPath) {
    +    return this.root;
    +  }
    +  /**
    +   * @internal
    +   */
    +  newChild(name, type2 = UNKNOWN, opts = {}) {
    +    return new _PathPosix(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
    +  }
    +};
    +var PathScurryBase = class {
    +  /**
    +   * The root Path entry for the current working directory of this Scurry
    +   */
    +  root;
    +  /**
    +   * The string path for the root of this Scurry's current working directory
    +   */
    +  rootPath;
    +  /**
    +   * A collection of all roots encountered, referenced by rootPath
    +   */
    +  roots;
    +  /**
    +   * The Path entry corresponding to this PathScurry's current working directory.
    +   */
    +  cwd;
    +  #resolveCache;
    +  #resolvePosixCache;
    +  #children;
    +  /**
    +   * Perform path comparisons case-insensitively.
    +   *
    +   * Defaults true on Darwin and Windows systems, false elsewhere.
    +   */
    +  nocase;
    +  #fs;
    +  /**
    +   * This class should not be instantiated directly.
    +   *
    +   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry
    +   *
    +   * @internal
    +   */
    +  constructor(cwd = process.cwd(), pathImpl, sep2, { nocase, childrenCacheSize = 16 * 1024, fs: fs2 = defaultFS } = {}) {
    +    this.#fs = fsFromOption(fs2);
    +    if (cwd instanceof URL || cwd.startsWith("file://")) {
    +      cwd = (0, import_url.fileURLToPath)(cwd);
    +    }
    +    const cwdPath = pathImpl.resolve(cwd);
    +    this.roots = /* @__PURE__ */ Object.create(null);
    +    this.rootPath = this.parseRootPath(cwdPath);
    +    this.#resolveCache = new ResolveCache();
    +    this.#resolvePosixCache = new ResolveCache();
    +    this.#children = new ChildrenCache(childrenCacheSize);
    +    const split = cwdPath.substring(this.rootPath.length).split(sep2);
    +    if (split.length === 1 && !split[0]) {
    +      split.pop();
    +    }
    +    if (nocase === void 0) {
    +      throw new TypeError("must provide nocase setting to PathScurryBase ctor");
    +    }
    +    this.nocase = nocase;
    +    this.root = this.newRoot(this.#fs);
    +    this.roots[this.rootPath] = this.root;
    +    let prev = this.root;
    +    let len = split.length - 1;
    +    const joinSep = pathImpl.sep;
    +    let abs = this.rootPath;
    +    let sawFirst = false;
    +    for (const part of split) {
    +      const l = len--;
    +      prev = prev.child(part, {
    +        relative: new Array(l).fill("..").join(joinSep),
    +        relativePosix: new Array(l).fill("..").join("/"),
    +        fullpath: abs += (sawFirst ? "" : joinSep) + part
    +      });
    +      sawFirst = true;
    +    }
    +    this.cwd = prev;
    +  }
    +  /**
    +   * Get the depth of a provided path, string, or the cwd
    +   */
    +  depth(path4 = this.cwd) {
    +    if (typeof path4 === "string") {
    +      path4 = this.cwd.resolve(path4);
    +    }
    +    return path4.depth();
    +  }
    +  /**
    +   * Return the cache of child entries.  Exposed so subclasses can create
    +   * child Path objects in a platform-specific way.
    +   *
    +   * @internal
    +   */
    +  childrenCache() {
    +    return this.#children;
    +  }
    +  /**
    +   * Resolve one or more path strings to a resolved string
    +   *
    +   * Same interface as require('path').resolve.
    +   *
    +   * Much faster than path.resolve() when called multiple times for the same
    +   * path, because the resolved Path objects are cached.  Much slower
    +   * otherwise.
    +   */
    +  resolve(...paths) {
    +    let r = "";
    +    for (let i = paths.length - 1; i >= 0; i--) {
    +      const p = paths[i];
    +      if (!p || p === ".")
    +        continue;
    +      r = r ? `${p}/${r}` : p;
    +      if (this.isAbsolute(p)) {
    +        break;
    +      }
    +    }
    +    const cached = this.#resolveCache.get(r);
    +    if (cached !== void 0) {
    +      return cached;
    +    }
    +    const result = this.cwd.resolve(r).fullpath();
    +    this.#resolveCache.set(r, result);
    +    return result;
    +  }
    +  /**
    +   * Resolve one or more path strings to a resolved string, returning
    +   * the posix path.  Identical to .resolve() on posix systems, but on
    +   * windows will return a forward-slash separated UNC path.
    +   *
    +   * Same interface as require('path').resolve.
    +   *
    +   * Much faster than path.resolve() when called multiple times for the same
    +   * path, because the resolved Path objects are cached.  Much slower
    +   * otherwise.
    +   */
    +  resolvePosix(...paths) {
    +    let r = "";
    +    for (let i = paths.length - 1; i >= 0; i--) {
    +      const p = paths[i];
    +      if (!p || p === ".")
    +        continue;
    +      r = r ? `${p}/${r}` : p;
    +      if (this.isAbsolute(p)) {
    +        break;
    +      }
    +    }
    +    const cached = this.#resolvePosixCache.get(r);
    +    if (cached !== void 0) {
    +      return cached;
    +    }
    +    const result = this.cwd.resolve(r).fullpathPosix();
    +    this.#resolvePosixCache.set(r, result);
    +    return result;
    +  }
    +  /**
    +   * find the relative path from the cwd to the supplied path string or entry
    +   */
    +  relative(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return entry2.relative();
    +  }
    +  /**
    +   * find the relative path from the cwd to the supplied path string or
    +   * entry, using / as the path delimiter, even on Windows.
    +   */
    +  relativePosix(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return entry2.relativePosix();
    +  }
    +  /**
    +   * Return the basename for the provided string or Path object
    +   */
    +  basename(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return entry2.name;
    +  }
    +  /**
    +   * Return the dirname for the provided string or Path object
    +   */
    +  dirname(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return (entry2.parent || entry2).fullpath();
    +  }
    +  async readdir(entry2 = this.cwd, opts = {
    +    withFileTypes: true
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes } = opts;
    +    if (!entry2.canReaddir()) {
    +      return [];
    +    } else {
    +      const p = await entry2.readdir();
    +      return withFileTypes ? p : p.map((e) => e.name);
    +    }
    +  }
    +  readdirSync(entry2 = this.cwd, opts = {
    +    withFileTypes: true
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true } = opts;
    +    if (!entry2.canReaddir()) {
    +      return [];
    +    } else if (withFileTypes) {
    +      return entry2.readdirSync();
    +    } else {
    +      return entry2.readdirSync().map((e) => e.name);
    +    }
    +  }
    +  /**
    +   * Call lstat() on the string or Path object, and update all known
    +   * information that can be determined.
    +   *
    +   * Note that unlike `fs.lstat()`, the returned value does not contain some
    +   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
    +   * information is required, you will need to call `fs.lstat` yourself.
    +   *
    +   * If the Path refers to a nonexistent file, or if the lstat call fails for
    +   * any reason, `undefined` is returned.  Otherwise the updated Path object is
    +   * returned.
    +   *
    +   * Results are cached, and thus may be out of date if the filesystem is
    +   * mutated.
    +   */
    +  async lstat(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return entry2.lstat();
    +  }
    +  /**
    +   * synchronous {@link PathScurryBase.lstat}
    +   */
    +  lstatSync(entry2 = this.cwd) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    }
    +    return entry2.lstatSync();
    +  }
    +  async readlink(entry2 = this.cwd, { withFileTypes } = {
    +    withFileTypes: false
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      withFileTypes = entry2.withFileTypes;
    +      entry2 = this.cwd;
    +    }
    +    const e = await entry2.readlink();
    +    return withFileTypes ? e : e?.fullpath();
    +  }
    +  readlinkSync(entry2 = this.cwd, { withFileTypes } = {
    +    withFileTypes: false
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      withFileTypes = entry2.withFileTypes;
    +      entry2 = this.cwd;
    +    }
    +    const e = entry2.readlinkSync();
    +    return withFileTypes ? e : e?.fullpath();
    +  }
    +  async realpath(entry2 = this.cwd, { withFileTypes } = {
    +    withFileTypes: false
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      withFileTypes = entry2.withFileTypes;
    +      entry2 = this.cwd;
    +    }
    +    const e = await entry2.realpath();
    +    return withFileTypes ? e : e?.fullpath();
    +  }
    +  realpathSync(entry2 = this.cwd, { withFileTypes } = {
    +    withFileTypes: false
    +  }) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      withFileTypes = entry2.withFileTypes;
    +      entry2 = this.cwd;
    +    }
    +    const e = entry2.realpathSync();
    +    return withFileTypes ? e : e?.fullpath();
    +  }
    +  async walk(entry2 = this.cwd, opts = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    +    const results = [];
    +    if (!filter2 || filter2(entry2)) {
    +      results.push(withFileTypes ? entry2 : entry2.fullpath());
    +    }
    +    const dirs = /* @__PURE__ */ new Set();
    +    const walk = (dir, cb) => {
    +      dirs.add(dir);
    +      dir.readdirCB((er, entries) => {
    +        if (er) {
    +          return cb(er);
    +        }
    +        let len = entries.length;
    +        if (!len)
    +          return cb();
    +        const next = () => {
    +          if (--len === 0) {
    +            cb();
    +          }
    +        };
    +        for (const e of entries) {
    +          if (!filter2 || filter2(e)) {
    +            results.push(withFileTypes ? e : e.fullpath());
    +          }
    +          if (follow && e.isSymbolicLink()) {
    +            e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());
    +          } else {
    +            if (e.shouldWalk(dirs, walkFilter)) {
    +              walk(e, next);
    +            } else {
    +              next();
    +            }
    +          }
    +        }
    +      }, true);
    +    };
    +    const start = entry2;
    +    return new Promise((res, rej) => {
    +      walk(start, (er) => {
    +        if (er)
    +          return rej(er);
    +        res(results);
    +      });
    +    });
    +  }
    +  walkSync(entry2 = this.cwd, opts = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    +    const results = [];
    +    if (!filter2 || filter2(entry2)) {
    +      results.push(withFileTypes ? entry2 : entry2.fullpath());
    +    }
    +    const dirs = /* @__PURE__ */ new Set([entry2]);
    +    for (const dir of dirs) {
    +      const entries = dir.readdirSync();
    +      for (const e of entries) {
    +        if (!filter2 || filter2(e)) {
    +          results.push(withFileTypes ? e : e.fullpath());
    +        }
    +        let r = e;
    +        if (e.isSymbolicLink()) {
    +          if (!(follow && (r = e.realpathSync())))
    +            continue;
    +          if (r.isUnknown())
    +            r.lstatSync();
    +        }
    +        if (r.shouldWalk(dirs, walkFilter)) {
    +          dirs.add(r);
    +        }
    +      }
    +    }
    +    return results;
    +  }
    +  /**
    +   * Support for `for await`
    +   *
    +   * Alias for {@link PathScurryBase.iterate}
    +   *
    +   * Note: As of Node 19, this is very slow, compared to other methods of
    +   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead
    +   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.
    +   */
    +  [Symbol.asyncIterator]() {
    +    return this.iterate();
    +  }
    +  iterate(entry2 = this.cwd, options = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      options = entry2;
    +      entry2 = this.cwd;
    +    }
    +    return this.stream(entry2, options)[Symbol.asyncIterator]();
    +  }
    +  /**
    +   * Iterating over a PathScurry performs a synchronous walk.
    +   *
    +   * Alias for {@link PathScurryBase.iterateSync}
    +   */
    +  [Symbol.iterator]() {
    +    return this.iterateSync();
    +  }
    +  *iterateSync(entry2 = this.cwd, opts = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    +    if (!filter2 || filter2(entry2)) {
    +      yield withFileTypes ? entry2 : entry2.fullpath();
    +    }
    +    const dirs = /* @__PURE__ */ new Set([entry2]);
    +    for (const dir of dirs) {
    +      const entries = dir.readdirSync();
    +      for (const e of entries) {
    +        if (!filter2 || filter2(e)) {
    +          yield withFileTypes ? e : e.fullpath();
    +        }
    +        let r = e;
    +        if (e.isSymbolicLink()) {
    +          if (!(follow && (r = e.realpathSync())))
    +            continue;
    +          if (r.isUnknown())
    +            r.lstatSync();
    +        }
    +        if (r.shouldWalk(dirs, walkFilter)) {
    +          dirs.add(r);
    +        }
    +      }
    +    }
    +  }
    +  stream(entry2 = this.cwd, opts = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    +    const results = new Minipass({ objectMode: true });
    +    if (!filter2 || filter2(entry2)) {
    +      results.write(withFileTypes ? entry2 : entry2.fullpath());
    +    }
    +    const dirs = /* @__PURE__ */ new Set();
    +    const queue = [entry2];
    +    let processing = 0;
    +    const process2 = () => {
    +      let paused = false;
    +      while (!paused) {
    +        const dir = queue.shift();
    +        if (!dir) {
    +          if (processing === 0)
    +            results.end();
    +          return;
    +        }
    +        processing++;
    +        dirs.add(dir);
    +        const onReaddir = (er, entries, didRealpaths = false) => {
    +          if (er)
    +            return results.emit("error", er);
    +          if (follow && !didRealpaths) {
    +            const promises = [];
    +            for (const e of entries) {
    +              if (e.isSymbolicLink()) {
    +                promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r));
    +              }
    +            }
    +            if (promises.length) {
    +              Promise.all(promises).then(() => onReaddir(null, entries, true));
    +              return;
    +            }
    +          }
    +          for (const e of entries) {
    +            if (e && (!filter2 || filter2(e))) {
    +              if (!results.write(withFileTypes ? e : e.fullpath())) {
    +                paused = true;
    +              }
    +            }
    +          }
    +          processing--;
    +          for (const e of entries) {
    +            const r = e.realpathCached() || e;
    +            if (r.shouldWalk(dirs, walkFilter)) {
    +              queue.push(r);
    +            }
    +          }
    +          if (paused && !results.flowing) {
    +            results.once("drain", process2);
    +          } else if (!sync2) {
    +            process2();
    +          }
    +        };
    +        let sync2 = true;
    +        dir.readdirCB(onReaddir, true);
    +        sync2 = false;
    +      }
    +    };
    +    process2();
    +    return results;
    +  }
    +  streamSync(entry2 = this.cwd, opts = {}) {
    +    if (typeof entry2 === "string") {
    +      entry2 = this.cwd.resolve(entry2);
    +    } else if (!(entry2 instanceof PathBase)) {
    +      opts = entry2;
    +      entry2 = this.cwd;
    +    }
    +    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    +    const results = new Minipass({ objectMode: true });
    +    const dirs = /* @__PURE__ */ new Set();
    +    if (!filter2 || filter2(entry2)) {
    +      results.write(withFileTypes ? entry2 : entry2.fullpath());
    +    }
    +    const queue = [entry2];
    +    let processing = 0;
    +    const process2 = () => {
    +      let paused = false;
    +      while (!paused) {
    +        const dir = queue.shift();
    +        if (!dir) {
    +          if (processing === 0)
    +            results.end();
    +          return;
    +        }
    +        processing++;
    +        dirs.add(dir);
    +        const entries = dir.readdirSync();
    +        for (const e of entries) {
    +          if (!filter2 || filter2(e)) {
    +            if (!results.write(withFileTypes ? e : e.fullpath())) {
    +              paused = true;
    +            }
    +          }
    +        }
    +        processing--;
    +        for (const e of entries) {
    +          let r = e;
    +          if (e.isSymbolicLink()) {
    +            if (!(follow && (r = e.realpathSync())))
    +              continue;
    +            if (r.isUnknown())
    +              r.lstatSync();
    +          }
    +          if (r.shouldWalk(dirs, walkFilter)) {
    +            queue.push(r);
    +          }
    +        }
    +      }
    +      if (paused && !results.flowing)
    +        results.once("drain", process2);
    +    };
    +    process2();
    +    return results;
    +  }
    +  chdir(path4 = this.cwd) {
    +    const oldCwd = this.cwd;
    +    this.cwd = typeof path4 === "string" ? this.cwd.resolve(path4) : path4;
    +    this.cwd[setAsCwd](oldCwd);
    +  }
    +};
    +var PathScurryWin32 = class extends PathScurryBase {
    +  /**
    +   * separator for generating path strings
    +   */
    +  sep = "\\";
    +  constructor(cwd = process.cwd(), opts = {}) {
    +    const { nocase = true } = opts;
    +    super(cwd, import_path.win32, "\\", { ...opts, nocase });
    +    this.nocase = nocase;
    +    for (let p = this.cwd; p; p = p.parent) {
    +      p.nocase = this.nocase;
    +    }
    +  }
    +  /**
    +   * @internal
    +   */
    +  parseRootPath(dir) {
    +    return import_path.win32.parse(dir).root.toUpperCase();
    +  }
    +  /**
    +   * @internal
    +   */
    +  newRoot(fs2) {
    +    return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
    +  }
    +  /**
    +   * Return true if the provided path string is an absolute path
    +   */
    +  isAbsolute(p) {
    +    return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p);
    +  }
    +};
    +var PathScurryPosix = class extends PathScurryBase {
    +  /**
    +   * separator for generating path strings
    +   */
    +  sep = "/";
    +  constructor(cwd = process.cwd(), opts = {}) {
    +    const { nocase = false } = opts;
    +    super(cwd, import_path.posix, "/", { ...opts, nocase });
    +    this.nocase = nocase;
    +  }
    +  /**
    +   * @internal
    +   */
    +  parseRootPath(_dir) {
    +    return "/";
    +  }
    +  /**
    +   * @internal
    +   */
    +  newRoot(fs2) {
    +    return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
    +  }
    +  /**
    +   * Return true if the provided path string is an absolute path
    +   */
    +  isAbsolute(p) {
    +    return p.startsWith("/");
    +  }
    +};
    +var PathScurryDarwin = class extends PathScurryPosix {
    +  constructor(cwd = process.cwd(), opts = {}) {
    +    const { nocase = true } = opts;
    +    super(cwd, { ...opts, nocase });
    +  }
    +};
    +var Path = process.platform === "win32" ? PathWin32 : PathPosix;
    +var PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix;
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
    +var import_url2 = require("url");
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/pattern.js
    +var isPatternList = (pl) => pl.length >= 1;
    +var isGlobList = (gl) => gl.length >= 1;
    +var Pattern = class _Pattern {
    +  #patternList;
    +  #globList;
    +  #index;
    +  length;
    +  #platform;
    +  #rest;
    +  #globString;
    +  #isDrive;
    +  #isUNC;
    +  #isAbsolute;
    +  #followGlobstar = true;
    +  constructor(patternList, globList, index, platform) {
    +    if (!isPatternList(patternList)) {
    +      throw new TypeError("empty pattern list");
    +    }
    +    if (!isGlobList(globList)) {
    +      throw new TypeError("empty glob list");
    +    }
    +    if (globList.length !== patternList.length) {
    +      throw new TypeError("mismatched pattern list and glob list lengths");
    +    }
    +    this.length = patternList.length;
    +    if (index < 0 || index >= this.length) {
    +      throw new TypeError("index out of range");
    +    }
    +    this.#patternList = patternList;
    +    this.#globList = globList;
    +    this.#index = index;
    +    this.#platform = platform;
    +    if (this.#index === 0) {
    +      if (this.isUNC()) {
    +        const [p0, p1, p2, p3, ...prest] = this.#patternList;
    +        const [g0, g1, g2, g3, ...grest] = this.#globList;
    +        if (prest[0] === "") {
    +          prest.shift();
    +          grest.shift();
    +        }
    +        const p = [p0, p1, p2, p3, ""].join("/");
    +        const g = [g0, g1, g2, g3, ""].join("/");
    +        this.#patternList = [p, ...prest];
    +        this.#globList = [g, ...grest];
    +        this.length = this.#patternList.length;
    +      } else if (this.isDrive() || this.isAbsolute()) {
    +        const [p1, ...prest] = this.#patternList;
    +        const [g1, ...grest] = this.#globList;
    +        if (prest[0] === "") {
    +          prest.shift();
    +          grest.shift();
    +        }
    +        const p = p1 + "/";
    +        const g = g1 + "/";
    +        this.#patternList = [p, ...prest];
    +        this.#globList = [g, ...grest];
    +        this.length = this.#patternList.length;
    +      }
    +    }
    +  }
    +  /**
    +   * The first entry in the parsed list of patterns
    +   */
    +  pattern() {
    +    return this.#patternList[this.#index];
    +  }
    +  /**
    +   * true of if pattern() returns a string
    +   */
    +  isString() {
    +    return typeof this.#patternList[this.#index] === "string";
    +  }
    +  /**
    +   * true of if pattern() returns GLOBSTAR
    +   */
    +  isGlobstar() {
    +    return this.#patternList[this.#index] === GLOBSTAR;
    +  }
    +  /**
    +   * true if pattern() returns a regexp
    +   */
    +  isRegExp() {
    +    return this.#patternList[this.#index] instanceof RegExp;
    +  }
    +  /**
    +   * The /-joined set of glob parts that make up this pattern
    +   */
    +  globString() {
    +    return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/"));
    +  }
    +  /**
    +   * true if there are more pattern parts after this one
    +   */
    +  hasMore() {
    +    return this.length > this.#index + 1;
    +  }
    +  /**
    +   * The rest of the pattern after this part, or null if this is the end
    +   */
    +  rest() {
    +    if (this.#rest !== void 0)
    +      return this.#rest;
    +    if (!this.hasMore())
    +      return this.#rest = null;
    +    this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
    +    this.#rest.#isAbsolute = this.#isAbsolute;
    +    this.#rest.#isUNC = this.#isUNC;
    +    this.#rest.#isDrive = this.#isDrive;
    +    return this.#rest;
    +  }
    +  /**
    +   * true if the pattern represents a //unc/path/ on windows
    +   */
    +  isUNC() {
    +    const pl = this.#patternList;
    +    return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3];
    +  }
    +  // pattern like C:/...
    +  // split = ['C:', ...]
    +  // XXX: would be nice to handle patterns like `c:*` to test the cwd
    +  // in c: for *, but I don't know of a way to even figure out what that
    +  // cwd is without actually chdir'ing into it?
    +  /**
    +   * True if the pattern starts with a drive letter on Windows
    +   */
    +  isDrive() {
    +    const pl = this.#patternList;
    +    return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]);
    +  }
    +  // pattern = '/' or '/...' or '/x/...'
    +  // split = ['', ''] or ['', ...] or ['', 'x', ...]
    +  // Drive and UNC both considered absolute on windows
    +  /**
    +   * True if the pattern is rooted on an absolute path
    +   */
    +  isAbsolute() {
    +    const pl = this.#patternList;
    +    return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC();
    +  }
    +  /**
    +   * consume the root of the pattern, and return it
    +   */
    +  root() {
    +    const p = this.#patternList[0];
    +    return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : "";
    +  }
    +  /**
    +   * Check to see if the current globstar pattern is allowed to follow
    +   * a symbolic link.
    +   */
    +  checkFollowGlobstar() {
    +    return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar);
    +  }
    +  /**
    +   * Mark that the current globstar pattern is following a symbolic link
    +   */
    +  markFollowGlobstar() {
    +    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
    +      return false;
    +    this.#followGlobstar = false;
    +    return true;
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/ignore.js
    +var defaultPlatform2 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
    +var Ignore = class {
    +  relative;
    +  relativeChildren;
    +  absolute;
    +  absoluteChildren;
    +  constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform2 }) {
    +    this.relative = [];
    +    this.absolute = [];
    +    this.relativeChildren = [];
    +    this.absoluteChildren = [];
    +    const mmopts = {
    +      dot: true,
    +      nobrace,
    +      nocase,
    +      noext,
    +      noglobstar,
    +      optimizationLevel: 2,
    +      platform,
    +      nocomment: true,
    +      nonegate: true
    +    };
    +    for (const ign of ignored) {
    +      const mm = new Minimatch(ign, mmopts);
    +      for (let i = 0; i < mm.set.length; i++) {
    +        const parsed = mm.set[i];
    +        const globParts = mm.globParts[i];
    +        if (!parsed || !globParts) {
    +          throw new Error("invalid pattern object");
    +        }
    +        const p = new Pattern(parsed, globParts, 0, platform);
    +        const m = new Minimatch(p.globString(), mmopts);
    +        const children = globParts[globParts.length - 1] === "**";
    +        const absolute = p.isAbsolute();
    +        if (absolute)
    +          this.absolute.push(m);
    +        else
    +          this.relative.push(m);
    +        if (children) {
    +          if (absolute)
    +            this.absoluteChildren.push(m);
    +          else
    +            this.relativeChildren.push(m);
    +        }
    +      }
    +    }
    +  }
    +  ignored(p) {
    +    const fullpath = p.fullpath();
    +    const fullpaths = `${fullpath}/`;
    +    const relative = p.relative() || ".";
    +    const relatives = `${relative}/`;
    +    for (const m of this.relative) {
    +      if (m.match(relative) || m.match(relatives))
    +        return true;
    +    }
    +    for (const m of this.absolute) {
    +      if (m.match(fullpath) || m.match(fullpaths))
    +        return true;
    +    }
    +    return false;
    +  }
    +  childrenIgnored(p) {
    +    const fullpath = p.fullpath() + "/";
    +    const relative = (p.relative() || ".") + "/";
    +    for (const m of this.relativeChildren) {
    +      if (m.match(relative))
    +        return true;
    +    }
    +    for (const m of this.absoluteChildren) {
    +      if (m.match(fullpath))
    +        return true;
    +    }
    +    return false;
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/processor.js
    +var HasWalkedCache = class _HasWalkedCache {
    +  store;
    +  constructor(store = /* @__PURE__ */ new Map()) {
    +    this.store = store;
    +  }
    +  copy() {
    +    return new _HasWalkedCache(new Map(this.store));
    +  }
    +  hasWalked(target, pattern) {
    +    return this.store.get(target.fullpath())?.has(pattern.globString());
    +  }
    +  storeWalked(target, pattern) {
    +    const fullpath = target.fullpath();
    +    const cached = this.store.get(fullpath);
    +    if (cached)
    +      cached.add(pattern.globString());
    +    else
    +      this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()]));
    +  }
    +};
    +var MatchRecord = class {
    +  store = /* @__PURE__ */ new Map();
    +  add(target, absolute, ifDir) {
    +    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
    +    const current = this.store.get(target);
    +    this.store.set(target, current === void 0 ? n : n & current);
    +  }
    +  // match, absolute, ifdir
    +  entries() {
    +    return [...this.store.entries()].map(([path4, n]) => [
    +      path4,
    +      !!(n & 2),
    +      !!(n & 1)
    +    ]);
    +  }
    +};
    +var SubWalks = class {
    +  store = /* @__PURE__ */ new Map();
    +  add(target, pattern) {
    +    if (!target.canReaddir()) {
    +      return;
    +    }
    +    const subs = this.store.get(target);
    +    if (subs) {
    +      if (!subs.find((p) => p.globString() === pattern.globString())) {
    +        subs.push(pattern);
    +      }
    +    } else
    +      this.store.set(target, [pattern]);
    +  }
    +  get(target) {
    +    const subs = this.store.get(target);
    +    if (!subs) {
    +      throw new Error("attempting to walk unknown path");
    +    }
    +    return subs;
    +  }
    +  entries() {
    +    return this.keys().map((k) => [k, this.store.get(k)]);
    +  }
    +  keys() {
    +    return [...this.store.keys()].filter((t) => t.canReaddir());
    +  }
    +};
    +var Processor = class _Processor {
    +  hasWalkedCache;
    +  matches = new MatchRecord();
    +  subwalks = new SubWalks();
    +  patterns;
    +  follow;
    +  dot;
    +  opts;
    +  constructor(opts, hasWalkedCache) {
    +    this.opts = opts;
    +    this.follow = !!opts.follow;
    +    this.dot = !!opts.dot;
    +    this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();
    +  }
    +  processPatterns(target, patterns) {
    +    this.patterns = patterns;
    +    const processingSet = patterns.map((p) => [target, p]);
    +    for (let [t, pattern] of processingSet) {
    +      this.hasWalkedCache.storeWalked(t, pattern);
    +      const root = pattern.root();
    +      const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
    +      if (root) {
    +        t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root);
    +        const rest2 = pattern.rest();
    +        if (!rest2) {
    +          this.matches.add(t, true, false);
    +          continue;
    +        } else {
    +          pattern = rest2;
    +        }
    +      }
    +      if (t.isENOENT())
    +        continue;
    +      let p;
    +      let rest;
    +      let changed = false;
    +      while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) {
    +        const c = t.resolve(p);
    +        t = c;
    +        pattern = rest;
    +        changed = true;
    +      }
    +      p = pattern.pattern();
    +      rest = pattern.rest();
    +      if (changed) {
    +        if (this.hasWalkedCache.hasWalked(t, pattern))
    +          continue;
    +        this.hasWalkedCache.storeWalked(t, pattern);
    +      }
    +      if (typeof p === "string") {
    +        const ifDir = p === ".." || p === "" || p === ".";
    +        this.matches.add(t.resolve(p), absolute, ifDir);
    +        continue;
    +      } else if (p === GLOBSTAR) {
    +        if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) {
    +          this.subwalks.add(t, pattern);
    +        }
    +        const rp = rest?.pattern();
    +        const rrest = rest?.rest();
    +        if (!rest || (rp === "" || rp === ".") && !rrest) {
    +          this.matches.add(t, absolute, rp === "" || rp === ".");
    +        } else {
    +          if (rp === "..") {
    +            const tp = t.parent || t;
    +            if (!rrest)
    +              this.matches.add(tp, absolute, true);
    +            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
    +              this.subwalks.add(tp, rrest);
    +            }
    +          }
    +        }
    +      } else if (p instanceof RegExp) {
    +        this.subwalks.add(t, pattern);
    +      }
    +    }
    +    return this;
    +  }
    +  subwalkTargets() {
    +    return this.subwalks.keys();
    +  }
    +  child() {
    +    return new _Processor(this.opts, this.hasWalkedCache);
    +  }
    +  // return a new Processor containing the subwalks for each
    +  // child entry, and a set of matches, and
    +  // a hasWalkedCache that's a copy of this one
    +  // then we're going to call
    +  filterEntries(parent, entries) {
    +    const patterns = this.subwalks.get(parent);
    +    const results = this.child();
    +    for (const e of entries) {
    +      for (const pattern of patterns) {
    +        const absolute = pattern.isAbsolute();
    +        const p = pattern.pattern();
    +        const rest = pattern.rest();
    +        if (p === GLOBSTAR) {
    +          results.testGlobstar(e, pattern, rest, absolute);
    +        } else if (p instanceof RegExp) {
    +          results.testRegExp(e, p, rest, absolute);
    +        } else {
    +          results.testString(e, p, rest, absolute);
    +        }
    +      }
    +    }
    +    return results;
    +  }
    +  testGlobstar(e, pattern, rest, absolute) {
    +    if (this.dot || !e.name.startsWith(".")) {
    +      if (!pattern.hasMore()) {
    +        this.matches.add(e, absolute, false);
    +      }
    +      if (e.canReaddir()) {
    +        if (this.follow || !e.isSymbolicLink()) {
    +          this.subwalks.add(e, pattern);
    +        } else if (e.isSymbolicLink()) {
    +          if (rest && pattern.checkFollowGlobstar()) {
    +            this.subwalks.add(e, rest);
    +          } else if (pattern.markFollowGlobstar()) {
    +            this.subwalks.add(e, pattern);
    +          }
    +        }
    +      }
    +    }
    +    if (rest) {
    +      const rp = rest.pattern();
    +      if (typeof rp === "string" && // dots and empty were handled already
    +      rp !== ".." && rp !== "" && rp !== ".") {
    +        this.testString(e, rp, rest.rest(), absolute);
    +      } else if (rp === "..") {
    +        const ep = e.parent || e;
    +        this.subwalks.add(ep, rest);
    +      } else if (rp instanceof RegExp) {
    +        this.testRegExp(e, rp, rest.rest(), absolute);
    +      }
    +    }
    +  }
    +  testRegExp(e, p, rest, absolute) {
    +    if (!p.test(e.name))
    +      return;
    +    if (!rest) {
    +      this.matches.add(e, absolute, false);
    +    } else {
    +      this.subwalks.add(e, rest);
    +    }
    +  }
    +  testString(e, p, rest, absolute) {
    +    if (!e.isNamed(p))
    +      return;
    +    if (!rest) {
    +      this.matches.add(e, absolute, false);
    +    } else {
    +      this.subwalks.add(e, rest);
    +    }
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/walker.js
    +var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new Ignore([ignore], opts) : Array.isArray(ignore) ? new Ignore(ignore, opts) : ignore;
    +var GlobUtil = class {
    +  path;
    +  patterns;
    +  opts;
    +  seen = /* @__PURE__ */ new Set();
    +  paused = false;
    +  aborted = false;
    +  #onResume = [];
    +  #ignore;
    +  #sep;
    +  signal;
    +  maxDepth;
    +  constructor(patterns, path4, opts) {
    +    this.patterns = patterns;
    +    this.path = path4;
    +    this.opts = opts;
    +    this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/";
    +    if (opts.ignore) {
    +      this.#ignore = makeIgnore(opts.ignore, opts);
    +    }
    +    this.maxDepth = opts.maxDepth || Infinity;
    +    if (opts.signal) {
    +      this.signal = opts.signal;
    +      this.signal.addEventListener("abort", () => {
    +        this.#onResume.length = 0;
    +      });
    +    }
    +  }
    +  #ignored(path4) {
    +    return this.seen.has(path4) || !!this.#ignore?.ignored?.(path4);
    +  }
    +  #childrenIgnored(path4) {
    +    return !!this.#ignore?.childrenIgnored?.(path4);
    +  }
    +  // backpressure mechanism
    +  pause() {
    +    this.paused = true;
    +  }
    +  resume() {
    +    if (this.signal?.aborted)
    +      return;
    +    this.paused = false;
    +    let fn = void 0;
    +    while (!this.paused && (fn = this.#onResume.shift())) {
    +      fn();
    +    }
    +  }
    +  onResume(fn) {
    +    if (this.signal?.aborted)
    +      return;
    +    if (!this.paused) {
    +      fn();
    +    } else {
    +      this.#onResume.push(fn);
    +    }
    +  }
    +  // do the requisite realpath/stat checking, and return the path
    +  // to add or undefined to filter it out.
    +  async matchCheck(e, ifDir) {
    +    if (ifDir && this.opts.nodir)
    +      return void 0;
    +    let rpc;
    +    if (this.opts.realpath) {
    +      rpc = e.realpathCached() || await e.realpath();
    +      if (!rpc)
    +        return void 0;
    +      e = rpc;
    +    }
    +    const needStat = e.isUnknown() || this.opts.stat;
    +    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
    +  }
    +  matchCheckTest(e, ifDir) {
    +    return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0;
    +  }
    +  matchCheckSync(e, ifDir) {
    +    if (ifDir && this.opts.nodir)
    +      return void 0;
    +    let rpc;
    +    if (this.opts.realpath) {
    +      rpc = e.realpathCached() || e.realpathSync();
    +      if (!rpc)
    +        return void 0;
    +      e = rpc;
    +    }
    +    const needStat = e.isUnknown() || this.opts.stat;
    +    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
    +  }
    +  matchFinish(e, absolute) {
    +    if (this.#ignored(e))
    +      return;
    +    const abs = this.opts.absolute === void 0 ? absolute : this.opts.absolute;
    +    this.seen.add(e);
    +    const mark = this.opts.mark && e.isDirectory() ? this.#sep : "";
    +    if (this.opts.withFileTypes) {
    +      this.matchEmit(e);
    +    } else if (abs) {
    +      const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath();
    +      this.matchEmit(abs2 + mark);
    +    } else {
    +      const rel = this.opts.posix ? e.relativePosix() : e.relative();
    +      const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : "";
    +      this.matchEmit(!rel ? "." + mark : pre + rel + mark);
    +    }
    +  }
    +  async match(e, absolute, ifDir) {
    +    const p = await this.matchCheck(e, ifDir);
    +    if (p)
    +      this.matchFinish(p, absolute);
    +  }
    +  matchSync(e, absolute, ifDir) {
    +    const p = this.matchCheckSync(e, ifDir);
    +    if (p)
    +      this.matchFinish(p, absolute);
    +  }
    +  walkCB(target, patterns, cb) {
    +    if (this.signal?.aborted)
    +      cb();
    +    this.walkCB2(target, patterns, new Processor(this.opts), cb);
    +  }
    +  walkCB2(target, patterns, processor, cb) {
    +    if (this.#childrenIgnored(target))
    +      return cb();
    +    if (this.signal?.aborted)
    +      cb();
    +    if (this.paused) {
    +      this.onResume(() => this.walkCB2(target, patterns, processor, cb));
    +      return;
    +    }
    +    processor.processPatterns(target, patterns);
    +    let tasks = 1;
    +    const next = () => {
    +      if (--tasks === 0)
    +        cb();
    +    };
    +    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    +      if (this.#ignored(m))
    +        continue;
    +      tasks++;
    +      this.match(m, absolute, ifDir).then(() => next());
    +    }
    +    for (const t of processor.subwalkTargets()) {
    +      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
    +        continue;
    +      }
    +      tasks++;
    +      const childrenCached = t.readdirCached();
    +      if (t.calledReaddir())
    +        this.walkCB3(t, childrenCached, processor, next);
    +      else {
    +        t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
    +      }
    +    }
    +    next();
    +  }
    +  walkCB3(target, entries, processor, cb) {
    +    processor = processor.filterEntries(target, entries);
    +    let tasks = 1;
    +    const next = () => {
    +      if (--tasks === 0)
    +        cb();
    +    };
    +    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    +      if (this.#ignored(m))
    +        continue;
    +      tasks++;
    +      this.match(m, absolute, ifDir).then(() => next());
    +    }
    +    for (const [target2, patterns] of processor.subwalks.entries()) {
    +      tasks++;
    +      this.walkCB2(target2, patterns, processor.child(), next);
    +    }
    +    next();
    +  }
    +  walkCBSync(target, patterns, cb) {
    +    if (this.signal?.aborted)
    +      cb();
    +    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
    +  }
    +  walkCB2Sync(target, patterns, processor, cb) {
    +    if (this.#childrenIgnored(target))
    +      return cb();
    +    if (this.signal?.aborted)
    +      cb();
    +    if (this.paused) {
    +      this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
    +      return;
    +    }
    +    processor.processPatterns(target, patterns);
    +    let tasks = 1;
    +    const next = () => {
    +      if (--tasks === 0)
    +        cb();
    +    };
    +    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    +      if (this.#ignored(m))
    +        continue;
    +      this.matchSync(m, absolute, ifDir);
    +    }
    +    for (const t of processor.subwalkTargets()) {
    +      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
    +        continue;
    +      }
    +      tasks++;
    +      const children = t.readdirSync();
    +      this.walkCB3Sync(t, children, processor, next);
    +    }
    +    next();
    +  }
    +  walkCB3Sync(target, entries, processor, cb) {
    +    processor = processor.filterEntries(target, entries);
    +    let tasks = 1;
    +    const next = () => {
    +      if (--tasks === 0)
    +        cb();
    +    };
    +    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    +      if (this.#ignored(m))
    +        continue;
    +      this.matchSync(m, absolute, ifDir);
    +    }
    +    for (const [target2, patterns] of processor.subwalks.entries()) {
    +      tasks++;
    +      this.walkCB2Sync(target2, patterns, processor.child(), next);
    +    }
    +    next();
    +  }
    +};
    +var GlobWalker = class extends GlobUtil {
    +  matches;
    +  constructor(patterns, path4, opts) {
    +    super(patterns, path4, opts);
    +    this.matches = /* @__PURE__ */ new Set();
    +  }
    +  matchEmit(e) {
    +    this.matches.add(e);
    +  }
    +  async walk() {
    +    if (this.signal?.aborted)
    +      throw this.signal.reason;
    +    if (this.path.isUnknown()) {
    +      await this.path.lstat();
    +    }
    +    await new Promise((res, rej) => {
    +      this.walkCB(this.path, this.patterns, () => {
    +        if (this.signal?.aborted) {
    +          rej(this.signal.reason);
    +        } else {
    +          res(this.matches);
    +        }
    +      });
    +    });
    +    return this.matches;
    +  }
    +  walkSync() {
    +    if (this.signal?.aborted)
    +      throw this.signal.reason;
    +    if (this.path.isUnknown()) {
    +      this.path.lstatSync();
    +    }
    +    this.walkCBSync(this.path, this.patterns, () => {
    +      if (this.signal?.aborted)
    +        throw this.signal.reason;
    +    });
    +    return this.matches;
    +  }
    +};
    +var GlobStream = class extends GlobUtil {
    +  results;
    +  constructor(patterns, path4, opts) {
    +    super(patterns, path4, opts);
    +    this.results = new Minipass({
    +      signal: this.signal,
    +      objectMode: true
    +    });
    +    this.results.on("drain", () => this.resume());
    +    this.results.on("resume", () => this.resume());
    +  }
    +  matchEmit(e) {
    +    this.results.write(e);
    +    if (!this.results.flowing)
    +      this.pause();
    +  }
    +  stream() {
    +    const target = this.path;
    +    if (target.isUnknown()) {
    +      target.lstat().then(() => {
    +        this.walkCB(target, this.patterns, () => this.results.end());
    +      });
    +    } else {
    +      this.walkCB(target, this.patterns, () => this.results.end());
    +    }
    +    return this.results;
    +  }
    +  streamSync() {
    +    if (this.path.isUnknown()) {
    +      this.path.lstatSync();
    +    }
    +    this.walkCBSync(this.path, this.patterns, () => this.results.end());
    +    return this.results;
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
    +var defaultPlatform3 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
    +var Glob = class {
    +  absolute;
    +  cwd;
    +  root;
    +  dot;
    +  dotRelative;
    +  follow;
    +  ignore;
    +  magicalBraces;
    +  mark;
    +  matchBase;
    +  maxDepth;
    +  nobrace;
    +  nocase;
    +  nodir;
    +  noext;
    +  noglobstar;
    +  pattern;
    +  platform;
    +  realpath;
    +  scurry;
    +  stat;
    +  signal;
    +  windowsPathsNoEscape;
    +  withFileTypes;
    +  /**
    +   * The options provided to the constructor.
    +   */
    +  opts;
    +  /**
    +   * An array of parsed immutable {@link Pattern} objects.
    +   */
    +  patterns;
    +  /**
    +   * All options are stored as properties on the `Glob` object.
    +   *
    +   * See {@link GlobOptions} for full options descriptions.
    +   *
    +   * Note that a previous `Glob` object can be passed as the
    +   * `GlobOptions` to another `Glob` instantiation to re-use settings
    +   * and caches with a new pattern.
    +   *
    +   * Traversal functions can be called multiple times to run the walk
    +   * again.
    +   */
    +  constructor(pattern, opts) {
    +    if (!opts)
    +      throw new TypeError("glob options required");
    +    this.withFileTypes = !!opts.withFileTypes;
    +    this.signal = opts.signal;
    +    this.follow = !!opts.follow;
    +    this.dot = !!opts.dot;
    +    this.dotRelative = !!opts.dotRelative;
    +    this.nodir = !!opts.nodir;
    +    this.mark = !!opts.mark;
    +    if (!opts.cwd) {
    +      this.cwd = "";
    +    } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
    +      opts.cwd = (0, import_url2.fileURLToPath)(opts.cwd);
    +    }
    +    this.cwd = opts.cwd || "";
    +    this.root = opts.root;
    +    this.magicalBraces = !!opts.magicalBraces;
    +    this.nobrace = !!opts.nobrace;
    +    this.noext = !!opts.noext;
    +    this.realpath = !!opts.realpath;
    +    this.absolute = opts.absolute;
    +    this.noglobstar = !!opts.noglobstar;
    +    this.matchBase = !!opts.matchBase;
    +    this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity;
    +    this.stat = !!opts.stat;
    +    this.ignore = opts.ignore;
    +    if (this.withFileTypes && this.absolute !== void 0) {
    +      throw new Error("cannot set absolute and withFileTypes:true");
    +    }
    +    if (typeof pattern === "string") {
    +      pattern = [pattern];
    +    }
    +    this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false;
    +    if (this.windowsPathsNoEscape) {
    +      pattern = pattern.map((p) => p.replace(/\\/g, "/"));
    +    }
    +    if (this.matchBase) {
    +      if (opts.noglobstar) {
    +        throw new TypeError("base matching requires globstar");
    +      }
    +      pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`);
    +    }
    +    this.pattern = pattern;
    +    this.platform = opts.platform || defaultPlatform3;
    +    this.opts = { ...opts, platform: this.platform };
    +    if (opts.scurry) {
    +      this.scurry = opts.scurry;
    +      if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) {
    +        throw new Error("nocase option contradicts provided scurry option");
    +      }
    +    } else {
    +      const Scurry = opts.platform === "win32" ? PathScurryWin32 : opts.platform === "darwin" ? PathScurryDarwin : opts.platform ? PathScurryPosix : PathScurry;
    +      this.scurry = new Scurry(this.cwd, {
    +        nocase: opts.nocase,
    +        fs: opts.fs
    +      });
    +    }
    +    this.nocase = this.scurry.nocase;
    +    const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32";
    +    const mmo = {
    +      // default nocase based on platform
    +      ...opts,
    +      dot: this.dot,
    +      matchBase: this.matchBase,
    +      nobrace: this.nobrace,
    +      nocase: this.nocase,
    +      nocaseMagicOnly,
    +      nocomment: true,
    +      noext: this.noext,
    +      nonegate: true,
    +      optimizationLevel: 2,
    +      platform: this.platform,
    +      windowsPathsNoEscape: this.windowsPathsNoEscape,
    +      debug: !!this.opts.debug
    +    };
    +    const mms = this.pattern.map((p) => new Minimatch(p, mmo));
    +    const [matchSet, globParts] = mms.reduce((set2, m) => {
    +      set2[0].push(...m.set);
    +      set2[1].push(...m.globParts);
    +      return set2;
    +    }, [[], []]);
    +    this.patterns = matchSet.map((set2, i) => {
    +      const g = globParts[i];
    +      if (!g)
    +        throw new Error("invalid pattern object");
    +      return new Pattern(set2, g, 0, this.platform);
    +    });
    +  }
    +  async walk() {
    +    return [
    +      ...await new GlobWalker(this.patterns, this.scurry.cwd, {
    +        ...this.opts,
    +        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    +        platform: this.platform,
    +        nocase: this.nocase
    +      }).walk()
    +    ];
    +  }
    +  walkSync() {
    +    return [
    +      ...new GlobWalker(this.patterns, this.scurry.cwd, {
    +        ...this.opts,
    +        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    +        platform: this.platform,
    +        nocase: this.nocase
    +      }).walkSync()
    +    ];
    +  }
    +  stream() {
    +    return new GlobStream(this.patterns, this.scurry.cwd, {
    +      ...this.opts,
    +      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    +      platform: this.platform,
    +      nocase: this.nocase
    +    }).stream();
    +  }
    +  streamSync() {
    +    return new GlobStream(this.patterns, this.scurry.cwd, {
    +      ...this.opts,
    +      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    +      platform: this.platform,
    +      nocase: this.nocase
    +    }).streamSync();
    +  }
    +  /**
    +   * Default sync iteration function. Returns a Generator that
    +   * iterates over the results.
    +   */
    +  iterateSync() {
    +    return this.streamSync()[Symbol.iterator]();
    +  }
    +  [Symbol.iterator]() {
    +    return this.iterateSync();
    +  }
    +  /**
    +   * Default async iteration function. Returns an AsyncGenerator that
    +   * iterates over the results.
    +   */
    +  iterate() {
    +    return this.stream()[Symbol.asyncIterator]();
    +  }
    +  [Symbol.asyncIterator]() {
    +    return this.iterate();
    +  }
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/has-magic.js
    +var hasMagic = (pattern, options = {}) => {
    +  if (!Array.isArray(pattern)) {
    +    pattern = [pattern];
    +  }
    +  for (const p of pattern) {
    +    if (new Minimatch(p, options).hasMagic())
    +      return true;
    +  }
    +  return false;
    +};
    +
    +// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/index.js
    +function globStreamSync(pattern, options = {}) {
    +  return new Glob(pattern, options).streamSync();
    +}
    +function globStream(pattern, options = {}) {
    +  return new Glob(pattern, options).stream();
    +}
    +function globSync(pattern, options = {}) {
    +  return new Glob(pattern, options).walkSync();
    +}
    +async function glob_(pattern, options = {}) {
    +  return new Glob(pattern, options).walk();
    +}
    +function globIterateSync(pattern, options = {}) {
    +  return new Glob(pattern, options).iterateSync();
    +}
    +function globIterate(pattern, options = {}) {
    +  return new Glob(pattern, options).iterate();
    +}
    +var streamSync = globStreamSync;
    +var stream = Object.assign(globStream, { sync: globStreamSync });
    +var iterateSync = globIterateSync;
    +var iterate = Object.assign(globIterate, {
    +  sync: globIterateSync
    +});
    +var sync = Object.assign(globSync, {
    +  stream: globStreamSync,
    +  iterate: globIterateSync
    +});
    +var glob = Object.assign(glob_, {
    +  glob: glob_,
    +  globSync,
    +  sync,
    +  globStream,
    +  stream,
    +  globStreamSync,
    +  streamSync,
    +  globIterate,
    +  iterate,
    +  globIterateSync,
    +  iterateSync,
    +  Glob,
    +  hasMagic,
    +  escape,
    +  unescape
    +});
    +glob.glob = glob;
    +
    +// src/runAllTests.ts
    +function runAllTests(...types2) {
    +  return runTestsInDir(
    +    path3.join(getCursorlessRepoRoot(), "packages"),
    +    (files) => files.filter((f) => {
    +      if (f.endsWith("neovim.test.cjs")) {
    +        return types2.includes(3 /* neovim */);
    +      }
    +      if (f.endsWith("vscode.test.cjs")) {
    +        return types2.includes(1 /* vscode */);
    +      }
    +      if (f.endsWith("talon.test.cjs")) {
    +        return types2.includes(2 /* talon */);
    +      }
    +      return types2.includes(0 /* unit */);
    +    })
    +  );
    +}
    +async function runTestsInDir(testRoot, filterFiles) {
    +  const mocha = new import_mocha.default({
    +    ui: "tdd",
    +    color: true,
    +    grep: runTestSubset() ? testSubsetGrepString() : void 0
    +    // Only run a subset of tests
    +  });
    +  const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
    +  files.forEach((f) => mocha.addFile(path3.resolve(testRoot, f)));
    +  try {
    +    await new Promise((c, e) => {
    +      mocha.run((failures) => {
    +        if (failures > 0) {
    +          e(new Error(`${failures} tests failed.`));
    +        } else {
    +          c();
    +        }
    +      });
    +    });
    +  } catch (err) {
    +    console.error(err);
    +    throw err;
    +  }
    +}
    +
    +// src/index.ts
    +async function run(plugin) {
    +  global.additionalParameters = {
    +    client: plugin.nvim
    +  };
    +  try {
    +    await runAllTests(3 /* neovim */, 0 /* unit */);
    +  } catch (error) {
    +    console.error("runAllTests failed");
    +    console.error(error);
    +    return;
    +  }
    +  console.log("runAllTests succeeded");
    +}
    +function entry(plugin) {
    +  plugin.registerFunction("TestHarnessRun", async () => await run(plugin), {
    +    sync: false
    +  });
    +}
    +// Annotate the CommonJS export names for ESM import in node:
    +0 && (module.exports = {
    +  run
    +});
    +/*! Bundled license information:
    +
    +he/he.js:
    +  (*! https://mths.be/he v1.2.0 by @mathias | MIT license *)
    +
    +mocha/lib/mocha.js:
    +  (*!
    +   * mocha
    +   * Copyright(c) 2011 TJ Holowaychuk 
    +   * MIT Licensed
    +   *)
    +
    +lodash/lodash.js:
    +  (**
    +   * @license
    +   * Lodash 
    +   * Copyright OpenJS Foundation and other contributors 
    +   * Released under MIT license 
    +   * Based on Underscore.js 1.8.3 
    +   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
    +   *)
    +
    +js-yaml/dist/js-yaml.mjs:
    +  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
    +*/
    +//# sourceMappingURL=index.cjs.map
    diff --git a/dist/cursorless.nvim/node/test-harness/package.json b/dist/cursorless.nvim/node/test-harness/package.json
    new file mode 100644
    index 0000000000..8d32bcd9af
    --- /dev/null
    +++ b/dist/cursorless.nvim/node/test-harness/package.json
    @@ -0,0 +1,48 @@
    +{
    +  "name": "@cursorless/test-harness",
    +  "version": "0.1.0",
    +  "description": "Contains scripts and runners for testing Cursorless",
    +  "private": true,
    +  "main": "./out/index.cjs",
    +  "scripts": {
    +    "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runVscodeTestsCI.ts",
    +    "testNeovim": "env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts",
    +    "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node",
    +    "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon && pnpm run populate-cursorless-nvim",
    +    "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs",
    +    "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs",
    +    "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs",
    +    "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs",
    +    "build:tests": "bash ./scripts/build-tests.sh",
    +    "compile": "tsc --build",
    +    "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh",
    +    "watch": "tsc --build --watch",
    +    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist",
    +    "generate-test-subset-file": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --always-open",
    +    "generate-test-subset-file-strict": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "MIT",
    +  "dependencies": {
    +    "@cursorless/common": "workspace:*",
    +    "@cursorless/neovim-common": "workspace:*",
    +    "@cursorless/neovim-registry": "workspace:*",
    +    "glob": "^10.3.10",
    +    "neovim": "5.1.0"
    +  },
    +  "devDependencies": {
    +    "@types/glob": "^8.1.0",
    +    "@types/mocha": "^10.0.6",
    +    "@vscode/test-electron": "^2.3.9",
    +    "mocha": "^10.3.0"
    +  },
    +  "types": "./out/index.d.ts",
    +  "exports": {
    +    ".": {
    +      "cursorless:bundler": "./src/index.ts",
    +      "default": "./out/index.js"
    +    }
    +  },
    +  "type": "module"
    +}
    diff --git a/dist/cursorless.nvim/vim/cursorless.vim b/dist/cursorless.nvim/vim/cursorless.vim
    new file mode 100644
    index 0000000000..b7bce18aa6
    --- /dev/null
    +++ b/dist/cursorless.nvim/vim/cursorless.vim
    @@ -0,0 +1,15 @@
    +" http://neovim.io/doc/user/remote_plugin.html
    +" similar to having the plugins into rplugin/node and running :UpdateRemotePlugins
    +" except here we don't need the user to run that command
    +function RegisterFunctions(cursorless_nvim_path)
    +     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . '/node/command-server', [
    +          \ {'sync': v:false, 'name': 'CommandServerLoadExtension', 'type': 'function', 'opts': {}},
    +          \ {'sync': v:false, 'name': 'CommandServerRunCommand', 'type': 'function', 'opts': {}},
    +          \ ])
    +     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/cursorless-neovim', [
    +          \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}},
    +          \ ])
    +     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/test-harness', [
    +          \ {'sync': v:false, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}},
    +          \ ])
    +endfunction
    
    From 9762dd8de554e8a2beb9f088333fd09f40243540 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 13:34:54 +0100
    Subject: [PATCH 338/504] more ci stuff
    
    ---
     .github/workflows/test.yml                | 26 +++++++++++++++++++--
     packages/test-harness/src/config/init.lua | 28 ++++-------------------
     2 files changed, 29 insertions(+), 25 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 4aa8dfc739..8e4dda6d25 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -38,8 +38,9 @@ jobs:
               cache: pnpm
           - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
             shell: bash
    -      - run: pnpm --color install
    -      - run: pnpm --color compile
    +      # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
    +      # - run: pnpm --color install
    +      # - run: pnpm --color compile
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
           # - run: xvfb-run -a pnpm --color test
    @@ -55,6 +56,27 @@ jobs:
           # testing - D:\a\cursorless\cursorless (to remove)
           - run: pwd
           - run: dir C:\Users\runneradmin\AppData\Local
    +      #     Directory: C:\Users\runneradmin\AppData\Local
    +      # Mode                 LastWriteTime         Length Name
    +      # ----                 -------------         ------ ----
    +      # d----           5/15/2024 11:25 PM                .IdentityService
    +      # d----           5/15/2024 11:24 PM                AzureFunctionsTools
    +      # d----           5/16/2024 11:19 AM                GitHub
    +      # d----           5/15/2024 11:13 PM                Google
    +      # d----           5/16/2024 11:13 AM                Microsoft
    +      # d----           5/15/2024 11:17 PM                Microsoft SDKs
    +      # d----           5/16/2024 11:14 AM                Mozilla
    +      # d----           5/16/2024 11:20 AM                node
    +      # d----           5/15/2024 11:13 PM                Packages
    +      # d----           5/15/2024 11:14 PM                PeerDistRepub
    +      # d----           5/16/2024 11:20 AM                pnpm
    +      # d----           5/15/2024 11:17 PM                ServiceHub
    +      # d----           5/16/2024 11:21 AM                Temp
    +      - name: Install cursorless.nvim dependencies
    +        run: npm install -g neovim@5.1.0
    +      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
    +      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
    +      - run: C:\Users\runneradmin\nvim-stable\bin\nvim-qt.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
           - run: dir C:\Users\runneradmin\AppData\Local\nvim
           - name: Install Neovim
             uses: rhysd/action-setup-vim@v1
    diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua
    index 3052ddca6c..d476b3042d 100644
    --- a/packages/test-harness/src/config/init.lua
    +++ b/packages/test-harness/src/config/init.lua
    @@ -1,27 +1,9 @@
    --- [[ Install `lazy.nvim` plugin manager ]]
    ---    https://github.com/folke/lazy.nvim
    ---    `:help lazy.nvim.txt` for more info
    -local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
    -if not vim.loop.fs_stat(lazypath) then
    -  vim.fn.system({
    -    'git',
    -    'clone',
    -    '--filter=blob:none',
    -    'https://github.com/folke/lazy.nvim.git',
    -    '--branch=stable', -- latest stable release
    -    lazypath,
    -  })
    -end
    -vim.opt.rtp:prepend(lazypath)
    +vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\BufOnly.vim')
     
    -require('lazy').setup({
    -  -- production cursorless.nvim
    -  'hands-free-vim/cursorless.nvim',
    -
    -  'vim-scripts/BufOnly.vim',
    -})
    -
    --- vim.o.runtimepath = vim.o.runtimepath .. "," .. "C:\\path\\cursorless\\dist\\cursorless.nvim"
    +vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
    +vim.o.runtimepath = vim.o.runtimepath
    +  .. ','
    +  .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
     
     require('talon').setup()
     require('cursorless').setup()
    
    From f033338938f60471f4b91ababbf2020ba4862154 Mon Sep 17 00:00:00 2001
    From: "pre-commit-ci-lite[bot]"
     <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    Date: Thu, 16 May 2024 12:37:03 +0000
    Subject: [PATCH 339/504] [pre-commit.ci lite] apply automatic fixes
    
    ---
     patches/@types__nearley@2.11.5.patch | 2 +-
     patches/nearley@2.20.1.patch         | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/patches/@types__nearley@2.11.5.patch b/patches/@types__nearley@2.11.5.patch
    index 776a237c0d..d19fef1d40 100644
    --- a/patches/@types__nearley@2.11.5.patch
    +++ b/patches/@types__nearley@2.11.5.patch
    @@ -47,4 +47,4 @@ index 5cca1013513217cf5ec46c04e60cbb1dc2c7b2f1..289ca02c4bf917b0f6dacfe2d60d2e91
     +    reset(data: string | any[], state?: LexerState): void;
          /**
           * Returns e.g. {type, value, line, col, …}. Only the value attribute is required.
    -      */
    \ No newline at end of file
    +      */
    diff --git a/patches/nearley@2.20.1.patch b/patches/nearley@2.20.1.patch
    index 54ddf4962a..37461b844b 100644
    --- a/patches/nearley@2.20.1.patch
    +++ b/patches/nearley@2.20.1.patch
    @@ -29,4 +29,4 @@ index b564e11e24d2bcc597d46bb01af84a1972cc6b9d..1d559ea3c96059f764bb5138a387039f
     +            var value = lexer.constructor === StreamLexer ? token.value : lexer.transform?.(token) ?? token;
                  var scannable = column.scannable;
                  for (var w = scannable.length; w--; ) {
    -                 var state = scannable[w];
    \ No newline at end of file
    +                 var state = scannable[w];
    
    From 4db143bb45b607450c6ddf11e7f68c5a46b220a4 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 13:37:26 +0100
    Subject: [PATCH 340/504] temp stuff
    
    ---
     .gitignore | 2 ++
     1 file changed, 2 insertions(+)
    
    diff --git a/.gitignore b/.gitignore
    index df54c22f59..010ba5eebf 100644
    --- a/.gitignore
    +++ b/.gitignore
    @@ -47,3 +47,5 @@ packages/test-harness/testSubsetGrep.properties
     # neovim symlinks
     cursorless.nvim/node/cursorless-neovim
     cursorless.nvim/node/test-harness
    +
    +temp/
    
    From 2f53f1c24aa39bc0da94423efb0bd810a6cd2753 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 13:43:45 +0100
    Subject: [PATCH 341/504] more ci
    
    ---
     .github/workflows/test.yml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 8e4dda6d25..0cdd98e6b9 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -76,7 +76,7 @@ jobs:
             run: npm install -g neovim@5.1.0
           - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
           - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
    -      - run: C:\Users\runneradmin\nvim-stable\bin\nvim-qt.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
    +      - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
           - run: dir C:\Users\runneradmin\AppData\Local\nvim
           - name: Install Neovim
             uses: rhysd/action-setup-vim@v1
    
    From b88465a12e43f53d2aec8c6b58db51d4490b7bda Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:09:08 +0100
    Subject: [PATCH 342/504] more CI
    
    ---
     .github/workflows/test.yml                    | 15 ++++++----
     cursorless.nvim/lua/cursorless/init.lua       | 20 ++++---------
     dist/cursorless.nvim/lua/cursorless/init.lua  | 20 ++++---------
     packages/test-harness/src/config/init.lua     |  2 +-
     .../src/launchNeovimAndRunTests.ts            | 30 +++++++++----------
     5 files changed, 38 insertions(+), 49 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 0cdd98e6b9..fd890103bc 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -76,17 +76,22 @@ jobs:
             run: npm install -g neovim@5.1.0
           - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
           - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
    -      - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
    -      - run: dir C:\Users\runneradmin\AppData\Local\nvim
    +      # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
    +      # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
    +      # Line |
    +      #    2 |  C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l D:\a\cursorless\curs …
    +      #      |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    +      #      | The term 'C:\Users\runneradmin\nvim-stable\bin\nvim.exe' is not recognized as a name of a cmdlet, function,
    +      #      | script file, or executable program. Check the spelling of the name, or if a path was included, verify that the
    +      #      | path is correct and try again.
    +      # Error: Process completed with exit code 1.
    +      - run: mkdir C:\Users\runneradmin\AppData\Local\nvim
           - name: Install Neovim
             uses: rhysd/action-setup-vim@v1
             id: vim
             with:
               version: stable
               neovim: true
    -      # testing (to remove)
    -      - run: dir C:\Users\runneradmin\AppData\Local
    -      - run: dir C:\Users\runneradmin\AppData\Local\nvim
           # XXX: delete this because it doesn't work
           # - name: Run neovim unit tests using themis.vim
           #   env:
    diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
    index 1a7fdb8071..0d74f39aa0 100644
    --- a/cursorless.nvim/lua/cursorless/init.lua
    +++ b/cursorless.nvim/lua/cursorless/init.lua
    @@ -14,12 +14,12 @@ local function load_extensions()
       vim.api.nvim_call_function('CursorlessLoadExtension', {})
       vim.api.nvim_call_function('CommandServerLoadExtension', {})
     
    -  -- if os.getenv('CURSORLESS_MODE') == 'test' then
    -  --   -- make sure cursorless is loaded before starting the tests
    -  --   -- see https://neovim.io/doc/user/various.html#%3Asleep
    -  --   vim.cmd([[sleep 1]])
    -  --   vim.api.nvim_call_function('TestHarnessRun', {})
    -  -- end
    +  if os.getenv('CURSORLESS_MODE') == 'test' then
    +    -- make sure cursorless is loaded before starting the tests
    +    -- see https://neovim.io/doc/user/various.html#%3Asleep
    +    vim.cmd([[sleep 1]])
    +    vim.api.nvim_call_function('TestHarnessRun', {})
    +  end
     end
     
     -- Cursorless command-server shortcut: CTRL+q
    @@ -68,14 +68,6 @@ local function setup()
       register_functions()
       load_extensions()
       configure_command_server_shortcut()
    -
    -  -- if os.getenv('CURSORLESS_MODE') == 'test' then
    -  --   -- make sure cursorless is loaded before starting the tests
    -  --   -- see https://neovim.io/doc/user/various.html#%3Asleep
    -  --   vim.cmd([[sleep 1]])
    -  --   vim.api.nvim_call_function('TestHarnessRun', {})
    -  -- end
    -  -- print("TestHarnessRun() done")
     end
     
     local M = {
    diff --git a/dist/cursorless.nvim/lua/cursorless/init.lua b/dist/cursorless.nvim/lua/cursorless/init.lua
    index 1a7fdb8071..0d74f39aa0 100644
    --- a/dist/cursorless.nvim/lua/cursorless/init.lua
    +++ b/dist/cursorless.nvim/lua/cursorless/init.lua
    @@ -14,12 +14,12 @@ local function load_extensions()
       vim.api.nvim_call_function('CursorlessLoadExtension', {})
       vim.api.nvim_call_function('CommandServerLoadExtension', {})
     
    -  -- if os.getenv('CURSORLESS_MODE') == 'test' then
    -  --   -- make sure cursorless is loaded before starting the tests
    -  --   -- see https://neovim.io/doc/user/various.html#%3Asleep
    -  --   vim.cmd([[sleep 1]])
    -  --   vim.api.nvim_call_function('TestHarnessRun', {})
    -  -- end
    +  if os.getenv('CURSORLESS_MODE') == 'test' then
    +    -- make sure cursorless is loaded before starting the tests
    +    -- see https://neovim.io/doc/user/various.html#%3Asleep
    +    vim.cmd([[sleep 1]])
    +    vim.api.nvim_call_function('TestHarnessRun', {})
    +  end
     end
     
     -- Cursorless command-server shortcut: CTRL+q
    @@ -68,14 +68,6 @@ local function setup()
       register_functions()
       load_extensions()
       configure_command_server_shortcut()
    -
    -  -- if os.getenv('CURSORLESS_MODE') == 'test' then
    -  --   -- make sure cursorless is loaded before starting the tests
    -  --   -- see https://neovim.io/doc/user/various.html#%3Asleep
    -  --   vim.cmd([[sleep 1]])
    -  --   vim.api.nvim_call_function('TestHarnessRun', {})
    -  -- end
    -  -- print("TestHarnessRun() done")
     end
     
     local M = {
    diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua
    index d476b3042d..96fde6a70d 100644
    --- a/packages/test-harness/src/config/init.lua
    +++ b/packages/test-harness/src/config/init.lua
    @@ -1,4 +1,4 @@
    -vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\BufOnly.vim')
    +vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
     
     vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
     vim.o.runtimepath = vim.o.runtimepath
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 3cab3853a7..fb4deccbe5 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -68,21 +68,21 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         //   stdio: "inherit",
         // });
     
    -    console.log(`Starting nvim for creating config directories...`);
    -    const { status, signal, error } = cp.spawnSync(
    -      cli,
    -      [
    -        "-l",
    -        `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\empty.lua`,
    -      ],
    -      {
    -        encoding: "utf-8",
    -        stdio: "inherit",
    -      },
    -    );
    -    console.log(`status: ${status}`);
    -    console.log(`signal: ${signal}`);
    -    console.log(`error: ${error}`);
    +    // console.log(`Starting nvim for creating config directories...`);
    +    // const { status, signal, error } = cp.spawnSync(
    +    //   cli,
    +    //   [
    +    //     "-l",
    +    //     `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\empty.lua`,
    +    //   ],
    +    //   {
    +    //     encoding: "utf-8",
    +    //     stdio: "inherit",
    +    //   },
    +    // );
    +    // console.log(`status: ${status}`);
    +    // console.log(`signal: ${signal}`);
    +    // console.log(`error: ${error}`);
     
         // C:\Users\user\AppData\Local\nvim\init.lua
         // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
    
    From 51bd5516d875fcc18a98a9c79c7174cb4fc744ec Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:13:16 +0100
    Subject: [PATCH 343/504] ci
    
    ---
     .github/workflows/test.yml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index fd890103bc..d3eee424d2 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -38,8 +38,8 @@ jobs:
               cache: pnpm
           - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
             shell: bash
    +      - run: pnpm --color install
           # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
    -      # - run: pnpm --color install
           # - run: pnpm --color compile
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
    
    From a37bdfa74b068881b3ceadf1124faa165d06a3a8 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:22:07 +0100
    Subject: [PATCH 344/504] ci
    
    ---
     .github/workflows/test.yml                             | 10 ++++++++++
     .../node/cursorless-neovim/out/index.cjs               |  4 ++--
     2 files changed, 12 insertions(+), 2 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index d3eee424d2..04a4769728 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -38,6 +38,16 @@ jobs:
               cache: pnpm
           - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
             shell: bash
    +      # NB: we can't comment this for speeding up testing as we get this error when running test harness:
    +      # > @cursorless/test-harness@0.1.0 testNeovim D:\a\cursorless\cursorless\packages\test-harness
    +      # > env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts
    +
    +      # env: 'my-ts-node': No such file or directory
    +      # D:\a\cursorless\cursorless\packages\test-harness:
    +      #  ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @cursorless/test-harness@0.1.0 testNeovim: `env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts`
    +      # spawn ENOENT
    +      #  WARN   Local package.json exists, but node_modules missing, did you mean to install?
    +      # Error: Process completed with exit code 1.
           - run: pnpm --color install
           # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
           # - run: pnpm --color compile
    diff --git a/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs b/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
    index c641960dee..d22d9df1ba 100644
    --- a/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
    +++ b/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
    @@ -34846,10 +34846,10 @@ var nodeMatchers12 = {
       /* infix_expression, key on left, item on right, operator = "->"
         // collectionItem: "???"
         // collectionKey: "???",
    -
    +  
         /* "foo".r <-, value of type field_expression, value of type string, field of type identifier = "r",
         // regularExpression: "???",
    -
    +  
         /*
           none of this stuff is defined well in the tree sitter (it's all just infix expressions etc),
           and native XML/HTML is deprecated in Scala 3
    
    From 73c64de042bf11c0ef48c6d6975b8fd0f223ae13 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:24:54 +0100
    Subject: [PATCH 345/504] ci 1
    
    ---
     pnpm-lock.yaml | 18896 ++++++++++++++++++++---------------------------
     1 file changed, 7826 insertions(+), 11070 deletions(-)
    
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 946256de47..d11d46704c 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -1,4 +1,4 @@
    -lockfileVersion: '9.0'
    +lockfileVersion: '6.0'
     
     settings:
       autoInstallPeers: true
    @@ -9,10 +9,10 @@ patchedDependencies:
         hash: lazxwgumd4o5a3ibe55vftei5e
         path: patches/@docusaurus__theme-search-algolia@3.1.0.patch
       '@types/nearley@2.11.5':
    -    hash: 5bomp3nnmdzdyzcgrxyr5kymae
    +    hash: m6lvvh3c4y7yrjlmqdyj74zp2q
         path: patches/@types__nearley@2.11.5.patch
       nearley@2.20.1:
    -    hash: mg2fc7wgvzub3myuz6m74hllma
    +    hash: yc7aistj2i2qcwysldsvv2yuk4
         path: patches/nearley@2.20.1.patch
     
     importers:
    @@ -261,7 +261,7 @@ importers:
             version: 0.5.2
           nearley:
             specifier: 2.20.1
    -        version: 2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma)
    +        version: 2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4)
           node-html-parser:
             specifier: ^6.1.12
             version: 6.1.12
    @@ -292,7 +292,7 @@ importers:
             version: 0.5.9
           '@types/nearley':
             specifier: 2.11.5
    -        version: 2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)
    +        version: 2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)
           '@types/sbd':
             specifier: ^1.0.5
             version: 1.0.5
    @@ -526,7 +526,7 @@ importers:
             version: 4.17.21
           nearley:
             specifier: 2.20.1
    -        version: 2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma)
    +        version: 2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4)
           semver:
             specifier: ^7.6.0
             version: 7.6.0
    @@ -563,7 +563,7 @@ importers:
             version: 10.0.6
           '@types/nearley':
             specifier: 2.11.5
    -        version: 2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)
    +        version: 2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)
           '@types/node':
             specifier: 18.18.2
             version: 18.18.2
    @@ -769,8910 +769,12 @@ importers:
     
     packages:
     
    -  '@aashutoshrathi/word-wrap@1.2.6':
    +  /@aashutoshrathi/word-wrap@1.2.6:
         resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
         engines: {node: '>=0.10.0'}
     
    -  '@algolia/autocomplete-core@1.9.3':
    +  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
         resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
    -
    -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
    -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    -    peerDependencies:
    -      search-insights: '>= 1 < 3'
    -
    -  '@algolia/autocomplete-preset-algolia@1.9.3':
    -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    -
    -  '@algolia/autocomplete-shared@1.9.3':
    -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    -
    -  '@algolia/cache-browser-local-storage@4.22.1':
    -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    -
    -  '@algolia/cache-common@4.22.1':
    -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    -
    -  '@algolia/cache-in-memory@4.22.1':
    -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    -
    -  '@algolia/client-account@4.22.1':
    -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    -
    -  '@algolia/client-analytics@4.22.1':
    -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    -
    -  '@algolia/client-common@4.22.1':
    -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    -
    -  '@algolia/client-personalization@4.22.1':
    -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    -
    -  '@algolia/client-search@4.22.1':
    -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    -
    -  '@algolia/events@4.0.1':
    -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    -
    -  '@algolia/logger-common@4.22.1':
    -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    -
    -  '@algolia/logger-console@4.22.1':
    -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    -
    -  '@algolia/requester-browser-xhr@4.22.1':
    -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    -
    -  '@algolia/requester-common@4.22.1':
    -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    -
    -  '@algolia/requester-node-http@4.22.1':
    -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    -
    -  '@algolia/transporter@4.22.1':
    -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    -
    -  '@alloc/quick-lru@5.2.0':
    -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    -    engines: {node: '>=10'}
    -
    -  '@ampproject/remapping@2.3.0':
    -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@babel/code-frame@7.24.2':
    -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/compat-data@7.24.1':
    -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/core@7.24.3':
    -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/generator@7.24.1':
    -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-annotate-as-pure@7.22.5':
    -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-compilation-targets@7.23.6':
    -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-create-class-features-plugin@7.24.1':
    -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-create-regexp-features-plugin@7.22.15':
    -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-define-polyfill-provider@0.6.1':
    -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  '@babel/helper-environment-visitor@7.22.20':
    -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-function-name@7.23.0':
    -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-hoist-variables@7.22.5':
    -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-member-expression-to-functions@7.23.0':
    -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-module-imports@7.24.3':
    -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-module-transforms@7.23.3':
    -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-optimise-call-expression@7.22.5':
    -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-plugin-utils@7.24.0':
    -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-remap-async-to-generator@7.22.20':
    -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-replace-supers@7.24.1':
    -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-simple-access@7.22.5':
    -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-split-export-declaration@7.22.6':
    -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-string-parser@7.24.1':
    -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-validator-identifier@7.22.20':
    -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-validator-option@7.23.5':
    -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-wrap-function@7.22.20':
    -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helpers@7.24.1':
    -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/highlight@7.24.2':
    -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/parser@7.24.1':
    -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    -    engines: {node: '>=6.0.0'}
    -    hasBin: true
    -
    -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
    -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
    -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.13.0
    -
    -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
    -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
    -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-async-generators@7.8.4':
    -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-bigint@7.8.3':
    -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-class-properties@7.12.13':
    -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-class-static-block@7.14.5':
    -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-dynamic-import@7.8.3':
    -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-export-namespace-from@7.8.3':
    -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-assertions@7.24.1':
    -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-attributes@7.24.1':
    -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-meta@7.10.4':
    -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-json-strings@7.8.3':
    -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-jsx@7.24.1':
    -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
    -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
    -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-numeric-separator@7.10.4':
    -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-object-rest-spread@7.8.3':
    -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
    -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-optional-chaining@7.8.3':
    -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-private-property-in-object@7.14.5':
    -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-top-level-await@7.14.5':
    -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-typescript@7.24.1':
    -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
    -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-transform-arrow-functions@7.24.1':
    -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-async-generator-functions@7.24.3':
    -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-async-to-generator@7.24.1':
    -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-block-scoped-functions@7.24.1':
    -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-block-scoping@7.24.1':
    -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-class-properties@7.24.1':
    -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-class-static-block@7.24.1':
    -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -
    -  '@babel/plugin-transform-classes@7.24.1':
    -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-computed-properties@7.24.1':
    -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-destructuring@7.24.1':
    -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-dotall-regex@7.24.1':
    -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-duplicate-keys@7.24.1':
    -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-dynamic-import@7.24.1':
    -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-exponentiation-operator@7.24.1':
    -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-export-namespace-from@7.24.1':
    -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-for-of@7.24.1':
    -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-function-name@7.24.1':
    -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-json-strings@7.24.1':
    -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-literals@7.24.1':
    -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
    -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-member-expression-literals@7.24.1':
    -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-amd@7.24.1':
    -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-commonjs@7.24.1':
    -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-systemjs@7.24.1':
    -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-umd@7.24.1':
    -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
    -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-transform-new-target@7.24.1':
    -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
    -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-numeric-separator@7.24.1':
    -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-object-rest-spread@7.24.1':
    -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-object-super@7.24.1':
    -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-optional-catch-binding@7.24.1':
    -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-optional-chaining@7.24.1':
    -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-parameters@7.24.1':
    -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-private-methods@7.24.1':
    -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-private-property-in-object@7.24.1':
    -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-property-literals@7.24.1':
    -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-constant-elements@7.24.1':
    -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-display-name@7.24.1':
    -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-jsx-development@7.22.5':
    -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-jsx@7.23.4':
    -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-pure-annotations@7.24.1':
    -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-regenerator@7.24.1':
    -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-reserved-words@7.24.1':
    -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-runtime@7.24.3':
    -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-shorthand-properties@7.24.1':
    -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-spread@7.24.1':
    -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-sticky-regex@7.24.1':
    -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-template-literals@7.24.1':
    -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-typeof-symbol@7.24.1':
    -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-typescript@7.24.1':
    -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-escapes@7.24.1':
    -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-property-regex@7.24.1':
    -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-regex@7.24.1':
    -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
    -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/preset-env@7.24.3':
    -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/preset-modules@0.1.6-no-external-plugins':
    -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    -
    -  '@babel/preset-react@7.24.1':
    -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/preset-typescript@7.24.1':
    -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/regjsgen@0.8.0':
    -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    -
    -  '@babel/runtime-corejs3@7.24.1':
    -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/runtime@7.24.1':
    -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/template@7.24.0':
    -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/traverse@7.24.1':
    -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/types@7.24.0':
    -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@bcoe/v8-coverage@0.2.3':
    -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    -
    -  '@colors/colors@1.5.0':
    -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    -    engines: {node: '>=0.1.90'}
    -
    -  '@colors/colors@1.6.0':
    -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    -    engines: {node: '>=0.1.90'}
    -
    -  '@cspotcode/source-map-support@0.8.1':
    -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    -    engines: {node: '>=12'}
    -
    -  '@dabh/diagnostics@2.0.3':
    -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    -
    -  '@discoveryjs/json-ext@0.5.7':
    -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    -    engines: {node: '>=10.0.0'}
    -
    -  '@docsearch/css@3.6.0':
    -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    -
    -  '@docsearch/react@3.6.0':
    -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    -    peerDependencies:
    -      '@types/react': '>= 16.8.0 < 19.0.0'
    -      react: '>= 16.8.0 < 19.0.0 || 18'
    -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    -      search-insights: '>= 1 < 3'
    -    peerDependenciesMeta:
    -      '@types/react':
    -        optional: true
    -      react:
    -        optional: true
    -      react-dom:
    -        optional: true
    -      search-insights:
    -        optional: true
    -
    -  '@docusaurus/core@3.1.1':
    -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    -    engines: {node: '>=18.0'}
    -    hasBin: true
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/cssnano-preset@3.1.1':
    -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/logger@3.1.1':
    -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/mdx-loader@3.1.1':
    -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/module-type-aliases@3.1.1':
    -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  '@docusaurus/plugin-content-blog@3.1.1':
    -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-content-docs@3.1.1':
    -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-content-pages@3.1.1':
    -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-debug@3.1.1':
    -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-analytics@3.1.1':
    -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-gtag@3.1.1':
    -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-tag-manager@3.1.1':
    -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-sitemap@3.1.1':
    -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/preset-classic@3.1.1':
    -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/react-loadable@5.5.2':
    -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    -    peerDependencies:
    -      react: '*'
    -
    -  '@docusaurus/theme-classic@3.1.1':
    -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-common@3.1.1':
    -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-search-algolia@3.1.1':
    -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-translations@3.1.1':
    -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/types@3.1.1':
    -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/utils-common@3.1.1':
    -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    -
    -  '@docusaurus/utils-validation@3.1.1':
    -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/utils@3.1.1':
    -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    -
    -  '@effect/schema@0.56.1':
    -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    -    peerDependencies:
    -      effect: 2.0.0-next.62
    -      fast-check: ^3.13.2
    -
    -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
    -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      html-webpack-plugin: '>=5'
    -      webpack: '>=5'
    -
    -  '@esbuild/aix-ppc64@0.20.2':
    -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [aix]
    -
    -  '@esbuild/android-arm64@0.20.2':
    -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -
    -  '@esbuild/android-arm@0.20.2':
    -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -
    -  '@esbuild/android-x64@0.20.2':
    -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -
    -  '@esbuild/darwin-arm64@0.20.2':
    -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -
    -  '@esbuild/darwin-x64@0.20.2':
    -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -
    -  '@esbuild/freebsd-arm64@0.20.2':
    -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -
    -  '@esbuild/freebsd-x64@0.20.2':
    -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -
    -  '@esbuild/linux-arm64@0.20.2':
    -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@esbuild/linux-arm@0.20.2':
    -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -
    -  '@esbuild/linux-ia32@0.20.2':
    -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -
    -  '@esbuild/linux-loong64@0.20.2':
    -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -
    -  '@esbuild/linux-mips64el@0.20.2':
    -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -
    -  '@esbuild/linux-ppc64@0.20.2':
    -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -
    -  '@esbuild/linux-riscv64@0.20.2':
    -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -
    -  '@esbuild/linux-s390x@0.20.2':
    -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -
    -  '@esbuild/linux-x64@0.20.2':
    -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@esbuild/netbsd-x64@0.20.2':
    -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -
    -  '@esbuild/openbsd-x64@0.20.2':
    -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -
    -  '@esbuild/sunos-x64@0.20.2':
    -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -
    -  '@esbuild/win32-arm64@0.20.2':
    -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -
    -  '@esbuild/win32-ia32@0.20.2':
    -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -
    -  '@esbuild/win32-x64@0.20.2':
    -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -
    -  '@eslint-community/eslint-utils@4.4.0':
    -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    -
    -  '@eslint-community/regexpp@4.10.0':
    -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    -
    -  '@eslint/eslintrc@2.1.4':
    -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  '@eslint/js@8.57.0':
    -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  '@fortawesome/fontawesome-common-types@6.5.1':
    -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/fontawesome-svg-core@6.5.1':
    -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/free-solid-svg-icons@6.5.1':
    -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/react-fontawesome@0.2.0':
    -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    -    peerDependencies:
    -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    -      react: '>=16.3 || 18'
    -
    -  '@gar/promisify@1.1.3':
    -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    -
    -  '@gwhitney/detect-indent@7.0.1':
    -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    -    engines: {node: '>=12.20'}
    -
    -  '@hapi/hoek@9.3.0':
    -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    -
    -  '@hapi/topo@5.1.0':
    -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    -
    -  '@humanwhocodes/config-array@0.11.14':
    -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    -    engines: {node: '>=10.10.0'}
    -
    -  '@humanwhocodes/module-importer@1.0.1':
    -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    -    engines: {node: '>=12.22'}
    -
    -  '@humanwhocodes/object-schema@2.0.2':
    -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    -
    -  '@isaacs/cliui@8.0.2':
    -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    -    engines: {node: '>=12'}
    -
    -  '@isaacs/string-locale-compare@1.1.0':
    -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    -
    -  '@istanbuljs/load-nyc-config@1.1.0':
    -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    -    engines: {node: '>=8'}
    -
    -  '@istanbuljs/schema@0.1.3':
    -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    -    engines: {node: '>=8'}
    -
    -  '@jest/console@29.7.0':
    -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/core@29.7.0':
    -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  '@jest/environment@29.7.0':
    -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/expect-utils@29.7.0':
    -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/expect@29.7.0':
    -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/fake-timers@29.7.0':
    -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/globals@29.7.0':
    -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/reporters@29.7.0':
    -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  '@jest/schemas@29.6.3':
    -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/source-map@29.6.3':
    -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/test-result@29.7.0':
    -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/test-sequencer@29.7.0':
    -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/transform@29.7.0':
    -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/types@29.6.3':
    -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jridgewell/gen-mapping@0.3.5':
    -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/resolve-uri@3.1.2':
    -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/set-array@1.2.1':
    -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/source-map@0.3.6':
    -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    -
    -  '@jridgewell/sourcemap-codec@1.4.15':
    -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    -
    -  '@jridgewell/trace-mapping@0.3.25':
    -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    -
    -  '@jridgewell/trace-mapping@0.3.9':
    -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    -
    -  '@leichtgewicht/ip-codec@2.0.4':
    -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    -
    -  '@mdx-js/loader@3.0.1':
    -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    -    peerDependencies:
    -      webpack: '>=5'
    -
    -  '@mdx-js/mdx@3.0.1':
    -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    -
    -  '@mdx-js/react@3.0.1':
    -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    -    peerDependencies:
    -      '@types/react': '>=16'
    -      react: '>=16 || 18'
    -
    -  '@msgpack/msgpack@2.8.0':
    -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    -    engines: {node: '>= 10'}
    -
    -  '@next/env@14.1.4':
    -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    -
    -  '@next/eslint-plugin-next@14.1.4':
    -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    -
    -  '@next/mdx@14.1.4':
    -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    -    peerDependencies:
    -      '@mdx-js/loader': '>=0.15.0'
    -      '@mdx-js/react': '>=0.15.0'
    -    peerDependenciesMeta:
    -      '@mdx-js/loader':
    -        optional: true
    -      '@mdx-js/react':
    -        optional: true
    -
    -  '@next/swc-darwin-arm64@14.1.4':
    -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [darwin]
    -
    -  '@next/swc-darwin-x64@14.1.4':
    -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [darwin]
    -
    -  '@next/swc-linux-arm64-gnu@14.1.4':
    -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@next/swc-linux-arm64-musl@14.1.4':
    -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@next/swc-linux-x64-gnu@14.1.4':
    -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@next/swc-linux-x64-musl@14.1.4':
    -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@next/swc-win32-arm64-msvc@14.1.4':
    -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [win32]
    -
    -  '@next/swc-win32-ia32-msvc@14.1.4':
    -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    -    engines: {node: '>= 10'}
    -    cpu: [ia32]
    -    os: [win32]
    -
    -  '@next/swc-win32-x64-msvc@14.1.4':
    -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [win32]
    -
    -  '@nodelib/fs.scandir@2.1.5':
    -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    -    engines: {node: '>= 8'}
    -
    -  '@nodelib/fs.stat@2.0.5':
    -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    -    engines: {node: '>= 8'}
    -
    -  '@nodelib/fs.walk@1.2.8':
    -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    -    engines: {node: '>= 8'}
    -
    -  '@npmcli/arborist@4.3.1':
    -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    -
    -  '@npmcli/fs@1.1.1':
    -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    -
    -  '@npmcli/fs@2.1.2':
    -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  '@npmcli/fs@3.1.0':
    -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/git@2.1.0':
    -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    -
    -  '@npmcli/git@4.1.0':
    -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/installed-package-contents@1.0.7':
    -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    -    engines: {node: '>= 10'}
    -    hasBin: true
    -
    -  '@npmcli/installed-package-contents@2.0.2':
    -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  '@npmcli/map-workspaces@2.0.4':
    -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  '@npmcli/metavuln-calculator@2.0.0':
    -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -
    -  '@npmcli/move-file@1.1.2':
    -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    -    engines: {node: '>=10'}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  '@npmcli/move-file@2.0.1':
    -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  '@npmcli/name-from-folder@1.0.1':
    -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    -
    -  '@npmcli/node-gyp@1.0.3':
    -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    -
    -  '@npmcli/node-gyp@3.0.0':
    -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/package-json@1.0.1':
    -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    -
    -  '@npmcli/promise-spawn@1.3.2':
    -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    -
    -  '@npmcli/promise-spawn@6.0.2':
    -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/run-script@2.0.0':
    -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    -
    -  '@npmcli/run-script@6.0.2':
    -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@octokit/auth-token@2.5.0':
    -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    -
    -  '@octokit/core@3.6.0':
    -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    -
    -  '@octokit/endpoint@6.0.12':
    -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    -
    -  '@octokit/graphql@4.8.0':
    -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    -
    -  '@octokit/openapi-types@12.11.0':
    -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    -
    -  '@octokit/plugin-paginate-rest@2.21.3':
    -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    -    peerDependencies:
    -      '@octokit/core': '>=2'
    -
    -  '@octokit/plugin-request-log@1.0.4':
    -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    -
    -  '@octokit/plugin-rest-endpoint-methods@5.16.2':
    -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    -
    -  '@octokit/request-error@2.1.0':
    -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    -
    -  '@octokit/request@5.6.3':
    -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    -
    -  '@octokit/rest@18.12.0':
    -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    -
    -  '@octokit/types@6.41.0':
    -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    -
    -  '@pkgjs/parseargs@0.11.0':
    -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    -    engines: {node: '>=14'}
    -
    -  '@pnpm/cli-meta@5.0.1':
    -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/cli-utils@2.0.9':
    -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/config.env-replace@1.1.0':
    -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/config@18.4.0':
    -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@6.2.0':
    -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    -    engines: {node: '>=14.6'}
    -
    -  '@pnpm/constants@7.1.0':
    -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@7.1.1':
    -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@8.0.0':
    -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/core-loggers@10.0.0':
    -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/core-loggers@9.0.1':
    -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/crypto.base32-hash@3.0.0':
    -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/dedupe.issues-renderer@1.0.0':
    -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/dedupe.types@1.0.0':
    -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/default-reporter@12.2.3':
    -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/dependency-path@3.0.0':
    -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/error@4.0.1':
    -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    -    engines: {node: '>=14.6'}
    -
    -  '@pnpm/error@5.0.1':
    -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/error@5.0.3':
    -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/error@6.0.0':
    -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/fetch@8.0.0':
    -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/fetcher-base@14.0.1':
    -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/fetching-types@6.0.0':
    -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/find-workspace-dir@6.0.3':
    -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/find-workspace-packages@6.0.9':
    -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/fs.find-packages@2.0.1':
    -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/git-resolver@9.0.1':
    -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/git-utils@1.0.0':
    -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/git-utils@2.0.0':
    -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/graceful-fs@3.0.0':
    -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/hooks.types@1.0.1':
    -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/hosted-git-info@1.0.0':
    -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    -    engines: {node: '>=10'}
    -
    -  '@pnpm/lockfile-file@9.0.2':
    -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/lockfile-types@5.1.0':
    -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/lockfile-types@6.0.0':
    -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/lockfile-utils@10.0.0':
    -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/logger@5.0.0':
    -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    -    engines: {node: '>=12.17'}
    -
    -  '@pnpm/manifest-utils@5.0.1':
    -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/matcher@5.0.0':
    -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/merge-lockfile-changes@6.0.0':
    -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/meta-updater@1.0.0':
    -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    -    engines: {node: '>=10.12'}
    -    hasBin: true
    -
    -  '@pnpm/network.agent@1.0.1':
    -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.ca-file@1.0.2':
    -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.config@1.0.1':
    -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.proxy-agent@1.0.1':
    -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/node-fetch@1.0.0':
    -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    -    engines: {node: ^10.17 || >=12.3}
    -
    -  '@pnpm/npm-conf@2.2.0':
    -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    -    engines: {node: '>=12'}
    -
    -  '@pnpm/npm-conf@2.2.2':
    -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    -    engines: {node: '>=12'}
    -
    -  '@pnpm/package-is-installable@8.0.2':
    -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/pick-fetcher@3.0.0':
    -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/pnpmfile@5.0.7':
    -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/ramda@0.28.1':
    -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    -
    -  '@pnpm/read-project-manifest@5.0.1':
    -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/render-peer-issues@4.0.1':
    -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/resolver-base@10.0.1':
    -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/resolver-base@12.0.0':
    -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/store-controller-types@15.0.1':
    -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/text.comments-parser@2.0.0':
    -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/types@10.0.0':
    -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/types@9.1.0':
    -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/types@9.4.2':
    -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/util.lex-comparator@1.0.0':
    -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/util.lex-comparator@3.0.0':
    -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/write-project-manifest@5.0.1':
    -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@polka/url@1.0.0-next.25':
    -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    -
    -  '@rushstack/eslint-patch@1.8.0':
    -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    -
    -  '@sideway/address@4.1.5':
    -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    -
    -  '@sideway/formula@3.0.1':
    -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    -
    -  '@sideway/pinpoint@2.0.0':
    -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    -
    -  '@sigstore/bundle@1.1.0':
    -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/protobuf-specs@0.2.1':
    -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/sign@1.0.0':
    -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/tuf@1.0.3':
    -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sinclair/typebox@0.27.8':
    -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    -
    -  '@sindresorhus/is@4.6.0':
    -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    -    engines: {node: '>=10'}
    -
    -  '@sindresorhus/is@5.6.0':
    -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    -    engines: {node: '>=14.16'}
    -
    -  '@sinonjs/commons@2.0.0':
    -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    -
    -  '@sinonjs/commons@3.0.1':
    -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    -
    -  '@sinonjs/fake-timers@10.3.0':
    -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    -
    -  '@sinonjs/fake-timers@11.2.2':
    -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    -
    -  '@sinonjs/samsam@8.0.0':
    -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    -
    -  '@sinonjs/text-encoding@0.7.2':
    -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    -
    -  '@slorber/remark-comment@1.0.0':
    -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    -
    -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
    -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
    -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
    -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
    -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
    -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
    -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
    -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
    -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
    -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
    -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
    -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
    -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-svg-component@6.5.1':
    -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-svg-component@8.0.0':
    -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-preset@6.5.1':
    -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-preset@8.1.0':
    -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/core@6.5.1':
    -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/core@8.1.0':
    -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/hast-util-to-babel-ast@6.5.1':
    -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/hast-util-to-babel-ast@8.0.0':
    -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/plugin-jsx@6.5.1':
    -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': ^6.0.0
    -
    -  '@svgr/plugin-jsx@8.1.0':
    -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/plugin-svgo@6.5.1':
    -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/plugin-svgo@8.1.0':
    -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/webpack@6.5.1':
    -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/webpack@8.1.0':
    -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    -    engines: {node: '>=14'}
    -
    -  '@swc/helpers@0.5.2':
    -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    -
    -  '@szmarczak/http-timer@5.0.1':
    -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    -    engines: {node: '>=14.16'}
    -
    -  '@testing-library/dom@9.3.4':
    -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    -    engines: {node: '>=14'}
    -
    -  '@testing-library/react@14.2.2':
    -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@tootallnate/once@1.1.2':
    -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    -    engines: {node: '>= 6'}
    -
    -  '@tootallnate/once@2.0.0':
    -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    -    engines: {node: '>= 10'}
    -
    -  '@trysound/sax@0.2.0':
    -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    -    engines: {node: '>=10.13.0'}
    -
    -  '@tsconfig/docusaurus@2.0.2':
    -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    -
    -  '@tsconfig/node10@1.0.10':
    -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    -
    -  '@tsconfig/node12@1.0.11':
    -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    -
    -  '@tsconfig/node14@1.0.3':
    -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    -
    -  '@tsconfig/node16@1.0.4':
    -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    -
    -  '@tufjs/canonical-json@1.0.0':
    -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@tufjs/models@1.0.4':
    -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@types/acorn@4.0.6':
    -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    -
    -  '@types/aria-query@5.0.4':
    -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    -
    -  '@types/babel__core@7.20.5':
    -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    -
    -  '@types/babel__generator@7.6.8':
    -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    -
    -  '@types/babel__template@7.4.4':
    -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    -
    -  '@types/babel__traverse@7.20.5':
    -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    -
    -  '@types/body-parser@1.19.5':
    -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    -
    -  '@types/bonjour@3.5.13':
    -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    -
    -  '@types/chai@4.3.14':
    -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    -
    -  '@types/connect-history-api-fallback@1.5.4':
    -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    -
    -  '@types/connect@3.4.38':
    -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    -
    -  '@types/debug@4.1.12':
    -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    -
    -  '@types/eslint-scope@3.7.7':
    -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    -
    -  '@types/eslint@8.56.6':
    -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    -
    -  '@types/estree-jsx@1.0.5':
    -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    -
    -  '@types/estree@1.0.5':
    -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    -
    -  '@types/expect@1.20.4':
    -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    -
    -  '@types/express-serve-static-core@4.17.43':
    -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    -
    -  '@types/express@4.17.21':
    -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    -
    -  '@types/fs-extra@11.0.4':
    -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    -
    -  '@types/glob@8.1.0':
    -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    -
    -  '@types/graceful-fs@4.1.9':
    -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    -
    -  '@types/gtag.js@0.0.12':
    -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    -
    -  '@types/hast@3.0.4':
    -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    -
    -  '@types/history@4.7.11':
    -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    -
    -  '@types/html-minifier-terser@6.1.0':
    -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    -
    -  '@types/http-cache-semantics@4.0.4':
    -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    -
    -  '@types/http-errors@2.0.4':
    -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    -
    -  '@types/http-proxy@1.17.14':
    -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    -
    -  '@types/istanbul-lib-coverage@2.0.6':
    -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    -
    -  '@types/istanbul-lib-report@3.0.3':
    -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    -
    -  '@types/istanbul-reports@3.0.4':
    -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    -
    -  '@types/jest@29.5.12':
    -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    -
    -  '@types/js-cookie@2.2.7':
    -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    -
    -  '@types/js-yaml@4.0.9':
    -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    -
    -  '@types/jsdom@20.0.1':
    -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    -
    -  '@types/json-schema@7.0.15':
    -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    -
    -  '@types/json5@0.0.29':
    -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    -
    -  '@types/jsonfile@6.1.4':
    -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    -
    -  '@types/lodash@4.17.0':
    -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    -
    -  '@types/mdast@4.0.3':
    -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    -
    -  '@types/mdx-js__react@1.5.8':
    -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    -
    -  '@types/mdx@2.0.12':
    -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    -
    -  '@types/mime@1.3.5':
    -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    -
    -  '@types/mime@3.0.4':
    -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    -
    -  '@types/minimatch@3.0.5':
    -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    -
    -  '@types/minimatch@5.1.2':
    -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    -
    -  '@types/minimist@1.2.5':
    -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    -
    -  '@types/mocha@10.0.6':
    -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    -
    -  '@types/moo@0.5.9':
    -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    -
    -  '@types/ms@0.7.34':
    -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    -
    -  '@types/nearley@2.11.5':
    -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    -
    -  '@types/node-forge@1.3.11':
    -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    -
    -  '@types/node@15.14.9':
    -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    -
    -  '@types/node@17.0.45':
    -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    -
    -  '@types/node@18.18.2':
    -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    -
    -  '@types/normalize-package-data@2.4.4':
    -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    -
    -  '@types/normalize-path@3.0.2':
    -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    -
    -  '@types/parse-json@4.0.2':
    -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    -
    -  '@types/prismjs@1.26.3':
    -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    -
    -  '@types/prop-types@15.7.12':
    -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    -
    -  '@types/qs@6.9.14':
    -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    -
    -  '@types/range-parser@1.2.7':
    -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    -
    -  '@types/react-dom@18.2.22':
    -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    -
    -  '@types/react-helmet@6.1.11':
    -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    -
    -  '@types/react-router-config@5.0.11':
    -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    -
    -  '@types/react-router-dom@5.3.3':
    -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    -
    -  '@types/react-router@5.1.20':
    -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    -
    -  '@types/react@18.2.71':
    -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    -
    -  '@types/retry@0.12.0':
    -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    -
    -  '@types/retry@0.12.2':
    -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    -
    -  '@types/sax@1.2.7':
    -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    -
    -  '@types/sbd@1.0.5':
    -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    -
    -  '@types/scheduler@0.23.0':
    -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    -
    -  '@types/semver@7.5.8':
    -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    -
    -  '@types/send@0.17.4':
    -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    -
    -  '@types/serve-index@1.9.4':
    -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    -
    -  '@types/serve-static@1.15.5':
    -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    -
    -  '@types/sinon@17.0.3':
    -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    -
    -  '@types/sinonjs__fake-timers@8.1.5':
    -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    -
    -  '@types/sockjs@0.3.36':
    -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    -
    -  '@types/ssri@7.1.5':
    -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    -
    -  '@types/stack-utils@2.0.3':
    -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    -
    -  '@types/tinycolor2@1.4.6':
    -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    -
    -  '@types/tough-cookie@4.0.5':
    -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    -
    -  '@types/triple-beam@1.3.5':
    -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    -
    -  '@types/unist@2.0.10':
    -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    -
    -  '@types/unist@3.0.2':
    -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    -
    -  '@types/uuid@9.0.8':
    -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    -
    -  '@types/vinyl@2.0.11':
    -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    -
    -  '@types/vscode@1.75.1':
    -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    -
    -  '@types/webpack@5.28.5':
    -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    -
    -  '@types/ws@8.5.10':
    -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    -
    -  '@types/yargs-parser@21.0.3':
    -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    -
    -  '@types/yargs@17.0.32':
    -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    -
    -  '@typescript-eslint/eslint-plugin@7.4.0':
    -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/parser': ^7.0.0
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/parser@6.21.0':
    -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      eslint: ^7.0.0 || ^8.0.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/parser@7.4.0':
    -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/scope-manager@6.21.0':
    -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/scope-manager@7.4.0':
    -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@typescript-eslint/type-utils@7.4.0':
    -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/types@6.21.0':
    -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/types@7.4.0':
    -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@typescript-eslint/typescript-estree@6.21.0':
    -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/typescript-estree@7.4.0':
    -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/utils@7.4.0':
    -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -
    -  '@typescript-eslint/visitor-keys@6.21.0':
    -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/visitor-keys@7.4.0':
    -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@ungap/structured-clone@1.2.0':
    -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    -
    -  '@vscode/test-electron@2.3.9':
    -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    -    engines: {node: '>=16'}
    -
    -  '@webassemblyjs/ast@1.12.1':
    -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    -
    -  '@webassemblyjs/floating-point-hex-parser@1.11.6':
    -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    -
    -  '@webassemblyjs/helper-api-error@1.11.6':
    -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    -
    -  '@webassemblyjs/helper-buffer@1.12.1':
    -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    -
    -  '@webassemblyjs/helper-numbers@1.11.6':
    -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    -
    -  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
    -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    -
    -  '@webassemblyjs/helper-wasm-section@1.12.1':
    -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    -
    -  '@webassemblyjs/ieee754@1.11.6':
    -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    -
    -  '@webassemblyjs/leb128@1.11.6':
    -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    -
    -  '@webassemblyjs/utf8@1.11.6':
    -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    -
    -  '@webassemblyjs/wasm-edit@1.12.1':
    -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    -
    -  '@webassemblyjs/wasm-gen@1.12.1':
    -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    -
    -  '@webassemblyjs/wasm-opt@1.12.1':
    -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    -
    -  '@webassemblyjs/wasm-parser@1.12.1':
    -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    -
    -  '@webassemblyjs/wast-printer@1.12.1':
    -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    -
    -  '@webpack-cli/configtest@2.1.1':
    -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -
    -  '@webpack-cli/generators@3.0.7':
    -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      prettier: '*'
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -    peerDependenciesMeta:
    -      prettier:
    -        optional: true
    -
    -  '@webpack-cli/info@2.0.2':
    -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -
    -  '@webpack-cli/serve@2.0.5':
    -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      webpack-dev-server:
    -        optional: true
    -
    -  '@xobotyi/scrollbar-width@1.9.5':
    -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    -
    -  '@xtuc/ieee754@1.2.0':
    -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    -
    -  '@xtuc/long@4.2.2':
    -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    -
    -  '@zkochan/js-yaml@0.0.7':
    -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    -    hasBin: true
    -
    -  '@zkochan/retry@0.2.0':
    -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    -    engines: {node: '>=10'}
    -
    -  '@zkochan/rimraf@2.1.3':
    -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    -    engines: {node: '>=12.10'}
    -
    -  '@zkochan/which@2.0.3':
    -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    -
    -  abab@2.0.6:
    -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    -    deprecated: Use your platform's native atob() and btoa() methods instead
    -
    -  abbrev@1.1.1:
    -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    -
    -  abort-controller@3.0.0:
    -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    -    engines: {node: '>=6.5'}
    -
    -  accepts@1.3.8:
    -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    -    engines: {node: '>= 0.6'}
    -
    -  acorn-globals@7.0.1:
    -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    -
    -  acorn-import-assertions@1.9.0:
    -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    -    peerDependencies:
    -      acorn: ^8
    -
    -  acorn-jsx@5.3.2:
    -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    -    peerDependencies:
    -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    -
    -  acorn-walk@8.3.2:
    -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    -    engines: {node: '>=0.4.0'}
    -
    -  acorn@8.11.3:
    -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    -    engines: {node: '>=0.4.0'}
    -    hasBin: true
    -
    -  address@1.2.2:
    -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    -    engines: {node: '>= 10.0.0'}
    -
    -  agent-base@6.0.2:
    -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    -    engines: {node: '>= 6.0.0'}
    -
    -  agentkeepalive@4.2.1:
    -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  agentkeepalive@4.5.0:
    -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  aggregate-error@3.1.0:
    -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    -    engines: {node: '>=8'}
    -
    -  ajv-formats@2.1.1:
    -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    -    peerDependencies:
    -      ajv: ^8.0.0
    -    peerDependenciesMeta:
    -      ajv:
    -        optional: true
    -
    -  ajv-keywords@3.5.2:
    -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    -    peerDependencies:
    -      ajv: ^6.9.1
    -
    -  ajv-keywords@5.1.0:
    -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    -    peerDependencies:
    -      ajv: ^8.8.2
    -
    -  ajv@6.12.6:
    -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    -
    -  ajv@8.12.0:
    -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    -
    -  algoliasearch-helper@3.16.3:
    -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    -    peerDependencies:
    -      algoliasearch: '>= 3.1 < 6'
    -
    -  algoliasearch@4.22.1:
    -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    -
    -  ansi-align@3.0.1:
    -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    -
    -  ansi-colors@4.1.1:
    -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    -    engines: {node: '>=6'}
    -
    -  ansi-colors@4.1.3:
    -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    -    engines: {node: '>=6'}
    -
    -  ansi-diff@1.1.1:
    -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    -
    -  ansi-escapes@4.3.2:
    -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    -    engines: {node: '>=8'}
    -
    -  ansi-html-community@0.0.8:
    -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    -    engines: {'0': node >= 0.8.0}
    -    hasBin: true
    -
    -  ansi-regex@3.0.1:
    -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    -    engines: {node: '>=4'}
    -
    -  ansi-regex@5.0.1:
    -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    -    engines: {node: '>=8'}
    -
    -  ansi-regex@6.0.1:
    -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    -    engines: {node: '>=12'}
    -
    -  ansi-split@1.0.1:
    -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    -
    -  ansi-styles@3.2.1:
    -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    -    engines: {node: '>=4'}
    -
    -  ansi-styles@4.3.0:
    -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    -    engines: {node: '>=8'}
    -
    -  ansi-styles@5.2.0:
    -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    -    engines: {node: '>=10'}
    -
    -  ansi-styles@6.2.1:
    -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    -    engines: {node: '>=12'}
    -
    -  any-promise@1.3.0:
    -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    -
    -  anymatch@3.1.3:
    -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    -    engines: {node: '>= 8'}
    -
    -  aproba@2.0.0:
    -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    -
    -  archy@1.0.0:
    -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    -
    -  are-we-there-yet@2.0.0:
    -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    -    engines: {node: '>=10'}
    -
    -  are-we-there-yet@3.0.1:
    -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  arg@4.1.3:
    -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    -
    -  arg@5.0.2:
    -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    -
    -  argparse@1.0.10:
    -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    -
    -  argparse@2.0.1:
    -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    -
    -  aria-query@5.1.3:
    -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    -
    -  aria-query@5.3.0:
    -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    -
    -  array-buffer-byte-length@1.0.1:
    -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    -    engines: {node: '>= 0.4'}
    -
    -  array-differ@3.0.0:
    -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    -    engines: {node: '>=8'}
    -
    -  array-flatten@1.1.1:
    -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    -
    -  array-includes@3.1.8:
    -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array-union@2.1.0:
    -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    -    engines: {node: '>=8'}
    -
    -  array.prototype.findlast@1.2.5:
    -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.findlastindex@1.2.5:
    -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.flat@1.3.2:
    -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.flatmap@1.3.2:
    -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.toreversed@1.1.2:
    -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    -
    -  array.prototype.tosorted@1.1.3:
    -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    -
    -  arraybuffer.prototype.slice@1.0.3:
    -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    -    engines: {node: '>= 0.4'}
    -
    -  arrify@1.0.1:
    -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  arrify@2.0.1:
    -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    -    engines: {node: '>=8'}
    -
    -  as-table@1.0.55:
    -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    -
    -  asap@2.0.6:
    -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    -
    -  assertion-error@2.0.1:
    -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    -    engines: {node: '>=12'}
    -
    -  ast-types-flow@0.0.8:
    -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    -
    -  astring@1.8.6:
    -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    -    hasBin: true
    -
    -  async@2.6.4:
    -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    -
    -  async@3.2.5:
    -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    -
    -  asynckit@0.4.0:
    -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    -
    -  at-least-node@1.0.0:
    -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  autoprefixer@10.4.19:
    -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    hasBin: true
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  available-typed-arrays@1.0.7:
    -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  axe-core@4.7.0:
    -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    -    engines: {node: '>=4'}
    -
    -  axobject-query@3.2.1:
    -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    -
    -  babel-jest@29.7.0:
    -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.8.0
    -
    -  babel-loader@9.1.3:
    -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -      webpack: '>=5'
    -
    -  babel-plugin-dynamic-import-node@2.3.3:
    -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    -
    -  babel-plugin-istanbul@6.1.1:
    -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    -    engines: {node: '>=8'}
    -
    -  babel-plugin-jest-hoist@29.6.3:
    -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  babel-plugin-polyfill-corejs2@0.4.10:
    -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-plugin-polyfill-corejs3@0.10.4:
    -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-plugin-polyfill-regenerator@0.6.1:
    -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-preset-current-node-syntax@1.0.1:
    -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  babel-preset-jest@29.6.3:
    -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  bail@2.0.2:
    -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    -
    -  balanced-match@1.0.2:
    -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    -
    -  base64-js@1.5.1:
    -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    -
    -  basic-auth@2.0.1:
    -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    -    engines: {node: '>= 0.8'}
    -
    -  batch@0.6.1:
    -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    -
    -  before-after-hook@2.2.3:
    -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    -
    -  better-path-resolve@1.0.0:
    -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    -    engines: {node: '>=4'}
    -
    -  big.js@5.2.2:
    -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    -
    -  bin-links@3.0.3:
    -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  binary-extensions@2.3.0:
    -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    -    engines: {node: '>=8'}
    -
    -  binaryextensions@4.19.0:
    -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    -    engines: {node: '>=0.8'}
    -
    -  bl@4.1.0:
    -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    -
    -  body-parser@1.20.2:
    -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    -
    -  bole@5.0.11:
    -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    -
    -  bonjour-service@1.2.1:
    -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    -
    -  boolbase@1.0.0:
    -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    -
    -  boxen@5.1.2:
    -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    -    engines: {node: '>=10'}
    -
    -  boxen@6.2.1:
    -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  boxen@7.1.1:
    -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    -    engines: {node: '>=14.16'}
    -
    -  brace-expansion@1.1.11:
    -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    -
    -  brace-expansion@2.0.1:
    -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    -
    -  braces@3.0.2:
    -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    -    engines: {node: '>=8'}
    -
    -  browser-stdout@1.3.1:
    -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    -
    -  browserslist@4.23.0:
    -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    -    hasBin: true
    -
    -  bs-logger@0.2.6:
    -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    -    engines: {node: '>= 6'}
    -
    -  bser@2.1.1:
    -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    -
    -  buffer-from@1.1.2:
    -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    -
    -  buffer@5.7.1:
    -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    -
    -  buffer@6.0.3:
    -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    -
    -  builtin-modules@3.3.0:
    -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    -    engines: {node: '>=6'}
    -
    -  builtins@1.0.3:
    -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    -
    -  builtins@5.0.1:
    -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    -
    -  bundle-name@4.1.0:
    -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    -    engines: {node: '>=18'}
    -
    -  busboy@1.6.0:
    -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    -    engines: {node: '>=10.16.0'}
    -
    -  bytes@3.0.0:
    -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    -    engines: {node: '>= 0.8'}
    -
    -  bytes@3.1.2:
    -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    -    engines: {node: '>= 0.8'}
    -
    -  cacache@15.3.0:
    -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    -    engines: {node: '>= 10'}
    -
    -  cacache@16.1.3:
    -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  cacache@17.1.4:
    -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  cacheable-lookup@7.0.0:
    -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    -    engines: {node: '>=14.16'}
    -
    -  cacheable-request@10.2.14:
    -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    -    engines: {node: '>=14.16'}
    -
    -  call-bind@1.0.7:
    -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    -    engines: {node: '>= 0.4'}
    -
    -  callsites@3.1.0:
    -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    -    engines: {node: '>=6'}
    -
    -  camel-case@4.1.2:
    -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    -
    -  camelcase-css@2.0.1:
    -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    -    engines: {node: '>= 6'}
    -
    -  camelcase-keys@6.2.2:
    -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    -    engines: {node: '>=8'}
    -
    -  camelcase-keys@7.0.2:
    -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    -    engines: {node: '>=12'}
    -
    -  camelcase@5.3.1:
    -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    -    engines: {node: '>=6'}
    -
    -  camelcase@6.3.0:
    -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    -    engines: {node: '>=10'}
    -
    -  camelcase@7.0.1:
    -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    -    engines: {node: '>=14.16'}
    -
    -  can-write-to-dir@1.1.1:
    -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    -    engines: {node: '>=10.13'}
    -
    -  caniuse-api@3.0.0:
    -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    -
    -  caniuse-lite@1.0.30001600:
    -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    -
    -  ccount@2.0.1:
    -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    -
    -  chai@5.1.0:
    -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    -    engines: {node: '>=12'}
    -
    -  chalk@2.4.2:
    -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    -    engines: {node: '>=4'}
    -
    -  chalk@4.1.2:
    -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    -    engines: {node: '>=10'}
    -
    -  chalk@5.3.0:
    -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    -
    -  char-regex@1.0.2:
    -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    -    engines: {node: '>=10'}
    -
    -  character-entities-html4@2.1.0:
    -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    -
    -  character-entities-legacy@3.0.0:
    -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    -
    -  character-entities@2.0.2:
    -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    -
    -  character-reference-invalid@2.0.1:
    -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    -
    -  chardet@0.7.0:
    -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    -
    -  check-error@2.0.0:
    -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    -    engines: {node: '>= 16'}
    -
    -  cheerio-select@2.1.0:
    -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    -
    -  cheerio@1.0.0-rc.12:
    -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    -    engines: {node: '>= 6'}
    -
    -  chokidar@3.5.3:
    -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    -    engines: {node: '>= 8.10.0'}
    -
    -  chokidar@3.6.0:
    -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    -    engines: {node: '>= 8.10.0'}
    -
    -  chownr@2.0.0:
    -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    -    engines: {node: '>=10'}
    -
    -  chrome-trace-event@1.0.3:
    -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    -    engines: {node: '>=6.0'}
    -
    -  ci-info@3.9.0:
    -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    -    engines: {node: '>=8'}
    -
    -  ci-info@4.0.0:
    -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    -    engines: {node: '>=8'}
    -
    -  cjs-module-lexer@1.2.3:
    -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    -
    -  clean-css@5.3.3:
    -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    -    engines: {node: '>= 10.0'}
    -
    -  clean-regexp@1.0.0:
    -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    -    engines: {node: '>=4'}
    -
    -  clean-stack@2.2.0:
    -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    -    engines: {node: '>=6'}
    -
    -  cli-boxes@2.2.1:
    -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    -    engines: {node: '>=6'}
    -
    -  cli-boxes@3.0.0:
    -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    -    engines: {node: '>=10'}
    -
    -  cli-columns@4.0.0:
    -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    -    engines: {node: '>= 10'}
    -
    -  cli-cursor@3.1.0:
    -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    -    engines: {node: '>=8'}
    -
    -  cli-spinners@2.9.2:
    -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    -    engines: {node: '>=6'}
    -
    -  cli-table3@0.6.4:
    -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    -    engines: {node: 10.* || >= 12.*}
    -
    -  cli-table@0.3.11:
    -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    -    engines: {node: '>= 0.2.0'}
    -
    -  cli-width@3.0.0:
    -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    -    engines: {node: '>= 10'}
    -
    -  client-only@0.0.1:
    -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    -
    -  cliui@7.0.4:
    -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    -
    -  cliui@8.0.1:
    -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    -    engines: {node: '>=12'}
    -
    -  clone-buffer@1.0.0:
    -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    -    engines: {node: '>= 0.10'}
    -
    -  clone-deep@4.0.1:
    -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    -    engines: {node: '>=6'}
    -
    -  clone-stats@1.0.0:
    -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    -
    -  clone@1.0.4:
    -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    -    engines: {node: '>=0.8'}
    -
    -  clone@2.1.2:
    -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    -    engines: {node: '>=0.8'}
    -
    -  cloneable-readable@1.1.3:
    -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    -
    -  clsx@2.1.0:
    -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    -    engines: {node: '>=6'}
    -
    -  cmd-shim@5.0.0:
    -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  co@4.6.0:
    -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    -
    -  collapse-white-space@2.1.0:
    -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    -
    -  collect-v8-coverage@1.0.2:
    -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    -
    -  color-convert@1.9.3:
    -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    -
    -  color-convert@2.0.1:
    -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    -    engines: {node: '>=7.0.0'}
    -
    -  color-name@1.1.3:
    -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    -
    -  color-name@1.1.4:
    -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    -
    -  color-string@1.9.1:
    -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    -
    -  color-support@1.1.3:
    -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    -    hasBin: true
    -
    -  color@3.2.1:
    -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    -
    -  colord@2.9.3:
    -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    -
    -  colorette@2.0.20:
    -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    -
    -  colors@1.0.3:
    -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    -    engines: {node: '>=0.1.90'}
    -
    -  colorspace@1.1.4:
    -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    -
    -  combine-promises@1.2.0:
    -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    -    engines: {node: '>=10'}
    -
    -  combined-stream@1.0.8:
    -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    -    engines: {node: '>= 0.8'}
    -
    -  comma-separated-tokens@2.0.3:
    -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    -
    -  commander@10.0.1:
    -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    -    engines: {node: '>=14'}
    -
    -  commander@11.1.0:
    -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    -    engines: {node: '>=16'}
    -
    -  commander@2.20.3:
    -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    -
    -  commander@4.1.1:
    -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    -    engines: {node: '>= 6'}
    -
    -  commander@5.1.0:
    -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    -    engines: {node: '>= 6'}
    -
    -  commander@7.1.0:
    -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    -    engines: {node: '>= 10'}
    -
    -  commander@7.2.0:
    -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    -    engines: {node: '>= 10'}
    -
    -  commander@8.3.0:
    -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    -    engines: {node: '>= 12'}
    -
    -  common-ancestor-path@1.0.1:
    -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    -
    -  common-path-prefix@3.0.0:
    -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    -
    -  commondir@1.0.1:
    -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    -
    -  compressible@2.0.18:
    -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    -    engines: {node: '>= 0.6'}
    -
    -  compression@1.7.4:
    -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  comver-to-semver@1.0.0:
    -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    -    engines: {node: '>=12.17'}
    -
    -  concat-map@0.0.1:
    -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    -
    -  config-chain@1.1.13:
    -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    -
    -  configstore@6.0.0:
    -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    -    engines: {node: '>=12'}
    -
    -  connect-history-api-fallback@2.0.0:
    -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    -    engines: {node: '>=0.8'}
    -
    -  consola@2.15.3:
    -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    -
    -  console-control-strings@1.1.0:
    -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    -
    -  content-disposition@0.5.2:
    -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    -    engines: {node: '>= 0.6'}
    -
    -  content-disposition@0.5.4:
    -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  content-type@1.0.5:
    -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    -    engines: {node: '>= 0.6'}
    -
    -  convert-source-map@2.0.0:
    -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    -
    -  cookie-signature@1.0.6:
    -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    -
    -  cookie@0.6.0:
    -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    -    engines: {node: '>= 0.6'}
    -
    -  copy-text-to-clipboard@3.2.0:
    -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    -    engines: {node: '>=12'}
    -
    -  copy-to-clipboard@3.3.3:
    -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    -
    -  copy-webpack-plugin@11.0.0:
    -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      webpack: ^5.1.0
    -
    -  core-js-compat@3.36.1:
    -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    -
    -  core-js-pure@3.36.1:
    -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    -
    -  core-js@3.36.1:
    -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    -
    -  core-util-is@1.0.3:
    -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    -
    -  corser@2.0.1:
    -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  cosmiconfig@6.0.0:
    -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    -    engines: {node: '>=8'}
    -
    -  cosmiconfig@7.1.0:
    -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    -    engines: {node: '>=10'}
    -
    -  cosmiconfig@8.3.6:
    -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  cosmiconfig@9.0.0:
    -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  create-jest@29.7.0:
    -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -
    -  create-require@1.1.1:
    -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    -
    -  cross-spawn@7.0.3:
    -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    -    engines: {node: '>= 8'}
    -
    -  crypto-random-string@2.0.0:
    -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    -    engines: {node: '>=8'}
    -
    -  crypto-random-string@4.0.0:
    -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    -    engines: {node: '>=12'}
    -
    -  css-declaration-sorter@6.4.1:
    -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    peerDependencies:
    -      postcss: ^8.0.9
    -
    -  css-in-js-utils@3.1.0:
    -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    -
    -  css-loader@6.10.0:
    -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  css-minimizer-webpack-plugin@4.2.2:
    -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@parcel/css': '*'
    -      '@swc/css': '*'
    -      clean-css: '*'
    -      csso: '*'
    -      esbuild: '*'
    -      lightningcss: '*'
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@parcel/css':
    -        optional: true
    -      '@swc/css':
    -        optional: true
    -      clean-css:
    -        optional: true
    -      csso:
    -        optional: true
    -      esbuild:
    -        optional: true
    -      lightningcss:
    -        optional: true
    -
    -  css-select@4.3.0:
    -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    -
    -  css-select@5.1.0:
    -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    -
    -  css-tree@1.1.3:
    -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  css-tree@2.2.1:
    -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    -
    -  css-tree@2.3.1:
    -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    -
    -  css-what@6.1.0:
    -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    -    engines: {node: '>= 6'}
    -
    -  cssesc@3.0.0:
    -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  cssnano-preset-advanced@5.3.10:
    -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano-preset-default@5.2.14:
    -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano-utils@3.1.0:
    -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano@5.1.15:
    -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  csso@4.2.0:
    -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    -    engines: {node: '>=8.0.0'}
    -
    -  csso@5.0.5:
    -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    -
    -  cssom@0.3.8:
    -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    -
    -  cssom@0.5.0:
    -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    -
    -  cssstyle@2.3.0:
    -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    -    engines: {node: '>=8'}
    -
    -  csstype@3.1.3:
    -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    -
    -  damerau-levenshtein@1.0.8:
    -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    -
    -  dargs@7.0.0:
    -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    -    engines: {node: '>=8'}
    -
    -  data-uri-to-buffer@2.0.2:
    -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    -
    -  data-uri-to-buffer@3.0.1:
    -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    -    engines: {node: '>= 6'}
    -
    -  data-urls@3.0.2:
    -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    -    engines: {node: '>=12'}
    -
    -  data-view-buffer@1.0.1:
    -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    -    engines: {node: '>= 0.4'}
    -
    -  data-view-byte-length@1.0.1:
    -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  data-view-byte-offset@1.0.0:
    -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    -    engines: {node: '>= 0.4'}
    -
    -  dateformat@4.6.3:
    -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    -
    -  debounce@1.2.1:
    -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    -
    -  debug@2.6.9:
    -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debug@3.2.7:
    -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debug@4.3.4:
    -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    -    engines: {node: '>=6.0'}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debuglog@1.0.1:
    -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    -
    -  decamelize-keys@1.1.1:
    -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  decamelize@1.2.0:
    -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  decamelize@4.0.0:
    -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    -    engines: {node: '>=10'}
    -
    -  decamelize@5.0.1:
    -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    -    engines: {node: '>=10'}
    -
    -  decimal.js@10.4.3:
    -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    -
    -  decode-named-character-reference@1.0.2:
    -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    -
    -  decompress-response@6.0.0:
    -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    -    engines: {node: '>=10'}
    -
    -  dedent@1.5.1:
    -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    -    peerDependencies:
    -      babel-plugin-macros: ^3.1.0
    -    peerDependenciesMeta:
    -      babel-plugin-macros:
    -        optional: true
    -
    -  deep-eql@5.0.1:
    -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    -    engines: {node: '>=6'}
    -
    -  deep-equal@2.2.3:
    -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    -    engines: {node: '>= 0.4'}
    -
    -  deep-extend@0.6.0:
    -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    -    engines: {node: '>=4.0.0'}
    -
    -  deep-is@0.1.4:
    -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    -
    -  deepmerge@4.3.1:
    -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    -    engines: {node: '>=0.10.0'}
    -
    -  default-browser-id@5.0.0:
    -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    -    engines: {node: '>=18'}
    -
    -  default-browser@5.2.1:
    -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    -    engines: {node: '>=18'}
    -
    -  default-gateway@6.0.3:
    -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    -    engines: {node: '>= 10'}
    -
    -  defaults@1.0.4:
    -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    -
    -  defer-to-connect@2.0.1:
    -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    -    engines: {node: '>=10'}
    -
    -  define-data-property@1.1.4:
    -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    -    engines: {node: '>= 0.4'}
    -
    -  define-lazy-prop@2.0.0:
    -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    -    engines: {node: '>=8'}
    -
    -  define-lazy-prop@3.0.0:
    -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    -    engines: {node: '>=12'}
    -
    -  define-properties@1.2.1:
    -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    -    engines: {node: '>= 0.4'}
    -
    -  del@6.1.1:
    -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    -    engines: {node: '>=10'}
    -
    -  delayed-stream@1.0.0:
    -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    -    engines: {node: '>=0.4.0'}
    -
    -  delegates@1.0.0:
    -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    -
    -  depd@1.1.2:
    -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  depd@2.0.0:
    -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    -    engines: {node: '>= 0.8'}
    -
    -  deprecation@2.3.1:
    -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    -
    -  dequal@2.0.3:
    -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    -    engines: {node: '>=6'}
    -
    -  destroy@1.2.0:
    -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    -
    -  detect-indent@7.0.1:
    -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    -    engines: {node: '>=12.20'}
    -
    -  detect-libc@2.0.3:
    -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    -    engines: {node: '>=8'}
    -
    -  detect-newline@3.1.0:
    -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    -    engines: {node: '>=8'}
    -
    -  detect-node@2.1.0:
    -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    -
    -  detect-port-alt@1.1.6:
    -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    -    engines: {node: '>= 4.2.1'}
    -    hasBin: true
    -
    -  detect-port@1.5.1:
    -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    -    hasBin: true
    -
    -  devlop@1.1.0:
    -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    -
    -  dezalgo@1.0.4:
    -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    -
    -  didyoumean@1.2.2:
    -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    -
    -  diff-sequences@29.6.3:
    -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  diff@4.0.2:
    -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    -    engines: {node: '>=0.3.1'}
    -
    -  diff@5.0.0:
    -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    -    engines: {node: '>=0.3.1'}
    -
    -  diff@5.2.0:
    -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    -    engines: {node: '>=0.3.1'}
    -
    -  dir-glob@3.0.1:
    -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    -    engines: {node: '>=8'}
    -
    -  discontinuous-range@1.0.0:
    -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    -
    -  dlv@1.1.3:
    -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    -
    -  dns-packet@5.6.1:
    -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    -    engines: {node: '>=6'}
    -
    -  doctrine@2.1.0:
    -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  doctrine@3.0.0:
    -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    -    engines: {node: '>=6.0.0'}
    -
    -  dom-accessibility-api@0.5.16:
    -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    -
    -  dom-converter@0.2.0:
    -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    -
    -  dom-serializer@1.4.1:
    -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    -
    -  dom-serializer@2.0.0:
    -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    -
    -  domelementtype@2.3.0:
    -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    -
    -  domexception@4.0.0:
    -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    -    engines: {node: '>=12'}
    -    deprecated: Use your platform's native DOMException instead
    -
    -  domhandler@4.3.1:
    -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    -    engines: {node: '>= 4'}
    -
    -  domhandler@5.0.3:
    -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    -    engines: {node: '>= 4'}
    -
    -  domutils@2.8.0:
    -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    -
    -  domutils@3.1.0:
    -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    -
    -  dot-case@3.0.4:
    -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    -
    -  dot-prop@6.0.1:
    -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    -    engines: {node: '>=10'}
    -
    -  duplexer@0.1.2:
    -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    -
    -  eastasianwidth@0.2.0:
    -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    -
    -  ee-first@1.1.1:
    -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    -
    -  effect@2.0.0-next.62:
    -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    -
    -  ejs@3.1.9:
    -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    -    engines: {node: '>=0.10.0'}
    -    hasBin: true
    -
    -  electron-to-chromium@1.4.717:
    -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    -
    -  emittery@0.13.1:
    -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    -    engines: {node: '>=12'}
    -
    -  emoji-regex@8.0.0:
    -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    -
    -  emoji-regex@9.2.2:
    -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    -
    -  emojilib@2.4.0:
    -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    -
    -  emojis-list@3.0.0:
    -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    -    engines: {node: '>= 4'}
    -
    -  emoticon@4.0.1:
    -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    -
    -  enabled@2.0.0:
    -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    -
    -  encodeurl@1.0.2:
    -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    -    engines: {node: '>= 0.8'}
    -
    -  encoding@0.1.13:
    -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    -
    -  enhanced-resolve@5.16.0:
    -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    -    engines: {node: '>=10.13.0'}
    -
    -  enquirer@2.4.1:
    -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    -    engines: {node: '>=8.6'}
    -
    -  entities@2.2.0:
    -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    -
    -  entities@4.5.0:
    -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    -    engines: {node: '>=0.12'}
    -
    -  env-paths@2.2.1:
    -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    -    engines: {node: '>=6'}
    -
    -  envinfo@7.11.1:
    -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  err-code@2.0.3:
    -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    -
    -  error-ex@1.3.2:
    -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    -
    -  error-stack-parser@2.1.4:
    -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    -
    -  error@10.4.0:
    -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    -
    -  es-abstract@1.23.2:
    -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-define-property@1.0.0:
    -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-errors@1.3.0:
    -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-get-iterator@1.1.3:
    -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    -
    -  es-iterator-helpers@1.0.18:
    -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-module-lexer@1.5.0:
    -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    -
    -  es-object-atoms@1.0.0:
    -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-set-tostringtag@2.0.3:
    -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-shim-unscopables@1.0.2:
    -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    -
    -  es-to-primitive@1.2.1:
    -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    -    engines: {node: '>= 0.4'}
    -
    -  esbuild@0.20.2:
    -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  escalade@3.1.2:
    -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    -    engines: {node: '>=6'}
    -
    -  escape-goat@4.0.0:
    -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    -    engines: {node: '>=12'}
    -
    -  escape-html@1.0.3:
    -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    -
    -  escape-string-regexp@1.0.5:
    -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  escape-string-regexp@2.0.0:
    -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    -    engines: {node: '>=8'}
    -
    -  escape-string-regexp@4.0.0:
    -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    -    engines: {node: '>=10'}
    -
    -  escape-string-regexp@5.0.0:
    -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    -    engines: {node: '>=12'}
    -
    -  escodegen@2.1.0:
    -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    -    engines: {node: '>=6.0'}
    -    hasBin: true
    -
    -  eslint-config-next@14.1.4:
    -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    -    peerDependencies:
    -      eslint: ^7.23.0 || ^8.0.0
    -      typescript: '>=3.3.1'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  eslint-config-prettier@9.1.0:
    -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    -    hasBin: true
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    -
    -  eslint-import-resolver-node@0.3.9:
    -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    -
    -  eslint-import-resolver-typescript@3.6.1:
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    -
    -  eslint-module-utils@2.8.1:
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    -
    -  eslint-plugin-import@2.29.1:
    -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -
    -  eslint-plugin-jsx-a11y@6.8.0:
    -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    -
    -  eslint-plugin-mocha@10.4.1:
    -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    -
    -  eslint-plugin-react-hooks@4.6.0:
    -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    -
    -  eslint-plugin-react@7.34.1:
    -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    -
    -  eslint-plugin-unicorn@51.0.1:
    -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      eslint: '>=8.56.0'
    -
    -  eslint-plugin-unused-imports@3.1.0:
    -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/eslint-plugin': 6 - 7
    -      eslint: '8'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/eslint-plugin':
    -        optional: true
    -
    -  eslint-rule-composer@0.3.0:
    -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    -    engines: {node: '>=4.0.0'}
    -
    -  eslint-scope@5.1.1:
    -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    -    engines: {node: '>=8.0.0'}
    -
    -  eslint-scope@7.2.2:
    -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  eslint-utils@3.0.0:
    -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    -    peerDependencies:
    -      eslint: '>=5'
    -
    -  eslint-visitor-keys@2.1.0:
    -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    -    engines: {node: '>=10'}
    -
    -  eslint-visitor-keys@3.4.3:
    -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  eslint@8.57.0:
    -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    hasBin: true
    -
    -  espree@9.6.1:
    -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  esprima@4.0.1:
    -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  esquery@1.5.0:
    -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    -    engines: {node: '>=0.10'}
    -
    -  esrecurse@4.3.0:
    -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    -    engines: {node: '>=4.0'}
    -
    -  estraverse@4.3.0:
    -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    -    engines: {node: '>=4.0'}
    -
    -  estraverse@5.3.0:
    -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    -    engines: {node: '>=4.0'}
    -
    -  estree-util-attach-comments@3.0.0:
    -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    -
    -  estree-util-build-jsx@3.0.1:
    -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    -
    -  estree-util-is-identifier-name@3.0.0:
    -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    -
    -  estree-util-to-js@2.0.0:
    -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    -
    -  estree-util-value-to-estree@3.0.1:
    -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    -    engines: {node: '>=16.0.0'}
    -
    -  estree-util-visit@2.0.0:
    -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    -
    -  estree-walker@3.0.3:
    -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    -
    -  esutils@2.0.3:
    -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  eta@2.2.0:
    -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    -    engines: {node: '>=6.0.0'}
    -
    -  etag@1.8.1:
    -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    -    engines: {node: '>= 0.6'}
    -
    -  eval@0.1.8:
    -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    -    engines: {node: '>= 0.8'}
    -
    -  event-target-shim@5.0.1:
    -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    -    engines: {node: '>=6'}
    -
    -  eventemitter3@4.0.7:
    -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    -
    -  events@3.3.0:
    -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    -    engines: {node: '>=0.8.x'}
    -
    -  execa@5.1.1:
    -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    -    engines: {node: '>=10'}
    -
    -  exit@0.1.2:
    -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  expect@29.7.0:
    -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  exponential-backoff@3.1.1:
    -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    -
    -  express@4.19.2:
    -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    -    engines: {node: '>= 0.10.0'}
    -
    -  extend-shallow@2.0.1:
    -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    -    engines: {node: '>=0.10.0'}
    -
    -  extend@3.0.2:
    -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    -
    -  external-editor@3.1.0:
    -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    -    engines: {node: '>=4'}
    -
    -  fast-check@3.15.0:
    -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  fast-check@3.17.0:
    -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    -    engines: {node: '>=8.0.0'}
    -
    -  fast-deep-equal@3.1.3:
    -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    -
    -  fast-glob@3.3.2:
    -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    -    engines: {node: '>=8.6.0'}
    -
    -  fast-json-stable-stringify@2.1.0:
    -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    -
    -  fast-levenshtein@2.0.6:
    -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    -
    -  fast-loops@1.1.3:
    -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    -
    -  fast-safe-stringify@2.1.1:
    -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    -
    -  fast-shallow-equal@1.0.0:
    -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    -
    -  fast-url-parser@1.1.3:
    -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    -
    -  fast-xml-parser@4.3.6:
    -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    -    hasBin: true
    -
    -  fastest-levenshtein@1.0.16:
    -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    -    engines: {node: '>= 4.9.1'}
    -
    -  fastest-stable-stringify@2.0.2:
    -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    -
    -  fastq@1.17.1:
    -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    -
    -  fault@2.0.1:
    -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    -
    -  faye-websocket@0.11.4:
    -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    -    engines: {node: '>=0.8.0'}
    -
    -  fb-watchman@2.0.2:
    -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    -
    -  fecha@4.2.3:
    -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    -
    -  feed@4.2.2:
    -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    -    engines: {node: '>=0.4.0'}
    -
    -  fetch-blob@2.1.2:
    -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    -    engines: {node: ^10.17.0 || >=12.3.0}
    -    peerDependencies:
    -      domexception: '*'
    -    peerDependenciesMeta:
    -      domexception:
    -        optional: true
    -
    -  figures@3.2.0:
    -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    -    engines: {node: '>=8'}
    -
    -  file-entry-cache@6.0.1:
    -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    -
    -  file-loader@6.2.0:
    -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    -
    -  filelist@1.0.4:
    -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    -
    -  filesize@8.0.7:
    -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  fill-range@7.0.1:
    -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    -    engines: {node: '>=8'}
    -
    -  finalhandler@1.2.0:
    -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    -    engines: {node: '>= 0.8'}
    -
    -  find-cache-dir@4.0.0:
    -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    -    engines: {node: '>=14.16'}
    -
    -  find-up@3.0.0:
    -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    -    engines: {node: '>=6'}
    -
    -  find-up@4.1.0:
    -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    -    engines: {node: '>=8'}
    -
    -  find-up@5.0.0:
    -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    -    engines: {node: '>=10'}
    -
    -  find-up@6.3.0:
    -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  find-yarn-workspace-root2@1.2.16:
    -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    -
    -  first-chunk-stream@2.0.0:
    -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  flat-cache@3.2.0:
    -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    -
    -  flat@5.0.2:
    -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    -    hasBin: true
    -
    -  flatted@3.3.1:
    -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    -
    -  fn.name@1.1.0:
    -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    -
    -  follow-redirects@1.15.6:
    -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      debug: '*'
    -    peerDependenciesMeta:
    -      debug:
    -        optional: true
    -
    -  for-each@0.3.3:
    -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    -
    -  foreground-child@3.1.1:
    -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    -    engines: {node: '>=14'}
    -
    -  fork-ts-checker-webpack-plugin@6.5.3:
    -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    -    engines: {node: '>=10', yarn: '>=1.0.0'}
    -    peerDependencies:
    -      eslint: '>= 6'
    -      typescript: '>= 2.7'
    -      vue-template-compiler: '*'
    -      webpack: '>= 4'
    -    peerDependenciesMeta:
    -      eslint:
    -        optional: true
    -      vue-template-compiler:
    -        optional: true
    -
    -  form-data-encoder@2.1.4:
    -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    -    engines: {node: '>= 14.17'}
    -
    -  form-data@4.0.0:
    -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    -    engines: {node: '>= 6'}
    -
    -  format@0.2.2:
    -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    -    engines: {node: '>=0.4.x'}
    -
    -  forwarded@0.2.0:
    -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    -    engines: {node: '>= 0.6'}
    -
    -  fraction.js@4.3.7:
    -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    -
    -  fresh@0.5.2:
    -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    -    engines: {node: '>= 0.6'}
    -
    -  fs-extra@11.2.0:
    -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    -    engines: {node: '>=14.14'}
    -
    -  fs-extra@9.1.0:
    -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    -    engines: {node: '>=10'}
    -
    -  fs-minipass@2.1.0:
    -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    -    engines: {node: '>= 8'}
    -
    -  fs-minipass@3.0.3:
    -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  fs-monkey@1.0.5:
    -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    -
    -  fs.realpath@1.0.0:
    -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    -
    -  fsevents@2.3.3:
    -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    -    os: [darwin]
    -
    -  function-bind@1.1.2:
    -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    -
    -  function.prototype.name@1.1.6:
    -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    -    engines: {node: '>= 0.4'}
    -
    -  functions-have-names@1.2.3:
    -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    -
    -  gauge@3.0.2:
    -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    -    engines: {node: '>=10'}
    -
    -  gauge@4.0.4:
    -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  gensync@1.0.0-beta.2:
    -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  get-caller-file@2.0.5:
    -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    -    engines: {node: 6.* || 8.* || >= 10.*}
    -
    -  get-func-name@2.0.2:
    -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    -
    -  get-intrinsic@1.2.4:
    -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  get-npm-tarball-url@2.1.0:
    -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    -    engines: {node: '>=12.17'}
    -
    -  get-own-enumerable-property-symbols@3.0.2:
    -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    -
    -  get-package-type@0.1.0:
    -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  get-source@2.0.12:
    -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    -
    -  get-stream@6.0.1:
    -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    -    engines: {node: '>=10'}
    -
    -  get-symbol-description@1.0.2:
    -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    -    engines: {node: '>= 0.4'}
    -
    -  get-tsconfig@4.7.3:
    -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    -
    -  github-slugger@1.5.0:
    -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    -
    -  github-username@6.0.0:
    -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    -    engines: {node: '>=10'}
    -
    -  glob-parent@5.1.2:
    -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    -    engines: {node: '>= 6'}
    -
    -  glob-parent@6.0.2:
    -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    -    engines: {node: '>=10.13.0'}
    -
    -  glob-to-regexp@0.4.1:
    -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    -
    -  glob@10.3.10:
    -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    -
    -  glob@7.2.3:
    -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    -
    -  glob@8.1.0:
    -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    -    engines: {node: '>=12'}
    -
    -  global-dirs@3.0.1:
    -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    -    engines: {node: '>=10'}
    -
    -  global-modules@2.0.0:
    -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    -    engines: {node: '>=6'}
    -
    -  global-prefix@3.0.0:
    -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    -    engines: {node: '>=6'}
    -
    -  globals@11.12.0:
    -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    -    engines: {node: '>=4'}
    -
    -  globals@13.24.0:
    -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    -    engines: {node: '>=8'}
    -
    -  globalthis@1.0.3:
    -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    -    engines: {node: '>= 0.4'}
    -
    -  globby@11.1.0:
    -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    -    engines: {node: '>=10'}
    -
    -  globby@13.2.2:
    -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  gopd@1.0.1:
    -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    -
    -  got@12.6.1:
    -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    -    engines: {node: '>=14.16'}
    -
    -  graceful-fs@4.2.10:
    -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    -
    -  graceful-fs@4.2.11:
    -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    -
    -  graceful-git@3.1.2:
    -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    -    engines: {node: '>=10'}
    -
    -  graphemer@1.4.0:
    -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    -
    -  gray-matter@4.0.3:
    -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    -    engines: {node: '>=6.0'}
    -
    -  grouped-queue@2.0.0:
    -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    -    engines: {node: '>=8.0.0'}
    -
    -  gzip-size@6.0.0:
    -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    -    engines: {node: '>=10'}
    -
    -  handle-thing@2.0.1:
    -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    -
    -  hard-rejection@2.1.0:
    -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    -    engines: {node: '>=6'}
    -
    -  has-bigints@1.0.2:
    -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    -
    -  has-flag@3.0.0:
    -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    -    engines: {node: '>=4'}
    -
    -  has-flag@4.0.0:
    -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    -    engines: {node: '>=8'}
    -
    -  has-property-descriptors@1.0.2:
    -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    -
    -  has-proto@1.0.3:
    -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-symbols@1.0.3:
    -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-tostringtag@1.0.2:
    -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-unicode@2.0.1:
    -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    -
    -  has-yarn@3.0.0:
    -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  hasharray@1.1.2:
    -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    -
    -  hasown@2.0.2:
    -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  hast-util-from-parse5@8.0.1:
    -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    -
    -  hast-util-parse-selector@4.0.0:
    -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    -
    -  hast-util-raw@9.0.2:
    -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    -
    -  hast-util-to-estree@3.1.0:
    -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    -
    -  hast-util-to-jsx-runtime@2.3.0:
    -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    -
    -  hast-util-to-parse5@8.0.0:
    -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    -
    -  hast-util-whitespace@3.0.0:
    -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    -
    -  hastscript@8.0.0:
    -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    -
    -  he@1.2.0:
    -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    -    hasBin: true
    -
    -  history@4.10.1:
    -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    -
    -  hoist-non-react-statics@3.3.2:
    -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    -
    -  hosted-git-info@2.8.9:
    -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    -
    -  hosted-git-info@4.1.0:
    -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    -    engines: {node: '>=10'}
    -
    -  hosted-git-info@6.1.1:
    -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  hosted-git-info@7.0.1:
    -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    -
    -  hpack.js@2.1.6:
    -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    -
    -  html-encoding-sniffer@3.0.0:
    -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    -    engines: {node: '>=12'}
    -
    -  html-entities@2.5.2:
    -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    -
    -  html-escaper@2.0.2:
    -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    -
    -  html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  html-minifier-terser@7.2.0:
    -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    -    engines: {node: ^14.13.1 || >=16.0.0}
    -    hasBin: true
    -
    -  html-tags@3.3.1:
    -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    -    engines: {node: '>=8'}
    -
    -  html-void-elements@3.0.0:
    -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    -
    -  html-webpack-plugin@5.6.0:
    -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.20.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  htmlparser2@6.1.0:
    -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    -
    -  htmlparser2@8.0.2:
    -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    -
    -  http-cache-semantics@4.1.1:
    -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    -
    -  http-deceiver@1.2.7:
    -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    -
    -  http-errors@1.6.3:
    -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    -    engines: {node: '>= 0.6'}
    -
    -  http-errors@2.0.0:
    -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  http-parser-js@0.5.8:
    -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    -
    -  http-proxy-agent@4.0.1:
    -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    -    engines: {node: '>= 6'}
    -
    -  http-proxy-agent@5.0.0:
    -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    -    engines: {node: '>= 6'}
    -
    -  http-proxy-middleware@2.0.6:
    -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      '@types/express': ^4.17.13
    -    peerDependenciesMeta:
    -      '@types/express':
    -        optional: true
    -
    -  http-proxy@1.18.1:
    -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    -    engines: {node: '>=8.0.0'}
    -
    -  http-server@14.1.1:
    -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  http2-wrapper@2.2.1:
    -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    -    engines: {node: '>=10.19.0'}
    -
    -  https-proxy-agent@5.0.1:
    -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    -    engines: {node: '>= 6'}
    -
    -  human-signals@2.1.0:
    -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    -    engines: {node: '>=10.17.0'}
    -
    -  humanize-ms@1.2.1:
    -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    -
    -  hyphenate-style-name@1.0.4:
    -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    -
    -  iconv-lite@0.4.24:
    -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  iconv-lite@0.6.3:
    -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  icss-utils@5.1.0:
    -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  ieee754@1.2.1:
    -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    -
    -  ignore-walk@4.0.1:
    -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    -    engines: {node: '>=10'}
    -
    -  ignore-walk@6.0.4:
    -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  ignore@5.3.1:
    -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    -    engines: {node: '>= 4'}
    -
    -  image-size@1.1.1:
    -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    -    engines: {node: '>=16.x'}
    -    hasBin: true
    -
    -  immediate@3.0.6:
    -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    -
    -  immer@10.0.4:
    -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    -
    -  immer@9.0.21:
    -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    -
    -  immutability-helper@3.1.1:
    -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    -
    -  import-fresh@3.3.0:
    -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    -    engines: {node: '>=6'}
    -
    -  import-lazy@4.0.0:
    -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    -    engines: {node: '>=8'}
    -
    -  import-local@3.1.0:
    -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -
    -  imurmurhash@0.1.4:
    -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    -    engines: {node: '>=0.8.19'}
    -
    -  indent-string@4.0.0:
    -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    -    engines: {node: '>=8'}
    -
    -  indent-string@5.0.0:
    -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    -    engines: {node: '>=12'}
    -
    -  individual@3.0.0:
    -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    -
    -  infer-owner@1.0.4:
    -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    -
    -  infima@0.2.0-alpha.43:
    -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    -    engines: {node: '>=12'}
    -
    -  inflight@1.0.6:
    -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    -
    -  inherits@2.0.3:
    -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    -
    -  inherits@2.0.4:
    -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    -
    -  ini@1.3.8:
    -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    -
    -  ini@2.0.0:
    -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    -    engines: {node: '>=10'}
    -
    -  ini@3.0.1:
    -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  inline-style-parser@0.1.1:
    -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    -
    -  inline-style-parser@0.2.2:
    -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    -
    -  inline-style-prefixer@7.0.0:
    -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    -
    -  inquirer@8.2.6:
    -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    -    engines: {node: '>=12.0.0'}
    -
    -  internal-slot@1.0.7:
    -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    -    engines: {node: '>= 0.4'}
    -
    -  interpret@1.4.0:
    -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    -    engines: {node: '>= 0.10'}
    -
    -  interpret@3.1.1:
    -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    -    engines: {node: '>=10.13.0'}
    -
    -  invariant@2.2.4:
    -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    -
    -  ip-address@9.0.5:
    -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    -    engines: {node: '>= 12'}
    -
    -  ipaddr.js@1.9.1:
    -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    -    engines: {node: '>= 0.10'}
    -
    -  ipaddr.js@2.1.0:
    -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    -    engines: {node: '>= 10'}
    -
    -  is-alphabetical@2.0.1:
    -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    -
    -  is-alphanumerical@2.0.1:
    -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    -
    -  is-arguments@1.1.1:
    -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-array-buffer@3.0.4:
    -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-arrayish@0.2.1:
    -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    -
    -  is-arrayish@0.3.2:
    -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    -
    -  is-async-function@2.0.0:
    -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-bigint@1.0.4:
    -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    -
    -  is-binary-path@2.1.0:
    -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    -    engines: {node: '>=8'}
    -
    -  is-boolean-object@1.1.2:
    -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-builtin-module@3.2.1:
    -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    -    engines: {node: '>=6'}
    -
    -  is-callable@1.2.7:
    -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-ci@3.0.1:
    -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    -    hasBin: true
    -
    -  is-core-module@2.13.1:
    -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    -
    -  is-data-view@1.0.1:
    -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-date-object@1.0.5:
    -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-decimal@2.0.1:
    -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    -
    -  is-docker@2.2.1:
    -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -
    -  is-docker@3.0.0:
    -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    hasBin: true
    -
    -  is-extendable@0.1.1:
    -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-extglob@2.1.1:
    -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-finalizationregistry@1.0.2:
    -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    -
    -  is-fullwidth-code-point@3.0.0:
    -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    -    engines: {node: '>=8'}
    -
    -  is-generator-fn@2.1.0:
    -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    -    engines: {node: '>=6'}
    -
    -  is-generator-function@1.0.10:
    -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-glob@4.0.3:
    -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-hexadecimal@2.0.1:
    -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    -
    -  is-inside-container@1.0.0:
    -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    -    engines: {node: '>=14.16'}
    -    hasBin: true
    -
    -  is-installed-globally@0.4.0:
    -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    -    engines: {node: '>=10'}
    -
    -  is-interactive@1.0.0:
    -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    -    engines: {node: '>=8'}
    -
    -  is-lambda@1.0.1:
    -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    -
    -  is-map@2.0.3:
    -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-negative-zero@2.0.3:
    -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-network-error@1.1.0:
    -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    -    engines: {node: '>=16'}
    -
    -  is-npm@6.0.0:
    -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  is-number-object@1.0.7:
    -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-number@7.0.0:
    -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    -    engines: {node: '>=0.12.0'}
    -
    -  is-obj@1.0.1:
    -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-obj@2.0.0:
    -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    -    engines: {node: '>=8'}
    -
    -  is-path-cwd@2.2.0:
    -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    -    engines: {node: '>=6'}
    -
    -  is-path-inside@3.0.3:
    -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    -    engines: {node: '>=8'}
    -
    -  is-plain-obj@1.1.0:
    -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-plain-obj@2.1.0:
    -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    -    engines: {node: '>=8'}
    -
    -  is-plain-obj@3.0.0:
    -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    -    engines: {node: '>=10'}
    -
    -  is-plain-obj@4.1.0:
    -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    -    engines: {node: '>=12'}
    -
    -  is-plain-object@2.0.4:
    -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-plain-object@5.0.0:
    -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-potential-custom-element-name@1.0.1:
    -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    -
    -  is-reference@3.0.2:
    -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    -
    -  is-regex@1.1.4:
    -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-regexp@1.0.0:
    -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-root@2.1.0:
    -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    -    engines: {node: '>=6'}
    -
    -  is-scoped@2.1.0:
    -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    -    engines: {node: '>=8'}
    -
    -  is-set@2.0.3:
    -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-shared-array-buffer@1.0.3:
    -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-stream@2.0.1:
    -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    -    engines: {node: '>=8'}
    -
    -  is-string@1.0.7:
    -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-subdir@1.2.0:
    -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    -    engines: {node: '>=4'}
    -
    -  is-symbol@1.0.4:
    -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-typed-array@1.1.13:
    -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-typedarray@1.0.0:
    -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    -
    -  is-unicode-supported@0.1.0:
    -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    -    engines: {node: '>=10'}
    -
    -  is-utf8@0.2.1:
    -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    -
    -  is-weakmap@2.0.2:
    -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-weakref@1.0.2:
    -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    -
    -  is-weakset@2.0.3:
    -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-windows@1.0.2:
    -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-wsl@2.2.0:
    -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    -    engines: {node: '>=8'}
    -
    -  is-wsl@3.1.0:
    -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    -    engines: {node: '>=16'}
    -
    -  is-yarn-global@0.4.1:
    -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    -    engines: {node: '>=12'}
    -
    -  isarray@0.0.1:
    -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    -
    -  isarray@1.0.0:
    -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    -
    -  isarray@2.0.5:
    -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    -
    -  isbinaryfile@4.0.10:
    -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  isbinaryfile@5.0.2:
    -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    -    engines: {node: '>= 18.0.0'}
    -
    -  isexe@2.0.0:
    -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    -
    -  isobject@3.0.1:
    -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  istanbul-lib-coverage@3.2.2:
    -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    -    engines: {node: '>=8'}
    -
    -  istanbul-lib-instrument@5.2.1:
    -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    -    engines: {node: '>=8'}
    -
    -  istanbul-lib-instrument@6.0.2:
    -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-lib-report@3.0.1:
    -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-lib-source-maps@4.0.1:
    -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-reports@3.1.7:
    -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    -    engines: {node: '>=8'}
    -
    -  iterator.prototype@1.1.2:
    -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    -
    -  itertools@2.2.5:
    -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    -
    -  jackspeak@2.3.6:
    -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    -    engines: {node: '>=14'}
    -
    -  jake@10.8.7:
    -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  jclass@1.2.1:
    -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    -    engines: {node: '>= 0.6'}
    -
    -  jest-changed-files@29.7.0:
    -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-circus@29.7.0:
    -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-cli@29.7.0:
    -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  jest-config@29.7.0:
    -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@types/node': '*'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      ts-node:
    -        optional: true
    -
    -  jest-diff@29.7.0:
    -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-docblock@29.7.0:
    -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-each@29.7.0:
    -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-environment-jsdom@29.7.0:
    -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    -
    -  jest-environment-node@29.7.0:
    -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-get-type@29.6.3:
    -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-haste-map@29.7.0:
    -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-leak-detector@29.7.0:
    -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-matcher-utils@29.7.0:
    -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-message-util@29.7.0:
    -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-mock@29.7.0:
    -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-pnp-resolver@1.2.3:
    -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    -    engines: {node: '>=6'}
    -    peerDependencies:
    -      jest-resolve: '*'
    -    peerDependenciesMeta:
    -      jest-resolve:
    -        optional: true
    -
    -  jest-regex-util@29.6.3:
    -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-resolve-dependencies@29.7.0:
    -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-resolve@29.7.0:
    -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-runner@29.7.0:
    -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-runtime@29.7.0:
    -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-snapshot@29.7.0:
    -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-util@29.7.0:
    -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-validate@29.7.0:
    -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-watcher@29.7.0:
    -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-worker@27.5.1:
    -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  jest-worker@29.7.0:
    -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest@29.7.0:
    -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  jiti@1.21.0:
    -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    -    hasBin: true
    -
    -  joi@17.12.2:
    -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    -
    -  js-cookie@2.2.1:
    -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    -
    -  js-tokens@4.0.0:
    -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    -
    -  js-yaml@3.14.1:
    -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    -    hasBin: true
    -
    -  js-yaml@4.1.0:
    -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    -    hasBin: true
    -
    -  jsbn@1.1.0:
    -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    -
    -  jsdom@20.0.3:
    -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    -
    -  jsesc@0.5.0:
    -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    -    hasBin: true
    -
    -  jsesc@2.5.2:
    -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  jsesc@3.0.2:
    -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  json-buffer@3.0.1:
    -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    -
    -  json-parse-even-better-errors@2.3.1:
    -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    -
    -  json-parse-even-better-errors@3.0.1:
    -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  json-schema-traverse@0.4.1:
    -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    -
    -  json-schema-traverse@1.0.0:
    -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    -
    -  json-stable-stringify-without-jsonify@1.0.1:
    -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    -
    -  json-stringify-nice@1.1.4:
    -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    -
    -  json-stringify-safe@5.0.1:
    -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    -
    -  json5@1.0.2:
    -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    -    hasBin: true
    -
    -  json5@2.2.3:
    -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  jsonfile@6.1.0:
    -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    -
    -  jsonparse@1.3.1:
    -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    -    engines: {'0': node >= 0.2.0}
    -
    -  jsx-ast-utils@3.3.5:
    -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    -    engines: {node: '>=4.0'}
    -
    -  jszip@3.10.1:
    -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    -
    -  just-diff-apply@5.5.0:
    -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    -
    -  just-diff@5.2.0:
    -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    -
    -  just-extend@6.2.0:
    -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    -
    -  keyv@4.5.4:
    -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    -
    -  kind-of@6.0.3:
    -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  kleur@3.0.3:
    -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    -    engines: {node: '>=6'}
    -
    -  kuler@2.0.0:
    -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    -
    -  language-subtag-registry@0.3.22:
    -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    -
    -  language-tags@1.0.9:
    -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    -    engines: {node: '>=0.10'}
    -
    -  latest-version@7.0.0:
    -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    -    engines: {node: '>=14.16'}
    -
    -  launch-editor@2.6.1:
    -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    -
    -  leven@3.1.0:
    -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    -    engines: {node: '>=6'}
    -
    -  levn@0.4.1:
    -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  lie@3.3.0:
    -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    -
    -  lilconfig@2.1.0:
    -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    -    engines: {node: '>=10'}
    -
    -  lilconfig@3.1.1:
    -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    -    engines: {node: '>=14'}
    -
    -  lines-and-columns@1.2.4:
    -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    -
    -  load-json-file@6.2.0:
    -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    -    engines: {node: '>=8'}
    -
    -  load-json-file@7.0.1:
    -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  load-script@1.0.0:
    -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    -
    -  load-yaml-file@0.2.0:
    -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    -    engines: {node: '>=6'}
    -
    -  loader-runner@4.3.0:
    -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    -    engines: {node: '>=6.11.5'}
    -
    -  loader-utils@2.0.4:
    -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    -    engines: {node: '>=8.9.0'}
    -
    -  loader-utils@3.2.1:
    -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    -    engines: {node: '>= 12.13.0'}
    -
    -  locate-path@3.0.0:
    -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    -    engines: {node: '>=6'}
    -
    -  locate-path@5.0.0:
    -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    -    engines: {node: '>=8'}
    -
    -  locate-path@6.0.0:
    -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    -    engines: {node: '>=10'}
    -
    -  locate-path@7.2.0:
    -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  lodash.debounce@4.0.8:
    -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    -
    -  lodash.get@4.4.2:
    -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    -
    -  lodash.memoize@4.1.2:
    -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    -
    -  lodash.merge@4.6.2:
    -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    -
    -  lodash.uniq@4.5.0:
    -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    -
    -  lodash@4.17.21:
    -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    -
    -  log-symbols@4.1.0:
    -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    -    engines: {node: '>=10'}
    -
    -  logform@2.6.0:
    -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  longest-streak@3.1.0:
    -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    -
    -  loose-envify@1.4.0:
    -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    -    hasBin: true
    -
    -  loupe@3.1.0:
    -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    -
    -  lower-case@2.0.2:
    -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    -
    -  lowercase-keys@3.0.0:
    -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  lru-cache@10.2.0:
    -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    -    engines: {node: 14 || >=16.14}
    -
    -  lru-cache@5.1.1:
    -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    -
    -  lru-cache@6.0.0:
    -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    -    engines: {node: '>=10'}
    -
    -  lru-cache@7.10.1:
    -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    -    engines: {node: '>=12'}
    -
    -  lru-cache@7.18.3:
    -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    -    engines: {node: '>=12'}
    -
    -  lz-string@1.5.0:
    -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    -    hasBin: true
    -
    -  make-dir@4.0.0:
    -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    -    engines: {node: '>=10'}
    -
    -  make-error@1.3.6:
    -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    -
    -  make-fetch-happen@10.2.1:
    -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  make-fetch-happen@11.1.1:
    -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  make-fetch-happen@9.1.0:
    -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    -    engines: {node: '>= 10'}
    -
    -  makeerror@1.0.12:
    -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    -
    -  map-age-cleaner@0.1.3:
    -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    -    engines: {node: '>=6'}
    -
    -  map-obj@1.0.1:
    -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  map-obj@4.3.0:
    -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    -    engines: {node: '>=8'}
    -
    -  markdown-extensions@2.0.0:
    -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    -    engines: {node: '>=16'}
    -
    -  markdown-table@3.0.3:
    -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    -
    -  mdast-util-directive@3.0.0:
    -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    -
    -  mdast-util-find-and-replace@3.0.1:
    -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    -
    -  mdast-util-from-markdown@2.0.0:
    -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    -
    -  mdast-util-frontmatter@2.0.1:
    -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    -
    -  mdast-util-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    -
    -  mdast-util-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    -
    -  mdast-util-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    -
    -  mdast-util-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    -
    -  mdast-util-gfm-task-list-item@2.0.0:
    -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    -
    -  mdast-util-gfm@3.0.0:
    -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    -
    -  mdast-util-mdx-expression@2.0.0:
    -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    -
    -  mdast-util-mdx-jsx@3.1.2:
    -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    -
    -  mdast-util-mdx@3.0.0:
    -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    -
    -  mdast-util-mdxjs-esm@2.0.1:
    -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    -
    -  mdast-util-phrasing@4.1.0:
    -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    -
    -  mdast-util-to-hast@13.1.0:
    -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    -
    -  mdast-util-to-markdown@2.1.0:
    -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    -
    -  mdast-util-to-string@4.0.0:
    -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    -
    -  mdn-data@2.0.14:
    -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    -
    -  mdn-data@2.0.28:
    -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    -
    -  mdn-data@2.0.30:
    -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    -
    -  media-typer@0.3.0:
    -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mem-fs-editor@9.7.0:
    -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      mem-fs: ^2.1.0
    -    peerDependenciesMeta:
    -      mem-fs:
    -        optional: true
    -
    -  mem-fs@2.3.0:
    -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    -    engines: {node: '>=12'}
    -
    -  mem@8.1.1:
    -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    -    engines: {node: '>=10'}
    -
    -  memfs@3.5.3:
    -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  memfs@4.8.0:
    -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  memoize-one@5.2.1:
    -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    -
    -  meow@10.1.5:
    -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  merge-descriptors@1.0.1:
    -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    -
    -  merge-stream@2.0.0:
    -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    -
    -  merge2@1.4.1:
    -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    -    engines: {node: '>= 8'}
    -
    -  methods@1.1.2:
    -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    -    engines: {node: '>= 0.6'}
    -
    -  micromark-core-commonmark@2.0.0:
    -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    -
    -  micromark-extension-directive@3.0.0:
    -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    -
    -  micromark-extension-frontmatter@2.0.0:
    -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    -
    -  micromark-extension-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    -
    -  micromark-extension-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    -
    -  micromark-extension-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    -
    -  micromark-extension-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    -
    -  micromark-extension-gfm-tagfilter@2.0.0:
    -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    -
    -  micromark-extension-gfm-task-list-item@2.0.1:
    -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    -
    -  micromark-extension-gfm@3.0.0:
    -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    -
    -  micromark-extension-mdx-expression@3.0.0:
    -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    -
    -  micromark-extension-mdx-jsx@3.0.0:
    -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    -
    -  micromark-extension-mdx-md@2.0.0:
    -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    -
    -  micromark-extension-mdxjs-esm@3.0.0:
    -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    -
    -  micromark-extension-mdxjs@3.0.0:
    -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    -
    -  micromark-factory-destination@2.0.0:
    -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    -
    -  micromark-factory-label@2.0.0:
    -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    -
    -  micromark-factory-mdx-expression@2.0.1:
    -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    -
    -  micromark-factory-space@1.1.0:
    -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    -
    -  micromark-factory-space@2.0.0:
    -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    -
    -  micromark-factory-title@2.0.0:
    -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    -
    -  micromark-factory-whitespace@2.0.0:
    -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    -
    -  micromark-util-character@1.2.0:
    -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    -
    -  micromark-util-character@2.1.0:
    -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    -
    -  micromark-util-chunked@2.0.0:
    -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    -
    -  micromark-util-classify-character@2.0.0:
    -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    -
    -  micromark-util-combine-extensions@2.0.0:
    -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    -
    -  micromark-util-decode-numeric-character-reference@2.0.1:
    -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    -
    -  micromark-util-decode-string@2.0.0:
    -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    -
    -  micromark-util-encode@2.0.0:
    -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    -
    -  micromark-util-events-to-acorn@2.0.2:
    -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    -
    -  micromark-util-html-tag-name@2.0.0:
    -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    -
    -  micromark-util-normalize-identifier@2.0.0:
    -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    -
    -  micromark-util-resolve-all@2.0.0:
    -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    -
    -  micromark-util-sanitize-uri@2.0.0:
    -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    -
    -  micromark-util-subtokenize@2.0.0:
    -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    -
    -  micromark-util-symbol@1.1.0:
    -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    -
    -  micromark-util-symbol@2.0.0:
    -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    -
    -  micromark-util-types@1.1.0:
    -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    -
    -  micromark-util-types@2.0.0:
    -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    -
    -  micromark@4.0.0:
    -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    -
    -  micromatch@4.0.5:
    -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    -    engines: {node: '>=8.6'}
    -
    -  mime-db@1.33.0:
    -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-db@1.52.0:
    -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-types@2.1.18:
    -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-types@2.1.35:
    -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime@1.6.0:
    -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  mimic-fn@2.1.0:
    -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    -    engines: {node: '>=6'}
    -
    -  mimic-fn@3.1.0:
    -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    -    engines: {node: '>=8'}
    -
    -  mimic-response@3.1.0:
    -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    -    engines: {node: '>=10'}
    -
    -  mimic-response@4.0.0:
    -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  min-indent@1.0.1:
    -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    -    engines: {node: '>=4'}
    -
    -  mini-css-extract-plugin@2.8.1:
    -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -
    -  minimalistic-assert@1.0.1:
    -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    -
    -  minimatch@3.1.2:
    -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    -
    -  minimatch@5.0.1:
    -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@5.1.6:
    -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@7.4.6:
    -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@9.0.3:
    -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  minimist-options@4.1.0:
    -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    -    engines: {node: '>= 6'}
    -
    -  minimist@1.2.8:
    -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    -
    -  minipass-collect@1.0.2:
    -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    -    engines: {node: '>= 8'}
    -
    -  minipass-fetch@1.4.1:
    -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    -    engines: {node: '>=8'}
    -
    -  minipass-fetch@2.1.2:
    -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  minipass-fetch@3.0.4:
    -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  minipass-flush@1.0.5:
    -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    -    engines: {node: '>= 8'}
    -
    -  minipass-json-stream@1.0.1:
    -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    -
    -  minipass-pipeline@1.2.4:
    -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    -    engines: {node: '>=8'}
    -
    -  minipass-sized@1.0.3:
    -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    -    engines: {node: '>=8'}
    -
    -  minipass@3.3.6:
    -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    -    engines: {node: '>=8'}
    -
    -  minipass@5.0.0:
    -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    -    engines: {node: '>=8'}
    -
    -  minipass@7.0.4:
    -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  minizlib@2.1.2:
    -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    -    engines: {node: '>= 8'}
    -
    -  mkdirp-infer-owner@2.0.0:
    -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    -    engines: {node: '>=10'}
    -
    -  mkdirp@0.5.6:
    -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    -    hasBin: true
    -
    -  mkdirp@1.0.4:
    -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  mocha@10.3.0:
    -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    -    engines: {node: '>= 14.0.0'}
    -    hasBin: true
    -
    -  moo@0.5.2:
    -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    -
    -  mrmime@2.0.0:
    -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    -    engines: {node: '>=10'}
    -
    -  ms@2.0.0:
    -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    -
    -  ms@2.1.2:
    -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    -
    -  ms@2.1.3:
    -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    -
    -  multicast-dns@7.2.5:
    -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    -    hasBin: true
    -
    -  multimatch@5.0.0:
    -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    -    engines: {node: '>=10'}
    -
    -  mute-stream@0.0.8:
    -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    -
    -  mz@2.7.0:
    -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    -
    -  nano-css@5.6.1:
    -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  nanoid@3.3.7:
    -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    -    hasBin: true
    -
    -  natural-compare@1.4.0:
    -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    -
    -  ndjson@2.0.0:
    -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  nearley@2.20.1:
    -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    -    hasBin: true
    -
    -  negotiator@0.6.3:
    -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    -    engines: {node: '>= 0.6'}
    -
    -  neo-async@2.6.2:
    -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    -
    -  neovim@5.1.0:
    -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  nerf-dart@1.0.0:
    -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    -
    -  next@14.1.4:
    -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    -    engines: {node: '>=18.17.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@opentelemetry/api': ^1.1.0
    -      react: ^18.2.0 || 18
    -      react-dom: ^18.2.0 || 18
    -      sass: ^1.3.0
    -    peerDependenciesMeta:
    -      '@opentelemetry/api':
    -        optional: true
    -      sass:
    -        optional: true
    -
    -  nise@5.1.9:
    -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    -
    -  no-case@3.0.4:
    -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    -
    -  node-emoji@2.1.3:
    -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    -    engines: {node: '>=18'}
    -
    -  node-fetch@2.7.0:
    -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    -    engines: {node: 4.x || >=6.0.0}
    -    peerDependencies:
    -      encoding: ^0.1.0
    -    peerDependenciesMeta:
    -      encoding:
    -        optional: true
    -
    -  node-forge@1.3.1:
    -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    -    engines: {node: '>= 6.13.0'}
    -
    -  node-gyp@8.4.1:
    -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    -    engines: {node: '>= 10.12.0'}
    -    hasBin: true
    -
    -  node-gyp@9.4.1:
    -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    -    engines: {node: ^12.13 || ^14.13 || >=16}
    -    hasBin: true
    -
    -  node-html-parser@6.1.12:
    -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    -
    -  node-int64@0.4.0:
    -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    -
    -  node-releases@2.0.14:
    -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    -
    -  nopt@5.0.0:
    -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  nopt@6.0.0:
    -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    hasBin: true
    -
    -  normalize-package-data@2.5.0:
    -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    -
    -  normalize-package-data@3.0.3:
    -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    -    engines: {node: '>=10'}
    -
    -  normalize-package-data@5.0.0:
    -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  normalize-path@3.0.0:
    -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  normalize-range@0.1.2:
    -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  normalize-registry-url@2.0.0:
    -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    -
    -  normalize-url@6.1.0:
    -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    -    engines: {node: '>=10'}
    -
    -  normalize-url@8.0.1:
    -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    -    engines: {node: '>=14.16'}
    -
    -  npm-bundled@1.1.2:
    -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    -
    -  npm-bundled@3.0.0:
    -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-install-checks@4.0.0:
    -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    -    engines: {node: '>=10'}
    -
    -  npm-install-checks@6.3.0:
    -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-normalize-package-bin@1.0.1:
    -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    -
    -  npm-normalize-package-bin@2.0.0:
    -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  npm-normalize-package-bin@3.0.1:
    -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-package-arg@10.1.0:
    -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-package-arg@11.0.1:
    -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    -
    -  npm-package-arg@8.1.5:
    -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    -    engines: {node: '>=10'}
    -
    -  npm-packlist@3.0.0:
    -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  npm-packlist@7.0.4:
    -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-pick-manifest@6.1.1:
    -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    -
    -  npm-pick-manifest@8.0.2:
    -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-registry-fetch@12.0.2:
    -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -
    -  npm-registry-fetch@14.0.5:
    -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-run-path@4.0.1:
    -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    -    engines: {node: '>=8'}
    -
    -  npmlog@5.0.1:
    -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    -
    -  npmlog@6.0.2:
    -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  nprogress@0.2.0:
    -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    -
    -  nth-check@2.1.1:
    -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    -
    -  nwsapi@2.2.7:
    -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    -
    -  object-assign@4.1.1:
    -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  object-hash@3.0.0:
    -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    -    engines: {node: '>= 6'}
    -
    -  object-inspect@1.13.1:
    -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    -
    -  object-is@1.1.6:
    -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  object-keys@1.1.1:
    -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.assign@4.1.5:
    -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.entries@1.1.8:
    -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.fromentries@2.0.8:
    -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.groupby@1.0.3:
    -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.hasown@1.1.4:
    -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.values@1.2.0:
    -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  obuf@1.1.2:
    -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    -
    -  on-finished@2.4.1:
    -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    -    engines: {node: '>= 0.8'}
    -
    -  on-headers@1.0.2:
    -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    -    engines: {node: '>= 0.8'}
    -
    -  once@1.4.0:
    -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    -
    -  one-time@1.0.0:
    -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    -
    -  onetime@5.1.2:
    -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    -    engines: {node: '>=6'}
    -
    -  open@10.1.0:
    -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    -    engines: {node: '>=18'}
    -
    -  open@8.4.2:
    -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    -    engines: {node: '>=12'}
    -
    -  opener@1.5.2:
    -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    -    hasBin: true
    -
    -  optionator@0.9.3:
    -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  ora@5.4.1:
    -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    -    engines: {node: '>=10'}
    -
    -  os-tmpdir@1.0.2:
    -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  p-cancelable@3.0.0:
    -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    -    engines: {node: '>=12.20'}
    -
    -  p-defer@1.0.0:
    -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    -    engines: {node: '>=4'}
    -
    -  p-filter@2.1.0:
    -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    -    engines: {node: '>=8'}
    -
    -  p-finally@1.0.0:
    -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    -    engines: {node: '>=4'}
    -
    -  p-limit@2.3.0:
    -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    -    engines: {node: '>=6'}
    -
    -  p-limit@3.1.0:
    -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    -    engines: {node: '>=10'}
    -
    -  p-limit@4.0.0:
    -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  p-locate@3.0.0:
    -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    -    engines: {node: '>=6'}
    -
    -  p-locate@4.1.0:
    -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    -    engines: {node: '>=8'}
    -
    -  p-locate@5.0.0:
    -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    -    engines: {node: '>=10'}
    -
    -  p-locate@6.0.0:
    -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  p-map@2.1.0:
    -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    -    engines: {node: '>=6'}
    -
    -  p-map@4.0.0:
    -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    -    engines: {node: '>=10'}
    -
    -  p-queue@6.6.2:
    -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    -    engines: {node: '>=8'}
    -
    -  p-retry@4.6.2:
    -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    -    engines: {node: '>=8'}
    -
    -  p-retry@6.2.0:
    -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    -    engines: {node: '>=16.17'}
    -
    -  p-timeout@3.2.0:
    -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    -    engines: {node: '>=8'}
    -
    -  p-transform@1.3.0:
    -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    -    engines: {node: '>=12.10.0'}
    -
    -  p-try@2.2.0:
    -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    -    engines: {node: '>=6'}
    -
    -  package-json@8.1.1:
    -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    -    engines: {node: '>=14.16'}
    -
    -  pacote@12.0.3:
    -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    -
    -  pacote@15.2.0:
    -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  pako@1.0.11:
    -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    -
    -  param-case@3.0.4:
    -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    -
    -  parent-module@1.0.1:
    -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    -    engines: {node: '>=6'}
    -
    -  parse-conflict-json@2.0.2:
    -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  parse-entities@4.0.1:
    -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    -
    -  parse-json@5.2.0:
    -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    -    engines: {node: '>=8'}
    -
    -  parse-ms@2.1.0:
    -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    -    engines: {node: '>=6'}
    -
    -  parse-numeric-range@1.3.0:
    -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    -
    -  parse-srcset@1.0.2:
    -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    -
    -  parse5-htmlparser2-tree-adapter@7.0.0:
    -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    -
    -  parse5@7.1.2:
    -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    -
    -  parseurl@1.3.3:
    -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  pascal-case@3.1.2:
    -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    -
    -  path-absolute@1.0.1:
    -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    -    engines: {node: '>=4'}
    -
    -  path-exists@3.0.0:
    -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    -    engines: {node: '>=4'}
    -
    -  path-exists@4.0.0:
    -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    -    engines: {node: '>=8'}
    -
    -  path-exists@5.0.0:
    -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  path-is-absolute@1.0.1:
    -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  path-is-inside@1.0.2:
    -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    -
    -  path-key@3.1.1:
    -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    -    engines: {node: '>=8'}
    -
    -  path-name@1.0.0:
    -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    -
    -  path-parse@1.0.7:
    -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    -
    -  path-scurry@1.10.1:
    -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  path-temp@2.1.0:
    -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    -    engines: {node: '>=8.15'}
    -
    -  path-to-regexp@0.1.7:
    -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    -
    -  path-to-regexp@1.8.0:
    -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    -
    -  path-to-regexp@2.2.1:
    -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    -
    -  path-to-regexp@6.2.1:
    -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    -
    -  path-type@4.0.0:
    -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    -    engines: {node: '>=8'}
    -
    -  pathval@2.0.0:
    -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    -    engines: {node: '>= 14.16'}
    -
    -  periscopic@3.1.0:
    -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    -
    -  picocolors@1.0.0:
    -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    -
    -  picomatch@2.3.1:
    -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    -    engines: {node: '>=8.6'}
    -
    -  pify@2.3.0:
    -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    -    engines: {node: '>=0.10.0'}
    -
    -  pify@4.0.1:
    -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    -    engines: {node: '>=6'}
    -
    -  pirates@4.0.6:
    -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    -    engines: {node: '>= 6'}
    -
    -  pkg-dir@4.2.0:
    -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    -    engines: {node: '>=8'}
    -
    -  pkg-dir@7.0.0:
    -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    -    engines: {node: '>=14.16'}
    -
    -  pkg-up@3.1.0:
    -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    -    engines: {node: '>=8'}
    -
    -  pluralize@8.0.0:
    -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    -    engines: {node: '>=4'}
    -
    -  portfinder@1.0.32:
    -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    -    engines: {node: '>= 0.12.0'}
    -
    -  possible-typed-array-names@1.0.0:
    -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  postcss-calc@8.2.4:
    -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    -    peerDependencies:
    -      postcss: ^8.2.2
    -
    -  postcss-colormin@5.3.1:
    -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-convert-values@5.1.3:
    -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-comments@5.1.2:
    -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-duplicates@5.1.0:
    -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-empty@5.1.1:
    -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-overridden@5.1.0:
    -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-unused@5.1.0:
    -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-import@15.1.0:
    -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      postcss: ^8.0.0
    -
    -  postcss-js@4.0.1:
    -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    -    engines: {node: ^12 || ^14 || >= 16}
    -    peerDependencies:
    -      postcss: ^8.4.21
    -
    -  postcss-load-config@4.0.2:
    -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    -    engines: {node: '>= 14'}
    -    peerDependencies:
    -      postcss: '>=8.0.9'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      postcss:
    -        optional: true
    -      ts-node:
    -        optional: true
    -
    -  postcss-loader@7.3.4:
    -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -
    -  postcss-loader@8.1.1:
    -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  postcss-merge-idents@5.1.1:
    -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-merge-longhand@5.1.7:
    -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-merge-rules@5.1.4:
    -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-font-values@5.1.0:
    -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-gradients@5.1.1:
    -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-params@5.1.4:
    -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-selectors@5.2.1:
    -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-modules-extract-imports@3.0.0:
    -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-local-by-default@4.0.4:
    -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-scope@3.1.1:
    -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-values@4.0.0:
    -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-nested@6.0.1:
    -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    -    engines: {node: '>=12.0'}
    -    peerDependencies:
    -      postcss: ^8.2.14
    -
    -  postcss-normalize-charset@5.1.0:
    -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-display-values@5.1.0:
    -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-positions@5.1.1:
    -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-repeat-style@5.1.1:
    -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-string@5.1.0:
    -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-timing-functions@5.1.0:
    -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-unicode@5.1.1:
    -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-url@5.1.0:
    -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-whitespace@5.1.1:
    -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-ordered-values@5.1.3:
    -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-idents@5.2.0:
    -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-initial@5.1.2:
    -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-transforms@5.1.0:
    -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-selector-parser@6.0.16:
    -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    -    engines: {node: '>=4'}
    -
    -  postcss-sort-media-queries@4.4.1:
    -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      postcss: ^8.4.16
    -
    -  postcss-svgo@5.1.0:
    -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-unique-selectors@5.1.1:
    -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-value-parser@4.2.0:
    -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    -
    -  postcss-zindex@5.1.0:
    -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss@8.4.31:
    -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    -    engines: {node: ^10 || ^12 || >=14}
    -
    -  postcss@8.4.38:
    -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    -    engines: {node: ^10 || ^12 || >=14}
    -
    -  preferred-pm@3.1.3:
    -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    -    engines: {node: '>=10'}
    -
    -  prelude-ls@1.2.1:
    -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  prettier-plugin-tailwindcss@0.5.12:
    -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    -    engines: {node: '>=14.21.3'}
    -    peerDependencies:
    -      '@ianvs/prettier-plugin-sort-imports': '*'
    -      '@prettier/plugin-pug': '*'
    -      '@shopify/prettier-plugin-liquid': '*'
    -      '@trivago/prettier-plugin-sort-imports': '*'
    -      prettier: ^3.0
    -      prettier-plugin-astro: '*'
    -      prettier-plugin-css-order: '*'
    -      prettier-plugin-import-sort: '*'
    -      prettier-plugin-jsdoc: '*'
    -      prettier-plugin-marko: '*'
    -      prettier-plugin-organize-attributes: '*'
    -      prettier-plugin-organize-imports: '*'
    -      prettier-plugin-sort-imports: '*'
    -      prettier-plugin-style-order: '*'
    -      prettier-plugin-svelte: '*'
    -      prettier-plugin-twig-melody: '*'
    -    peerDependenciesMeta:
    -      '@ianvs/prettier-plugin-sort-imports':
    -        optional: true
    -      '@prettier/plugin-pug':
    -        optional: true
    -      '@shopify/prettier-plugin-liquid':
    -        optional: true
    -      '@trivago/prettier-plugin-sort-imports':
    -        optional: true
    -      prettier-plugin-astro:
    -        optional: true
    -      prettier-plugin-css-order:
    -        optional: true
    -      prettier-plugin-import-sort:
    -        optional: true
    -      prettier-plugin-jsdoc:
    -        optional: true
    -      prettier-plugin-marko:
    -        optional: true
    -      prettier-plugin-organize-attributes:
    -        optional: true
    -      prettier-plugin-organize-imports:
    -        optional: true
    -      prettier-plugin-sort-imports:
    -        optional: true
    -      prettier-plugin-style-order:
    -        optional: true
    -      prettier-plugin-svelte:
    -        optional: true
    -      prettier-plugin-twig-melody:
    -        optional: true
    -
    -  prettier@3.2.5:
    -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    -
    -  pretty-bytes@5.6.0:
    -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    -    engines: {node: '>=6'}
    -
    -  pretty-error@4.0.0:
    -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    -
    -  pretty-format@27.5.1:
    -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    -
    -  pretty-format@29.7.0:
    -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  pretty-ms@7.0.1:
    -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    -    engines: {node: '>=10'}
    -
    -  pretty-time@1.1.0:
    -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    -    engines: {node: '>=4'}
    -
    -  print-diff@1.0.0:
    -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    -    engines: {node: '>=8.3'}
    -
    -  printable-characters@1.0.42:
    -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    -
    -  prism-react-renderer@2.3.1:
    -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    -    peerDependencies:
    -      react: '>=16.0.0 || 18'
    -
    -  prismjs@1.29.0:
    -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    -    engines: {node: '>=6'}
    -
    -  proc-log@1.0.0:
    -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    -
    -  proc-log@3.0.0:
    -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  process-nextick-args@2.0.1:
    -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    -
    -  process@0.11.10:
    -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    -    engines: {node: '>= 0.6.0'}
    -
    -  promise-all-reject-late@1.0.1:
    -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    -
    -  promise-call-limit@1.0.2:
    -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    -
    -  promise-inflight@1.0.1:
    -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    -    peerDependencies:
    -      bluebird: '*'
    -    peerDependenciesMeta:
    -      bluebird:
    -        optional: true
    -
    -  promise-retry@2.0.1:
    -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    -    engines: {node: '>=10'}
    -
    -  prompts@2.4.2:
    -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    -    engines: {node: '>= 6'}
    -
    -  prop-types@15.8.1:
    -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    -
    -  property-information@6.4.1:
    -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    -
    -  proto-list@1.2.4:
    -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    -
    -  proxy-addr@2.0.7:
    -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    -    engines: {node: '>= 0.10'}
    -
    -  psl@1.9.0:
    -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    -
    -  punycode@1.4.1:
    -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    -
    -  punycode@2.3.1:
    -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    -    engines: {node: '>=6'}
    -
    -  pupa@3.1.0:
    -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    -    engines: {node: '>=12.20'}
    -
    -  pure-rand@6.1.0:
    -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    -
    -  qs@6.11.0:
    -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    -    engines: {node: '>=0.6'}
    -
    -  qs@6.12.0:
    -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    -    engines: {node: '>=0.6'}
    -
    -  querystringify@2.2.0:
    -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    -
    -  queue-microtask@1.2.3:
    -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    -
    -  queue@6.0.2:
    -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    -
    -  quick-lru@4.0.1:
    -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    -    engines: {node: '>=8'}
    -
    -  quick-lru@5.1.1:
    -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    -    engines: {node: '>=10'}
    -
    -  railroad-diagrams@1.0.0:
    -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    -
    -  rambda@7.5.0:
    -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    -
    -  ramda@0.29.1:
    -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    -
    -  randexp@0.4.6:
    -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    -    engines: {node: '>=0.12'}
    -
    -  randombytes@2.1.0:
    -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    -
    -  range-parser@1.2.0:
    -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    -    engines: {node: '>= 0.6'}
    -
    -  range-parser@1.2.1:
    -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    -    engines: {node: '>= 0.6'}
    -
    -  raw-body@2.5.2:
    -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    -    engines: {node: '>= 0.8'}
    -
    -  rc@1.2.8:
    -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    -    hasBin: true
    -
    -  react-dev-utils@12.0.1:
    -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=2.7'
    -      webpack: '>=4'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  react-dom@18.2.0:
    -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    -    peerDependencies:
    -      react: ^18.2.0 || 18
    -
    -  react-error-overlay@6.0.11:
    -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    -
    -  react-fast-compare@3.2.2:
    -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    -
    -  react-helmet-async@1.3.0:
    -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-helmet-async@2.0.4:
    -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-is@16.13.1:
    -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    -
    -  react-is@17.0.2:
    -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    -
    -  react-is@18.2.0:
    -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    -
    -  react-json-view-lite@1.3.0:
    -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-loadable-ssr-addon-v5-slorber@1.0.1:
    -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      react-loadable: '*'
    -      webpack: '>=4.41.1 || 5.x'
    -
    -  react-player@2.15.1:
    -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    -    peerDependencies:
    -      react: '>=16.6.0 || 18'
    -
    -  react-router-config@5.1.1:
    -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -      react-router: '>=5'
    -
    -  react-router-dom@5.3.4:
    -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -
    -  react-router@5.3.4:
    -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -
    -  react-string-replace@1.1.1:
    -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    -    engines: {node: '>=0.12.0'}
    -
    -  react-universal-interface@0.6.2:
    -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    -    peerDependencies:
    -      react: '*'
    -      tslib: '*'
    -
    -  react-use@17.5.0:
    -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  react@18.2.0:
    -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  read-cache@1.0.0:
    -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    -
    -  read-cmd-shim@3.0.1:
    -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  read-ini-file@4.0.0:
    -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    -    engines: {node: '>=14.6'}
    -
    -  read-package-json-fast@2.0.3:
    -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    -    engines: {node: '>=10'}
    -
    -  read-package-json-fast@3.0.2:
    -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  read-package-json@6.0.4:
    -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  read-pkg-up@7.0.1:
    -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    -    engines: {node: '>=8'}
    -
    -  read-pkg-up@8.0.0:
    -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    -    engines: {node: '>=12'}
    -
    -  read-pkg@5.2.0:
    -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    -    engines: {node: '>=8'}
    -
    -  read-pkg@6.0.0:
    -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    -    engines: {node: '>=12'}
    -
    -  read-yaml-file@2.1.0:
    -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    -    engines: {node: '>=10.13'}
    -
    -  readable-stream@2.3.8:
    -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    -
    -  readable-stream@3.6.2:
    -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    -    engines: {node: '>= 6'}
    -
    -  readable-stream@4.5.2:
    -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  readdir-scoped-modules@1.1.0:
    -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  readdirp@3.6.0:
    -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    -    engines: {node: '>=8.10.0'}
    -
    -  reading-time@1.5.0:
    -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    -
    -  realpath-missing@1.1.0:
    -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    -    engines: {node: '>=10'}
    -
    -  rechoir@0.6.2:
    -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    -    engines: {node: '>= 0.10'}
    -
    -  rechoir@0.8.0:
    -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  recursive-readdir@2.2.3:
    -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    -    engines: {node: '>=6.0.0'}
    -
    -  redent@4.0.0:
    -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    -    engines: {node: '>=12'}
    -
    -  reflect.getprototypeof@1.0.6:
    -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    -    engines: {node: '>= 0.4'}
    -
    -  regenerate-unicode-properties@10.1.1:
    -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    -    engines: {node: '>=4'}
    -
    -  regenerate@1.4.2:
    -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    -
    -  regenerator-runtime@0.14.1:
    -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    -
    -  regenerator-transform@0.15.2:
    -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    -
    -  regexp-tree@0.1.27:
    -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    -    hasBin: true
    -
    -  regexp.prototype.flags@1.5.2:
    -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    -    engines: {node: '>= 0.4'}
    -
    -  regexpu-core@5.3.2:
    -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    -    engines: {node: '>=4'}
    -
    -  registry-auth-token@5.0.2:
    -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    -    engines: {node: '>=14'}
    -
    -  registry-url@6.0.1:
    -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    -    engines: {node: '>=12'}
    -
    -  regjsparser@0.10.0:
    -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    -    hasBin: true
    -
    -  regjsparser@0.9.1:
    -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    -    hasBin: true
    -
    -  rehype-raw@7.0.0:
    -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    -
    -  relateurl@0.2.7:
    -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    -    engines: {node: '>= 0.10'}
    -
    -  remark-directive@3.0.0:
    -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    -
    -  remark-emoji@4.0.1:
    -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  remark-frontmatter@5.0.0:
    -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    -
    -  remark-gfm@4.0.0:
    -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    -
    -  remark-mdx@3.0.1:
    -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    -
    -  remark-parse@11.0.0:
    -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    -
    -  remark-rehype@11.1.0:
    -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    -
    -  remark-stringify@11.0.0:
    -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    -
    -  remove-trailing-separator@1.1.0:
    -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    -
    -  renderkid@3.0.0:
    -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    -
    -  replace-ext@1.0.1:
    -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    -    engines: {node: '>= 0.10'}
    -
    -  require-directory@2.1.1:
    -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    -    engines: {node: '>=0.10.0'}
    -
    -  require-from-string@2.0.2:
    -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  require-like@0.1.2:
    -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    -
    -  requires-port@1.0.0:
    -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    -
    -  resize-observer-polyfill@1.5.1:
    -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    -
    -  resolve-alpn@1.2.1:
    -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    -
    -  resolve-cwd@3.0.0:
    -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    -    engines: {node: '>=8'}
    -
    -  resolve-from@4.0.0:
    -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    -    engines: {node: '>=4'}
    -
    -  resolve-from@5.0.0:
    -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    -    engines: {node: '>=8'}
    -
    -  resolve-pathname@3.0.0:
    -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    -
    -  resolve-pkg-maps@1.0.0:
    -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    -
    -  resolve.exports@2.0.2:
    -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    -    engines: {node: '>=10'}
    -
    -  resolve@1.22.8:
    -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    -    hasBin: true
    -
    -  resolve@2.0.0-next.5:
    -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    -    hasBin: true
    -
    -  responselike@3.0.0:
    -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    -    engines: {node: '>=14.16'}
    -
    -  restore-cursor@3.1.0:
    -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    -    engines: {node: '>=8'}
    -
    -  ret@0.1.15:
    -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    -    engines: {node: '>=0.12'}
    -
    -  retry@0.12.0:
    -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    -    engines: {node: '>= 4'}
    -
    -  retry@0.13.1:
    -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    -    engines: {node: '>= 4'}
    -
    -  reusify@1.0.4:
    -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    -
    -  rfc4648@1.5.3:
    -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    -
    -  right-pad@1.0.1:
    -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    -    engines: {node: '>= 0.10'}
    -
    -  rimraf@3.0.2:
    -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    -    hasBin: true
    -
    -  rimraf@5.0.5:
    -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    -
    -  rtl-css-js@1.16.1:
    -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    -
    -  rtl-detect@1.1.2:
    -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    -
    -  rtlcss@4.1.1:
    -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    -    engines: {node: '>=12.0.0'}
    -    hasBin: true
    -
    -  run-applescript@7.0.0:
    -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    -    engines: {node: '>=18'}
    -
    -  run-async@2.4.1:
    -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    -    engines: {node: '>=0.12.0'}
    -
    -  run-parallel@1.2.0:
    -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    -
    -  rxjs@7.8.1:
    -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    -
    -  safe-array-concat@1.1.2:
    -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    -    engines: {node: '>=0.4'}
    -
    -  safe-buffer@5.1.2:
    -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    -
    -  safe-buffer@5.2.1:
    -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    -
    -  safe-execa@0.1.2:
    -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    -    engines: {node: '>=12'}
    -
    -  safe-regex-test@1.0.3:
    -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    -    engines: {node: '>= 0.4'}
    -
    -  safe-stable-stringify@2.4.3:
    -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    -    engines: {node: '>=10'}
    -
    -  safer-buffer@2.1.2:
    -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    -
    -  sanitize-html@2.13.0:
    -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    -
    -  sax@1.3.0:
    -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    -
    -  saxes@6.0.0:
    -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    -    engines: {node: '>=v12.22.7'}
    -
    -  sbd@1.0.19:
    -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    -
    -  scheduler@0.23.0:
    -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    -
    -  schema-utils@2.7.0:
    -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    -    engines: {node: '>= 8.9.0'}
    -
    -  schema-utils@3.3.0:
    -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  schema-utils@4.2.0:
    -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    -    engines: {node: '>= 12.13.0'}
    -
    -  scoped-regex@2.1.0:
    -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    -    engines: {node: '>=8'}
    -
    -  screenfull@5.2.0:
    -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  search-insights@2.13.0:
    -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    -
    -  section-matter@1.0.0:
    -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    -    engines: {node: '>=4'}
    -
    -  secure-compare@3.0.1:
    -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    -
    -  select-hose@2.0.0:
    -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    -
    -  selfsigned@2.4.1:
    -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    -    engines: {node: '>=10'}
    -
    -  semver-diff@4.0.0:
    -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    -    engines: {node: '>=12'}
    -
    -  semver@5.7.2:
    -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    -    hasBin: true
    -
    -  semver@6.3.1:
    -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    -    hasBin: true
    -
    -  semver@7.5.4:
    -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  semver@7.6.0:
    -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  send@0.18.0:
    -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  serialize-javascript@6.0.0:
    -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    -
    -  serialize-javascript@6.0.2:
    -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    -
    -  serve-handler@6.1.5:
    -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    -
    -  serve-index@1.9.1:
    -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  serve-static@1.15.0:
    -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  set-blocking@2.0.0:
    -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    -
    -  set-function-length@1.2.2:
    -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    -    engines: {node: '>= 0.4'}
    -
    -  set-function-name@2.0.2:
    -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  set-harmonic-interval@1.0.1:
    -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    -    engines: {node: '>=6.9'}
    -
    -  setimmediate@1.0.5:
    -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    -
    -  setprototypeof@1.1.0:
    -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    -
    -  setprototypeof@1.2.0:
    -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    -
    -  shallow-clone@3.0.1:
    -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    -    engines: {node: '>=8'}
    -
    -  shallowequal@1.1.0:
    -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    -
    -  shebang-command@2.0.0:
    -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    -    engines: {node: '>=8'}
    -
    -  shebang-regex@3.0.0:
    -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    -    engines: {node: '>=8'}
    -
    -  shell-quote@1.8.1:
    -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    -
    -  shelljs@0.8.5:
    -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  side-channel@1.0.6:
    -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    -    engines: {node: '>= 0.4'}
    -
    -  signal-exit@3.0.7:
    -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    -
    -  signal-exit@4.1.0:
    -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    -    engines: {node: '>=14'}
    -
    -  sigstore@1.9.0:
    -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  simple-swizzle@0.2.2:
    -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    -
    -  sinon@17.0.1:
    -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    -
    -  sirv@2.0.4:
    -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    -    engines: {node: '>= 10'}
    -
    -  sisteransi@1.0.5:
    -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    -
    -  sitemap@7.1.1:
    -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    -    hasBin: true
    -
    -  skin-tone@2.0.0:
    -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    -    engines: {node: '>=8'}
    -
    -  slash@3.0.0:
    -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    -    engines: {node: '>=8'}
    -
    -  slash@4.0.0:
    -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    -    engines: {node: '>=12'}
    -
    -  smart-buffer@4.2.0:
    -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    -
    -  snake-case@3.0.4:
    -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    -
    -  sockjs@0.3.24:
    -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    -
    -  socks-proxy-agent@6.1.1:
    -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    -    engines: {node: '>= 10'}
    -
    -  socks-proxy-agent@6.2.1:
    -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    -    engines: {node: '>= 10'}
    -
    -  socks-proxy-agent@7.0.0:
    -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    -    engines: {node: '>= 10'}
    -
    -  socks@2.8.1:
    -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    -
    -  sort-css-media-queries@2.1.0:
    -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    -    engines: {node: '>= 6.3.0'}
    -
    -  sort-keys@4.2.0:
    -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    -    engines: {node: '>=8'}
    -
    -  sort-keys@5.0.0:
    -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    -    engines: {node: '>=12'}
    -
    -  source-map-js@1.2.0:
    -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map-support@0.5.13:
    -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    -
    -  source-map-support@0.5.21:
    -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    -
    -  source-map-url@0.4.1:
    -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    -    deprecated: See https://github.com/lydell/source-map-url#deprecated
    -
    -  source-map@0.5.6:
    -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map@0.6.1:
    -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map@0.7.4:
    -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    -    engines: {node: '>= 8'}
    -
    -  space-separated-tokens@2.0.2:
    -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    -
    -  spdx-correct@3.2.0:
    -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    -
    -  spdx-exceptions@2.5.0:
    -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    -
    -  spdx-expression-parse@3.0.1:
    -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    -
    -  spdx-license-ids@3.0.17:
    -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    -
    -  spdy-transport@3.0.0:
    -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    -
    -  spdy@4.0.2:
    -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    -    engines: {node: '>=6.0.0'}
    -
    -  split2@3.2.2:
    -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    -
    -  sprintf-js@1.0.3:
    -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    -
    -  sprintf-js@1.1.3:
    -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    -
    -  srcset@4.0.0:
    -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    -    engines: {node: '>=12'}
    -
    -  ssri@10.0.5:
    -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  ssri@8.0.1:
    -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    -    engines: {node: '>= 8'}
    -
    -  ssri@9.0.1:
    -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  stable@0.1.8:
    -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    -
    -  stack-generator@2.0.10:
    -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    -
    -  stack-trace@0.0.10:
    -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    -
    -  stack-utils@2.0.6:
    -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    -    engines: {node: '>=10'}
    -
    -  stackframe@1.3.4:
    -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    -
    -  stacktrace-gps@3.1.2:
    -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    -
    -  stacktrace-js@2.0.2:
    -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    -
    -  stacktracey@2.1.8:
    -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    -
    -  statuses@1.5.0:
    -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    -    engines: {node: '>= 0.6'}
    -
    -  statuses@2.0.1:
    -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  std-env@3.7.0:
    -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    -
    -  stop-iteration-iterator@1.0.0:
    -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  streamsearch@1.1.0:
    -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    -    engines: {node: '>=10.0.0'}
    -
    -  string-length@4.0.2:
    -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    -    engines: {node: '>=10'}
    -
    -  string-width@4.2.3:
    -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    -    engines: {node: '>=8'}
    -
    -  string-width@5.1.2:
    -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    -    engines: {node: '>=12'}
    -
    -  string.prototype.matchall@4.0.11:
    -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    -    engines: {node: '>= 0.4'}
    -
    -  string.prototype.trim@1.2.9:
    -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    -    engines: {node: '>= 0.4'}
    -
    -  string.prototype.trimend@1.0.8:
    -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    -
    -  string.prototype.trimstart@1.0.8:
    -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    -    engines: {node: '>= 0.4'}
    -
    -  string_decoder@1.1.1:
    -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    -
    -  string_decoder@1.3.0:
    -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    -
    -  stringify-entities@4.0.3:
    -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    -
    -  stringify-object@3.3.0:
    -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    -    engines: {node: '>=4'}
    -
    -  strip-ansi@6.0.1:
    -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    -    engines: {node: '>=8'}
    -
    -  strip-ansi@7.1.0:
    -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    -    engines: {node: '>=12'}
    -
    -  strip-bom-buf@1.0.0:
    -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    -    engines: {node: '>=4'}
    -
    -  strip-bom-stream@2.0.0:
    -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom-string@1.0.0:
    -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom@2.0.0:
    -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom@3.0.0:
    -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    -    engines: {node: '>=4'}
    -
    -  strip-bom@4.0.0:
    -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    -    engines: {node: '>=8'}
    -
    -  strip-comments-strings@1.2.0:
    -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    -
    -  strip-final-newline@2.0.0:
    -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    -    engines: {node: '>=6'}
    -
    -  strip-indent@3.0.0:
    -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    -    engines: {node: '>=8'}
    -
    -  strip-indent@4.0.0:
    -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    -    engines: {node: '>=12'}
    -
    -  strip-json-comments@2.0.1:
    -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-json-comments@3.1.1:
    -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    -    engines: {node: '>=8'}
    -
    -  strnum@1.0.5:
    -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    -
    -  style-loader@3.3.4:
    -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -
    -  style-to-object@0.4.4:
    -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    -
    -  style-to-object@1.0.5:
    -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    -
    -  styled-jsx@5.1.1:
    -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    -    engines: {node: '>= 12.0.0'}
    -    peerDependencies:
    -      '@babel/core': '*'
    -      babel-plugin-macros: '*'
    -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      babel-plugin-macros:
    -        optional: true
    -
    -  stylehacks@5.1.1:
    -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  stylis@4.3.1:
    -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    -
    -  sucrase@3.35.0:
    -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    -
    -  supports-color@5.5.0:
    -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    -    engines: {node: '>=4'}
    -
    -  supports-color@7.2.0:
    -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    -    engines: {node: '>=8'}
    -
    -  supports-color@8.1.1:
    -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    -    engines: {node: '>=10'}
    -
    -  supports-preserve-symlinks-flag@1.0.0:
    -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    -    engines: {node: '>= 0.4'}
    -
    -  svg-parser@2.0.4:
    -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    -
    -  svgo@2.8.0:
    -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -
    -  svgo@3.2.0:
    -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    -
    -  symbol-tree@3.2.4:
    -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    -
    -  syncpack@12.3.0:
    -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    -    engines: {node: '>=16'}
    -    hasBin: true
    -
    -  tailwindcss@3.4.1:
    -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    -
    -  tapable@1.1.3:
    -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    -    engines: {node: '>=6'}
    -
    -  tapable@2.2.1:
    -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    -    engines: {node: '>=6'}
    -
    -  tar@6.2.1:
    -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    -    engines: {node: '>=10'}
    -
    -  terser-webpack-plugin@5.3.10:
    -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      '@swc/core': '*'
    -      esbuild: '*'
    -      uglify-js: '*'
    -      webpack: ^5.1.0
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      esbuild:
    -        optional: true
    -      uglify-js:
    -        optional: true
    -
    -  terser@5.29.2:
    -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  test-exclude@6.0.0:
    -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    -    engines: {node: '>=8'}
    -
    -  text-hex@1.0.0:
    -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    -
    -  text-table@0.2.0:
    -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    -
    -  textextensions@5.16.0:
    -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    -    engines: {node: '>=0.8'}
    -
    -  thenify-all@1.6.0:
    -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    -    engines: {node: '>=0.8'}
    -
    -  thenify@3.3.1:
    -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    -
    -  throttle-debounce@3.0.1:
    -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    -    engines: {node: '>=10'}
    -
    -  through2@4.0.2:
    -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    -
    -  through@2.3.8:
    -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    -
    -  thunky@1.1.0:
    -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    -
    -  tightrope@0.1.0:
    -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    -    engines: {node: '>=14'}
    -
    -  tiny-invariant@1.3.3:
    -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    -
    -  tiny-warning@1.0.3:
    -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    -
    -  tinycolor2@1.6.0:
    -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    -
    -  tmp@0.0.33:
    -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    -    engines: {node: '>=0.6.0'}
    -
    -  tmpl@1.0.5:
    -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    -
    -  to-fast-properties@2.0.0:
    -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    -    engines: {node: '>=4'}
    -
    -  to-regex-range@5.0.1:
    -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    -    engines: {node: '>=8.0'}
    -
    -  toggle-selection@1.0.6:
    -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    -
    -  toidentifier@1.0.1:
    -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    -    engines: {node: '>=0.6'}
    -
    -  totalist@3.0.1:
    -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    -    engines: {node: '>=6'}
    -
    -  tough-cookie@4.1.3:
    -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    -    engines: {node: '>=6'}
    -
    -  tr46@0.0.3:
    -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    -
    -  tr46@3.0.0:
    -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    -    engines: {node: '>=12'}
    -
    -  treeverse@1.0.4:
    -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    -
    -  trie-search@2.0.0:
    -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    -
    -  trim-lines@3.0.1:
    -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    -
    -  trim-newlines@4.1.1:
    -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    -    engines: {node: '>=12'}
    -
    -  triple-beam@1.4.1:
    -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    -    engines: {node: '>= 14.0.0'}
    -
    -  trough@2.2.0:
    -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    -
    -  ts-api-utils@1.3.0:
    -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      typescript: '>=4.2.0'
    -
    -  ts-easing@0.2.0:
    -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    -
    -  ts-interface-checker@0.1.13:
    -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    -
    -  ts-jest@29.1.2:
    -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      '@babel/core': '>=7.0.0-beta.0 <8'
    -      '@jest/types': ^29.0.0
    -      babel-jest: ^29.0.0
    -      esbuild: '*'
    -      jest: ^29.0.0
    -      typescript: '>=4.3 <6'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      '@jest/types':
    -        optional: true
    -      babel-jest:
    -        optional: true
    -      esbuild:
    -        optional: true
    -
    -  ts-loader@9.5.1:
    -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      typescript: '*'
    -      webpack: ^5.0.0
    -
    -  ts-node@10.9.2:
    -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    -    hasBin: true
    -    peerDependencies:
    -      '@swc/core': '>=1.2.50'
    -      '@swc/wasm': '>=1.2.50'
    -      '@types/node': '*'
    -      typescript: '>=2.7'
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      '@swc/wasm':
    -        optional: true
    -
    -  ts-toolbelt@9.6.0:
    -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    -
    -  tsconfig-paths@3.15.0:
    -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    -
    -  tslib@2.6.2:
    -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    -
    -  tuf-js@1.1.7:
    -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  type-check@0.4.0:
    -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  type-detect@4.0.8:
    -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    -    engines: {node: '>=4'}
    -
    -  type-fest@0.20.2:
    -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@0.21.3:
    -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@0.6.0:
    -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    -    engines: {node: '>=8'}
    -
    -  type-fest@0.8.1:
    -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    -    engines: {node: '>=8'}
    -
    -  type-fest@1.4.0:
    -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@2.19.0:
    -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    -    engines: {node: '>=12.20'}
    -
    -  type-fest@4.14.0:
    -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    -    engines: {node: '>=16'}
    -
    -  type-is@1.6.18:
    -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    -    engines: {node: '>= 0.6'}
    -
    -  typed-array-buffer@1.0.2:
    -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-byte-length@1.0.1:
    -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-byte-offset@1.0.2:
    -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-length@1.0.6:
    -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    -    engines: {node: '>= 0.4'}
    -
    -  typedarray-to-buffer@3.1.5:
    -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    -
    -  typescript@5.4.3:
    -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    -    engines: {node: '>=14.17'}
    -    hasBin: true
    -
    -  unbox-primitive@1.0.2:
    -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    -
    -  unicode-canonical-property-names-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    -    engines: {node: '>=4'}
    -
    -  unicode-emoji-modifier-base@1.0.0:
    -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    -    engines: {node: '>=4'}
    -
    -  unicode-match-property-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    -    engines: {node: '>=4'}
    -
    -  unicode-match-property-value-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    -    engines: {node: '>=4'}
    -
    -  unicode-property-aliases-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    -    engines: {node: '>=4'}
    -
    -  unified@11.0.4:
    -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    -
    -  union@0.5.0:
    -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  unique-filename@1.1.1:
    -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    -
    -  unique-filename@2.0.1:
    -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  unique-filename@3.0.0:
    -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  unique-slug@2.0.2:
    -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    -
    -  unique-slug@3.0.0:
    -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  unique-slug@4.0.0:
    -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  unique-string@2.0.0:
    -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    -    engines: {node: '>=8'}
    -
    -  unique-string@3.0.0:
    -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    -    engines: {node: '>=12'}
    -
    -  unist-util-is@6.0.0:
    -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    -
    -  unist-util-position-from-estree@2.0.0:
    -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    -
    -  unist-util-position@5.0.0:
    -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    -
    -  unist-util-remove-position@5.0.0:
    -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    -
    -  unist-util-stringify-position@4.0.0:
    -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    -
    -  unist-util-visit-parents@6.0.1:
    -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    -
    -  unist-util-visit@5.0.0:
    -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    -
    -  universal-user-agent@6.0.1:
    -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    -
    -  universalify@0.2.0:
    -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  universalify@2.0.1:
    -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    -    engines: {node: '>= 10.0.0'}
    -
    -  unpipe@1.0.0:
    -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  untildify@4.0.0:
    -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    -    engines: {node: '>=8'}
    -
    -  update-browserslist-db@1.0.13:
    -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    -    hasBin: true
    -    peerDependencies:
    -      browserslist: '>= 4.21.0'
    -
    -  update-notifier@6.0.2:
    -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    -    engines: {node: '>=14.16'}
    -
    -  uri-js@4.4.1:
    -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    -
    -  url-join@4.0.1:
    -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    -
    -  url-loader@4.1.1:
    -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      file-loader: '*'
    -      webpack: ^4.0.0 || ^5.0.0
    -    peerDependenciesMeta:
    -      file-loader:
    -        optional: true
    -
    -  url-parse@1.5.10:
    -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    -
    -  util-deprecate@1.0.2:
    -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    -
    -  utila@0.4.0:
    -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    -
    -  utility-types@3.11.0:
    -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    -    engines: {node: '>= 4'}
    -
    -  utils-merge@1.0.1:
    -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  uuid@8.3.2:
    -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    -    hasBin: true
    -
    -  uuid@9.0.1:
    -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    -    hasBin: true
    -
    -  v8-compile-cache-lib@3.0.1:
    -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    -
    -  v8-to-istanbul@9.2.0:
    -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    -    engines: {node: '>=10.12.0'}
    -
    -  validate-npm-package-license@3.0.4:
    -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    -
    -  validate-npm-package-name@3.0.0:
    -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    -
    -  validate-npm-package-name@5.0.0:
    -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  value-equal@1.0.1:
    -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    -
    -  vary@1.1.2:
    -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    -    engines: {node: '>= 0.8'}
    -
    -  vfile-location@5.0.2:
    -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    -
    -  vfile-message@4.0.2:
    -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    -
    -  vfile@6.0.1:
    -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    -
    -  vinyl-file@3.0.0:
    -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    -    engines: {node: '>=4'}
    -
    -  vinyl@2.2.1:
    -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    -    engines: {node: '>= 0.10'}
    -
    -  vscode-uri@3.0.8:
    -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    -
    -  w3c-xmlserializer@4.0.0:
    -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    -    engines: {node: '>=14'}
    -
    -  walk-up-path@1.0.0:
    -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    -
    -  walker@1.0.8:
    -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    -
    -  watchpack@2.4.1:
    -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    -    engines: {node: '>=10.13.0'}
    -
    -  wbuf@1.7.3:
    -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    -
    -  wcwidth@1.0.1:
    -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    -
    -  web-namespaces@2.0.1:
    -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    -
    -  webidl-conversions@3.0.1:
    -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    -
    -  webidl-conversions@7.0.0:
    -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    -    engines: {node: '>=12'}
    -
    -  webpack-bundle-analyzer@4.10.1:
    -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    -    engines: {node: '>= 10.13.0'}
    -    hasBin: true
    -
    -  webpack-cli@5.1.4:
    -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    -    engines: {node: '>=14.15.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@webpack-cli/generators': '*'
    -      webpack: 5.x.x
    -      webpack-bundle-analyzer: '*'
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      '@webpack-cli/generators':
    -        optional: true
    -      webpack-bundle-analyzer:
    -        optional: true
    -      webpack-dev-server:
    -        optional: true
    -
    -  webpack-dev-middleware@5.3.4:
    -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    -
    -  webpack-dev-middleware@7.1.1:
    -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -
    -  webpack-dev-server@4.15.2:
    -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    -    engines: {node: '>= 12.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^4.37.0 || ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    -
    -  webpack-dev-server@5.0.4:
    -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    -    engines: {node: '>= 18.12.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    -
    -  webpack-merge@5.10.0:
    -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    -    engines: {node: '>=10.0.0'}
    -
    -  webpack-sources@3.2.3:
    -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    -    engines: {node: '>=10.13.0'}
    -
    -  webpack@5.91.0:
    -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack-cli:
    -        optional: true
    -
    -  webpackbar@5.0.2:
    -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      webpack: 3 || 4 || 5
    -
    -  websocket-driver@0.7.4:
    -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  websocket-extensions@0.1.4:
    -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  whatwg-encoding@2.0.0:
    -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-mimetype@3.0.0:
    -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-url@11.0.0:
    -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-url@5.0.0:
    -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    -
    -  which-boxed-primitive@1.0.2:
    -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    -
    -  which-builtin-type@1.1.3:
    -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    -    engines: {node: '>= 0.4'}
    -
    -  which-collection@1.0.2:
    -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    -    engines: {node: '>= 0.4'}
    -
    -  which-pm@2.0.0:
    -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    -    engines: {node: '>=8.15'}
    -
    -  which-typed-array@1.1.15:
    -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    -    engines: {node: '>= 0.4'}
    -
    -  which@1.3.1:
    -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    -    hasBin: true
    -
    -  which@2.0.2:
    -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    -
    -  which@3.0.1:
    -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  wide-align@1.1.5:
    -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    -
    -  widest-line@3.1.0:
    -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    -    engines: {node: '>=8'}
    -
    -  widest-line@4.0.1:
    -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    -    engines: {node: '>=12'}
    -
    -  wildcard@2.0.1:
    -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    -
    -  winston-transport@4.7.0:
    -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  winston@3.11.0:
    -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  workerpool@6.2.1:
    -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    -
    -  wrap-ansi@6.2.0:
    -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    -    engines: {node: '>=8'}
    -
    -  wrap-ansi@7.0.0:
    -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    -    engines: {node: '>=10'}
    -
    -  wrap-ansi@8.1.0:
    -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    -    engines: {node: '>=12'}
    -
    -  wrappy@1.0.2:
    -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    -
    -  write-file-atomic@3.0.3:
    -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    -
    -  write-file-atomic@4.0.2:
    -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  write-file-atomic@5.0.1:
    -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  write-json-file@5.0.0:
    -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  write-yaml-file@5.0.0:
    -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    -    engines: {node: '>=16.14'}
    -
    -  ws@7.5.9:
    -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    -    engines: {node: '>=8.3.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: ^5.0.2
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -
    -  ws@8.16.0:
    -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: '>=5.0.2'
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -
    -  xdg-basedir@5.1.0:
    -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    -    engines: {node: '>=12'}
    -
    -  xml-js@1.6.11:
    -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    -    hasBin: true
    -
    -  xml-name-validator@4.0.0:
    -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    -    engines: {node: '>=12'}
    -
    -  xmlchars@2.2.0:
    -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    -
    -  y18n@5.0.8:
    -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    -    engines: {node: '>=10'}
    -
    -  yallist@3.1.1:
    -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    -
    -  yallist@4.0.0:
    -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    -
    -  yaml@1.10.2:
    -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    -    engines: {node: '>= 6'}
    -
    -  yaml@2.4.1:
    -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    -    engines: {node: '>= 14'}
    -    hasBin: true
    -
    -  yargs-parser@20.2.4:
    -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    -    engines: {node: '>=10'}
    -
    -  yargs-parser@20.2.9:
    -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    -    engines: {node: '>=10'}
    -
    -  yargs-parser@21.1.1:
    -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    -    engines: {node: '>=12'}
    -
    -  yargs-unparser@2.0.0:
    -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    -    engines: {node: '>=10'}
    -
    -  yargs@16.2.0:
    -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    -    engines: {node: '>=10'}
    -
    -  yargs@17.7.2:
    -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    -    engines: {node: '>=12'}
    -
    -  yeoman-environment@3.19.3:
    -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    -    engines: {node: '>=12.10.0'}
    -    hasBin: true
    -
    -  yeoman-generator@5.10.0:
    -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      yeoman-environment: ^3.2.0
    -    peerDependenciesMeta:
    -      yeoman-environment:
    -        optional: true
    -
    -  yn@3.1.1:
    -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    -    engines: {node: '>=6'}
    -
    -  yocto-queue@0.1.0:
    -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    -    engines: {node: '>=10'}
    -
    -  yocto-queue@1.0.0:
    -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    -    engines: {node: '>=12.20'}
    -
    -  zod@3.22.4:
    -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    -
    -  zwitch@2.0.4:
    -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    -
    -snapshots:
    -
    -  '@aashutoshrathi/word-wrap@1.2.6': {}
    -
    -  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -9680,105 +782,161 @@ snapshots:
           - '@algolia/client-search'
           - algoliasearch
           - search-insights
    +    dev: false
     
    -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
    +  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    +    peerDependencies:
    +      search-insights: '>= 1 < 3'
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
           - algoliasearch
    +    dev: false
     
    -  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
    +  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
    +  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
         dependencies:
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  '@algolia/cache-browser-local-storage@4.22.1':
    +  /@algolia/cache-browser-local-storage@4.22.1:
    +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
         dependencies:
           '@algolia/cache-common': 4.22.1
    +    dev: false
     
    -  '@algolia/cache-common@4.22.1': {}
    +  /@algolia/cache-common@4.22.1:
    +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    +    dev: false
     
    -  '@algolia/cache-in-memory@4.22.1':
    +  /@algolia/cache-in-memory@4.22.1:
    +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
         dependencies:
           '@algolia/cache-common': 4.22.1
    +    dev: false
     
    -  '@algolia/client-account@4.22.1':
    +  /@algolia/client-account@4.22.1:
    +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-analytics@4.22.1':
    +  /@algolia/client-analytics@4.22.1:
    +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-common@4.22.1':
    +  /@algolia/client-common@4.22.1:
    +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
         dependencies:
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-personalization@4.22.1':
    +  /@algolia/client-personalization@4.22.1:
    +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-search@4.22.1':
    +  /@algolia/client-search@4.22.1:
    +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/events@4.0.1': {}
    +  /@algolia/events@4.0.1:
    +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    +    dev: false
     
    -  '@algolia/logger-common@4.22.1': {}
    +  /@algolia/logger-common@4.22.1:
    +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    +    dev: false
     
    -  '@algolia/logger-console@4.22.1':
    +  /@algolia/logger-console@4.22.1:
    +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
         dependencies:
           '@algolia/logger-common': 4.22.1
    +    dev: false
     
    -  '@algolia/requester-browser-xhr@4.22.1':
    +  /@algolia/requester-browser-xhr@4.22.1:
    +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
         dependencies:
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@algolia/requester-common@4.22.1': {}
    +  /@algolia/requester-common@4.22.1:
    +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    +    dev: false
     
    -  '@algolia/requester-node-http@4.22.1':
    +  /@algolia/requester-node-http@4.22.1:
    +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
         dependencies:
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@algolia/transporter@4.22.1':
    +  /@algolia/transporter@4.22.1:
    +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
         dependencies:
           '@algolia/cache-common': 4.22.1
           '@algolia/logger-common': 4.22.1
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@alloc/quick-lru@5.2.0': {}
    +  /@alloc/quick-lru@5.2.0:
    +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  '@ampproject/remapping@2.3.0':
    +  /@ampproject/remapping@2.3.0:
    +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@babel/code-frame@7.24.2':
    +  /@babel/code-frame@7.24.2:
    +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/highlight': 7.24.2
           picocolors: 1.0.0
     
    -  '@babel/compat-data@7.24.1': {}
    +  /@babel/compat-data@7.24.1:
    +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/core@7.24.3':
    +  /@babel/core@7.24.3:
    +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@ampproject/remapping': 2.3.0
           '@babel/code-frame': 7.24.2
    @@ -9798,22 +956,30 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/generator@7.24.1':
    +  /@babel/generator@7.24.1:
    +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
           jsesc: 2.5.2
     
    -  '@babel/helper-annotate-as-pure@7.22.5':
    +  /@babel/helper-annotate-as-pure@7.22.5:
    +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    +  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
    +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-compilation-targets@7.23.6':
    +  /@babel/helper-compilation-targets@7.23.6:
    +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/helper-validator-option': 7.23.5
    @@ -9821,7 +987,11 @@ snapshots:
           lru-cache: 5.1.1
           semver: 6.3.1
     
    -  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
    +  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -9834,14 +1004,21 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           semver: 6.3.1
     
    -  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
    +  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           regexpu-core: 5.3.2
           semver: 6.3.1
     
    -  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
    +  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -9852,26 +1029,40 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/helper-environment-visitor@7.22.20': {}
    +  /@babel/helper-environment-visitor@7.22.20:
    +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-function-name@7.23.0':
    +  /@babel/helper-function-name@7.23.0:
    +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  '@babel/helper-hoist-variables@7.22.5':
    +  /@babel/helper-hoist-variables@7.22.5:
    +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-member-expression-to-functions@7.23.0':
    +  /@babel/helper-member-expression-to-functions@7.23.0:
    +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-module-imports@7.24.3':
    +  /@babel/helper-module-imports@7.24.3:
    +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
    +  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -9880,51 +1071,79 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           '@babel/helper-validator-identifier': 7.22.20
     
    -  '@babel/helper-optimise-call-expression@7.22.5':
    +  /@babel/helper-optimise-call-expression@7.22.5:
    +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-plugin-utils@7.24.0': {}
    +  /@babel/helper-plugin-utils@7.24.0:
    +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
    +  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-wrap-function': 7.22.20
     
    -  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
    +  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-member-expression-to-functions': 7.23.0
           '@babel/helper-optimise-call-expression': 7.22.5
     
    -  '@babel/helper-simple-access@7.22.5':
    +  /@babel/helper-simple-access@7.22.5:
    +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    +  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
    +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-split-export-declaration@7.22.6':
    +  /@babel/helper-split-export-declaration@7.22.6:
    +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-string-parser@7.24.1': {}
    +  /@babel/helper-string-parser@7.24.1:
    +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-validator-identifier@7.22.20': {}
    +  /@babel/helper-validator-identifier@7.22.20:
    +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-validator-option@7.23.5': {}
    +  /@babel/helper-validator-option@7.23.5:
    +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-wrap-function@7.22.20':
    +  /@babel/helper-wrap-function@7.22.20:
    +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-function-name': 7.23.0
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  '@babel/helpers@7.24.1':
    +  /@babel/helpers@7.24.1:
    +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/traverse': 7.24.1
    @@ -9932,151 +1151,252 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/highlight@7.24.2':
    +  /@babel/highlight@7.24.2:
    +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           chalk: 2.4.2
           js-tokens: 4.0.0
           picocolors: 1.0.0
     
    -  '@babel/parser@7.24.1':
    +  /@babel/parser@7.24.1:
    +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    +    engines: {node: '>=6.0.0'}
    +    hasBin: true
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.13.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
    +  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    +    dev: true
     
    -  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -10084,37 +1404,61 @@ snapshots:
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10126,95 +1470,159 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           globals: 11.12.0
     
    -  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/template': 7.24.0
     
    -  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
           '@babel/helper-function-name': 7.23.0
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-simple-access': 7.22.5
     
    -  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-hoist-variables': 7.22.5
    @@ -10222,36 +1630,60 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-validator-identifier': 7.22.20
     
    -  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -10259,37 +1691,61 @@ snapshots:
           '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10297,27 +1753,47 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10326,24 +1802,40 @@ snapshots:
           '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
           '@babel/types': 7.24.0
     
    -  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           regenerator-transform: 0.15.2
     
    -  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
    @@ -10354,34 +1846,59 @@ snapshots:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10389,30 +1906,50 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
    +  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -10498,14 +2035,21 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
    +  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/types': 7.24.0
           esutils: 2.0.3
     
    -  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
    +  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -10515,7 +2059,11 @@ snapshots:
           '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
           '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -10524,24 +2072,34 @@ snapshots:
           '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
           '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/regjsgen@0.8.0': {}
    +  /@babel/regjsgen@0.8.0:
    +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
     
    -  '@babel/runtime-corejs3@7.24.1':
    +  /@babel/runtime-corejs3@7.24.1:
    +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           core-js-pure: 3.36.1
           regenerator-runtime: 0.14.1
    +    dev: false
     
    -  '@babel/runtime@7.24.1':
    +  /@babel/runtime@7.24.1:
    +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           regenerator-runtime: 0.14.1
     
    -  '@babel/template@7.24.0':
    +  /@babel/template@7.24.0:
    +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
     
    -  '@babel/traverse@7.24.1':
    +  /@babel/traverse@7.24.1:
    +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/generator': 7.24.1
    @@ -10556,34 +2114,67 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/types@7.24.0':
    +  /@babel/types@7.24.0:
    +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-string-parser': 7.24.1
           '@babel/helper-validator-identifier': 7.22.20
           to-fast-properties: 2.0.0
     
    -  '@bcoe/v8-coverage@0.2.3': {}
    +  /@bcoe/v8-coverage@0.2.3:
    +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    +    dev: true
     
    -  '@colors/colors@1.5.0':
    +  /@colors/colors@1.5.0:
    +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    +    engines: {node: '>=0.1.90'}
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@colors/colors@1.6.0': {}
    +  /@colors/colors@1.6.0:
    +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    +    engines: {node: '>=0.1.90'}
     
    -  '@cspotcode/source-map-support@0.8.1':
    +  /@cspotcode/source-map-support@0.8.1:
    +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    +    engines: {node: '>=12'}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.9
    +    dev: true
     
    -  '@dabh/diagnostics@2.0.3':
    +  /@dabh/diagnostics@2.0.3:
    +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
         dependencies:
           colorspace: 1.1.4
           enabled: 2.0.0
           kuler: 2.0.0
     
    -  '@discoveryjs/json-ext@0.5.7': {}
    +  /@discoveryjs/json-ext@0.5.7:
    +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    +    engines: {node: '>=10.0.0'}
     
    -  '@docsearch/css@3.6.0': {}
    +  /@docsearch/css@3.6.0:
    +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    +    dev: false
     
    -  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
    +  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
    +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    +    peerDependencies:
    +      '@types/react': '>= 16.8.0 < 19.0.0'
    +      react: '>= 16.8.0 < 19.0.0 || 18'
    +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    +      search-insights: '>= 1 < 3'
    +    peerDependenciesMeta:
    +      '@types/react':
    +        optional: true
    +      react:
    +        optional: true
    +      react-dom:
    +        optional: true
    +      search-insights:
    +        optional: true
         dependencies:
           '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -10595,8 +2186,15 @@ snapshots:
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
    +    dev: false
     
    -  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    +    engines: {node: '>=18.0'}
    +    hasBin: true
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -10651,7 +2249,7 @@ snapshots:
           react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
           react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
           react-router: 5.3.4(react@18.2.0)
           react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
    @@ -10687,20 +2285,32 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/cssnano-preset@3.1.1':
    +  /@docusaurus/cssnano-preset@3.1.1:
    +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    +    engines: {node: '>=18.0'}
         dependencies:
           cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
           postcss: 8.4.38
           postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/logger@3.1.1':
    +  /@docusaurus/logger@3.1.1:
    +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    +    engines: {node: '>=18.0'}
         dependencies:
           chalk: 4.1.2
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/traverse': 7.24.1
    @@ -10737,8 +2347,13 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10749,7 +2364,7 @@ snapshots:
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
         transitivePeerDependencies:
           - '@swc/core'
           - esbuild
    @@ -10757,7 +2372,12 @@ snapshots:
           - uglify-js
           - webpack-cli
     
    -  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -10795,8 +2415,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -10832,8 +2458,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10862,8 +2494,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10890,8 +2528,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10916,8 +2560,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10943,8 +2593,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10969,8 +2625,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -11000,8 +2662,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
    +  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -11038,14 +2706,23 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
    +  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
    +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    +    peerDependencies:
    +      react: '*'
         dependencies:
           '@types/react': 18.2.71
           prop-types: 15.8.1
           react: 18.2.0
     
    -  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11092,8 +2769,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11130,8 +2813,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -11172,13 +2861,22 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
    +    patched: true
     
    -  '@docusaurus/theme-translations@3.1.1':
    +  /@docusaurus/theme-translations@3.1.1:
    +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    +    engines: {node: '>=18.0'}
         dependencies:
           fs-extra: 11.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@mdx-js/mdx': 3.0.1
           '@types/history': 4.7.11
    @@ -11198,12 +2896,22 @@ snapshots:
           - uglify-js
           - webpack-cli
     
    -  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
    +  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
    +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
         dependencies:
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
    +  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    +    engines: {node: '>=18.0'}
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
    @@ -11217,8 +2925,16 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
    +  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11244,97 +2960,232 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
    +  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
    +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    +    peerDependencies:
    +      effect: 2.0.0-next.62
    +      fast-check: ^3.13.2
         dependencies:
           effect: 2.0.0-next.62
           fast-check: 3.15.0
    +    dev: true
     
    -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
    +  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
    +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      html-webpack-plugin: '>=5'
    +      webpack: '>=5'
         dependencies:
           escape-string-regexp: 4.0.0
           html-webpack-plugin: 5.6.0(webpack@5.91.0)
           slash: 3.0.0
           source-map-url: 0.4.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  '@esbuild/aix-ppc64@0.20.2':
    +  /@esbuild/aix-ppc64@0.20.2:
    +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [aix]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-arm64@0.20.2':
    +  /@esbuild/android-arm64@0.20.2:
    +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-arm@0.20.2':
    +  /@esbuild/android-arm@0.20.2:
    +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-x64@0.20.2':
    +  /@esbuild/android-x64@0.20.2:
    +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/darwin-arm64@0.20.2':
    +  /@esbuild/darwin-arm64@0.20.2:
    +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/darwin-x64@0.20.2':
    +  /@esbuild/darwin-x64@0.20.2:
    +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/freebsd-arm64@0.20.2':
    +  /@esbuild/freebsd-arm64@0.20.2:
    +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/freebsd-x64@0.20.2':
    +  /@esbuild/freebsd-x64@0.20.2:
    +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-arm64@0.20.2':
    +  /@esbuild/linux-arm64@0.20.2:
    +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-arm@0.20.2':
    +  /@esbuild/linux-arm@0.20.2:
    +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-ia32@0.20.2':
    +  /@esbuild/linux-ia32@0.20.2:
    +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-loong64@0.20.2':
    +  /@esbuild/linux-loong64@0.20.2:
    +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-mips64el@0.20.2':
    +  /@esbuild/linux-mips64el@0.20.2:
    +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-ppc64@0.20.2':
    +  /@esbuild/linux-ppc64@0.20.2:
    +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-riscv64@0.20.2':
    +  /@esbuild/linux-riscv64@0.20.2:
    +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-s390x@0.20.2':
    +  /@esbuild/linux-s390x@0.20.2:
    +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-x64@0.20.2':
    +  /@esbuild/linux-x64@0.20.2:
    +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/netbsd-x64@0.20.2':
    +  /@esbuild/netbsd-x64@0.20.2:
    +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/openbsd-x64@0.20.2':
    +  /@esbuild/openbsd-x64@0.20.2:
    +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/sunos-x64@0.20.2':
    +  /@esbuild/sunos-x64@0.20.2:
    +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-arm64@0.20.2':
    +  /@esbuild/win32-arm64@0.20.2:
    +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-ia32@0.20.2':
    +  /@esbuild/win32-ia32@0.20.2:
    +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-x64@0.20.2':
    +  /@esbuild/win32-x64@0.20.2:
    +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
    +  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 3.4.3
     
    -  '@eslint-community/regexpp@4.10.0': {}
    +  /@eslint-community/regexpp@4.10.0:
    +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
     
    -  '@eslint/eslintrc@2.1.4':
    +  /@eslint/eslintrc@2.1.4:
    +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           ajv: 6.12.6
           debug: 4.3.4(supports-color@8.1.1)
    @@ -11348,35 +3199,62 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@eslint/js@8.57.0': {}
    +  /@eslint/js@8.57.0:
    +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     
    -  '@fortawesome/fontawesome-common-types@6.5.1': {}
    +  /@fortawesome/fontawesome-common-types@6.5.1:
    +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
    +    dev: false
     
    -  '@fortawesome/fontawesome-svg-core@6.5.1':
    +  /@fortawesome/fontawesome-svg-core@6.5.1:
    +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    +    dev: false
     
    -  '@fortawesome/free-solid-svg-icons@6.5.1':
    +  /@fortawesome/free-solid-svg-icons@6.5.1:
    +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    +    dev: false
     
    -  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
    +  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
    +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    +    peerDependencies:
    +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    +      react: '>=16.3 || 18'
         dependencies:
           '@fortawesome/fontawesome-svg-core': 6.5.1
           prop-types: 15.8.1
           react: 18.2.0
    +    dev: false
     
    -  '@gar/promisify@1.1.3': {}
    +  /@gar/promisify@1.1.3:
    +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
     
    -  '@gwhitney/detect-indent@7.0.1': {}
    +  /@gwhitney/detect-indent@7.0.1:
    +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    +    engines: {node: '>=12.20'}
    +    dev: true
     
    -  '@hapi/hoek@9.3.0': {}
    +  /@hapi/hoek@9.3.0:
    +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
     
    -  '@hapi/topo@5.1.0':
    +  /@hapi/topo@5.1.0:
    +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  '@humanwhocodes/config-array@0.11.14':
    +  /@humanwhocodes/config-array@0.11.14:
    +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    +    engines: {node: '>=10.10.0'}
         dependencies:
           '@humanwhocodes/object-schema': 2.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -11384,32 +3262,46 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@humanwhocodes/module-importer@1.0.1': {}
    +  /@humanwhocodes/module-importer@1.0.1:
    +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    +    engines: {node: '>=12.22'}
     
    -  '@humanwhocodes/object-schema@2.0.2': {}
    +  /@humanwhocodes/object-schema@2.0.2:
    +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
     
    -  '@isaacs/cliui@8.0.2':
    +  /@isaacs/cliui@8.0.2:
    +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 5.1.2
    -      string-width-cjs: string-width@4.2.3
    +      string-width-cjs: /string-width@4.2.3
           strip-ansi: 7.1.0
    -      strip-ansi-cjs: strip-ansi@6.0.1
    +      strip-ansi-cjs: /strip-ansi@6.0.1
           wrap-ansi: 8.1.0
    -      wrap-ansi-cjs: wrap-ansi@7.0.0
    +      wrap-ansi-cjs: /wrap-ansi@7.0.0
     
    -  '@isaacs/string-locale-compare@1.1.0': {}
    +  /@isaacs/string-locale-compare@1.1.0:
    +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
     
    -  '@istanbuljs/load-nyc-config@1.1.0':
    +  /@istanbuljs/load-nyc-config@1.1.0:
    +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    +    engines: {node: '>=8'}
         dependencies:
           camelcase: 5.3.1
           find-up: 4.1.0
           get-package-type: 0.1.0
           js-yaml: 3.14.1
           resolve-from: 5.0.0
    +    dev: true
     
    -  '@istanbuljs/schema@0.1.3': {}
    +  /@istanbuljs/schema@0.1.3:
    +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  '@jest/console@29.7.0':
    +  /@jest/console@29.7.0:
    +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -11417,8 +3309,16 @@ snapshots:
           jest-message-util: 29.7.0
           jest-util: 29.7.0
           slash: 3.0.0
    +    dev: true
     
    -  '@jest/core@29.7.0(ts-node@10.9.2)':
    +  /@jest/core@29.7.0(ts-node@10.9.2):
    +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/console': 29.7.0
           '@jest/reporters': 29.7.0
    @@ -11452,26 +3352,38 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  '@jest/environment@29.7.0':
    +  /@jest/environment@29.7.0:
    +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/fake-timers': 29.7.0
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-mock: 29.7.0
    +    dev: true
     
    -  '@jest/expect-utils@29.7.0':
    +  /@jest/expect-utils@29.7.0:
    +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.6.3
    +    dev: true
     
    -  '@jest/expect@29.7.0':
    +  /@jest/expect@29.7.0:
    +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           expect: 29.7.0
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/fake-timers@29.7.0':
    +  /@jest/fake-timers@29.7.0:
    +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@sinonjs/fake-timers': 10.3.0
    @@ -11479,8 +3391,11 @@ snapshots:
           jest-message-util: 29.7.0
           jest-mock: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  '@jest/globals@29.7.0':
    +  /@jest/globals@29.7.0:
    +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -11488,8 +3403,16 @@ snapshots:
           jest-mock: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/reporters@29.7.0':
    +  /@jest/reporters@29.7.0:
    +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@bcoe/v8-coverage': 0.2.3
           '@jest/console': 29.7.0
    @@ -11517,32 +3440,46 @@ snapshots:
           v8-to-istanbul: 9.2.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/schemas@29.6.3':
    +  /@jest/schemas@29.6.3:
    +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@sinclair/typebox': 0.27.8
     
    -  '@jest/source-map@29.6.3':
    +  /@jest/source-map@29.6.3:
    +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           callsites: 3.1.0
           graceful-fs: 4.2.11
    +    dev: true
     
    -  '@jest/test-result@29.7.0':
    +  /@jest/test-result@29.7.0:
    +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/console': 29.7.0
           '@jest/types': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
           collect-v8-coverage: 1.0.2
    +    dev: true
     
    -  '@jest/test-sequencer@29.7.0':
    +  /@jest/test-sequencer@29.7.0:
    +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/test-result': 29.7.0
           graceful-fs: 4.2.11
           jest-haste-map: 29.7.0
           slash: 3.0.0
    +    dev: true
     
    -  '@jest/transform@29.7.0':
    +  /@jest/transform@29.7.0:
    +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.24.3
           '@jest/types': 29.6.3
    @@ -11561,8 +3498,11 @@ snapshots:
           write-file-atomic: 4.0.2
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/types@29.6.3':
    +  /@jest/types@29.6.3:
    +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
    @@ -11571,44 +3511,61 @@ snapshots:
           '@types/yargs': 17.0.32
           chalk: 4.1.2
     
    -  '@jridgewell/gen-mapping@0.3.5':
    +  /@jridgewell/gen-mapping@0.3.5:
    +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           '@jridgewell/set-array': 1.2.1
           '@jridgewell/sourcemap-codec': 1.4.15
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@jridgewell/resolve-uri@3.1.2': {}
    +  /@jridgewell/resolve-uri@3.1.2:
    +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    +    engines: {node: '>=6.0.0'}
     
    -  '@jridgewell/set-array@1.2.1': {}
    +  /@jridgewell/set-array@1.2.1:
    +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    +    engines: {node: '>=6.0.0'}
     
    -  '@jridgewell/source-map@0.3.6':
    +  /@jridgewell/source-map@0.3.6:
    +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@jridgewell/sourcemap-codec@1.4.15': {}
    +  /@jridgewell/sourcemap-codec@1.4.15:
    +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
     
    -  '@jridgewell/trace-mapping@0.3.25':
    +  /@jridgewell/trace-mapping@0.3.25:
    +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
     
    -  '@jridgewell/trace-mapping@0.3.9':
    +  /@jridgewell/trace-mapping@0.3.9:
    +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
    +    dev: true
     
    -  '@leichtgewicht/ip-codec@2.0.4': {}
    +  /@leichtgewicht/ip-codec@2.0.4:
    +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
     
    -  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
    +  /@mdx-js/loader@3.0.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    +    peerDependencies:
    +      webpack: '>=5'
         dependencies:
           '@mdx-js/mdx': 3.0.1
           source-map: 0.7.4
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@mdx-js/mdx@3.0.1':
    +  /@mdx-js/mdx@3.0.1:
    +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -11636,66 +3593,150 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
    +  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
    +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    +    peerDependencies:
    +      '@types/react': '>=16'
    +      react: '>=16 || 18'
         dependencies:
           '@types/mdx': 2.0.12
           '@types/react': 18.2.71
           react: 18.2.0
    +    dev: false
     
    -  '@msgpack/msgpack@2.8.0': {}
    +  /@msgpack/msgpack@2.8.0:
    +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    +    engines: {node: '>= 10'}
     
    -  '@next/env@14.1.4': {}
    +  /@next/env@14.1.4:
    +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    +    dev: false
     
    -  '@next/eslint-plugin-next@14.1.4':
    +  /@next/eslint-plugin-next@14.1.4:
    +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
         dependencies:
           glob: 10.3.10
    +    dev: true
     
    -  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
    +  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
    +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    +    peerDependencies:
    +      '@mdx-js/loader': '>=0.15.0'
    +      '@mdx-js/react': '>=0.15.0'
    +    peerDependenciesMeta:
    +      '@mdx-js/loader':
    +        optional: true
    +      '@mdx-js/react':
    +        optional: true
         dependencies:
           '@mdx-js/loader': 3.0.1(webpack@5.91.0)
           '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
           source-map: 0.7.4
    +    dev: false
     
    -  '@next/swc-darwin-arm64@14.1.4':
    +  /@next/swc-darwin-arm64@14.1.4:
    +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-darwin-x64@14.1.4':
    +  /@next/swc-darwin-x64@14.1.4:
    +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-arm64-gnu@14.1.4':
    +  /@next/swc-linux-arm64-gnu@14.1.4:
    +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-arm64-musl@14.1.4':
    +  /@next/swc-linux-arm64-musl@14.1.4:
    +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-x64-gnu@14.1.4':
    +  /@next/swc-linux-x64-gnu@14.1.4:
    +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-x64-musl@14.1.4':
    +  /@next/swc-linux-x64-musl@14.1.4:
    +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-arm64-msvc@14.1.4':
    +  /@next/swc-win32-arm64-msvc@14.1.4:
    +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-ia32-msvc@14.1.4':
    +  /@next/swc-win32-ia32-msvc@14.1.4:
    +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    +    engines: {node: '>= 10'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-x64-msvc@14.1.4':
    +  /@next/swc-win32-x64-msvc@14.1.4:
    +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@nodelib/fs.scandir@2.1.5':
    +  /@nodelib/fs.scandir@2.1.5:
    +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    +    engines: {node: '>= 8'}
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           run-parallel: 1.2.0
     
    -  '@nodelib/fs.stat@2.0.5': {}
    +  /@nodelib/fs.stat@2.0.5:
    +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    +    engines: {node: '>= 8'}
     
    -  '@nodelib/fs.walk@1.2.8':
    +  /@nodelib/fs.walk@1.2.8:
    +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    +    engines: {node: '>= 8'}
         dependencies:
           '@nodelib/fs.scandir': 2.1.5
           fastq: 1.17.1
     
    -  '@npmcli/arborist@4.3.1':
    +  /@npmcli/arborist@4.3.1:
    +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
         dependencies:
           '@isaacs/string-locale-compare': 1.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -11733,21 +3774,27 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/fs@1.1.1':
    +  /@npmcli/fs@1.1.1:
    +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  '@npmcli/fs@2.1.2':
    +  /@npmcli/fs@2.1.2:
    +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  '@npmcli/fs@3.1.0':
    +  /@npmcli/fs@3.1.0:
    +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           semver: 7.6.0
     
    -  '@npmcli/git@2.1.0':
    +  /@npmcli/git@2.1.0:
    +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
         dependencies:
           '@npmcli/promise-spawn': 1.3.2
           lru-cache: 6.0.0
    @@ -11760,7 +3807,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  '@npmcli/git@4.1.0':
    +  /@npmcli/git@4.1.0:
    +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/promise-spawn': 6.0.2
           lru-cache: 7.18.3
    @@ -11773,24 +3822,34 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  '@npmcli/installed-package-contents@1.0.7':
    +  /@npmcli/installed-package-contents@1.0.7:
    +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    +    engines: {node: '>= 10'}
    +    hasBin: true
         dependencies:
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  '@npmcli/installed-package-contents@2.0.2':
    +  /@npmcli/installed-package-contents@2.0.2:
    +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           npm-bundled: 3.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  '@npmcli/map-workspaces@2.0.4':
    +  /@npmcli/map-workspaces@2.0.4:
    +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@npmcli/name-from-folder': 1.0.1
           glob: 8.1.0
           minimatch: 5.1.6
           read-package-json-fast: 2.0.3
     
    -  '@npmcli/metavuln-calculator@2.0.0':
    +  /@npmcli/metavuln-calculator@2.0.0:
    +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
         dependencies:
           cacache: 15.3.0
           json-parse-even-better-errors: 2.3.1
    @@ -11800,35 +3859,50 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/move-file@1.1.2':
    +  /@npmcli/move-file@1.1.2:
    +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    +    engines: {node: '>=10'}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  '@npmcli/move-file@2.0.1':
    +  /@npmcli/move-file@2.0.1:
    +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  '@npmcli/name-from-folder@1.0.1': {}
    +  /@npmcli/name-from-folder@1.0.1:
    +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
     
    -  '@npmcli/node-gyp@1.0.3': {}
    +  /@npmcli/node-gyp@1.0.3:
    +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
     
    -  '@npmcli/node-gyp@3.0.0': {}
    +  /@npmcli/node-gyp@3.0.0:
    +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@npmcli/package-json@1.0.1':
    +  /@npmcli/package-json@1.0.1:
    +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
         dependencies:
           json-parse-even-better-errors: 2.3.1
     
    -  '@npmcli/promise-spawn@1.3.2':
    +  /@npmcli/promise-spawn@1.3.2:
    +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
         dependencies:
           infer-owner: 1.0.4
     
    -  '@npmcli/promise-spawn@6.0.2':
    +  /@npmcli/promise-spawn@6.0.2:
    +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           which: 3.0.1
     
    -  '@npmcli/run-script@2.0.0':
    +  /@npmcli/run-script@2.0.0:
    +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
         dependencies:
           '@npmcli/node-gyp': 1.0.3
           '@npmcli/promise-spawn': 1.3.2
    @@ -11838,7 +3912,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/run-script@6.0.2':
    +  /@npmcli/run-script@6.0.2:
    +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/node-gyp': 3.0.0
           '@npmcli/promise-spawn': 6.0.2
    @@ -11849,11 +3925,13 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@octokit/auth-token@2.5.0':
    +  /@octokit/auth-token@2.5.0:
    +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
         dependencies:
           '@octokit/types': 6.41.0
     
    -  '@octokit/core@3.6.0':
    +  /@octokit/core@3.6.0:
    +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
         dependencies:
           '@octokit/auth-token': 2.5.0
           '@octokit/graphql': 4.8.0
    @@ -11865,13 +3943,15 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/endpoint@6.0.12':
    +  /@octokit/endpoint@6.0.12:
    +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
         dependencies:
           '@octokit/types': 6.41.0
           is-plain-object: 5.0.0
           universal-user-agent: 6.0.1
     
    -  '@octokit/graphql@4.8.0':
    +  /@octokit/graphql@4.8.0:
    +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
         dependencies:
           '@octokit/request': 5.6.3
           '@octokit/types': 6.41.0
    @@ -11879,30 +3959,42 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/openapi-types@12.11.0': {}
    +  /@octokit/openapi-types@12.11.0:
    +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
     
    -  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
    +  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    +    peerDependencies:
    +      '@octokit/core': '>=2'
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
     
    -  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
    +  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
         dependencies:
           '@octokit/core': 3.6.0
     
    -  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
    +  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
     
    -  '@octokit/request-error@2.1.0':
    +  /@octokit/request-error@2.1.0:
    +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
         dependencies:
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
           once: 1.4.0
     
    -  '@octokit/request@5.6.3':
    +  /@octokit/request@5.6.3:
    +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
         dependencies:
           '@octokit/endpoint': 6.0.12
           '@octokit/request-error': 2.1.0
    @@ -11913,7 +4005,8 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/rest@18.12.0':
    +  /@octokit/rest@18.12.0:
    +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
    @@ -11922,19 +4015,30 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/types@6.41.0':
    +  /@octokit/types@6.41.0:
    +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
         dependencies:
           '@octokit/openapi-types': 12.11.0
     
    -  '@pkgjs/parseargs@0.11.0':
    +  /@pkgjs/parseargs@0.11.0:
    +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    +    engines: {node: '>=14'}
    +    requiresBuild: true
         optional: true
     
    -  '@pnpm/cli-meta@5.0.1':
    +  /@pnpm/cli-meta@5.0.1:
    +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
           load-json-file: 6.2.0
    +    dev: true
     
    -  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
    +  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/cli-meta': 5.0.1
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
    @@ -11947,10 +4051,15 @@ snapshots:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           load-json-file: 6.2.0
    +    dev: true
     
    -  '@pnpm/config.env-replace@1.1.0': {}
    +  /@pnpm/config.env-replace@1.1.0:
    +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    +    engines: {node: '>=12.22.0'}
     
    -  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/constants': 7.1.0
    @@ -11970,44 +4079,80 @@ snapshots:
           normalize-registry-url: 2.0.0
           path-absolute: 1.0.1
           path-name: 1.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           read-ini-file: 4.0.0
           realpath-missing: 1.1.0
           which: 3.0.1
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/constants@6.2.0': {}
    +  /@pnpm/constants@6.2.0:
    +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    +    engines: {node: '>=14.6'}
    +    dev: false
     
    -  '@pnpm/constants@7.1.0': {}
    +  /@pnpm/constants@7.1.0:
    +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/constants@7.1.1': {}
    +  /@pnpm/constants@7.1.1:
    +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/constants@8.0.0': {}
    +  /@pnpm/constants@8.0.0:
    +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/crypto.base32-hash@3.0.0':
    +  /@pnpm/crypto.base32-hash@3.0.0:
    +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           rfc4648: 1.5.3
    +    dev: false
     
    -  '@pnpm/dedupe.issues-renderer@1.0.0':
    +  /@pnpm/dedupe.issues-renderer@1.0.0:
    +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/dedupe.types': 1.0.0
           archy: 1.0.0
           chalk: 4.1.2
    +    dev: true
     
    -  '@pnpm/dedupe.types@1.0.0': {}
    +  /@pnpm/dedupe.types@1.0.0:
    +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
    +  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
    @@ -12023,37 +4168,57 @@ snapshots:
           normalize-path: 3.0.0
           pretty-bytes: 5.6.0
           pretty-ms: 7.0.1
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           right-pad: 1.0.1
           rxjs: 7.8.1
           semver: 7.6.0
           stacktracey: 2.1.8
           string-length: 4.0.2
           strip-ansi: 6.0.1
    +    dev: true
     
    -  '@pnpm/dependency-path@3.0.0':
    +  /@pnpm/dependency-path@3.0.0:
    +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/crypto.base32-hash': 3.0.0
           '@pnpm/types': 10.0.0
           semver: 7.6.0
    +    dev: false
     
    -  '@pnpm/error@4.0.1':
    +  /@pnpm/error@4.0.1:
    +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    +    engines: {node: '>=14.6'}
         dependencies:
           '@pnpm/constants': 6.2.0
    +    dev: false
     
    -  '@pnpm/error@5.0.1':
    +  /@pnpm/error@5.0.1:
    +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/constants': 7.1.0
    +    dev: true
     
    -  '@pnpm/error@5.0.3':
    +  /@pnpm/error@5.0.3:
    +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/constants': 7.1.1
    +    dev: true
     
    -  '@pnpm/error@6.0.0':
    +  /@pnpm/error@6.0.0:
    +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/constants': 8.0.0
    +    dev: false
     
    -  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
           '@pnpm/fetching-types': 6.0.0
    @@ -12061,30 +4226,42 @@ snapshots:
           '@pnpm/network.agent': 1.0.1
           '@pnpm/types': 10.0.0
           '@zkochan/retry': 0.2.0
    -      node-fetch: '@pnpm/node-fetch@1.0.0'
    +      node-fetch: /@pnpm/node-fetch@1.0.0
         transitivePeerDependencies:
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/fetcher-base@14.0.1':
    +  /@pnpm/fetcher-base@14.0.1:
    +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
           '@types/ssri': 7.1.5
    +    dev: true
     
    -  '@pnpm/fetching-types@6.0.0':
    +  /@pnpm/fetching-types@6.0.0:
    +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@zkochan/retry': 0.2.0
    -      node-fetch: '@pnpm/node-fetch@1.0.0'
    +      node-fetch: /@pnpm/node-fetch@1.0.0
         transitivePeerDependencies:
           - domexception
    +    dev: false
     
    -  '@pnpm/find-workspace-dir@6.0.3':
    +  /@pnpm/find-workspace-dir@6.0.3:
    +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/error': 5.0.3
           find-up: 5.0.0
    +    dev: true
     
    -  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
    +  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
           '@pnpm/constants': 7.1.0
    @@ -12094,49 +4271,75 @@ snapshots:
           read-yaml-file: 2.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/fs.find-packages@2.0.1':
    +  /@pnpm/fs.find-packages@2.0.1:
    +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/read-project-manifest': 5.0.1
           '@pnpm/types': 9.1.0
           '@pnpm/util.lex-comparator': 1.0.0
           fast-glob: 3.3.2
           p-filter: 2.1.0
    +    dev: true
     
    -  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
           '@pnpm/resolver-base': 12.0.0
           graceful-git: 3.1.2
    -      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
    +      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
           semver: 7.6.0
         transitivePeerDependencies:
           - '@pnpm/logger'
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/git-utils@1.0.0':
    +  /@pnpm/git-utils@1.0.0:
    +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    +    engines: {node: '>=16.14'}
         dependencies:
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
    +    dev: true
     
    -  '@pnpm/git-utils@2.0.0':
    +  /@pnpm/git-utils@2.0.0:
    +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    +    engines: {node: '>=18.12'}
         dependencies:
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
    +    dev: false
     
    -  '@pnpm/graceful-fs@3.0.0':
    +  /@pnpm/graceful-fs@3.0.0:
    +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           graceful-fs: 4.2.11
    +    dev: true
     
    -  '@pnpm/hooks.types@1.0.1':
    +  /@pnpm/hooks.types@1.0.1:
    +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/lockfile-types': 5.1.0
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/hosted-git-info@1.0.0':
    +  /@pnpm/hosted-git-info@1.0.0:
    +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    +    engines: {node: '>=10'}
         dependencies:
           lru-cache: 6.0.0
    +    dev: false
     
    -  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
    +  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/constants': 8.0.0
           '@pnpm/dependency-path': 3.0.0
    @@ -12151,9 +4354,9 @@ snapshots:
           '@pnpm/util.lex-comparator': 3.0.0
           '@zkochan/rimraf': 2.1.3
           comver-to-semver: 1.0.0
    -      js-yaml: '@zkochan/js-yaml@0.0.7'
    +      js-yaml: /@zkochan/js-yaml@0.0.7
           normalize-path: 3.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           semver: 7.6.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    @@ -12161,16 +4364,25 @@ snapshots:
         transitivePeerDependencies:
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/lockfile-types@5.1.0':
    +  /@pnpm/lockfile-types@5.1.0:
    +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/lockfile-types@6.0.0':
    +  /@pnpm/lockfile-types@6.0.0:
    +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/lockfile-utils@10.0.0':
    +  /@pnpm/lockfile-utils@10.0.0:
    +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/dependency-path': 3.0.0
           '@pnpm/lockfile-types': 6.0.0
    @@ -12178,33 +4390,48 @@ snapshots:
           '@pnpm/resolver-base': 12.0.0
           '@pnpm/types': 10.0.0
           get-npm-tarball-url: 2.1.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
    +    dev: false
     
    -  '@pnpm/logger@5.0.0':
    +  /@pnpm/logger@5.0.0:
    +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    +    engines: {node: '>=12.17'}
         dependencies:
           bole: 5.0.11
           ndjson: 2.0.0
     
    -  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/types': 9.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/matcher@5.0.0':
    +  /@pnpm/matcher@5.0.0:
    +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           escape-string-regexp: 4.0.0
    +    dev: true
     
    -  '@pnpm/merge-lockfile-changes@6.0.0':
    +  /@pnpm/merge-lockfile-changes@6.0.0:
    +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/lockfile-types': 6.0.0
           comver-to-semver: 1.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           semver: 7.6.0
    +    dev: false
     
    -  '@pnpm/meta-updater@1.0.0':
    +  /@pnpm/meta-updater@1.0.0:
    +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    +    engines: {node: '>=10.12'}
    +    hasBin: true
         dependencies:
           '@pnpm/find-workspace-dir': 6.0.3
           '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
    @@ -12215,8 +4442,11 @@ snapshots:
           print-diff: 1.0.0
           ramda: 0.29.1
           write-json-file: 5.0.0
    +    dev: true
     
    -  '@pnpm/network.agent@1.0.1':
    +  /@pnpm/network.agent@1.0.1:
    +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           '@pnpm/network.config': 1.0.1
           '@pnpm/network.proxy-agent': 1.0.1
    @@ -12224,16 +4454,24 @@ snapshots:
           lru-cache: 7.10.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@pnpm/network.ca-file@1.0.2':
    +  /@pnpm/network.ca-file@1.0.2:
    +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           graceful-fs: 4.2.10
     
    -  '@pnpm/network.config@1.0.1':
    +  /@pnpm/network.config@1.0.1:
    +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           nerf-dart: 1.0.0
    +    dev: false
     
    -  '@pnpm/network.proxy-agent@1.0.1':
    +  /@pnpm/network.proxy-agent@1.0.1:
    +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           '@pnpm/error': 4.0.1
           http-proxy-agent: 5.0.0
    @@ -12242,40 +4480,62 @@ snapshots:
           socks-proxy-agent: 6.1.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@pnpm/node-fetch@1.0.0':
    +  /@pnpm/node-fetch@1.0.0:
    +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    +    engines: {node: ^10.17 || >=12.3}
         dependencies:
           data-uri-to-buffer: 3.0.1
           fetch-blob: 2.1.2
         transitivePeerDependencies:
           - domexception
    +    dev: false
     
    -  '@pnpm/npm-conf@2.2.0':
    +  /@pnpm/npm-conf@2.2.0:
    +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    +    engines: {node: '>=12'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    +    dev: true
     
    -  '@pnpm/npm-conf@2.2.2':
    +  /@pnpm/npm-conf@2.2.2:
    +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    +    engines: {node: '>=12'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    +    dev: false
     
    -  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
    +  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
           detect-libc: 2.0.3
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
           mem: 8.1.1
           semver: 7.6.0
    +    dev: true
     
    -  '@pnpm/pick-fetcher@3.0.0': {}
    +  /@pnpm/pick-fetcher@3.0.0:
    +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
    +  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
    @@ -12286,10 +4546,14 @@ snapshots:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           path-absolute: 1.0.1
    +    dev: true
     
    -  '@pnpm/ramda@0.28.1': {}
    +  /@pnpm/ramda@0.28.1:
    +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
     
    -  '@pnpm/read-project-manifest@5.0.1':
    +  /@pnpm/read-project-manifest@5.0.1:
    +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@gwhitney/detect-indent': 7.0.1
           '@pnpm/error': 5.0.1
    @@ -12304,69 +4568,116 @@ snapshots:
           read-yaml-file: 2.1.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    +    dev: true
     
    -  '@pnpm/render-peer-issues@4.0.1':
    +  /@pnpm/render-peer-issues@4.0.1:
    +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
           archy: 1.0.0
           chalk: 4.1.2
           cli-columns: 4.0.0
    +    dev: true
     
    -  '@pnpm/resolver-base@10.0.1':
    +  /@pnpm/resolver-base@10.0.1:
    +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/resolver-base@12.0.0':
    +  /@pnpm/resolver-base@12.0.0:
    +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/store-controller-types@15.0.1':
    +  /@pnpm/store-controller-types@15.0.1:
    +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/fetcher-base': 14.0.1
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/text.comments-parser@2.0.0':
    +  /@pnpm/text.comments-parser@2.0.0:
    +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           strip-comments-strings: 1.2.0
    +    dev: true
     
    -  '@pnpm/types@10.0.0': {}
    +  /@pnpm/types@10.0.0:
    +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/types@9.1.0': {}
    +  /@pnpm/types@9.1.0:
    +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/types@9.4.2': {}
    +  /@pnpm/types@9.4.2:
    +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/util.lex-comparator@1.0.0': {}
    +  /@pnpm/util.lex-comparator@1.0.0:
    +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    +    engines: {node: '>=12.22.0'}
    +    dev: true
     
    -  '@pnpm/util.lex-comparator@3.0.0': {}
    +  /@pnpm/util.lex-comparator@3.0.0:
    +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/write-project-manifest@5.0.1':
    +  /@pnpm/write-project-manifest@5.0.1:
    +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/text.comments-parser': 2.0.0
           '@pnpm/types': 9.1.0
           json5: 2.2.3
           write-file-atomic: 5.0.1
           write-yaml-file: 5.0.0
    +    dev: true
     
    -  '@polka/url@1.0.0-next.25': {}
    +  /@polka/url@1.0.0-next.25:
    +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    +    dev: false
     
    -  '@rushstack/eslint-patch@1.8.0': {}
    +  /@rushstack/eslint-patch@1.8.0:
    +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    +    dev: true
     
    -  '@sideway/address@4.1.5':
    +  /@sideway/address@4.1.5:
    +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  '@sideway/formula@3.0.1': {}
    +  /@sideway/formula@3.0.1:
    +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
     
    -  '@sideway/pinpoint@2.0.0': {}
    +  /@sideway/pinpoint@2.0.0:
    +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
     
    -  '@sigstore/bundle@1.1.0':
    +  /@sigstore/bundle@1.1.0:
    +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
     
    -  '@sigstore/protobuf-specs@0.2.1': {}
    +  /@sigstore/protobuf-specs@0.2.1:
    +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@sigstore/sign@1.0.0':
    +  /@sigstore/sign@1.0.0:
    +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -12374,112 +4685,210 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@sigstore/tuf@1.0.3':
    +  /@sigstore/tuf@1.0.3:
    +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
           tuf-js: 1.1.7
         transitivePeerDependencies:
           - supports-color
     
    -  '@sinclair/typebox@0.27.8': {}
    +  /@sinclair/typebox@0.27.8:
    +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
     
    -  '@sindresorhus/is@4.6.0': {}
    +  /@sindresorhus/is@4.6.0:
    +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  '@sindresorhus/is@5.6.0': {}
    +  /@sindresorhus/is@5.6.0:
    +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  '@sinonjs/commons@2.0.0':
    +  /@sinonjs/commons@2.0.0:
    +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
         dependencies:
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/commons@3.0.1':
    +  /@sinonjs/commons@3.0.1:
    +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
         dependencies:
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/fake-timers@10.3.0':
    +  /@sinonjs/fake-timers@10.3.0:
    +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
         dependencies:
           '@sinonjs/commons': 3.0.1
    +    dev: true
     
    -  '@sinonjs/fake-timers@11.2.2':
    +  /@sinonjs/fake-timers@11.2.2:
    +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
         dependencies:
           '@sinonjs/commons': 3.0.1
    +    dev: true
     
    -  '@sinonjs/samsam@8.0.0':
    +  /@sinonjs/samsam@8.0.0:
    +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
         dependencies:
           '@sinonjs/commons': 2.0.0
           lodash.get: 4.4.2
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/text-encoding@0.7.2': {}
    +  /@sinonjs/text-encoding@0.7.2:
    +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    +    dev: true
     
    -  '@slorber/remark-comment@1.0.0':
    +  /@slorber/remark-comment@1.0.0:
    +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
         dependencies:
           micromark-factory-space: 1.1.0
           micromark-util-character: 1.2.0
           micromark-util-symbol: 1.1.0
    +    dev: false
     
    -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    +  /@slorber/static-site-generator-webpack-plugin@4.0.7:
    +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    +    engines: {node: '>=14'}
         dependencies:
           eval: 0.1.8
           p-map: 4.0.0
           webpack-sources: 3.2.3
    +    dev: false
     
    -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
    @@ -12490,8 +4899,13 @@ snapshots:
           '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
    +    dev: false
     
    -  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
    +  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
    @@ -12502,8 +4916,11 @@ snapshots:
           '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
    +    dev: true
     
    -  '@svgr/core@6.5.1':
    +  /@svgr/core@6.5.1:
    +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -12512,8 +4929,11 @@ snapshots:
           cosmiconfig: 7.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/core@8.1.0(typescript@5.4.3)':
    +  /@svgr/core@8.1.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -12523,18 +4943,29 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@svgr/hast-util-to-babel-ast@6.5.1':
    +  /@svgr/hast-util-to-babel-ast@6.5.1:
    +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    +    dev: false
     
    -  '@svgr/hast-util-to-babel-ast@8.0.0':
    +  /@svgr/hast-util-to-babel-ast@8.0.0:
    +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    +    dev: true
     
    -  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
    +  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
    +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': ^6.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -12543,8 +4974,13 @@ snapshots:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
    +  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
    +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -12553,15 +4989,25 @@ snapshots:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
    +  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
    +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@svgr/core': 6.5.1
           cosmiconfig: 7.1.0
           deepmerge: 4.3.1
           svgo: 2.8.0
    +    dev: false
     
    -  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
    +  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@svgr/core': 8.1.0(typescript@5.4.3)
           cosmiconfig: 8.3.6(typescript@5.4.3)
    @@ -12569,8 +5015,11 @@ snapshots:
           svgo: 3.2.0
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  '@svgr/webpack@6.5.1':
    +  /@svgr/webpack@6.5.1:
    +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -12582,8 +5031,11 @@ snapshots:
           '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/webpack@8.1.0(typescript@5.4.3)':
    +  /@svgr/webpack@8.1.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -12596,16 +5048,24 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@swc/helpers@0.5.2':
    +  /@swc/helpers@0.5.2:
    +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
         dependencies:
           tslib: 2.6.2
    +    dev: false
     
    -  '@szmarczak/http-timer@5.0.1':
    +  /@szmarczak/http-timer@5.0.1:
    +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    +    engines: {node: '>=14.16'}
         dependencies:
           defer-to-connect: 2.0.1
    +    dev: false
     
    -  '@testing-library/dom@9.3.4':
    +  /@testing-library/dom@9.3.4:
    +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/runtime': 7.24.1
    @@ -12615,336 +5075,491 @@ snapshots:
           dom-accessibility-api: 0.5.16
           lz-string: 1.5.0
           pretty-format: 27.5.1
    +    dev: true
     
    -  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
    +  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/runtime': 7.24.1
           '@testing-library/dom': 9.3.4
           '@types/react-dom': 18.2.22
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
    +    dev: true
     
    -  '@tootallnate/once@1.1.2': {}
    +  /@tootallnate/once@1.1.2:
    +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    +    engines: {node: '>= 6'}
     
    -  '@tootallnate/once@2.0.0': {}
    +  /@tootallnate/once@2.0.0:
    +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    +    engines: {node: '>= 10'}
     
    -  '@trysound/sax@0.2.0': {}
    +  /@trysound/sax@0.2.0:
    +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    +    engines: {node: '>=10.13.0'}
     
    -  '@tsconfig/docusaurus@2.0.2': {}
    +  /@tsconfig/docusaurus@2.0.2:
    +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    +    dev: true
     
    -  '@tsconfig/node10@1.0.10': {}
    +  /@tsconfig/node10@1.0.10:
    +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    +    dev: true
     
    -  '@tsconfig/node12@1.0.11': {}
    +  /@tsconfig/node12@1.0.11:
    +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    +    dev: true
     
    -  '@tsconfig/node14@1.0.3': {}
    +  /@tsconfig/node14@1.0.3:
    +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    +    dev: true
     
    -  '@tsconfig/node16@1.0.4': {}
    +  /@tsconfig/node16@1.0.4:
    +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    +    dev: true
     
    -  '@tufjs/canonical-json@1.0.0': {}
    +  /@tufjs/canonical-json@1.0.0:
    +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@tufjs/models@1.0.4':
    +  /@tufjs/models@1.0.4:
    +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@tufjs/canonical-json': 1.0.0
           minimatch: 9.0.3
     
    -  '@types/acorn@4.0.6':
    +  /@types/acorn@4.0.6:
    +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  '@types/aria-query@5.0.4': {}
    +  /@types/aria-query@5.0.4:
    +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    +    dev: true
     
    -  '@types/babel__core@7.20.5':
    +  /@types/babel__core@7.20.5:
    +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
           '@types/babel__generator': 7.6.8
           '@types/babel__template': 7.4.4
           '@types/babel__traverse': 7.20.5
    +    dev: true
     
    -  '@types/babel__generator@7.6.8':
    +  /@types/babel__generator@7.6.8:
    +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
         dependencies:
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/babel__template@7.4.4':
    +  /@types/babel__template@7.4.4:
    +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/babel__traverse@7.20.5':
    +  /@types/babel__traverse@7.20.5:
    +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
         dependencies:
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/body-parser@1.19.5':
    +  /@types/body-parser@1.19.5:
    +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
         dependencies:
           '@types/connect': 3.4.38
           '@types/node': 18.18.2
     
    -  '@types/bonjour@3.5.13':
    +  /@types/bonjour@3.5.13:
    +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/chai@4.3.14': {}
    +  /@types/chai@4.3.14:
    +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
     
    -  '@types/connect-history-api-fallback@1.5.4':
    +  /@types/connect-history-api-fallback@1.5.4:
    +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
         dependencies:
           '@types/express-serve-static-core': 4.17.43
           '@types/node': 18.18.2
     
    -  '@types/connect@3.4.38':
    +  /@types/connect@3.4.38:
    +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/debug@4.1.12':
    +  /@types/debug@4.1.12:
    +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
         dependencies:
           '@types/ms': 0.7.34
     
    -  '@types/eslint-scope@3.7.7':
    +  /@types/eslint-scope@3.7.7:
    +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
         dependencies:
           '@types/eslint': 8.56.6
           '@types/estree': 1.0.5
     
    -  '@types/eslint@8.56.6':
    +  /@types/eslint@8.56.6:
    +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/json-schema': 7.0.15
     
    -  '@types/estree-jsx@1.0.5':
    +  /@types/estree-jsx@1.0.5:
    +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  '@types/estree@1.0.5': {}
    +  /@types/estree@1.0.5:
    +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
     
    -  '@types/expect@1.20.4': {}
    +  /@types/expect@1.20.4:
    +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
     
    -  '@types/express-serve-static-core@4.17.43':
    +  /@types/express-serve-static-core@4.17.43:
    +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
         dependencies:
           '@types/node': 18.18.2
           '@types/qs': 6.9.14
           '@types/range-parser': 1.2.7
           '@types/send': 0.17.4
     
    -  '@types/express@4.17.21':
    +  /@types/express@4.17.21:
    +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
         dependencies:
           '@types/body-parser': 1.19.5
           '@types/express-serve-static-core': 4.17.43
           '@types/qs': 6.9.14
           '@types/serve-static': 1.15.5
     
    -  '@types/fs-extra@11.0.4':
    +  /@types/fs-extra@11.0.4:
    +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
         dependencies:
           '@types/jsonfile': 6.1.4
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/glob@8.1.0':
    +  /@types/glob@8.1.0:
    +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
         dependencies:
           '@types/minimatch': 5.1.2
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/graceful-fs@4.1.9':
    +  /@types/graceful-fs@4.1.9:
    +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/gtag.js@0.0.12': {}
    +  /@types/gtag.js@0.0.12:
    +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    +    dev: false
     
    -  '@types/hast@3.0.4':
    +  /@types/hast@3.0.4:
    +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  '@types/history@4.7.11': {}
    +  /@types/history@4.7.11:
    +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
     
    -  '@types/html-minifier-terser@6.1.0': {}
    +  /@types/html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
     
    -  '@types/http-cache-semantics@4.0.4': {}
    +  /@types/http-cache-semantics@4.0.4:
    +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    +    dev: false
     
    -  '@types/http-errors@2.0.4': {}
    +  /@types/http-errors@2.0.4:
    +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
     
    -  '@types/http-proxy@1.17.14':
    +  /@types/http-proxy@1.17.14:
    +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/istanbul-lib-coverage@2.0.6': {}
    +  /@types/istanbul-lib-coverage@2.0.6:
    +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
     
    -  '@types/istanbul-lib-report@3.0.3':
    +  /@types/istanbul-lib-report@3.0.3:
    +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
         dependencies:
           '@types/istanbul-lib-coverage': 2.0.6
     
    -  '@types/istanbul-reports@3.0.4':
    +  /@types/istanbul-reports@3.0.4:
    +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
         dependencies:
           '@types/istanbul-lib-report': 3.0.3
     
    -  '@types/jest@29.5.12':
    +  /@types/jest@29.5.12:
    +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
         dependencies:
           expect: 29.7.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  '@types/js-cookie@2.2.7': {}
    +  /@types/js-cookie@2.2.7:
    +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    +    dev: false
     
    -  '@types/js-yaml@4.0.9': {}
    +  /@types/js-yaml@4.0.9:
    +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
     
    -  '@types/jsdom@20.0.1':
    +  /@types/jsdom@20.0.1:
    +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
         dependencies:
           '@types/node': 18.18.2
           '@types/tough-cookie': 4.0.5
           parse5: 7.1.2
    +    dev: true
     
    -  '@types/json-schema@7.0.15': {}
    +  /@types/json-schema@7.0.15:
    +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
     
    -  '@types/json5@0.0.29': {}
    +  /@types/json5@0.0.29:
    +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    +    dev: true
     
    -  '@types/jsonfile@6.1.4':
    +  /@types/jsonfile@6.1.4:
    +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/lodash@4.17.0': {}
    +  /@types/lodash@4.17.0:
    +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
     
    -  '@types/mdast@4.0.3':
    +  /@types/mdast@4.0.3:
    +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  '@types/mdx-js__react@1.5.8':
    +  /@types/mdx-js__react@1.5.8:
    +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/mdx@2.0.12': {}
    +  /@types/mdx@2.0.12:
    +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
     
    -  '@types/mime@1.3.5': {}
    +  /@types/mime@1.3.5:
    +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
     
    -  '@types/mime@3.0.4': {}
    +  /@types/mime@3.0.4:
    +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
     
    -  '@types/minimatch@3.0.5': {}
    +  /@types/minimatch@3.0.5:
    +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
     
    -  '@types/minimatch@5.1.2': {}
    +  /@types/minimatch@5.1.2:
    +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    +    dev: true
     
    -  '@types/minimist@1.2.5': {}
    +  /@types/minimist@1.2.5:
    +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    +    dev: true
     
    -  '@types/mocha@10.0.6': {}
    +  /@types/mocha@10.0.6:
    +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    +    dev: true
     
    -  '@types/moo@0.5.9': {}
    +  /@types/moo@0.5.9:
    +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    +    dev: true
     
    -  '@types/ms@0.7.34': {}
    +  /@types/ms@0.7.34:
    +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
     
    -  '@types/nearley@2.11.5(patch_hash=5bomp3nnmdzdyzcgrxyr5kymae)': {}
    +  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
    +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    +    dev: true
    +    patched: true
     
    -  '@types/node-forge@1.3.11':
    +  /@types/node-forge@1.3.11:
    +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/node@15.14.9': {}
    +  /@types/node@15.14.9:
    +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
     
    -  '@types/node@17.0.45': {}
    +  /@types/node@17.0.45:
    +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    +    dev: false
     
    -  '@types/node@18.18.2': {}
    +  /@types/node@18.18.2:
    +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
     
    -  '@types/normalize-package-data@2.4.4': {}
    +  /@types/normalize-package-data@2.4.4:
    +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
     
    -  '@types/normalize-path@3.0.2': {}
    +  /@types/normalize-path@3.0.2:
    +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    +    dev: false
     
    -  '@types/parse-json@4.0.2': {}
    +  /@types/parse-json@4.0.2:
    +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    +    dev: false
     
    -  '@types/prismjs@1.26.3': {}
    +  /@types/prismjs@1.26.3:
    +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    +    dev: false
     
    -  '@types/prop-types@15.7.12': {}
    +  /@types/prop-types@15.7.12:
    +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
     
    -  '@types/qs@6.9.14': {}
    +  /@types/qs@6.9.14:
    +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
     
    -  '@types/range-parser@1.2.7': {}
    +  /@types/range-parser@1.2.7:
    +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
     
    -  '@types/react-dom@18.2.22':
    +  /@types/react-dom@18.2.22:
    +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/react-helmet@6.1.11':
    +  /@types/react-helmet@6.1.11:
    +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/react-router-config@5.0.11':
    +  /@types/react-router-config@5.0.11:
    +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  '@types/react-router-dom@5.3.3':
    +  /@types/react-router-dom@5.3.3:
    +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  '@types/react-router@5.1.20':
    +  /@types/react-router@5.1.20:
    +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
     
    -  '@types/react@18.2.71':
    +  /@types/react@18.2.71:
    +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
         dependencies:
           '@types/prop-types': 15.7.12
           '@types/scheduler': 0.23.0
           csstype: 3.1.3
     
    -  '@types/retry@0.12.0': {}
    +  /@types/retry@0.12.0:
    +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    +    dev: false
     
    -  '@types/retry@0.12.2': {}
    +  /@types/retry@0.12.2:
    +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
     
    -  '@types/sax@1.2.7':
    +  /@types/sax@1.2.7:
    +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: false
     
    -  '@types/sbd@1.0.5': {}
    +  /@types/sbd@1.0.5:
    +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    +    dev: true
     
    -  '@types/scheduler@0.23.0': {}
    +  /@types/scheduler@0.23.0:
    +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
     
    -  '@types/semver@7.5.8': {}
    +  /@types/semver@7.5.8:
    +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    +    dev: true
     
    -  '@types/send@0.17.4':
    +  /@types/send@0.17.4:
    +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
         dependencies:
           '@types/mime': 1.3.5
           '@types/node': 18.18.2
     
    -  '@types/serve-index@1.9.4':
    +  /@types/serve-index@1.9.4:
    +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
         dependencies:
           '@types/express': 4.17.21
     
    -  '@types/serve-static@1.15.5':
    +  /@types/serve-static@1.15.5:
    +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
         dependencies:
           '@types/http-errors': 2.0.4
           '@types/mime': 3.0.4
           '@types/node': 18.18.2
     
    -  '@types/sinon@17.0.3':
    +  /@types/sinon@17.0.3:
    +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
         dependencies:
           '@types/sinonjs__fake-timers': 8.1.5
     
    -  '@types/sinonjs__fake-timers@8.1.5': {}
    +  /@types/sinonjs__fake-timers@8.1.5:
    +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
     
    -  '@types/sockjs@0.3.36':
    +  /@types/sockjs@0.3.36:
    +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/ssri@7.1.5':
    +  /@types/ssri@7.1.5:
    +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/stack-utils@2.0.3': {}
    +  /@types/stack-utils@2.0.3:
    +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    +    dev: true
     
    -  '@types/tinycolor2@1.4.6': {}
    +  /@types/tinycolor2@1.4.6:
    +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    +    dev: true
     
    -  '@types/tough-cookie@4.0.5': {}
    +  /@types/tough-cookie@4.0.5:
    +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    +    dev: true
     
    -  '@types/triple-beam@1.3.5': {}
    +  /@types/triple-beam@1.3.5:
    +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
     
    -  '@types/unist@2.0.10': {}
    +  /@types/unist@2.0.10:
    +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
     
    -  '@types/unist@3.0.2': {}
    +  /@types/unist@3.0.2:
    +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
     
    -  '@types/uuid@9.0.8': {}
    +  /@types/uuid@9.0.8:
    +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
     
    -  '@types/vinyl@2.0.11':
    +  /@types/vinyl@2.0.11:
    +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
         dependencies:
           '@types/expect': 1.20.4
           '@types/node': 18.18.2
     
    -  '@types/vscode@1.75.1': {}
    +  /@types/vscode@1.75.1:
    +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
     
    -  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
    +  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
    +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
         dependencies:
           '@types/node': 18.18.2
           tapable: 2.2.1
    @@ -12954,18 +5569,31 @@ snapshots:
           - esbuild
           - uglify-js
           - webpack-cli
    +    dev: true
     
    -  '@types/ws@8.5.10':
    +  /@types/ws@8.5.10:
    +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/yargs-parser@21.0.3': {}
    +  /@types/yargs-parser@21.0.3:
    +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
     
    -  '@types/yargs@17.0.32':
    +  /@types/yargs@17.0.32:
    +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
         dependencies:
           '@types/yargs-parser': 21.0.3
     
    -  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^7.0.0
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@eslint-community/regexpp': 4.10.0
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -12983,8 +5611,17 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      eslint: ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/scope-manager': 6.21.0
           '@typescript-eslint/types': 6.21.0
    @@ -12995,8 +5632,17 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/scope-manager': 7.4.0
           '@typescript-eslint/types': 7.4.0
    @@ -13007,18 +5653,33 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/scope-manager@6.21.0':
    +  /@typescript-eslint/scope-manager@6.21.0:
    +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    +    dev: true
     
    -  '@typescript-eslint/scope-manager@7.4.0':
    +  /@typescript-eslint/scope-manager@7.4.0:
    +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    +    dev: true
     
    -  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
           '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -13028,12 +5689,26 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/types@6.21.0': {}
    +  /@typescript-eslint/types@6.21.0:
    +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    dev: true
     
    -  '@typescript-eslint/types@7.4.0': {}
    +  /@typescript-eslint/types@7.4.0:
    +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    dev: true
     
    -  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
    +  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    @@ -13046,8 +5721,16 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
    +  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    @@ -13060,8 +5743,13 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@types/json-schema': 7.0.15
    @@ -13074,20 +5762,30 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@typescript-eslint/visitor-keys@6.21.0':
    +  /@typescript-eslint/visitor-keys@6.21.0:
    +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
         dependencies:
           '@typescript-eslint/types': 6.21.0
           eslint-visitor-keys: 3.4.3
    +    dev: true
     
    -  '@typescript-eslint/visitor-keys@7.4.0':
    +  /@typescript-eslint/visitor-keys@7.4.0:
    +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
         dependencies:
           '@typescript-eslint/types': 7.4.0
           eslint-visitor-keys: 3.4.3
    +    dev: true
     
    -  '@ungap/structured-clone@1.2.0': {}
    +  /@ungap/structured-clone@1.2.0:
    +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
     
    -  '@vscode/test-electron@2.3.9':
    +  /@vscode/test-electron@2.3.9:
    +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    +    engines: {node: '>=16'}
         dependencies:
           http-proxy-agent: 4.0.1
           https-proxy-agent: 5.0.1
    @@ -13095,44 +5793,56 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@webassemblyjs/ast@1.12.1':
    +  /@webassemblyjs/ast@1.12.1:
    +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
         dependencies:
           '@webassemblyjs/helper-numbers': 1.11.6
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
     
    -  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
    +  /@webassemblyjs/floating-point-hex-parser@1.11.6:
    +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
     
    -  '@webassemblyjs/helper-api-error@1.11.6': {}
    +  /@webassemblyjs/helper-api-error@1.11.6:
    +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
     
    -  '@webassemblyjs/helper-buffer@1.12.1': {}
    +  /@webassemblyjs/helper-buffer@1.12.1:
    +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
     
    -  '@webassemblyjs/helper-numbers@1.11.6':
    +  /@webassemblyjs/helper-numbers@1.11.6:
    +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
         dependencies:
           '@webassemblyjs/floating-point-hex-parser': 1.11.6
           '@webassemblyjs/helper-api-error': 1.11.6
           '@xtuc/long': 4.2.2
     
    -  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
    +  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
    +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
     
    -  '@webassemblyjs/helper-wasm-section@1.12.1':
    +  /@webassemblyjs/helper-wasm-section@1.12.1:
    +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
           '@webassemblyjs/wasm-gen': 1.12.1
     
    -  '@webassemblyjs/ieee754@1.11.6':
    +  /@webassemblyjs/ieee754@1.11.6:
    +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
         dependencies:
           '@xtuc/ieee754': 1.2.0
     
    -  '@webassemblyjs/leb128@1.11.6':
    +  /@webassemblyjs/leb128@1.11.6:
    +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
         dependencies:
           '@xtuc/long': 4.2.2
     
    -  '@webassemblyjs/utf8@1.11.6': {}
    +  /@webassemblyjs/utf8@1.11.6:
    +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
     
    -  '@webassemblyjs/wasm-edit@1.12.1':
    +  /@webassemblyjs/wasm-edit@1.12.1:
    +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
    @@ -13143,7 +5853,8 @@ snapshots:
           '@webassemblyjs/wasm-parser': 1.12.1
           '@webassemblyjs/wast-printer': 1.12.1
     
    -  '@webassemblyjs/wasm-gen@1.12.1':
    +  /@webassemblyjs/wasm-gen@1.12.1:
    +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
    @@ -13151,14 +5862,16 @@ snapshots:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  '@webassemblyjs/wasm-opt@1.12.1':
    +  /@webassemblyjs/wasm-opt@1.12.1:
    +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/wasm-gen': 1.12.1
           '@webassemblyjs/wasm-parser': 1.12.1
     
    -  '@webassemblyjs/wasm-parser@1.12.1':
    +  /@webassemblyjs/wasm-parser@1.12.1:
    +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-api-error': 1.11.6
    @@ -13167,17 +5880,32 @@ snapshots:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  '@webassemblyjs/wast-printer@1.12.1':
    +  /@webassemblyjs/wast-printer@1.12.1:
    +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@xtuc/long': 4.2.2
     
    -  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      prettier: '*'
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +    peerDependenciesMeta:
    +      prettier:
    +        optional: true
         dependencies:
           prettier: 3.2.5
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    @@ -13190,125 +5918,207 @@ snapshots:
           - mem-fs
           - supports-color
     
    -  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
    +  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      webpack-dev-server:
    +        optional: true
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
     
    -  '@xobotyi/scrollbar-width@1.9.5': {}
    +  /@xobotyi/scrollbar-width@1.9.5:
    +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    +    dev: false
     
    -  '@xtuc/ieee754@1.2.0': {}
    +  /@xtuc/ieee754@1.2.0:
    +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
     
    -  '@xtuc/long@4.2.2': {}
    +  /@xtuc/long@4.2.2:
    +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
     
    -  '@zkochan/js-yaml@0.0.7':
    +  /@zkochan/js-yaml@0.0.7:
    +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    +    hasBin: true
         dependencies:
           argparse: 2.0.1
    +    dev: false
     
    -  '@zkochan/retry@0.2.0': {}
    +  /@zkochan/retry@0.2.0:
    +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  '@zkochan/rimraf@2.1.3':
    +  /@zkochan/rimraf@2.1.3:
    +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    +    engines: {node: '>=12.10'}
         dependencies:
           rimraf: 3.0.2
    +    dev: false
     
    -  '@zkochan/which@2.0.3':
    +  /@zkochan/which@2.0.3:
    +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  abab@2.0.6: {}
    +  /abab@2.0.6:
    +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    +    deprecated: Use your platform's native atob() and btoa() methods instead
    +    dev: true
     
    -  abbrev@1.1.1: {}
    +  /abbrev@1.1.1:
    +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
     
    -  abort-controller@3.0.0:
    +  /abort-controller@3.0.0:
    +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    +    engines: {node: '>=6.5'}
         dependencies:
           event-target-shim: 5.0.1
     
    -  accepts@1.3.8:
    +  /accepts@1.3.8:
    +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-types: 2.1.35
           negotiator: 0.6.3
     
    -  acorn-globals@7.0.1:
    +  /acorn-globals@7.0.1:
    +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
         dependencies:
           acorn: 8.11.3
           acorn-walk: 8.3.2
    +    dev: true
     
    -  acorn-import-assertions@1.9.0(acorn@8.11.3):
    +  /acorn-import-assertions@1.9.0(acorn@8.11.3):
    +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    +    peerDependencies:
    +      acorn: ^8
         dependencies:
           acorn: 8.11.3
     
    -  acorn-jsx@5.3.2(acorn@8.11.3):
    +  /acorn-jsx@5.3.2(acorn@8.11.3):
    +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    +    peerDependencies:
    +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
         dependencies:
           acorn: 8.11.3
     
    -  acorn-walk@8.3.2: {}
    +  /acorn-walk@8.3.2:
    +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    +    engines: {node: '>=0.4.0'}
     
    -  acorn@8.11.3: {}
    +  /acorn@8.11.3:
    +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    +    engines: {node: '>=0.4.0'}
    +    hasBin: true
     
    -  address@1.2.2: {}
    +  /address@1.2.2:
    +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    +    engines: {node: '>= 10.0.0'}
    +    dev: false
     
    -  agent-base@6.0.2:
    +  /agent-base@6.0.2:
    +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    +    engines: {node: '>= 6.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  agentkeepalive@4.2.1:
    +  /agentkeepalive@4.2.1:
    +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    +    engines: {node: '>= 8.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           depd: 1.1.2
           humanize-ms: 1.2.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  agentkeepalive@4.5.0:
    +  /agentkeepalive@4.5.0:
    +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    +    engines: {node: '>= 8.0.0'}
         dependencies:
           humanize-ms: 1.2.1
     
    -  aggregate-error@3.1.0:
    +  /aggregate-error@3.1.0:
    +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    +    engines: {node: '>=8'}
         dependencies:
           clean-stack: 2.2.0
           indent-string: 4.0.0
     
    -  ajv-formats@2.1.1(ajv@8.12.0):
    +  /ajv-formats@2.1.1(ajv@8.12.0):
    +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    +    peerDependencies:
    +      ajv: ^8.0.0
    +    peerDependenciesMeta:
    +      ajv:
    +        optional: true
         dependencies:
           ajv: 8.12.0
     
    -  ajv-keywords@3.5.2(ajv@6.12.6):
    +  /ajv-keywords@3.5.2(ajv@6.12.6):
    +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    +    peerDependencies:
    +      ajv: ^6.9.1
         dependencies:
           ajv: 6.12.6
     
    -  ajv-keywords@5.1.0(ajv@8.12.0):
    +  /ajv-keywords@5.1.0(ajv@8.12.0):
    +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    +    peerDependencies:
    +      ajv: ^8.8.2
         dependencies:
           ajv: 8.12.0
           fast-deep-equal: 3.1.3
     
    -  ajv@6.12.6:
    +  /ajv@6.12.6:
    +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
         dependencies:
           fast-deep-equal: 3.1.3
           fast-json-stable-stringify: 2.1.0
           json-schema-traverse: 0.4.1
           uri-js: 4.4.1
     
    -  ajv@8.12.0:
    +  /ajv@8.12.0:
    +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
         dependencies:
           fast-deep-equal: 3.1.3
           json-schema-traverse: 1.0.0
           require-from-string: 2.0.2
           uri-js: 4.4.1
     
    -  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    +  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    +    peerDependencies:
    +      algoliasearch: '>= 3.1 < 6'
         dependencies:
           '@algolia/events': 4.0.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  algoliasearch@4.22.1:
    +  /algoliasearch@4.22.1:
    +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
         dependencies:
           '@algolia/cache-browser-local-storage': 4.22.1
           '@algolia/cache-common': 4.22.1
    @@ -13324,96 +6134,157 @@ snapshots:
           '@algolia/requester-common': 4.22.1
           '@algolia/requester-node-http': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  ansi-align@3.0.1:
    +  /ansi-align@3.0.1:
    +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
         dependencies:
           string-width: 4.2.3
     
    -  ansi-colors@4.1.1: {}
    +  /ansi-colors@4.1.1:
    +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  ansi-colors@4.1.3: {}
    +  /ansi-colors@4.1.3:
    +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  ansi-diff@1.1.1:
    +  /ansi-diff@1.1.1:
    +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
         dependencies:
           ansi-split: 1.0.1
    +    dev: true
     
    -  ansi-escapes@4.3.2:
    +  /ansi-escapes@4.3.2:
    +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    +    engines: {node: '>=8'}
         dependencies:
           type-fest: 0.21.3
     
    -  ansi-html-community@0.0.8: {}
    +  /ansi-html-community@0.0.8:
    +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    +    engines: {'0': node >= 0.8.0}
    +    hasBin: true
     
    -  ansi-regex@3.0.1: {}
    +  /ansi-regex@3.0.1:
    +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  ansi-regex@5.0.1: {}
    +  /ansi-regex@5.0.1:
    +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    +    engines: {node: '>=8'}
     
    -  ansi-regex@6.0.1: {}
    +  /ansi-regex@6.0.1:
    +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    +    engines: {node: '>=12'}
     
    -  ansi-split@1.0.1:
    +  /ansi-split@1.0.1:
    +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
         dependencies:
           ansi-regex: 3.0.1
    +    dev: true
     
    -  ansi-styles@3.2.1:
    +  /ansi-styles@3.2.1:
    +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    +    engines: {node: '>=4'}
         dependencies:
           color-convert: 1.9.3
     
    -  ansi-styles@4.3.0:
    +  /ansi-styles@4.3.0:
    +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    +    engines: {node: '>=8'}
         dependencies:
           color-convert: 2.0.1
     
    -  ansi-styles@5.2.0: {}
    +  /ansi-styles@5.2.0:
    +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  ansi-styles@6.2.1: {}
    +  /ansi-styles@6.2.1:
    +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    +    engines: {node: '>=12'}
     
    -  any-promise@1.3.0: {}
    +  /any-promise@1.3.0:
    +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    +    dev: true
     
    -  anymatch@3.1.3:
    +  /anymatch@3.1.3:
    +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    +    engines: {node: '>= 8'}
         dependencies:
           normalize-path: 3.0.0
           picomatch: 2.3.1
     
    -  aproba@2.0.0: {}
    +  /aproba@2.0.0:
    +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
     
    -  archy@1.0.0: {}
    +  /archy@1.0.0:
    +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    +    dev: true
     
    -  are-we-there-yet@2.0.0:
    +  /are-we-there-yet@2.0.0:
    +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    +    engines: {node: '>=10'}
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  are-we-there-yet@3.0.1:
    +  /are-we-there-yet@3.0.1:
    +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  arg@4.1.3: {}
    +  /arg@4.1.3:
    +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    +    dev: true
     
    -  arg@5.0.2: {}
    +  /arg@5.0.2:
    +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
     
    -  argparse@1.0.10:
    +  /argparse@1.0.10:
    +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
         dependencies:
           sprintf-js: 1.0.3
     
    -  argparse@2.0.1: {}
    +  /argparse@2.0.1:
    +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
     
    -  aria-query@5.1.3:
    +  /aria-query@5.1.3:
    +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
         dependencies:
           deep-equal: 2.2.3
    +    dev: true
     
    -  aria-query@5.3.0:
    +  /aria-query@5.3.0:
    +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
         dependencies:
           dequal: 2.0.3
    +    dev: true
     
    -  array-buffer-byte-length@1.0.1:
    +  /array-buffer-byte-length@1.0.1:
    +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           is-array-buffer: 3.0.4
    +    dev: true
     
    -  array-differ@3.0.0: {}
    +  /array-differ@3.0.0:
    +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    +    engines: {node: '>=8'}
     
    -  array-flatten@1.1.1: {}
    +  /array-flatten@1.1.1:
    +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
     
    -  array-includes@3.1.8:
    +  /array-includes@3.1.8:
    +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13421,10 +6292,15 @@ snapshots:
           es-object-atoms: 1.0.0
           get-intrinsic: 1.2.4
           is-string: 1.0.7
    +    dev: true
     
    -  array-union@2.1.0: {}
    +  /array-union@2.1.0:
    +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    +    engines: {node: '>=8'}
     
    -  array.prototype.findlast@1.2.5:
    +  /array.prototype.findlast@1.2.5:
    +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13432,8 +6308,11 @@ snapshots:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.findlastindex@1.2.5:
    +  /array.prototype.findlastindex@1.2.5:
    +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13441,37 +6320,50 @@ snapshots:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.flat@1.3.2:
    +  /array.prototype.flat@1.3.2:
    +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.flatmap@1.3.2:
    +  /array.prototype.flatmap@1.3.2:
    +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.toreversed@1.1.2:
    +  /array.prototype.toreversed@1.1.2:
    +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.tosorted@1.1.3:
    +  /array.prototype.tosorted@1.1.3:
    +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-errors: 1.3.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  arraybuffer.prototype.slice@1.0.3:
    +  /arraybuffer.prototype.slice@1.0.3:
    +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -13481,34 +6373,63 @@ snapshots:
           get-intrinsic: 1.2.4
           is-array-buffer: 3.0.4
           is-shared-array-buffer: 1.0.3
    +    dev: true
     
    -  arrify@1.0.1: {}
    +  /arrify@1.0.1:
    +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  arrify@2.0.1: {}
    +  /arrify@2.0.1:
    +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    +    engines: {node: '>=8'}
     
    -  as-table@1.0.55:
    +  /as-table@1.0.55:
    +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
         dependencies:
           printable-characters: 1.0.42
    +    dev: true
     
    -  asap@2.0.6: {}
    +  /asap@2.0.6:
    +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
     
    -  assertion-error@2.0.1: {}
    +  /assertion-error@2.0.1:
    +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  ast-types-flow@0.0.8: {}
    +  /ast-types-flow@0.0.8:
    +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    +    dev: true
     
    -  astring@1.8.6: {}
    +  /astring@1.8.6:
    +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    +    hasBin: true
     
    -  async@2.6.4:
    +  /async@2.6.4:
    +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
         dependencies:
           lodash: 4.17.21
    +    dev: true
     
    -  async@3.2.5: {}
    +  /async@3.2.5:
    +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
     
    -  asynckit@0.4.0: {}
    +  /asynckit@0.4.0:
    +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    +    dev: true
     
    -  at-least-node@1.0.0: {}
    +  /at-least-node@1.0.0:
    +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    +    engines: {node: '>= 4.0.0'}
    +    dev: false
     
    -  autoprefixer@10.4.19(postcss@8.4.38):
    +  /autoprefixer@10.4.19(postcss@8.4.38):
    +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    hasBin: true
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
    @@ -13518,17 +6439,29 @@ snapshots:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
     
    -  available-typed-arrays@1.0.7:
    +  /available-typed-arrays@1.0.7:
    +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           possible-typed-array-names: 1.0.0
    +    dev: true
     
    -  axe-core@4.7.0: {}
    +  /axe-core@4.7.0:
    +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  axobject-query@3.2.1:
    +  /axobject-query@3.2.1:
    +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
         dependencies:
           dequal: 2.0.3
    +    dev: true
     
    -  babel-jest@29.7.0(@babel/core@7.24.3):
    +  /babel-jest@29.7.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.8.0
         dependencies:
           '@babel/core': 7.24.3
           '@jest/transform': 29.7.0
    @@ -13540,19 +6473,30 @@ snapshots:
           slash: 3.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    +  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +      webpack: '>=5'
         dependencies:
           '@babel/core': 7.24.3
           find-cache-dir: 4.0.0
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  babel-plugin-dynamic-import-node@2.3.3:
    +  /babel-plugin-dynamic-import-node@2.3.3:
    +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
         dependencies:
           object.assign: 4.1.5
    +    dev: false
     
    -  babel-plugin-istanbul@6.1.1:
    +  /babel-plugin-istanbul@6.1.1:
    +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/helper-plugin-utils': 7.24.0
           '@istanbuljs/load-nyc-config': 1.1.0
    @@ -13561,15 +6505,22 @@ snapshots:
           test-exclude: 6.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  babel-plugin-jest-hoist@29.6.3:
    +  /babel-plugin-jest-hoist@29.6.3:
    +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
           '@types/babel__core': 7.20.5
           '@types/babel__traverse': 7.20.5
    +    dev: true
     
    -  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -13578,7 +6529,10 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
    @@ -13586,14 +6540,20 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
         transitivePeerDependencies:
           - supports-color
     
    -  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    +  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
    @@ -13608,34 +6568,55 @@ snapshots:
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
    +    dev: true
     
    -  babel-preset-jest@29.6.3(@babel/core@7.24.3):
    +  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           babel-plugin-jest-hoist: 29.6.3
           babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
    +    dev: true
     
    -  bail@2.0.2: {}
    +  /bail@2.0.2:
    +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
     
    -  balanced-match@1.0.2: {}
    +  /balanced-match@1.0.2:
    +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
     
    -  base64-js@1.5.1: {}
    +  /base64-js@1.5.1:
    +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
     
    -  basic-auth@2.0.1:
    +  /basic-auth@2.0.1:
    +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           safe-buffer: 5.1.2
    +    dev: true
     
    -  batch@0.6.1: {}
    +  /batch@0.6.1:
    +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
     
    -  before-after-hook@2.2.3: {}
    +  /before-after-hook@2.2.3:
    +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
     
    -  better-path-resolve@1.0.0:
    +  /better-path-resolve@1.0.0:
    +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    +    engines: {node: '>=4'}
         dependencies:
           is-windows: 1.0.2
    +    dev: true
     
    -  big.js@5.2.2: {}
    +  /big.js@5.2.2:
    +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    +    dev: false
     
    -  bin-links@3.0.3:
    +  /bin-links@3.0.3:
    +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           cmd-shim: 5.0.0
           mkdirp-infer-owner: 2.0.0
    @@ -13644,17 +6625,24 @@ snapshots:
           rimraf: 3.0.2
           write-file-atomic: 4.0.2
     
    -  binary-extensions@2.3.0: {}
    +  /binary-extensions@2.3.0:
    +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    +    engines: {node: '>=8'}
     
    -  binaryextensions@4.19.0: {}
    +  /binaryextensions@4.19.0:
    +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    +    engines: {node: '>=0.8'}
     
    -  bl@4.1.0:
    +  /bl@4.1.0:
    +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
         dependencies:
           buffer: 5.7.1
           inherits: 2.0.4
           readable-stream: 3.6.2
     
    -  body-parser@1.20.2:
    +  /body-parser@1.20.2:
    +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
         dependencies:
           bytes: 3.1.2
           content-type: 1.0.5
    @@ -13671,19 +6659,24 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  bole@5.0.11:
    +  /bole@5.0.11:
    +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
         dependencies:
           fast-safe-stringify: 2.1.1
           individual: 3.0.0
     
    -  bonjour-service@1.2.1:
    +  /bonjour-service@1.2.1:
    +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
         dependencies:
           fast-deep-equal: 3.1.3
           multicast-dns: 7.2.5
     
    -  boolbase@1.0.0: {}
    +  /boolbase@1.0.0:
    +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
     
    -  boxen@5.1.2:
    +  /boxen@5.1.2:
    +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -13693,8 +6686,11 @@ snapshots:
           type-fest: 0.20.2
           widest-line: 3.1.0
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  boxen@6.2.1:
    +  /boxen@6.2.1:
    +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -13704,8 +6700,11 @@ snapshots:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    +    dev: false
     
    -  boxen@7.1.1:
    +  /boxen@7.1.1:
    +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    +    engines: {node: '>=14.16'}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 7.0.1
    @@ -13715,70 +6714,104 @@ snapshots:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    +    dev: false
     
    -  brace-expansion@1.1.11:
    +  /brace-expansion@1.1.11:
    +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
         dependencies:
           balanced-match: 1.0.2
           concat-map: 0.0.1
     
    -  brace-expansion@2.0.1:
    +  /brace-expansion@2.0.1:
    +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
         dependencies:
           balanced-match: 1.0.2
     
    -  braces@3.0.2:
    +  /braces@3.0.2:
    +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    +    engines: {node: '>=8'}
         dependencies:
           fill-range: 7.0.1
     
    -  browser-stdout@1.3.1: {}
    +  /browser-stdout@1.3.1:
    +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    +    dev: true
     
    -  browserslist@4.23.0:
    +  /browserslist@4.23.0:
    +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    +    hasBin: true
         dependencies:
           caniuse-lite: 1.0.30001600
           electron-to-chromium: 1.4.717
           node-releases: 2.0.14
           update-browserslist-db: 1.0.13(browserslist@4.23.0)
     
    -  bs-logger@0.2.6:
    +  /bs-logger@0.2.6:
    +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    +    engines: {node: '>= 6'}
         dependencies:
           fast-json-stable-stringify: 2.1.0
    +    dev: true
     
    -  bser@2.1.1:
    +  /bser@2.1.1:
    +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
         dependencies:
           node-int64: 0.4.0
    +    dev: true
     
    -  buffer-from@1.1.2: {}
    +  /buffer-from@1.1.2:
    +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
     
    -  buffer@5.7.1:
    +  /buffer@5.7.1:
    +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  buffer@6.0.3:
    +  /buffer@6.0.3:
    +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  builtin-modules@3.3.0: {}
    +  /builtin-modules@3.3.0:
    +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  builtins@1.0.3: {}
    +  /builtins@1.0.3:
    +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
     
    -  builtins@5.0.1:
    +  /builtins@5.0.1:
    +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
         dependencies:
           semver: 7.6.0
     
    -  bundle-name@4.1.0:
    +  /bundle-name@4.1.0:
    +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    +    engines: {node: '>=18'}
         dependencies:
           run-applescript: 7.0.0
     
    -  busboy@1.6.0:
    +  /busboy@1.6.0:
    +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    +    engines: {node: '>=10.16.0'}
         dependencies:
           streamsearch: 1.1.0
    +    dev: false
     
    -  bytes@3.0.0: {}
    +  /bytes@3.0.0:
    +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    +    engines: {node: '>= 0.8'}
     
    -  bytes@3.1.2: {}
    +  /bytes@3.1.2:
    +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    +    engines: {node: '>= 0.8'}
     
    -  cacache@15.3.0:
    +  /cacache@15.3.0:
    +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           '@npmcli/fs': 1.1.1
           '@npmcli/move-file': 1.1.2
    @@ -13801,7 +6834,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  cacache@16.1.3:
    +  /cacache@16.1.3:
    +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@npmcli/fs': 2.1.2
           '@npmcli/move-file': 2.0.1
    @@ -13824,7 +6859,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  cacache@17.1.4:
    +  /cacache@17.1.4:
    +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/fs': 3.1.0
           fs-minipass: 3.0.3
    @@ -13839,9 +6876,14 @@ snapshots:
           tar: 6.2.1
           unique-filename: 3.0.0
     
    -  cacheable-lookup@7.0.0: {}
    +  /cacheable-lookup@7.0.0:
    +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  cacheable-request@10.2.14:
    +  /cacheable-request@10.2.14:
    +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    +    engines: {node: '>=14.16'}
         dependencies:
           '@types/http-cache-semantics': 4.0.4
           get-stream: 6.0.1
    @@ -13850,8 +6892,11 @@ snapshots:
           mimic-response: 4.0.0
           normalize-url: 8.0.1
           responselike: 3.0.0
    +    dev: false
     
    -  call-bind@1.0.7:
    +  /call-bind@1.0.7:
    +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
    @@ -13859,85 +6904,133 @@ snapshots:
           get-intrinsic: 1.2.4
           set-function-length: 1.2.2
     
    -  callsites@3.1.0: {}
    +  /callsites@3.1.0:
    +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    +    engines: {node: '>=6'}
     
    -  camel-case@4.1.2:
    +  /camel-case@4.1.2:
    +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
         dependencies:
           pascal-case: 3.1.2
           tslib: 2.6.2
     
    -  camelcase-css@2.0.1: {}
    +  /camelcase-css@2.0.1:
    +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  camelcase-keys@6.2.2:
    +  /camelcase-keys@6.2.2:
    +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    +    engines: {node: '>=8'}
         dependencies:
           camelcase: 5.3.1
           map-obj: 4.3.0
           quick-lru: 4.0.1
    +    dev: true
     
    -  camelcase-keys@7.0.2:
    +  /camelcase-keys@7.0.2:
    +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    +    engines: {node: '>=12'}
         dependencies:
           camelcase: 6.3.0
           map-obj: 4.3.0
           quick-lru: 5.1.1
           type-fest: 1.4.0
    +    dev: true
     
    -  camelcase@5.3.1: {}
    +  /camelcase@5.3.1:
    +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  camelcase@6.3.0: {}
    +  /camelcase@6.3.0:
    +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    +    engines: {node: '>=10'}
     
    -  camelcase@7.0.1: {}
    +  /camelcase@7.0.1:
    +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  can-write-to-dir@1.1.1:
    +  /can-write-to-dir@1.1.1:
    +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    +    engines: {node: '>=10.13'}
         dependencies:
           path-temp: 2.1.0
    +    dev: true
     
    -  caniuse-api@3.0.0:
    +  /caniuse-api@3.0.0:
    +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
           lodash.memoize: 4.1.2
           lodash.uniq: 4.5.0
    +    dev: false
     
    -  caniuse-lite@1.0.30001600: {}
    +  /caniuse-lite@1.0.30001600:
    +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
     
    -  ccount@2.0.1: {}
    +  /ccount@2.0.1:
    +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
     
    -  chai@5.1.0:
    +  /chai@5.1.0:
    +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    +    engines: {node: '>=12'}
         dependencies:
           assertion-error: 2.0.1
           check-error: 2.0.0
           deep-eql: 5.0.1
           loupe: 3.1.0
           pathval: 2.0.0
    +    dev: true
     
    -  chalk@2.4.2:
    +  /chalk@2.4.2:
    +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    +    engines: {node: '>=4'}
         dependencies:
           ansi-styles: 3.2.1
           escape-string-regexp: 1.0.5
           supports-color: 5.5.0
     
    -  chalk@4.1.2:
    +  /chalk@4.1.2:
    +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-styles: 4.3.0
           supports-color: 7.2.0
     
    -  chalk@5.3.0: {}
    +  /chalk@5.3.0:
    +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    +    dev: false
     
    -  char-regex@1.0.2: {}
    +  /char-regex@1.0.2:
    +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    +    engines: {node: '>=10'}
     
    -  character-entities-html4@2.1.0: {}
    +  /character-entities-html4@2.1.0:
    +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
     
    -  character-entities-legacy@3.0.0: {}
    +  /character-entities-legacy@3.0.0:
    +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
     
    -  character-entities@2.0.2: {}
    +  /character-entities@2.0.2:
    +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
     
    -  character-reference-invalid@2.0.1: {}
    +  /character-reference-invalid@2.0.1:
    +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
     
    -  chardet@0.7.0: {}
    +  /chardet@0.7.0:
    +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
     
    -  check-error@2.0.0: {}
    +  /check-error@2.0.0:
    +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    +    engines: {node: '>= 16'}
    +    dev: true
     
    -  cheerio-select@2.1.0:
    +  /cheerio-select@2.1.0:
    +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
         dependencies:
           boolbase: 1.0.0
           css-select: 5.1.0
    @@ -13945,8 +7038,11 @@ snapshots:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
    +    dev: false
     
    -  cheerio@1.0.0-rc.12:
    +  /cheerio@1.0.0-rc.12:
    +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    +    engines: {node: '>= 6'}
         dependencies:
           cheerio-select: 2.1.0
           dom-serializer: 2.0.0
    @@ -13955,8 +7051,11 @@ snapshots:
           htmlparser2: 8.0.2
           parse5: 7.1.2
           parse5-htmlparser2-tree-adapter: 7.0.0
    +    dev: false
     
    -  chokidar@3.5.3:
    +  /chokidar@3.5.3:
    +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    +    engines: {node: '>= 8.10.0'}
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -13967,8 +7066,11 @@ snapshots:
           readdirp: 3.6.0
         optionalDependencies:
           fsevents: 2.3.3
    +    dev: true
     
    -  chokidar@3.6.0:
    +  /chokidar@3.6.0:
    +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    +    engines: {node: '>= 8.10.0'}
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -13980,169 +7082,282 @@ snapshots:
         optionalDependencies:
           fsevents: 2.3.3
     
    -  chownr@2.0.0: {}
    +  /chownr@2.0.0:
    +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    +    engines: {node: '>=10'}
     
    -  chrome-trace-event@1.0.3: {}
    +  /chrome-trace-event@1.0.3:
    +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    +    engines: {node: '>=6.0'}
     
    -  ci-info@3.9.0: {}
    +  /ci-info@3.9.0:
    +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    +    engines: {node: '>=8'}
     
    -  ci-info@4.0.0: {}
    +  /ci-info@4.0.0:
    +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  cjs-module-lexer@1.2.3: {}
    +  /cjs-module-lexer@1.2.3:
    +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    +    dev: true
     
    -  clean-css@5.3.3:
    +  /clean-css@5.3.3:
    +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    +    engines: {node: '>= 10.0'}
         dependencies:
           source-map: 0.6.1
     
    -  clean-regexp@1.0.0:
    +  /clean-regexp@1.0.0:
    +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    +    engines: {node: '>=4'}
         dependencies:
           escape-string-regexp: 1.0.5
    +    dev: true
     
    -  clean-stack@2.2.0: {}
    +  /clean-stack@2.2.0:
    +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    +    engines: {node: '>=6'}
     
    -  cli-boxes@2.2.1: {}
    +  /cli-boxes@2.2.1:
    +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  cli-boxes@3.0.0: {}
    +  /cli-boxes@3.0.0:
    +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  cli-columns@4.0.0:
    +  /cli-columns@4.0.0:
    +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
    +    dev: true
     
    -  cli-cursor@3.1.0:
    +  /cli-cursor@3.1.0:
    +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    +    engines: {node: '>=8'}
         dependencies:
           restore-cursor: 3.1.0
     
    -  cli-spinners@2.9.2: {}
    +  /cli-spinners@2.9.2:
    +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    +    engines: {node: '>=6'}
     
    -  cli-table3@0.6.4:
    +  /cli-table3@0.6.4:
    +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    +    engines: {node: 10.* || >= 12.*}
         dependencies:
           string-width: 4.2.3
         optionalDependencies:
           '@colors/colors': 1.5.0
    +    dev: false
     
    -  cli-table@0.3.11:
    +  /cli-table@0.3.11:
    +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    +    engines: {node: '>= 0.2.0'}
         dependencies:
           colors: 1.0.3
     
    -  cli-width@3.0.0: {}
    +  /cli-width@3.0.0:
    +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    +    engines: {node: '>= 10'}
     
    -  client-only@0.0.1: {}
    +  /client-only@0.0.1:
    +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    +    dev: false
     
    -  cliui@7.0.4:
    +  /cliui@7.0.4:
    +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  cliui@8.0.1:
    +  /cliui@8.0.1:
    +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  clone-buffer@1.0.0: {}
    +  /clone-buffer@1.0.0:
    +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    +    engines: {node: '>= 0.10'}
     
    -  clone-deep@4.0.1:
    +  /clone-deep@4.0.1:
    +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    +    engines: {node: '>=6'}
         dependencies:
           is-plain-object: 2.0.4
           kind-of: 6.0.3
           shallow-clone: 3.0.1
     
    -  clone-stats@1.0.0: {}
    +  /clone-stats@1.0.0:
    +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
     
    -  clone@1.0.4: {}
    +  /clone@1.0.4:
    +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    +    engines: {node: '>=0.8'}
     
    -  clone@2.1.2: {}
    +  /clone@2.1.2:
    +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    +    engines: {node: '>=0.8'}
     
    -  cloneable-readable@1.1.3:
    +  /cloneable-readable@1.1.3:
    +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
         dependencies:
           inherits: 2.0.4
           process-nextick-args: 2.0.1
           readable-stream: 2.3.8
     
    -  clsx@2.1.0: {}
    +  /clsx@2.1.0:
    +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  cmd-shim@5.0.0:
    +  /cmd-shim@5.0.0:
    +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           mkdirp-infer-owner: 2.0.0
     
    -  co@4.6.0: {}
    +  /co@4.6.0:
    +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    +    dev: true
     
    -  collapse-white-space@2.1.0: {}
    +  /collapse-white-space@2.1.0:
    +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
     
    -  collect-v8-coverage@1.0.2: {}
    +  /collect-v8-coverage@1.0.2:
    +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    +    dev: true
     
    -  color-convert@1.9.3:
    +  /color-convert@1.9.3:
    +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
         dependencies:
           color-name: 1.1.3
     
    -  color-convert@2.0.1:
    +  /color-convert@2.0.1:
    +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    +    engines: {node: '>=7.0.0'}
         dependencies:
           color-name: 1.1.4
     
    -  color-name@1.1.3: {}
    +  /color-name@1.1.3:
    +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
     
    -  color-name@1.1.4: {}
    +  /color-name@1.1.4:
    +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
     
    -  color-string@1.9.1:
    +  /color-string@1.9.1:
    +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
         dependencies:
           color-name: 1.1.4
           simple-swizzle: 0.2.2
     
    -  color-support@1.1.3: {}
    +  /color-support@1.1.3:
    +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    +    hasBin: true
     
    -  color@3.2.1:
    +  /color@3.2.1:
    +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
         dependencies:
           color-convert: 1.9.3
           color-string: 1.9.1
     
    -  colord@2.9.3: {}
    +  /colord@2.9.3:
    +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    +    dev: false
     
    -  colorette@2.0.20: {}
    +  /colorette@2.0.20:
    +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
     
    -  colors@1.0.3: {}
    +  /colors@1.0.3:
    +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    +    engines: {node: '>=0.1.90'}
     
    -  colorspace@1.1.4:
    +  /colorspace@1.1.4:
    +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
         dependencies:
           color: 3.2.1
           text-hex: 1.0.0
     
    -  combine-promises@1.2.0: {}
    +  /combine-promises@1.2.0:
    +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  combined-stream@1.0.8:
    +  /combined-stream@1.0.8:
    +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           delayed-stream: 1.0.0
    +    dev: true
     
    -  comma-separated-tokens@2.0.3: {}
    +  /comma-separated-tokens@2.0.3:
    +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
     
    -  commander@10.0.1: {}
    +  /commander@10.0.1:
    +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    +    engines: {node: '>=14'}
     
    -  commander@11.1.0: {}
    +  /commander@11.1.0:
    +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    +    engines: {node: '>=16'}
    +    dev: true
     
    -  commander@2.20.3: {}
    +  /commander@2.20.3:
    +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
     
    -  commander@4.1.1: {}
    +  /commander@4.1.1:
    +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  commander@5.1.0: {}
    +  /commander@5.1.0:
    +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    +    engines: {node: '>= 6'}
     
    -  commander@7.1.0: {}
    +  /commander@7.1.0:
    +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    +    engines: {node: '>= 10'}
     
    -  commander@7.2.0: {}
    +  /commander@7.2.0:
    +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    +    engines: {node: '>= 10'}
     
    -  commander@8.3.0: {}
    +  /commander@8.3.0:
    +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    +    engines: {node: '>= 12'}
     
    -  common-ancestor-path@1.0.1: {}
    +  /common-ancestor-path@1.0.1:
    +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
     
    -  common-path-prefix@3.0.0: {}
    +  /common-path-prefix@3.0.0:
    +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    +    dev: false
     
    -  commondir@1.0.1: {}
    +  /commondir@1.0.1:
    +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
     
    -  compressible@2.0.18:
    +  /compressible@2.0.18:
    +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.52.0
     
    -  compression@1.7.4:
    +  /compression@1.7.4:
    +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           accepts: 1.3.8
           bytes: 3.0.0
    @@ -14154,50 +7369,83 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  comver-to-semver@1.0.0: {}
    +  /comver-to-semver@1.0.0:
    +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    +    engines: {node: '>=12.17'}
    +    dev: false
     
    -  concat-map@0.0.1: {}
    +  /concat-map@0.0.1:
    +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
     
    -  config-chain@1.1.13:
    +  /config-chain@1.1.13:
    +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
         dependencies:
           ini: 1.3.8
           proto-list: 1.2.4
     
    -  configstore@6.0.0:
    +  /configstore@6.0.0:
    +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    +    engines: {node: '>=12'}
         dependencies:
           dot-prop: 6.0.1
           graceful-fs: 4.2.11
           unique-string: 3.0.0
           write-file-atomic: 3.0.3
           xdg-basedir: 5.1.0
    +    dev: false
     
    -  connect-history-api-fallback@2.0.0: {}
    +  /connect-history-api-fallback@2.0.0:
    +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    +    engines: {node: '>=0.8'}
     
    -  consola@2.15.3: {}
    +  /consola@2.15.3:
    +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    +    dev: false
     
    -  console-control-strings@1.1.0: {}
    +  /console-control-strings@1.1.0:
    +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
     
    -  content-disposition@0.5.2: {}
    +  /content-disposition@0.5.2:
    +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  content-disposition@0.5.4:
    +  /content-disposition@0.5.4:
    +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           safe-buffer: 5.2.1
     
    -  content-type@1.0.5: {}
    +  /content-type@1.0.5:
    +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    +    engines: {node: '>= 0.6'}
     
    -  convert-source-map@2.0.0: {}
    +  /convert-source-map@2.0.0:
    +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
     
    -  cookie-signature@1.0.6: {}
    +  /cookie-signature@1.0.6:
    +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
     
    -  cookie@0.6.0: {}
    +  /cookie@0.6.0:
    +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    +    engines: {node: '>= 0.6'}
     
    -  copy-text-to-clipboard@3.2.0: {}
    +  /copy-text-to-clipboard@3.2.0:
    +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  copy-to-clipboard@3.3.3:
    +  /copy-to-clipboard@3.3.3:
    +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
         dependencies:
           toggle-selection: 1.0.6
    +    dev: false
     
    -  copy-webpack-plugin@11.0.0(webpack@5.91.0):
    +  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      webpack: ^5.1.0
         dependencies:
           fast-glob: 3.3.2
           glob-parent: 6.0.2
    @@ -14206,36 +7454,61 @@ snapshots:
           schema-utils: 4.2.0
           serialize-javascript: 6.0.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  core-js-compat@3.36.1:
    +  /core-js-compat@3.36.1:
    +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
         dependencies:
           browserslist: 4.23.0
     
    -  core-js-pure@3.36.1: {}
    +  /core-js-pure@3.36.1:
    +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    +    requiresBuild: true
    +    dev: false
     
    -  core-js@3.36.1: {}
    +  /core-js@3.36.1:
    +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    +    requiresBuild: true
    +    dev: false
     
    -  core-util-is@1.0.3: {}
    +  /core-util-is@1.0.3:
    +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
     
    -  corser@2.0.1: {}
    +  /corser@2.0.1:
    +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    +    engines: {node: '>= 0.4.0'}
    +    dev: true
     
    -  cosmiconfig@6.0.0:
    +  /cosmiconfig@6.0.0:
    +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    +    dev: false
     
    -  cosmiconfig@7.1.0:
    +  /cosmiconfig@7.1.0:
    +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    +    dev: false
     
    -  cosmiconfig@8.3.6(typescript@5.4.3):
    +  /cosmiconfig@8.3.6(typescript@5.4.3):
    +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           import-fresh: 3.3.0
           js-yaml: 4.1.0
    @@ -14243,15 +7516,26 @@ snapshots:
           path-type: 4.0.0
           typescript: 5.4.3
     
    -  cosmiconfig@9.0.0(typescript@5.4.3):
    +  /cosmiconfig@9.0.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           env-paths: 2.2.1
           import-fresh: 3.3.0
           js-yaml: 4.1.0
           parse-json: 5.2.0
           typescript: 5.4.3
    +    dev: true
     
    -  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
    @@ -14265,30 +7549,58 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  create-require@1.1.1: {}
    +  /create-require@1.1.1:
    +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    +    dev: true
     
    -  cross-spawn@7.0.3:
    +  /cross-spawn@7.0.3:
    +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    +    engines: {node: '>= 8'}
         dependencies:
           path-key: 3.1.1
           shebang-command: 2.0.0
           which: 2.0.2
     
    -  crypto-random-string@2.0.0: {}
    +  /crypto-random-string@2.0.0:
    +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  crypto-random-string@4.0.0:
    +  /crypto-random-string@4.0.0:
    +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    +    engines: {node: '>=12'}
         dependencies:
           type-fest: 1.4.0
    +    dev: false
     
    -  css-declaration-sorter@6.4.1(postcss@8.4.38):
    +  /css-declaration-sorter@6.4.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    peerDependencies:
    +      postcss: ^8.0.9
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  css-in-js-utils@3.1.0:
    +  /css-in-js-utils@3.1.0:
    +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
         dependencies:
           hyphenate-style-name: 1.0.4
    +    dev: false
     
    -  css-loader@6.10.0(webpack@5.91.0):
    +  /css-loader@6.10.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
    @@ -14300,7 +7612,30 @@ snapshots:
           semver: 7.6.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    +  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@parcel/css': '*'
    +      '@swc/css': '*'
    +      clean-css: '*'
    +      csso: '*'
    +      esbuild: '*'
    +      lightningcss: '*'
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@parcel/css':
    +        optional: true
    +      '@swc/css':
    +        optional: true
    +      clean-css:
    +        optional: true
    +      csso:
    +        optional: true
    +      esbuild:
    +        optional: true
    +      lightningcss:
    +        optional: true
         dependencies:
           clean-css: 5.3.3
           cssnano: 5.1.15(postcss@8.4.38)
    @@ -14311,8 +7646,10 @@ snapshots:
           serialize-javascript: 6.0.2
           source-map: 0.6.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  css-select@4.3.0:
    +  /css-select@4.3.0:
    +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -14320,7 +7657,8 @@ snapshots:
           domutils: 2.8.0
           nth-check: 2.1.1
     
    -  css-select@5.1.0:
    +  /css-select@5.1.0:
    +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -14328,26 +7666,44 @@ snapshots:
           domutils: 3.1.0
           nth-check: 2.1.1
     
    -  css-tree@1.1.3:
    +  /css-tree@1.1.3:
    +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           mdn-data: 2.0.14
           source-map: 0.6.1
    +    dev: false
     
    -  css-tree@2.2.1:
    +  /css-tree@2.2.1:
    +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
         dependencies:
           mdn-data: 2.0.28
           source-map-js: 1.2.0
    +    dev: true
     
    -  css-tree@2.3.1:
    +  /css-tree@2.3.1:
    +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
         dependencies:
           mdn-data: 2.0.30
           source-map-js: 1.2.0
    +    dev: true
     
    -  css-what@6.1.0: {}
    +  /css-what@6.1.0:
    +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    +    engines: {node: '>= 6'}
     
    -  cssesc@3.0.0: {}
    +  /cssesc@3.0.0:
    +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    +  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           autoprefixer: 10.4.19(postcss@8.4.38)
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
    @@ -14356,8 +7712,13 @@ snapshots:
           postcss-merge-idents: 5.1.1(postcss@8.4.38)
           postcss-reduce-idents: 5.2.0(postcss@8.4.38)
           postcss-zindex: 5.1.0(postcss@8.4.38)
    +    dev: false
     
    -  cssnano-preset-default@5.2.14(postcss@8.4.38):
    +  /cssnano-preset-default@5.2.14(postcss@8.4.38):
    +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           css-declaration-sorter: 6.4.1(postcss@8.4.38)
           cssnano-utils: 3.1.0(postcss@8.4.38)
    @@ -14389,113 +7750,214 @@ snapshots:
           postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
           postcss-svgo: 5.1.0(postcss@8.4.38)
           postcss-unique-selectors: 5.1.1(postcss@8.4.38)
    +    dev: false
     
    -  cssnano-utils@3.1.0(postcss@8.4.38):
    +  /cssnano-utils@3.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  cssnano@5.1.15(postcss@8.4.38):
    +  /cssnano@5.1.15(postcss@8.4.38):
    +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
           lilconfig: 2.1.0
           postcss: 8.4.38
           yaml: 1.10.2
    +    dev: false
     
    -  csso@4.2.0:
    +  /csso@4.2.0:
    +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           css-tree: 1.1.3
    +    dev: false
     
    -  csso@5.0.5:
    +  /csso@5.0.5:
    +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
         dependencies:
           css-tree: 2.2.1
    +    dev: true
     
    -  cssom@0.3.8: {}
    +  /cssom@0.3.8:
    +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    +    dev: true
     
    -  cssom@0.5.0: {}
    +  /cssom@0.5.0:
    +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    +    dev: true
     
    -  cssstyle@2.3.0:
    +  /cssstyle@2.3.0:
    +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    +    engines: {node: '>=8'}
         dependencies:
           cssom: 0.3.8
    +    dev: true
     
    -  csstype@3.1.3: {}
    +  /csstype@3.1.3:
    +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
     
    -  damerau-levenshtein@1.0.8: {}
    +  /damerau-levenshtein@1.0.8:
    +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    +    dev: true
     
    -  dargs@7.0.0: {}
    +  /dargs@7.0.0:
    +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    +    engines: {node: '>=8'}
     
    -  data-uri-to-buffer@2.0.2: {}
    +  /data-uri-to-buffer@2.0.2:
    +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    +    dev: true
     
    -  data-uri-to-buffer@3.0.1: {}
    +  /data-uri-to-buffer@3.0.1:
    +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    +    engines: {node: '>= 6'}
    +    dev: false
     
    -  data-urls@3.0.2:
    +  /data-urls@3.0.2:
    +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    +    engines: {node: '>=12'}
         dependencies:
           abab: 2.0.6
           whatwg-mimetype: 3.0.0
           whatwg-url: 11.0.0
    +    dev: true
     
    -  data-view-buffer@1.0.1:
    +  /data-view-buffer@1.0.1:
    +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  data-view-byte-length@1.0.1:
    +  /data-view-byte-length@1.0.1:
    +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  data-view-byte-offset@1.0.0:
    +  /data-view-byte-offset@1.0.0:
    +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  dateformat@4.6.3: {}
    +  /dateformat@4.6.3:
    +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
     
    -  debounce@1.2.1: {}
    +  /debounce@1.2.1:
    +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    +    dev: false
     
    -  debug@2.6.9:
    +  /debug@2.6.9:
    +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.0.0
     
    -  debug@3.2.7:
    +  /debug@3.2.7:
    +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.1.3
    +    dev: true
     
    -  debug@4.3.4(supports-color@8.1.1):
    +  /debug@4.3.4(supports-color@8.1.1):
    +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    +    engines: {node: '>=6.0'}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.1.2
           supports-color: 8.1.1
     
    -  debuglog@1.0.1: {}
    +  /debuglog@1.0.1:
    +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
     
    -  decamelize-keys@1.1.1:
    +  /decamelize-keys@1.1.1:
    +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           decamelize: 1.2.0
           map-obj: 1.0.1
    +    dev: true
     
    -  decamelize@1.2.0: {}
    +  /decamelize@1.2.0:
    +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  decamelize@4.0.0: {}
    +  /decamelize@4.0.0:
    +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  decamelize@5.0.1: {}
    +  /decamelize@5.0.1:
    +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  decimal.js@10.4.3: {}
    +  /decimal.js@10.4.3:
    +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    +    dev: true
     
    -  decode-named-character-reference@1.0.2:
    +  /decode-named-character-reference@1.0.2:
    +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
         dependencies:
           character-entities: 2.0.2
     
    -  decompress-response@6.0.0:
    +  /decompress-response@6.0.0:
    +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    +    engines: {node: '>=10'}
         dependencies:
           mimic-response: 3.1.0
    +    dev: false
     
    -  dedent@1.5.1: {}
    +  /dedent@1.5.1:
    +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    +    peerDependencies:
    +      babel-plugin-macros: ^3.1.0
    +    peerDependenciesMeta:
    +      babel-plugin-macros:
    +        optional: true
    +    dev: true
     
    -  deep-eql@5.0.1: {}
    +  /deep-eql@5.0.1:
    +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  deep-equal@2.2.3:
    +  /deep-equal@2.2.3:
    +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -14515,47 +7977,74 @@ snapshots:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  deep-extend@0.6.0: {}
    +  /deep-extend@0.6.0:
    +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    +    engines: {node: '>=4.0.0'}
     
    -  deep-is@0.1.4: {}
    +  /deep-is@0.1.4:
    +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
     
    -  deepmerge@4.3.1: {}
    +  /deepmerge@4.3.1:
    +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    +    engines: {node: '>=0.10.0'}
     
    -  default-browser-id@5.0.0: {}
    +  /default-browser-id@5.0.0:
    +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    +    engines: {node: '>=18'}
     
    -  default-browser@5.2.1:
    +  /default-browser@5.2.1:
    +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    +    engines: {node: '>=18'}
         dependencies:
           bundle-name: 4.1.0
           default-browser-id: 5.0.0
     
    -  default-gateway@6.0.3:
    +  /default-gateway@6.0.3:
    +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    +    engines: {node: '>= 10'}
         dependencies:
           execa: 5.1.1
     
    -  defaults@1.0.4:
    +  /defaults@1.0.4:
    +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
         dependencies:
           clone: 1.0.4
     
    -  defer-to-connect@2.0.1: {}
    +  /defer-to-connect@2.0.1:
    +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  define-data-property@1.1.4:
    +  /define-data-property@1.1.4:
    +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
           gopd: 1.0.1
     
    -  define-lazy-prop@2.0.0: {}
    +  /define-lazy-prop@2.0.0:
    +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  define-lazy-prop@3.0.0: {}
    +  /define-lazy-prop@3.0.0:
    +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    +    engines: {node: '>=12'}
     
    -  define-properties@1.2.1:
    +  /define-properties@1.2.1:
    +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           has-property-descriptors: 1.0.2
           object-keys: 1.1.1
     
    -  del@6.1.1:
    +  /del@6.1.1:
    +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    +    engines: {node: '>=10'}
         dependencies:
           globby: 11.1.0
           graceful-fs: 4.2.11
    @@ -14565,201 +8054,327 @@ snapshots:
           p-map: 4.0.0
           rimraf: 3.0.2
           slash: 3.0.0
    +    dev: false
     
    -  delayed-stream@1.0.0: {}
    +  /delayed-stream@1.0.0:
    +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    +    engines: {node: '>=0.4.0'}
    +    dev: true
     
    -  delegates@1.0.0: {}
    +  /delegates@1.0.0:
    +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
     
    -  depd@1.1.2: {}
    +  /depd@1.1.2:
    +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    +    engines: {node: '>= 0.6'}
     
    -  depd@2.0.0: {}
    +  /depd@2.0.0:
    +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    +    engines: {node: '>= 0.8'}
     
    -  deprecation@2.3.1: {}
    +  /deprecation@2.3.1:
    +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
     
    -  dequal@2.0.3: {}
    +  /dequal@2.0.3:
    +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    +    engines: {node: '>=6'}
     
    -  destroy@1.2.0: {}
    +  /destroy@1.2.0:
    +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
     
    -  detect-indent@7.0.1: {}
    +  /detect-indent@7.0.1:
    +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    +    engines: {node: '>=12.20'}
    +    dev: true
     
    -  detect-libc@2.0.3: {}
    +  /detect-libc@2.0.3:
    +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  detect-newline@3.1.0: {}
    +  /detect-newline@3.1.0:
    +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  detect-node@2.1.0: {}
    +  /detect-node@2.1.0:
    +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
     
    -  detect-port-alt@1.1.6:
    +  /detect-port-alt@1.1.6:
    +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    +    engines: {node: '>= 4.2.1'}
    +    hasBin: true
         dependencies:
           address: 1.2.2
           debug: 2.6.9
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  detect-port@1.5.1:
    +  /detect-port@1.5.1:
    +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    +    hasBin: true
         dependencies:
           address: 1.2.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  devlop@1.1.0:
    +  /devlop@1.1.0:
    +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
         dependencies:
           dequal: 2.0.3
     
    -  dezalgo@1.0.4:
    +  /dezalgo@1.0.4:
    +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
         dependencies:
           asap: 2.0.6
           wrappy: 1.0.2
     
    -  didyoumean@1.2.2: {}
    +  /didyoumean@1.2.2:
    +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    +    dev: true
     
    -  diff-sequences@29.6.3: {}
    +  /diff-sequences@29.6.3:
    +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  diff@4.0.2: {}
    +  /diff@4.0.2:
    +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    +    engines: {node: '>=0.3.1'}
    +    dev: true
     
    -  diff@5.0.0: {}
    +  /diff@5.0.0:
    +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    +    engines: {node: '>=0.3.1'}
    +    dev: true
     
    -  diff@5.2.0: {}
    +  /diff@5.2.0:
    +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    +    engines: {node: '>=0.3.1'}
     
    -  dir-glob@3.0.1:
    +  /dir-glob@3.0.1:
    +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    +    engines: {node: '>=8'}
         dependencies:
           path-type: 4.0.0
     
    -  discontinuous-range@1.0.0: {}
    +  /discontinuous-range@1.0.0:
    +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    +    dev: false
     
    -  dlv@1.1.3: {}
    +  /dlv@1.1.3:
    +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    +    dev: true
     
    -  dns-packet@5.6.1:
    +  /dns-packet@5.6.1:
    +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    +    engines: {node: '>=6'}
         dependencies:
           '@leichtgewicht/ip-codec': 2.0.4
     
    -  doctrine@2.1.0:
    +  /doctrine@2.1.0:
    +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           esutils: 2.0.3
    +    dev: true
     
    -  doctrine@3.0.0:
    +  /doctrine@3.0.0:
    +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           esutils: 2.0.3
     
    -  dom-accessibility-api@0.5.16: {}
    +  /dom-accessibility-api@0.5.16:
    +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    +    dev: true
     
    -  dom-converter@0.2.0:
    +  /dom-converter@0.2.0:
    +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
         dependencies:
           utila: 0.4.0
     
    -  dom-serializer@1.4.1:
    +  /dom-serializer@1.4.1:
    +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           entities: 2.2.0
     
    -  dom-serializer@2.0.0:
    +  /dom-serializer@2.0.0:
    +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           entities: 4.5.0
     
    -  domelementtype@2.3.0: {}
    +  /domelementtype@2.3.0:
    +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
     
    -  domexception@4.0.0:
    +  /domexception@4.0.0:
    +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    +    engines: {node: '>=12'}
    +    deprecated: Use your platform's native DOMException instead
         dependencies:
           webidl-conversions: 7.0.0
    +    dev: true
     
    -  domhandler@4.3.1:
    +  /domhandler@4.3.1:
    +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    +    engines: {node: '>= 4'}
         dependencies:
           domelementtype: 2.3.0
     
    -  domhandler@5.0.3:
    +  /domhandler@5.0.3:
    +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    +    engines: {node: '>= 4'}
         dependencies:
           domelementtype: 2.3.0
     
    -  domutils@2.8.0:
    +  /domutils@2.8.0:
    +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
         dependencies:
           dom-serializer: 1.4.1
           domelementtype: 2.3.0
           domhandler: 4.3.1
     
    -  domutils@3.1.0:
    +  /domutils@3.1.0:
    +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
         dependencies:
           dom-serializer: 2.0.0
           domelementtype: 2.3.0
           domhandler: 5.0.3
     
    -  dot-case@3.0.4:
    +  /dot-case@3.0.4:
    +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  dot-prop@6.0.1:
    +  /dot-prop@6.0.1:
    +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    +    engines: {node: '>=10'}
         dependencies:
           is-obj: 2.0.0
    +    dev: false
     
    -  duplexer@0.1.2: {}
    +  /duplexer@0.1.2:
    +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    +    dev: false
     
    -  eastasianwidth@0.2.0: {}
    +  /eastasianwidth@0.2.0:
    +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
     
    -  ee-first@1.1.1: {}
    +  /ee-first@1.1.1:
    +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
     
    -  effect@2.0.0-next.62: {}
    +  /effect@2.0.0-next.62:
    +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    +    dev: true
     
    -  ejs@3.1.9:
    +  /ejs@3.1.9:
    +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    +    engines: {node: '>=0.10.0'}
    +    hasBin: true
         dependencies:
           jake: 10.8.7
     
    -  electron-to-chromium@1.4.717: {}
    +  /electron-to-chromium@1.4.717:
    +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
     
    -  emittery@0.13.1: {}
    +  /emittery@0.13.1:
    +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  emoji-regex@8.0.0: {}
    +  /emoji-regex@8.0.0:
    +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     
    -  emoji-regex@9.2.2: {}
    +  /emoji-regex@9.2.2:
    +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
     
    -  emojilib@2.4.0: {}
    +  /emojilib@2.4.0:
    +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    +    dev: false
     
    -  emojis-list@3.0.0: {}
    +  /emojis-list@3.0.0:
    +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    +    engines: {node: '>= 4'}
    +    dev: false
     
    -  emoticon@4.0.1: {}
    +  /emoticon@4.0.1:
    +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    +    dev: false
     
    -  enabled@2.0.0: {}
    +  /enabled@2.0.0:
    +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
     
    -  encodeurl@1.0.2: {}
    +  /encodeurl@1.0.2:
    +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    +    engines: {node: '>= 0.8'}
     
    -  encoding@0.1.13:
    +  /encoding@0.1.13:
    +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    +    requiresBuild: true
         dependencies:
           iconv-lite: 0.6.3
         optional: true
     
    -  enhanced-resolve@5.16.0:
    +  /enhanced-resolve@5.16.0:
    +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           graceful-fs: 4.2.11
           tapable: 2.2.1
     
    -  enquirer@2.4.1:
    +  /enquirer@2.4.1:
    +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    +    engines: {node: '>=8.6'}
         dependencies:
           ansi-colors: 4.1.3
           strip-ansi: 6.0.1
    +    dev: true
     
    -  entities@2.2.0: {}
    +  /entities@2.2.0:
    +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
     
    -  entities@4.5.0: {}
    +  /entities@4.5.0:
    +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    +    engines: {node: '>=0.12'}
     
    -  env-paths@2.2.1: {}
    +  /env-paths@2.2.1:
    +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    +    engines: {node: '>=6'}
     
    -  envinfo@7.11.1: {}
    +  /envinfo@7.11.1:
    +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  err-code@2.0.3: {}
    +  /err-code@2.0.3:
    +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
     
    -  error-ex@1.3.2:
    +  /error-ex@1.3.2:
    +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
         dependencies:
           is-arrayish: 0.2.1
     
    -  error-stack-parser@2.1.4:
    +  /error-stack-parser@2.1.4:
    +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
         dependencies:
           stackframe: 1.3.4
    +    dev: false
     
    -  error@10.4.0: {}
    +  /error@10.4.0:
    +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
     
    -  es-abstract@1.23.2:
    +  /es-abstract@1.23.2:
    +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           arraybuffer.prototype.slice: 1.0.3
    @@ -14807,14 +8422,20 @@ snapshots:
           typed-array-length: 1.0.6
           unbox-primitive: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  es-define-property@1.0.0:
    +  /es-define-property@1.0.0:
    +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           get-intrinsic: 1.2.4
     
    -  es-errors@1.3.0: {}
    +  /es-errors@1.3.0:
    +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    +    engines: {node: '>= 0.4'}
     
    -  es-get-iterator@1.1.3:
    +  /es-get-iterator@1.1.3:
    +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    @@ -14825,8 +8446,11 @@ snapshots:
           is-string: 1.0.7
           isarray: 2.0.5
           stop-iteration-iterator: 1.0.0
    +    dev: true
     
    -  es-iterator-helpers@1.0.18:
    +  /es-iterator-helpers@1.0.18:
    +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -14842,30 +8466,47 @@ snapshots:
           internal-slot: 1.0.7
           iterator.prototype: 1.1.2
           safe-array-concat: 1.1.2
    +    dev: true
     
    -  es-module-lexer@1.5.0: {}
    +  /es-module-lexer@1.5.0:
    +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
     
    -  es-object-atoms@1.0.0:
    +  /es-object-atoms@1.0.0:
    +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
    +    dev: true
     
    -  es-set-tostringtag@2.0.3:
    +  /es-set-tostringtag@2.0.3:
    +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           get-intrinsic: 1.2.4
           has-tostringtag: 1.0.2
           hasown: 2.0.2
    +    dev: true
     
    -  es-shim-unscopables@1.0.2:
    +  /es-shim-unscopables@1.0.2:
    +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
         dependencies:
           hasown: 2.0.2
    +    dev: true
     
    -  es-to-primitive@1.2.1:
    +  /es-to-primitive@1.2.1:
    +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-callable: 1.2.7
           is-date-object: 1.0.5
           is-symbol: 1.0.4
    +    dev: true
     
    -  esbuild@0.20.2:
    +  /esbuild@0.20.2:
    +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +    requiresBuild: true
         optionalDependencies:
           '@esbuild/aix-ppc64': 0.20.2
           '@esbuild/android-arm': 0.20.2
    @@ -14891,29 +8532,56 @@ snapshots:
           '@esbuild/win32-ia32': 0.20.2
           '@esbuild/win32-x64': 0.20.2
     
    -  escalade@3.1.2: {}
    +  /escalade@3.1.2:
    +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    +    engines: {node: '>=6'}
     
    -  escape-goat@4.0.0: {}
    +  /escape-goat@4.0.0:
    +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  escape-html@1.0.3: {}
    +  /escape-html@1.0.3:
    +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
     
    -  escape-string-regexp@1.0.5: {}
    +  /escape-string-regexp@1.0.5:
    +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    +    engines: {node: '>=0.8.0'}
     
    -  escape-string-regexp@2.0.0: {}
    +  /escape-string-regexp@2.0.0:
    +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  escape-string-regexp@4.0.0: {}
    +  /escape-string-regexp@4.0.0:
    +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    +    engines: {node: '>=10'}
     
    -  escape-string-regexp@5.0.0: {}
    +  /escape-string-regexp@5.0.0:
    +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  escodegen@2.1.0:
    +  /escodegen@2.1.0:
    +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    +    engines: {node: '>=6.0'}
    +    hasBin: true
         dependencies:
           esprima: 4.0.1
           estraverse: 5.3.0
           esutils: 2.0.3
         optionalDependencies:
           source-map: 0.6.1
    +    dev: true
     
    -  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    +  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    +    peerDependencies:
    +      eslint: ^7.23.0 || ^8.0.0
    +      typescript: '>=3.3.1'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@next/eslint-plugin-next': 14.1.4
           '@rushstack/eslint-patch': 1.8.0
    @@ -14929,20 +8597,33 @@ snapshots:
         transitivePeerDependencies:
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-config-prettier@9.1.0(eslint@8.57.0):
    +  /eslint-config-prettier@9.1.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
         dependencies:
           eslint: 8.57.0
    +    dev: true
     
    -  eslint-import-resolver-node@0.3.9:
    +  /eslint-import-resolver-node@0.3.9:
    +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
         dependencies:
           debug: 3.2.7
           is-core-module: 2.13.1
           resolve: 1.22.8
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -14958,8 +8639,14 @@ snapshots:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -14975,8 +8662,28 @@ snapshots:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -14985,8 +8692,28 @@ snapshots:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -14995,8 +8722,17 @@ snapshots:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           array-includes: 3.1.8
    @@ -15021,8 +8757,13 @@ snapshots:
           - eslint-import-resolver-typescript
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    +  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
         dependencies:
           '@babel/runtime': 7.24.1
           aria-query: 5.3.0
    @@ -15041,19 +8782,34 @@ snapshots:
           minimatch: 3.1.2
           object.entries: 1.1.8
           object.fromentries: 2.0.8
    +    dev: true
     
    -  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    +  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      eslint: '>=7.0.0'
         dependencies:
           eslint: 8.57.0
           eslint-utils: 3.0.0(eslint@8.57.0)
           globals: 13.24.0
           rambda: 7.5.0
    +    dev: true
     
    -  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    +  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
         dependencies:
           eslint: 8.57.0
    +    dev: true
     
    -  eslint-plugin-react@7.34.1(eslint@8.57.0):
    +  /eslint-plugin-react@7.34.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
         dependencies:
           array-includes: 3.1.8
           array.prototype.findlast: 1.2.5
    @@ -15074,8 +8830,13 @@ snapshots:
           resolve: 2.0.0-next.5
           semver: 6.3.1
           string.prototype.matchall: 4.0.11
    +    dev: true
     
    -  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    +  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      eslint: '>=8.56.0'
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    @@ -15096,35 +8857,65 @@ snapshots:
           strip-indent: 3.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    +  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/eslint-plugin': 6 - 7
    +      eslint: '8'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/eslint-plugin':
    +        optional: true
         dependencies:
           '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
           eslint: 8.57.0
           eslint-rule-composer: 0.3.0
    +    dev: true
     
    -  eslint-rule-composer@0.3.0: {}
    +  /eslint-rule-composer@0.3.0:
    +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    +    engines: {node: '>=4.0.0'}
    +    dev: true
     
    -  eslint-scope@5.1.1:
    +  /eslint-scope@5.1.1:
    +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           esrecurse: 4.3.0
           estraverse: 4.3.0
     
    -  eslint-scope@7.2.2:
    +  /eslint-scope@7.2.2:
    +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           esrecurse: 4.3.0
           estraverse: 5.3.0
     
    -  eslint-utils@3.0.0(eslint@8.57.0):
    +  /eslint-utils@3.0.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    +    peerDependencies:
    +      eslint: '>=5'
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 2.1.0
    +    dev: true
     
    -  eslint-visitor-keys@2.1.0: {}
    +  /eslint-visitor-keys@2.1.0:
    +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  eslint-visitor-keys@3.4.3: {}
    +  /eslint-visitor-keys@3.4.3:
    +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     
    -  eslint@8.57.0:
    +  /eslint@8.57.0:
    +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@eslint-community/regexpp': 4.10.0
    @@ -15167,77 +8958,116 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  espree@9.6.1:
    +  /espree@9.6.1:
    +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
           eslint-visitor-keys: 3.4.3
     
    -  esprima@4.0.1: {}
    +  /esprima@4.0.1:
    +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  esquery@1.5.0:
    +  /esquery@1.5.0:
    +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    +    engines: {node: '>=0.10'}
         dependencies:
           estraverse: 5.3.0
     
    -  esrecurse@4.3.0:
    +  /esrecurse@4.3.0:
    +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    +    engines: {node: '>=4.0'}
         dependencies:
           estraverse: 5.3.0
     
    -  estraverse@4.3.0: {}
    +  /estraverse@4.3.0:
    +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    +    engines: {node: '>=4.0'}
     
    -  estraverse@5.3.0: {}
    +  /estraverse@5.3.0:
    +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    +    engines: {node: '>=4.0'}
     
    -  estree-util-attach-comments@3.0.0:
    +  /estree-util-attach-comments@3.0.0:
    +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  estree-util-build-jsx@3.0.1:
    +  /estree-util-build-jsx@3.0.1:
    +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           devlop: 1.1.0
           estree-util-is-identifier-name: 3.0.0
           estree-walker: 3.0.3
     
    -  estree-util-is-identifier-name@3.0.0: {}
    +  /estree-util-is-identifier-name@3.0.0:
    +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
     
    -  estree-util-to-js@2.0.0:
    +  /estree-util-to-js@2.0.0:
    +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           astring: 1.8.6
           source-map: 0.7.4
     
    -  estree-util-value-to-estree@3.0.1:
    +  /estree-util-value-to-estree@3.0.1:
    +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    +    engines: {node: '>=16.0.0'}
         dependencies:
           '@types/estree': 1.0.5
           is-plain-obj: 4.1.0
    +    dev: false
     
    -  estree-util-visit@2.0.0:
    +  /estree-util-visit@2.0.0:
    +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/unist': 3.0.2
     
    -  estree-walker@3.0.3:
    +  /estree-walker@3.0.3:
    +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  esutils@2.0.3: {}
    +  /esutils@2.0.3:
    +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    +    engines: {node: '>=0.10.0'}
     
    -  eta@2.2.0: {}
    +  /eta@2.2.0:
    +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    +    engines: {node: '>=6.0.0'}
    +    dev: false
     
    -  etag@1.8.1: {}
    +  /etag@1.8.1:
    +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    +    engines: {node: '>= 0.6'}
     
    -  eval@0.1.8:
    +  /eval@0.1.8:
    +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           '@types/node': 18.18.2
           require-like: 0.1.2
    +    dev: false
     
    -  event-target-shim@5.0.1: {}
    +  /event-target-shim@5.0.1:
    +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    +    engines: {node: '>=6'}
     
    -  eventemitter3@4.0.7: {}
    +  /eventemitter3@4.0.7:
    +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
     
    -  events@3.3.0: {}
    +  /events@3.3.0:
    +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    +    engines: {node: '>=0.8.x'}
     
    -  execa@5.1.1:
    +  /execa@5.1.1:
    +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    +    engines: {node: '>=10'}
         dependencies:
           cross-spawn: 7.0.3
           get-stream: 6.0.1
    @@ -15249,19 +9079,28 @@ snapshots:
           signal-exit: 3.0.7
           strip-final-newline: 2.0.0
     
    -  exit@0.1.2: {}
    +  /exit@0.1.2:
    +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    +    engines: {node: '>= 0.8.0'}
    +    dev: true
     
    -  expect@29.7.0:
    +  /expect@29.7.0:
    +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/expect-utils': 29.7.0
           jest-get-type: 29.6.3
           jest-matcher-utils: 29.7.0
           jest-message-util: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  exponential-backoff@3.1.1: {}
    +  /exponential-backoff@3.1.1:
    +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
     
    -  express@4.19.2:
    +  /express@4.19.2:
    +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    +    engines: {node: '>= 0.10.0'}
         dependencies:
           accepts: 1.3.8
           array-flatten: 1.1.1
    @@ -15297,29 +9136,44 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  extend-shallow@2.0.1:
    +  /extend-shallow@2.0.1:
    +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-extendable: 0.1.1
    +    dev: false
     
    -  extend@3.0.2: {}
    +  /extend@3.0.2:
    +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
     
    -  external-editor@3.1.0:
    +  /external-editor@3.1.0:
    +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    +    engines: {node: '>=4'}
         dependencies:
           chardet: 0.7.0
           iconv-lite: 0.4.24
           tmp: 0.0.33
     
    -  fast-check@3.15.0:
    +  /fast-check@3.15.0:
    +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           pure-rand: 6.1.0
    +    dev: true
     
    -  fast-check@3.17.0:
    +  /fast-check@3.17.0:
    +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           pure-rand: 6.1.0
    +    dev: true
     
    -  fast-deep-equal@3.1.3: {}
    +  /fast-deep-equal@3.1.3:
    +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
     
    -  fast-glob@3.3.2:
    +  /fast-glob@3.3.2:
    +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    +    engines: {node: '>=8.6.0'}
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           '@nodelib/fs.walk': 1.2.8
    @@ -15327,77 +9181,129 @@ snapshots:
           merge2: 1.4.1
           micromatch: 4.0.5
     
    -  fast-json-stable-stringify@2.1.0: {}
    +  /fast-json-stable-stringify@2.1.0:
    +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
     
    -  fast-levenshtein@2.0.6: {}
    +  /fast-levenshtein@2.0.6:
    +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
     
    -  fast-loops@1.1.3: {}
    +  /fast-loops@1.1.3:
    +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    +    dev: false
     
    -  fast-safe-stringify@2.1.1: {}
    +  /fast-safe-stringify@2.1.1:
    +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
     
    -  fast-shallow-equal@1.0.0: {}
    +  /fast-shallow-equal@1.0.0:
    +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    +    dev: false
     
    -  fast-url-parser@1.1.3:
    +  /fast-url-parser@1.1.3:
    +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
         dependencies:
           punycode: 1.4.1
    +    dev: false
     
    -  fast-xml-parser@4.3.6:
    +  /fast-xml-parser@4.3.6:
    +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    +    hasBin: true
         dependencies:
           strnum: 1.0.5
    +    dev: true
     
    -  fastest-levenshtein@1.0.16: {}
    +  /fastest-levenshtein@1.0.16:
    +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    +    engines: {node: '>= 4.9.1'}
     
    -  fastest-stable-stringify@2.0.2: {}
    +  /fastest-stable-stringify@2.0.2:
    +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    +    dev: false
     
    -  fastq@1.17.1:
    +  /fastq@1.17.1:
    +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
         dependencies:
           reusify: 1.0.4
     
    -  fault@2.0.1:
    +  /fault@2.0.1:
    +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
         dependencies:
           format: 0.2.2
    +    dev: false
     
    -  faye-websocket@0.11.4:
    +  /faye-websocket@0.11.4:
    +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    +    engines: {node: '>=0.8.0'}
         dependencies:
           websocket-driver: 0.7.4
     
    -  fb-watchman@2.0.2:
    +  /fb-watchman@2.0.2:
    +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
         dependencies:
           bser: 2.1.1
    +    dev: true
     
    -  fecha@4.2.3: {}
    +  /fecha@4.2.3:
    +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
     
    -  feed@4.2.2:
    +  /feed@4.2.2:
    +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    +    engines: {node: '>=0.4.0'}
         dependencies:
           xml-js: 1.6.11
    +    dev: false
     
    -  fetch-blob@2.1.2: {}
    +  /fetch-blob@2.1.2:
    +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    +    engines: {node: ^10.17.0 || >=12.3.0}
    +    peerDependencies:
    +      domexception: '*'
    +    peerDependenciesMeta:
    +      domexception:
    +        optional: true
    +    dev: false
     
    -  figures@3.2.0:
    +  /figures@3.2.0:
    +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    +    engines: {node: '>=8'}
         dependencies:
           escape-string-regexp: 1.0.5
     
    -  file-entry-cache@6.0.1:
    +  /file-entry-cache@6.0.1:
    +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
         dependencies:
           flat-cache: 3.2.0
     
    -  file-loader@6.2.0(webpack@5.91.0):
    +  /file-loader@6.2.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
         dependencies:
           loader-utils: 2.0.4
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  filelist@1.0.4:
    +  /filelist@1.0.4:
    +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
         dependencies:
           minimatch: 5.1.6
     
    -  filesize@8.0.7: {}
    +  /filesize@8.0.7:
    +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    +    engines: {node: '>= 0.4.0'}
    +    dev: false
     
    -  fill-range@7.0.1:
    +  /fill-range@7.0.1:
    +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    +    engines: {node: '>=8'}
         dependencies:
           to-regex-range: 5.0.1
     
    -  finalhandler@1.2.0:
    +  /finalhandler@1.2.0:
    +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           debug: 2.6.9
           encodeurl: 1.0.2
    @@ -15409,63 +9315,108 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  find-cache-dir@4.0.0:
    +  /find-cache-dir@4.0.0:
    +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           common-path-prefix: 3.0.0
           pkg-dir: 7.0.0
    +    dev: false
     
    -  find-up@3.0.0:
    +  /find-up@3.0.0:
    +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    +    engines: {node: '>=6'}
         dependencies:
           locate-path: 3.0.0
    +    dev: false
     
    -  find-up@4.1.0:
    +  /find-up@4.1.0:
    +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    +    engines: {node: '>=8'}
         dependencies:
           locate-path: 5.0.0
           path-exists: 4.0.0
     
    -  find-up@5.0.0:
    +  /find-up@5.0.0:
    +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    +    engines: {node: '>=10'}
         dependencies:
           locate-path: 6.0.0
           path-exists: 4.0.0
     
    -  find-up@6.3.0:
    +  /find-up@6.3.0:
    +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           locate-path: 7.2.0
           path-exists: 5.0.0
    +    dev: false
     
    -  find-yarn-workspace-root2@1.2.16:
    +  /find-yarn-workspace-root2@1.2.16:
    +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
         dependencies:
           micromatch: 4.0.5
           pkg-dir: 4.2.0
     
    -  first-chunk-stream@2.0.0:
    +  /first-chunk-stream@2.0.0:
    +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           readable-stream: 2.3.8
     
    -  flat-cache@3.2.0:
    +  /flat-cache@3.2.0:
    +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
         dependencies:
           flatted: 3.3.1
           keyv: 4.5.4
           rimraf: 3.0.2
     
    -  flat@5.0.2: {}
    +  /flat@5.0.2:
    +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    +    hasBin: true
     
    -  flatted@3.3.1: {}
    +  /flatted@3.3.1:
    +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
     
    -  fn.name@1.1.0: {}
    +  /fn.name@1.1.0:
    +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
     
    -  follow-redirects@1.15.6: {}
    +  /follow-redirects@1.15.6:
    +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      debug: '*'
    +    peerDependenciesMeta:
    +      debug:
    +        optional: true
     
    -  for-each@0.3.3:
    +  /for-each@0.3.3:
    +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
         dependencies:
           is-callable: 1.2.7
    +    dev: true
     
    -  foreground-child@3.1.1:
    +  /foreground-child@3.1.1:
    +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    +    engines: {node: '>=14'}
         dependencies:
           cross-spawn: 7.0.3
           signal-exit: 4.1.0
     
    -  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    +    engines: {node: '>=10', yarn: '>=1.0.0'}
    +    peerDependencies:
    +      eslint: '>= 6'
    +      typescript: '>= 2.7'
    +      vue-template-compiler: '*'
    +      webpack: '>= 4'
    +    peerDependenciesMeta:
    +      eslint:
    +        optional: true
    +      vue-template-compiler:
    +        optional: true
         dependencies:
           '@babel/code-frame': 7.24.2
           '@types/json-schema': 7.0.15
    @@ -15483,63 +9434,102 @@ snapshots:
           tapable: 1.1.3
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  form-data-encoder@2.1.4: {}
    +  /form-data-encoder@2.1.4:
    +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    +    engines: {node: '>= 14.17'}
    +    dev: false
     
    -  form-data@4.0.0:
    +  /form-data@4.0.0:
    +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    +    engines: {node: '>= 6'}
         dependencies:
           asynckit: 0.4.0
           combined-stream: 1.0.8
           mime-types: 2.1.35
    +    dev: true
     
    -  format@0.2.2: {}
    +  /format@0.2.2:
    +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    +    engines: {node: '>=0.4.x'}
    +    dev: false
     
    -  forwarded@0.2.0: {}
    +  /forwarded@0.2.0:
    +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    +    engines: {node: '>= 0.6'}
     
    -  fraction.js@4.3.7: {}
    +  /fraction.js@4.3.7:
    +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
     
    -  fresh@0.5.2: {}
    +  /fresh@0.5.2:
    +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    +    engines: {node: '>= 0.6'}
     
    -  fs-extra@11.2.0:
    +  /fs-extra@11.2.0:
    +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    +    engines: {node: '>=14.14'}
         dependencies:
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
     
    -  fs-extra@9.1.0:
    +  /fs-extra@9.1.0:
    +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    +    engines: {node: '>=10'}
         dependencies:
           at-least-node: 1.0.0
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
    +    dev: false
     
    -  fs-minipass@2.1.0:
    +  /fs-minipass@2.1.0:
    +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  fs-minipass@3.0.3:
    +  /fs-minipass@3.0.3:
    +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
     
    -  fs-monkey@1.0.5: {}
    +  /fs-monkey@1.0.5:
    +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    +    dev: false
     
    -  fs.realpath@1.0.0: {}
    +  /fs.realpath@1.0.0:
    +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
     
    -  fsevents@2.3.3:
    +  /fsevents@2.3.3:
    +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  function-bind@1.1.2: {}
    +  /function-bind@1.1.2:
    +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
     
    -  function.prototype.name@1.1.6:
    +  /function.prototype.name@1.1.6:
    +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           functions-have-names: 1.2.3
    +    dev: true
     
    -  functions-have-names@1.2.3: {}
    +  /functions-have-names@1.2.3:
    +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    +    dev: true
     
    -  gauge@3.0.2:
    +  /gauge@3.0.2:
    +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    +    engines: {node: '>=10'}
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -15551,7 +9541,9 @@ snapshots:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  gauge@4.0.4:
    +  /gauge@4.0.4:
    +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -15562,13 +9554,22 @@ snapshots:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  gensync@1.0.0-beta.2: {}
    +  /gensync@1.0.0-beta.2:
    +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    +    engines: {node: '>=6.9.0'}
     
    -  get-caller-file@2.0.5: {}
    +  /get-caller-file@2.0.5:
    +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    +    engines: {node: 6.* || 8.* || >= 10.*}
    +    dev: true
     
    -  get-func-name@2.0.2: {}
    +  /get-func-name@2.0.2:
    +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    +    dev: true
     
    -  get-intrinsic@1.2.4:
    +  /get-intrinsic@1.2.4:
    +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
           function-bind: 1.1.2
    @@ -15576,48 +9577,77 @@ snapshots:
           has-symbols: 1.0.3
           hasown: 2.0.2
     
    -  get-npm-tarball-url@2.1.0: {}
    +  /get-npm-tarball-url@2.1.0:
    +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    +    engines: {node: '>=12.17'}
    +    dev: false
     
    -  get-own-enumerable-property-symbols@3.0.2: {}
    +  /get-own-enumerable-property-symbols@3.0.2:
    +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    +    dev: false
     
    -  get-package-type@0.1.0: {}
    +  /get-package-type@0.1.0:
    +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    +    engines: {node: '>=8.0.0'}
    +    dev: true
     
    -  get-source@2.0.12:
    +  /get-source@2.0.12:
    +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
         dependencies:
           data-uri-to-buffer: 2.0.2
           source-map: 0.6.1
    +    dev: true
     
    -  get-stream@6.0.1: {}
    +  /get-stream@6.0.1:
    +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    +    engines: {node: '>=10'}
     
    -  get-symbol-description@1.0.2:
    +  /get-symbol-description@1.0.2:
    +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  get-tsconfig@4.7.3:
    +  /get-tsconfig@4.7.3:
    +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
         dependencies:
           resolve-pkg-maps: 1.0.0
    +    dev: true
     
    -  github-slugger@1.5.0: {}
    +  /github-slugger@1.5.0:
    +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    +    dev: false
     
    -  github-username@6.0.0:
    +  /github-username@6.0.0:
    +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    +    engines: {node: '>=10'}
         dependencies:
           '@octokit/rest': 18.12.0
         transitivePeerDependencies:
           - encoding
     
    -  glob-parent@5.1.2:
    +  /glob-parent@5.1.2:
    +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    +    engines: {node: '>= 6'}
         dependencies:
           is-glob: 4.0.3
     
    -  glob-parent@6.0.2:
    +  /glob-parent@6.0.2:
    +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           is-glob: 4.0.3
     
    -  glob-to-regexp@0.4.1: {}
    +  /glob-to-regexp@0.4.1:
    +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
     
    -  glob@10.3.10:
    +  /glob@10.3.10:
    +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
         dependencies:
           foreground-child: 3.1.1
           jackspeak: 2.3.6
    @@ -15625,7 +9655,8 @@ snapshots:
           minipass: 7.0.4
           path-scurry: 1.10.1
     
    -  glob@7.2.3:
    +  /glob@7.2.3:
    +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -15634,7 +9665,9 @@ snapshots:
           once: 1.4.0
           path-is-absolute: 1.0.1
     
    -  glob@8.1.0:
    +  /glob@8.1.0:
    +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    +    engines: {node: '>=12'}
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -15642,31 +9675,49 @@ snapshots:
           minimatch: 5.1.6
           once: 1.4.0
     
    -  global-dirs@3.0.1:
    +  /global-dirs@3.0.1:
    +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    +    engines: {node: '>=10'}
         dependencies:
           ini: 2.0.0
    +    dev: false
     
    -  global-modules@2.0.0:
    +  /global-modules@2.0.0:
    +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    +    engines: {node: '>=6'}
         dependencies:
           global-prefix: 3.0.0
    +    dev: false
     
    -  global-prefix@3.0.0:
    +  /global-prefix@3.0.0:
    +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    +    engines: {node: '>=6'}
         dependencies:
           ini: 1.3.8
           kind-of: 6.0.3
           which: 1.3.1
    +    dev: false
     
    -  globals@11.12.0: {}
    +  /globals@11.12.0:
    +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    +    engines: {node: '>=4'}
     
    -  globals@13.24.0:
    +  /globals@13.24.0:
    +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    +    engines: {node: '>=8'}
         dependencies:
           type-fest: 0.20.2
     
    -  globalthis@1.0.3:
    +  /globalthis@1.0.3:
    +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-properties: 1.2.1
    +    dev: true
     
    -  globby@11.1.0:
    +  /globby@11.1.0:
    +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    +    engines: {node: '>=10'}
         dependencies:
           array-union: 2.1.0
           dir-glob: 3.0.1
    @@ -15675,19 +9726,25 @@ snapshots:
           merge2: 1.4.1
           slash: 3.0.0
     
    -  globby@13.2.2:
    +  /globby@13.2.2:
    +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           dir-glob: 3.0.1
           fast-glob: 3.3.2
           ignore: 5.3.1
           merge2: 1.4.1
           slash: 4.0.0
    +    dev: false
     
    -  gopd@1.0.1:
    +  /gopd@1.0.1:
    +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
         dependencies:
           get-intrinsic: 1.2.4
     
    -  got@12.6.1:
    +  /got@12.6.1:
    +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    +    engines: {node: '>=14.16'}
         dependencies:
           '@sindresorhus/is': 5.6.0
           '@szmarczak/http-timer': 5.0.1
    @@ -15700,66 +9757,108 @@ snapshots:
           lowercase-keys: 3.0.0
           p-cancelable: 3.0.0
           responselike: 3.0.0
    +    dev: false
     
    -  graceful-fs@4.2.10: {}
    +  /graceful-fs@4.2.10:
    +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
     
    -  graceful-fs@4.2.11: {}
    +  /graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
     
    -  graceful-git@3.1.2:
    +  /graceful-git@3.1.2:
    +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    +    engines: {node: '>=10'}
         dependencies:
           retry: 0.12.0
           safe-execa: 0.1.2
    +    dev: false
     
    -  graphemer@1.4.0: {}
    +  /graphemer@1.4.0:
    +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
     
    -  gray-matter@4.0.3:
    +  /gray-matter@4.0.3:
    +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    +    engines: {node: '>=6.0'}
         dependencies:
           js-yaml: 3.14.1
           kind-of: 6.0.3
           section-matter: 1.0.0
           strip-bom-string: 1.0.0
    +    dev: false
     
    -  grouped-queue@2.0.0: {}
    +  /grouped-queue@2.0.0:
    +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    +    engines: {node: '>=8.0.0'}
     
    -  gzip-size@6.0.0:
    +  /gzip-size@6.0.0:
    +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    +    engines: {node: '>=10'}
         dependencies:
           duplexer: 0.1.2
    +    dev: false
     
    -  handle-thing@2.0.1: {}
    +  /handle-thing@2.0.1:
    +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
     
    -  hard-rejection@2.1.0: {}
    +  /hard-rejection@2.1.0:
    +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  has-bigints@1.0.2: {}
    +  /has-bigints@1.0.2:
    +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    +    dev: true
     
    -  has-flag@3.0.0: {}
    +  /has-flag@3.0.0:
    +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    +    engines: {node: '>=4'}
     
    -  has-flag@4.0.0: {}
    +  /has-flag@4.0.0:
    +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    +    engines: {node: '>=8'}
     
    -  has-property-descriptors@1.0.2:
    +  /has-property-descriptors@1.0.2:
    +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
         dependencies:
           es-define-property: 1.0.0
     
    -  has-proto@1.0.3: {}
    +  /has-proto@1.0.3:
    +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    +    engines: {node: '>= 0.4'}
     
    -  has-symbols@1.0.3: {}
    +  /has-symbols@1.0.3:
    +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    +    engines: {node: '>= 0.4'}
     
    -  has-tostringtag@1.0.2:
    +  /has-tostringtag@1.0.2:
    +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-symbols: 1.0.3
    +    dev: true
     
    -  has-unicode@2.0.1: {}
    +  /has-unicode@2.0.1:
    +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
     
    -  has-yarn@3.0.0: {}
    +  /has-yarn@3.0.0:
    +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  hasharray@1.1.2:
    +  /hasharray@1.1.2:
    +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
         dependencies:
           jclass: 1.2.1
    +    dev: false
     
    -  hasown@2.0.2:
    +  /hasown@2.0.2:
    +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           function-bind: 1.1.2
     
    -  hast-util-from-parse5@8.0.1:
    +  /hast-util-from-parse5@8.0.1:
    +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -15769,12 +9868,16 @@ snapshots:
           vfile: 6.0.1
           vfile-location: 5.0.2
           web-namespaces: 2.0.1
    +    dev: false
     
    -  hast-util-parse-selector@4.0.0:
    +  /hast-util-parse-selector@4.0.0:
    +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
         dependencies:
           '@types/hast': 3.0.4
    +    dev: false
     
    -  hast-util-raw@9.0.2:
    +  /hast-util-raw@9.0.2:
    +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -15789,8 +9892,10 @@ snapshots:
           vfile: 6.0.1
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    +    dev: false
     
    -  hast-util-to-estree@3.1.0:
    +  /hast-util-to-estree@3.1.0:
    +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -15811,7 +9916,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  hast-util-to-jsx-runtime@2.3.0:
    +  /hast-util-to-jsx-runtime@2.3.0:
    +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/hast': 3.0.4
    @@ -15831,7 +9937,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  hast-util-to-parse5@8.0.0:
    +  /hast-util-to-parse5@8.0.0:
    +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
    @@ -15840,22 +9947,29 @@ snapshots:
           space-separated-tokens: 2.0.2
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    +    dev: false
     
    -  hast-util-whitespace@3.0.0:
    +  /hast-util-whitespace@3.0.0:
    +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
         dependencies:
           '@types/hast': 3.0.4
     
    -  hastscript@8.0.0:
    +  /hastscript@8.0.0:
    +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
           hast-util-parse-selector: 4.0.0
           property-information: 6.4.1
           space-separated-tokens: 2.0.2
    +    dev: false
     
    -  he@1.2.0: {}
    +  /he@1.2.0:
    +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    +    hasBin: true
     
    -  history@4.10.1:
    +  /history@4.10.1:
    +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
         dependencies:
           '@babel/runtime': 7.24.1
           loose-envify: 1.4.0
    @@ -15863,41 +9977,61 @@ snapshots:
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
           value-equal: 1.0.1
    +    dev: false
     
    -  hoist-non-react-statics@3.3.2:
    +  /hoist-non-react-statics@3.3.2:
    +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
         dependencies:
           react-is: 16.13.1
    +    dev: false
     
    -  hosted-git-info@2.8.9: {}
    +  /hosted-git-info@2.8.9:
    +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     
    -  hosted-git-info@4.1.0:
    +  /hosted-git-info@4.1.0:
    +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    +    engines: {node: '>=10'}
         dependencies:
           lru-cache: 6.0.0
     
    -  hosted-git-info@6.1.1:
    +  /hosted-git-info@6.1.1:
    +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           lru-cache: 7.18.3
     
    -  hosted-git-info@7.0.1:
    +  /hosted-git-info@7.0.1:
    +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
         dependencies:
           lru-cache: 10.2.0
    +    dev: true
     
    -  hpack.js@2.1.6:
    +  /hpack.js@2.1.6:
    +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
         dependencies:
           inherits: 2.0.4
           obuf: 1.1.2
           readable-stream: 2.3.8
           wbuf: 1.7.3
     
    -  html-encoding-sniffer@3.0.0:
    +  /html-encoding-sniffer@3.0.0:
    +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    +    engines: {node: '>=12'}
         dependencies:
           whatwg-encoding: 2.0.0
    +    dev: true
     
    -  html-entities@2.5.2: {}
    +  /html-entities@2.5.2:
    +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
     
    -  html-escaper@2.0.2: {}
    +  /html-escaper@2.0.2:
    +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
     
    -  html-minifier-terser@6.1.0:
    +  /html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    +    engines: {node: '>=12'}
    +    hasBin: true
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -15907,7 +10041,10 @@ snapshots:
           relateurl: 0.2.7
           terser: 5.29.2
     
    -  html-minifier-terser@7.2.0:
    +  /html-minifier-terser@7.2.0:
    +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    +    engines: {node: ^14.13.1 || >=16.0.0}
    +    hasBin: true
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -15916,12 +10053,28 @@ snapshots:
           param-case: 3.0.4
           relateurl: 0.2.7
           terser: 5.29.2
    +    dev: false
     
    -  html-tags@3.3.1: {}
    +  /html-tags@3.3.1:
    +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  html-void-elements@3.0.0: {}
    +  /html-void-elements@3.0.0:
    +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    +    dev: false
     
    -  html-webpack-plugin@5.6.0(webpack@5.91.0):
    +  /html-webpack-plugin@5.6.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.20.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           '@types/html-minifier-terser': 6.1.0
           html-minifier-terser: 6.1.0
    @@ -15930,32 +10083,41 @@ snapshots:
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  htmlparser2@6.1.0:
    +  /htmlparser2@6.1.0:
    +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           domutils: 2.8.0
           entities: 2.2.0
     
    -  htmlparser2@8.0.2:
    +  /htmlparser2@8.0.2:
    +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
           entities: 4.5.0
    +    dev: false
     
    -  http-cache-semantics@4.1.1: {}
    +  /http-cache-semantics@4.1.1:
    +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
     
    -  http-deceiver@1.2.7: {}
    +  /http-deceiver@1.2.7:
    +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
     
    -  http-errors@1.6.3:
    +  /http-errors@1.6.3:
    +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           depd: 1.1.2
           inherits: 2.0.3
           setprototypeof: 1.1.0
           statuses: 1.5.0
     
    -  http-errors@2.0.0:
    +  /http-errors@2.0.0:
    +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           depd: 2.0.0
           inherits: 2.0.4
    @@ -15963,9 +10125,12 @@ snapshots:
           statuses: 2.0.1
           toidentifier: 1.0.1
     
    -  http-parser-js@0.5.8: {}
    +  /http-parser-js@0.5.8:
    +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
     
    -  http-proxy-agent@4.0.1:
    +  /http-proxy-agent@4.0.1:
    +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    +    engines: {node: '>= 6'}
         dependencies:
           '@tootallnate/once': 1.1.2
           agent-base: 6.0.2
    @@ -15973,7 +10138,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  http-proxy-agent@5.0.0:
    +  /http-proxy-agent@5.0.0:
    +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    +    engines: {node: '>= 6'}
         dependencies:
           '@tootallnate/once': 2.0.0
           agent-base: 6.0.2
    @@ -15981,7 +10148,14 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  http-proxy-middleware@2.0.6(@types/express@4.17.21):
    +  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
    +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      '@types/express': ^4.17.13
    +    peerDependenciesMeta:
    +      '@types/express':
    +        optional: true
         dependencies:
           '@types/express': 4.17.21
           '@types/http-proxy': 1.17.14
    @@ -15992,7 +10166,9 @@ snapshots:
         transitivePeerDependencies:
           - debug
     
    -  http-proxy@1.18.1:
    +  /http-proxy@1.18.1:
    +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           eventemitter3: 4.0.7
           follow-redirects: 1.15.6
    @@ -16000,7 +10176,10 @@ snapshots:
         transitivePeerDependencies:
           - debug
     
    -  http-server@14.1.1:
    +  /http-server@14.1.1:
    +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    +    engines: {node: '>=12'}
    +    hasBin: true
         dependencies:
           basic-auth: 2.0.1
           chalk: 4.1.2
    @@ -16018,112 +10197,187 @@ snapshots:
         transitivePeerDependencies:
           - debug
           - supports-color
    +    dev: true
     
    -  http2-wrapper@2.2.1:
    +  /http2-wrapper@2.2.1:
    +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    +    engines: {node: '>=10.19.0'}
         dependencies:
           quick-lru: 5.1.1
           resolve-alpn: 1.2.1
    +    dev: false
     
    -  https-proxy-agent@5.0.1:
    +  /https-proxy-agent@5.0.1:
    +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    +    engines: {node: '>= 6'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  human-signals@2.1.0: {}
    +  /human-signals@2.1.0:
    +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    +    engines: {node: '>=10.17.0'}
     
    -  humanize-ms@1.2.1:
    +  /humanize-ms@1.2.1:
    +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
         dependencies:
           ms: 2.1.3
     
    -  hyphenate-style-name@1.0.4: {}
    +  /hyphenate-style-name@1.0.4:
    +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    +    dev: false
     
    -  iconv-lite@0.4.24:
    +  /iconv-lite@0.4.24:
    +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           safer-buffer: 2.1.2
     
    -  iconv-lite@0.6.3:
    +  /iconv-lite@0.6.3:
    +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    +    engines: {node: '>=0.10.0'}
    +    requiresBuild: true
         dependencies:
           safer-buffer: 2.1.2
     
    -  icss-utils@5.1.0(postcss@8.4.38):
    +  /icss-utils@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
     
    -  ieee754@1.2.1: {}
    +  /ieee754@1.2.1:
    +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
     
    -  ignore-walk@4.0.1:
    +  /ignore-walk@4.0.1:
    +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    +    engines: {node: '>=10'}
         dependencies:
           minimatch: 3.1.2
     
    -  ignore-walk@6.0.4:
    +  /ignore-walk@6.0.4:
    +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minimatch: 9.0.3
     
    -  ignore@5.3.1: {}
    +  /ignore@5.3.1:
    +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    +    engines: {node: '>= 4'}
     
    -  image-size@1.1.1:
    +  /image-size@1.1.1:
    +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    +    engines: {node: '>=16.x'}
    +    hasBin: true
         dependencies:
           queue: 6.0.2
    +    dev: false
     
    -  immediate@3.0.6: {}
    +  /immediate@3.0.6:
    +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    +    dev: true
     
    -  immer@10.0.4: {}
    +  /immer@10.0.4:
    +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    +    dev: false
     
    -  immer@9.0.21: {}
    +  /immer@9.0.21:
    +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    +    dev: false
     
    -  immutability-helper@3.1.1: {}
    +  /immutability-helper@3.1.1:
    +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    +    dev: false
     
    -  import-fresh@3.3.0:
    +  /import-fresh@3.3.0:
    +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    +    engines: {node: '>=6'}
         dependencies:
           parent-module: 1.0.1
           resolve-from: 4.0.0
     
    -  import-lazy@4.0.0: {}
    +  /import-lazy@4.0.0:
    +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  import-local@3.1.0:
    +  /import-local@3.1.0:
    +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    +    engines: {node: '>=8'}
    +    hasBin: true
         dependencies:
           pkg-dir: 4.2.0
           resolve-cwd: 3.0.0
     
    -  imurmurhash@0.1.4: {}
    +  /imurmurhash@0.1.4:
    +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    +    engines: {node: '>=0.8.19'}
     
    -  indent-string@4.0.0: {}
    +  /indent-string@4.0.0:
    +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    +    engines: {node: '>=8'}
     
    -  indent-string@5.0.0: {}
    +  /indent-string@5.0.0:
    +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  individual@3.0.0: {}
    +  /individual@3.0.0:
    +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
     
    -  infer-owner@1.0.4: {}
    +  /infer-owner@1.0.4:
    +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
     
    -  infima@0.2.0-alpha.43: {}
    +  /infima@0.2.0-alpha.43:
    +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  inflight@1.0.6:
    +  /inflight@1.0.6:
    +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
         dependencies:
           once: 1.4.0
           wrappy: 1.0.2
     
    -  inherits@2.0.3: {}
    +  /inherits@2.0.3:
    +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
     
    -  inherits@2.0.4: {}
    +  /inherits@2.0.4:
    +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
     
    -  ini@1.3.8: {}
    +  /ini@1.3.8:
    +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
     
    -  ini@2.0.0: {}
    +  /ini@2.0.0:
    +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  ini@3.0.1: {}
    +  /ini@3.0.1:
    +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    dev: true
     
    -  inline-style-parser@0.1.1: {}
    +  /inline-style-parser@0.1.1:
    +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
     
    -  inline-style-parser@0.2.2: {}
    +  /inline-style-parser@0.2.2:
    +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
     
    -  inline-style-prefixer@7.0.0:
    +  /inline-style-prefixer@7.0.0:
    +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
         dependencies:
           css-in-js-utils: 3.1.0
           fast-loops: 1.1.3
    +    dev: false
     
    -  inquirer@8.2.6:
    +  /inquirer@8.2.6:
    +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    +    engines: {node: '>=12.0.0'}
         dependencies:
           ansi-escapes: 4.3.2
           chalk: 4.1.2
    @@ -16141,255 +10395,454 @@ snapshots:
           through: 2.3.8
           wrap-ansi: 6.2.0
     
    -  internal-slot@1.0.7:
    +  /internal-slot@1.0.7:
    +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
           hasown: 2.0.2
           side-channel: 1.0.6
    +    dev: true
     
    -  interpret@1.4.0: {}
    +  /interpret@1.4.0:
    +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    +    engines: {node: '>= 0.10'}
     
    -  interpret@3.1.1: {}
    +  /interpret@3.1.1:
    +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    +    engines: {node: '>=10.13.0'}
     
    -  invariant@2.2.4:
    +  /invariant@2.2.4:
    +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
         dependencies:
           loose-envify: 1.4.0
     
    -  ip-address@9.0.5:
    +  /ip-address@9.0.5:
    +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    +    engines: {node: '>= 12'}
         dependencies:
           jsbn: 1.1.0
           sprintf-js: 1.1.3
     
    -  ipaddr.js@1.9.1: {}
    +  /ipaddr.js@1.9.1:
    +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    +    engines: {node: '>= 0.10'}
     
    -  ipaddr.js@2.1.0: {}
    +  /ipaddr.js@2.1.0:
    +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    +    engines: {node: '>= 10'}
     
    -  is-alphabetical@2.0.1: {}
    +  /is-alphabetical@2.0.1:
    +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
     
    -  is-alphanumerical@2.0.1:
    +  /is-alphanumerical@2.0.1:
    +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
         dependencies:
           is-alphabetical: 2.0.1
           is-decimal: 2.0.1
     
    -  is-arguments@1.1.1:
    +  /is-arguments@1.1.1:
    +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-array-buffer@3.0.4:
    +  /is-array-buffer@3.0.4:
    +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  is-arrayish@0.2.1: {}
    +  /is-arrayish@0.2.1:
    +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
     
    -  is-arrayish@0.3.2: {}
    +  /is-arrayish@0.3.2:
    +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
     
    -  is-async-function@2.0.0:
    +  /is-async-function@2.0.0:
    +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-bigint@1.0.4:
    +  /is-bigint@1.0.4:
    +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
         dependencies:
           has-bigints: 1.0.2
    +    dev: true
     
    -  is-binary-path@2.1.0:
    +  /is-binary-path@2.1.0:
    +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    +    engines: {node: '>=8'}
         dependencies:
           binary-extensions: 2.3.0
     
    -  is-boolean-object@1.1.2:
    +  /is-boolean-object@1.1.2:
    +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-builtin-module@3.2.1:
    +  /is-builtin-module@3.2.1:
    +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    +    engines: {node: '>=6'}
         dependencies:
           builtin-modules: 3.3.0
    +    dev: true
     
    -  is-callable@1.2.7: {}
    +  /is-callable@1.2.7:
    +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-ci@3.0.1:
    +  /is-ci@3.0.1:
    +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    +    hasBin: true
         dependencies:
           ci-info: 3.9.0
    +    dev: false
     
    -  is-core-module@2.13.1:
    +  /is-core-module@2.13.1:
    +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
         dependencies:
           hasown: 2.0.2
     
    -  is-data-view@1.0.1:
    +  /is-data-view@1.0.1:
    +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-typed-array: 1.1.13
    +    dev: true
     
    -  is-date-object@1.0.5:
    +  /is-date-object@1.0.5:
    +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-decimal@2.0.1: {}
    +  /is-decimal@2.0.1:
    +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
     
    -  is-docker@2.2.1: {}
    +  /is-docker@2.2.1:
    +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +    dev: false
     
    -  is-docker@3.0.0: {}
    +  /is-docker@3.0.0:
    +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    hasBin: true
     
    -  is-extendable@0.1.1: {}
    +  /is-extendable@0.1.1:
    +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-extglob@2.1.1: {}
    +  /is-extglob@2.1.1:
    +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    +    engines: {node: '>=0.10.0'}
     
    -  is-finalizationregistry@1.0.2:
    +  /is-finalizationregistry@1.0.2:
    +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-fullwidth-code-point@3.0.0: {}
    +  /is-fullwidth-code-point@3.0.0:
    +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    +    engines: {node: '>=8'}
     
    -  is-generator-fn@2.1.0: {}
    +  /is-generator-fn@2.1.0:
    +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  is-generator-function@1.0.10:
    +  /is-generator-function@1.0.10:
    +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-glob@4.0.3:
    +  /is-glob@4.0.3:
    +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-extglob: 2.1.1
     
    -  is-hexadecimal@2.0.1: {}
    +  /is-hexadecimal@2.0.1:
    +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
     
    -  is-inside-container@1.0.0:
    +  /is-inside-container@1.0.0:
    +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    +    engines: {node: '>=14.16'}
    +    hasBin: true
         dependencies:
           is-docker: 3.0.0
     
    -  is-installed-globally@0.4.0:
    +  /is-installed-globally@0.4.0:
    +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    +    engines: {node: '>=10'}
         dependencies:
           global-dirs: 3.0.1
           is-path-inside: 3.0.3
    +    dev: false
     
    -  is-interactive@1.0.0: {}
    +  /is-interactive@1.0.0:
    +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    +    engines: {node: '>=8'}
     
    -  is-lambda@1.0.1: {}
    +  /is-lambda@1.0.1:
    +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
     
    -  is-map@2.0.3: {}
    +  /is-map@2.0.3:
    +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-negative-zero@2.0.3: {}
    +  /is-negative-zero@2.0.3:
    +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-network-error@1.1.0: {}
    +  /is-network-error@1.1.0:
    +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    +    engines: {node: '>=16'}
     
    -  is-npm@6.0.0: {}
    +  /is-npm@6.0.0:
    +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  is-number-object@1.0.7:
    +  /is-number-object@1.0.7:
    +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-number@7.0.0: {}
    +  /is-number@7.0.0:
    +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    +    engines: {node: '>=0.12.0'}
     
    -  is-obj@1.0.1: {}
    +  /is-obj@1.0.1:
    +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-obj@2.0.0: {}
    +  /is-obj@2.0.0:
    +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  is-path-cwd@2.2.0: {}
    +  /is-path-cwd@2.2.0:
    +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  is-path-inside@3.0.3: {}
    +  /is-path-inside@3.0.3:
    +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    +    engines: {node: '>=8'}
     
    -  is-plain-obj@1.1.0: {}
    +  /is-plain-obj@1.1.0:
    +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  is-plain-obj@2.1.0: {}
    +  /is-plain-obj@2.1.0:
    +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    +    engines: {node: '>=8'}
     
    -  is-plain-obj@3.0.0: {}
    +  /is-plain-obj@3.0.0:
    +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    +    engines: {node: '>=10'}
     
    -  is-plain-obj@4.1.0: {}
    +  /is-plain-obj@4.1.0:
    +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    +    engines: {node: '>=12'}
     
    -  is-plain-object@2.0.4:
    +  /is-plain-object@2.0.4:
    +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           isobject: 3.0.1
     
    -  is-plain-object@5.0.0: {}
    +  /is-plain-object@5.0.0:
    +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    +    engines: {node: '>=0.10.0'}
     
    -  is-potential-custom-element-name@1.0.1: {}
    +  /is-potential-custom-element-name@1.0.1:
    +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    +    dev: true
     
    -  is-reference@3.0.2:
    +  /is-reference@3.0.2:
    +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  is-regex@1.1.4:
    +  /is-regex@1.1.4:
    +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-regexp@1.0.0: {}
    +  /is-regexp@1.0.0:
    +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-root@2.1.0: {}
    +  /is-root@2.1.0:
    +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  is-scoped@2.1.0:
    +  /is-scoped@2.1.0:
    +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    +    engines: {node: '>=8'}
         dependencies:
           scoped-regex: 2.1.0
     
    -  is-set@2.0.3: {}
    +  /is-set@2.0.3:
    +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-shared-array-buffer@1.0.3:
    +  /is-shared-array-buffer@1.0.3:
    +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-stream@2.0.1: {}
    +  /is-stream@2.0.1:
    +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    +    engines: {node: '>=8'}
     
    -  is-string@1.0.7:
    +  /is-string@1.0.7:
    +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-subdir@1.2.0:
    +  /is-subdir@1.2.0:
    +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    +    engines: {node: '>=4'}
         dependencies:
           better-path-resolve: 1.0.0
    +    dev: true
     
    -  is-symbol@1.0.4:
    +  /is-symbol@1.0.4:
    +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-symbols: 1.0.3
    +    dev: true
     
    -  is-typed-array@1.1.13:
    +  /is-typed-array@1.1.13:
    +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           which-typed-array: 1.1.15
    +    dev: true
     
    -  is-typedarray@1.0.0: {}
    +  /is-typedarray@1.0.0:
    +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
     
    -  is-unicode-supported@0.1.0: {}
    +  /is-unicode-supported@0.1.0:
    +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    +    engines: {node: '>=10'}
     
    -  is-utf8@0.2.1: {}
    +  /is-utf8@0.2.1:
    +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
     
    -  is-weakmap@2.0.2: {}
    +  /is-weakmap@2.0.2:
    +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-weakref@1.0.2:
    +  /is-weakref@1.0.2:
    +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-weakset@2.0.3:
    +  /is-weakset@2.0.3:
    +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  is-windows@1.0.2: {}
    +  /is-windows@1.0.2:
    +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  is-wsl@2.2.0:
    +  /is-wsl@2.2.0:
    +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    +    engines: {node: '>=8'}
         dependencies:
           is-docker: 2.2.1
    +    dev: false
     
    -  is-wsl@3.1.0:
    +  /is-wsl@3.1.0:
    +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    +    engines: {node: '>=16'}
         dependencies:
           is-inside-container: 1.0.0
     
    -  is-yarn-global@0.4.1: {}
    +  /is-yarn-global@0.4.1:
    +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  isarray@0.0.1: {}
    +  /isarray@0.0.1:
    +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    +    dev: false
     
    -  isarray@1.0.0: {}
    +  /isarray@1.0.0:
    +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
     
    -  isarray@2.0.5: {}
    +  /isarray@2.0.5:
    +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    +    dev: true
     
    -  isbinaryfile@4.0.10: {}
    +  /isbinaryfile@4.0.10:
    +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    +    engines: {node: '>= 8.0.0'}
     
    -  isbinaryfile@5.0.2: {}
    +  /isbinaryfile@5.0.2:
    +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    +    engines: {node: '>= 18.0.0'}
     
    -  isexe@2.0.0: {}
    +  /isexe@2.0.0:
    +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
     
    -  isobject@3.0.1: {}
    +  /isobject@3.0.1:
    +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    +    engines: {node: '>=0.10.0'}
     
    -  istanbul-lib-coverage@3.2.2: {}
    +  /istanbul-lib-coverage@3.2.2:
    +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  istanbul-lib-instrument@5.2.1:
    +  /istanbul-lib-instrument@5.2.1:
    +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -16398,8 +10851,11 @@ snapshots:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-lib-instrument@6.0.2:
    +  /istanbul-lib-instrument@6.0.2:
    +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -16408,58 +10864,85 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-lib-report@3.0.1:
    +  /istanbul-lib-report@3.0.1:
    +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    +    engines: {node: '>=10'}
         dependencies:
           istanbul-lib-coverage: 3.2.2
           make-dir: 4.0.0
           supports-color: 7.2.0
    +    dev: true
     
    -  istanbul-lib-source-maps@4.0.1:
    +  /istanbul-lib-source-maps@4.0.1:
    +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    +    engines: {node: '>=10'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           istanbul-lib-coverage: 3.2.2
           source-map: 0.6.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-reports@3.1.7:
    +  /istanbul-reports@3.1.7:
    +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    +    engines: {node: '>=8'}
         dependencies:
           html-escaper: 2.0.2
           istanbul-lib-report: 3.0.1
    +    dev: true
     
    -  iterator.prototype@1.1.2:
    +  /iterator.prototype@1.1.2:
    +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
         dependencies:
           define-properties: 1.2.1
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           reflect.getprototypeof: 1.0.6
           set-function-name: 2.0.2
    +    dev: true
     
    -  itertools@2.2.5: {}
    +  /itertools@2.2.5:
    +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    +    dev: false
     
    -  jackspeak@2.3.6:
    +  /jackspeak@2.3.6:
    +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@isaacs/cliui': 8.0.2
         optionalDependencies:
           '@pkgjs/parseargs': 0.11.0
     
    -  jake@10.8.7:
    +  /jake@10.8.7:
    +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           async: 3.2.5
           chalk: 4.1.2
           filelist: 1.0.4
           minimatch: 3.1.2
     
    -  jclass@1.2.1: {}
    +  /jclass@1.2.1:
    +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  jest-changed-files@29.7.0:
    +  /jest-changed-files@29.7.0:
    +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           execa: 5.1.1
           jest-util: 29.7.0
           p-limit: 3.1.0
    +    dev: true
     
    -  jest-circus@29.7.0:
    +  /jest-circus@29.7.0:
    +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -16484,8 +10967,17 @@ snapshots:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    +    dev: true
     
    -  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/test-result': 29.7.0
    @@ -16503,8 +10995,19 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@types/node': '*'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      '@types/node':
    +        optional: true
    +      ts-node:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           '@jest/test-sequencer': 29.7.0
    @@ -16533,27 +11036,44 @@ snapshots:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    +    dev: true
     
    -  jest-diff@29.7.0:
    +  /jest-diff@29.7.0:
    +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           diff-sequences: 29.6.3
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-docblock@29.7.0:
    +  /jest-docblock@29.7.0:
    +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           detect-newline: 3.1.0
    +    dev: true
     
    -  jest-each@29.7.0:
    +  /jest-each@29.7.0:
    +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
           jest-get-type: 29.6.3
           jest-util: 29.7.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-environment-jsdom@29.7.0:
    +  /jest-environment-jsdom@29.7.0:
    +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16567,8 +11087,11 @@ snapshots:
           - bufferutil
           - supports-color
           - utf-8-validate
    +    dev: true
     
    -  jest-environment-node@29.7.0:
    +  /jest-environment-node@29.7.0:
    +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16576,10 +11099,16 @@ snapshots:
           '@types/node': 18.18.2
           jest-mock: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  jest-get-type@29.6.3: {}
    +  /jest-get-type@29.6.3:
    +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  jest-haste-map@29.7.0:
    +  /jest-haste-map@29.7.0:
    +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/graceful-fs': 4.1.9
    @@ -16594,20 +11123,29 @@ snapshots:
           walker: 1.0.8
         optionalDependencies:
           fsevents: 2.3.3
    +    dev: true
     
    -  jest-leak-detector@29.7.0:
    +  /jest-leak-detector@29.7.0:
    +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-matcher-utils@29.7.0:
    +  /jest-matcher-utils@29.7.0:
    +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           jest-diff: 29.7.0
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-message-util@29.7.0:
    +  /jest-message-util@29.7.0:
    +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@jest/types': 29.6.3
    @@ -16618,27 +11156,47 @@ snapshots:
           pretty-format: 29.7.0
           slash: 3.0.0
           stack-utils: 2.0.6
    +    dev: true
     
    -  jest-mock@29.7.0:
    +  /jest-mock@29.7.0:
    +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-util: 29.7.0
    +    dev: true
     
    -  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    +  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    +    engines: {node: '>=6'}
    +    peerDependencies:
    +      jest-resolve: '*'
    +    peerDependenciesMeta:
    +      jest-resolve:
    +        optional: true
         dependencies:
           jest-resolve: 29.7.0
    +    dev: true
     
    -  jest-regex-util@29.6.3: {}
    +  /jest-regex-util@29.6.3:
    +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  jest-resolve-dependencies@29.7.0:
    +  /jest-resolve-dependencies@29.7.0:
    +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-regex-util: 29.6.3
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-resolve@29.7.0:
    +  /jest-resolve@29.7.0:
    +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           graceful-fs: 4.2.11
    @@ -16649,8 +11207,11 @@ snapshots:
           resolve: 1.22.8
           resolve.exports: 2.0.2
           slash: 3.0.0
    +    dev: true
     
    -  jest-runner@29.7.0:
    +  /jest-runner@29.7.0:
    +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/console': 29.7.0
           '@jest/environment': 29.7.0
    @@ -16675,8 +11236,11 @@ snapshots:
           source-map-support: 0.5.13
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-runtime@29.7.0:
    +  /jest-runtime@29.7.0:
    +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16702,8 +11266,11 @@ snapshots:
           strip-bom: 4.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-snapshot@29.7.0:
    +  /jest-snapshot@29.7.0:
    +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -16727,8 +11294,11 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-util@29.7.0:
    +  /jest-util@29.7.0:
    +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -16737,7 +11307,9 @@ snapshots:
           graceful-fs: 4.2.11
           picomatch: 2.3.1
     
    -  jest-validate@29.7.0:
    +  /jest-validate@29.7.0:
    +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           camelcase: 6.3.0
    @@ -16745,8 +11317,11 @@ snapshots:
           jest-get-type: 29.6.3
           leven: 3.1.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-watcher@29.7.0:
    +  /jest-watcher@29.7.0:
    +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/test-result': 29.7.0
           '@jest/types': 29.6.3
    @@ -16756,21 +11331,34 @@ snapshots:
           emittery: 0.13.1
           jest-util: 29.7.0
           string-length: 4.0.2
    +    dev: true
     
    -  jest-worker@27.5.1:
    +  /jest-worker@27.5.1:
    +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           '@types/node': 18.18.2
           merge-stream: 2.0.0
           supports-color: 8.1.1
     
    -  jest-worker@29.7.0:
    +  /jest-worker@29.7.0:
    +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@types/node': 18.18.2
           jest-util: 29.7.0
           merge-stream: 2.0.0
           supports-color: 8.1.1
     
    -  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/types': 29.6.3
    @@ -16781,10 +11369,14 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  jiti@1.21.0: {}
    +  /jiti@1.21.0:
    +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    +    hasBin: true
     
    -  joi@17.12.2:
    +  /joi@17.12.2:
    +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
         dependencies:
           '@hapi/hoek': 9.3.0
           '@hapi/topo': 5.1.0
    @@ -16792,22 +11384,37 @@ snapshots:
           '@sideway/formula': 3.0.1
           '@sideway/pinpoint': 2.0.0
     
    -  js-cookie@2.2.1: {}
    +  /js-cookie@2.2.1:
    +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    +    dev: false
     
    -  js-tokens@4.0.0: {}
    +  /js-tokens@4.0.0:
    +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
     
    -  js-yaml@3.14.1:
    +  /js-yaml@3.14.1:
    +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    +    hasBin: true
         dependencies:
           argparse: 1.0.10
           esprima: 4.0.1
     
    -  js-yaml@4.1.0:
    +  /js-yaml@4.1.0:
    +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    +    hasBin: true
         dependencies:
           argparse: 2.0.1
     
    -  jsbn@1.1.0: {}
    +  /jsbn@1.1.0:
    +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
     
    -  jsdom@20.0.3:
    +  /jsdom@20.0.3:
    +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
         dependencies:
           abab: 2.0.6
           acorn: 8.11.3
    @@ -16839,168 +11446,272 @@ snapshots:
           - bufferutil
           - supports-color
           - utf-8-validate
    +    dev: true
     
    -  jsesc@0.5.0: {}
    +  /jsesc@0.5.0:
    +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    +    hasBin: true
     
    -  jsesc@2.5.2: {}
    +  /jsesc@2.5.2:
    +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  jsesc@3.0.2: {}
    +  /jsesc@3.0.2:
    +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +    dev: true
     
    -  json-buffer@3.0.1: {}
    +  /json-buffer@3.0.1:
    +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
     
    -  json-parse-even-better-errors@2.3.1: {}
    +  /json-parse-even-better-errors@2.3.1:
    +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
     
    -  json-parse-even-better-errors@3.0.1: {}
    +  /json-parse-even-better-errors@3.0.1:
    +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  json-schema-traverse@0.4.1: {}
    +  /json-schema-traverse@0.4.1:
    +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
     
    -  json-schema-traverse@1.0.0: {}
    +  /json-schema-traverse@1.0.0:
    +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
     
    -  json-stable-stringify-without-jsonify@1.0.1: {}
    +  /json-stable-stringify-without-jsonify@1.0.1:
    +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
     
    -  json-stringify-nice@1.1.4: {}
    +  /json-stringify-nice@1.1.4:
    +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
     
    -  json-stringify-safe@5.0.1: {}
    +  /json-stringify-safe@5.0.1:
    +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
     
    -  json5@1.0.2:
    +  /json5@1.0.2:
    +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    +    hasBin: true
         dependencies:
           minimist: 1.2.8
    +    dev: true
     
    -  json5@2.2.3: {}
    +  /json5@2.2.3:
    +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
     
    -  jsonfile@6.1.0:
    +  /jsonfile@6.1.0:
    +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
         dependencies:
           universalify: 2.0.1
         optionalDependencies:
           graceful-fs: 4.2.11
     
    -  jsonparse@1.3.1: {}
    +  /jsonparse@1.3.1:
    +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    +    engines: {'0': node >= 0.2.0}
     
    -  jsx-ast-utils@3.3.5:
    +  /jsx-ast-utils@3.3.5:
    +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    +    engines: {node: '>=4.0'}
         dependencies:
           array-includes: 3.1.8
           array.prototype.flat: 1.3.2
           object.assign: 4.1.5
           object.values: 1.2.0
    +    dev: true
     
    -  jszip@3.10.1:
    +  /jszip@3.10.1:
    +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
         dependencies:
           lie: 3.3.0
           pako: 1.0.11
           readable-stream: 2.3.8
           setimmediate: 1.0.5
    +    dev: true
     
    -  just-diff-apply@5.5.0: {}
    +  /just-diff-apply@5.5.0:
    +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
     
    -  just-diff@5.2.0: {}
    +  /just-diff@5.2.0:
    +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
     
    -  just-extend@6.2.0: {}
    +  /just-extend@6.2.0:
    +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    +    dev: true
     
    -  keyv@4.5.4:
    +  /keyv@4.5.4:
    +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
         dependencies:
           json-buffer: 3.0.1
     
    -  kind-of@6.0.3: {}
    +  /kind-of@6.0.3:
    +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    +    engines: {node: '>=0.10.0'}
     
    -  kleur@3.0.3: {}
    +  /kleur@3.0.3:
    +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    +    engines: {node: '>=6'}
     
    -  kuler@2.0.0: {}
    +  /kuler@2.0.0:
    +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
     
    -  language-subtag-registry@0.3.22: {}
    +  /language-subtag-registry@0.3.22:
    +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    +    dev: true
     
    -  language-tags@1.0.9:
    +  /language-tags@1.0.9:
    +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    +    engines: {node: '>=0.10'}
         dependencies:
           language-subtag-registry: 0.3.22
    +    dev: true
     
    -  latest-version@7.0.0:
    +  /latest-version@7.0.0:
    +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           package-json: 8.1.1
    +    dev: false
     
    -  launch-editor@2.6.1:
    +  /launch-editor@2.6.1:
    +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
         dependencies:
           picocolors: 1.0.0
           shell-quote: 1.8.1
     
    -  leven@3.1.0: {}
    +  /leven@3.1.0:
    +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    +    engines: {node: '>=6'}
     
    -  levn@0.4.1:
    +  /levn@0.4.1:
    +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  lie@3.3.0:
    +  /lie@3.3.0:
    +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
         dependencies:
           immediate: 3.0.6
    +    dev: true
     
    -  lilconfig@2.1.0: {}
    +  /lilconfig@2.1.0:
    +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    +    engines: {node: '>=10'}
     
    -  lilconfig@3.1.1: {}
    +  /lilconfig@3.1.1:
    +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    +    engines: {node: '>=14'}
    +    dev: true
     
    -  lines-and-columns@1.2.4: {}
    +  /lines-and-columns@1.2.4:
    +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
     
    -  load-json-file@6.2.0:
    +  /load-json-file@6.2.0:
    +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    +    engines: {node: '>=8'}
         dependencies:
           graceful-fs: 4.2.11
           parse-json: 5.2.0
           strip-bom: 4.0.0
           type-fest: 0.6.0
    +    dev: true
     
    -  load-json-file@7.0.1: {}
    +  /load-json-file@7.0.1:
    +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: true
     
    -  load-script@1.0.0: {}
    +  /load-script@1.0.0:
    +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    +    dev: false
     
    -  load-yaml-file@0.2.0:
    +  /load-yaml-file@0.2.0:
    +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    +    engines: {node: '>=6'}
         dependencies:
           graceful-fs: 4.2.11
           js-yaml: 3.14.1
           pify: 4.0.1
           strip-bom: 3.0.0
     
    -  loader-runner@4.3.0: {}
    +  /loader-runner@4.3.0:
    +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    +    engines: {node: '>=6.11.5'}
     
    -  loader-utils@2.0.4:
    +  /loader-utils@2.0.4:
    +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    +    engines: {node: '>=8.9.0'}
         dependencies:
           big.js: 5.2.2
           emojis-list: 3.0.0
           json5: 2.2.3
    +    dev: false
     
    -  loader-utils@3.2.1: {}
    +  /loader-utils@3.2.1:
    +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    +    engines: {node: '>= 12.13.0'}
    +    dev: false
     
    -  locate-path@3.0.0:
    +  /locate-path@3.0.0:
    +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    +    engines: {node: '>=6'}
         dependencies:
           p-locate: 3.0.0
           path-exists: 3.0.0
    +    dev: false
     
    -  locate-path@5.0.0:
    +  /locate-path@5.0.0:
    +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    +    engines: {node: '>=8'}
         dependencies:
           p-locate: 4.1.0
     
    -  locate-path@6.0.0:
    +  /locate-path@6.0.0:
    +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    +    engines: {node: '>=10'}
         dependencies:
           p-locate: 5.0.0
     
    -  locate-path@7.2.0:
    +  /locate-path@7.2.0:
    +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           p-locate: 6.0.0
    +    dev: false
     
    -  lodash.debounce@4.0.8: {}
    +  /lodash.debounce@4.0.8:
    +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
     
    -  lodash.get@4.4.2: {}
    +  /lodash.get@4.4.2:
    +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    +    dev: true
     
    -  lodash.memoize@4.1.2: {}
    +  /lodash.memoize@4.1.2:
    +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
     
    -  lodash.merge@4.6.2: {}
    +  /lodash.merge@4.6.2:
    +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     
    -  lodash.uniq@4.5.0: {}
    +  /lodash.uniq@4.5.0:
    +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    +    dev: false
     
    -  lodash@4.17.21: {}
    +  /lodash@4.17.21:
    +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
     
    -  log-symbols@4.1.0:
    +  /log-symbols@4.1.0:
    +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    +    engines: {node: '>=10'}
         dependencies:
           chalk: 4.1.2
           is-unicode-supported: 0.1.0
     
    -  logform@2.6.0:
    +  /logform@2.6.0:
    +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           '@colors/colors': 1.6.0
           '@types/triple-beam': 1.3.5
    @@ -17009,45 +11720,74 @@ snapshots:
           safe-stable-stringify: 2.4.3
           triple-beam: 1.4.1
     
    -  longest-streak@3.1.0: {}
    +  /longest-streak@3.1.0:
    +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
     
    -  loose-envify@1.4.0:
    +  /loose-envify@1.4.0:
    +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    +    hasBin: true
         dependencies:
           js-tokens: 4.0.0
     
    -  loupe@3.1.0:
    +  /loupe@3.1.0:
    +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
         dependencies:
           get-func-name: 2.0.2
    +    dev: true
     
    -  lower-case@2.0.2:
    +  /lower-case@2.0.2:
    +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
         dependencies:
           tslib: 2.6.2
     
    -  lowercase-keys@3.0.0: {}
    +  /lowercase-keys@3.0.0:
    +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  lru-cache@10.2.0: {}
    +  /lru-cache@10.2.0:
    +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    +    engines: {node: 14 || >=16.14}
     
    -  lru-cache@5.1.1:
    +  /lru-cache@5.1.1:
    +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
         dependencies:
           yallist: 3.1.1
     
    -  lru-cache@6.0.0:
    +  /lru-cache@6.0.0:
    +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    +    engines: {node: '>=10'}
         dependencies:
           yallist: 4.0.0
     
    -  lru-cache@7.10.1: {}
    +  /lru-cache@7.10.1:
    +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  lru-cache@7.18.3: {}
    +  /lru-cache@7.18.3:
    +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    +    engines: {node: '>=12'}
     
    -  lz-string@1.5.0: {}
    +  /lz-string@1.5.0:
    +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    +    hasBin: true
    +    dev: true
     
    -  make-dir@4.0.0:
    +  /make-dir@4.0.0:
    +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    +    engines: {node: '>=10'}
         dependencies:
           semver: 7.6.0
    +    dev: true
     
    -  make-error@1.3.6: {}
    +  /make-error@1.3.6:
    +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    +    dev: true
     
    -  make-fetch-happen@10.2.1:
    +  /make-fetch-happen@10.2.1:
    +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 16.1.3
    @@ -17069,7 +11809,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  make-fetch-happen@11.1.1:
    +  /make-fetch-happen@11.1.1:
    +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 17.1.4
    @@ -17089,7 +11831,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  make-fetch-happen@9.1.0:
    +  /make-fetch-happen@9.1.0:
    +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    +    engines: {node: '>= 10'}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 15.3.0
    @@ -17111,23 +11855,39 @@ snapshots:
           - bluebird
           - supports-color
     
    -  makeerror@1.0.12:
    +  /makeerror@1.0.12:
    +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
         dependencies:
           tmpl: 1.0.5
    +    dev: true
     
    -  map-age-cleaner@0.1.3:
    +  /map-age-cleaner@0.1.3:
    +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    +    engines: {node: '>=6'}
         dependencies:
           p-defer: 1.0.0
    +    dev: true
     
    -  map-obj@1.0.1: {}
    +  /map-obj@1.0.1:
    +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  map-obj@4.3.0: {}
    +  /map-obj@4.3.0:
    +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  markdown-extensions@2.0.0: {}
    +  /markdown-extensions@2.0.0:
    +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    +    engines: {node: '>=16'}
     
    -  markdown-table@3.0.3: {}
    +  /markdown-table@3.0.3:
    +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    +    dev: false
     
    -  mdast-util-directive@3.0.0:
    +  /mdast-util-directive@3.0.0:
    +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17139,15 +11899,19 @@ snapshots:
           unist-util-visit-parents: 6.0.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-find-and-replace@3.0.1:
    +  /mdast-util-find-and-replace@3.0.1:
    +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
         dependencies:
           '@types/mdast': 4.0.3
           escape-string-regexp: 5.0.0
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
    +    dev: false
     
    -  mdast-util-from-markdown@2.0.0:
    +  /mdast-util-from-markdown@2.0.0:
    +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17164,7 +11928,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-frontmatter@2.0.1:
    +  /mdast-util-frontmatter@2.0.1:
    +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17174,16 +11939,20 @@ snapshots:
           micromark-extension-frontmatter: 2.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-autolink-literal@2.0.0:
    +  /mdast-util-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
         dependencies:
           '@types/mdast': 4.0.3
           ccount: 2.0.1
           devlop: 1.1.0
           mdast-util-find-and-replace: 3.0.1
           micromark-util-character: 2.1.0
    +    dev: false
     
    -  mdast-util-gfm-footnote@2.0.0:
    +  /mdast-util-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17192,16 +11961,20 @@ snapshots:
           micromark-util-normalize-identifier: 2.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-strikethrough@2.0.0:
    +  /mdast-util-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-table@2.0.0:
    +  /mdast-util-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17210,8 +11983,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-task-list-item@2.0.0:
    +  /mdast-util-gfm-task-list-item@2.0.0:
    +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17219,8 +11994,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm@3.0.0:
    +  /mdast-util-gfm@3.0.0:
    +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-gfm-autolink-literal: 2.0.0
    @@ -17231,8 +12008,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-mdx-expression@2.0.0:
    +  /mdast-util-mdx-expression@2.0.0:
    +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17243,7 +12022,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdx-jsx@3.1.2:
    +  /mdast-util-mdx-jsx@3.1.2:
    +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17261,7 +12041,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdx@3.0.0:
    +  /mdast-util-mdx@3.0.0:
    +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-mdx-expression: 2.0.0
    @@ -17271,7 +12052,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdxjs-esm@2.0.1:
    +  /mdast-util-mdxjs-esm@2.0.1:
    +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17282,12 +12064,14 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-phrasing@4.1.0:
    +  /mdast-util-phrasing@4.1.0:
    +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
         dependencies:
           '@types/mdast': 4.0.3
           unist-util-is: 6.0.0
     
    -  mdast-util-to-hast@13.1.0:
    +  /mdast-util-to-hast@13.1.0:
    +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -17299,7 +12083,8 @@ snapshots:
           unist-util-visit: 5.0.0
           vfile: 6.0.1
     
    -  mdast-util-to-markdown@2.1.0:
    +  /mdast-util-to-markdown@2.1.0:
    +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17310,19 +12095,35 @@ snapshots:
           unist-util-visit: 5.0.0
           zwitch: 2.0.4
     
    -  mdast-util-to-string@4.0.0:
    +  /mdast-util-to-string@4.0.0:
    +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
         dependencies:
           '@types/mdast': 4.0.3
     
    -  mdn-data@2.0.14: {}
    +  /mdn-data@2.0.14:
    +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    +    dev: false
     
    -  mdn-data@2.0.28: {}
    +  /mdn-data@2.0.28:
    +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    +    dev: true
     
    -  mdn-data@2.0.30: {}
    +  /mdn-data@2.0.30:
    +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    +    dev: true
     
    -  media-typer@0.3.0: {}
    +  /media-typer@0.3.0:
    +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    +    engines: {node: '>= 0.6'}
     
    -  mem-fs-editor@9.7.0(mem-fs@2.3.0):
    +  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
    +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      mem-fs: ^2.1.0
    +    peerDependenciesMeta:
    +      mem-fs:
    +        optional: true
         dependencies:
           binaryextensions: 4.19.0
           commondir: 1.0.1
    @@ -17336,29 +12137,43 @@ snapshots:
           normalize-path: 3.0.0
           textextensions: 5.16.0
     
    -  mem-fs@2.3.0:
    +  /mem-fs@2.3.0:
    +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    +    engines: {node: '>=12'}
         dependencies:
           '@types/node': 15.14.9
           '@types/vinyl': 2.0.11
           vinyl: 2.2.1
           vinyl-file: 3.0.0
     
    -  mem@8.1.1:
    +  /mem@8.1.1:
    +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    +    engines: {node: '>=10'}
         dependencies:
           map-age-cleaner: 0.1.3
           mimic-fn: 3.1.0
    +    dev: true
     
    -  memfs@3.5.3:
    +  /memfs@3.5.3:
    +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    +    engines: {node: '>= 4.0.0'}
         dependencies:
           fs-monkey: 1.0.5
    +    dev: false
     
    -  memfs@4.8.0:
    +  /memfs@4.8.0:
    +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    +    engines: {node: '>= 4.0.0'}
         dependencies:
           tslib: 2.6.2
     
    -  memoize-one@5.2.1: {}
    +  /memoize-one@5.2.1:
    +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    +    dev: false
     
    -  meow@10.1.5:
    +  /meow@10.1.5:
    +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           '@types/minimist': 1.2.5
           camelcase-keys: 7.0.2
    @@ -17372,16 +12187,24 @@ snapshots:
           trim-newlines: 4.1.1
           type-fest: 1.4.0
           yargs-parser: 20.2.9
    +    dev: true
     
    -  merge-descriptors@1.0.1: {}
    +  /merge-descriptors@1.0.1:
    +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
     
    -  merge-stream@2.0.0: {}
    +  /merge-stream@2.0.0:
    +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
     
    -  merge2@1.4.1: {}
    +  /merge2@1.4.1:
    +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    +    engines: {node: '>= 8'}
     
    -  methods@1.1.2: {}
    +  /methods@1.1.2:
    +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    +    engines: {node: '>= 0.6'}
     
    -  micromark-core-commonmark@2.0.0:
    +  /micromark-core-commonmark@2.0.0:
    +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
         dependencies:
           decode-named-character-reference: 1.0.2
           devlop: 1.1.0
    @@ -17400,7 +12223,8 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-extension-directive@3.0.0:
    +  /micromark-extension-directive@3.0.0:
    +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
    @@ -17409,22 +12233,28 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
           parse-entities: 4.0.1
    +    dev: false
     
    -  micromark-extension-frontmatter@2.0.0:
    +  /micromark-extension-frontmatter@2.0.0:
    +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
         dependencies:
           fault: 2.0.1
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-autolink-literal@2.0.0:
    +  /micromark-extension-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-footnote@2.0.0:
    +  /micromark-extension-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
         dependencies:
           devlop: 1.1.0
           micromark-core-commonmark: 2.0.0
    @@ -17434,8 +12264,10 @@ snapshots:
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-strikethrough@2.0.0:
    +  /micromark-extension-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
    @@ -17443,28 +12275,36 @@ snapshots:
           micromark-util-resolve-all: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-table@2.0.0:
    +  /micromark-extension-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-tagfilter@2.0.0:
    +  /micromark-extension-gfm-tagfilter@2.0.0:
    +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
         dependencies:
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-task-list-item@2.0.1:
    +  /micromark-extension-gfm-task-list-item@2.0.1:
    +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm@3.0.0:
    +  /micromark-extension-gfm@3.0.0:
    +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
         dependencies:
           micromark-extension-gfm-autolink-literal: 2.0.0
           micromark-extension-gfm-footnote: 2.0.0
    @@ -17474,8 +12314,10 @@ snapshots:
           micromark-extension-gfm-task-list-item: 2.0.1
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-mdx-expression@3.0.0:
    +  /micromark-extension-mdx-expression@3.0.0:
    +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17486,7 +12328,8 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-extension-mdx-jsx@3.0.0:
    +  /micromark-extension-mdx-jsx@3.0.0:
    +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -17499,11 +12342,13 @@ snapshots:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-extension-mdx-md@2.0.0:
    +  /micromark-extension-mdx-md@2.0.0:
    +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
         dependencies:
           micromark-util-types: 2.0.0
     
    -  micromark-extension-mdxjs-esm@3.0.0:
    +  /micromark-extension-mdxjs-esm@3.0.0:
    +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17515,7 +12360,8 @@ snapshots:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-extension-mdxjs@3.0.0:
    +  /micromark-extension-mdxjs@3.0.0:
    +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
    @@ -17526,20 +12372,23 @@ snapshots:
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-destination@2.0.0:
    +  /micromark-factory-destination@2.0.0:
    +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-label@2.0.0:
    +  /micromark-factory-label@2.0.0:
    +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
         dependencies:
           devlop: 1.1.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-mdx-expression@2.0.1:
    +  /micromark-factory-mdx-expression@2.0.1:
    +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17550,69 +12399,84 @@ snapshots:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-factory-space@1.1.0:
    +  /micromark-factory-space@1.1.0:
    +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
         dependencies:
           micromark-util-character: 1.2.0
           micromark-util-types: 1.1.0
    +    dev: false
     
    -  micromark-factory-space@2.0.0:
    +  /micromark-factory-space@2.0.0:
    +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-title@2.0.0:
    +  /micromark-factory-title@2.0.0:
    +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-whitespace@2.0.0:
    +  /micromark-factory-whitespace@2.0.0:
    +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-character@1.2.0:
    +  /micromark-util-character@1.2.0:
    +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
         dependencies:
           micromark-util-symbol: 1.1.0
           micromark-util-types: 1.1.0
    +    dev: false
     
    -  micromark-util-character@2.1.0:
    +  /micromark-util-character@2.1.0:
    +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
         dependencies:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-chunked@2.0.0:
    +  /micromark-util-chunked@2.0.0:
    +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-classify-character@2.0.0:
    +  /micromark-util-classify-character@2.0.0:
    +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-combine-extensions@2.0.0:
    +  /micromark-util-combine-extensions@2.0.0:
    +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
         dependencies:
           micromark-util-chunked: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-decode-numeric-character-reference@2.0.1:
    +  /micromark-util-decode-numeric-character-reference@2.0.1:
    +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-decode-string@2.0.0:
    +  /micromark-util-decode-string@2.0.0:
    +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
         dependencies:
           decode-named-character-reference: 1.0.2
           micromark-util-character: 2.1.0
           micromark-util-decode-numeric-character-reference: 2.0.1
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-encode@2.0.0: {}
    +  /micromark-util-encode@2.0.0:
    +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
     
    -  micromark-util-events-to-acorn@2.0.2:
    +  /micromark-util-events-to-acorn@2.0.2:
    +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -17623,38 +12487,50 @@ snapshots:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-util-html-tag-name@2.0.0: {}
    +  /micromark-util-html-tag-name@2.0.0:
    +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
     
    -  micromark-util-normalize-identifier@2.0.0:
    +  /micromark-util-normalize-identifier@2.0.0:
    +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-resolve-all@2.0.0:
    +  /micromark-util-resolve-all@2.0.0:
    +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
         dependencies:
           micromark-util-types: 2.0.0
     
    -  micromark-util-sanitize-uri@2.0.0:
    +  /micromark-util-sanitize-uri@2.0.0:
    +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-encode: 2.0.0
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-subtokenize@2.0.0:
    +  /micromark-util-subtokenize@2.0.0:
    +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-symbol@1.1.0: {}
    +  /micromark-util-symbol@1.1.0:
    +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    +    dev: false
     
    -  micromark-util-symbol@2.0.0: {}
    +  /micromark-util-symbol@2.0.0:
    +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
     
    -  micromark-util-types@1.1.0: {}
    +  /micromark-util-types@1.1.0:
    +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    +    dev: false
     
    -  micromark-util-types@2.0.0: {}
    +  /micromark-util-types@2.0.0:
    +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
     
    -  micromark@4.0.0:
    +  /micromark@4.0.0:
    +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
         dependencies:
           '@types/debug': 4.1.12
           debug: 4.3.4(supports-color@8.1.1)
    @@ -17676,76 +12552,129 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  micromatch@4.0.5:
    +  /micromatch@4.0.5:
    +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    +    engines: {node: '>=8.6'}
         dependencies:
           braces: 3.0.2
           picomatch: 2.3.1
     
    -  mime-db@1.33.0: {}
    +  /mime-db@1.33.0:
    +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  mime-db@1.52.0: {}
    +  /mime-db@1.52.0:
    +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    +    engines: {node: '>= 0.6'}
     
    -  mime-types@2.1.18:
    +  /mime-types@2.1.18:
    +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.33.0
    +    dev: false
     
    -  mime-types@2.1.35:
    +  /mime-types@2.1.35:
    +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.52.0
     
    -  mime@1.6.0: {}
    +  /mime@1.6.0:
    +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  mimic-fn@2.1.0: {}
    +  /mimic-fn@2.1.0:
    +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    +    engines: {node: '>=6'}
     
    -  mimic-fn@3.1.0: {}
    +  /mimic-fn@3.1.0:
    +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  mimic-response@3.1.0: {}
    +  /mimic-response@3.1.0:
    +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  mimic-response@4.0.0: {}
    +  /mimic-response@4.0.0:
    +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  min-indent@1.0.1: {}
    +  /min-indent@1.0.1:
    +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    +  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
         dependencies:
           schema-utils: 4.2.0
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  minimalistic-assert@1.0.1: {}
    +  /minimalistic-assert@1.0.1:
    +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
     
    -  minimatch@3.1.2:
    +  /minimatch@3.1.2:
    +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
         dependencies:
           brace-expansion: 1.1.11
     
    -  minimatch@5.0.1:
    +  /minimatch@5.0.1:
    +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
    +    dev: true
     
    -  minimatch@5.1.6:
    +  /minimatch@5.1.6:
    +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimatch@7.4.6:
    +  /minimatch@7.4.6:
    +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimatch@9.0.3:
    +  /minimatch@9.0.3:
    +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    +    engines: {node: '>=16 || 14 >=14.17'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimist-options@4.1.0:
    +  /minimist-options@4.1.0:
    +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    +    engines: {node: '>= 6'}
         dependencies:
           arrify: 1.0.1
           is-plain-obj: 1.1.0
           kind-of: 6.0.3
    +    dev: true
     
    -  minimist@1.2.8: {}
    +  /minimist@1.2.8:
    +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
     
    -  minipass-collect@1.0.2:
    +  /minipass-collect@1.0.2:
    +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-fetch@1.4.1:
    +  /minipass-fetch@1.4.1:
    +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -17753,7 +12682,9 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-fetch@2.1.2:
    +  /minipass-fetch@2.1.2:
    +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -17761,7 +12692,9 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-fetch@3.0.4:
    +  /minipass-fetch@3.0.4:
    +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
           minipass-sized: 1.0.3
    @@ -17769,49 +12702,75 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-flush@1.0.5:
    +  /minipass-flush@1.0.5:
    +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-json-stream@1.0.1:
    +  /minipass-json-stream@1.0.1:
    +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
         dependencies:
           jsonparse: 1.3.1
           minipass: 3.3.6
     
    -  minipass-pipeline@1.2.4:
    +  /minipass-pipeline@1.2.4:
    +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-sized@1.0.3:
    +  /minipass-sized@1.0.3:
    +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass@3.3.6:
    +  /minipass@3.3.6:
    +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    +    engines: {node: '>=8'}
         dependencies:
           yallist: 4.0.0
     
    -  minipass@5.0.0: {}
    +  /minipass@5.0.0:
    +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    +    engines: {node: '>=8'}
     
    -  minipass@7.0.4: {}
    +  /minipass@7.0.4:
    +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
     
    -  minizlib@2.1.2:
    +  /minizlib@2.1.2:
    +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
           yallist: 4.0.0
     
    -  mkdirp-infer-owner@2.0.0:
    +  /mkdirp-infer-owner@2.0.0:
    +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    +    engines: {node: '>=10'}
         dependencies:
           chownr: 2.0.0
           infer-owner: 1.0.4
           mkdirp: 1.0.4
     
    -  mkdirp@0.5.6:
    +  /mkdirp@0.5.6:
    +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    +    hasBin: true
         dependencies:
           minimist: 1.2.8
    +    dev: true
     
    -  mkdirp@1.0.4: {}
    +  /mkdirp@1.0.4:
    +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
     
    -  mocha@10.3.0:
    +  /mocha@10.3.0:
    +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    +    engines: {node: '>= 14.0.0'}
    +    hasBin: true
         dependencies:
           ansi-colors: 4.1.1
           browser-stdout: 1.3.1
    @@ -17833,23 +12792,36 @@ snapshots:
           yargs: 16.2.0
           yargs-parser: 20.2.4
           yargs-unparser: 2.0.0
    +    dev: true
     
    -  moo@0.5.2: {}
    +  /moo@0.5.2:
    +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    +    dev: false
     
    -  mrmime@2.0.0: {}
    +  /mrmime@2.0.0:
    +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  ms@2.0.0: {}
    +  /ms@2.0.0:
    +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
     
    -  ms@2.1.2: {}
    +  /ms@2.1.2:
    +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
     
    -  ms@2.1.3: {}
    +  /ms@2.1.3:
    +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
     
    -  multicast-dns@7.2.5:
    +  /multicast-dns@7.2.5:
    +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    +    hasBin: true
         dependencies:
           dns-packet: 5.6.1
           thunky: 1.1.0
     
    -  multimatch@5.0.0:
    +  /multimatch@5.0.0:
    +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/minimatch': 3.0.5
           array-differ: 3.0.0
    @@ -17857,15 +12829,22 @@ snapshots:
           arrify: 2.0.1
           minimatch: 3.1.2
     
    -  mute-stream@0.0.8: {}
    +  /mute-stream@0.0.8:
    +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
     
    -  mz@2.7.0:
    +  /mz@2.7.0:
    +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
         dependencies:
           any-promise: 1.3.0
           object-assign: 4.1.1
           thenify-all: 1.6.0
    +    dev: true
     
    -  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    +  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@jridgewell/sourcemap-codec': 1.4.15
           css-tree: 1.1.3
    @@ -17877,12 +12856,20 @@ snapshots:
           rtl-css-js: 1.16.1
           stacktrace-js: 2.0.2
           stylis: 4.3.1
    +    dev: false
     
    -  nanoid@3.3.7: {}
    +  /nanoid@3.3.7:
    +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    +    hasBin: true
     
    -  natural-compare@1.4.0: {}
    +  /natural-compare@1.4.0:
    +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
     
    -  ndjson@2.0.0:
    +  /ndjson@2.0.0:
    +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           json-stringify-safe: 5.0.1
           minimist: 1.2.8
    @@ -17890,25 +12877,50 @@ snapshots:
           split2: 3.2.2
           through2: 4.0.2
     
    -  nearley@2.20.1(patch_hash=mg2fc7wgvzub3myuz6m74hllma):
    +  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
    +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    +    hasBin: true
         dependencies:
           commander: 2.20.3
           moo: 0.5.2
           railroad-diagrams: 1.0.0
           randexp: 0.4.6
    +    dev: false
    +    patched: true
     
    -  negotiator@0.6.3: {}
    +  /negotiator@0.6.3:
    +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    +    engines: {node: '>= 0.6'}
     
    -  neo-async@2.6.2: {}
    +  /neo-async@2.6.2:
    +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
     
    -  neovim@5.1.0:
    +  /neovim@5.1.0:
    +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           '@msgpack/msgpack': 2.8.0
           winston: 3.11.0
     
    -  nerf-dart@1.0.0: {}
    +  /nerf-dart@1.0.0:
    +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    +    dev: false
     
    -  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    +  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    +    engines: {node: '>=18.17.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@opentelemetry/api': ^1.1.0
    +      react: ^18.2.0 || 18
    +      react-dom: ^18.2.0 || 18
    +      sass: ^1.3.0
    +    peerDependenciesMeta:
    +      '@opentelemetry/api':
    +        optional: true
    +      sass:
    +        optional: true
         dependencies:
           '@next/env': 14.1.4
           '@swc/helpers': 0.5.2
    @@ -17932,34 +12944,53 @@ snapshots:
         transitivePeerDependencies:
           - '@babel/core'
           - babel-plugin-macros
    +    dev: false
     
    -  nise@5.1.9:
    +  /nise@5.1.9:
    +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
           '@sinonjs/text-encoding': 0.7.2
           just-extend: 6.2.0
           path-to-regexp: 6.2.1
    +    dev: true
     
    -  no-case@3.0.4:
    +  /no-case@3.0.4:
    +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
         dependencies:
           lower-case: 2.0.2
           tslib: 2.6.2
     
    -  node-emoji@2.1.3:
    +  /node-emoji@2.1.3:
    +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    +    engines: {node: '>=18'}
         dependencies:
           '@sindresorhus/is': 4.6.0
           char-regex: 1.0.2
           emojilib: 2.4.0
           skin-tone: 2.0.0
    +    dev: false
     
    -  node-fetch@2.7.0:
    +  /node-fetch@2.7.0:
    +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    +    engines: {node: 4.x || >=6.0.0}
    +    peerDependencies:
    +      encoding: ^0.1.0
    +    peerDependenciesMeta:
    +      encoding:
    +        optional: true
         dependencies:
           whatwg-url: 5.0.0
     
    -  node-forge@1.3.1: {}
    +  /node-forge@1.3.1:
    +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    +    engines: {node: '>= 6.13.0'}
     
    -  node-gyp@8.4.1:
    +  /node-gyp@8.4.1:
    +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    +    engines: {node: '>= 10.12.0'}
    +    hasBin: true
         dependencies:
           env-paths: 2.2.1
           glob: 7.2.3
    @@ -17975,7 +13006,10 @@ snapshots:
           - bluebird
           - supports-color
     
    -  node-gyp@9.4.1:
    +  /node-gyp@9.4.1:
    +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    +    engines: {node: ^12.13 || ^14.13 || >=16}
    +    hasBin: true
         dependencies:
           env-paths: 2.2.1
           exponential-backoff: 3.1.1
    @@ -17992,122 +13026,180 @@ snapshots:
           - bluebird
           - supports-color
     
    -  node-html-parser@6.1.12:
    +  /node-html-parser@6.1.12:
    +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
         dependencies:
           css-select: 5.1.0
           he: 1.2.0
    +    dev: false
     
    -  node-int64@0.4.0: {}
    +  /node-int64@0.4.0:
    +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    +    dev: true
     
    -  node-releases@2.0.14: {}
    +  /node-releases@2.0.14:
    +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
     
    -  nopt@5.0.0:
    +  /nopt@5.0.0:
    +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    +    engines: {node: '>=6'}
    +    hasBin: true
         dependencies:
           abbrev: 1.1.1
     
    -  nopt@6.0.0:
    +  /nopt@6.0.0:
    +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    hasBin: true
         dependencies:
           abbrev: 1.1.1
     
    -  normalize-package-data@2.5.0:
    +  /normalize-package-data@2.5.0:
    +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
         dependencies:
           hosted-git-info: 2.8.9
           resolve: 1.22.8
           semver: 5.7.2
           validate-npm-package-license: 3.0.4
     
    -  normalize-package-data@3.0.3:
    +  /normalize-package-data@3.0.3:
    +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    +    engines: {node: '>=10'}
         dependencies:
           hosted-git-info: 4.1.0
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
    +    dev: true
     
    -  normalize-package-data@5.0.0:
    +  /normalize-package-data@5.0.0:
    +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 6.1.1
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
     
    -  normalize-path@3.0.0: {}
    +  /normalize-path@3.0.0:
    +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    +    engines: {node: '>=0.10.0'}
     
    -  normalize-range@0.1.2: {}
    +  /normalize-range@0.1.2:
    +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    +    engines: {node: '>=0.10.0'}
     
    -  normalize-registry-url@2.0.0: {}
    +  /normalize-registry-url@2.0.0:
    +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    +    dev: true
     
    -  normalize-url@6.1.0: {}
    +  /normalize-url@6.1.0:
    +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  normalize-url@8.0.1: {}
    +  /normalize-url@8.0.1:
    +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  npm-bundled@1.1.2:
    +  /npm-bundled@1.1.2:
    +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
         dependencies:
           npm-normalize-package-bin: 1.0.1
     
    -  npm-bundled@3.0.0:
    +  /npm-bundled@3.0.0:
    +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           npm-normalize-package-bin: 3.0.1
     
    -  npm-install-checks@4.0.0:
    +  /npm-install-checks@4.0.0:
    +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    +    engines: {node: '>=10'}
         dependencies:
           semver: 7.6.0
     
    -  npm-install-checks@6.3.0:
    +  /npm-install-checks@6.3.0:
    +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           semver: 7.6.0
     
    -  npm-normalize-package-bin@1.0.1: {}
    +  /npm-normalize-package-bin@1.0.1:
    +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
     
    -  npm-normalize-package-bin@2.0.0: {}
    +  /npm-normalize-package-bin@2.0.0:
    +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     
    -  npm-normalize-package-bin@3.0.1: {}
    +  /npm-normalize-package-bin@3.0.1:
    +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  npm-package-arg@10.1.0:
    +  /npm-package-arg@10.1.0:
    +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 6.1.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
     
    -  npm-package-arg@11.0.1:
    +  /npm-package-arg@11.0.1:
    +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 7.0.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
    +    dev: true
     
    -  npm-package-arg@8.1.5:
    +  /npm-package-arg@8.1.5:
    +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    +    engines: {node: '>=10'}
         dependencies:
           hosted-git-info: 4.1.0
           semver: 7.6.0
           validate-npm-package-name: 3.0.0
     
    -  npm-packlist@3.0.0:
    +  /npm-packlist@3.0.0:
    +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
           ignore-walk: 4.0.1
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  npm-packlist@7.0.4:
    +  /npm-packlist@7.0.4:
    +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           ignore-walk: 6.0.4
     
    -  npm-pick-manifest@6.1.1:
    +  /npm-pick-manifest@6.1.1:
    +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
         dependencies:
           npm-install-checks: 4.0.0
           npm-normalize-package-bin: 1.0.1
           npm-package-arg: 8.1.5
           semver: 7.6.0
     
    -  npm-pick-manifest@8.0.2:
    +  /npm-pick-manifest@8.0.2:
    +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           npm-install-checks: 6.3.0
           npm-normalize-package-bin: 3.0.1
           npm-package-arg: 10.1.0
           semver: 7.6.0
     
    -  npm-registry-fetch@12.0.2:
    +  /npm-registry-fetch@12.0.2:
    +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
         dependencies:
           make-fetch-happen: 10.2.1
           minipass: 3.3.6
    @@ -18119,7 +13211,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  npm-registry-fetch@14.0.5:
    +  /npm-registry-fetch@14.0.5:
    +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           make-fetch-happen: 11.1.1
           minipass: 5.0.0
    @@ -18131,119 +13225,175 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  npm-run-path@4.0.1:
    +  /npm-run-path@4.0.1:
    +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    +    engines: {node: '>=8'}
         dependencies:
           path-key: 3.1.1
     
    -  npmlog@5.0.1:
    +  /npmlog@5.0.1:
    +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
         dependencies:
           are-we-there-yet: 2.0.0
           console-control-strings: 1.1.0
           gauge: 3.0.2
           set-blocking: 2.0.0
     
    -  npmlog@6.0.2:
    +  /npmlog@6.0.2:
    +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           are-we-there-yet: 3.0.1
           console-control-strings: 1.1.0
           gauge: 4.0.4
           set-blocking: 2.0.0
     
    -  nprogress@0.2.0: {}
    +  /nprogress@0.2.0:
    +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    +    dev: false
     
    -  nth-check@2.1.1:
    +  /nth-check@2.1.1:
    +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
         dependencies:
           boolbase: 1.0.0
     
    -  nwsapi@2.2.7: {}
    +  /nwsapi@2.2.7:
    +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    +    dev: true
     
    -  object-assign@4.1.1: {}
    +  /object-assign@4.1.1:
    +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    +    engines: {node: '>=0.10.0'}
     
    -  object-hash@3.0.0: {}
    +  /object-hash@3.0.0:
    +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  object-inspect@1.13.1: {}
    +  /object-inspect@1.13.1:
    +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
     
    -  object-is@1.1.6:
    +  /object-is@1.1.6:
    +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    +    dev: true
     
    -  object-keys@1.1.1: {}
    +  /object-keys@1.1.1:
    +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    +    engines: {node: '>= 0.4'}
     
    -  object.assign@4.1.5:
    +  /object.assign@4.1.5:
    +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           has-symbols: 1.0.3
           object-keys: 1.1.1
     
    -  object.entries@1.1.8:
    +  /object.entries@1.1.8:
    +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.fromentries@2.0.8:
    +  /object.fromentries@2.0.8:
    +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.groupby@1.0.3:
    +  /object.groupby@1.0.3:
    +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
    +    dev: true
     
    -  object.hasown@1.1.4:
    +  /object.hasown@1.1.4:
    +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.values@1.2.0:
    +  /object.values@1.2.0:
    +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  obuf@1.1.2: {}
    +  /obuf@1.1.2:
    +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
     
    -  on-finished@2.4.1:
    +  /on-finished@2.4.1:
    +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           ee-first: 1.1.1
     
    -  on-headers@1.0.2: {}
    +  /on-headers@1.0.2:
    +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    +    engines: {node: '>= 0.8'}
     
    -  once@1.4.0:
    +  /once@1.4.0:
    +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
         dependencies:
           wrappy: 1.0.2
     
    -  one-time@1.0.0:
    +  /one-time@1.0.0:
    +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
         dependencies:
           fn.name: 1.1.0
     
    -  onetime@5.1.2:
    +  /onetime@5.1.2:
    +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    +    engines: {node: '>=6'}
         dependencies:
           mimic-fn: 2.1.0
     
    -  open@10.1.0:
    +  /open@10.1.0:
    +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    +    engines: {node: '>=18'}
         dependencies:
           default-browser: 5.2.1
           define-lazy-prop: 3.0.0
           is-inside-container: 1.0.0
           is-wsl: 3.1.0
     
    -  open@8.4.2:
    +  /open@8.4.2:
    +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    +    engines: {node: '>=12'}
         dependencies:
           define-lazy-prop: 2.0.0
           is-docker: 2.2.1
           is-wsl: 2.2.0
    +    dev: false
     
    -  opener@1.5.2: {}
    +  /opener@1.5.2:
    +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    +    hasBin: true
     
    -  optionator@0.9.3:
    +  /optionator@0.9.3:
    +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           '@aashutoshrathi/word-wrap': 1.2.6
           deep-is: 0.1.4
    @@ -18252,7 +13402,9 @@ snapshots:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  ora@5.4.1:
    +  /ora@5.4.1:
    +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    +    engines: {node: '>=10'}
         dependencies:
           bl: 4.1.0
           chalk: 4.1.2
    @@ -18264,89 +13416,143 @@ snapshots:
           strip-ansi: 6.0.1
           wcwidth: 1.0.1
     
    -  os-tmpdir@1.0.2: {}
    +  /os-tmpdir@1.0.2:
    +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    +    engines: {node: '>=0.10.0'}
     
    -  p-cancelable@3.0.0: {}
    +  /p-cancelable@3.0.0:
    +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  p-defer@1.0.0: {}
    +  /p-defer@1.0.0:
    +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  p-filter@2.1.0:
    +  /p-filter@2.1.0:
    +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    +    engines: {node: '>=8'}
         dependencies:
           p-map: 2.1.0
    +    dev: true
     
    -  p-finally@1.0.0: {}
    +  /p-finally@1.0.0:
    +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    +    engines: {node: '>=4'}
     
    -  p-limit@2.3.0:
    +  /p-limit@2.3.0:
    +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    +    engines: {node: '>=6'}
         dependencies:
           p-try: 2.2.0
     
    -  p-limit@3.1.0:
    +  /p-limit@3.1.0:
    +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    +    engines: {node: '>=10'}
         dependencies:
           yocto-queue: 0.1.0
     
    -  p-limit@4.0.0:
    +  /p-limit@4.0.0:
    +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           yocto-queue: 1.0.0
    +    dev: false
     
    -  p-locate@3.0.0:
    +  /p-locate@3.0.0:
    +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    +    engines: {node: '>=6'}
         dependencies:
           p-limit: 2.3.0
    +    dev: false
     
    -  p-locate@4.1.0:
    +  /p-locate@4.1.0:
    +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    +    engines: {node: '>=8'}
         dependencies:
           p-limit: 2.3.0
     
    -  p-locate@5.0.0:
    +  /p-locate@5.0.0:
    +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    +    engines: {node: '>=10'}
         dependencies:
           p-limit: 3.1.0
     
    -  p-locate@6.0.0:
    +  /p-locate@6.0.0:
    +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           p-limit: 4.0.0
    +    dev: false
     
    -  p-map@2.1.0: {}
    +  /p-map@2.1.0:
    +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  p-map@4.0.0:
    +  /p-map@4.0.0:
    +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    +    engines: {node: '>=10'}
         dependencies:
           aggregate-error: 3.1.0
     
    -  p-queue@6.6.2:
    +  /p-queue@6.6.2:
    +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    +    engines: {node: '>=8'}
         dependencies:
           eventemitter3: 4.0.7
           p-timeout: 3.2.0
     
    -  p-retry@4.6.2:
    +  /p-retry@4.6.2:
    +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/retry': 0.12.0
           retry: 0.13.1
    +    dev: false
     
    -  p-retry@6.2.0:
    +  /p-retry@6.2.0:
    +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    +    engines: {node: '>=16.17'}
         dependencies:
           '@types/retry': 0.12.2
           is-network-error: 1.1.0
           retry: 0.13.1
     
    -  p-timeout@3.2.0:
    +  /p-timeout@3.2.0:
    +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    +    engines: {node: '>=8'}
         dependencies:
           p-finally: 1.0.0
     
    -  p-transform@1.3.0:
    +  /p-transform@1.3.0:
    +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    +    engines: {node: '>=12.10.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           p-queue: 6.6.2
         transitivePeerDependencies:
           - supports-color
     
    -  p-try@2.2.0: {}
    +  /p-try@2.2.0:
    +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    +    engines: {node: '>=6'}
     
    -  package-json@8.1.1:
    +  /package-json@8.1.1:
    +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    +    engines: {node: '>=14.16'}
         dependencies:
           got: 12.6.1
           registry-auth-token: 5.0.2
           registry-url: 6.0.1
           semver: 7.6.0
    +    dev: false
     
    -  pacote@12.0.3:
    +  /pacote@12.0.3:
    +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
         dependencies:
           '@npmcli/git': 2.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -18371,7 +13577,10 @@ snapshots:
           - bluebird
           - supports-color
     
    -  pacote@15.2.0:
    +  /pacote@15.2.0:
    +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@npmcli/git': 4.1.0
           '@npmcli/installed-package-contents': 2.0.2
    @@ -18395,24 +13604,32 @@ snapshots:
           - bluebird
           - supports-color
     
    -  pako@1.0.11: {}
    +  /pako@1.0.11:
    +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    +    dev: true
     
    -  param-case@3.0.4:
    +  /param-case@3.0.4:
    +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
     
    -  parent-module@1.0.1:
    +  /parent-module@1.0.1:
    +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    +    engines: {node: '>=6'}
         dependencies:
           callsites: 3.1.0
     
    -  parse-conflict-json@2.0.2:
    +  /parse-conflict-json@2.0.2:
    +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           json-parse-even-better-errors: 2.3.1
           just-diff: 5.2.0
           just-diff-apply: 5.5.0
     
    -  parse-entities@4.0.1:
    +  /parse-entities@4.0.1:
    +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
         dependencies:
           '@types/unist': 2.0.10
           character-entities: 2.0.2
    @@ -18423,177 +13640,321 @@ snapshots:
           is-decimal: 2.0.1
           is-hexadecimal: 2.0.1
     
    -  parse-json@5.2.0:
    +  /parse-json@5.2.0:
    +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/code-frame': 7.24.2
           error-ex: 1.3.2
           json-parse-even-better-errors: 2.3.1
           lines-and-columns: 1.2.4
     
    -  parse-ms@2.1.0: {}
    +  /parse-ms@2.1.0:
    +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  parse-numeric-range@1.3.0: {}
    +  /parse-numeric-range@1.3.0:
    +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    +    dev: false
     
    -  parse-srcset@1.0.2: {}
    +  /parse-srcset@1.0.2:
    +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    +    dev: false
     
    -  parse5-htmlparser2-tree-adapter@7.0.0:
    +  /parse5-htmlparser2-tree-adapter@7.0.0:
    +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
         dependencies:
           domhandler: 5.0.3
           parse5: 7.1.2
    +    dev: false
     
    -  parse5@7.1.2:
    +  /parse5@7.1.2:
    +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
         dependencies:
           entities: 4.5.0
     
    -  parseurl@1.3.3: {}
    +  /parseurl@1.3.3:
    +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    +    engines: {node: '>= 0.8'}
     
    -  pascal-case@3.1.2:
    +  /pascal-case@3.1.2:
    +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  path-absolute@1.0.1: {}
    +  /path-absolute@1.0.1:
    +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  path-exists@3.0.0: {}
    +  /path-exists@3.0.0:
    +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  path-exists@4.0.0: {}
    +  /path-exists@4.0.0:
    +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    +    engines: {node: '>=8'}
     
    -  path-exists@5.0.0: {}
    +  /path-exists@5.0.0:
    +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  path-is-absolute@1.0.1: {}
    +  /path-is-absolute@1.0.1:
    +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    +    engines: {node: '>=0.10.0'}
     
    -  path-is-inside@1.0.2: {}
    +  /path-is-inside@1.0.2:
    +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    +    dev: false
     
    -  path-key@3.1.1: {}
    +  /path-key@3.1.1:
    +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    +    engines: {node: '>=8'}
     
    -  path-name@1.0.0: {}
    +  /path-name@1.0.0:
    +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
     
    -  path-parse@1.0.7: {}
    +  /path-parse@1.0.7:
    +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     
    -  path-scurry@1.10.1:
    +  /path-scurry@1.10.1:
    +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
         dependencies:
           lru-cache: 10.2.0
           minipass: 7.0.4
     
    -  path-temp@2.1.0:
    +  /path-temp@2.1.0:
    +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    +    engines: {node: '>=8.15'}
         dependencies:
           unique-string: 2.0.0
    +    dev: true
     
    -  path-to-regexp@0.1.7: {}
    +  /path-to-regexp@0.1.7:
    +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
     
    -  path-to-regexp@1.8.0:
    +  /path-to-regexp@1.8.0:
    +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
         dependencies:
           isarray: 0.0.1
    +    dev: false
     
    -  path-to-regexp@2.2.1: {}
    +  /path-to-regexp@2.2.1:
    +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    +    dev: false
     
    -  path-to-regexp@6.2.1: {}
    +  /path-to-regexp@6.2.1:
    +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    +    dev: true
     
    -  path-type@4.0.0: {}
    +  /path-type@4.0.0:
    +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    +    engines: {node: '>=8'}
     
    -  pathval@2.0.0: {}
    +  /pathval@2.0.0:
    +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    +    engines: {node: '>= 14.16'}
    +    dev: true
     
    -  periscopic@3.1.0:
    +  /periscopic@3.1.0:
    +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
         dependencies:
           '@types/estree': 1.0.5
           estree-walker: 3.0.3
           is-reference: 3.0.2
     
    -  picocolors@1.0.0: {}
    +  /picocolors@1.0.0:
    +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
     
    -  picomatch@2.3.1: {}
    +  /picomatch@2.3.1:
    +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    +    engines: {node: '>=8.6'}
     
    -  pify@2.3.0: {}
    +  /pify@2.3.0:
    +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    +    engines: {node: '>=0.10.0'}
     
    -  pify@4.0.1: {}
    +  /pify@4.0.1:
    +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    +    engines: {node: '>=6'}
     
    -  pirates@4.0.6: {}
    +  /pirates@4.0.6:
    +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  pkg-dir@4.2.0:
    +  /pkg-dir@4.2.0:
    +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 4.1.0
     
    -  pkg-dir@7.0.0:
    +  /pkg-dir@7.0.0:
    +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    +    engines: {node: '>=14.16'}
         dependencies:
           find-up: 6.3.0
    +    dev: false
     
    -  pkg-up@3.1.0:
    +  /pkg-up@3.1.0:
    +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 3.0.0
    +    dev: false
     
    -  pluralize@8.0.0: {}
    +  /pluralize@8.0.0:
    +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  portfinder@1.0.32:
    +  /portfinder@1.0.32:
    +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    +    engines: {node: '>= 0.12.0'}
         dependencies:
           async: 2.6.4
           debug: 3.2.7
           mkdirp: 0.5.6
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  possible-typed-array-names@1.0.0: {}
    +  /possible-typed-array-names@1.0.0:
    +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  postcss-calc@8.2.4(postcss@8.4.38):
    +  /postcss-calc@8.2.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    +    peerDependencies:
    +      postcss: ^8.2.2
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-colormin@5.3.1(postcss@8.4.38):
    +  /postcss-colormin@5.3.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           colord: 2.9.3
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-convert-values@5.1.3(postcss@8.4.38):
    +  /postcss-convert-values@5.1.3(postcss@8.4.38):
    +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-discard-comments@5.1.2(postcss@8.4.38):
    +  /postcss-discard-comments@5.1.2(postcss@8.4.38):
    +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    +  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-empty@5.1.1(postcss@8.4.38):
    +  /postcss-discard-empty@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-overridden@5.1.0(postcss@8.4.38):
    +  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-unused@5.1.0(postcss@8.4.38):
    +  /postcss-discard-unused@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-import@15.1.0(postcss@8.4.38):
    +  /postcss-import@15.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      postcss: ^8.0.0
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           read-cache: 1.0.0
           resolve: 1.22.8
    +    dev: true
     
    -  postcss-js@4.0.1(postcss@8.4.38):
    +  /postcss-js@4.0.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    +    engines: {node: ^12 || ^14 || >= 16}
    +    peerDependencies:
    +      postcss: ^8.4.21
         dependencies:
           camelcase-css: 2.0.1
           postcss: 8.4.38
    +    dev: true
     
    -  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    +  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    +    engines: {node: '>= 14'}
    +    peerDependencies:
    +      postcss: '>=8.0.9'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      postcss:
    +        optional: true
    +      ts-node:
    +        optional: true
         dependencies:
           lilconfig: 3.1.1
           postcss: 8.4.38
           ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
           yaml: 2.4.1
    +    dev: true
     
    -  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
         dependencies:
           cosmiconfig: 8.3.6(typescript@5.4.3)
           jiti: 1.21.0
    @@ -18602,8 +13963,20 @@ snapshots:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    +    dev: false
     
    -  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           cosmiconfig: 9.0.0(typescript@5.4.3)
           jiti: 1.21.0
    @@ -18612,343 +13985,655 @@ snapshots:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  postcss-merge-idents@5.1.1(postcss@8.4.38):
    +  /postcss-merge-idents@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-merge-longhand@5.1.7(postcss@8.4.38):
    +  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
    +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           stylehacks: 5.1.1(postcss@8.4.38)
    +    dev: false
     
    -  postcss-merge-rules@5.1.4(postcss@8.4.38):
    +  /postcss-merge-rules@5.1.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-minify-font-values@5.1.0(postcss@8.4.38):
    +  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-gradients@5.1.1(postcss@8.4.38):
    +  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           colord: 2.9.3
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-params@5.1.4(postcss@8.4.38):
    +  /postcss-minify-params@5.1.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-selectors@5.2.1(postcss@8.4.38):
    +  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    +  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
     
    -  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    +  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
     
    -  postcss-modules-scope@3.1.1(postcss@8.4.38):
    +  /postcss-modules-scope@3.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
     
    -  postcss-modules-values@4.0.0(postcss@8.4.38):
    +  /postcss-modules-values@4.0.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
     
    -  postcss-nested@6.0.1(postcss@8.4.38):
    +  /postcss-nested@6.0.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    +    engines: {node: '>=12.0'}
    +    peerDependencies:
    +      postcss: ^8.2.14
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: true
     
    -  postcss-normalize-charset@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-positions@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-string@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-string@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-url@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-url@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           normalize-url: 6.1.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-ordered-values@5.1.3(postcss@8.4.38):
    +  /postcss-ordered-values@5.1.3(postcss@8.4.38):
    +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-reduce-idents@5.2.0(postcss@8.4.38):
    +  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-reduce-initial@5.1.2(postcss@8.4.38):
    +  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
    +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    +  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-selector-parser@6.0.16:
    +  /postcss-selector-parser@6.0.16:
    +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    +    engines: {node: '>=4'}
         dependencies:
           cssesc: 3.0.0
           util-deprecate: 1.0.2
     
    -  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    +  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      postcss: ^8.4.16
         dependencies:
           postcss: 8.4.38
           sort-css-media-queries: 2.1.0
    +    dev: false
     
    -  postcss-svgo@5.1.0(postcss@8.4.38):
    +  /postcss-svgo@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           svgo: 2.8.0
    +    dev: false
     
    -  postcss-unique-selectors@5.1.1(postcss@8.4.38):
    +  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-value-parser@4.2.0: {}
    +  /postcss-value-parser@4.2.0:
    +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
     
    -  postcss-zindex@5.1.0(postcss@8.4.38):
    +  /postcss-zindex@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss@8.4.31:
    +  /postcss@8.4.31:
    +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    +    engines: {node: ^10 || ^12 || >=14}
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
    +    dev: false
     
    -  postcss@8.4.38:
    +  /postcss@8.4.38:
    +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    +    engines: {node: ^10 || ^12 || >=14}
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
     
    -  preferred-pm@3.1.3:
    +  /preferred-pm@3.1.3:
    +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    +    engines: {node: '>=10'}
         dependencies:
           find-up: 5.0.0
           find-yarn-workspace-root2: 1.2.16
           path-exists: 4.0.0
           which-pm: 2.0.0
     
    -  prelude-ls@1.2.1: {}
    +  /prelude-ls@1.2.1:
    +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    +    engines: {node: '>= 0.8.0'}
     
    -  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    +  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    +    engines: {node: '>=14.21.3'}
    +    peerDependencies:
    +      '@ianvs/prettier-plugin-sort-imports': '*'
    +      '@prettier/plugin-pug': '*'
    +      '@shopify/prettier-plugin-liquid': '*'
    +      '@trivago/prettier-plugin-sort-imports': '*'
    +      prettier: ^3.0
    +      prettier-plugin-astro: '*'
    +      prettier-plugin-css-order: '*'
    +      prettier-plugin-import-sort: '*'
    +      prettier-plugin-jsdoc: '*'
    +      prettier-plugin-marko: '*'
    +      prettier-plugin-organize-attributes: '*'
    +      prettier-plugin-organize-imports: '*'
    +      prettier-plugin-sort-imports: '*'
    +      prettier-plugin-style-order: '*'
    +      prettier-plugin-svelte: '*'
    +      prettier-plugin-twig-melody: '*'
    +    peerDependenciesMeta:
    +      '@ianvs/prettier-plugin-sort-imports':
    +        optional: true
    +      '@prettier/plugin-pug':
    +        optional: true
    +      '@shopify/prettier-plugin-liquid':
    +        optional: true
    +      '@trivago/prettier-plugin-sort-imports':
    +        optional: true
    +      prettier-plugin-astro:
    +        optional: true
    +      prettier-plugin-css-order:
    +        optional: true
    +      prettier-plugin-import-sort:
    +        optional: true
    +      prettier-plugin-jsdoc:
    +        optional: true
    +      prettier-plugin-marko:
    +        optional: true
    +      prettier-plugin-organize-attributes:
    +        optional: true
    +      prettier-plugin-organize-imports:
    +        optional: true
    +      prettier-plugin-sort-imports:
    +        optional: true
    +      prettier-plugin-style-order:
    +        optional: true
    +      prettier-plugin-svelte:
    +        optional: true
    +      prettier-plugin-twig-melody:
    +        optional: true
         dependencies:
           prettier: 3.2.5
    +    dev: true
     
    -  prettier@3.2.5: {}
    +  /prettier@3.2.5:
    +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
     
    -  pretty-bytes@5.6.0: {}
    +  /pretty-bytes@5.6.0:
    +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    +    engines: {node: '>=6'}
     
    -  pretty-error@4.0.0:
    +  /pretty-error@4.0.0:
    +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
         dependencies:
           lodash: 4.17.21
           renderkid: 3.0.0
     
    -  pretty-format@27.5.1:
    +  /pretty-format@27.5.1:
    +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
         dependencies:
           ansi-regex: 5.0.1
           ansi-styles: 5.2.0
           react-is: 17.0.2
    +    dev: true
     
    -  pretty-format@29.7.0:
    +  /pretty-format@29.7.0:
    +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.6.3
           ansi-styles: 5.2.0
           react-is: 18.2.0
    +    dev: true
     
    -  pretty-ms@7.0.1:
    +  /pretty-ms@7.0.1:
    +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    +    engines: {node: '>=10'}
         dependencies:
           parse-ms: 2.1.0
    +    dev: true
     
    -  pretty-time@1.1.0: {}
    +  /pretty-time@1.1.0:
    +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  print-diff@1.0.0:
    +  /print-diff@1.0.0:
    +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    +    engines: {node: '>=8.3'}
         dependencies:
           diff: 4.0.2
    +    dev: true
     
    -  printable-characters@1.0.42: {}
    +  /printable-characters@1.0.42:
    +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    +    dev: true
     
    -  prism-react-renderer@2.3.1(react@18.2.0):
    +  /prism-react-renderer@2.3.1(react@18.2.0):
    +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    +    peerDependencies:
    +      react: '>=16.0.0 || 18'
         dependencies:
           '@types/prismjs': 1.26.3
           clsx: 2.1.0
           react: 18.2.0
    +    dev: false
     
    -  prismjs@1.29.0: {}
    +  /prismjs@1.29.0:
    +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  proc-log@1.0.0: {}
    +  /proc-log@1.0.0:
    +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
     
    -  proc-log@3.0.0: {}
    +  /proc-log@3.0.0:
    +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  process-nextick-args@2.0.1: {}
    +  /process-nextick-args@2.0.1:
    +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
     
    -  process@0.11.10: {}
    +  /process@0.11.10:
    +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    +    engines: {node: '>= 0.6.0'}
     
    -  promise-all-reject-late@1.0.1: {}
    +  /promise-all-reject-late@1.0.1:
    +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
     
    -  promise-call-limit@1.0.2: {}
    +  /promise-call-limit@1.0.2:
    +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
     
    -  promise-inflight@1.0.1: {}
    +  /promise-inflight@1.0.1:
    +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    +    peerDependencies:
    +      bluebird: '*'
    +    peerDependenciesMeta:
    +      bluebird:
    +        optional: true
     
    -  promise-retry@2.0.1:
    +  /promise-retry@2.0.1:
    +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    +    engines: {node: '>=10'}
         dependencies:
           err-code: 2.0.3
           retry: 0.12.0
     
    -  prompts@2.4.2:
    +  /prompts@2.4.2:
    +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    +    engines: {node: '>= 6'}
         dependencies:
           kleur: 3.0.3
           sisteransi: 1.0.5
     
    -  prop-types@15.8.1:
    +  /prop-types@15.8.1:
    +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
         dependencies:
           loose-envify: 1.4.0
           object-assign: 4.1.1
           react-is: 16.13.1
     
    -  property-information@6.4.1: {}
    +  /property-information@6.4.1:
    +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
     
    -  proto-list@1.2.4: {}
    +  /proto-list@1.2.4:
    +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
     
    -  proxy-addr@2.0.7:
    +  /proxy-addr@2.0.7:
    +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           forwarded: 0.2.0
           ipaddr.js: 1.9.1
     
    -  psl@1.9.0: {}
    +  /psl@1.9.0:
    +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    +    dev: true
     
    -  punycode@1.4.1: {}
    +  /punycode@1.4.1:
    +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    +    dev: false
     
    -  punycode@2.3.1: {}
    +  /punycode@2.3.1:
    +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    +    engines: {node: '>=6'}
     
    -  pupa@3.1.0:
    +  /pupa@3.1.0:
    +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    +    engines: {node: '>=12.20'}
         dependencies:
           escape-goat: 4.0.0
    +    dev: false
     
    -  pure-rand@6.1.0: {}
    +  /pure-rand@6.1.0:
    +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    +    dev: true
     
    -  qs@6.11.0:
    +  /qs@6.11.0:
    +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    +    engines: {node: '>=0.6'}
         dependencies:
           side-channel: 1.0.6
     
    -  qs@6.12.0:
    +  /qs@6.12.0:
    +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    +    engines: {node: '>=0.6'}
         dependencies:
           side-channel: 1.0.6
    +    dev: true
     
    -  querystringify@2.2.0: {}
    +  /querystringify@2.2.0:
    +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    +    dev: true
     
    -  queue-microtask@1.2.3: {}
    +  /queue-microtask@1.2.3:
    +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
     
    -  queue@6.0.2:
    +  /queue@6.0.2:
    +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
         dependencies:
           inherits: 2.0.4
    +    dev: false
     
    -  quick-lru@4.0.1: {}
    +  /quick-lru@4.0.1:
    +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  quick-lru@5.1.1: {}
    +  /quick-lru@5.1.1:
    +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    +    engines: {node: '>=10'}
     
    -  railroad-diagrams@1.0.0: {}
    +  /railroad-diagrams@1.0.0:
    +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    +    dev: false
     
    -  rambda@7.5.0: {}
    +  /rambda@7.5.0:
    +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    +    dev: true
     
    -  ramda@0.29.1: {}
    +  /ramda@0.29.1:
    +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    +    dev: true
     
    -  randexp@0.4.6:
    +  /randexp@0.4.6:
    +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    +    engines: {node: '>=0.12'}
         dependencies:
           discontinuous-range: 1.0.0
           ret: 0.1.15
    +    dev: false
     
    -  randombytes@2.1.0:
    +  /randombytes@2.1.0:
    +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
         dependencies:
           safe-buffer: 5.2.1
     
    -  range-parser@1.2.0: {}
    +  /range-parser@1.2.0:
    +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  range-parser@1.2.1: {}
    +  /range-parser@1.2.1:
    +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    +    engines: {node: '>= 0.6'}
     
    -  raw-body@2.5.2:
    +  /raw-body@2.5.2:
    +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           bytes: 3.1.2
           http-errors: 2.0.0
           iconv-lite: 0.4.24
           unpipe: 1.0.0
     
    -  rc@1.2.8:
    +  /rc@1.2.8:
    +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    +    hasBin: true
         dependencies:
           deep-extend: 0.6.0
           ini: 1.3.8
           minimist: 1.2.8
           strip-json-comments: 2.0.1
    +    dev: false
     
    -  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=2.7'
    +      webpack: '>=4'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@babel/code-frame': 7.24.2
           address: 1.2.2
    @@ -18980,18 +14665,29 @@ snapshots:
           - eslint
           - supports-color
           - vue-template-compiler
    +    dev: false
     
    -  react-dom@18.2.0(react@18.2.0):
    +  /react-dom@18.2.0(react@18.2.0):
    +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    +    peerDependencies:
    +      react: ^18.2.0 || 18
         dependencies:
           loose-envify: 1.4.0
           react: 18.2.0
           scheduler: 0.23.0
     
    -  react-error-overlay@6.0.11: {}
    +  /react-error-overlay@6.0.11:
    +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    +    dev: false
     
    -  react-fast-compare@3.2.2: {}
    +  /react-fast-compare@3.2.2:
    +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
     
    -  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    +  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           '@babel/runtime': 7.24.1
           invariant: 2.2.4
    @@ -19001,7 +14697,11 @@ snapshots:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    +  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           invariant: 2.2.4
           react: 18.2.0
    @@ -19009,23 +14709,42 @@ snapshots:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  react-is@16.13.1: {}
    +  /react-is@16.13.1:
    +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
     
    -  react-is@17.0.2: {}
    +  /react-is@17.0.2:
    +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    +    dev: true
     
    -  react-is@18.2.0: {}
    +  /react-is@18.2.0:
    +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    +    dev: true
     
    -  react-json-view-lite@1.3.0(react@18.2.0):
    +  /react-json-view-lite@1.3.0(react@18.2.0):
    +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           react: 18.2.0
    +    dev: false
     
    -  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    +  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      react-loadable: '*'
    +      webpack: '>=4.41.1 || 5.x'
         dependencies:
           '@babel/runtime': 7.24.1
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  react-player@2.15.1(react@18.2.0):
    +  /react-player@2.15.1(react@18.2.0):
    +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    +    peerDependencies:
    +      react: '>=16.6.0 || 18'
         dependencies:
           deepmerge: 4.3.1
           load-script: 1.0.0
    @@ -19033,14 +14752,23 @@ snapshots:
           prop-types: 15.8.1
           react: 18.2.0
           react-fast-compare: 3.2.2
    +    dev: false
     
    -  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    +  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +      react-router: '>=5'
         dependencies:
           '@babel/runtime': 7.24.1
           react: 18.2.0
           react-router: 5.3.4(react@18.2.0)
    +    dev: false
     
    -  react-router-dom@5.3.4(react@18.2.0):
    +  /react-router-dom@5.3.4(react@18.2.0):
    +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    +    peerDependencies:
    +      react: '>=15 || 18'
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -19050,8 +14778,12 @@ snapshots:
           react-router: 5.3.4(react@18.2.0)
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    +    dev: false
     
    -  react-router@5.3.4(react@18.2.0):
    +  /react-router@5.3.4(react@18.2.0):
    +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    +    peerDependencies:
    +      react: '>=15 || 18'
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -19063,15 +14795,28 @@ snapshots:
           react-is: 16.13.1
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    +    dev: false
     
    -  react-string-replace@1.1.1: {}
    +  /react-string-replace@1.1.1:
    +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    +    engines: {node: '>=0.12.0'}
    +    dev: false
     
    -  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    +  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    +    peerDependencies:
    +      react: '*'
    +      tslib: '*'
         dependencies:
           react: 18.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    +  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@types/js-cookie': 2.2.7
           '@xobotyi/scrollbar-width': 1.9.5
    @@ -19089,71 +14834,101 @@ snapshots:
           throttle-debounce: 3.0.1
           ts-easing: 0.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  react@18.2.0:
    +  /react@18.2.0:
    +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           loose-envify: 1.4.0
     
    -  read-cache@1.0.0:
    +  /read-cache@1.0.0:
    +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
         dependencies:
           pify: 2.3.0
    +    dev: true
     
    -  read-cmd-shim@3.0.1: {}
    +  /read-cmd-shim@3.0.1:
    +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     
    -  read-ini-file@4.0.0:
    +  /read-ini-file@4.0.0:
    +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    +    engines: {node: '>=14.6'}
         dependencies:
           ini: 3.0.1
           strip-bom: 4.0.0
    +    dev: true
     
    -  read-package-json-fast@2.0.3:
    +  /read-package-json-fast@2.0.3:
    +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    +    engines: {node: '>=10'}
         dependencies:
           json-parse-even-better-errors: 2.3.1
           npm-normalize-package-bin: 1.0.1
     
    -  read-package-json-fast@3.0.2:
    +  /read-package-json-fast@3.0.2:
    +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           json-parse-even-better-errors: 3.0.1
           npm-normalize-package-bin: 3.0.1
     
    -  read-package-json@6.0.4:
    +  /read-package-json@6.0.4:
    +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           glob: 10.3.10
           json-parse-even-better-errors: 3.0.1
           normalize-package-data: 5.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  read-pkg-up@7.0.1:
    +  /read-pkg-up@7.0.1:
    +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 4.1.0
           read-pkg: 5.2.0
           type-fest: 0.8.1
     
    -  read-pkg-up@8.0.0:
    +  /read-pkg-up@8.0.0:
    +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    +    engines: {node: '>=12'}
         dependencies:
           find-up: 5.0.0
           read-pkg: 6.0.0
           type-fest: 1.4.0
    +    dev: true
     
    -  read-pkg@5.2.0:
    +  /read-pkg@5.2.0:
    +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 2.5.0
           parse-json: 5.2.0
           type-fest: 0.6.0
     
    -  read-pkg@6.0.0:
    +  /read-pkg@6.0.0:
    +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    +    engines: {node: '>=12'}
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 3.0.3
           parse-json: 5.2.0
           type-fest: 1.4.0
    +    dev: true
     
    -  read-yaml-file@2.1.0:
    +  /read-yaml-file@2.1.0:
    +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    +    engines: {node: '>=10.13'}
         dependencies:
           js-yaml: 4.1.0
           strip-bom: 4.0.0
    +    dev: true
     
    -  readable-stream@2.3.8:
    +  /readable-stream@2.3.8:
    +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
         dependencies:
           core-util-is: 1.0.3
           inherits: 2.0.4
    @@ -19163,13 +14938,17 @@ snapshots:
           string_decoder: 1.1.1
           util-deprecate: 1.0.2
     
    -  readable-stream@3.6.2:
    +  /readable-stream@3.6.2:
    +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    +    engines: {node: '>= 6'}
         dependencies:
           inherits: 2.0.4
           string_decoder: 1.3.0
           util-deprecate: 1.0.2
     
    -  readable-stream@4.5.2:
    +  /readable-stream@4.5.2:
    +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           abort-controller: 3.0.0
           buffer: 6.0.3
    @@ -19177,39 +14956,60 @@ snapshots:
           process: 0.11.10
           string_decoder: 1.3.0
     
    -  readdir-scoped-modules@1.1.0:
    +  /readdir-scoped-modules@1.1.0:
    +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           debuglog: 1.0.1
           dezalgo: 1.0.4
           graceful-fs: 4.2.11
           once: 1.4.0
     
    -  readdirp@3.6.0:
    +  /readdirp@3.6.0:
    +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    +    engines: {node: '>=8.10.0'}
         dependencies:
           picomatch: 2.3.1
     
    -  reading-time@1.5.0: {}
    +  /reading-time@1.5.0:
    +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    +    dev: false
     
    -  realpath-missing@1.1.0: {}
    +  /realpath-missing@1.1.0:
    +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  rechoir@0.6.2:
    +  /rechoir@0.6.2:
    +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           resolve: 1.22.8
     
    -  rechoir@0.8.0:
    +  /rechoir@0.8.0:
    +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           resolve: 1.22.8
     
    -  recursive-readdir@2.2.3:
    +  /recursive-readdir@2.2.3:
    +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           minimatch: 3.1.2
    +    dev: false
     
    -  redent@4.0.0:
    +  /redent@4.0.0:
    +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    +    engines: {node: '>=12'}
         dependencies:
           indent-string: 5.0.0
           strip-indent: 4.0.0
    +    dev: true
     
    -  reflect.getprototypeof@1.0.6:
    +  /reflect.getprototypeof@1.0.6:
    +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -19218,29 +15018,43 @@ snapshots:
           get-intrinsic: 1.2.4
           globalthis: 1.0.3
           which-builtin-type: 1.1.3
    +    dev: true
     
    -  regenerate-unicode-properties@10.1.1:
    +  /regenerate-unicode-properties@10.1.1:
    +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    +    engines: {node: '>=4'}
         dependencies:
           regenerate: 1.4.2
     
    -  regenerate@1.4.2: {}
    +  /regenerate@1.4.2:
    +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
     
    -  regenerator-runtime@0.14.1: {}
    +  /regenerator-runtime@0.14.1:
    +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
     
    -  regenerator-transform@0.15.2:
    +  /regenerator-transform@0.15.2:
    +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
         dependencies:
           '@babel/runtime': 7.24.1
     
    -  regexp-tree@0.1.27: {}
    +  /regexp-tree@0.1.27:
    +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    +    hasBin: true
    +    dev: true
     
    -  regexp.prototype.flags@1.5.2:
    +  /regexp.prototype.flags@1.5.2:
    +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-errors: 1.3.0
           set-function-name: 2.0.2
    +    dev: true
     
    -  regexpu-core@5.3.2:
    +  /regexpu-core@5.3.2:
    +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    +    engines: {node: '>=4'}
         dependencies:
           '@babel/regjsgen': 0.8.0
           regenerate: 1.4.2
    @@ -19249,31 +15063,47 @@ snapshots:
           unicode-match-property-ecmascript: 2.0.0
           unicode-match-property-value-ecmascript: 2.1.0
     
    -  registry-auth-token@5.0.2:
    +  /registry-auth-token@5.0.2:
    +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@pnpm/npm-conf': 2.2.2
    +    dev: false
     
    -  registry-url@6.0.1:
    +  /registry-url@6.0.1:
    +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    +    engines: {node: '>=12'}
         dependencies:
           rc: 1.2.8
    +    dev: false
     
    -  regjsparser@0.10.0:
    +  /regjsparser@0.10.0:
    +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    +    hasBin: true
         dependencies:
           jsesc: 0.5.0
    +    dev: true
     
    -  regjsparser@0.9.1:
    +  /regjsparser@0.9.1:
    +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    +    hasBin: true
         dependencies:
           jsesc: 0.5.0
     
    -  rehype-raw@7.0.0:
    +  /rehype-raw@7.0.0:
    +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
         dependencies:
           '@types/hast': 3.0.4
           hast-util-raw: 9.0.2
           vfile: 6.0.1
    +    dev: false
     
    -  relateurl@0.2.7: {}
    +  /relateurl@0.2.7:
    +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    +    engines: {node: '>= 0.10'}
     
    -  remark-directive@3.0.0:
    +  /remark-directive@3.0.0:
    +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-directive: 3.0.0
    @@ -19281,16 +15111,21 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-emoji@4.0.1:
    +  /remark-emoji@4.0.1:
    +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           '@types/mdast': 4.0.3
           emoticon: 4.0.1
           mdast-util-find-and-replace: 3.0.1
           node-emoji: 2.1.3
           unified: 11.0.4
    +    dev: false
     
    -  remark-frontmatter@5.0.0:
    +  /remark-frontmatter@5.0.0:
    +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-frontmatter: 2.0.1
    @@ -19298,8 +15133,10 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-gfm@4.0.0:
    +  /remark-gfm@4.0.0:
    +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-gfm: 3.0.0
    @@ -19309,15 +15146,18 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-mdx@3.0.1:
    +  /remark-mdx@3.0.1:
    +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
         dependencies:
           mdast-util-mdx: 3.0.0
           micromark-extension-mdxjs: 3.0.0
         transitivePeerDependencies:
           - supports-color
     
    -  remark-parse@11.0.0:
    +  /remark-parse@11.0.0:
    +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
    @@ -19326,7 +15166,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  remark-rehype@11.1.0:
    +  /remark-rehype@11.1.0:
    +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -19334,15 +15175,19 @@ snapshots:
           unified: 11.0.4
           vfile: 6.0.1
     
    -  remark-stringify@11.0.0:
    +  /remark-stringify@11.0.0:
    +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-to-markdown: 2.1.0
           unified: 11.0.4
    +    dev: false
     
    -  remove-trailing-separator@1.1.0: {}
    +  /remove-trailing-separator@1.1.0:
    +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
     
    -  renderkid@3.0.0:
    +  /renderkid@3.0.0:
    +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
         dependencies:
           css-select: 4.3.0
           dom-converter: 0.2.0
    @@ -19350,128 +15195,212 @@ snapshots:
           lodash: 4.17.21
           strip-ansi: 6.0.1
     
    -  replace-ext@1.0.1: {}
    +  /replace-ext@1.0.1:
    +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    +    engines: {node: '>= 0.10'}
     
    -  require-directory@2.1.1: {}
    +  /require-directory@2.1.1:
    +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  require-from-string@2.0.2: {}
    +  /require-from-string@2.0.2:
    +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    +    engines: {node: '>=0.10.0'}
     
    -  require-like@0.1.2: {}
    +  /require-like@0.1.2:
    +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    +    dev: false
     
    -  requires-port@1.0.0: {}
    +  /requires-port@1.0.0:
    +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
     
    -  resize-observer-polyfill@1.5.1: {}
    +  /resize-observer-polyfill@1.5.1:
    +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    +    dev: false
     
    -  resolve-alpn@1.2.1: {}
    +  /resolve-alpn@1.2.1:
    +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    +    dev: false
     
    -  resolve-cwd@3.0.0:
    +  /resolve-cwd@3.0.0:
    +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    +    engines: {node: '>=8'}
         dependencies:
           resolve-from: 5.0.0
     
    -  resolve-from@4.0.0: {}
    +  /resolve-from@4.0.0:
    +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    +    engines: {node: '>=4'}
     
    -  resolve-from@5.0.0: {}
    +  /resolve-from@5.0.0:
    +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    +    engines: {node: '>=8'}
     
    -  resolve-pathname@3.0.0: {}
    +  /resolve-pathname@3.0.0:
    +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    +    dev: false
     
    -  resolve-pkg-maps@1.0.0: {}
    +  /resolve-pkg-maps@1.0.0:
    +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    +    dev: true
     
    -  resolve.exports@2.0.2: {}
    +  /resolve.exports@2.0.2:
    +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  resolve@1.22.8:
    +  /resolve@1.22.8:
    +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    +    hasBin: true
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
     
    -  resolve@2.0.0-next.5:
    +  /resolve@2.0.0-next.5:
    +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    +    hasBin: true
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
    +    dev: true
     
    -  responselike@3.0.0:
    +  /responselike@3.0.0:
    +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           lowercase-keys: 3.0.0
    +    dev: false
     
    -  restore-cursor@3.1.0:
    +  /restore-cursor@3.1.0:
    +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    +    engines: {node: '>=8'}
         dependencies:
           onetime: 5.1.2
           signal-exit: 3.0.7
     
    -  ret@0.1.15: {}
    +  /ret@0.1.15:
    +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    +    engines: {node: '>=0.12'}
    +    dev: false
     
    -  retry@0.12.0: {}
    +  /retry@0.12.0:
    +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    +    engines: {node: '>= 4'}
     
    -  retry@0.13.1: {}
    +  /retry@0.13.1:
    +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    +    engines: {node: '>= 4'}
     
    -  reusify@1.0.4: {}
    +  /reusify@1.0.4:
    +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
     
    -  rfc4648@1.5.3: {}
    +  /rfc4648@1.5.3:
    +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    +    dev: false
     
    -  right-pad@1.0.1: {}
    +  /right-pad@1.0.1:
    +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    +    engines: {node: '>= 0.10'}
    +    dev: true
     
    -  rimraf@3.0.2:
    +  /rimraf@3.0.2:
    +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
     
    -  rimraf@5.0.5:
    +  /rimraf@5.0.5:
    +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
         dependencies:
           glob: 10.3.10
     
    -  rtl-css-js@1.16.1:
    +  /rtl-css-js@1.16.1:
    +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
         dependencies:
           '@babel/runtime': 7.24.1
    +    dev: false
     
    -  rtl-detect@1.1.2: {}
    +  /rtl-detect@1.1.2:
    +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    +    dev: false
     
    -  rtlcss@4.1.1:
    +  /rtlcss@4.1.1:
    +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    +    engines: {node: '>=12.0.0'}
    +    hasBin: true
         dependencies:
           escalade: 3.1.2
           picocolors: 1.0.0
           postcss: 8.4.38
           strip-json-comments: 3.1.1
    +    dev: false
     
    -  run-applescript@7.0.0: {}
    +  /run-applescript@7.0.0:
    +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    +    engines: {node: '>=18'}
     
    -  run-async@2.4.1: {}
    +  /run-async@2.4.1:
    +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    +    engines: {node: '>=0.12.0'}
     
    -  run-parallel@1.2.0:
    +  /run-parallel@1.2.0:
    +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
         dependencies:
           queue-microtask: 1.2.3
     
    -  rxjs@7.8.1:
    +  /rxjs@7.8.1:
    +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
         dependencies:
           tslib: 2.6.2
     
    -  safe-array-concat@1.1.2:
    +  /safe-array-concat@1.1.2:
    +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    +    engines: {node: '>=0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           isarray: 2.0.5
    +    dev: true
     
    -  safe-buffer@5.1.2: {}
    +  /safe-buffer@5.1.2:
    +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
     
    -  safe-buffer@5.2.1: {}
    +  /safe-buffer@5.2.1:
    +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
     
    -  safe-execa@0.1.2:
    +  /safe-execa@0.1.2:
    +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    +    engines: {node: '>=12'}
         dependencies:
           '@zkochan/which': 2.0.3
           execa: 5.1.1
           path-name: 1.0.0
     
    -  safe-regex-test@1.0.3:
    +  /safe-regex-test@1.0.3:
    +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-regex: 1.1.4
    +    dev: true
     
    -  safe-stable-stringify@2.4.3: {}
    +  /safe-stable-stringify@2.4.3:
    +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    +    engines: {node: '>=10'}
     
    -  safer-buffer@2.1.2: {}
    +  /safer-buffer@2.1.2:
    +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
     
    -  sanitize-html@2.13.0:
    +  /sanitize-html@2.13.0:
    +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
         dependencies:
           deepmerge: 4.3.1
           escape-string-regexp: 4.0.0
    @@ -19479,77 +15408,124 @@ snapshots:
           is-plain-object: 5.0.0
           parse-srcset: 1.0.2
           postcss: 8.4.38
    +    dev: false
     
    -  sax@1.3.0: {}
    +  /sax@1.3.0:
    +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    +    dev: false
     
    -  saxes@6.0.0:
    +  /saxes@6.0.0:
    +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    +    engines: {node: '>=v12.22.7'}
         dependencies:
           xmlchars: 2.2.0
    +    dev: true
     
    -  sbd@1.0.19:
    +  /sbd@1.0.19:
    +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
         dependencies:
           sanitize-html: 2.13.0
    +    dev: false
     
    -  scheduler@0.23.0:
    +  /scheduler@0.23.0:
    +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
         dependencies:
           loose-envify: 1.4.0
     
    -  schema-utils@2.7.0:
    +  /schema-utils@2.7.0:
    +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    +    engines: {node: '>= 8.9.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
    +    dev: false
     
    -  schema-utils@3.3.0:
    +  /schema-utils@3.3.0:
    +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
     
    -  schema-utils@4.2.0:
    +  /schema-utils@4.2.0:
    +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    +    engines: {node: '>= 12.13.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 8.12.0
           ajv-formats: 2.1.1(ajv@8.12.0)
           ajv-keywords: 5.1.0(ajv@8.12.0)
     
    -  scoped-regex@2.1.0: {}
    +  /scoped-regex@2.1.0:
    +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    +    engines: {node: '>=8'}
     
    -  screenfull@5.2.0: {}
    +  /screenfull@5.2.0:
    +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  search-insights@2.13.0: {}
    +  /search-insights@2.13.0:
    +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    +    dev: false
     
    -  section-matter@1.0.0:
    +  /section-matter@1.0.0:
    +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    +    engines: {node: '>=4'}
         dependencies:
           extend-shallow: 2.0.1
           kind-of: 6.0.3
    +    dev: false
     
    -  secure-compare@3.0.1: {}
    +  /secure-compare@3.0.1:
    +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    +    dev: true
     
    -  select-hose@2.0.0: {}
    +  /select-hose@2.0.0:
    +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
     
    -  selfsigned@2.4.1:
    +  /selfsigned@2.4.1:
    +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/node-forge': 1.3.11
           node-forge: 1.3.1
     
    -  semver-diff@4.0.0:
    +  /semver-diff@4.0.0:
    +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    +    engines: {node: '>=12'}
         dependencies:
           semver: 7.6.0
    +    dev: false
     
    -  semver@5.7.2: {}
    +  /semver@5.7.2:
    +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    +    hasBin: true
     
    -  semver@6.3.1: {}
    +  /semver@6.3.1:
    +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    +    hasBin: true
     
    -  semver@7.5.4:
    +  /semver@7.5.4:
    +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           lru-cache: 6.0.0
    +    dev: true
     
    -  semver@7.6.0:
    +  /semver@7.6.0:
    +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           lru-cache: 6.0.0
     
    -  send@0.18.0:
    +  /send@0.18.0:
    +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           debug: 2.6.9
           depd: 2.0.0
    @@ -19567,15 +15543,19 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  serialize-javascript@6.0.0:
    +  /serialize-javascript@6.0.0:
    +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
         dependencies:
           randombytes: 2.1.0
    +    dev: true
     
    -  serialize-javascript@6.0.2:
    +  /serialize-javascript@6.0.2:
    +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
         dependencies:
           randombytes: 2.1.0
     
    -  serve-handler@6.1.5:
    +  /serve-handler@6.1.5:
    +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
         dependencies:
           bytes: 3.0.0
           content-disposition: 0.5.2
    @@ -19585,8 +15565,11 @@ snapshots:
           path-is-inside: 1.0.2
           path-to-regexp: 2.2.1
           range-parser: 1.2.0
    +    dev: false
     
    -  serve-index@1.9.1:
    +  /serve-index@1.9.1:
    +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           accepts: 1.3.8
           batch: 0.6.1
    @@ -19598,7 +15581,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  serve-static@1.15.0:
    +  /serve-static@1.15.0:
    +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           encodeurl: 1.0.2
           escape-html: 1.0.3
    @@ -19607,9 +15592,12 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  set-blocking@2.0.0: {}
    +  /set-blocking@2.0.0:
    +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
     
    -  set-function-length@1.2.2:
    +  /set-function-length@1.2.2:
    +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
    @@ -19618,53 +15606,82 @@ snapshots:
           gopd: 1.0.1
           has-property-descriptors: 1.0.2
     
    -  set-function-name@2.0.2:
    +  /set-function-name@2.0.2:
    +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
           functions-have-names: 1.2.3
           has-property-descriptors: 1.0.2
    +    dev: true
     
    -  set-harmonic-interval@1.0.1: {}
    +  /set-harmonic-interval@1.0.1:
    +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    +    engines: {node: '>=6.9'}
    +    dev: false
     
    -  setimmediate@1.0.5: {}
    +  /setimmediate@1.0.5:
    +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    +    dev: true
     
    -  setprototypeof@1.1.0: {}
    +  /setprototypeof@1.1.0:
    +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
     
    -  setprototypeof@1.2.0: {}
    +  /setprototypeof@1.2.0:
    +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
     
    -  shallow-clone@3.0.1:
    +  /shallow-clone@3.0.1:
    +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    +    engines: {node: '>=8'}
         dependencies:
           kind-of: 6.0.3
     
    -  shallowequal@1.1.0: {}
    +  /shallowequal@1.1.0:
    +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
     
    -  shebang-command@2.0.0:
    +  /shebang-command@2.0.0:
    +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    +    engines: {node: '>=8'}
         dependencies:
           shebang-regex: 3.0.0
     
    -  shebang-regex@3.0.0: {}
    +  /shebang-regex@3.0.0:
    +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    +    engines: {node: '>=8'}
     
    -  shell-quote@1.8.1: {}
    +  /shell-quote@1.8.1:
    +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
     
    -  shelljs@0.8.5:
    +  /shelljs@0.8.5:
    +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    +    engines: {node: '>=4'}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
           interpret: 1.4.0
           rechoir: 0.6.2
     
    -  side-channel@1.0.6:
    +  /side-channel@1.0.6:
    +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
           object-inspect: 1.13.1
     
    -  signal-exit@3.0.7: {}
    +  /signal-exit@3.0.7:
    +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
     
    -  signal-exit@4.1.0: {}
    +  /signal-exit@4.1.0:
    +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    +    engines: {node: '>=14'}
     
    -  sigstore@1.9.0:
    +  /sigstore@1.9.0:
    +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -19674,11 +15691,13 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  simple-swizzle@0.2.2:
    +  /simple-swizzle@0.2.2:
    +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
         dependencies:
           is-arrayish: 0.3.2
     
    -  sinon@17.0.1:
    +  /sinon@17.0.1:
    +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
    @@ -19686,52 +15705,79 @@ snapshots:
           diff: 5.2.0
           nise: 5.1.9
           supports-color: 7.2.0
    +    dev: true
     
    -  sirv@2.0.4:
    +  /sirv@2.0.4:
    +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           '@polka/url': 1.0.0-next.25
           mrmime: 2.0.0
           totalist: 3.0.1
    +    dev: false
     
    -  sisteransi@1.0.5: {}
    +  /sisteransi@1.0.5:
    +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
     
    -  sitemap@7.1.1:
    +  /sitemap@7.1.1:
    +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    +    hasBin: true
         dependencies:
           '@types/node': 17.0.45
           '@types/sax': 1.2.7
           arg: 5.0.2
           sax: 1.3.0
    +    dev: false
     
    -  skin-tone@2.0.0:
    +  /skin-tone@2.0.0:
    +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    +    engines: {node: '>=8'}
         dependencies:
           unicode-emoji-modifier-base: 1.0.0
    +    dev: false
     
    -  slash@3.0.0: {}
    +  /slash@3.0.0:
    +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    +    engines: {node: '>=8'}
     
    -  slash@4.0.0: {}
    +  /slash@4.0.0:
    +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  smart-buffer@4.2.0: {}
    +  /smart-buffer@4.2.0:
    +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
     
    -  snake-case@3.0.4:
    +  /snake-case@3.0.4:
    +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
    +    dev: true
     
    -  sockjs@0.3.24:
    +  /sockjs@0.3.24:
    +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
         dependencies:
           faye-websocket: 0.11.4
           uuid: 8.3.2
           websocket-driver: 0.7.4
     
    -  socks-proxy-agent@6.1.1:
    +  /socks-proxy-agent@6.1.1:
    +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
           socks: 2.8.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  socks-proxy-agent@6.2.1:
    +  /socks-proxy-agent@6.2.1:
    +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -19739,7 +15785,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  socks-proxy-agent@7.0.0:
    +  /socks-proxy-agent@7.0.0:
    +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -19747,58 +15795,89 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  socks@2.8.1:
    +  /socks@2.8.1:
    +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
         dependencies:
           ip-address: 9.0.5
           smart-buffer: 4.2.0
     
    -  sort-css-media-queries@2.1.0: {}
    +  /sort-css-media-queries@2.1.0:
    +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    +    engines: {node: '>= 6.3.0'}
    +    dev: false
     
    -  sort-keys@4.2.0:
    +  /sort-keys@4.2.0:
    +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    +    engines: {node: '>=8'}
         dependencies:
           is-plain-obj: 2.1.0
     
    -  sort-keys@5.0.0:
    +  /sort-keys@5.0.0:
    +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    +    engines: {node: '>=12'}
         dependencies:
           is-plain-obj: 4.1.0
    +    dev: true
     
    -  source-map-js@1.2.0: {}
    +  /source-map-js@1.2.0:
    +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    +    engines: {node: '>=0.10.0'}
     
    -  source-map-support@0.5.13:
    +  /source-map-support@0.5.13:
    +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
    +    dev: true
     
    -  source-map-support@0.5.21:
    +  /source-map-support@0.5.21:
    +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
     
    -  source-map-url@0.4.1: {}
    +  /source-map-url@0.4.1:
    +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    +    deprecated: See https://github.com/lydell/source-map-url#deprecated
    +    dev: true
     
    -  source-map@0.5.6: {}
    +  /source-map@0.5.6:
    +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  source-map@0.6.1: {}
    +  /source-map@0.6.1:
    +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    +    engines: {node: '>=0.10.0'}
     
    -  source-map@0.7.4: {}
    +  /source-map@0.7.4:
    +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    +    engines: {node: '>= 8'}
     
    -  space-separated-tokens@2.0.2: {}
    +  /space-separated-tokens@2.0.2:
    +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
     
    -  spdx-correct@3.2.0:
    +  /spdx-correct@3.2.0:
    +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
         dependencies:
           spdx-expression-parse: 3.0.1
           spdx-license-ids: 3.0.17
     
    -  spdx-exceptions@2.5.0: {}
    +  /spdx-exceptions@2.5.0:
    +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
     
    -  spdx-expression-parse@3.0.1:
    +  /spdx-expression-parse@3.0.1:
    +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
         dependencies:
           spdx-exceptions: 2.5.0
           spdx-license-ids: 3.0.17
     
    -  spdx-license-ids@3.0.17: {}
    +  /spdx-license-ids@3.0.17:
    +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
     
    -  spdy-transport@3.0.0:
    +  /spdy-transport@3.0.0:
    +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           detect-node: 2.1.0
    @@ -19809,7 +15888,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  spdy@4.0.2:
    +  /spdy@4.0.2:
    +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           handle-thing: 2.0.1
    @@ -19819,88 +15900,138 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  split2@3.2.2:
    +  /split2@3.2.2:
    +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
         dependencies:
           readable-stream: 3.6.2
     
    -  sprintf-js@1.0.3: {}
    +  /sprintf-js@1.0.3:
    +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
     
    -  sprintf-js@1.1.3: {}
    +  /sprintf-js@1.1.3:
    +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
     
    -  srcset@4.0.0: {}
    +  /srcset@4.0.0:
    +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  ssri@10.0.5:
    +  /ssri@10.0.5:
    +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
     
    -  ssri@8.0.1:
    +  /ssri@8.0.1:
    +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  ssri@9.0.1:
    +  /ssri@9.0.1:
    +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           minipass: 3.3.6
     
    -  stable@0.1.8: {}
    +  /stable@0.1.8:
    +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    +    dev: false
     
    -  stack-generator@2.0.10:
    +  /stack-generator@2.0.10:
    +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
         dependencies:
           stackframe: 1.3.4
    +    dev: false
     
    -  stack-trace@0.0.10: {}
    +  /stack-trace@0.0.10:
    +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
     
    -  stack-utils@2.0.6:
    +  /stack-utils@2.0.6:
    +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    +    engines: {node: '>=10'}
         dependencies:
           escape-string-regexp: 2.0.0
    +    dev: true
     
    -  stackframe@1.3.4: {}
    +  /stackframe@1.3.4:
    +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    +    dev: false
     
    -  stacktrace-gps@3.1.2:
    +  /stacktrace-gps@3.1.2:
    +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
         dependencies:
           source-map: 0.5.6
           stackframe: 1.3.4
    +    dev: false
     
    -  stacktrace-js@2.0.2:
    +  /stacktrace-js@2.0.2:
    +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
         dependencies:
           error-stack-parser: 2.1.4
           stack-generator: 2.0.10
           stacktrace-gps: 3.1.2
    +    dev: false
     
    -  stacktracey@2.1.8:
    +  /stacktracey@2.1.8:
    +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
         dependencies:
           as-table: 1.0.55
           get-source: 2.0.12
    +    dev: true
     
    -  statuses@1.5.0: {}
    +  /statuses@1.5.0:
    +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    +    engines: {node: '>= 0.6'}
     
    -  statuses@2.0.1: {}
    +  /statuses@2.0.1:
    +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    +    engines: {node: '>= 0.8'}
     
    -  std-env@3.7.0: {}
    +  /std-env@3.7.0:
    +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    +    dev: false
     
    -  stop-iteration-iterator@1.0.0:
    +  /stop-iteration-iterator@1.0.0:
    +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           internal-slot: 1.0.7
    +    dev: true
     
    -  streamsearch@1.1.0: {}
    +  /streamsearch@1.1.0:
    +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    +    engines: {node: '>=10.0.0'}
    +    dev: false
     
    -  string-length@4.0.2:
    +  /string-length@4.0.2:
    +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    +    engines: {node: '>=10'}
         dependencies:
           char-regex: 1.0.2
           strip-ansi: 6.0.1
    +    dev: true
     
    -  string-width@4.2.3:
    +  /string-width@4.2.3:
    +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    +    engines: {node: '>=8'}
         dependencies:
           emoji-regex: 8.0.0
           is-fullwidth-code-point: 3.0.0
           strip-ansi: 6.0.1
     
    -  string-width@5.1.2:
    +  /string-width@5.1.2:
    +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    +    engines: {node: '>=12'}
         dependencies:
           eastasianwidth: 0.2.0
           emoji-regex: 9.2.2
           strip-ansi: 7.1.0
     
    -  string.prototype.matchall@4.0.11:
    +  /string.prototype.matchall@4.0.11:
    +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -19914,117 +16045,195 @@ snapshots:
           regexp.prototype.flags: 1.5.2
           set-function-name: 2.0.2
           side-channel: 1.0.6
    +    dev: true
     
    -  string.prototype.trim@1.2.9:
    +  /string.prototype.trim@1.2.9:
    +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string.prototype.trimend@1.0.8:
    +  /string.prototype.trimend@1.0.8:
    +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string.prototype.trimstart@1.0.8:
    +  /string.prototype.trimstart@1.0.8:
    +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string_decoder@1.1.1:
    +  /string_decoder@1.1.1:
    +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
         dependencies:
           safe-buffer: 5.1.2
     
    -  string_decoder@1.3.0:
    +  /string_decoder@1.3.0:
    +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
         dependencies:
           safe-buffer: 5.2.1
     
    -  stringify-entities@4.0.3:
    +  /stringify-entities@4.0.3:
    +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
         dependencies:
           character-entities-html4: 2.1.0
           character-entities-legacy: 3.0.0
     
    -  stringify-object@3.3.0:
    +  /stringify-object@3.3.0:
    +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    +    engines: {node: '>=4'}
         dependencies:
           get-own-enumerable-property-symbols: 3.0.2
           is-obj: 1.0.1
           is-regexp: 1.0.0
    +    dev: false
     
    -  strip-ansi@6.0.1:
    +  /strip-ansi@6.0.1:
    +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    +    engines: {node: '>=8'}
         dependencies:
           ansi-regex: 5.0.1
     
    -  strip-ansi@7.1.0:
    +  /strip-ansi@7.1.0:
    +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    +    engines: {node: '>=12'}
         dependencies:
           ansi-regex: 6.0.1
     
    -  strip-bom-buf@1.0.0:
    +  /strip-bom-buf@1.0.0:
    +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    +    engines: {node: '>=4'}
         dependencies:
           is-utf8: 0.2.1
     
    -  strip-bom-stream@2.0.0:
    +  /strip-bom-stream@2.0.0:
    +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           first-chunk-stream: 2.0.0
           strip-bom: 2.0.0
     
    -  strip-bom-string@1.0.0: {}
    +  /strip-bom-string@1.0.0:
    +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  strip-bom@2.0.0:
    +  /strip-bom@2.0.0:
    +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-utf8: 0.2.1
     
    -  strip-bom@3.0.0: {}
    +  /strip-bom@3.0.0:
    +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    +    engines: {node: '>=4'}
     
    -  strip-bom@4.0.0: {}
    +  /strip-bom@4.0.0:
    +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    +    engines: {node: '>=8'}
     
    -  strip-comments-strings@1.2.0: {}
    +  /strip-comments-strings@1.2.0:
    +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    +    dev: true
     
    -  strip-final-newline@2.0.0: {}
    +  /strip-final-newline@2.0.0:
    +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    +    engines: {node: '>=6'}
     
    -  strip-indent@3.0.0:
    +  /strip-indent@3.0.0:
    +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    +    engines: {node: '>=8'}
         dependencies:
           min-indent: 1.0.1
    +    dev: true
     
    -  strip-indent@4.0.0:
    +  /strip-indent@4.0.0:
    +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    +    engines: {node: '>=12'}
         dependencies:
           min-indent: 1.0.1
    +    dev: true
     
    -  strip-json-comments@2.0.1: {}
    +  /strip-json-comments@2.0.1:
    +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  strip-json-comments@3.1.1: {}
    +  /strip-json-comments@3.1.1:
    +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    +    engines: {node: '>=8'}
     
    -  strnum@1.0.5: {}
    +  /strnum@1.0.5:
    +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    +    dev: true
     
    -  style-loader@3.3.4(webpack@5.91.0):
    +  /style-loader@3.3.4(webpack@5.91.0):
    +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  style-to-object@0.4.4:
    +  /style-to-object@0.4.4:
    +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
         dependencies:
           inline-style-parser: 0.1.1
     
    -  style-to-object@1.0.5:
    +  /style-to-object@1.0.5:
    +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
         dependencies:
           inline-style-parser: 0.2.2
     
    -  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    +  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    +    engines: {node: '>= 12.0.0'}
    +    peerDependencies:
    +      '@babel/core': '*'
    +      babel-plugin-macros: '*'
    +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      babel-plugin-macros:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           client-only: 0.0.1
           react: 18.2.0
    +    dev: false
     
    -  stylehacks@5.1.1(postcss@8.4.38):
    +  /stylehacks@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  stylis@4.3.1: {}
    +  /stylis@4.3.1:
    +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    +    dev: false
     
    -  sucrase@3.35.0:
    +  /sucrase@3.35.0:
    +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           commander: 4.1.1
    @@ -20033,24 +16242,37 @@ snapshots:
           mz: 2.7.0
           pirates: 4.0.6
           ts-interface-checker: 0.1.13
    +    dev: true
     
    -  supports-color@5.5.0:
    +  /supports-color@5.5.0:
    +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    +    engines: {node: '>=4'}
         dependencies:
           has-flag: 3.0.0
     
    -  supports-color@7.2.0:
    +  /supports-color@7.2.0:
    +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    +    engines: {node: '>=8'}
         dependencies:
           has-flag: 4.0.0
     
    -  supports-color@8.1.1:
    +  /supports-color@8.1.1:
    +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    +    engines: {node: '>=10'}
         dependencies:
           has-flag: 4.0.0
     
    -  supports-preserve-symlinks-flag@1.0.0: {}
    +  /supports-preserve-symlinks-flag@1.0.0:
    +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    +    engines: {node: '>= 0.4'}
     
    -  svg-parser@2.0.4: {}
    +  /svg-parser@2.0.4:
    +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
     
    -  svgo@2.8.0:
    +  /svgo@2.8.0:
    +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -20059,8 +16281,12 @@ snapshots:
           csso: 4.2.0
           picocolors: 1.0.0
           stable: 0.1.8
    +    dev: false
     
    -  svgo@3.2.0:
    +  /svgo@3.2.0:
    +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -20069,10 +16295,16 @@ snapshots:
           css-what: 6.1.0
           csso: 5.0.5
           picocolors: 1.0.0
    +    dev: true
     
    -  symbol-tree@3.2.4: {}
    +  /symbol-tree@3.2.4:
    +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    +    dev: true
     
    -  syncpack@12.3.0(typescript@5.4.3):
    +  /syncpack@12.3.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    +    engines: {node: '>=16'}
    +    hasBin: true
         dependencies:
           '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
           chalk: 4.1.2
    @@ -20092,8 +16324,12 @@ snapshots:
           ts-toolbelt: 9.6.0
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  tailwindcss@3.4.1(ts-node@10.9.2):
    +  /tailwindcss@3.4.1(ts-node@10.9.2):
    +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
         dependencies:
           '@alloc/quick-lru': 5.2.0
           arg: 5.0.2
    @@ -20119,12 +16355,20 @@ snapshots:
           sucrase: 3.35.0
         transitivePeerDependencies:
           - ts-node
    +    dev: true
     
    -  tapable@1.1.3: {}
    +  /tapable@1.1.3:
    +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  tapable@2.2.1: {}
    +  /tapable@2.2.1:
    +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    +    engines: {node: '>=6'}
     
    -  tar@6.2.1:
    +  /tar@6.2.1:
    +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    +    engines: {node: '>=10'}
         dependencies:
           chownr: 2.0.0
           fs-minipass: 2.1.0
    @@ -20133,7 +16377,21 @@ snapshots:
           mkdirp: 1.0.4
           yallist: 4.0.0
     
    -  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    +  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      '@swc/core': '*'
    +      esbuild: '*'
    +      uglify-js: '*'
    +      webpack: ^5.1.0
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      esbuild:
    +        optional: true
    +      uglify-js:
    +        optional: true
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           esbuild: 0.20.2
    @@ -20143,105 +16401,195 @@ snapshots:
           terser: 5.29.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  terser@5.29.2:
    +  /terser@5.29.2:
    +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           '@jridgewell/source-map': 0.3.6
           acorn: 8.11.3
           commander: 2.20.3
           source-map-support: 0.5.21
     
    -  test-exclude@6.0.0:
    +  /test-exclude@6.0.0:
    +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    +    engines: {node: '>=8'}
         dependencies:
           '@istanbuljs/schema': 0.1.3
           glob: 7.2.3
           minimatch: 3.1.2
    +    dev: true
     
    -  text-hex@1.0.0: {}
    +  /text-hex@1.0.0:
    +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
     
    -  text-table@0.2.0: {}
    +  /text-table@0.2.0:
    +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
     
    -  textextensions@5.16.0: {}
    +  /textextensions@5.16.0:
    +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    +    engines: {node: '>=0.8'}
     
    -  thenify-all@1.6.0:
    +  /thenify-all@1.6.0:
    +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    +    engines: {node: '>=0.8'}
         dependencies:
           thenify: 3.3.1
    +    dev: true
     
    -  thenify@3.3.1:
    +  /thenify@3.3.1:
    +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
         dependencies:
           any-promise: 1.3.0
    +    dev: true
     
    -  throttle-debounce@3.0.1: {}
    +  /throttle-debounce@3.0.1:
    +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  through2@4.0.2:
    +  /through2@4.0.2:
    +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
         dependencies:
           readable-stream: 3.6.2
     
    -  through@2.3.8: {}
    +  /through@2.3.8:
    +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
     
    -  thunky@1.1.0: {}
    +  /thunky@1.1.0:
    +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
     
    -  tightrope@0.1.0: {}
    +  /tightrope@0.1.0:
    +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    +    engines: {node: '>=14'}
    +    dev: true
     
    -  tiny-invariant@1.3.3: {}
    +  /tiny-invariant@1.3.3:
    +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    +    dev: false
     
    -  tiny-warning@1.0.3: {}
    +  /tiny-warning@1.0.3:
    +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    +    dev: false
     
    -  tinycolor2@1.6.0: {}
    +  /tinycolor2@1.6.0:
    +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    +    dev: false
     
    -  tmp@0.0.33:
    +  /tmp@0.0.33:
    +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    +    engines: {node: '>=0.6.0'}
         dependencies:
           os-tmpdir: 1.0.2
     
    -  tmpl@1.0.5: {}
    +  /tmpl@1.0.5:
    +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    +    dev: true
     
    -  to-fast-properties@2.0.0: {}
    +  /to-fast-properties@2.0.0:
    +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    +    engines: {node: '>=4'}
     
    -  to-regex-range@5.0.1:
    +  /to-regex-range@5.0.1:
    +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    +    engines: {node: '>=8.0'}
         dependencies:
           is-number: 7.0.0
     
    -  toggle-selection@1.0.6: {}
    +  /toggle-selection@1.0.6:
    +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    +    dev: false
     
    -  toidentifier@1.0.1: {}
    +  /toidentifier@1.0.1:
    +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    +    engines: {node: '>=0.6'}
     
    -  totalist@3.0.1: {}
    +  /totalist@3.0.1:
    +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  tough-cookie@4.1.3:
    +  /tough-cookie@4.1.3:
    +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    +    engines: {node: '>=6'}
         dependencies:
           psl: 1.9.0
           punycode: 2.3.1
           universalify: 0.2.0
           url-parse: 1.5.10
    +    dev: true
     
    -  tr46@0.0.3: {}
    +  /tr46@0.0.3:
    +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
     
    -  tr46@3.0.0:
    +  /tr46@3.0.0:
    +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    +    engines: {node: '>=12'}
         dependencies:
           punycode: 2.3.1
    +    dev: true
     
    -  treeverse@1.0.4: {}
    +  /treeverse@1.0.4:
    +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
     
    -  trie-search@2.0.0:
    +  /trie-search@2.0.0:
    +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
         dependencies:
           hasharray: 1.1.2
    +    dev: false
     
    -  trim-lines@3.0.1: {}
    +  /trim-lines@3.0.1:
    +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
     
    -  trim-newlines@4.1.1: {}
    +  /trim-newlines@4.1.1:
    +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  triple-beam@1.4.1: {}
    +  /triple-beam@1.4.1:
    +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    +    engines: {node: '>= 14.0.0'}
     
    -  trough@2.2.0: {}
    +  /trough@2.2.0:
    +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
     
    -  ts-api-utils@1.3.0(typescript@5.4.3):
    +  /ts-api-utils@1.3.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      typescript: '>=4.2.0'
         dependencies:
           typescript: 5.4.3
    +    dev: true
     
    -  ts-easing@0.2.0: {}
    +  /ts-easing@0.2.0:
    +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    +    dev: false
     
    -  ts-interface-checker@0.1.13: {}
    +  /ts-interface-checker@0.1.13:
    +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    +    dev: true
     
    -  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    +  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      '@babel/core': '>=7.0.0-beta.0 <8'
    +      '@jest/types': ^29.0.0
    +      babel-jest: ^29.0.0
    +      esbuild: '*'
    +      jest: ^29.0.0
    +      typescript: '>=4.3 <6'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      '@jest/types':
    +        optional: true
    +      babel-jest:
    +        optional: true
    +      esbuild:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           bs-logger: 0.2.6
    @@ -20255,8 +16603,14 @@ snapshots:
           semver: 7.6.0
           typescript: 5.4.3
           yargs-parser: 21.1.1
    +    dev: true
     
    -  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    +  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      typescript: '*'
    +      webpack: ^5.0.0
         dependencies:
           chalk: 4.1.2
           enhanced-resolve: 5.16.0
    @@ -20265,8 +16619,21 @@ snapshots:
           source-map: 0.7.4
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    +  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    +    hasBin: true
    +    peerDependencies:
    +      '@swc/core': '>=1.2.50'
    +      '@swc/wasm': '>=1.2.50'
    +      '@types/node': '*'
    +      typescript: '>=2.7'
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      '@swc/wasm':
    +        optional: true
         dependencies:
           '@cspotcode/source-map-support': 0.8.1
           '@tsconfig/node10': 1.0.10
    @@ -20283,19 +16650,27 @@ snapshots:
           typescript: 5.4.3
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
    +    dev: true
     
    -  ts-toolbelt@9.6.0: {}
    +  /ts-toolbelt@9.6.0:
    +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    +    dev: true
     
    -  tsconfig-paths@3.15.0:
    +  /tsconfig-paths@3.15.0:
    +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
         dependencies:
           '@types/json5': 0.0.29
           json5: 1.0.2
           minimist: 1.2.8
           strip-bom: 3.0.0
    +    dev: true
     
    -  tslib@2.6.2: {}
    +  /tslib@2.6.2:
    +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
     
    -  tuf-js@1.1.7:
    +  /tuf-js@1.1.7:
    +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@tufjs/models': 1.0.4
           debug: 4.3.4(supports-color@8.1.1)
    @@ -20303,46 +16678,77 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  type-check@0.4.0:
    +  /type-check@0.4.0:
    +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           prelude-ls: 1.2.1
     
    -  type-detect@4.0.8: {}
    +  /type-detect@4.0.8:
    +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  type-fest@0.20.2: {}
    +  /type-fest@0.20.2:
    +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    +    engines: {node: '>=10'}
     
    -  type-fest@0.21.3: {}
    +  /type-fest@0.21.3:
    +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    +    engines: {node: '>=10'}
     
    -  type-fest@0.6.0: {}
    +  /type-fest@0.6.0:
    +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    +    engines: {node: '>=8'}
     
    -  type-fest@0.8.1: {}
    +  /type-fest@0.8.1:
    +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    +    engines: {node: '>=8'}
     
    -  type-fest@1.4.0: {}
    +  /type-fest@1.4.0:
    +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    +    engines: {node: '>=10'}
     
    -  type-fest@2.19.0: {}
    +  /type-fest@2.19.0:
    +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  type-fest@4.14.0: {}
    +  /type-fest@4.14.0:
    +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    +    engines: {node: '>=16'}
    +    dev: false
     
    -  type-is@1.6.18:
    +  /type-is@1.6.18:
    +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           media-typer: 0.3.0
           mime-types: 2.1.35
     
    -  typed-array-buffer@1.0.2:
    +  /typed-array-buffer@1.0.2:
    +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-byte-length@1.0.1:
    +  /typed-array-byte-length@1.0.1:
    +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-byte-offset@1.0.2:
    +  /typed-array-byte-offset@1.0.2:
    +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
    @@ -20350,8 +16756,11 @@ snapshots:
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-length@1.0.6:
    +  /typed-array-length@1.0.6:
    +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
    @@ -20359,34 +16768,53 @@ snapshots:
           has-proto: 1.0.3
           is-typed-array: 1.1.13
           possible-typed-array-names: 1.0.0
    +    dev: true
     
    -  typedarray-to-buffer@3.1.5:
    +  /typedarray-to-buffer@3.1.5:
    +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
         dependencies:
           is-typedarray: 1.0.0
     
    -  typescript@5.4.3: {}
    +  /typescript@5.4.3:
    +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    +    engines: {node: '>=14.17'}
    +    hasBin: true
     
    -  unbox-primitive@1.0.2:
    +  /unbox-primitive@1.0.2:
    +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
         dependencies:
           call-bind: 1.0.7
           has-bigints: 1.0.2
           has-symbols: 1.0.3
           which-boxed-primitive: 1.0.2
    +    dev: true
     
    -  unicode-canonical-property-names-ecmascript@2.0.0: {}
    +  /unicode-canonical-property-names-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    +    engines: {node: '>=4'}
     
    -  unicode-emoji-modifier-base@1.0.0: {}
    +  /unicode-emoji-modifier-base@1.0.0:
    +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  unicode-match-property-ecmascript@2.0.0:
    +  /unicode-match-property-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    +    engines: {node: '>=4'}
         dependencies:
           unicode-canonical-property-names-ecmascript: 2.0.0
           unicode-property-aliases-ecmascript: 2.1.0
     
    -  unicode-match-property-value-ecmascript@2.1.0: {}
    +  /unicode-match-property-value-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    +    engines: {node: '>=4'}
     
    -  unicode-property-aliases-ecmascript@2.1.0: {}
    +  /unicode-property-aliases-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    +    engines: {node: '>=4'}
     
    -  unified@11.0.4:
    +  /unified@11.0.4:
    +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
         dependencies:
           '@types/unist': 3.0.2
           bail: 2.0.2
    @@ -20396,91 +16824,133 @@ snapshots:
           trough: 2.2.0
           vfile: 6.0.1
     
    -  union@0.5.0:
    +  /union@0.5.0:
    +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           qs: 6.12.0
    +    dev: true
     
    -  unique-filename@1.1.1:
    +  /unique-filename@1.1.1:
    +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
         dependencies:
           unique-slug: 2.0.2
     
    -  unique-filename@2.0.1:
    +  /unique-filename@2.0.1:
    +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           unique-slug: 3.0.0
     
    -  unique-filename@3.0.0:
    +  /unique-filename@3.0.0:
    +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           unique-slug: 4.0.0
     
    -  unique-slug@2.0.2:
    +  /unique-slug@2.0.2:
    +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-slug@3.0.0:
    +  /unique-slug@3.0.0:
    +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-slug@4.0.0:
    +  /unique-slug@4.0.0:
    +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-string@2.0.0:
    +  /unique-string@2.0.0:
    +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    +    engines: {node: '>=8'}
         dependencies:
           crypto-random-string: 2.0.0
    +    dev: true
     
    -  unique-string@3.0.0:
    +  /unique-string@3.0.0:
    +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    +    engines: {node: '>=12'}
         dependencies:
           crypto-random-string: 4.0.0
    +    dev: false
     
    -  unist-util-is@6.0.0:
    +  /unist-util-is@6.0.0:
    +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-position-from-estree@2.0.0:
    +  /unist-util-position-from-estree@2.0.0:
    +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-position@5.0.0:
    +  /unist-util-position@5.0.0:
    +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-remove-position@5.0.0:
    +  /unist-util-remove-position@5.0.0:
    +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-visit: 5.0.0
     
    -  unist-util-stringify-position@4.0.0:
    +  /unist-util-stringify-position@4.0.0:
    +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-visit-parents@6.0.1:
    +  /unist-util-visit-parents@6.0.1:
    +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
     
    -  unist-util-visit@5.0.0:
    +  /unist-util-visit@5.0.0:
    +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
     
    -  universal-user-agent@6.0.1: {}
    +  /universal-user-agent@6.0.1:
    +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
     
    -  universalify@0.2.0: {}
    +  /universalify@0.2.0:
    +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    +    engines: {node: '>= 4.0.0'}
    +    dev: true
     
    -  universalify@2.0.1: {}
    +  /universalify@2.0.1:
    +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    +    engines: {node: '>= 10.0.0'}
     
    -  unpipe@1.0.0: {}
    +  /unpipe@1.0.0:
    +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    +    engines: {node: '>= 0.8'}
     
    -  untildify@4.0.0: {}
    +  /untildify@4.0.0:
    +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    +    engines: {node: '>=8'}
     
    -  update-browserslist-db@1.0.13(browserslist@4.23.0):
    +  /update-browserslist-db@1.0.13(browserslist@4.23.0):
    +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    +    hasBin: true
    +    peerDependencies:
    +      browserslist: '>= 4.21.0'
         dependencies:
           browserslist: 4.23.0
           escalade: 3.1.2
           picocolors: 1.0.0
     
    -  update-notifier@6.0.2:
    +  /update-notifier@6.0.2:
    +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    +    engines: {node: '>=14.16'}
         dependencies:
           boxen: 7.1.1
           chalk: 5.3.0
    @@ -20496,80 +16966,125 @@ snapshots:
           semver: 7.6.0
           semver-diff: 4.0.0
           xdg-basedir: 5.1.0
    +    dev: false
     
    -  uri-js@4.4.1:
    +  /uri-js@4.4.1:
    +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
         dependencies:
           punycode: 2.3.1
     
    -  url-join@4.0.1: {}
    +  /url-join@4.0.1:
    +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    +    dev: true
     
    -  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    +  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      file-loader: '*'
    +      webpack: ^4.0.0 || ^5.0.0
    +    peerDependenciesMeta:
    +      file-loader:
    +        optional: true
         dependencies:
           file-loader: 6.2.0(webpack@5.91.0)
           loader-utils: 2.0.4
           mime-types: 2.1.35
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  url-parse@1.5.10:
    +  /url-parse@1.5.10:
    +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
         dependencies:
           querystringify: 2.2.0
           requires-port: 1.0.0
    +    dev: true
     
    -  util-deprecate@1.0.2: {}
    +  /util-deprecate@1.0.2:
    +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
     
    -  utila@0.4.0: {}
    +  /utila@0.4.0:
    +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
     
    -  utility-types@3.11.0: {}
    +  /utility-types@3.11.0:
    +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    +    engines: {node: '>= 4'}
     
    -  utils-merge@1.0.1: {}
    +  /utils-merge@1.0.1:
    +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    +    engines: {node: '>= 0.4.0'}
     
    -  uuid@8.3.2: {}
    +  /uuid@8.3.2:
    +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    +    hasBin: true
     
    -  uuid@9.0.1: {}
    +  /uuid@9.0.1:
    +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    +    hasBin: true
    +    dev: false
     
    -  v8-compile-cache-lib@3.0.1: {}
    +  /v8-compile-cache-lib@3.0.1:
    +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    +    dev: true
     
    -  v8-to-istanbul@9.2.0:
    +  /v8-to-istanbul@9.2.0:
    +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    +    engines: {node: '>=10.12.0'}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           '@types/istanbul-lib-coverage': 2.0.6
           convert-source-map: 2.0.0
    +    dev: true
     
    -  validate-npm-package-license@3.0.4:
    +  /validate-npm-package-license@3.0.4:
    +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
         dependencies:
           spdx-correct: 3.2.0
           spdx-expression-parse: 3.0.1
     
    -  validate-npm-package-name@3.0.0:
    +  /validate-npm-package-name@3.0.0:
    +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
         dependencies:
           builtins: 1.0.3
     
    -  validate-npm-package-name@5.0.0:
    +  /validate-npm-package-name@5.0.0:
    +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           builtins: 5.0.1
     
    -  value-equal@1.0.1: {}
    +  /value-equal@1.0.1:
    +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    +    dev: false
     
    -  vary@1.1.2: {}
    +  /vary@1.1.2:
    +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    +    engines: {node: '>= 0.8'}
     
    -  vfile-location@5.0.2:
    +  /vfile-location@5.0.2:
    +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
         dependencies:
           '@types/unist': 3.0.2
           vfile: 6.0.1
    +    dev: false
     
    -  vfile-message@4.0.2:
    +  /vfile-message@4.0.2:
    +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
     
    -  vfile@6.0.1:
    +  /vfile@6.0.1:
    +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
           vfile-message: 4.0.2
     
    -  vinyl-file@3.0.0:
    +  /vinyl-file@3.0.0:
    +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    +    engines: {node: '>=4'}
         dependencies:
           graceful-fs: 4.2.11
           pify: 2.3.0
    @@ -20577,7 +17092,9 @@ snapshots:
           strip-bom-stream: 2.0.0
           vinyl: 2.2.1
     
    -  vinyl@2.2.1:
    +  /vinyl@2.2.1:
    +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           clone: 2.1.2
           clone-buffer: 1.0.0
    @@ -20586,38 +17103,58 @@ snapshots:
           remove-trailing-separator: 1.1.0
           replace-ext: 1.0.1
     
    -  vscode-uri@3.0.8: {}
    +  /vscode-uri@3.0.8:
    +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
     
    -  w3c-xmlserializer@4.0.0:
    +  /w3c-xmlserializer@4.0.0:
    +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    +    engines: {node: '>=14'}
         dependencies:
           xml-name-validator: 4.0.0
    +    dev: true
     
    -  walk-up-path@1.0.0: {}
    +  /walk-up-path@1.0.0:
    +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
     
    -  walker@1.0.8:
    +  /walker@1.0.8:
    +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
         dependencies:
           makeerror: 1.0.12
    +    dev: true
     
    -  watchpack@2.4.1:
    +  /watchpack@2.4.1:
    +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           glob-to-regexp: 0.4.1
           graceful-fs: 4.2.11
     
    -  wbuf@1.7.3:
    +  /wbuf@1.7.3:
    +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
         dependencies:
           minimalistic-assert: 1.0.1
     
    -  wcwidth@1.0.1:
    +  /wcwidth@1.0.1:
    +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
         dependencies:
           defaults: 1.0.4
     
    -  web-namespaces@2.0.1: {}
    +  /web-namespaces@2.0.1:
    +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    +    dev: false
     
    -  webidl-conversions@3.0.1: {}
    +  /webidl-conversions@3.0.1:
    +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
     
    -  webidl-conversions@7.0.0: {}
    +  /webidl-conversions@7.0.0:
    +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  webpack-bundle-analyzer@4.10.1:
    +  /webpack-bundle-analyzer@4.10.1:
    +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    +    engines: {node: '>= 10.13.0'}
    +    hasBin: true
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           acorn: 8.11.3
    @@ -20635,8 +17172,24 @@ snapshots:
         transitivePeerDependencies:
           - bufferutil
           - utf-8-validate
    +    dev: false
     
    -  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    +    engines: {node: '>=14.15.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@webpack-cli/generators': '*'
    +      webpack: 5.x.x
    +      webpack-bundle-analyzer: '*'
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      '@webpack-cli/generators':
    +        optional: true
    +      webpack-bundle-analyzer:
    +        optional: true
    +      webpack-dev-server:
    +        optional: true
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
    @@ -20655,7 +17208,11 @@ snapshots:
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
           webpack-merge: 5.10.0
     
    -  webpack-dev-middleware@5.3.4(webpack@5.91.0):
    +  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
    +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
         dependencies:
           colorette: 2.0.20
           memfs: 3.5.3
    @@ -20663,8 +17220,16 @@ snapshots:
           range-parser: 1.2.1
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  webpack-dev-middleware@7.1.1(webpack@5.91.0):
    +  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
         dependencies:
           colorette: 2.0.20
           memfs: 4.8.0
    @@ -20674,7 +17239,18 @@ snapshots:
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  webpack-dev-server@4.15.2(webpack@5.91.0):
    +  /webpack-dev-server@4.15.2(webpack@5.91.0):
    +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    +    engines: {node: '>= 12.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^4.37.0 || ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -20712,8 +17288,20 @@ snapshots:
           - debug
           - supports-color
           - utf-8-validate
    +    dev: false
     
    -  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    +  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    +    engines: {node: '>= 18.12.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -20753,15 +17341,27 @@ snapshots:
           - supports-color
           - utf-8-validate
     
    -  webpack-merge@5.10.0:
    +  /webpack-merge@5.10.0:
    +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    +    engines: {node: '>=10.0.0'}
         dependencies:
           clone-deep: 4.0.1
           flat: 5.0.2
           wildcard: 2.0.1
     
    -  webpack-sources@3.2.3: {}
    +  /webpack-sources@3.2.3:
    +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    +    engines: {node: '>=10.13.0'}
     
    -  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    +  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/eslint-scope': 3.7.7
           '@types/estree': 1.0.5
    @@ -20793,47 +17393,70 @@ snapshots:
           - esbuild
           - uglify-js
     
    -  webpackbar@5.0.2(webpack@5.91.0):
    +  /webpackbar@5.0.2(webpack@5.91.0):
    +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      webpack: 3 || 4 || 5
         dependencies:
           chalk: 4.1.2
           consola: 2.15.3
           pretty-time: 1.1.0
           std-env: 3.7.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  websocket-driver@0.7.4:
    +  /websocket-driver@0.7.4:
    +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    +    engines: {node: '>=0.8.0'}
         dependencies:
           http-parser-js: 0.5.8
           safe-buffer: 5.2.1
           websocket-extensions: 0.1.4
     
    -  websocket-extensions@0.1.4: {}
    +  /websocket-extensions@0.1.4:
    +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    +    engines: {node: '>=0.8.0'}
     
    -  whatwg-encoding@2.0.0:
    +  /whatwg-encoding@2.0.0:
    +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    +    engines: {node: '>=12'}
         dependencies:
           iconv-lite: 0.6.3
    +    dev: true
     
    -  whatwg-mimetype@3.0.0: {}
    +  /whatwg-mimetype@3.0.0:
    +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  whatwg-url@11.0.0:
    +  /whatwg-url@11.0.0:
    +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    +    engines: {node: '>=12'}
         dependencies:
           tr46: 3.0.0
           webidl-conversions: 7.0.0
    +    dev: true
     
    -  whatwg-url@5.0.0:
    +  /whatwg-url@5.0.0:
    +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
         dependencies:
           tr46: 0.0.3
           webidl-conversions: 3.0.1
     
    -  which-boxed-primitive@1.0.2:
    +  /which-boxed-primitive@1.0.2:
    +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
         dependencies:
           is-bigint: 1.0.4
           is-boolean-object: 1.1.2
           is-number-object: 1.0.7
           is-string: 1.0.7
           is-symbol: 1.0.4
    +    dev: true
     
    -  which-builtin-type@1.1.3:
    +  /which-builtin-type@1.1.3:
    +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           function.prototype.name: 1.1.6
           has-tostringtag: 1.0.2
    @@ -20847,60 +17470,90 @@ snapshots:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  which-collection@1.0.2:
    +  /which-collection@1.0.2:
    +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-map: 2.0.3
           is-set: 2.0.3
           is-weakmap: 2.0.2
           is-weakset: 2.0.3
    +    dev: true
     
    -  which-pm@2.0.0:
    +  /which-pm@2.0.0:
    +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    +    engines: {node: '>=8.15'}
         dependencies:
           load-yaml-file: 0.2.0
           path-exists: 4.0.0
     
    -  which-typed-array@1.1.15:
    +  /which-typed-array@1.1.15:
    +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  which@1.3.1:
    +  /which@1.3.1:
    +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
    +    dev: false
     
    -  which@2.0.2:
    +  /which@2.0.2:
    +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  which@3.0.1:
    +  /which@3.0.1:
    +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  wide-align@1.1.5:
    +  /wide-align@1.1.5:
    +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
         dependencies:
           string-width: 4.2.3
     
    -  widest-line@3.1.0:
    +  /widest-line@3.1.0:
    +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    +    engines: {node: '>=8'}
         dependencies:
           string-width: 4.2.3
    +    dev: true
     
    -  widest-line@4.0.1:
    +  /widest-line@4.0.1:
    +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 5.1.2
    +    dev: false
     
    -  wildcard@2.0.1: {}
    +  /wildcard@2.0.1:
    +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
     
    -  winston-transport@4.7.0:
    +  /winston-transport@4.7.0:
    +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           logform: 2.6.0
           readable-stream: 3.6.2
           triple-beam: 1.4.1
     
    -  winston@3.11.0:
    +  /winston@3.11.0:
    +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           '@colors/colors': 1.6.0
           '@dabh/diagnostics': 2.0.3
    @@ -20914,95 +17567,173 @@ snapshots:
           triple-beam: 1.4.1
           winston-transport: 4.7.0
     
    -  workerpool@6.2.1: {}
    +  /workerpool@6.2.1:
    +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    +    dev: true
     
    -  wrap-ansi@6.2.0:
    +  /wrap-ansi@6.2.0:
    +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    +    engines: {node: '>=8'}
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  wrap-ansi@7.0.0:
    +  /wrap-ansi@7.0.0:
    +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  wrap-ansi@8.1.0:
    +  /wrap-ansi@8.1.0:
    +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    +    engines: {node: '>=12'}
         dependencies:
           ansi-styles: 6.2.1
           string-width: 5.1.2
           strip-ansi: 7.1.0
     
    -  wrappy@1.0.2: {}
    +  /wrappy@1.0.2:
    +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
     
    -  write-file-atomic@3.0.3:
    +  /write-file-atomic@3.0.3:
    +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
         dependencies:
           imurmurhash: 0.1.4
           is-typedarray: 1.0.0
           signal-exit: 3.0.7
           typedarray-to-buffer: 3.1.5
     
    -  write-file-atomic@4.0.2:
    +  /write-file-atomic@4.0.2:
    +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 3.0.7
     
    -  write-file-atomic@5.0.1:
    +  /write-file-atomic@5.0.1:
    +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 4.1.0
     
    -  write-json-file@5.0.0:
    +  /write-json-file@5.0.0:
    +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           detect-indent: 7.0.1
           is-plain-obj: 4.1.0
           sort-keys: 5.0.0
           write-file-atomic: 3.0.3
    +    dev: true
     
    -  write-yaml-file@5.0.0:
    +  /write-yaml-file@5.0.0:
    +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           js-yaml: 4.1.0
           write-file-atomic: 5.0.1
    +    dev: true
     
    -  ws@7.5.9: {}
    +  /ws@7.5.9:
    +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    +    engines: {node: '>=8.3.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: ^5.0.2
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +    dev: false
     
    -  ws@8.16.0: {}
    +  /ws@8.16.0:
    +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: '>=5.0.2'
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
     
    -  xdg-basedir@5.1.0: {}
    +  /xdg-basedir@5.1.0:
    +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  xml-js@1.6.11:
    +  /xml-js@1.6.11:
    +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    +    hasBin: true
         dependencies:
           sax: 1.3.0
    +    dev: false
     
    -  xml-name-validator@4.0.0: {}
    +  /xml-name-validator@4.0.0:
    +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  xmlchars@2.2.0: {}
    +  /xmlchars@2.2.0:
    +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    +    dev: true
     
    -  y18n@5.0.8: {}
    +  /y18n@5.0.8:
    +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yallist@3.1.1: {}
    +  /yallist@3.1.1:
    +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
     
    -  yallist@4.0.0: {}
    +  /yallist@4.0.0:
    +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
     
    -  yaml@1.10.2: {}
    +  /yaml@1.10.2:
    +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    +    engines: {node: '>= 6'}
    +    dev: false
     
    -  yaml@2.4.1: {}
    +  /yaml@2.4.1:
    +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    +    engines: {node: '>= 14'}
    +    hasBin: true
    +    dev: true
     
    -  yargs-parser@20.2.4: {}
    +  /yargs-parser@20.2.4:
    +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yargs-parser@20.2.9: {}
    +  /yargs-parser@20.2.9:
    +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yargs-parser@21.1.1: {}
    +  /yargs-parser@21.1.1:
    +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  yargs-unparser@2.0.0:
    +  /yargs-unparser@2.0.0:
    +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    +    engines: {node: '>=10'}
         dependencies:
           camelcase: 6.3.0
           decamelize: 4.0.0
           flat: 5.0.2
           is-plain-obj: 2.1.0
    +    dev: true
     
    -  yargs@16.2.0:
    +  /yargs@16.2.0:
    +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    +    engines: {node: '>=10'}
         dependencies:
           cliui: 7.0.4
           escalade: 3.1.2
    @@ -21011,8 +17742,11 @@ snapshots:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 20.2.9
    +    dev: true
     
    -  yargs@17.7.2:
    +  /yargs@17.7.2:
    +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    +    engines: {node: '>=12'}
         dependencies:
           cliui: 8.0.1
           escalade: 3.1.2
    @@ -21021,8 +17755,12 @@ snapshots:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 21.1.1
    +    dev: true
     
    -  yeoman-environment@3.19.3:
    +  /yeoman-environment@3.19.3:
    +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    +    engines: {node: '>=12.10.0'}
    +    hasBin: true
         dependencies:
           '@npmcli/arborist': 4.3.1
           are-we-there-yet: 2.0.0
    @@ -21065,7 +17803,14 @@ snapshots:
           - bluebird
           - supports-color
     
    -  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    +  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      yeoman-environment: ^3.2.0
    +    peerDependenciesMeta:
    +      yeoman-environment:
    +        optional: true
         dependencies:
           chalk: 4.1.2
           dargs: 7.0.0
    @@ -21089,12 +17834,23 @@ snapshots:
           - mem-fs
           - supports-color
     
    -  yn@3.1.1: {}
    +  /yn@3.1.1:
    +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  yocto-queue@0.1.0: {}
    +  /yocto-queue@0.1.0:
    +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    +    engines: {node: '>=10'}
     
    -  yocto-queue@1.0.0: {}
    +  /yocto-queue@1.0.0:
    +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  zod@3.22.4: {}
    +  /zod@3.22.4:
    +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    +    dev: false
     
    -  zwitch@2.0.4: {}
    +  /zwitch@2.0.4:
    +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    
    From 7013b7f89f4d7c4cef8028094dbba669fc16ff2a Mon Sep 17 00:00:00 2001
    From: "pre-commit-ci-lite[bot]"
     <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    Date: Thu, 16 May 2024 13:27:20 +0000
    Subject: [PATCH 346/504] [pre-commit.ci lite] apply automatic fixes
    
    ---
     pnpm-lock.yaml | 18928 +++++++++++++++++++++++++++--------------------
     1 file changed, 11086 insertions(+), 7842 deletions(-)
    
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index d11d46704c..ad13448d06 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -1,4 +1,4 @@
    -lockfileVersion: '6.0'
    +lockfileVersion: '9.0'
     
     settings:
       autoInstallPeers: true
    @@ -769,12 +769,8910 @@ importers:
     
     packages:
     
    -  /@aashutoshrathi/word-wrap@1.2.6:
    +  '@aashutoshrathi/word-wrap@1.2.6':
         resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
         engines: {node: '>=0.10.0'}
     
    -  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    +  '@algolia/autocomplete-core@1.9.3':
         resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
    +
    +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
    +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    +    peerDependencies:
    +      search-insights: '>= 1 < 3'
    +
    +  '@algolia/autocomplete-preset-algolia@1.9.3':
    +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
    +
    +  '@algolia/autocomplete-shared@1.9.3':
    +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
    +
    +  '@algolia/cache-browser-local-storage@4.22.1':
    +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    +
    +  '@algolia/cache-common@4.22.1':
    +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    +
    +  '@algolia/cache-in-memory@4.22.1':
    +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    +
    +  '@algolia/client-account@4.22.1':
    +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    +
    +  '@algolia/client-analytics@4.22.1':
    +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    +
    +  '@algolia/client-common@4.22.1':
    +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    +
    +  '@algolia/client-personalization@4.22.1':
    +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    +
    +  '@algolia/client-search@4.22.1':
    +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    +
    +  '@algolia/events@4.0.1':
    +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    +
    +  '@algolia/logger-common@4.22.1':
    +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    +
    +  '@algolia/logger-console@4.22.1':
    +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    +
    +  '@algolia/requester-browser-xhr@4.22.1':
    +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    +
    +  '@algolia/requester-common@4.22.1':
    +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    +
    +  '@algolia/requester-node-http@4.22.1':
    +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    +
    +  '@algolia/transporter@4.22.1':
    +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    +
    +  '@alloc/quick-lru@5.2.0':
    +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    +    engines: {node: '>=10'}
    +
    +  '@ampproject/remapping@2.3.0':
    +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@babel/code-frame@7.24.2':
    +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/compat-data@7.24.1':
    +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/core@7.24.3':
    +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/generator@7.24.1':
    +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-annotate-as-pure@7.22.5':
    +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-compilation-targets@7.23.6':
    +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-create-class-features-plugin@7.24.1':
    +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-create-regexp-features-plugin@7.22.15':
    +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-define-polyfill-provider@0.6.1':
    +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  '@babel/helper-environment-visitor@7.22.20':
    +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-function-name@7.23.0':
    +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-hoist-variables@7.22.5':
    +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-member-expression-to-functions@7.23.0':
    +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-module-imports@7.24.3':
    +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-module-transforms@7.23.3':
    +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-optimise-call-expression@7.22.5':
    +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-plugin-utils@7.24.0':
    +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-remap-async-to-generator@7.22.20':
    +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-replace-supers@7.24.1':
    +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-simple-access@7.22.5':
    +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-split-export-declaration@7.22.6':
    +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-string-parser@7.24.1':
    +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-validator-identifier@7.22.20':
    +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-validator-option@7.23.5':
    +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-wrap-function@7.22.20':
    +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helpers@7.24.1':
    +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/highlight@7.24.2':
    +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/parser@7.24.1':
    +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    +    engines: {node: '>=6.0.0'}
    +    hasBin: true
    +
    +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
    +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
    +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.13.0
    +
    +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
    +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
    +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-async-generators@7.8.4':
    +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-bigint@7.8.3':
    +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-class-properties@7.12.13':
    +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-class-static-block@7.14.5':
    +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-dynamic-import@7.8.3':
    +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-export-namespace-from@7.8.3':
    +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-assertions@7.24.1':
    +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-attributes@7.24.1':
    +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-meta@7.10.4':
    +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-json-strings@7.8.3':
    +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-jsx@7.24.1':
    +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
    +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
    +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-numeric-separator@7.10.4':
    +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-object-rest-spread@7.8.3':
    +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
    +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-optional-chaining@7.8.3':
    +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-private-property-in-object@7.14.5':
    +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-top-level-await@7.14.5':
    +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-typescript@7.24.1':
    +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
    +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-transform-arrow-functions@7.24.1':
    +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-async-generator-functions@7.24.3':
    +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-async-to-generator@7.24.1':
    +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-block-scoped-functions@7.24.1':
    +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-block-scoping@7.24.1':
    +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-class-properties@7.24.1':
    +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-class-static-block@7.24.1':
    +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +
    +  '@babel/plugin-transform-classes@7.24.1':
    +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-computed-properties@7.24.1':
    +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-destructuring@7.24.1':
    +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-dotall-regex@7.24.1':
    +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-duplicate-keys@7.24.1':
    +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-dynamic-import@7.24.1':
    +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-exponentiation-operator@7.24.1':
    +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-export-namespace-from@7.24.1':
    +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-for-of@7.24.1':
    +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-function-name@7.24.1':
    +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-json-strings@7.24.1':
    +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-literals@7.24.1':
    +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
    +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-member-expression-literals@7.24.1':
    +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-amd@7.24.1':
    +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-commonjs@7.24.1':
    +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-systemjs@7.24.1':
    +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-umd@7.24.1':
    +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
    +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-transform-new-target@7.24.1':
    +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
    +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-numeric-separator@7.24.1':
    +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-object-rest-spread@7.24.1':
    +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-object-super@7.24.1':
    +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-optional-catch-binding@7.24.1':
    +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-optional-chaining@7.24.1':
    +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-parameters@7.24.1':
    +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-private-methods@7.24.1':
    +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-private-property-in-object@7.24.1':
    +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-property-literals@7.24.1':
    +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-constant-elements@7.24.1':
    +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-display-name@7.24.1':
    +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-jsx-development@7.22.5':
    +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-jsx@7.23.4':
    +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-pure-annotations@7.24.1':
    +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-regenerator@7.24.1':
    +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-reserved-words@7.24.1':
    +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-runtime@7.24.3':
    +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-shorthand-properties@7.24.1':
    +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-spread@7.24.1':
    +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-sticky-regex@7.24.1':
    +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-template-literals@7.24.1':
    +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-typeof-symbol@7.24.1':
    +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-typescript@7.24.1':
    +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-escapes@7.24.1':
    +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-property-regex@7.24.1':
    +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-regex@7.24.1':
    +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
    +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/preset-env@7.24.3':
    +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/preset-modules@0.1.6-no-external-plugins':
    +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    +
    +  '@babel/preset-react@7.24.1':
    +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/preset-typescript@7.24.1':
    +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/regjsgen@0.8.0':
    +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    +
    +  '@babel/runtime-corejs3@7.24.1':
    +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/runtime@7.24.1':
    +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/template@7.24.0':
    +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/traverse@7.24.1':
    +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/types@7.24.0':
    +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@bcoe/v8-coverage@0.2.3':
    +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    +
    +  '@colors/colors@1.5.0':
    +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    +    engines: {node: '>=0.1.90'}
    +
    +  '@colors/colors@1.6.0':
    +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    +    engines: {node: '>=0.1.90'}
    +
    +  '@cspotcode/source-map-support@0.8.1':
    +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    +    engines: {node: '>=12'}
    +
    +  '@dabh/diagnostics@2.0.3':
    +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    +
    +  '@discoveryjs/json-ext@0.5.7':
    +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    +    engines: {node: '>=10.0.0'}
    +
    +  '@docsearch/css@3.6.0':
    +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    +
    +  '@docsearch/react@3.6.0':
    +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    +    peerDependencies:
    +      '@types/react': '>= 16.8.0 < 19.0.0'
    +      react: '>= 16.8.0 < 19.0.0 || 18'
    +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    +      search-insights: '>= 1 < 3'
    +    peerDependenciesMeta:
    +      '@types/react':
    +        optional: true
    +      react:
    +        optional: true
    +      react-dom:
    +        optional: true
    +      search-insights:
    +        optional: true
    +
    +  '@docusaurus/core@3.1.1':
    +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    +    engines: {node: '>=18.0'}
    +    hasBin: true
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/cssnano-preset@3.1.1':
    +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/logger@3.1.1':
    +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/mdx-loader@3.1.1':
    +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/module-type-aliases@3.1.1':
    +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  '@docusaurus/plugin-content-blog@3.1.1':
    +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-content-docs@3.1.1':
    +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-content-pages@3.1.1':
    +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-debug@3.1.1':
    +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-analytics@3.1.1':
    +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-gtag@3.1.1':
    +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-tag-manager@3.1.1':
    +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-sitemap@3.1.1':
    +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/preset-classic@3.1.1':
    +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/react-loadable@5.5.2':
    +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    +    peerDependencies:
    +      react: '*'
    +
    +  '@docusaurus/theme-classic@3.1.1':
    +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-common@3.1.1':
    +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-search-algolia@3.1.1':
    +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-translations@3.1.1':
    +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/types@3.1.1':
    +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/utils-common@3.1.1':
    +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
    +
    +  '@docusaurus/utils-validation@3.1.1':
    +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/utils@3.1.1':
    +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
    +
    +  '@effect/schema@0.56.1':
    +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    +    peerDependencies:
    +      effect: 2.0.0-next.62
    +      fast-check: ^3.13.2
    +
    +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
    +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      html-webpack-plugin: '>=5'
    +      webpack: '>=5'
    +
    +  '@esbuild/aix-ppc64@0.20.2':
    +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [aix]
    +
    +  '@esbuild/android-arm64@0.20.2':
    +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +
    +  '@esbuild/android-arm@0.20.2':
    +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [android]
    +
    +  '@esbuild/android-x64@0.20.2':
    +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +
    +  '@esbuild/darwin-arm64@0.20.2':
    +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +
    +  '@esbuild/darwin-x64@0.20.2':
    +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +
    +  '@esbuild/freebsd-arm64@0.20.2':
    +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +
    +  '@esbuild/freebsd-x64@0.20.2':
    +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +
    +  '@esbuild/linux-arm64@0.20.2':
    +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@esbuild/linux-arm@0.20.2':
    +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +
    +  '@esbuild/linux-ia32@0.20.2':
    +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +
    +  '@esbuild/linux-loong64@0.20.2':
    +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +
    +  '@esbuild/linux-mips64el@0.20.2':
    +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +
    +  '@esbuild/linux-ppc64@0.20.2':
    +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +
    +  '@esbuild/linux-riscv64@0.20.2':
    +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +
    +  '@esbuild/linux-s390x@0.20.2':
    +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +
    +  '@esbuild/linux-x64@0.20.2':
    +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@esbuild/netbsd-x64@0.20.2':
    +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +
    +  '@esbuild/openbsd-x64@0.20.2':
    +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +
    +  '@esbuild/sunos-x64@0.20.2':
    +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +
    +  '@esbuild/win32-arm64@0.20.2':
    +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  '@esbuild/win32-ia32@0.20.2':
    +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +
    +  '@esbuild/win32-x64@0.20.2':
    +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  '@eslint-community/eslint-utils@4.4.0':
    +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    +
    +  '@eslint-community/regexpp@4.10.0':
    +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    +
    +  '@eslint/eslintrc@2.1.4':
    +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  '@eslint/js@8.57.0':
    +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  '@fortawesome/fontawesome-common-types@6.5.1':
    +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/fontawesome-svg-core@6.5.1':
    +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/free-solid-svg-icons@6.5.1':
    +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/react-fontawesome@0.2.0':
    +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    +    peerDependencies:
    +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    +      react: '>=16.3 || 18'
    +
    +  '@gar/promisify@1.1.3':
    +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    +
    +  '@gwhitney/detect-indent@7.0.1':
    +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    +    engines: {node: '>=12.20'}
    +
    +  '@hapi/hoek@9.3.0':
    +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    +
    +  '@hapi/topo@5.1.0':
    +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    +
    +  '@humanwhocodes/config-array@0.11.14':
    +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    +    engines: {node: '>=10.10.0'}
    +
    +  '@humanwhocodes/module-importer@1.0.1':
    +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    +    engines: {node: '>=12.22'}
    +
    +  '@humanwhocodes/object-schema@2.0.2':
    +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    +
    +  '@isaacs/cliui@8.0.2':
    +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    +    engines: {node: '>=12'}
    +
    +  '@isaacs/string-locale-compare@1.1.0':
    +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    +
    +  '@istanbuljs/load-nyc-config@1.1.0':
    +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    +    engines: {node: '>=8'}
    +
    +  '@istanbuljs/schema@0.1.3':
    +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    +    engines: {node: '>=8'}
    +
    +  '@jest/console@29.7.0':
    +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/core@29.7.0':
    +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  '@jest/environment@29.7.0':
    +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/expect-utils@29.7.0':
    +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/expect@29.7.0':
    +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/fake-timers@29.7.0':
    +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/globals@29.7.0':
    +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/reporters@29.7.0':
    +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  '@jest/schemas@29.6.3':
    +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/source-map@29.6.3':
    +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/test-result@29.7.0':
    +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/test-sequencer@29.7.0':
    +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/transform@29.7.0':
    +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/types@29.6.3':
    +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jridgewell/gen-mapping@0.3.5':
    +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/resolve-uri@3.1.2':
    +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/set-array@1.2.1':
    +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/source-map@0.3.6':
    +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    +
    +  '@jridgewell/sourcemap-codec@1.4.15':
    +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    +
    +  '@jridgewell/trace-mapping@0.3.25':
    +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +
    +  '@jridgewell/trace-mapping@0.3.9':
    +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    +
    +  '@leichtgewicht/ip-codec@2.0.4':
    +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    +
    +  '@mdx-js/loader@3.0.1':
    +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    +    peerDependencies:
    +      webpack: '>=5'
    +
    +  '@mdx-js/mdx@3.0.1':
    +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    +
    +  '@mdx-js/react@3.0.1':
    +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    +    peerDependencies:
    +      '@types/react': '>=16'
    +      react: '>=16 || 18'
    +
    +  '@msgpack/msgpack@2.8.0':
    +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    +    engines: {node: '>= 10'}
    +
    +  '@next/env@14.1.4':
    +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    +
    +  '@next/eslint-plugin-next@14.1.4':
    +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    +
    +  '@next/mdx@14.1.4':
    +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    +    peerDependencies:
    +      '@mdx-js/loader': '>=0.15.0'
    +      '@mdx-js/react': '>=0.15.0'
    +    peerDependenciesMeta:
    +      '@mdx-js/loader':
    +        optional: true
    +      '@mdx-js/react':
    +        optional: true
    +
    +  '@next/swc-darwin-arm64@14.1.4':
    +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [darwin]
    +
    +  '@next/swc-darwin-x64@14.1.4':
    +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [darwin]
    +
    +  '@next/swc-linux-arm64-gnu@14.1.4':
    +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@next/swc-linux-arm64-musl@14.1.4':
    +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@next/swc-linux-x64-gnu@14.1.4':
    +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@next/swc-linux-x64-musl@14.1.4':
    +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@next/swc-win32-arm64-msvc@14.1.4':
    +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  '@next/swc-win32-ia32-msvc@14.1.4':
    +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    +    engines: {node: '>= 10'}
    +    cpu: [ia32]
    +    os: [win32]
    +
    +  '@next/swc-win32-x64-msvc@14.1.4':
    +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  '@nodelib/fs.scandir@2.1.5':
    +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    +    engines: {node: '>= 8'}
    +
    +  '@nodelib/fs.stat@2.0.5':
    +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    +    engines: {node: '>= 8'}
    +
    +  '@nodelib/fs.walk@1.2.8':
    +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    +    engines: {node: '>= 8'}
    +
    +  '@npmcli/arborist@4.3.1':
    +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
    +
    +  '@npmcli/fs@1.1.1':
    +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    +
    +  '@npmcli/fs@2.1.2':
    +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  '@npmcli/fs@3.1.0':
    +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/git@2.1.0':
    +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    +
    +  '@npmcli/git@4.1.0':
    +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/installed-package-contents@1.0.7':
    +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    +    engines: {node: '>= 10'}
    +    hasBin: true
    +
    +  '@npmcli/installed-package-contents@2.0.2':
    +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  '@npmcli/map-workspaces@2.0.4':
    +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  '@npmcli/metavuln-calculator@2.0.0':
    +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +
    +  '@npmcli/move-file@1.1.2':
    +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    +    engines: {node: '>=10'}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  '@npmcli/move-file@2.0.1':
    +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  '@npmcli/name-from-folder@1.0.1':
    +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    +
    +  '@npmcli/node-gyp@1.0.3':
    +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    +
    +  '@npmcli/node-gyp@3.0.0':
    +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/package-json@1.0.1':
    +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    +
    +  '@npmcli/promise-spawn@1.3.2':
    +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    +
    +  '@npmcli/promise-spawn@6.0.2':
    +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/run-script@2.0.0':
    +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    +
    +  '@npmcli/run-script@6.0.2':
    +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@octokit/auth-token@2.5.0':
    +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    +
    +  '@octokit/core@3.6.0':
    +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    +
    +  '@octokit/endpoint@6.0.12':
    +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    +
    +  '@octokit/graphql@4.8.0':
    +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    +
    +  '@octokit/openapi-types@12.11.0':
    +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    +
    +  '@octokit/plugin-paginate-rest@2.21.3':
    +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    +    peerDependencies:
    +      '@octokit/core': '>=2'
    +
    +  '@octokit/plugin-request-log@1.0.4':
    +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
    +
    +  '@octokit/plugin-rest-endpoint-methods@5.16.2':
    +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
    +
    +  '@octokit/request-error@2.1.0':
    +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    +
    +  '@octokit/request@5.6.3':
    +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    +
    +  '@octokit/rest@18.12.0':
    +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    +
    +  '@octokit/types@6.41.0':
    +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    +
    +  '@pkgjs/parseargs@0.11.0':
    +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    +    engines: {node: '>=14'}
    +
    +  '@pnpm/cli-meta@5.0.1':
    +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/cli-utils@2.0.9':
    +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/config.env-replace@1.1.0':
    +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/config@18.4.0':
    +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@6.2.0':
    +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    +    engines: {node: '>=14.6'}
    +
    +  '@pnpm/constants@7.1.0':
    +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@7.1.1':
    +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@8.0.0':
    +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/core-loggers@10.0.0':
    +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/core-loggers@9.0.1':
    +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/crypto.base32-hash@3.0.0':
    +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/dedupe.issues-renderer@1.0.0':
    +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/dedupe.types@1.0.0':
    +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/default-reporter@12.2.3':
    +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/dependency-path@3.0.0':
    +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/error@4.0.1':
    +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    +    engines: {node: '>=14.6'}
    +
    +  '@pnpm/error@5.0.1':
    +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/error@5.0.3':
    +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/error@6.0.0':
    +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/fetch@8.0.0':
    +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/fetcher-base@14.0.1':
    +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/fetching-types@6.0.0':
    +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/find-workspace-dir@6.0.3':
    +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/find-workspace-packages@6.0.9':
    +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/fs.find-packages@2.0.1':
    +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/git-resolver@9.0.1':
    +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/git-utils@1.0.0':
    +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/git-utils@2.0.0':
    +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/graceful-fs@3.0.0':
    +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/hooks.types@1.0.1':
    +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/hosted-git-info@1.0.0':
    +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    +    engines: {node: '>=10'}
    +
    +  '@pnpm/lockfile-file@9.0.2':
    +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/lockfile-types@5.1.0':
    +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/lockfile-types@6.0.0':
    +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/lockfile-utils@10.0.0':
    +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/logger@5.0.0':
    +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    +    engines: {node: '>=12.17'}
    +
    +  '@pnpm/manifest-utils@5.0.1':
    +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/matcher@5.0.0':
    +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/merge-lockfile-changes@6.0.0':
    +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/meta-updater@1.0.0':
    +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    +    engines: {node: '>=10.12'}
    +    hasBin: true
    +
    +  '@pnpm/network.agent@1.0.1':
    +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.ca-file@1.0.2':
    +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.config@1.0.1':
    +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.proxy-agent@1.0.1':
    +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/node-fetch@1.0.0':
    +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    +    engines: {node: ^10.17 || >=12.3}
    +
    +  '@pnpm/npm-conf@2.2.0':
    +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    +    engines: {node: '>=12'}
    +
    +  '@pnpm/npm-conf@2.2.2':
    +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    +    engines: {node: '>=12'}
    +
    +  '@pnpm/package-is-installable@8.0.2':
    +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/pick-fetcher@3.0.0':
    +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/pnpmfile@5.0.7':
    +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/ramda@0.28.1':
    +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    +
    +  '@pnpm/read-project-manifest@5.0.1':
    +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/render-peer-issues@4.0.1':
    +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/resolver-base@10.0.1':
    +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/resolver-base@12.0.0':
    +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/store-controller-types@15.0.1':
    +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/text.comments-parser@2.0.0':
    +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/types@10.0.0':
    +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/types@9.1.0':
    +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/types@9.4.2':
    +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/util.lex-comparator@1.0.0':
    +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/util.lex-comparator@3.0.0':
    +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/write-project-manifest@5.0.1':
    +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@polka/url@1.0.0-next.25':
    +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    +
    +  '@rushstack/eslint-patch@1.8.0':
    +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    +
    +  '@sideway/address@4.1.5':
    +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    +
    +  '@sideway/formula@3.0.1':
    +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    +
    +  '@sideway/pinpoint@2.0.0':
    +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    +
    +  '@sigstore/bundle@1.1.0':
    +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/protobuf-specs@0.2.1':
    +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/sign@1.0.0':
    +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/tuf@1.0.3':
    +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sinclair/typebox@0.27.8':
    +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    +
    +  '@sindresorhus/is@4.6.0':
    +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    +    engines: {node: '>=10'}
    +
    +  '@sindresorhus/is@5.6.0':
    +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    +    engines: {node: '>=14.16'}
    +
    +  '@sinonjs/commons@2.0.0':
    +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    +
    +  '@sinonjs/commons@3.0.1':
    +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    +
    +  '@sinonjs/fake-timers@10.3.0':
    +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    +
    +  '@sinonjs/fake-timers@11.2.2':
    +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    +
    +  '@sinonjs/samsam@8.0.0':
    +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    +
    +  '@sinonjs/text-encoding@0.7.2':
    +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    +
    +  '@slorber/remark-comment@1.0.0':
    +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    +
    +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
    +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
    +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
    +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
    +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
    +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
    +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
    +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
    +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
    +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
    +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
    +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
    +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-svg-component@6.5.1':
    +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-svg-component@8.0.0':
    +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-preset@6.5.1':
    +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-preset@8.1.0':
    +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/core@6.5.1':
    +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/core@8.1.0':
    +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/hast-util-to-babel-ast@6.5.1':
    +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/hast-util-to-babel-ast@8.0.0':
    +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/plugin-jsx@6.5.1':
    +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': ^6.0.0
    +
    +  '@svgr/plugin-jsx@8.1.0':
    +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/plugin-svgo@6.5.1':
    +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/plugin-svgo@8.1.0':
    +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/webpack@6.5.1':
    +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/webpack@8.1.0':
    +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    +    engines: {node: '>=14'}
    +
    +  '@swc/helpers@0.5.2':
    +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    +
    +  '@szmarczak/http-timer@5.0.1':
    +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    +    engines: {node: '>=14.16'}
    +
    +  '@testing-library/dom@9.3.4':
    +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    +    engines: {node: '>=14'}
    +
    +  '@testing-library/react@14.2.2':
    +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@tootallnate/once@1.1.2':
    +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    +    engines: {node: '>= 6'}
    +
    +  '@tootallnate/once@2.0.0':
    +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    +    engines: {node: '>= 10'}
    +
    +  '@trysound/sax@0.2.0':
    +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    +    engines: {node: '>=10.13.0'}
    +
    +  '@tsconfig/docusaurus@2.0.2':
    +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    +
    +  '@tsconfig/node10@1.0.10':
    +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    +
    +  '@tsconfig/node12@1.0.11':
    +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    +
    +  '@tsconfig/node14@1.0.3':
    +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    +
    +  '@tsconfig/node16@1.0.4':
    +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    +
    +  '@tufjs/canonical-json@1.0.0':
    +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@tufjs/models@1.0.4':
    +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@types/acorn@4.0.6':
    +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    +
    +  '@types/aria-query@5.0.4':
    +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    +
    +  '@types/babel__core@7.20.5':
    +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    +
    +  '@types/babel__generator@7.6.8':
    +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    +
    +  '@types/babel__template@7.4.4':
    +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    +
    +  '@types/babel__traverse@7.20.5':
    +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    +
    +  '@types/body-parser@1.19.5':
    +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    +
    +  '@types/bonjour@3.5.13':
    +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    +
    +  '@types/chai@4.3.14':
    +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    +
    +  '@types/connect-history-api-fallback@1.5.4':
    +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    +
    +  '@types/connect@3.4.38':
    +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    +
    +  '@types/debug@4.1.12':
    +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    +
    +  '@types/eslint-scope@3.7.7':
    +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    +
    +  '@types/eslint@8.56.6':
    +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    +
    +  '@types/estree-jsx@1.0.5':
    +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    +
    +  '@types/estree@1.0.5':
    +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    +
    +  '@types/expect@1.20.4':
    +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    +
    +  '@types/express-serve-static-core@4.17.43':
    +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    +
    +  '@types/express@4.17.21':
    +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    +
    +  '@types/fs-extra@11.0.4':
    +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    +
    +  '@types/glob@8.1.0':
    +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    +
    +  '@types/graceful-fs@4.1.9':
    +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    +
    +  '@types/gtag.js@0.0.12':
    +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    +
    +  '@types/hast@3.0.4':
    +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    +
    +  '@types/history@4.7.11':
    +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    +
    +  '@types/html-minifier-terser@6.1.0':
    +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    +
    +  '@types/http-cache-semantics@4.0.4':
    +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    +
    +  '@types/http-errors@2.0.4':
    +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    +
    +  '@types/http-proxy@1.17.14':
    +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    +
    +  '@types/istanbul-lib-coverage@2.0.6':
    +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    +
    +  '@types/istanbul-lib-report@3.0.3':
    +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    +
    +  '@types/istanbul-reports@3.0.4':
    +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    +
    +  '@types/jest@29.5.12':
    +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    +
    +  '@types/js-cookie@2.2.7':
    +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    +
    +  '@types/js-yaml@4.0.9':
    +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    +
    +  '@types/jsdom@20.0.1':
    +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    +
    +  '@types/json-schema@7.0.15':
    +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    +
    +  '@types/json5@0.0.29':
    +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    +
    +  '@types/jsonfile@6.1.4':
    +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    +
    +  '@types/lodash@4.17.0':
    +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    +
    +  '@types/mdast@4.0.3':
    +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    +
    +  '@types/mdx-js__react@1.5.8':
    +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    +
    +  '@types/mdx@2.0.12':
    +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    +
    +  '@types/mime@1.3.5':
    +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    +
    +  '@types/mime@3.0.4':
    +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    +
    +  '@types/minimatch@3.0.5':
    +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    +
    +  '@types/minimatch@5.1.2':
    +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    +
    +  '@types/minimist@1.2.5':
    +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    +
    +  '@types/mocha@10.0.6':
    +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    +
    +  '@types/moo@0.5.9':
    +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    +
    +  '@types/ms@0.7.34':
    +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    +
    +  '@types/nearley@2.11.5':
    +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    +
    +  '@types/node-forge@1.3.11':
    +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    +
    +  '@types/node@15.14.9':
    +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    +
    +  '@types/node@17.0.45':
    +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    +
    +  '@types/node@18.18.2':
    +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    +
    +  '@types/normalize-package-data@2.4.4':
    +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    +
    +  '@types/normalize-path@3.0.2':
    +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    +
    +  '@types/parse-json@4.0.2':
    +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    +
    +  '@types/prismjs@1.26.3':
    +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    +
    +  '@types/prop-types@15.7.12':
    +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    +
    +  '@types/qs@6.9.14':
    +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    +
    +  '@types/range-parser@1.2.7':
    +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    +
    +  '@types/react-dom@18.2.22':
    +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    +
    +  '@types/react-helmet@6.1.11':
    +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    +
    +  '@types/react-router-config@5.0.11':
    +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    +
    +  '@types/react-router-dom@5.3.3':
    +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    +
    +  '@types/react-router@5.1.20':
    +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    +
    +  '@types/react@18.2.71':
    +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    +
    +  '@types/retry@0.12.0':
    +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    +
    +  '@types/retry@0.12.2':
    +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    +
    +  '@types/sax@1.2.7':
    +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    +
    +  '@types/sbd@1.0.5':
    +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    +
    +  '@types/scheduler@0.23.0':
    +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    +
    +  '@types/semver@7.5.8':
    +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    +
    +  '@types/send@0.17.4':
    +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    +
    +  '@types/serve-index@1.9.4':
    +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    +
    +  '@types/serve-static@1.15.5':
    +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    +
    +  '@types/sinon@17.0.3':
    +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    +
    +  '@types/sinonjs__fake-timers@8.1.5':
    +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    +
    +  '@types/sockjs@0.3.36':
    +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    +
    +  '@types/ssri@7.1.5':
    +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    +
    +  '@types/stack-utils@2.0.3':
    +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    +
    +  '@types/tinycolor2@1.4.6':
    +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    +
    +  '@types/tough-cookie@4.0.5':
    +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    +
    +  '@types/triple-beam@1.3.5':
    +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    +
    +  '@types/unist@2.0.10':
    +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    +
    +  '@types/unist@3.0.2':
    +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    +
    +  '@types/uuid@9.0.8':
    +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    +
    +  '@types/vinyl@2.0.11':
    +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    +
    +  '@types/vscode@1.75.1':
    +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    +
    +  '@types/webpack@5.28.5':
    +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    +
    +  '@types/ws@8.5.10':
    +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    +
    +  '@types/yargs-parser@21.0.3':
    +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    +
    +  '@types/yargs@17.0.32':
    +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    +
    +  '@typescript-eslint/eslint-plugin@7.4.0':
    +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^7.0.0
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/parser@6.21.0':
    +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      eslint: ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/parser@7.4.0':
    +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/scope-manager@6.21.0':
    +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/scope-manager@7.4.0':
    +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@typescript-eslint/type-utils@7.4.0':
    +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/types@6.21.0':
    +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/types@7.4.0':
    +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@typescript-eslint/typescript-estree@6.21.0':
    +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/typescript-estree@7.4.0':
    +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/utils@7.4.0':
    +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +
    +  '@typescript-eslint/visitor-keys@6.21.0':
    +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/visitor-keys@7.4.0':
    +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@ungap/structured-clone@1.2.0':
    +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    +
    +  '@vscode/test-electron@2.3.9':
    +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    +    engines: {node: '>=16'}
    +
    +  '@webassemblyjs/ast@1.12.1':
    +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    +
    +  '@webassemblyjs/floating-point-hex-parser@1.11.6':
    +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    +
    +  '@webassemblyjs/helper-api-error@1.11.6':
    +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    +
    +  '@webassemblyjs/helper-buffer@1.12.1':
    +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    +
    +  '@webassemblyjs/helper-numbers@1.11.6':
    +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    +
    +  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
    +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    +
    +  '@webassemblyjs/helper-wasm-section@1.12.1':
    +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    +
    +  '@webassemblyjs/ieee754@1.11.6':
    +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    +
    +  '@webassemblyjs/leb128@1.11.6':
    +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    +
    +  '@webassemblyjs/utf8@1.11.6':
    +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    +
    +  '@webassemblyjs/wasm-edit@1.12.1':
    +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    +
    +  '@webassemblyjs/wasm-gen@1.12.1':
    +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    +
    +  '@webassemblyjs/wasm-opt@1.12.1':
    +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    +
    +  '@webassemblyjs/wasm-parser@1.12.1':
    +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    +
    +  '@webassemblyjs/wast-printer@1.12.1':
    +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    +
    +  '@webpack-cli/configtest@2.1.1':
    +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +
    +  '@webpack-cli/generators@3.0.7':
    +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      prettier: '*'
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +    peerDependenciesMeta:
    +      prettier:
    +        optional: true
    +
    +  '@webpack-cli/info@2.0.2':
    +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +
    +  '@webpack-cli/serve@2.0.5':
    +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      webpack-dev-server:
    +        optional: true
    +
    +  '@xobotyi/scrollbar-width@1.9.5':
    +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    +
    +  '@xtuc/ieee754@1.2.0':
    +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    +
    +  '@xtuc/long@4.2.2':
    +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    +
    +  '@zkochan/js-yaml@0.0.7':
    +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    +    hasBin: true
    +
    +  '@zkochan/retry@0.2.0':
    +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    +    engines: {node: '>=10'}
    +
    +  '@zkochan/rimraf@2.1.3':
    +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    +    engines: {node: '>=12.10'}
    +
    +  '@zkochan/which@2.0.3':
    +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
    +
    +  abab@2.0.6:
    +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    +    deprecated: Use your platform's native atob() and btoa() methods instead
    +
    +  abbrev@1.1.1:
    +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    +
    +  abort-controller@3.0.0:
    +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    +    engines: {node: '>=6.5'}
    +
    +  accepts@1.3.8:
    +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    +    engines: {node: '>= 0.6'}
    +
    +  acorn-globals@7.0.1:
    +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    +
    +  acorn-import-assertions@1.9.0:
    +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    +    peerDependencies:
    +      acorn: ^8
    +
    +  acorn-jsx@5.3.2:
    +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    +    peerDependencies:
    +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    +
    +  acorn-walk@8.3.2:
    +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    +    engines: {node: '>=0.4.0'}
    +
    +  acorn@8.11.3:
    +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    +    engines: {node: '>=0.4.0'}
    +    hasBin: true
    +
    +  address@1.2.2:
    +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    +    engines: {node: '>= 10.0.0'}
    +
    +  agent-base@6.0.2:
    +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    +    engines: {node: '>= 6.0.0'}
    +
    +  agentkeepalive@4.2.1:
    +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  agentkeepalive@4.5.0:
    +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  aggregate-error@3.1.0:
    +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    +    engines: {node: '>=8'}
    +
    +  ajv-formats@2.1.1:
    +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    +    peerDependencies:
    +      ajv: ^8.0.0
    +    peerDependenciesMeta:
    +      ajv:
    +        optional: true
    +
    +  ajv-keywords@3.5.2:
    +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    +    peerDependencies:
    +      ajv: ^6.9.1
    +
    +  ajv-keywords@5.1.0:
    +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    +    peerDependencies:
    +      ajv: ^8.8.2
    +
    +  ajv@6.12.6:
    +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    +
    +  ajv@8.12.0:
    +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    +
    +  algoliasearch-helper@3.16.3:
    +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    +    peerDependencies:
    +      algoliasearch: '>= 3.1 < 6'
    +
    +  algoliasearch@4.22.1:
    +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    +
    +  ansi-align@3.0.1:
    +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    +
    +  ansi-colors@4.1.1:
    +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    +    engines: {node: '>=6'}
    +
    +  ansi-colors@4.1.3:
    +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    +    engines: {node: '>=6'}
    +
    +  ansi-diff@1.1.1:
    +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    +
    +  ansi-escapes@4.3.2:
    +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    +    engines: {node: '>=8'}
    +
    +  ansi-html-community@0.0.8:
    +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    +    engines: {'0': node >= 0.8.0}
    +    hasBin: true
    +
    +  ansi-regex@3.0.1:
    +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    +    engines: {node: '>=4'}
    +
    +  ansi-regex@5.0.1:
    +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    +    engines: {node: '>=8'}
    +
    +  ansi-regex@6.0.1:
    +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    +    engines: {node: '>=12'}
    +
    +  ansi-split@1.0.1:
    +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    +
    +  ansi-styles@3.2.1:
    +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    +    engines: {node: '>=4'}
    +
    +  ansi-styles@4.3.0:
    +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    +    engines: {node: '>=8'}
    +
    +  ansi-styles@5.2.0:
    +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    +    engines: {node: '>=10'}
    +
    +  ansi-styles@6.2.1:
    +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    +    engines: {node: '>=12'}
    +
    +  any-promise@1.3.0:
    +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    +
    +  anymatch@3.1.3:
    +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    +    engines: {node: '>= 8'}
    +
    +  aproba@2.0.0:
    +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    +
    +  archy@1.0.0:
    +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    +
    +  are-we-there-yet@2.0.0:
    +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    +    engines: {node: '>=10'}
    +
    +  are-we-there-yet@3.0.1:
    +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  arg@4.1.3:
    +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    +
    +  arg@5.0.2:
    +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +
    +  argparse@1.0.10:
    +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    +
    +  argparse@2.0.1:
    +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    +
    +  aria-query@5.1.3:
    +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    +
    +  aria-query@5.3.0:
    +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    +
    +  array-buffer-byte-length@1.0.1:
    +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    +    engines: {node: '>= 0.4'}
    +
    +  array-differ@3.0.0:
    +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    +    engines: {node: '>=8'}
    +
    +  array-flatten@1.1.1:
    +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    +
    +  array-includes@3.1.8:
    +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array-union@2.1.0:
    +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    +    engines: {node: '>=8'}
    +
    +  array.prototype.findlast@1.2.5:
    +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.findlastindex@1.2.5:
    +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.flat@1.3.2:
    +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.flatmap@1.3.2:
    +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.toreversed@1.1.2:
    +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    +
    +  array.prototype.tosorted@1.1.3:
    +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    +
    +  arraybuffer.prototype.slice@1.0.3:
    +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    +    engines: {node: '>= 0.4'}
    +
    +  arrify@1.0.1:
    +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  arrify@2.0.1:
    +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    +    engines: {node: '>=8'}
    +
    +  as-table@1.0.55:
    +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    +
    +  asap@2.0.6:
    +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    +
    +  assertion-error@2.0.1:
    +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    +    engines: {node: '>=12'}
    +
    +  ast-types-flow@0.0.8:
    +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    +
    +  astring@1.8.6:
    +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    +    hasBin: true
    +
    +  async@2.6.4:
    +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    +
    +  async@3.2.5:
    +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    +
    +  asynckit@0.4.0:
    +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    +
    +  at-least-node@1.0.0:
    +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  autoprefixer@10.4.19:
    +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    hasBin: true
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  available-typed-arrays@1.0.7:
    +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  axe-core@4.7.0:
    +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    +    engines: {node: '>=4'}
    +
    +  axobject-query@3.2.1:
    +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    +
    +  babel-jest@29.7.0:
    +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.8.0
    +
    +  babel-loader@9.1.3:
    +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +      webpack: '>=5'
    +
    +  babel-plugin-dynamic-import-node@2.3.3:
    +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    +
    +  babel-plugin-istanbul@6.1.1:
    +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    +    engines: {node: '>=8'}
    +
    +  babel-plugin-jest-hoist@29.6.3:
    +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  babel-plugin-polyfill-corejs2@0.4.10:
    +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-plugin-polyfill-corejs3@0.10.4:
    +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-plugin-polyfill-regenerator@0.6.1:
    +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-preset-current-node-syntax@1.0.1:
    +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  babel-preset-jest@29.6.3:
    +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  bail@2.0.2:
    +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    +
    +  balanced-match@1.0.2:
    +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +
    +  base64-js@1.5.1:
    +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    +
    +  basic-auth@2.0.1:
    +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    +    engines: {node: '>= 0.8'}
    +
    +  batch@0.6.1:
    +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    +
    +  before-after-hook@2.2.3:
    +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    +
    +  better-path-resolve@1.0.0:
    +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    +    engines: {node: '>=4'}
    +
    +  big.js@5.2.2:
    +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    +
    +  bin-links@3.0.3:
    +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  binary-extensions@2.3.0:
    +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    +    engines: {node: '>=8'}
    +
    +  binaryextensions@4.19.0:
    +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    +    engines: {node: '>=0.8'}
    +
    +  bl@4.1.0:
    +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    +
    +  body-parser@1.20.2:
    +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +
    +  bole@5.0.11:
    +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    +
    +  bonjour-service@1.2.1:
    +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    +
    +  boolbase@1.0.0:
    +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    +
    +  boxen@5.1.2:
    +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    +    engines: {node: '>=10'}
    +
    +  boxen@6.2.1:
    +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  boxen@7.1.1:
    +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    +    engines: {node: '>=14.16'}
    +
    +  brace-expansion@1.1.11:
    +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    +
    +  brace-expansion@2.0.1:
    +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    +
    +  braces@3.0.2:
    +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    +    engines: {node: '>=8'}
    +
    +  browser-stdout@1.3.1:
    +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    +
    +  browserslist@4.23.0:
    +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    +    hasBin: true
    +
    +  bs-logger@0.2.6:
    +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    +    engines: {node: '>= 6'}
    +
    +  bser@2.1.1:
    +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    +
    +  buffer-from@1.1.2:
    +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    +
    +  buffer@5.7.1:
    +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    +
    +  buffer@6.0.3:
    +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    +
    +  builtin-modules@3.3.0:
    +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    +    engines: {node: '>=6'}
    +
    +  builtins@1.0.3:
    +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    +
    +  builtins@5.0.1:
    +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    +
    +  bundle-name@4.1.0:
    +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    +    engines: {node: '>=18'}
    +
    +  busboy@1.6.0:
    +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    +    engines: {node: '>=10.16.0'}
    +
    +  bytes@3.0.0:
    +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    +    engines: {node: '>= 0.8'}
    +
    +  bytes@3.1.2:
    +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    +    engines: {node: '>= 0.8'}
    +
    +  cacache@15.3.0:
    +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    +    engines: {node: '>= 10'}
    +
    +  cacache@16.1.3:
    +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  cacache@17.1.4:
    +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  cacheable-lookup@7.0.0:
    +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    +    engines: {node: '>=14.16'}
    +
    +  cacheable-request@10.2.14:
    +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    +    engines: {node: '>=14.16'}
    +
    +  call-bind@1.0.7:
    +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    +    engines: {node: '>= 0.4'}
    +
    +  callsites@3.1.0:
    +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    +    engines: {node: '>=6'}
    +
    +  camel-case@4.1.2:
    +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    +
    +  camelcase-css@2.0.1:
    +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    +    engines: {node: '>= 6'}
    +
    +  camelcase-keys@6.2.2:
    +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    +    engines: {node: '>=8'}
    +
    +  camelcase-keys@7.0.2:
    +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    +    engines: {node: '>=12'}
    +
    +  camelcase@5.3.1:
    +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    +    engines: {node: '>=6'}
    +
    +  camelcase@6.3.0:
    +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    +    engines: {node: '>=10'}
    +
    +  camelcase@7.0.1:
    +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    +    engines: {node: '>=14.16'}
    +
    +  can-write-to-dir@1.1.1:
    +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    +    engines: {node: '>=10.13'}
    +
    +  caniuse-api@3.0.0:
    +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    +
    +  caniuse-lite@1.0.30001600:
    +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    +
    +  ccount@2.0.1:
    +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    +
    +  chai@5.1.0:
    +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    +    engines: {node: '>=12'}
    +
    +  chalk@2.4.2:
    +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    +    engines: {node: '>=4'}
    +
    +  chalk@4.1.2:
    +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    +    engines: {node: '>=10'}
    +
    +  chalk@5.3.0:
    +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    +
    +  char-regex@1.0.2:
    +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    +    engines: {node: '>=10'}
    +
    +  character-entities-html4@2.1.0:
    +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    +
    +  character-entities-legacy@3.0.0:
    +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    +
    +  character-entities@2.0.2:
    +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    +
    +  character-reference-invalid@2.0.1:
    +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    +
    +  chardet@0.7.0:
    +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    +
    +  check-error@2.0.0:
    +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    +    engines: {node: '>= 16'}
    +
    +  cheerio-select@2.1.0:
    +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    +
    +  cheerio@1.0.0-rc.12:
    +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    +    engines: {node: '>= 6'}
    +
    +  chokidar@3.5.3:
    +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    +    engines: {node: '>= 8.10.0'}
    +
    +  chokidar@3.6.0:
    +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    +    engines: {node: '>= 8.10.0'}
    +
    +  chownr@2.0.0:
    +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    +    engines: {node: '>=10'}
    +
    +  chrome-trace-event@1.0.3:
    +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    +    engines: {node: '>=6.0'}
    +
    +  ci-info@3.9.0:
    +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    +    engines: {node: '>=8'}
    +
    +  ci-info@4.0.0:
    +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    +    engines: {node: '>=8'}
    +
    +  cjs-module-lexer@1.2.3:
    +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    +
    +  clean-css@5.3.3:
    +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    +    engines: {node: '>= 10.0'}
    +
    +  clean-regexp@1.0.0:
    +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    +    engines: {node: '>=4'}
    +
    +  clean-stack@2.2.0:
    +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    +    engines: {node: '>=6'}
    +
    +  cli-boxes@2.2.1:
    +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    +    engines: {node: '>=6'}
    +
    +  cli-boxes@3.0.0:
    +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    +    engines: {node: '>=10'}
    +
    +  cli-columns@4.0.0:
    +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    +    engines: {node: '>= 10'}
    +
    +  cli-cursor@3.1.0:
    +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    +    engines: {node: '>=8'}
    +
    +  cli-spinners@2.9.2:
    +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    +    engines: {node: '>=6'}
    +
    +  cli-table3@0.6.4:
    +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    +    engines: {node: 10.* || >= 12.*}
    +
    +  cli-table@0.3.11:
    +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    +    engines: {node: '>= 0.2.0'}
    +
    +  cli-width@3.0.0:
    +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    +    engines: {node: '>= 10'}
    +
    +  client-only@0.0.1:
    +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    +
    +  cliui@7.0.4:
    +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    +
    +  cliui@8.0.1:
    +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    +    engines: {node: '>=12'}
    +
    +  clone-buffer@1.0.0:
    +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    +    engines: {node: '>= 0.10'}
    +
    +  clone-deep@4.0.1:
    +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    +    engines: {node: '>=6'}
    +
    +  clone-stats@1.0.0:
    +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    +
    +  clone@1.0.4:
    +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    +    engines: {node: '>=0.8'}
    +
    +  clone@2.1.2:
    +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    +    engines: {node: '>=0.8'}
    +
    +  cloneable-readable@1.1.3:
    +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    +
    +  clsx@2.1.0:
    +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    +    engines: {node: '>=6'}
    +
    +  cmd-shim@5.0.0:
    +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  co@4.6.0:
    +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    +
    +  collapse-white-space@2.1.0:
    +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    +
    +  collect-v8-coverage@1.0.2:
    +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    +
    +  color-convert@1.9.3:
    +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    +
    +  color-convert@2.0.1:
    +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    +    engines: {node: '>=7.0.0'}
    +
    +  color-name@1.1.3:
    +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +
    +  color-name@1.1.4:
    +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +
    +  color-string@1.9.1:
    +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    +
    +  color-support@1.1.3:
    +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    +    hasBin: true
    +
    +  color@3.2.1:
    +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    +
    +  colord@2.9.3:
    +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    +
    +  colorette@2.0.20:
    +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    +
    +  colors@1.0.3:
    +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    +    engines: {node: '>=0.1.90'}
    +
    +  colorspace@1.1.4:
    +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    +
    +  combine-promises@1.2.0:
    +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    +    engines: {node: '>=10'}
    +
    +  combined-stream@1.0.8:
    +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    +    engines: {node: '>= 0.8'}
    +
    +  comma-separated-tokens@2.0.3:
    +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    +
    +  commander@10.0.1:
    +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    +    engines: {node: '>=14'}
    +
    +  commander@11.1.0:
    +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    +    engines: {node: '>=16'}
    +
    +  commander@2.20.3:
    +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    +
    +  commander@4.1.1:
    +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    +    engines: {node: '>= 6'}
    +
    +  commander@5.1.0:
    +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    +    engines: {node: '>= 6'}
    +
    +  commander@7.1.0:
    +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    +    engines: {node: '>= 10'}
    +
    +  commander@7.2.0:
    +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    +    engines: {node: '>= 10'}
    +
    +  commander@8.3.0:
    +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    +    engines: {node: '>= 12'}
    +
    +  common-ancestor-path@1.0.1:
    +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    +
    +  common-path-prefix@3.0.0:
    +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    +
    +  commondir@1.0.1:
    +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    +
    +  compressible@2.0.18:
    +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    +    engines: {node: '>= 0.6'}
    +
    +  compression@1.7.4:
    +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  comver-to-semver@1.0.0:
    +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    +    engines: {node: '>=12.17'}
    +
    +  concat-map@0.0.1:
    +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +
    +  config-chain@1.1.13:
    +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    +
    +  configstore@6.0.0:
    +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    +    engines: {node: '>=12'}
    +
    +  connect-history-api-fallback@2.0.0:
    +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    +    engines: {node: '>=0.8'}
    +
    +  consola@2.15.3:
    +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    +
    +  console-control-strings@1.1.0:
    +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    +
    +  content-disposition@0.5.2:
    +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    +    engines: {node: '>= 0.6'}
    +
    +  content-disposition@0.5.4:
    +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  content-type@1.0.5:
    +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    +    engines: {node: '>= 0.6'}
    +
    +  convert-source-map@2.0.0:
    +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    +
    +  cookie-signature@1.0.6:
    +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    +
    +  cookie@0.6.0:
    +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    +    engines: {node: '>= 0.6'}
    +
    +  copy-text-to-clipboard@3.2.0:
    +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    +    engines: {node: '>=12'}
    +
    +  copy-to-clipboard@3.3.3:
    +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    +
    +  copy-webpack-plugin@11.0.0:
    +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      webpack: ^5.1.0
    +
    +  core-js-compat@3.36.1:
    +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    +
    +  core-js-pure@3.36.1:
    +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    +
    +  core-js@3.36.1:
    +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    +
    +  core-util-is@1.0.3:
    +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    +
    +  corser@2.0.1:
    +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  cosmiconfig@6.0.0:
    +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    +    engines: {node: '>=8'}
    +
    +  cosmiconfig@7.1.0:
    +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    +    engines: {node: '>=10'}
    +
    +  cosmiconfig@8.3.6:
    +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  cosmiconfig@9.0.0:
    +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  create-jest@29.7.0:
    +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +
    +  create-require@1.1.1:
    +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    +
    +  cross-spawn@7.0.3:
    +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    +    engines: {node: '>= 8'}
    +
    +  crypto-random-string@2.0.0:
    +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    +    engines: {node: '>=8'}
    +
    +  crypto-random-string@4.0.0:
    +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    +    engines: {node: '>=12'}
    +
    +  css-declaration-sorter@6.4.1:
    +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    peerDependencies:
    +      postcss: ^8.0.9
    +
    +  css-in-js-utils@3.1.0:
    +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    +
    +  css-loader@6.10.0:
    +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  css-minimizer-webpack-plugin@4.2.2:
    +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@parcel/css': '*'
    +      '@swc/css': '*'
    +      clean-css: '*'
    +      csso: '*'
    +      esbuild: '*'
    +      lightningcss: '*'
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@parcel/css':
    +        optional: true
    +      '@swc/css':
    +        optional: true
    +      clean-css:
    +        optional: true
    +      csso:
    +        optional: true
    +      esbuild:
    +        optional: true
    +      lightningcss:
    +        optional: true
    +
    +  css-select@4.3.0:
    +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    +
    +  css-select@5.1.0:
    +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    +
    +  css-tree@1.1.3:
    +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  css-tree@2.2.1:
    +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +
    +  css-tree@2.3.1:
    +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    +
    +  css-what@6.1.0:
    +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    +    engines: {node: '>= 6'}
    +
    +  cssesc@3.0.0:
    +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  cssnano-preset-advanced@5.3.10:
    +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano-preset-default@5.2.14:
    +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano-utils@3.1.0:
    +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano@5.1.15:
    +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  csso@4.2.0:
    +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    +    engines: {node: '>=8.0.0'}
    +
    +  csso@5.0.5:
    +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +
    +  cssom@0.3.8:
    +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    +
    +  cssom@0.5.0:
    +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    +
    +  cssstyle@2.3.0:
    +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    +    engines: {node: '>=8'}
    +
    +  csstype@3.1.3:
    +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    +
    +  damerau-levenshtein@1.0.8:
    +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    +
    +  dargs@7.0.0:
    +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    +    engines: {node: '>=8'}
    +
    +  data-uri-to-buffer@2.0.2:
    +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    +
    +  data-uri-to-buffer@3.0.1:
    +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    +    engines: {node: '>= 6'}
    +
    +  data-urls@3.0.2:
    +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    +    engines: {node: '>=12'}
    +
    +  data-view-buffer@1.0.1:
    +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    +    engines: {node: '>= 0.4'}
    +
    +  data-view-byte-length@1.0.1:
    +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  data-view-byte-offset@1.0.0:
    +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    +    engines: {node: '>= 0.4'}
    +
    +  dateformat@4.6.3:
    +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    +
    +  debounce@1.2.1:
    +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    +
    +  debug@2.6.9:
    +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debug@3.2.7:
    +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debug@4.3.4:
    +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    +    engines: {node: '>=6.0'}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debuglog@1.0.1:
    +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    +
    +  decamelize-keys@1.1.1:
    +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  decamelize@1.2.0:
    +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  decamelize@4.0.0:
    +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    +    engines: {node: '>=10'}
    +
    +  decamelize@5.0.1:
    +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    +    engines: {node: '>=10'}
    +
    +  decimal.js@10.4.3:
    +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    +
    +  decode-named-character-reference@1.0.2:
    +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    +
    +  decompress-response@6.0.0:
    +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    +    engines: {node: '>=10'}
    +
    +  dedent@1.5.1:
    +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    +    peerDependencies:
    +      babel-plugin-macros: ^3.1.0
    +    peerDependenciesMeta:
    +      babel-plugin-macros:
    +        optional: true
    +
    +  deep-eql@5.0.1:
    +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    +    engines: {node: '>=6'}
    +
    +  deep-equal@2.2.3:
    +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    +    engines: {node: '>= 0.4'}
    +
    +  deep-extend@0.6.0:
    +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    +    engines: {node: '>=4.0.0'}
    +
    +  deep-is@0.1.4:
    +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    +
    +  deepmerge@4.3.1:
    +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    +    engines: {node: '>=0.10.0'}
    +
    +  default-browser-id@5.0.0:
    +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    +    engines: {node: '>=18'}
    +
    +  default-browser@5.2.1:
    +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    +    engines: {node: '>=18'}
    +
    +  default-gateway@6.0.3:
    +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    +    engines: {node: '>= 10'}
    +
    +  defaults@1.0.4:
    +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    +
    +  defer-to-connect@2.0.1:
    +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    +    engines: {node: '>=10'}
    +
    +  define-data-property@1.1.4:
    +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    +    engines: {node: '>= 0.4'}
    +
    +  define-lazy-prop@2.0.0:
    +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    +    engines: {node: '>=8'}
    +
    +  define-lazy-prop@3.0.0:
    +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    +    engines: {node: '>=12'}
    +
    +  define-properties@1.2.1:
    +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    +    engines: {node: '>= 0.4'}
    +
    +  del@6.1.1:
    +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    +    engines: {node: '>=10'}
    +
    +  delayed-stream@1.0.0:
    +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    +    engines: {node: '>=0.4.0'}
    +
    +  delegates@1.0.0:
    +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    +
    +  depd@1.1.2:
    +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  depd@2.0.0:
    +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    +    engines: {node: '>= 0.8'}
    +
    +  deprecation@2.3.1:
    +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    +
    +  dequal@2.0.3:
    +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    +    engines: {node: '>=6'}
    +
    +  destroy@1.2.0:
    +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +
    +  detect-indent@7.0.1:
    +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    +    engines: {node: '>=12.20'}
    +
    +  detect-libc@2.0.3:
    +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    +    engines: {node: '>=8'}
    +
    +  detect-newline@3.1.0:
    +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    +    engines: {node: '>=8'}
    +
    +  detect-node@2.1.0:
    +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    +
    +  detect-port-alt@1.1.6:
    +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    +    engines: {node: '>= 4.2.1'}
    +    hasBin: true
    +
    +  detect-port@1.5.1:
    +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    +    hasBin: true
    +
    +  devlop@1.1.0:
    +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    +
    +  dezalgo@1.0.4:
    +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    +
    +  didyoumean@1.2.2:
    +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    +
    +  diff-sequences@29.6.3:
    +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  diff@4.0.2:
    +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    +    engines: {node: '>=0.3.1'}
    +
    +  diff@5.0.0:
    +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    +    engines: {node: '>=0.3.1'}
    +
    +  diff@5.2.0:
    +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    +    engines: {node: '>=0.3.1'}
    +
    +  dir-glob@3.0.1:
    +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    +    engines: {node: '>=8'}
    +
    +  discontinuous-range@1.0.0:
    +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    +
    +  dlv@1.1.3:
    +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    +
    +  dns-packet@5.6.1:
    +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    +    engines: {node: '>=6'}
    +
    +  doctrine@2.1.0:
    +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  doctrine@3.0.0:
    +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    +    engines: {node: '>=6.0.0'}
    +
    +  dom-accessibility-api@0.5.16:
    +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    +
    +  dom-converter@0.2.0:
    +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    +
    +  dom-serializer@1.4.1:
    +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    +
    +  dom-serializer@2.0.0:
    +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    +
    +  domelementtype@2.3.0:
    +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    +
    +  domexception@4.0.0:
    +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    +    engines: {node: '>=12'}
    +    deprecated: Use your platform's native DOMException instead
    +
    +  domhandler@4.3.1:
    +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    +    engines: {node: '>= 4'}
    +
    +  domhandler@5.0.3:
    +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    +    engines: {node: '>= 4'}
    +
    +  domutils@2.8.0:
    +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    +
    +  domutils@3.1.0:
    +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    +
    +  dot-case@3.0.4:
    +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    +
    +  dot-prop@6.0.1:
    +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    +    engines: {node: '>=10'}
    +
    +  duplexer@0.1.2:
    +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    +
    +  eastasianwidth@0.2.0:
    +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    +
    +  ee-first@1.1.1:
    +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    +
    +  effect@2.0.0-next.62:
    +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    +
    +  ejs@3.1.9:
    +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    +    engines: {node: '>=0.10.0'}
    +    hasBin: true
    +
    +  electron-to-chromium@1.4.717:
    +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    +
    +  emittery@0.13.1:
    +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    +    engines: {node: '>=12'}
    +
    +  emoji-regex@8.0.0:
    +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    +
    +  emoji-regex@9.2.2:
    +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    +
    +  emojilib@2.4.0:
    +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    +
    +  emojis-list@3.0.0:
    +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    +    engines: {node: '>= 4'}
    +
    +  emoticon@4.0.1:
    +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    +
    +  enabled@2.0.0:
    +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    +
    +  encodeurl@1.0.2:
    +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    +    engines: {node: '>= 0.8'}
    +
    +  encoding@0.1.13:
    +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    +
    +  enhanced-resolve@5.16.0:
    +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    +    engines: {node: '>=10.13.0'}
    +
    +  enquirer@2.4.1:
    +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    +    engines: {node: '>=8.6'}
    +
    +  entities@2.2.0:
    +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    +
    +  entities@4.5.0:
    +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    +    engines: {node: '>=0.12'}
    +
    +  env-paths@2.2.1:
    +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    +    engines: {node: '>=6'}
    +
    +  envinfo@7.11.1:
    +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  err-code@2.0.3:
    +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    +
    +  error-ex@1.3.2:
    +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    +
    +  error-stack-parser@2.1.4:
    +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    +
    +  error@10.4.0:
    +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    +
    +  es-abstract@1.23.2:
    +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-define-property@1.0.0:
    +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-errors@1.3.0:
    +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-get-iterator@1.1.3:
    +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    +
    +  es-iterator-helpers@1.0.18:
    +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-module-lexer@1.5.0:
    +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    +
    +  es-object-atoms@1.0.0:
    +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-set-tostringtag@2.0.3:
    +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-shim-unscopables@1.0.2:
    +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    +
    +  es-to-primitive@1.2.1:
    +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    +    engines: {node: '>= 0.4'}
    +
    +  esbuild@0.20.2:
    +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  escalade@3.1.2:
    +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    +    engines: {node: '>=6'}
    +
    +  escape-goat@4.0.0:
    +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    +    engines: {node: '>=12'}
    +
    +  escape-html@1.0.3:
    +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    +
    +  escape-string-regexp@1.0.5:
    +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  escape-string-regexp@2.0.0:
    +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    +    engines: {node: '>=8'}
    +
    +  escape-string-regexp@4.0.0:
    +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    +    engines: {node: '>=10'}
    +
    +  escape-string-regexp@5.0.0:
    +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    +    engines: {node: '>=12'}
    +
    +  escodegen@2.1.0:
    +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    +    engines: {node: '>=6.0'}
    +    hasBin: true
    +
    +  eslint-config-next@14.1.4:
    +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    +    peerDependencies:
    +      eslint: ^7.23.0 || ^8.0.0
    +      typescript: '>=3.3.1'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  eslint-config-prettier@9.1.0:
    +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +
    +  eslint-import-resolver-node@0.3.9:
    +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    +
    +  eslint-import-resolver-typescript@3.6.1:
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
    +
    +  eslint-module-utils@2.8.1:
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
    +
    +  eslint-plugin-import@2.29.1:
    +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +
    +  eslint-plugin-jsx-a11y@6.8.0:
    +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +
    +  eslint-plugin-mocha@10.4.1:
    +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +
    +  eslint-plugin-react-hooks@4.6.0:
    +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    +
    +  eslint-plugin-react@7.34.1:
    +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +
    +  eslint-plugin-unicorn@51.0.1:
    +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      eslint: '>=8.56.0'
    +
    +  eslint-plugin-unused-imports@3.1.0:
    +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/eslint-plugin': 6 - 7
    +      eslint: '8'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/eslint-plugin':
    +        optional: true
    +
    +  eslint-rule-composer@0.3.0:
    +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    +    engines: {node: '>=4.0.0'}
    +
    +  eslint-scope@5.1.1:
    +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    +    engines: {node: '>=8.0.0'}
    +
    +  eslint-scope@7.2.2:
    +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  eslint-utils@3.0.0:
    +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    +    peerDependencies:
    +      eslint: '>=5'
    +
    +  eslint-visitor-keys@2.1.0:
    +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    +    engines: {node: '>=10'}
    +
    +  eslint-visitor-keys@3.4.3:
    +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  eslint@8.57.0:
    +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
    +
    +  espree@9.6.1:
    +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  esprima@4.0.1:
    +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  esquery@1.5.0:
    +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    +    engines: {node: '>=0.10'}
    +
    +  esrecurse@4.3.0:
    +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    +    engines: {node: '>=4.0'}
    +
    +  estraverse@4.3.0:
    +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    +    engines: {node: '>=4.0'}
    +
    +  estraverse@5.3.0:
    +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    +    engines: {node: '>=4.0'}
    +
    +  estree-util-attach-comments@3.0.0:
    +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    +
    +  estree-util-build-jsx@3.0.1:
    +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    +
    +  estree-util-is-identifier-name@3.0.0:
    +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    +
    +  estree-util-to-js@2.0.0:
    +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    +
    +  estree-util-value-to-estree@3.0.1:
    +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    +    engines: {node: '>=16.0.0'}
    +
    +  estree-util-visit@2.0.0:
    +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    +
    +  estree-walker@3.0.3:
    +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    +
    +  esutils@2.0.3:
    +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  eta@2.2.0:
    +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    +    engines: {node: '>=6.0.0'}
    +
    +  etag@1.8.1:
    +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    +    engines: {node: '>= 0.6'}
    +
    +  eval@0.1.8:
    +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    +    engines: {node: '>= 0.8'}
    +
    +  event-target-shim@5.0.1:
    +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    +    engines: {node: '>=6'}
    +
    +  eventemitter3@4.0.7:
    +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    +
    +  events@3.3.0:
    +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    +    engines: {node: '>=0.8.x'}
    +
    +  execa@5.1.1:
    +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    +    engines: {node: '>=10'}
    +
    +  exit@0.1.2:
    +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  expect@29.7.0:
    +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  exponential-backoff@3.1.1:
    +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    +
    +  express@4.19.2:
    +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    +    engines: {node: '>= 0.10.0'}
    +
    +  extend-shallow@2.0.1:
    +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    +    engines: {node: '>=0.10.0'}
    +
    +  extend@3.0.2:
    +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    +
    +  external-editor@3.1.0:
    +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    +    engines: {node: '>=4'}
    +
    +  fast-check@3.15.0:
    +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  fast-check@3.17.0:
    +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    +    engines: {node: '>=8.0.0'}
    +
    +  fast-deep-equal@3.1.3:
    +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    +
    +  fast-glob@3.3.2:
    +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    +    engines: {node: '>=8.6.0'}
    +
    +  fast-json-stable-stringify@2.1.0:
    +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +
    +  fast-levenshtein@2.0.6:
    +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    +
    +  fast-loops@1.1.3:
    +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    +
    +  fast-safe-stringify@2.1.1:
    +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    +
    +  fast-shallow-equal@1.0.0:
    +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    +
    +  fast-url-parser@1.1.3:
    +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    +
    +  fast-xml-parser@4.3.6:
    +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    +    hasBin: true
    +
    +  fastest-levenshtein@1.0.16:
    +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    +    engines: {node: '>= 4.9.1'}
    +
    +  fastest-stable-stringify@2.0.2:
    +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    +
    +  fastq@1.17.1:
    +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +
    +  fault@2.0.1:
    +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    +
    +  faye-websocket@0.11.4:
    +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    +    engines: {node: '>=0.8.0'}
    +
    +  fb-watchman@2.0.2:
    +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    +
    +  fecha@4.2.3:
    +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    +
    +  feed@4.2.2:
    +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    +    engines: {node: '>=0.4.0'}
    +
    +  fetch-blob@2.1.2:
    +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    +    engines: {node: ^10.17.0 || >=12.3.0}
    +    peerDependencies:
    +      domexception: '*'
    +    peerDependenciesMeta:
    +      domexception:
    +        optional: true
    +
    +  figures@3.2.0:
    +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    +    engines: {node: '>=8'}
    +
    +  file-entry-cache@6.0.1:
    +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +
    +  file-loader@6.2.0:
    +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
    +
    +  filelist@1.0.4:
    +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    +
    +  filesize@8.0.7:
    +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  fill-range@7.0.1:
    +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    +    engines: {node: '>=8'}
    +
    +  finalhandler@1.2.0:
    +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    +    engines: {node: '>= 0.8'}
    +
    +  find-cache-dir@4.0.0:
    +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    +    engines: {node: '>=14.16'}
    +
    +  find-up@3.0.0:
    +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    +    engines: {node: '>=6'}
    +
    +  find-up@4.1.0:
    +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    +    engines: {node: '>=8'}
    +
    +  find-up@5.0.0:
    +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    +    engines: {node: '>=10'}
    +
    +  find-up@6.3.0:
    +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  find-yarn-workspace-root2@1.2.16:
    +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    +
    +  first-chunk-stream@2.0.0:
    +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  flat-cache@3.2.0:
    +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +
    +  flat@5.0.2:
    +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    +    hasBin: true
    +
    +  flatted@3.3.1:
    +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    +
    +  fn.name@1.1.0:
    +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    +
    +  follow-redirects@1.15.6:
    +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      debug: '*'
    +    peerDependenciesMeta:
    +      debug:
    +        optional: true
    +
    +  for-each@0.3.3:
    +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    +
    +  foreground-child@3.1.1:
    +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    +    engines: {node: '>=14'}
    +
    +  fork-ts-checker-webpack-plugin@6.5.3:
    +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    +    engines: {node: '>=10', yarn: '>=1.0.0'}
    +    peerDependencies:
    +      eslint: '>= 6'
    +      typescript: '>= 2.7'
    +      vue-template-compiler: '*'
    +      webpack: '>= 4'
    +    peerDependenciesMeta:
    +      eslint:
    +        optional: true
    +      vue-template-compiler:
    +        optional: true
    +
    +  form-data-encoder@2.1.4:
    +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    +    engines: {node: '>= 14.17'}
    +
    +  form-data@4.0.0:
    +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    +    engines: {node: '>= 6'}
    +
    +  format@0.2.2:
    +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    +    engines: {node: '>=0.4.x'}
    +
    +  forwarded@0.2.0:
    +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    +    engines: {node: '>= 0.6'}
    +
    +  fraction.js@4.3.7:
    +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    +
    +  fresh@0.5.2:
    +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    +    engines: {node: '>= 0.6'}
    +
    +  fs-extra@11.2.0:
    +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    +    engines: {node: '>=14.14'}
    +
    +  fs-extra@9.1.0:
    +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    +    engines: {node: '>=10'}
    +
    +  fs-minipass@2.1.0:
    +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    +    engines: {node: '>= 8'}
    +
    +  fs-minipass@3.0.3:
    +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  fs-monkey@1.0.5:
    +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    +
    +  fs.realpath@1.0.0:
    +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +
    +  fsevents@2.3.3:
    +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    +    os: [darwin]
    +
    +  function-bind@1.1.2:
    +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    +
    +  function.prototype.name@1.1.6:
    +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    +    engines: {node: '>= 0.4'}
    +
    +  functions-have-names@1.2.3:
    +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    +
    +  gauge@3.0.2:
    +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    +    engines: {node: '>=10'}
    +
    +  gauge@4.0.4:
    +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  gensync@1.0.0-beta.2:
    +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  get-caller-file@2.0.5:
    +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    +    engines: {node: 6.* || 8.* || >= 10.*}
    +
    +  get-func-name@2.0.2:
    +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    +
    +  get-intrinsic@1.2.4:
    +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  get-npm-tarball-url@2.1.0:
    +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    +    engines: {node: '>=12.17'}
    +
    +  get-own-enumerable-property-symbols@3.0.2:
    +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    +
    +  get-package-type@0.1.0:
    +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  get-source@2.0.12:
    +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    +
    +  get-stream@6.0.1:
    +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    +    engines: {node: '>=10'}
    +
    +  get-symbol-description@1.0.2:
    +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    +    engines: {node: '>= 0.4'}
    +
    +  get-tsconfig@4.7.3:
    +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    +
    +  github-slugger@1.5.0:
    +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    +
    +  github-username@6.0.0:
    +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    +    engines: {node: '>=10'}
    +
    +  glob-parent@5.1.2:
    +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    +    engines: {node: '>= 6'}
    +
    +  glob-parent@6.0.2:
    +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    +    engines: {node: '>=10.13.0'}
    +
    +  glob-to-regexp@0.4.1:
    +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    +
    +  glob@10.3.10:
    +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
    +
    +  glob@7.2.3:
    +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    +
    +  glob@8.1.0:
    +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    +    engines: {node: '>=12'}
    +
    +  global-dirs@3.0.1:
    +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    +    engines: {node: '>=10'}
    +
    +  global-modules@2.0.0:
    +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    +    engines: {node: '>=6'}
    +
    +  global-prefix@3.0.0:
    +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    +    engines: {node: '>=6'}
    +
    +  globals@11.12.0:
    +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    +    engines: {node: '>=4'}
    +
    +  globals@13.24.0:
    +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    +    engines: {node: '>=8'}
    +
    +  globalthis@1.0.3:
    +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    +    engines: {node: '>= 0.4'}
    +
    +  globby@11.1.0:
    +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    +    engines: {node: '>=10'}
    +
    +  globby@13.2.2:
    +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  gopd@1.0.1:
    +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    +
    +  got@12.6.1:
    +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    +    engines: {node: '>=14.16'}
    +
    +  graceful-fs@4.2.10:
    +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    +
    +  graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    +
    +  graceful-git@3.1.2:
    +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    +    engines: {node: '>=10'}
    +
    +  graphemer@1.4.0:
    +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    +
    +  gray-matter@4.0.3:
    +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    +    engines: {node: '>=6.0'}
    +
    +  grouped-queue@2.0.0:
    +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    +    engines: {node: '>=8.0.0'}
    +
    +  gzip-size@6.0.0:
    +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    +    engines: {node: '>=10'}
    +
    +  handle-thing@2.0.1:
    +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    +
    +  hard-rejection@2.1.0:
    +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    +    engines: {node: '>=6'}
    +
    +  has-bigints@1.0.2:
    +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    +
    +  has-flag@3.0.0:
    +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    +    engines: {node: '>=4'}
    +
    +  has-flag@4.0.0:
    +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    +    engines: {node: '>=8'}
    +
    +  has-property-descriptors@1.0.2:
    +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    +
    +  has-proto@1.0.3:
    +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-symbols@1.0.3:
    +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-tostringtag@1.0.2:
    +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-unicode@2.0.1:
    +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    +
    +  has-yarn@3.0.0:
    +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  hasharray@1.1.2:
    +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    +
    +  hasown@2.0.2:
    +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  hast-util-from-parse5@8.0.1:
    +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    +
    +  hast-util-parse-selector@4.0.0:
    +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    +
    +  hast-util-raw@9.0.2:
    +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    +
    +  hast-util-to-estree@3.1.0:
    +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    +
    +  hast-util-to-jsx-runtime@2.3.0:
    +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    +
    +  hast-util-to-parse5@8.0.0:
    +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    +
    +  hast-util-whitespace@3.0.0:
    +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    +
    +  hastscript@8.0.0:
    +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    +
    +  he@1.2.0:
    +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    +    hasBin: true
    +
    +  history@4.10.1:
    +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    +
    +  hoist-non-react-statics@3.3.2:
    +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    +
    +  hosted-git-info@2.8.9:
    +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    +
    +  hosted-git-info@4.1.0:
    +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    +    engines: {node: '>=10'}
    +
    +  hosted-git-info@6.1.1:
    +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  hosted-git-info@7.0.1:
    +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
    +
    +  hpack.js@2.1.6:
    +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    +
    +  html-encoding-sniffer@3.0.0:
    +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    +    engines: {node: '>=12'}
    +
    +  html-entities@2.5.2:
    +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    +
    +  html-escaper@2.0.2:
    +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    +
    +  html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  html-minifier-terser@7.2.0:
    +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    +    engines: {node: ^14.13.1 || >=16.0.0}
    +    hasBin: true
    +
    +  html-tags@3.3.1:
    +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    +    engines: {node: '>=8'}
    +
    +  html-void-elements@3.0.0:
    +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    +
    +  html-webpack-plugin@5.6.0:
    +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.20.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  htmlparser2@6.1.0:
    +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    +
    +  htmlparser2@8.0.2:
    +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    +
    +  http-cache-semantics@4.1.1:
    +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    +
    +  http-deceiver@1.2.7:
    +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    +
    +  http-errors@1.6.3:
    +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    +    engines: {node: '>= 0.6'}
    +
    +  http-errors@2.0.0:
    +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  http-parser-js@0.5.8:
    +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    +
    +  http-proxy-agent@4.0.1:
    +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    +    engines: {node: '>= 6'}
    +
    +  http-proxy-agent@5.0.0:
    +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    +    engines: {node: '>= 6'}
    +
    +  http-proxy-middleware@2.0.6:
    +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      '@types/express': ^4.17.13
    +    peerDependenciesMeta:
    +      '@types/express':
    +        optional: true
    +
    +  http-proxy@1.18.1:
    +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    +    engines: {node: '>=8.0.0'}
    +
    +  http-server@14.1.1:
    +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  http2-wrapper@2.2.1:
    +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    +    engines: {node: '>=10.19.0'}
    +
    +  https-proxy-agent@5.0.1:
    +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    +    engines: {node: '>= 6'}
    +
    +  human-signals@2.1.0:
    +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    +    engines: {node: '>=10.17.0'}
    +
    +  humanize-ms@1.2.1:
    +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    +
    +  hyphenate-style-name@1.0.4:
    +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    +
    +  iconv-lite@0.4.24:
    +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  iconv-lite@0.6.3:
    +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  icss-utils@5.1.0:
    +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  ieee754@1.2.1:
    +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    +
    +  ignore-walk@4.0.1:
    +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    +    engines: {node: '>=10'}
    +
    +  ignore-walk@6.0.4:
    +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  ignore@5.3.1:
    +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    +    engines: {node: '>= 4'}
    +
    +  image-size@1.1.1:
    +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    +    engines: {node: '>=16.x'}
    +    hasBin: true
    +
    +  immediate@3.0.6:
    +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    +
    +  immer@10.0.4:
    +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    +
    +  immer@9.0.21:
    +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    +
    +  immutability-helper@3.1.1:
    +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    +
    +  import-fresh@3.3.0:
    +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    +    engines: {node: '>=6'}
    +
    +  import-lazy@4.0.0:
    +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    +    engines: {node: '>=8'}
    +
    +  import-local@3.1.0:
    +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +
    +  imurmurhash@0.1.4:
    +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    +    engines: {node: '>=0.8.19'}
    +
    +  indent-string@4.0.0:
    +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    +    engines: {node: '>=8'}
    +
    +  indent-string@5.0.0:
    +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    +    engines: {node: '>=12'}
    +
    +  individual@3.0.0:
    +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    +
    +  infer-owner@1.0.4:
    +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    +
    +  infima@0.2.0-alpha.43:
    +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    +    engines: {node: '>=12'}
    +
    +  inflight@1.0.6:
    +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    +
    +  inherits@2.0.3:
    +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    +
    +  inherits@2.0.4:
    +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +
    +  ini@1.3.8:
    +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    +
    +  ini@2.0.0:
    +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    +    engines: {node: '>=10'}
    +
    +  ini@3.0.1:
    +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  inline-style-parser@0.1.1:
    +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    +
    +  inline-style-parser@0.2.2:
    +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    +
    +  inline-style-prefixer@7.0.0:
    +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    +
    +  inquirer@8.2.6:
    +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    +    engines: {node: '>=12.0.0'}
    +
    +  internal-slot@1.0.7:
    +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    +    engines: {node: '>= 0.4'}
    +
    +  interpret@1.4.0:
    +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    +    engines: {node: '>= 0.10'}
    +
    +  interpret@3.1.1:
    +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    +    engines: {node: '>=10.13.0'}
    +
    +  invariant@2.2.4:
    +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    +
    +  ip-address@9.0.5:
    +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    +    engines: {node: '>= 12'}
    +
    +  ipaddr.js@1.9.1:
    +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    +    engines: {node: '>= 0.10'}
    +
    +  ipaddr.js@2.1.0:
    +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    +    engines: {node: '>= 10'}
    +
    +  is-alphabetical@2.0.1:
    +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    +
    +  is-alphanumerical@2.0.1:
    +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    +
    +  is-arguments@1.1.1:
    +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-array-buffer@3.0.4:
    +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-arrayish@0.2.1:
    +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    +
    +  is-arrayish@0.3.2:
    +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    +
    +  is-async-function@2.0.0:
    +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-bigint@1.0.4:
    +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    +
    +  is-binary-path@2.1.0:
    +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    +    engines: {node: '>=8'}
    +
    +  is-boolean-object@1.1.2:
    +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-builtin-module@3.2.1:
    +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    +    engines: {node: '>=6'}
    +
    +  is-callable@1.2.7:
    +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-ci@3.0.1:
    +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    +    hasBin: true
    +
    +  is-core-module@2.13.1:
    +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    +
    +  is-data-view@1.0.1:
    +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-date-object@1.0.5:
    +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-decimal@2.0.1:
    +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    +
    +  is-docker@2.2.1:
    +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +
    +  is-docker@3.0.0:
    +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    hasBin: true
    +
    +  is-extendable@0.1.1:
    +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-extglob@2.1.1:
    +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-finalizationregistry@1.0.2:
    +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    +
    +  is-fullwidth-code-point@3.0.0:
    +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    +    engines: {node: '>=8'}
    +
    +  is-generator-fn@2.1.0:
    +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    +    engines: {node: '>=6'}
    +
    +  is-generator-function@1.0.10:
    +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-glob@4.0.3:
    +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-hexadecimal@2.0.1:
    +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    +
    +  is-inside-container@1.0.0:
    +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    +    engines: {node: '>=14.16'}
    +    hasBin: true
    +
    +  is-installed-globally@0.4.0:
    +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    +    engines: {node: '>=10'}
    +
    +  is-interactive@1.0.0:
    +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    +    engines: {node: '>=8'}
    +
    +  is-lambda@1.0.1:
    +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    +
    +  is-map@2.0.3:
    +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-negative-zero@2.0.3:
    +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-network-error@1.1.0:
    +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    +    engines: {node: '>=16'}
    +
    +  is-npm@6.0.0:
    +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  is-number-object@1.0.7:
    +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-number@7.0.0:
    +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    +    engines: {node: '>=0.12.0'}
    +
    +  is-obj@1.0.1:
    +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-obj@2.0.0:
    +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    +    engines: {node: '>=8'}
    +
    +  is-path-cwd@2.2.0:
    +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    +    engines: {node: '>=6'}
    +
    +  is-path-inside@3.0.3:
    +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    +    engines: {node: '>=8'}
    +
    +  is-plain-obj@1.1.0:
    +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-plain-obj@2.1.0:
    +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    +    engines: {node: '>=8'}
    +
    +  is-plain-obj@3.0.0:
    +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    +    engines: {node: '>=10'}
    +
    +  is-plain-obj@4.1.0:
    +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    +    engines: {node: '>=12'}
    +
    +  is-plain-object@2.0.4:
    +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-plain-object@5.0.0:
    +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-potential-custom-element-name@1.0.1:
    +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    +
    +  is-reference@3.0.2:
    +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    +
    +  is-regex@1.1.4:
    +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-regexp@1.0.0:
    +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-root@2.1.0:
    +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    +    engines: {node: '>=6'}
    +
    +  is-scoped@2.1.0:
    +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    +    engines: {node: '>=8'}
    +
    +  is-set@2.0.3:
    +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-shared-array-buffer@1.0.3:
    +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-stream@2.0.1:
    +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    +    engines: {node: '>=8'}
    +
    +  is-string@1.0.7:
    +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-subdir@1.2.0:
    +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    +    engines: {node: '>=4'}
    +
    +  is-symbol@1.0.4:
    +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-typed-array@1.1.13:
    +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-typedarray@1.0.0:
    +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    +
    +  is-unicode-supported@0.1.0:
    +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    +    engines: {node: '>=10'}
    +
    +  is-utf8@0.2.1:
    +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    +
    +  is-weakmap@2.0.2:
    +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-weakref@1.0.2:
    +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    +
    +  is-weakset@2.0.3:
    +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-windows@1.0.2:
    +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-wsl@2.2.0:
    +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    +    engines: {node: '>=8'}
    +
    +  is-wsl@3.1.0:
    +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    +    engines: {node: '>=16'}
    +
    +  is-yarn-global@0.4.1:
    +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    +    engines: {node: '>=12'}
    +
    +  isarray@0.0.1:
    +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    +
    +  isarray@1.0.0:
    +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    +
    +  isarray@2.0.5:
    +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    +
    +  isbinaryfile@4.0.10:
    +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  isbinaryfile@5.0.2:
    +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    +    engines: {node: '>= 18.0.0'}
    +
    +  isexe@2.0.0:
    +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +
    +  isobject@3.0.1:
    +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  istanbul-lib-coverage@3.2.2:
    +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    +    engines: {node: '>=8'}
    +
    +  istanbul-lib-instrument@5.2.1:
    +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    +    engines: {node: '>=8'}
    +
    +  istanbul-lib-instrument@6.0.2:
    +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-lib-report@3.0.1:
    +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-lib-source-maps@4.0.1:
    +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-reports@3.1.7:
    +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    +    engines: {node: '>=8'}
    +
    +  iterator.prototype@1.1.2:
    +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    +
    +  itertools@2.2.5:
    +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    +
    +  jackspeak@2.3.6:
    +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    +    engines: {node: '>=14'}
    +
    +  jake@10.8.7:
    +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  jclass@1.2.1:
    +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    +    engines: {node: '>= 0.6'}
    +
    +  jest-changed-files@29.7.0:
    +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-circus@29.7.0:
    +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-cli@29.7.0:
    +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  jest-config@29.7.0:
    +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@types/node': '*'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      '@types/node':
    +        optional: true
    +      ts-node:
    +        optional: true
    +
    +  jest-diff@29.7.0:
    +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-docblock@29.7.0:
    +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-each@29.7.0:
    +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-environment-jsdom@29.7.0:
    +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
    +
    +  jest-environment-node@29.7.0:
    +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-get-type@29.6.3:
    +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-haste-map@29.7.0:
    +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-leak-detector@29.7.0:
    +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-matcher-utils@29.7.0:
    +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-message-util@29.7.0:
    +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-mock@29.7.0:
    +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-pnp-resolver@1.2.3:
    +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    +    engines: {node: '>=6'}
    +    peerDependencies:
    +      jest-resolve: '*'
    +    peerDependenciesMeta:
    +      jest-resolve:
    +        optional: true
    +
    +  jest-regex-util@29.6.3:
    +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-resolve-dependencies@29.7.0:
    +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-resolve@29.7.0:
    +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-runner@29.7.0:
    +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-runtime@29.7.0:
    +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-snapshot@29.7.0:
    +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-util@29.7.0:
    +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-validate@29.7.0:
    +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-watcher@29.7.0:
    +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-worker@27.5.1:
    +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  jest-worker@29.7.0:
    +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest@29.7.0:
    +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  jiti@1.21.0:
    +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    +    hasBin: true
    +
    +  joi@17.12.2:
    +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    +
    +  js-cookie@2.2.1:
    +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    +
    +  js-tokens@4.0.0:
    +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +
    +  js-yaml@3.14.1:
    +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    +    hasBin: true
    +
    +  js-yaml@4.1.0:
    +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    +    hasBin: true
    +
    +  jsbn@1.1.0:
    +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    +
    +  jsdom@20.0.3:
    +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
    +
    +  jsesc@0.5.0:
    +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    +    hasBin: true
    +
    +  jsesc@2.5.2:
    +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  jsesc@3.0.2:
    +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  json-buffer@3.0.1:
    +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    +
    +  json-parse-even-better-errors@2.3.1:
    +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    +
    +  json-parse-even-better-errors@3.0.1:
    +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  json-schema-traverse@0.4.1:
    +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    +
    +  json-schema-traverse@1.0.0:
    +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    +
    +  json-stable-stringify-without-jsonify@1.0.1:
    +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    +
    +  json-stringify-nice@1.1.4:
    +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    +
    +  json-stringify-safe@5.0.1:
    +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    +
    +  json5@1.0.2:
    +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    +    hasBin: true
    +
    +  json5@2.2.3:
    +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  jsonfile@6.1.0:
    +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    +
    +  jsonparse@1.3.1:
    +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    +    engines: {'0': node >= 0.2.0}
    +
    +  jsx-ast-utils@3.3.5:
    +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    +    engines: {node: '>=4.0'}
    +
    +  jszip@3.10.1:
    +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    +
    +  just-diff-apply@5.5.0:
    +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    +
    +  just-diff@5.2.0:
    +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    +
    +  just-extend@6.2.0:
    +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    +
    +  keyv@4.5.4:
    +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    +
    +  kind-of@6.0.3:
    +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  kleur@3.0.3:
    +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    +    engines: {node: '>=6'}
    +
    +  kuler@2.0.0:
    +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    +
    +  language-subtag-registry@0.3.22:
    +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    +
    +  language-tags@1.0.9:
    +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    +    engines: {node: '>=0.10'}
    +
    +  latest-version@7.0.0:
    +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    +    engines: {node: '>=14.16'}
    +
    +  launch-editor@2.6.1:
    +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    +
    +  leven@3.1.0:
    +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    +    engines: {node: '>=6'}
    +
    +  levn@0.4.1:
    +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  lie@3.3.0:
    +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    +
    +  lilconfig@2.1.0:
    +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    +    engines: {node: '>=10'}
    +
    +  lilconfig@3.1.1:
    +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    +    engines: {node: '>=14'}
    +
    +  lines-and-columns@1.2.4:
    +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +
    +  load-json-file@6.2.0:
    +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    +    engines: {node: '>=8'}
    +
    +  load-json-file@7.0.1:
    +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  load-script@1.0.0:
    +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    +
    +  load-yaml-file@0.2.0:
    +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    +    engines: {node: '>=6'}
    +
    +  loader-runner@4.3.0:
    +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    +    engines: {node: '>=6.11.5'}
    +
    +  loader-utils@2.0.4:
    +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    +    engines: {node: '>=8.9.0'}
    +
    +  loader-utils@3.2.1:
    +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    +    engines: {node: '>= 12.13.0'}
    +
    +  locate-path@3.0.0:
    +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    +    engines: {node: '>=6'}
    +
    +  locate-path@5.0.0:
    +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    +    engines: {node: '>=8'}
    +
    +  locate-path@6.0.0:
    +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    +    engines: {node: '>=10'}
    +
    +  locate-path@7.2.0:
    +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  lodash.debounce@4.0.8:
    +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    +
    +  lodash.get@4.4.2:
    +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    +
    +  lodash.memoize@4.1.2:
    +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    +
    +  lodash.merge@4.6.2:
    +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    +
    +  lodash.uniq@4.5.0:
    +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    +
    +  lodash@4.17.21:
    +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    +
    +  log-symbols@4.1.0:
    +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    +    engines: {node: '>=10'}
    +
    +  logform@2.6.0:
    +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  longest-streak@3.1.0:
    +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    +
    +  loose-envify@1.4.0:
    +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    +    hasBin: true
    +
    +  loupe@3.1.0:
    +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    +
    +  lower-case@2.0.2:
    +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    +
    +  lowercase-keys@3.0.0:
    +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  lru-cache@10.2.0:
    +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    +    engines: {node: 14 || >=16.14}
    +
    +  lru-cache@5.1.1:
    +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    +
    +  lru-cache@6.0.0:
    +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    +    engines: {node: '>=10'}
    +
    +  lru-cache@7.10.1:
    +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    +    engines: {node: '>=12'}
    +
    +  lru-cache@7.18.3:
    +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    +    engines: {node: '>=12'}
    +
    +  lz-string@1.5.0:
    +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    +    hasBin: true
    +
    +  make-dir@4.0.0:
    +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    +    engines: {node: '>=10'}
    +
    +  make-error@1.3.6:
    +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    +
    +  make-fetch-happen@10.2.1:
    +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  make-fetch-happen@11.1.1:
    +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  make-fetch-happen@9.1.0:
    +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    +    engines: {node: '>= 10'}
    +
    +  makeerror@1.0.12:
    +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    +
    +  map-age-cleaner@0.1.3:
    +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    +    engines: {node: '>=6'}
    +
    +  map-obj@1.0.1:
    +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  map-obj@4.3.0:
    +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    +    engines: {node: '>=8'}
    +
    +  markdown-extensions@2.0.0:
    +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    +    engines: {node: '>=16'}
    +
    +  markdown-table@3.0.3:
    +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    +
    +  mdast-util-directive@3.0.0:
    +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    +
    +  mdast-util-find-and-replace@3.0.1:
    +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    +
    +  mdast-util-from-markdown@2.0.0:
    +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    +
    +  mdast-util-frontmatter@2.0.1:
    +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    +
    +  mdast-util-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    +
    +  mdast-util-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    +
    +  mdast-util-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    +
    +  mdast-util-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    +
    +  mdast-util-gfm-task-list-item@2.0.0:
    +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    +
    +  mdast-util-gfm@3.0.0:
    +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    +
    +  mdast-util-mdx-expression@2.0.0:
    +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    +
    +  mdast-util-mdx-jsx@3.1.2:
    +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    +
    +  mdast-util-mdx@3.0.0:
    +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    +
    +  mdast-util-mdxjs-esm@2.0.1:
    +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    +
    +  mdast-util-phrasing@4.1.0:
    +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    +
    +  mdast-util-to-hast@13.1.0:
    +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    +
    +  mdast-util-to-markdown@2.1.0:
    +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    +
    +  mdast-util-to-string@4.0.0:
    +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    +
    +  mdn-data@2.0.14:
    +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    +
    +  mdn-data@2.0.28:
    +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    +
    +  mdn-data@2.0.30:
    +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    +
    +  media-typer@0.3.0:
    +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mem-fs-editor@9.7.0:
    +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      mem-fs: ^2.1.0
    +    peerDependenciesMeta:
    +      mem-fs:
    +        optional: true
    +
    +  mem-fs@2.3.0:
    +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    +    engines: {node: '>=12'}
    +
    +  mem@8.1.1:
    +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    +    engines: {node: '>=10'}
    +
    +  memfs@3.5.3:
    +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  memfs@4.8.0:
    +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  memoize-one@5.2.1:
    +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    +
    +  meow@10.1.5:
    +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  merge-descriptors@1.0.1:
    +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    +
    +  merge-stream@2.0.0:
    +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    +
    +  merge2@1.4.1:
    +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    +    engines: {node: '>= 8'}
    +
    +  methods@1.1.2:
    +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    +    engines: {node: '>= 0.6'}
    +
    +  micromark-core-commonmark@2.0.0:
    +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    +
    +  micromark-extension-directive@3.0.0:
    +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    +
    +  micromark-extension-frontmatter@2.0.0:
    +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    +
    +  micromark-extension-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    +
    +  micromark-extension-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    +
    +  micromark-extension-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    +
    +  micromark-extension-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    +
    +  micromark-extension-gfm-tagfilter@2.0.0:
    +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    +
    +  micromark-extension-gfm-task-list-item@2.0.1:
    +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    +
    +  micromark-extension-gfm@3.0.0:
    +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    +
    +  micromark-extension-mdx-expression@3.0.0:
    +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    +
    +  micromark-extension-mdx-jsx@3.0.0:
    +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    +
    +  micromark-extension-mdx-md@2.0.0:
    +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    +
    +  micromark-extension-mdxjs-esm@3.0.0:
    +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    +
    +  micromark-extension-mdxjs@3.0.0:
    +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    +
    +  micromark-factory-destination@2.0.0:
    +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    +
    +  micromark-factory-label@2.0.0:
    +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    +
    +  micromark-factory-mdx-expression@2.0.1:
    +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    +
    +  micromark-factory-space@1.1.0:
    +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    +
    +  micromark-factory-space@2.0.0:
    +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    +
    +  micromark-factory-title@2.0.0:
    +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    +
    +  micromark-factory-whitespace@2.0.0:
    +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    +
    +  micromark-util-character@1.2.0:
    +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    +
    +  micromark-util-character@2.1.0:
    +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    +
    +  micromark-util-chunked@2.0.0:
    +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    +
    +  micromark-util-classify-character@2.0.0:
    +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    +
    +  micromark-util-combine-extensions@2.0.0:
    +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    +
    +  micromark-util-decode-numeric-character-reference@2.0.1:
    +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    +
    +  micromark-util-decode-string@2.0.0:
    +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    +
    +  micromark-util-encode@2.0.0:
    +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    +
    +  micromark-util-events-to-acorn@2.0.2:
    +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    +
    +  micromark-util-html-tag-name@2.0.0:
    +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    +
    +  micromark-util-normalize-identifier@2.0.0:
    +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    +
    +  micromark-util-resolve-all@2.0.0:
    +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    +
    +  micromark-util-sanitize-uri@2.0.0:
    +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    +
    +  micromark-util-subtokenize@2.0.0:
    +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    +
    +  micromark-util-symbol@1.1.0:
    +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    +
    +  micromark-util-symbol@2.0.0:
    +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    +
    +  micromark-util-types@1.1.0:
    +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    +
    +  micromark-util-types@2.0.0:
    +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    +
    +  micromark@4.0.0:
    +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    +
    +  micromatch@4.0.5:
    +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    +    engines: {node: '>=8.6'}
    +
    +  mime-db@1.33.0:
    +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-db@1.52.0:
    +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-types@2.1.18:
    +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-types@2.1.35:
    +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime@1.6.0:
    +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  mimic-fn@2.1.0:
    +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    +    engines: {node: '>=6'}
    +
    +  mimic-fn@3.1.0:
    +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    +    engines: {node: '>=8'}
    +
    +  mimic-response@3.1.0:
    +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    +    engines: {node: '>=10'}
    +
    +  mimic-response@4.0.0:
    +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  min-indent@1.0.1:
    +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    +    engines: {node: '>=4'}
    +
    +  mini-css-extract-plugin@2.8.1:
    +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +
    +  minimalistic-assert@1.0.1:
    +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    +
    +  minimatch@3.1.2:
    +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    +
    +  minimatch@5.0.1:
    +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@5.1.6:
    +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@7.4.6:
    +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@9.0.3:
    +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  minimist-options@4.1.0:
    +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    +    engines: {node: '>= 6'}
    +
    +  minimist@1.2.8:
    +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    +
    +  minipass-collect@1.0.2:
    +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    +    engines: {node: '>= 8'}
    +
    +  minipass-fetch@1.4.1:
    +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    +    engines: {node: '>=8'}
    +
    +  minipass-fetch@2.1.2:
    +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  minipass-fetch@3.0.4:
    +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  minipass-flush@1.0.5:
    +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    +    engines: {node: '>= 8'}
    +
    +  minipass-json-stream@1.0.1:
    +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    +
    +  minipass-pipeline@1.2.4:
    +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    +    engines: {node: '>=8'}
    +
    +  minipass-sized@1.0.3:
    +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    +    engines: {node: '>=8'}
    +
    +  minipass@3.3.6:
    +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    +    engines: {node: '>=8'}
    +
    +  minipass@5.0.0:
    +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    +    engines: {node: '>=8'}
    +
    +  minipass@7.0.4:
    +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  minizlib@2.1.2:
    +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    +    engines: {node: '>= 8'}
    +
    +  mkdirp-infer-owner@2.0.0:
    +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    +    engines: {node: '>=10'}
    +
    +  mkdirp@0.5.6:
    +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    +    hasBin: true
    +
    +  mkdirp@1.0.4:
    +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  mocha@10.3.0:
    +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    +    engines: {node: '>= 14.0.0'}
    +    hasBin: true
    +
    +  moo@0.5.2:
    +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    +
    +  mrmime@2.0.0:
    +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    +    engines: {node: '>=10'}
    +
    +  ms@2.0.0:
    +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    +
    +  ms@2.1.2:
    +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +
    +  ms@2.1.3:
    +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    +
    +  multicast-dns@7.2.5:
    +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    +    hasBin: true
    +
    +  multimatch@5.0.0:
    +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    +    engines: {node: '>=10'}
    +
    +  mute-stream@0.0.8:
    +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    +
    +  mz@2.7.0:
    +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    +
    +  nano-css@5.6.1:
    +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  nanoid@3.3.7:
    +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    +    hasBin: true
    +
    +  natural-compare@1.4.0:
    +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +
    +  ndjson@2.0.0:
    +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  nearley@2.20.1:
    +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    +    hasBin: true
    +
    +  negotiator@0.6.3:
    +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    +    engines: {node: '>= 0.6'}
    +
    +  neo-async@2.6.2:
    +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    +
    +  neovim@5.1.0:
    +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  nerf-dart@1.0.0:
    +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    +
    +  next@14.1.4:
    +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    +    engines: {node: '>=18.17.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@opentelemetry/api': ^1.1.0
    +      react: ^18.2.0 || 18
    +      react-dom: ^18.2.0 || 18
    +      sass: ^1.3.0
    +    peerDependenciesMeta:
    +      '@opentelemetry/api':
    +        optional: true
    +      sass:
    +        optional: true
    +
    +  nise@5.1.9:
    +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    +
    +  no-case@3.0.4:
    +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    +
    +  node-emoji@2.1.3:
    +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    +    engines: {node: '>=18'}
    +
    +  node-fetch@2.7.0:
    +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    +    engines: {node: 4.x || >=6.0.0}
    +    peerDependencies:
    +      encoding: ^0.1.0
    +    peerDependenciesMeta:
    +      encoding:
    +        optional: true
    +
    +  node-forge@1.3.1:
    +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    +    engines: {node: '>= 6.13.0'}
    +
    +  node-gyp@8.4.1:
    +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    +    engines: {node: '>= 10.12.0'}
    +    hasBin: true
    +
    +  node-gyp@9.4.1:
    +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    +    engines: {node: ^12.13 || ^14.13 || >=16}
    +    hasBin: true
    +
    +  node-html-parser@6.1.12:
    +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    +
    +  node-int64@0.4.0:
    +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    +
    +  node-releases@2.0.14:
    +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    +
    +  nopt@5.0.0:
    +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  nopt@6.0.0:
    +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    hasBin: true
    +
    +  normalize-package-data@2.5.0:
    +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    +
    +  normalize-package-data@3.0.3:
    +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    +    engines: {node: '>=10'}
    +
    +  normalize-package-data@5.0.0:
    +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  normalize-path@3.0.0:
    +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  normalize-range@0.1.2:
    +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  normalize-registry-url@2.0.0:
    +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    +
    +  normalize-url@6.1.0:
    +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    +    engines: {node: '>=10'}
    +
    +  normalize-url@8.0.1:
    +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    +    engines: {node: '>=14.16'}
    +
    +  npm-bundled@1.1.2:
    +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    +
    +  npm-bundled@3.0.0:
    +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-install-checks@4.0.0:
    +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    +    engines: {node: '>=10'}
    +
    +  npm-install-checks@6.3.0:
    +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-normalize-package-bin@1.0.1:
    +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    +
    +  npm-normalize-package-bin@2.0.0:
    +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  npm-normalize-package-bin@3.0.1:
    +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-package-arg@10.1.0:
    +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-package-arg@11.0.1:
    +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
    +
    +  npm-package-arg@8.1.5:
    +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    +    engines: {node: '>=10'}
    +
    +  npm-packlist@3.0.0:
    +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  npm-packlist@7.0.4:
    +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-pick-manifest@6.1.1:
    +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    +
    +  npm-pick-manifest@8.0.2:
    +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-registry-fetch@12.0.2:
    +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +
    +  npm-registry-fetch@14.0.5:
    +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-run-path@4.0.1:
    +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    +    engines: {node: '>=8'}
    +
    +  npmlog@5.0.1:
    +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    +
    +  npmlog@6.0.2:
    +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  nprogress@0.2.0:
    +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    +
    +  nth-check@2.1.1:
    +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    +
    +  nwsapi@2.2.7:
    +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    +
    +  object-assign@4.1.1:
    +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  object-hash@3.0.0:
    +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    +    engines: {node: '>= 6'}
    +
    +  object-inspect@1.13.1:
    +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    +
    +  object-is@1.1.6:
    +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  object-keys@1.1.1:
    +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.assign@4.1.5:
    +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.entries@1.1.8:
    +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.fromentries@2.0.8:
    +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.groupby@1.0.3:
    +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.hasown@1.1.4:
    +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.values@1.2.0:
    +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  obuf@1.1.2:
    +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    +
    +  on-finished@2.4.1:
    +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    +    engines: {node: '>= 0.8'}
    +
    +  on-headers@1.0.2:
    +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    +    engines: {node: '>= 0.8'}
    +
    +  once@1.4.0:
    +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    +
    +  one-time@1.0.0:
    +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    +
    +  onetime@5.1.2:
    +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    +    engines: {node: '>=6'}
    +
    +  open@10.1.0:
    +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    +    engines: {node: '>=18'}
    +
    +  open@8.4.2:
    +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    +    engines: {node: '>=12'}
    +
    +  opener@1.5.2:
    +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    +    hasBin: true
    +
    +  optionator@0.9.3:
    +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  ora@5.4.1:
    +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    +    engines: {node: '>=10'}
    +
    +  os-tmpdir@1.0.2:
    +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  p-cancelable@3.0.0:
    +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    +    engines: {node: '>=12.20'}
    +
    +  p-defer@1.0.0:
    +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    +    engines: {node: '>=4'}
    +
    +  p-filter@2.1.0:
    +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    +    engines: {node: '>=8'}
    +
    +  p-finally@1.0.0:
    +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    +    engines: {node: '>=4'}
    +
    +  p-limit@2.3.0:
    +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    +    engines: {node: '>=6'}
    +
    +  p-limit@3.1.0:
    +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    +    engines: {node: '>=10'}
    +
    +  p-limit@4.0.0:
    +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  p-locate@3.0.0:
    +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    +    engines: {node: '>=6'}
    +
    +  p-locate@4.1.0:
    +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    +    engines: {node: '>=8'}
    +
    +  p-locate@5.0.0:
    +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    +    engines: {node: '>=10'}
    +
    +  p-locate@6.0.0:
    +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  p-map@2.1.0:
    +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    +    engines: {node: '>=6'}
    +
    +  p-map@4.0.0:
    +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    +    engines: {node: '>=10'}
    +
    +  p-queue@6.6.2:
    +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    +    engines: {node: '>=8'}
    +
    +  p-retry@4.6.2:
    +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    +    engines: {node: '>=8'}
    +
    +  p-retry@6.2.0:
    +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    +    engines: {node: '>=16.17'}
    +
    +  p-timeout@3.2.0:
    +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    +    engines: {node: '>=8'}
    +
    +  p-transform@1.3.0:
    +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    +    engines: {node: '>=12.10.0'}
    +
    +  p-try@2.2.0:
    +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    +    engines: {node: '>=6'}
    +
    +  package-json@8.1.1:
    +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    +    engines: {node: '>=14.16'}
    +
    +  pacote@12.0.3:
    +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
    +
    +  pacote@15.2.0:
    +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  pako@1.0.11:
    +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    +
    +  param-case@3.0.4:
    +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    +
    +  parent-module@1.0.1:
    +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    +    engines: {node: '>=6'}
    +
    +  parse-conflict-json@2.0.2:
    +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  parse-entities@4.0.1:
    +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    +
    +  parse-json@5.2.0:
    +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    +    engines: {node: '>=8'}
    +
    +  parse-ms@2.1.0:
    +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    +    engines: {node: '>=6'}
    +
    +  parse-numeric-range@1.3.0:
    +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    +
    +  parse-srcset@1.0.2:
    +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    +
    +  parse5-htmlparser2-tree-adapter@7.0.0:
    +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    +
    +  parse5@7.1.2:
    +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    +
    +  parseurl@1.3.3:
    +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  pascal-case@3.1.2:
    +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    +
    +  path-absolute@1.0.1:
    +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    +    engines: {node: '>=4'}
    +
    +  path-exists@3.0.0:
    +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    +    engines: {node: '>=4'}
    +
    +  path-exists@4.0.0:
    +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    +    engines: {node: '>=8'}
    +
    +  path-exists@5.0.0:
    +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  path-is-absolute@1.0.1:
    +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  path-is-inside@1.0.2:
    +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    +
    +  path-key@3.1.1:
    +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    +    engines: {node: '>=8'}
    +
    +  path-name@1.0.0:
    +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    +
    +  path-parse@1.0.7:
    +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    +
    +  path-scurry@1.10.1:
    +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  path-temp@2.1.0:
    +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    +    engines: {node: '>=8.15'}
    +
    +  path-to-regexp@0.1.7:
    +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    +
    +  path-to-regexp@1.8.0:
    +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    +
    +  path-to-regexp@2.2.1:
    +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    +
    +  path-to-regexp@6.2.1:
    +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    +
    +  path-type@4.0.0:
    +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    +    engines: {node: '>=8'}
    +
    +  pathval@2.0.0:
    +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    +    engines: {node: '>= 14.16'}
    +
    +  periscopic@3.1.0:
    +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    +
    +  picocolors@1.0.0:
    +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    +
    +  picomatch@2.3.1:
    +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    +    engines: {node: '>=8.6'}
    +
    +  pify@2.3.0:
    +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    +    engines: {node: '>=0.10.0'}
    +
    +  pify@4.0.1:
    +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    +    engines: {node: '>=6'}
    +
    +  pirates@4.0.6:
    +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    +    engines: {node: '>= 6'}
    +
    +  pkg-dir@4.2.0:
    +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    +    engines: {node: '>=8'}
    +
    +  pkg-dir@7.0.0:
    +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    +    engines: {node: '>=14.16'}
    +
    +  pkg-up@3.1.0:
    +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    +    engines: {node: '>=8'}
    +
    +  pluralize@8.0.0:
    +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    +    engines: {node: '>=4'}
    +
    +  portfinder@1.0.32:
    +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    +    engines: {node: '>= 0.12.0'}
    +
    +  possible-typed-array-names@1.0.0:
    +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  postcss-calc@8.2.4:
    +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    +    peerDependencies:
    +      postcss: ^8.2.2
    +
    +  postcss-colormin@5.3.1:
    +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-convert-values@5.1.3:
    +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-comments@5.1.2:
    +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-duplicates@5.1.0:
    +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-empty@5.1.1:
    +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-overridden@5.1.0:
    +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-unused@5.1.0:
    +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-import@15.1.0:
    +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      postcss: ^8.0.0
    +
    +  postcss-js@4.0.1:
    +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    +    engines: {node: ^12 || ^14 || >= 16}
    +    peerDependencies:
    +      postcss: ^8.4.21
    +
    +  postcss-load-config@4.0.2:
    +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    +    engines: {node: '>= 14'}
    +    peerDependencies:
    +      postcss: '>=8.0.9'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      postcss:
    +        optional: true
    +      ts-node:
    +        optional: true
    +
    +  postcss-loader@7.3.4:
    +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +
    +  postcss-loader@8.1.1:
    +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  postcss-merge-idents@5.1.1:
    +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-merge-longhand@5.1.7:
    +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-merge-rules@5.1.4:
    +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-font-values@5.1.0:
    +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-gradients@5.1.1:
    +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-params@5.1.4:
    +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-selectors@5.2.1:
    +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-modules-extract-imports@3.0.0:
    +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-local-by-default@4.0.4:
    +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-scope@3.1.1:
    +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-values@4.0.0:
    +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-nested@6.0.1:
    +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    +    engines: {node: '>=12.0'}
    +    peerDependencies:
    +      postcss: ^8.2.14
    +
    +  postcss-normalize-charset@5.1.0:
    +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-display-values@5.1.0:
    +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-positions@5.1.1:
    +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-repeat-style@5.1.1:
    +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-string@5.1.0:
    +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-timing-functions@5.1.0:
    +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-unicode@5.1.1:
    +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-url@5.1.0:
    +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-whitespace@5.1.1:
    +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-ordered-values@5.1.3:
    +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-idents@5.2.0:
    +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-initial@5.1.2:
    +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-transforms@5.1.0:
    +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-selector-parser@6.0.16:
    +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    +    engines: {node: '>=4'}
    +
    +  postcss-sort-media-queries@4.4.1:
    +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      postcss: ^8.4.16
    +
    +  postcss-svgo@5.1.0:
    +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-unique-selectors@5.1.1:
    +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-value-parser@4.2.0:
    +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    +
    +  postcss-zindex@5.1.0:
    +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss@8.4.31:
    +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    +    engines: {node: ^10 || ^12 || >=14}
    +
    +  postcss@8.4.38:
    +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    +    engines: {node: ^10 || ^12 || >=14}
    +
    +  preferred-pm@3.1.3:
    +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    +    engines: {node: '>=10'}
    +
    +  prelude-ls@1.2.1:
    +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  prettier-plugin-tailwindcss@0.5.12:
    +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    +    engines: {node: '>=14.21.3'}
    +    peerDependencies:
    +      '@ianvs/prettier-plugin-sort-imports': '*'
    +      '@prettier/plugin-pug': '*'
    +      '@shopify/prettier-plugin-liquid': '*'
    +      '@trivago/prettier-plugin-sort-imports': '*'
    +      prettier: ^3.0
    +      prettier-plugin-astro: '*'
    +      prettier-plugin-css-order: '*'
    +      prettier-plugin-import-sort: '*'
    +      prettier-plugin-jsdoc: '*'
    +      prettier-plugin-marko: '*'
    +      prettier-plugin-organize-attributes: '*'
    +      prettier-plugin-organize-imports: '*'
    +      prettier-plugin-sort-imports: '*'
    +      prettier-plugin-style-order: '*'
    +      prettier-plugin-svelte: '*'
    +      prettier-plugin-twig-melody: '*'
    +    peerDependenciesMeta:
    +      '@ianvs/prettier-plugin-sort-imports':
    +        optional: true
    +      '@prettier/plugin-pug':
    +        optional: true
    +      '@shopify/prettier-plugin-liquid':
    +        optional: true
    +      '@trivago/prettier-plugin-sort-imports':
    +        optional: true
    +      prettier-plugin-astro:
    +        optional: true
    +      prettier-plugin-css-order:
    +        optional: true
    +      prettier-plugin-import-sort:
    +        optional: true
    +      prettier-plugin-jsdoc:
    +        optional: true
    +      prettier-plugin-marko:
    +        optional: true
    +      prettier-plugin-organize-attributes:
    +        optional: true
    +      prettier-plugin-organize-imports:
    +        optional: true
    +      prettier-plugin-sort-imports:
    +        optional: true
    +      prettier-plugin-style-order:
    +        optional: true
    +      prettier-plugin-svelte:
    +        optional: true
    +      prettier-plugin-twig-melody:
    +        optional: true
    +
    +  prettier@3.2.5:
    +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
    +
    +  pretty-bytes@5.6.0:
    +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    +    engines: {node: '>=6'}
    +
    +  pretty-error@4.0.0:
    +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    +
    +  pretty-format@27.5.1:
    +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    +
    +  pretty-format@29.7.0:
    +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  pretty-ms@7.0.1:
    +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    +    engines: {node: '>=10'}
    +
    +  pretty-time@1.1.0:
    +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    +    engines: {node: '>=4'}
    +
    +  print-diff@1.0.0:
    +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    +    engines: {node: '>=8.3'}
    +
    +  printable-characters@1.0.42:
    +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    +
    +  prism-react-renderer@2.3.1:
    +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    +    peerDependencies:
    +      react: '>=16.0.0 || 18'
    +
    +  prismjs@1.29.0:
    +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    +    engines: {node: '>=6'}
    +
    +  proc-log@1.0.0:
    +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    +
    +  proc-log@3.0.0:
    +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  process-nextick-args@2.0.1:
    +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    +
    +  process@0.11.10:
    +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    +    engines: {node: '>= 0.6.0'}
    +
    +  promise-all-reject-late@1.0.1:
    +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    +
    +  promise-call-limit@1.0.2:
    +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    +
    +  promise-inflight@1.0.1:
    +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    +    peerDependencies:
    +      bluebird: '*'
    +    peerDependenciesMeta:
    +      bluebird:
    +        optional: true
    +
    +  promise-retry@2.0.1:
    +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    +    engines: {node: '>=10'}
    +
    +  prompts@2.4.2:
    +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    +    engines: {node: '>= 6'}
    +
    +  prop-types@15.8.1:
    +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    +
    +  property-information@6.4.1:
    +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    +
    +  proto-list@1.2.4:
    +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    +
    +  proxy-addr@2.0.7:
    +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    +    engines: {node: '>= 0.10'}
    +
    +  psl@1.9.0:
    +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    +
    +  punycode@1.4.1:
    +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    +
    +  punycode@2.3.1:
    +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    +    engines: {node: '>=6'}
    +
    +  pupa@3.1.0:
    +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    +    engines: {node: '>=12.20'}
    +
    +  pure-rand@6.1.0:
    +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    +
    +  qs@6.11.0:
    +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    +    engines: {node: '>=0.6'}
    +
    +  qs@6.12.0:
    +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    +    engines: {node: '>=0.6'}
    +
    +  querystringify@2.2.0:
    +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    +
    +  queue-microtask@1.2.3:
    +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    +
    +  queue@6.0.2:
    +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    +
    +  quick-lru@4.0.1:
    +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    +    engines: {node: '>=8'}
    +
    +  quick-lru@5.1.1:
    +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    +    engines: {node: '>=10'}
    +
    +  railroad-diagrams@1.0.0:
    +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    +
    +  rambda@7.5.0:
    +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    +
    +  ramda@0.29.1:
    +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    +
    +  randexp@0.4.6:
    +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    +    engines: {node: '>=0.12'}
    +
    +  randombytes@2.1.0:
    +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    +
    +  range-parser@1.2.0:
    +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    +    engines: {node: '>= 0.6'}
    +
    +  range-parser@1.2.1:
    +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    +    engines: {node: '>= 0.6'}
    +
    +  raw-body@2.5.2:
    +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    +    engines: {node: '>= 0.8'}
    +
    +  rc@1.2.8:
    +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    +    hasBin: true
    +
    +  react-dev-utils@12.0.1:
    +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=2.7'
    +      webpack: '>=4'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  react-dom@18.2.0:
    +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    +    peerDependencies:
    +      react: ^18.2.0 || 18
    +
    +  react-error-overlay@6.0.11:
    +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    +
    +  react-fast-compare@3.2.2:
    +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    +
    +  react-helmet-async@1.3.0:
    +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-helmet-async@2.0.4:
    +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-is@16.13.1:
    +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    +
    +  react-is@17.0.2:
    +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    +
    +  react-is@18.2.0:
    +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    +
    +  react-json-view-lite@1.3.0:
    +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-loadable-ssr-addon-v5-slorber@1.0.1:
    +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      react-loadable: '*'
    +      webpack: '>=4.41.1 || 5.x'
    +
    +  react-player@2.15.1:
    +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    +    peerDependencies:
    +      react: '>=16.6.0 || 18'
    +
    +  react-router-config@5.1.1:
    +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +      react-router: '>=5'
    +
    +  react-router-dom@5.3.4:
    +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +
    +  react-router@5.3.4:
    +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +
    +  react-string-replace@1.1.1:
    +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    +    engines: {node: '>=0.12.0'}
    +
    +  react-universal-interface@0.6.2:
    +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    +    peerDependencies:
    +      react: '*'
    +      tslib: '*'
    +
    +  react-use@17.5.0:
    +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  react@18.2.0:
    +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  read-cache@1.0.0:
    +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    +
    +  read-cmd-shim@3.0.1:
    +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  read-ini-file@4.0.0:
    +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    +    engines: {node: '>=14.6'}
    +
    +  read-package-json-fast@2.0.3:
    +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    +    engines: {node: '>=10'}
    +
    +  read-package-json-fast@3.0.2:
    +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  read-package-json@6.0.4:
    +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  read-pkg-up@7.0.1:
    +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    +    engines: {node: '>=8'}
    +
    +  read-pkg-up@8.0.0:
    +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    +    engines: {node: '>=12'}
    +
    +  read-pkg@5.2.0:
    +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    +    engines: {node: '>=8'}
    +
    +  read-pkg@6.0.0:
    +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    +    engines: {node: '>=12'}
    +
    +  read-yaml-file@2.1.0:
    +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    +    engines: {node: '>=10.13'}
    +
    +  readable-stream@2.3.8:
    +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    +
    +  readable-stream@3.6.2:
    +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    +    engines: {node: '>= 6'}
    +
    +  readable-stream@4.5.2:
    +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  readdir-scoped-modules@1.1.0:
    +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  readdirp@3.6.0:
    +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    +    engines: {node: '>=8.10.0'}
    +
    +  reading-time@1.5.0:
    +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    +
    +  realpath-missing@1.1.0:
    +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    +    engines: {node: '>=10'}
    +
    +  rechoir@0.6.2:
    +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    +    engines: {node: '>= 0.10'}
    +
    +  rechoir@0.8.0:
    +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  recursive-readdir@2.2.3:
    +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    +    engines: {node: '>=6.0.0'}
    +
    +  redent@4.0.0:
    +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    +    engines: {node: '>=12'}
    +
    +  reflect.getprototypeof@1.0.6:
    +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    +    engines: {node: '>= 0.4'}
    +
    +  regenerate-unicode-properties@10.1.1:
    +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    +    engines: {node: '>=4'}
    +
    +  regenerate@1.4.2:
    +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    +
    +  regenerator-runtime@0.14.1:
    +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    +
    +  regenerator-transform@0.15.2:
    +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    +
    +  regexp-tree@0.1.27:
    +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    +    hasBin: true
    +
    +  regexp.prototype.flags@1.5.2:
    +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    +    engines: {node: '>= 0.4'}
    +
    +  regexpu-core@5.3.2:
    +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    +    engines: {node: '>=4'}
    +
    +  registry-auth-token@5.0.2:
    +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    +    engines: {node: '>=14'}
    +
    +  registry-url@6.0.1:
    +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    +    engines: {node: '>=12'}
    +
    +  regjsparser@0.10.0:
    +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    +    hasBin: true
    +
    +  regjsparser@0.9.1:
    +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    +    hasBin: true
    +
    +  rehype-raw@7.0.0:
    +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    +
    +  relateurl@0.2.7:
    +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    +    engines: {node: '>= 0.10'}
    +
    +  remark-directive@3.0.0:
    +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    +
    +  remark-emoji@4.0.1:
    +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  remark-frontmatter@5.0.0:
    +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    +
    +  remark-gfm@4.0.0:
    +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    +
    +  remark-mdx@3.0.1:
    +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    +
    +  remark-parse@11.0.0:
    +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    +
    +  remark-rehype@11.1.0:
    +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    +
    +  remark-stringify@11.0.0:
    +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    +
    +  remove-trailing-separator@1.1.0:
    +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    +
    +  renderkid@3.0.0:
    +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    +
    +  replace-ext@1.0.1:
    +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    +    engines: {node: '>= 0.10'}
    +
    +  require-directory@2.1.1:
    +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    +    engines: {node: '>=0.10.0'}
    +
    +  require-from-string@2.0.2:
    +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  require-like@0.1.2:
    +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    +
    +  requires-port@1.0.0:
    +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    +
    +  resize-observer-polyfill@1.5.1:
    +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    +
    +  resolve-alpn@1.2.1:
    +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    +
    +  resolve-cwd@3.0.0:
    +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    +    engines: {node: '>=8'}
    +
    +  resolve-from@4.0.0:
    +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    +    engines: {node: '>=4'}
    +
    +  resolve-from@5.0.0:
    +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    +    engines: {node: '>=8'}
    +
    +  resolve-pathname@3.0.0:
    +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    +
    +  resolve-pkg-maps@1.0.0:
    +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    +
    +  resolve.exports@2.0.2:
    +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    +    engines: {node: '>=10'}
    +
    +  resolve@1.22.8:
    +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    +    hasBin: true
    +
    +  resolve@2.0.0-next.5:
    +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    +    hasBin: true
    +
    +  responselike@3.0.0:
    +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    +    engines: {node: '>=14.16'}
    +
    +  restore-cursor@3.1.0:
    +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    +    engines: {node: '>=8'}
    +
    +  ret@0.1.15:
    +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    +    engines: {node: '>=0.12'}
    +
    +  retry@0.12.0:
    +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    +    engines: {node: '>= 4'}
    +
    +  retry@0.13.1:
    +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    +    engines: {node: '>= 4'}
    +
    +  reusify@1.0.4:
    +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    +
    +  rfc4648@1.5.3:
    +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    +
    +  right-pad@1.0.1:
    +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    +    engines: {node: '>= 0.10'}
    +
    +  rimraf@3.0.2:
    +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    +    hasBin: true
    +
    +  rimraf@5.0.5:
    +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
    +
    +  rtl-css-js@1.16.1:
    +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    +
    +  rtl-detect@1.1.2:
    +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    +
    +  rtlcss@4.1.1:
    +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    +    engines: {node: '>=12.0.0'}
    +    hasBin: true
    +
    +  run-applescript@7.0.0:
    +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    +    engines: {node: '>=18'}
    +
    +  run-async@2.4.1:
    +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    +    engines: {node: '>=0.12.0'}
    +
    +  run-parallel@1.2.0:
    +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    +
    +  rxjs@7.8.1:
    +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    +
    +  safe-array-concat@1.1.2:
    +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    +    engines: {node: '>=0.4'}
    +
    +  safe-buffer@5.1.2:
    +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    +
    +  safe-buffer@5.2.1:
    +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    +
    +  safe-execa@0.1.2:
    +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    +    engines: {node: '>=12'}
    +
    +  safe-regex-test@1.0.3:
    +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    +    engines: {node: '>= 0.4'}
    +
    +  safe-stable-stringify@2.4.3:
    +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    +    engines: {node: '>=10'}
    +
    +  safer-buffer@2.1.2:
    +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    +
    +  sanitize-html@2.13.0:
    +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    +
    +  sax@1.3.0:
    +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    +
    +  saxes@6.0.0:
    +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    +    engines: {node: '>=v12.22.7'}
    +
    +  sbd@1.0.19:
    +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    +
    +  scheduler@0.23.0:
    +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    +
    +  schema-utils@2.7.0:
    +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    +    engines: {node: '>= 8.9.0'}
    +
    +  schema-utils@3.3.0:
    +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  schema-utils@4.2.0:
    +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    +    engines: {node: '>= 12.13.0'}
    +
    +  scoped-regex@2.1.0:
    +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    +    engines: {node: '>=8'}
    +
    +  screenfull@5.2.0:
    +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  search-insights@2.13.0:
    +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    +
    +  section-matter@1.0.0:
    +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    +    engines: {node: '>=4'}
    +
    +  secure-compare@3.0.1:
    +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    +
    +  select-hose@2.0.0:
    +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    +
    +  selfsigned@2.4.1:
    +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    +    engines: {node: '>=10'}
    +
    +  semver-diff@4.0.0:
    +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    +    engines: {node: '>=12'}
    +
    +  semver@5.7.2:
    +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    +    hasBin: true
    +
    +  semver@6.3.1:
    +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    +    hasBin: true
    +
    +  semver@7.5.4:
    +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  semver@7.6.0:
    +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  send@0.18.0:
    +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  serialize-javascript@6.0.0:
    +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    +
    +  serialize-javascript@6.0.2:
    +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    +
    +  serve-handler@6.1.5:
    +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    +
    +  serve-index@1.9.1:
    +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  serve-static@1.15.0:
    +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  set-blocking@2.0.0:
    +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    +
    +  set-function-length@1.2.2:
    +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    +    engines: {node: '>= 0.4'}
    +
    +  set-function-name@2.0.2:
    +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  set-harmonic-interval@1.0.1:
    +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    +    engines: {node: '>=6.9'}
    +
    +  setimmediate@1.0.5:
    +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    +
    +  setprototypeof@1.1.0:
    +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    +
    +  setprototypeof@1.2.0:
    +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    +
    +  shallow-clone@3.0.1:
    +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    +    engines: {node: '>=8'}
    +
    +  shallowequal@1.1.0:
    +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    +
    +  shebang-command@2.0.0:
    +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    +    engines: {node: '>=8'}
    +
    +  shebang-regex@3.0.0:
    +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    +    engines: {node: '>=8'}
    +
    +  shell-quote@1.8.1:
    +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    +
    +  shelljs@0.8.5:
    +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  side-channel@1.0.6:
    +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    +    engines: {node: '>= 0.4'}
    +
    +  signal-exit@3.0.7:
    +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    +
    +  signal-exit@4.1.0:
    +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    +    engines: {node: '>=14'}
    +
    +  sigstore@1.9.0:
    +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  simple-swizzle@0.2.2:
    +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    +
    +  sinon@17.0.1:
    +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    +
    +  sirv@2.0.4:
    +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    +    engines: {node: '>= 10'}
    +
    +  sisteransi@1.0.5:
    +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    +
    +  sitemap@7.1.1:
    +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    +    hasBin: true
    +
    +  skin-tone@2.0.0:
    +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    +    engines: {node: '>=8'}
    +
    +  slash@3.0.0:
    +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    +    engines: {node: '>=8'}
    +
    +  slash@4.0.0:
    +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    +    engines: {node: '>=12'}
    +
    +  smart-buffer@4.2.0:
    +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    +
    +  snake-case@3.0.4:
    +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    +
    +  sockjs@0.3.24:
    +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    +
    +  socks-proxy-agent@6.1.1:
    +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    +    engines: {node: '>= 10'}
    +
    +  socks-proxy-agent@6.2.1:
    +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    +    engines: {node: '>= 10'}
    +
    +  socks-proxy-agent@7.0.0:
    +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    +    engines: {node: '>= 10'}
    +
    +  socks@2.8.1:
    +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    +
    +  sort-css-media-queries@2.1.0:
    +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    +    engines: {node: '>= 6.3.0'}
    +
    +  sort-keys@4.2.0:
    +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    +    engines: {node: '>=8'}
    +
    +  sort-keys@5.0.0:
    +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    +    engines: {node: '>=12'}
    +
    +  source-map-js@1.2.0:
    +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map-support@0.5.13:
    +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    +
    +  source-map-support@0.5.21:
    +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    +
    +  source-map-url@0.4.1:
    +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    +    deprecated: See https://github.com/lydell/source-map-url#deprecated
    +
    +  source-map@0.5.6:
    +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map@0.6.1:
    +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map@0.7.4:
    +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    +    engines: {node: '>= 8'}
    +
    +  space-separated-tokens@2.0.2:
    +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    +
    +  spdx-correct@3.2.0:
    +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    +
    +  spdx-exceptions@2.5.0:
    +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    +
    +  spdx-expression-parse@3.0.1:
    +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    +
    +  spdx-license-ids@3.0.17:
    +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    +
    +  spdy-transport@3.0.0:
    +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    +
    +  spdy@4.0.2:
    +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    +    engines: {node: '>=6.0.0'}
    +
    +  split2@3.2.2:
    +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    +
    +  sprintf-js@1.0.3:
    +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    +
    +  sprintf-js@1.1.3:
    +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    +
    +  srcset@4.0.0:
    +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    +    engines: {node: '>=12'}
    +
    +  ssri@10.0.5:
    +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  ssri@8.0.1:
    +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    +    engines: {node: '>= 8'}
    +
    +  ssri@9.0.1:
    +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  stable@0.1.8:
    +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    +
    +  stack-generator@2.0.10:
    +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    +
    +  stack-trace@0.0.10:
    +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    +
    +  stack-utils@2.0.6:
    +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    +    engines: {node: '>=10'}
    +
    +  stackframe@1.3.4:
    +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    +
    +  stacktrace-gps@3.1.2:
    +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    +
    +  stacktrace-js@2.0.2:
    +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    +
    +  stacktracey@2.1.8:
    +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    +
    +  statuses@1.5.0:
    +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    +    engines: {node: '>= 0.6'}
    +
    +  statuses@2.0.1:
    +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  std-env@3.7.0:
    +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    +
    +  stop-iteration-iterator@1.0.0:
    +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  streamsearch@1.1.0:
    +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    +    engines: {node: '>=10.0.0'}
    +
    +  string-length@4.0.2:
    +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    +    engines: {node: '>=10'}
    +
    +  string-width@4.2.3:
    +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    +    engines: {node: '>=8'}
    +
    +  string-width@5.1.2:
    +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    +    engines: {node: '>=12'}
    +
    +  string.prototype.matchall@4.0.11:
    +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    +    engines: {node: '>= 0.4'}
    +
    +  string.prototype.trim@1.2.9:
    +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    +    engines: {node: '>= 0.4'}
    +
    +  string.prototype.trimend@1.0.8:
    +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    +
    +  string.prototype.trimstart@1.0.8:
    +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    +    engines: {node: '>= 0.4'}
    +
    +  string_decoder@1.1.1:
    +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    +
    +  string_decoder@1.3.0:
    +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    +
    +  stringify-entities@4.0.3:
    +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    +
    +  stringify-object@3.3.0:
    +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    +    engines: {node: '>=4'}
    +
    +  strip-ansi@6.0.1:
    +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    +    engines: {node: '>=8'}
    +
    +  strip-ansi@7.1.0:
    +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    +    engines: {node: '>=12'}
    +
    +  strip-bom-buf@1.0.0:
    +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    +    engines: {node: '>=4'}
    +
    +  strip-bom-stream@2.0.0:
    +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom-string@1.0.0:
    +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom@2.0.0:
    +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom@3.0.0:
    +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    +    engines: {node: '>=4'}
    +
    +  strip-bom@4.0.0:
    +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    +    engines: {node: '>=8'}
    +
    +  strip-comments-strings@1.2.0:
    +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    +
    +  strip-final-newline@2.0.0:
    +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    +    engines: {node: '>=6'}
    +
    +  strip-indent@3.0.0:
    +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    +    engines: {node: '>=8'}
    +
    +  strip-indent@4.0.0:
    +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    +    engines: {node: '>=12'}
    +
    +  strip-json-comments@2.0.1:
    +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-json-comments@3.1.1:
    +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    +    engines: {node: '>=8'}
    +
    +  strnum@1.0.5:
    +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    +
    +  style-loader@3.3.4:
    +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +
    +  style-to-object@0.4.4:
    +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    +
    +  style-to-object@1.0.5:
    +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    +
    +  styled-jsx@5.1.1:
    +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    +    engines: {node: '>= 12.0.0'}
    +    peerDependencies:
    +      '@babel/core': '*'
    +      babel-plugin-macros: '*'
    +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      babel-plugin-macros:
    +        optional: true
    +
    +  stylehacks@5.1.1:
    +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  stylis@4.3.1:
    +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    +
    +  sucrase@3.35.0:
    +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
    +
    +  supports-color@5.5.0:
    +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    +    engines: {node: '>=4'}
    +
    +  supports-color@7.2.0:
    +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    +    engines: {node: '>=8'}
    +
    +  supports-color@8.1.1:
    +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    +    engines: {node: '>=10'}
    +
    +  supports-preserve-symlinks-flag@1.0.0:
    +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    +    engines: {node: '>= 0.4'}
    +
    +  svg-parser@2.0.4:
    +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    +
    +  svgo@2.8.0:
    +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +
    +  svgo@3.2.0:
    +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
    +
    +  symbol-tree@3.2.4:
    +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    +
    +  syncpack@12.3.0:
    +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    +    engines: {node: '>=16'}
    +    hasBin: true
    +
    +  tailwindcss@3.4.1:
    +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
    +
    +  tapable@1.1.3:
    +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    +    engines: {node: '>=6'}
    +
    +  tapable@2.2.1:
    +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    +    engines: {node: '>=6'}
    +
    +  tar@6.2.1:
    +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    +    engines: {node: '>=10'}
    +
    +  terser-webpack-plugin@5.3.10:
    +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      '@swc/core': '*'
    +      esbuild: '*'
    +      uglify-js: '*'
    +      webpack: ^5.1.0
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      esbuild:
    +        optional: true
    +      uglify-js:
    +        optional: true
    +
    +  terser@5.29.2:
    +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  test-exclude@6.0.0:
    +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    +    engines: {node: '>=8'}
    +
    +  text-hex@1.0.0:
    +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    +
    +  text-table@0.2.0:
    +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    +
    +  textextensions@5.16.0:
    +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    +    engines: {node: '>=0.8'}
    +
    +  thenify-all@1.6.0:
    +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    +    engines: {node: '>=0.8'}
    +
    +  thenify@3.3.1:
    +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    +
    +  throttle-debounce@3.0.1:
    +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    +    engines: {node: '>=10'}
    +
    +  through2@4.0.2:
    +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    +
    +  through@2.3.8:
    +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    +
    +  thunky@1.1.0:
    +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    +
    +  tightrope@0.1.0:
    +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    +    engines: {node: '>=14'}
    +
    +  tiny-invariant@1.3.3:
    +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    +
    +  tiny-warning@1.0.3:
    +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    +
    +  tinycolor2@1.6.0:
    +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    +
    +  tmp@0.0.33:
    +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    +    engines: {node: '>=0.6.0'}
    +
    +  tmpl@1.0.5:
    +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    +
    +  to-fast-properties@2.0.0:
    +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    +    engines: {node: '>=4'}
    +
    +  to-regex-range@5.0.1:
    +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    +    engines: {node: '>=8.0'}
    +
    +  toggle-selection@1.0.6:
    +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    +
    +  toidentifier@1.0.1:
    +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    +    engines: {node: '>=0.6'}
    +
    +  totalist@3.0.1:
    +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    +    engines: {node: '>=6'}
    +
    +  tough-cookie@4.1.3:
    +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    +    engines: {node: '>=6'}
    +
    +  tr46@0.0.3:
    +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    +
    +  tr46@3.0.0:
    +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    +    engines: {node: '>=12'}
    +
    +  treeverse@1.0.4:
    +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    +
    +  trie-search@2.0.0:
    +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    +
    +  trim-lines@3.0.1:
    +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    +
    +  trim-newlines@4.1.1:
    +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    +    engines: {node: '>=12'}
    +
    +  triple-beam@1.4.1:
    +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    +    engines: {node: '>= 14.0.0'}
    +
    +  trough@2.2.0:
    +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    +
    +  ts-api-utils@1.3.0:
    +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      typescript: '>=4.2.0'
    +
    +  ts-easing@0.2.0:
    +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    +
    +  ts-interface-checker@0.1.13:
    +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    +
    +  ts-jest@29.1.2:
    +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      '@babel/core': '>=7.0.0-beta.0 <8'
    +      '@jest/types': ^29.0.0
    +      babel-jest: ^29.0.0
    +      esbuild: '*'
    +      jest: ^29.0.0
    +      typescript: '>=4.3 <6'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      '@jest/types':
    +        optional: true
    +      babel-jest:
    +        optional: true
    +      esbuild:
    +        optional: true
    +
    +  ts-loader@9.5.1:
    +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      typescript: '*'
    +      webpack: ^5.0.0
    +
    +  ts-node@10.9.2:
    +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    +    hasBin: true
    +    peerDependencies:
    +      '@swc/core': '>=1.2.50'
    +      '@swc/wasm': '>=1.2.50'
    +      '@types/node': '*'
    +      typescript: '>=2.7'
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      '@swc/wasm':
    +        optional: true
    +
    +  ts-toolbelt@9.6.0:
    +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    +
    +  tsconfig-paths@3.15.0:
    +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    +
    +  tslib@2.6.2:
    +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    +
    +  tuf-js@1.1.7:
    +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  type-check@0.4.0:
    +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  type-detect@4.0.8:
    +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    +    engines: {node: '>=4'}
    +
    +  type-fest@0.20.2:
    +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@0.21.3:
    +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@0.6.0:
    +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    +    engines: {node: '>=8'}
    +
    +  type-fest@0.8.1:
    +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    +    engines: {node: '>=8'}
    +
    +  type-fest@1.4.0:
    +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@2.19.0:
    +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    +    engines: {node: '>=12.20'}
    +
    +  type-fest@4.14.0:
    +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    +    engines: {node: '>=16'}
    +
    +  type-is@1.6.18:
    +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    +    engines: {node: '>= 0.6'}
    +
    +  typed-array-buffer@1.0.2:
    +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-byte-length@1.0.1:
    +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-byte-offset@1.0.2:
    +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-length@1.0.6:
    +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    +    engines: {node: '>= 0.4'}
    +
    +  typedarray-to-buffer@3.1.5:
    +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    +
    +  typescript@5.4.3:
    +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    +    engines: {node: '>=14.17'}
    +    hasBin: true
    +
    +  unbox-primitive@1.0.2:
    +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    +
    +  unicode-canonical-property-names-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    +    engines: {node: '>=4'}
    +
    +  unicode-emoji-modifier-base@1.0.0:
    +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    +    engines: {node: '>=4'}
    +
    +  unicode-match-property-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    +    engines: {node: '>=4'}
    +
    +  unicode-match-property-value-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    +    engines: {node: '>=4'}
    +
    +  unicode-property-aliases-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    +    engines: {node: '>=4'}
    +
    +  unified@11.0.4:
    +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    +
    +  union@0.5.0:
    +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  unique-filename@1.1.1:
    +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    +
    +  unique-filename@2.0.1:
    +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  unique-filename@3.0.0:
    +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  unique-slug@2.0.2:
    +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    +
    +  unique-slug@3.0.0:
    +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  unique-slug@4.0.0:
    +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  unique-string@2.0.0:
    +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    +    engines: {node: '>=8'}
    +
    +  unique-string@3.0.0:
    +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    +    engines: {node: '>=12'}
    +
    +  unist-util-is@6.0.0:
    +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    +
    +  unist-util-position-from-estree@2.0.0:
    +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    +
    +  unist-util-position@5.0.0:
    +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    +
    +  unist-util-remove-position@5.0.0:
    +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    +
    +  unist-util-stringify-position@4.0.0:
    +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    +
    +  unist-util-visit-parents@6.0.1:
    +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    +
    +  unist-util-visit@5.0.0:
    +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    +
    +  universal-user-agent@6.0.1:
    +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    +
    +  universalify@0.2.0:
    +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  universalify@2.0.1:
    +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    +    engines: {node: '>= 10.0.0'}
    +
    +  unpipe@1.0.0:
    +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  untildify@4.0.0:
    +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    +    engines: {node: '>=8'}
    +
    +  update-browserslist-db@1.0.13:
    +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    +    hasBin: true
    +    peerDependencies:
    +      browserslist: '>= 4.21.0'
    +
    +  update-notifier@6.0.2:
    +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    +    engines: {node: '>=14.16'}
    +
    +  uri-js@4.4.1:
    +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    +
    +  url-join@4.0.1:
    +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    +
    +  url-loader@4.1.1:
    +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      file-loader: '*'
    +      webpack: ^4.0.0 || ^5.0.0
    +    peerDependenciesMeta:
    +      file-loader:
    +        optional: true
    +
    +  url-parse@1.5.10:
    +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    +
    +  util-deprecate@1.0.2:
    +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    +
    +  utila@0.4.0:
    +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    +
    +  utility-types@3.11.0:
    +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    +    engines: {node: '>= 4'}
    +
    +  utils-merge@1.0.1:
    +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  uuid@8.3.2:
    +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    +    hasBin: true
    +
    +  uuid@9.0.1:
    +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    +    hasBin: true
    +
    +  v8-compile-cache-lib@3.0.1:
    +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    +
    +  v8-to-istanbul@9.2.0:
    +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    +    engines: {node: '>=10.12.0'}
    +
    +  validate-npm-package-license@3.0.4:
    +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    +
    +  validate-npm-package-name@3.0.0:
    +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    +
    +  validate-npm-package-name@5.0.0:
    +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  value-equal@1.0.1:
    +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    +
    +  vary@1.1.2:
    +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    +    engines: {node: '>= 0.8'}
    +
    +  vfile-location@5.0.2:
    +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    +
    +  vfile-message@4.0.2:
    +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    +
    +  vfile@6.0.1:
    +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    +
    +  vinyl-file@3.0.0:
    +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    +    engines: {node: '>=4'}
    +
    +  vinyl@2.2.1:
    +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    +    engines: {node: '>= 0.10'}
    +
    +  vscode-uri@3.0.8:
    +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    +
    +  w3c-xmlserializer@4.0.0:
    +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    +    engines: {node: '>=14'}
    +
    +  walk-up-path@1.0.0:
    +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    +
    +  walker@1.0.8:
    +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    +
    +  watchpack@2.4.1:
    +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    +    engines: {node: '>=10.13.0'}
    +
    +  wbuf@1.7.3:
    +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    +
    +  wcwidth@1.0.1:
    +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    +
    +  web-namespaces@2.0.1:
    +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    +
    +  webidl-conversions@3.0.1:
    +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    +
    +  webidl-conversions@7.0.0:
    +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    +    engines: {node: '>=12'}
    +
    +  webpack-bundle-analyzer@4.10.1:
    +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    +    engines: {node: '>= 10.13.0'}
    +    hasBin: true
    +
    +  webpack-cli@5.1.4:
    +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    +    engines: {node: '>=14.15.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@webpack-cli/generators': '*'
    +      webpack: 5.x.x
    +      webpack-bundle-analyzer: '*'
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      '@webpack-cli/generators':
    +        optional: true
    +      webpack-bundle-analyzer:
    +        optional: true
    +      webpack-dev-server:
    +        optional: true
    +
    +  webpack-dev-middleware@5.3.4:
    +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
    +
    +  webpack-dev-middleware@7.1.1:
    +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +
    +  webpack-dev-server@4.15.2:
    +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    +    engines: {node: '>= 12.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^4.37.0 || ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
    +
    +  webpack-dev-server@5.0.4:
    +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    +    engines: {node: '>= 18.12.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
    +
    +  webpack-merge@5.10.0:
    +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    +    engines: {node: '>=10.0.0'}
    +
    +  webpack-sources@3.2.3:
    +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    +    engines: {node: '>=10.13.0'}
    +
    +  webpack@5.91.0:
    +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack-cli:
    +        optional: true
    +
    +  webpackbar@5.0.2:
    +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      webpack: 3 || 4 || 5
    +
    +  websocket-driver@0.7.4:
    +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  websocket-extensions@0.1.4:
    +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  whatwg-encoding@2.0.0:
    +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-mimetype@3.0.0:
    +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-url@11.0.0:
    +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-url@5.0.0:
    +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    +
    +  which-boxed-primitive@1.0.2:
    +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    +
    +  which-builtin-type@1.1.3:
    +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    +    engines: {node: '>= 0.4'}
    +
    +  which-collection@1.0.2:
    +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    +    engines: {node: '>= 0.4'}
    +
    +  which-pm@2.0.0:
    +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    +    engines: {node: '>=8.15'}
    +
    +  which-typed-array@1.1.15:
    +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    +    engines: {node: '>= 0.4'}
    +
    +  which@1.3.1:
    +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    +    hasBin: true
    +
    +  which@2.0.2:
    +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
    +
    +  which@3.0.1:
    +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  wide-align@1.1.5:
    +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    +
    +  widest-line@3.1.0:
    +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    +    engines: {node: '>=8'}
    +
    +  widest-line@4.0.1:
    +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    +    engines: {node: '>=12'}
    +
    +  wildcard@2.0.1:
    +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    +
    +  winston-transport@4.7.0:
    +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  winston@3.11.0:
    +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  workerpool@6.2.1:
    +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    +
    +  wrap-ansi@6.2.0:
    +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    +    engines: {node: '>=8'}
    +
    +  wrap-ansi@7.0.0:
    +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    +    engines: {node: '>=10'}
    +
    +  wrap-ansi@8.1.0:
    +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    +    engines: {node: '>=12'}
    +
    +  wrappy@1.0.2:
    +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    +
    +  write-file-atomic@3.0.3:
    +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    +
    +  write-file-atomic@4.0.2:
    +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  write-file-atomic@5.0.1:
    +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  write-json-file@5.0.0:
    +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  write-yaml-file@5.0.0:
    +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    +    engines: {node: '>=16.14'}
    +
    +  ws@7.5.9:
    +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    +    engines: {node: '>=8.3.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: ^5.0.2
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +
    +  ws@8.16.0:
    +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: '>=5.0.2'
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +
    +  xdg-basedir@5.1.0:
    +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    +    engines: {node: '>=12'}
    +
    +  xml-js@1.6.11:
    +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    +    hasBin: true
    +
    +  xml-name-validator@4.0.0:
    +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    +    engines: {node: '>=12'}
    +
    +  xmlchars@2.2.0:
    +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    +
    +  y18n@5.0.8:
    +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    +    engines: {node: '>=10'}
    +
    +  yallist@3.1.1:
    +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    +
    +  yallist@4.0.0:
    +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    +
    +  yaml@1.10.2:
    +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    +    engines: {node: '>= 6'}
    +
    +  yaml@2.4.1:
    +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    +    engines: {node: '>= 14'}
    +    hasBin: true
    +
    +  yargs-parser@20.2.4:
    +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    +    engines: {node: '>=10'}
    +
    +  yargs-parser@20.2.9:
    +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    +    engines: {node: '>=10'}
    +
    +  yargs-parser@21.1.1:
    +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    +    engines: {node: '>=12'}
    +
    +  yargs-unparser@2.0.0:
    +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    +    engines: {node: '>=10'}
    +
    +  yargs@16.2.0:
    +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    +    engines: {node: '>=10'}
    +
    +  yargs@17.7.2:
    +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    +    engines: {node: '>=12'}
    +
    +  yeoman-environment@3.19.3:
    +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    +    engines: {node: '>=12.10.0'}
    +    hasBin: true
    +
    +  yeoman-generator@5.10.0:
    +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      yeoman-environment: ^3.2.0
    +    peerDependenciesMeta:
    +      yeoman-environment:
    +        optional: true
    +
    +  yn@3.1.1:
    +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    +    engines: {node: '>=6'}
    +
    +  yocto-queue@0.1.0:
    +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    +    engines: {node: '>=10'}
    +
    +  yocto-queue@1.0.0:
    +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    +    engines: {node: '>=12.20'}
    +
    +  zod@3.22.4:
    +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    +
    +  zwitch@2.0.4:
    +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    +
    +snapshots:
    +
    +  '@aashutoshrathi/word-wrap@1.2.6': {}
    +
    +  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -782,161 +9680,105 @@ packages:
           - '@algolia/client-search'
           - algoliasearch
           - search-insights
    -    dev: false
     
    -  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    -    peerDependencies:
    -      search-insights: '>= 1 < 3'
    +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
           - algoliasearch
    -    dev: false
     
    -  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    +  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    +  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
         dependencies:
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /@algolia/cache-browser-local-storage@4.22.1:
    -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    +  '@algolia/cache-browser-local-storage@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
    -    dev: false
     
    -  /@algolia/cache-common@4.22.1:
    -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    -    dev: false
    +  '@algolia/cache-common@4.22.1': {}
     
    -  /@algolia/cache-in-memory@4.22.1:
    -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    +  '@algolia/cache-in-memory@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
    -    dev: false
     
    -  /@algolia/client-account@4.22.1:
    -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    +  '@algolia/client-account@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-analytics@4.22.1:
    -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    +  '@algolia/client-analytics@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-common@4.22.1:
    -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    +  '@algolia/client-common@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-personalization@4.22.1:
    -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    +  '@algolia/client-personalization@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-search@4.22.1:
    -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    +  '@algolia/client-search@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/events@4.0.1:
    -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    -    dev: false
    +  '@algolia/events@4.0.1': {}
     
    -  /@algolia/logger-common@4.22.1:
    -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    -    dev: false
    +  '@algolia/logger-common@4.22.1': {}
     
    -  /@algolia/logger-console@4.22.1:
    -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    +  '@algolia/logger-console@4.22.1':
         dependencies:
           '@algolia/logger-common': 4.22.1
    -    dev: false
     
    -  /@algolia/requester-browser-xhr@4.22.1:
    -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    +  '@algolia/requester-browser-xhr@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@algolia/requester-common@4.22.1:
    -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    -    dev: false
    +  '@algolia/requester-common@4.22.1': {}
     
    -  /@algolia/requester-node-http@4.22.1:
    -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    +  '@algolia/requester-node-http@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@algolia/transporter@4.22.1:
    -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    +  '@algolia/transporter@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
           '@algolia/logger-common': 4.22.1
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@alloc/quick-lru@5.2.0:
    -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  '@alloc/quick-lru@5.2.0': {}
     
    -  /@ampproject/remapping@2.3.0:
    -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    -    engines: {node: '>=6.0.0'}
    +  '@ampproject/remapping@2.3.0':
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@babel/code-frame@7.24.2:
    -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/code-frame@7.24.2':
         dependencies:
           '@babel/highlight': 7.24.2
           picocolors: 1.0.0
     
    -  /@babel/compat-data@7.24.1:
    -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/compat-data@7.24.1': {}
     
    -  /@babel/core@7.24.3:
    -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/core@7.24.3':
         dependencies:
           '@ampproject/remapping': 2.3.0
           '@babel/code-frame': 7.24.2
    @@ -956,30 +9798,22 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/generator@7.24.1:
    -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/generator@7.24.1':
         dependencies:
           '@babel/types': 7.24.0
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
           jsesc: 2.5.2
     
    -  /@babel/helper-annotate-as-pure@7.22.5:
    -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-annotate-as-pure@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
    -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-compilation-targets@7.23.6:
    -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-compilation-targets@7.23.6':
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/helper-validator-option': 7.23.5
    @@ -987,11 +9821,7 @@ packages:
           lru-cache: 5.1.1
           semver: 6.3.1
     
    -  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1004,21 +9834,14 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           semver: 6.3.1
     
    -  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           regexpu-core: 5.3.2
           semver: 6.3.1
     
    -  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -1029,40 +9852,26 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/helper-environment-visitor@7.22.20:
    -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-environment-visitor@7.22.20': {}
     
    -  /@babel/helper-function-name@7.23.0:
    -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-function-name@7.23.0':
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  /@babel/helper-hoist-variables@7.22.5:
    -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-hoist-variables@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-member-expression-to-functions@7.23.0:
    -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-member-expression-to-functions@7.23.0':
         dependencies:
           '@babel/types': 7.24.0
    -
    -  /@babel/helper-module-imports@7.24.3:
    -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    -    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-module-imports@7.24.3':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -1071,79 +9880,51 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           '@babel/helper-validator-identifier': 7.22.20
     
    -  /@babel/helper-optimise-call-expression@7.22.5:
    -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-optimise-call-expression@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-plugin-utils@7.24.0:
    -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-plugin-utils@7.24.0': {}
     
    -  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-wrap-function': 7.22.20
     
    -  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-member-expression-to-functions': 7.23.0
           '@babel/helper-optimise-call-expression': 7.22.5
     
    -  /@babel/helper-simple-access@7.22.5:
    -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-simple-access@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
    -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-split-export-declaration@7.22.6:
    -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-split-export-declaration@7.22.6':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-string-parser@7.24.1:
    -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-string-parser@7.24.1': {}
     
    -  /@babel/helper-validator-identifier@7.22.20:
    -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-validator-identifier@7.22.20': {}
     
    -  /@babel/helper-validator-option@7.23.5:
    -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-validator-option@7.23.5': {}
     
    -  /@babel/helper-wrap-function@7.22.20:
    -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-wrap-function@7.22.20':
         dependencies:
           '@babel/helper-function-name': 7.23.0
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  /@babel/helpers@7.24.1:
    -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helpers@7.24.1':
         dependencies:
           '@babel/template': 7.24.0
           '@babel/traverse': 7.24.1
    @@ -1151,252 +9932,151 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/highlight@7.24.2:
    -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/highlight@7.24.2':
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           chalk: 2.4.2
           js-tokens: 4.0.0
           picocolors: 1.0.0
     
    -  /@babel/parser@7.24.1:
    -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    -    engines: {node: '>=6.0.0'}
    -    hasBin: true
    +  '@babel/parser@7.24.1':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.13.0
    +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    -    dev: true
     
    -  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -1404,61 +10084,37 @@ packages:
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    +  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1470,159 +10126,95 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           globals: 11.12.0
     
    -  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/template': 7.24.0
     
    -  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
           '@babel/helper-function-name': 7.23.0
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-simple-access': 7.22.5
     
    -  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-hoist-variables': 7.22.5
    @@ -1630,60 +10222,36 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-validator-identifier': 7.22.20
     
    -  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -1691,61 +10259,37 @@ packages:
           '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -      '@babel/helper-plugin-utils': 7.24.0
    -      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
    -
    -  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +      '@babel/helper-plugin-utils': 7.24.0
    +      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
    +
    +  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1753,47 +10297,27 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1802,40 +10326,24 @@ packages:
           '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
           '@babel/types': 7.24.0
     
    -  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           regenerator-transform: 0.15.2
     
    -  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
    @@ -1846,59 +10354,34 @@ packages:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1906,50 +10389,30 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -2035,21 +10498,14 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    +  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/types': 7.24.0
           esutils: 2.0.3
     
    -  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -2059,11 +10515,7 @@ packages:
           '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
           '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -2072,34 +10524,24 @@ packages:
           '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
           '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/regjsgen@0.8.0:
    -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    +  '@babel/regjsgen@0.8.0': {}
     
    -  /@babel/runtime-corejs3@7.24.1:
    -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/runtime-corejs3@7.24.1':
         dependencies:
           core-js-pure: 3.36.1
           regenerator-runtime: 0.14.1
    -    dev: false
     
    -  /@babel/runtime@7.24.1:
    -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/runtime@7.24.1':
         dependencies:
           regenerator-runtime: 0.14.1
     
    -  /@babel/template@7.24.0:
    -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/template@7.24.0':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
     
    -  /@babel/traverse@7.24.1:
    -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/traverse@7.24.1':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/generator': 7.24.1
    @@ -2114,67 +10556,34 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/types@7.24.0:
    -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/types@7.24.0':
         dependencies:
           '@babel/helper-string-parser': 7.24.1
           '@babel/helper-validator-identifier': 7.22.20
           to-fast-properties: 2.0.0
     
    -  /@bcoe/v8-coverage@0.2.3:
    -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    -    dev: true
    +  '@bcoe/v8-coverage@0.2.3': {}
     
    -  /@colors/colors@1.5.0:
    -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    -    engines: {node: '>=0.1.90'}
    -    requiresBuild: true
    -    dev: false
    +  '@colors/colors@1.5.0':
         optional: true
     
    -  /@colors/colors@1.6.0:
    -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    -    engines: {node: '>=0.1.90'}
    +  '@colors/colors@1.6.0': {}
     
    -  /@cspotcode/source-map-support@0.8.1:
    -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    -    engines: {node: '>=12'}
    +  '@cspotcode/source-map-support@0.8.1':
         dependencies:
           '@jridgewell/trace-mapping': 0.3.9
    -    dev: true
     
    -  /@dabh/diagnostics@2.0.3:
    -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    +  '@dabh/diagnostics@2.0.3':
         dependencies:
           colorspace: 1.1.4
           enabled: 2.0.0
           kuler: 2.0.0
     
    -  /@discoveryjs/json-ext@0.5.7:
    -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    -    engines: {node: '>=10.0.0'}
    +  '@discoveryjs/json-ext@0.5.7': {}
     
    -  /@docsearch/css@3.6.0:
    -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    -    dev: false
    +  '@docsearch/css@3.6.0': {}
     
    -  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
    -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    -    peerDependencies:
    -      '@types/react': '>= 16.8.0 < 19.0.0'
    -      react: '>= 16.8.0 < 19.0.0 || 18'
    -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    -      search-insights: '>= 1 < 3'
    -    peerDependenciesMeta:
    -      '@types/react':
    -        optional: true
    -      react:
    -        optional: true
    -      react-dom:
    -        optional: true
    -      search-insights:
    -        optional: true
    +  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -2186,15 +10595,8 @@ packages:
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
    -    dev: false
     
    -  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    -    engines: {node: '>=18.0'}
    -    hasBin: true
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -2249,7 +10651,7 @@ packages:
           react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
           react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
           react-router: 5.3.4(react@18.2.0)
           react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
    @@ -2285,32 +10687,20 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/cssnano-preset@3.1.1:
    -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/cssnano-preset@3.1.1':
         dependencies:
           cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
           postcss: 8.4.38
           postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/logger@3.1.1:
    -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/logger@3.1.1':
         dependencies:
           chalk: 4.1.2
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/traverse': 7.24.1
    @@ -2347,13 +10737,8 @@ packages:
           - supports-color
           - uglify-js
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2364,7 +10749,7 @@ packages:
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
         transitivePeerDependencies:
           - '@swc/core'
           - esbuild
    @@ -2372,12 +10757,7 @@ packages:
           - uglify-js
           - webpack-cli
     
    -  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2415,14 +10795,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2458,14 +10832,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2494,14 +10862,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2528,14 +10890,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2560,14 +10916,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2593,14 +10943,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2625,14 +10969,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2662,14 +11000,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -2706,23 +11038,14 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
    -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    -    peerDependencies:
    -      react: '*'
    +  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
         dependencies:
           '@types/react': 18.2.71
           prop-types: 15.8.1
           react: 18.2.0
     
    -  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2769,14 +11092,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2813,14 +11130,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
         dependencies:
           '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -2861,22 +11172,13 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
    -    patched: true
     
    -  /@docusaurus/theme-translations@3.1.1:
    -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/theme-translations@3.1.1':
         dependencies:
           fs-extra: 11.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@mdx-js/mdx': 3.0.1
           '@types/history': 4.7.11
    @@ -2896,22 +11198,12 @@ packages:
           - uglify-js
           - webpack-cli
     
    -  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
    -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    +  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
         dependencies:
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
    @@ -2925,16 +11217,8 @@ packages:
           - supports-color
           - uglify-js
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    +  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2960,232 +11244,97 @@ packages:
           - supports-color
           - uglify-js
           - webpack-cli
    -    dev: false
    -
    -  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
    -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    -    peerDependencies:
    -      effect: 2.0.0-next.62
    -      fast-check: ^3.13.2
    +
    +  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
         dependencies:
           effect: 2.0.0-next.62
           fast-check: 3.15.0
    -    dev: true
     
    -  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
    -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      html-webpack-plugin: '>=5'
    -      webpack: '>=5'
    +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
         dependencies:
           escape-string-regexp: 4.0.0
           html-webpack-plugin: 5.6.0(webpack@5.91.0)
           slash: 3.0.0
           source-map-url: 0.4.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /@esbuild/aix-ppc64@0.20.2:
    -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [aix]
    -    requiresBuild: true
    +  '@esbuild/aix-ppc64@0.20.2':
         optional: true
     
    -  /@esbuild/android-arm64@0.20.2:
    -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/android-arm@0.20.2:
    -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-arm@0.20.2':
         optional: true
     
    -  /@esbuild/android-x64@0.20.2:
    -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-x64@0.20.2':
         optional: true
     
    -  /@esbuild/darwin-arm64@0.20.2:
    -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    +  '@esbuild/darwin-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/darwin-x64@0.20.2:
    -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    +  '@esbuild/darwin-x64@0.20.2':
         optional: true
     
    -  /@esbuild/freebsd-arm64@0.20.2:
    -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -    requiresBuild: true
    +  '@esbuild/freebsd-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/freebsd-x64@0.20.2:
    -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -    requiresBuild: true
    +  '@esbuild/freebsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-arm64@0.20.2:
    -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-arm@0.20.2:
    -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-arm@0.20.2':
         optional: true
     
    -  /@esbuild/linux-ia32@0.20.2:
    -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-ia32@0.20.2':
         optional: true
     
    -  /@esbuild/linux-loong64@0.20.2:
    -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-loong64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-mips64el@0.20.2:
    -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-mips64el@0.20.2':
         optional: true
     
    -  /@esbuild/linux-ppc64@0.20.2:
    -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-ppc64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-riscv64@0.20.2:
    -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-riscv64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-s390x@0.20.2:
    -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-s390x@0.20.2':
         optional: true
     
    -  /@esbuild/linux-x64@0.20.2:
    -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-x64@0.20.2':
         optional: true
     
    -  /@esbuild/netbsd-x64@0.20.2:
    -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -    requiresBuild: true
    +  '@esbuild/netbsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/openbsd-x64@0.20.2:
    -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -    requiresBuild: true
    +  '@esbuild/openbsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/sunos-x64@0.20.2:
    -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -    requiresBuild: true
    +  '@esbuild/sunos-x64@0.20.2':
         optional: true
     
    -  /@esbuild/win32-arm64@0.20.2:
    -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/win32-ia32@0.20.2:
    -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-ia32@0.20.2':
         optional: true
     
    -  /@esbuild/win32-x64@0.20.2:
    -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-x64@0.20.2':
         optional: true
     
    -  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    +  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 3.4.3
     
    -  /@eslint-community/regexpp@4.10.0:
    -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    +  '@eslint-community/regexpp@4.10.0': {}
     
    -  /@eslint/eslintrc@2.1.4:
    -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  '@eslint/eslintrc@2.1.4':
         dependencies:
           ajv: 6.12.6
           debug: 4.3.4(supports-color@8.1.1)
    @@ -3199,62 +11348,35 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@eslint/js@8.57.0:
    -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  '@eslint/js@8.57.0': {}
     
    -  /@fortawesome/fontawesome-common-types@6.5.1:
    -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    -    dev: false
    +  '@fortawesome/fontawesome-common-types@6.5.1': {}
     
    -  /@fortawesome/fontawesome-svg-core@6.5.1:
    -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    +  '@fortawesome/fontawesome-svg-core@6.5.1':
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    -    dev: false
     
    -  /@fortawesome/free-solid-svg-icons@6.5.1:
    -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    +  '@fortawesome/free-solid-svg-icons@6.5.1':
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    -    dev: false
     
    -  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
    -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    -    peerDependencies:
    -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    -      react: '>=16.3 || 18'
    +  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
         dependencies:
           '@fortawesome/fontawesome-svg-core': 6.5.1
           prop-types: 15.8.1
           react: 18.2.0
    -    dev: false
     
    -  /@gar/promisify@1.1.3:
    -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    +  '@gar/promisify@1.1.3': {}
     
    -  /@gwhitney/detect-indent@7.0.1:
    -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    -    engines: {node: '>=12.20'}
    -    dev: true
    +  '@gwhitney/detect-indent@7.0.1': {}
     
    -  /@hapi/hoek@9.3.0:
    -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    +  '@hapi/hoek@9.3.0': {}
     
    -  /@hapi/topo@5.1.0:
    -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    +  '@hapi/topo@5.1.0':
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  /@humanwhocodes/config-array@0.11.14:
    -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    -    engines: {node: '>=10.10.0'}
    +  '@humanwhocodes/config-array@0.11.14':
         dependencies:
           '@humanwhocodes/object-schema': 2.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -3262,46 +11384,32 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@humanwhocodes/module-importer@1.0.1:
    -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    -    engines: {node: '>=12.22'}
    +  '@humanwhocodes/module-importer@1.0.1': {}
     
    -  /@humanwhocodes/object-schema@2.0.2:
    -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    +  '@humanwhocodes/object-schema@2.0.2': {}
     
    -  /@isaacs/cliui@8.0.2:
    -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    -    engines: {node: '>=12'}
    +  '@isaacs/cliui@8.0.2':
         dependencies:
           string-width: 5.1.2
    -      string-width-cjs: /string-width@4.2.3
    +      string-width-cjs: string-width@4.2.3
           strip-ansi: 7.1.0
    -      strip-ansi-cjs: /strip-ansi@6.0.1
    +      strip-ansi-cjs: strip-ansi@6.0.1
           wrap-ansi: 8.1.0
    -      wrap-ansi-cjs: /wrap-ansi@7.0.0
    +      wrap-ansi-cjs: wrap-ansi@7.0.0
     
    -  /@isaacs/string-locale-compare@1.1.0:
    -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    +  '@isaacs/string-locale-compare@1.1.0': {}
     
    -  /@istanbuljs/load-nyc-config@1.1.0:
    -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    -    engines: {node: '>=8'}
    +  '@istanbuljs/load-nyc-config@1.1.0':
         dependencies:
           camelcase: 5.3.1
           find-up: 4.1.0
           get-package-type: 0.1.0
           js-yaml: 3.14.1
           resolve-from: 5.0.0
    -    dev: true
     
    -  /@istanbuljs/schema@0.1.3:
    -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  '@istanbuljs/schema@0.1.3': {}
     
    -  /@jest/console@29.7.0:
    -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/console@29.7.0':
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -3309,16 +11417,8 @@ packages:
           jest-message-util: 29.7.0
           jest-util: 29.7.0
           slash: 3.0.0
    -    dev: true
     
    -  /@jest/core@29.7.0(ts-node@10.9.2):
    -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  '@jest/core@29.7.0(ts-node@10.9.2)':
         dependencies:
           '@jest/console': 29.7.0
           '@jest/reporters': 29.7.0
    @@ -3352,38 +11452,26 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /@jest/environment@29.7.0:
    -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/environment@29.7.0':
         dependencies:
           '@jest/fake-timers': 29.7.0
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-mock: 29.7.0
    -    dev: true
     
    -  /@jest/expect-utils@29.7.0:
    -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/expect-utils@29.7.0':
         dependencies:
           jest-get-type: 29.6.3
    -    dev: true
     
    -  /@jest/expect@29.7.0:
    -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/expect@29.7.0':
         dependencies:
           expect: 29.7.0
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/fake-timers@29.7.0:
    -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/fake-timers@29.7.0':
         dependencies:
           '@jest/types': 29.6.3
           '@sinonjs/fake-timers': 10.3.0
    @@ -3391,11 +11479,8 @@ packages:
           jest-message-util: 29.7.0
           jest-mock: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /@jest/globals@29.7.0:
    -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/globals@29.7.0':
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -3403,16 +11488,8 @@ packages:
           jest-mock: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/reporters@29.7.0:
    -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  '@jest/reporters@29.7.0':
         dependencies:
           '@bcoe/v8-coverage': 0.2.3
           '@jest/console': 29.7.0
    @@ -3440,46 +11517,32 @@ packages:
           v8-to-istanbul: 9.2.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/schemas@29.6.3:
    -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/schemas@29.6.3':
         dependencies:
           '@sinclair/typebox': 0.27.8
     
    -  /@jest/source-map@29.6.3:
    -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/source-map@29.6.3':
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           callsites: 3.1.0
           graceful-fs: 4.2.11
    -    dev: true
     
    -  /@jest/test-result@29.7.0:
    -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/test-result@29.7.0':
         dependencies:
           '@jest/console': 29.7.0
           '@jest/types': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
           collect-v8-coverage: 1.0.2
    -    dev: true
     
    -  /@jest/test-sequencer@29.7.0:
    -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/test-sequencer@29.7.0':
         dependencies:
           '@jest/test-result': 29.7.0
           graceful-fs: 4.2.11
           jest-haste-map: 29.7.0
           slash: 3.0.0
    -    dev: true
     
    -  /@jest/transform@29.7.0:
    -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/transform@29.7.0':
         dependencies:
           '@babel/core': 7.24.3
           '@jest/types': 29.6.3
    @@ -3498,11 +11561,8 @@ packages:
           write-file-atomic: 4.0.2
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/types@29.6.3:
    -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/types@29.6.3':
         dependencies:
           '@jest/schemas': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
    @@ -3511,61 +11571,44 @@ packages:
           '@types/yargs': 17.0.32
           chalk: 4.1.2
     
    -  /@jridgewell/gen-mapping@0.3.5:
    -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/gen-mapping@0.3.5':
         dependencies:
           '@jridgewell/set-array': 1.2.1
           '@jridgewell/sourcemap-codec': 1.4.15
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@jridgewell/resolve-uri@3.1.2:
    -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/resolve-uri@3.1.2': {}
     
    -  /@jridgewell/set-array@1.2.1:
    -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/set-array@1.2.1': {}
     
    -  /@jridgewell/source-map@0.3.6:
    -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    +  '@jridgewell/source-map@0.3.6':
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@jridgewell/sourcemap-codec@1.4.15:
    -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    +  '@jridgewell/sourcemap-codec@1.4.15': {}
     
    -  /@jridgewell/trace-mapping@0.3.25:
    -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +  '@jridgewell/trace-mapping@0.3.25':
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
     
    -  /@jridgewell/trace-mapping@0.3.9:
    -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    +  '@jridgewell/trace-mapping@0.3.9':
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
    -    dev: true
     
    -  /@leichtgewicht/ip-codec@2.0.4:
    -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    +  '@leichtgewicht/ip-codec@2.0.4': {}
     
    -  /@mdx-js/loader@3.0.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    -    peerDependencies:
    -      webpack: '>=5'
    +  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
         dependencies:
           '@mdx-js/mdx': 3.0.1
           source-map: 0.7.4
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@mdx-js/mdx@3.0.1:
    -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    +  '@mdx-js/mdx@3.0.1':
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -3593,150 +11636,66 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
    -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    -    peerDependencies:
    -      '@types/react': '>=16'
    -      react: '>=16 || 18'
    +  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
         dependencies:
           '@types/mdx': 2.0.12
           '@types/react': 18.2.71
           react: 18.2.0
    -    dev: false
     
    -  /@msgpack/msgpack@2.8.0:
    -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    -    engines: {node: '>= 10'}
    +  '@msgpack/msgpack@2.8.0': {}
     
    -  /@next/env@14.1.4:
    -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    -    dev: false
    +  '@next/env@14.1.4': {}
     
    -  /@next/eslint-plugin-next@14.1.4:
    -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    +  '@next/eslint-plugin-next@14.1.4':
         dependencies:
           glob: 10.3.10
    -    dev: true
     
    -  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
    -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    -    peerDependencies:
    -      '@mdx-js/loader': '>=0.15.0'
    -      '@mdx-js/react': '>=0.15.0'
    -    peerDependenciesMeta:
    -      '@mdx-js/loader':
    -        optional: true
    -      '@mdx-js/react':
    -        optional: true
    +  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
         dependencies:
           '@mdx-js/loader': 3.0.1(webpack@5.91.0)
           '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
           source-map: 0.7.4
    -    dev: false
     
    -  /@next/swc-darwin-arm64@14.1.4:
    -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-darwin-arm64@14.1.4':
         optional: true
     
    -  /@next/swc-darwin-x64@14.1.4:
    -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-darwin-x64@14.1.4':
         optional: true
     
    -  /@next/swc-linux-arm64-gnu@14.1.4:
    -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-arm64-gnu@14.1.4':
         optional: true
     
    -  /@next/swc-linux-arm64-musl@14.1.4:
    -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-arm64-musl@14.1.4':
         optional: true
     
    -  /@next/swc-linux-x64-gnu@14.1.4:
    -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-x64-gnu@14.1.4':
         optional: true
     
    -  /@next/swc-linux-x64-musl@14.1.4:
    -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-x64-musl@14.1.4':
         optional: true
     
    -  /@next/swc-win32-arm64-msvc@14.1.4:
    -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-arm64-msvc@14.1.4':
         optional: true
     
    -  /@next/swc-win32-ia32-msvc@14.1.4:
    -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    -    engines: {node: '>= 10'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-ia32-msvc@14.1.4':
         optional: true
     
    -  /@next/swc-win32-x64-msvc@14.1.4:
    -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-x64-msvc@14.1.4':
         optional: true
     
    -  /@nodelib/fs.scandir@2.1.5:
    -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.scandir@2.1.5':
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           run-parallel: 1.2.0
     
    -  /@nodelib/fs.stat@2.0.5:
    -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.stat@2.0.5': {}
     
    -  /@nodelib/fs.walk@1.2.8:
    -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.walk@1.2.8':
         dependencies:
           '@nodelib/fs.scandir': 2.1.5
           fastq: 1.17.1
     
    -  /@npmcli/arborist@4.3.1:
    -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    +  '@npmcli/arborist@4.3.1':
         dependencies:
           '@isaacs/string-locale-compare': 1.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -3774,27 +11733,21 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/fs@1.1.1:
    -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    +  '@npmcli/fs@1.1.1':
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  /@npmcli/fs@2.1.2:
    -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  '@npmcli/fs@2.1.2':
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  /@npmcli/fs@3.1.0:
    -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/fs@3.1.0':
         dependencies:
           semver: 7.6.0
     
    -  /@npmcli/git@2.1.0:
    -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    +  '@npmcli/git@2.1.0':
         dependencies:
           '@npmcli/promise-spawn': 1.3.2
           lru-cache: 6.0.0
    @@ -3807,9 +11760,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /@npmcli/git@4.1.0:
    -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/git@4.1.0':
         dependencies:
           '@npmcli/promise-spawn': 6.0.2
           lru-cache: 7.18.3
    @@ -3822,34 +11773,24 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /@npmcli/installed-package-contents@1.0.7:
    -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    -    engines: {node: '>= 10'}
    -    hasBin: true
    +  '@npmcli/installed-package-contents@1.0.7':
         dependencies:
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  /@npmcli/installed-package-contents@2.0.2:
    -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  '@npmcli/installed-package-contents@2.0.2':
         dependencies:
           npm-bundled: 3.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  /@npmcli/map-workspaces@2.0.4:
    -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  '@npmcli/map-workspaces@2.0.4':
         dependencies:
           '@npmcli/name-from-folder': 1.0.1
           glob: 8.1.0
           minimatch: 5.1.6
           read-package-json-fast: 2.0.3
     
    -  /@npmcli/metavuln-calculator@2.0.0:
    -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +  '@npmcli/metavuln-calculator@2.0.0':
         dependencies:
           cacache: 15.3.0
           json-parse-even-better-errors: 2.3.1
    @@ -3859,50 +11800,35 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/move-file@1.1.2:
    -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    -    engines: {node: '>=10'}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  '@npmcli/move-file@1.1.2':
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  /@npmcli/move-file@2.0.1:
    -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  '@npmcli/move-file@2.0.1':
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  /@npmcli/name-from-folder@1.0.1:
    -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    +  '@npmcli/name-from-folder@1.0.1': {}
     
    -  /@npmcli/node-gyp@1.0.3:
    -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    +  '@npmcli/node-gyp@1.0.3': {}
     
    -  /@npmcli/node-gyp@3.0.0:
    -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/node-gyp@3.0.0': {}
     
    -  /@npmcli/package-json@1.0.1:
    -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    +  '@npmcli/package-json@1.0.1':
         dependencies:
           json-parse-even-better-errors: 2.3.1
     
    -  /@npmcli/promise-spawn@1.3.2:
    -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    +  '@npmcli/promise-spawn@1.3.2':
         dependencies:
           infer-owner: 1.0.4
     
    -  /@npmcli/promise-spawn@6.0.2:
    -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/promise-spawn@6.0.2':
         dependencies:
           which: 3.0.1
     
    -  /@npmcli/run-script@2.0.0:
    -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    +  '@npmcli/run-script@2.0.0':
         dependencies:
           '@npmcli/node-gyp': 1.0.3
           '@npmcli/promise-spawn': 1.3.2
    @@ -3912,9 +11838,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/run-script@6.0.2:
    -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/run-script@6.0.2':
         dependencies:
           '@npmcli/node-gyp': 3.0.0
           '@npmcli/promise-spawn': 6.0.2
    @@ -3925,13 +11849,11 @@ packages:
           - bluebird
           - supports-color
     
    -  /@octokit/auth-token@2.5.0:
    -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    +  '@octokit/auth-token@2.5.0':
         dependencies:
           '@octokit/types': 6.41.0
     
    -  /@octokit/core@3.6.0:
    -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    +  '@octokit/core@3.6.0':
         dependencies:
           '@octokit/auth-token': 2.5.0
           '@octokit/graphql': 4.8.0
    @@ -3943,15 +11865,13 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/endpoint@6.0.12:
    -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    +  '@octokit/endpoint@6.0.12':
         dependencies:
           '@octokit/types': 6.41.0
           is-plain-object: 5.0.0
           universal-user-agent: 6.0.1
     
    -  /@octokit/graphql@4.8.0:
    -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    +  '@octokit/graphql@4.8.0':
         dependencies:
           '@octokit/request': 5.6.3
           '@octokit/types': 6.41.0
    @@ -3959,42 +11879,30 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/openapi-types@12.11.0:
    -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    +  '@octokit/openapi-types@12.11.0': {}
     
    -  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    -    peerDependencies:
    -      '@octokit/core': '>=2'
    +  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
     
    -  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    +  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
     
    -  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    +  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
     
    -  /@octokit/request-error@2.1.0:
    -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    +  '@octokit/request-error@2.1.0':
         dependencies:
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
           once: 1.4.0
     
    -  /@octokit/request@5.6.3:
    -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    +  '@octokit/request@5.6.3':
         dependencies:
           '@octokit/endpoint': 6.0.12
           '@octokit/request-error': 2.1.0
    @@ -4005,8 +11913,7 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/rest@18.12.0:
    -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    +  '@octokit/rest@18.12.0':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
    @@ -4015,30 +11922,19 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/types@6.41.0:
    -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    +  '@octokit/types@6.41.0':
         dependencies:
           '@octokit/openapi-types': 12.11.0
     
    -  /@pkgjs/parseargs@0.11.0:
    -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    -    engines: {node: '>=14'}
    -    requiresBuild: true
    +  '@pkgjs/parseargs@0.11.0':
         optional: true
     
    -  /@pnpm/cli-meta@5.0.1:
    -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/cli-meta@5.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
           load-json-file: 6.2.0
    -    dev: true
     
    -  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/cli-meta': 5.0.1
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
    @@ -4051,15 +11947,10 @@ packages:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           load-json-file: 6.2.0
    -    dev: true
     
    -  /@pnpm/config.env-replace@1.1.0:
    -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/config.env-replace@1.1.0': {}
     
    -  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/constants': 7.1.0
    @@ -4079,80 +11970,44 @@ packages:
           normalize-registry-url: 2.0.0
           path-absolute: 1.0.1
           path-name: 1.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           read-ini-file: 4.0.0
           realpath-missing: 1.1.0
           which: 3.0.1
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/constants@6.2.0:
    -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    -    engines: {node: '>=14.6'}
    -    dev: false
    +  '@pnpm/constants@6.2.0': {}
     
    -  /@pnpm/constants@7.1.0:
    -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/constants@7.1.0': {}
     
    -  /@pnpm/constants@7.1.1:
    -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/constants@7.1.1': {}
     
    -  /@pnpm/constants@8.0.0:
    -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/constants@8.0.0': {}
     
    -  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/crypto.base32-hash@3.0.0:
    -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/crypto.base32-hash@3.0.0':
         dependencies:
           rfc4648: 1.5.3
    -    dev: false
     
    -  /@pnpm/dedupe.issues-renderer@1.0.0:
    -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/dedupe.issues-renderer@1.0.0':
         dependencies:
           '@pnpm/dedupe.types': 1.0.0
           archy: 1.0.0
           chalk: 4.1.2
    -    dev: true
     
    -  /@pnpm/dedupe.types@1.0.0:
    -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/dedupe.types@1.0.0': {}
     
    -  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
    @@ -4168,57 +12023,37 @@ packages:
           normalize-path: 3.0.0
           pretty-bytes: 5.6.0
           pretty-ms: 7.0.1
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           right-pad: 1.0.1
           rxjs: 7.8.1
           semver: 7.6.0
           stacktracey: 2.1.8
           string-length: 4.0.2
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /@pnpm/dependency-path@3.0.0:
    -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/dependency-path@3.0.0':
         dependencies:
           '@pnpm/crypto.base32-hash': 3.0.0
           '@pnpm/types': 10.0.0
           semver: 7.6.0
    -    dev: false
     
    -  /@pnpm/error@4.0.1:
    -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    -    engines: {node: '>=14.6'}
    +  '@pnpm/error@4.0.1':
         dependencies:
           '@pnpm/constants': 6.2.0
    -    dev: false
     
    -  /@pnpm/error@5.0.1:
    -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/error@5.0.1':
         dependencies:
           '@pnpm/constants': 7.1.0
    -    dev: true
     
    -  /@pnpm/error@5.0.3:
    -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/error@5.0.3':
         dependencies:
           '@pnpm/constants': 7.1.1
    -    dev: true
     
    -  /@pnpm/error@6.0.0:
    -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/error@6.0.0':
         dependencies:
           '@pnpm/constants': 8.0.0
    -    dev: false
     
    -  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
           '@pnpm/fetching-types': 6.0.0
    @@ -4226,42 +12061,30 @@ packages:
           '@pnpm/network.agent': 1.0.1
           '@pnpm/types': 10.0.0
           '@zkochan/retry': 0.2.0
    -      node-fetch: /@pnpm/node-fetch@1.0.0
    +      node-fetch: '@pnpm/node-fetch@1.0.0'
         transitivePeerDependencies:
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/fetcher-base@14.0.1:
    -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/fetcher-base@14.0.1':
         dependencies:
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
           '@types/ssri': 7.1.5
    -    dev: true
     
    -  /@pnpm/fetching-types@6.0.0:
    -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/fetching-types@6.0.0':
         dependencies:
           '@zkochan/retry': 0.2.0
    -      node-fetch: /@pnpm/node-fetch@1.0.0
    +      node-fetch: '@pnpm/node-fetch@1.0.0'
         transitivePeerDependencies:
           - domexception
    -    dev: false
     
    -  /@pnpm/find-workspace-dir@6.0.3:
    -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/find-workspace-dir@6.0.3':
         dependencies:
           '@pnpm/error': 5.0.3
           find-up: 5.0.0
    -    dev: true
     
    -  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
           '@pnpm/constants': 7.1.0
    @@ -4271,75 +12094,49 @@ packages:
           read-yaml-file: 2.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/fs.find-packages@2.0.1:
    -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/fs.find-packages@2.0.1':
         dependencies:
           '@pnpm/read-project-manifest': 5.0.1
           '@pnpm/types': 9.1.0
           '@pnpm/util.lex-comparator': 1.0.0
           fast-glob: 3.3.2
           p-filter: 2.1.0
    -    dev: true
     
    -  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
           '@pnpm/resolver-base': 12.0.0
           graceful-git: 3.1.2
    -      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
    +      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
           semver: 7.6.0
         transitivePeerDependencies:
           - '@pnpm/logger'
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/git-utils@1.0.0:
    -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/git-utils@1.0.0':
         dependencies:
    -      execa: /safe-execa@0.1.2
    -    dev: true
    +      execa: safe-execa@0.1.2
     
    -  /@pnpm/git-utils@2.0.0:
    -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/git-utils@2.0.0':
         dependencies:
    -      execa: /safe-execa@0.1.2
    -    dev: false
    +      execa: safe-execa@0.1.2
     
    -  /@pnpm/graceful-fs@3.0.0:
    -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/graceful-fs@3.0.0':
         dependencies:
           graceful-fs: 4.2.11
    -    dev: true
     
    -  /@pnpm/hooks.types@1.0.1:
    -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/hooks.types@1.0.1':
         dependencies:
           '@pnpm/lockfile-types': 5.1.0
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/hosted-git-info@1.0.0:
    -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    -    engines: {node: '>=10'}
    +  '@pnpm/hosted-git-info@1.0.0':
         dependencies:
           lru-cache: 6.0.0
    -    dev: false
     
    -  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/constants': 8.0.0
           '@pnpm/dependency-path': 3.0.0
    @@ -4354,9 +12151,9 @@ packages:
           '@pnpm/util.lex-comparator': 3.0.0
           '@zkochan/rimraf': 2.1.3
           comver-to-semver: 1.0.0
    -      js-yaml: /@zkochan/js-yaml@0.0.7
    +      js-yaml: '@zkochan/js-yaml@0.0.7'
           normalize-path: 3.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           semver: 7.6.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    @@ -4364,25 +12161,16 @@ packages:
         transitivePeerDependencies:
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/lockfile-types@5.1.0:
    -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/lockfile-types@5.1.0':
         dependencies:
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/lockfile-types@6.0.0:
    -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/lockfile-types@6.0.0':
         dependencies:
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/lockfile-utils@10.0.0:
    -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/lockfile-utils@10.0.0':
         dependencies:
           '@pnpm/dependency-path': 3.0.0
           '@pnpm/lockfile-types': 6.0.0
    @@ -4390,48 +12178,33 @@ packages:
           '@pnpm/resolver-base': 12.0.0
           '@pnpm/types': 10.0.0
           get-npm-tarball-url: 2.1.0
    -      ramda: /@pnpm/ramda@0.28.1
    -    dev: false
    +      ramda: '@pnpm/ramda@0.28.1'
     
    -  /@pnpm/logger@5.0.0:
    -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    -    engines: {node: '>=12.17'}
    +  '@pnpm/logger@5.0.0':
         dependencies:
           bole: 5.0.11
           ndjson: 2.0.0
     
    -  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/types': 9.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/matcher@5.0.0:
    -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/matcher@5.0.0':
         dependencies:
           escape-string-regexp: 4.0.0
    -    dev: true
     
    -  /@pnpm/merge-lockfile-changes@6.0.0:
    -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/merge-lockfile-changes@6.0.0':
         dependencies:
           '@pnpm/lockfile-types': 6.0.0
           comver-to-semver: 1.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           semver: 7.6.0
    -    dev: false
     
    -  /@pnpm/meta-updater@1.0.0:
    -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    -    engines: {node: '>=10.12'}
    -    hasBin: true
    +  '@pnpm/meta-updater@1.0.0':
         dependencies:
           '@pnpm/find-workspace-dir': 6.0.3
           '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
    @@ -4442,11 +12215,8 @@ packages:
           print-diff: 1.0.0
           ramda: 0.29.1
           write-json-file: 5.0.0
    -    dev: true
     
    -  /@pnpm/network.agent@1.0.1:
    -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.agent@1.0.1':
         dependencies:
           '@pnpm/network.config': 1.0.1
           '@pnpm/network.proxy-agent': 1.0.1
    @@ -4454,24 +12224,16 @@ packages:
           lru-cache: 7.10.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@pnpm/network.ca-file@1.0.2:
    -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.ca-file@1.0.2':
         dependencies:
           graceful-fs: 4.2.10
     
    -  /@pnpm/network.config@1.0.1:
    -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.config@1.0.1':
         dependencies:
           nerf-dart: 1.0.0
    -    dev: false
     
    -  /@pnpm/network.proxy-agent@1.0.1:
    -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.proxy-agent@1.0.1':
         dependencies:
           '@pnpm/error': 4.0.1
           http-proxy-agent: 5.0.0
    @@ -4480,62 +12242,40 @@ packages:
           socks-proxy-agent: 6.1.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@pnpm/node-fetch@1.0.0:
    -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    -    engines: {node: ^10.17 || >=12.3}
    +  '@pnpm/node-fetch@1.0.0':
         dependencies:
           data-uri-to-buffer: 3.0.1
           fetch-blob: 2.1.2
         transitivePeerDependencies:
           - domexception
    -    dev: false
     
    -  /@pnpm/npm-conf@2.2.0:
    -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    -    engines: {node: '>=12'}
    +  '@pnpm/npm-conf@2.2.0':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    -    dev: true
     
    -  /@pnpm/npm-conf@2.2.2:
    -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    -    engines: {node: '>=12'}
    +  '@pnpm/npm-conf@2.2.2':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    -    dev: false
     
    -  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
           detect-libc: 2.0.3
    -      execa: /safe-execa@0.1.2
    +      execa: safe-execa@0.1.2
           mem: 8.1.1
           semver: 7.6.0
    -    dev: true
     
    -  /@pnpm/pick-fetcher@3.0.0:
    -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/pick-fetcher@3.0.0': {}
     
    -  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
    @@ -4546,14 +12286,10 @@ packages:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           path-absolute: 1.0.1
    -    dev: true
     
    -  /@pnpm/ramda@0.28.1:
    -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    +  '@pnpm/ramda@0.28.1': {}
     
    -  /@pnpm/read-project-manifest@5.0.1:
    -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/read-project-manifest@5.0.1':
         dependencies:
           '@gwhitney/detect-indent': 7.0.1
           '@pnpm/error': 5.0.1
    @@ -4568,116 +12304,69 @@ packages:
           read-yaml-file: 2.1.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    -    dev: true
     
    -  /@pnpm/render-peer-issues@4.0.1:
    -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/render-peer-issues@4.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
           archy: 1.0.0
           chalk: 4.1.2
           cli-columns: 4.0.0
    -    dev: true
     
    -  /@pnpm/resolver-base@10.0.1:
    -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/resolver-base@10.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/resolver-base@12.0.0:
    -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/resolver-base@12.0.0':
         dependencies:
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/store-controller-types@15.0.1:
    -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/store-controller-types@15.0.1':
         dependencies:
           '@pnpm/fetcher-base': 14.0.1
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/text.comments-parser@2.0.0:
    -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/text.comments-parser@2.0.0':
         dependencies:
           strip-comments-strings: 1.2.0
    -    dev: true
     
    -  /@pnpm/types@10.0.0:
    -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/types@10.0.0': {}
     
    -  /@pnpm/types@9.1.0:
    -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/types@9.1.0': {}
     
    -  /@pnpm/types@9.4.2:
    -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/types@9.4.2': {}
     
    -  /@pnpm/util.lex-comparator@1.0.0:
    -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    -    engines: {node: '>=12.22.0'}
    -    dev: true
    +  '@pnpm/util.lex-comparator@1.0.0': {}
     
    -  /@pnpm/util.lex-comparator@3.0.0:
    -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/util.lex-comparator@3.0.0': {}
     
    -  /@pnpm/write-project-manifest@5.0.1:
    -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/write-project-manifest@5.0.1':
         dependencies:
           '@pnpm/text.comments-parser': 2.0.0
           '@pnpm/types': 9.1.0
           json5: 2.2.3
           write-file-atomic: 5.0.1
           write-yaml-file: 5.0.0
    -    dev: true
     
    -  /@polka/url@1.0.0-next.25:
    -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    -    dev: false
    +  '@polka/url@1.0.0-next.25': {}
     
    -  /@rushstack/eslint-patch@1.8.0:
    -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    -    dev: true
    +  '@rushstack/eslint-patch@1.8.0': {}
     
    -  /@sideway/address@4.1.5:
    -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    +  '@sideway/address@4.1.5':
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  /@sideway/formula@3.0.1:
    -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    +  '@sideway/formula@3.0.1': {}
     
    -  /@sideway/pinpoint@2.0.0:
    -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    +  '@sideway/pinpoint@2.0.0': {}
     
    -  /@sigstore/bundle@1.1.0:
    -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/bundle@1.1.0':
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
     
    -  /@sigstore/protobuf-specs@0.2.1:
    -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/protobuf-specs@0.2.1': {}
     
    -  /@sigstore/sign@1.0.0:
    -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/sign@1.0.0':
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -4685,210 +12374,112 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@sigstore/tuf@1.0.3:
    -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/tuf@1.0.3':
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
           tuf-js: 1.1.7
         transitivePeerDependencies:
           - supports-color
     
    -  /@sinclair/typebox@0.27.8:
    -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    +  '@sinclair/typebox@0.27.8': {}
     
    -  /@sindresorhus/is@4.6.0:
    -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  '@sindresorhus/is@4.6.0': {}
     
    -  /@sindresorhus/is@5.6.0:
    -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  '@sindresorhus/is@5.6.0': {}
     
    -  /@sinonjs/commons@2.0.0:
    -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    +  '@sinonjs/commons@2.0.0':
         dependencies:
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/commons@3.0.1:
    -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    +  '@sinonjs/commons@3.0.1':
         dependencies:
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/fake-timers@10.3.0:
    -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    +  '@sinonjs/fake-timers@10.3.0':
         dependencies:
           '@sinonjs/commons': 3.0.1
    -    dev: true
     
    -  /@sinonjs/fake-timers@11.2.2:
    -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    +  '@sinonjs/fake-timers@11.2.2':
         dependencies:
           '@sinonjs/commons': 3.0.1
    -    dev: true
     
    -  /@sinonjs/samsam@8.0.0:
    -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    +  '@sinonjs/samsam@8.0.0':
         dependencies:
           '@sinonjs/commons': 2.0.0
           lodash.get: 4.4.2
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/text-encoding@0.7.2:
    -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    -    dev: true
    +  '@sinonjs/text-encoding@0.7.2': {}
     
    -  /@slorber/remark-comment@1.0.0:
    -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    +  '@slorber/remark-comment@1.0.0':
         dependencies:
           micromark-factory-space: 1.1.0
           micromark-util-character: 1.2.0
           micromark-util-symbol: 1.1.0
    -    dev: false
     
    -  /@slorber/static-site-generator-webpack-plugin@4.0.7:
    -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    -    engines: {node: '>=14'}
    +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
         dependencies:
           eval: 0.1.8
           p-map: 4.0.0
           webpack-sources: 3.2.3
    -    dev: false
     
    -  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
         dependencies:
    -      '@babel/core': 7.24.3
    -    dev: true
    -
    -  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +      '@babel/core': 7.24.3
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
    @@ -4899,13 +12490,8 @@ packages:
           '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
    -    dev: false
     
    -  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
    @@ -4916,11 +12502,8 @@ packages:
           '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
    -    dev: true
     
    -  /@svgr/core@6.5.1:
    -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    -    engines: {node: '>=10'}
    +  '@svgr/core@6.5.1':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -4929,11 +12512,8 @@ packages:
           cosmiconfig: 7.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/core@8.1.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    -    engines: {node: '>=14'}
    +  '@svgr/core@8.1.0(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -4943,29 +12523,18 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@svgr/hast-util-to-babel-ast@6.5.1:
    -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    -    engines: {node: '>=10'}
    +  '@svgr/hast-util-to-babel-ast@6.5.1':
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    -    dev: false
     
    -  /@svgr/hast-util-to-babel-ast@8.0.0:
    -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    -    engines: {node: '>=14'}
    +  '@svgr/hast-util-to-babel-ast@8.0.0':
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    -    dev: true
     
    -  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
    -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': ^6.0.0
    +  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -4974,13 +12543,8 @@ packages:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
    -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -4989,25 +12553,15 @@ packages:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
    -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
         dependencies:
           '@svgr/core': 6.5.1
           cosmiconfig: 7.1.0
           deepmerge: 4.3.1
           svgo: 2.8.0
    -    dev: false
     
    -  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
         dependencies:
           '@svgr/core': 8.1.0(typescript@5.4.3)
           cosmiconfig: 8.3.6(typescript@5.4.3)
    @@ -5015,11 +12569,8 @@ packages:
           svgo: 3.2.0
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /@svgr/webpack@6.5.1:
    -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    -    engines: {node: '>=10'}
    +  '@svgr/webpack@6.5.1':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -5031,11 +12582,8 @@ packages:
           '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/webpack@8.1.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    -    engines: {node: '>=14'}
    +  '@svgr/webpack@8.1.0(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -5048,24 +12596,16 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@swc/helpers@0.5.2:
    -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    +  '@swc/helpers@0.5.2':
         dependencies:
           tslib: 2.6.2
    -    dev: false
     
    -  /@szmarczak/http-timer@5.0.1:
    -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    -    engines: {node: '>=14.16'}
    +  '@szmarczak/http-timer@5.0.1':
         dependencies:
           defer-to-connect: 2.0.1
    -    dev: false
     
    -  /@testing-library/dom@9.3.4:
    -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    -    engines: {node: '>=14'}
    +  '@testing-library/dom@9.3.4':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/runtime': 7.24.1
    @@ -5075,491 +12615,336 @@ packages:
           dom-accessibility-api: 0.5.16
           lz-string: 1.5.0
           pretty-format: 27.5.1
    -    dev: true
     
    -  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@babel/runtime': 7.24.1
           '@testing-library/dom': 9.3.4
           '@types/react-dom': 18.2.22
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
    -    dev: true
     
    -  /@tootallnate/once@1.1.2:
    -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    -    engines: {node: '>= 6'}
    +  '@tootallnate/once@1.1.2': {}
     
    -  /@tootallnate/once@2.0.0:
    -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    -    engines: {node: '>= 10'}
    +  '@tootallnate/once@2.0.0': {}
     
    -  /@trysound/sax@0.2.0:
    -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    -    engines: {node: '>=10.13.0'}
    +  '@trysound/sax@0.2.0': {}
     
    -  /@tsconfig/docusaurus@2.0.2:
    -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    -    dev: true
    +  '@tsconfig/docusaurus@2.0.2': {}
     
    -  /@tsconfig/node10@1.0.10:
    -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    -    dev: true
    +  '@tsconfig/node10@1.0.10': {}
     
    -  /@tsconfig/node12@1.0.11:
    -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    -    dev: true
    +  '@tsconfig/node12@1.0.11': {}
     
    -  /@tsconfig/node14@1.0.3:
    -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    -    dev: true
    +  '@tsconfig/node14@1.0.3': {}
     
    -  /@tsconfig/node16@1.0.4:
    -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    -    dev: true
    +  '@tsconfig/node16@1.0.4': {}
     
    -  /@tufjs/canonical-json@1.0.0:
    -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@tufjs/canonical-json@1.0.0': {}
     
    -  /@tufjs/models@1.0.4:
    -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@tufjs/models@1.0.4':
         dependencies:
           '@tufjs/canonical-json': 1.0.0
           minimatch: 9.0.3
     
    -  /@types/acorn@4.0.6:
    -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    +  '@types/acorn@4.0.6':
         dependencies:
           '@types/estree': 1.0.5
     
    -  /@types/aria-query@5.0.4:
    -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    -    dev: true
    +  '@types/aria-query@5.0.4': {}
     
    -  /@types/babel__core@7.20.5:
    -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    +  '@types/babel__core@7.20.5':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
           '@types/babel__generator': 7.6.8
           '@types/babel__template': 7.4.4
           '@types/babel__traverse': 7.20.5
    -    dev: true
     
    -  /@types/babel__generator@7.6.8:
    -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    +  '@types/babel__generator@7.6.8':
         dependencies:
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/babel__template@7.4.4:
    -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    +  '@types/babel__template@7.4.4':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/babel__traverse@7.20.5:
    -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    +  '@types/babel__traverse@7.20.5':
         dependencies:
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/body-parser@1.19.5:
    -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    +  '@types/body-parser@1.19.5':
         dependencies:
           '@types/connect': 3.4.38
           '@types/node': 18.18.2
     
    -  /@types/bonjour@3.5.13:
    -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    +  '@types/bonjour@3.5.13':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/chai@4.3.14:
    -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    +  '@types/chai@4.3.14': {}
     
    -  /@types/connect-history-api-fallback@1.5.4:
    -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    +  '@types/connect-history-api-fallback@1.5.4':
         dependencies:
           '@types/express-serve-static-core': 4.17.43
           '@types/node': 18.18.2
     
    -  /@types/connect@3.4.38:
    -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    +  '@types/connect@3.4.38':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/debug@4.1.12:
    -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    +  '@types/debug@4.1.12':
         dependencies:
           '@types/ms': 0.7.34
     
    -  /@types/eslint-scope@3.7.7:
    -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    +  '@types/eslint-scope@3.7.7':
         dependencies:
           '@types/eslint': 8.56.6
           '@types/estree': 1.0.5
     
    -  /@types/eslint@8.56.6:
    -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    +  '@types/eslint@8.56.6':
         dependencies:
           '@types/estree': 1.0.5
           '@types/json-schema': 7.0.15
     
    -  /@types/estree-jsx@1.0.5:
    -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    +  '@types/estree-jsx@1.0.5':
         dependencies:
           '@types/estree': 1.0.5
     
    -  /@types/estree@1.0.5:
    -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    +  '@types/estree@1.0.5': {}
     
    -  /@types/expect@1.20.4:
    -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    +  '@types/expect@1.20.4': {}
     
    -  /@types/express-serve-static-core@4.17.43:
    -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    +  '@types/express-serve-static-core@4.17.43':
         dependencies:
           '@types/node': 18.18.2
           '@types/qs': 6.9.14
           '@types/range-parser': 1.2.7
           '@types/send': 0.17.4
     
    -  /@types/express@4.17.21:
    -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    +  '@types/express@4.17.21':
         dependencies:
           '@types/body-parser': 1.19.5
           '@types/express-serve-static-core': 4.17.43
           '@types/qs': 6.9.14
           '@types/serve-static': 1.15.5
     
    -  /@types/fs-extra@11.0.4:
    -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    +  '@types/fs-extra@11.0.4':
         dependencies:
           '@types/jsonfile': 6.1.4
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/glob@8.1.0:
    -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    +  '@types/glob@8.1.0':
         dependencies:
           '@types/minimatch': 5.1.2
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/graceful-fs@4.1.9:
    -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    +  '@types/graceful-fs@4.1.9':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/gtag.js@0.0.12:
    -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    -    dev: false
    +  '@types/gtag.js@0.0.12': {}
     
    -  /@types/hast@3.0.4:
    -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    +  '@types/hast@3.0.4':
         dependencies:
           '@types/unist': 3.0.2
     
    -  /@types/history@4.7.11:
    -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    +  '@types/history@4.7.11': {}
     
    -  /@types/html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    +  '@types/html-minifier-terser@6.1.0': {}
     
    -  /@types/http-cache-semantics@4.0.4:
    -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    -    dev: false
    +  '@types/http-cache-semantics@4.0.4': {}
     
    -  /@types/http-errors@2.0.4:
    -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    +  '@types/http-errors@2.0.4': {}
     
    -  /@types/http-proxy@1.17.14:
    -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    +  '@types/http-proxy@1.17.14':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/istanbul-lib-coverage@2.0.6:
    -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    +  '@types/istanbul-lib-coverage@2.0.6': {}
     
    -  /@types/istanbul-lib-report@3.0.3:
    -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    +  '@types/istanbul-lib-report@3.0.3':
         dependencies:
           '@types/istanbul-lib-coverage': 2.0.6
     
    -  /@types/istanbul-reports@3.0.4:
    -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    +  '@types/istanbul-reports@3.0.4':
         dependencies:
           '@types/istanbul-lib-report': 3.0.3
     
    -  /@types/jest@29.5.12:
    -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    +  '@types/jest@29.5.12':
         dependencies:
           expect: 29.7.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /@types/js-cookie@2.2.7:
    -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    -    dev: false
    +  '@types/js-cookie@2.2.7': {}
     
    -  /@types/js-yaml@4.0.9:
    -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    +  '@types/js-yaml@4.0.9': {}
     
    -  /@types/jsdom@20.0.1:
    -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    +  '@types/jsdom@20.0.1':
         dependencies:
           '@types/node': 18.18.2
           '@types/tough-cookie': 4.0.5
           parse5: 7.1.2
    -    dev: true
     
    -  /@types/json-schema@7.0.15:
    -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    +  '@types/json-schema@7.0.15': {}
     
    -  /@types/json5@0.0.29:
    -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    -    dev: true
    +  '@types/json5@0.0.29': {}
     
    -  /@types/jsonfile@6.1.4:
    -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    +  '@types/jsonfile@6.1.4':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/lodash@4.17.0:
    -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    +  '@types/lodash@4.17.0': {}
     
    -  /@types/mdast@4.0.3:
    -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    +  '@types/mdast@4.0.3':
         dependencies:
           '@types/unist': 3.0.2
     
    -  /@types/mdx-js__react@1.5.8:
    -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    +  '@types/mdx-js__react@1.5.8':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/mdx@2.0.12:
    -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    +  '@types/mdx@2.0.12': {}
     
    -  /@types/mime@1.3.5:
    -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    +  '@types/mime@1.3.5': {}
     
    -  /@types/mime@3.0.4:
    -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    +  '@types/mime@3.0.4': {}
     
    -  /@types/minimatch@3.0.5:
    -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    +  '@types/minimatch@3.0.5': {}
     
    -  /@types/minimatch@5.1.2:
    -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    -    dev: true
    +  '@types/minimatch@5.1.2': {}
     
    -  /@types/minimist@1.2.5:
    -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    -    dev: true
    +  '@types/minimist@1.2.5': {}
     
    -  /@types/mocha@10.0.6:
    -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    -    dev: true
    +  '@types/mocha@10.0.6': {}
     
    -  /@types/moo@0.5.9:
    -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    -    dev: true
    +  '@types/moo@0.5.9': {}
     
    -  /@types/ms@0.7.34:
    -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    +  '@types/ms@0.7.34': {}
     
    -  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
    -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    -    dev: true
    -    patched: true
    +  '@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)': {}
     
    -  /@types/node-forge@1.3.11:
    -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    +  '@types/node-forge@1.3.11':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/node@15.14.9:
    -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    +  '@types/node@15.14.9': {}
     
    -  /@types/node@17.0.45:
    -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    -    dev: false
    +  '@types/node@17.0.45': {}
     
    -  /@types/node@18.18.2:
    -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    +  '@types/node@18.18.2': {}
     
    -  /@types/normalize-package-data@2.4.4:
    -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    +  '@types/normalize-package-data@2.4.4': {}
     
    -  /@types/normalize-path@3.0.2:
    -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    -    dev: false
    +  '@types/normalize-path@3.0.2': {}
     
    -  /@types/parse-json@4.0.2:
    -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    -    dev: false
    +  '@types/parse-json@4.0.2': {}
     
    -  /@types/prismjs@1.26.3:
    -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    -    dev: false
    +  '@types/prismjs@1.26.3': {}
     
    -  /@types/prop-types@15.7.12:
    -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    +  '@types/prop-types@15.7.12': {}
     
    -  /@types/qs@6.9.14:
    -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    +  '@types/qs@6.9.14': {}
     
    -  /@types/range-parser@1.2.7:
    -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    +  '@types/range-parser@1.2.7': {}
     
    -  /@types/react-dom@18.2.22:
    -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    +  '@types/react-dom@18.2.22':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/react-helmet@6.1.11:
    -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    +  '@types/react-helmet@6.1.11':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/react-router-config@5.0.11:
    -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    +  '@types/react-router-config@5.0.11':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  /@types/react-router-dom@5.3.3:
    -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    +  '@types/react-router-dom@5.3.3':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  /@types/react-router@5.1.20:
    -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    +  '@types/react-router@5.1.20':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
     
    -  /@types/react@18.2.71:
    -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    +  '@types/react@18.2.71':
         dependencies:
           '@types/prop-types': 15.7.12
           '@types/scheduler': 0.23.0
           csstype: 3.1.3
     
    -  /@types/retry@0.12.0:
    -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    -    dev: false
    +  '@types/retry@0.12.0': {}
     
    -  /@types/retry@0.12.2:
    -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    +  '@types/retry@0.12.2': {}
     
    -  /@types/sax@1.2.7:
    -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    +  '@types/sax@1.2.7':
         dependencies:
           '@types/node': 18.18.2
    -    dev: false
     
    -  /@types/sbd@1.0.5:
    -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    -    dev: true
    +  '@types/sbd@1.0.5': {}
     
    -  /@types/scheduler@0.23.0:
    -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    +  '@types/scheduler@0.23.0': {}
     
    -  /@types/semver@7.5.8:
    -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    -    dev: true
    +  '@types/semver@7.5.8': {}
     
    -  /@types/send@0.17.4:
    -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    +  '@types/send@0.17.4':
         dependencies:
           '@types/mime': 1.3.5
           '@types/node': 18.18.2
     
    -  /@types/serve-index@1.9.4:
    -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    +  '@types/serve-index@1.9.4':
         dependencies:
           '@types/express': 4.17.21
     
    -  /@types/serve-static@1.15.5:
    -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    +  '@types/serve-static@1.15.5':
         dependencies:
           '@types/http-errors': 2.0.4
           '@types/mime': 3.0.4
           '@types/node': 18.18.2
     
    -  /@types/sinon@17.0.3:
    -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    +  '@types/sinon@17.0.3':
         dependencies:
           '@types/sinonjs__fake-timers': 8.1.5
     
    -  /@types/sinonjs__fake-timers@8.1.5:
    -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    +  '@types/sinonjs__fake-timers@8.1.5': {}
     
    -  /@types/sockjs@0.3.36:
    -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    +  '@types/sockjs@0.3.36':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/ssri@7.1.5:
    -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    +  '@types/ssri@7.1.5':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/stack-utils@2.0.3:
    -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    -    dev: true
    +  '@types/stack-utils@2.0.3': {}
     
    -  /@types/tinycolor2@1.4.6:
    -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    -    dev: true
    +  '@types/tinycolor2@1.4.6': {}
     
    -  /@types/tough-cookie@4.0.5:
    -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    -    dev: true
    +  '@types/tough-cookie@4.0.5': {}
     
    -  /@types/triple-beam@1.3.5:
    -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    +  '@types/triple-beam@1.3.5': {}
     
    -  /@types/unist@2.0.10:
    -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    +  '@types/unist@2.0.10': {}
     
    -  /@types/unist@3.0.2:
    -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    +  '@types/unist@3.0.2': {}
     
    -  /@types/uuid@9.0.8:
    -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    +  '@types/uuid@9.0.8': {}
     
    -  /@types/vinyl@2.0.11:
    -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    +  '@types/vinyl@2.0.11':
         dependencies:
           '@types/expect': 1.20.4
           '@types/node': 18.18.2
     
    -  /@types/vscode@1.75.1:
    -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    +  '@types/vscode@1.75.1': {}
     
    -  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
    -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    +  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
         dependencies:
           '@types/node': 18.18.2
           tapable: 2.2.1
    @@ -5569,31 +12954,18 @@ packages:
           - esbuild
           - uglify-js
           - webpack-cli
    -    dev: true
     
    -  /@types/ws@8.5.10:
    -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    +  '@types/ws@8.5.10':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/yargs-parser@21.0.3:
    -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    +  '@types/yargs-parser@21.0.3': {}
     
    -  /@types/yargs@17.0.32:
    -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    +  '@types/yargs@17.0.32':
         dependencies:
           '@types/yargs-parser': 21.0.3
     
    -  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/parser': ^7.0.0
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@eslint-community/regexpp': 4.10.0
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -5611,17 +12983,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      eslint: ^7.0.0 || ^8.0.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/scope-manager': 6.21.0
           '@typescript-eslint/types': 6.21.0
    @@ -5632,17 +12995,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/scope-manager': 7.4.0
           '@typescript-eslint/types': 7.4.0
    @@ -5653,33 +13007,18 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/scope-manager@6.21.0:
    -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    +  '@typescript-eslint/scope-manager@6.21.0':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    -    dev: true
     
    -  /@typescript-eslint/scope-manager@7.4.0:
    -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    +  '@typescript-eslint/scope-manager@7.4.0':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    -    dev: true
     
    -  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
           '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -5689,26 +13028,12 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/types@6.21.0:
    -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    dev: true
    +  '@typescript-eslint/types@6.21.0': {}
     
    -  /@typescript-eslint/types@7.4.0:
    -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    dev: true
    +  '@typescript-eslint/types@7.4.0': {}
     
    -  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    @@ -5721,16 +13046,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    @@ -5743,13 +13060,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    +  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@types/json-schema': 7.0.15
    @@ -5762,30 +13074,20 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@typescript-eslint/visitor-keys@6.21.0:
    -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    +  '@typescript-eslint/visitor-keys@6.21.0':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           eslint-visitor-keys: 3.4.3
    -    dev: true
     
    -  /@typescript-eslint/visitor-keys@7.4.0:
    -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    +  '@typescript-eslint/visitor-keys@7.4.0':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           eslint-visitor-keys: 3.4.3
    -    dev: true
     
    -  /@ungap/structured-clone@1.2.0:
    -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    +  '@ungap/structured-clone@1.2.0': {}
     
    -  /@vscode/test-electron@2.3.9:
    -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    -    engines: {node: '>=16'}
    +  '@vscode/test-electron@2.3.9':
         dependencies:
           http-proxy-agent: 4.0.1
           https-proxy-agent: 5.0.1
    @@ -5793,56 +13095,44 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@webassemblyjs/ast@1.12.1:
    -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    +  '@webassemblyjs/ast@1.12.1':
         dependencies:
           '@webassemblyjs/helper-numbers': 1.11.6
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
     
    -  /@webassemblyjs/floating-point-hex-parser@1.11.6:
    -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    +  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
     
    -  /@webassemblyjs/helper-api-error@1.11.6:
    -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    +  '@webassemblyjs/helper-api-error@1.11.6': {}
     
    -  /@webassemblyjs/helper-buffer@1.12.1:
    -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    +  '@webassemblyjs/helper-buffer@1.12.1': {}
     
    -  /@webassemblyjs/helper-numbers@1.11.6:
    -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    +  '@webassemblyjs/helper-numbers@1.11.6':
         dependencies:
           '@webassemblyjs/floating-point-hex-parser': 1.11.6
           '@webassemblyjs/helper-api-error': 1.11.6
           '@xtuc/long': 4.2.2
     
    -  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
    -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    +  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
     
    -  /@webassemblyjs/helper-wasm-section@1.12.1:
    -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    +  '@webassemblyjs/helper-wasm-section@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
           '@webassemblyjs/wasm-gen': 1.12.1
     
    -  /@webassemblyjs/ieee754@1.11.6:
    -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    +  '@webassemblyjs/ieee754@1.11.6':
         dependencies:
           '@xtuc/ieee754': 1.2.0
     
    -  /@webassemblyjs/leb128@1.11.6:
    -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    +  '@webassemblyjs/leb128@1.11.6':
         dependencies:
           '@xtuc/long': 4.2.2
     
    -  /@webassemblyjs/utf8@1.11.6:
    -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    +  '@webassemblyjs/utf8@1.11.6': {}
     
    -  /@webassemblyjs/wasm-edit@1.12.1:
    -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    +  '@webassemblyjs/wasm-edit@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
    @@ -5853,8 +13143,7 @@ packages:
           '@webassemblyjs/wasm-parser': 1.12.1
           '@webassemblyjs/wast-printer': 1.12.1
     
    -  /@webassemblyjs/wasm-gen@1.12.1:
    -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    +  '@webassemblyjs/wasm-gen@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
    @@ -5862,16 +13151,14 @@ packages:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  /@webassemblyjs/wasm-opt@1.12.1:
    -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    +  '@webassemblyjs/wasm-opt@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/wasm-gen': 1.12.1
           '@webassemblyjs/wasm-parser': 1.12.1
     
    -  /@webassemblyjs/wasm-parser@1.12.1:
    -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    +  '@webassemblyjs/wasm-parser@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-api-error': 1.11.6
    @@ -5880,32 +13167,17 @@ packages:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  /@webassemblyjs/wast-printer@1.12.1:
    -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    +  '@webassemblyjs/wast-printer@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@xtuc/long': 4.2.2
     
    -  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    +  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      prettier: '*'
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -    peerDependenciesMeta:
    -      prettier:
    -        optional: true
    +  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           prettier: 3.2.5
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    @@ -5918,207 +13190,125 @@ packages:
           - mem-fs
           - supports-color
     
    -  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    +  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      webpack-dev-server:
    -        optional: true
    +  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
     
    -  /@xobotyi/scrollbar-width@1.9.5:
    -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    -    dev: false
    +  '@xobotyi/scrollbar-width@1.9.5': {}
     
    -  /@xtuc/ieee754@1.2.0:
    -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    +  '@xtuc/ieee754@1.2.0': {}
     
    -  /@xtuc/long@4.2.2:
    -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    +  '@xtuc/long@4.2.2': {}
     
    -  /@zkochan/js-yaml@0.0.7:
    -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    -    hasBin: true
    +  '@zkochan/js-yaml@0.0.7':
         dependencies:
           argparse: 2.0.1
    -    dev: false
     
    -  /@zkochan/retry@0.2.0:
    -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  '@zkochan/retry@0.2.0': {}
     
    -  /@zkochan/rimraf@2.1.3:
    -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    -    engines: {node: '>=12.10'}
    +  '@zkochan/rimraf@2.1.3':
         dependencies:
           rimraf: 3.0.2
    -    dev: false
     
    -  /@zkochan/which@2.0.3:
    -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    +  '@zkochan/which@2.0.3':
         dependencies:
           isexe: 2.0.0
     
    -  /abab@2.0.6:
    -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    -    deprecated: Use your platform's native atob() and btoa() methods instead
    -    dev: true
    +  abab@2.0.6: {}
     
    -  /abbrev@1.1.1:
    -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    +  abbrev@1.1.1: {}
     
    -  /abort-controller@3.0.0:
    -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    -    engines: {node: '>=6.5'}
    +  abort-controller@3.0.0:
         dependencies:
           event-target-shim: 5.0.1
     
    -  /accepts@1.3.8:
    -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    -    engines: {node: '>= 0.6'}
    +  accepts@1.3.8:
         dependencies:
           mime-types: 2.1.35
           negotiator: 0.6.3
     
    -  /acorn-globals@7.0.1:
    -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    +  acorn-globals@7.0.1:
         dependencies:
           acorn: 8.11.3
           acorn-walk: 8.3.2
    -    dev: true
     
    -  /acorn-import-assertions@1.9.0(acorn@8.11.3):
    -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    -    peerDependencies:
    -      acorn: ^8
    +  acorn-import-assertions@1.9.0(acorn@8.11.3):
         dependencies:
           acorn: 8.11.3
     
    -  /acorn-jsx@5.3.2(acorn@8.11.3):
    -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    -    peerDependencies:
    -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    +  acorn-jsx@5.3.2(acorn@8.11.3):
         dependencies:
           acorn: 8.11.3
     
    -  /acorn-walk@8.3.2:
    -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    -    engines: {node: '>=0.4.0'}
    +  acorn-walk@8.3.2: {}
     
    -  /acorn@8.11.3:
    -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    -    engines: {node: '>=0.4.0'}
    -    hasBin: true
    +  acorn@8.11.3: {}
     
    -  /address@1.2.2:
    -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    -    engines: {node: '>= 10.0.0'}
    -    dev: false
    +  address@1.2.2: {}
     
    -  /agent-base@6.0.2:
    -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    -    engines: {node: '>= 6.0.0'}
    +  agent-base@6.0.2:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  /agentkeepalive@4.2.1:
    -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    -    engines: {node: '>= 8.0.0'}
    +  agentkeepalive@4.2.1:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           depd: 1.1.2
           humanize-ms: 1.2.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /agentkeepalive@4.5.0:
    -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    -    engines: {node: '>= 8.0.0'}
    +  agentkeepalive@4.5.0:
         dependencies:
           humanize-ms: 1.2.1
     
    -  /aggregate-error@3.1.0:
    -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    -    engines: {node: '>=8'}
    +  aggregate-error@3.1.0:
         dependencies:
           clean-stack: 2.2.0
           indent-string: 4.0.0
     
    -  /ajv-formats@2.1.1(ajv@8.12.0):
    -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    -    peerDependencies:
    -      ajv: ^8.0.0
    -    peerDependenciesMeta:
    -      ajv:
    -        optional: true
    +  ajv-formats@2.1.1(ajv@8.12.0):
         dependencies:
           ajv: 8.12.0
     
    -  /ajv-keywords@3.5.2(ajv@6.12.6):
    -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    -    peerDependencies:
    -      ajv: ^6.9.1
    +  ajv-keywords@3.5.2(ajv@6.12.6):
         dependencies:
           ajv: 6.12.6
     
    -  /ajv-keywords@5.1.0(ajv@8.12.0):
    -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    -    peerDependencies:
    -      ajv: ^8.8.2
    +  ajv-keywords@5.1.0(ajv@8.12.0):
         dependencies:
           ajv: 8.12.0
           fast-deep-equal: 3.1.3
     
    -  /ajv@6.12.6:
    -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    +  ajv@6.12.6:
         dependencies:
           fast-deep-equal: 3.1.3
           fast-json-stable-stringify: 2.1.0
           json-schema-traverse: 0.4.1
           uri-js: 4.4.1
     
    -  /ajv@8.12.0:
    -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    +  ajv@8.12.0:
         dependencies:
           fast-deep-equal: 3.1.3
           json-schema-traverse: 1.0.0
           require-from-string: 2.0.2
           uri-js: 4.4.1
     
    -  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    -    peerDependencies:
    -      algoliasearch: '>= 3.1 < 6'
    +  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
         dependencies:
           '@algolia/events': 4.0.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /algoliasearch@4.22.1:
    -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    +  algoliasearch@4.22.1:
         dependencies:
           '@algolia/cache-browser-local-storage': 4.22.1
           '@algolia/cache-common': 4.22.1
    @@ -6134,157 +13324,96 @@ packages:
           '@algolia/requester-common': 4.22.1
           '@algolia/requester-node-http': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /ansi-align@3.0.1:
    -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    +  ansi-align@3.0.1:
         dependencies:
           string-width: 4.2.3
     
    -  /ansi-colors@4.1.1:
    -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  ansi-colors@4.1.1: {}
     
    -  /ansi-colors@4.1.3:
    -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  ansi-colors@4.1.3: {}
     
    -  /ansi-diff@1.1.1:
    -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    +  ansi-diff@1.1.1:
         dependencies:
           ansi-split: 1.0.1
    -    dev: true
     
    -  /ansi-escapes@4.3.2:
    -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    -    engines: {node: '>=8'}
    +  ansi-escapes@4.3.2:
         dependencies:
           type-fest: 0.21.3
     
    -  /ansi-html-community@0.0.8:
    -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    -    engines: {'0': node >= 0.8.0}
    -    hasBin: true
    +  ansi-html-community@0.0.8: {}
     
    -  /ansi-regex@3.0.1:
    -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  ansi-regex@3.0.1: {}
     
    -  /ansi-regex@5.0.1:
    -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    -    engines: {node: '>=8'}
    +  ansi-regex@5.0.1: {}
     
    -  /ansi-regex@6.0.1:
    -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    -    engines: {node: '>=12'}
    +  ansi-regex@6.0.1: {}
     
    -  /ansi-split@1.0.1:
    -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    +  ansi-split@1.0.1:
         dependencies:
           ansi-regex: 3.0.1
    -    dev: true
     
    -  /ansi-styles@3.2.1:
    -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    -    engines: {node: '>=4'}
    +  ansi-styles@3.2.1:
         dependencies:
           color-convert: 1.9.3
     
    -  /ansi-styles@4.3.0:
    -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    -    engines: {node: '>=8'}
    +  ansi-styles@4.3.0:
         dependencies:
           color-convert: 2.0.1
     
    -  /ansi-styles@5.2.0:
    -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  ansi-styles@5.2.0: {}
     
    -  /ansi-styles@6.2.1:
    -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    -    engines: {node: '>=12'}
    +  ansi-styles@6.2.1: {}
     
    -  /any-promise@1.3.0:
    -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    -    dev: true
    +  any-promise@1.3.0: {}
     
    -  /anymatch@3.1.3:
    -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    -    engines: {node: '>= 8'}
    +  anymatch@3.1.3:
         dependencies:
           normalize-path: 3.0.0
           picomatch: 2.3.1
     
    -  /aproba@2.0.0:
    -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    +  aproba@2.0.0: {}
     
    -  /archy@1.0.0:
    -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    -    dev: true
    +  archy@1.0.0: {}
     
    -  /are-we-there-yet@2.0.0:
    -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    -    engines: {node: '>=10'}
    +  are-we-there-yet@2.0.0:
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  /are-we-there-yet@3.0.1:
    -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  are-we-there-yet@3.0.1:
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  /arg@4.1.3:
    -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    -    dev: true
    +  arg@4.1.3: {}
     
    -  /arg@5.0.2:
    -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +  arg@5.0.2: {}
     
    -  /argparse@1.0.10:
    -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    +  argparse@1.0.10:
         dependencies:
           sprintf-js: 1.0.3
     
    -  /argparse@2.0.1:
    -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    +  argparse@2.0.1: {}
     
    -  /aria-query@5.1.3:
    -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    +  aria-query@5.1.3:
         dependencies:
           deep-equal: 2.2.3
    -    dev: true
     
    -  /aria-query@5.3.0:
    -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    +  aria-query@5.3.0:
         dependencies:
           dequal: 2.0.3
    -    dev: true
     
    -  /array-buffer-byte-length@1.0.1:
    -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    -    engines: {node: '>= 0.4'}
    +  array-buffer-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           is-array-buffer: 3.0.4
    -    dev: true
     
    -  /array-differ@3.0.0:
    -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    -    engines: {node: '>=8'}
    +  array-differ@3.0.0: {}
     
    -  /array-flatten@1.1.1:
    -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    +  array-flatten@1.1.1: {}
     
    -  /array-includes@3.1.8:
    -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    -    engines: {node: '>= 0.4'}
    +  array-includes@3.1.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6292,15 +13421,10 @@ packages:
           es-object-atoms: 1.0.0
           get-intrinsic: 1.2.4
           is-string: 1.0.7
    -    dev: true
     
    -  /array-union@2.1.0:
    -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    -    engines: {node: '>=8'}
    +  array-union@2.1.0: {}
     
    -  /array.prototype.findlast@1.2.5:
    -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.findlast@1.2.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6308,11 +13432,8 @@ packages:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.findlastindex@1.2.5:
    -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.findlastindex@1.2.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6320,50 +13441,37 @@ packages:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.flat@1.3.2:
    -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.flat@1.3.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.flatmap@1.3.2:
    -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.flatmap@1.3.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.toreversed@1.1.2:
    -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    +  array.prototype.toreversed@1.1.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.tosorted@1.1.3:
    -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    +  array.prototype.tosorted@1.1.3:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-errors: 1.3.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /arraybuffer.prototype.slice@1.0.3:
    -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    -    engines: {node: '>= 0.4'}
    +  arraybuffer.prototype.slice@1.0.3:
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -6373,63 +13481,34 @@ packages:
           get-intrinsic: 1.2.4
           is-array-buffer: 3.0.4
           is-shared-array-buffer: 1.0.3
    -    dev: true
     
    -  /arrify@1.0.1:
    -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  arrify@1.0.1: {}
     
    -  /arrify@2.0.1:
    -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    -    engines: {node: '>=8'}
    +  arrify@2.0.1: {}
     
    -  /as-table@1.0.55:
    -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    +  as-table@1.0.55:
         dependencies:
           printable-characters: 1.0.42
    -    dev: true
     
    -  /asap@2.0.6:
    -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    +  asap@2.0.6: {}
     
    -  /assertion-error@2.0.1:
    -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  assertion-error@2.0.1: {}
     
    -  /ast-types-flow@0.0.8:
    -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    -    dev: true
    +  ast-types-flow@0.0.8: {}
     
    -  /astring@1.8.6:
    -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    -    hasBin: true
    +  astring@1.8.6: {}
     
    -  /async@2.6.4:
    -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    +  async@2.6.4:
         dependencies:
           lodash: 4.17.21
    -    dev: true
     
    -  /async@3.2.5:
    -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    +  async@3.2.5: {}
     
    -  /asynckit@0.4.0:
    -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    -    dev: true
    +  asynckit@0.4.0: {}
     
    -  /at-least-node@1.0.0:
    -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    -    engines: {node: '>= 4.0.0'}
    -    dev: false
    +  at-least-node@1.0.0: {}
     
    -  /autoprefixer@10.4.19(postcss@8.4.38):
    -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    hasBin: true
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  autoprefixer@10.4.19(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
    @@ -6439,29 +13518,17 @@ packages:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
     
    -  /available-typed-arrays@1.0.7:
    -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    -    engines: {node: '>= 0.4'}
    +  available-typed-arrays@1.0.7:
         dependencies:
           possible-typed-array-names: 1.0.0
    -    dev: true
     
    -  /axe-core@4.7.0:
    -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  axe-core@4.7.0: {}
     
    -  /axobject-query@3.2.1:
    -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    +  axobject-query@3.2.1:
         dependencies:
           dequal: 2.0.3
    -    dev: true
     
    -  /babel-jest@29.7.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.8.0
    +  babel-jest@29.7.0(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@jest/transform': 29.7.0
    @@ -6473,30 +13540,19 @@ packages:
           slash: 3.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -      webpack: '>=5'
    +  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
         dependencies:
           '@babel/core': 7.24.3
           find-cache-dir: 4.0.0
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /babel-plugin-dynamic-import-node@2.3.3:
    -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    +  babel-plugin-dynamic-import-node@2.3.3:
         dependencies:
           object.assign: 4.1.5
    -    dev: false
     
    -  /babel-plugin-istanbul@6.1.1:
    -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    -    engines: {node: '>=8'}
    +  babel-plugin-istanbul@6.1.1:
         dependencies:
           '@babel/helper-plugin-utils': 7.24.0
           '@istanbuljs/load-nyc-config': 1.1.0
    @@ -6505,22 +13561,15 @@ packages:
           test-exclude: 6.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /babel-plugin-jest-hoist@29.6.3:
    -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  babel-plugin-jest-hoist@29.6.3:
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
           '@types/babel__core': 7.20.5
           '@types/babel__traverse': 7.20.5
    -    dev: true
     
    -  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -6529,10 +13578,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
    @@ -6540,20 +13586,14 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
    @@ -6568,55 +13608,34 @@ packages:
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
    -    dev: true
     
    -  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  babel-preset-jest@29.6.3(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           babel-plugin-jest-hoist: 29.6.3
           babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
    -    dev: true
     
    -  /bail@2.0.2:
    -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    +  bail@2.0.2: {}
     
    -  /balanced-match@1.0.2:
    -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +  balanced-match@1.0.2: {}
     
    -  /base64-js@1.5.1:
    -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    +  base64-js@1.5.1: {}
     
    -  /basic-auth@2.0.1:
    -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    -    engines: {node: '>= 0.8'}
    +  basic-auth@2.0.1:
         dependencies:
           safe-buffer: 5.1.2
    -    dev: true
     
    -  /batch@0.6.1:
    -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    +  batch@0.6.1: {}
     
    -  /before-after-hook@2.2.3:
    -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    +  before-after-hook@2.2.3: {}
     
    -  /better-path-resolve@1.0.0:
    -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    -    engines: {node: '>=4'}
    +  better-path-resolve@1.0.0:
         dependencies:
           is-windows: 1.0.2
    -    dev: true
     
    -  /big.js@5.2.2:
    -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    -    dev: false
    +  big.js@5.2.2: {}
     
    -  /bin-links@3.0.3:
    -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  bin-links@3.0.3:
         dependencies:
           cmd-shim: 5.0.0
           mkdirp-infer-owner: 2.0.0
    @@ -6625,24 +13644,17 @@ packages:
           rimraf: 3.0.2
           write-file-atomic: 4.0.2
     
    -  /binary-extensions@2.3.0:
    -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    -    engines: {node: '>=8'}
    +  binary-extensions@2.3.0: {}
     
    -  /binaryextensions@4.19.0:
    -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    -    engines: {node: '>=0.8'}
    +  binaryextensions@4.19.0: {}
     
    -  /bl@4.1.0:
    -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    +  bl@4.1.0:
         dependencies:
           buffer: 5.7.1
           inherits: 2.0.4
           readable-stream: 3.6.2
     
    -  /body-parser@1.20.2:
    -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +  body-parser@1.20.2:
         dependencies:
           bytes: 3.1.2
           content-type: 1.0.5
    @@ -6659,24 +13671,19 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /bole@5.0.11:
    -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    +  bole@5.0.11:
         dependencies:
           fast-safe-stringify: 2.1.1
           individual: 3.0.0
     
    -  /bonjour-service@1.2.1:
    -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    +  bonjour-service@1.2.1:
         dependencies:
           fast-deep-equal: 3.1.3
           multicast-dns: 7.2.5
     
    -  /boolbase@1.0.0:
    -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    +  boolbase@1.0.0: {}
     
    -  /boxen@5.1.2:
    -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    -    engines: {node: '>=10'}
    +  boxen@5.1.2:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -6686,11 +13693,8 @@ packages:
           type-fest: 0.20.2
           widest-line: 3.1.0
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /boxen@6.2.1:
    -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  boxen@6.2.1:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -6700,11 +13704,8 @@ packages:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    -    dev: false
     
    -  /boxen@7.1.1:
    -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    -    engines: {node: '>=14.16'}
    +  boxen@7.1.1:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 7.0.1
    @@ -6714,104 +13715,70 @@ packages:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    -    dev: false
     
    -  /brace-expansion@1.1.11:
    -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    +  brace-expansion@1.1.11:
         dependencies:
           balanced-match: 1.0.2
           concat-map: 0.0.1
     
    -  /brace-expansion@2.0.1:
    -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    +  brace-expansion@2.0.1:
         dependencies:
           balanced-match: 1.0.2
     
    -  /braces@3.0.2:
    -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    -    engines: {node: '>=8'}
    +  braces@3.0.2:
         dependencies:
           fill-range: 7.0.1
     
    -  /browser-stdout@1.3.1:
    -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    -    dev: true
    +  browser-stdout@1.3.1: {}
     
    -  /browserslist@4.23.0:
    -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    -    hasBin: true
    +  browserslist@4.23.0:
         dependencies:
           caniuse-lite: 1.0.30001600
           electron-to-chromium: 1.4.717
           node-releases: 2.0.14
           update-browserslist-db: 1.0.13(browserslist@4.23.0)
     
    -  /bs-logger@0.2.6:
    -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    -    engines: {node: '>= 6'}
    +  bs-logger@0.2.6:
         dependencies:
           fast-json-stable-stringify: 2.1.0
    -    dev: true
     
    -  /bser@2.1.1:
    -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    +  bser@2.1.1:
         dependencies:
           node-int64: 0.4.0
    -    dev: true
     
    -  /buffer-from@1.1.2:
    -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    +  buffer-from@1.1.2: {}
     
    -  /buffer@5.7.1:
    -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    +  buffer@5.7.1:
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  /buffer@6.0.3:
    -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    +  buffer@6.0.3:
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  /builtin-modules@3.3.0:
    -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  builtin-modules@3.3.0: {}
     
    -  /builtins@1.0.3:
    -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    +  builtins@1.0.3: {}
     
    -  /builtins@5.0.1:
    -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    +  builtins@5.0.1:
         dependencies:
           semver: 7.6.0
     
    -  /bundle-name@4.1.0:
    -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    -    engines: {node: '>=18'}
    +  bundle-name@4.1.0:
         dependencies:
           run-applescript: 7.0.0
     
    -  /busboy@1.6.0:
    -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    -    engines: {node: '>=10.16.0'}
    +  busboy@1.6.0:
         dependencies:
           streamsearch: 1.1.0
    -    dev: false
     
    -  /bytes@3.0.0:
    -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    -    engines: {node: '>= 0.8'}
    +  bytes@3.0.0: {}
     
    -  /bytes@3.1.2:
    -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    -    engines: {node: '>= 0.8'}
    +  bytes@3.1.2: {}
     
    -  /cacache@15.3.0:
    -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    -    engines: {node: '>= 10'}
    +  cacache@15.3.0:
         dependencies:
           '@npmcli/fs': 1.1.1
           '@npmcli/move-file': 1.1.2
    @@ -6834,9 +13801,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /cacache@16.1.3:
    -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  cacache@16.1.3:
         dependencies:
           '@npmcli/fs': 2.1.2
           '@npmcli/move-file': 2.0.1
    @@ -6859,9 +13824,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /cacache@17.1.4:
    -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  cacache@17.1.4:
         dependencies:
           '@npmcli/fs': 3.1.0
           fs-minipass: 3.0.3
    @@ -6876,14 +13839,9 @@ packages:
           tar: 6.2.1
           unique-filename: 3.0.0
     
    -  /cacheable-lookup@7.0.0:
    -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  cacheable-lookup@7.0.0: {}
     
    -  /cacheable-request@10.2.14:
    -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    -    engines: {node: '>=14.16'}
    +  cacheable-request@10.2.14:
         dependencies:
           '@types/http-cache-semantics': 4.0.4
           get-stream: 6.0.1
    @@ -6892,11 +13850,8 @@ packages:
           mimic-response: 4.0.0
           normalize-url: 8.0.1
           responselike: 3.0.0
    -    dev: false
     
    -  /call-bind@1.0.7:
    -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    -    engines: {node: '>= 0.4'}
    +  call-bind@1.0.7:
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
    @@ -6904,133 +13859,85 @@ packages:
           get-intrinsic: 1.2.4
           set-function-length: 1.2.2
     
    -  /callsites@3.1.0:
    -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    -    engines: {node: '>=6'}
    +  callsites@3.1.0: {}
     
    -  /camel-case@4.1.2:
    -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    +  camel-case@4.1.2:
         dependencies:
           pascal-case: 3.1.2
           tslib: 2.6.2
     
    -  /camelcase-css@2.0.1:
    -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  camelcase-css@2.0.1: {}
     
    -  /camelcase-keys@6.2.2:
    -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    -    engines: {node: '>=8'}
    +  camelcase-keys@6.2.2:
         dependencies:
           camelcase: 5.3.1
           map-obj: 4.3.0
           quick-lru: 4.0.1
    -    dev: true
     
    -  /camelcase-keys@7.0.2:
    -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    -    engines: {node: '>=12'}
    +  camelcase-keys@7.0.2:
         dependencies:
           camelcase: 6.3.0
           map-obj: 4.3.0
           quick-lru: 5.1.1
           type-fest: 1.4.0
    -    dev: true
     
    -  /camelcase@5.3.1:
    -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  camelcase@5.3.1: {}
     
    -  /camelcase@6.3.0:
    -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    -    engines: {node: '>=10'}
    +  camelcase@6.3.0: {}
     
    -  /camelcase@7.0.1:
    -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  camelcase@7.0.1: {}
     
    -  /can-write-to-dir@1.1.1:
    -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    -    engines: {node: '>=10.13'}
    +  can-write-to-dir@1.1.1:
         dependencies:
           path-temp: 2.1.0
    -    dev: true
     
    -  /caniuse-api@3.0.0:
    -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    +  caniuse-api@3.0.0:
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
           lodash.memoize: 4.1.2
           lodash.uniq: 4.5.0
    -    dev: false
     
    -  /caniuse-lite@1.0.30001600:
    -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    +  caniuse-lite@1.0.30001600: {}
     
    -  /ccount@2.0.1:
    -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    +  ccount@2.0.1: {}
     
    -  /chai@5.1.0:
    -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    -    engines: {node: '>=12'}
    +  chai@5.1.0:
         dependencies:
           assertion-error: 2.0.1
           check-error: 2.0.0
           deep-eql: 5.0.1
           loupe: 3.1.0
           pathval: 2.0.0
    -    dev: true
     
    -  /chalk@2.4.2:
    -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    -    engines: {node: '>=4'}
    +  chalk@2.4.2:
         dependencies:
           ansi-styles: 3.2.1
           escape-string-regexp: 1.0.5
           supports-color: 5.5.0
     
    -  /chalk@4.1.2:
    -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    -    engines: {node: '>=10'}
    +  chalk@4.1.2:
         dependencies:
           ansi-styles: 4.3.0
           supports-color: 7.2.0
     
    -  /chalk@5.3.0:
    -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    -    dev: false
    +  chalk@5.3.0: {}
     
    -  /char-regex@1.0.2:
    -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    -    engines: {node: '>=10'}
    +  char-regex@1.0.2: {}
     
    -  /character-entities-html4@2.1.0:
    -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    +  character-entities-html4@2.1.0: {}
     
    -  /character-entities-legacy@3.0.0:
    -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    +  character-entities-legacy@3.0.0: {}
     
    -  /character-entities@2.0.2:
    -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    +  character-entities@2.0.2: {}
     
    -  /character-reference-invalid@2.0.1:
    -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    +  character-reference-invalid@2.0.1: {}
     
    -  /chardet@0.7.0:
    -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    +  chardet@0.7.0: {}
     
    -  /check-error@2.0.0:
    -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    -    engines: {node: '>= 16'}
    -    dev: true
    +  check-error@2.0.0: {}
     
    -  /cheerio-select@2.1.0:
    -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    +  cheerio-select@2.1.0:
         dependencies:
           boolbase: 1.0.0
           css-select: 5.1.0
    @@ -7038,11 +13945,8 @@ packages:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
    -    dev: false
     
    -  /cheerio@1.0.0-rc.12:
    -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    -    engines: {node: '>= 6'}
    +  cheerio@1.0.0-rc.12:
         dependencies:
           cheerio-select: 2.1.0
           dom-serializer: 2.0.0
    @@ -7051,11 +13955,8 @@ packages:
           htmlparser2: 8.0.2
           parse5: 7.1.2
           parse5-htmlparser2-tree-adapter: 7.0.0
    -    dev: false
     
    -  /chokidar@3.5.3:
    -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    -    engines: {node: '>= 8.10.0'}
    +  chokidar@3.5.3:
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -7066,11 +13967,8 @@ packages:
           readdirp: 3.6.0
         optionalDependencies:
           fsevents: 2.3.3
    -    dev: true
     
    -  /chokidar@3.6.0:
    -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    -    engines: {node: '>= 8.10.0'}
    +  chokidar@3.6.0:
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -7082,282 +13980,169 @@ packages:
         optionalDependencies:
           fsevents: 2.3.3
     
    -  /chownr@2.0.0:
    -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    -    engines: {node: '>=10'}
    +  chownr@2.0.0: {}
     
    -  /chrome-trace-event@1.0.3:
    -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    -    engines: {node: '>=6.0'}
    +  chrome-trace-event@1.0.3: {}
     
    -  /ci-info@3.9.0:
    -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    -    engines: {node: '>=8'}
    +  ci-info@3.9.0: {}
     
    -  /ci-info@4.0.0:
    -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  ci-info@4.0.0: {}
     
    -  /cjs-module-lexer@1.2.3:
    -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    -    dev: true
    +  cjs-module-lexer@1.2.3: {}
     
    -  /clean-css@5.3.3:
    -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    -    engines: {node: '>= 10.0'}
    +  clean-css@5.3.3:
         dependencies:
           source-map: 0.6.1
     
    -  /clean-regexp@1.0.0:
    -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    -    engines: {node: '>=4'}
    +  clean-regexp@1.0.0:
         dependencies:
           escape-string-regexp: 1.0.5
    -    dev: true
     
    -  /clean-stack@2.2.0:
    -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    -    engines: {node: '>=6'}
    +  clean-stack@2.2.0: {}
     
    -  /cli-boxes@2.2.1:
    -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  cli-boxes@2.2.1: {}
     
    -  /cli-boxes@3.0.0:
    -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  cli-boxes@3.0.0: {}
     
    -  /cli-columns@4.0.0:
    -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    -    engines: {node: '>= 10'}
    +  cli-columns@4.0.0:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /cli-cursor@3.1.0:
    -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    -    engines: {node: '>=8'}
    +  cli-cursor@3.1.0:
         dependencies:
           restore-cursor: 3.1.0
     
    -  /cli-spinners@2.9.2:
    -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    -    engines: {node: '>=6'}
    +  cli-spinners@2.9.2: {}
     
    -  /cli-table3@0.6.4:
    -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    -    engines: {node: 10.* || >= 12.*}
    +  cli-table3@0.6.4:
         dependencies:
           string-width: 4.2.3
         optionalDependencies:
           '@colors/colors': 1.5.0
    -    dev: false
     
    -  /cli-table@0.3.11:
    -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    -    engines: {node: '>= 0.2.0'}
    +  cli-table@0.3.11:
         dependencies:
           colors: 1.0.3
     
    -  /cli-width@3.0.0:
    -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    -    engines: {node: '>= 10'}
    +  cli-width@3.0.0: {}
     
    -  /client-only@0.0.1:
    -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    -    dev: false
    +  client-only@0.0.1: {}
     
    -  /cliui@7.0.4:
    -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    +  cliui@7.0.4:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /cliui@8.0.1:
    -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    -    engines: {node: '>=12'}
    +  cliui@8.0.1:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /clone-buffer@1.0.0:
    -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    -    engines: {node: '>= 0.10'}
    +  clone-buffer@1.0.0: {}
     
    -  /clone-deep@4.0.1:
    -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    -    engines: {node: '>=6'}
    +  clone-deep@4.0.1:
         dependencies:
           is-plain-object: 2.0.4
           kind-of: 6.0.3
           shallow-clone: 3.0.1
     
    -  /clone-stats@1.0.0:
    -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    +  clone-stats@1.0.0: {}
     
    -  /clone@1.0.4:
    -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    -    engines: {node: '>=0.8'}
    +  clone@1.0.4: {}
     
    -  /clone@2.1.2:
    -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    -    engines: {node: '>=0.8'}
    +  clone@2.1.2: {}
     
    -  /cloneable-readable@1.1.3:
    -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    +  cloneable-readable@1.1.3:
         dependencies:
           inherits: 2.0.4
           process-nextick-args: 2.0.1
           readable-stream: 2.3.8
     
    -  /clsx@2.1.0:
    -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  clsx@2.1.0: {}
     
    -  /cmd-shim@5.0.0:
    -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  cmd-shim@5.0.0:
         dependencies:
           mkdirp-infer-owner: 2.0.0
     
    -  /co@4.6.0:
    -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    -    dev: true
    +  co@4.6.0: {}
     
    -  /collapse-white-space@2.1.0:
    -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    +  collapse-white-space@2.1.0: {}
     
    -  /collect-v8-coverage@1.0.2:
    -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    -    dev: true
    +  collect-v8-coverage@1.0.2: {}
     
    -  /color-convert@1.9.3:
    -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    +  color-convert@1.9.3:
         dependencies:
           color-name: 1.1.3
     
    -  /color-convert@2.0.1:
    -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    -    engines: {node: '>=7.0.0'}
    +  color-convert@2.0.1:
         dependencies:
           color-name: 1.1.4
     
    -  /color-name@1.1.3:
    -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +  color-name@1.1.3: {}
     
    -  /color-name@1.1.4:
    -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +  color-name@1.1.4: {}
     
    -  /color-string@1.9.1:
    -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    +  color-string@1.9.1:
         dependencies:
           color-name: 1.1.4
           simple-swizzle: 0.2.2
     
    -  /color-support@1.1.3:
    -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    -    hasBin: true
    +  color-support@1.1.3: {}
     
    -  /color@3.2.1:
    -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    +  color@3.2.1:
         dependencies:
           color-convert: 1.9.3
           color-string: 1.9.1
     
    -  /colord@2.9.3:
    -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    -    dev: false
    +  colord@2.9.3: {}
     
    -  /colorette@2.0.20:
    -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    +  colorette@2.0.20: {}
     
    -  /colors@1.0.3:
    -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    -    engines: {node: '>=0.1.90'}
    +  colors@1.0.3: {}
     
    -  /colorspace@1.1.4:
    -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    +  colorspace@1.1.4:
         dependencies:
           color: 3.2.1
           text-hex: 1.0.0
     
    -  /combine-promises@1.2.0:
    -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  combine-promises@1.2.0: {}
     
    -  /combined-stream@1.0.8:
    -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    -    engines: {node: '>= 0.8'}
    +  combined-stream@1.0.8:
         dependencies:
           delayed-stream: 1.0.0
    -    dev: true
     
    -  /comma-separated-tokens@2.0.3:
    -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    +  comma-separated-tokens@2.0.3: {}
     
    -  /commander@10.0.1:
    -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    -    engines: {node: '>=14'}
    +  commander@10.0.1: {}
     
    -  /commander@11.1.0:
    -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    -    engines: {node: '>=16'}
    -    dev: true
    +  commander@11.1.0: {}
     
    -  /commander@2.20.3:
    -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    +  commander@2.20.3: {}
     
    -  /commander@4.1.1:
    -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  commander@4.1.1: {}
     
    -  /commander@5.1.0:
    -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    -    engines: {node: '>= 6'}
    +  commander@5.1.0: {}
     
    -  /commander@7.1.0:
    -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    -    engines: {node: '>= 10'}
    +  commander@7.1.0: {}
     
    -  /commander@7.2.0:
    -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    -    engines: {node: '>= 10'}
    +  commander@7.2.0: {}
     
    -  /commander@8.3.0:
    -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    -    engines: {node: '>= 12'}
    +  commander@8.3.0: {}
     
    -  /common-ancestor-path@1.0.1:
    -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    +  common-ancestor-path@1.0.1: {}
     
    -  /common-path-prefix@3.0.0:
    -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    -    dev: false
    +  common-path-prefix@3.0.0: {}
     
    -  /commondir@1.0.1:
    -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    +  commondir@1.0.1: {}
     
    -  /compressible@2.0.18:
    -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    -    engines: {node: '>= 0.6'}
    +  compressible@2.0.18:
         dependencies:
           mime-db: 1.52.0
     
    -  /compression@1.7.4:
    -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    -    engines: {node: '>= 0.8.0'}
    +  compression@1.7.4:
         dependencies:
           accepts: 1.3.8
           bytes: 3.0.0
    @@ -7369,83 +14154,50 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /comver-to-semver@1.0.0:
    -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    -    engines: {node: '>=12.17'}
    -    dev: false
    +  comver-to-semver@1.0.0: {}
     
    -  /concat-map@0.0.1:
    -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +  concat-map@0.0.1: {}
     
    -  /config-chain@1.1.13:
    -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    +  config-chain@1.1.13:
         dependencies:
           ini: 1.3.8
           proto-list: 1.2.4
     
    -  /configstore@6.0.0:
    -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    -    engines: {node: '>=12'}
    +  configstore@6.0.0:
         dependencies:
           dot-prop: 6.0.1
           graceful-fs: 4.2.11
           unique-string: 3.0.0
           write-file-atomic: 3.0.3
           xdg-basedir: 5.1.0
    -    dev: false
     
    -  /connect-history-api-fallback@2.0.0:
    -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    -    engines: {node: '>=0.8'}
    +  connect-history-api-fallback@2.0.0: {}
     
    -  /consola@2.15.3:
    -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    -    dev: false
    +  consola@2.15.3: {}
     
    -  /console-control-strings@1.1.0:
    -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    +  console-control-strings@1.1.0: {}
     
    -  /content-disposition@0.5.2:
    -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  content-disposition@0.5.2: {}
     
    -  /content-disposition@0.5.4:
    -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    -    engines: {node: '>= 0.6'}
    +  content-disposition@0.5.4:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /content-type@1.0.5:
    -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    -    engines: {node: '>= 0.6'}
    +  content-type@1.0.5: {}
     
    -  /convert-source-map@2.0.0:
    -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    +  convert-source-map@2.0.0: {}
     
    -  /cookie-signature@1.0.6:
    -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    +  cookie-signature@1.0.6: {}
     
    -  /cookie@0.6.0:
    -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    -    engines: {node: '>= 0.6'}
    +  cookie@0.6.0: {}
     
    -  /copy-text-to-clipboard@3.2.0:
    -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  copy-text-to-clipboard@3.2.0: {}
     
    -  /copy-to-clipboard@3.3.3:
    -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    +  copy-to-clipboard@3.3.3:
         dependencies:
           toggle-selection: 1.0.6
    -    dev: false
     
    -  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      webpack: ^5.1.0
    +  copy-webpack-plugin@11.0.0(webpack@5.91.0):
         dependencies:
           fast-glob: 3.3.2
           glob-parent: 6.0.2
    @@ -7454,61 +14206,36 @@ packages:
           schema-utils: 4.2.0
           serialize-javascript: 6.0.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /core-js-compat@3.36.1:
    -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    +  core-js-compat@3.36.1:
         dependencies:
           browserslist: 4.23.0
     
    -  /core-js-pure@3.36.1:
    -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    -    requiresBuild: true
    -    dev: false
    +  core-js-pure@3.36.1: {}
     
    -  /core-js@3.36.1:
    -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    -    requiresBuild: true
    -    dev: false
    +  core-js@3.36.1: {}
     
    -  /core-util-is@1.0.3:
    -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    +  core-util-is@1.0.3: {}
     
    -  /corser@2.0.1:
    -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    -    engines: {node: '>= 0.4.0'}
    -    dev: true
    +  corser@2.0.1: {}
     
    -  /cosmiconfig@6.0.0:
    -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    -    engines: {node: '>=8'}
    +  cosmiconfig@6.0.0:
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    -    dev: false
     
    -  /cosmiconfig@7.1.0:
    -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    -    engines: {node: '>=10'}
    +  cosmiconfig@7.1.0:
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    -    dev: false
     
    -  /cosmiconfig@8.3.6(typescript@5.4.3):
    -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  cosmiconfig@8.3.6(typescript@5.4.3):
         dependencies:
           import-fresh: 3.3.0
           js-yaml: 4.1.0
    @@ -7516,26 +14243,15 @@ packages:
           path-type: 4.0.0
           typescript: 5.4.3
     
    -  /cosmiconfig@9.0.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  cosmiconfig@9.0.0(typescript@5.4.3):
         dependencies:
           env-paths: 2.2.1
           import-fresh: 3.3.0
           js-yaml: 4.1.0
           parse-json: 5.2.0
           typescript: 5.4.3
    -    dev: true
     
    -  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    +  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
    @@ -7549,58 +14265,30 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /create-require@1.1.1:
    -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    -    dev: true
    +  create-require@1.1.1: {}
     
    -  /cross-spawn@7.0.3:
    -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    -    engines: {node: '>= 8'}
    +  cross-spawn@7.0.3:
         dependencies:
           path-key: 3.1.1
           shebang-command: 2.0.0
           which: 2.0.2
     
    -  /crypto-random-string@2.0.0:
    -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  crypto-random-string@2.0.0: {}
     
    -  /crypto-random-string@4.0.0:
    -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    -    engines: {node: '>=12'}
    +  crypto-random-string@4.0.0:
         dependencies:
           type-fest: 1.4.0
    -    dev: false
     
    -  /css-declaration-sorter@6.4.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    peerDependencies:
    -      postcss: ^8.0.9
    +  css-declaration-sorter@6.4.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /css-in-js-utils@3.1.0:
    -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    +  css-in-js-utils@3.1.0:
         dependencies:
           hyphenate-style-name: 1.0.4
    -    dev: false
     
    -  /css-loader@6.10.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  css-loader@6.10.0(webpack@5.91.0):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
    @@ -7612,30 +14300,7 @@ packages:
           semver: 7.6.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@parcel/css': '*'
    -      '@swc/css': '*'
    -      clean-css: '*'
    -      csso: '*'
    -      esbuild: '*'
    -      lightningcss: '*'
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@parcel/css':
    -        optional: true
    -      '@swc/css':
    -        optional: true
    -      clean-css:
    -        optional: true
    -      csso:
    -        optional: true
    -      esbuild:
    -        optional: true
    -      lightningcss:
    -        optional: true
    +  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
         dependencies:
           clean-css: 5.3.3
           cssnano: 5.1.15(postcss@8.4.38)
    @@ -7646,10 +14311,8 @@ packages:
           serialize-javascript: 6.0.2
           source-map: 0.6.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /css-select@4.3.0:
    -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    +  css-select@4.3.0:
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -7657,8 +14320,7 @@ packages:
           domutils: 2.8.0
           nth-check: 2.1.1
     
    -  /css-select@5.1.0:
    -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    +  css-select@5.1.0:
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -7666,44 +14328,26 @@ packages:
           domutils: 3.1.0
           nth-check: 2.1.1
     
    -  /css-tree@1.1.3:
    -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    -    engines: {node: '>=8.0.0'}
    +  css-tree@1.1.3:
         dependencies:
           mdn-data: 2.0.14
           source-map: 0.6.1
    -    dev: false
     
    -  /css-tree@2.2.1:
    -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +  css-tree@2.2.1:
         dependencies:
           mdn-data: 2.0.28
           source-map-js: 1.2.0
    -    dev: true
     
    -  /css-tree@2.3.1:
    -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    +  css-tree@2.3.1:
         dependencies:
           mdn-data: 2.0.30
           source-map-js: 1.2.0
    -    dev: true
     
    -  /css-what@6.1.0:
    -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    -    engines: {node: '>= 6'}
    +  css-what@6.1.0: {}
     
    -  /cssesc@3.0.0:
    -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  cssesc@3.0.0: {}
     
    -  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
         dependencies:
           autoprefixer: 10.4.19(postcss@8.4.38)
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
    @@ -7712,13 +14356,8 @@ packages:
           postcss-merge-idents: 5.1.1(postcss@8.4.38)
           postcss-reduce-idents: 5.2.0(postcss@8.4.38)
           postcss-zindex: 5.1.0(postcss@8.4.38)
    -    dev: false
     
    -  /cssnano-preset-default@5.2.14(postcss@8.4.38):
    -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-preset-default@5.2.14(postcss@8.4.38):
         dependencies:
           css-declaration-sorter: 6.4.1(postcss@8.4.38)
           cssnano-utils: 3.1.0(postcss@8.4.38)
    @@ -7750,214 +14389,113 @@ packages:
           postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
           postcss-svgo: 5.1.0(postcss@8.4.38)
           postcss-unique-selectors: 5.1.1(postcss@8.4.38)
    -    dev: false
     
    -  /cssnano-utils@3.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-utils@3.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /cssnano@5.1.15(postcss@8.4.38):
    -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano@5.1.15(postcss@8.4.38):
         dependencies:
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
           lilconfig: 2.1.0
           postcss: 8.4.38
           yaml: 1.10.2
    -    dev: false
     
    -  /csso@4.2.0:
    -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    -    engines: {node: '>=8.0.0'}
    +  csso@4.2.0:
         dependencies:
           css-tree: 1.1.3
    -    dev: false
     
    -  /csso@5.0.5:
    -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +  csso@5.0.5:
         dependencies:
           css-tree: 2.2.1
    -    dev: true
     
    -  /cssom@0.3.8:
    -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    -    dev: true
    +  cssom@0.3.8: {}
     
    -  /cssom@0.5.0:
    -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    -    dev: true
    +  cssom@0.5.0: {}
     
    -  /cssstyle@2.3.0:
    -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    -    engines: {node: '>=8'}
    +  cssstyle@2.3.0:
         dependencies:
           cssom: 0.3.8
    -    dev: true
     
    -  /csstype@3.1.3:
    -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    +  csstype@3.1.3: {}
     
    -  /damerau-levenshtein@1.0.8:
    -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    -    dev: true
    +  damerau-levenshtein@1.0.8: {}
     
    -  /dargs@7.0.0:
    -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    -    engines: {node: '>=8'}
    +  dargs@7.0.0: {}
     
    -  /data-uri-to-buffer@2.0.2:
    -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    -    dev: true
    +  data-uri-to-buffer@2.0.2: {}
     
    -  /data-uri-to-buffer@3.0.1:
    -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    -    engines: {node: '>= 6'}
    -    dev: false
    +  data-uri-to-buffer@3.0.1: {}
     
    -  /data-urls@3.0.2:
    -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    -    engines: {node: '>=12'}
    +  data-urls@3.0.2:
         dependencies:
           abab: 2.0.6
           whatwg-mimetype: 3.0.0
           whatwg-url: 11.0.0
    -    dev: true
     
    -  /data-view-buffer@1.0.1:
    -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    -    engines: {node: '>= 0.4'}
    +  data-view-buffer@1.0.1:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /data-view-byte-length@1.0.1:
    -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    -    engines: {node: '>= 0.4'}
    +  data-view-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /data-view-byte-offset@1.0.0:
    -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    -    engines: {node: '>= 0.4'}
    +  data-view-byte-offset@1.0.0:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /dateformat@4.6.3:
    -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    +  dateformat@4.6.3: {}
     
    -  /debounce@1.2.1:
    -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    -    dev: false
    +  debounce@1.2.1: {}
     
    -  /debug@2.6.9:
    -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@2.6.9:
         dependencies:
           ms: 2.0.0
     
    -  /debug@3.2.7:
    -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@3.2.7:
         dependencies:
           ms: 2.1.3
    -    dev: true
     
    -  /debug@4.3.4(supports-color@8.1.1):
    -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    -    engines: {node: '>=6.0'}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@4.3.4(supports-color@8.1.1):
         dependencies:
           ms: 2.1.2
           supports-color: 8.1.1
     
    -  /debuglog@1.0.1:
    -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    +  debuglog@1.0.1: {}
     
    -  /decamelize-keys@1.1.1:
    -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    -    engines: {node: '>=0.10.0'}
    +  decamelize-keys@1.1.1:
         dependencies:
           decamelize: 1.2.0
           map-obj: 1.0.1
    -    dev: true
     
    -  /decamelize@1.2.0:
    -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  decamelize@1.2.0: {}
     
    -  /decamelize@4.0.0:
    -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  decamelize@4.0.0: {}
     
    -  /decamelize@5.0.1:
    -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  decamelize@5.0.1: {}
     
    -  /decimal.js@10.4.3:
    -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    -    dev: true
    +  decimal.js@10.4.3: {}
     
    -  /decode-named-character-reference@1.0.2:
    -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    +  decode-named-character-reference@1.0.2:
         dependencies:
           character-entities: 2.0.2
     
    -  /decompress-response@6.0.0:
    -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    -    engines: {node: '>=10'}
    +  decompress-response@6.0.0:
         dependencies:
           mimic-response: 3.1.0
    -    dev: false
     
    -  /dedent@1.5.1:
    -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    -    peerDependencies:
    -      babel-plugin-macros: ^3.1.0
    -    peerDependenciesMeta:
    -      babel-plugin-macros:
    -        optional: true
    -    dev: true
    +  dedent@1.5.1: {}
     
    -  /deep-eql@5.0.1:
    -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  deep-eql@5.0.1: {}
     
    -  /deep-equal@2.2.3:
    -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    -    engines: {node: '>= 0.4'}
    +  deep-equal@2.2.3:
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -7977,74 +14515,47 @@ packages:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /deep-extend@0.6.0:
    -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    -    engines: {node: '>=4.0.0'}
    +  deep-extend@0.6.0: {}
     
    -  /deep-is@0.1.4:
    -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    +  deep-is@0.1.4: {}
     
    -  /deepmerge@4.3.1:
    -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    -    engines: {node: '>=0.10.0'}
    +  deepmerge@4.3.1: {}
     
    -  /default-browser-id@5.0.0:
    -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    -    engines: {node: '>=18'}
    +  default-browser-id@5.0.0: {}
     
    -  /default-browser@5.2.1:
    -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    -    engines: {node: '>=18'}
    +  default-browser@5.2.1:
         dependencies:
           bundle-name: 4.1.0
           default-browser-id: 5.0.0
     
    -  /default-gateway@6.0.3:
    -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    -    engines: {node: '>= 10'}
    +  default-gateway@6.0.3:
         dependencies:
           execa: 5.1.1
     
    -  /defaults@1.0.4:
    -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    +  defaults@1.0.4:
         dependencies:
           clone: 1.0.4
     
    -  /defer-to-connect@2.0.1:
    -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  defer-to-connect@2.0.1: {}
     
    -  /define-data-property@1.1.4:
    -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    -    engines: {node: '>= 0.4'}
    +  define-data-property@1.1.4:
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
           gopd: 1.0.1
     
    -  /define-lazy-prop@2.0.0:
    -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  define-lazy-prop@2.0.0: {}
     
    -  /define-lazy-prop@3.0.0:
    -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    -    engines: {node: '>=12'}
    +  define-lazy-prop@3.0.0: {}
     
    -  /define-properties@1.2.1:
    -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    -    engines: {node: '>= 0.4'}
    +  define-properties@1.2.1:
         dependencies:
           define-data-property: 1.1.4
           has-property-descriptors: 1.0.2
           object-keys: 1.1.1
     
    -  /del@6.1.1:
    -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    -    engines: {node: '>=10'}
    +  del@6.1.1:
         dependencies:
           globby: 11.1.0
           graceful-fs: 4.2.11
    @@ -8054,327 +14565,201 @@ packages:
           p-map: 4.0.0
           rimraf: 3.0.2
           slash: 3.0.0
    -    dev: false
     
    -  /delayed-stream@1.0.0:
    -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    -    engines: {node: '>=0.4.0'}
    -    dev: true
    +  delayed-stream@1.0.0: {}
     
    -  /delegates@1.0.0:
    -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    +  delegates@1.0.0: {}
     
    -  /depd@1.1.2:
    -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    -    engines: {node: '>= 0.6'}
    +  depd@1.1.2: {}
     
    -  /depd@2.0.0:
    -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    -    engines: {node: '>= 0.8'}
    +  depd@2.0.0: {}
     
    -  /deprecation@2.3.1:
    -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    +  deprecation@2.3.1: {}
     
    -  /dequal@2.0.3:
    -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    -    engines: {node: '>=6'}
    +  dequal@2.0.3: {}
     
    -  /destroy@1.2.0:
    -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +  destroy@1.2.0: {}
     
    -  /detect-indent@7.0.1:
    -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    -    engines: {node: '>=12.20'}
    -    dev: true
    +  detect-indent@7.0.1: {}
     
    -  /detect-libc@2.0.3:
    -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  detect-libc@2.0.3: {}
     
    -  /detect-newline@3.1.0:
    -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  detect-newline@3.1.0: {}
     
    -  /detect-node@2.1.0:
    -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    +  detect-node@2.1.0: {}
     
    -  /detect-port-alt@1.1.6:
    -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    -    engines: {node: '>= 4.2.1'}
    -    hasBin: true
    +  detect-port-alt@1.1.6:
         dependencies:
           address: 1.2.2
           debug: 2.6.9
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /detect-port@1.5.1:
    -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    -    hasBin: true
    +  detect-port@1.5.1:
         dependencies:
           address: 1.2.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /devlop@1.1.0:
    -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    +  devlop@1.1.0:
         dependencies:
           dequal: 2.0.3
     
    -  /dezalgo@1.0.4:
    -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    +  dezalgo@1.0.4:
         dependencies:
           asap: 2.0.6
           wrappy: 1.0.2
     
    -  /didyoumean@1.2.2:
    -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    -    dev: true
    +  didyoumean@1.2.2: {}
     
    -  /diff-sequences@29.6.3:
    -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  diff-sequences@29.6.3: {}
     
    -  /diff@4.0.2:
    -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    -    engines: {node: '>=0.3.1'}
    -    dev: true
    +  diff@4.0.2: {}
     
    -  /diff@5.0.0:
    -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    -    engines: {node: '>=0.3.1'}
    -    dev: true
    +  diff@5.0.0: {}
     
    -  /diff@5.2.0:
    -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    -    engines: {node: '>=0.3.1'}
    +  diff@5.2.0: {}
     
    -  /dir-glob@3.0.1:
    -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    -    engines: {node: '>=8'}
    +  dir-glob@3.0.1:
         dependencies:
           path-type: 4.0.0
     
    -  /discontinuous-range@1.0.0:
    -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    -    dev: false
    +  discontinuous-range@1.0.0: {}
     
    -  /dlv@1.1.3:
    -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    -    dev: true
    +  dlv@1.1.3: {}
     
    -  /dns-packet@5.6.1:
    -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    -    engines: {node: '>=6'}
    +  dns-packet@5.6.1:
         dependencies:
           '@leichtgewicht/ip-codec': 2.0.4
     
    -  /doctrine@2.1.0:
    -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    -    engines: {node: '>=0.10.0'}
    +  doctrine@2.1.0:
         dependencies:
           esutils: 2.0.3
    -    dev: true
     
    -  /doctrine@3.0.0:
    -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    -    engines: {node: '>=6.0.0'}
    +  doctrine@3.0.0:
         dependencies:
           esutils: 2.0.3
     
    -  /dom-accessibility-api@0.5.16:
    -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    -    dev: true
    +  dom-accessibility-api@0.5.16: {}
     
    -  /dom-converter@0.2.0:
    -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    +  dom-converter@0.2.0:
         dependencies:
           utila: 0.4.0
     
    -  /dom-serializer@1.4.1:
    -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    +  dom-serializer@1.4.1:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           entities: 2.2.0
     
    -  /dom-serializer@2.0.0:
    -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    +  dom-serializer@2.0.0:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           entities: 4.5.0
     
    -  /domelementtype@2.3.0:
    -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    +  domelementtype@2.3.0: {}
     
    -  /domexception@4.0.0:
    -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    -    engines: {node: '>=12'}
    -    deprecated: Use your platform's native DOMException instead
    +  domexception@4.0.0:
         dependencies:
           webidl-conversions: 7.0.0
    -    dev: true
     
    -  /domhandler@4.3.1:
    -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    -    engines: {node: '>= 4'}
    +  domhandler@4.3.1:
         dependencies:
           domelementtype: 2.3.0
     
    -  /domhandler@5.0.3:
    -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    -    engines: {node: '>= 4'}
    +  domhandler@5.0.3:
         dependencies:
           domelementtype: 2.3.0
     
    -  /domutils@2.8.0:
    -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    +  domutils@2.8.0:
         dependencies:
           dom-serializer: 1.4.1
           domelementtype: 2.3.0
           domhandler: 4.3.1
     
    -  /domutils@3.1.0:
    -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    +  domutils@3.1.0:
         dependencies:
           dom-serializer: 2.0.0
           domelementtype: 2.3.0
           domhandler: 5.0.3
     
    -  /dot-case@3.0.4:
    -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    +  dot-case@3.0.4:
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  /dot-prop@6.0.1:
    -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    -    engines: {node: '>=10'}
    +  dot-prop@6.0.1:
         dependencies:
           is-obj: 2.0.0
    -    dev: false
     
    -  /duplexer@0.1.2:
    -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    -    dev: false
    +  duplexer@0.1.2: {}
     
    -  /eastasianwidth@0.2.0:
    -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    +  eastasianwidth@0.2.0: {}
     
    -  /ee-first@1.1.1:
    -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    +  ee-first@1.1.1: {}
     
    -  /effect@2.0.0-next.62:
    -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    -    dev: true
    +  effect@2.0.0-next.62: {}
     
    -  /ejs@3.1.9:
    -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    -    engines: {node: '>=0.10.0'}
    -    hasBin: true
    +  ejs@3.1.9:
         dependencies:
           jake: 10.8.7
     
    -  /electron-to-chromium@1.4.717:
    -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    +  electron-to-chromium@1.4.717: {}
     
    -  /emittery@0.13.1:
    -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  emittery@0.13.1: {}
     
    -  /emoji-regex@8.0.0:
    -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    +  emoji-regex@8.0.0: {}
     
    -  /emoji-regex@9.2.2:
    -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    +  emoji-regex@9.2.2: {}
     
    -  /emojilib@2.4.0:
    -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    -    dev: false
    +  emojilib@2.4.0: {}
     
    -  /emojis-list@3.0.0:
    -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    -    engines: {node: '>= 4'}
    -    dev: false
    +  emojis-list@3.0.0: {}
     
    -  /emoticon@4.0.1:
    -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    -    dev: false
    +  emoticon@4.0.1: {}
     
    -  /enabled@2.0.0:
    -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    +  enabled@2.0.0: {}
     
    -  /encodeurl@1.0.2:
    -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    -    engines: {node: '>= 0.8'}
    +  encodeurl@1.0.2: {}
     
    -  /encoding@0.1.13:
    -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    -    requiresBuild: true
    +  encoding@0.1.13:
         dependencies:
           iconv-lite: 0.6.3
         optional: true
     
    -  /enhanced-resolve@5.16.0:
    -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    -    engines: {node: '>=10.13.0'}
    +  enhanced-resolve@5.16.0:
         dependencies:
           graceful-fs: 4.2.11
           tapable: 2.2.1
     
    -  /enquirer@2.4.1:
    -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    -    engines: {node: '>=8.6'}
    +  enquirer@2.4.1:
         dependencies:
           ansi-colors: 4.1.3
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /entities@2.2.0:
    -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    +  entities@2.2.0: {}
     
    -  /entities@4.5.0:
    -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    -    engines: {node: '>=0.12'}
    +  entities@4.5.0: {}
     
    -  /env-paths@2.2.1:
    -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    -    engines: {node: '>=6'}
    +  env-paths@2.2.1: {}
     
    -  /envinfo@7.11.1:
    -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  envinfo@7.11.1: {}
     
    -  /err-code@2.0.3:
    -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    +  err-code@2.0.3: {}
     
    -  /error-ex@1.3.2:
    -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    +  error-ex@1.3.2:
         dependencies:
           is-arrayish: 0.2.1
     
    -  /error-stack-parser@2.1.4:
    -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    +  error-stack-parser@2.1.4:
         dependencies:
           stackframe: 1.3.4
    -    dev: false
     
    -  /error@10.4.0:
    -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    +  error@10.4.0: {}
     
    -  /es-abstract@1.23.2:
    -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    -    engines: {node: '>= 0.4'}
    +  es-abstract@1.23.2:
         dependencies:
           array-buffer-byte-length: 1.0.1
           arraybuffer.prototype.slice: 1.0.3
    @@ -8422,20 +14807,14 @@ packages:
           typed-array-length: 1.0.6
           unbox-primitive: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /es-define-property@1.0.0:
    -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    -    engines: {node: '>= 0.4'}
    +  es-define-property@1.0.0:
         dependencies:
           get-intrinsic: 1.2.4
     
    -  /es-errors@1.3.0:
    -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    -    engines: {node: '>= 0.4'}
    +  es-errors@1.3.0: {}
     
    -  /es-get-iterator@1.1.3:
    -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    +  es-get-iterator@1.1.3:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    @@ -8446,11 +14825,8 @@ packages:
           is-string: 1.0.7
           isarray: 2.0.5
           stop-iteration-iterator: 1.0.0
    -    dev: true
     
    -  /es-iterator-helpers@1.0.18:
    -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    -    engines: {node: '>= 0.4'}
    +  es-iterator-helpers@1.0.18:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -8466,47 +14842,30 @@ packages:
           internal-slot: 1.0.7
           iterator.prototype: 1.1.2
           safe-array-concat: 1.1.2
    -    dev: true
     
    -  /es-module-lexer@1.5.0:
    -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    +  es-module-lexer@1.5.0: {}
     
    -  /es-object-atoms@1.0.0:
    -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    -    engines: {node: '>= 0.4'}
    +  es-object-atoms@1.0.0:
         dependencies:
           es-errors: 1.3.0
    -    dev: true
     
    -  /es-set-tostringtag@2.0.3:
    -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    -    engines: {node: '>= 0.4'}
    +  es-set-tostringtag@2.0.3:
         dependencies:
           get-intrinsic: 1.2.4
           has-tostringtag: 1.0.2
           hasown: 2.0.2
    -    dev: true
     
    -  /es-shim-unscopables@1.0.2:
    -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    +  es-shim-unscopables@1.0.2:
         dependencies:
           hasown: 2.0.2
    -    dev: true
     
    -  /es-to-primitive@1.2.1:
    -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    -    engines: {node: '>= 0.4'}
    +  es-to-primitive@1.2.1:
         dependencies:
           is-callable: 1.2.7
           is-date-object: 1.0.5
           is-symbol: 1.0.4
    -    dev: true
     
    -  /esbuild@0.20.2:
    -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -    requiresBuild: true
    +  esbuild@0.20.2:
         optionalDependencies:
           '@esbuild/aix-ppc64': 0.20.2
           '@esbuild/android-arm': 0.20.2
    @@ -8532,56 +14891,29 @@ packages:
           '@esbuild/win32-ia32': 0.20.2
           '@esbuild/win32-x64': 0.20.2
     
    -  /escalade@3.1.2:
    -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    -    engines: {node: '>=6'}
    -
    -  /escape-goat@4.0.0:
    -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    -    engines: {node: '>=12'}
    -    dev: false
    -
    -  /escape-html@1.0.3:
    -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    +  escalade@3.1.2: {}
     
    -  /escape-string-regexp@1.0.5:
    -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    -    engines: {node: '>=0.8.0'}
    +  escape-goat@4.0.0: {}
     
    -  /escape-string-regexp@2.0.0:
    -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  escape-html@1.0.3: {}
     
    -  /escape-string-regexp@4.0.0:
    -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    -    engines: {node: '>=10'}
    +  escape-string-regexp@1.0.5: {}
     
    -  /escape-string-regexp@5.0.0:
    -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  escape-string-regexp@2.0.0: {}
     
    -  /escodegen@2.1.0:
    -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    -    engines: {node: '>=6.0'}
    -    hasBin: true
    +  escape-string-regexp@4.0.0: {}
    +
    +  escape-string-regexp@5.0.0: {}
    +
    +  escodegen@2.1.0:
         dependencies:
           esprima: 4.0.1
           estraverse: 5.3.0
           esutils: 2.0.3
         optionalDependencies:
           source-map: 0.6.1
    -    dev: true
     
    -  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    -    peerDependencies:
    -      eslint: ^7.23.0 || ^8.0.0
    -      typescript: '>=3.3.1'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
         dependencies:
           '@next/eslint-plugin-next': 14.1.4
           '@rushstack/eslint-patch': 1.8.0
    @@ -8597,33 +14929,20 @@ packages:
         transitivePeerDependencies:
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-config-prettier@9.1.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    -    hasBin: true
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    +  eslint-config-prettier@9.1.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
    -    dev: true
     
    -  /eslint-import-resolver-node@0.3.9:
    -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    +  eslint-import-resolver-node@0.3.9:
         dependencies:
           debug: 3.2.7
           is-core-module: 2.13.1
           resolve: 1.22.8
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -8639,14 +14958,8 @@ packages:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -8662,28 +14975,8 @@ packages:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    +  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -8692,28 +14985,8 @@ packages:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    +  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -8722,17 +14995,8 @@ packages:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    +  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           array-includes: 3.1.8
    @@ -8757,13 +15021,8 @@ packages:
           - eslint-import-resolver-typescript
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
         dependencies:
           '@babel/runtime': 7.24.1
           aria-query: 5.3.0
    @@ -8782,34 +15041,19 @@ packages:
           minimatch: 3.1.2
           object.entries: 1.1.8
           object.fromentries: 2.0.8
    -    dev: true
     
    -  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    +  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
           eslint-utils: 3.0.0(eslint@8.57.0)
           globals: 13.24.0
           rambda: 7.5.0
    -    dev: true
     
    -  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    +  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
    -    dev: true
     
    -  /eslint-plugin-react@7.34.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +  eslint-plugin-react@7.34.1(eslint@8.57.0):
         dependencies:
           array-includes: 3.1.8
           array.prototype.findlast: 1.2.5
    @@ -8830,13 +15074,8 @@ packages:
           resolve: 2.0.0-next.5
           semver: 6.3.1
           string.prototype.matchall: 4.0.11
    -    dev: true
     
    -  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      eslint: '>=8.56.0'
    +  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    @@ -8857,65 +15096,35 @@ packages:
           strip-indent: 3.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/eslint-plugin': 6 - 7
    -      eslint: '8'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/eslint-plugin':
    -        optional: true
    +  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
           eslint: 8.57.0
           eslint-rule-composer: 0.3.0
    -    dev: true
     
    -  /eslint-rule-composer@0.3.0:
    -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    -    engines: {node: '>=4.0.0'}
    -    dev: true
    +  eslint-rule-composer@0.3.0: {}
     
    -  /eslint-scope@5.1.1:
    -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    -    engines: {node: '>=8.0.0'}
    +  eslint-scope@5.1.1:
         dependencies:
           esrecurse: 4.3.0
           estraverse: 4.3.0
     
    -  /eslint-scope@7.2.2:
    -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  eslint-scope@7.2.2:
         dependencies:
           esrecurse: 4.3.0
           estraverse: 5.3.0
     
    -  /eslint-utils@3.0.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    -    peerDependencies:
    -      eslint: '>=5'
    +  eslint-utils@3.0.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 2.1.0
    -    dev: true
     
    -  /eslint-visitor-keys@2.1.0:
    -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  eslint-visitor-keys@2.1.0: {}
     
    -  /eslint-visitor-keys@3.4.3:
    -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  eslint-visitor-keys@3.4.3: {}
     
    -  /eslint@8.57.0:
    -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    hasBin: true
    +  eslint@8.57.0:
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@eslint-community/regexpp': 4.10.0
    @@ -8958,116 +15167,77 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /espree@9.6.1:
    -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  espree@9.6.1:
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
           eslint-visitor-keys: 3.4.3
     
    -  /esprima@4.0.1:
    -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  esprima@4.0.1: {}
     
    -  /esquery@1.5.0:
    -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    -    engines: {node: '>=0.10'}
    +  esquery@1.5.0:
         dependencies:
           estraverse: 5.3.0
     
    -  /esrecurse@4.3.0:
    -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    -    engines: {node: '>=4.0'}
    +  esrecurse@4.3.0:
         dependencies:
           estraverse: 5.3.0
     
    -  /estraverse@4.3.0:
    -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    -    engines: {node: '>=4.0'}
    +  estraverse@4.3.0: {}
     
    -  /estraverse@5.3.0:
    -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    -    engines: {node: '>=4.0'}
    +  estraverse@5.3.0: {}
     
    -  /estree-util-attach-comments@3.0.0:
    -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    +  estree-util-attach-comments@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /estree-util-build-jsx@3.0.1:
    -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    +  estree-util-build-jsx@3.0.1:
         dependencies:
           '@types/estree-jsx': 1.0.5
           devlop: 1.1.0
           estree-util-is-identifier-name: 3.0.0
           estree-walker: 3.0.3
     
    -  /estree-util-is-identifier-name@3.0.0:
    -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    +  estree-util-is-identifier-name@3.0.0: {}
     
    -  /estree-util-to-js@2.0.0:
    -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    +  estree-util-to-js@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           astring: 1.8.6
           source-map: 0.7.4
     
    -  /estree-util-value-to-estree@3.0.1:
    -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    -    engines: {node: '>=16.0.0'}
    +  estree-util-value-to-estree@3.0.1:
         dependencies:
           '@types/estree': 1.0.5
           is-plain-obj: 4.1.0
    -    dev: false
     
    -  /estree-util-visit@2.0.0:
    -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    +  estree-util-visit@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/unist': 3.0.2
     
    -  /estree-walker@3.0.3:
    -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    +  estree-walker@3.0.3:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /esutils@2.0.3:
    -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    -    engines: {node: '>=0.10.0'}
    +  esutils@2.0.3: {}
     
    -  /eta@2.2.0:
    -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    -    engines: {node: '>=6.0.0'}
    -    dev: false
    +  eta@2.2.0: {}
     
    -  /etag@1.8.1:
    -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    -    engines: {node: '>= 0.6'}
    +  etag@1.8.1: {}
     
    -  /eval@0.1.8:
    -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    -    engines: {node: '>= 0.8'}
    +  eval@0.1.8:
         dependencies:
           '@types/node': 18.18.2
           require-like: 0.1.2
    -    dev: false
     
    -  /event-target-shim@5.0.1:
    -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    -    engines: {node: '>=6'}
    +  event-target-shim@5.0.1: {}
     
    -  /eventemitter3@4.0.7:
    -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    +  eventemitter3@4.0.7: {}
     
    -  /events@3.3.0:
    -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    -    engines: {node: '>=0.8.x'}
    +  events@3.3.0: {}
     
    -  /execa@5.1.1:
    -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    -    engines: {node: '>=10'}
    +  execa@5.1.1:
         dependencies:
           cross-spawn: 7.0.3
           get-stream: 6.0.1
    @@ -9079,28 +15249,19 @@ packages:
           signal-exit: 3.0.7
           strip-final-newline: 2.0.0
     
    -  /exit@0.1.2:
    -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    -    engines: {node: '>= 0.8.0'}
    -    dev: true
    +  exit@0.1.2: {}
     
    -  /expect@29.7.0:
    -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  expect@29.7.0:
         dependencies:
           '@jest/expect-utils': 29.7.0
           jest-get-type: 29.6.3
           jest-matcher-utils: 29.7.0
           jest-message-util: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /exponential-backoff@3.1.1:
    -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    +  exponential-backoff@3.1.1: {}
     
    -  /express@4.19.2:
    -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    -    engines: {node: '>= 0.10.0'}
    +  express@4.19.2:
         dependencies:
           accepts: 1.3.8
           array-flatten: 1.1.1
    @@ -9136,44 +15297,29 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /extend-shallow@2.0.1:
    -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    -    engines: {node: '>=0.10.0'}
    +  extend-shallow@2.0.1:
         dependencies:
           is-extendable: 0.1.1
    -    dev: false
     
    -  /extend@3.0.2:
    -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    +  extend@3.0.2: {}
     
    -  /external-editor@3.1.0:
    -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    -    engines: {node: '>=4'}
    +  external-editor@3.1.0:
         dependencies:
           chardet: 0.7.0
           iconv-lite: 0.4.24
           tmp: 0.0.33
     
    -  /fast-check@3.15.0:
    -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    -    engines: {node: '>=8.0.0'}
    +  fast-check@3.15.0:
         dependencies:
           pure-rand: 6.1.0
    -    dev: true
     
    -  /fast-check@3.17.0:
    -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    -    engines: {node: '>=8.0.0'}
    +  fast-check@3.17.0:
         dependencies:
           pure-rand: 6.1.0
    -    dev: true
     
    -  /fast-deep-equal@3.1.3:
    -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    +  fast-deep-equal@3.1.3: {}
     
    -  /fast-glob@3.3.2:
    -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    -    engines: {node: '>=8.6.0'}
    +  fast-glob@3.3.2:
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           '@nodelib/fs.walk': 1.2.8
    @@ -9181,129 +15327,77 @@ packages:
           merge2: 1.4.1
           micromatch: 4.0.5
     
    -  /fast-json-stable-stringify@2.1.0:
    -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +  fast-json-stable-stringify@2.1.0: {}
     
    -  /fast-levenshtein@2.0.6:
    -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    +  fast-levenshtein@2.0.6: {}
     
    -  /fast-loops@1.1.3:
    -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    -    dev: false
    +  fast-loops@1.1.3: {}
     
    -  /fast-safe-stringify@2.1.1:
    -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    +  fast-safe-stringify@2.1.1: {}
     
    -  /fast-shallow-equal@1.0.0:
    -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    -    dev: false
    +  fast-shallow-equal@1.0.0: {}
     
    -  /fast-url-parser@1.1.3:
    -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    +  fast-url-parser@1.1.3:
         dependencies:
           punycode: 1.4.1
    -    dev: false
     
    -  /fast-xml-parser@4.3.6:
    -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    -    hasBin: true
    +  fast-xml-parser@4.3.6:
         dependencies:
           strnum: 1.0.5
    -    dev: true
     
    -  /fastest-levenshtein@1.0.16:
    -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    -    engines: {node: '>= 4.9.1'}
    +  fastest-levenshtein@1.0.16: {}
     
    -  /fastest-stable-stringify@2.0.2:
    -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    -    dev: false
    +  fastest-stable-stringify@2.0.2: {}
     
    -  /fastq@1.17.1:
    -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +  fastq@1.17.1:
         dependencies:
           reusify: 1.0.4
     
    -  /fault@2.0.1:
    -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    +  fault@2.0.1:
         dependencies:
           format: 0.2.2
    -    dev: false
     
    -  /faye-websocket@0.11.4:
    -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    -    engines: {node: '>=0.8.0'}
    +  faye-websocket@0.11.4:
         dependencies:
           websocket-driver: 0.7.4
     
    -  /fb-watchman@2.0.2:
    -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    +  fb-watchman@2.0.2:
         dependencies:
           bser: 2.1.1
    -    dev: true
     
    -  /fecha@4.2.3:
    -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    +  fecha@4.2.3: {}
     
    -  /feed@4.2.2:
    -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    -    engines: {node: '>=0.4.0'}
    +  feed@4.2.2:
         dependencies:
           xml-js: 1.6.11
    -    dev: false
     
    -  /fetch-blob@2.1.2:
    -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    -    engines: {node: ^10.17.0 || >=12.3.0}
    -    peerDependencies:
    -      domexception: '*'
    -    peerDependenciesMeta:
    -      domexception:
    -        optional: true
    -    dev: false
    +  fetch-blob@2.1.2: {}
     
    -  /figures@3.2.0:
    -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    -    engines: {node: '>=8'}
    +  figures@3.2.0:
         dependencies:
           escape-string-regexp: 1.0.5
     
    -  /file-entry-cache@6.0.1:
    -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    +  file-entry-cache@6.0.1:
         dependencies:
           flat-cache: 3.2.0
     
    -  /file-loader@6.2.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    +  file-loader@6.2.0(webpack@5.91.0):
         dependencies:
           loader-utils: 2.0.4
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /filelist@1.0.4:
    -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    +  filelist@1.0.4:
         dependencies:
           minimatch: 5.1.6
     
    -  /filesize@8.0.7:
    -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    -    engines: {node: '>= 0.4.0'}
    -    dev: false
    +  filesize@8.0.7: {}
     
    -  /fill-range@7.0.1:
    -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    -    engines: {node: '>=8'}
    +  fill-range@7.0.1:
         dependencies:
           to-regex-range: 5.0.1
     
    -  /finalhandler@1.2.0:
    -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    -    engines: {node: '>= 0.8'}
    +  finalhandler@1.2.0:
         dependencies:
           debug: 2.6.9
           encodeurl: 1.0.2
    @@ -9315,108 +15409,63 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /find-cache-dir@4.0.0:
    -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    -    engines: {node: '>=14.16'}
    +  find-cache-dir@4.0.0:
         dependencies:
           common-path-prefix: 3.0.0
           pkg-dir: 7.0.0
    -    dev: false
     
    -  /find-up@3.0.0:
    -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    -    engines: {node: '>=6'}
    +  find-up@3.0.0:
         dependencies:
           locate-path: 3.0.0
    -    dev: false
     
    -  /find-up@4.1.0:
    -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    -    engines: {node: '>=8'}
    +  find-up@4.1.0:
         dependencies:
           locate-path: 5.0.0
           path-exists: 4.0.0
     
    -  /find-up@5.0.0:
    -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    -    engines: {node: '>=10'}
    +  find-up@5.0.0:
         dependencies:
           locate-path: 6.0.0
           path-exists: 4.0.0
     
    -  /find-up@6.3.0:
    -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  find-up@6.3.0:
         dependencies:
           locate-path: 7.2.0
           path-exists: 5.0.0
    -    dev: false
     
    -  /find-yarn-workspace-root2@1.2.16:
    -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    +  find-yarn-workspace-root2@1.2.16:
         dependencies:
           micromatch: 4.0.5
           pkg-dir: 4.2.0
     
    -  /first-chunk-stream@2.0.0:
    -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    -    engines: {node: '>=0.10.0'}
    +  first-chunk-stream@2.0.0:
         dependencies:
           readable-stream: 2.3.8
     
    -  /flat-cache@3.2.0:
    -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    +  flat-cache@3.2.0:
         dependencies:
           flatted: 3.3.1
           keyv: 4.5.4
           rimraf: 3.0.2
     
    -  /flat@5.0.2:
    -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    -    hasBin: true
    +  flat@5.0.2: {}
     
    -  /flatted@3.3.1:
    -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    +  flatted@3.3.1: {}
     
    -  /fn.name@1.1.0:
    -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    +  fn.name@1.1.0: {}
     
    -  /follow-redirects@1.15.6:
    -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      debug: '*'
    -    peerDependenciesMeta:
    -      debug:
    -        optional: true
    +  follow-redirects@1.15.6: {}
     
    -  /for-each@0.3.3:
    -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    +  for-each@0.3.3:
         dependencies:
           is-callable: 1.2.7
    -    dev: true
    -
    -  /foreground-child@3.1.1:
    -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    -    engines: {node: '>=14'}
    -    dependencies:
    -      cross-spawn: 7.0.3
    -      signal-exit: 4.1.0
     
    -  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    -    engines: {node: '>=10', yarn: '>=1.0.0'}
    -    peerDependencies:
    -      eslint: '>= 6'
    -      typescript: '>= 2.7'
    -      vue-template-compiler: '*'
    -      webpack: '>= 4'
    -    peerDependenciesMeta:
    -      eslint:
    -        optional: true
    -      vue-template-compiler:
    -        optional: true
    +  foreground-child@3.1.1:
    +    dependencies:
    +      cross-spawn: 7.0.3
    +      signal-exit: 4.1.0
    +
    +  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           '@babel/code-frame': 7.24.2
           '@types/json-schema': 7.0.15
    @@ -9434,102 +15483,63 @@ packages:
           tapable: 1.1.3
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /form-data-encoder@2.1.4:
    -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    -    engines: {node: '>= 14.17'}
    -    dev: false
    +  form-data-encoder@2.1.4: {}
     
    -  /form-data@4.0.0:
    -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    -    engines: {node: '>= 6'}
    +  form-data@4.0.0:
         dependencies:
           asynckit: 0.4.0
           combined-stream: 1.0.8
           mime-types: 2.1.35
    -    dev: true
     
    -  /format@0.2.2:
    -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    -    engines: {node: '>=0.4.x'}
    -    dev: false
    +  format@0.2.2: {}
     
    -  /forwarded@0.2.0:
    -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    -    engines: {node: '>= 0.6'}
    +  forwarded@0.2.0: {}
     
    -  /fraction.js@4.3.7:
    -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    +  fraction.js@4.3.7: {}
     
    -  /fresh@0.5.2:
    -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    -    engines: {node: '>= 0.6'}
    +  fresh@0.5.2: {}
     
    -  /fs-extra@11.2.0:
    -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    -    engines: {node: '>=14.14'}
    +  fs-extra@11.2.0:
         dependencies:
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
     
    -  /fs-extra@9.1.0:
    -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    -    engines: {node: '>=10'}
    +  fs-extra@9.1.0:
         dependencies:
           at-least-node: 1.0.0
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
    -    dev: false
     
    -  /fs-minipass@2.1.0:
    -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    -    engines: {node: '>= 8'}
    +  fs-minipass@2.1.0:
         dependencies:
           minipass: 3.3.6
     
    -  /fs-minipass@3.0.3:
    -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  fs-minipass@3.0.3:
         dependencies:
           minipass: 7.0.4
     
    -  /fs-monkey@1.0.5:
    -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    -    dev: false
    +  fs-monkey@1.0.5: {}
     
    -  /fs.realpath@1.0.0:
    -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +  fs.realpath@1.0.0: {}
     
    -  /fsevents@2.3.3:
    -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    -    os: [darwin]
    -    requiresBuild: true
    +  fsevents@2.3.3:
         optional: true
     
    -  /function-bind@1.1.2:
    -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    +  function-bind@1.1.2: {}
     
    -  /function.prototype.name@1.1.6:
    -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    -    engines: {node: '>= 0.4'}
    +  function.prototype.name@1.1.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           functions-have-names: 1.2.3
    -    dev: true
     
    -  /functions-have-names@1.2.3:
    -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    -    dev: true
    +  functions-have-names@1.2.3: {}
     
    -  /gauge@3.0.2:
    -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    -    engines: {node: '>=10'}
    +  gauge@3.0.2:
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -9541,9 +15551,7 @@ packages:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  /gauge@4.0.4:
    -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  gauge@4.0.4:
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -9554,22 +15562,13 @@ packages:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  /gensync@1.0.0-beta.2:
    -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    -    engines: {node: '>=6.9.0'}
    +  gensync@1.0.0-beta.2: {}
     
    -  /get-caller-file@2.0.5:
    -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    -    engines: {node: 6.* || 8.* || >= 10.*}
    -    dev: true
    +  get-caller-file@2.0.5: {}
     
    -  /get-func-name@2.0.2:
    -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    -    dev: true
    +  get-func-name@2.0.2: {}
     
    -  /get-intrinsic@1.2.4:
    -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    -    engines: {node: '>= 0.4'}
    +  get-intrinsic@1.2.4:
         dependencies:
           es-errors: 1.3.0
           function-bind: 1.1.2
    @@ -9577,77 +15576,48 @@ packages:
           has-symbols: 1.0.3
           hasown: 2.0.2
     
    -  /get-npm-tarball-url@2.1.0:
    -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    -    engines: {node: '>=12.17'}
    -    dev: false
    +  get-npm-tarball-url@2.1.0: {}
     
    -  /get-own-enumerable-property-symbols@3.0.2:
    -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    -    dev: false
    +  get-own-enumerable-property-symbols@3.0.2: {}
     
    -  /get-package-type@0.1.0:
    -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    -    engines: {node: '>=8.0.0'}
    -    dev: true
    +  get-package-type@0.1.0: {}
     
    -  /get-source@2.0.12:
    -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    +  get-source@2.0.12:
         dependencies:
           data-uri-to-buffer: 2.0.2
           source-map: 0.6.1
    -    dev: true
     
    -  /get-stream@6.0.1:
    -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    -    engines: {node: '>=10'}
    +  get-stream@6.0.1: {}
     
    -  /get-symbol-description@1.0.2:
    -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    -    engines: {node: '>= 0.4'}
    +  get-symbol-description@1.0.2:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /get-tsconfig@4.7.3:
    -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    +  get-tsconfig@4.7.3:
         dependencies:
           resolve-pkg-maps: 1.0.0
    -    dev: true
     
    -  /github-slugger@1.5.0:
    -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    -    dev: false
    +  github-slugger@1.5.0: {}
     
    -  /github-username@6.0.0:
    -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    -    engines: {node: '>=10'}
    +  github-username@6.0.0:
         dependencies:
           '@octokit/rest': 18.12.0
         transitivePeerDependencies:
           - encoding
     
    -  /glob-parent@5.1.2:
    -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    -    engines: {node: '>= 6'}
    +  glob-parent@5.1.2:
         dependencies:
           is-glob: 4.0.3
     
    -  /glob-parent@6.0.2:
    -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    -    engines: {node: '>=10.13.0'}
    +  glob-parent@6.0.2:
         dependencies:
           is-glob: 4.0.3
     
    -  /glob-to-regexp@0.4.1:
    -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    +  glob-to-regexp@0.4.1: {}
     
    -  /glob@10.3.10:
    -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    +  glob@10.3.10:
         dependencies:
           foreground-child: 3.1.1
           jackspeak: 2.3.6
    @@ -9655,8 +15625,7 @@ packages:
           minipass: 7.0.4
           path-scurry: 1.10.1
     
    -  /glob@7.2.3:
    -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    +  glob@7.2.3:
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -9665,9 +15634,7 @@ packages:
           once: 1.4.0
           path-is-absolute: 1.0.1
     
    -  /glob@8.1.0:
    -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    -    engines: {node: '>=12'}
    +  glob@8.1.0:
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -9675,49 +15642,31 @@ packages:
           minimatch: 5.1.6
           once: 1.4.0
     
    -  /global-dirs@3.0.1:
    -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    -    engines: {node: '>=10'}
    +  global-dirs@3.0.1:
         dependencies:
           ini: 2.0.0
    -    dev: false
     
    -  /global-modules@2.0.0:
    -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    -    engines: {node: '>=6'}
    +  global-modules@2.0.0:
         dependencies:
           global-prefix: 3.0.0
    -    dev: false
     
    -  /global-prefix@3.0.0:
    -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    -    engines: {node: '>=6'}
    +  global-prefix@3.0.0:
         dependencies:
           ini: 1.3.8
           kind-of: 6.0.3
           which: 1.3.1
    -    dev: false
     
    -  /globals@11.12.0:
    -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    -    engines: {node: '>=4'}
    +  globals@11.12.0: {}
     
    -  /globals@13.24.0:
    -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    -    engines: {node: '>=8'}
    +  globals@13.24.0:
         dependencies:
           type-fest: 0.20.2
     
    -  /globalthis@1.0.3:
    -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    -    engines: {node: '>= 0.4'}
    +  globalthis@1.0.3:
         dependencies:
           define-properties: 1.2.1
    -    dev: true
     
    -  /globby@11.1.0:
    -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    -    engines: {node: '>=10'}
    +  globby@11.1.0:
         dependencies:
           array-union: 2.1.0
           dir-glob: 3.0.1
    @@ -9726,25 +15675,19 @@ packages:
           merge2: 1.4.1
           slash: 3.0.0
     
    -  /globby@13.2.2:
    -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  globby@13.2.2:
         dependencies:
           dir-glob: 3.0.1
           fast-glob: 3.3.2
           ignore: 5.3.1
           merge2: 1.4.1
           slash: 4.0.0
    -    dev: false
     
    -  /gopd@1.0.1:
    -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    +  gopd@1.0.1:
         dependencies:
           get-intrinsic: 1.2.4
     
    -  /got@12.6.1:
    -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    -    engines: {node: '>=14.16'}
    +  got@12.6.1:
         dependencies:
           '@sindresorhus/is': 5.6.0
           '@szmarczak/http-timer': 5.0.1
    @@ -9757,108 +15700,66 @@ packages:
           lowercase-keys: 3.0.0
           p-cancelable: 3.0.0
           responselike: 3.0.0
    -    dev: false
     
    -  /graceful-fs@4.2.10:
    -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    +  graceful-fs@4.2.10: {}
     
    -  /graceful-fs@4.2.11:
    -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    +  graceful-fs@4.2.11: {}
     
    -  /graceful-git@3.1.2:
    -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    -    engines: {node: '>=10'}
    +  graceful-git@3.1.2:
         dependencies:
           retry: 0.12.0
           safe-execa: 0.1.2
    -    dev: false
     
    -  /graphemer@1.4.0:
    -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    +  graphemer@1.4.0: {}
     
    -  /gray-matter@4.0.3:
    -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    -    engines: {node: '>=6.0'}
    +  gray-matter@4.0.3:
         dependencies:
           js-yaml: 3.14.1
           kind-of: 6.0.3
           section-matter: 1.0.0
           strip-bom-string: 1.0.0
    -    dev: false
     
    -  /grouped-queue@2.0.0:
    -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    -    engines: {node: '>=8.0.0'}
    +  grouped-queue@2.0.0: {}
     
    -  /gzip-size@6.0.0:
    -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    -    engines: {node: '>=10'}
    +  gzip-size@6.0.0:
         dependencies:
           duplexer: 0.1.2
    -    dev: false
     
    -  /handle-thing@2.0.1:
    -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    +  handle-thing@2.0.1: {}
     
    -  /hard-rejection@2.1.0:
    -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  hard-rejection@2.1.0: {}
     
    -  /has-bigints@1.0.2:
    -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    -    dev: true
    +  has-bigints@1.0.2: {}
     
    -  /has-flag@3.0.0:
    -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    -    engines: {node: '>=4'}
    +  has-flag@3.0.0: {}
     
    -  /has-flag@4.0.0:
    -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    -    engines: {node: '>=8'}
    +  has-flag@4.0.0: {}
     
    -  /has-property-descriptors@1.0.2:
    -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    +  has-property-descriptors@1.0.2:
         dependencies:
           es-define-property: 1.0.0
     
    -  /has-proto@1.0.3:
    -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    -    engines: {node: '>= 0.4'}
    +  has-proto@1.0.3: {}
     
    -  /has-symbols@1.0.3:
    -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    -    engines: {node: '>= 0.4'}
    +  has-symbols@1.0.3: {}
     
    -  /has-tostringtag@1.0.2:
    -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    -    engines: {node: '>= 0.4'}
    +  has-tostringtag@1.0.2:
         dependencies:
           has-symbols: 1.0.3
    -    dev: true
     
    -  /has-unicode@2.0.1:
    -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    +  has-unicode@2.0.1: {}
     
    -  /has-yarn@3.0.0:
    -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  has-yarn@3.0.0: {}
     
    -  /hasharray@1.1.2:
    -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    +  hasharray@1.1.2:
         dependencies:
           jclass: 1.2.1
    -    dev: false
     
    -  /hasown@2.0.2:
    -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    -    engines: {node: '>= 0.4'}
    +  hasown@2.0.2:
         dependencies:
           function-bind: 1.1.2
     
    -  /hast-util-from-parse5@8.0.1:
    -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    +  hast-util-from-parse5@8.0.1:
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -9868,16 +15769,12 @@ packages:
           vfile: 6.0.1
           vfile-location: 5.0.2
           web-namespaces: 2.0.1
    -    dev: false
     
    -  /hast-util-parse-selector@4.0.0:
    -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    +  hast-util-parse-selector@4.0.0:
         dependencies:
           '@types/hast': 3.0.4
    -    dev: false
     
    -  /hast-util-raw@9.0.2:
    -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    +  hast-util-raw@9.0.2:
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -9892,10 +15789,8 @@ packages:
           vfile: 6.0.1
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    -    dev: false
     
    -  /hast-util-to-estree@3.1.0:
    -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    +  hast-util-to-estree@3.1.0:
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -9916,8 +15811,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /hast-util-to-jsx-runtime@2.3.0:
    -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    +  hast-util-to-jsx-runtime@2.3.0:
         dependencies:
           '@types/estree': 1.0.5
           '@types/hast': 3.0.4
    @@ -9937,8 +15831,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /hast-util-to-parse5@8.0.0:
    -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    +  hast-util-to-parse5@8.0.0:
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
    @@ -9947,29 +15840,22 @@ packages:
           space-separated-tokens: 2.0.2
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    -    dev: false
     
    -  /hast-util-whitespace@3.0.0:
    -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    +  hast-util-whitespace@3.0.0:
         dependencies:
           '@types/hast': 3.0.4
     
    -  /hastscript@8.0.0:
    -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    +  hastscript@8.0.0:
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
           hast-util-parse-selector: 4.0.0
           property-information: 6.4.1
           space-separated-tokens: 2.0.2
    -    dev: false
     
    -  /he@1.2.0:
    -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    -    hasBin: true
    +  he@1.2.0: {}
     
    -  /history@4.10.1:
    -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    +  history@4.10.1:
         dependencies:
           '@babel/runtime': 7.24.1
           loose-envify: 1.4.0
    @@ -9977,61 +15863,41 @@ packages:
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
           value-equal: 1.0.1
    -    dev: false
     
    -  /hoist-non-react-statics@3.3.2:
    -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    +  hoist-non-react-statics@3.3.2:
         dependencies:
           react-is: 16.13.1
    -    dev: false
     
    -  /hosted-git-info@2.8.9:
    -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    +  hosted-git-info@2.8.9: {}
     
    -  /hosted-git-info@4.1.0:
    -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    -    engines: {node: '>=10'}
    +  hosted-git-info@4.1.0:
         dependencies:
           lru-cache: 6.0.0
     
    -  /hosted-git-info@6.1.1:
    -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  hosted-git-info@6.1.1:
         dependencies:
           lru-cache: 7.18.3
     
    -  /hosted-git-info@7.0.1:
    -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    +  hosted-git-info@7.0.1:
         dependencies:
           lru-cache: 10.2.0
    -    dev: true
     
    -  /hpack.js@2.1.6:
    -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    +  hpack.js@2.1.6:
         dependencies:
           inherits: 2.0.4
           obuf: 1.1.2
           readable-stream: 2.3.8
           wbuf: 1.7.3
     
    -  /html-encoding-sniffer@3.0.0:
    -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    -    engines: {node: '>=12'}
    +  html-encoding-sniffer@3.0.0:
         dependencies:
           whatwg-encoding: 2.0.0
    -    dev: true
     
    -  /html-entities@2.5.2:
    -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    +  html-entities@2.5.2: {}
     
    -  /html-escaper@2.0.2:
    -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    +  html-escaper@2.0.2: {}
     
    -  /html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    +  html-minifier-terser@6.1.0:
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -10041,10 +15907,7 @@ packages:
           relateurl: 0.2.7
           terser: 5.29.2
     
    -  /html-minifier-terser@7.2.0:
    -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    -    engines: {node: ^14.13.1 || >=16.0.0}
    -    hasBin: true
    +  html-minifier-terser@7.2.0:
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -10053,28 +15916,12 @@ packages:
           param-case: 3.0.4
           relateurl: 0.2.7
           terser: 5.29.2
    -    dev: false
     
    -  /html-tags@3.3.1:
    -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  html-tags@3.3.1: {}
     
    -  /html-void-elements@3.0.0:
    -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    -    dev: false
    +  html-void-elements@3.0.0: {}
     
    -  /html-webpack-plugin@5.6.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.20.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  html-webpack-plugin@5.6.0(webpack@5.91.0):
         dependencies:
           '@types/html-minifier-terser': 6.1.0
           html-minifier-terser: 6.1.0
    @@ -10083,41 +15930,32 @@ packages:
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /htmlparser2@6.1.0:
    -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    +  htmlparser2@6.1.0:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           domutils: 2.8.0
           entities: 2.2.0
     
    -  /htmlparser2@8.0.2:
    -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    +  htmlparser2@8.0.2:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
           entities: 4.5.0
    -    dev: false
     
    -  /http-cache-semantics@4.1.1:
    -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    +  http-cache-semantics@4.1.1: {}
     
    -  /http-deceiver@1.2.7:
    -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    +  http-deceiver@1.2.7: {}
     
    -  /http-errors@1.6.3:
    -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    -    engines: {node: '>= 0.6'}
    +  http-errors@1.6.3:
         dependencies:
           depd: 1.1.2
           inherits: 2.0.3
           setprototypeof: 1.1.0
           statuses: 1.5.0
     
    -  /http-errors@2.0.0:
    -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    -    engines: {node: '>= 0.8'}
    +  http-errors@2.0.0:
         dependencies:
           depd: 2.0.0
           inherits: 2.0.4
    @@ -10125,12 +15963,9 @@ packages:
           statuses: 2.0.1
           toidentifier: 1.0.1
     
    -  /http-parser-js@0.5.8:
    -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    +  http-parser-js@0.5.8: {}
     
    -  /http-proxy-agent@4.0.1:
    -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    -    engines: {node: '>= 6'}
    +  http-proxy-agent@4.0.1:
         dependencies:
           '@tootallnate/once': 1.1.2
           agent-base: 6.0.2
    @@ -10138,9 +15973,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /http-proxy-agent@5.0.0:
    -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    -    engines: {node: '>= 6'}
    +  http-proxy-agent@5.0.0:
         dependencies:
           '@tootallnate/once': 2.0.0
           agent-base: 6.0.2
    @@ -10148,14 +15981,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
    -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      '@types/express': ^4.17.13
    -    peerDependenciesMeta:
    -      '@types/express':
    -        optional: true
    +  http-proxy-middleware@2.0.6(@types/express@4.17.21):
         dependencies:
           '@types/express': 4.17.21
           '@types/http-proxy': 1.17.14
    @@ -10166,9 +15992,7 @@ packages:
         transitivePeerDependencies:
           - debug
     
    -  /http-proxy@1.18.1:
    -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    -    engines: {node: '>=8.0.0'}
    +  http-proxy@1.18.1:
         dependencies:
           eventemitter3: 4.0.7
           follow-redirects: 1.15.6
    @@ -10176,10 +16000,7 @@ packages:
         transitivePeerDependencies:
           - debug
     
    -  /http-server@14.1.1:
    -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    +  http-server@14.1.1:
         dependencies:
           basic-auth: 2.0.1
           chalk: 4.1.2
    @@ -10197,187 +16018,112 @@ packages:
         transitivePeerDependencies:
           - debug
           - supports-color
    -    dev: true
     
    -  /http2-wrapper@2.2.1:
    -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    -    engines: {node: '>=10.19.0'}
    +  http2-wrapper@2.2.1:
         dependencies:
           quick-lru: 5.1.1
           resolve-alpn: 1.2.1
    -    dev: false
     
    -  /https-proxy-agent@5.0.1:
    -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    -    engines: {node: '>= 6'}
    +  https-proxy-agent@5.0.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  /human-signals@2.1.0:
    -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    -    engines: {node: '>=10.17.0'}
    +  human-signals@2.1.0: {}
     
    -  /humanize-ms@1.2.1:
    -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    +  humanize-ms@1.2.1:
         dependencies:
           ms: 2.1.3
     
    -  /hyphenate-style-name@1.0.4:
    -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    -    dev: false
    +  hyphenate-style-name@1.0.4: {}
     
    -  /iconv-lite@0.4.24:
    -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    -    engines: {node: '>=0.10.0'}
    +  iconv-lite@0.4.24:
         dependencies:
           safer-buffer: 2.1.2
     
    -  /iconv-lite@0.6.3:
    -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    -    engines: {node: '>=0.10.0'}
    -    requiresBuild: true
    +  iconv-lite@0.6.3:
         dependencies:
           safer-buffer: 2.1.2
     
    -  /icss-utils@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  icss-utils@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
     
    -  /ieee754@1.2.1:
    -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    +  ieee754@1.2.1: {}
     
    -  /ignore-walk@4.0.1:
    -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    -    engines: {node: '>=10'}
    +  ignore-walk@4.0.1:
         dependencies:
           minimatch: 3.1.2
     
    -  /ignore-walk@6.0.4:
    -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  ignore-walk@6.0.4:
         dependencies:
           minimatch: 9.0.3
     
    -  /ignore@5.3.1:
    -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    -    engines: {node: '>= 4'}
    +  ignore@5.3.1: {}
     
    -  /image-size@1.1.1:
    -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    -    engines: {node: '>=16.x'}
    -    hasBin: true
    +  image-size@1.1.1:
         dependencies:
           queue: 6.0.2
    -    dev: false
     
    -  /immediate@3.0.6:
    -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    -    dev: true
    +  immediate@3.0.6: {}
     
    -  /immer@10.0.4:
    -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    -    dev: false
    +  immer@10.0.4: {}
     
    -  /immer@9.0.21:
    -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    -    dev: false
    +  immer@9.0.21: {}
     
    -  /immutability-helper@3.1.1:
    -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    -    dev: false
    +  immutability-helper@3.1.1: {}
     
    -  /import-fresh@3.3.0:
    -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    -    engines: {node: '>=6'}
    +  import-fresh@3.3.0:
         dependencies:
           parent-module: 1.0.1
           resolve-from: 4.0.0
     
    -  /import-lazy@4.0.0:
    -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  import-lazy@4.0.0: {}
     
    -  /import-local@3.1.0:
    -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    +  import-local@3.1.0:
         dependencies:
           pkg-dir: 4.2.0
           resolve-cwd: 3.0.0
     
    -  /imurmurhash@0.1.4:
    -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    -    engines: {node: '>=0.8.19'}
    +  imurmurhash@0.1.4: {}
     
    -  /indent-string@4.0.0:
    -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    -    engines: {node: '>=8'}
    +  indent-string@4.0.0: {}
     
    -  /indent-string@5.0.0:
    -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  indent-string@5.0.0: {}
     
    -  /individual@3.0.0:
    -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    +  individual@3.0.0: {}
     
    -  /infer-owner@1.0.4:
    -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    +  infer-owner@1.0.4: {}
     
    -  /infima@0.2.0-alpha.43:
    -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  infima@0.2.0-alpha.43: {}
     
    -  /inflight@1.0.6:
    -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    +  inflight@1.0.6:
         dependencies:
           once: 1.4.0
           wrappy: 1.0.2
     
    -  /inherits@2.0.3:
    -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    +  inherits@2.0.3: {}
     
    -  /inherits@2.0.4:
    -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +  inherits@2.0.4: {}
     
    -  /ini@1.3.8:
    -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    +  ini@1.3.8: {}
     
    -  /ini@2.0.0:
    -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  ini@2.0.0: {}
     
    -  /ini@3.0.1:
    -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    dev: true
    +  ini@3.0.1: {}
     
    -  /inline-style-parser@0.1.1:
    -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    +  inline-style-parser@0.1.1: {}
     
    -  /inline-style-parser@0.2.2:
    -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    +  inline-style-parser@0.2.2: {}
     
    -  /inline-style-prefixer@7.0.0:
    -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    +  inline-style-prefixer@7.0.0:
         dependencies:
           css-in-js-utils: 3.1.0
           fast-loops: 1.1.3
    -    dev: false
     
    -  /inquirer@8.2.6:
    -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    -    engines: {node: '>=12.0.0'}
    +  inquirer@8.2.6:
         dependencies:
           ansi-escapes: 4.3.2
           chalk: 4.1.2
    @@ -10395,454 +16141,255 @@ packages:
           through: 2.3.8
           wrap-ansi: 6.2.0
     
    -  /internal-slot@1.0.7:
    -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    -    engines: {node: '>= 0.4'}
    +  internal-slot@1.0.7:
         dependencies:
           es-errors: 1.3.0
           hasown: 2.0.2
           side-channel: 1.0.6
    -    dev: true
     
    -  /interpret@1.4.0:
    -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    -    engines: {node: '>= 0.10'}
    +  interpret@1.4.0: {}
     
    -  /interpret@3.1.1:
    -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    -    engines: {node: '>=10.13.0'}
    +  interpret@3.1.1: {}
     
    -  /invariant@2.2.4:
    -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    +  invariant@2.2.4:
         dependencies:
           loose-envify: 1.4.0
     
    -  /ip-address@9.0.5:
    -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    -    engines: {node: '>= 12'}
    +  ip-address@9.0.5:
         dependencies:
           jsbn: 1.1.0
           sprintf-js: 1.1.3
     
    -  /ipaddr.js@1.9.1:
    -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    -    engines: {node: '>= 0.10'}
    +  ipaddr.js@1.9.1: {}
     
    -  /ipaddr.js@2.1.0:
    -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    -    engines: {node: '>= 10'}
    +  ipaddr.js@2.1.0: {}
     
    -  /is-alphabetical@2.0.1:
    -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    +  is-alphabetical@2.0.1: {}
     
    -  /is-alphanumerical@2.0.1:
    -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    +  is-alphanumerical@2.0.1:
         dependencies:
           is-alphabetical: 2.0.1
           is-decimal: 2.0.1
     
    -  /is-arguments@1.1.1:
    -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    -    engines: {node: '>= 0.4'}
    +  is-arguments@1.1.1:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-array-buffer@3.0.4:
    -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    -    engines: {node: '>= 0.4'}
    +  is-array-buffer@3.0.4:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /is-arrayish@0.2.1:
    -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    +  is-arrayish@0.2.1: {}
     
    -  /is-arrayish@0.3.2:
    -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    +  is-arrayish@0.3.2: {}
     
    -  /is-async-function@2.0.0:
    -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    -    engines: {node: '>= 0.4'}
    +  is-async-function@2.0.0:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-bigint@1.0.4:
    -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    +  is-bigint@1.0.4:
         dependencies:
           has-bigints: 1.0.2
    -    dev: true
     
    -  /is-binary-path@2.1.0:
    -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    -    engines: {node: '>=8'}
    +  is-binary-path@2.1.0:
         dependencies:
           binary-extensions: 2.3.0
     
    -  /is-boolean-object@1.1.2:
    -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    -    engines: {node: '>= 0.4'}
    +  is-boolean-object@1.1.2:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-builtin-module@3.2.1:
    -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    -    engines: {node: '>=6'}
    +  is-builtin-module@3.2.1:
         dependencies:
           builtin-modules: 3.3.0
    -    dev: true
     
    -  /is-callable@1.2.7:
    -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-callable@1.2.7: {}
     
    -  /is-ci@3.0.1:
    -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    -    hasBin: true
    +  is-ci@3.0.1:
         dependencies:
           ci-info: 3.9.0
    -    dev: false
     
    -  /is-core-module@2.13.1:
    -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    +  is-core-module@2.13.1:
         dependencies:
           hasown: 2.0.2
     
    -  /is-data-view@1.0.1:
    -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    -    engines: {node: '>= 0.4'}
    +  is-data-view@1.0.1:
         dependencies:
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /is-date-object@1.0.5:
    -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    -    engines: {node: '>= 0.4'}
    +  is-date-object@1.0.5:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-decimal@2.0.1:
    -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    +  is-decimal@2.0.1: {}
     
    -  /is-docker@2.2.1:
    -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -    dev: false
    +  is-docker@2.2.1: {}
     
    -  /is-docker@3.0.0:
    -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    hasBin: true
    +  is-docker@3.0.0: {}
     
    -  /is-extendable@0.1.1:
    -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-extendable@0.1.1: {}
     
    -  /is-extglob@2.1.1:
    -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    -    engines: {node: '>=0.10.0'}
    +  is-extglob@2.1.1: {}
     
    -  /is-finalizationregistry@1.0.2:
    -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    +  is-finalizationregistry@1.0.2:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-fullwidth-code-point@3.0.0:
    -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    -    engines: {node: '>=8'}
    +  is-fullwidth-code-point@3.0.0: {}
     
    -  /is-generator-fn@2.1.0:
    -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  is-generator-fn@2.1.0: {}
     
    -  /is-generator-function@1.0.10:
    -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    -    engines: {node: '>= 0.4'}
    +  is-generator-function@1.0.10:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-glob@4.0.3:
    -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    -    engines: {node: '>=0.10.0'}
    +  is-glob@4.0.3:
         dependencies:
           is-extglob: 2.1.1
     
    -  /is-hexadecimal@2.0.1:
    -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    +  is-hexadecimal@2.0.1: {}
     
    -  /is-inside-container@1.0.0:
    -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    -    engines: {node: '>=14.16'}
    -    hasBin: true
    +  is-inside-container@1.0.0:
         dependencies:
           is-docker: 3.0.0
     
    -  /is-installed-globally@0.4.0:
    -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    -    engines: {node: '>=10'}
    +  is-installed-globally@0.4.0:
         dependencies:
           global-dirs: 3.0.1
           is-path-inside: 3.0.3
    -    dev: false
     
    -  /is-interactive@1.0.0:
    -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    -    engines: {node: '>=8'}
    +  is-interactive@1.0.0: {}
     
    -  /is-lambda@1.0.1:
    -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    +  is-lambda@1.0.1: {}
     
    -  /is-map@2.0.3:
    -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-map@2.0.3: {}
     
    -  /is-negative-zero@2.0.3:
    -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-negative-zero@2.0.3: {}
     
    -  /is-network-error@1.1.0:
    -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    -    engines: {node: '>=16'}
    +  is-network-error@1.1.0: {}
     
    -  /is-npm@6.0.0:
    -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  is-npm@6.0.0: {}
     
    -  /is-number-object@1.0.7:
    -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    -    engines: {node: '>= 0.4'}
    +  is-number-object@1.0.7:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-number@7.0.0:
    -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    -    engines: {node: '>=0.12.0'}
    +  is-number@7.0.0: {}
     
    -  /is-obj@1.0.1:
    -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-obj@1.0.1: {}
     
    -  /is-obj@2.0.0:
    -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  is-obj@2.0.0: {}
     
    -  /is-path-cwd@2.2.0:
    -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  is-path-cwd@2.2.0: {}
     
    -  /is-path-inside@3.0.3:
    -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    -    engines: {node: '>=8'}
    +  is-path-inside@3.0.3: {}
     
    -  /is-plain-obj@1.1.0:
    -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  is-plain-obj@1.1.0: {}
     
    -  /is-plain-obj@2.1.0:
    -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    -    engines: {node: '>=8'}
    +  is-plain-obj@2.1.0: {}
     
    -  /is-plain-obj@3.0.0:
    -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    -    engines: {node: '>=10'}
    +  is-plain-obj@3.0.0: {}
     
    -  /is-plain-obj@4.1.0:
    -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    -    engines: {node: '>=12'}
    +  is-plain-obj@4.1.0: {}
     
    -  /is-plain-object@2.0.4:
    -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    -    engines: {node: '>=0.10.0'}
    +  is-plain-object@2.0.4:
         dependencies:
           isobject: 3.0.1
     
    -  /is-plain-object@5.0.0:
    -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    -    engines: {node: '>=0.10.0'}
    +  is-plain-object@5.0.0: {}
     
    -  /is-potential-custom-element-name@1.0.1:
    -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    -    dev: true
    +  is-potential-custom-element-name@1.0.1: {}
     
    -  /is-reference@3.0.2:
    -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    +  is-reference@3.0.2:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /is-regex@1.1.4:
    -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    -    engines: {node: '>= 0.4'}
    +  is-regex@1.1.4:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-regexp@1.0.0:
    -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-regexp@1.0.0: {}
     
    -  /is-root@2.1.0:
    -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  is-root@2.1.0: {}
     
    -  /is-scoped@2.1.0:
    -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    -    engines: {node: '>=8'}
    +  is-scoped@2.1.0:
         dependencies:
           scoped-regex: 2.1.0
     
    -  /is-set@2.0.3:
    -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-set@2.0.3: {}
     
    -  /is-shared-array-buffer@1.0.3:
    -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    -    engines: {node: '>= 0.4'}
    +  is-shared-array-buffer@1.0.3:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-stream@2.0.1:
    -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    -    engines: {node: '>=8'}
    +  is-stream@2.0.1: {}
     
    -  /is-string@1.0.7:
    -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    -    engines: {node: '>= 0.4'}
    +  is-string@1.0.7:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-subdir@1.2.0:
    -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    -    engines: {node: '>=4'}
    +  is-subdir@1.2.0:
         dependencies:
           better-path-resolve: 1.0.0
    -    dev: true
     
    -  /is-symbol@1.0.4:
    -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    -    engines: {node: '>= 0.4'}
    +  is-symbol@1.0.4:
         dependencies:
           has-symbols: 1.0.3
    -    dev: true
     
    -  /is-typed-array@1.1.13:
    -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    -    engines: {node: '>= 0.4'}
    +  is-typed-array@1.1.13:
         dependencies:
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /is-typedarray@1.0.0:
    -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    +  is-typedarray@1.0.0: {}
     
    -  /is-unicode-supported@0.1.0:
    -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    -    engines: {node: '>=10'}
    +  is-unicode-supported@0.1.0: {}
     
    -  /is-utf8@0.2.1:
    -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    +  is-utf8@0.2.1: {}
     
    -  /is-weakmap@2.0.2:
    -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-weakmap@2.0.2: {}
     
    -  /is-weakref@1.0.2:
    -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    +  is-weakref@1.0.2:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-weakset@2.0.3:
    -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    -    engines: {node: '>= 0.4'}
    +  is-weakset@2.0.3:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /is-windows@1.0.2:
    -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  is-windows@1.0.2: {}
     
    -  /is-wsl@2.2.0:
    -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    -    engines: {node: '>=8'}
    +  is-wsl@2.2.0:
         dependencies:
           is-docker: 2.2.1
    -    dev: false
     
    -  /is-wsl@3.1.0:
    -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    -    engines: {node: '>=16'}
    +  is-wsl@3.1.0:
         dependencies:
           is-inside-container: 1.0.0
     
    -  /is-yarn-global@0.4.1:
    -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  is-yarn-global@0.4.1: {}
     
    -  /isarray@0.0.1:
    -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    -    dev: false
    +  isarray@0.0.1: {}
     
    -  /isarray@1.0.0:
    -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    +  isarray@1.0.0: {}
     
    -  /isarray@2.0.5:
    -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    -    dev: true
    +  isarray@2.0.5: {}
     
    -  /isbinaryfile@4.0.10:
    -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    -    engines: {node: '>= 8.0.0'}
    +  isbinaryfile@4.0.10: {}
     
    -  /isbinaryfile@5.0.2:
    -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    -    engines: {node: '>= 18.0.0'}
    +  isbinaryfile@5.0.2: {}
     
    -  /isexe@2.0.0:
    -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +  isexe@2.0.0: {}
     
    -  /isobject@3.0.1:
    -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    -    engines: {node: '>=0.10.0'}
    +  isobject@3.0.1: {}
     
    -  /istanbul-lib-coverage@3.2.2:
    -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  istanbul-lib-coverage@3.2.2: {}
     
    -  /istanbul-lib-instrument@5.2.1:
    -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    -    engines: {node: '>=8'}
    +  istanbul-lib-instrument@5.2.1:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -10851,11 +16398,8 @@ packages:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-lib-instrument@6.0.2:
    -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-instrument@6.0.2:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -10864,85 +16408,58 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-lib-report@3.0.1:
    -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-report@3.0.1:
         dependencies:
           istanbul-lib-coverage: 3.2.2
           make-dir: 4.0.0
           supports-color: 7.2.0
    -    dev: true
     
    -  /istanbul-lib-source-maps@4.0.1:
    -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-source-maps@4.0.1:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           istanbul-lib-coverage: 3.2.2
           source-map: 0.6.1
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-reports@3.1.7:
    -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    -    engines: {node: '>=8'}
    +  istanbul-reports@3.1.7:
         dependencies:
           html-escaper: 2.0.2
           istanbul-lib-report: 3.0.1
    -    dev: true
     
    -  /iterator.prototype@1.1.2:
    -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    +  iterator.prototype@1.1.2:
         dependencies:
           define-properties: 1.2.1
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           reflect.getprototypeof: 1.0.6
           set-function-name: 2.0.2
    -    dev: true
     
    -  /itertools@2.2.5:
    -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    -    dev: false
    +  itertools@2.2.5: {}
     
    -  /jackspeak@2.3.6:
    -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    -    engines: {node: '>=14'}
    +  jackspeak@2.3.6:
         dependencies:
           '@isaacs/cliui': 8.0.2
         optionalDependencies:
           '@pkgjs/parseargs': 0.11.0
     
    -  /jake@10.8.7:
    -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  jake@10.8.7:
         dependencies:
           async: 3.2.5
           chalk: 4.1.2
           filelist: 1.0.4
           minimatch: 3.1.2
     
    -  /jclass@1.2.1:
    -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  jclass@1.2.1: {}
     
    -  /jest-changed-files@29.7.0:
    -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-changed-files@29.7.0:
         dependencies:
           execa: 5.1.1
           jest-util: 29.7.0
           p-limit: 3.1.0
    -    dev: true
     
    -  /jest-circus@29.7.0:
    -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-circus@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -10967,17 +16484,8 @@ packages:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    -    dev: true
     
    -  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/test-result': 29.7.0
    @@ -10995,19 +16503,8 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@types/node': '*'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      ts-node:
    -        optional: true
    +  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@babel/core': 7.24.3
           '@jest/test-sequencer': 29.7.0
    @@ -11036,44 +16533,27 @@ packages:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    -    dev: true
     
    -  /jest-diff@29.7.0:
    -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-diff@29.7.0:
         dependencies:
           chalk: 4.1.2
           diff-sequences: 29.6.3
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-docblock@29.7.0:
    -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-docblock@29.7.0:
         dependencies:
           detect-newline: 3.1.0
    -    dev: true
     
    -  /jest-each@29.7.0:
    -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-each@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
           jest-get-type: 29.6.3
           jest-util: 29.7.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-environment-jsdom@29.7.0:
    -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    +  jest-environment-jsdom@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11087,11 +16567,8 @@ packages:
           - bufferutil
           - supports-color
           - utf-8-validate
    -    dev: true
     
    -  /jest-environment-node@29.7.0:
    -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-environment-node@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11099,16 +16576,10 @@ packages:
           '@types/node': 18.18.2
           jest-mock: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /jest-get-type@29.6.3:
    -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  jest-get-type@29.6.3: {}
     
    -  /jest-haste-map@29.7.0:
    -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-haste-map@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/graceful-fs': 4.1.9
    @@ -11123,29 +16594,20 @@ packages:
           walker: 1.0.8
         optionalDependencies:
           fsevents: 2.3.3
    -    dev: true
     
    -  /jest-leak-detector@29.7.0:
    -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-leak-detector@29.7.0:
         dependencies:
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-matcher-utils@29.7.0:
    -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-matcher-utils@29.7.0:
         dependencies:
           chalk: 4.1.2
           jest-diff: 29.7.0
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-message-util@29.7.0:
    -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-message-util@29.7.0:
         dependencies:
           '@babel/code-frame': 7.24.2
           '@jest/types': 29.6.3
    @@ -11156,47 +16618,27 @@ packages:
           pretty-format: 29.7.0
           slash: 3.0.0
           stack-utils: 2.0.6
    -    dev: true
     
    -  /jest-mock@29.7.0:
    -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-mock@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-util: 29.7.0
    -    dev: true
     
    -  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    -    engines: {node: '>=6'}
    -    peerDependencies:
    -      jest-resolve: '*'
    -    peerDependenciesMeta:
    -      jest-resolve:
    -        optional: true
    +  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
         dependencies:
           jest-resolve: 29.7.0
    -    dev: true
     
    -  /jest-regex-util@29.6.3:
    -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  jest-regex-util@29.6.3: {}
     
    -  /jest-resolve-dependencies@29.7.0:
    -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-resolve-dependencies@29.7.0:
         dependencies:
           jest-regex-util: 29.6.3
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-resolve@29.7.0:
    -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-resolve@29.7.0:
         dependencies:
           chalk: 4.1.2
           graceful-fs: 4.2.11
    @@ -11207,11 +16649,8 @@ packages:
           resolve: 1.22.8
           resolve.exports: 2.0.2
           slash: 3.0.0
    -    dev: true
     
    -  /jest-runner@29.7.0:
    -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-runner@29.7.0:
         dependencies:
           '@jest/console': 29.7.0
           '@jest/environment': 29.7.0
    @@ -11236,11 +16675,8 @@ packages:
           source-map-support: 0.5.13
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-runtime@29.7.0:
    -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-runtime@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11266,11 +16702,8 @@ packages:
           strip-bom: 4.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-snapshot@29.7.0:
    -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-snapshot@29.7.0:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -11294,11 +16727,8 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-util@29.7.0:
    -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-util@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -11307,9 +16737,7 @@ packages:
           graceful-fs: 4.2.11
           picomatch: 2.3.1
     
    -  /jest-validate@29.7.0:
    -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-validate@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           camelcase: 6.3.0
    @@ -11317,11 +16745,8 @@ packages:
           jest-get-type: 29.6.3
           leven: 3.1.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-watcher@29.7.0:
    -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-watcher@29.7.0:
         dependencies:
           '@jest/test-result': 29.7.0
           '@jest/types': 29.6.3
    @@ -11331,34 +16756,21 @@ packages:
           emittery: 0.13.1
           jest-util: 29.7.0
           string-length: 4.0.2
    -    dev: true
    -
    -  /jest-worker@27.5.1:
    -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    -    engines: {node: '>= 10.13.0'}
    -    dependencies:
    -      '@types/node': 18.18.2
    -      merge-stream: 2.0.0
    -      supports-color: 8.1.1
     
    -  /jest-worker@29.7.0:
    -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-worker@27.5.1:
         dependencies:
           '@types/node': 18.18.2
    -      jest-util: 29.7.0
           merge-stream: 2.0.0
           supports-color: 8.1.1
    -
    -  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +
    +  jest-worker@29.7.0:
    +    dependencies:
    +      '@types/node': 18.18.2
    +      jest-util: 29.7.0
    +      merge-stream: 2.0.0
    +      supports-color: 8.1.1
    +
    +  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/types': 29.6.3
    @@ -11369,14 +16781,10 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /jiti@1.21.0:
    -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    -    hasBin: true
    +  jiti@1.21.0: {}
     
    -  /joi@17.12.2:
    -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    +  joi@17.12.2:
         dependencies:
           '@hapi/hoek': 9.3.0
           '@hapi/topo': 5.1.0
    @@ -11384,37 +16792,22 @@ packages:
           '@sideway/formula': 3.0.1
           '@sideway/pinpoint': 2.0.0
     
    -  /js-cookie@2.2.1:
    -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    -    dev: false
    +  js-cookie@2.2.1: {}
     
    -  /js-tokens@4.0.0:
    -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +  js-tokens@4.0.0: {}
     
    -  /js-yaml@3.14.1:
    -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    -    hasBin: true
    +  js-yaml@3.14.1:
         dependencies:
           argparse: 1.0.10
           esprima: 4.0.1
     
    -  /js-yaml@4.1.0:
    -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    -    hasBin: true
    +  js-yaml@4.1.0:
         dependencies:
           argparse: 2.0.1
     
    -  /jsbn@1.1.0:
    -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    +  jsbn@1.1.0: {}
     
    -  /jsdom@20.0.3:
    -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    +  jsdom@20.0.3:
         dependencies:
           abab: 2.0.6
           acorn: 8.11.3
    @@ -11446,272 +16839,168 @@ packages:
           - bufferutil
           - supports-color
           - utf-8-validate
    -    dev: true
     
    -  /jsesc@0.5.0:
    -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    -    hasBin: true
    +  jsesc@0.5.0: {}
     
    -  /jsesc@2.5.2:
    -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  jsesc@2.5.2: {}
     
    -  /jsesc@3.0.2:
    -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -    dev: true
    +  jsesc@3.0.2: {}
     
    -  /json-buffer@3.0.1:
    -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    +  json-buffer@3.0.1: {}
     
    -  /json-parse-even-better-errors@2.3.1:
    -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    +  json-parse-even-better-errors@2.3.1: {}
     
    -  /json-parse-even-better-errors@3.0.1:
    -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  json-parse-even-better-errors@3.0.1: {}
     
    -  /json-schema-traverse@0.4.1:
    -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    +  json-schema-traverse@0.4.1: {}
     
    -  /json-schema-traverse@1.0.0:
    -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    +  json-schema-traverse@1.0.0: {}
     
    -  /json-stable-stringify-without-jsonify@1.0.1:
    -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    +  json-stable-stringify-without-jsonify@1.0.1: {}
     
    -  /json-stringify-nice@1.1.4:
    -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    +  json-stringify-nice@1.1.4: {}
     
    -  /json-stringify-safe@5.0.1:
    -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    +  json-stringify-safe@5.0.1: {}
     
    -  /json5@1.0.2:
    -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    -    hasBin: true
    +  json5@1.0.2:
         dependencies:
           minimist: 1.2.8
    -    dev: true
     
    -  /json5@2.2.3:
    -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    +  json5@2.2.3: {}
     
    -  /jsonfile@6.1.0:
    -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    +  jsonfile@6.1.0:
         dependencies:
           universalify: 2.0.1
         optionalDependencies:
           graceful-fs: 4.2.11
     
    -  /jsonparse@1.3.1:
    -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    -    engines: {'0': node >= 0.2.0}
    +  jsonparse@1.3.1: {}
     
    -  /jsx-ast-utils@3.3.5:
    -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    -    engines: {node: '>=4.0'}
    +  jsx-ast-utils@3.3.5:
         dependencies:
           array-includes: 3.1.8
           array.prototype.flat: 1.3.2
           object.assign: 4.1.5
           object.values: 1.2.0
    -    dev: true
     
    -  /jszip@3.10.1:
    -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    +  jszip@3.10.1:
         dependencies:
           lie: 3.3.0
           pako: 1.0.11
           readable-stream: 2.3.8
           setimmediate: 1.0.5
    -    dev: true
     
    -  /just-diff-apply@5.5.0:
    -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    +  just-diff-apply@5.5.0: {}
     
    -  /just-diff@5.2.0:
    -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    +  just-diff@5.2.0: {}
     
    -  /just-extend@6.2.0:
    -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    -    dev: true
    +  just-extend@6.2.0: {}
     
    -  /keyv@4.5.4:
    -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    +  keyv@4.5.4:
         dependencies:
           json-buffer: 3.0.1
     
    -  /kind-of@6.0.3:
    -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    -    engines: {node: '>=0.10.0'}
    +  kind-of@6.0.3: {}
     
    -  /kleur@3.0.3:
    -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    -    engines: {node: '>=6'}
    +  kleur@3.0.3: {}
     
    -  /kuler@2.0.0:
    -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    +  kuler@2.0.0: {}
     
    -  /language-subtag-registry@0.3.22:
    -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    -    dev: true
    +  language-subtag-registry@0.3.22: {}
     
    -  /language-tags@1.0.9:
    -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    -    engines: {node: '>=0.10'}
    +  language-tags@1.0.9:
         dependencies:
           language-subtag-registry: 0.3.22
    -    dev: true
     
    -  /latest-version@7.0.0:
    -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    -    engines: {node: '>=14.16'}
    +  latest-version@7.0.0:
         dependencies:
           package-json: 8.1.1
    -    dev: false
     
    -  /launch-editor@2.6.1:
    -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    +  launch-editor@2.6.1:
         dependencies:
           picocolors: 1.0.0
           shell-quote: 1.8.1
     
    -  /leven@3.1.0:
    -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    -    engines: {node: '>=6'}
    +  leven@3.1.0: {}
     
    -  /levn@0.4.1:
    -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    -    engines: {node: '>= 0.8.0'}
    +  levn@0.4.1:
         dependencies:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  /lie@3.3.0:
    -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    +  lie@3.3.0:
         dependencies:
           immediate: 3.0.6
    -    dev: true
     
    -  /lilconfig@2.1.0:
    -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    -    engines: {node: '>=10'}
    +  lilconfig@2.1.0: {}
     
    -  /lilconfig@3.1.1:
    -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    -    engines: {node: '>=14'}
    -    dev: true
    +  lilconfig@3.1.1: {}
     
    -  /lines-and-columns@1.2.4:
    -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +  lines-and-columns@1.2.4: {}
     
    -  /load-json-file@6.2.0:
    -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    -    engines: {node: '>=8'}
    +  load-json-file@6.2.0:
         dependencies:
           graceful-fs: 4.2.11
           parse-json: 5.2.0
           strip-bom: 4.0.0
           type-fest: 0.6.0
    -    dev: true
     
    -  /load-json-file@7.0.1:
    -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: true
    +  load-json-file@7.0.1: {}
     
    -  /load-script@1.0.0:
    -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    -    dev: false
    +  load-script@1.0.0: {}
     
    -  /load-yaml-file@0.2.0:
    -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    -    engines: {node: '>=6'}
    +  load-yaml-file@0.2.0:
         dependencies:
           graceful-fs: 4.2.11
           js-yaml: 3.14.1
           pify: 4.0.1
           strip-bom: 3.0.0
     
    -  /loader-runner@4.3.0:
    -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    -    engines: {node: '>=6.11.5'}
    +  loader-runner@4.3.0: {}
     
    -  /loader-utils@2.0.4:
    -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    -    engines: {node: '>=8.9.0'}
    +  loader-utils@2.0.4:
         dependencies:
           big.js: 5.2.2
           emojis-list: 3.0.0
           json5: 2.2.3
    -    dev: false
     
    -  /loader-utils@3.2.1:
    -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    -    engines: {node: '>= 12.13.0'}
    -    dev: false
    +  loader-utils@3.2.1: {}
     
    -  /locate-path@3.0.0:
    -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    -    engines: {node: '>=6'}
    +  locate-path@3.0.0:
         dependencies:
           p-locate: 3.0.0
           path-exists: 3.0.0
    -    dev: false
     
    -  /locate-path@5.0.0:
    -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    -    engines: {node: '>=8'}
    +  locate-path@5.0.0:
         dependencies:
           p-locate: 4.1.0
     
    -  /locate-path@6.0.0:
    -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    -    engines: {node: '>=10'}
    +  locate-path@6.0.0:
         dependencies:
           p-locate: 5.0.0
     
    -  /locate-path@7.2.0:
    -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  locate-path@7.2.0:
         dependencies:
           p-locate: 6.0.0
    -    dev: false
     
    -  /lodash.debounce@4.0.8:
    -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    +  lodash.debounce@4.0.8: {}
     
    -  /lodash.get@4.4.2:
    -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    -    dev: true
    +  lodash.get@4.4.2: {}
     
    -  /lodash.memoize@4.1.2:
    -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    +  lodash.memoize@4.1.2: {}
     
    -  /lodash.merge@4.6.2:
    -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    +  lodash.merge@4.6.2: {}
     
    -  /lodash.uniq@4.5.0:
    -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    -    dev: false
    +  lodash.uniq@4.5.0: {}
     
    -  /lodash@4.17.21:
    -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    +  lodash@4.17.21: {}
     
    -  /log-symbols@4.1.0:
    -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    -    engines: {node: '>=10'}
    +  log-symbols@4.1.0:
         dependencies:
           chalk: 4.1.2
           is-unicode-supported: 0.1.0
     
    -  /logform@2.6.0:
    -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    -    engines: {node: '>= 12.0.0'}
    +  logform@2.6.0:
         dependencies:
           '@colors/colors': 1.6.0
           '@types/triple-beam': 1.3.5
    @@ -11720,74 +17009,45 @@ packages:
           safe-stable-stringify: 2.4.3
           triple-beam: 1.4.1
     
    -  /longest-streak@3.1.0:
    -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    +  longest-streak@3.1.0: {}
     
    -  /loose-envify@1.4.0:
    -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    -    hasBin: true
    +  loose-envify@1.4.0:
         dependencies:
           js-tokens: 4.0.0
     
    -  /loupe@3.1.0:
    -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    +  loupe@3.1.0:
         dependencies:
           get-func-name: 2.0.2
    -    dev: true
     
    -  /lower-case@2.0.2:
    -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    +  lower-case@2.0.2:
         dependencies:
           tslib: 2.6.2
     
    -  /lowercase-keys@3.0.0:
    -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  lowercase-keys@3.0.0: {}
     
    -  /lru-cache@10.2.0:
    -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    -    engines: {node: 14 || >=16.14}
    +  lru-cache@10.2.0: {}
     
    -  /lru-cache@5.1.1:
    -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    +  lru-cache@5.1.1:
         dependencies:
           yallist: 3.1.1
     
    -  /lru-cache@6.0.0:
    -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    -    engines: {node: '>=10'}
    +  lru-cache@6.0.0:
         dependencies:
           yallist: 4.0.0
     
    -  /lru-cache@7.10.1:
    -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  lru-cache@7.10.1: {}
     
    -  /lru-cache@7.18.3:
    -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    -    engines: {node: '>=12'}
    +  lru-cache@7.18.3: {}
     
    -  /lz-string@1.5.0:
    -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    -    hasBin: true
    -    dev: true
    +  lz-string@1.5.0: {}
     
    -  /make-dir@4.0.0:
    -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    -    engines: {node: '>=10'}
    +  make-dir@4.0.0:
         dependencies:
           semver: 7.6.0
    -    dev: true
     
    -  /make-error@1.3.6:
    -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    -    dev: true
    +  make-error@1.3.6: {}
     
    -  /make-fetch-happen@10.2.1:
    -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  make-fetch-happen@10.2.1:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 16.1.3
    @@ -11809,9 +17069,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /make-fetch-happen@11.1.1:
    -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  make-fetch-happen@11.1.1:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 17.1.4
    @@ -11831,9 +17089,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /make-fetch-happen@9.1.0:
    -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    -    engines: {node: '>= 10'}
    +  make-fetch-happen@9.1.0:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 15.3.0
    @@ -11855,39 +17111,23 @@ packages:
           - bluebird
           - supports-color
     
    -  /makeerror@1.0.12:
    -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    +  makeerror@1.0.12:
         dependencies:
           tmpl: 1.0.5
    -    dev: true
     
    -  /map-age-cleaner@0.1.3:
    -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    -    engines: {node: '>=6'}
    +  map-age-cleaner@0.1.3:
         dependencies:
           p-defer: 1.0.0
    -    dev: true
     
    -  /map-obj@1.0.1:
    -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  map-obj@1.0.1: {}
     
    -  /map-obj@4.3.0:
    -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  map-obj@4.3.0: {}
     
    -  /markdown-extensions@2.0.0:
    -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    -    engines: {node: '>=16'}
    +  markdown-extensions@2.0.0: {}
     
    -  /markdown-table@3.0.3:
    -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    -    dev: false
    +  markdown-table@3.0.3: {}
     
    -  /mdast-util-directive@3.0.0:
    -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    +  mdast-util-directive@3.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -11899,19 +17139,15 @@ packages:
           unist-util-visit-parents: 6.0.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-find-and-replace@3.0.1:
    -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    +  mdast-util-find-and-replace@3.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           escape-string-regexp: 5.0.0
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
    -    dev: false
     
    -  /mdast-util-from-markdown@2.0.0:
    -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    +  mdast-util-from-markdown@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -11928,8 +17164,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-frontmatter@2.0.1:
    -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    +  mdast-util-frontmatter@2.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11939,20 +17174,16 @@ packages:
           micromark-extension-frontmatter: 2.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    +  mdast-util-gfm-autolink-literal@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           ccount: 2.0.1
           devlop: 1.1.0
           mdast-util-find-and-replace: 3.0.1
           micromark-util-character: 2.1.0
    -    dev: false
     
    -  /mdast-util-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    +  mdast-util-gfm-footnote@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11961,20 +17192,16 @@ packages:
           micromark-util-normalize-identifier: 2.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    +  mdast-util-gfm-strikethrough@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    +  mdast-util-gfm-table@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11983,10 +17210,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-task-list-item@2.0.0:
    -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    +  mdast-util-gfm-task-list-item@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11994,10 +17219,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm@3.0.0:
    -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    +  mdast-util-gfm@3.0.0:
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-gfm-autolink-literal: 2.0.0
    @@ -12008,10 +17231,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-mdx-expression@2.0.0:
    -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    +  mdast-util-mdx-expression@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12022,8 +17243,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdx-jsx@3.1.2:
    -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    +  mdast-util-mdx-jsx@3.1.2:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12041,8 +17261,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdx@3.0.0:
    -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    +  mdast-util-mdx@3.0.0:
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-mdx-expression: 2.0.0
    @@ -12052,8 +17271,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdxjs-esm@2.0.1:
    -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    +  mdast-util-mdxjs-esm@2.0.1:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12064,14 +17282,12 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-phrasing@4.1.0:
    -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    +  mdast-util-phrasing@4.1.0:
         dependencies:
           '@types/mdast': 4.0.3
           unist-util-is: 6.0.0
     
    -  /mdast-util-to-hast@13.1.0:
    -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    +  mdast-util-to-hast@13.1.0:
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -12083,8 +17299,7 @@ packages:
           unist-util-visit: 5.0.0
           vfile: 6.0.1
     
    -  /mdast-util-to-markdown@2.1.0:
    -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    +  mdast-util-to-markdown@2.1.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -12095,35 +17310,19 @@ packages:
           unist-util-visit: 5.0.0
           zwitch: 2.0.4
     
    -  /mdast-util-to-string@4.0.0:
    -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    +  mdast-util-to-string@4.0.0:
         dependencies:
           '@types/mdast': 4.0.3
     
    -  /mdn-data@2.0.14:
    -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    -    dev: false
    +  mdn-data@2.0.14: {}
     
    -  /mdn-data@2.0.28:
    -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    -    dev: true
    +  mdn-data@2.0.28: {}
     
    -  /mdn-data@2.0.30:
    -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    -    dev: true
    +  mdn-data@2.0.30: {}
     
    -  /media-typer@0.3.0:
    -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    -    engines: {node: '>= 0.6'}
    +  media-typer@0.3.0: {}
     
    -  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
    -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      mem-fs: ^2.1.0
    -    peerDependenciesMeta:
    -      mem-fs:
    -        optional: true
    +  mem-fs-editor@9.7.0(mem-fs@2.3.0):
         dependencies:
           binaryextensions: 4.19.0
           commondir: 1.0.1
    @@ -12137,43 +17336,29 @@ packages:
           normalize-path: 3.0.0
           textextensions: 5.16.0
     
    -  /mem-fs@2.3.0:
    -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    -    engines: {node: '>=12'}
    +  mem-fs@2.3.0:
         dependencies:
           '@types/node': 15.14.9
           '@types/vinyl': 2.0.11
           vinyl: 2.2.1
           vinyl-file: 3.0.0
     
    -  /mem@8.1.1:
    -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    -    engines: {node: '>=10'}
    +  mem@8.1.1:
         dependencies:
           map-age-cleaner: 0.1.3
           mimic-fn: 3.1.0
    -    dev: true
     
    -  /memfs@3.5.3:
    -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    -    engines: {node: '>= 4.0.0'}
    +  memfs@3.5.3:
         dependencies:
           fs-monkey: 1.0.5
    -    dev: false
     
    -  /memfs@4.8.0:
    -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    -    engines: {node: '>= 4.0.0'}
    +  memfs@4.8.0:
         dependencies:
           tslib: 2.6.2
     
    -  /memoize-one@5.2.1:
    -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    -    dev: false
    +  memoize-one@5.2.1: {}
     
    -  /meow@10.1.5:
    -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  meow@10.1.5:
         dependencies:
           '@types/minimist': 1.2.5
           camelcase-keys: 7.0.2
    @@ -12187,24 +17372,16 @@ packages:
           trim-newlines: 4.1.1
           type-fest: 1.4.0
           yargs-parser: 20.2.9
    -    dev: true
     
    -  /merge-descriptors@1.0.1:
    -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    +  merge-descriptors@1.0.1: {}
     
    -  /merge-stream@2.0.0:
    -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    +  merge-stream@2.0.0: {}
     
    -  /merge2@1.4.1:
    -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    -    engines: {node: '>= 8'}
    +  merge2@1.4.1: {}
     
    -  /methods@1.1.2:
    -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    -    engines: {node: '>= 0.6'}
    +  methods@1.1.2: {}
     
    -  /micromark-core-commonmark@2.0.0:
    -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    +  micromark-core-commonmark@2.0.0:
         dependencies:
           decode-named-character-reference: 1.0.2
           devlop: 1.1.0
    @@ -12223,8 +17400,7 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-directive@3.0.0:
    -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    +  micromark-extension-directive@3.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
    @@ -12233,28 +17409,22 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
           parse-entities: 4.0.1
    -    dev: false
     
    -  /micromark-extension-frontmatter@2.0.0:
    -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    +  micromark-extension-frontmatter@2.0.0:
         dependencies:
           fault: 2.0.1
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    +  micromark-extension-gfm-autolink-literal@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    +  micromark-extension-gfm-footnote@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-core-commonmark: 2.0.0
    @@ -12264,10 +17434,8 @@ packages:
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    +  micromark-extension-gfm-strikethrough@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
    @@ -12275,36 +17443,28 @@ packages:
           micromark-util-resolve-all: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    +  micromark-extension-gfm-table@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-tagfilter@2.0.0:
    -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    +  micromark-extension-gfm-tagfilter@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-task-list-item@2.0.1:
    -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    +  micromark-extension-gfm-task-list-item@2.0.1:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm@3.0.0:
    -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    +  micromark-extension-gfm@3.0.0:
         dependencies:
           micromark-extension-gfm-autolink-literal: 2.0.0
           micromark-extension-gfm-footnote: 2.0.0
    @@ -12314,10 +17474,8 @@ packages:
           micromark-extension-gfm-task-list-item: 2.0.1
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-mdx-expression@3.0.0:
    -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    +  micromark-extension-mdx-expression@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12328,8 +17486,7 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-mdx-jsx@3.0.0:
    -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    +  micromark-extension-mdx-jsx@3.0.0:
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -12342,13 +17499,11 @@ packages:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-extension-mdx-md@2.0.0:
    -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    +  micromark-extension-mdx-md@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-mdxjs-esm@3.0.0:
    -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    +  micromark-extension-mdxjs-esm@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12360,8 +17515,7 @@ packages:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-extension-mdxjs@3.0.0:
    -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    +  micromark-extension-mdxjs@3.0.0:
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
    @@ -12372,23 +17526,20 @@ packages:
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-destination@2.0.0:
    -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    +  micromark-factory-destination@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-label@2.0.0:
    -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    +  micromark-factory-label@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-mdx-expression@2.0.1:
    -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    +  micromark-factory-mdx-expression@2.0.1:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12399,84 +17550,69 @@ packages:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-factory-space@1.1.0:
    -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    +  micromark-factory-space@1.1.0:
         dependencies:
           micromark-util-character: 1.2.0
           micromark-util-types: 1.1.0
    -    dev: false
     
    -  /micromark-factory-space@2.0.0:
    -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    +  micromark-factory-space@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-title@2.0.0:
    -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    +  micromark-factory-title@2.0.0:
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-whitespace@2.0.0:
    -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    +  micromark-factory-whitespace@2.0.0:
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-character@1.2.0:
    -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    +  micromark-util-character@1.2.0:
         dependencies:
           micromark-util-symbol: 1.1.0
           micromark-util-types: 1.1.0
    -    dev: false
     
    -  /micromark-util-character@2.1.0:
    -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    +  micromark-util-character@2.1.0:
         dependencies:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-chunked@2.0.0:
    -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    +  micromark-util-chunked@2.0.0:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-classify-character@2.0.0:
    -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    +  micromark-util-classify-character@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-combine-extensions@2.0.0:
    -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    +  micromark-util-combine-extensions@2.0.0:
         dependencies:
           micromark-util-chunked: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-decode-numeric-character-reference@2.0.1:
    -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    +  micromark-util-decode-numeric-character-reference@2.0.1:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-decode-string@2.0.0:
    -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    +  micromark-util-decode-string@2.0.0:
         dependencies:
           decode-named-character-reference: 1.0.2
           micromark-util-character: 2.1.0
           micromark-util-decode-numeric-character-reference: 2.0.1
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-encode@2.0.0:
    -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    +  micromark-util-encode@2.0.0: {}
     
    -  /micromark-util-events-to-acorn@2.0.2:
    -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    +  micromark-util-events-to-acorn@2.0.2:
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -12487,50 +17623,38 @@ packages:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-util-html-tag-name@2.0.0:
    -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    +  micromark-util-html-tag-name@2.0.0: {}
     
    -  /micromark-util-normalize-identifier@2.0.0:
    -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    +  micromark-util-normalize-identifier@2.0.0:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-resolve-all@2.0.0:
    -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    +  micromark-util-resolve-all@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
     
    -  /micromark-util-sanitize-uri@2.0.0:
    -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    +  micromark-util-sanitize-uri@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-encode: 2.0.0
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-subtokenize@2.0.0:
    -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    +  micromark-util-subtokenize@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-symbol@1.1.0:
    -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    -    dev: false
    +  micromark-util-symbol@1.1.0: {}
     
    -  /micromark-util-symbol@2.0.0:
    -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    +  micromark-util-symbol@2.0.0: {}
     
    -  /micromark-util-types@1.1.0:
    -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    -    dev: false
    +  micromark-util-types@1.1.0: {}
     
    -  /micromark-util-types@2.0.0:
    -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    +  micromark-util-types@2.0.0: {}
     
    -  /micromark@4.0.0:
    -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    +  micromark@4.0.0:
         dependencies:
           '@types/debug': 4.1.12
           debug: 4.3.4(supports-color@8.1.1)
    @@ -12552,129 +17676,76 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /micromatch@4.0.5:
    -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    -    engines: {node: '>=8.6'}
    +  micromatch@4.0.5:
         dependencies:
           braces: 3.0.2
           picomatch: 2.3.1
     
    -  /mime-db@1.33.0:
    -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  mime-db@1.33.0: {}
     
    -  /mime-db@1.52.0:
    -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    -    engines: {node: '>= 0.6'}
    +  mime-db@1.52.0: {}
     
    -  /mime-types@2.1.18:
    -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    -    engines: {node: '>= 0.6'}
    +  mime-types@2.1.18:
         dependencies:
           mime-db: 1.33.0
    -    dev: false
     
    -  /mime-types@2.1.35:
    -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    -    engines: {node: '>= 0.6'}
    +  mime-types@2.1.35:
         dependencies:
           mime-db: 1.52.0
     
    -  /mime@1.6.0:
    -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  mime@1.6.0: {}
     
    -  /mimic-fn@2.1.0:
    -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    -    engines: {node: '>=6'}
    +  mimic-fn@2.1.0: {}
     
    -  /mimic-fn@3.1.0:
    -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  mimic-fn@3.1.0: {}
     
    -  /mimic-response@3.1.0:
    -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  mimic-response@3.1.0: {}
     
    -  /mimic-response@4.0.0:
    -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  mimic-response@4.0.0: {}
     
    -  /min-indent@1.0.1:
    -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  min-indent@1.0.1: {}
     
    -  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    +  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
         dependencies:
           schema-utils: 4.2.0
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /minimalistic-assert@1.0.1:
    -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    +  minimalistic-assert@1.0.1: {}
     
    -  /minimatch@3.1.2:
    -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    +  minimatch@3.1.2:
         dependencies:
           brace-expansion: 1.1.11
     
    -  /minimatch@5.0.1:
    -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    -    engines: {node: '>=10'}
    +  minimatch@5.0.1:
         dependencies:
           brace-expansion: 2.0.1
    -    dev: true
     
    -  /minimatch@5.1.6:
    -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    -    engines: {node: '>=10'}
    +  minimatch@5.1.6:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimatch@7.4.6:
    -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    -    engines: {node: '>=10'}
    +  minimatch@7.4.6:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimatch@9.0.3:
    -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  minimatch@9.0.3:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimist-options@4.1.0:
    -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    -    engines: {node: '>= 6'}
    +  minimist-options@4.1.0:
         dependencies:
           arrify: 1.0.1
           is-plain-obj: 1.1.0
           kind-of: 6.0.3
    -    dev: true
     
    -  /minimist@1.2.8:
    -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    +  minimist@1.2.8: {}
     
    -  /minipass-collect@1.0.2:
    -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    -    engines: {node: '>= 8'}
    +  minipass-collect@1.0.2:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-fetch@1.4.1:
    -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    -    engines: {node: '>=8'}
    +  minipass-fetch@1.4.1:
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -12682,9 +17753,7 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-fetch@2.1.2:
    -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  minipass-fetch@2.1.2:
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -12692,9 +17761,7 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-fetch@3.0.4:
    -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  minipass-fetch@3.0.4:
         dependencies:
           minipass: 7.0.4
           minipass-sized: 1.0.3
    @@ -12702,75 +17769,49 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-flush@1.0.5:
    -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    -    engines: {node: '>= 8'}
    +  minipass-flush@1.0.5:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-json-stream@1.0.1:
    -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    +  minipass-json-stream@1.0.1:
         dependencies:
           jsonparse: 1.3.1
           minipass: 3.3.6
     
    -  /minipass-pipeline@1.2.4:
    -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    -    engines: {node: '>=8'}
    +  minipass-pipeline@1.2.4:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-sized@1.0.3:
    -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    -    engines: {node: '>=8'}
    +  minipass-sized@1.0.3:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass@3.3.6:
    -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    -    engines: {node: '>=8'}
    +  minipass@3.3.6:
         dependencies:
           yallist: 4.0.0
     
    -  /minipass@5.0.0:
    -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    -    engines: {node: '>=8'}
    +  minipass@5.0.0: {}
     
    -  /minipass@7.0.4:
    -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  minipass@7.0.4: {}
     
    -  /minizlib@2.1.2:
    -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    -    engines: {node: '>= 8'}
    +  minizlib@2.1.2:
         dependencies:
           minipass: 3.3.6
           yallist: 4.0.0
     
    -  /mkdirp-infer-owner@2.0.0:
    -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    -    engines: {node: '>=10'}
    +  mkdirp-infer-owner@2.0.0:
         dependencies:
           chownr: 2.0.0
           infer-owner: 1.0.4
           mkdirp: 1.0.4
     
    -  /mkdirp@0.5.6:
    -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    -    hasBin: true
    +  mkdirp@0.5.6:
         dependencies:
           minimist: 1.2.8
    -    dev: true
     
    -  /mkdirp@1.0.4:
    -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  mkdirp@1.0.4: {}
     
    -  /mocha@10.3.0:
    -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    -    engines: {node: '>= 14.0.0'}
    -    hasBin: true
    +  mocha@10.3.0:
         dependencies:
           ansi-colors: 4.1.1
           browser-stdout: 1.3.1
    @@ -12792,36 +17833,23 @@ packages:
           yargs: 16.2.0
           yargs-parser: 20.2.4
           yargs-unparser: 2.0.0
    -    dev: true
     
    -  /moo@0.5.2:
    -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    -    dev: false
    +  moo@0.5.2: {}
     
    -  /mrmime@2.0.0:
    -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  mrmime@2.0.0: {}
     
    -  /ms@2.0.0:
    -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    +  ms@2.0.0: {}
     
    -  /ms@2.1.2:
    -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +  ms@2.1.2: {}
     
    -  /ms@2.1.3:
    -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    +  ms@2.1.3: {}
     
    -  /multicast-dns@7.2.5:
    -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    -    hasBin: true
    +  multicast-dns@7.2.5:
         dependencies:
           dns-packet: 5.6.1
           thunky: 1.1.0
     
    -  /multimatch@5.0.0:
    -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    -    engines: {node: '>=10'}
    +  multimatch@5.0.0:
         dependencies:
           '@types/minimatch': 3.0.5
           array-differ: 3.0.0
    @@ -12829,22 +17857,15 @@ packages:
           arrify: 2.0.1
           minimatch: 3.1.2
     
    -  /mute-stream@0.0.8:
    -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    +  mute-stream@0.0.8: {}
     
    -  /mz@2.7.0:
    -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    +  mz@2.7.0:
         dependencies:
           any-promise: 1.3.0
           object-assign: 4.1.1
           thenify-all: 1.6.0
    -    dev: true
     
    -  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@jridgewell/sourcemap-codec': 1.4.15
           css-tree: 1.1.3
    @@ -12856,20 +17877,12 @@ packages:
           rtl-css-js: 1.16.1
           stacktrace-js: 2.0.2
           stylis: 4.3.1
    -    dev: false
     
    -  /nanoid@3.3.7:
    -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    -    hasBin: true
    +  nanoid@3.3.7: {}
     
    -  /natural-compare@1.4.0:
    -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +  natural-compare@1.4.0: {}
     
    -  /ndjson@2.0.0:
    -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  ndjson@2.0.0:
         dependencies:
           json-stringify-safe: 5.0.1
           minimist: 1.2.8
    @@ -12877,50 +17890,25 @@ packages:
           split2: 3.2.2
           through2: 4.0.2
     
    -  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
    -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    -    hasBin: true
    +  nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
         dependencies:
           commander: 2.20.3
           moo: 0.5.2
           railroad-diagrams: 1.0.0
           randexp: 0.4.6
    -    dev: false
    -    patched: true
     
    -  /negotiator@0.6.3:
    -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    -    engines: {node: '>= 0.6'}
    +  negotiator@0.6.3: {}
     
    -  /neo-async@2.6.2:
    -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    +  neo-async@2.6.2: {}
     
    -  /neovim@5.1.0:
    -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  neovim@5.1.0:
         dependencies:
           '@msgpack/msgpack': 2.8.0
           winston: 3.11.0
     
    -  /nerf-dart@1.0.0:
    -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    -    dev: false
    +  nerf-dart@1.0.0: {}
     
    -  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    -    engines: {node: '>=18.17.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@opentelemetry/api': ^1.1.0
    -      react: ^18.2.0 || 18
    -      react-dom: ^18.2.0 || 18
    -      sass: ^1.3.0
    -    peerDependenciesMeta:
    -      '@opentelemetry/api':
    -        optional: true
    -      sass:
    -        optional: true
    +  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@next/env': 14.1.4
           '@swc/helpers': 0.5.2
    @@ -12944,53 +17932,34 @@ packages:
         transitivePeerDependencies:
           - '@babel/core'
           - babel-plugin-macros
    -    dev: false
     
    -  /nise@5.1.9:
    -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    +  nise@5.1.9:
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
           '@sinonjs/text-encoding': 0.7.2
           just-extend: 6.2.0
           path-to-regexp: 6.2.1
    -    dev: true
     
    -  /no-case@3.0.4:
    -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    +  no-case@3.0.4:
         dependencies:
           lower-case: 2.0.2
           tslib: 2.6.2
     
    -  /node-emoji@2.1.3:
    -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    -    engines: {node: '>=18'}
    +  node-emoji@2.1.3:
         dependencies:
           '@sindresorhus/is': 4.6.0
           char-regex: 1.0.2
           emojilib: 2.4.0
           skin-tone: 2.0.0
    -    dev: false
     
    -  /node-fetch@2.7.0:
    -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    -    engines: {node: 4.x || >=6.0.0}
    -    peerDependencies:
    -      encoding: ^0.1.0
    -    peerDependenciesMeta:
    -      encoding:
    -        optional: true
    +  node-fetch@2.7.0:
         dependencies:
           whatwg-url: 5.0.0
     
    -  /node-forge@1.3.1:
    -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    -    engines: {node: '>= 6.13.0'}
    +  node-forge@1.3.1: {}
     
    -  /node-gyp@8.4.1:
    -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    -    engines: {node: '>= 10.12.0'}
    -    hasBin: true
    +  node-gyp@8.4.1:
         dependencies:
           env-paths: 2.2.1
           glob: 7.2.3
    @@ -13006,10 +17975,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /node-gyp@9.4.1:
    -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    -    engines: {node: ^12.13 || ^14.13 || >=16}
    -    hasBin: true
    +  node-gyp@9.4.1:
         dependencies:
           env-paths: 2.2.1
           exponential-backoff: 3.1.1
    @@ -13026,180 +17992,122 @@ packages:
           - bluebird
           - supports-color
     
    -  /node-html-parser@6.1.12:
    -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    +  node-html-parser@6.1.12:
         dependencies:
           css-select: 5.1.0
           he: 1.2.0
    -    dev: false
     
    -  /node-int64@0.4.0:
    -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    -    dev: true
    +  node-int64@0.4.0: {}
     
    -  /node-releases@2.0.14:
    -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    +  node-releases@2.0.14: {}
     
    -  /nopt@5.0.0:
    -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    +  nopt@5.0.0:
         dependencies:
           abbrev: 1.1.1
     
    -  /nopt@6.0.0:
    -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    hasBin: true
    +  nopt@6.0.0:
         dependencies:
           abbrev: 1.1.1
     
    -  /normalize-package-data@2.5.0:
    -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    +  normalize-package-data@2.5.0:
         dependencies:
           hosted-git-info: 2.8.9
           resolve: 1.22.8
           semver: 5.7.2
           validate-npm-package-license: 3.0.4
     
    -  /normalize-package-data@3.0.3:
    -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    -    engines: {node: '>=10'}
    +  normalize-package-data@3.0.3:
         dependencies:
           hosted-git-info: 4.1.0
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
    -    dev: true
     
    -  /normalize-package-data@5.0.0:
    -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  normalize-package-data@5.0.0:
         dependencies:
           hosted-git-info: 6.1.1
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
     
    -  /normalize-path@3.0.0:
    -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    -    engines: {node: '>=0.10.0'}
    +  normalize-path@3.0.0: {}
     
    -  /normalize-range@0.1.2:
    -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    -    engines: {node: '>=0.10.0'}
    +  normalize-range@0.1.2: {}
     
    -  /normalize-registry-url@2.0.0:
    -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    -    dev: true
    +  normalize-registry-url@2.0.0: {}
     
    -  /normalize-url@6.1.0:
    -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  normalize-url@6.1.0: {}
     
    -  /normalize-url@8.0.1:
    -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  normalize-url@8.0.1: {}
     
    -  /npm-bundled@1.1.2:
    -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    +  npm-bundled@1.1.2:
         dependencies:
           npm-normalize-package-bin: 1.0.1
     
    -  /npm-bundled@3.0.0:
    -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-bundled@3.0.0:
         dependencies:
           npm-normalize-package-bin: 3.0.1
     
    -  /npm-install-checks@4.0.0:
    -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    -    engines: {node: '>=10'}
    +  npm-install-checks@4.0.0:
         dependencies:
           semver: 7.6.0
     
    -  /npm-install-checks@6.3.0:
    -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-install-checks@6.3.0:
         dependencies:
           semver: 7.6.0
     
    -  /npm-normalize-package-bin@1.0.1:
    -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    +  npm-normalize-package-bin@1.0.1: {}
     
    -  /npm-normalize-package-bin@2.0.0:
    -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  npm-normalize-package-bin@2.0.0: {}
     
    -  /npm-normalize-package-bin@3.0.1:
    -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-normalize-package-bin@3.0.1: {}
     
    -  /npm-package-arg@10.1.0:
    -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-package-arg@10.1.0:
         dependencies:
           hosted-git-info: 6.1.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
     
    -  /npm-package-arg@11.0.1:
    -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    +  npm-package-arg@11.0.1:
         dependencies:
           hosted-git-info: 7.0.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
    -    dev: true
     
    -  /npm-package-arg@8.1.5:
    -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    -    engines: {node: '>=10'}
    +  npm-package-arg@8.1.5:
         dependencies:
           hosted-git-info: 4.1.0
           semver: 7.6.0
           validate-npm-package-name: 3.0.0
     
    -  /npm-packlist@3.0.0:
    -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  npm-packlist@3.0.0:
         dependencies:
           glob: 7.2.3
           ignore-walk: 4.0.1
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  /npm-packlist@7.0.4:
    -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-packlist@7.0.4:
         dependencies:
           ignore-walk: 6.0.4
     
    -  /npm-pick-manifest@6.1.1:
    -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    +  npm-pick-manifest@6.1.1:
         dependencies:
           npm-install-checks: 4.0.0
           npm-normalize-package-bin: 1.0.1
           npm-package-arg: 8.1.5
           semver: 7.6.0
     
    -  /npm-pick-manifest@8.0.2:
    -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-pick-manifest@8.0.2:
         dependencies:
           npm-install-checks: 6.3.0
           npm-normalize-package-bin: 3.0.1
           npm-package-arg: 10.1.0
           semver: 7.6.0
     
    -  /npm-registry-fetch@12.0.2:
    -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +  npm-registry-fetch@12.0.2:
         dependencies:
           make-fetch-happen: 10.2.1
           minipass: 3.3.6
    @@ -13211,9 +18119,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /npm-registry-fetch@14.0.5:
    -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-registry-fetch@14.0.5:
         dependencies:
           make-fetch-happen: 11.1.1
           minipass: 5.0.0
    @@ -13225,175 +18131,119 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /npm-run-path@4.0.1:
    -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    -    engines: {node: '>=8'}
    +  npm-run-path@4.0.1:
         dependencies:
           path-key: 3.1.1
     
    -  /npmlog@5.0.1:
    -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    +  npmlog@5.0.1:
         dependencies:
           are-we-there-yet: 2.0.0
           console-control-strings: 1.1.0
           gauge: 3.0.2
           set-blocking: 2.0.0
     
    -  /npmlog@6.0.2:
    -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  npmlog@6.0.2:
         dependencies:
           are-we-there-yet: 3.0.1
           console-control-strings: 1.1.0
           gauge: 4.0.4
           set-blocking: 2.0.0
     
    -  /nprogress@0.2.0:
    -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    -    dev: false
    +  nprogress@0.2.0: {}
     
    -  /nth-check@2.1.1:
    -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    +  nth-check@2.1.1:
         dependencies:
           boolbase: 1.0.0
     
    -  /nwsapi@2.2.7:
    -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    -    dev: true
    +  nwsapi@2.2.7: {}
     
    -  /object-assign@4.1.1:
    -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    -    engines: {node: '>=0.10.0'}
    +  object-assign@4.1.1: {}
     
    -  /object-hash@3.0.0:
    -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  object-hash@3.0.0: {}
     
    -  /object-inspect@1.13.1:
    -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    +  object-inspect@1.13.1: {}
     
    -  /object-is@1.1.6:
    -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    -    engines: {node: '>= 0.4'}
    +  object-is@1.1.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    -    dev: true
     
    -  /object-keys@1.1.1:
    -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    -    engines: {node: '>= 0.4'}
    +  object-keys@1.1.1: {}
     
    -  /object.assign@4.1.5:
    -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    -    engines: {node: '>= 0.4'}
    +  object.assign@4.1.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           has-symbols: 1.0.3
           object-keys: 1.1.1
     
    -  /object.entries@1.1.8:
    -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    -    engines: {node: '>= 0.4'}
    +  object.entries@1.1.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.fromentries@2.0.8:
    -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    -    engines: {node: '>= 0.4'}
    +  object.fromentries@2.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.groupby@1.0.3:
    -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    -    engines: {node: '>= 0.4'}
    +  object.groupby@1.0.3:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
    -    dev: true
     
    -  /object.hasown@1.1.4:
    -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    -    engines: {node: '>= 0.4'}
    +  object.hasown@1.1.4:
         dependencies:
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.values@1.2.0:
    -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    -    engines: {node: '>= 0.4'}
    +  object.values@1.2.0:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /obuf@1.1.2:
    -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    +  obuf@1.1.2: {}
     
    -  /on-finished@2.4.1:
    -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    -    engines: {node: '>= 0.8'}
    +  on-finished@2.4.1:
         dependencies:
           ee-first: 1.1.1
     
    -  /on-headers@1.0.2:
    -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    -    engines: {node: '>= 0.8'}
    +  on-headers@1.0.2: {}
     
    -  /once@1.4.0:
    -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    +  once@1.4.0:
         dependencies:
           wrappy: 1.0.2
     
    -  /one-time@1.0.0:
    -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    +  one-time@1.0.0:
         dependencies:
           fn.name: 1.1.0
     
    -  /onetime@5.1.2:
    -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    -    engines: {node: '>=6'}
    +  onetime@5.1.2:
         dependencies:
           mimic-fn: 2.1.0
     
    -  /open@10.1.0:
    -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    -    engines: {node: '>=18'}
    +  open@10.1.0:
         dependencies:
           default-browser: 5.2.1
           define-lazy-prop: 3.0.0
           is-inside-container: 1.0.0
           is-wsl: 3.1.0
     
    -  /open@8.4.2:
    -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    -    engines: {node: '>=12'}
    +  open@8.4.2:
         dependencies:
           define-lazy-prop: 2.0.0
           is-docker: 2.2.1
           is-wsl: 2.2.0
    -    dev: false
     
    -  /opener@1.5.2:
    -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    -    hasBin: true
    +  opener@1.5.2: {}
     
    -  /optionator@0.9.3:
    -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    -    engines: {node: '>= 0.8.0'}
    +  optionator@0.9.3:
         dependencies:
           '@aashutoshrathi/word-wrap': 1.2.6
           deep-is: 0.1.4
    @@ -13402,9 +18252,7 @@ packages:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  /ora@5.4.1:
    -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    -    engines: {node: '>=10'}
    +  ora@5.4.1:
         dependencies:
           bl: 4.1.0
           chalk: 4.1.2
    @@ -13416,143 +18264,89 @@ packages:
           strip-ansi: 6.0.1
           wcwidth: 1.0.1
     
    -  /os-tmpdir@1.0.2:
    -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    -    engines: {node: '>=0.10.0'}
    +  os-tmpdir@1.0.2: {}
     
    -  /p-cancelable@3.0.0:
    -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  p-cancelable@3.0.0: {}
     
    -  /p-defer@1.0.0:
    -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  p-defer@1.0.0: {}
     
    -  /p-filter@2.1.0:
    -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    -    engines: {node: '>=8'}
    +  p-filter@2.1.0:
         dependencies:
           p-map: 2.1.0
    -    dev: true
     
    -  /p-finally@1.0.0:
    -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    -    engines: {node: '>=4'}
    +  p-finally@1.0.0: {}
     
    -  /p-limit@2.3.0:
    -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    -    engines: {node: '>=6'}
    +  p-limit@2.3.0:
         dependencies:
           p-try: 2.2.0
     
    -  /p-limit@3.1.0:
    -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    -    engines: {node: '>=10'}
    +  p-limit@3.1.0:
         dependencies:
           yocto-queue: 0.1.0
     
    -  /p-limit@4.0.0:
    -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  p-limit@4.0.0:
         dependencies:
           yocto-queue: 1.0.0
    -    dev: false
     
    -  /p-locate@3.0.0:
    -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    -    engines: {node: '>=6'}
    +  p-locate@3.0.0:
         dependencies:
           p-limit: 2.3.0
    -    dev: false
     
    -  /p-locate@4.1.0:
    -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    -    engines: {node: '>=8'}
    +  p-locate@4.1.0:
         dependencies:
           p-limit: 2.3.0
     
    -  /p-locate@5.0.0:
    -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    -    engines: {node: '>=10'}
    +  p-locate@5.0.0:
         dependencies:
           p-limit: 3.1.0
     
    -  /p-locate@6.0.0:
    -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  p-locate@6.0.0:
         dependencies:
           p-limit: 4.0.0
    -    dev: false
     
    -  /p-map@2.1.0:
    -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  p-map@2.1.0: {}
     
    -  /p-map@4.0.0:
    -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    -    engines: {node: '>=10'}
    +  p-map@4.0.0:
         dependencies:
           aggregate-error: 3.1.0
     
    -  /p-queue@6.6.2:
    -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    -    engines: {node: '>=8'}
    +  p-queue@6.6.2:
         dependencies:
           eventemitter3: 4.0.7
           p-timeout: 3.2.0
     
    -  /p-retry@4.6.2:
    -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    -    engines: {node: '>=8'}
    +  p-retry@4.6.2:
         dependencies:
           '@types/retry': 0.12.0
           retry: 0.13.1
    -    dev: false
     
    -  /p-retry@6.2.0:
    -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    -    engines: {node: '>=16.17'}
    +  p-retry@6.2.0:
         dependencies:
           '@types/retry': 0.12.2
           is-network-error: 1.1.0
           retry: 0.13.1
     
    -  /p-timeout@3.2.0:
    -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    -    engines: {node: '>=8'}
    +  p-timeout@3.2.0:
         dependencies:
           p-finally: 1.0.0
     
    -  /p-transform@1.3.0:
    -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    -    engines: {node: '>=12.10.0'}
    +  p-transform@1.3.0:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           p-queue: 6.6.2
         transitivePeerDependencies:
           - supports-color
     
    -  /p-try@2.2.0:
    -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    -    engines: {node: '>=6'}
    -
    -  /package-json@8.1.1:
    -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    -    engines: {node: '>=14.16'}
    +  p-try@2.2.0: {}
    +
    +  package-json@8.1.1:
         dependencies:
           got: 12.6.1
           registry-auth-token: 5.0.2
           registry-url: 6.0.1
           semver: 7.6.0
    -    dev: false
     
    -  /pacote@12.0.3:
    -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    +  pacote@12.0.3:
         dependencies:
           '@npmcli/git': 2.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -13577,10 +18371,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /pacote@15.2.0:
    -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  pacote@15.2.0:
         dependencies:
           '@npmcli/git': 4.1.0
           '@npmcli/installed-package-contents': 2.0.2
    @@ -13604,32 +18395,24 @@ packages:
           - bluebird
           - supports-color
     
    -  /pako@1.0.11:
    -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    -    dev: true
    +  pako@1.0.11: {}
     
    -  /param-case@3.0.4:
    -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    +  param-case@3.0.4:
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
     
    -  /parent-module@1.0.1:
    -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    -    engines: {node: '>=6'}
    +  parent-module@1.0.1:
         dependencies:
           callsites: 3.1.0
     
    -  /parse-conflict-json@2.0.2:
    -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  parse-conflict-json@2.0.2:
         dependencies:
           json-parse-even-better-errors: 2.3.1
           just-diff: 5.2.0
           just-diff-apply: 5.5.0
     
    -  /parse-entities@4.0.1:
    -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    +  parse-entities@4.0.1:
         dependencies:
           '@types/unist': 2.0.10
           character-entities: 2.0.2
    @@ -13640,321 +18423,177 @@ packages:
           is-decimal: 2.0.1
           is-hexadecimal: 2.0.1
     
    -  /parse-json@5.2.0:
    -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    -    engines: {node: '>=8'}
    +  parse-json@5.2.0:
         dependencies:
           '@babel/code-frame': 7.24.2
           error-ex: 1.3.2
           json-parse-even-better-errors: 2.3.1
           lines-and-columns: 1.2.4
     
    -  /parse-ms@2.1.0:
    -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  parse-ms@2.1.0: {}
     
    -  /parse-numeric-range@1.3.0:
    -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    -    dev: false
    +  parse-numeric-range@1.3.0: {}
     
    -  /parse-srcset@1.0.2:
    -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    -    dev: false
    +  parse-srcset@1.0.2: {}
     
    -  /parse5-htmlparser2-tree-adapter@7.0.0:
    -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    +  parse5-htmlparser2-tree-adapter@7.0.0:
         dependencies:
           domhandler: 5.0.3
           parse5: 7.1.2
    -    dev: false
     
    -  /parse5@7.1.2:
    -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    +  parse5@7.1.2:
         dependencies:
           entities: 4.5.0
     
    -  /parseurl@1.3.3:
    -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    -    engines: {node: '>= 0.8'}
    +  parseurl@1.3.3: {}
     
    -  /pascal-case@3.1.2:
    -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    +  pascal-case@3.1.2:
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  /path-absolute@1.0.1:
    -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  path-absolute@1.0.1: {}
     
    -  /path-exists@3.0.0:
    -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  path-exists@3.0.0: {}
     
    -  /path-exists@4.0.0:
    -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    -    engines: {node: '>=8'}
    +  path-exists@4.0.0: {}
     
    -  /path-exists@5.0.0:
    -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  path-exists@5.0.0: {}
     
    -  /path-is-absolute@1.0.1:
    -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    -    engines: {node: '>=0.10.0'}
    +  path-is-absolute@1.0.1: {}
     
    -  /path-is-inside@1.0.2:
    -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    -    dev: false
    +  path-is-inside@1.0.2: {}
     
    -  /path-key@3.1.1:
    -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    -    engines: {node: '>=8'}
    +  path-key@3.1.1: {}
     
    -  /path-name@1.0.0:
    -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    +  path-name@1.0.0: {}
     
    -  /path-parse@1.0.7:
    -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    +  path-parse@1.0.7: {}
     
    -  /path-scurry@1.10.1:
    -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  path-scurry@1.10.1:
         dependencies:
           lru-cache: 10.2.0
           minipass: 7.0.4
     
    -  /path-temp@2.1.0:
    -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    -    engines: {node: '>=8.15'}
    +  path-temp@2.1.0:
         dependencies:
           unique-string: 2.0.0
    -    dev: true
     
    -  /path-to-regexp@0.1.7:
    -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    +  path-to-regexp@0.1.7: {}
     
    -  /path-to-regexp@1.8.0:
    -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    +  path-to-regexp@1.8.0:
         dependencies:
           isarray: 0.0.1
    -    dev: false
     
    -  /path-to-regexp@2.2.1:
    -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    -    dev: false
    +  path-to-regexp@2.2.1: {}
     
    -  /path-to-regexp@6.2.1:
    -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    -    dev: true
    +  path-to-regexp@6.2.1: {}
     
    -  /path-type@4.0.0:
    -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    -    engines: {node: '>=8'}
    +  path-type@4.0.0: {}
     
    -  /pathval@2.0.0:
    -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    -    engines: {node: '>= 14.16'}
    -    dev: true
    +  pathval@2.0.0: {}
     
    -  /periscopic@3.1.0:
    -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    +  periscopic@3.1.0:
         dependencies:
           '@types/estree': 1.0.5
           estree-walker: 3.0.3
           is-reference: 3.0.2
     
    -  /picocolors@1.0.0:
    -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    +  picocolors@1.0.0: {}
     
    -  /picomatch@2.3.1:
    -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    -    engines: {node: '>=8.6'}
    +  picomatch@2.3.1: {}
     
    -  /pify@2.3.0:
    -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    -    engines: {node: '>=0.10.0'}
    +  pify@2.3.0: {}
     
    -  /pify@4.0.1:
    -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    -    engines: {node: '>=6'}
    +  pify@4.0.1: {}
     
    -  /pirates@4.0.6:
    -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  pirates@4.0.6: {}
     
    -  /pkg-dir@4.2.0:
    -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    -    engines: {node: '>=8'}
    +  pkg-dir@4.2.0:
         dependencies:
           find-up: 4.1.0
     
    -  /pkg-dir@7.0.0:
    -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    -    engines: {node: '>=14.16'}
    +  pkg-dir@7.0.0:
         dependencies:
           find-up: 6.3.0
    -    dev: false
     
    -  /pkg-up@3.1.0:
    -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    -    engines: {node: '>=8'}
    +  pkg-up@3.1.0:
         dependencies:
           find-up: 3.0.0
    -    dev: false
     
    -  /pluralize@8.0.0:
    -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  pluralize@8.0.0: {}
     
    -  /portfinder@1.0.32:
    -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    -    engines: {node: '>= 0.12.0'}
    +  portfinder@1.0.32:
         dependencies:
           async: 2.6.4
           debug: 3.2.7
           mkdirp: 0.5.6
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /possible-typed-array-names@1.0.0:
    -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  possible-typed-array-names@1.0.0: {}
     
    -  /postcss-calc@8.2.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    -    peerDependencies:
    -      postcss: ^8.2.2
    +  postcss-calc@8.2.4(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-colormin@5.3.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-colormin@5.3.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           colord: 2.9.3
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-convert-values@5.1.3(postcss@8.4.38):
    -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-convert-values@5.1.3(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-discard-comments@5.1.2(postcss@8.4.38):
    -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-comments@5.1.2(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-empty@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-empty@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-overridden@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-unused@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-unused@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-import@15.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      postcss: ^8.0.0
    +  postcss-import@15.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           read-cache: 1.0.0
           resolve: 1.22.8
    -    dev: true
     
    -  /postcss-js@4.0.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    -    engines: {node: ^12 || ^14 || >= 16}
    -    peerDependencies:
    -      postcss: ^8.4.21
    +  postcss-js@4.0.1(postcss@8.4.38):
         dependencies:
           camelcase-css: 2.0.1
           postcss: 8.4.38
    -    dev: true
     
    -  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    -    engines: {node: '>= 14'}
    -    peerDependencies:
    -      postcss: '>=8.0.9'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      postcss:
    -        optional: true
    -      ts-node:
    -        optional: true
    +  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
         dependencies:
           lilconfig: 3.1.1
           postcss: 8.4.38
           ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
           yaml: 2.4.1
    -    dev: true
     
    -  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    +  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           cosmiconfig: 8.3.6(typescript@5.4.3)
           jiti: 1.21.0
    @@ -13963,20 +18602,8 @@ packages:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    -    dev: false
     
    -  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           cosmiconfig: 9.0.0(typescript@5.4.3)
           jiti: 1.21.0
    @@ -13985,655 +18612,343 @@ packages:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /postcss-merge-idents@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-idents@5.1.1(postcss@8.4.38):
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
    -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-longhand@5.1.7(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           stylehacks: 5.1.1(postcss@8.4.38)
    -    dev: false
     
    -  /postcss-merge-rules@5.1.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-rules@5.1.4(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-font-values@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-gradients@5.1.1(postcss@8.4.38):
         dependencies:
           colord: 2.9.3
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-params@5.1.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-params@5.1.4(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-selectors@5.2.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
     
    -  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
     
    -  /postcss-modules-scope@3.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-scope@3.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
     
    -  /postcss-modules-values@4.0.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-values@4.0.0(postcss@8.4.38):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
     
    -  /postcss-nested@6.0.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    -    engines: {node: '>=12.0'}
    -    peerDependencies:
    -      postcss: ^8.2.14
    +  postcss-nested@6.0.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: true
     
    -  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-charset@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-positions@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-string@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-string@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-url@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-url@5.1.0(postcss@8.4.38):
         dependencies:
           normalize-url: 6.1.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-ordered-values@5.1.3(postcss@8.4.38):
    -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-ordered-values@5.1.3(postcss@8.4.38):
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-idents@5.2.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
    -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-initial@5.1.2(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-selector-parser@6.0.16:
    -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    -    engines: {node: '>=4'}
    +  postcss-selector-parser@6.0.16:
         dependencies:
           cssesc: 3.0.0
           util-deprecate: 1.0.2
     
    -  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      postcss: ^8.4.16
    +  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           sort-css-media-queries: 2.1.0
    -    dev: false
     
    -  /postcss-svgo@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-svgo@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           svgo: 2.8.0
    -    dev: false
     
    -  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-unique-selectors@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-value-parser@4.2.0:
    -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    +  postcss-value-parser@4.2.0: {}
     
    -  /postcss-zindex@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-zindex@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss@8.4.31:
    -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    -    engines: {node: ^10 || ^12 || >=14}
    +  postcss@8.4.31:
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
    -    dev: false
     
    -  /postcss@8.4.38:
    -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    -    engines: {node: ^10 || ^12 || >=14}
    +  postcss@8.4.38:
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
     
    -  /preferred-pm@3.1.3:
    -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    -    engines: {node: '>=10'}
    +  preferred-pm@3.1.3:
         dependencies:
           find-up: 5.0.0
           find-yarn-workspace-root2: 1.2.16
           path-exists: 4.0.0
           which-pm: 2.0.0
     
    -  /prelude-ls@1.2.1:
    -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    -    engines: {node: '>= 0.8.0'}
    +  prelude-ls@1.2.1: {}
     
    -  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    -    engines: {node: '>=14.21.3'}
    -    peerDependencies:
    -      '@ianvs/prettier-plugin-sort-imports': '*'
    -      '@prettier/plugin-pug': '*'
    -      '@shopify/prettier-plugin-liquid': '*'
    -      '@trivago/prettier-plugin-sort-imports': '*'
    -      prettier: ^3.0
    -      prettier-plugin-astro: '*'
    -      prettier-plugin-css-order: '*'
    -      prettier-plugin-import-sort: '*'
    -      prettier-plugin-jsdoc: '*'
    -      prettier-plugin-marko: '*'
    -      prettier-plugin-organize-attributes: '*'
    -      prettier-plugin-organize-imports: '*'
    -      prettier-plugin-sort-imports: '*'
    -      prettier-plugin-style-order: '*'
    -      prettier-plugin-svelte: '*'
    -      prettier-plugin-twig-melody: '*'
    -    peerDependenciesMeta:
    -      '@ianvs/prettier-plugin-sort-imports':
    -        optional: true
    -      '@prettier/plugin-pug':
    -        optional: true
    -      '@shopify/prettier-plugin-liquid':
    -        optional: true
    -      '@trivago/prettier-plugin-sort-imports':
    -        optional: true
    -      prettier-plugin-astro:
    -        optional: true
    -      prettier-plugin-css-order:
    -        optional: true
    -      prettier-plugin-import-sort:
    -        optional: true
    -      prettier-plugin-jsdoc:
    -        optional: true
    -      prettier-plugin-marko:
    -        optional: true
    -      prettier-plugin-organize-attributes:
    -        optional: true
    -      prettier-plugin-organize-imports:
    -        optional: true
    -      prettier-plugin-sort-imports:
    -        optional: true
    -      prettier-plugin-style-order:
    -        optional: true
    -      prettier-plugin-svelte:
    -        optional: true
    -      prettier-plugin-twig-melody:
    -        optional: true
    +  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
         dependencies:
           prettier: 3.2.5
    -    dev: true
     
    -  /prettier@3.2.5:
    -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    +  prettier@3.2.5: {}
     
    -  /pretty-bytes@5.6.0:
    -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    -    engines: {node: '>=6'}
    +  pretty-bytes@5.6.0: {}
     
    -  /pretty-error@4.0.0:
    -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    +  pretty-error@4.0.0:
         dependencies:
           lodash: 4.17.21
           renderkid: 3.0.0
     
    -  /pretty-format@27.5.1:
    -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    +  pretty-format@27.5.1:
         dependencies:
           ansi-regex: 5.0.1
           ansi-styles: 5.2.0
           react-is: 17.0.2
    -    dev: true
     
    -  /pretty-format@29.7.0:
    -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  pretty-format@29.7.0:
         dependencies:
           '@jest/schemas': 29.6.3
           ansi-styles: 5.2.0
           react-is: 18.2.0
    -    dev: true
     
    -  /pretty-ms@7.0.1:
    -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    -    engines: {node: '>=10'}
    +  pretty-ms@7.0.1:
         dependencies:
           parse-ms: 2.1.0
    -    dev: true
     
    -  /pretty-time@1.1.0:
    -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  pretty-time@1.1.0: {}
     
    -  /print-diff@1.0.0:
    -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    -    engines: {node: '>=8.3'}
    +  print-diff@1.0.0:
         dependencies:
           diff: 4.0.2
    -    dev: true
     
    -  /printable-characters@1.0.42:
    -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    -    dev: true
    +  printable-characters@1.0.42: {}
     
    -  /prism-react-renderer@2.3.1(react@18.2.0):
    -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    -    peerDependencies:
    -      react: '>=16.0.0 || 18'
    +  prism-react-renderer@2.3.1(react@18.2.0):
         dependencies:
           '@types/prismjs': 1.26.3
           clsx: 2.1.0
           react: 18.2.0
    -    dev: false
     
    -  /prismjs@1.29.0:
    -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  prismjs@1.29.0: {}
     
    -  /proc-log@1.0.0:
    -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    +  proc-log@1.0.0: {}
     
    -  /proc-log@3.0.0:
    -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  proc-log@3.0.0: {}
     
    -  /process-nextick-args@2.0.1:
    -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    +  process-nextick-args@2.0.1: {}
     
    -  /process@0.11.10:
    -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    -    engines: {node: '>= 0.6.0'}
    +  process@0.11.10: {}
     
    -  /promise-all-reject-late@1.0.1:
    -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    +  promise-all-reject-late@1.0.1: {}
     
    -  /promise-call-limit@1.0.2:
    -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    +  promise-call-limit@1.0.2: {}
     
    -  /promise-inflight@1.0.1:
    -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    -    peerDependencies:
    -      bluebird: '*'
    -    peerDependenciesMeta:
    -      bluebird:
    -        optional: true
    +  promise-inflight@1.0.1: {}
     
    -  /promise-retry@2.0.1:
    -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    -    engines: {node: '>=10'}
    +  promise-retry@2.0.1:
         dependencies:
           err-code: 2.0.3
           retry: 0.12.0
     
    -  /prompts@2.4.2:
    -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    -    engines: {node: '>= 6'}
    +  prompts@2.4.2:
         dependencies:
           kleur: 3.0.3
           sisteransi: 1.0.5
     
    -  /prop-types@15.8.1:
    -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    +  prop-types@15.8.1:
         dependencies:
           loose-envify: 1.4.0
           object-assign: 4.1.1
           react-is: 16.13.1
     
    -  /property-information@6.4.1:
    -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    +  property-information@6.4.1: {}
     
    -  /proto-list@1.2.4:
    -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    +  proto-list@1.2.4: {}
     
    -  /proxy-addr@2.0.7:
    -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    -    engines: {node: '>= 0.10'}
    +  proxy-addr@2.0.7:
         dependencies:
           forwarded: 0.2.0
           ipaddr.js: 1.9.1
     
    -  /psl@1.9.0:
    -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    -    dev: true
    +  psl@1.9.0: {}
     
    -  /punycode@1.4.1:
    -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    -    dev: false
    +  punycode@1.4.1: {}
     
    -  /punycode@2.3.1:
    -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    -    engines: {node: '>=6'}
    +  punycode@2.3.1: {}
     
    -  /pupa@3.1.0:
    -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    -    engines: {node: '>=12.20'}
    +  pupa@3.1.0:
         dependencies:
           escape-goat: 4.0.0
    -    dev: false
     
    -  /pure-rand@6.1.0:
    -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    -    dev: true
    +  pure-rand@6.1.0: {}
     
    -  /qs@6.11.0:
    -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    -    engines: {node: '>=0.6'}
    +  qs@6.11.0:
         dependencies:
           side-channel: 1.0.6
     
    -  /qs@6.12.0:
    -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    -    engines: {node: '>=0.6'}
    +  qs@6.12.0:
         dependencies:
           side-channel: 1.0.6
    -    dev: true
     
    -  /querystringify@2.2.0:
    -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    -    dev: true
    +  querystringify@2.2.0: {}
     
    -  /queue-microtask@1.2.3:
    -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    +  queue-microtask@1.2.3: {}
     
    -  /queue@6.0.2:
    -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    +  queue@6.0.2:
         dependencies:
           inherits: 2.0.4
    -    dev: false
     
    -  /quick-lru@4.0.1:
    -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  quick-lru@4.0.1: {}
     
    -  /quick-lru@5.1.1:
    -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    -    engines: {node: '>=10'}
    +  quick-lru@5.1.1: {}
     
    -  /railroad-diagrams@1.0.0:
    -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    -    dev: false
    +  railroad-diagrams@1.0.0: {}
     
    -  /rambda@7.5.0:
    -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    -    dev: true
    +  rambda@7.5.0: {}
     
    -  /ramda@0.29.1:
    -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    -    dev: true
    +  ramda@0.29.1: {}
     
    -  /randexp@0.4.6:
    -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    -    engines: {node: '>=0.12'}
    +  randexp@0.4.6:
         dependencies:
           discontinuous-range: 1.0.0
           ret: 0.1.15
    -    dev: false
     
    -  /randombytes@2.1.0:
    -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    +  randombytes@2.1.0:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /range-parser@1.2.0:
    -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  range-parser@1.2.0: {}
     
    -  /range-parser@1.2.1:
    -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    -    engines: {node: '>= 0.6'}
    +  range-parser@1.2.1: {}
     
    -  /raw-body@2.5.2:
    -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    -    engines: {node: '>= 0.8'}
    +  raw-body@2.5.2:
         dependencies:
           bytes: 3.1.2
           http-errors: 2.0.0
           iconv-lite: 0.4.24
           unpipe: 1.0.0
     
    -  /rc@1.2.8:
    -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    -    hasBin: true
    +  rc@1.2.8:
         dependencies:
           deep-extend: 0.6.0
           ini: 1.3.8
           minimist: 1.2.8
           strip-json-comments: 2.0.1
    -    dev: false
     
    -  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=2.7'
    -      webpack: '>=4'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           '@babel/code-frame': 7.24.2
           address: 1.2.2
    @@ -14665,29 +18980,18 @@ packages:
           - eslint
           - supports-color
           - vue-template-compiler
    -    dev: false
     
    -  /react-dom@18.2.0(react@18.2.0):
    -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    -    peerDependencies:
    -      react: ^18.2.0 || 18
    +  react-dom@18.2.0(react@18.2.0):
         dependencies:
           loose-envify: 1.4.0
           react: 18.2.0
           scheduler: 0.23.0
     
    -  /react-error-overlay@6.0.11:
    -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    -    dev: false
    +  react-error-overlay@6.0.11: {}
     
    -  /react-fast-compare@3.2.2:
    -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    +  react-fast-compare@3.2.2: {}
     
    -  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           invariant: 2.2.4
    @@ -14697,11 +19001,7 @@ packages:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           invariant: 2.2.4
           react: 18.2.0
    @@ -14709,42 +19009,23 @@ packages:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  /react-is@16.13.1:
    -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    +  react-is@16.13.1: {}
     
    -  /react-is@17.0.2:
    -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    -    dev: true
    +  react-is@17.0.2: {}
     
    -  /react-is@18.2.0:
    -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    -    dev: true
    +  react-is@18.2.0: {}
     
    -  /react-json-view-lite@1.3.0(react@18.2.0):
    -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    +  react-json-view-lite@1.3.0(react@18.2.0):
         dependencies:
           react: 18.2.0
    -    dev: false
     
    -  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      react-loadable: '*'
    -      webpack: '>=4.41.1 || 5.x'
    +  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
         dependencies:
           '@babel/runtime': 7.24.1
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /react-player@2.15.1(react@18.2.0):
    -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    -    peerDependencies:
    -      react: '>=16.6.0 || 18'
    +  react-player@2.15.1(react@18.2.0):
         dependencies:
           deepmerge: 4.3.1
           load-script: 1.0.0
    @@ -14752,23 +19033,14 @@ packages:
           prop-types: 15.8.1
           react: 18.2.0
           react-fast-compare: 3.2.2
    -    dev: false
     
    -  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -      react-router: '>=5'
    +  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           react: 18.2.0
           react-router: 5.3.4(react@18.2.0)
    -    dev: false
     
    -  /react-router-dom@5.3.4(react@18.2.0):
    -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    +  react-router-dom@5.3.4(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -14778,12 +19050,8 @@ packages:
           react-router: 5.3.4(react@18.2.0)
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    -    dev: false
     
    -  /react-router@5.3.4(react@18.2.0):
    -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    +  react-router@5.3.4(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -14795,28 +19063,15 @@ packages:
           react-is: 16.13.1
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    -    dev: false
     
    -  /react-string-replace@1.1.1:
    -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    -    engines: {node: '>=0.12.0'}
    -    dev: false
    +  react-string-replace@1.1.1: {}
     
    -  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    -    peerDependencies:
    -      react: '*'
    -      tslib: '*'
    +  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
         dependencies:
           react: 18.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@types/js-cookie': 2.2.7
           '@xobotyi/scrollbar-width': 1.9.5
    @@ -14834,101 +19089,71 @@ packages:
           throttle-debounce: 3.0.1
           ts-easing: 0.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /react@18.2.0:
    -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    -    engines: {node: '>=0.10.0'}
    +  react@18.2.0:
         dependencies:
           loose-envify: 1.4.0
     
    -  /read-cache@1.0.0:
    -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    +  read-cache@1.0.0:
         dependencies:
           pify: 2.3.0
    -    dev: true
     
    -  /read-cmd-shim@3.0.1:
    -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  read-cmd-shim@3.0.1: {}
     
    -  /read-ini-file@4.0.0:
    -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    -    engines: {node: '>=14.6'}
    +  read-ini-file@4.0.0:
         dependencies:
           ini: 3.0.1
           strip-bom: 4.0.0
    -    dev: true
     
    -  /read-package-json-fast@2.0.3:
    -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    -    engines: {node: '>=10'}
    +  read-package-json-fast@2.0.3:
         dependencies:
           json-parse-even-better-errors: 2.3.1
           npm-normalize-package-bin: 1.0.1
     
    -  /read-package-json-fast@3.0.2:
    -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  read-package-json-fast@3.0.2:
         dependencies:
           json-parse-even-better-errors: 3.0.1
           npm-normalize-package-bin: 3.0.1
     
    -  /read-package-json@6.0.4:
    -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  read-package-json@6.0.4:
         dependencies:
           glob: 10.3.10
           json-parse-even-better-errors: 3.0.1
           normalize-package-data: 5.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  /read-pkg-up@7.0.1:
    -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    -    engines: {node: '>=8'}
    +  read-pkg-up@7.0.1:
         dependencies:
           find-up: 4.1.0
           read-pkg: 5.2.0
           type-fest: 0.8.1
     
    -  /read-pkg-up@8.0.0:
    -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    -    engines: {node: '>=12'}
    +  read-pkg-up@8.0.0:
         dependencies:
           find-up: 5.0.0
           read-pkg: 6.0.0
           type-fest: 1.4.0
    -    dev: true
     
    -  /read-pkg@5.2.0:
    -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    -    engines: {node: '>=8'}
    +  read-pkg@5.2.0:
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 2.5.0
           parse-json: 5.2.0
           type-fest: 0.6.0
     
    -  /read-pkg@6.0.0:
    -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    -    engines: {node: '>=12'}
    +  read-pkg@6.0.0:
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 3.0.3
           parse-json: 5.2.0
           type-fest: 1.4.0
    -    dev: true
     
    -  /read-yaml-file@2.1.0:
    -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    -    engines: {node: '>=10.13'}
    +  read-yaml-file@2.1.0:
         dependencies:
           js-yaml: 4.1.0
           strip-bom: 4.0.0
    -    dev: true
     
    -  /readable-stream@2.3.8:
    -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    +  readable-stream@2.3.8:
         dependencies:
           core-util-is: 1.0.3
           inherits: 2.0.4
    @@ -14938,17 +19163,13 @@ packages:
           string_decoder: 1.1.1
           util-deprecate: 1.0.2
     
    -  /readable-stream@3.6.2:
    -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    -    engines: {node: '>= 6'}
    +  readable-stream@3.6.2:
         dependencies:
           inherits: 2.0.4
           string_decoder: 1.3.0
           util-deprecate: 1.0.2
     
    -  /readable-stream@4.5.2:
    -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  readable-stream@4.5.2:
         dependencies:
           abort-controller: 3.0.0
           buffer: 6.0.3
    @@ -14956,60 +19177,39 @@ packages:
           process: 0.11.10
           string_decoder: 1.3.0
     
    -  /readdir-scoped-modules@1.1.0:
    -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  readdir-scoped-modules@1.1.0:
         dependencies:
           debuglog: 1.0.1
           dezalgo: 1.0.4
           graceful-fs: 4.2.11
           once: 1.4.0
     
    -  /readdirp@3.6.0:
    -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    -    engines: {node: '>=8.10.0'}
    +  readdirp@3.6.0:
         dependencies:
           picomatch: 2.3.1
     
    -  /reading-time@1.5.0:
    -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    -    dev: false
    +  reading-time@1.5.0: {}
     
    -  /realpath-missing@1.1.0:
    -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  realpath-missing@1.1.0: {}
     
    -  /rechoir@0.6.2:
    -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    -    engines: {node: '>= 0.10'}
    +  rechoir@0.6.2:
         dependencies:
           resolve: 1.22.8
     
    -  /rechoir@0.8.0:
    -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    -    engines: {node: '>= 10.13.0'}
    +  rechoir@0.8.0:
         dependencies:
           resolve: 1.22.8
     
    -  /recursive-readdir@2.2.3:
    -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    -    engines: {node: '>=6.0.0'}
    +  recursive-readdir@2.2.3:
         dependencies:
           minimatch: 3.1.2
    -    dev: false
     
    -  /redent@4.0.0:
    -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    -    engines: {node: '>=12'}
    +  redent@4.0.0:
         dependencies:
           indent-string: 5.0.0
           strip-indent: 4.0.0
    -    dev: true
     
    -  /reflect.getprototypeof@1.0.6:
    -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    -    engines: {node: '>= 0.4'}
    +  reflect.getprototypeof@1.0.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -15018,43 +19218,29 @@ packages:
           get-intrinsic: 1.2.4
           globalthis: 1.0.3
           which-builtin-type: 1.1.3
    -    dev: true
     
    -  /regenerate-unicode-properties@10.1.1:
    -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    -    engines: {node: '>=4'}
    +  regenerate-unicode-properties@10.1.1:
         dependencies:
           regenerate: 1.4.2
     
    -  /regenerate@1.4.2:
    -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    +  regenerate@1.4.2: {}
     
    -  /regenerator-runtime@0.14.1:
    -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    +  regenerator-runtime@0.14.1: {}
     
    -  /regenerator-transform@0.15.2:
    -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    +  regenerator-transform@0.15.2:
         dependencies:
           '@babel/runtime': 7.24.1
     
    -  /regexp-tree@0.1.27:
    -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    -    hasBin: true
    -    dev: true
    +  regexp-tree@0.1.27: {}
     
    -  /regexp.prototype.flags@1.5.2:
    -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    -    engines: {node: '>= 0.4'}
    +  regexp.prototype.flags@1.5.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-errors: 1.3.0
           set-function-name: 2.0.2
    -    dev: true
     
    -  /regexpu-core@5.3.2:
    -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    -    engines: {node: '>=4'}
    +  regexpu-core@5.3.2:
         dependencies:
           '@babel/regjsgen': 0.8.0
           regenerate: 1.4.2
    @@ -15063,47 +19249,31 @@ packages:
           unicode-match-property-ecmascript: 2.0.0
           unicode-match-property-value-ecmascript: 2.1.0
     
    -  /registry-auth-token@5.0.2:
    -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    -    engines: {node: '>=14'}
    +  registry-auth-token@5.0.2:
         dependencies:
           '@pnpm/npm-conf': 2.2.2
    -    dev: false
    -
    -  /registry-url@6.0.1:
    -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    -    engines: {node: '>=12'}
    +
    +  registry-url@6.0.1:
         dependencies:
           rc: 1.2.8
    -    dev: false
     
    -  /regjsparser@0.10.0:
    -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    -    hasBin: true
    +  regjsparser@0.10.0:
         dependencies:
           jsesc: 0.5.0
    -    dev: true
     
    -  /regjsparser@0.9.1:
    -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    -    hasBin: true
    +  regjsparser@0.9.1:
         dependencies:
           jsesc: 0.5.0
     
    -  /rehype-raw@7.0.0:
    -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    +  rehype-raw@7.0.0:
         dependencies:
           '@types/hast': 3.0.4
           hast-util-raw: 9.0.2
           vfile: 6.0.1
    -    dev: false
     
    -  /relateurl@0.2.7:
    -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    -    engines: {node: '>= 0.10'}
    +  relateurl@0.2.7: {}
     
    -  /remark-directive@3.0.0:
    -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    +  remark-directive@3.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-directive: 3.0.0
    @@ -15111,21 +19281,16 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-emoji@4.0.1:
    -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  remark-emoji@4.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           emoticon: 4.0.1
           mdast-util-find-and-replace: 3.0.1
           node-emoji: 2.1.3
           unified: 11.0.4
    -    dev: false
     
    -  /remark-frontmatter@5.0.0:
    -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    +  remark-frontmatter@5.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-frontmatter: 2.0.1
    @@ -15133,10 +19298,8 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-gfm@4.0.0:
    -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    +  remark-gfm@4.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-gfm: 3.0.0
    @@ -15146,18 +19309,15 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-mdx@3.0.1:
    -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    +  remark-mdx@3.0.1:
         dependencies:
           mdast-util-mdx: 3.0.0
           micromark-extension-mdxjs: 3.0.0
         transitivePeerDependencies:
           - supports-color
     
    -  /remark-parse@11.0.0:
    -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    +  remark-parse@11.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
    @@ -15166,8 +19326,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /remark-rehype@11.1.0:
    -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    +  remark-rehype@11.1.0:
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -15175,19 +19334,15 @@ packages:
           unified: 11.0.4
           vfile: 6.0.1
     
    -  /remark-stringify@11.0.0:
    -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    +  remark-stringify@11.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-to-markdown: 2.1.0
           unified: 11.0.4
    -    dev: false
     
    -  /remove-trailing-separator@1.1.0:
    -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    +  remove-trailing-separator@1.1.0: {}
     
    -  /renderkid@3.0.0:
    -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    +  renderkid@3.0.0:
         dependencies:
           css-select: 4.3.0
           dom-converter: 0.2.0
    @@ -15195,212 +19350,128 @@ packages:
           lodash: 4.17.21
           strip-ansi: 6.0.1
     
    -  /replace-ext@1.0.1:
    -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    -    engines: {node: '>= 0.10'}
    +  replace-ext@1.0.1: {}
     
    -  /require-directory@2.1.1:
    -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  require-directory@2.1.1: {}
     
    -  /require-from-string@2.0.2:
    -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    -    engines: {node: '>=0.10.0'}
    +  require-from-string@2.0.2: {}
     
    -  /require-like@0.1.2:
    -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    -    dev: false
    +  require-like@0.1.2: {}
     
    -  /requires-port@1.0.0:
    -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    +  requires-port@1.0.0: {}
     
    -  /resize-observer-polyfill@1.5.1:
    -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    -    dev: false
    +  resize-observer-polyfill@1.5.1: {}
     
    -  /resolve-alpn@1.2.1:
    -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    -    dev: false
    +  resolve-alpn@1.2.1: {}
     
    -  /resolve-cwd@3.0.0:
    -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    -    engines: {node: '>=8'}
    +  resolve-cwd@3.0.0:
         dependencies:
           resolve-from: 5.0.0
     
    -  /resolve-from@4.0.0:
    -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    -    engines: {node: '>=4'}
    +  resolve-from@4.0.0: {}
     
    -  /resolve-from@5.0.0:
    -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    -    engines: {node: '>=8'}
    +  resolve-from@5.0.0: {}
     
    -  /resolve-pathname@3.0.0:
    -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    -    dev: false
    +  resolve-pathname@3.0.0: {}
     
    -  /resolve-pkg-maps@1.0.0:
    -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    -    dev: true
    +  resolve-pkg-maps@1.0.0: {}
     
    -  /resolve.exports@2.0.2:
    -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  resolve.exports@2.0.2: {}
     
    -  /resolve@1.22.8:
    -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    -    hasBin: true
    +  resolve@1.22.8:
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
     
    -  /resolve@2.0.0-next.5:
    -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    -    hasBin: true
    +  resolve@2.0.0-next.5:
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
    -    dev: true
     
    -  /responselike@3.0.0:
    -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    -    engines: {node: '>=14.16'}
    +  responselike@3.0.0:
         dependencies:
           lowercase-keys: 3.0.0
    -    dev: false
     
    -  /restore-cursor@3.1.0:
    -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    -    engines: {node: '>=8'}
    +  restore-cursor@3.1.0:
         dependencies:
           onetime: 5.1.2
           signal-exit: 3.0.7
     
    -  /ret@0.1.15:
    -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    -    engines: {node: '>=0.12'}
    -    dev: false
    +  ret@0.1.15: {}
     
    -  /retry@0.12.0:
    -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    -    engines: {node: '>= 4'}
    +  retry@0.12.0: {}
     
    -  /retry@0.13.1:
    -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    -    engines: {node: '>= 4'}
    +  retry@0.13.1: {}
     
    -  /reusify@1.0.4:
    -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    +  reusify@1.0.4: {}
     
    -  /rfc4648@1.5.3:
    -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    -    dev: false
    +  rfc4648@1.5.3: {}
     
    -  /right-pad@1.0.1:
    -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    -    engines: {node: '>= 0.10'}
    -    dev: true
    +  right-pad@1.0.1: {}
     
    -  /rimraf@3.0.2:
    -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    -    hasBin: true
    +  rimraf@3.0.2:
         dependencies:
           glob: 7.2.3
     
    -  /rimraf@5.0.5:
    -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    +  rimraf@5.0.5:
         dependencies:
           glob: 10.3.10
     
    -  /rtl-css-js@1.16.1:
    -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    +  rtl-css-js@1.16.1:
         dependencies:
           '@babel/runtime': 7.24.1
    -    dev: false
     
    -  /rtl-detect@1.1.2:
    -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    -    dev: false
    +  rtl-detect@1.1.2: {}
     
    -  /rtlcss@4.1.1:
    -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    -    engines: {node: '>=12.0.0'}
    -    hasBin: true
    +  rtlcss@4.1.1:
         dependencies:
           escalade: 3.1.2
           picocolors: 1.0.0
           postcss: 8.4.38
           strip-json-comments: 3.1.1
    -    dev: false
     
    -  /run-applescript@7.0.0:
    -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    -    engines: {node: '>=18'}
    +  run-applescript@7.0.0: {}
     
    -  /run-async@2.4.1:
    -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    -    engines: {node: '>=0.12.0'}
    +  run-async@2.4.1: {}
     
    -  /run-parallel@1.2.0:
    -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    +  run-parallel@1.2.0:
         dependencies:
           queue-microtask: 1.2.3
     
    -  /rxjs@7.8.1:
    -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    +  rxjs@7.8.1:
         dependencies:
           tslib: 2.6.2
     
    -  /safe-array-concat@1.1.2:
    -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    -    engines: {node: '>=0.4'}
    +  safe-array-concat@1.1.2:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           isarray: 2.0.5
    -    dev: true
     
    -  /safe-buffer@5.1.2:
    -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    +  safe-buffer@5.1.2: {}
     
    -  /safe-buffer@5.2.1:
    -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    +  safe-buffer@5.2.1: {}
     
    -  /safe-execa@0.1.2:
    -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    -    engines: {node: '>=12'}
    +  safe-execa@0.1.2:
         dependencies:
           '@zkochan/which': 2.0.3
           execa: 5.1.1
           path-name: 1.0.0
     
    -  /safe-regex-test@1.0.3:
    -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    -    engines: {node: '>= 0.4'}
    +  safe-regex-test@1.0.3:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-regex: 1.1.4
    -    dev: true
     
    -  /safe-stable-stringify@2.4.3:
    -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    -    engines: {node: '>=10'}
    +  safe-stable-stringify@2.4.3: {}
     
    -  /safer-buffer@2.1.2:
    -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    +  safer-buffer@2.1.2: {}
     
    -  /sanitize-html@2.13.0:
    -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    +  sanitize-html@2.13.0:
         dependencies:
           deepmerge: 4.3.1
           escape-string-regexp: 4.0.0
    @@ -15408,124 +19479,77 @@ packages:
           is-plain-object: 5.0.0
           parse-srcset: 1.0.2
           postcss: 8.4.38
    -    dev: false
     
    -  /sax@1.3.0:
    -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    -    dev: false
    +  sax@1.3.0: {}
     
    -  /saxes@6.0.0:
    -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    -    engines: {node: '>=v12.22.7'}
    +  saxes@6.0.0:
         dependencies:
           xmlchars: 2.2.0
    -    dev: true
     
    -  /sbd@1.0.19:
    -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    +  sbd@1.0.19:
         dependencies:
           sanitize-html: 2.13.0
    -    dev: false
     
    -  /scheduler@0.23.0:
    -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    +  scheduler@0.23.0:
         dependencies:
           loose-envify: 1.4.0
     
    -  /schema-utils@2.7.0:
    -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    -    engines: {node: '>= 8.9.0'}
    +  schema-utils@2.7.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
    -    dev: false
     
    -  /schema-utils@3.3.0:
    -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    -    engines: {node: '>= 10.13.0'}
    +  schema-utils@3.3.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
     
    -  /schema-utils@4.2.0:
    -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    -    engines: {node: '>= 12.13.0'}
    +  schema-utils@4.2.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 8.12.0
           ajv-formats: 2.1.1(ajv@8.12.0)
           ajv-keywords: 5.1.0(ajv@8.12.0)
     
    -  /scoped-regex@2.1.0:
    -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    -    engines: {node: '>=8'}
    +  scoped-regex@2.1.0: {}
     
    -  /screenfull@5.2.0:
    -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  screenfull@5.2.0: {}
     
    -  /search-insights@2.13.0:
    -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    -    dev: false
    +  search-insights@2.13.0: {}
     
    -  /section-matter@1.0.0:
    -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    -    engines: {node: '>=4'}
    +  section-matter@1.0.0:
         dependencies:
           extend-shallow: 2.0.1
           kind-of: 6.0.3
    -    dev: false
     
    -  /secure-compare@3.0.1:
    -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    -    dev: true
    +  secure-compare@3.0.1: {}
     
    -  /select-hose@2.0.0:
    -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    +  select-hose@2.0.0: {}
     
    -  /selfsigned@2.4.1:
    -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    -    engines: {node: '>=10'}
    +  selfsigned@2.4.1:
         dependencies:
           '@types/node-forge': 1.3.11
           node-forge: 1.3.1
     
    -  /semver-diff@4.0.0:
    -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    -    engines: {node: '>=12'}
    +  semver-diff@4.0.0:
         dependencies:
           semver: 7.6.0
    -    dev: false
     
    -  /semver@5.7.2:
    -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    -    hasBin: true
    +  semver@5.7.2: {}
     
    -  /semver@6.3.1:
    -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    -    hasBin: true
    +  semver@6.3.1: {}
     
    -  /semver@7.5.4:
    -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  semver@7.5.4:
         dependencies:
           lru-cache: 6.0.0
    -    dev: true
     
    -  /semver@7.6.0:
    -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  semver@7.6.0:
         dependencies:
           lru-cache: 6.0.0
     
    -  /send@0.18.0:
    -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    -    engines: {node: '>= 0.8.0'}
    +  send@0.18.0:
         dependencies:
           debug: 2.6.9
           depd: 2.0.0
    @@ -15543,19 +19567,15 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /serialize-javascript@6.0.0:
    -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    +  serialize-javascript@6.0.0:
         dependencies:
           randombytes: 2.1.0
    -    dev: true
     
    -  /serialize-javascript@6.0.2:
    -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    +  serialize-javascript@6.0.2:
         dependencies:
           randombytes: 2.1.0
     
    -  /serve-handler@6.1.5:
    -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    +  serve-handler@6.1.5:
         dependencies:
           bytes: 3.0.0
           content-disposition: 0.5.2
    @@ -15565,11 +19585,8 @@ packages:
           path-is-inside: 1.0.2
           path-to-regexp: 2.2.1
           range-parser: 1.2.0
    -    dev: false
     
    -  /serve-index@1.9.1:
    -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    -    engines: {node: '>= 0.8.0'}
    +  serve-index@1.9.1:
         dependencies:
           accepts: 1.3.8
           batch: 0.6.1
    @@ -15581,9 +19598,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /serve-static@1.15.0:
    -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    -    engines: {node: '>= 0.8.0'}
    +  serve-static@1.15.0:
         dependencies:
           encodeurl: 1.0.2
           escape-html: 1.0.3
    @@ -15592,12 +19607,9 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /set-blocking@2.0.0:
    -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    +  set-blocking@2.0.0: {}
     
    -  /set-function-length@1.2.2:
    -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    -    engines: {node: '>= 0.4'}
    +  set-function-length@1.2.2:
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
    @@ -15606,82 +19618,53 @@ packages:
           gopd: 1.0.1
           has-property-descriptors: 1.0.2
     
    -  /set-function-name@2.0.2:
    -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    -    engines: {node: '>= 0.4'}
    +  set-function-name@2.0.2:
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
           functions-have-names: 1.2.3
           has-property-descriptors: 1.0.2
    -    dev: true
     
    -  /set-harmonic-interval@1.0.1:
    -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    -    engines: {node: '>=6.9'}
    -    dev: false
    +  set-harmonic-interval@1.0.1: {}
     
    -  /setimmediate@1.0.5:
    -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    -    dev: true
    +  setimmediate@1.0.5: {}
     
    -  /setprototypeof@1.1.0:
    -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    +  setprototypeof@1.1.0: {}
     
    -  /setprototypeof@1.2.0:
    -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    +  setprototypeof@1.2.0: {}
     
    -  /shallow-clone@3.0.1:
    -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    -    engines: {node: '>=8'}
    +  shallow-clone@3.0.1:
         dependencies:
           kind-of: 6.0.3
     
    -  /shallowequal@1.1.0:
    -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    +  shallowequal@1.1.0: {}
     
    -  /shebang-command@2.0.0:
    -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    -    engines: {node: '>=8'}
    +  shebang-command@2.0.0:
         dependencies:
           shebang-regex: 3.0.0
     
    -  /shebang-regex@3.0.0:
    -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    -    engines: {node: '>=8'}
    +  shebang-regex@3.0.0: {}
     
    -  /shell-quote@1.8.1:
    -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    +  shell-quote@1.8.1: {}
     
    -  /shelljs@0.8.5:
    -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  shelljs@0.8.5:
         dependencies:
           glob: 7.2.3
           interpret: 1.4.0
           rechoir: 0.6.2
     
    -  /side-channel@1.0.6:
    -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    -    engines: {node: '>= 0.4'}
    +  side-channel@1.0.6:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
           object-inspect: 1.13.1
     
    -  /signal-exit@3.0.7:
    -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    +  signal-exit@3.0.7: {}
     
    -  /signal-exit@4.1.0:
    -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    -    engines: {node: '>=14'}
    +  signal-exit@4.1.0: {}
     
    -  /sigstore@1.9.0:
    -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  sigstore@1.9.0:
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -15691,13 +19674,11 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /simple-swizzle@0.2.2:
    -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    +  simple-swizzle@0.2.2:
         dependencies:
           is-arrayish: 0.3.2
     
    -  /sinon@17.0.1:
    -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    +  sinon@17.0.1:
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
    @@ -15705,79 +19686,52 @@ packages:
           diff: 5.2.0
           nise: 5.1.9
           supports-color: 7.2.0
    -    dev: true
     
    -  /sirv@2.0.4:
    -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    -    engines: {node: '>= 10'}
    +  sirv@2.0.4:
         dependencies:
           '@polka/url': 1.0.0-next.25
           mrmime: 2.0.0
           totalist: 3.0.1
    -    dev: false
     
    -  /sisteransi@1.0.5:
    -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    +  sisteransi@1.0.5: {}
     
    -  /sitemap@7.1.1:
    -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    -    hasBin: true
    +  sitemap@7.1.1:
         dependencies:
           '@types/node': 17.0.45
           '@types/sax': 1.2.7
           arg: 5.0.2
           sax: 1.3.0
    -    dev: false
     
    -  /skin-tone@2.0.0:
    -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    -    engines: {node: '>=8'}
    +  skin-tone@2.0.0:
         dependencies:
           unicode-emoji-modifier-base: 1.0.0
    -    dev: false
     
    -  /slash@3.0.0:
    -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    -    engines: {node: '>=8'}
    +  slash@3.0.0: {}
     
    -  /slash@4.0.0:
    -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  slash@4.0.0: {}
     
    -  /smart-buffer@4.2.0:
    -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    +  smart-buffer@4.2.0: {}
     
    -  /snake-case@3.0.4:
    -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    +  snake-case@3.0.4:
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
    -    dev: true
     
    -  /sockjs@0.3.24:
    -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    +  sockjs@0.3.24:
         dependencies:
           faye-websocket: 0.11.4
           uuid: 8.3.2
           websocket-driver: 0.7.4
     
    -  /socks-proxy-agent@6.1.1:
    -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@6.1.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
           socks: 2.8.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /socks-proxy-agent@6.2.1:
    -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@6.2.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -15785,9 +19739,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /socks-proxy-agent@7.0.0:
    -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@7.0.0:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -15795,89 +19747,58 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /socks@2.8.1:
    -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    +  socks@2.8.1:
         dependencies:
           ip-address: 9.0.5
           smart-buffer: 4.2.0
     
    -  /sort-css-media-queries@2.1.0:
    -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    -    engines: {node: '>= 6.3.0'}
    -    dev: false
    +  sort-css-media-queries@2.1.0: {}
     
    -  /sort-keys@4.2.0:
    -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    -    engines: {node: '>=8'}
    +  sort-keys@4.2.0:
         dependencies:
           is-plain-obj: 2.1.0
     
    -  /sort-keys@5.0.0:
    -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    -    engines: {node: '>=12'}
    +  sort-keys@5.0.0:
         dependencies:
           is-plain-obj: 4.1.0
    -    dev: true
     
    -  /source-map-js@1.2.0:
    -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    -    engines: {node: '>=0.10.0'}
    +  source-map-js@1.2.0: {}
     
    -  /source-map-support@0.5.13:
    -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    +  source-map-support@0.5.13:
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
    -    dev: true
     
    -  /source-map-support@0.5.21:
    -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    +  source-map-support@0.5.21:
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
     
    -  /source-map-url@0.4.1:
    -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    -    deprecated: See https://github.com/lydell/source-map-url#deprecated
    -    dev: true
    +  source-map-url@0.4.1: {}
     
    -  /source-map@0.5.6:
    -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  source-map@0.5.6: {}
     
    -  /source-map@0.6.1:
    -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    -    engines: {node: '>=0.10.0'}
    +  source-map@0.6.1: {}
     
    -  /source-map@0.7.4:
    -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    -    engines: {node: '>= 8'}
    +  source-map@0.7.4: {}
     
    -  /space-separated-tokens@2.0.2:
    -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    +  space-separated-tokens@2.0.2: {}
     
    -  /spdx-correct@3.2.0:
    -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    +  spdx-correct@3.2.0:
         dependencies:
           spdx-expression-parse: 3.0.1
           spdx-license-ids: 3.0.17
     
    -  /spdx-exceptions@2.5.0:
    -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    +  spdx-exceptions@2.5.0: {}
     
    -  /spdx-expression-parse@3.0.1:
    -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    +  spdx-expression-parse@3.0.1:
         dependencies:
           spdx-exceptions: 2.5.0
           spdx-license-ids: 3.0.17
     
    -  /spdx-license-ids@3.0.17:
    -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    +  spdx-license-ids@3.0.17: {}
     
    -  /spdy-transport@3.0.0:
    -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    +  spdy-transport@3.0.0:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           detect-node: 2.1.0
    @@ -15888,9 +19809,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /spdy@4.0.2:
    -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    -    engines: {node: '>=6.0.0'}
    +  spdy@4.0.2:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           handle-thing: 2.0.1
    @@ -15900,138 +19819,88 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /split2@3.2.2:
    -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    +  split2@3.2.2:
         dependencies:
           readable-stream: 3.6.2
     
    -  /sprintf-js@1.0.3:
    -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    +  sprintf-js@1.0.3: {}
     
    -  /sprintf-js@1.1.3:
    -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    +  sprintf-js@1.1.3: {}
     
    -  /srcset@4.0.0:
    -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  srcset@4.0.0: {}
     
    -  /ssri@10.0.5:
    -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  ssri@10.0.5:
         dependencies:
           minipass: 7.0.4
     
    -  /ssri@8.0.1:
    -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    -    engines: {node: '>= 8'}
    +  ssri@8.0.1:
         dependencies:
           minipass: 3.3.6
     
    -  /ssri@9.0.1:
    -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  ssri@9.0.1:
         dependencies:
           minipass: 3.3.6
     
    -  /stable@0.1.8:
    -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    -    dev: false
    +  stable@0.1.8: {}
     
    -  /stack-generator@2.0.10:
    -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    +  stack-generator@2.0.10:
         dependencies:
           stackframe: 1.3.4
    -    dev: false
     
    -  /stack-trace@0.0.10:
    -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    +  stack-trace@0.0.10: {}
     
    -  /stack-utils@2.0.6:
    -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    -    engines: {node: '>=10'}
    +  stack-utils@2.0.6:
         dependencies:
           escape-string-regexp: 2.0.0
    -    dev: true
     
    -  /stackframe@1.3.4:
    -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    -    dev: false
    +  stackframe@1.3.4: {}
     
    -  /stacktrace-gps@3.1.2:
    -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    +  stacktrace-gps@3.1.2:
         dependencies:
           source-map: 0.5.6
           stackframe: 1.3.4
    -    dev: false
     
    -  /stacktrace-js@2.0.2:
    -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    +  stacktrace-js@2.0.2:
         dependencies:
           error-stack-parser: 2.1.4
           stack-generator: 2.0.10
           stacktrace-gps: 3.1.2
    -    dev: false
     
    -  /stacktracey@2.1.8:
    -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    +  stacktracey@2.1.8:
         dependencies:
           as-table: 1.0.55
           get-source: 2.0.12
    -    dev: true
     
    -  /statuses@1.5.0:
    -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    -    engines: {node: '>= 0.6'}
    +  statuses@1.5.0: {}
     
    -  /statuses@2.0.1:
    -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    -    engines: {node: '>= 0.8'}
    +  statuses@2.0.1: {}
     
    -  /std-env@3.7.0:
    -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    -    dev: false
    +  std-env@3.7.0: {}
     
    -  /stop-iteration-iterator@1.0.0:
    -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    -    engines: {node: '>= 0.4'}
    +  stop-iteration-iterator@1.0.0:
         dependencies:
           internal-slot: 1.0.7
    -    dev: true
     
    -  /streamsearch@1.1.0:
    -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    -    engines: {node: '>=10.0.0'}
    -    dev: false
    +  streamsearch@1.1.0: {}
     
    -  /string-length@4.0.2:
    -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    -    engines: {node: '>=10'}
    +  string-length@4.0.2:
         dependencies:
           char-regex: 1.0.2
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /string-width@4.2.3:
    -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    -    engines: {node: '>=8'}
    +  string-width@4.2.3:
         dependencies:
           emoji-regex: 8.0.0
           is-fullwidth-code-point: 3.0.0
           strip-ansi: 6.0.1
     
    -  /string-width@5.1.2:
    -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    -    engines: {node: '>=12'}
    +  string-width@5.1.2:
         dependencies:
           eastasianwidth: 0.2.0
           emoji-regex: 9.2.2
           strip-ansi: 7.1.0
     
    -  /string.prototype.matchall@4.0.11:
    -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.matchall@4.0.11:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -16045,195 +19914,117 @@ packages:
           regexp.prototype.flags: 1.5.2
           set-function-name: 2.0.2
           side-channel: 1.0.6
    -    dev: true
     
    -  /string.prototype.trim@1.2.9:
    -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.trim@1.2.9:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string.prototype.trimend@1.0.8:
    -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    +  string.prototype.trimend@1.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string.prototype.trimstart@1.0.8:
    -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.trimstart@1.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string_decoder@1.1.1:
    -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    +  string_decoder@1.1.1:
         dependencies:
           safe-buffer: 5.1.2
     
    -  /string_decoder@1.3.0:
    -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    +  string_decoder@1.3.0:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /stringify-entities@4.0.3:
    -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    +  stringify-entities@4.0.3:
         dependencies:
           character-entities-html4: 2.1.0
           character-entities-legacy: 3.0.0
     
    -  /stringify-object@3.3.0:
    -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    -    engines: {node: '>=4'}
    +  stringify-object@3.3.0:
         dependencies:
           get-own-enumerable-property-symbols: 3.0.2
           is-obj: 1.0.1
           is-regexp: 1.0.0
    -    dev: false
     
    -  /strip-ansi@6.0.1:
    -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    -    engines: {node: '>=8'}
    +  strip-ansi@6.0.1:
         dependencies:
           ansi-regex: 5.0.1
     
    -  /strip-ansi@7.1.0:
    -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    -    engines: {node: '>=12'}
    +  strip-ansi@7.1.0:
         dependencies:
           ansi-regex: 6.0.1
     
    -  /strip-bom-buf@1.0.0:
    -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    -    engines: {node: '>=4'}
    +  strip-bom-buf@1.0.0:
         dependencies:
           is-utf8: 0.2.1
     
    -  /strip-bom-stream@2.0.0:
    -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    -    engines: {node: '>=0.10.0'}
    +  strip-bom-stream@2.0.0:
         dependencies:
           first-chunk-stream: 2.0.0
           strip-bom: 2.0.0
     
    -  /strip-bom-string@1.0.0:
    -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  strip-bom-string@1.0.0: {}
     
    -  /strip-bom@2.0.0:
    -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    -    engines: {node: '>=0.10.0'}
    +  strip-bom@2.0.0:
         dependencies:
           is-utf8: 0.2.1
     
    -  /strip-bom@3.0.0:
    -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    -    engines: {node: '>=4'}
    +  strip-bom@3.0.0: {}
     
    -  /strip-bom@4.0.0:
    -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    -    engines: {node: '>=8'}
    +  strip-bom@4.0.0: {}
     
    -  /strip-comments-strings@1.2.0:
    -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    -    dev: true
    +  strip-comments-strings@1.2.0: {}
     
    -  /strip-final-newline@2.0.0:
    -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    -    engines: {node: '>=6'}
    +  strip-final-newline@2.0.0: {}
     
    -  /strip-indent@3.0.0:
    -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    -    engines: {node: '>=8'}
    +  strip-indent@3.0.0:
         dependencies:
           min-indent: 1.0.1
    -    dev: true
     
    -  /strip-indent@4.0.0:
    -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    -    engines: {node: '>=12'}
    +  strip-indent@4.0.0:
         dependencies:
           min-indent: 1.0.1
    -    dev: true
     
    -  /strip-json-comments@2.0.1:
    -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  strip-json-comments@2.0.1: {}
     
    -  /strip-json-comments@3.1.1:
    -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    -    engines: {node: '>=8'}
    +  strip-json-comments@3.1.1: {}
     
    -  /strnum@1.0.5:
    -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    -    dev: true
    +  strnum@1.0.5: {}
     
    -  /style-loader@3.3.4(webpack@5.91.0):
    -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    +  style-loader@3.3.4(webpack@5.91.0):
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /style-to-object@0.4.4:
    -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    +  style-to-object@0.4.4:
         dependencies:
           inline-style-parser: 0.1.1
     
    -  /style-to-object@1.0.5:
    -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    +  style-to-object@1.0.5:
         dependencies:
           inline-style-parser: 0.2.2
     
    -  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    -    engines: {node: '>= 12.0.0'}
    -    peerDependencies:
    -      '@babel/core': '*'
    -      babel-plugin-macros: '*'
    -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      babel-plugin-macros:
    -        optional: true
    +  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
         dependencies:
           '@babel/core': 7.24.3
           client-only: 0.0.1
           react: 18.2.0
    -    dev: false
     
    -  /stylehacks@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  stylehacks@5.1.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /stylis@4.3.1:
    -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    -    dev: false
    +  stylis@4.3.1: {}
     
    -  /sucrase@3.35.0:
    -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    +  sucrase@3.35.0:
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           commander: 4.1.1
    @@ -16242,37 +20033,24 @@ packages:
           mz: 2.7.0
           pirates: 4.0.6
           ts-interface-checker: 0.1.13
    -    dev: true
     
    -  /supports-color@5.5.0:
    -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    -    engines: {node: '>=4'}
    +  supports-color@5.5.0:
         dependencies:
           has-flag: 3.0.0
     
    -  /supports-color@7.2.0:
    -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    -    engines: {node: '>=8'}
    +  supports-color@7.2.0:
         dependencies:
           has-flag: 4.0.0
     
    -  /supports-color@8.1.1:
    -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    -    engines: {node: '>=10'}
    +  supports-color@8.1.1:
         dependencies:
           has-flag: 4.0.0
     
    -  /supports-preserve-symlinks-flag@1.0.0:
    -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    -    engines: {node: '>= 0.4'}
    +  supports-preserve-symlinks-flag@1.0.0: {}
     
    -  /svg-parser@2.0.4:
    -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    +  svg-parser@2.0.4: {}
     
    -  /svgo@2.8.0:
    -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    +  svgo@2.8.0:
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -16281,12 +20059,8 @@ packages:
           csso: 4.2.0
           picocolors: 1.0.0
           stable: 0.1.8
    -    dev: false
     
    -  /svgo@3.2.0:
    -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    +  svgo@3.2.0:
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -16295,16 +20069,10 @@ packages:
           css-what: 6.1.0
           csso: 5.0.5
           picocolors: 1.0.0
    -    dev: true
     
    -  /symbol-tree@3.2.4:
    -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    -    dev: true
    +  symbol-tree@3.2.4: {}
     
    -  /syncpack@12.3.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    -    engines: {node: '>=16'}
    -    hasBin: true
    +  syncpack@12.3.0(typescript@5.4.3):
         dependencies:
           '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
           chalk: 4.1.2
    @@ -16324,12 +20092,8 @@ packages:
           ts-toolbelt: 9.6.0
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /tailwindcss@3.4.1(ts-node@10.9.2):
    -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    +  tailwindcss@3.4.1(ts-node@10.9.2):
         dependencies:
           '@alloc/quick-lru': 5.2.0
           arg: 5.0.2
    @@ -16355,20 +20119,12 @@ packages:
           sucrase: 3.35.0
         transitivePeerDependencies:
           - ts-node
    -    dev: true
     
    -  /tapable@1.1.3:
    -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  tapable@1.1.3: {}
     
    -  /tapable@2.2.1:
    -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    -    engines: {node: '>=6'}
    +  tapable@2.2.1: {}
     
    -  /tar@6.2.1:
    -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    -    engines: {node: '>=10'}
    +  tar@6.2.1:
         dependencies:
           chownr: 2.0.0
           fs-minipass: 2.1.0
    @@ -16377,21 +20133,7 @@ packages:
           mkdirp: 1.0.4
           yallist: 4.0.0
     
    -  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      '@swc/core': '*'
    -      esbuild: '*'
    -      uglify-js: '*'
    -      webpack: ^5.1.0
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      esbuild:
    -        optional: true
    -      uglify-js:
    -        optional: true
    +  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           esbuild: 0.20.2
    @@ -16401,195 +20143,105 @@ packages:
           terser: 5.29.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /terser@5.29.2:
    -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  terser@5.29.2:
         dependencies:
           '@jridgewell/source-map': 0.3.6
           acorn: 8.11.3
           commander: 2.20.3
           source-map-support: 0.5.21
     
    -  /test-exclude@6.0.0:
    -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    -    engines: {node: '>=8'}
    +  test-exclude@6.0.0:
         dependencies:
           '@istanbuljs/schema': 0.1.3
           glob: 7.2.3
           minimatch: 3.1.2
    -    dev: true
     
    -  /text-hex@1.0.0:
    -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    +  text-hex@1.0.0: {}
     
    -  /text-table@0.2.0:
    -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    +  text-table@0.2.0: {}
     
    -  /textextensions@5.16.0:
    -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    -    engines: {node: '>=0.8'}
    +  textextensions@5.16.0: {}
     
    -  /thenify-all@1.6.0:
    -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    -    engines: {node: '>=0.8'}
    +  thenify-all@1.6.0:
         dependencies:
           thenify: 3.3.1
    -    dev: true
     
    -  /thenify@3.3.1:
    -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    +  thenify@3.3.1:
         dependencies:
           any-promise: 1.3.0
    -    dev: true
     
    -  /throttle-debounce@3.0.1:
    -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  throttle-debounce@3.0.1: {}
     
    -  /through2@4.0.2:
    -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    +  through2@4.0.2:
         dependencies:
           readable-stream: 3.6.2
     
    -  /through@2.3.8:
    -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    +  through@2.3.8: {}
     
    -  /thunky@1.1.0:
    -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    +  thunky@1.1.0: {}
     
    -  /tightrope@0.1.0:
    -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    -    engines: {node: '>=14'}
    -    dev: true
    +  tightrope@0.1.0: {}
     
    -  /tiny-invariant@1.3.3:
    -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    -    dev: false
    +  tiny-invariant@1.3.3: {}
     
    -  /tiny-warning@1.0.3:
    -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    -    dev: false
    +  tiny-warning@1.0.3: {}
     
    -  /tinycolor2@1.6.0:
    -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    -    dev: false
    +  tinycolor2@1.6.0: {}
     
    -  /tmp@0.0.33:
    -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    -    engines: {node: '>=0.6.0'}
    +  tmp@0.0.33:
         dependencies:
           os-tmpdir: 1.0.2
     
    -  /tmpl@1.0.5:
    -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    -    dev: true
    +  tmpl@1.0.5: {}
     
    -  /to-fast-properties@2.0.0:
    -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    -    engines: {node: '>=4'}
    +  to-fast-properties@2.0.0: {}
     
    -  /to-regex-range@5.0.1:
    -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    -    engines: {node: '>=8.0'}
    +  to-regex-range@5.0.1:
         dependencies:
           is-number: 7.0.0
     
    -  /toggle-selection@1.0.6:
    -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    -    dev: false
    +  toggle-selection@1.0.6: {}
     
    -  /toidentifier@1.0.1:
    -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    -    engines: {node: '>=0.6'}
    +  toidentifier@1.0.1: {}
     
    -  /totalist@3.0.1:
    -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  totalist@3.0.1: {}
     
    -  /tough-cookie@4.1.3:
    -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    -    engines: {node: '>=6'}
    +  tough-cookie@4.1.3:
         dependencies:
           psl: 1.9.0
           punycode: 2.3.1
           universalify: 0.2.0
           url-parse: 1.5.10
    -    dev: true
     
    -  /tr46@0.0.3:
    -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    +  tr46@0.0.3: {}
     
    -  /tr46@3.0.0:
    -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    -    engines: {node: '>=12'}
    +  tr46@3.0.0:
         dependencies:
           punycode: 2.3.1
    -    dev: true
     
    -  /treeverse@1.0.4:
    -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    +  treeverse@1.0.4: {}
     
    -  /trie-search@2.0.0:
    -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    +  trie-search@2.0.0:
         dependencies:
           hasharray: 1.1.2
    -    dev: false
     
    -  /trim-lines@3.0.1:
    -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    +  trim-lines@3.0.1: {}
     
    -  /trim-newlines@4.1.1:
    -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  trim-newlines@4.1.1: {}
     
    -  /triple-beam@1.4.1:
    -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    -    engines: {node: '>= 14.0.0'}
    +  triple-beam@1.4.1: {}
     
    -  /trough@2.2.0:
    -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    +  trough@2.2.0: {}
     
    -  /ts-api-utils@1.3.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      typescript: '>=4.2.0'
    +  ts-api-utils@1.3.0(typescript@5.4.3):
         dependencies:
           typescript: 5.4.3
    -    dev: true
     
    -  /ts-easing@0.2.0:
    -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    -    dev: false
    +  ts-easing@0.2.0: {}
     
    -  /ts-interface-checker@0.1.13:
    -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    -    dev: true
    +  ts-interface-checker@0.1.13: {}
     
    -  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      '@babel/core': '>=7.0.0-beta.0 <8'
    -      '@jest/types': ^29.0.0
    -      babel-jest: ^29.0.0
    -      esbuild: '*'
    -      jest: ^29.0.0
    -      typescript: '>=4.3 <6'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      '@jest/types':
    -        optional: true
    -      babel-jest:
    -        optional: true
    -      esbuild:
    -        optional: true
    +  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
         dependencies:
           '@babel/core': 7.24.3
           bs-logger: 0.2.6
    @@ -16603,14 +20255,8 @@ packages:
           semver: 7.6.0
           typescript: 5.4.3
           yargs-parser: 21.1.1
    -    dev: true
     
    -  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      typescript: '*'
    -      webpack: ^5.0.0
    +  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           chalk: 4.1.2
           enhanced-resolve: 5.16.0
    @@ -16619,21 +20265,8 @@ packages:
           source-map: 0.7.4
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    -    hasBin: true
    -    peerDependencies:
    -      '@swc/core': '>=1.2.50'
    -      '@swc/wasm': '>=1.2.50'
    -      '@types/node': '*'
    -      typescript: '>=2.7'
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      '@swc/wasm':
    -        optional: true
    +  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
         dependencies:
           '@cspotcode/source-map-support': 0.8.1
           '@tsconfig/node10': 1.0.10
    @@ -16650,27 +20283,19 @@ packages:
           typescript: 5.4.3
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
    -    dev: true
     
    -  /ts-toolbelt@9.6.0:
    -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    -    dev: true
    +  ts-toolbelt@9.6.0: {}
     
    -  /tsconfig-paths@3.15.0:
    -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    +  tsconfig-paths@3.15.0:
         dependencies:
           '@types/json5': 0.0.29
           json5: 1.0.2
           minimist: 1.2.8
           strip-bom: 3.0.0
    -    dev: true
     
    -  /tslib@2.6.2:
    -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    +  tslib@2.6.2: {}
     
    -  /tuf-js@1.1.7:
    -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  tuf-js@1.1.7:
         dependencies:
           '@tufjs/models': 1.0.4
           debug: 4.3.4(supports-color@8.1.1)
    @@ -16678,77 +20303,46 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /type-check@0.4.0:
    -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    -    engines: {node: '>= 0.8.0'}
    +  type-check@0.4.0:
         dependencies:
           prelude-ls: 1.2.1
     
    -  /type-detect@4.0.8:
    -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  type-detect@4.0.8: {}
     
    -  /type-fest@0.20.2:
    -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    -    engines: {node: '>=10'}
    +  type-fest@0.20.2: {}
     
    -  /type-fest@0.21.3:
    -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    -    engines: {node: '>=10'}
    +  type-fest@0.21.3: {}
     
    -  /type-fest@0.6.0:
    -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    -    engines: {node: '>=8'}
    +  type-fest@0.6.0: {}
     
    -  /type-fest@0.8.1:
    -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    -    engines: {node: '>=8'}
    +  type-fest@0.8.1: {}
     
    -  /type-fest@1.4.0:
    -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    -    engines: {node: '>=10'}
    +  type-fest@1.4.0: {}
     
    -  /type-fest@2.19.0:
    -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  type-fest@2.19.0: {}
     
    -  /type-fest@4.14.0:
    -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    -    engines: {node: '>=16'}
    -    dev: false
    +  type-fest@4.14.0: {}
     
    -  /type-is@1.6.18:
    -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    -    engines: {node: '>= 0.6'}
    +  type-is@1.6.18:
         dependencies:
           media-typer: 0.3.0
           mime-types: 2.1.35
     
    -  /typed-array-buffer@1.0.2:
    -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-buffer@1.0.2:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-byte-length@1.0.1:
    -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-byte-offset@1.0.2:
    -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-byte-offset@1.0.2:
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
    @@ -16756,11 +20350,8 @@ packages:
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-length@1.0.6:
    -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-length@1.0.6:
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
    @@ -16768,53 +20359,34 @@ packages:
           has-proto: 1.0.3
           is-typed-array: 1.1.13
           possible-typed-array-names: 1.0.0
    -    dev: true
     
    -  /typedarray-to-buffer@3.1.5:
    -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    +  typedarray-to-buffer@3.1.5:
         dependencies:
           is-typedarray: 1.0.0
     
    -  /typescript@5.4.3:
    -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    -    engines: {node: '>=14.17'}
    -    hasBin: true
    +  typescript@5.4.3: {}
     
    -  /unbox-primitive@1.0.2:
    -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    +  unbox-primitive@1.0.2:
         dependencies:
           call-bind: 1.0.7
           has-bigints: 1.0.2
           has-symbols: 1.0.3
           which-boxed-primitive: 1.0.2
    -    dev: true
     
    -  /unicode-canonical-property-names-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    -    engines: {node: '>=4'}
    +  unicode-canonical-property-names-ecmascript@2.0.0: {}
     
    -  /unicode-emoji-modifier-base@1.0.0:
    -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  unicode-emoji-modifier-base@1.0.0: {}
     
    -  /unicode-match-property-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    -    engines: {node: '>=4'}
    +  unicode-match-property-ecmascript@2.0.0:
         dependencies:
           unicode-canonical-property-names-ecmascript: 2.0.0
           unicode-property-aliases-ecmascript: 2.1.0
     
    -  /unicode-match-property-value-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    -    engines: {node: '>=4'}
    +  unicode-match-property-value-ecmascript@2.1.0: {}
     
    -  /unicode-property-aliases-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    -    engines: {node: '>=4'}
    +  unicode-property-aliases-ecmascript@2.1.0: {}
     
    -  /unified@11.0.4:
    -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    +  unified@11.0.4:
         dependencies:
           '@types/unist': 3.0.2
           bail: 2.0.2
    @@ -16824,133 +20396,91 @@ packages:
           trough: 2.2.0
           vfile: 6.0.1
     
    -  /union@0.5.0:
    -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    -    engines: {node: '>= 0.8.0'}
    +  union@0.5.0:
         dependencies:
           qs: 6.12.0
    -    dev: true
     
    -  /unique-filename@1.1.1:
    -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    +  unique-filename@1.1.1:
         dependencies:
           unique-slug: 2.0.2
     
    -  /unique-filename@2.0.1:
    -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  unique-filename@2.0.1:
         dependencies:
           unique-slug: 3.0.0
     
    -  /unique-filename@3.0.0:
    -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  unique-filename@3.0.0:
         dependencies:
           unique-slug: 4.0.0
     
    -  /unique-slug@2.0.2:
    -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    +  unique-slug@2.0.2:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-slug@3.0.0:
    -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  unique-slug@3.0.0:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-slug@4.0.0:
    -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  unique-slug@4.0.0:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-string@2.0.0:
    -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    -    engines: {node: '>=8'}
    +  unique-string@2.0.0:
         dependencies:
           crypto-random-string: 2.0.0
    -    dev: true
     
    -  /unique-string@3.0.0:
    -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    -    engines: {node: '>=12'}
    +  unique-string@3.0.0:
         dependencies:
           crypto-random-string: 4.0.0
    -    dev: false
     
    -  /unist-util-is@6.0.0:
    -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    +  unist-util-is@6.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-position-from-estree@2.0.0:
    -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    +  unist-util-position-from-estree@2.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-position@5.0.0:
    -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    +  unist-util-position@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-remove-position@5.0.0:
    -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    +  unist-util-remove-position@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-visit: 5.0.0
     
    -  /unist-util-stringify-position@4.0.0:
    -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    +  unist-util-stringify-position@4.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-visit-parents@6.0.1:
    -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    +  unist-util-visit-parents@6.0.1:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
     
    -  /unist-util-visit@5.0.0:
    -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    +  unist-util-visit@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
     
    -  /universal-user-agent@6.0.1:
    -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    +  universal-user-agent@6.0.1: {}
     
    -  /universalify@0.2.0:
    -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    -    engines: {node: '>= 4.0.0'}
    -    dev: true
    +  universalify@0.2.0: {}
     
    -  /universalify@2.0.1:
    -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    -    engines: {node: '>= 10.0.0'}
    +  universalify@2.0.1: {}
     
    -  /unpipe@1.0.0:
    -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    -    engines: {node: '>= 0.8'}
    +  unpipe@1.0.0: {}
     
    -  /untildify@4.0.0:
    -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    -    engines: {node: '>=8'}
    +  untildify@4.0.0: {}
     
    -  /update-browserslist-db@1.0.13(browserslist@4.23.0):
    -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    -    hasBin: true
    -    peerDependencies:
    -      browserslist: '>= 4.21.0'
    +  update-browserslist-db@1.0.13(browserslist@4.23.0):
         dependencies:
           browserslist: 4.23.0
           escalade: 3.1.2
           picocolors: 1.0.0
     
    -  /update-notifier@6.0.2:
    -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    -    engines: {node: '>=14.16'}
    +  update-notifier@6.0.2:
         dependencies:
           boxen: 7.1.1
           chalk: 5.3.0
    @@ -16966,125 +20496,80 @@ packages:
           semver: 7.6.0
           semver-diff: 4.0.0
           xdg-basedir: 5.1.0
    -    dev: false
     
    -  /uri-js@4.4.1:
    -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    +  uri-js@4.4.1:
         dependencies:
           punycode: 2.3.1
     
    -  /url-join@4.0.1:
    -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    -    dev: true
    +  url-join@4.0.1: {}
     
    -  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      file-loader: '*'
    -      webpack: ^4.0.0 || ^5.0.0
    -    peerDependenciesMeta:
    -      file-loader:
    -        optional: true
    +  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
         dependencies:
           file-loader: 6.2.0(webpack@5.91.0)
           loader-utils: 2.0.4
           mime-types: 2.1.35
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /url-parse@1.5.10:
    -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    +  url-parse@1.5.10:
         dependencies:
           querystringify: 2.2.0
           requires-port: 1.0.0
    -    dev: true
     
    -  /util-deprecate@1.0.2:
    -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    +  util-deprecate@1.0.2: {}
     
    -  /utila@0.4.0:
    -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    +  utila@0.4.0: {}
     
    -  /utility-types@3.11.0:
    -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    -    engines: {node: '>= 4'}
    +  utility-types@3.11.0: {}
     
    -  /utils-merge@1.0.1:
    -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    -    engines: {node: '>= 0.4.0'}
    +  utils-merge@1.0.1: {}
     
    -  /uuid@8.3.2:
    -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    -    hasBin: true
    +  uuid@8.3.2: {}
     
    -  /uuid@9.0.1:
    -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    -    hasBin: true
    -    dev: false
    +  uuid@9.0.1: {}
     
    -  /v8-compile-cache-lib@3.0.1:
    -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    -    dev: true
    +  v8-compile-cache-lib@3.0.1: {}
     
    -  /v8-to-istanbul@9.2.0:
    -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    -    engines: {node: '>=10.12.0'}
    +  v8-to-istanbul@9.2.0:
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           '@types/istanbul-lib-coverage': 2.0.6
           convert-source-map: 2.0.0
    -    dev: true
     
    -  /validate-npm-package-license@3.0.4:
    -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    +  validate-npm-package-license@3.0.4:
         dependencies:
           spdx-correct: 3.2.0
           spdx-expression-parse: 3.0.1
     
    -  /validate-npm-package-name@3.0.0:
    -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    +  validate-npm-package-name@3.0.0:
         dependencies:
           builtins: 1.0.3
     
    -  /validate-npm-package-name@5.0.0:
    -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  validate-npm-package-name@5.0.0:
         dependencies:
           builtins: 5.0.1
     
    -  /value-equal@1.0.1:
    -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    -    dev: false
    +  value-equal@1.0.1: {}
     
    -  /vary@1.1.2:
    -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    -    engines: {node: '>= 0.8'}
    +  vary@1.1.2: {}
     
    -  /vfile-location@5.0.2:
    -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    +  vfile-location@5.0.2:
         dependencies:
           '@types/unist': 3.0.2
           vfile: 6.0.1
    -    dev: false
     
    -  /vfile-message@4.0.2:
    -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    +  vfile-message@4.0.2:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
     
    -  /vfile@6.0.1:
    -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    +  vfile@6.0.1:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
           vfile-message: 4.0.2
     
    -  /vinyl-file@3.0.0:
    -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    -    engines: {node: '>=4'}
    +  vinyl-file@3.0.0:
         dependencies:
           graceful-fs: 4.2.11
           pify: 2.3.0
    @@ -17092,9 +20577,7 @@ packages:
           strip-bom-stream: 2.0.0
           vinyl: 2.2.1
     
    -  /vinyl@2.2.1:
    -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    -    engines: {node: '>= 0.10'}
    +  vinyl@2.2.1:
         dependencies:
           clone: 2.1.2
           clone-buffer: 1.0.0
    @@ -17103,58 +20586,38 @@ packages:
           remove-trailing-separator: 1.1.0
           replace-ext: 1.0.1
     
    -  /vscode-uri@3.0.8:
    -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    +  vscode-uri@3.0.8: {}
     
    -  /w3c-xmlserializer@4.0.0:
    -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    -    engines: {node: '>=14'}
    +  w3c-xmlserializer@4.0.0:
         dependencies:
           xml-name-validator: 4.0.0
    -    dev: true
     
    -  /walk-up-path@1.0.0:
    -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    +  walk-up-path@1.0.0: {}
     
    -  /walker@1.0.8:
    -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    +  walker@1.0.8:
         dependencies:
           makeerror: 1.0.12
    -    dev: true
     
    -  /watchpack@2.4.1:
    -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    -    engines: {node: '>=10.13.0'}
    +  watchpack@2.4.1:
         dependencies:
           glob-to-regexp: 0.4.1
           graceful-fs: 4.2.11
     
    -  /wbuf@1.7.3:
    -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    +  wbuf@1.7.3:
         dependencies:
           minimalistic-assert: 1.0.1
     
    -  /wcwidth@1.0.1:
    -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    +  wcwidth@1.0.1:
         dependencies:
           defaults: 1.0.4
     
    -  /web-namespaces@2.0.1:
    -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    -    dev: false
    +  web-namespaces@2.0.1: {}
     
    -  /webidl-conversions@3.0.1:
    -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    +  webidl-conversions@3.0.1: {}
     
    -  /webidl-conversions@7.0.0:
    -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  webidl-conversions@7.0.0: {}
     
    -  /webpack-bundle-analyzer@4.10.1:
    -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    -    engines: {node: '>= 10.13.0'}
    -    hasBin: true
    +  webpack-bundle-analyzer@4.10.1:
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           acorn: 8.11.3
    @@ -17172,24 +20635,8 @@ packages:
         transitivePeerDependencies:
           - bufferutil
           - utf-8-validate
    -    dev: false
     
    -  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    -    engines: {node: '>=14.15.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@webpack-cli/generators': '*'
    -      webpack: 5.x.x
    -      webpack-bundle-analyzer: '*'
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      '@webpack-cli/generators':
    -        optional: true
    -      webpack-bundle-analyzer:
    -        optional: true
    -      webpack-dev-server:
    -        optional: true
    +  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
    @@ -17208,11 +20655,7 @@ packages:
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
           webpack-merge: 5.10.0
     
    -  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
    -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    +  webpack-dev-middleware@5.3.4(webpack@5.91.0):
         dependencies:
           colorette: 2.0.20
           memfs: 3.5.3
    @@ -17220,16 +20663,8 @@ packages:
           range-parser: 1.2.1
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    +  webpack-dev-middleware@7.1.1(webpack@5.91.0):
         dependencies:
           colorette: 2.0.20
           memfs: 4.8.0
    @@ -17239,18 +20674,7 @@ packages:
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /webpack-dev-server@4.15.2(webpack@5.91.0):
    -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    -    engines: {node: '>= 12.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^4.37.0 || ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    +  webpack-dev-server@4.15.2(webpack@5.91.0):
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -17288,20 +20712,8 @@ packages:
           - debug
           - supports-color
           - utf-8-validate
    -    dev: false
     
    -  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    -    engines: {node: '>= 18.12.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    +  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -17341,27 +20753,15 @@ packages:
           - supports-color
           - utf-8-validate
     
    -  /webpack-merge@5.10.0:
    -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    -    engines: {node: '>=10.0.0'}
    +  webpack-merge@5.10.0:
         dependencies:
           clone-deep: 4.0.1
           flat: 5.0.2
           wildcard: 2.0.1
     
    -  /webpack-sources@3.2.3:
    -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    -    engines: {node: '>=10.13.0'}
    +  webpack-sources@3.2.3: {}
     
    -  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack-cli:
    -        optional: true
    +  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
         dependencies:
           '@types/eslint-scope': 3.7.7
           '@types/estree': 1.0.5
    @@ -17393,70 +20793,47 @@ packages:
           - esbuild
           - uglify-js
     
    -  /webpackbar@5.0.2(webpack@5.91.0):
    -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      webpack: 3 || 4 || 5
    +  webpackbar@5.0.2(webpack@5.91.0):
         dependencies:
           chalk: 4.1.2
           consola: 2.15.3
           pretty-time: 1.1.0
           std-env: 3.7.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /websocket-driver@0.7.4:
    -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    -    engines: {node: '>=0.8.0'}
    +  websocket-driver@0.7.4:
         dependencies:
           http-parser-js: 0.5.8
           safe-buffer: 5.2.1
           websocket-extensions: 0.1.4
     
    -  /websocket-extensions@0.1.4:
    -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    -    engines: {node: '>=0.8.0'}
    +  websocket-extensions@0.1.4: {}
     
    -  /whatwg-encoding@2.0.0:
    -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    -    engines: {node: '>=12'}
    +  whatwg-encoding@2.0.0:
         dependencies:
           iconv-lite: 0.6.3
    -    dev: true
     
    -  /whatwg-mimetype@3.0.0:
    -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  whatwg-mimetype@3.0.0: {}
     
    -  /whatwg-url@11.0.0:
    -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    -    engines: {node: '>=12'}
    +  whatwg-url@11.0.0:
         dependencies:
           tr46: 3.0.0
           webidl-conversions: 7.0.0
    -    dev: true
     
    -  /whatwg-url@5.0.0:
    -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    +  whatwg-url@5.0.0:
         dependencies:
           tr46: 0.0.3
           webidl-conversions: 3.0.1
     
    -  /which-boxed-primitive@1.0.2:
    -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    +  which-boxed-primitive@1.0.2:
         dependencies:
           is-bigint: 1.0.4
           is-boolean-object: 1.1.2
           is-number-object: 1.0.7
           is-string: 1.0.7
           is-symbol: 1.0.4
    -    dev: true
     
    -  /which-builtin-type@1.1.3:
    -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    -    engines: {node: '>= 0.4'}
    +  which-builtin-type@1.1.3:
         dependencies:
           function.prototype.name: 1.1.6
           has-tostringtag: 1.0.2
    @@ -17470,90 +20847,60 @@ packages:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /which-collection@1.0.2:
    -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    -    engines: {node: '>= 0.4'}
    +  which-collection@1.0.2:
         dependencies:
           is-map: 2.0.3
           is-set: 2.0.3
           is-weakmap: 2.0.2
           is-weakset: 2.0.3
    -    dev: true
     
    -  /which-pm@2.0.0:
    -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    -    engines: {node: '>=8.15'}
    +  which-pm@2.0.0:
         dependencies:
           load-yaml-file: 0.2.0
           path-exists: 4.0.0
     
    -  /which-typed-array@1.1.15:
    -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    -    engines: {node: '>= 0.4'}
    +  which-typed-array@1.1.15:
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /which@1.3.1:
    -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    -    hasBin: true
    +  which@1.3.1:
         dependencies:
           isexe: 2.0.0
    -    dev: false
     
    -  /which@2.0.2:
    -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    +  which@2.0.2:
         dependencies:
           isexe: 2.0.0
     
    -  /which@3.0.1:
    -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  which@3.0.1:
         dependencies:
           isexe: 2.0.0
     
    -  /wide-align@1.1.5:
    -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    +  wide-align@1.1.5:
         dependencies:
           string-width: 4.2.3
     
    -  /widest-line@3.1.0:
    -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    -    engines: {node: '>=8'}
    +  widest-line@3.1.0:
         dependencies:
           string-width: 4.2.3
    -    dev: true
     
    -  /widest-line@4.0.1:
    -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    -    engines: {node: '>=12'}
    +  widest-line@4.0.1:
         dependencies:
           string-width: 5.1.2
    -    dev: false
     
    -  /wildcard@2.0.1:
    -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    +  wildcard@2.0.1: {}
     
    -  /winston-transport@4.7.0:
    -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    -    engines: {node: '>= 12.0.0'}
    +  winston-transport@4.7.0:
         dependencies:
           logform: 2.6.0
           readable-stream: 3.6.2
           triple-beam: 1.4.1
     
    -  /winston@3.11.0:
    -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    -    engines: {node: '>= 12.0.0'}
    +  winston@3.11.0:
         dependencies:
           '@colors/colors': 1.6.0
           '@dabh/diagnostics': 2.0.3
    @@ -17567,173 +20914,95 @@ packages:
           triple-beam: 1.4.1
           winston-transport: 4.7.0
     
    -  /workerpool@6.2.1:
    -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    -    dev: true
    +  workerpool@6.2.1: {}
     
    -  /wrap-ansi@6.2.0:
    -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    -    engines: {node: '>=8'}
    +  wrap-ansi@6.2.0:
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  /wrap-ansi@7.0.0:
    -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    -    engines: {node: '>=10'}
    +  wrap-ansi@7.0.0:
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  /wrap-ansi@8.1.0:
    -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    -    engines: {node: '>=12'}
    +  wrap-ansi@8.1.0:
         dependencies:
           ansi-styles: 6.2.1
           string-width: 5.1.2
           strip-ansi: 7.1.0
     
    -  /wrappy@1.0.2:
    -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    +  wrappy@1.0.2: {}
     
    -  /write-file-atomic@3.0.3:
    -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    +  write-file-atomic@3.0.3:
         dependencies:
           imurmurhash: 0.1.4
           is-typedarray: 1.0.0
           signal-exit: 3.0.7
           typedarray-to-buffer: 3.1.5
     
    -  /write-file-atomic@4.0.2:
    -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  write-file-atomic@4.0.2:
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 3.0.7
     
    -  /write-file-atomic@5.0.1:
    -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  write-file-atomic@5.0.1:
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 4.1.0
     
    -  /write-json-file@5.0.0:
    -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  write-json-file@5.0.0:
         dependencies:
           detect-indent: 7.0.1
           is-plain-obj: 4.1.0
           sort-keys: 5.0.0
           write-file-atomic: 3.0.3
    -    dev: true
     
    -  /write-yaml-file@5.0.0:
    -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    -    engines: {node: '>=16.14'}
    +  write-yaml-file@5.0.0:
         dependencies:
           js-yaml: 4.1.0
           write-file-atomic: 5.0.1
    -    dev: true
     
    -  /ws@7.5.9:
    -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    -    engines: {node: '>=8.3.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: ^5.0.2
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -    dev: false
    +  ws@7.5.9: {}
     
    -  /ws@8.16.0:
    -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: '>=5.0.2'
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    +  ws@8.16.0: {}
     
    -  /xdg-basedir@5.1.0:
    -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  xdg-basedir@5.1.0: {}
     
    -  /xml-js@1.6.11:
    -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    -    hasBin: true
    +  xml-js@1.6.11:
         dependencies:
           sax: 1.3.0
    -    dev: false
     
    -  /xml-name-validator@4.0.0:
    -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  xml-name-validator@4.0.0: {}
     
    -  /xmlchars@2.2.0:
    -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    -    dev: true
    +  xmlchars@2.2.0: {}
     
    -  /y18n@5.0.8:
    -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  y18n@5.0.8: {}
     
    -  /yallist@3.1.1:
    -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    +  yallist@3.1.1: {}
     
    -  /yallist@4.0.0:
    -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    +  yallist@4.0.0: {}
     
    -  /yaml@1.10.2:
    -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    -    engines: {node: '>= 6'}
    -    dev: false
    +  yaml@1.10.2: {}
     
    -  /yaml@2.4.1:
    -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    -    engines: {node: '>= 14'}
    -    hasBin: true
    -    dev: true
    +  yaml@2.4.1: {}
     
    -  /yargs-parser@20.2.4:
    -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  yargs-parser@20.2.4: {}
     
    -  /yargs-parser@20.2.9:
    -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  yargs-parser@20.2.9: {}
     
    -  /yargs-parser@21.1.1:
    -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  yargs-parser@21.1.1: {}
     
    -  /yargs-unparser@2.0.0:
    -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    -    engines: {node: '>=10'}
    +  yargs-unparser@2.0.0:
         dependencies:
           camelcase: 6.3.0
           decamelize: 4.0.0
           flat: 5.0.2
           is-plain-obj: 2.1.0
    -    dev: true
     
    -  /yargs@16.2.0:
    -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    -    engines: {node: '>=10'}
    +  yargs@16.2.0:
         dependencies:
           cliui: 7.0.4
           escalade: 3.1.2
    @@ -17742,11 +21011,8 @@ packages:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 20.2.9
    -    dev: true
     
    -  /yargs@17.7.2:
    -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    -    engines: {node: '>=12'}
    +  yargs@17.7.2:
         dependencies:
           cliui: 8.0.1
           escalade: 3.1.2
    @@ -17755,12 +21021,8 @@ packages:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 21.1.1
    -    dev: true
     
    -  /yeoman-environment@3.19.3:
    -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    -    engines: {node: '>=12.10.0'}
    -    hasBin: true
    +  yeoman-environment@3.19.3:
         dependencies:
           '@npmcli/arborist': 4.3.1
           are-we-there-yet: 2.0.0
    @@ -17803,14 +21065,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      yeoman-environment: ^3.2.0
    -    peerDependenciesMeta:
    -      yeoman-environment:
    -        optional: true
    +  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
         dependencies:
           chalk: 4.1.2
           dargs: 7.0.0
    @@ -17834,23 +21089,12 @@ packages:
           - mem-fs
           - supports-color
     
    -  /yn@3.1.1:
    -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  yn@3.1.1: {}
     
    -  /yocto-queue@0.1.0:
    -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    -    engines: {node: '>=10'}
    +  yocto-queue@0.1.0: {}
     
    -  /yocto-queue@1.0.0:
    -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  yocto-queue@1.0.0: {}
     
    -  /zod@3.22.4:
    -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    -    dev: false
    +  zod@3.22.4: {}
     
    -  /zwitch@2.0.4:
    -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    +  zwitch@2.0.4: {}
    
    From 773d5be341418ad3bd4ce732c0f11b1b01f9f59b Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:33:31 +0100
    Subject: [PATCH 347/504] ci 2
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 32 ++++++++++---------
     1 file changed, 17 insertions(+), 15 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index fb4deccbe5..01208b90f3 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -46,9 +46,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
         // const [cli, ...args] =
         //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
    -    let cli = getEnvironmentVariableStrict("APP_PATH");
    +    const cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
    -    cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    // cli = cli.replace("nvim.exe", "nvim-qt.exe");
     
         // Install extension dependencies
         // const extensionInstallArgs = [
    @@ -96,19 +96,21 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             }
           },
         );
    -
    -    console.log(`Starting nvim for tests...`);
    -    const nvim_process = cp.spawn(cli, [], {
    -      // encoding: "utf-8",
    -      // stdio: "inherit",
    -      env: {
    -        ...process.env,
    -        // "NVIM_NODE_HOST_DEBUG": "1",
    -        NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`,
    -        NVIM_NODE_LOG_LEVEL: "debug",
    -        CURSORLESS_MODE: "test",
    -      },
    -    });
    +    console.log("init.lua copying done");
    +
    +    const nvim_process = cp.spawn(cli);
    +    // const nvim_process = cp.spawn(cli, [], {
    +    //   // encoding: "utf-8",
    +    //   // stdio: "inherit",
    +    //   env: {
    +    //     ...process.env,
    +    //     // "NVIM_NODE_HOST_DEBUG": "1",
    +    //     NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`,
    +    //     NVIM_NODE_LOG_LEVEL: "debug",
    +    //     CURSORLESS_MODE: "test",
    +    //   },
    +    // });
    +    console.log("nvim started done");
     
         // do not wait for nvim to exit to avoid any blocking
         nvim_process.unref();
    
    From aa0b524ed875ebed7ce6e54f78f1ad29c9423b64 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 14:37:39 +0100
    Subject: [PATCH 348/504] ci 4
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 24 +++++++++----------
     1 file changed, 12 insertions(+), 12 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 01208b90f3..19991d2dd7 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -98,18 +98,18 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         );
         console.log("init.lua copying done");
     
    -    const nvim_process = cp.spawn(cli);
    -    // const nvim_process = cp.spawn(cli, [], {
    -    //   // encoding: "utf-8",
    -    //   // stdio: "inherit",
    -    //   env: {
    -    //     ...process.env,
    -    //     // "NVIM_NODE_HOST_DEBUG": "1",
    -    //     NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`,
    -    //     NVIM_NODE_LOG_LEVEL: "debug",
    -    //     CURSORLESS_MODE: "test",
    -    //   },
    -    // });
    +    // const nvim_process = cp.spawn(cli); // this works
    +    const nvim_process = cp.spawn(cli, [], {
    +      // encoding: "utf-8",
    +      // stdio: "inherit",
    +      env: {
    +        ...process.env,
    +        // "NVIM_NODE_HOST_DEBUG": "1",
    +        NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`,
    +        NVIM_NODE_LOG_LEVEL: "debug",
    +        CURSORLESS_MODE: "test",
    +      },
    +    });
         console.log("nvim started done");
     
         // do not wait for nvim to exit to avoid any blocking
    
    From cc2d73493261ae7d6d923fc738bdd5f22e6b8528 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 17:56:11 +0100
    Subject: [PATCH 349/504] ci: tail file
    
    ---
     packages/test-harness/package.json            |     4 +-
     .../src/launchNeovimAndRunTests.ts            |    19 +-
     pnpm-lock.yaml                                | 18899 +++++++---------
     3 files changed, 7855 insertions(+), 11067 deletions(-)
    
    diff --git a/packages/test-harness/package.json b/packages/test-harness/package.json
    index 8d32bcd9af..06da85b5d9 100644
    --- a/packages/test-harness/package.json
    +++ b/packages/test-harness/package.json
    @@ -29,11 +29,13 @@
         "@cursorless/neovim-common": "workspace:*",
         "@cursorless/neovim-registry": "workspace:*",
         "glob": "^10.3.10",
    -    "neovim": "5.1.0"
    +    "neovim": "5.1.0",
    +    "tail": "2.2.6"
       },
       "devDependencies": {
         "@types/glob": "^8.1.0",
         "@types/mocha": "^10.0.6",
    +    "@types/tail": "2.2.3",
         "@vscode/test-electron": "^2.3.9",
         "mocha": "^10.3.0"
       },
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 19991d2dd7..9d613cf6fd 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -2,6 +2,7 @@ import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
     import { copyFile } from "fs";
    +import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
     //   resolveCliArgsFromVSCodeExecutablePath,
    @@ -98,6 +99,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         );
         console.log("init.lua copying done");
     
    +    const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
         // const nvim_process = cp.spawn(cli); // this works
         const nvim_process = cp.spawn(cli, [], {
           // encoding: "utf-8",
    @@ -105,7 +107,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           env: {
             ...process.env,
             // "NVIM_NODE_HOST_DEBUG": "1",
    -        NVIM_NODE_LOG_FILE: `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`,
    +        NVIM_NODE_LOG_FILE: logName,
             NVIM_NODE_LOG_LEVEL: "debug",
             CURSORLESS_MODE: "test",
           },
    @@ -117,7 +119,20 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`pid: ${nvim_process.pid}`);
     
    -    await delay(5000);
    +    await delay(10000);
    +
    +    const tail = new Tail(logName, {
    +      // separator: "\n",
    +      fromBeginning: true,
    +    });
    +    tail.on("line", function (data: string) {
    +      console.log(data);
    +    });
    +    tail.on("error", function (error) {
    +      console.log("ERROR: ", error);
    +    });
    +
    +    await delay(20000);
     
         nvim_process.kill("SIGTERM");
         console.log(`killed: ${nvim_process.killed}`);
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index ad13448d06..70d6a387e0 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -1,4 +1,4 @@
    -lockfileVersion: '9.0'
    +lockfileVersion: '6.0'
     
     settings:
       autoInstallPeers: true
    @@ -743,6 +743,9 @@ importers:
           neovim:
             specifier: 5.1.0
             version: 5.1.0
    +      tail:
    +        specifier: 2.2.6
    +        version: 2.2.6
         devDependencies:
           '@types/glob':
             specifier: ^8.1.0
    @@ -750,6 +753,9 @@ importers:
           '@types/mocha':
             specifier: ^10.0.6
             version: 10.0.6
    +      '@types/tail':
    +        specifier: 2.2.3
    +        version: 2.2.3
           '@vscode/test-electron':
             specifier: ^2.3.9
             version: 2.3.9
    @@ -769,8910 +775,12 @@ importers:
     
     packages:
     
    -  '@aashutoshrathi/word-wrap@1.2.6':
    +  /@aashutoshrathi/word-wrap@1.2.6:
         resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
         engines: {node: '>=0.10.0'}
     
    -  '@algolia/autocomplete-core@1.9.3':
    +  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
         resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
    -
    -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
    -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    -    peerDependencies:
    -      search-insights: '>= 1 < 3'
    -
    -  '@algolia/autocomplete-preset-algolia@1.9.3':
    -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    -
    -  '@algolia/autocomplete-shared@1.9.3':
    -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    -
    -  '@algolia/cache-browser-local-storage@4.22.1':
    -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    -
    -  '@algolia/cache-common@4.22.1':
    -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    -
    -  '@algolia/cache-in-memory@4.22.1':
    -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    -
    -  '@algolia/client-account@4.22.1':
    -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    -
    -  '@algolia/client-analytics@4.22.1':
    -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    -
    -  '@algolia/client-common@4.22.1':
    -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    -
    -  '@algolia/client-personalization@4.22.1':
    -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    -
    -  '@algolia/client-search@4.22.1':
    -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    -
    -  '@algolia/events@4.0.1':
    -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    -
    -  '@algolia/logger-common@4.22.1':
    -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    -
    -  '@algolia/logger-console@4.22.1':
    -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    -
    -  '@algolia/requester-browser-xhr@4.22.1':
    -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    -
    -  '@algolia/requester-common@4.22.1':
    -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    -
    -  '@algolia/requester-node-http@4.22.1':
    -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    -
    -  '@algolia/transporter@4.22.1':
    -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    -
    -  '@alloc/quick-lru@5.2.0':
    -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    -    engines: {node: '>=10'}
    -
    -  '@ampproject/remapping@2.3.0':
    -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@babel/code-frame@7.24.2':
    -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/compat-data@7.24.1':
    -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/core@7.24.3':
    -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/generator@7.24.1':
    -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-annotate-as-pure@7.22.5':
    -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-compilation-targets@7.23.6':
    -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-create-class-features-plugin@7.24.1':
    -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-create-regexp-features-plugin@7.22.15':
    -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-define-polyfill-provider@0.6.1':
    -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  '@babel/helper-environment-visitor@7.22.20':
    -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-function-name@7.23.0':
    -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-hoist-variables@7.22.5':
    -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-member-expression-to-functions@7.23.0':
    -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-module-imports@7.24.3':
    -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-module-transforms@7.23.3':
    -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-optimise-call-expression@7.22.5':
    -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-plugin-utils@7.24.0':
    -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-remap-async-to-generator@7.22.20':
    -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-replace-supers@7.24.1':
    -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/helper-simple-access@7.22.5':
    -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-split-export-declaration@7.22.6':
    -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-string-parser@7.24.1':
    -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-validator-identifier@7.22.20':
    -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-validator-option@7.23.5':
    -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helper-wrap-function@7.22.20':
    -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/helpers@7.24.1':
    -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/highlight@7.24.2':
    -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/parser@7.24.1':
    -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    -    engines: {node: '>=6.0.0'}
    -    hasBin: true
    -
    -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
    -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
    -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.13.0
    -
    -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
    -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
    -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-async-generators@7.8.4':
    -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-bigint@7.8.3':
    -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-class-properties@7.12.13':
    -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-class-static-block@7.14.5':
    -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-dynamic-import@7.8.3':
    -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-export-namespace-from@7.8.3':
    -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-assertions@7.24.1':
    -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-attributes@7.24.1':
    -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-import-meta@7.10.4':
    -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-json-strings@7.8.3':
    -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-jsx@7.24.1':
    -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
    -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
    -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-numeric-separator@7.10.4':
    -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-object-rest-spread@7.8.3':
    -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
    -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-optional-chaining@7.8.3':
    -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-private-property-in-object@7.14.5':
    -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-top-level-await@7.14.5':
    -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-typescript@7.24.1':
    -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
    -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-transform-arrow-functions@7.24.1':
    -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-async-generator-functions@7.24.3':
    -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-async-to-generator@7.24.1':
    -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-block-scoped-functions@7.24.1':
    -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-block-scoping@7.24.1':
    -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-class-properties@7.24.1':
    -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-class-static-block@7.24.1':
    -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -
    -  '@babel/plugin-transform-classes@7.24.1':
    -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-computed-properties@7.24.1':
    -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-destructuring@7.24.1':
    -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-dotall-regex@7.24.1':
    -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-duplicate-keys@7.24.1':
    -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-dynamic-import@7.24.1':
    -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-exponentiation-operator@7.24.1':
    -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-export-namespace-from@7.24.1':
    -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-for-of@7.24.1':
    -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-function-name@7.24.1':
    -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-json-strings@7.24.1':
    -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-literals@7.24.1':
    -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
    -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-member-expression-literals@7.24.1':
    -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-amd@7.24.1':
    -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-commonjs@7.24.1':
    -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-systemjs@7.24.1':
    -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-modules-umd@7.24.1':
    -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
    -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/plugin-transform-new-target@7.24.1':
    -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
    -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-numeric-separator@7.24.1':
    -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-object-rest-spread@7.24.1':
    -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-object-super@7.24.1':
    -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-optional-catch-binding@7.24.1':
    -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-optional-chaining@7.24.1':
    -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-parameters@7.24.1':
    -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-private-methods@7.24.1':
    -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-private-property-in-object@7.24.1':
    -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-property-literals@7.24.1':
    -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-constant-elements@7.24.1':
    -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-display-name@7.24.1':
    -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-jsx-development@7.22.5':
    -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-jsx@7.23.4':
    -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-react-pure-annotations@7.24.1':
    -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-regenerator@7.24.1':
    -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-reserved-words@7.24.1':
    -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-runtime@7.24.3':
    -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-shorthand-properties@7.24.1':
    -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-spread@7.24.1':
    -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-sticky-regex@7.24.1':
    -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-template-literals@7.24.1':
    -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-typeof-symbol@7.24.1':
    -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-typescript@7.24.1':
    -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-escapes@7.24.1':
    -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-property-regex@7.24.1':
    -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-regex@7.24.1':
    -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
    -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  '@babel/preset-env@7.24.3':
    -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/preset-modules@0.1.6-no-external-plugins':
    -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    -
    -  '@babel/preset-react@7.24.1':
    -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/preset-typescript@7.24.1':
    -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@babel/regjsgen@0.8.0':
    -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    -
    -  '@babel/runtime-corejs3@7.24.1':
    -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/runtime@7.24.1':
    -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/template@7.24.0':
    -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/traverse@7.24.1':
    -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@babel/types@7.24.0':
    -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    -    engines: {node: '>=6.9.0'}
    -
    -  '@bcoe/v8-coverage@0.2.3':
    -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    -
    -  '@colors/colors@1.5.0':
    -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    -    engines: {node: '>=0.1.90'}
    -
    -  '@colors/colors@1.6.0':
    -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    -    engines: {node: '>=0.1.90'}
    -
    -  '@cspotcode/source-map-support@0.8.1':
    -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    -    engines: {node: '>=12'}
    -
    -  '@dabh/diagnostics@2.0.3':
    -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    -
    -  '@discoveryjs/json-ext@0.5.7':
    -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    -    engines: {node: '>=10.0.0'}
    -
    -  '@docsearch/css@3.6.0':
    -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    -
    -  '@docsearch/react@3.6.0':
    -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    -    peerDependencies:
    -      '@types/react': '>= 16.8.0 < 19.0.0'
    -      react: '>= 16.8.0 < 19.0.0 || 18'
    -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    -      search-insights: '>= 1 < 3'
    -    peerDependenciesMeta:
    -      '@types/react':
    -        optional: true
    -      react:
    -        optional: true
    -      react-dom:
    -        optional: true
    -      search-insights:
    -        optional: true
    -
    -  '@docusaurus/core@3.1.1':
    -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    -    engines: {node: '>=18.0'}
    -    hasBin: true
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/cssnano-preset@3.1.1':
    -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/logger@3.1.1':
    -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/mdx-loader@3.1.1':
    -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/module-type-aliases@3.1.1':
    -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  '@docusaurus/plugin-content-blog@3.1.1':
    -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-content-docs@3.1.1':
    -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-content-pages@3.1.1':
    -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-debug@3.1.1':
    -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-analytics@3.1.1':
    -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-gtag@3.1.1':
    -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-google-tag-manager@3.1.1':
    -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/plugin-sitemap@3.1.1':
    -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/preset-classic@3.1.1':
    -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/react-loadable@5.5.2':
    -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    -    peerDependencies:
    -      react: '*'
    -
    -  '@docusaurus/theme-classic@3.1.1':
    -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-common@3.1.1':
    -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-search-algolia@3.1.1':
    -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/theme-translations@3.1.1':
    -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/types@3.1.1':
    -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@docusaurus/utils-common@3.1.1':
    -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    -
    -  '@docusaurus/utils-validation@3.1.1':
    -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    -    engines: {node: '>=18.0'}
    -
    -  '@docusaurus/utils@3.1.1':
    -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    -
    -  '@effect/schema@0.56.1':
    -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    -    peerDependencies:
    -      effect: 2.0.0-next.62
    -      fast-check: ^3.13.2
    -
    -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
    -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      html-webpack-plugin: '>=5'
    -      webpack: '>=5'
    -
    -  '@esbuild/aix-ppc64@0.20.2':
    -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [aix]
    -
    -  '@esbuild/android-arm64@0.20.2':
    -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -
    -  '@esbuild/android-arm@0.20.2':
    -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -
    -  '@esbuild/android-x64@0.20.2':
    -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -
    -  '@esbuild/darwin-arm64@0.20.2':
    -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -
    -  '@esbuild/darwin-x64@0.20.2':
    -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -
    -  '@esbuild/freebsd-arm64@0.20.2':
    -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -
    -  '@esbuild/freebsd-x64@0.20.2':
    -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -
    -  '@esbuild/linux-arm64@0.20.2':
    -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@esbuild/linux-arm@0.20.2':
    -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -
    -  '@esbuild/linux-ia32@0.20.2':
    -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -
    -  '@esbuild/linux-loong64@0.20.2':
    -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -
    -  '@esbuild/linux-mips64el@0.20.2':
    -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -
    -  '@esbuild/linux-ppc64@0.20.2':
    -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -
    -  '@esbuild/linux-riscv64@0.20.2':
    -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -
    -  '@esbuild/linux-s390x@0.20.2':
    -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -
    -  '@esbuild/linux-x64@0.20.2':
    -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@esbuild/netbsd-x64@0.20.2':
    -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -
    -  '@esbuild/openbsd-x64@0.20.2':
    -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -
    -  '@esbuild/sunos-x64@0.20.2':
    -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -
    -  '@esbuild/win32-arm64@0.20.2':
    -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -
    -  '@esbuild/win32-ia32@0.20.2':
    -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -
    -  '@esbuild/win32-x64@0.20.2':
    -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -
    -  '@eslint-community/eslint-utils@4.4.0':
    -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    -
    -  '@eslint-community/regexpp@4.10.0':
    -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    -
    -  '@eslint/eslintrc@2.1.4':
    -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  '@eslint/js@8.57.0':
    -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  '@fortawesome/fontawesome-common-types@6.5.1':
    -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/fontawesome-svg-core@6.5.1':
    -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/free-solid-svg-icons@6.5.1':
    -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    -    engines: {node: '>=6'}
    -
    -  '@fortawesome/react-fontawesome@0.2.0':
    -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    -    peerDependencies:
    -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    -      react: '>=16.3 || 18'
    -
    -  '@gar/promisify@1.1.3':
    -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    -
    -  '@gwhitney/detect-indent@7.0.1':
    -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    -    engines: {node: '>=12.20'}
    -
    -  '@hapi/hoek@9.3.0':
    -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    -
    -  '@hapi/topo@5.1.0':
    -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    -
    -  '@humanwhocodes/config-array@0.11.14':
    -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    -    engines: {node: '>=10.10.0'}
    -
    -  '@humanwhocodes/module-importer@1.0.1':
    -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    -    engines: {node: '>=12.22'}
    -
    -  '@humanwhocodes/object-schema@2.0.2':
    -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    -
    -  '@isaacs/cliui@8.0.2':
    -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    -    engines: {node: '>=12'}
    -
    -  '@isaacs/string-locale-compare@1.1.0':
    -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    -
    -  '@istanbuljs/load-nyc-config@1.1.0':
    -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    -    engines: {node: '>=8'}
    -
    -  '@istanbuljs/schema@0.1.3':
    -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    -    engines: {node: '>=8'}
    -
    -  '@jest/console@29.7.0':
    -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/core@29.7.0':
    -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  '@jest/environment@29.7.0':
    -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/expect-utils@29.7.0':
    -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/expect@29.7.0':
    -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/fake-timers@29.7.0':
    -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/globals@29.7.0':
    -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/reporters@29.7.0':
    -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  '@jest/schemas@29.6.3':
    -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/source-map@29.6.3':
    -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/test-result@29.7.0':
    -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/test-sequencer@29.7.0':
    -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/transform@29.7.0':
    -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jest/types@29.6.3':
    -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  '@jridgewell/gen-mapping@0.3.5':
    -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/resolve-uri@3.1.2':
    -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/set-array@1.2.1':
    -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    -    engines: {node: '>=6.0.0'}
    -
    -  '@jridgewell/source-map@0.3.6':
    -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    -
    -  '@jridgewell/sourcemap-codec@1.4.15':
    -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    -
    -  '@jridgewell/trace-mapping@0.3.25':
    -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    -
    -  '@jridgewell/trace-mapping@0.3.9':
    -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    -
    -  '@leichtgewicht/ip-codec@2.0.4':
    -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    -
    -  '@mdx-js/loader@3.0.1':
    -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    -    peerDependencies:
    -      webpack: '>=5'
    -
    -  '@mdx-js/mdx@3.0.1':
    -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    -
    -  '@mdx-js/react@3.0.1':
    -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    -    peerDependencies:
    -      '@types/react': '>=16'
    -      react: '>=16 || 18'
    -
    -  '@msgpack/msgpack@2.8.0':
    -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    -    engines: {node: '>= 10'}
    -
    -  '@next/env@14.1.4':
    -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    -
    -  '@next/eslint-plugin-next@14.1.4':
    -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    -
    -  '@next/mdx@14.1.4':
    -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    -    peerDependencies:
    -      '@mdx-js/loader': '>=0.15.0'
    -      '@mdx-js/react': '>=0.15.0'
    -    peerDependenciesMeta:
    -      '@mdx-js/loader':
    -        optional: true
    -      '@mdx-js/react':
    -        optional: true
    -
    -  '@next/swc-darwin-arm64@14.1.4':
    -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [darwin]
    -
    -  '@next/swc-darwin-x64@14.1.4':
    -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [darwin]
    -
    -  '@next/swc-linux-arm64-gnu@14.1.4':
    -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@next/swc-linux-arm64-musl@14.1.4':
    -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -
    -  '@next/swc-linux-x64-gnu@14.1.4':
    -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@next/swc-linux-x64-musl@14.1.4':
    -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -
    -  '@next/swc-win32-arm64-msvc@14.1.4':
    -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [win32]
    -
    -  '@next/swc-win32-ia32-msvc@14.1.4':
    -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    -    engines: {node: '>= 10'}
    -    cpu: [ia32]
    -    os: [win32]
    -
    -  '@next/swc-win32-x64-msvc@14.1.4':
    -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [win32]
    -
    -  '@nodelib/fs.scandir@2.1.5':
    -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    -    engines: {node: '>= 8'}
    -
    -  '@nodelib/fs.stat@2.0.5':
    -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    -    engines: {node: '>= 8'}
    -
    -  '@nodelib/fs.walk@1.2.8':
    -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    -    engines: {node: '>= 8'}
    -
    -  '@npmcli/arborist@4.3.1':
    -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    -
    -  '@npmcli/fs@1.1.1':
    -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    -
    -  '@npmcli/fs@2.1.2':
    -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  '@npmcli/fs@3.1.0':
    -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/git@2.1.0':
    -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    -
    -  '@npmcli/git@4.1.0':
    -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/installed-package-contents@1.0.7':
    -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    -    engines: {node: '>= 10'}
    -    hasBin: true
    -
    -  '@npmcli/installed-package-contents@2.0.2':
    -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  '@npmcli/map-workspaces@2.0.4':
    -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  '@npmcli/metavuln-calculator@2.0.0':
    -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -
    -  '@npmcli/move-file@1.1.2':
    -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    -    engines: {node: '>=10'}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  '@npmcli/move-file@2.0.1':
    -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  '@npmcli/name-from-folder@1.0.1':
    -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    -
    -  '@npmcli/node-gyp@1.0.3':
    -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    -
    -  '@npmcli/node-gyp@3.0.0':
    -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/package-json@1.0.1':
    -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    -
    -  '@npmcli/promise-spawn@1.3.2':
    -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    -
    -  '@npmcli/promise-spawn@6.0.2':
    -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@npmcli/run-script@2.0.0':
    -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    -
    -  '@npmcli/run-script@6.0.2':
    -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@octokit/auth-token@2.5.0':
    -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    -
    -  '@octokit/core@3.6.0':
    -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    -
    -  '@octokit/endpoint@6.0.12':
    -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    -
    -  '@octokit/graphql@4.8.0':
    -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    -
    -  '@octokit/openapi-types@12.11.0':
    -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    -
    -  '@octokit/plugin-paginate-rest@2.21.3':
    -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    -    peerDependencies:
    -      '@octokit/core': '>=2'
    -
    -  '@octokit/plugin-request-log@1.0.4':
    -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    -
    -  '@octokit/plugin-rest-endpoint-methods@5.16.2':
    -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    -
    -  '@octokit/request-error@2.1.0':
    -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    -
    -  '@octokit/request@5.6.3':
    -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    -
    -  '@octokit/rest@18.12.0':
    -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    -
    -  '@octokit/types@6.41.0':
    -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    -
    -  '@pkgjs/parseargs@0.11.0':
    -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    -    engines: {node: '>=14'}
    -
    -  '@pnpm/cli-meta@5.0.1':
    -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/cli-utils@2.0.9':
    -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/config.env-replace@1.1.0':
    -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/config@18.4.0':
    -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@6.2.0':
    -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    -    engines: {node: '>=14.6'}
    -
    -  '@pnpm/constants@7.1.0':
    -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@7.1.1':
    -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/constants@8.0.0':
    -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/core-loggers@10.0.0':
    -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/core-loggers@9.0.1':
    -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/crypto.base32-hash@3.0.0':
    -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/dedupe.issues-renderer@1.0.0':
    -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/dedupe.types@1.0.0':
    -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/default-reporter@12.2.3':
    -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/dependency-path@3.0.0':
    -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/error@4.0.1':
    -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    -    engines: {node: '>=14.6'}
    -
    -  '@pnpm/error@5.0.1':
    -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/error@5.0.3':
    -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/error@6.0.0':
    -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/fetch@8.0.0':
    -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/fetcher-base@14.0.1':
    -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/fetching-types@6.0.0':
    -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/find-workspace-dir@6.0.3':
    -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/find-workspace-packages@6.0.9':
    -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/fs.find-packages@2.0.1':
    -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/git-resolver@9.0.1':
    -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/git-utils@1.0.0':
    -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/git-utils@2.0.0':
    -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/graceful-fs@3.0.0':
    -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/hooks.types@1.0.1':
    -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/hosted-git-info@1.0.0':
    -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    -    engines: {node: '>=10'}
    -
    -  '@pnpm/lockfile-file@9.0.2':
    -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/lockfile-types@5.1.0':
    -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/lockfile-types@6.0.0':
    -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/lockfile-utils@10.0.0':
    -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/logger@5.0.0':
    -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    -    engines: {node: '>=12.17'}
    -
    -  '@pnpm/manifest-utils@5.0.1':
    -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/matcher@5.0.0':
    -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/merge-lockfile-changes@6.0.0':
    -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/meta-updater@1.0.0':
    -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    -    engines: {node: '>=10.12'}
    -    hasBin: true
    -
    -  '@pnpm/network.agent@1.0.1':
    -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.ca-file@1.0.2':
    -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.config@1.0.1':
    -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/network.proxy-agent@1.0.1':
    -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/node-fetch@1.0.0':
    -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    -    engines: {node: ^10.17 || >=12.3}
    -
    -  '@pnpm/npm-conf@2.2.0':
    -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    -    engines: {node: '>=12'}
    -
    -  '@pnpm/npm-conf@2.2.2':
    -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    -    engines: {node: '>=12'}
    -
    -  '@pnpm/package-is-installable@8.0.2':
    -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/pick-fetcher@3.0.0':
    -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/pnpmfile@5.0.7':
    -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    -
    -  '@pnpm/ramda@0.28.1':
    -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    -
    -  '@pnpm/read-project-manifest@5.0.1':
    -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/render-peer-issues@4.0.1':
    -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/resolver-base@10.0.1':
    -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/resolver-base@12.0.0':
    -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/store-controller-types@15.0.1':
    -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/text.comments-parser@2.0.0':
    -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/types@10.0.0':
    -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/types@9.1.0':
    -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/types@9.4.2':
    -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    -    engines: {node: '>=16.14'}
    -
    -  '@pnpm/util.lex-comparator@1.0.0':
    -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    -    engines: {node: '>=12.22.0'}
    -
    -  '@pnpm/util.lex-comparator@3.0.0':
    -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    -    engines: {node: '>=18.12'}
    -
    -  '@pnpm/write-project-manifest@5.0.1':
    -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    -    engines: {node: '>=16.14'}
    -
    -  '@polka/url@1.0.0-next.25':
    -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    -
    -  '@rushstack/eslint-patch@1.8.0':
    -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    -
    -  '@sideway/address@4.1.5':
    -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    -
    -  '@sideway/formula@3.0.1':
    -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    -
    -  '@sideway/pinpoint@2.0.0':
    -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    -
    -  '@sigstore/bundle@1.1.0':
    -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/protobuf-specs@0.2.1':
    -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/sign@1.0.0':
    -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sigstore/tuf@1.0.3':
    -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@sinclair/typebox@0.27.8':
    -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    -
    -  '@sindresorhus/is@4.6.0':
    -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    -    engines: {node: '>=10'}
    -
    -  '@sindresorhus/is@5.6.0':
    -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    -    engines: {node: '>=14.16'}
    -
    -  '@sinonjs/commons@2.0.0':
    -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    -
    -  '@sinonjs/commons@3.0.1':
    -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    -
    -  '@sinonjs/fake-timers@10.3.0':
    -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    -
    -  '@sinonjs/fake-timers@11.2.2':
    -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    -
    -  '@sinonjs/samsam@8.0.0':
    -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    -
    -  '@sinonjs/text-encoding@0.7.2':
    -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    -
    -  '@slorber/remark-comment@1.0.0':
    -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    -
    -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
    -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
    -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
    -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
    -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
    -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
    -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
    -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
    -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
    -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
    -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
    -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
    -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-svg-component@6.5.1':
    -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-plugin-transform-svg-component@8.0.0':
    -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-preset@6.5.1':
    -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/babel-preset@8.1.0':
    -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    -
    -  '@svgr/core@6.5.1':
    -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/core@8.1.0':
    -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/hast-util-to-babel-ast@6.5.1':
    -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/hast-util-to-babel-ast@8.0.0':
    -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    -    engines: {node: '>=14'}
    -
    -  '@svgr/plugin-jsx@6.5.1':
    -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': ^6.0.0
    -
    -  '@svgr/plugin-jsx@8.1.0':
    -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/plugin-svgo@6.5.1':
    -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/plugin-svgo@8.1.0':
    -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    -
    -  '@svgr/webpack@6.5.1':
    -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    -    engines: {node: '>=10'}
    -
    -  '@svgr/webpack@8.1.0':
    -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    -    engines: {node: '>=14'}
    -
    -  '@swc/helpers@0.5.2':
    -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    -
    -  '@szmarczak/http-timer@5.0.1':
    -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    -    engines: {node: '>=14.16'}
    -
    -  '@testing-library/dom@9.3.4':
    -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    -    engines: {node: '>=14'}
    -
    -  '@testing-library/react@14.2.2':
    -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    -
    -  '@tootallnate/once@1.1.2':
    -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    -    engines: {node: '>= 6'}
    -
    -  '@tootallnate/once@2.0.0':
    -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    -    engines: {node: '>= 10'}
    -
    -  '@trysound/sax@0.2.0':
    -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    -    engines: {node: '>=10.13.0'}
    -
    -  '@tsconfig/docusaurus@2.0.2':
    -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    -
    -  '@tsconfig/node10@1.0.10':
    -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    -
    -  '@tsconfig/node12@1.0.11':
    -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    -
    -  '@tsconfig/node14@1.0.3':
    -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    -
    -  '@tsconfig/node16@1.0.4':
    -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    -
    -  '@tufjs/canonical-json@1.0.0':
    -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@tufjs/models@1.0.4':
    -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  '@types/acorn@4.0.6':
    -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    -
    -  '@types/aria-query@5.0.4':
    -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    -
    -  '@types/babel__core@7.20.5':
    -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    -
    -  '@types/babel__generator@7.6.8':
    -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    -
    -  '@types/babel__template@7.4.4':
    -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    -
    -  '@types/babel__traverse@7.20.5':
    -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    -
    -  '@types/body-parser@1.19.5':
    -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    -
    -  '@types/bonjour@3.5.13':
    -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    -
    -  '@types/chai@4.3.14':
    -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    -
    -  '@types/connect-history-api-fallback@1.5.4':
    -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    -
    -  '@types/connect@3.4.38':
    -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    -
    -  '@types/debug@4.1.12':
    -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    -
    -  '@types/eslint-scope@3.7.7':
    -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    -
    -  '@types/eslint@8.56.6':
    -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    -
    -  '@types/estree-jsx@1.0.5':
    -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    -
    -  '@types/estree@1.0.5':
    -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    -
    -  '@types/expect@1.20.4':
    -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    -
    -  '@types/express-serve-static-core@4.17.43':
    -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    -
    -  '@types/express@4.17.21':
    -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    -
    -  '@types/fs-extra@11.0.4':
    -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    -
    -  '@types/glob@8.1.0':
    -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    -
    -  '@types/graceful-fs@4.1.9':
    -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    -
    -  '@types/gtag.js@0.0.12':
    -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    -
    -  '@types/hast@3.0.4':
    -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    -
    -  '@types/history@4.7.11':
    -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    -
    -  '@types/html-minifier-terser@6.1.0':
    -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    -
    -  '@types/http-cache-semantics@4.0.4':
    -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    -
    -  '@types/http-errors@2.0.4':
    -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    -
    -  '@types/http-proxy@1.17.14':
    -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    -
    -  '@types/istanbul-lib-coverage@2.0.6':
    -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    -
    -  '@types/istanbul-lib-report@3.0.3':
    -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    -
    -  '@types/istanbul-reports@3.0.4':
    -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    -
    -  '@types/jest@29.5.12':
    -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    -
    -  '@types/js-cookie@2.2.7':
    -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    -
    -  '@types/js-yaml@4.0.9':
    -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    -
    -  '@types/jsdom@20.0.1':
    -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    -
    -  '@types/json-schema@7.0.15':
    -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    -
    -  '@types/json5@0.0.29':
    -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    -
    -  '@types/jsonfile@6.1.4':
    -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    -
    -  '@types/lodash@4.17.0':
    -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    -
    -  '@types/mdast@4.0.3':
    -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    -
    -  '@types/mdx-js__react@1.5.8':
    -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    -
    -  '@types/mdx@2.0.12':
    -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    -
    -  '@types/mime@1.3.5':
    -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    -
    -  '@types/mime@3.0.4':
    -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    -
    -  '@types/minimatch@3.0.5':
    -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    -
    -  '@types/minimatch@5.1.2':
    -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    -
    -  '@types/minimist@1.2.5':
    -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    -
    -  '@types/mocha@10.0.6':
    -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    -
    -  '@types/moo@0.5.9':
    -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    -
    -  '@types/ms@0.7.34':
    -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    -
    -  '@types/nearley@2.11.5':
    -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    -
    -  '@types/node-forge@1.3.11':
    -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    -
    -  '@types/node@15.14.9':
    -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    -
    -  '@types/node@17.0.45':
    -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    -
    -  '@types/node@18.18.2':
    -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    -
    -  '@types/normalize-package-data@2.4.4':
    -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    -
    -  '@types/normalize-path@3.0.2':
    -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    -
    -  '@types/parse-json@4.0.2':
    -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    -
    -  '@types/prismjs@1.26.3':
    -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    -
    -  '@types/prop-types@15.7.12':
    -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    -
    -  '@types/qs@6.9.14':
    -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    -
    -  '@types/range-parser@1.2.7':
    -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    -
    -  '@types/react-dom@18.2.22':
    -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    -
    -  '@types/react-helmet@6.1.11':
    -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    -
    -  '@types/react-router-config@5.0.11':
    -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    -
    -  '@types/react-router-dom@5.3.3':
    -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    -
    -  '@types/react-router@5.1.20':
    -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    -
    -  '@types/react@18.2.71':
    -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    -
    -  '@types/retry@0.12.0':
    -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    -
    -  '@types/retry@0.12.2':
    -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    -
    -  '@types/sax@1.2.7':
    -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    -
    -  '@types/sbd@1.0.5':
    -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    -
    -  '@types/scheduler@0.23.0':
    -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    -
    -  '@types/semver@7.5.8':
    -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    -
    -  '@types/send@0.17.4':
    -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    -
    -  '@types/serve-index@1.9.4':
    -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    -
    -  '@types/serve-static@1.15.5':
    -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    -
    -  '@types/sinon@17.0.3':
    -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    -
    -  '@types/sinonjs__fake-timers@8.1.5':
    -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    -
    -  '@types/sockjs@0.3.36':
    -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    -
    -  '@types/ssri@7.1.5':
    -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    -
    -  '@types/stack-utils@2.0.3':
    -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    -
    -  '@types/tinycolor2@1.4.6':
    -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    -
    -  '@types/tough-cookie@4.0.5':
    -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    -
    -  '@types/triple-beam@1.3.5':
    -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    -
    -  '@types/unist@2.0.10':
    -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    -
    -  '@types/unist@3.0.2':
    -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    -
    -  '@types/uuid@9.0.8':
    -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    -
    -  '@types/vinyl@2.0.11':
    -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    -
    -  '@types/vscode@1.75.1':
    -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    -
    -  '@types/webpack@5.28.5':
    -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    -
    -  '@types/ws@8.5.10':
    -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    -
    -  '@types/yargs-parser@21.0.3':
    -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    -
    -  '@types/yargs@17.0.32':
    -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    -
    -  '@typescript-eslint/eslint-plugin@7.4.0':
    -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/parser': ^7.0.0
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/parser@6.21.0':
    -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      eslint: ^7.0.0 || ^8.0.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/parser@7.4.0':
    -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/scope-manager@6.21.0':
    -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/scope-manager@7.4.0':
    -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@typescript-eslint/type-utils@7.4.0':
    -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/types@6.21.0':
    -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/types@7.4.0':
    -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@typescript-eslint/typescript-estree@6.21.0':
    -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/typescript-estree@7.4.0':
    -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  '@typescript-eslint/utils@7.4.0':
    -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -
    -  '@typescript-eslint/visitor-keys@6.21.0':
    -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -
    -  '@typescript-eslint/visitor-keys@7.4.0':
    -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -
    -  '@ungap/structured-clone@1.2.0':
    -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    -
    -  '@vscode/test-electron@2.3.9':
    -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    -    engines: {node: '>=16'}
    -
    -  '@webassemblyjs/ast@1.12.1':
    -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    -
    -  '@webassemblyjs/floating-point-hex-parser@1.11.6':
    -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    -
    -  '@webassemblyjs/helper-api-error@1.11.6':
    -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    -
    -  '@webassemblyjs/helper-buffer@1.12.1':
    -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    -
    -  '@webassemblyjs/helper-numbers@1.11.6':
    -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    -
    -  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
    -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    -
    -  '@webassemblyjs/helper-wasm-section@1.12.1':
    -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    -
    -  '@webassemblyjs/ieee754@1.11.6':
    -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    -
    -  '@webassemblyjs/leb128@1.11.6':
    -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    -
    -  '@webassemblyjs/utf8@1.11.6':
    -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    -
    -  '@webassemblyjs/wasm-edit@1.12.1':
    -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    -
    -  '@webassemblyjs/wasm-gen@1.12.1':
    -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    -
    -  '@webassemblyjs/wasm-opt@1.12.1':
    -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    -
    -  '@webassemblyjs/wasm-parser@1.12.1':
    -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    -
    -  '@webassemblyjs/wast-printer@1.12.1':
    -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    -
    -  '@webpack-cli/configtest@2.1.1':
    -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -
    -  '@webpack-cli/generators@3.0.7':
    -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      prettier: '*'
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -    peerDependenciesMeta:
    -      prettier:
    -        optional: true
    -
    -  '@webpack-cli/info@2.0.2':
    -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -
    -  '@webpack-cli/serve@2.0.5':
    -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      webpack-dev-server:
    -        optional: true
    -
    -  '@xobotyi/scrollbar-width@1.9.5':
    -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    -
    -  '@xtuc/ieee754@1.2.0':
    -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    -
    -  '@xtuc/long@4.2.2':
    -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    -
    -  '@zkochan/js-yaml@0.0.7':
    -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    -    hasBin: true
    -
    -  '@zkochan/retry@0.2.0':
    -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    -    engines: {node: '>=10'}
    -
    -  '@zkochan/rimraf@2.1.3':
    -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    -    engines: {node: '>=12.10'}
    -
    -  '@zkochan/which@2.0.3':
    -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    -
    -  abab@2.0.6:
    -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    -    deprecated: Use your platform's native atob() and btoa() methods instead
    -
    -  abbrev@1.1.1:
    -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    -
    -  abort-controller@3.0.0:
    -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    -    engines: {node: '>=6.5'}
    -
    -  accepts@1.3.8:
    -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    -    engines: {node: '>= 0.6'}
    -
    -  acorn-globals@7.0.1:
    -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    -
    -  acorn-import-assertions@1.9.0:
    -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    -    peerDependencies:
    -      acorn: ^8
    -
    -  acorn-jsx@5.3.2:
    -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    -    peerDependencies:
    -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    -
    -  acorn-walk@8.3.2:
    -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    -    engines: {node: '>=0.4.0'}
    -
    -  acorn@8.11.3:
    -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    -    engines: {node: '>=0.4.0'}
    -    hasBin: true
    -
    -  address@1.2.2:
    -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    -    engines: {node: '>= 10.0.0'}
    -
    -  agent-base@6.0.2:
    -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    -    engines: {node: '>= 6.0.0'}
    -
    -  agentkeepalive@4.2.1:
    -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  agentkeepalive@4.5.0:
    -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  aggregate-error@3.1.0:
    -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    -    engines: {node: '>=8'}
    -
    -  ajv-formats@2.1.1:
    -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    -    peerDependencies:
    -      ajv: ^8.0.0
    -    peerDependenciesMeta:
    -      ajv:
    -        optional: true
    -
    -  ajv-keywords@3.5.2:
    -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    -    peerDependencies:
    -      ajv: ^6.9.1
    -
    -  ajv-keywords@5.1.0:
    -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    -    peerDependencies:
    -      ajv: ^8.8.2
    -
    -  ajv@6.12.6:
    -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    -
    -  ajv@8.12.0:
    -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    -
    -  algoliasearch-helper@3.16.3:
    -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    -    peerDependencies:
    -      algoliasearch: '>= 3.1 < 6'
    -
    -  algoliasearch@4.22.1:
    -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    -
    -  ansi-align@3.0.1:
    -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    -
    -  ansi-colors@4.1.1:
    -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    -    engines: {node: '>=6'}
    -
    -  ansi-colors@4.1.3:
    -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    -    engines: {node: '>=6'}
    -
    -  ansi-diff@1.1.1:
    -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    -
    -  ansi-escapes@4.3.2:
    -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    -    engines: {node: '>=8'}
    -
    -  ansi-html-community@0.0.8:
    -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    -    engines: {'0': node >= 0.8.0}
    -    hasBin: true
    -
    -  ansi-regex@3.0.1:
    -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    -    engines: {node: '>=4'}
    -
    -  ansi-regex@5.0.1:
    -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    -    engines: {node: '>=8'}
    -
    -  ansi-regex@6.0.1:
    -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    -    engines: {node: '>=12'}
    -
    -  ansi-split@1.0.1:
    -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    -
    -  ansi-styles@3.2.1:
    -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    -    engines: {node: '>=4'}
    -
    -  ansi-styles@4.3.0:
    -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    -    engines: {node: '>=8'}
    -
    -  ansi-styles@5.2.0:
    -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    -    engines: {node: '>=10'}
    -
    -  ansi-styles@6.2.1:
    -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    -    engines: {node: '>=12'}
    -
    -  any-promise@1.3.0:
    -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    -
    -  anymatch@3.1.3:
    -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    -    engines: {node: '>= 8'}
    -
    -  aproba@2.0.0:
    -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    -
    -  archy@1.0.0:
    -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    -
    -  are-we-there-yet@2.0.0:
    -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    -    engines: {node: '>=10'}
    -
    -  are-we-there-yet@3.0.1:
    -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  arg@4.1.3:
    -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    -
    -  arg@5.0.2:
    -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    -
    -  argparse@1.0.10:
    -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    -
    -  argparse@2.0.1:
    -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    -
    -  aria-query@5.1.3:
    -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    -
    -  aria-query@5.3.0:
    -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    -
    -  array-buffer-byte-length@1.0.1:
    -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    -    engines: {node: '>= 0.4'}
    -
    -  array-differ@3.0.0:
    -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    -    engines: {node: '>=8'}
    -
    -  array-flatten@1.1.1:
    -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    -
    -  array-includes@3.1.8:
    -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array-union@2.1.0:
    -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    -    engines: {node: '>=8'}
    -
    -  array.prototype.findlast@1.2.5:
    -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.findlastindex@1.2.5:
    -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.flat@1.3.2:
    -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.flatmap@1.3.2:
    -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  array.prototype.toreversed@1.1.2:
    -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    -
    -  array.prototype.tosorted@1.1.3:
    -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    -
    -  arraybuffer.prototype.slice@1.0.3:
    -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    -    engines: {node: '>= 0.4'}
    -
    -  arrify@1.0.1:
    -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  arrify@2.0.1:
    -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    -    engines: {node: '>=8'}
    -
    -  as-table@1.0.55:
    -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    -
    -  asap@2.0.6:
    -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    -
    -  assertion-error@2.0.1:
    -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    -    engines: {node: '>=12'}
    -
    -  ast-types-flow@0.0.8:
    -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    -
    -  astring@1.8.6:
    -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    -    hasBin: true
    -
    -  async@2.6.4:
    -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    -
    -  async@3.2.5:
    -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    -
    -  asynckit@0.4.0:
    -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    -
    -  at-least-node@1.0.0:
    -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  autoprefixer@10.4.19:
    -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    hasBin: true
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  available-typed-arrays@1.0.7:
    -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  axe-core@4.7.0:
    -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    -    engines: {node: '>=4'}
    -
    -  axobject-query@3.2.1:
    -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    -
    -  babel-jest@29.7.0:
    -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.8.0
    -
    -  babel-loader@9.1.3:
    -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -      webpack: '>=5'
    -
    -  babel-plugin-dynamic-import-node@2.3.3:
    -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    -
    -  babel-plugin-istanbul@6.1.1:
    -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    -    engines: {node: '>=8'}
    -
    -  babel-plugin-jest-hoist@29.6.3:
    -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  babel-plugin-polyfill-corejs2@0.4.10:
    -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-plugin-polyfill-corejs3@0.10.4:
    -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-plugin-polyfill-regenerator@0.6.1:
    -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    -
    -  babel-preset-current-node-syntax@1.0.1:
    -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  babel-preset-jest@29.6.3:
    -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    -
    -  bail@2.0.2:
    -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    -
    -  balanced-match@1.0.2:
    -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    -
    -  base64-js@1.5.1:
    -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    -
    -  basic-auth@2.0.1:
    -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    -    engines: {node: '>= 0.8'}
    -
    -  batch@0.6.1:
    -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    -
    -  before-after-hook@2.2.3:
    -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    -
    -  better-path-resolve@1.0.0:
    -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    -    engines: {node: '>=4'}
    -
    -  big.js@5.2.2:
    -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    -
    -  bin-links@3.0.3:
    -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  binary-extensions@2.3.0:
    -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    -    engines: {node: '>=8'}
    -
    -  binaryextensions@4.19.0:
    -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    -    engines: {node: '>=0.8'}
    -
    -  bl@4.1.0:
    -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    -
    -  body-parser@1.20.2:
    -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    -
    -  bole@5.0.11:
    -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    -
    -  bonjour-service@1.2.1:
    -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    -
    -  boolbase@1.0.0:
    -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    -
    -  boxen@5.1.2:
    -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    -    engines: {node: '>=10'}
    -
    -  boxen@6.2.1:
    -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  boxen@7.1.1:
    -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    -    engines: {node: '>=14.16'}
    -
    -  brace-expansion@1.1.11:
    -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    -
    -  brace-expansion@2.0.1:
    -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    -
    -  braces@3.0.2:
    -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    -    engines: {node: '>=8'}
    -
    -  browser-stdout@1.3.1:
    -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    -
    -  browserslist@4.23.0:
    -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    -    hasBin: true
    -
    -  bs-logger@0.2.6:
    -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    -    engines: {node: '>= 6'}
    -
    -  bser@2.1.1:
    -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    -
    -  buffer-from@1.1.2:
    -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    -
    -  buffer@5.7.1:
    -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    -
    -  buffer@6.0.3:
    -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    -
    -  builtin-modules@3.3.0:
    -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    -    engines: {node: '>=6'}
    -
    -  builtins@1.0.3:
    -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    -
    -  builtins@5.0.1:
    -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    -
    -  bundle-name@4.1.0:
    -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    -    engines: {node: '>=18'}
    -
    -  busboy@1.6.0:
    -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    -    engines: {node: '>=10.16.0'}
    -
    -  bytes@3.0.0:
    -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    -    engines: {node: '>= 0.8'}
    -
    -  bytes@3.1.2:
    -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    -    engines: {node: '>= 0.8'}
    -
    -  cacache@15.3.0:
    -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    -    engines: {node: '>= 10'}
    -
    -  cacache@16.1.3:
    -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  cacache@17.1.4:
    -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  cacheable-lookup@7.0.0:
    -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    -    engines: {node: '>=14.16'}
    -
    -  cacheable-request@10.2.14:
    -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    -    engines: {node: '>=14.16'}
    -
    -  call-bind@1.0.7:
    -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    -    engines: {node: '>= 0.4'}
    -
    -  callsites@3.1.0:
    -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    -    engines: {node: '>=6'}
    -
    -  camel-case@4.1.2:
    -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    -
    -  camelcase-css@2.0.1:
    -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    -    engines: {node: '>= 6'}
    -
    -  camelcase-keys@6.2.2:
    -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    -    engines: {node: '>=8'}
    -
    -  camelcase-keys@7.0.2:
    -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    -    engines: {node: '>=12'}
    -
    -  camelcase@5.3.1:
    -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    -    engines: {node: '>=6'}
    -
    -  camelcase@6.3.0:
    -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    -    engines: {node: '>=10'}
    -
    -  camelcase@7.0.1:
    -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    -    engines: {node: '>=14.16'}
    -
    -  can-write-to-dir@1.1.1:
    -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    -    engines: {node: '>=10.13'}
    -
    -  caniuse-api@3.0.0:
    -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    -
    -  caniuse-lite@1.0.30001600:
    -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    -
    -  ccount@2.0.1:
    -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    -
    -  chai@5.1.0:
    -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    -    engines: {node: '>=12'}
    -
    -  chalk@2.4.2:
    -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    -    engines: {node: '>=4'}
    -
    -  chalk@4.1.2:
    -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    -    engines: {node: '>=10'}
    -
    -  chalk@5.3.0:
    -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    -
    -  char-regex@1.0.2:
    -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    -    engines: {node: '>=10'}
    -
    -  character-entities-html4@2.1.0:
    -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    -
    -  character-entities-legacy@3.0.0:
    -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    -
    -  character-entities@2.0.2:
    -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    -
    -  character-reference-invalid@2.0.1:
    -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    -
    -  chardet@0.7.0:
    -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    -
    -  check-error@2.0.0:
    -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    -    engines: {node: '>= 16'}
    -
    -  cheerio-select@2.1.0:
    -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    -
    -  cheerio@1.0.0-rc.12:
    -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    -    engines: {node: '>= 6'}
    -
    -  chokidar@3.5.3:
    -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    -    engines: {node: '>= 8.10.0'}
    -
    -  chokidar@3.6.0:
    -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    -    engines: {node: '>= 8.10.0'}
    -
    -  chownr@2.0.0:
    -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    -    engines: {node: '>=10'}
    -
    -  chrome-trace-event@1.0.3:
    -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    -    engines: {node: '>=6.0'}
    -
    -  ci-info@3.9.0:
    -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    -    engines: {node: '>=8'}
    -
    -  ci-info@4.0.0:
    -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    -    engines: {node: '>=8'}
    -
    -  cjs-module-lexer@1.2.3:
    -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    -
    -  clean-css@5.3.3:
    -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    -    engines: {node: '>= 10.0'}
    -
    -  clean-regexp@1.0.0:
    -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    -    engines: {node: '>=4'}
    -
    -  clean-stack@2.2.0:
    -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    -    engines: {node: '>=6'}
    -
    -  cli-boxes@2.2.1:
    -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    -    engines: {node: '>=6'}
    -
    -  cli-boxes@3.0.0:
    -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    -    engines: {node: '>=10'}
    -
    -  cli-columns@4.0.0:
    -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    -    engines: {node: '>= 10'}
    -
    -  cli-cursor@3.1.0:
    -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    -    engines: {node: '>=8'}
    -
    -  cli-spinners@2.9.2:
    -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    -    engines: {node: '>=6'}
    -
    -  cli-table3@0.6.4:
    -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    -    engines: {node: 10.* || >= 12.*}
    -
    -  cli-table@0.3.11:
    -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    -    engines: {node: '>= 0.2.0'}
    -
    -  cli-width@3.0.0:
    -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    -    engines: {node: '>= 10'}
    -
    -  client-only@0.0.1:
    -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    -
    -  cliui@7.0.4:
    -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    -
    -  cliui@8.0.1:
    -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    -    engines: {node: '>=12'}
    -
    -  clone-buffer@1.0.0:
    -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    -    engines: {node: '>= 0.10'}
    -
    -  clone-deep@4.0.1:
    -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    -    engines: {node: '>=6'}
    -
    -  clone-stats@1.0.0:
    -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    -
    -  clone@1.0.4:
    -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    -    engines: {node: '>=0.8'}
    -
    -  clone@2.1.2:
    -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    -    engines: {node: '>=0.8'}
    -
    -  cloneable-readable@1.1.3:
    -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    -
    -  clsx@2.1.0:
    -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    -    engines: {node: '>=6'}
    -
    -  cmd-shim@5.0.0:
    -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  co@4.6.0:
    -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    -
    -  collapse-white-space@2.1.0:
    -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    -
    -  collect-v8-coverage@1.0.2:
    -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    -
    -  color-convert@1.9.3:
    -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    -
    -  color-convert@2.0.1:
    -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    -    engines: {node: '>=7.0.0'}
    -
    -  color-name@1.1.3:
    -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    -
    -  color-name@1.1.4:
    -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    -
    -  color-string@1.9.1:
    -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    -
    -  color-support@1.1.3:
    -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    -    hasBin: true
    -
    -  color@3.2.1:
    -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    -
    -  colord@2.9.3:
    -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    -
    -  colorette@2.0.20:
    -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    -
    -  colors@1.0.3:
    -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    -    engines: {node: '>=0.1.90'}
    -
    -  colorspace@1.1.4:
    -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    -
    -  combine-promises@1.2.0:
    -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    -    engines: {node: '>=10'}
    -
    -  combined-stream@1.0.8:
    -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    -    engines: {node: '>= 0.8'}
    -
    -  comma-separated-tokens@2.0.3:
    -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    -
    -  commander@10.0.1:
    -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    -    engines: {node: '>=14'}
    -
    -  commander@11.1.0:
    -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    -    engines: {node: '>=16'}
    -
    -  commander@2.20.3:
    -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    -
    -  commander@4.1.1:
    -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    -    engines: {node: '>= 6'}
    -
    -  commander@5.1.0:
    -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    -    engines: {node: '>= 6'}
    -
    -  commander@7.1.0:
    -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    -    engines: {node: '>= 10'}
    -
    -  commander@7.2.0:
    -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    -    engines: {node: '>= 10'}
    -
    -  commander@8.3.0:
    -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    -    engines: {node: '>= 12'}
    -
    -  common-ancestor-path@1.0.1:
    -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    -
    -  common-path-prefix@3.0.0:
    -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    -
    -  commondir@1.0.1:
    -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    -
    -  compressible@2.0.18:
    -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    -    engines: {node: '>= 0.6'}
    -
    -  compression@1.7.4:
    -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  comver-to-semver@1.0.0:
    -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    -    engines: {node: '>=12.17'}
    -
    -  concat-map@0.0.1:
    -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    -
    -  config-chain@1.1.13:
    -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    -
    -  configstore@6.0.0:
    -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    -    engines: {node: '>=12'}
    -
    -  connect-history-api-fallback@2.0.0:
    -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    -    engines: {node: '>=0.8'}
    -
    -  consola@2.15.3:
    -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    -
    -  console-control-strings@1.1.0:
    -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    -
    -  content-disposition@0.5.2:
    -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    -    engines: {node: '>= 0.6'}
    -
    -  content-disposition@0.5.4:
    -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  content-type@1.0.5:
    -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    -    engines: {node: '>= 0.6'}
    -
    -  convert-source-map@2.0.0:
    -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    -
    -  cookie-signature@1.0.6:
    -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    -
    -  cookie@0.6.0:
    -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    -    engines: {node: '>= 0.6'}
    -
    -  copy-text-to-clipboard@3.2.0:
    -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    -    engines: {node: '>=12'}
    -
    -  copy-to-clipboard@3.3.3:
    -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    -
    -  copy-webpack-plugin@11.0.0:
    -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      webpack: ^5.1.0
    -
    -  core-js-compat@3.36.1:
    -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    -
    -  core-js-pure@3.36.1:
    -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    -
    -  core-js@3.36.1:
    -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    -
    -  core-util-is@1.0.3:
    -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    -
    -  corser@2.0.1:
    -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  cosmiconfig@6.0.0:
    -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    -    engines: {node: '>=8'}
    -
    -  cosmiconfig@7.1.0:
    -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    -    engines: {node: '>=10'}
    -
    -  cosmiconfig@8.3.6:
    -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  cosmiconfig@9.0.0:
    -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  create-jest@29.7.0:
    -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -
    -  create-require@1.1.1:
    -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    -
    -  cross-spawn@7.0.3:
    -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    -    engines: {node: '>= 8'}
    -
    -  crypto-random-string@2.0.0:
    -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    -    engines: {node: '>=8'}
    -
    -  crypto-random-string@4.0.0:
    -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    -    engines: {node: '>=12'}
    -
    -  css-declaration-sorter@6.4.1:
    -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    peerDependencies:
    -      postcss: ^8.0.9
    -
    -  css-in-js-utils@3.1.0:
    -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    -
    -  css-loader@6.10.0:
    -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  css-minimizer-webpack-plugin@4.2.2:
    -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@parcel/css': '*'
    -      '@swc/css': '*'
    -      clean-css: '*'
    -      csso: '*'
    -      esbuild: '*'
    -      lightningcss: '*'
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@parcel/css':
    -        optional: true
    -      '@swc/css':
    -        optional: true
    -      clean-css:
    -        optional: true
    -      csso:
    -        optional: true
    -      esbuild:
    -        optional: true
    -      lightningcss:
    -        optional: true
    -
    -  css-select@4.3.0:
    -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    -
    -  css-select@5.1.0:
    -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    -
    -  css-tree@1.1.3:
    -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  css-tree@2.2.1:
    -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    -
    -  css-tree@2.3.1:
    -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    -
    -  css-what@6.1.0:
    -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    -    engines: {node: '>= 6'}
    -
    -  cssesc@3.0.0:
    -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  cssnano-preset-advanced@5.3.10:
    -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano-preset-default@5.2.14:
    -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano-utils@3.1.0:
    -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  cssnano@5.1.15:
    -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  csso@4.2.0:
    -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    -    engines: {node: '>=8.0.0'}
    -
    -  csso@5.0.5:
    -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    -
    -  cssom@0.3.8:
    -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    -
    -  cssom@0.5.0:
    -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    -
    -  cssstyle@2.3.0:
    -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    -    engines: {node: '>=8'}
    -
    -  csstype@3.1.3:
    -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    -
    -  damerau-levenshtein@1.0.8:
    -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    -
    -  dargs@7.0.0:
    -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    -    engines: {node: '>=8'}
    -
    -  data-uri-to-buffer@2.0.2:
    -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    -
    -  data-uri-to-buffer@3.0.1:
    -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    -    engines: {node: '>= 6'}
    -
    -  data-urls@3.0.2:
    -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    -    engines: {node: '>=12'}
    -
    -  data-view-buffer@1.0.1:
    -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    -    engines: {node: '>= 0.4'}
    -
    -  data-view-byte-length@1.0.1:
    -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  data-view-byte-offset@1.0.0:
    -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    -    engines: {node: '>= 0.4'}
    -
    -  dateformat@4.6.3:
    -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    -
    -  debounce@1.2.1:
    -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    -
    -  debug@2.6.9:
    -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debug@3.2.7:
    -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debug@4.3.4:
    -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    -    engines: {node: '>=6.0'}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    -
    -  debuglog@1.0.1:
    -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    -
    -  decamelize-keys@1.1.1:
    -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  decamelize@1.2.0:
    -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  decamelize@4.0.0:
    -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    -    engines: {node: '>=10'}
    -
    -  decamelize@5.0.1:
    -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    -    engines: {node: '>=10'}
    -
    -  decimal.js@10.4.3:
    -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    -
    -  decode-named-character-reference@1.0.2:
    -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    -
    -  decompress-response@6.0.0:
    -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    -    engines: {node: '>=10'}
    -
    -  dedent@1.5.1:
    -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    -    peerDependencies:
    -      babel-plugin-macros: ^3.1.0
    -    peerDependenciesMeta:
    -      babel-plugin-macros:
    -        optional: true
    -
    -  deep-eql@5.0.1:
    -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    -    engines: {node: '>=6'}
    -
    -  deep-equal@2.2.3:
    -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    -    engines: {node: '>= 0.4'}
    -
    -  deep-extend@0.6.0:
    -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    -    engines: {node: '>=4.0.0'}
    -
    -  deep-is@0.1.4:
    -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    -
    -  deepmerge@4.3.1:
    -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    -    engines: {node: '>=0.10.0'}
    -
    -  default-browser-id@5.0.0:
    -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    -    engines: {node: '>=18'}
    -
    -  default-browser@5.2.1:
    -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    -    engines: {node: '>=18'}
    -
    -  default-gateway@6.0.3:
    -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    -    engines: {node: '>= 10'}
    -
    -  defaults@1.0.4:
    -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    -
    -  defer-to-connect@2.0.1:
    -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    -    engines: {node: '>=10'}
    -
    -  define-data-property@1.1.4:
    -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    -    engines: {node: '>= 0.4'}
    -
    -  define-lazy-prop@2.0.0:
    -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    -    engines: {node: '>=8'}
    -
    -  define-lazy-prop@3.0.0:
    -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    -    engines: {node: '>=12'}
    -
    -  define-properties@1.2.1:
    -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    -    engines: {node: '>= 0.4'}
    -
    -  del@6.1.1:
    -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    -    engines: {node: '>=10'}
    -
    -  delayed-stream@1.0.0:
    -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    -    engines: {node: '>=0.4.0'}
    -
    -  delegates@1.0.0:
    -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    -
    -  depd@1.1.2:
    -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  depd@2.0.0:
    -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    -    engines: {node: '>= 0.8'}
    -
    -  deprecation@2.3.1:
    -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    -
    -  dequal@2.0.3:
    -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    -    engines: {node: '>=6'}
    -
    -  destroy@1.2.0:
    -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    -
    -  detect-indent@7.0.1:
    -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    -    engines: {node: '>=12.20'}
    -
    -  detect-libc@2.0.3:
    -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    -    engines: {node: '>=8'}
    -
    -  detect-newline@3.1.0:
    -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    -    engines: {node: '>=8'}
    -
    -  detect-node@2.1.0:
    -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    -
    -  detect-port-alt@1.1.6:
    -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    -    engines: {node: '>= 4.2.1'}
    -    hasBin: true
    -
    -  detect-port@1.5.1:
    -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    -    hasBin: true
    -
    -  devlop@1.1.0:
    -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    -
    -  dezalgo@1.0.4:
    -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    -
    -  didyoumean@1.2.2:
    -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    -
    -  diff-sequences@29.6.3:
    -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  diff@4.0.2:
    -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    -    engines: {node: '>=0.3.1'}
    -
    -  diff@5.0.0:
    -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    -    engines: {node: '>=0.3.1'}
    -
    -  diff@5.2.0:
    -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    -    engines: {node: '>=0.3.1'}
    -
    -  dir-glob@3.0.1:
    -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    -    engines: {node: '>=8'}
    -
    -  discontinuous-range@1.0.0:
    -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    -
    -  dlv@1.1.3:
    -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    -
    -  dns-packet@5.6.1:
    -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    -    engines: {node: '>=6'}
    -
    -  doctrine@2.1.0:
    -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  doctrine@3.0.0:
    -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    -    engines: {node: '>=6.0.0'}
    -
    -  dom-accessibility-api@0.5.16:
    -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    -
    -  dom-converter@0.2.0:
    -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    -
    -  dom-serializer@1.4.1:
    -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    -
    -  dom-serializer@2.0.0:
    -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    -
    -  domelementtype@2.3.0:
    -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    -
    -  domexception@4.0.0:
    -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    -    engines: {node: '>=12'}
    -    deprecated: Use your platform's native DOMException instead
    -
    -  domhandler@4.3.1:
    -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    -    engines: {node: '>= 4'}
    -
    -  domhandler@5.0.3:
    -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    -    engines: {node: '>= 4'}
    -
    -  domutils@2.8.0:
    -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    -
    -  domutils@3.1.0:
    -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    -
    -  dot-case@3.0.4:
    -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    -
    -  dot-prop@6.0.1:
    -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    -    engines: {node: '>=10'}
    -
    -  duplexer@0.1.2:
    -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    -
    -  eastasianwidth@0.2.0:
    -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    -
    -  ee-first@1.1.1:
    -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    -
    -  effect@2.0.0-next.62:
    -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    -
    -  ejs@3.1.9:
    -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    -    engines: {node: '>=0.10.0'}
    -    hasBin: true
    -
    -  electron-to-chromium@1.4.717:
    -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    -
    -  emittery@0.13.1:
    -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    -    engines: {node: '>=12'}
    -
    -  emoji-regex@8.0.0:
    -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    -
    -  emoji-regex@9.2.2:
    -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    -
    -  emojilib@2.4.0:
    -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    -
    -  emojis-list@3.0.0:
    -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    -    engines: {node: '>= 4'}
    -
    -  emoticon@4.0.1:
    -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    -
    -  enabled@2.0.0:
    -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    -
    -  encodeurl@1.0.2:
    -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    -    engines: {node: '>= 0.8'}
    -
    -  encoding@0.1.13:
    -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    -
    -  enhanced-resolve@5.16.0:
    -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    -    engines: {node: '>=10.13.0'}
    -
    -  enquirer@2.4.1:
    -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    -    engines: {node: '>=8.6'}
    -
    -  entities@2.2.0:
    -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    -
    -  entities@4.5.0:
    -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    -    engines: {node: '>=0.12'}
    -
    -  env-paths@2.2.1:
    -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    -    engines: {node: '>=6'}
    -
    -  envinfo@7.11.1:
    -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  err-code@2.0.3:
    -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    -
    -  error-ex@1.3.2:
    -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    -
    -  error-stack-parser@2.1.4:
    -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    -
    -  error@10.4.0:
    -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    -
    -  es-abstract@1.23.2:
    -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-define-property@1.0.0:
    -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-errors@1.3.0:
    -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-get-iterator@1.1.3:
    -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    -
    -  es-iterator-helpers@1.0.18:
    -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-module-lexer@1.5.0:
    -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    -
    -  es-object-atoms@1.0.0:
    -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-set-tostringtag@2.0.3:
    -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  es-shim-unscopables@1.0.2:
    -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    -
    -  es-to-primitive@1.2.1:
    -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    -    engines: {node: '>= 0.4'}
    -
    -  esbuild@0.20.2:
    -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  escalade@3.1.2:
    -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    -    engines: {node: '>=6'}
    -
    -  escape-goat@4.0.0:
    -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    -    engines: {node: '>=12'}
    -
    -  escape-html@1.0.3:
    -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    -
    -  escape-string-regexp@1.0.5:
    -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  escape-string-regexp@2.0.0:
    -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    -    engines: {node: '>=8'}
    -
    -  escape-string-regexp@4.0.0:
    -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    -    engines: {node: '>=10'}
    -
    -  escape-string-regexp@5.0.0:
    -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    -    engines: {node: '>=12'}
    -
    -  escodegen@2.1.0:
    -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    -    engines: {node: '>=6.0'}
    -    hasBin: true
    -
    -  eslint-config-next@14.1.4:
    -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    -    peerDependencies:
    -      eslint: ^7.23.0 || ^8.0.0
    -      typescript: '>=3.3.1'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  eslint-config-prettier@9.1.0:
    -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    -    hasBin: true
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    -
    -  eslint-import-resolver-node@0.3.9:
    -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    -
    -  eslint-import-resolver-typescript@3.6.1:
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    -
    -  eslint-module-utils@2.8.1:
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    -
    -  eslint-plugin-import@2.29.1:
    -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -
    -  eslint-plugin-jsx-a11y@6.8.0:
    -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    -
    -  eslint-plugin-mocha@10.4.1:
    -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    -
    -  eslint-plugin-react-hooks@4.6.0:
    -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    -
    -  eslint-plugin-react@7.34.1:
    -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    -
    -  eslint-plugin-unicorn@51.0.1:
    -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      eslint: '>=8.56.0'
    -
    -  eslint-plugin-unused-imports@3.1.0:
    -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/eslint-plugin': 6 - 7
    -      eslint: '8'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/eslint-plugin':
    -        optional: true
    -
    -  eslint-rule-composer@0.3.0:
    -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    -    engines: {node: '>=4.0.0'}
    -
    -  eslint-scope@5.1.1:
    -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    -    engines: {node: '>=8.0.0'}
    -
    -  eslint-scope@7.2.2:
    -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  eslint-utils@3.0.0:
    -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    -    peerDependencies:
    -      eslint: '>=5'
    -
    -  eslint-visitor-keys@2.1.0:
    -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    -    engines: {node: '>=10'}
    -
    -  eslint-visitor-keys@3.4.3:
    -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  eslint@8.57.0:
    -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    hasBin: true
    -
    -  espree@9.6.1:
    -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  esprima@4.0.1:
    -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  esquery@1.5.0:
    -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    -    engines: {node: '>=0.10'}
    -
    -  esrecurse@4.3.0:
    -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    -    engines: {node: '>=4.0'}
    -
    -  estraverse@4.3.0:
    -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    -    engines: {node: '>=4.0'}
    -
    -  estraverse@5.3.0:
    -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    -    engines: {node: '>=4.0'}
    -
    -  estree-util-attach-comments@3.0.0:
    -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    -
    -  estree-util-build-jsx@3.0.1:
    -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    -
    -  estree-util-is-identifier-name@3.0.0:
    -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    -
    -  estree-util-to-js@2.0.0:
    -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    -
    -  estree-util-value-to-estree@3.0.1:
    -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    -    engines: {node: '>=16.0.0'}
    -
    -  estree-util-visit@2.0.0:
    -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    -
    -  estree-walker@3.0.3:
    -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    -
    -  esutils@2.0.3:
    -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  eta@2.2.0:
    -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    -    engines: {node: '>=6.0.0'}
    -
    -  etag@1.8.1:
    -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    -    engines: {node: '>= 0.6'}
    -
    -  eval@0.1.8:
    -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    -    engines: {node: '>= 0.8'}
    -
    -  event-target-shim@5.0.1:
    -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    -    engines: {node: '>=6'}
    -
    -  eventemitter3@4.0.7:
    -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    -
    -  events@3.3.0:
    -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    -    engines: {node: '>=0.8.x'}
    -
    -  execa@5.1.1:
    -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    -    engines: {node: '>=10'}
    -
    -  exit@0.1.2:
    -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  expect@29.7.0:
    -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  exponential-backoff@3.1.1:
    -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    -
    -  express@4.19.2:
    -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    -    engines: {node: '>= 0.10.0'}
    -
    -  extend-shallow@2.0.1:
    -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    -    engines: {node: '>=0.10.0'}
    -
    -  extend@3.0.2:
    -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    -
    -  external-editor@3.1.0:
    -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    -    engines: {node: '>=4'}
    -
    -  fast-check@3.15.0:
    -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  fast-check@3.17.0:
    -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    -    engines: {node: '>=8.0.0'}
    -
    -  fast-deep-equal@3.1.3:
    -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    -
    -  fast-glob@3.3.2:
    -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    -    engines: {node: '>=8.6.0'}
    -
    -  fast-json-stable-stringify@2.1.0:
    -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    -
    -  fast-levenshtein@2.0.6:
    -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    -
    -  fast-loops@1.1.3:
    -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    -
    -  fast-safe-stringify@2.1.1:
    -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    -
    -  fast-shallow-equal@1.0.0:
    -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    -
    -  fast-url-parser@1.1.3:
    -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    -
    -  fast-xml-parser@4.3.6:
    -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    -    hasBin: true
    -
    -  fastest-levenshtein@1.0.16:
    -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    -    engines: {node: '>= 4.9.1'}
    -
    -  fastest-stable-stringify@2.0.2:
    -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    -
    -  fastq@1.17.1:
    -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    -
    -  fault@2.0.1:
    -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    -
    -  faye-websocket@0.11.4:
    -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    -    engines: {node: '>=0.8.0'}
    -
    -  fb-watchman@2.0.2:
    -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    -
    -  fecha@4.2.3:
    -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    -
    -  feed@4.2.2:
    -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    -    engines: {node: '>=0.4.0'}
    -
    -  fetch-blob@2.1.2:
    -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    -    engines: {node: ^10.17.0 || >=12.3.0}
    -    peerDependencies:
    -      domexception: '*'
    -    peerDependenciesMeta:
    -      domexception:
    -        optional: true
    -
    -  figures@3.2.0:
    -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    -    engines: {node: '>=8'}
    -
    -  file-entry-cache@6.0.1:
    -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    -
    -  file-loader@6.2.0:
    -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    -
    -  filelist@1.0.4:
    -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    -
    -  filesize@8.0.7:
    -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  fill-range@7.0.1:
    -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    -    engines: {node: '>=8'}
    -
    -  finalhandler@1.2.0:
    -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    -    engines: {node: '>= 0.8'}
    -
    -  find-cache-dir@4.0.0:
    -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    -    engines: {node: '>=14.16'}
    -
    -  find-up@3.0.0:
    -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    -    engines: {node: '>=6'}
    -
    -  find-up@4.1.0:
    -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    -    engines: {node: '>=8'}
    -
    -  find-up@5.0.0:
    -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    -    engines: {node: '>=10'}
    -
    -  find-up@6.3.0:
    -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  find-yarn-workspace-root2@1.2.16:
    -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    -
    -  first-chunk-stream@2.0.0:
    -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  flat-cache@3.2.0:
    -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    -
    -  flat@5.0.2:
    -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    -    hasBin: true
    -
    -  flatted@3.3.1:
    -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    -
    -  fn.name@1.1.0:
    -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    -
    -  follow-redirects@1.15.6:
    -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      debug: '*'
    -    peerDependenciesMeta:
    -      debug:
    -        optional: true
    -
    -  for-each@0.3.3:
    -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    -
    -  foreground-child@3.1.1:
    -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    -    engines: {node: '>=14'}
    -
    -  fork-ts-checker-webpack-plugin@6.5.3:
    -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    -    engines: {node: '>=10', yarn: '>=1.0.0'}
    -    peerDependencies:
    -      eslint: '>= 6'
    -      typescript: '>= 2.7'
    -      vue-template-compiler: '*'
    -      webpack: '>= 4'
    -    peerDependenciesMeta:
    -      eslint:
    -        optional: true
    -      vue-template-compiler:
    -        optional: true
    -
    -  form-data-encoder@2.1.4:
    -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    -    engines: {node: '>= 14.17'}
    -
    -  form-data@4.0.0:
    -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    -    engines: {node: '>= 6'}
    -
    -  format@0.2.2:
    -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    -    engines: {node: '>=0.4.x'}
    -
    -  forwarded@0.2.0:
    -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    -    engines: {node: '>= 0.6'}
    -
    -  fraction.js@4.3.7:
    -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    -
    -  fresh@0.5.2:
    -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    -    engines: {node: '>= 0.6'}
    -
    -  fs-extra@11.2.0:
    -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    -    engines: {node: '>=14.14'}
    -
    -  fs-extra@9.1.0:
    -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    -    engines: {node: '>=10'}
    -
    -  fs-minipass@2.1.0:
    -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    -    engines: {node: '>= 8'}
    -
    -  fs-minipass@3.0.3:
    -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  fs-monkey@1.0.5:
    -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    -
    -  fs.realpath@1.0.0:
    -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    -
    -  fsevents@2.3.3:
    -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    -    os: [darwin]
    -
    -  function-bind@1.1.2:
    -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    -
    -  function.prototype.name@1.1.6:
    -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    -    engines: {node: '>= 0.4'}
    -
    -  functions-have-names@1.2.3:
    -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    -
    -  gauge@3.0.2:
    -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    -    engines: {node: '>=10'}
    -
    -  gauge@4.0.4:
    -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  gensync@1.0.0-beta.2:
    -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    -    engines: {node: '>=6.9.0'}
    -
    -  get-caller-file@2.0.5:
    -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    -    engines: {node: 6.* || 8.* || >= 10.*}
    -
    -  get-func-name@2.0.2:
    -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    -
    -  get-intrinsic@1.2.4:
    -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  get-npm-tarball-url@2.1.0:
    -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    -    engines: {node: '>=12.17'}
    -
    -  get-own-enumerable-property-symbols@3.0.2:
    -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    -
    -  get-package-type@0.1.0:
    -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    -    engines: {node: '>=8.0.0'}
    -
    -  get-source@2.0.12:
    -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    -
    -  get-stream@6.0.1:
    -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    -    engines: {node: '>=10'}
    -
    -  get-symbol-description@1.0.2:
    -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    -    engines: {node: '>= 0.4'}
    -
    -  get-tsconfig@4.7.3:
    -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    -
    -  github-slugger@1.5.0:
    -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    -
    -  github-username@6.0.0:
    -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    -    engines: {node: '>=10'}
    -
    -  glob-parent@5.1.2:
    -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    -    engines: {node: '>= 6'}
    -
    -  glob-parent@6.0.2:
    -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    -    engines: {node: '>=10.13.0'}
    -
    -  glob-to-regexp@0.4.1:
    -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    -
    -  glob@10.3.10:
    -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    -
    -  glob@7.2.3:
    -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    -
    -  glob@8.1.0:
    -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    -    engines: {node: '>=12'}
    -
    -  global-dirs@3.0.1:
    -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    -    engines: {node: '>=10'}
    -
    -  global-modules@2.0.0:
    -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    -    engines: {node: '>=6'}
    -
    -  global-prefix@3.0.0:
    -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    -    engines: {node: '>=6'}
    -
    -  globals@11.12.0:
    -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    -    engines: {node: '>=4'}
    -
    -  globals@13.24.0:
    -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    -    engines: {node: '>=8'}
    -
    -  globalthis@1.0.3:
    -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    -    engines: {node: '>= 0.4'}
    -
    -  globby@11.1.0:
    -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    -    engines: {node: '>=10'}
    -
    -  globby@13.2.2:
    -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  gopd@1.0.1:
    -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    -
    -  got@12.6.1:
    -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    -    engines: {node: '>=14.16'}
    -
    -  graceful-fs@4.2.10:
    -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    -
    -  graceful-fs@4.2.11:
    -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    -
    -  graceful-git@3.1.2:
    -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    -    engines: {node: '>=10'}
    -
    -  graphemer@1.4.0:
    -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    -
    -  gray-matter@4.0.3:
    -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    -    engines: {node: '>=6.0'}
    -
    -  grouped-queue@2.0.0:
    -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    -    engines: {node: '>=8.0.0'}
    -
    -  gzip-size@6.0.0:
    -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    -    engines: {node: '>=10'}
    -
    -  handle-thing@2.0.1:
    -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    -
    -  hard-rejection@2.1.0:
    -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    -    engines: {node: '>=6'}
    -
    -  has-bigints@1.0.2:
    -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    -
    -  has-flag@3.0.0:
    -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    -    engines: {node: '>=4'}
    -
    -  has-flag@4.0.0:
    -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    -    engines: {node: '>=8'}
    -
    -  has-property-descriptors@1.0.2:
    -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    -
    -  has-proto@1.0.3:
    -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-symbols@1.0.3:
    -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-tostringtag@1.0.2:
    -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    -    engines: {node: '>= 0.4'}
    -
    -  has-unicode@2.0.1:
    -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    -
    -  has-yarn@3.0.0:
    -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  hasharray@1.1.2:
    -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    -
    -  hasown@2.0.2:
    -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  hast-util-from-parse5@8.0.1:
    -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    -
    -  hast-util-parse-selector@4.0.0:
    -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    -
    -  hast-util-raw@9.0.2:
    -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    -
    -  hast-util-to-estree@3.1.0:
    -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    -
    -  hast-util-to-jsx-runtime@2.3.0:
    -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    -
    -  hast-util-to-parse5@8.0.0:
    -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    -
    -  hast-util-whitespace@3.0.0:
    -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    -
    -  hastscript@8.0.0:
    -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    -
    -  he@1.2.0:
    -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    -    hasBin: true
    -
    -  history@4.10.1:
    -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    -
    -  hoist-non-react-statics@3.3.2:
    -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    -
    -  hosted-git-info@2.8.9:
    -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    -
    -  hosted-git-info@4.1.0:
    -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    -    engines: {node: '>=10'}
    -
    -  hosted-git-info@6.1.1:
    -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  hosted-git-info@7.0.1:
    -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    -
    -  hpack.js@2.1.6:
    -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    -
    -  html-encoding-sniffer@3.0.0:
    -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    -    engines: {node: '>=12'}
    -
    -  html-entities@2.5.2:
    -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    -
    -  html-escaper@2.0.2:
    -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    -
    -  html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  html-minifier-terser@7.2.0:
    -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    -    engines: {node: ^14.13.1 || >=16.0.0}
    -    hasBin: true
    -
    -  html-tags@3.3.1:
    -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    -    engines: {node: '>=8'}
    -
    -  html-void-elements@3.0.0:
    -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    -
    -  html-webpack-plugin@5.6.0:
    -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.20.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  htmlparser2@6.1.0:
    -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    -
    -  htmlparser2@8.0.2:
    -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    -
    -  http-cache-semantics@4.1.1:
    -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    -
    -  http-deceiver@1.2.7:
    -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    -
    -  http-errors@1.6.3:
    -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    -    engines: {node: '>= 0.6'}
    -
    -  http-errors@2.0.0:
    -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  http-parser-js@0.5.8:
    -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    -
    -  http-proxy-agent@4.0.1:
    -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    -    engines: {node: '>= 6'}
    -
    -  http-proxy-agent@5.0.0:
    -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    -    engines: {node: '>= 6'}
    -
    -  http-proxy-middleware@2.0.6:
    -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      '@types/express': ^4.17.13
    -    peerDependenciesMeta:
    -      '@types/express':
    -        optional: true
    -
    -  http-proxy@1.18.1:
    -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    -    engines: {node: '>=8.0.0'}
    -
    -  http-server@14.1.1:
    -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -
    -  http2-wrapper@2.2.1:
    -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    -    engines: {node: '>=10.19.0'}
    -
    -  https-proxy-agent@5.0.1:
    -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    -    engines: {node: '>= 6'}
    -
    -  human-signals@2.1.0:
    -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    -    engines: {node: '>=10.17.0'}
    -
    -  humanize-ms@1.2.1:
    -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    -
    -  hyphenate-style-name@1.0.4:
    -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    -
    -  iconv-lite@0.4.24:
    -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  iconv-lite@0.6.3:
    -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  icss-utils@5.1.0:
    -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  ieee754@1.2.1:
    -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    -
    -  ignore-walk@4.0.1:
    -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    -    engines: {node: '>=10'}
    -
    -  ignore-walk@6.0.4:
    -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  ignore@5.3.1:
    -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    -    engines: {node: '>= 4'}
    -
    -  image-size@1.1.1:
    -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    -    engines: {node: '>=16.x'}
    -    hasBin: true
    -
    -  immediate@3.0.6:
    -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    -
    -  immer@10.0.4:
    -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    -
    -  immer@9.0.21:
    -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    -
    -  immutability-helper@3.1.1:
    -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    -
    -  import-fresh@3.3.0:
    -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    -    engines: {node: '>=6'}
    -
    -  import-lazy@4.0.0:
    -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    -    engines: {node: '>=8'}
    -
    -  import-local@3.1.0:
    -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -
    -  imurmurhash@0.1.4:
    -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    -    engines: {node: '>=0.8.19'}
    -
    -  indent-string@4.0.0:
    -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    -    engines: {node: '>=8'}
    -
    -  indent-string@5.0.0:
    -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    -    engines: {node: '>=12'}
    -
    -  individual@3.0.0:
    -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    -
    -  infer-owner@1.0.4:
    -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    -
    -  infima@0.2.0-alpha.43:
    -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    -    engines: {node: '>=12'}
    -
    -  inflight@1.0.6:
    -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    -
    -  inherits@2.0.3:
    -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    -
    -  inherits@2.0.4:
    -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    -
    -  ini@1.3.8:
    -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    -
    -  ini@2.0.0:
    -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    -    engines: {node: '>=10'}
    -
    -  ini@3.0.1:
    -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  inline-style-parser@0.1.1:
    -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    -
    -  inline-style-parser@0.2.2:
    -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    -
    -  inline-style-prefixer@7.0.0:
    -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    -
    -  inquirer@8.2.6:
    -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    -    engines: {node: '>=12.0.0'}
    -
    -  internal-slot@1.0.7:
    -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    -    engines: {node: '>= 0.4'}
    -
    -  interpret@1.4.0:
    -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    -    engines: {node: '>= 0.10'}
    -
    -  interpret@3.1.1:
    -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    -    engines: {node: '>=10.13.0'}
    -
    -  invariant@2.2.4:
    -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    -
    -  ip-address@9.0.5:
    -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    -    engines: {node: '>= 12'}
    -
    -  ipaddr.js@1.9.1:
    -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    -    engines: {node: '>= 0.10'}
    -
    -  ipaddr.js@2.1.0:
    -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    -    engines: {node: '>= 10'}
    -
    -  is-alphabetical@2.0.1:
    -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    -
    -  is-alphanumerical@2.0.1:
    -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    -
    -  is-arguments@1.1.1:
    -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-array-buffer@3.0.4:
    -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-arrayish@0.2.1:
    -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    -
    -  is-arrayish@0.3.2:
    -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    -
    -  is-async-function@2.0.0:
    -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-bigint@1.0.4:
    -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    -
    -  is-binary-path@2.1.0:
    -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    -    engines: {node: '>=8'}
    -
    -  is-boolean-object@1.1.2:
    -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-builtin-module@3.2.1:
    -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    -    engines: {node: '>=6'}
    -
    -  is-callable@1.2.7:
    -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-ci@3.0.1:
    -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    -    hasBin: true
    -
    -  is-core-module@2.13.1:
    -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    -
    -  is-data-view@1.0.1:
    -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-date-object@1.0.5:
    -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-decimal@2.0.1:
    -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    -
    -  is-docker@2.2.1:
    -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -
    -  is-docker@3.0.0:
    -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    hasBin: true
    -
    -  is-extendable@0.1.1:
    -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-extglob@2.1.1:
    -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-finalizationregistry@1.0.2:
    -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    -
    -  is-fullwidth-code-point@3.0.0:
    -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    -    engines: {node: '>=8'}
    -
    -  is-generator-fn@2.1.0:
    -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    -    engines: {node: '>=6'}
    -
    -  is-generator-function@1.0.10:
    -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-glob@4.0.3:
    -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-hexadecimal@2.0.1:
    -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    -
    -  is-inside-container@1.0.0:
    -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    -    engines: {node: '>=14.16'}
    -    hasBin: true
    -
    -  is-installed-globally@0.4.0:
    -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    -    engines: {node: '>=10'}
    -
    -  is-interactive@1.0.0:
    -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    -    engines: {node: '>=8'}
    -
    -  is-lambda@1.0.1:
    -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    -
    -  is-map@2.0.3:
    -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-negative-zero@2.0.3:
    -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-network-error@1.1.0:
    -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    -    engines: {node: '>=16'}
    -
    -  is-npm@6.0.0:
    -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  is-number-object@1.0.7:
    -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-number@7.0.0:
    -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    -    engines: {node: '>=0.12.0'}
    -
    -  is-obj@1.0.1:
    -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-obj@2.0.0:
    -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    -    engines: {node: '>=8'}
    -
    -  is-path-cwd@2.2.0:
    -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    -    engines: {node: '>=6'}
    -
    -  is-path-inside@3.0.3:
    -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    -    engines: {node: '>=8'}
    -
    -  is-plain-obj@1.1.0:
    -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-plain-obj@2.1.0:
    -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    -    engines: {node: '>=8'}
    -
    -  is-plain-obj@3.0.0:
    -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    -    engines: {node: '>=10'}
    -
    -  is-plain-obj@4.1.0:
    -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    -    engines: {node: '>=12'}
    -
    -  is-plain-object@2.0.4:
    -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-plain-object@5.0.0:
    -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-potential-custom-element-name@1.0.1:
    -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    -
    -  is-reference@3.0.2:
    -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    -
    -  is-regex@1.1.4:
    -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-regexp@1.0.0:
    -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-root@2.1.0:
    -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    -    engines: {node: '>=6'}
    -
    -  is-scoped@2.1.0:
    -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    -    engines: {node: '>=8'}
    -
    -  is-set@2.0.3:
    -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-shared-array-buffer@1.0.3:
    -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-stream@2.0.1:
    -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    -    engines: {node: '>=8'}
    -
    -  is-string@1.0.7:
    -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-subdir@1.2.0:
    -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    -    engines: {node: '>=4'}
    -
    -  is-symbol@1.0.4:
    -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-typed-array@1.1.13:
    -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-typedarray@1.0.0:
    -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    -
    -  is-unicode-supported@0.1.0:
    -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    -    engines: {node: '>=10'}
    -
    -  is-utf8@0.2.1:
    -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    -
    -  is-weakmap@2.0.2:
    -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-weakref@1.0.2:
    -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    -
    -  is-weakset@2.0.3:
    -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-windows@1.0.2:
    -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  is-wsl@2.2.0:
    -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    -    engines: {node: '>=8'}
    -
    -  is-wsl@3.1.0:
    -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    -    engines: {node: '>=16'}
    -
    -  is-yarn-global@0.4.1:
    -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    -    engines: {node: '>=12'}
    -
    -  isarray@0.0.1:
    -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    -
    -  isarray@1.0.0:
    -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    -
    -  isarray@2.0.5:
    -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    -
    -  isbinaryfile@4.0.10:
    -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    -    engines: {node: '>= 8.0.0'}
    -
    -  isbinaryfile@5.0.2:
    -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    -    engines: {node: '>= 18.0.0'}
    -
    -  isexe@2.0.0:
    -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    -
    -  isobject@3.0.1:
    -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  istanbul-lib-coverage@3.2.2:
    -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    -    engines: {node: '>=8'}
    -
    -  istanbul-lib-instrument@5.2.1:
    -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    -    engines: {node: '>=8'}
    -
    -  istanbul-lib-instrument@6.0.2:
    -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-lib-report@3.0.1:
    -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-lib-source-maps@4.0.1:
    -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    -    engines: {node: '>=10'}
    -
    -  istanbul-reports@3.1.7:
    -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    -    engines: {node: '>=8'}
    -
    -  iterator.prototype@1.1.2:
    -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    -
    -  itertools@2.2.5:
    -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    -
    -  jackspeak@2.3.6:
    -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    -    engines: {node: '>=14'}
    -
    -  jake@10.8.7:
    -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  jclass@1.2.1:
    -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    -    engines: {node: '>= 0.6'}
    -
    -  jest-changed-files@29.7.0:
    -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-circus@29.7.0:
    -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-cli@29.7.0:
    -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  jest-config@29.7.0:
    -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@types/node': '*'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      ts-node:
    -        optional: true
    -
    -  jest-diff@29.7.0:
    -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-docblock@29.7.0:
    -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-each@29.7.0:
    -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-environment-jsdom@29.7.0:
    -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    -
    -  jest-environment-node@29.7.0:
    -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-get-type@29.6.3:
    -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-haste-map@29.7.0:
    -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-leak-detector@29.7.0:
    -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-matcher-utils@29.7.0:
    -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-message-util@29.7.0:
    -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-mock@29.7.0:
    -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-pnp-resolver@1.2.3:
    -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    -    engines: {node: '>=6'}
    -    peerDependencies:
    -      jest-resolve: '*'
    -    peerDependenciesMeta:
    -      jest-resolve:
    -        optional: true
    -
    -  jest-regex-util@29.6.3:
    -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-resolve-dependencies@29.7.0:
    -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-resolve@29.7.0:
    -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-runner@29.7.0:
    -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-runtime@29.7.0:
    -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-snapshot@29.7.0:
    -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-util@29.7.0:
    -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-validate@29.7.0:
    -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-watcher@29.7.0:
    -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest-worker@27.5.1:
    -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  jest-worker@29.7.0:
    -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  jest@29.7.0:
    -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    -
    -  jiti@1.21.0:
    -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    -    hasBin: true
    -
    -  joi@17.12.2:
    -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    -
    -  js-cookie@2.2.1:
    -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    -
    -  js-tokens@4.0.0:
    -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    -
    -  js-yaml@3.14.1:
    -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    -    hasBin: true
    -
    -  js-yaml@4.1.0:
    -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    -    hasBin: true
    -
    -  jsbn@1.1.0:
    -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    -
    -  jsdom@20.0.3:
    -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    -
    -  jsesc@0.5.0:
    -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    -    hasBin: true
    -
    -  jsesc@2.5.2:
    -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  jsesc@3.0.2:
    -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  json-buffer@3.0.1:
    -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    -
    -  json-parse-even-better-errors@2.3.1:
    -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    -
    -  json-parse-even-better-errors@3.0.1:
    -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  json-schema-traverse@0.4.1:
    -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    -
    -  json-schema-traverse@1.0.0:
    -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    -
    -  json-stable-stringify-without-jsonify@1.0.1:
    -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    -
    -  json-stringify-nice@1.1.4:
    -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    -
    -  json-stringify-safe@5.0.1:
    -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    -
    -  json5@1.0.2:
    -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    -    hasBin: true
    -
    -  json5@2.2.3:
    -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  jsonfile@6.1.0:
    -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    -
    -  jsonparse@1.3.1:
    -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    -    engines: {'0': node >= 0.2.0}
    -
    -  jsx-ast-utils@3.3.5:
    -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    -    engines: {node: '>=4.0'}
    -
    -  jszip@3.10.1:
    -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    -
    -  just-diff-apply@5.5.0:
    -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    -
    -  just-diff@5.2.0:
    -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    -
    -  just-extend@6.2.0:
    -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    -
    -  keyv@4.5.4:
    -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    -
    -  kind-of@6.0.3:
    -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  kleur@3.0.3:
    -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    -    engines: {node: '>=6'}
    -
    -  kuler@2.0.0:
    -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    -
    -  language-subtag-registry@0.3.22:
    -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    -
    -  language-tags@1.0.9:
    -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    -    engines: {node: '>=0.10'}
    -
    -  latest-version@7.0.0:
    -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    -    engines: {node: '>=14.16'}
    -
    -  launch-editor@2.6.1:
    -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    -
    -  leven@3.1.0:
    -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    -    engines: {node: '>=6'}
    -
    -  levn@0.4.1:
    -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  lie@3.3.0:
    -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    -
    -  lilconfig@2.1.0:
    -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    -    engines: {node: '>=10'}
    -
    -  lilconfig@3.1.1:
    -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    -    engines: {node: '>=14'}
    -
    -  lines-and-columns@1.2.4:
    -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    -
    -  load-json-file@6.2.0:
    -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    -    engines: {node: '>=8'}
    -
    -  load-json-file@7.0.1:
    -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  load-script@1.0.0:
    -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    -
    -  load-yaml-file@0.2.0:
    -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    -    engines: {node: '>=6'}
    -
    -  loader-runner@4.3.0:
    -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    -    engines: {node: '>=6.11.5'}
    -
    -  loader-utils@2.0.4:
    -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    -    engines: {node: '>=8.9.0'}
    -
    -  loader-utils@3.2.1:
    -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    -    engines: {node: '>= 12.13.0'}
    -
    -  locate-path@3.0.0:
    -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    -    engines: {node: '>=6'}
    -
    -  locate-path@5.0.0:
    -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    -    engines: {node: '>=8'}
    -
    -  locate-path@6.0.0:
    -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    -    engines: {node: '>=10'}
    -
    -  locate-path@7.2.0:
    -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  lodash.debounce@4.0.8:
    -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    -
    -  lodash.get@4.4.2:
    -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    -
    -  lodash.memoize@4.1.2:
    -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    -
    -  lodash.merge@4.6.2:
    -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    -
    -  lodash.uniq@4.5.0:
    -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    -
    -  lodash@4.17.21:
    -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    -
    -  log-symbols@4.1.0:
    -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    -    engines: {node: '>=10'}
    -
    -  logform@2.6.0:
    -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  longest-streak@3.1.0:
    -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    -
    -  loose-envify@1.4.0:
    -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    -    hasBin: true
    -
    -  loupe@3.1.0:
    -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    -
    -  lower-case@2.0.2:
    -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    -
    -  lowercase-keys@3.0.0:
    -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  lru-cache@10.2.0:
    -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    -    engines: {node: 14 || >=16.14}
    -
    -  lru-cache@5.1.1:
    -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    -
    -  lru-cache@6.0.0:
    -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    -    engines: {node: '>=10'}
    -
    -  lru-cache@7.10.1:
    -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    -    engines: {node: '>=12'}
    -
    -  lru-cache@7.18.3:
    -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    -    engines: {node: '>=12'}
    -
    -  lz-string@1.5.0:
    -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    -    hasBin: true
    -
    -  make-dir@4.0.0:
    -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    -    engines: {node: '>=10'}
    -
    -  make-error@1.3.6:
    -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    -
    -  make-fetch-happen@10.2.1:
    -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  make-fetch-happen@11.1.1:
    -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  make-fetch-happen@9.1.0:
    -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    -    engines: {node: '>= 10'}
    -
    -  makeerror@1.0.12:
    -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    -
    -  map-age-cleaner@0.1.3:
    -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    -    engines: {node: '>=6'}
    -
    -  map-obj@1.0.1:
    -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  map-obj@4.3.0:
    -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    -    engines: {node: '>=8'}
    -
    -  markdown-extensions@2.0.0:
    -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    -    engines: {node: '>=16'}
    -
    -  markdown-table@3.0.3:
    -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    -
    -  mdast-util-directive@3.0.0:
    -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    -
    -  mdast-util-find-and-replace@3.0.1:
    -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    -
    -  mdast-util-from-markdown@2.0.0:
    -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    -
    -  mdast-util-frontmatter@2.0.1:
    -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    -
    -  mdast-util-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    -
    -  mdast-util-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    -
    -  mdast-util-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    -
    -  mdast-util-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    -
    -  mdast-util-gfm-task-list-item@2.0.0:
    -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    -
    -  mdast-util-gfm@3.0.0:
    -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    -
    -  mdast-util-mdx-expression@2.0.0:
    -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    -
    -  mdast-util-mdx-jsx@3.1.2:
    -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    -
    -  mdast-util-mdx@3.0.0:
    -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    -
    -  mdast-util-mdxjs-esm@2.0.1:
    -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    -
    -  mdast-util-phrasing@4.1.0:
    -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    -
    -  mdast-util-to-hast@13.1.0:
    -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    -
    -  mdast-util-to-markdown@2.1.0:
    -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    -
    -  mdast-util-to-string@4.0.0:
    -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    -
    -  mdn-data@2.0.14:
    -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    -
    -  mdn-data@2.0.28:
    -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    -
    -  mdn-data@2.0.30:
    -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    -
    -  media-typer@0.3.0:
    -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mem-fs-editor@9.7.0:
    -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      mem-fs: ^2.1.0
    -    peerDependenciesMeta:
    -      mem-fs:
    -        optional: true
    -
    -  mem-fs@2.3.0:
    -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    -    engines: {node: '>=12'}
    -
    -  mem@8.1.1:
    -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    -    engines: {node: '>=10'}
    -
    -  memfs@3.5.3:
    -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  memfs@4.8.0:
    -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  memoize-one@5.2.1:
    -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    -
    -  meow@10.1.5:
    -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  merge-descriptors@1.0.1:
    -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    -
    -  merge-stream@2.0.0:
    -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    -
    -  merge2@1.4.1:
    -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    -    engines: {node: '>= 8'}
    -
    -  methods@1.1.2:
    -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    -    engines: {node: '>= 0.6'}
    -
    -  micromark-core-commonmark@2.0.0:
    -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    -
    -  micromark-extension-directive@3.0.0:
    -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    -
    -  micromark-extension-frontmatter@2.0.0:
    -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    -
    -  micromark-extension-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    -
    -  micromark-extension-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    -
    -  micromark-extension-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    -
    -  micromark-extension-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    -
    -  micromark-extension-gfm-tagfilter@2.0.0:
    -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    -
    -  micromark-extension-gfm-task-list-item@2.0.1:
    -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    -
    -  micromark-extension-gfm@3.0.0:
    -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    -
    -  micromark-extension-mdx-expression@3.0.0:
    -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    -
    -  micromark-extension-mdx-jsx@3.0.0:
    -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    -
    -  micromark-extension-mdx-md@2.0.0:
    -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    -
    -  micromark-extension-mdxjs-esm@3.0.0:
    -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    -
    -  micromark-extension-mdxjs@3.0.0:
    -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    -
    -  micromark-factory-destination@2.0.0:
    -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    -
    -  micromark-factory-label@2.0.0:
    -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    -
    -  micromark-factory-mdx-expression@2.0.1:
    -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    -
    -  micromark-factory-space@1.1.0:
    -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    -
    -  micromark-factory-space@2.0.0:
    -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    -
    -  micromark-factory-title@2.0.0:
    -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    -
    -  micromark-factory-whitespace@2.0.0:
    -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    -
    -  micromark-util-character@1.2.0:
    -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    -
    -  micromark-util-character@2.1.0:
    -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    -
    -  micromark-util-chunked@2.0.0:
    -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    -
    -  micromark-util-classify-character@2.0.0:
    -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    -
    -  micromark-util-combine-extensions@2.0.0:
    -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    -
    -  micromark-util-decode-numeric-character-reference@2.0.1:
    -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    -
    -  micromark-util-decode-string@2.0.0:
    -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    -
    -  micromark-util-encode@2.0.0:
    -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    -
    -  micromark-util-events-to-acorn@2.0.2:
    -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    -
    -  micromark-util-html-tag-name@2.0.0:
    -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    -
    -  micromark-util-normalize-identifier@2.0.0:
    -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    -
    -  micromark-util-resolve-all@2.0.0:
    -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    -
    -  micromark-util-sanitize-uri@2.0.0:
    -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    -
    -  micromark-util-subtokenize@2.0.0:
    -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    -
    -  micromark-util-symbol@1.1.0:
    -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    -
    -  micromark-util-symbol@2.0.0:
    -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    -
    -  micromark-util-types@1.1.0:
    -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    -
    -  micromark-util-types@2.0.0:
    -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    -
    -  micromark@4.0.0:
    -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    -
    -  micromatch@4.0.5:
    -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    -    engines: {node: '>=8.6'}
    -
    -  mime-db@1.33.0:
    -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-db@1.52.0:
    -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-types@2.1.18:
    -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime-types@2.1.35:
    -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    -    engines: {node: '>= 0.6'}
    -
    -  mime@1.6.0:
    -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  mimic-fn@2.1.0:
    -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    -    engines: {node: '>=6'}
    -
    -  mimic-fn@3.1.0:
    -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    -    engines: {node: '>=8'}
    -
    -  mimic-response@3.1.0:
    -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    -    engines: {node: '>=10'}
    -
    -  mimic-response@4.0.0:
    -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  min-indent@1.0.1:
    -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    -    engines: {node: '>=4'}
    -
    -  mini-css-extract-plugin@2.8.1:
    -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -
    -  minimalistic-assert@1.0.1:
    -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    -
    -  minimatch@3.1.2:
    -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    -
    -  minimatch@5.0.1:
    -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@5.1.6:
    -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@7.4.6:
    -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    -    engines: {node: '>=10'}
    -
    -  minimatch@9.0.3:
    -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  minimist-options@4.1.0:
    -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    -    engines: {node: '>= 6'}
    -
    -  minimist@1.2.8:
    -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    -
    -  minipass-collect@1.0.2:
    -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    -    engines: {node: '>= 8'}
    -
    -  minipass-fetch@1.4.1:
    -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    -    engines: {node: '>=8'}
    -
    -  minipass-fetch@2.1.2:
    -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  minipass-fetch@3.0.4:
    -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  minipass-flush@1.0.5:
    -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    -    engines: {node: '>= 8'}
    -
    -  minipass-json-stream@1.0.1:
    -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    -
    -  minipass-pipeline@1.2.4:
    -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    -    engines: {node: '>=8'}
    -
    -  minipass-sized@1.0.3:
    -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    -    engines: {node: '>=8'}
    -
    -  minipass@3.3.6:
    -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    -    engines: {node: '>=8'}
    -
    -  minipass@5.0.0:
    -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    -    engines: {node: '>=8'}
    -
    -  minipass@7.0.4:
    -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  minizlib@2.1.2:
    -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    -    engines: {node: '>= 8'}
    -
    -  mkdirp-infer-owner@2.0.0:
    -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    -    engines: {node: '>=10'}
    -
    -  mkdirp@0.5.6:
    -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    -    hasBin: true
    -
    -  mkdirp@1.0.4:
    -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  mocha@10.3.0:
    -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    -    engines: {node: '>= 14.0.0'}
    -    hasBin: true
    -
    -  moo@0.5.2:
    -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    -
    -  mrmime@2.0.0:
    -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    -    engines: {node: '>=10'}
    -
    -  ms@2.0.0:
    -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    -
    -  ms@2.1.2:
    -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    -
    -  ms@2.1.3:
    -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    -
    -  multicast-dns@7.2.5:
    -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    -    hasBin: true
    -
    -  multimatch@5.0.0:
    -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    -    engines: {node: '>=10'}
    -
    -  mute-stream@0.0.8:
    -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    -
    -  mz@2.7.0:
    -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    -
    -  nano-css@5.6.1:
    -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  nanoid@3.3.7:
    -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    -    hasBin: true
    -
    -  natural-compare@1.4.0:
    -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    -
    -  ndjson@2.0.0:
    -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  nearley@2.20.1:
    -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    -    hasBin: true
    -
    -  negotiator@0.6.3:
    -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    -    engines: {node: '>= 0.6'}
    -
    -  neo-async@2.6.2:
    -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    -
    -  neovim@5.1.0:
    -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  nerf-dart@1.0.0:
    -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    -
    -  next@14.1.4:
    -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    -    engines: {node: '>=18.17.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@opentelemetry/api': ^1.1.0
    -      react: ^18.2.0 || 18
    -      react-dom: ^18.2.0 || 18
    -      sass: ^1.3.0
    -    peerDependenciesMeta:
    -      '@opentelemetry/api':
    -        optional: true
    -      sass:
    -        optional: true
    -
    -  nise@5.1.9:
    -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    -
    -  no-case@3.0.4:
    -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    -
    -  node-emoji@2.1.3:
    -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    -    engines: {node: '>=18'}
    -
    -  node-fetch@2.7.0:
    -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    -    engines: {node: 4.x || >=6.0.0}
    -    peerDependencies:
    -      encoding: ^0.1.0
    -    peerDependenciesMeta:
    -      encoding:
    -        optional: true
    -
    -  node-forge@1.3.1:
    -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    -    engines: {node: '>= 6.13.0'}
    -
    -  node-gyp@8.4.1:
    -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    -    engines: {node: '>= 10.12.0'}
    -    hasBin: true
    -
    -  node-gyp@9.4.1:
    -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    -    engines: {node: ^12.13 || ^14.13 || >=16}
    -    hasBin: true
    -
    -  node-html-parser@6.1.12:
    -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    -
    -  node-int64@0.4.0:
    -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    -
    -  node-releases@2.0.14:
    -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    -
    -  nopt@5.0.0:
    -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -
    -  nopt@6.0.0:
    -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    hasBin: true
    -
    -  normalize-package-data@2.5.0:
    -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    -
    -  normalize-package-data@3.0.3:
    -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    -    engines: {node: '>=10'}
    -
    -  normalize-package-data@5.0.0:
    -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  normalize-path@3.0.0:
    -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  normalize-range@0.1.2:
    -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  normalize-registry-url@2.0.0:
    -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    -
    -  normalize-url@6.1.0:
    -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    -    engines: {node: '>=10'}
    -
    -  normalize-url@8.0.1:
    -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    -    engines: {node: '>=14.16'}
    -
    -  npm-bundled@1.1.2:
    -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    -
    -  npm-bundled@3.0.0:
    -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-install-checks@4.0.0:
    -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    -    engines: {node: '>=10'}
    -
    -  npm-install-checks@6.3.0:
    -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-normalize-package-bin@1.0.1:
    -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    -
    -  npm-normalize-package-bin@2.0.0:
    -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  npm-normalize-package-bin@3.0.1:
    -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-package-arg@10.1.0:
    -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-package-arg@11.0.1:
    -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    -
    -  npm-package-arg@8.1.5:
    -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    -    engines: {node: '>=10'}
    -
    -  npm-packlist@3.0.0:
    -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  npm-packlist@7.0.4:
    -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-pick-manifest@6.1.1:
    -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    -
    -  npm-pick-manifest@8.0.2:
    -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-registry-fetch@12.0.2:
    -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -
    -  npm-registry-fetch@14.0.5:
    -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  npm-run-path@4.0.1:
    -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    -    engines: {node: '>=8'}
    -
    -  npmlog@5.0.1:
    -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    -
    -  npmlog@6.0.2:
    -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  nprogress@0.2.0:
    -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    -
    -  nth-check@2.1.1:
    -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    -
    -  nwsapi@2.2.7:
    -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    -
    -  object-assign@4.1.1:
    -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  object-hash@3.0.0:
    -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    -    engines: {node: '>= 6'}
    -
    -  object-inspect@1.13.1:
    -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    -
    -  object-is@1.1.6:
    -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  object-keys@1.1.1:
    -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.assign@4.1.5:
    -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.entries@1.1.8:
    -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.fromentries@2.0.8:
    -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.groupby@1.0.3:
    -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.hasown@1.1.4:
    -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    -    engines: {node: '>= 0.4'}
    -
    -  object.values@1.2.0:
    -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  obuf@1.1.2:
    -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    -
    -  on-finished@2.4.1:
    -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    -    engines: {node: '>= 0.8'}
    -
    -  on-headers@1.0.2:
    -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    -    engines: {node: '>= 0.8'}
    -
    -  once@1.4.0:
    -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    -
    -  one-time@1.0.0:
    -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    -
    -  onetime@5.1.2:
    -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    -    engines: {node: '>=6'}
    -
    -  open@10.1.0:
    -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    -    engines: {node: '>=18'}
    -
    -  open@8.4.2:
    -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    -    engines: {node: '>=12'}
    -
    -  opener@1.5.2:
    -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    -    hasBin: true
    -
    -  optionator@0.9.3:
    -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  ora@5.4.1:
    -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    -    engines: {node: '>=10'}
    -
    -  os-tmpdir@1.0.2:
    -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  p-cancelable@3.0.0:
    -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    -    engines: {node: '>=12.20'}
    -
    -  p-defer@1.0.0:
    -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    -    engines: {node: '>=4'}
    -
    -  p-filter@2.1.0:
    -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    -    engines: {node: '>=8'}
    -
    -  p-finally@1.0.0:
    -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    -    engines: {node: '>=4'}
    -
    -  p-limit@2.3.0:
    -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    -    engines: {node: '>=6'}
    -
    -  p-limit@3.1.0:
    -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    -    engines: {node: '>=10'}
    -
    -  p-limit@4.0.0:
    -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  p-locate@3.0.0:
    -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    -    engines: {node: '>=6'}
    -
    -  p-locate@4.1.0:
    -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    -    engines: {node: '>=8'}
    -
    -  p-locate@5.0.0:
    -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    -    engines: {node: '>=10'}
    -
    -  p-locate@6.0.0:
    -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  p-map@2.1.0:
    -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    -    engines: {node: '>=6'}
    -
    -  p-map@4.0.0:
    -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    -    engines: {node: '>=10'}
    -
    -  p-queue@6.6.2:
    -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    -    engines: {node: '>=8'}
    -
    -  p-retry@4.6.2:
    -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    -    engines: {node: '>=8'}
    -
    -  p-retry@6.2.0:
    -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    -    engines: {node: '>=16.17'}
    -
    -  p-timeout@3.2.0:
    -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    -    engines: {node: '>=8'}
    -
    -  p-transform@1.3.0:
    -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    -    engines: {node: '>=12.10.0'}
    -
    -  p-try@2.2.0:
    -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    -    engines: {node: '>=6'}
    -
    -  package-json@8.1.1:
    -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    -    engines: {node: '>=14.16'}
    -
    -  pacote@12.0.3:
    -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    -
    -  pacote@15.2.0:
    -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  pako@1.0.11:
    -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    -
    -  param-case@3.0.4:
    -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    -
    -  parent-module@1.0.1:
    -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    -    engines: {node: '>=6'}
    -
    -  parse-conflict-json@2.0.2:
    -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  parse-entities@4.0.1:
    -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    -
    -  parse-json@5.2.0:
    -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    -    engines: {node: '>=8'}
    -
    -  parse-ms@2.1.0:
    -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    -    engines: {node: '>=6'}
    -
    -  parse-numeric-range@1.3.0:
    -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    -
    -  parse-srcset@1.0.2:
    -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    -
    -  parse5-htmlparser2-tree-adapter@7.0.0:
    -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    -
    -  parse5@7.1.2:
    -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    -
    -  parseurl@1.3.3:
    -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  pascal-case@3.1.2:
    -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    -
    -  path-absolute@1.0.1:
    -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    -    engines: {node: '>=4'}
    -
    -  path-exists@3.0.0:
    -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    -    engines: {node: '>=4'}
    -
    -  path-exists@4.0.0:
    -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    -    engines: {node: '>=8'}
    -
    -  path-exists@5.0.0:
    -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  path-is-absolute@1.0.1:
    -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  path-is-inside@1.0.2:
    -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    -
    -  path-key@3.1.1:
    -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    -    engines: {node: '>=8'}
    -
    -  path-name@1.0.0:
    -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    -
    -  path-parse@1.0.7:
    -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    -
    -  path-scurry@1.10.1:
    -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  path-temp@2.1.0:
    -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    -    engines: {node: '>=8.15'}
    -
    -  path-to-regexp@0.1.7:
    -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    -
    -  path-to-regexp@1.8.0:
    -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    -
    -  path-to-regexp@2.2.1:
    -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    -
    -  path-to-regexp@6.2.1:
    -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    -
    -  path-type@4.0.0:
    -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    -    engines: {node: '>=8'}
    -
    -  pathval@2.0.0:
    -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    -    engines: {node: '>= 14.16'}
    -
    -  periscopic@3.1.0:
    -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    -
    -  picocolors@1.0.0:
    -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    -
    -  picomatch@2.3.1:
    -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    -    engines: {node: '>=8.6'}
    -
    -  pify@2.3.0:
    -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    -    engines: {node: '>=0.10.0'}
    -
    -  pify@4.0.1:
    -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    -    engines: {node: '>=6'}
    -
    -  pirates@4.0.6:
    -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    -    engines: {node: '>= 6'}
    -
    -  pkg-dir@4.2.0:
    -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    -    engines: {node: '>=8'}
    -
    -  pkg-dir@7.0.0:
    -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    -    engines: {node: '>=14.16'}
    -
    -  pkg-up@3.1.0:
    -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    -    engines: {node: '>=8'}
    -
    -  pluralize@8.0.0:
    -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    -    engines: {node: '>=4'}
    -
    -  portfinder@1.0.32:
    -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    -    engines: {node: '>= 0.12.0'}
    -
    -  possible-typed-array-names@1.0.0:
    -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    -    engines: {node: '>= 0.4'}
    -
    -  postcss-calc@8.2.4:
    -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    -    peerDependencies:
    -      postcss: ^8.2.2
    -
    -  postcss-colormin@5.3.1:
    -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-convert-values@5.1.3:
    -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-comments@5.1.2:
    -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-duplicates@5.1.0:
    -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-empty@5.1.1:
    -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-overridden@5.1.0:
    -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-discard-unused@5.1.0:
    -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-import@15.1.0:
    -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      postcss: ^8.0.0
    -
    -  postcss-js@4.0.1:
    -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    -    engines: {node: ^12 || ^14 || >= 16}
    -    peerDependencies:
    -      postcss: ^8.4.21
    -
    -  postcss-load-config@4.0.2:
    -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    -    engines: {node: '>= 14'}
    -    peerDependencies:
    -      postcss: '>=8.0.9'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      postcss:
    -        optional: true
    -      ts-node:
    -        optional: true
    -
    -  postcss-loader@7.3.4:
    -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -
    -  postcss-loader@8.1.1:
    -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    -
    -  postcss-merge-idents@5.1.1:
    -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-merge-longhand@5.1.7:
    -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-merge-rules@5.1.4:
    -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-font-values@5.1.0:
    -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-gradients@5.1.1:
    -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-params@5.1.4:
    -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-minify-selectors@5.2.1:
    -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-modules-extract-imports@3.0.0:
    -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-local-by-default@4.0.4:
    -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-scope@3.1.1:
    -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-modules-values@4.0.0:
    -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    -
    -  postcss-nested@6.0.1:
    -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    -    engines: {node: '>=12.0'}
    -    peerDependencies:
    -      postcss: ^8.2.14
    -
    -  postcss-normalize-charset@5.1.0:
    -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-display-values@5.1.0:
    -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-positions@5.1.1:
    -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-repeat-style@5.1.1:
    -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-string@5.1.0:
    -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-timing-functions@5.1.0:
    -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-unicode@5.1.1:
    -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-url@5.1.0:
    -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-normalize-whitespace@5.1.1:
    -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-ordered-values@5.1.3:
    -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-idents@5.2.0:
    -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-initial@5.1.2:
    -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-reduce-transforms@5.1.0:
    -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-selector-parser@6.0.16:
    -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    -    engines: {node: '>=4'}
    -
    -  postcss-sort-media-queries@4.4.1:
    -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      postcss: ^8.4.16
    -
    -  postcss-svgo@5.1.0:
    -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-unique-selectors@5.1.1:
    -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss-value-parser@4.2.0:
    -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    -
    -  postcss-zindex@5.1.0:
    -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  postcss@8.4.31:
    -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    -    engines: {node: ^10 || ^12 || >=14}
    -
    -  postcss@8.4.38:
    -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    -    engines: {node: ^10 || ^12 || >=14}
    -
    -  preferred-pm@3.1.3:
    -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    -    engines: {node: '>=10'}
    -
    -  prelude-ls@1.2.1:
    -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  prettier-plugin-tailwindcss@0.5.12:
    -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    -    engines: {node: '>=14.21.3'}
    -    peerDependencies:
    -      '@ianvs/prettier-plugin-sort-imports': '*'
    -      '@prettier/plugin-pug': '*'
    -      '@shopify/prettier-plugin-liquid': '*'
    -      '@trivago/prettier-plugin-sort-imports': '*'
    -      prettier: ^3.0
    -      prettier-plugin-astro: '*'
    -      prettier-plugin-css-order: '*'
    -      prettier-plugin-import-sort: '*'
    -      prettier-plugin-jsdoc: '*'
    -      prettier-plugin-marko: '*'
    -      prettier-plugin-organize-attributes: '*'
    -      prettier-plugin-organize-imports: '*'
    -      prettier-plugin-sort-imports: '*'
    -      prettier-plugin-style-order: '*'
    -      prettier-plugin-svelte: '*'
    -      prettier-plugin-twig-melody: '*'
    -    peerDependenciesMeta:
    -      '@ianvs/prettier-plugin-sort-imports':
    -        optional: true
    -      '@prettier/plugin-pug':
    -        optional: true
    -      '@shopify/prettier-plugin-liquid':
    -        optional: true
    -      '@trivago/prettier-plugin-sort-imports':
    -        optional: true
    -      prettier-plugin-astro:
    -        optional: true
    -      prettier-plugin-css-order:
    -        optional: true
    -      prettier-plugin-import-sort:
    -        optional: true
    -      prettier-plugin-jsdoc:
    -        optional: true
    -      prettier-plugin-marko:
    -        optional: true
    -      prettier-plugin-organize-attributes:
    -        optional: true
    -      prettier-plugin-organize-imports:
    -        optional: true
    -      prettier-plugin-sort-imports:
    -        optional: true
    -      prettier-plugin-style-order:
    -        optional: true
    -      prettier-plugin-svelte:
    -        optional: true
    -      prettier-plugin-twig-melody:
    -        optional: true
    -
    -  prettier@3.2.5:
    -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    -
    -  pretty-bytes@5.6.0:
    -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    -    engines: {node: '>=6'}
    -
    -  pretty-error@4.0.0:
    -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    -
    -  pretty-format@27.5.1:
    -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    -
    -  pretty-format@29.7.0:
    -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -
    -  pretty-ms@7.0.1:
    -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    -    engines: {node: '>=10'}
    -
    -  pretty-time@1.1.0:
    -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    -    engines: {node: '>=4'}
    -
    -  print-diff@1.0.0:
    -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    -    engines: {node: '>=8.3'}
    -
    -  printable-characters@1.0.42:
    -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    -
    -  prism-react-renderer@2.3.1:
    -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    -    peerDependencies:
    -      react: '>=16.0.0 || 18'
    -
    -  prismjs@1.29.0:
    -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    -    engines: {node: '>=6'}
    -
    -  proc-log@1.0.0:
    -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    -
    -  proc-log@3.0.0:
    -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  process-nextick-args@2.0.1:
    -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    -
    -  process@0.11.10:
    -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    -    engines: {node: '>= 0.6.0'}
    -
    -  promise-all-reject-late@1.0.1:
    -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    -
    -  promise-call-limit@1.0.2:
    -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    -
    -  promise-inflight@1.0.1:
    -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    -    peerDependencies:
    -      bluebird: '*'
    -    peerDependenciesMeta:
    -      bluebird:
    -        optional: true
    -
    -  promise-retry@2.0.1:
    -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    -    engines: {node: '>=10'}
    -
    -  prompts@2.4.2:
    -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    -    engines: {node: '>= 6'}
    -
    -  prop-types@15.8.1:
    -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    -
    -  property-information@6.4.1:
    -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    -
    -  proto-list@1.2.4:
    -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    -
    -  proxy-addr@2.0.7:
    -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    -    engines: {node: '>= 0.10'}
    -
    -  psl@1.9.0:
    -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    -
    -  punycode@1.4.1:
    -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    -
    -  punycode@2.3.1:
    -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    -    engines: {node: '>=6'}
    -
    -  pupa@3.1.0:
    -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    -    engines: {node: '>=12.20'}
    -
    -  pure-rand@6.1.0:
    -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    -
    -  qs@6.11.0:
    -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    -    engines: {node: '>=0.6'}
    -
    -  qs@6.12.0:
    -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    -    engines: {node: '>=0.6'}
    -
    -  querystringify@2.2.0:
    -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    -
    -  queue-microtask@1.2.3:
    -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    -
    -  queue@6.0.2:
    -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    -
    -  quick-lru@4.0.1:
    -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    -    engines: {node: '>=8'}
    -
    -  quick-lru@5.1.1:
    -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    -    engines: {node: '>=10'}
    -
    -  railroad-diagrams@1.0.0:
    -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    -
    -  rambda@7.5.0:
    -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    -
    -  ramda@0.29.1:
    -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    -
    -  randexp@0.4.6:
    -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    -    engines: {node: '>=0.12'}
    -
    -  randombytes@2.1.0:
    -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    -
    -  range-parser@1.2.0:
    -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    -    engines: {node: '>= 0.6'}
    -
    -  range-parser@1.2.1:
    -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    -    engines: {node: '>= 0.6'}
    -
    -  raw-body@2.5.2:
    -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    -    engines: {node: '>= 0.8'}
    -
    -  rc@1.2.8:
    -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    -    hasBin: true
    -
    -  react-dev-utils@12.0.1:
    -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=2.7'
    -      webpack: '>=4'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    -
    -  react-dom@18.2.0:
    -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    -    peerDependencies:
    -      react: ^18.2.0 || 18
    -
    -  react-error-overlay@6.0.11:
    -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    -
    -  react-fast-compare@3.2.2:
    -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    -
    -  react-helmet-async@1.3.0:
    -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-helmet-async@2.0.4:
    -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-is@16.13.1:
    -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    -
    -  react-is@17.0.2:
    -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    -
    -  react-is@18.2.0:
    -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    -
    -  react-json-view-lite@1.3.0:
    -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    -
    -  react-loadable-ssr-addon-v5-slorber@1.0.1:
    -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      react-loadable: '*'
    -      webpack: '>=4.41.1 || 5.x'
    -
    -  react-player@2.15.1:
    -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    -    peerDependencies:
    -      react: '>=16.6.0 || 18'
    -
    -  react-router-config@5.1.1:
    -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -      react-router: '>=5'
    -
    -  react-router-dom@5.3.4:
    -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -
    -  react-router@5.3.4:
    -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -
    -  react-string-replace@1.1.1:
    -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    -    engines: {node: '>=0.12.0'}
    -
    -  react-universal-interface@0.6.2:
    -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    -    peerDependencies:
    -      react: '*'
    -      tslib: '*'
    -
    -  react-use@17.5.0:
    -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    -
    -  react@18.2.0:
    -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  read-cache@1.0.0:
    -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    -
    -  read-cmd-shim@3.0.1:
    -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  read-ini-file@4.0.0:
    -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    -    engines: {node: '>=14.6'}
    -
    -  read-package-json-fast@2.0.3:
    -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    -    engines: {node: '>=10'}
    -
    -  read-package-json-fast@3.0.2:
    -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  read-package-json@6.0.4:
    -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  read-pkg-up@7.0.1:
    -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    -    engines: {node: '>=8'}
    -
    -  read-pkg-up@8.0.0:
    -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    -    engines: {node: '>=12'}
    -
    -  read-pkg@5.2.0:
    -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    -    engines: {node: '>=8'}
    -
    -  read-pkg@6.0.0:
    -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    -    engines: {node: '>=12'}
    -
    -  read-yaml-file@2.1.0:
    -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    -    engines: {node: '>=10.13'}
    -
    -  readable-stream@2.3.8:
    -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    -
    -  readable-stream@3.6.2:
    -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    -    engines: {node: '>= 6'}
    -
    -  readable-stream@4.5.2:
    -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -
    -  readdir-scoped-modules@1.1.0:
    -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    -    deprecated: This functionality has been moved to @npmcli/fs
    -
    -  readdirp@3.6.0:
    -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    -    engines: {node: '>=8.10.0'}
    -
    -  reading-time@1.5.0:
    -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    -
    -  realpath-missing@1.1.0:
    -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    -    engines: {node: '>=10'}
    -
    -  rechoir@0.6.2:
    -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    -    engines: {node: '>= 0.10'}
    -
    -  rechoir@0.8.0:
    -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  recursive-readdir@2.2.3:
    -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    -    engines: {node: '>=6.0.0'}
    -
    -  redent@4.0.0:
    -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    -    engines: {node: '>=12'}
    -
    -  reflect.getprototypeof@1.0.6:
    -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    -    engines: {node: '>= 0.4'}
    -
    -  regenerate-unicode-properties@10.1.1:
    -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    -    engines: {node: '>=4'}
    -
    -  regenerate@1.4.2:
    -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    -
    -  regenerator-runtime@0.14.1:
    -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    -
    -  regenerator-transform@0.15.2:
    -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    -
    -  regexp-tree@0.1.27:
    -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    -    hasBin: true
    -
    -  regexp.prototype.flags@1.5.2:
    -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    -    engines: {node: '>= 0.4'}
    -
    -  regexpu-core@5.3.2:
    -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    -    engines: {node: '>=4'}
    -
    -  registry-auth-token@5.0.2:
    -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    -    engines: {node: '>=14'}
    -
    -  registry-url@6.0.1:
    -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    -    engines: {node: '>=12'}
    -
    -  regjsparser@0.10.0:
    -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    -    hasBin: true
    -
    -  regjsparser@0.9.1:
    -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    -    hasBin: true
    -
    -  rehype-raw@7.0.0:
    -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    -
    -  relateurl@0.2.7:
    -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    -    engines: {node: '>= 0.10'}
    -
    -  remark-directive@3.0.0:
    -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    -
    -  remark-emoji@4.0.1:
    -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  remark-frontmatter@5.0.0:
    -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    -
    -  remark-gfm@4.0.0:
    -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    -
    -  remark-mdx@3.0.1:
    -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    -
    -  remark-parse@11.0.0:
    -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    -
    -  remark-rehype@11.1.0:
    -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    -
    -  remark-stringify@11.0.0:
    -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    -
    -  remove-trailing-separator@1.1.0:
    -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    -
    -  renderkid@3.0.0:
    -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    -
    -  replace-ext@1.0.1:
    -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    -    engines: {node: '>= 0.10'}
    -
    -  require-directory@2.1.1:
    -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    -    engines: {node: '>=0.10.0'}
    -
    -  require-from-string@2.0.2:
    -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    -    engines: {node: '>=0.10.0'}
    -
    -  require-like@0.1.2:
    -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    -
    -  requires-port@1.0.0:
    -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    -
    -  resize-observer-polyfill@1.5.1:
    -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    -
    -  resolve-alpn@1.2.1:
    -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    -
    -  resolve-cwd@3.0.0:
    -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    -    engines: {node: '>=8'}
    -
    -  resolve-from@4.0.0:
    -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    -    engines: {node: '>=4'}
    -
    -  resolve-from@5.0.0:
    -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    -    engines: {node: '>=8'}
    -
    -  resolve-pathname@3.0.0:
    -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    -
    -  resolve-pkg-maps@1.0.0:
    -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    -
    -  resolve.exports@2.0.2:
    -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    -    engines: {node: '>=10'}
    -
    -  resolve@1.22.8:
    -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    -    hasBin: true
    -
    -  resolve@2.0.0-next.5:
    -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    -    hasBin: true
    -
    -  responselike@3.0.0:
    -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    -    engines: {node: '>=14.16'}
    -
    -  restore-cursor@3.1.0:
    -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    -    engines: {node: '>=8'}
    -
    -  ret@0.1.15:
    -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    -    engines: {node: '>=0.12'}
    -
    -  retry@0.12.0:
    -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    -    engines: {node: '>= 4'}
    -
    -  retry@0.13.1:
    -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    -    engines: {node: '>= 4'}
    -
    -  reusify@1.0.4:
    -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    -
    -  rfc4648@1.5.3:
    -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    -
    -  right-pad@1.0.1:
    -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    -    engines: {node: '>= 0.10'}
    -
    -  rimraf@3.0.2:
    -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    -    hasBin: true
    -
    -  rimraf@5.0.5:
    -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    -
    -  rtl-css-js@1.16.1:
    -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    -
    -  rtl-detect@1.1.2:
    -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    -
    -  rtlcss@4.1.1:
    -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    -    engines: {node: '>=12.0.0'}
    -    hasBin: true
    -
    -  run-applescript@7.0.0:
    -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    -    engines: {node: '>=18'}
    -
    -  run-async@2.4.1:
    -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    -    engines: {node: '>=0.12.0'}
    -
    -  run-parallel@1.2.0:
    -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    -
    -  rxjs@7.8.1:
    -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    -
    -  safe-array-concat@1.1.2:
    -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    -    engines: {node: '>=0.4'}
    -
    -  safe-buffer@5.1.2:
    -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    -
    -  safe-buffer@5.2.1:
    -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    -
    -  safe-execa@0.1.2:
    -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    -    engines: {node: '>=12'}
    -
    -  safe-regex-test@1.0.3:
    -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    -    engines: {node: '>= 0.4'}
    -
    -  safe-stable-stringify@2.4.3:
    -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    -    engines: {node: '>=10'}
    -
    -  safer-buffer@2.1.2:
    -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    -
    -  sanitize-html@2.13.0:
    -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    -
    -  sax@1.3.0:
    -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    -
    -  saxes@6.0.0:
    -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    -    engines: {node: '>=v12.22.7'}
    -
    -  sbd@1.0.19:
    -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    -
    -  scheduler@0.23.0:
    -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    -
    -  schema-utils@2.7.0:
    -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    -    engines: {node: '>= 8.9.0'}
    -
    -  schema-utils@3.3.0:
    -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    -    engines: {node: '>= 10.13.0'}
    -
    -  schema-utils@4.2.0:
    -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    -    engines: {node: '>= 12.13.0'}
    -
    -  scoped-regex@2.1.0:
    -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    -    engines: {node: '>=8'}
    -
    -  screenfull@5.2.0:
    -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  search-insights@2.13.0:
    -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    -
    -  section-matter@1.0.0:
    -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    -    engines: {node: '>=4'}
    -
    -  secure-compare@3.0.1:
    -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    -
    -  select-hose@2.0.0:
    -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    -
    -  selfsigned@2.4.1:
    -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    -    engines: {node: '>=10'}
    -
    -  semver-diff@4.0.0:
    -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    -    engines: {node: '>=12'}
    -
    -  semver@5.7.2:
    -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    -    hasBin: true
    -
    -  semver@6.3.1:
    -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    -    hasBin: true
    -
    -  semver@7.5.4:
    -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  semver@7.6.0:
    -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  send@0.18.0:
    -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  serialize-javascript@6.0.0:
    -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    -
    -  serialize-javascript@6.0.2:
    -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    -
    -  serve-handler@6.1.5:
    -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    -
    -  serve-index@1.9.1:
    -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  serve-static@1.15.0:
    -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  set-blocking@2.0.0:
    -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    -
    -  set-function-length@1.2.2:
    -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    -    engines: {node: '>= 0.4'}
    -
    -  set-function-name@2.0.2:
    -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  set-harmonic-interval@1.0.1:
    -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    -    engines: {node: '>=6.9'}
    -
    -  setimmediate@1.0.5:
    -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    -
    -  setprototypeof@1.1.0:
    -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    -
    -  setprototypeof@1.2.0:
    -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    -
    -  shallow-clone@3.0.1:
    -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    -    engines: {node: '>=8'}
    -
    -  shallowequal@1.1.0:
    -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    -
    -  shebang-command@2.0.0:
    -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    -    engines: {node: '>=8'}
    -
    -  shebang-regex@3.0.0:
    -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    -    engines: {node: '>=8'}
    -
    -  shell-quote@1.8.1:
    -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    -
    -  shelljs@0.8.5:
    -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    -
    -  side-channel@1.0.6:
    -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    -    engines: {node: '>= 0.4'}
    -
    -  signal-exit@3.0.7:
    -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    -
    -  signal-exit@4.1.0:
    -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    -    engines: {node: '>=14'}
    -
    -  sigstore@1.9.0:
    -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  simple-swizzle@0.2.2:
    -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    -
    -  sinon@17.0.1:
    -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    -
    -  sirv@2.0.4:
    -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    -    engines: {node: '>= 10'}
    -
    -  sisteransi@1.0.5:
    -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    -
    -  sitemap@7.1.1:
    -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    -    hasBin: true
    -
    -  skin-tone@2.0.0:
    -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    -    engines: {node: '>=8'}
    -
    -  slash@3.0.0:
    -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    -    engines: {node: '>=8'}
    -
    -  slash@4.0.0:
    -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    -    engines: {node: '>=12'}
    -
    -  smart-buffer@4.2.0:
    -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    -
    -  snake-case@3.0.4:
    -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    -
    -  sockjs@0.3.24:
    -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    -
    -  socks-proxy-agent@6.1.1:
    -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    -    engines: {node: '>= 10'}
    -
    -  socks-proxy-agent@6.2.1:
    -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    -    engines: {node: '>= 10'}
    -
    -  socks-proxy-agent@7.0.0:
    -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    -    engines: {node: '>= 10'}
    -
    -  socks@2.8.1:
    -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    -
    -  sort-css-media-queries@2.1.0:
    -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    -    engines: {node: '>= 6.3.0'}
    -
    -  sort-keys@4.2.0:
    -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    -    engines: {node: '>=8'}
    -
    -  sort-keys@5.0.0:
    -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    -    engines: {node: '>=12'}
    -
    -  source-map-js@1.2.0:
    -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map-support@0.5.13:
    -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    -
    -  source-map-support@0.5.21:
    -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    -
    -  source-map-url@0.4.1:
    -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    -    deprecated: See https://github.com/lydell/source-map-url#deprecated
    -
    -  source-map@0.5.6:
    -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map@0.6.1:
    -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  source-map@0.7.4:
    -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    -    engines: {node: '>= 8'}
    -
    -  space-separated-tokens@2.0.2:
    -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    -
    -  spdx-correct@3.2.0:
    -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    -
    -  spdx-exceptions@2.5.0:
    -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    -
    -  spdx-expression-parse@3.0.1:
    -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    -
    -  spdx-license-ids@3.0.17:
    -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    -
    -  spdy-transport@3.0.0:
    -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    -
    -  spdy@4.0.2:
    -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    -    engines: {node: '>=6.0.0'}
    -
    -  split2@3.2.2:
    -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    -
    -  sprintf-js@1.0.3:
    -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    -
    -  sprintf-js@1.1.3:
    -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    -
    -  srcset@4.0.0:
    -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    -    engines: {node: '>=12'}
    -
    -  ssri@10.0.5:
    -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  ssri@8.0.1:
    -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    -    engines: {node: '>= 8'}
    -
    -  ssri@9.0.1:
    -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  stable@0.1.8:
    -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    -
    -  stack-generator@2.0.10:
    -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    -
    -  stack-trace@0.0.10:
    -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    -
    -  stack-utils@2.0.6:
    -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    -    engines: {node: '>=10'}
    -
    -  stackframe@1.3.4:
    -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    -
    -  stacktrace-gps@3.1.2:
    -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    -
    -  stacktrace-js@2.0.2:
    -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    -
    -  stacktracey@2.1.8:
    -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    -
    -  statuses@1.5.0:
    -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    -    engines: {node: '>= 0.6'}
    -
    -  statuses@2.0.1:
    -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  std-env@3.7.0:
    -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    -
    -  stop-iteration-iterator@1.0.0:
    -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  streamsearch@1.1.0:
    -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    -    engines: {node: '>=10.0.0'}
    -
    -  string-length@4.0.2:
    -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    -    engines: {node: '>=10'}
    -
    -  string-width@4.2.3:
    -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    -    engines: {node: '>=8'}
    -
    -  string-width@5.1.2:
    -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    -    engines: {node: '>=12'}
    -
    -  string.prototype.matchall@4.0.11:
    -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    -    engines: {node: '>= 0.4'}
    -
    -  string.prototype.trim@1.2.9:
    -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    -    engines: {node: '>= 0.4'}
    -
    -  string.prototype.trimend@1.0.8:
    -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    -
    -  string.prototype.trimstart@1.0.8:
    -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    -    engines: {node: '>= 0.4'}
    -
    -  string_decoder@1.1.1:
    -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    -
    -  string_decoder@1.3.0:
    -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    -
    -  stringify-entities@4.0.3:
    -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    -
    -  stringify-object@3.3.0:
    -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    -    engines: {node: '>=4'}
    -
    -  strip-ansi@6.0.1:
    -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    -    engines: {node: '>=8'}
    -
    -  strip-ansi@7.1.0:
    -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    -    engines: {node: '>=12'}
    -
    -  strip-bom-buf@1.0.0:
    -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    -    engines: {node: '>=4'}
    -
    -  strip-bom-stream@2.0.0:
    -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom-string@1.0.0:
    -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom@2.0.0:
    -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-bom@3.0.0:
    -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    -    engines: {node: '>=4'}
    -
    -  strip-bom@4.0.0:
    -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    -    engines: {node: '>=8'}
    -
    -  strip-comments-strings@1.2.0:
    -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    -
    -  strip-final-newline@2.0.0:
    -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    -    engines: {node: '>=6'}
    -
    -  strip-indent@3.0.0:
    -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    -    engines: {node: '>=8'}
    -
    -  strip-indent@4.0.0:
    -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    -    engines: {node: '>=12'}
    -
    -  strip-json-comments@2.0.1:
    -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    -    engines: {node: '>=0.10.0'}
    -
    -  strip-json-comments@3.1.1:
    -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    -    engines: {node: '>=8'}
    -
    -  strnum@1.0.5:
    -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    -
    -  style-loader@3.3.4:
    -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -
    -  style-to-object@0.4.4:
    -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    -
    -  style-to-object@1.0.5:
    -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    -
    -  styled-jsx@5.1.1:
    -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    -    engines: {node: '>= 12.0.0'}
    -    peerDependencies:
    -      '@babel/core': '*'
    -      babel-plugin-macros: '*'
    -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      babel-plugin-macros:
    -        optional: true
    -
    -  stylehacks@5.1.1:
    -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    -
    -  stylis@4.3.1:
    -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    -
    -  sucrase@3.35.0:
    -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    -
    -  supports-color@5.5.0:
    -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    -    engines: {node: '>=4'}
    -
    -  supports-color@7.2.0:
    -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    -    engines: {node: '>=8'}
    -
    -  supports-color@8.1.1:
    -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    -    engines: {node: '>=10'}
    -
    -  supports-preserve-symlinks-flag@1.0.0:
    -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    -    engines: {node: '>= 0.4'}
    -
    -  svg-parser@2.0.4:
    -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    -
    -  svgo@2.8.0:
    -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -
    -  svgo@3.2.0:
    -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    -
    -  symbol-tree@3.2.4:
    -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    -
    -  syncpack@12.3.0:
    -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    -    engines: {node: '>=16'}
    -    hasBin: true
    -
    -  tailwindcss@3.4.1:
    -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    -
    -  tapable@1.1.3:
    -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    -    engines: {node: '>=6'}
    -
    -  tapable@2.2.1:
    -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    -    engines: {node: '>=6'}
    -
    -  tar@6.2.1:
    -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    -    engines: {node: '>=10'}
    -
    -  terser-webpack-plugin@5.3.10:
    -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      '@swc/core': '*'
    -      esbuild: '*'
    -      uglify-js: '*'
    -      webpack: ^5.1.0
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      esbuild:
    -        optional: true
    -      uglify-js:
    -        optional: true
    -
    -  terser@5.29.2:
    -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    -
    -  test-exclude@6.0.0:
    -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    -    engines: {node: '>=8'}
    -
    -  text-hex@1.0.0:
    -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    -
    -  text-table@0.2.0:
    -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    -
    -  textextensions@5.16.0:
    -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    -    engines: {node: '>=0.8'}
    -
    -  thenify-all@1.6.0:
    -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    -    engines: {node: '>=0.8'}
    -
    -  thenify@3.3.1:
    -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    -
    -  throttle-debounce@3.0.1:
    -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    -    engines: {node: '>=10'}
    -
    -  through2@4.0.2:
    -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    -
    -  through@2.3.8:
    -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    -
    -  thunky@1.1.0:
    -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    -
    -  tightrope@0.1.0:
    -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    -    engines: {node: '>=14'}
    -
    -  tiny-invariant@1.3.3:
    -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    -
    -  tiny-warning@1.0.3:
    -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    -
    -  tinycolor2@1.6.0:
    -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    -
    -  tmp@0.0.33:
    -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    -    engines: {node: '>=0.6.0'}
    -
    -  tmpl@1.0.5:
    -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    -
    -  to-fast-properties@2.0.0:
    -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    -    engines: {node: '>=4'}
    -
    -  to-regex-range@5.0.1:
    -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    -    engines: {node: '>=8.0'}
    -
    -  toggle-selection@1.0.6:
    -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    -
    -  toidentifier@1.0.1:
    -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    -    engines: {node: '>=0.6'}
    -
    -  totalist@3.0.1:
    -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    -    engines: {node: '>=6'}
    -
    -  tough-cookie@4.1.3:
    -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    -    engines: {node: '>=6'}
    -
    -  tr46@0.0.3:
    -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    -
    -  tr46@3.0.0:
    -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    -    engines: {node: '>=12'}
    -
    -  treeverse@1.0.4:
    -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    -
    -  trie-search@2.0.0:
    -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    -
    -  trim-lines@3.0.1:
    -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    -
    -  trim-newlines@4.1.1:
    -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    -    engines: {node: '>=12'}
    -
    -  triple-beam@1.4.1:
    -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    -    engines: {node: '>= 14.0.0'}
    -
    -  trough@2.2.0:
    -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    -
    -  ts-api-utils@1.3.0:
    -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      typescript: '>=4.2.0'
    -
    -  ts-easing@0.2.0:
    -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    -
    -  ts-interface-checker@0.1.13:
    -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    -
    -  ts-jest@29.1.2:
    -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      '@babel/core': '>=7.0.0-beta.0 <8'
    -      '@jest/types': ^29.0.0
    -      babel-jest: ^29.0.0
    -      esbuild: '*'
    -      jest: ^29.0.0
    -      typescript: '>=4.3 <6'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      '@jest/types':
    -        optional: true
    -      babel-jest:
    -        optional: true
    -      esbuild:
    -        optional: true
    -
    -  ts-loader@9.5.1:
    -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      typescript: '*'
    -      webpack: ^5.0.0
    -
    -  ts-node@10.9.2:
    -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    -    hasBin: true
    -    peerDependencies:
    -      '@swc/core': '>=1.2.50'
    -      '@swc/wasm': '>=1.2.50'
    -      '@types/node': '*'
    -      typescript: '>=2.7'
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      '@swc/wasm':
    -        optional: true
    -
    -  ts-toolbelt@9.6.0:
    -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    -
    -  tsconfig-paths@3.15.0:
    -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    -
    -  tslib@2.6.2:
    -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    -
    -  tuf-js@1.1.7:
    -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  type-check@0.4.0:
    -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  type-detect@4.0.8:
    -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    -    engines: {node: '>=4'}
    -
    -  type-fest@0.20.2:
    -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@0.21.3:
    -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@0.6.0:
    -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    -    engines: {node: '>=8'}
    -
    -  type-fest@0.8.1:
    -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    -    engines: {node: '>=8'}
    -
    -  type-fest@1.4.0:
    -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    -    engines: {node: '>=10'}
    -
    -  type-fest@2.19.0:
    -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    -    engines: {node: '>=12.20'}
    -
    -  type-fest@4.14.0:
    -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    -    engines: {node: '>=16'}
    -
    -  type-is@1.6.18:
    -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    -    engines: {node: '>= 0.6'}
    -
    -  typed-array-buffer@1.0.2:
    -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-byte-length@1.0.1:
    -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-byte-offset@1.0.2:
    -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    -    engines: {node: '>= 0.4'}
    -
    -  typed-array-length@1.0.6:
    -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    -    engines: {node: '>= 0.4'}
    -
    -  typedarray-to-buffer@3.1.5:
    -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    -
    -  typescript@5.4.3:
    -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    -    engines: {node: '>=14.17'}
    -    hasBin: true
    -
    -  unbox-primitive@1.0.2:
    -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    -
    -  unicode-canonical-property-names-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    -    engines: {node: '>=4'}
    -
    -  unicode-emoji-modifier-base@1.0.0:
    -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    -    engines: {node: '>=4'}
    -
    -  unicode-match-property-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    -    engines: {node: '>=4'}
    -
    -  unicode-match-property-value-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    -    engines: {node: '>=4'}
    -
    -  unicode-property-aliases-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    -    engines: {node: '>=4'}
    -
    -  unified@11.0.4:
    -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    -
    -  union@0.5.0:
    -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    -    engines: {node: '>= 0.8.0'}
    -
    -  unique-filename@1.1.1:
    -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    -
    -  unique-filename@2.0.1:
    -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  unique-filename@3.0.0:
    -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  unique-slug@2.0.2:
    -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    -
    -  unique-slug@3.0.0:
    -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  unique-slug@4.0.0:
    -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  unique-string@2.0.0:
    -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    -    engines: {node: '>=8'}
    -
    -  unique-string@3.0.0:
    -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    -    engines: {node: '>=12'}
    -
    -  unist-util-is@6.0.0:
    -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    -
    -  unist-util-position-from-estree@2.0.0:
    -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    -
    -  unist-util-position@5.0.0:
    -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    -
    -  unist-util-remove-position@5.0.0:
    -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    -
    -  unist-util-stringify-position@4.0.0:
    -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    -
    -  unist-util-visit-parents@6.0.1:
    -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    -
    -  unist-util-visit@5.0.0:
    -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    -
    -  universal-user-agent@6.0.1:
    -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    -
    -  universalify@0.2.0:
    -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    -    engines: {node: '>= 4.0.0'}
    -
    -  universalify@2.0.1:
    -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    -    engines: {node: '>= 10.0.0'}
    -
    -  unpipe@1.0.0:
    -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    -    engines: {node: '>= 0.8'}
    -
    -  untildify@4.0.0:
    -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    -    engines: {node: '>=8'}
    -
    -  update-browserslist-db@1.0.13:
    -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    -    hasBin: true
    -    peerDependencies:
    -      browserslist: '>= 4.21.0'
    -
    -  update-notifier@6.0.2:
    -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    -    engines: {node: '>=14.16'}
    -
    -  uri-js@4.4.1:
    -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    -
    -  url-join@4.0.1:
    -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    -
    -  url-loader@4.1.1:
    -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      file-loader: '*'
    -      webpack: ^4.0.0 || ^5.0.0
    -    peerDependenciesMeta:
    -      file-loader:
    -        optional: true
    -
    -  url-parse@1.5.10:
    -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    -
    -  util-deprecate@1.0.2:
    -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    -
    -  utila@0.4.0:
    -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    -
    -  utility-types@3.11.0:
    -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    -    engines: {node: '>= 4'}
    -
    -  utils-merge@1.0.1:
    -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    -    engines: {node: '>= 0.4.0'}
    -
    -  uuid@8.3.2:
    -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    -    hasBin: true
    -
    -  uuid@9.0.1:
    -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    -    hasBin: true
    -
    -  v8-compile-cache-lib@3.0.1:
    -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    -
    -  v8-to-istanbul@9.2.0:
    -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    -    engines: {node: '>=10.12.0'}
    -
    -  validate-npm-package-license@3.0.4:
    -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    -
    -  validate-npm-package-name@3.0.0:
    -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    -
    -  validate-npm-package-name@5.0.0:
    -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  value-equal@1.0.1:
    -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    -
    -  vary@1.1.2:
    -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    -    engines: {node: '>= 0.8'}
    -
    -  vfile-location@5.0.2:
    -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    -
    -  vfile-message@4.0.2:
    -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    -
    -  vfile@6.0.1:
    -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    -
    -  vinyl-file@3.0.0:
    -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    -    engines: {node: '>=4'}
    -
    -  vinyl@2.2.1:
    -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    -    engines: {node: '>= 0.10'}
    -
    -  vscode-uri@3.0.8:
    -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    -
    -  w3c-xmlserializer@4.0.0:
    -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    -    engines: {node: '>=14'}
    -
    -  walk-up-path@1.0.0:
    -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    -
    -  walker@1.0.8:
    -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    -
    -  watchpack@2.4.1:
    -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    -    engines: {node: '>=10.13.0'}
    -
    -  wbuf@1.7.3:
    -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    -
    -  wcwidth@1.0.1:
    -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    -
    -  web-namespaces@2.0.1:
    -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    -
    -  webidl-conversions@3.0.1:
    -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    -
    -  webidl-conversions@7.0.0:
    -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    -    engines: {node: '>=12'}
    -
    -  webpack-bundle-analyzer@4.10.1:
    -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    -    engines: {node: '>= 10.13.0'}
    -    hasBin: true
    -
    -  webpack-cli@5.1.4:
    -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    -    engines: {node: '>=14.15.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@webpack-cli/generators': '*'
    -      webpack: 5.x.x
    -      webpack-bundle-analyzer: '*'
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      '@webpack-cli/generators':
    -        optional: true
    -      webpack-bundle-analyzer:
    -        optional: true
    -      webpack-dev-server:
    -        optional: true
    -
    -  webpack-dev-middleware@5.3.4:
    -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    -
    -  webpack-dev-middleware@7.1.1:
    -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -
    -  webpack-dev-server@4.15.2:
    -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    -    engines: {node: '>= 12.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^4.37.0 || ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    -
    -  webpack-dev-server@5.0.4:
    -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    -    engines: {node: '>= 18.12.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    -
    -  webpack-merge@5.10.0:
    -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    -    engines: {node: '>=10.0.0'}
    -
    -  webpack-sources@3.2.3:
    -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    -    engines: {node: '>=10.13.0'}
    -
    -  webpack@5.91.0:
    -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack-cli:
    -        optional: true
    -
    -  webpackbar@5.0.2:
    -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      webpack: 3 || 4 || 5
    -
    -  websocket-driver@0.7.4:
    -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  websocket-extensions@0.1.4:
    -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    -    engines: {node: '>=0.8.0'}
    -
    -  whatwg-encoding@2.0.0:
    -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-mimetype@3.0.0:
    -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-url@11.0.0:
    -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    -    engines: {node: '>=12'}
    -
    -  whatwg-url@5.0.0:
    -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    -
    -  which-boxed-primitive@1.0.2:
    -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    -
    -  which-builtin-type@1.1.3:
    -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    -    engines: {node: '>= 0.4'}
    -
    -  which-collection@1.0.2:
    -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    -    engines: {node: '>= 0.4'}
    -
    -  which-pm@2.0.0:
    -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    -    engines: {node: '>=8.15'}
    -
    -  which-typed-array@1.1.15:
    -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    -    engines: {node: '>= 0.4'}
    -
    -  which@1.3.1:
    -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    -    hasBin: true
    -
    -  which@2.0.2:
    -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    -
    -  which@3.0.1:
    -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    -
    -  wide-align@1.1.5:
    -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    -
    -  widest-line@3.1.0:
    -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    -    engines: {node: '>=8'}
    -
    -  widest-line@4.0.1:
    -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    -    engines: {node: '>=12'}
    -
    -  wildcard@2.0.1:
    -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    -
    -  winston-transport@4.7.0:
    -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  winston@3.11.0:
    -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    -    engines: {node: '>= 12.0.0'}
    -
    -  workerpool@6.2.1:
    -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    -
    -  wrap-ansi@6.2.0:
    -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    -    engines: {node: '>=8'}
    -
    -  wrap-ansi@7.0.0:
    -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    -    engines: {node: '>=10'}
    -
    -  wrap-ansi@8.1.0:
    -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    -    engines: {node: '>=12'}
    -
    -  wrappy@1.0.2:
    -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    -
    -  write-file-atomic@3.0.3:
    -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    -
    -  write-file-atomic@4.0.2:
    -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -
    -  write-file-atomic@5.0.1:
    -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -
    -  write-json-file@5.0.0:
    -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -
    -  write-yaml-file@5.0.0:
    -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    -    engines: {node: '>=16.14'}
    -
    -  ws@7.5.9:
    -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    -    engines: {node: '>=8.3.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: ^5.0.2
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -
    -  ws@8.16.0:
    -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: '>=5.0.2'
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -
    -  xdg-basedir@5.1.0:
    -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    -    engines: {node: '>=12'}
    -
    -  xml-js@1.6.11:
    -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    -    hasBin: true
    -
    -  xml-name-validator@4.0.0:
    -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    -    engines: {node: '>=12'}
    -
    -  xmlchars@2.2.0:
    -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    -
    -  y18n@5.0.8:
    -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    -    engines: {node: '>=10'}
    -
    -  yallist@3.1.1:
    -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    -
    -  yallist@4.0.0:
    -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    -
    -  yaml@1.10.2:
    -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    -    engines: {node: '>= 6'}
    -
    -  yaml@2.4.1:
    -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    -    engines: {node: '>= 14'}
    -    hasBin: true
    -
    -  yargs-parser@20.2.4:
    -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    -    engines: {node: '>=10'}
    -
    -  yargs-parser@20.2.9:
    -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    -    engines: {node: '>=10'}
    -
    -  yargs-parser@21.1.1:
    -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    -    engines: {node: '>=12'}
    -
    -  yargs-unparser@2.0.0:
    -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    -    engines: {node: '>=10'}
    -
    -  yargs@16.2.0:
    -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    -    engines: {node: '>=10'}
    -
    -  yargs@17.7.2:
    -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    -    engines: {node: '>=12'}
    -
    -  yeoman-environment@3.19.3:
    -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    -    engines: {node: '>=12.10.0'}
    -    hasBin: true
    -
    -  yeoman-generator@5.10.0:
    -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      yeoman-environment: ^3.2.0
    -    peerDependenciesMeta:
    -      yeoman-environment:
    -        optional: true
    -
    -  yn@3.1.1:
    -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    -    engines: {node: '>=6'}
    -
    -  yocto-queue@0.1.0:
    -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    -    engines: {node: '>=10'}
    -
    -  yocto-queue@1.0.0:
    -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    -    engines: {node: '>=12.20'}
    -
    -  zod@3.22.4:
    -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    -
    -  zwitch@2.0.4:
    -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    -
    -snapshots:
    -
    -  '@aashutoshrathi/word-wrap@1.2.6': {}
    -
    -  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -9680,105 +788,161 @@ snapshots:
           - '@algolia/client-search'
           - algoliasearch
           - search-insights
    +    dev: false
     
    -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
    +  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    +    peerDependencies:
    +      search-insights: '>= 1 < 3'
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
           - algoliasearch
    +    dev: false
     
    -  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
    +  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
    +  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
         dependencies:
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  '@algolia/cache-browser-local-storage@4.22.1':
    +  /@algolia/cache-browser-local-storage@4.22.1:
    +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
         dependencies:
           '@algolia/cache-common': 4.22.1
    +    dev: false
     
    -  '@algolia/cache-common@4.22.1': {}
    +  /@algolia/cache-common@4.22.1:
    +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    +    dev: false
     
    -  '@algolia/cache-in-memory@4.22.1':
    +  /@algolia/cache-in-memory@4.22.1:
    +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
         dependencies:
           '@algolia/cache-common': 4.22.1
    +    dev: false
     
    -  '@algolia/client-account@4.22.1':
    +  /@algolia/client-account@4.22.1:
    +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-analytics@4.22.1':
    +  /@algolia/client-analytics@4.22.1:
    +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-common@4.22.1':
    +  /@algolia/client-common@4.22.1:
    +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
         dependencies:
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-personalization@4.22.1':
    +  /@algolia/client-personalization@4.22.1:
    +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/client-search@4.22.1':
    +  /@algolia/client-search@4.22.1:
    +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  '@algolia/events@4.0.1': {}
    +  /@algolia/events@4.0.1:
    +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    +    dev: false
     
    -  '@algolia/logger-common@4.22.1': {}
    +  /@algolia/logger-common@4.22.1:
    +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    +    dev: false
     
    -  '@algolia/logger-console@4.22.1':
    +  /@algolia/logger-console@4.22.1:
    +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
         dependencies:
           '@algolia/logger-common': 4.22.1
    +    dev: false
     
    -  '@algolia/requester-browser-xhr@4.22.1':
    +  /@algolia/requester-browser-xhr@4.22.1:
    +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
         dependencies:
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@algolia/requester-common@4.22.1': {}
    +  /@algolia/requester-common@4.22.1:
    +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    +    dev: false
     
    -  '@algolia/requester-node-http@4.22.1':
    +  /@algolia/requester-node-http@4.22.1:
    +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
         dependencies:
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@algolia/transporter@4.22.1':
    +  /@algolia/transporter@4.22.1:
    +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
         dependencies:
           '@algolia/cache-common': 4.22.1
           '@algolia/logger-common': 4.22.1
           '@algolia/requester-common': 4.22.1
    +    dev: false
     
    -  '@alloc/quick-lru@5.2.0': {}
    +  /@alloc/quick-lru@5.2.0:
    +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  '@ampproject/remapping@2.3.0':
    +  /@ampproject/remapping@2.3.0:
    +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@babel/code-frame@7.24.2':
    +  /@babel/code-frame@7.24.2:
    +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/highlight': 7.24.2
           picocolors: 1.0.0
     
    -  '@babel/compat-data@7.24.1': {}
    +  /@babel/compat-data@7.24.1:
    +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/core@7.24.3':
    +  /@babel/core@7.24.3:
    +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@ampproject/remapping': 2.3.0
           '@babel/code-frame': 7.24.2
    @@ -9798,22 +962,30 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/generator@7.24.1':
    +  /@babel/generator@7.24.1:
    +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
           jsesc: 2.5.2
     
    -  '@babel/helper-annotate-as-pure@7.22.5':
    +  /@babel/helper-annotate-as-pure@7.22.5:
    +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    +  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
    +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-compilation-targets@7.23.6':
    +  /@babel/helper-compilation-targets@7.23.6:
    +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/helper-validator-option': 7.23.5
    @@ -9821,7 +993,11 @@ snapshots:
           lru-cache: 5.1.1
           semver: 6.3.1
     
    -  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
    +  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -9834,14 +1010,21 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           semver: 6.3.1
     
    -  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
    +  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           regexpu-core: 5.3.2
           semver: 6.3.1
     
    -  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
    +  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -9852,26 +1035,40 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/helper-environment-visitor@7.22.20': {}
    +  /@babel/helper-environment-visitor@7.22.20:
    +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-function-name@7.23.0':
    +  /@babel/helper-function-name@7.23.0:
    +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  '@babel/helper-hoist-variables@7.22.5':
    +  /@babel/helper-hoist-variables@7.22.5:
    +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-member-expression-to-functions@7.23.0':
    +  /@babel/helper-member-expression-to-functions@7.23.0:
    +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-module-imports@7.24.3':
    +  /@babel/helper-module-imports@7.24.3:
    +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
    +  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -9880,51 +1077,79 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           '@babel/helper-validator-identifier': 7.22.20
     
    -  '@babel/helper-optimise-call-expression@7.22.5':
    +  /@babel/helper-optimise-call-expression@7.22.5:
    +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-plugin-utils@7.24.0': {}
    +  /@babel/helper-plugin-utils@7.24.0:
    +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
    +  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-wrap-function': 7.22.20
     
    -  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
    +  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-member-expression-to-functions': 7.23.0
           '@babel/helper-optimise-call-expression': 7.22.5
     
    -  '@babel/helper-simple-access@7.22.5':
    +  /@babel/helper-simple-access@7.22.5:
    +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    +  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
    +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-split-export-declaration@7.22.6':
    +  /@babel/helper-split-export-declaration@7.22.6:
    +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/helper-string-parser@7.24.1': {}
    +  /@babel/helper-string-parser@7.24.1:
    +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-validator-identifier@7.22.20': {}
    +  /@babel/helper-validator-identifier@7.22.20:
    +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-validator-option@7.23.5': {}
    +  /@babel/helper-validator-option@7.23.5:
    +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    +    engines: {node: '>=6.9.0'}
     
    -  '@babel/helper-wrap-function@7.22.20':
    +  /@babel/helper-wrap-function@7.22.20:
    +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-function-name': 7.23.0
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  '@babel/helpers@7.24.1':
    +  /@babel/helpers@7.24.1:
    +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/traverse': 7.24.1
    @@ -9932,151 +1157,252 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/highlight@7.24.2':
    +  /@babel/highlight@7.24.2:
    +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           chalk: 2.4.2
           js-tokens: 4.0.0
           picocolors: 1.0.0
     
    -  '@babel/parser@7.24.1':
    +  /@babel/parser@7.24.1:
    +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    +    engines: {node: '>=6.0.0'}
    +    hasBin: true
         dependencies:
           '@babel/types': 7.24.0
     
    -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.13.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
    +  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    +    dev: true
     
    -  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
    +  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -10084,37 +1410,61 @@ snapshots:
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10126,95 +1476,159 @@ snapshots:
           '@babel/helper-split-export-declaration': 7.22.6
           globals: 11.12.0
     
    -  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/template': 7.24.0
     
    -  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
           '@babel/helper-function-name': 7.23.0
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-simple-access': 7.22.5
     
    -  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-hoist-variables': 7.22.5
    @@ -10222,36 +1636,60 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-validator-identifier': 7.22.20
     
    -  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -10259,37 +1697,61 @@ snapshots:
           '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10297,27 +1759,47 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10326,24 +1808,40 @@ snapshots:
           '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
           '@babel/types': 7.24.0
     
    -  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           regenerator-transform: 0.15.2
     
    -  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
    @@ -10354,34 +1852,59 @@ snapshots:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -10389,30 +1912,50 @@ snapshots:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
    +  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
    +  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -10498,14 +2041,21 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
    +  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/types': 7.24.0
           esutils: 2.0.3
     
    -  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
    +  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -10515,7 +2065,11 @@ snapshots:
           '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
           '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
    +  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -10524,24 +2078,34 @@ snapshots:
           '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
           '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  '@babel/regjsgen@0.8.0': {}
    +  /@babel/regjsgen@0.8.0:
    +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
     
    -  '@babel/runtime-corejs3@7.24.1':
    +  /@babel/runtime-corejs3@7.24.1:
    +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           core-js-pure: 3.36.1
           regenerator-runtime: 0.14.1
    +    dev: false
     
    -  '@babel/runtime@7.24.1':
    +  /@babel/runtime@7.24.1:
    +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           regenerator-runtime: 0.14.1
     
    -  '@babel/template@7.24.0':
    +  /@babel/template@7.24.0:
    +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
     
    -  '@babel/traverse@7.24.1':
    +  /@babel/traverse@7.24.1:
    +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/generator': 7.24.1
    @@ -10556,34 +2120,67 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@babel/types@7.24.0':
    +  /@babel/types@7.24.0:
    +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    +    engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/helper-string-parser': 7.24.1
           '@babel/helper-validator-identifier': 7.22.20
           to-fast-properties: 2.0.0
     
    -  '@bcoe/v8-coverage@0.2.3': {}
    +  /@bcoe/v8-coverage@0.2.3:
    +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    +    dev: true
     
    -  '@colors/colors@1.5.0':
    +  /@colors/colors@1.5.0:
    +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    +    engines: {node: '>=0.1.90'}
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@colors/colors@1.6.0': {}
    +  /@colors/colors@1.6.0:
    +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    +    engines: {node: '>=0.1.90'}
     
    -  '@cspotcode/source-map-support@0.8.1':
    +  /@cspotcode/source-map-support@0.8.1:
    +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    +    engines: {node: '>=12'}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.9
    +    dev: true
     
    -  '@dabh/diagnostics@2.0.3':
    +  /@dabh/diagnostics@2.0.3:
    +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
         dependencies:
           colorspace: 1.1.4
           enabled: 2.0.0
           kuler: 2.0.0
     
    -  '@discoveryjs/json-ext@0.5.7': {}
    +  /@discoveryjs/json-ext@0.5.7:
    +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    +    engines: {node: '>=10.0.0'}
     
    -  '@docsearch/css@3.6.0': {}
    +  /@docsearch/css@3.6.0:
    +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    +    dev: false
     
    -  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
    +  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
    +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    +    peerDependencies:
    +      '@types/react': '>= 16.8.0 < 19.0.0'
    +      react: '>= 16.8.0 < 19.0.0 || 18'
    +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    +      search-insights: '>= 1 < 3'
    +    peerDependenciesMeta:
    +      '@types/react':
    +        optional: true
    +      react:
    +        optional: true
    +      react-dom:
    +        optional: true
    +      search-insights:
    +        optional: true
         dependencies:
           '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -10595,8 +2192,15 @@ snapshots:
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
    +    dev: false
     
    -  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    +    engines: {node: '>=18.0'}
    +    hasBin: true
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -10651,7 +2255,7 @@ snapshots:
           react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
           react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
           react-router: 5.3.4(react@18.2.0)
           react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
    @@ -10687,20 +2291,32 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/cssnano-preset@3.1.1':
    +  /@docusaurus/cssnano-preset@3.1.1:
    +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    +    engines: {node: '>=18.0'}
         dependencies:
           cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
           postcss: 8.4.38
           postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/logger@3.1.1':
    +  /@docusaurus/logger@3.1.1:
    +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    +    engines: {node: '>=18.0'}
         dependencies:
           chalk: 4.1.2
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/traverse': 7.24.1
    @@ -10737,8 +2353,13 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10749,7 +2370,7 @@ snapshots:
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
         transitivePeerDependencies:
           - '@swc/core'
           - esbuild
    @@ -10757,7 +2378,12 @@ snapshots:
           - uglify-js
           - webpack-cli
     
    -  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -10795,8 +2421,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -10832,8 +2464,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10862,8 +2500,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10890,8 +2534,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10916,8 +2566,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10943,8 +2599,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -10969,8 +2631,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -11000,8 +2668,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
    +  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -11038,14 +2712,23 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
    +  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
    +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    +    peerDependencies:
    +      react: '*'
         dependencies:
           '@types/react': 18.2.71
           prop-types: 15.8.1
           react: 18.2.0
     
    -  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11092,8 +2775,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11130,8 +2819,14 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
    +  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -11172,13 +2867,22 @@ snapshots:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    +    dev: false
    +    patched: true
     
    -  '@docusaurus/theme-translations@3.1.1':
    +  /@docusaurus/theme-translations@3.1.1:
    +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    +    engines: {node: '>=18.0'}
         dependencies:
           fs-extra: 11.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
    +  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@mdx-js/mdx': 3.0.1
           '@types/history': 4.7.11
    @@ -11198,12 +2902,22 @@ snapshots:
           - uglify-js
           - webpack-cli
     
    -  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
    +  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
    +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
         dependencies:
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           tslib: 2.6.2
    +    dev: false
     
    -  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
    +  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    +    engines: {node: '>=18.0'}
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
    @@ -11217,8 +2931,16 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
    +  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -11244,97 +2966,232 @@ snapshots:
           - supports-color
           - uglify-js
           - webpack-cli
    +    dev: false
     
    -  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
    +  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
    +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    +    peerDependencies:
    +      effect: 2.0.0-next.62
    +      fast-check: ^3.13.2
         dependencies:
           effect: 2.0.0-next.62
           fast-check: 3.15.0
    +    dev: true
     
    -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
    +  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
    +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      html-webpack-plugin: '>=5'
    +      webpack: '>=5'
         dependencies:
           escape-string-regexp: 4.0.0
           html-webpack-plugin: 5.6.0(webpack@5.91.0)
           slash: 3.0.0
           source-map-url: 0.4.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  '@esbuild/aix-ppc64@0.20.2':
    +  /@esbuild/aix-ppc64@0.20.2:
    +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [aix]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-arm64@0.20.2':
    +  /@esbuild/android-arm64@0.20.2:
    +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-arm@0.20.2':
    +  /@esbuild/android-arm@0.20.2:
    +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/android-x64@0.20.2':
    +  /@esbuild/android-x64@0.20.2:
    +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/darwin-arm64@0.20.2':
    +  /@esbuild/darwin-arm64@0.20.2:
    +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/darwin-x64@0.20.2':
    +  /@esbuild/darwin-x64@0.20.2:
    +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/freebsd-arm64@0.20.2':
    +  /@esbuild/freebsd-arm64@0.20.2:
    +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/freebsd-x64@0.20.2':
    +  /@esbuild/freebsd-x64@0.20.2:
    +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-arm64@0.20.2':
    +  /@esbuild/linux-arm64@0.20.2:
    +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-arm@0.20.2':
    +  /@esbuild/linux-arm@0.20.2:
    +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-ia32@0.20.2':
    +  /@esbuild/linux-ia32@0.20.2:
    +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-loong64@0.20.2':
    +  /@esbuild/linux-loong64@0.20.2:
    +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-mips64el@0.20.2':
    +  /@esbuild/linux-mips64el@0.20.2:
    +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-ppc64@0.20.2':
    +  /@esbuild/linux-ppc64@0.20.2:
    +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-riscv64@0.20.2':
    +  /@esbuild/linux-riscv64@0.20.2:
    +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-s390x@0.20.2':
    +  /@esbuild/linux-s390x@0.20.2:
    +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/linux-x64@0.20.2':
    +  /@esbuild/linux-x64@0.20.2:
    +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/netbsd-x64@0.20.2':
    +  /@esbuild/netbsd-x64@0.20.2:
    +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/openbsd-x64@0.20.2':
    +  /@esbuild/openbsd-x64@0.20.2:
    +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/sunos-x64@0.20.2':
    +  /@esbuild/sunos-x64@0.20.2:
    +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-arm64@0.20.2':
    +  /@esbuild/win32-arm64@0.20.2:
    +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-ia32@0.20.2':
    +  /@esbuild/win32-ia32@0.20.2:
    +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@esbuild/win32-x64@0.20.2':
    +  /@esbuild/win32-x64@0.20.2:
    +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
         optional: true
     
    -  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
    +  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 3.4.3
     
    -  '@eslint-community/regexpp@4.10.0': {}
    +  /@eslint-community/regexpp@4.10.0:
    +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
     
    -  '@eslint/eslintrc@2.1.4':
    +  /@eslint/eslintrc@2.1.4:
    +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           ajv: 6.12.6
           debug: 4.3.4(supports-color@8.1.1)
    @@ -11348,35 +3205,62 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@eslint/js@8.57.0': {}
    +  /@eslint/js@8.57.0:
    +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     
    -  '@fortawesome/fontawesome-common-types@6.5.1': {}
    +  /@fortawesome/fontawesome-common-types@6.5.1:
    +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
    +    dev: false
     
    -  '@fortawesome/fontawesome-svg-core@6.5.1':
    +  /@fortawesome/fontawesome-svg-core@6.5.1:
    +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    +    dev: false
     
    -  '@fortawesome/free-solid-svg-icons@6.5.1':
    +  /@fortawesome/free-solid-svg-icons@6.5.1:
    +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    +    engines: {node: '>=6'}
    +    requiresBuild: true
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    +    dev: false
     
    -  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
    +  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
    +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    +    peerDependencies:
    +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    +      react: '>=16.3 || 18'
         dependencies:
           '@fortawesome/fontawesome-svg-core': 6.5.1
           prop-types: 15.8.1
           react: 18.2.0
    +    dev: false
     
    -  '@gar/promisify@1.1.3': {}
    +  /@gar/promisify@1.1.3:
    +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
     
    -  '@gwhitney/detect-indent@7.0.1': {}
    +  /@gwhitney/detect-indent@7.0.1:
    +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    +    engines: {node: '>=12.20'}
    +    dev: true
     
    -  '@hapi/hoek@9.3.0': {}
    +  /@hapi/hoek@9.3.0:
    +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
     
    -  '@hapi/topo@5.1.0':
    +  /@hapi/topo@5.1.0:
    +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  '@humanwhocodes/config-array@0.11.14':
    +  /@humanwhocodes/config-array@0.11.14:
    +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    +    engines: {node: '>=10.10.0'}
         dependencies:
           '@humanwhocodes/object-schema': 2.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -11384,32 +3268,46 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@humanwhocodes/module-importer@1.0.1': {}
    +  /@humanwhocodes/module-importer@1.0.1:
    +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    +    engines: {node: '>=12.22'}
     
    -  '@humanwhocodes/object-schema@2.0.2': {}
    +  /@humanwhocodes/object-schema@2.0.2:
    +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
     
    -  '@isaacs/cliui@8.0.2':
    +  /@isaacs/cliui@8.0.2:
    +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 5.1.2
    -      string-width-cjs: string-width@4.2.3
    +      string-width-cjs: /string-width@4.2.3
           strip-ansi: 7.1.0
    -      strip-ansi-cjs: strip-ansi@6.0.1
    +      strip-ansi-cjs: /strip-ansi@6.0.1
           wrap-ansi: 8.1.0
    -      wrap-ansi-cjs: wrap-ansi@7.0.0
    +      wrap-ansi-cjs: /wrap-ansi@7.0.0
     
    -  '@isaacs/string-locale-compare@1.1.0': {}
    +  /@isaacs/string-locale-compare@1.1.0:
    +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
     
    -  '@istanbuljs/load-nyc-config@1.1.0':
    +  /@istanbuljs/load-nyc-config@1.1.0:
    +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    +    engines: {node: '>=8'}
         dependencies:
           camelcase: 5.3.1
           find-up: 4.1.0
           get-package-type: 0.1.0
           js-yaml: 3.14.1
           resolve-from: 5.0.0
    +    dev: true
     
    -  '@istanbuljs/schema@0.1.3': {}
    +  /@istanbuljs/schema@0.1.3:
    +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  '@jest/console@29.7.0':
    +  /@jest/console@29.7.0:
    +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -11417,8 +3315,16 @@ snapshots:
           jest-message-util: 29.7.0
           jest-util: 29.7.0
           slash: 3.0.0
    +    dev: true
     
    -  '@jest/core@29.7.0(ts-node@10.9.2)':
    +  /@jest/core@29.7.0(ts-node@10.9.2):
    +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/console': 29.7.0
           '@jest/reporters': 29.7.0
    @@ -11452,26 +3358,38 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  '@jest/environment@29.7.0':
    +  /@jest/environment@29.7.0:
    +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/fake-timers': 29.7.0
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-mock: 29.7.0
    +    dev: true
     
    -  '@jest/expect-utils@29.7.0':
    +  /@jest/expect-utils@29.7.0:
    +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.6.3
    +    dev: true
     
    -  '@jest/expect@29.7.0':
    +  /@jest/expect@29.7.0:
    +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           expect: 29.7.0
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/fake-timers@29.7.0':
    +  /@jest/fake-timers@29.7.0:
    +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@sinonjs/fake-timers': 10.3.0
    @@ -11479,8 +3397,11 @@ snapshots:
           jest-message-util: 29.7.0
           jest-mock: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  '@jest/globals@29.7.0':
    +  /@jest/globals@29.7.0:
    +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -11488,8 +3409,16 @@ snapshots:
           jest-mock: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/reporters@29.7.0':
    +  /@jest/reporters@29.7.0:
    +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@bcoe/v8-coverage': 0.2.3
           '@jest/console': 29.7.0
    @@ -11517,32 +3446,46 @@ snapshots:
           v8-to-istanbul: 9.2.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/schemas@29.6.3':
    +  /@jest/schemas@29.6.3:
    +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@sinclair/typebox': 0.27.8
     
    -  '@jest/source-map@29.6.3':
    +  /@jest/source-map@29.6.3:
    +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           callsites: 3.1.0
           graceful-fs: 4.2.11
    +    dev: true
     
    -  '@jest/test-result@29.7.0':
    +  /@jest/test-result@29.7.0:
    +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/console': 29.7.0
           '@jest/types': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
           collect-v8-coverage: 1.0.2
    +    dev: true
     
    -  '@jest/test-sequencer@29.7.0':
    +  /@jest/test-sequencer@29.7.0:
    +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/test-result': 29.7.0
           graceful-fs: 4.2.11
           jest-haste-map: 29.7.0
           slash: 3.0.0
    +    dev: true
     
    -  '@jest/transform@29.7.0':
    +  /@jest/transform@29.7.0:
    +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.24.3
           '@jest/types': 29.6.3
    @@ -11561,8 +3504,11 @@ snapshots:
           write-file-atomic: 4.0.2
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@jest/types@29.6.3':
    +  /@jest/types@29.6.3:
    +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
    @@ -11571,44 +3517,61 @@ snapshots:
           '@types/yargs': 17.0.32
           chalk: 4.1.2
     
    -  '@jridgewell/gen-mapping@0.3.5':
    +  /@jridgewell/gen-mapping@0.3.5:
    +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           '@jridgewell/set-array': 1.2.1
           '@jridgewell/sourcemap-codec': 1.4.15
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@jridgewell/resolve-uri@3.1.2': {}
    +  /@jridgewell/resolve-uri@3.1.2:
    +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    +    engines: {node: '>=6.0.0'}
     
    -  '@jridgewell/set-array@1.2.1': {}
    +  /@jridgewell/set-array@1.2.1:
    +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    +    engines: {node: '>=6.0.0'}
     
    -  '@jridgewell/source-map@0.3.6':
    +  /@jridgewell/source-map@0.3.6:
    +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  '@jridgewell/sourcemap-codec@1.4.15': {}
    +  /@jridgewell/sourcemap-codec@1.4.15:
    +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
     
    -  '@jridgewell/trace-mapping@0.3.25':
    +  /@jridgewell/trace-mapping@0.3.25:
    +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
     
    -  '@jridgewell/trace-mapping@0.3.9':
    +  /@jridgewell/trace-mapping@0.3.9:
    +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
    +    dev: true
     
    -  '@leichtgewicht/ip-codec@2.0.4': {}
    +  /@leichtgewicht/ip-codec@2.0.4:
    +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
     
    -  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
    +  /@mdx-js/loader@3.0.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    +    peerDependencies:
    +      webpack: '>=5'
         dependencies:
           '@mdx-js/mdx': 3.0.1
           source-map: 0.7.4
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@mdx-js/mdx@3.0.1':
    +  /@mdx-js/mdx@3.0.1:
    +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -11636,66 +3599,150 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
    +  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
    +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    +    peerDependencies:
    +      '@types/react': '>=16'
    +      react: '>=16 || 18'
         dependencies:
           '@types/mdx': 2.0.12
           '@types/react': 18.2.71
           react: 18.2.0
    +    dev: false
     
    -  '@msgpack/msgpack@2.8.0': {}
    +  /@msgpack/msgpack@2.8.0:
    +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    +    engines: {node: '>= 10'}
     
    -  '@next/env@14.1.4': {}
    +  /@next/env@14.1.4:
    +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    +    dev: false
     
    -  '@next/eslint-plugin-next@14.1.4':
    +  /@next/eslint-plugin-next@14.1.4:
    +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
         dependencies:
           glob: 10.3.10
    +    dev: true
     
    -  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
    +  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
    +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    +    peerDependencies:
    +      '@mdx-js/loader': '>=0.15.0'
    +      '@mdx-js/react': '>=0.15.0'
    +    peerDependenciesMeta:
    +      '@mdx-js/loader':
    +        optional: true
    +      '@mdx-js/react':
    +        optional: true
         dependencies:
           '@mdx-js/loader': 3.0.1(webpack@5.91.0)
           '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
           source-map: 0.7.4
    +    dev: false
     
    -  '@next/swc-darwin-arm64@14.1.4':
    +  /@next/swc-darwin-arm64@14.1.4:
    +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-darwin-x64@14.1.4':
    +  /@next/swc-darwin-x64@14.1.4:
    +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-arm64-gnu@14.1.4':
    +  /@next/swc-linux-arm64-gnu@14.1.4:
    +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-arm64-musl@14.1.4':
    +  /@next/swc-linux-arm64-musl@14.1.4:
    +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-x64-gnu@14.1.4':
    +  /@next/swc-linux-x64-gnu@14.1.4:
    +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-linux-x64-musl@14.1.4':
    +  /@next/swc-linux-x64-musl@14.1.4:
    +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-arm64-msvc@14.1.4':
    +  /@next/swc-win32-arm64-msvc@14.1.4:
    +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-ia32-msvc@14.1.4':
    +  /@next/swc-win32-ia32-msvc@14.1.4:
    +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    +    engines: {node: '>= 10'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@next/swc-win32-x64-msvc@14.1.4':
    +  /@next/swc-win32-x64-msvc@14.1.4:
    +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: false
         optional: true
     
    -  '@nodelib/fs.scandir@2.1.5':
    +  /@nodelib/fs.scandir@2.1.5:
    +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    +    engines: {node: '>= 8'}
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           run-parallel: 1.2.0
     
    -  '@nodelib/fs.stat@2.0.5': {}
    +  /@nodelib/fs.stat@2.0.5:
    +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    +    engines: {node: '>= 8'}
     
    -  '@nodelib/fs.walk@1.2.8':
    +  /@nodelib/fs.walk@1.2.8:
    +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    +    engines: {node: '>= 8'}
         dependencies:
           '@nodelib/fs.scandir': 2.1.5
           fastq: 1.17.1
     
    -  '@npmcli/arborist@4.3.1':
    +  /@npmcli/arborist@4.3.1:
    +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
         dependencies:
           '@isaacs/string-locale-compare': 1.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -11733,21 +3780,27 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/fs@1.1.1':
    +  /@npmcli/fs@1.1.1:
    +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  '@npmcli/fs@2.1.2':
    +  /@npmcli/fs@2.1.2:
    +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  '@npmcli/fs@3.1.0':
    +  /@npmcli/fs@3.1.0:
    +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           semver: 7.6.0
     
    -  '@npmcli/git@2.1.0':
    +  /@npmcli/git@2.1.0:
    +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
         dependencies:
           '@npmcli/promise-spawn': 1.3.2
           lru-cache: 6.0.0
    @@ -11760,7 +3813,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  '@npmcli/git@4.1.0':
    +  /@npmcli/git@4.1.0:
    +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/promise-spawn': 6.0.2
           lru-cache: 7.18.3
    @@ -11773,24 +3828,34 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  '@npmcli/installed-package-contents@1.0.7':
    +  /@npmcli/installed-package-contents@1.0.7:
    +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    +    engines: {node: '>= 10'}
    +    hasBin: true
         dependencies:
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  '@npmcli/installed-package-contents@2.0.2':
    +  /@npmcli/installed-package-contents@2.0.2:
    +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           npm-bundled: 3.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  '@npmcli/map-workspaces@2.0.4':
    +  /@npmcli/map-workspaces@2.0.4:
    +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@npmcli/name-from-folder': 1.0.1
           glob: 8.1.0
           minimatch: 5.1.6
           read-package-json-fast: 2.0.3
     
    -  '@npmcli/metavuln-calculator@2.0.0':
    +  /@npmcli/metavuln-calculator@2.0.0:
    +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
         dependencies:
           cacache: 15.3.0
           json-parse-even-better-errors: 2.3.1
    @@ -11800,35 +3865,50 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/move-file@1.1.2':
    +  /@npmcli/move-file@1.1.2:
    +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    +    engines: {node: '>=10'}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  '@npmcli/move-file@2.0.1':
    +  /@npmcli/move-file@2.0.1:
    +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  '@npmcli/name-from-folder@1.0.1': {}
    +  /@npmcli/name-from-folder@1.0.1:
    +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
     
    -  '@npmcli/node-gyp@1.0.3': {}
    +  /@npmcli/node-gyp@1.0.3:
    +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
     
    -  '@npmcli/node-gyp@3.0.0': {}
    +  /@npmcli/node-gyp@3.0.0:
    +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@npmcli/package-json@1.0.1':
    +  /@npmcli/package-json@1.0.1:
    +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
         dependencies:
           json-parse-even-better-errors: 2.3.1
     
    -  '@npmcli/promise-spawn@1.3.2':
    +  /@npmcli/promise-spawn@1.3.2:
    +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
         dependencies:
           infer-owner: 1.0.4
     
    -  '@npmcli/promise-spawn@6.0.2':
    +  /@npmcli/promise-spawn@6.0.2:
    +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           which: 3.0.1
     
    -  '@npmcli/run-script@2.0.0':
    +  /@npmcli/run-script@2.0.0:
    +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
         dependencies:
           '@npmcli/node-gyp': 1.0.3
           '@npmcli/promise-spawn': 1.3.2
    @@ -11838,7 +3918,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@npmcli/run-script@6.0.2':
    +  /@npmcli/run-script@6.0.2:
    +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/node-gyp': 3.0.0
           '@npmcli/promise-spawn': 6.0.2
    @@ -11849,11 +3931,13 @@ snapshots:
           - bluebird
           - supports-color
     
    -  '@octokit/auth-token@2.5.0':
    +  /@octokit/auth-token@2.5.0:
    +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
         dependencies:
           '@octokit/types': 6.41.0
     
    -  '@octokit/core@3.6.0':
    +  /@octokit/core@3.6.0:
    +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
         dependencies:
           '@octokit/auth-token': 2.5.0
           '@octokit/graphql': 4.8.0
    @@ -11865,13 +3949,15 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/endpoint@6.0.12':
    +  /@octokit/endpoint@6.0.12:
    +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
         dependencies:
           '@octokit/types': 6.41.0
           is-plain-object: 5.0.0
           universal-user-agent: 6.0.1
     
    -  '@octokit/graphql@4.8.0':
    +  /@octokit/graphql@4.8.0:
    +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
         dependencies:
           '@octokit/request': 5.6.3
           '@octokit/types': 6.41.0
    @@ -11879,30 +3965,42 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/openapi-types@12.11.0': {}
    +  /@octokit/openapi-types@12.11.0:
    +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
     
    -  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
    +  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    +    peerDependencies:
    +      '@octokit/core': '>=2'
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
     
    -  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
    +  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
         dependencies:
           '@octokit/core': 3.6.0
     
    -  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
    +  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
    +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
     
    -  '@octokit/request-error@2.1.0':
    +  /@octokit/request-error@2.1.0:
    +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
         dependencies:
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
           once: 1.4.0
     
    -  '@octokit/request@5.6.3':
    +  /@octokit/request@5.6.3:
    +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
         dependencies:
           '@octokit/endpoint': 6.0.12
           '@octokit/request-error': 2.1.0
    @@ -11913,7 +4011,8 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/rest@18.12.0':
    +  /@octokit/rest@18.12.0:
    +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
    @@ -11922,19 +4021,30 @@ snapshots:
         transitivePeerDependencies:
           - encoding
     
    -  '@octokit/types@6.41.0':
    +  /@octokit/types@6.41.0:
    +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
         dependencies:
           '@octokit/openapi-types': 12.11.0
     
    -  '@pkgjs/parseargs@0.11.0':
    +  /@pkgjs/parseargs@0.11.0:
    +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    +    engines: {node: '>=14'}
    +    requiresBuild: true
         optional: true
     
    -  '@pnpm/cli-meta@5.0.1':
    +  /@pnpm/cli-meta@5.0.1:
    +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
           load-json-file: 6.2.0
    +    dev: true
     
    -  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
    +  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/cli-meta': 5.0.1
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
    @@ -11947,10 +4057,15 @@ snapshots:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           load-json-file: 6.2.0
    +    dev: true
     
    -  '@pnpm/config.env-replace@1.1.0': {}
    +  /@pnpm/config.env-replace@1.1.0:
    +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    +    engines: {node: '>=12.22.0'}
     
    -  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/constants': 7.1.0
    @@ -11970,44 +4085,80 @@ snapshots:
           normalize-registry-url: 2.0.0
           path-absolute: 1.0.1
           path-name: 1.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           read-ini-file: 4.0.0
           realpath-missing: 1.1.0
           which: 3.0.1
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/constants@6.2.0': {}
    +  /@pnpm/constants@6.2.0:
    +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    +    engines: {node: '>=14.6'}
    +    dev: false
     
    -  '@pnpm/constants@7.1.0': {}
    +  /@pnpm/constants@7.1.0:
    +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/constants@7.1.1': {}
    +  /@pnpm/constants@7.1.1:
    +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/constants@8.0.0': {}
    +  /@pnpm/constants@8.0.0:
    +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/crypto.base32-hash@3.0.0':
    +  /@pnpm/crypto.base32-hash@3.0.0:
    +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           rfc4648: 1.5.3
    +    dev: false
     
    -  '@pnpm/dedupe.issues-renderer@1.0.0':
    +  /@pnpm/dedupe.issues-renderer@1.0.0:
    +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/dedupe.types': 1.0.0
           archy: 1.0.0
           chalk: 4.1.2
    +    dev: true
     
    -  '@pnpm/dedupe.types@1.0.0': {}
    +  /@pnpm/dedupe.types@1.0.0:
    +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
    +  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
    @@ -12023,37 +4174,57 @@ snapshots:
           normalize-path: 3.0.0
           pretty-bytes: 5.6.0
           pretty-ms: 7.0.1
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           right-pad: 1.0.1
           rxjs: 7.8.1
           semver: 7.6.0
           stacktracey: 2.1.8
           string-length: 4.0.2
           strip-ansi: 6.0.1
    +    dev: true
     
    -  '@pnpm/dependency-path@3.0.0':
    +  /@pnpm/dependency-path@3.0.0:
    +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/crypto.base32-hash': 3.0.0
           '@pnpm/types': 10.0.0
           semver: 7.6.0
    +    dev: false
     
    -  '@pnpm/error@4.0.1':
    +  /@pnpm/error@4.0.1:
    +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    +    engines: {node: '>=14.6'}
         dependencies:
           '@pnpm/constants': 6.2.0
    +    dev: false
     
    -  '@pnpm/error@5.0.1':
    +  /@pnpm/error@5.0.1:
    +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/constants': 7.1.0
    +    dev: true
     
    -  '@pnpm/error@5.0.3':
    +  /@pnpm/error@5.0.3:
    +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/constants': 7.1.1
    +    dev: true
     
    -  '@pnpm/error@6.0.0':
    +  /@pnpm/error@6.0.0:
    +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/constants': 8.0.0
    +    dev: false
     
    -  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
    +  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
           '@pnpm/fetching-types': 6.0.0
    @@ -12061,30 +4232,42 @@ snapshots:
           '@pnpm/network.agent': 1.0.1
           '@pnpm/types': 10.0.0
           '@zkochan/retry': 0.2.0
    -      node-fetch: '@pnpm/node-fetch@1.0.0'
    +      node-fetch: /@pnpm/node-fetch@1.0.0
         transitivePeerDependencies:
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/fetcher-base@14.0.1':
    +  /@pnpm/fetcher-base@14.0.1:
    +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
           '@types/ssri': 7.1.5
    +    dev: true
     
    -  '@pnpm/fetching-types@6.0.0':
    +  /@pnpm/fetching-types@6.0.0:
    +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@zkochan/retry': 0.2.0
    -      node-fetch: '@pnpm/node-fetch@1.0.0'
    +      node-fetch: /@pnpm/node-fetch@1.0.0
         transitivePeerDependencies:
           - domexception
    +    dev: false
     
    -  '@pnpm/find-workspace-dir@6.0.3':
    +  /@pnpm/find-workspace-dir@6.0.3:
    +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/error': 5.0.3
           find-up: 5.0.0
    +    dev: true
     
    -  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
    +  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
           '@pnpm/constants': 7.1.0
    @@ -12094,49 +4277,75 @@ snapshots:
           read-yaml-file: 2.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/fs.find-packages@2.0.1':
    +  /@pnpm/fs.find-packages@2.0.1:
    +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/read-project-manifest': 5.0.1
           '@pnpm/types': 9.1.0
           '@pnpm/util.lex-comparator': 1.0.0
           fast-glob: 3.3.2
           p-filter: 2.1.0
    +    dev: true
     
    -  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
           '@pnpm/resolver-base': 12.0.0
           graceful-git: 3.1.2
    -      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
    +      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
           semver: 7.6.0
         transitivePeerDependencies:
           - '@pnpm/logger'
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/git-utils@1.0.0':
    +  /@pnpm/git-utils@1.0.0:
    +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    +    engines: {node: '>=16.14'}
         dependencies:
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
    +    dev: true
     
    -  '@pnpm/git-utils@2.0.0':
    +  /@pnpm/git-utils@2.0.0:
    +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    +    engines: {node: '>=18.12'}
         dependencies:
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
    +    dev: false
     
    -  '@pnpm/graceful-fs@3.0.0':
    +  /@pnpm/graceful-fs@3.0.0:
    +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           graceful-fs: 4.2.11
    +    dev: true
     
    -  '@pnpm/hooks.types@1.0.1':
    +  /@pnpm/hooks.types@1.0.1:
    +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/lockfile-types': 5.1.0
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/hosted-git-info@1.0.0':
    +  /@pnpm/hosted-git-info@1.0.0:
    +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    +    engines: {node: '>=10'}
         dependencies:
           lru-cache: 6.0.0
    +    dev: false
     
    -  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
    +  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/constants': 8.0.0
           '@pnpm/dependency-path': 3.0.0
    @@ -12151,9 +4360,9 @@ snapshots:
           '@pnpm/util.lex-comparator': 3.0.0
           '@zkochan/rimraf': 2.1.3
           comver-to-semver: 1.0.0
    -      js-yaml: '@zkochan/js-yaml@0.0.7'
    +      js-yaml: /@zkochan/js-yaml@0.0.7
           normalize-path: 3.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           semver: 7.6.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    @@ -12161,16 +4370,25 @@ snapshots:
         transitivePeerDependencies:
           - domexception
           - supports-color
    +    dev: false
     
    -  '@pnpm/lockfile-types@5.1.0':
    +  /@pnpm/lockfile-types@5.1.0:
    +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/lockfile-types@6.0.0':
    +  /@pnpm/lockfile-types@6.0.0:
    +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/lockfile-utils@10.0.0':
    +  /@pnpm/lockfile-utils@10.0.0:
    +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/dependency-path': 3.0.0
           '@pnpm/lockfile-types': 6.0.0
    @@ -12178,33 +4396,48 @@ snapshots:
           '@pnpm/resolver-base': 12.0.0
           '@pnpm/types': 10.0.0
           get-npm-tarball-url: 2.1.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
    +    dev: false
     
    -  '@pnpm/logger@5.0.0':
    +  /@pnpm/logger@5.0.0:
    +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    +    engines: {node: '>=12.17'}
         dependencies:
           bole: 5.0.11
           ndjson: 2.0.0
     
    -  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
    +  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/types': 9.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    +    dev: true
     
    -  '@pnpm/matcher@5.0.0':
    +  /@pnpm/matcher@5.0.0:
    +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           escape-string-regexp: 4.0.0
    +    dev: true
     
    -  '@pnpm/merge-lockfile-changes@6.0.0':
    +  /@pnpm/merge-lockfile-changes@6.0.0:
    +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/lockfile-types': 6.0.0
           comver-to-semver: 1.0.0
    -      ramda: '@pnpm/ramda@0.28.1'
    +      ramda: /@pnpm/ramda@0.28.1
           semver: 7.6.0
    +    dev: false
     
    -  '@pnpm/meta-updater@1.0.0':
    +  /@pnpm/meta-updater@1.0.0:
    +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    +    engines: {node: '>=10.12'}
    +    hasBin: true
         dependencies:
           '@pnpm/find-workspace-dir': 6.0.3
           '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
    @@ -12215,8 +4448,11 @@ snapshots:
           print-diff: 1.0.0
           ramda: 0.29.1
           write-json-file: 5.0.0
    +    dev: true
     
    -  '@pnpm/network.agent@1.0.1':
    +  /@pnpm/network.agent@1.0.1:
    +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           '@pnpm/network.config': 1.0.1
           '@pnpm/network.proxy-agent': 1.0.1
    @@ -12224,16 +4460,24 @@ snapshots:
           lru-cache: 7.10.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@pnpm/network.ca-file@1.0.2':
    +  /@pnpm/network.ca-file@1.0.2:
    +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           graceful-fs: 4.2.10
     
    -  '@pnpm/network.config@1.0.1':
    +  /@pnpm/network.config@1.0.1:
    +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           nerf-dart: 1.0.0
    +    dev: false
     
    -  '@pnpm/network.proxy-agent@1.0.1':
    +  /@pnpm/network.proxy-agent@1.0.1:
    +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    +    engines: {node: '>=12.22.0'}
         dependencies:
           '@pnpm/error': 4.0.1
           http-proxy-agent: 5.0.0
    @@ -12242,40 +4486,62 @@ snapshots:
           socks-proxy-agent: 6.1.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@pnpm/node-fetch@1.0.0':
    +  /@pnpm/node-fetch@1.0.0:
    +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    +    engines: {node: ^10.17 || >=12.3}
         dependencies:
           data-uri-to-buffer: 3.0.1
           fetch-blob: 2.1.2
         transitivePeerDependencies:
           - domexception
    +    dev: false
     
    -  '@pnpm/npm-conf@2.2.0':
    +  /@pnpm/npm-conf@2.2.0:
    +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    +    engines: {node: '>=12'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    +    dev: true
     
    -  '@pnpm/npm-conf@2.2.2':
    +  /@pnpm/npm-conf@2.2.2:
    +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    +    engines: {node: '>=12'}
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    +    dev: false
     
    -  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
    +  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
           detect-libc: 2.0.3
    -      execa: safe-execa@0.1.2
    +      execa: /safe-execa@0.1.2
           mem: 8.1.1
           semver: 7.6.0
    +    dev: true
     
    -  '@pnpm/pick-fetcher@3.0.0': {}
    +  /@pnpm/pick-fetcher@3.0.0:
    +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
    +  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
    +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
    @@ -12286,10 +4552,14 @@ snapshots:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           path-absolute: 1.0.1
    +    dev: true
     
    -  '@pnpm/ramda@0.28.1': {}
    +  /@pnpm/ramda@0.28.1:
    +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
     
    -  '@pnpm/read-project-manifest@5.0.1':
    +  /@pnpm/read-project-manifest@5.0.1:
    +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@gwhitney/detect-indent': 7.0.1
           '@pnpm/error': 5.0.1
    @@ -12304,69 +4574,116 @@ snapshots:
           read-yaml-file: 2.1.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    +    dev: true
     
    -  '@pnpm/render-peer-issues@4.0.1':
    +  /@pnpm/render-peer-issues@4.0.1:
    +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
           archy: 1.0.0
           chalk: 4.1.2
           cli-columns: 4.0.0
    +    dev: true
     
    -  '@pnpm/resolver-base@10.0.1':
    +  /@pnpm/resolver-base@10.0.1:
    +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/resolver-base@12.0.0':
    +  /@pnpm/resolver-base@12.0.0:
    +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    +    engines: {node: '>=18.12'}
         dependencies:
           '@pnpm/types': 10.0.0
    +    dev: false
     
    -  '@pnpm/store-controller-types@15.0.1':
    +  /@pnpm/store-controller-types@15.0.1:
    +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/fetcher-base': 14.0.1
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
    +    dev: true
     
    -  '@pnpm/text.comments-parser@2.0.0':
    +  /@pnpm/text.comments-parser@2.0.0:
    +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           strip-comments-strings: 1.2.0
    +    dev: true
     
    -  '@pnpm/types@10.0.0': {}
    +  /@pnpm/types@10.0.0:
    +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/types@9.1.0': {}
    +  /@pnpm/types@9.1.0:
    +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/types@9.4.2': {}
    +  /@pnpm/types@9.4.2:
    +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    +    engines: {node: '>=16.14'}
    +    dev: true
     
    -  '@pnpm/util.lex-comparator@1.0.0': {}
    +  /@pnpm/util.lex-comparator@1.0.0:
    +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    +    engines: {node: '>=12.22.0'}
    +    dev: true
     
    -  '@pnpm/util.lex-comparator@3.0.0': {}
    +  /@pnpm/util.lex-comparator@3.0.0:
    +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    +    engines: {node: '>=18.12'}
    +    dev: false
     
    -  '@pnpm/write-project-manifest@5.0.1':
    +  /@pnpm/write-project-manifest@5.0.1:
    +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    +    engines: {node: '>=16.14'}
         dependencies:
           '@pnpm/text.comments-parser': 2.0.0
           '@pnpm/types': 9.1.0
           json5: 2.2.3
           write-file-atomic: 5.0.1
           write-yaml-file: 5.0.0
    +    dev: true
     
    -  '@polka/url@1.0.0-next.25': {}
    +  /@polka/url@1.0.0-next.25:
    +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    +    dev: false
     
    -  '@rushstack/eslint-patch@1.8.0': {}
    +  /@rushstack/eslint-patch@1.8.0:
    +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    +    dev: true
     
    -  '@sideway/address@4.1.5':
    +  /@sideway/address@4.1.5:
    +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  '@sideway/formula@3.0.1': {}
    +  /@sideway/formula@3.0.1:
    +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
     
    -  '@sideway/pinpoint@2.0.0': {}
    +  /@sideway/pinpoint@2.0.0:
    +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
     
    -  '@sigstore/bundle@1.1.0':
    +  /@sigstore/bundle@1.1.0:
    +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
     
    -  '@sigstore/protobuf-specs@0.2.1': {}
    +  /@sigstore/protobuf-specs@0.2.1:
    +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@sigstore/sign@1.0.0':
    +  /@sigstore/sign@1.0.0:
    +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -12374,112 +4691,210 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  '@sigstore/tuf@1.0.3':
    +  /@sigstore/tuf@1.0.3:
    +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
           tuf-js: 1.1.7
         transitivePeerDependencies:
           - supports-color
     
    -  '@sinclair/typebox@0.27.8': {}
    +  /@sinclair/typebox@0.27.8:
    +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
     
    -  '@sindresorhus/is@4.6.0': {}
    +  /@sindresorhus/is@4.6.0:
    +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  '@sindresorhus/is@5.6.0': {}
    +  /@sindresorhus/is@5.6.0:
    +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  '@sinonjs/commons@2.0.0':
    +  /@sinonjs/commons@2.0.0:
    +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
         dependencies:
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/commons@3.0.1':
    +  /@sinonjs/commons@3.0.1:
    +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
         dependencies:
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/fake-timers@10.3.0':
    +  /@sinonjs/fake-timers@10.3.0:
    +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
         dependencies:
           '@sinonjs/commons': 3.0.1
    +    dev: true
     
    -  '@sinonjs/fake-timers@11.2.2':
    +  /@sinonjs/fake-timers@11.2.2:
    +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
         dependencies:
           '@sinonjs/commons': 3.0.1
    +    dev: true
     
    -  '@sinonjs/samsam@8.0.0':
    +  /@sinonjs/samsam@8.0.0:
    +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
         dependencies:
           '@sinonjs/commons': 2.0.0
           lodash.get: 4.4.2
           type-detect: 4.0.8
    +    dev: true
     
    -  '@sinonjs/text-encoding@0.7.2': {}
    +  /@sinonjs/text-encoding@0.7.2:
    +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    +    dev: true
     
    -  '@slorber/remark-comment@1.0.0':
    +  /@slorber/remark-comment@1.0.0:
    +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
         dependencies:
           micromark-factory-space: 1.1.0
           micromark-util-character: 1.2.0
           micromark-util-symbol: 1.1.0
    +    dev: false
     
    -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    +  /@slorber/static-site-generator-webpack-plugin@4.0.7:
    +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    +    engines: {node: '>=14'}
         dependencies:
           eval: 0.1.8
           p-map: 4.0.0
           webpack-sources: 3.2.3
    +    dev: false
     
    -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
     
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: false
     
    -  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
    +  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
    +    dev: true
     
    -  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
    +  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
    @@ -12490,8 +4905,13 @@ snapshots:
           '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
    +    dev: false
     
    -  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
    +  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
    @@ -12502,8 +4922,11 @@ snapshots:
           '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
    +    dev: true
     
    -  '@svgr/core@6.5.1':
    +  /@svgr/core@6.5.1:
    +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -12512,8 +4935,11 @@ snapshots:
           cosmiconfig: 7.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/core@8.1.0(typescript@5.4.3)':
    +  /@svgr/core@8.1.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -12523,18 +4949,29 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@svgr/hast-util-to-babel-ast@6.5.1':
    +  /@svgr/hast-util-to-babel-ast@6.5.1:
    +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    +    dev: false
     
    -  '@svgr/hast-util-to-babel-ast@8.0.0':
    +  /@svgr/hast-util-to-babel-ast@8.0.0:
    +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    +    dev: true
     
    -  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
    +  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
    +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': ^6.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -12543,8 +4980,13 @@ snapshots:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
    +  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
    +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -12553,15 +4995,25 @@ snapshots:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
    +  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
    +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@svgr/core': 6.5.1
           cosmiconfig: 7.1.0
           deepmerge: 4.3.1
           svgo: 2.8.0
    +    dev: false
     
    -  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
    +  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
         dependencies:
           '@svgr/core': 8.1.0(typescript@5.4.3)
           cosmiconfig: 8.3.6(typescript@5.4.3)
    @@ -12569,8 +5021,11 @@ snapshots:
           svgo: 3.2.0
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  '@svgr/webpack@6.5.1':
    +  /@svgr/webpack@6.5.1:
    +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -12582,8 +5037,11 @@ snapshots:
           '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  '@svgr/webpack@8.1.0(typescript@5.4.3)':
    +  /@svgr/webpack@8.1.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -12596,16 +5054,24 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@swc/helpers@0.5.2':
    +  /@swc/helpers@0.5.2:
    +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
         dependencies:
           tslib: 2.6.2
    +    dev: false
     
    -  '@szmarczak/http-timer@5.0.1':
    +  /@szmarczak/http-timer@5.0.1:
    +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    +    engines: {node: '>=14.16'}
         dependencies:
           defer-to-connect: 2.0.1
    +    dev: false
     
    -  '@testing-library/dom@9.3.4':
    +  /@testing-library/dom@9.3.4:
    +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/runtime': 7.24.1
    @@ -12615,336 +5081,495 @@ snapshots:
           dom-accessibility-api: 0.5.16
           lz-string: 1.5.0
           pretty-format: 27.5.1
    +    dev: true
     
    -  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
    +  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
         dependencies:
           '@babel/runtime': 7.24.1
           '@testing-library/dom': 9.3.4
           '@types/react-dom': 18.2.22
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
    +    dev: true
     
    -  '@tootallnate/once@1.1.2': {}
    +  /@tootallnate/once@1.1.2:
    +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    +    engines: {node: '>= 6'}
     
    -  '@tootallnate/once@2.0.0': {}
    +  /@tootallnate/once@2.0.0:
    +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    +    engines: {node: '>= 10'}
     
    -  '@trysound/sax@0.2.0': {}
    +  /@trysound/sax@0.2.0:
    +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    +    engines: {node: '>=10.13.0'}
     
    -  '@tsconfig/docusaurus@2.0.2': {}
    +  /@tsconfig/docusaurus@2.0.2:
    +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    +    dev: true
     
    -  '@tsconfig/node10@1.0.10': {}
    +  /@tsconfig/node10@1.0.10:
    +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    +    dev: true
     
    -  '@tsconfig/node12@1.0.11': {}
    +  /@tsconfig/node12@1.0.11:
    +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    +    dev: true
     
    -  '@tsconfig/node14@1.0.3': {}
    +  /@tsconfig/node14@1.0.3:
    +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    +    dev: true
     
    -  '@tsconfig/node16@1.0.4': {}
    +  /@tsconfig/node16@1.0.4:
    +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    +    dev: true
     
    -  '@tufjs/canonical-json@1.0.0': {}
    +  /@tufjs/canonical-json@1.0.0:
    +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  '@tufjs/models@1.0.4':
    +  /@tufjs/models@1.0.4:
    +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@tufjs/canonical-json': 1.0.0
           minimatch: 9.0.3
     
    -  '@types/acorn@4.0.6':
    +  /@types/acorn@4.0.6:
    +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  '@types/aria-query@5.0.4': {}
    +  /@types/aria-query@5.0.4:
    +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    +    dev: true
     
    -  '@types/babel__core@7.20.5':
    +  /@types/babel__core@7.20.5:
    +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
           '@types/babel__generator': 7.6.8
           '@types/babel__template': 7.4.4
           '@types/babel__traverse': 7.20.5
    +    dev: true
     
    -  '@types/babel__generator@7.6.8':
    +  /@types/babel__generator@7.6.8:
    +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
         dependencies:
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/babel__template@7.4.4':
    +  /@types/babel__template@7.4.4:
    +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/babel__traverse@7.20.5':
    +  /@types/babel__traverse@7.20.5:
    +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
         dependencies:
           '@babel/types': 7.24.0
    +    dev: true
     
    -  '@types/body-parser@1.19.5':
    +  /@types/body-parser@1.19.5:
    +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
         dependencies:
           '@types/connect': 3.4.38
           '@types/node': 18.18.2
     
    -  '@types/bonjour@3.5.13':
    +  /@types/bonjour@3.5.13:
    +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/chai@4.3.14': {}
    +  /@types/chai@4.3.14:
    +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
     
    -  '@types/connect-history-api-fallback@1.5.4':
    +  /@types/connect-history-api-fallback@1.5.4:
    +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
         dependencies:
           '@types/express-serve-static-core': 4.17.43
           '@types/node': 18.18.2
     
    -  '@types/connect@3.4.38':
    +  /@types/connect@3.4.38:
    +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/debug@4.1.12':
    +  /@types/debug@4.1.12:
    +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
         dependencies:
           '@types/ms': 0.7.34
     
    -  '@types/eslint-scope@3.7.7':
    +  /@types/eslint-scope@3.7.7:
    +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
         dependencies:
           '@types/eslint': 8.56.6
           '@types/estree': 1.0.5
     
    -  '@types/eslint@8.56.6':
    +  /@types/eslint@8.56.6:
    +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/json-schema': 7.0.15
     
    -  '@types/estree-jsx@1.0.5':
    +  /@types/estree-jsx@1.0.5:
    +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  '@types/estree@1.0.5': {}
    +  /@types/estree@1.0.5:
    +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
     
    -  '@types/expect@1.20.4': {}
    +  /@types/expect@1.20.4:
    +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
     
    -  '@types/express-serve-static-core@4.17.43':
    +  /@types/express-serve-static-core@4.17.43:
    +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
         dependencies:
           '@types/node': 18.18.2
           '@types/qs': 6.9.14
           '@types/range-parser': 1.2.7
           '@types/send': 0.17.4
     
    -  '@types/express@4.17.21':
    +  /@types/express@4.17.21:
    +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
         dependencies:
           '@types/body-parser': 1.19.5
           '@types/express-serve-static-core': 4.17.43
           '@types/qs': 6.9.14
           '@types/serve-static': 1.15.5
     
    -  '@types/fs-extra@11.0.4':
    +  /@types/fs-extra@11.0.4:
    +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
         dependencies:
           '@types/jsonfile': 6.1.4
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/glob@8.1.0':
    +  /@types/glob@8.1.0:
    +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
         dependencies:
           '@types/minimatch': 5.1.2
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/graceful-fs@4.1.9':
    +  /@types/graceful-fs@4.1.9:
    +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/gtag.js@0.0.12': {}
    +  /@types/gtag.js@0.0.12:
    +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    +    dev: false
     
    -  '@types/hast@3.0.4':
    +  /@types/hast@3.0.4:
    +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  '@types/history@4.7.11': {}
    +  /@types/history@4.7.11:
    +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
     
    -  '@types/html-minifier-terser@6.1.0': {}
    +  /@types/html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
     
    -  '@types/http-cache-semantics@4.0.4': {}
    +  /@types/http-cache-semantics@4.0.4:
    +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    +    dev: false
     
    -  '@types/http-errors@2.0.4': {}
    +  /@types/http-errors@2.0.4:
    +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
     
    -  '@types/http-proxy@1.17.14':
    +  /@types/http-proxy@1.17.14:
    +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/istanbul-lib-coverage@2.0.6': {}
    +  /@types/istanbul-lib-coverage@2.0.6:
    +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
     
    -  '@types/istanbul-lib-report@3.0.3':
    +  /@types/istanbul-lib-report@3.0.3:
    +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
         dependencies:
           '@types/istanbul-lib-coverage': 2.0.6
     
    -  '@types/istanbul-reports@3.0.4':
    +  /@types/istanbul-reports@3.0.4:
    +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
         dependencies:
           '@types/istanbul-lib-report': 3.0.3
     
    -  '@types/jest@29.5.12':
    +  /@types/jest@29.5.12:
    +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
         dependencies:
           expect: 29.7.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  '@types/js-cookie@2.2.7': {}
    +  /@types/js-cookie@2.2.7:
    +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    +    dev: false
     
    -  '@types/js-yaml@4.0.9': {}
    +  /@types/js-yaml@4.0.9:
    +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
     
    -  '@types/jsdom@20.0.1':
    +  /@types/jsdom@20.0.1:
    +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
         dependencies:
           '@types/node': 18.18.2
           '@types/tough-cookie': 4.0.5
           parse5: 7.1.2
    +    dev: true
     
    -  '@types/json-schema@7.0.15': {}
    +  /@types/json-schema@7.0.15:
    +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
     
    -  '@types/json5@0.0.29': {}
    +  /@types/json5@0.0.29:
    +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    +    dev: true
     
    -  '@types/jsonfile@6.1.4':
    +  /@types/jsonfile@6.1.4:
    +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/lodash@4.17.0': {}
    +  /@types/lodash@4.17.0:
    +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
     
    -  '@types/mdast@4.0.3':
    +  /@types/mdast@4.0.3:
    +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  '@types/mdx-js__react@1.5.8':
    +  /@types/mdx-js__react@1.5.8:
    +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/mdx@2.0.12': {}
    +  /@types/mdx@2.0.12:
    +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
     
    -  '@types/mime@1.3.5': {}
    +  /@types/mime@1.3.5:
    +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
     
    -  '@types/mime@3.0.4': {}
    +  /@types/mime@3.0.4:
    +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
     
    -  '@types/minimatch@3.0.5': {}
    +  /@types/minimatch@3.0.5:
    +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
     
    -  '@types/minimatch@5.1.2': {}
    +  /@types/minimatch@5.1.2:
    +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    +    dev: true
     
    -  '@types/minimist@1.2.5': {}
    +  /@types/minimist@1.2.5:
    +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    +    dev: true
     
    -  '@types/mocha@10.0.6': {}
    +  /@types/mocha@10.0.6:
    +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    +    dev: true
     
    -  '@types/moo@0.5.9': {}
    +  /@types/moo@0.5.9:
    +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    +    dev: true
     
    -  '@types/ms@0.7.34': {}
    +  /@types/ms@0.7.34:
    +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
     
    -  '@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)': {}
    +  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
    +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    +    dev: true
    +    patched: true
     
    -  '@types/node-forge@1.3.11':
    +  /@types/node-forge@1.3.11:
    +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/node@15.14.9': {}
    +  /@types/node@15.14.9:
    +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
     
    -  '@types/node@17.0.45': {}
    +  /@types/node@17.0.45:
    +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    +    dev: false
     
    -  '@types/node@18.18.2': {}
    +  /@types/node@18.18.2:
    +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
     
    -  '@types/normalize-package-data@2.4.4': {}
    +  /@types/normalize-package-data@2.4.4:
    +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
     
    -  '@types/normalize-path@3.0.2': {}
    +  /@types/normalize-path@3.0.2:
    +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    +    dev: false
     
    -  '@types/parse-json@4.0.2': {}
    +  /@types/parse-json@4.0.2:
    +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    +    dev: false
     
    -  '@types/prismjs@1.26.3': {}
    +  /@types/prismjs@1.26.3:
    +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    +    dev: false
     
    -  '@types/prop-types@15.7.12': {}
    +  /@types/prop-types@15.7.12:
    +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
     
    -  '@types/qs@6.9.14': {}
    +  /@types/qs@6.9.14:
    +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
     
    -  '@types/range-parser@1.2.7': {}
    +  /@types/range-parser@1.2.7:
    +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
     
    -  '@types/react-dom@18.2.22':
    +  /@types/react-dom@18.2.22:
    +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/react-helmet@6.1.11':
    +  /@types/react-helmet@6.1.11:
    +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
         dependencies:
           '@types/react': 18.2.71
    +    dev: true
     
    -  '@types/react-router-config@5.0.11':
    +  /@types/react-router-config@5.0.11:
    +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  '@types/react-router-dom@5.3.3':
    +  /@types/react-router-dom@5.3.3:
    +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  '@types/react-router@5.1.20':
    +  /@types/react-router@5.1.20:
    +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
     
    -  '@types/react@18.2.71':
    +  /@types/react@18.2.71:
    +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
         dependencies:
           '@types/prop-types': 15.7.12
           '@types/scheduler': 0.23.0
           csstype: 3.1.3
     
    -  '@types/retry@0.12.0': {}
    +  /@types/retry@0.12.0:
    +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    +    dev: false
     
    -  '@types/retry@0.12.2': {}
    +  /@types/retry@0.12.2:
    +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
     
    -  '@types/sax@1.2.7':
    +  /@types/sax@1.2.7:
    +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: false
     
    -  '@types/sbd@1.0.5': {}
    +  /@types/sbd@1.0.5:
    +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    +    dev: true
     
    -  '@types/scheduler@0.23.0': {}
    +  /@types/scheduler@0.23.0:
    +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
     
    -  '@types/semver@7.5.8': {}
    +  /@types/semver@7.5.8:
    +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    +    dev: true
     
    -  '@types/send@0.17.4':
    +  /@types/send@0.17.4:
    +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
         dependencies:
           '@types/mime': 1.3.5
           '@types/node': 18.18.2
     
    -  '@types/serve-index@1.9.4':
    +  /@types/serve-index@1.9.4:
    +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
         dependencies:
           '@types/express': 4.17.21
     
    -  '@types/serve-static@1.15.5':
    +  /@types/serve-static@1.15.5:
    +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
         dependencies:
           '@types/http-errors': 2.0.4
           '@types/mime': 3.0.4
           '@types/node': 18.18.2
     
    -  '@types/sinon@17.0.3':
    +  /@types/sinon@17.0.3:
    +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
         dependencies:
           '@types/sinonjs__fake-timers': 8.1.5
     
    -  '@types/sinonjs__fake-timers@8.1.5': {}
    +  /@types/sinonjs__fake-timers@8.1.5:
    +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
     
    -  '@types/sockjs@0.3.36':
    +  /@types/sockjs@0.3.36:
    +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/ssri@7.1.5':
    +  /@types/ssri@7.1.5:
    +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
         dependencies:
           '@types/node': 18.18.2
    +    dev: true
     
    -  '@types/stack-utils@2.0.3': {}
    +  /@types/stack-utils@2.0.3:
    +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    +    dev: true
    +
    +  /@types/tail@2.2.3:
    +    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
    +    dev: true
     
    -  '@types/tinycolor2@1.4.6': {}
    +  /@types/tinycolor2@1.4.6:
    +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    +    dev: true
     
    -  '@types/tough-cookie@4.0.5': {}
    +  /@types/tough-cookie@4.0.5:
    +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    +    dev: true
     
    -  '@types/triple-beam@1.3.5': {}
    +  /@types/triple-beam@1.3.5:
    +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
     
    -  '@types/unist@2.0.10': {}
    +  /@types/unist@2.0.10:
    +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
     
    -  '@types/unist@3.0.2': {}
    +  /@types/unist@3.0.2:
    +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
     
    -  '@types/uuid@9.0.8': {}
    +  /@types/uuid@9.0.8:
    +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
     
    -  '@types/vinyl@2.0.11':
    +  /@types/vinyl@2.0.11:
    +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
         dependencies:
           '@types/expect': 1.20.4
           '@types/node': 18.18.2
     
    -  '@types/vscode@1.75.1': {}
    +  /@types/vscode@1.75.1:
    +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
     
    -  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
    +  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
    +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
         dependencies:
           '@types/node': 18.18.2
           tapable: 2.2.1
    @@ -12954,18 +5579,31 @@ snapshots:
           - esbuild
           - uglify-js
           - webpack-cli
    +    dev: true
     
    -  '@types/ws@8.5.10':
    +  /@types/ws@8.5.10:
    +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
         dependencies:
           '@types/node': 18.18.2
     
    -  '@types/yargs-parser@21.0.3': {}
    +  /@types/yargs-parser@21.0.3:
    +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
     
    -  '@types/yargs@17.0.32':
    +  /@types/yargs@17.0.32:
    +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
         dependencies:
           '@types/yargs-parser': 21.0.3
     
    -  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^7.0.0
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@eslint-community/regexpp': 4.10.0
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -12983,8 +5621,17 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      eslint: ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/scope-manager': 6.21.0
           '@typescript-eslint/types': 6.21.0
    @@ -12995,8 +5642,17 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/scope-manager': 7.4.0
           '@typescript-eslint/types': 7.4.0
    @@ -13007,18 +5663,33 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/scope-manager@6.21.0':
    +  /@typescript-eslint/scope-manager@6.21.0:
    +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    +    dev: true
     
    -  '@typescript-eslint/scope-manager@7.4.0':
    +  /@typescript-eslint/scope-manager@7.4.0:
    +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    +    dev: true
     
    -  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
           '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -13028,12 +5699,26 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/types@6.21.0': {}
    +  /@typescript-eslint/types@6.21.0:
    +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    dev: true
     
    -  '@typescript-eslint/types@7.4.0': {}
    +  /@typescript-eslint/types@7.4.0:
    +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    dev: true
     
    -  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
    +  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    @@ -13046,8 +5731,16 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
    +  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    @@ -13060,8 +5753,13 @@ snapshots:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
    +  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@types/json-schema': 7.0.15
    @@ -13074,20 +5772,30 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
           - typescript
    +    dev: true
     
    -  '@typescript-eslint/visitor-keys@6.21.0':
    +  /@typescript-eslint/visitor-keys@6.21.0:
    +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
         dependencies:
           '@typescript-eslint/types': 6.21.0
           eslint-visitor-keys: 3.4.3
    +    dev: true
     
    -  '@typescript-eslint/visitor-keys@7.4.0':
    +  /@typescript-eslint/visitor-keys@7.4.0:
    +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
         dependencies:
           '@typescript-eslint/types': 7.4.0
           eslint-visitor-keys: 3.4.3
    +    dev: true
     
    -  '@ungap/structured-clone@1.2.0': {}
    +  /@ungap/structured-clone@1.2.0:
    +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
     
    -  '@vscode/test-electron@2.3.9':
    +  /@vscode/test-electron@2.3.9:
    +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    +    engines: {node: '>=16'}
         dependencies:
           http-proxy-agent: 4.0.1
           https-proxy-agent: 5.0.1
    @@ -13095,44 +5803,56 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  '@webassemblyjs/ast@1.12.1':
    +  /@webassemblyjs/ast@1.12.1:
    +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
         dependencies:
           '@webassemblyjs/helper-numbers': 1.11.6
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
     
    -  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
    +  /@webassemblyjs/floating-point-hex-parser@1.11.6:
    +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
     
    -  '@webassemblyjs/helper-api-error@1.11.6': {}
    +  /@webassemblyjs/helper-api-error@1.11.6:
    +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
     
    -  '@webassemblyjs/helper-buffer@1.12.1': {}
    +  /@webassemblyjs/helper-buffer@1.12.1:
    +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
     
    -  '@webassemblyjs/helper-numbers@1.11.6':
    +  /@webassemblyjs/helper-numbers@1.11.6:
    +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
         dependencies:
           '@webassemblyjs/floating-point-hex-parser': 1.11.6
           '@webassemblyjs/helper-api-error': 1.11.6
           '@xtuc/long': 4.2.2
     
    -  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
    +  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
    +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
     
    -  '@webassemblyjs/helper-wasm-section@1.12.1':
    +  /@webassemblyjs/helper-wasm-section@1.12.1:
    +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
           '@webassemblyjs/wasm-gen': 1.12.1
     
    -  '@webassemblyjs/ieee754@1.11.6':
    +  /@webassemblyjs/ieee754@1.11.6:
    +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
         dependencies:
           '@xtuc/ieee754': 1.2.0
     
    -  '@webassemblyjs/leb128@1.11.6':
    +  /@webassemblyjs/leb128@1.11.6:
    +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
         dependencies:
           '@xtuc/long': 4.2.2
     
    -  '@webassemblyjs/utf8@1.11.6': {}
    +  /@webassemblyjs/utf8@1.11.6:
    +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
     
    -  '@webassemblyjs/wasm-edit@1.12.1':
    +  /@webassemblyjs/wasm-edit@1.12.1:
    +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
    @@ -13143,7 +5863,8 @@ snapshots:
           '@webassemblyjs/wasm-parser': 1.12.1
           '@webassemblyjs/wast-printer': 1.12.1
     
    -  '@webassemblyjs/wasm-gen@1.12.1':
    +  /@webassemblyjs/wasm-gen@1.12.1:
    +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
    @@ -13151,14 +5872,16 @@ snapshots:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  '@webassemblyjs/wasm-opt@1.12.1':
    +  /@webassemblyjs/wasm-opt@1.12.1:
    +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/wasm-gen': 1.12.1
           '@webassemblyjs/wasm-parser': 1.12.1
     
    -  '@webassemblyjs/wasm-parser@1.12.1':
    +  /@webassemblyjs/wasm-parser@1.12.1:
    +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-api-error': 1.11.6
    @@ -13167,17 +5890,32 @@ snapshots:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  '@webassemblyjs/wast-printer@1.12.1':
    +  /@webassemblyjs/wast-printer@1.12.1:
    +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@xtuc/long': 4.2.2
     
    -  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      prettier: '*'
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +    peerDependenciesMeta:
    +      prettier:
    +        optional: true
         dependencies:
           prettier: 3.2.5
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    @@ -13190,125 +5928,207 @@ snapshots:
           - mem-fs
           - supports-color
     
    -  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
    +  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
    +  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      webpack-dev-server:
    +        optional: true
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
     
    -  '@xobotyi/scrollbar-width@1.9.5': {}
    +  /@xobotyi/scrollbar-width@1.9.5:
    +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    +    dev: false
     
    -  '@xtuc/ieee754@1.2.0': {}
    +  /@xtuc/ieee754@1.2.0:
    +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
     
    -  '@xtuc/long@4.2.2': {}
    +  /@xtuc/long@4.2.2:
    +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
     
    -  '@zkochan/js-yaml@0.0.7':
    +  /@zkochan/js-yaml@0.0.7:
    +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    +    hasBin: true
         dependencies:
           argparse: 2.0.1
    +    dev: false
     
    -  '@zkochan/retry@0.2.0': {}
    +  /@zkochan/retry@0.2.0:
    +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  '@zkochan/rimraf@2.1.3':
    +  /@zkochan/rimraf@2.1.3:
    +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    +    engines: {node: '>=12.10'}
         dependencies:
           rimraf: 3.0.2
    +    dev: false
     
    -  '@zkochan/which@2.0.3':
    +  /@zkochan/which@2.0.3:
    +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  abab@2.0.6: {}
    +  /abab@2.0.6:
    +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    +    deprecated: Use your platform's native atob() and btoa() methods instead
    +    dev: true
     
    -  abbrev@1.1.1: {}
    +  /abbrev@1.1.1:
    +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
     
    -  abort-controller@3.0.0:
    +  /abort-controller@3.0.0:
    +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    +    engines: {node: '>=6.5'}
         dependencies:
           event-target-shim: 5.0.1
     
    -  accepts@1.3.8:
    +  /accepts@1.3.8:
    +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-types: 2.1.35
           negotiator: 0.6.3
     
    -  acorn-globals@7.0.1:
    +  /acorn-globals@7.0.1:
    +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
         dependencies:
           acorn: 8.11.3
           acorn-walk: 8.3.2
    +    dev: true
     
    -  acorn-import-assertions@1.9.0(acorn@8.11.3):
    +  /acorn-import-assertions@1.9.0(acorn@8.11.3):
    +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    +    peerDependencies:
    +      acorn: ^8
         dependencies:
           acorn: 8.11.3
     
    -  acorn-jsx@5.3.2(acorn@8.11.3):
    +  /acorn-jsx@5.3.2(acorn@8.11.3):
    +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    +    peerDependencies:
    +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
         dependencies:
           acorn: 8.11.3
     
    -  acorn-walk@8.3.2: {}
    +  /acorn-walk@8.3.2:
    +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    +    engines: {node: '>=0.4.0'}
     
    -  acorn@8.11.3: {}
    +  /acorn@8.11.3:
    +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    +    engines: {node: '>=0.4.0'}
    +    hasBin: true
     
    -  address@1.2.2: {}
    +  /address@1.2.2:
    +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    +    engines: {node: '>= 10.0.0'}
    +    dev: false
     
    -  agent-base@6.0.2:
    +  /agent-base@6.0.2:
    +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    +    engines: {node: '>= 6.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  agentkeepalive@4.2.1:
    +  /agentkeepalive@4.2.1:
    +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    +    engines: {node: '>= 8.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           depd: 1.1.2
           humanize-ms: 1.2.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  agentkeepalive@4.5.0:
    +  /agentkeepalive@4.5.0:
    +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    +    engines: {node: '>= 8.0.0'}
         dependencies:
           humanize-ms: 1.2.1
     
    -  aggregate-error@3.1.0:
    +  /aggregate-error@3.1.0:
    +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    +    engines: {node: '>=8'}
         dependencies:
           clean-stack: 2.2.0
           indent-string: 4.0.0
     
    -  ajv-formats@2.1.1(ajv@8.12.0):
    +  /ajv-formats@2.1.1(ajv@8.12.0):
    +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    +    peerDependencies:
    +      ajv: ^8.0.0
    +    peerDependenciesMeta:
    +      ajv:
    +        optional: true
         dependencies:
           ajv: 8.12.0
     
    -  ajv-keywords@3.5.2(ajv@6.12.6):
    +  /ajv-keywords@3.5.2(ajv@6.12.6):
    +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    +    peerDependencies:
    +      ajv: ^6.9.1
         dependencies:
           ajv: 6.12.6
     
    -  ajv-keywords@5.1.0(ajv@8.12.0):
    +  /ajv-keywords@5.1.0(ajv@8.12.0):
    +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    +    peerDependencies:
    +      ajv: ^8.8.2
         dependencies:
           ajv: 8.12.0
           fast-deep-equal: 3.1.3
     
    -  ajv@6.12.6:
    +  /ajv@6.12.6:
    +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
         dependencies:
           fast-deep-equal: 3.1.3
           fast-json-stable-stringify: 2.1.0
           json-schema-traverse: 0.4.1
           uri-js: 4.4.1
     
    -  ajv@8.12.0:
    +  /ajv@8.12.0:
    +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
         dependencies:
           fast-deep-equal: 3.1.3
           json-schema-traverse: 1.0.0
           require-from-string: 2.0.2
           uri-js: 4.4.1
     
    -  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    +  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    +    peerDependencies:
    +      algoliasearch: '>= 3.1 < 6'
         dependencies:
           '@algolia/events': 4.0.1
           algoliasearch: 4.22.1
    +    dev: false
     
    -  algoliasearch@4.22.1:
    +  /algoliasearch@4.22.1:
    +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
         dependencies:
           '@algolia/cache-browser-local-storage': 4.22.1
           '@algolia/cache-common': 4.22.1
    @@ -13324,96 +6144,157 @@ snapshots:
           '@algolia/requester-common': 4.22.1
           '@algolia/requester-node-http': 4.22.1
           '@algolia/transporter': 4.22.1
    +    dev: false
     
    -  ansi-align@3.0.1:
    +  /ansi-align@3.0.1:
    +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
         dependencies:
           string-width: 4.2.3
     
    -  ansi-colors@4.1.1: {}
    +  /ansi-colors@4.1.1:
    +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  ansi-colors@4.1.3: {}
    +  /ansi-colors@4.1.3:
    +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  ansi-diff@1.1.1:
    +  /ansi-diff@1.1.1:
    +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
         dependencies:
           ansi-split: 1.0.1
    +    dev: true
     
    -  ansi-escapes@4.3.2:
    +  /ansi-escapes@4.3.2:
    +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    +    engines: {node: '>=8'}
         dependencies:
           type-fest: 0.21.3
     
    -  ansi-html-community@0.0.8: {}
    +  /ansi-html-community@0.0.8:
    +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    +    engines: {'0': node >= 0.8.0}
    +    hasBin: true
     
    -  ansi-regex@3.0.1: {}
    +  /ansi-regex@3.0.1:
    +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  ansi-regex@5.0.1: {}
    +  /ansi-regex@5.0.1:
    +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    +    engines: {node: '>=8'}
     
    -  ansi-regex@6.0.1: {}
    +  /ansi-regex@6.0.1:
    +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    +    engines: {node: '>=12'}
     
    -  ansi-split@1.0.1:
    +  /ansi-split@1.0.1:
    +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
         dependencies:
           ansi-regex: 3.0.1
    +    dev: true
     
    -  ansi-styles@3.2.1:
    +  /ansi-styles@3.2.1:
    +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    +    engines: {node: '>=4'}
         dependencies:
           color-convert: 1.9.3
     
    -  ansi-styles@4.3.0:
    +  /ansi-styles@4.3.0:
    +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    +    engines: {node: '>=8'}
         dependencies:
           color-convert: 2.0.1
     
    -  ansi-styles@5.2.0: {}
    +  /ansi-styles@5.2.0:
    +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  ansi-styles@6.2.1: {}
    +  /ansi-styles@6.2.1:
    +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    +    engines: {node: '>=12'}
     
    -  any-promise@1.3.0: {}
    +  /any-promise@1.3.0:
    +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    +    dev: true
     
    -  anymatch@3.1.3:
    +  /anymatch@3.1.3:
    +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    +    engines: {node: '>= 8'}
         dependencies:
           normalize-path: 3.0.0
           picomatch: 2.3.1
     
    -  aproba@2.0.0: {}
    +  /aproba@2.0.0:
    +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
     
    -  archy@1.0.0: {}
    +  /archy@1.0.0:
    +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    +    dev: true
     
    -  are-we-there-yet@2.0.0:
    +  /are-we-there-yet@2.0.0:
    +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    +    engines: {node: '>=10'}
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  are-we-there-yet@3.0.1:
    +  /are-we-there-yet@3.0.1:
    +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  arg@4.1.3: {}
    +  /arg@4.1.3:
    +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    +    dev: true
     
    -  arg@5.0.2: {}
    +  /arg@5.0.2:
    +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
     
    -  argparse@1.0.10:
    +  /argparse@1.0.10:
    +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
         dependencies:
           sprintf-js: 1.0.3
     
    -  argparse@2.0.1: {}
    +  /argparse@2.0.1:
    +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
     
    -  aria-query@5.1.3:
    +  /aria-query@5.1.3:
    +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
         dependencies:
           deep-equal: 2.2.3
    +    dev: true
     
    -  aria-query@5.3.0:
    +  /aria-query@5.3.0:
    +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
         dependencies:
           dequal: 2.0.3
    +    dev: true
     
    -  array-buffer-byte-length@1.0.1:
    +  /array-buffer-byte-length@1.0.1:
    +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           is-array-buffer: 3.0.4
    +    dev: true
     
    -  array-differ@3.0.0: {}
    +  /array-differ@3.0.0:
    +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    +    engines: {node: '>=8'}
     
    -  array-flatten@1.1.1: {}
    +  /array-flatten@1.1.1:
    +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
     
    -  array-includes@3.1.8:
    +  /array-includes@3.1.8:
    +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13421,10 +6302,15 @@ snapshots:
           es-object-atoms: 1.0.0
           get-intrinsic: 1.2.4
           is-string: 1.0.7
    +    dev: true
     
    -  array-union@2.1.0: {}
    +  /array-union@2.1.0:
    +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    +    engines: {node: '>=8'}
     
    -  array.prototype.findlast@1.2.5:
    +  /array.prototype.findlast@1.2.5:
    +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13432,8 +6318,11 @@ snapshots:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.findlastindex@1.2.5:
    +  /array.prototype.findlastindex@1.2.5:
    +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -13441,37 +6330,50 @@ snapshots:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.flat@1.3.2:
    +  /array.prototype.flat@1.3.2:
    +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.flatmap@1.3.2:
    +  /array.prototype.flatmap@1.3.2:
    +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.toreversed@1.1.2:
    +  /array.prototype.toreversed@1.1.2:
    +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  array.prototype.tosorted@1.1.3:
    +  /array.prototype.tosorted@1.1.3:
    +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-errors: 1.3.0
           es-shim-unscopables: 1.0.2
    +    dev: true
     
    -  arraybuffer.prototype.slice@1.0.3:
    +  /arraybuffer.prototype.slice@1.0.3:
    +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -13481,34 +6383,63 @@ snapshots:
           get-intrinsic: 1.2.4
           is-array-buffer: 3.0.4
           is-shared-array-buffer: 1.0.3
    +    dev: true
     
    -  arrify@1.0.1: {}
    +  /arrify@1.0.1:
    +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  arrify@2.0.1: {}
    +  /arrify@2.0.1:
    +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    +    engines: {node: '>=8'}
     
    -  as-table@1.0.55:
    +  /as-table@1.0.55:
    +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
         dependencies:
           printable-characters: 1.0.42
    +    dev: true
     
    -  asap@2.0.6: {}
    +  /asap@2.0.6:
    +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
     
    -  assertion-error@2.0.1: {}
    +  /assertion-error@2.0.1:
    +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  ast-types-flow@0.0.8: {}
    +  /ast-types-flow@0.0.8:
    +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    +    dev: true
     
    -  astring@1.8.6: {}
    +  /astring@1.8.6:
    +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    +    hasBin: true
     
    -  async@2.6.4:
    +  /async@2.6.4:
    +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
         dependencies:
           lodash: 4.17.21
    +    dev: true
     
    -  async@3.2.5: {}
    +  /async@3.2.5:
    +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
     
    -  asynckit@0.4.0: {}
    +  /asynckit@0.4.0:
    +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    +    dev: true
     
    -  at-least-node@1.0.0: {}
    +  /at-least-node@1.0.0:
    +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    +    engines: {node: '>= 4.0.0'}
    +    dev: false
     
    -  autoprefixer@10.4.19(postcss@8.4.38):
    +  /autoprefixer@10.4.19(postcss@8.4.38):
    +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    hasBin: true
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
    @@ -13518,17 +6449,29 @@ snapshots:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
     
    -  available-typed-arrays@1.0.7:
    +  /available-typed-arrays@1.0.7:
    +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           possible-typed-array-names: 1.0.0
    +    dev: true
     
    -  axe-core@4.7.0: {}
    +  /axe-core@4.7.0:
    +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  axobject-query@3.2.1:
    +  /axobject-query@3.2.1:
    +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
         dependencies:
           dequal: 2.0.3
    +    dev: true
     
    -  babel-jest@29.7.0(@babel/core@7.24.3):
    +  /babel-jest@29.7.0(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.8.0
         dependencies:
           '@babel/core': 7.24.3
           '@jest/transform': 29.7.0
    @@ -13540,19 +6483,30 @@ snapshots:
           slash: 3.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    +  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +      webpack: '>=5'
         dependencies:
           '@babel/core': 7.24.3
           find-cache-dir: 4.0.0
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  babel-plugin-dynamic-import-node@2.3.3:
    +  /babel-plugin-dynamic-import-node@2.3.3:
    +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
         dependencies:
           object.assign: 4.1.5
    +    dev: false
     
    -  babel-plugin-istanbul@6.1.1:
    +  /babel-plugin-istanbul@6.1.1:
    +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/helper-plugin-utils': 7.24.0
           '@istanbuljs/load-nyc-config': 1.1.0
    @@ -13561,15 +6515,22 @@ snapshots:
           test-exclude: 6.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  babel-plugin-jest-hoist@29.6.3:
    +  /babel-plugin-jest-hoist@29.6.3:
    +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
           '@types/babel__core': 7.20.5
           '@types/babel__traverse': 7.20.5
    +    dev: true
     
    -  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -13578,7 +6539,10 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
    @@ -13586,14 +6550,20 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    +  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
         transitivePeerDependencies:
           - supports-color
     
    -  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    +  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
    @@ -13608,34 +6578,55 @@ snapshots:
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
    +    dev: true
     
    -  babel-preset-jest@29.6.3(@babel/core@7.24.3):
    +  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
    +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
         dependencies:
           '@babel/core': 7.24.3
           babel-plugin-jest-hoist: 29.6.3
           babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
    +    dev: true
     
    -  bail@2.0.2: {}
    +  /bail@2.0.2:
    +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
     
    -  balanced-match@1.0.2: {}
    +  /balanced-match@1.0.2:
    +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
     
    -  base64-js@1.5.1: {}
    +  /base64-js@1.5.1:
    +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
     
    -  basic-auth@2.0.1:
    +  /basic-auth@2.0.1:
    +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           safe-buffer: 5.1.2
    +    dev: true
     
    -  batch@0.6.1: {}
    +  /batch@0.6.1:
    +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
     
    -  before-after-hook@2.2.3: {}
    +  /before-after-hook@2.2.3:
    +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
     
    -  better-path-resolve@1.0.0:
    +  /better-path-resolve@1.0.0:
    +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    +    engines: {node: '>=4'}
         dependencies:
           is-windows: 1.0.2
    +    dev: true
     
    -  big.js@5.2.2: {}
    +  /big.js@5.2.2:
    +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    +    dev: false
     
    -  bin-links@3.0.3:
    +  /bin-links@3.0.3:
    +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           cmd-shim: 5.0.0
           mkdirp-infer-owner: 2.0.0
    @@ -13644,17 +6635,24 @@ snapshots:
           rimraf: 3.0.2
           write-file-atomic: 4.0.2
     
    -  binary-extensions@2.3.0: {}
    +  /binary-extensions@2.3.0:
    +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    +    engines: {node: '>=8'}
     
    -  binaryextensions@4.19.0: {}
    +  /binaryextensions@4.19.0:
    +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    +    engines: {node: '>=0.8'}
     
    -  bl@4.1.0:
    +  /bl@4.1.0:
    +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
         dependencies:
           buffer: 5.7.1
           inherits: 2.0.4
           readable-stream: 3.6.2
     
    -  body-parser@1.20.2:
    +  /body-parser@1.20.2:
    +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
         dependencies:
           bytes: 3.1.2
           content-type: 1.0.5
    @@ -13671,19 +6669,24 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  bole@5.0.11:
    +  /bole@5.0.11:
    +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
         dependencies:
           fast-safe-stringify: 2.1.1
           individual: 3.0.0
     
    -  bonjour-service@1.2.1:
    +  /bonjour-service@1.2.1:
    +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
         dependencies:
           fast-deep-equal: 3.1.3
           multicast-dns: 7.2.5
     
    -  boolbase@1.0.0: {}
    +  /boolbase@1.0.0:
    +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
     
    -  boxen@5.1.2:
    +  /boxen@5.1.2:
    +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -13693,8 +6696,11 @@ snapshots:
           type-fest: 0.20.2
           widest-line: 3.1.0
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  boxen@6.2.1:
    +  /boxen@6.2.1:
    +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -13704,8 +6710,11 @@ snapshots:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    +    dev: false
     
    -  boxen@7.1.1:
    +  /boxen@7.1.1:
    +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    +    engines: {node: '>=14.16'}
         dependencies:
           ansi-align: 3.0.1
           camelcase: 7.0.1
    @@ -13715,70 +6724,104 @@ snapshots:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    +    dev: false
     
    -  brace-expansion@1.1.11:
    +  /brace-expansion@1.1.11:
    +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
         dependencies:
           balanced-match: 1.0.2
           concat-map: 0.0.1
     
    -  brace-expansion@2.0.1:
    +  /brace-expansion@2.0.1:
    +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
         dependencies:
           balanced-match: 1.0.2
     
    -  braces@3.0.2:
    +  /braces@3.0.2:
    +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    +    engines: {node: '>=8'}
         dependencies:
           fill-range: 7.0.1
     
    -  browser-stdout@1.3.1: {}
    +  /browser-stdout@1.3.1:
    +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    +    dev: true
     
    -  browserslist@4.23.0:
    +  /browserslist@4.23.0:
    +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    +    hasBin: true
         dependencies:
           caniuse-lite: 1.0.30001600
           electron-to-chromium: 1.4.717
           node-releases: 2.0.14
           update-browserslist-db: 1.0.13(browserslist@4.23.0)
     
    -  bs-logger@0.2.6:
    +  /bs-logger@0.2.6:
    +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    +    engines: {node: '>= 6'}
         dependencies:
           fast-json-stable-stringify: 2.1.0
    +    dev: true
     
    -  bser@2.1.1:
    +  /bser@2.1.1:
    +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
         dependencies:
           node-int64: 0.4.0
    +    dev: true
     
    -  buffer-from@1.1.2: {}
    +  /buffer-from@1.1.2:
    +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
     
    -  buffer@5.7.1:
    +  /buffer@5.7.1:
    +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  buffer@6.0.3:
    +  /buffer@6.0.3:
    +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  builtin-modules@3.3.0: {}
    +  /builtin-modules@3.3.0:
    +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  builtins@1.0.3: {}
    +  /builtins@1.0.3:
    +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
     
    -  builtins@5.0.1:
    +  /builtins@5.0.1:
    +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
         dependencies:
           semver: 7.6.0
     
    -  bundle-name@4.1.0:
    +  /bundle-name@4.1.0:
    +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    +    engines: {node: '>=18'}
         dependencies:
           run-applescript: 7.0.0
     
    -  busboy@1.6.0:
    +  /busboy@1.6.0:
    +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    +    engines: {node: '>=10.16.0'}
         dependencies:
           streamsearch: 1.1.0
    +    dev: false
     
    -  bytes@3.0.0: {}
    +  /bytes@3.0.0:
    +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    +    engines: {node: '>= 0.8'}
     
    -  bytes@3.1.2: {}
    +  /bytes@3.1.2:
    +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    +    engines: {node: '>= 0.8'}
     
    -  cacache@15.3.0:
    +  /cacache@15.3.0:
    +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           '@npmcli/fs': 1.1.1
           '@npmcli/move-file': 1.1.2
    @@ -13801,7 +6844,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  cacache@16.1.3:
    +  /cacache@16.1.3:
    +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           '@npmcli/fs': 2.1.2
           '@npmcli/move-file': 2.0.1
    @@ -13824,7 +6869,9 @@ snapshots:
         transitivePeerDependencies:
           - bluebird
     
    -  cacache@17.1.4:
    +  /cacache@17.1.4:
    +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@npmcli/fs': 3.1.0
           fs-minipass: 3.0.3
    @@ -13839,9 +6886,14 @@ snapshots:
           tar: 6.2.1
           unique-filename: 3.0.0
     
    -  cacheable-lookup@7.0.0: {}
    +  /cacheable-lookup@7.0.0:
    +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  cacheable-request@10.2.14:
    +  /cacheable-request@10.2.14:
    +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    +    engines: {node: '>=14.16'}
         dependencies:
           '@types/http-cache-semantics': 4.0.4
           get-stream: 6.0.1
    @@ -13850,8 +6902,11 @@ snapshots:
           mimic-response: 4.0.0
           normalize-url: 8.0.1
           responselike: 3.0.0
    +    dev: false
     
    -  call-bind@1.0.7:
    +  /call-bind@1.0.7:
    +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
    @@ -13859,85 +6914,133 @@ snapshots:
           get-intrinsic: 1.2.4
           set-function-length: 1.2.2
     
    -  callsites@3.1.0: {}
    +  /callsites@3.1.0:
    +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    +    engines: {node: '>=6'}
     
    -  camel-case@4.1.2:
    +  /camel-case@4.1.2:
    +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
         dependencies:
           pascal-case: 3.1.2
           tslib: 2.6.2
     
    -  camelcase-css@2.0.1: {}
    +  /camelcase-css@2.0.1:
    +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  camelcase-keys@6.2.2:
    +  /camelcase-keys@6.2.2:
    +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    +    engines: {node: '>=8'}
         dependencies:
           camelcase: 5.3.1
           map-obj: 4.3.0
           quick-lru: 4.0.1
    +    dev: true
     
    -  camelcase-keys@7.0.2:
    +  /camelcase-keys@7.0.2:
    +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    +    engines: {node: '>=12'}
         dependencies:
           camelcase: 6.3.0
           map-obj: 4.3.0
           quick-lru: 5.1.1
           type-fest: 1.4.0
    +    dev: true
     
    -  camelcase@5.3.1: {}
    +  /camelcase@5.3.1:
    +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  camelcase@6.3.0: {}
    +  /camelcase@6.3.0:
    +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    +    engines: {node: '>=10'}
     
    -  camelcase@7.0.1: {}
    +  /camelcase@7.0.1:
    +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  can-write-to-dir@1.1.1:
    +  /can-write-to-dir@1.1.1:
    +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    +    engines: {node: '>=10.13'}
         dependencies:
           path-temp: 2.1.0
    +    dev: true
     
    -  caniuse-api@3.0.0:
    +  /caniuse-api@3.0.0:
    +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
           lodash.memoize: 4.1.2
           lodash.uniq: 4.5.0
    +    dev: false
     
    -  caniuse-lite@1.0.30001600: {}
    +  /caniuse-lite@1.0.30001600:
    +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
     
    -  ccount@2.0.1: {}
    +  /ccount@2.0.1:
    +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
     
    -  chai@5.1.0:
    +  /chai@5.1.0:
    +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    +    engines: {node: '>=12'}
         dependencies:
           assertion-error: 2.0.1
           check-error: 2.0.0
           deep-eql: 5.0.1
           loupe: 3.1.0
           pathval: 2.0.0
    +    dev: true
     
    -  chalk@2.4.2:
    +  /chalk@2.4.2:
    +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    +    engines: {node: '>=4'}
         dependencies:
           ansi-styles: 3.2.1
           escape-string-regexp: 1.0.5
           supports-color: 5.5.0
     
    -  chalk@4.1.2:
    +  /chalk@4.1.2:
    +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-styles: 4.3.0
           supports-color: 7.2.0
     
    -  chalk@5.3.0: {}
    +  /chalk@5.3.0:
    +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    +    dev: false
     
    -  char-regex@1.0.2: {}
    +  /char-regex@1.0.2:
    +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    +    engines: {node: '>=10'}
     
    -  character-entities-html4@2.1.0: {}
    +  /character-entities-html4@2.1.0:
    +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
     
    -  character-entities-legacy@3.0.0: {}
    +  /character-entities-legacy@3.0.0:
    +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
     
    -  character-entities@2.0.2: {}
    +  /character-entities@2.0.2:
    +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
     
    -  character-reference-invalid@2.0.1: {}
    +  /character-reference-invalid@2.0.1:
    +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
     
    -  chardet@0.7.0: {}
    +  /chardet@0.7.0:
    +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
     
    -  check-error@2.0.0: {}
    +  /check-error@2.0.0:
    +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    +    engines: {node: '>= 16'}
    +    dev: true
     
    -  cheerio-select@2.1.0:
    +  /cheerio-select@2.1.0:
    +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
         dependencies:
           boolbase: 1.0.0
           css-select: 5.1.0
    @@ -13945,8 +7048,11 @@ snapshots:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
    +    dev: false
     
    -  cheerio@1.0.0-rc.12:
    +  /cheerio@1.0.0-rc.12:
    +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    +    engines: {node: '>= 6'}
         dependencies:
           cheerio-select: 2.1.0
           dom-serializer: 2.0.0
    @@ -13955,8 +7061,11 @@ snapshots:
           htmlparser2: 8.0.2
           parse5: 7.1.2
           parse5-htmlparser2-tree-adapter: 7.0.0
    +    dev: false
     
    -  chokidar@3.5.3:
    +  /chokidar@3.5.3:
    +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    +    engines: {node: '>= 8.10.0'}
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -13967,8 +7076,11 @@ snapshots:
           readdirp: 3.6.0
         optionalDependencies:
           fsevents: 2.3.3
    +    dev: true
     
    -  chokidar@3.6.0:
    +  /chokidar@3.6.0:
    +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    +    engines: {node: '>= 8.10.0'}
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -13980,169 +7092,282 @@ snapshots:
         optionalDependencies:
           fsevents: 2.3.3
     
    -  chownr@2.0.0: {}
    +  /chownr@2.0.0:
    +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    +    engines: {node: '>=10'}
     
    -  chrome-trace-event@1.0.3: {}
    +  /chrome-trace-event@1.0.3:
    +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    +    engines: {node: '>=6.0'}
     
    -  ci-info@3.9.0: {}
    +  /ci-info@3.9.0:
    +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    +    engines: {node: '>=8'}
     
    -  ci-info@4.0.0: {}
    +  /ci-info@4.0.0:
    +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  cjs-module-lexer@1.2.3: {}
    +  /cjs-module-lexer@1.2.3:
    +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    +    dev: true
     
    -  clean-css@5.3.3:
    +  /clean-css@5.3.3:
    +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    +    engines: {node: '>= 10.0'}
         dependencies:
           source-map: 0.6.1
     
    -  clean-regexp@1.0.0:
    +  /clean-regexp@1.0.0:
    +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    +    engines: {node: '>=4'}
         dependencies:
           escape-string-regexp: 1.0.5
    +    dev: true
     
    -  clean-stack@2.2.0: {}
    +  /clean-stack@2.2.0:
    +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    +    engines: {node: '>=6'}
     
    -  cli-boxes@2.2.1: {}
    +  /cli-boxes@2.2.1:
    +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  cli-boxes@3.0.0: {}
    +  /cli-boxes@3.0.0:
    +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  cli-columns@4.0.0:
    +  /cli-columns@4.0.0:
    +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
    +    dev: true
     
    -  cli-cursor@3.1.0:
    +  /cli-cursor@3.1.0:
    +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    +    engines: {node: '>=8'}
         dependencies:
           restore-cursor: 3.1.0
     
    -  cli-spinners@2.9.2: {}
    +  /cli-spinners@2.9.2:
    +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    +    engines: {node: '>=6'}
     
    -  cli-table3@0.6.4:
    +  /cli-table3@0.6.4:
    +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    +    engines: {node: 10.* || >= 12.*}
         dependencies:
           string-width: 4.2.3
         optionalDependencies:
           '@colors/colors': 1.5.0
    +    dev: false
     
    -  cli-table@0.3.11:
    +  /cli-table@0.3.11:
    +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    +    engines: {node: '>= 0.2.0'}
         dependencies:
           colors: 1.0.3
     
    -  cli-width@3.0.0: {}
    +  /cli-width@3.0.0:
    +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    +    engines: {node: '>= 10'}
     
    -  client-only@0.0.1: {}
    +  /client-only@0.0.1:
    +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    +    dev: false
     
    -  cliui@7.0.4:
    +  /cliui@7.0.4:
    +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  cliui@8.0.1:
    +  /cliui@8.0.1:
    +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    +    dev: true
     
    -  clone-buffer@1.0.0: {}
    +  /clone-buffer@1.0.0:
    +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    +    engines: {node: '>= 0.10'}
     
    -  clone-deep@4.0.1:
    +  /clone-deep@4.0.1:
    +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    +    engines: {node: '>=6'}
         dependencies:
           is-plain-object: 2.0.4
           kind-of: 6.0.3
           shallow-clone: 3.0.1
     
    -  clone-stats@1.0.0: {}
    +  /clone-stats@1.0.0:
    +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
     
    -  clone@1.0.4: {}
    +  /clone@1.0.4:
    +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    +    engines: {node: '>=0.8'}
     
    -  clone@2.1.2: {}
    +  /clone@2.1.2:
    +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    +    engines: {node: '>=0.8'}
     
    -  cloneable-readable@1.1.3:
    +  /cloneable-readable@1.1.3:
    +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
         dependencies:
           inherits: 2.0.4
           process-nextick-args: 2.0.1
           readable-stream: 2.3.8
     
    -  clsx@2.1.0: {}
    +  /clsx@2.1.0:
    +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  cmd-shim@5.0.0:
    +  /cmd-shim@5.0.0:
    +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           mkdirp-infer-owner: 2.0.0
     
    -  co@4.6.0: {}
    +  /co@4.6.0:
    +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    +    dev: true
     
    -  collapse-white-space@2.1.0: {}
    +  /collapse-white-space@2.1.0:
    +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
     
    -  collect-v8-coverage@1.0.2: {}
    +  /collect-v8-coverage@1.0.2:
    +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    +    dev: true
     
    -  color-convert@1.9.3:
    +  /color-convert@1.9.3:
    +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
         dependencies:
           color-name: 1.1.3
     
    -  color-convert@2.0.1:
    +  /color-convert@2.0.1:
    +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    +    engines: {node: '>=7.0.0'}
         dependencies:
           color-name: 1.1.4
     
    -  color-name@1.1.3: {}
    +  /color-name@1.1.3:
    +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
     
    -  color-name@1.1.4: {}
    +  /color-name@1.1.4:
    +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
     
    -  color-string@1.9.1:
    +  /color-string@1.9.1:
    +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
         dependencies:
           color-name: 1.1.4
           simple-swizzle: 0.2.2
     
    -  color-support@1.1.3: {}
    +  /color-support@1.1.3:
    +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    +    hasBin: true
     
    -  color@3.2.1:
    +  /color@3.2.1:
    +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
         dependencies:
           color-convert: 1.9.3
           color-string: 1.9.1
     
    -  colord@2.9.3: {}
    +  /colord@2.9.3:
    +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    +    dev: false
     
    -  colorette@2.0.20: {}
    +  /colorette@2.0.20:
    +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
     
    -  colors@1.0.3: {}
    +  /colors@1.0.3:
    +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    +    engines: {node: '>=0.1.90'}
     
    -  colorspace@1.1.4:
    +  /colorspace@1.1.4:
    +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
         dependencies:
           color: 3.2.1
           text-hex: 1.0.0
     
    -  combine-promises@1.2.0: {}
    +  /combine-promises@1.2.0:
    +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  combined-stream@1.0.8:
    +  /combined-stream@1.0.8:
    +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           delayed-stream: 1.0.0
    +    dev: true
     
    -  comma-separated-tokens@2.0.3: {}
    +  /comma-separated-tokens@2.0.3:
    +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
     
    -  commander@10.0.1: {}
    +  /commander@10.0.1:
    +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    +    engines: {node: '>=14'}
     
    -  commander@11.1.0: {}
    +  /commander@11.1.0:
    +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    +    engines: {node: '>=16'}
    +    dev: true
     
    -  commander@2.20.3: {}
    +  /commander@2.20.3:
    +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
     
    -  commander@4.1.1: {}
    +  /commander@4.1.1:
    +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  commander@5.1.0: {}
    +  /commander@5.1.0:
    +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    +    engines: {node: '>= 6'}
     
    -  commander@7.1.0: {}
    +  /commander@7.1.0:
    +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    +    engines: {node: '>= 10'}
     
    -  commander@7.2.0: {}
    +  /commander@7.2.0:
    +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    +    engines: {node: '>= 10'}
     
    -  commander@8.3.0: {}
    +  /commander@8.3.0:
    +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    +    engines: {node: '>= 12'}
     
    -  common-ancestor-path@1.0.1: {}
    +  /common-ancestor-path@1.0.1:
    +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
     
    -  common-path-prefix@3.0.0: {}
    +  /common-path-prefix@3.0.0:
    +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    +    dev: false
     
    -  commondir@1.0.1: {}
    +  /commondir@1.0.1:
    +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
     
    -  compressible@2.0.18:
    +  /compressible@2.0.18:
    +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.52.0
     
    -  compression@1.7.4:
    +  /compression@1.7.4:
    +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           accepts: 1.3.8
           bytes: 3.0.0
    @@ -14154,50 +7379,83 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  comver-to-semver@1.0.0: {}
    +  /comver-to-semver@1.0.0:
    +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    +    engines: {node: '>=12.17'}
    +    dev: false
     
    -  concat-map@0.0.1: {}
    +  /concat-map@0.0.1:
    +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
     
    -  config-chain@1.1.13:
    +  /config-chain@1.1.13:
    +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
         dependencies:
           ini: 1.3.8
           proto-list: 1.2.4
     
    -  configstore@6.0.0:
    +  /configstore@6.0.0:
    +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    +    engines: {node: '>=12'}
         dependencies:
           dot-prop: 6.0.1
           graceful-fs: 4.2.11
           unique-string: 3.0.0
           write-file-atomic: 3.0.3
           xdg-basedir: 5.1.0
    +    dev: false
     
    -  connect-history-api-fallback@2.0.0: {}
    +  /connect-history-api-fallback@2.0.0:
    +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    +    engines: {node: '>=0.8'}
     
    -  consola@2.15.3: {}
    +  /consola@2.15.3:
    +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    +    dev: false
     
    -  console-control-strings@1.1.0: {}
    +  /console-control-strings@1.1.0:
    +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
     
    -  content-disposition@0.5.2: {}
    +  /content-disposition@0.5.2:
    +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  content-disposition@0.5.4:
    +  /content-disposition@0.5.4:
    +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           safe-buffer: 5.2.1
     
    -  content-type@1.0.5: {}
    +  /content-type@1.0.5:
    +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    +    engines: {node: '>= 0.6'}
     
    -  convert-source-map@2.0.0: {}
    +  /convert-source-map@2.0.0:
    +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
     
    -  cookie-signature@1.0.6: {}
    +  /cookie-signature@1.0.6:
    +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
     
    -  cookie@0.6.0: {}
    +  /cookie@0.6.0:
    +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    +    engines: {node: '>= 0.6'}
     
    -  copy-text-to-clipboard@3.2.0: {}
    +  /copy-text-to-clipboard@3.2.0:
    +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  copy-to-clipboard@3.3.3:
    +  /copy-to-clipboard@3.3.3:
    +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
         dependencies:
           toggle-selection: 1.0.6
    +    dev: false
     
    -  copy-webpack-plugin@11.0.0(webpack@5.91.0):
    +  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      webpack: ^5.1.0
         dependencies:
           fast-glob: 3.3.2
           glob-parent: 6.0.2
    @@ -14206,36 +7464,61 @@ snapshots:
           schema-utils: 4.2.0
           serialize-javascript: 6.0.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  core-js-compat@3.36.1:
    +  /core-js-compat@3.36.1:
    +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
         dependencies:
           browserslist: 4.23.0
     
    -  core-js-pure@3.36.1: {}
    +  /core-js-pure@3.36.1:
    +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    +    requiresBuild: true
    +    dev: false
     
    -  core-js@3.36.1: {}
    +  /core-js@3.36.1:
    +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    +    requiresBuild: true
    +    dev: false
     
    -  core-util-is@1.0.3: {}
    +  /core-util-is@1.0.3:
    +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
     
    -  corser@2.0.1: {}
    +  /corser@2.0.1:
    +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    +    engines: {node: '>= 0.4.0'}
    +    dev: true
     
    -  cosmiconfig@6.0.0:
    +  /cosmiconfig@6.0.0:
    +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    +    dev: false
     
    -  cosmiconfig@7.1.0:
    +  /cosmiconfig@7.1.0:
    +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    +    dev: false
     
    -  cosmiconfig@8.3.6(typescript@5.4.3):
    +  /cosmiconfig@8.3.6(typescript@5.4.3):
    +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           import-fresh: 3.3.0
           js-yaml: 4.1.0
    @@ -14243,15 +7526,26 @@ snapshots:
           path-type: 4.0.0
           typescript: 5.4.3
     
    -  cosmiconfig@9.0.0(typescript@5.4.3):
    +  /cosmiconfig@9.0.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           env-paths: 2.2.1
           import-fresh: 3.3.0
           js-yaml: 4.1.0
           parse-json: 5.2.0
           typescript: 5.4.3
    +    dev: true
     
    -  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
    @@ -14265,30 +7559,58 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  create-require@1.1.1: {}
    +  /create-require@1.1.1:
    +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    +    dev: true
     
    -  cross-spawn@7.0.3:
    +  /cross-spawn@7.0.3:
    +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    +    engines: {node: '>= 8'}
         dependencies:
           path-key: 3.1.1
           shebang-command: 2.0.0
           which: 2.0.2
     
    -  crypto-random-string@2.0.0: {}
    +  /crypto-random-string@2.0.0:
    +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  crypto-random-string@4.0.0:
    +  /crypto-random-string@4.0.0:
    +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    +    engines: {node: '>=12'}
         dependencies:
           type-fest: 1.4.0
    +    dev: false
     
    -  css-declaration-sorter@6.4.1(postcss@8.4.38):
    +  /css-declaration-sorter@6.4.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    peerDependencies:
    +      postcss: ^8.0.9
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  css-in-js-utils@3.1.0:
    +  /css-in-js-utils@3.1.0:
    +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
         dependencies:
           hyphenate-style-name: 1.0.4
    +    dev: false
     
    -  css-loader@6.10.0(webpack@5.91.0):
    +  /css-loader@6.10.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
    @@ -14300,7 +7622,30 @@ snapshots:
           semver: 7.6.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    +  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@parcel/css': '*'
    +      '@swc/css': '*'
    +      clean-css: '*'
    +      csso: '*'
    +      esbuild: '*'
    +      lightningcss: '*'
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@parcel/css':
    +        optional: true
    +      '@swc/css':
    +        optional: true
    +      clean-css:
    +        optional: true
    +      csso:
    +        optional: true
    +      esbuild:
    +        optional: true
    +      lightningcss:
    +        optional: true
         dependencies:
           clean-css: 5.3.3
           cssnano: 5.1.15(postcss@8.4.38)
    @@ -14311,8 +7656,10 @@ snapshots:
           serialize-javascript: 6.0.2
           source-map: 0.6.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  css-select@4.3.0:
    +  /css-select@4.3.0:
    +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -14320,7 +7667,8 @@ snapshots:
           domutils: 2.8.0
           nth-check: 2.1.1
     
    -  css-select@5.1.0:
    +  /css-select@5.1.0:
    +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -14328,26 +7676,44 @@ snapshots:
           domutils: 3.1.0
           nth-check: 2.1.1
     
    -  css-tree@1.1.3:
    +  /css-tree@1.1.3:
    +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           mdn-data: 2.0.14
           source-map: 0.6.1
    +    dev: false
     
    -  css-tree@2.2.1:
    +  /css-tree@2.2.1:
    +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
         dependencies:
           mdn-data: 2.0.28
           source-map-js: 1.2.0
    +    dev: true
     
    -  css-tree@2.3.1:
    +  /css-tree@2.3.1:
    +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
         dependencies:
           mdn-data: 2.0.30
           source-map-js: 1.2.0
    +    dev: true
     
    -  css-what@6.1.0: {}
    +  /css-what@6.1.0:
    +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    +    engines: {node: '>= 6'}
     
    -  cssesc@3.0.0: {}
    +  /cssesc@3.0.0:
    +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    +  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           autoprefixer: 10.4.19(postcss@8.4.38)
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
    @@ -14356,8 +7722,13 @@ snapshots:
           postcss-merge-idents: 5.1.1(postcss@8.4.38)
           postcss-reduce-idents: 5.2.0(postcss@8.4.38)
           postcss-zindex: 5.1.0(postcss@8.4.38)
    +    dev: false
     
    -  cssnano-preset-default@5.2.14(postcss@8.4.38):
    +  /cssnano-preset-default@5.2.14(postcss@8.4.38):
    +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           css-declaration-sorter: 6.4.1(postcss@8.4.38)
           cssnano-utils: 3.1.0(postcss@8.4.38)
    @@ -14389,113 +7760,214 @@ snapshots:
           postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
           postcss-svgo: 5.1.0(postcss@8.4.38)
           postcss-unique-selectors: 5.1.1(postcss@8.4.38)
    +    dev: false
     
    -  cssnano-utils@3.1.0(postcss@8.4.38):
    +  /cssnano-utils@3.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  cssnano@5.1.15(postcss@8.4.38):
    +  /cssnano@5.1.15(postcss@8.4.38):
    +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
           lilconfig: 2.1.0
           postcss: 8.4.38
           yaml: 1.10.2
    +    dev: false
     
    -  csso@4.2.0:
    +  /csso@4.2.0:
    +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           css-tree: 1.1.3
    +    dev: false
     
    -  csso@5.0.5:
    +  /csso@5.0.5:
    +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
         dependencies:
           css-tree: 2.2.1
    +    dev: true
     
    -  cssom@0.3.8: {}
    +  /cssom@0.3.8:
    +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    +    dev: true
     
    -  cssom@0.5.0: {}
    +  /cssom@0.5.0:
    +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    +    dev: true
     
    -  cssstyle@2.3.0:
    +  /cssstyle@2.3.0:
    +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    +    engines: {node: '>=8'}
         dependencies:
           cssom: 0.3.8
    +    dev: true
     
    -  csstype@3.1.3: {}
    +  /csstype@3.1.3:
    +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
     
    -  damerau-levenshtein@1.0.8: {}
    +  /damerau-levenshtein@1.0.8:
    +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    +    dev: true
     
    -  dargs@7.0.0: {}
    +  /dargs@7.0.0:
    +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    +    engines: {node: '>=8'}
     
    -  data-uri-to-buffer@2.0.2: {}
    +  /data-uri-to-buffer@2.0.2:
    +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    +    dev: true
     
    -  data-uri-to-buffer@3.0.1: {}
    +  /data-uri-to-buffer@3.0.1:
    +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    +    engines: {node: '>= 6'}
    +    dev: false
     
    -  data-urls@3.0.2:
    +  /data-urls@3.0.2:
    +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    +    engines: {node: '>=12'}
         dependencies:
           abab: 2.0.6
           whatwg-mimetype: 3.0.0
           whatwg-url: 11.0.0
    +    dev: true
     
    -  data-view-buffer@1.0.1:
    +  /data-view-buffer@1.0.1:
    +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  data-view-byte-length@1.0.1:
    +  /data-view-byte-length@1.0.1:
    +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  data-view-byte-offset@1.0.0:
    +  /data-view-byte-offset@1.0.0:
    +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    +    dev: true
     
    -  dateformat@4.6.3: {}
    +  /dateformat@4.6.3:
    +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
     
    -  debounce@1.2.1: {}
    +  /debounce@1.2.1:
    +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    +    dev: false
     
    -  debug@2.6.9:
    +  /debug@2.6.9:
    +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.0.0
     
    -  debug@3.2.7:
    +  /debug@3.2.7:
    +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.1.3
    +    dev: true
     
    -  debug@4.3.4(supports-color@8.1.1):
    +  /debug@4.3.4(supports-color@8.1.1):
    +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    +    engines: {node: '>=6.0'}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
         dependencies:
           ms: 2.1.2
           supports-color: 8.1.1
     
    -  debuglog@1.0.1: {}
    +  /debuglog@1.0.1:
    +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
     
    -  decamelize-keys@1.1.1:
    +  /decamelize-keys@1.1.1:
    +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           decamelize: 1.2.0
           map-obj: 1.0.1
    +    dev: true
     
    -  decamelize@1.2.0: {}
    +  /decamelize@1.2.0:
    +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  decamelize@4.0.0: {}
    +  /decamelize@4.0.0:
    +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  decamelize@5.0.1: {}
    +  /decamelize@5.0.1:
    +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  decimal.js@10.4.3: {}
    +  /decimal.js@10.4.3:
    +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    +    dev: true
     
    -  decode-named-character-reference@1.0.2:
    +  /decode-named-character-reference@1.0.2:
    +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
         dependencies:
           character-entities: 2.0.2
     
    -  decompress-response@6.0.0:
    +  /decompress-response@6.0.0:
    +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    +    engines: {node: '>=10'}
         dependencies:
           mimic-response: 3.1.0
    +    dev: false
     
    -  dedent@1.5.1: {}
    +  /dedent@1.5.1:
    +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    +    peerDependencies:
    +      babel-plugin-macros: ^3.1.0
    +    peerDependenciesMeta:
    +      babel-plugin-macros:
    +        optional: true
    +    dev: true
     
    -  deep-eql@5.0.1: {}
    +  /deep-eql@5.0.1:
    +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  deep-equal@2.2.3:
    +  /deep-equal@2.2.3:
    +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -14515,47 +7987,74 @@ snapshots:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  deep-extend@0.6.0: {}
    +  /deep-extend@0.6.0:
    +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    +    engines: {node: '>=4.0.0'}
     
    -  deep-is@0.1.4: {}
    +  /deep-is@0.1.4:
    +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
     
    -  deepmerge@4.3.1: {}
    +  /deepmerge@4.3.1:
    +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    +    engines: {node: '>=0.10.0'}
     
    -  default-browser-id@5.0.0: {}
    +  /default-browser-id@5.0.0:
    +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    +    engines: {node: '>=18'}
     
    -  default-browser@5.2.1:
    +  /default-browser@5.2.1:
    +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    +    engines: {node: '>=18'}
         dependencies:
           bundle-name: 4.1.0
           default-browser-id: 5.0.0
     
    -  default-gateway@6.0.3:
    +  /default-gateway@6.0.3:
    +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    +    engines: {node: '>= 10'}
         dependencies:
           execa: 5.1.1
     
    -  defaults@1.0.4:
    +  /defaults@1.0.4:
    +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
         dependencies:
           clone: 1.0.4
     
    -  defer-to-connect@2.0.1: {}
    +  /defer-to-connect@2.0.1:
    +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  define-data-property@1.1.4:
    +  /define-data-property@1.1.4:
    +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
           gopd: 1.0.1
     
    -  define-lazy-prop@2.0.0: {}
    +  /define-lazy-prop@2.0.0:
    +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  define-lazy-prop@3.0.0: {}
    +  /define-lazy-prop@3.0.0:
    +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    +    engines: {node: '>=12'}
     
    -  define-properties@1.2.1:
    +  /define-properties@1.2.1:
    +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           has-property-descriptors: 1.0.2
           object-keys: 1.1.1
     
    -  del@6.1.1:
    +  /del@6.1.1:
    +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    +    engines: {node: '>=10'}
         dependencies:
           globby: 11.1.0
           graceful-fs: 4.2.11
    @@ -14565,201 +8064,327 @@ snapshots:
           p-map: 4.0.0
           rimraf: 3.0.2
           slash: 3.0.0
    +    dev: false
     
    -  delayed-stream@1.0.0: {}
    +  /delayed-stream@1.0.0:
    +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    +    engines: {node: '>=0.4.0'}
    +    dev: true
     
    -  delegates@1.0.0: {}
    +  /delegates@1.0.0:
    +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
     
    -  depd@1.1.2: {}
    +  /depd@1.1.2:
    +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    +    engines: {node: '>= 0.6'}
     
    -  depd@2.0.0: {}
    +  /depd@2.0.0:
    +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    +    engines: {node: '>= 0.8'}
     
    -  deprecation@2.3.1: {}
    +  /deprecation@2.3.1:
    +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
     
    -  dequal@2.0.3: {}
    +  /dequal@2.0.3:
    +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    +    engines: {node: '>=6'}
     
    -  destroy@1.2.0: {}
    +  /destroy@1.2.0:
    +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
     
    -  detect-indent@7.0.1: {}
    +  /detect-indent@7.0.1:
    +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    +    engines: {node: '>=12.20'}
    +    dev: true
     
    -  detect-libc@2.0.3: {}
    +  /detect-libc@2.0.3:
    +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  detect-newline@3.1.0: {}
    +  /detect-newline@3.1.0:
    +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  detect-node@2.1.0: {}
    +  /detect-node@2.1.0:
    +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
     
    -  detect-port-alt@1.1.6:
    +  /detect-port-alt@1.1.6:
    +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    +    engines: {node: '>= 4.2.1'}
    +    hasBin: true
         dependencies:
           address: 1.2.2
           debug: 2.6.9
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  detect-port@1.5.1:
    +  /detect-port@1.5.1:
    +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    +    hasBin: true
         dependencies:
           address: 1.2.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  devlop@1.1.0:
    +  /devlop@1.1.0:
    +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
         dependencies:
           dequal: 2.0.3
     
    -  dezalgo@1.0.4:
    +  /dezalgo@1.0.4:
    +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
         dependencies:
           asap: 2.0.6
           wrappy: 1.0.2
     
    -  didyoumean@1.2.2: {}
    +  /didyoumean@1.2.2:
    +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    +    dev: true
     
    -  diff-sequences@29.6.3: {}
    +  /diff-sequences@29.6.3:
    +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  diff@4.0.2: {}
    +  /diff@4.0.2:
    +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    +    engines: {node: '>=0.3.1'}
    +    dev: true
     
    -  diff@5.0.0: {}
    +  /diff@5.0.0:
    +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    +    engines: {node: '>=0.3.1'}
    +    dev: true
     
    -  diff@5.2.0: {}
    +  /diff@5.2.0:
    +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    +    engines: {node: '>=0.3.1'}
     
    -  dir-glob@3.0.1:
    +  /dir-glob@3.0.1:
    +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    +    engines: {node: '>=8'}
         dependencies:
           path-type: 4.0.0
     
    -  discontinuous-range@1.0.0: {}
    +  /discontinuous-range@1.0.0:
    +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    +    dev: false
     
    -  dlv@1.1.3: {}
    +  /dlv@1.1.3:
    +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    +    dev: true
     
    -  dns-packet@5.6.1:
    +  /dns-packet@5.6.1:
    +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    +    engines: {node: '>=6'}
         dependencies:
           '@leichtgewicht/ip-codec': 2.0.4
     
    -  doctrine@2.1.0:
    +  /doctrine@2.1.0:
    +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           esutils: 2.0.3
    +    dev: true
     
    -  doctrine@3.0.0:
    +  /doctrine@3.0.0:
    +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           esutils: 2.0.3
     
    -  dom-accessibility-api@0.5.16: {}
    +  /dom-accessibility-api@0.5.16:
    +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    +    dev: true
     
    -  dom-converter@0.2.0:
    +  /dom-converter@0.2.0:
    +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
         dependencies:
           utila: 0.4.0
     
    -  dom-serializer@1.4.1:
    +  /dom-serializer@1.4.1:
    +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           entities: 2.2.0
     
    -  dom-serializer@2.0.0:
    +  /dom-serializer@2.0.0:
    +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           entities: 4.5.0
     
    -  domelementtype@2.3.0: {}
    +  /domelementtype@2.3.0:
    +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
     
    -  domexception@4.0.0:
    +  /domexception@4.0.0:
    +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    +    engines: {node: '>=12'}
    +    deprecated: Use your platform's native DOMException instead
         dependencies:
           webidl-conversions: 7.0.0
    +    dev: true
     
    -  domhandler@4.3.1:
    +  /domhandler@4.3.1:
    +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    +    engines: {node: '>= 4'}
         dependencies:
           domelementtype: 2.3.0
     
    -  domhandler@5.0.3:
    +  /domhandler@5.0.3:
    +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    +    engines: {node: '>= 4'}
         dependencies:
           domelementtype: 2.3.0
     
    -  domutils@2.8.0:
    +  /domutils@2.8.0:
    +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
         dependencies:
           dom-serializer: 1.4.1
           domelementtype: 2.3.0
           domhandler: 4.3.1
     
    -  domutils@3.1.0:
    +  /domutils@3.1.0:
    +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
         dependencies:
           dom-serializer: 2.0.0
           domelementtype: 2.3.0
           domhandler: 5.0.3
     
    -  dot-case@3.0.4:
    +  /dot-case@3.0.4:
    +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  dot-prop@6.0.1:
    +  /dot-prop@6.0.1:
    +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    +    engines: {node: '>=10'}
         dependencies:
           is-obj: 2.0.0
    +    dev: false
     
    -  duplexer@0.1.2: {}
    +  /duplexer@0.1.2:
    +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    +    dev: false
     
    -  eastasianwidth@0.2.0: {}
    +  /eastasianwidth@0.2.0:
    +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
     
    -  ee-first@1.1.1: {}
    +  /ee-first@1.1.1:
    +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
     
    -  effect@2.0.0-next.62: {}
    +  /effect@2.0.0-next.62:
    +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    +    dev: true
     
    -  ejs@3.1.9:
    +  /ejs@3.1.9:
    +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    +    engines: {node: '>=0.10.0'}
    +    hasBin: true
         dependencies:
           jake: 10.8.7
     
    -  electron-to-chromium@1.4.717: {}
    +  /electron-to-chromium@1.4.717:
    +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
     
    -  emittery@0.13.1: {}
    +  /emittery@0.13.1:
    +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  emoji-regex@8.0.0: {}
    +  /emoji-regex@8.0.0:
    +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     
    -  emoji-regex@9.2.2: {}
    +  /emoji-regex@9.2.2:
    +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
     
    -  emojilib@2.4.0: {}
    +  /emojilib@2.4.0:
    +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    +    dev: false
     
    -  emojis-list@3.0.0: {}
    +  /emojis-list@3.0.0:
    +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    +    engines: {node: '>= 4'}
    +    dev: false
     
    -  emoticon@4.0.1: {}
    +  /emoticon@4.0.1:
    +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    +    dev: false
     
    -  enabled@2.0.0: {}
    +  /enabled@2.0.0:
    +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
     
    -  encodeurl@1.0.2: {}
    +  /encodeurl@1.0.2:
    +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    +    engines: {node: '>= 0.8'}
     
    -  encoding@0.1.13:
    +  /encoding@0.1.13:
    +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    +    requiresBuild: true
         dependencies:
           iconv-lite: 0.6.3
         optional: true
     
    -  enhanced-resolve@5.16.0:
    +  /enhanced-resolve@5.16.0:
    +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           graceful-fs: 4.2.11
           tapable: 2.2.1
     
    -  enquirer@2.4.1:
    +  /enquirer@2.4.1:
    +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    +    engines: {node: '>=8.6'}
         dependencies:
           ansi-colors: 4.1.3
           strip-ansi: 6.0.1
    +    dev: true
     
    -  entities@2.2.0: {}
    +  /entities@2.2.0:
    +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
     
    -  entities@4.5.0: {}
    +  /entities@4.5.0:
    +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    +    engines: {node: '>=0.12'}
     
    -  env-paths@2.2.1: {}
    +  /env-paths@2.2.1:
    +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    +    engines: {node: '>=6'}
     
    -  envinfo@7.11.1: {}
    +  /envinfo@7.11.1:
    +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  err-code@2.0.3: {}
    +  /err-code@2.0.3:
    +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
     
    -  error-ex@1.3.2:
    +  /error-ex@1.3.2:
    +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
         dependencies:
           is-arrayish: 0.2.1
     
    -  error-stack-parser@2.1.4:
    +  /error-stack-parser@2.1.4:
    +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
         dependencies:
           stackframe: 1.3.4
    +    dev: false
     
    -  error@10.4.0: {}
    +  /error@10.4.0:
    +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
     
    -  es-abstract@1.23.2:
    +  /es-abstract@1.23.2:
    +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           array-buffer-byte-length: 1.0.1
           arraybuffer.prototype.slice: 1.0.3
    @@ -14807,14 +8432,20 @@ snapshots:
           typed-array-length: 1.0.6
           unbox-primitive: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  es-define-property@1.0.0:
    +  /es-define-property@1.0.0:
    +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           get-intrinsic: 1.2.4
     
    -  es-errors@1.3.0: {}
    +  /es-errors@1.3.0:
    +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    +    engines: {node: '>= 0.4'}
     
    -  es-get-iterator@1.1.3:
    +  /es-get-iterator@1.1.3:
    +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    @@ -14825,8 +8456,11 @@ snapshots:
           is-string: 1.0.7
           isarray: 2.0.5
           stop-iteration-iterator: 1.0.0
    +    dev: true
     
    -  es-iterator-helpers@1.0.18:
    +  /es-iterator-helpers@1.0.18:
    +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -14842,30 +8476,47 @@ snapshots:
           internal-slot: 1.0.7
           iterator.prototype: 1.1.2
           safe-array-concat: 1.1.2
    +    dev: true
     
    -  es-module-lexer@1.5.0: {}
    +  /es-module-lexer@1.5.0:
    +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
     
    -  es-object-atoms@1.0.0:
    +  /es-object-atoms@1.0.0:
    +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
    +    dev: true
     
    -  es-set-tostringtag@2.0.3:
    +  /es-set-tostringtag@2.0.3:
    +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           get-intrinsic: 1.2.4
           has-tostringtag: 1.0.2
           hasown: 2.0.2
    +    dev: true
     
    -  es-shim-unscopables@1.0.2:
    +  /es-shim-unscopables@1.0.2:
    +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
         dependencies:
           hasown: 2.0.2
    +    dev: true
     
    -  es-to-primitive@1.2.1:
    +  /es-to-primitive@1.2.1:
    +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-callable: 1.2.7
           is-date-object: 1.0.5
           is-symbol: 1.0.4
    +    dev: true
     
    -  esbuild@0.20.2:
    +  /esbuild@0.20.2:
    +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +    requiresBuild: true
         optionalDependencies:
           '@esbuild/aix-ppc64': 0.20.2
           '@esbuild/android-arm': 0.20.2
    @@ -14891,29 +8542,56 @@ snapshots:
           '@esbuild/win32-ia32': 0.20.2
           '@esbuild/win32-x64': 0.20.2
     
    -  escalade@3.1.2: {}
    +  /escalade@3.1.2:
    +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    +    engines: {node: '>=6'}
     
    -  escape-goat@4.0.0: {}
    +  /escape-goat@4.0.0:
    +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  escape-html@1.0.3: {}
    +  /escape-html@1.0.3:
    +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
     
    -  escape-string-regexp@1.0.5: {}
    +  /escape-string-regexp@1.0.5:
    +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    +    engines: {node: '>=0.8.0'}
     
    -  escape-string-regexp@2.0.0: {}
    +  /escape-string-regexp@2.0.0:
    +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  escape-string-regexp@4.0.0: {}
    +  /escape-string-regexp@4.0.0:
    +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    +    engines: {node: '>=10'}
     
    -  escape-string-regexp@5.0.0: {}
    +  /escape-string-regexp@5.0.0:
    +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  escodegen@2.1.0:
    +  /escodegen@2.1.0:
    +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    +    engines: {node: '>=6.0'}
    +    hasBin: true
         dependencies:
           esprima: 4.0.1
           estraverse: 5.3.0
           esutils: 2.0.3
         optionalDependencies:
           source-map: 0.6.1
    +    dev: true
     
    -  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    +  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    +    peerDependencies:
    +      eslint: ^7.23.0 || ^8.0.0
    +      typescript: '>=3.3.1'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@next/eslint-plugin-next': 14.1.4
           '@rushstack/eslint-patch': 1.8.0
    @@ -14929,20 +8607,33 @@ snapshots:
         transitivePeerDependencies:
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-config-prettier@9.1.0(eslint@8.57.0):
    +  /eslint-config-prettier@9.1.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
         dependencies:
           eslint: 8.57.0
    +    dev: true
     
    -  eslint-import-resolver-node@0.3.9:
    +  /eslint-import-resolver-node@0.3.9:
    +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
         dependencies:
           debug: 3.2.7
           is-core-module: 2.13.1
           resolve: 1.22.8
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -14958,8 +8649,14 @@ snapshots:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -14975,8 +8672,28 @@ snapshots:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -14985,8 +8702,28 @@ snapshots:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -14995,8 +8732,17 @@ snapshots:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           array-includes: 3.1.8
    @@ -15021,8 +8767,13 @@ snapshots:
           - eslint-import-resolver-typescript
           - eslint-import-resolver-webpack
           - supports-color
    +    dev: true
     
    -  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    +  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
         dependencies:
           '@babel/runtime': 7.24.1
           aria-query: 5.3.0
    @@ -15041,19 +8792,34 @@ snapshots:
           minimatch: 3.1.2
           object.entries: 1.1.8
           object.fromentries: 2.0.8
    +    dev: true
     
    -  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    +  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      eslint: '>=7.0.0'
         dependencies:
           eslint: 8.57.0
           eslint-utils: 3.0.0(eslint@8.57.0)
           globals: 13.24.0
           rambda: 7.5.0
    +    dev: true
     
    -  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    +  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
         dependencies:
           eslint: 8.57.0
    +    dev: true
     
    -  eslint-plugin-react@7.34.1(eslint@8.57.0):
    +  /eslint-plugin-react@7.34.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
         dependencies:
           array-includes: 3.1.8
           array.prototype.findlast: 1.2.5
    @@ -15074,8 +8840,13 @@ snapshots:
           resolve: 2.0.0-next.5
           semver: 6.3.1
           string.prototype.matchall: 4.0.11
    +    dev: true
     
    -  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    +  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      eslint: '>=8.56.0'
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    @@ -15096,35 +8867,65 @@ snapshots:
           strip-indent: 3.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    +  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/eslint-plugin': 6 - 7
    +      eslint: '8'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/eslint-plugin':
    +        optional: true
         dependencies:
           '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
           eslint: 8.57.0
           eslint-rule-composer: 0.3.0
    +    dev: true
     
    -  eslint-rule-composer@0.3.0: {}
    +  /eslint-rule-composer@0.3.0:
    +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    +    engines: {node: '>=4.0.0'}
    +    dev: true
     
    -  eslint-scope@5.1.1:
    +  /eslint-scope@5.1.1:
    +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           esrecurse: 4.3.0
           estraverse: 4.3.0
     
    -  eslint-scope@7.2.2:
    +  /eslint-scope@7.2.2:
    +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           esrecurse: 4.3.0
           estraverse: 5.3.0
     
    -  eslint-utils@3.0.0(eslint@8.57.0):
    +  /eslint-utils@3.0.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    +    peerDependencies:
    +      eslint: '>=5'
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 2.1.0
    +    dev: true
     
    -  eslint-visitor-keys@2.1.0: {}
    +  /eslint-visitor-keys@2.1.0:
    +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  eslint-visitor-keys@3.4.3: {}
    +  /eslint-visitor-keys@3.4.3:
    +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     
    -  eslint@8.57.0:
    +  /eslint@8.57.0:
    +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@eslint-community/regexpp': 4.10.0
    @@ -15167,77 +8968,116 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  espree@9.6.1:
    +  /espree@9.6.1:
    +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
           eslint-visitor-keys: 3.4.3
     
    -  esprima@4.0.1: {}
    +  /esprima@4.0.1:
    +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  esquery@1.5.0:
    +  /esquery@1.5.0:
    +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    +    engines: {node: '>=0.10'}
         dependencies:
           estraverse: 5.3.0
     
    -  esrecurse@4.3.0:
    +  /esrecurse@4.3.0:
    +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    +    engines: {node: '>=4.0'}
         dependencies:
           estraverse: 5.3.0
     
    -  estraverse@4.3.0: {}
    +  /estraverse@4.3.0:
    +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    +    engines: {node: '>=4.0'}
     
    -  estraverse@5.3.0: {}
    +  /estraverse@5.3.0:
    +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    +    engines: {node: '>=4.0'}
     
    -  estree-util-attach-comments@3.0.0:
    +  /estree-util-attach-comments@3.0.0:
    +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  estree-util-build-jsx@3.0.1:
    +  /estree-util-build-jsx@3.0.1:
    +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           devlop: 1.1.0
           estree-util-is-identifier-name: 3.0.0
           estree-walker: 3.0.3
     
    -  estree-util-is-identifier-name@3.0.0: {}
    +  /estree-util-is-identifier-name@3.0.0:
    +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
     
    -  estree-util-to-js@2.0.0:
    +  /estree-util-to-js@2.0.0:
    +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           astring: 1.8.6
           source-map: 0.7.4
     
    -  estree-util-value-to-estree@3.0.1:
    +  /estree-util-value-to-estree@3.0.1:
    +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    +    engines: {node: '>=16.0.0'}
         dependencies:
           '@types/estree': 1.0.5
           is-plain-obj: 4.1.0
    +    dev: false
     
    -  estree-util-visit@2.0.0:
    +  /estree-util-visit@2.0.0:
    +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/unist': 3.0.2
     
    -  estree-walker@3.0.3:
    +  /estree-walker@3.0.3:
    +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  esutils@2.0.3: {}
    +  /esutils@2.0.3:
    +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    +    engines: {node: '>=0.10.0'}
     
    -  eta@2.2.0: {}
    +  /eta@2.2.0:
    +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    +    engines: {node: '>=6.0.0'}
    +    dev: false
     
    -  etag@1.8.1: {}
    +  /etag@1.8.1:
    +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    +    engines: {node: '>= 0.6'}
     
    -  eval@0.1.8:
    +  /eval@0.1.8:
    +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           '@types/node': 18.18.2
           require-like: 0.1.2
    +    dev: false
     
    -  event-target-shim@5.0.1: {}
    +  /event-target-shim@5.0.1:
    +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    +    engines: {node: '>=6'}
     
    -  eventemitter3@4.0.7: {}
    +  /eventemitter3@4.0.7:
    +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
     
    -  events@3.3.0: {}
    +  /events@3.3.0:
    +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    +    engines: {node: '>=0.8.x'}
     
    -  execa@5.1.1:
    +  /execa@5.1.1:
    +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    +    engines: {node: '>=10'}
         dependencies:
           cross-spawn: 7.0.3
           get-stream: 6.0.1
    @@ -15249,19 +9089,28 @@ snapshots:
           signal-exit: 3.0.7
           strip-final-newline: 2.0.0
     
    -  exit@0.1.2: {}
    +  /exit@0.1.2:
    +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    +    engines: {node: '>= 0.8.0'}
    +    dev: true
     
    -  expect@29.7.0:
    +  /expect@29.7.0:
    +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/expect-utils': 29.7.0
           jest-get-type: 29.6.3
           jest-matcher-utils: 29.7.0
           jest-message-util: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  exponential-backoff@3.1.1: {}
    +  /exponential-backoff@3.1.1:
    +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
     
    -  express@4.19.2:
    +  /express@4.19.2:
    +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    +    engines: {node: '>= 0.10.0'}
         dependencies:
           accepts: 1.3.8
           array-flatten: 1.1.1
    @@ -15297,29 +9146,44 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  extend-shallow@2.0.1:
    +  /extend-shallow@2.0.1:
    +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-extendable: 0.1.1
    +    dev: false
     
    -  extend@3.0.2: {}
    +  /extend@3.0.2:
    +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
     
    -  external-editor@3.1.0:
    +  /external-editor@3.1.0:
    +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    +    engines: {node: '>=4'}
         dependencies:
           chardet: 0.7.0
           iconv-lite: 0.4.24
           tmp: 0.0.33
     
    -  fast-check@3.15.0:
    +  /fast-check@3.15.0:
    +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           pure-rand: 6.1.0
    +    dev: true
     
    -  fast-check@3.17.0:
    +  /fast-check@3.17.0:
    +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           pure-rand: 6.1.0
    +    dev: true
     
    -  fast-deep-equal@3.1.3: {}
    +  /fast-deep-equal@3.1.3:
    +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
     
    -  fast-glob@3.3.2:
    +  /fast-glob@3.3.2:
    +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    +    engines: {node: '>=8.6.0'}
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           '@nodelib/fs.walk': 1.2.8
    @@ -15327,77 +9191,129 @@ snapshots:
           merge2: 1.4.1
           micromatch: 4.0.5
     
    -  fast-json-stable-stringify@2.1.0: {}
    +  /fast-json-stable-stringify@2.1.0:
    +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
     
    -  fast-levenshtein@2.0.6: {}
    +  /fast-levenshtein@2.0.6:
    +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
     
    -  fast-loops@1.1.3: {}
    +  /fast-loops@1.1.3:
    +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    +    dev: false
     
    -  fast-safe-stringify@2.1.1: {}
    +  /fast-safe-stringify@2.1.1:
    +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
     
    -  fast-shallow-equal@1.0.0: {}
    +  /fast-shallow-equal@1.0.0:
    +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    +    dev: false
     
    -  fast-url-parser@1.1.3:
    +  /fast-url-parser@1.1.3:
    +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
         dependencies:
           punycode: 1.4.1
    +    dev: false
     
    -  fast-xml-parser@4.3.6:
    +  /fast-xml-parser@4.3.6:
    +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    +    hasBin: true
         dependencies:
           strnum: 1.0.5
    +    dev: true
     
    -  fastest-levenshtein@1.0.16: {}
    +  /fastest-levenshtein@1.0.16:
    +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    +    engines: {node: '>= 4.9.1'}
     
    -  fastest-stable-stringify@2.0.2: {}
    +  /fastest-stable-stringify@2.0.2:
    +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    +    dev: false
     
    -  fastq@1.17.1:
    +  /fastq@1.17.1:
    +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
         dependencies:
           reusify: 1.0.4
     
    -  fault@2.0.1:
    +  /fault@2.0.1:
    +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
         dependencies:
           format: 0.2.2
    +    dev: false
     
    -  faye-websocket@0.11.4:
    +  /faye-websocket@0.11.4:
    +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    +    engines: {node: '>=0.8.0'}
         dependencies:
           websocket-driver: 0.7.4
     
    -  fb-watchman@2.0.2:
    +  /fb-watchman@2.0.2:
    +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
         dependencies:
           bser: 2.1.1
    +    dev: true
     
    -  fecha@4.2.3: {}
    +  /fecha@4.2.3:
    +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
     
    -  feed@4.2.2:
    +  /feed@4.2.2:
    +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    +    engines: {node: '>=0.4.0'}
         dependencies:
           xml-js: 1.6.11
    +    dev: false
     
    -  fetch-blob@2.1.2: {}
    +  /fetch-blob@2.1.2:
    +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    +    engines: {node: ^10.17.0 || >=12.3.0}
    +    peerDependencies:
    +      domexception: '*'
    +    peerDependenciesMeta:
    +      domexception:
    +        optional: true
    +    dev: false
     
    -  figures@3.2.0:
    +  /figures@3.2.0:
    +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    +    engines: {node: '>=8'}
         dependencies:
           escape-string-regexp: 1.0.5
     
    -  file-entry-cache@6.0.1:
    +  /file-entry-cache@6.0.1:
    +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
         dependencies:
           flat-cache: 3.2.0
     
    -  file-loader@6.2.0(webpack@5.91.0):
    +  /file-loader@6.2.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
         dependencies:
           loader-utils: 2.0.4
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  filelist@1.0.4:
    +  /filelist@1.0.4:
    +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
         dependencies:
           minimatch: 5.1.6
     
    -  filesize@8.0.7: {}
    +  /filesize@8.0.7:
    +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    +    engines: {node: '>= 0.4.0'}
    +    dev: false
     
    -  fill-range@7.0.1:
    +  /fill-range@7.0.1:
    +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    +    engines: {node: '>=8'}
         dependencies:
           to-regex-range: 5.0.1
     
    -  finalhandler@1.2.0:
    +  /finalhandler@1.2.0:
    +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           debug: 2.6.9
           encodeurl: 1.0.2
    @@ -15409,63 +9325,108 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  find-cache-dir@4.0.0:
    +  /find-cache-dir@4.0.0:
    +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           common-path-prefix: 3.0.0
           pkg-dir: 7.0.0
    +    dev: false
     
    -  find-up@3.0.0:
    +  /find-up@3.0.0:
    +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    +    engines: {node: '>=6'}
         dependencies:
           locate-path: 3.0.0
    +    dev: false
     
    -  find-up@4.1.0:
    +  /find-up@4.1.0:
    +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    +    engines: {node: '>=8'}
         dependencies:
           locate-path: 5.0.0
           path-exists: 4.0.0
     
    -  find-up@5.0.0:
    +  /find-up@5.0.0:
    +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    +    engines: {node: '>=10'}
         dependencies:
           locate-path: 6.0.0
           path-exists: 4.0.0
     
    -  find-up@6.3.0:
    +  /find-up@6.3.0:
    +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           locate-path: 7.2.0
           path-exists: 5.0.0
    +    dev: false
     
    -  find-yarn-workspace-root2@1.2.16:
    +  /find-yarn-workspace-root2@1.2.16:
    +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
         dependencies:
           micromatch: 4.0.5
           pkg-dir: 4.2.0
     
    -  first-chunk-stream@2.0.0:
    +  /first-chunk-stream@2.0.0:
    +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           readable-stream: 2.3.8
     
    -  flat-cache@3.2.0:
    +  /flat-cache@3.2.0:
    +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
         dependencies:
           flatted: 3.3.1
           keyv: 4.5.4
           rimraf: 3.0.2
     
    -  flat@5.0.2: {}
    +  /flat@5.0.2:
    +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    +    hasBin: true
     
    -  flatted@3.3.1: {}
    +  /flatted@3.3.1:
    +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
     
    -  fn.name@1.1.0: {}
    +  /fn.name@1.1.0:
    +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
     
    -  follow-redirects@1.15.6: {}
    +  /follow-redirects@1.15.6:
    +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      debug: '*'
    +    peerDependenciesMeta:
    +      debug:
    +        optional: true
     
    -  for-each@0.3.3:
    +  /for-each@0.3.3:
    +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
         dependencies:
           is-callable: 1.2.7
    +    dev: true
     
    -  foreground-child@3.1.1:
    +  /foreground-child@3.1.1:
    +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    +    engines: {node: '>=14'}
         dependencies:
           cross-spawn: 7.0.3
           signal-exit: 4.1.0
     
    -  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    +    engines: {node: '>=10', yarn: '>=1.0.0'}
    +    peerDependencies:
    +      eslint: '>= 6'
    +      typescript: '>= 2.7'
    +      vue-template-compiler: '*'
    +      webpack: '>= 4'
    +    peerDependenciesMeta:
    +      eslint:
    +        optional: true
    +      vue-template-compiler:
    +        optional: true
         dependencies:
           '@babel/code-frame': 7.24.2
           '@types/json-schema': 7.0.15
    @@ -15483,63 +9444,102 @@ snapshots:
           tapable: 1.1.3
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  form-data-encoder@2.1.4: {}
    +  /form-data-encoder@2.1.4:
    +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    +    engines: {node: '>= 14.17'}
    +    dev: false
     
    -  form-data@4.0.0:
    +  /form-data@4.0.0:
    +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    +    engines: {node: '>= 6'}
         dependencies:
           asynckit: 0.4.0
           combined-stream: 1.0.8
           mime-types: 2.1.35
    +    dev: true
     
    -  format@0.2.2: {}
    +  /format@0.2.2:
    +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    +    engines: {node: '>=0.4.x'}
    +    dev: false
     
    -  forwarded@0.2.0: {}
    +  /forwarded@0.2.0:
    +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    +    engines: {node: '>= 0.6'}
     
    -  fraction.js@4.3.7: {}
    +  /fraction.js@4.3.7:
    +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
     
    -  fresh@0.5.2: {}
    +  /fresh@0.5.2:
    +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    +    engines: {node: '>= 0.6'}
     
    -  fs-extra@11.2.0:
    +  /fs-extra@11.2.0:
    +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    +    engines: {node: '>=14.14'}
         dependencies:
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
     
    -  fs-extra@9.1.0:
    +  /fs-extra@9.1.0:
    +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    +    engines: {node: '>=10'}
         dependencies:
           at-least-node: 1.0.0
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
    +    dev: false
     
    -  fs-minipass@2.1.0:
    +  /fs-minipass@2.1.0:
    +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  fs-minipass@3.0.3:
    +  /fs-minipass@3.0.3:
    +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
     
    -  fs-monkey@1.0.5: {}
    +  /fs-monkey@1.0.5:
    +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    +    dev: false
     
    -  fs.realpath@1.0.0: {}
    +  /fs.realpath@1.0.0:
    +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
     
    -  fsevents@2.3.3:
    +  /fsevents@2.3.3:
    +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    +    os: [darwin]
    +    requiresBuild: true
         optional: true
     
    -  function-bind@1.1.2: {}
    +  /function-bind@1.1.2:
    +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
     
    -  function.prototype.name@1.1.6:
    +  /function.prototype.name@1.1.6:
    +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           functions-have-names: 1.2.3
    +    dev: true
     
    -  functions-have-names@1.2.3: {}
    +  /functions-have-names@1.2.3:
    +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    +    dev: true
     
    -  gauge@3.0.2:
    +  /gauge@3.0.2:
    +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    +    engines: {node: '>=10'}
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -15551,7 +9551,9 @@ snapshots:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  gauge@4.0.4:
    +  /gauge@4.0.4:
    +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -15562,13 +9564,22 @@ snapshots:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  gensync@1.0.0-beta.2: {}
    +  /gensync@1.0.0-beta.2:
    +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    +    engines: {node: '>=6.9.0'}
     
    -  get-caller-file@2.0.5: {}
    +  /get-caller-file@2.0.5:
    +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    +    engines: {node: 6.* || 8.* || >= 10.*}
    +    dev: true
     
    -  get-func-name@2.0.2: {}
    +  /get-func-name@2.0.2:
    +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    +    dev: true
     
    -  get-intrinsic@1.2.4:
    +  /get-intrinsic@1.2.4:
    +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
           function-bind: 1.1.2
    @@ -15576,48 +9587,77 @@ snapshots:
           has-symbols: 1.0.3
           hasown: 2.0.2
     
    -  get-npm-tarball-url@2.1.0: {}
    +  /get-npm-tarball-url@2.1.0:
    +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    +    engines: {node: '>=12.17'}
    +    dev: false
     
    -  get-own-enumerable-property-symbols@3.0.2: {}
    +  /get-own-enumerable-property-symbols@3.0.2:
    +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    +    dev: false
     
    -  get-package-type@0.1.0: {}
    +  /get-package-type@0.1.0:
    +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    +    engines: {node: '>=8.0.0'}
    +    dev: true
     
    -  get-source@2.0.12:
    +  /get-source@2.0.12:
    +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
         dependencies:
           data-uri-to-buffer: 2.0.2
           source-map: 0.6.1
    +    dev: true
     
    -  get-stream@6.0.1: {}
    +  /get-stream@6.0.1:
    +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    +    engines: {node: '>=10'}
     
    -  get-symbol-description@1.0.2:
    +  /get-symbol-description@1.0.2:
    +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  get-tsconfig@4.7.3:
    +  /get-tsconfig@4.7.3:
    +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
         dependencies:
           resolve-pkg-maps: 1.0.0
    +    dev: true
     
    -  github-slugger@1.5.0: {}
    +  /github-slugger@1.5.0:
    +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    +    dev: false
     
    -  github-username@6.0.0:
    +  /github-username@6.0.0:
    +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    +    engines: {node: '>=10'}
         dependencies:
           '@octokit/rest': 18.12.0
         transitivePeerDependencies:
           - encoding
     
    -  glob-parent@5.1.2:
    +  /glob-parent@5.1.2:
    +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    +    engines: {node: '>= 6'}
         dependencies:
           is-glob: 4.0.3
     
    -  glob-parent@6.0.2:
    +  /glob-parent@6.0.2:
    +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           is-glob: 4.0.3
     
    -  glob-to-regexp@0.4.1: {}
    +  /glob-to-regexp@0.4.1:
    +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
     
    -  glob@10.3.10:
    +  /glob@10.3.10:
    +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
         dependencies:
           foreground-child: 3.1.1
           jackspeak: 2.3.6
    @@ -15625,7 +9665,8 @@ snapshots:
           minipass: 7.0.4
           path-scurry: 1.10.1
     
    -  glob@7.2.3:
    +  /glob@7.2.3:
    +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -15634,7 +9675,9 @@ snapshots:
           once: 1.4.0
           path-is-absolute: 1.0.1
     
    -  glob@8.1.0:
    +  /glob@8.1.0:
    +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    +    engines: {node: '>=12'}
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -15642,31 +9685,49 @@ snapshots:
           minimatch: 5.1.6
           once: 1.4.0
     
    -  global-dirs@3.0.1:
    +  /global-dirs@3.0.1:
    +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    +    engines: {node: '>=10'}
         dependencies:
           ini: 2.0.0
    +    dev: false
     
    -  global-modules@2.0.0:
    +  /global-modules@2.0.0:
    +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    +    engines: {node: '>=6'}
         dependencies:
           global-prefix: 3.0.0
    +    dev: false
     
    -  global-prefix@3.0.0:
    +  /global-prefix@3.0.0:
    +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    +    engines: {node: '>=6'}
         dependencies:
           ini: 1.3.8
           kind-of: 6.0.3
           which: 1.3.1
    +    dev: false
     
    -  globals@11.12.0: {}
    +  /globals@11.12.0:
    +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    +    engines: {node: '>=4'}
     
    -  globals@13.24.0:
    +  /globals@13.24.0:
    +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    +    engines: {node: '>=8'}
         dependencies:
           type-fest: 0.20.2
     
    -  globalthis@1.0.3:
    +  /globalthis@1.0.3:
    +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-properties: 1.2.1
    +    dev: true
     
    -  globby@11.1.0:
    +  /globby@11.1.0:
    +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    +    engines: {node: '>=10'}
         dependencies:
           array-union: 2.1.0
           dir-glob: 3.0.1
    @@ -15675,19 +9736,25 @@ snapshots:
           merge2: 1.4.1
           slash: 3.0.0
     
    -  globby@13.2.2:
    +  /globby@13.2.2:
    +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           dir-glob: 3.0.1
           fast-glob: 3.3.2
           ignore: 5.3.1
           merge2: 1.4.1
           slash: 4.0.0
    +    dev: false
     
    -  gopd@1.0.1:
    +  /gopd@1.0.1:
    +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
         dependencies:
           get-intrinsic: 1.2.4
     
    -  got@12.6.1:
    +  /got@12.6.1:
    +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    +    engines: {node: '>=14.16'}
         dependencies:
           '@sindresorhus/is': 5.6.0
           '@szmarczak/http-timer': 5.0.1
    @@ -15700,66 +9767,108 @@ snapshots:
           lowercase-keys: 3.0.0
           p-cancelable: 3.0.0
           responselike: 3.0.0
    +    dev: false
     
    -  graceful-fs@4.2.10: {}
    +  /graceful-fs@4.2.10:
    +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
     
    -  graceful-fs@4.2.11: {}
    +  /graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
     
    -  graceful-git@3.1.2:
    +  /graceful-git@3.1.2:
    +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    +    engines: {node: '>=10'}
         dependencies:
           retry: 0.12.0
           safe-execa: 0.1.2
    +    dev: false
     
    -  graphemer@1.4.0: {}
    +  /graphemer@1.4.0:
    +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
     
    -  gray-matter@4.0.3:
    +  /gray-matter@4.0.3:
    +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    +    engines: {node: '>=6.0'}
         dependencies:
           js-yaml: 3.14.1
           kind-of: 6.0.3
           section-matter: 1.0.0
           strip-bom-string: 1.0.0
    +    dev: false
     
    -  grouped-queue@2.0.0: {}
    +  /grouped-queue@2.0.0:
    +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    +    engines: {node: '>=8.0.0'}
     
    -  gzip-size@6.0.0:
    +  /gzip-size@6.0.0:
    +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    +    engines: {node: '>=10'}
         dependencies:
           duplexer: 0.1.2
    +    dev: false
     
    -  handle-thing@2.0.1: {}
    +  /handle-thing@2.0.1:
    +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
     
    -  hard-rejection@2.1.0: {}
    +  /hard-rejection@2.1.0:
    +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  has-bigints@1.0.2: {}
    +  /has-bigints@1.0.2:
    +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    +    dev: true
     
    -  has-flag@3.0.0: {}
    +  /has-flag@3.0.0:
    +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    +    engines: {node: '>=4'}
     
    -  has-flag@4.0.0: {}
    +  /has-flag@4.0.0:
    +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    +    engines: {node: '>=8'}
     
    -  has-property-descriptors@1.0.2:
    +  /has-property-descriptors@1.0.2:
    +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
         dependencies:
           es-define-property: 1.0.0
     
    -  has-proto@1.0.3: {}
    +  /has-proto@1.0.3:
    +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    +    engines: {node: '>= 0.4'}
     
    -  has-symbols@1.0.3: {}
    +  /has-symbols@1.0.3:
    +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    +    engines: {node: '>= 0.4'}
     
    -  has-tostringtag@1.0.2:
    +  /has-tostringtag@1.0.2:
    +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-symbols: 1.0.3
    +    dev: true
     
    -  has-unicode@2.0.1: {}
    +  /has-unicode@2.0.1:
    +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
     
    -  has-yarn@3.0.0: {}
    +  /has-yarn@3.0.0:
    +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  hasharray@1.1.2:
    +  /hasharray@1.1.2:
    +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
         dependencies:
           jclass: 1.2.1
    +    dev: false
     
    -  hasown@2.0.2:
    +  /hasown@2.0.2:
    +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           function-bind: 1.1.2
     
    -  hast-util-from-parse5@8.0.1:
    +  /hast-util-from-parse5@8.0.1:
    +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -15769,12 +9878,16 @@ snapshots:
           vfile: 6.0.1
           vfile-location: 5.0.2
           web-namespaces: 2.0.1
    +    dev: false
     
    -  hast-util-parse-selector@4.0.0:
    +  /hast-util-parse-selector@4.0.0:
    +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
         dependencies:
           '@types/hast': 3.0.4
    +    dev: false
     
    -  hast-util-raw@9.0.2:
    +  /hast-util-raw@9.0.2:
    +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -15789,8 +9902,10 @@ snapshots:
           vfile: 6.0.1
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    +    dev: false
     
    -  hast-util-to-estree@3.1.0:
    +  /hast-util-to-estree@3.1.0:
    +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -15811,7 +9926,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  hast-util-to-jsx-runtime@2.3.0:
    +  /hast-util-to-jsx-runtime@2.3.0:
    +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
         dependencies:
           '@types/estree': 1.0.5
           '@types/hast': 3.0.4
    @@ -15831,7 +9947,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  hast-util-to-parse5@8.0.0:
    +  /hast-util-to-parse5@8.0.0:
    +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
    @@ -15840,22 +9957,29 @@ snapshots:
           space-separated-tokens: 2.0.2
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    +    dev: false
     
    -  hast-util-whitespace@3.0.0:
    +  /hast-util-whitespace@3.0.0:
    +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
         dependencies:
           '@types/hast': 3.0.4
     
    -  hastscript@8.0.0:
    +  /hastscript@8.0.0:
    +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
           hast-util-parse-selector: 4.0.0
           property-information: 6.4.1
           space-separated-tokens: 2.0.2
    +    dev: false
     
    -  he@1.2.0: {}
    +  /he@1.2.0:
    +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    +    hasBin: true
     
    -  history@4.10.1:
    +  /history@4.10.1:
    +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
         dependencies:
           '@babel/runtime': 7.24.1
           loose-envify: 1.4.0
    @@ -15863,41 +9987,61 @@ snapshots:
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
           value-equal: 1.0.1
    +    dev: false
     
    -  hoist-non-react-statics@3.3.2:
    +  /hoist-non-react-statics@3.3.2:
    +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
         dependencies:
           react-is: 16.13.1
    +    dev: false
     
    -  hosted-git-info@2.8.9: {}
    +  /hosted-git-info@2.8.9:
    +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     
    -  hosted-git-info@4.1.0:
    +  /hosted-git-info@4.1.0:
    +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    +    engines: {node: '>=10'}
         dependencies:
           lru-cache: 6.0.0
     
    -  hosted-git-info@6.1.1:
    +  /hosted-git-info@6.1.1:
    +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           lru-cache: 7.18.3
     
    -  hosted-git-info@7.0.1:
    +  /hosted-git-info@7.0.1:
    +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
         dependencies:
           lru-cache: 10.2.0
    +    dev: true
     
    -  hpack.js@2.1.6:
    +  /hpack.js@2.1.6:
    +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
         dependencies:
           inherits: 2.0.4
           obuf: 1.1.2
           readable-stream: 2.3.8
           wbuf: 1.7.3
     
    -  html-encoding-sniffer@3.0.0:
    +  /html-encoding-sniffer@3.0.0:
    +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    +    engines: {node: '>=12'}
         dependencies:
           whatwg-encoding: 2.0.0
    +    dev: true
     
    -  html-entities@2.5.2: {}
    +  /html-entities@2.5.2:
    +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
     
    -  html-escaper@2.0.2: {}
    +  /html-escaper@2.0.2:
    +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
     
    -  html-minifier-terser@6.1.0:
    +  /html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    +    engines: {node: '>=12'}
    +    hasBin: true
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -15907,7 +10051,10 @@ snapshots:
           relateurl: 0.2.7
           terser: 5.29.2
     
    -  html-minifier-terser@7.2.0:
    +  /html-minifier-terser@7.2.0:
    +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    +    engines: {node: ^14.13.1 || >=16.0.0}
    +    hasBin: true
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -15916,12 +10063,28 @@ snapshots:
           param-case: 3.0.4
           relateurl: 0.2.7
           terser: 5.29.2
    +    dev: false
     
    -  html-tags@3.3.1: {}
    +  /html-tags@3.3.1:
    +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  html-void-elements@3.0.0: {}
    +  /html-void-elements@3.0.0:
    +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    +    dev: false
     
    -  html-webpack-plugin@5.6.0(webpack@5.91.0):
    +  /html-webpack-plugin@5.6.0(webpack@5.91.0):
    +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.20.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           '@types/html-minifier-terser': 6.1.0
           html-minifier-terser: 6.1.0
    @@ -15930,32 +10093,41 @@ snapshots:
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  htmlparser2@6.1.0:
    +  /htmlparser2@6.1.0:
    +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           domutils: 2.8.0
           entities: 2.2.0
     
    -  htmlparser2@8.0.2:
    +  /htmlparser2@8.0.2:
    +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
           entities: 4.5.0
    +    dev: false
     
    -  http-cache-semantics@4.1.1: {}
    +  /http-cache-semantics@4.1.1:
    +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
     
    -  http-deceiver@1.2.7: {}
    +  /http-deceiver@1.2.7:
    +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
     
    -  http-errors@1.6.3:
    +  /http-errors@1.6.3:
    +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           depd: 1.1.2
           inherits: 2.0.3
           setprototypeof: 1.1.0
           statuses: 1.5.0
     
    -  http-errors@2.0.0:
    +  /http-errors@2.0.0:
    +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           depd: 2.0.0
           inherits: 2.0.4
    @@ -15963,9 +10135,12 @@ snapshots:
           statuses: 2.0.1
           toidentifier: 1.0.1
     
    -  http-parser-js@0.5.8: {}
    +  /http-parser-js@0.5.8:
    +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
     
    -  http-proxy-agent@4.0.1:
    +  /http-proxy-agent@4.0.1:
    +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    +    engines: {node: '>= 6'}
         dependencies:
           '@tootallnate/once': 1.1.2
           agent-base: 6.0.2
    @@ -15973,7 +10148,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  http-proxy-agent@5.0.0:
    +  /http-proxy-agent@5.0.0:
    +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    +    engines: {node: '>= 6'}
         dependencies:
           '@tootallnate/once': 2.0.0
           agent-base: 6.0.2
    @@ -15981,7 +10158,14 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  http-proxy-middleware@2.0.6(@types/express@4.17.21):
    +  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
    +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      '@types/express': ^4.17.13
    +    peerDependenciesMeta:
    +      '@types/express':
    +        optional: true
         dependencies:
           '@types/express': 4.17.21
           '@types/http-proxy': 1.17.14
    @@ -15992,7 +10176,9 @@ snapshots:
         transitivePeerDependencies:
           - debug
     
    -  http-proxy@1.18.1:
    +  /http-proxy@1.18.1:
    +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    +    engines: {node: '>=8.0.0'}
         dependencies:
           eventemitter3: 4.0.7
           follow-redirects: 1.15.6
    @@ -16000,7 +10186,10 @@ snapshots:
         transitivePeerDependencies:
           - debug
     
    -  http-server@14.1.1:
    +  /http-server@14.1.1:
    +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    +    engines: {node: '>=12'}
    +    hasBin: true
         dependencies:
           basic-auth: 2.0.1
           chalk: 4.1.2
    @@ -16018,112 +10207,187 @@ snapshots:
         transitivePeerDependencies:
           - debug
           - supports-color
    +    dev: true
     
    -  http2-wrapper@2.2.1:
    +  /http2-wrapper@2.2.1:
    +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    +    engines: {node: '>=10.19.0'}
         dependencies:
           quick-lru: 5.1.1
           resolve-alpn: 1.2.1
    +    dev: false
     
    -  https-proxy-agent@5.0.1:
    +  /https-proxy-agent@5.0.1:
    +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    +    engines: {node: '>= 6'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  human-signals@2.1.0: {}
    +  /human-signals@2.1.0:
    +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    +    engines: {node: '>=10.17.0'}
     
    -  humanize-ms@1.2.1:
    +  /humanize-ms@1.2.1:
    +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
         dependencies:
           ms: 2.1.3
     
    -  hyphenate-style-name@1.0.4: {}
    +  /hyphenate-style-name@1.0.4:
    +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    +    dev: false
     
    -  iconv-lite@0.4.24:
    +  /iconv-lite@0.4.24:
    +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           safer-buffer: 2.1.2
     
    -  iconv-lite@0.6.3:
    +  /iconv-lite@0.6.3:
    +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    +    engines: {node: '>=0.10.0'}
    +    requiresBuild: true
         dependencies:
           safer-buffer: 2.1.2
     
    -  icss-utils@5.1.0(postcss@8.4.38):
    +  /icss-utils@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
     
    -  ieee754@1.2.1: {}
    +  /ieee754@1.2.1:
    +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
     
    -  ignore-walk@4.0.1:
    +  /ignore-walk@4.0.1:
    +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    +    engines: {node: '>=10'}
         dependencies:
           minimatch: 3.1.2
     
    -  ignore-walk@6.0.4:
    +  /ignore-walk@6.0.4:
    +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minimatch: 9.0.3
     
    -  ignore@5.3.1: {}
    +  /ignore@5.3.1:
    +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    +    engines: {node: '>= 4'}
     
    -  image-size@1.1.1:
    +  /image-size@1.1.1:
    +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    +    engines: {node: '>=16.x'}
    +    hasBin: true
         dependencies:
           queue: 6.0.2
    +    dev: false
     
    -  immediate@3.0.6: {}
    +  /immediate@3.0.6:
    +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    +    dev: true
     
    -  immer@10.0.4: {}
    +  /immer@10.0.4:
    +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    +    dev: false
     
    -  immer@9.0.21: {}
    +  /immer@9.0.21:
    +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    +    dev: false
     
    -  immutability-helper@3.1.1: {}
    +  /immutability-helper@3.1.1:
    +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    +    dev: false
     
    -  import-fresh@3.3.0:
    +  /import-fresh@3.3.0:
    +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    +    engines: {node: '>=6'}
         dependencies:
           parent-module: 1.0.1
           resolve-from: 4.0.0
     
    -  import-lazy@4.0.0: {}
    +  /import-lazy@4.0.0:
    +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  import-local@3.1.0:
    +  /import-local@3.1.0:
    +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    +    engines: {node: '>=8'}
    +    hasBin: true
         dependencies:
           pkg-dir: 4.2.0
           resolve-cwd: 3.0.0
     
    -  imurmurhash@0.1.4: {}
    +  /imurmurhash@0.1.4:
    +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    +    engines: {node: '>=0.8.19'}
     
    -  indent-string@4.0.0: {}
    +  /indent-string@4.0.0:
    +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    +    engines: {node: '>=8'}
     
    -  indent-string@5.0.0: {}
    +  /indent-string@5.0.0:
    +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  individual@3.0.0: {}
    +  /individual@3.0.0:
    +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
     
    -  infer-owner@1.0.4: {}
    +  /infer-owner@1.0.4:
    +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
     
    -  infima@0.2.0-alpha.43: {}
    +  /infima@0.2.0-alpha.43:
    +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  inflight@1.0.6:
    +  /inflight@1.0.6:
    +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
         dependencies:
           once: 1.4.0
           wrappy: 1.0.2
     
    -  inherits@2.0.3: {}
    +  /inherits@2.0.3:
    +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
     
    -  inherits@2.0.4: {}
    +  /inherits@2.0.4:
    +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
     
    -  ini@1.3.8: {}
    +  /ini@1.3.8:
    +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
     
    -  ini@2.0.0: {}
    +  /ini@2.0.0:
    +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  ini@3.0.1: {}
    +  /ini@3.0.1:
    +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    dev: true
     
    -  inline-style-parser@0.1.1: {}
    +  /inline-style-parser@0.1.1:
    +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
     
    -  inline-style-parser@0.2.2: {}
    +  /inline-style-parser@0.2.2:
    +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
     
    -  inline-style-prefixer@7.0.0:
    +  /inline-style-prefixer@7.0.0:
    +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
         dependencies:
           css-in-js-utils: 3.1.0
           fast-loops: 1.1.3
    +    dev: false
     
    -  inquirer@8.2.6:
    +  /inquirer@8.2.6:
    +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    +    engines: {node: '>=12.0.0'}
         dependencies:
           ansi-escapes: 4.3.2
           chalk: 4.1.2
    @@ -16141,255 +10405,454 @@ snapshots:
           through: 2.3.8
           wrap-ansi: 6.2.0
     
    -  internal-slot@1.0.7:
    +  /internal-slot@1.0.7:
    +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           es-errors: 1.3.0
           hasown: 2.0.2
           side-channel: 1.0.6
    +    dev: true
     
    -  interpret@1.4.0: {}
    +  /interpret@1.4.0:
    +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    +    engines: {node: '>= 0.10'}
     
    -  interpret@3.1.1: {}
    +  /interpret@3.1.1:
    +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    +    engines: {node: '>=10.13.0'}
     
    -  invariant@2.2.4:
    +  /invariant@2.2.4:
    +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
         dependencies:
           loose-envify: 1.4.0
     
    -  ip-address@9.0.5:
    +  /ip-address@9.0.5:
    +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    +    engines: {node: '>= 12'}
         dependencies:
           jsbn: 1.1.0
           sprintf-js: 1.1.3
     
    -  ipaddr.js@1.9.1: {}
    +  /ipaddr.js@1.9.1:
    +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    +    engines: {node: '>= 0.10'}
     
    -  ipaddr.js@2.1.0: {}
    +  /ipaddr.js@2.1.0:
    +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    +    engines: {node: '>= 10'}
     
    -  is-alphabetical@2.0.1: {}
    +  /is-alphabetical@2.0.1:
    +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
     
    -  is-alphanumerical@2.0.1:
    +  /is-alphanumerical@2.0.1:
    +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
         dependencies:
           is-alphabetical: 2.0.1
           is-decimal: 2.0.1
     
    -  is-arguments@1.1.1:
    +  /is-arguments@1.1.1:
    +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-array-buffer@3.0.4:
    +  /is-array-buffer@3.0.4:
    +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  is-arrayish@0.2.1: {}
    +  /is-arrayish@0.2.1:
    +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
     
    -  is-arrayish@0.3.2: {}
    +  /is-arrayish@0.3.2:
    +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
     
    -  is-async-function@2.0.0:
    +  /is-async-function@2.0.0:
    +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-bigint@1.0.4:
    +  /is-bigint@1.0.4:
    +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
         dependencies:
           has-bigints: 1.0.2
    +    dev: true
     
    -  is-binary-path@2.1.0:
    +  /is-binary-path@2.1.0:
    +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    +    engines: {node: '>=8'}
         dependencies:
           binary-extensions: 2.3.0
     
    -  is-boolean-object@1.1.2:
    +  /is-boolean-object@1.1.2:
    +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-builtin-module@3.2.1:
    +  /is-builtin-module@3.2.1:
    +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    +    engines: {node: '>=6'}
         dependencies:
           builtin-modules: 3.3.0
    +    dev: true
     
    -  is-callable@1.2.7: {}
    +  /is-callable@1.2.7:
    +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-ci@3.0.1:
    +  /is-ci@3.0.1:
    +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    +    hasBin: true
         dependencies:
           ci-info: 3.9.0
    +    dev: false
     
    -  is-core-module@2.13.1:
    +  /is-core-module@2.13.1:
    +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
         dependencies:
           hasown: 2.0.2
     
    -  is-data-view@1.0.1:
    +  /is-data-view@1.0.1:
    +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-typed-array: 1.1.13
    +    dev: true
     
    -  is-date-object@1.0.5:
    +  /is-date-object@1.0.5:
    +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-decimal@2.0.1: {}
    +  /is-decimal@2.0.1:
    +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
     
    -  is-docker@2.2.1: {}
    +  /is-docker@2.2.1:
    +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +    dev: false
     
    -  is-docker@3.0.0: {}
    +  /is-docker@3.0.0:
    +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    hasBin: true
     
    -  is-extendable@0.1.1: {}
    +  /is-extendable@0.1.1:
    +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-extglob@2.1.1: {}
    +  /is-extglob@2.1.1:
    +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    +    engines: {node: '>=0.10.0'}
     
    -  is-finalizationregistry@1.0.2:
    +  /is-finalizationregistry@1.0.2:
    +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-fullwidth-code-point@3.0.0: {}
    +  /is-fullwidth-code-point@3.0.0:
    +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    +    engines: {node: '>=8'}
     
    -  is-generator-fn@2.1.0: {}
    +  /is-generator-fn@2.1.0:
    +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  is-generator-function@1.0.10:
    +  /is-generator-function@1.0.10:
    +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-glob@4.0.3:
    +  /is-glob@4.0.3:
    +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-extglob: 2.1.1
     
    -  is-hexadecimal@2.0.1: {}
    +  /is-hexadecimal@2.0.1:
    +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
     
    -  is-inside-container@1.0.0:
    +  /is-inside-container@1.0.0:
    +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    +    engines: {node: '>=14.16'}
    +    hasBin: true
         dependencies:
           is-docker: 3.0.0
     
    -  is-installed-globally@0.4.0:
    +  /is-installed-globally@0.4.0:
    +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    +    engines: {node: '>=10'}
         dependencies:
           global-dirs: 3.0.1
           is-path-inside: 3.0.3
    +    dev: false
     
    -  is-interactive@1.0.0: {}
    +  /is-interactive@1.0.0:
    +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    +    engines: {node: '>=8'}
     
    -  is-lambda@1.0.1: {}
    +  /is-lambda@1.0.1:
    +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
     
    -  is-map@2.0.3: {}
    +  /is-map@2.0.3:
    +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-negative-zero@2.0.3: {}
    +  /is-negative-zero@2.0.3:
    +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-network-error@1.1.0: {}
    +  /is-network-error@1.1.0:
    +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    +    engines: {node: '>=16'}
     
    -  is-npm@6.0.0: {}
    +  /is-npm@6.0.0:
    +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  is-number-object@1.0.7:
    +  /is-number-object@1.0.7:
    +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-number@7.0.0: {}
    +  /is-number@7.0.0:
    +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    +    engines: {node: '>=0.12.0'}
     
    -  is-obj@1.0.1: {}
    +  /is-obj@1.0.1:
    +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-obj@2.0.0: {}
    +  /is-obj@2.0.0:
    +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    +    engines: {node: '>=8'}
    +    dev: false
     
    -  is-path-cwd@2.2.0: {}
    +  /is-path-cwd@2.2.0:
    +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  is-path-inside@3.0.3: {}
    +  /is-path-inside@3.0.3:
    +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    +    engines: {node: '>=8'}
     
    -  is-plain-obj@1.1.0: {}
    +  /is-plain-obj@1.1.0:
    +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  is-plain-obj@2.1.0: {}
    +  /is-plain-obj@2.1.0:
    +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    +    engines: {node: '>=8'}
     
    -  is-plain-obj@3.0.0: {}
    +  /is-plain-obj@3.0.0:
    +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    +    engines: {node: '>=10'}
     
    -  is-plain-obj@4.1.0: {}
    +  /is-plain-obj@4.1.0:
    +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    +    engines: {node: '>=12'}
     
    -  is-plain-object@2.0.4:
    +  /is-plain-object@2.0.4:
    +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           isobject: 3.0.1
     
    -  is-plain-object@5.0.0: {}
    +  /is-plain-object@5.0.0:
    +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    +    engines: {node: '>=0.10.0'}
     
    -  is-potential-custom-element-name@1.0.1: {}
    +  /is-potential-custom-element-name@1.0.1:
    +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    +    dev: true
     
    -  is-reference@3.0.2:
    +  /is-reference@3.0.2:
    +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
         dependencies:
           '@types/estree': 1.0.5
     
    -  is-regex@1.1.4:
    +  /is-regex@1.1.4:
    +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-regexp@1.0.0: {}
    +  /is-regexp@1.0.0:
    +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  is-root@2.1.0: {}
    +  /is-root@2.1.0:
    +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  is-scoped@2.1.0:
    +  /is-scoped@2.1.0:
    +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    +    engines: {node: '>=8'}
         dependencies:
           scoped-regex: 2.1.0
     
    -  is-set@2.0.3: {}
    +  /is-set@2.0.3:
    +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-shared-array-buffer@1.0.3:
    +  /is-shared-array-buffer@1.0.3:
    +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-stream@2.0.1: {}
    +  /is-stream@2.0.1:
    +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    +    engines: {node: '>=8'}
     
    -  is-string@1.0.7:
    +  /is-string@1.0.7:
    +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  is-subdir@1.2.0:
    +  /is-subdir@1.2.0:
    +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    +    engines: {node: '>=4'}
         dependencies:
           better-path-resolve: 1.0.0
    +    dev: true
     
    -  is-symbol@1.0.4:
    +  /is-symbol@1.0.4:
    +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           has-symbols: 1.0.3
    +    dev: true
     
    -  is-typed-array@1.1.13:
    +  /is-typed-array@1.1.13:
    +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           which-typed-array: 1.1.15
    +    dev: true
     
    -  is-typedarray@1.0.0: {}
    +  /is-typedarray@1.0.0:
    +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
     
    -  is-unicode-supported@0.1.0: {}
    +  /is-unicode-supported@0.1.0:
    +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    +    engines: {node: '>=10'}
     
    -  is-utf8@0.2.1: {}
    +  /is-utf8@0.2.1:
    +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
     
    -  is-weakmap@2.0.2: {}
    +  /is-weakmap@2.0.2:
    +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  is-weakref@1.0.2:
    +  /is-weakref@1.0.2:
    +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
         dependencies:
           call-bind: 1.0.7
    +    dev: true
     
    -  is-weakset@2.0.3:
    +  /is-weakset@2.0.3:
    +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    +    dev: true
     
    -  is-windows@1.0.2: {}
    +  /is-windows@1.0.2:
    +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  is-wsl@2.2.0:
    +  /is-wsl@2.2.0:
    +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    +    engines: {node: '>=8'}
         dependencies:
           is-docker: 2.2.1
    +    dev: false
     
    -  is-wsl@3.1.0:
    +  /is-wsl@3.1.0:
    +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    +    engines: {node: '>=16'}
         dependencies:
           is-inside-container: 1.0.0
     
    -  is-yarn-global@0.4.1: {}
    +  /is-yarn-global@0.4.1:
    +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  isarray@0.0.1: {}
    +  /isarray@0.0.1:
    +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    +    dev: false
     
    -  isarray@1.0.0: {}
    +  /isarray@1.0.0:
    +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
     
    -  isarray@2.0.5: {}
    +  /isarray@2.0.5:
    +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    +    dev: true
     
    -  isbinaryfile@4.0.10: {}
    +  /isbinaryfile@4.0.10:
    +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    +    engines: {node: '>= 8.0.0'}
     
    -  isbinaryfile@5.0.2: {}
    +  /isbinaryfile@5.0.2:
    +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    +    engines: {node: '>= 18.0.0'}
     
    -  isexe@2.0.0: {}
    +  /isexe@2.0.0:
    +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
     
    -  isobject@3.0.1: {}
    +  /isobject@3.0.1:
    +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    +    engines: {node: '>=0.10.0'}
     
    -  istanbul-lib-coverage@3.2.2: {}
    +  /istanbul-lib-coverage@3.2.2:
    +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  istanbul-lib-instrument@5.2.1:
    +  /istanbul-lib-instrument@5.2.1:
    +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -16398,8 +10861,11 @@ snapshots:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-lib-instrument@6.0.2:
    +  /istanbul-lib-instrument@6.0.2:
    +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    +    engines: {node: '>=10'}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -16408,58 +10874,85 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-lib-report@3.0.1:
    +  /istanbul-lib-report@3.0.1:
    +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    +    engines: {node: '>=10'}
         dependencies:
           istanbul-lib-coverage: 3.2.2
           make-dir: 4.0.0
           supports-color: 7.2.0
    +    dev: true
     
    -  istanbul-lib-source-maps@4.0.1:
    +  /istanbul-lib-source-maps@4.0.1:
    +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    +    engines: {node: '>=10'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           istanbul-lib-coverage: 3.2.2
           source-map: 0.6.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  istanbul-reports@3.1.7:
    +  /istanbul-reports@3.1.7:
    +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    +    engines: {node: '>=8'}
         dependencies:
           html-escaper: 2.0.2
           istanbul-lib-report: 3.0.1
    +    dev: true
     
    -  iterator.prototype@1.1.2:
    +  /iterator.prototype@1.1.2:
    +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
         dependencies:
           define-properties: 1.2.1
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           reflect.getprototypeof: 1.0.6
           set-function-name: 2.0.2
    +    dev: true
     
    -  itertools@2.2.5: {}
    +  /itertools@2.2.5:
    +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    +    dev: false
     
    -  jackspeak@2.3.6:
    +  /jackspeak@2.3.6:
    +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@isaacs/cliui': 8.0.2
         optionalDependencies:
           '@pkgjs/parseargs': 0.11.0
     
    -  jake@10.8.7:
    +  /jake@10.8.7:
    +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           async: 3.2.5
           chalk: 4.1.2
           filelist: 1.0.4
           minimatch: 3.1.2
     
    -  jclass@1.2.1: {}
    +  /jclass@1.2.1:
    +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  jest-changed-files@29.7.0:
    +  /jest-changed-files@29.7.0:
    +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           execa: 5.1.1
           jest-util: 29.7.0
           p-limit: 3.1.0
    +    dev: true
     
    -  jest-circus@29.7.0:
    +  /jest-circus@29.7.0:
    +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -16484,8 +10977,17 @@ snapshots:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    +    dev: true
     
    -  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/test-result': 29.7.0
    @@ -16503,8 +11005,19 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@types/node': '*'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      '@types/node':
    +        optional: true
    +      ts-node:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           '@jest/test-sequencer': 29.7.0
    @@ -16533,27 +11046,44 @@ snapshots:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    +    dev: true
     
    -  jest-diff@29.7.0:
    +  /jest-diff@29.7.0:
    +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           diff-sequences: 29.6.3
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-docblock@29.7.0:
    +  /jest-docblock@29.7.0:
    +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           detect-newline: 3.1.0
    +    dev: true
     
    -  jest-each@29.7.0:
    +  /jest-each@29.7.0:
    +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
           jest-get-type: 29.6.3
           jest-util: 29.7.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-environment-jsdom@29.7.0:
    +  /jest-environment-jsdom@29.7.0:
    +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16567,8 +11097,11 @@ snapshots:
           - bufferutil
           - supports-color
           - utf-8-validate
    +    dev: true
     
    -  jest-environment-node@29.7.0:
    +  /jest-environment-node@29.7.0:
    +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16576,10 +11109,16 @@ snapshots:
           '@types/node': 18.18.2
           jest-mock: 29.7.0
           jest-util: 29.7.0
    +    dev: true
     
    -  jest-get-type@29.6.3: {}
    +  /jest-get-type@29.6.3:
    +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  jest-haste-map@29.7.0:
    +  /jest-haste-map@29.7.0:
    +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/graceful-fs': 4.1.9
    @@ -16594,20 +11133,29 @@ snapshots:
           walker: 1.0.8
         optionalDependencies:
           fsevents: 2.3.3
    +    dev: true
     
    -  jest-leak-detector@29.7.0:
    +  /jest-leak-detector@29.7.0:
    +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-matcher-utils@29.7.0:
    +  /jest-matcher-utils@29.7.0:
    +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           jest-diff: 29.7.0
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-message-util@29.7.0:
    +  /jest-message-util@29.7.0:
    +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/code-frame': 7.24.2
           '@jest/types': 29.6.3
    @@ -16618,27 +11166,47 @@ snapshots:
           pretty-format: 29.7.0
           slash: 3.0.0
           stack-utils: 2.0.6
    +    dev: true
     
    -  jest-mock@29.7.0:
    +  /jest-mock@29.7.0:
    +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-util: 29.7.0
    +    dev: true
     
    -  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    +  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    +    engines: {node: '>=6'}
    +    peerDependencies:
    +      jest-resolve: '*'
    +    peerDependenciesMeta:
    +      jest-resolve:
    +        optional: true
         dependencies:
           jest-resolve: 29.7.0
    +    dev: true
     
    -  jest-regex-util@29.6.3: {}
    +  /jest-regex-util@29.6.3:
    +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  jest-resolve-dependencies@29.7.0:
    +  /jest-resolve-dependencies@29.7.0:
    +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-regex-util: 29.6.3
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-resolve@29.7.0:
    +  /jest-resolve@29.7.0:
    +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           graceful-fs: 4.2.11
    @@ -16649,8 +11217,11 @@ snapshots:
           resolve: 1.22.8
           resolve.exports: 2.0.2
           slash: 3.0.0
    +    dev: true
     
    -  jest-runner@29.7.0:
    +  /jest-runner@29.7.0:
    +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/console': 29.7.0
           '@jest/environment': 29.7.0
    @@ -16675,8 +11246,11 @@ snapshots:
           source-map-support: 0.5.13
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-runtime@29.7.0:
    +  /jest-runtime@29.7.0:
    +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -16702,8 +11276,11 @@ snapshots:
           strip-bom: 4.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-snapshot@29.7.0:
    +  /jest-snapshot@29.7.0:
    +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -16727,8 +11304,11 @@ snapshots:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  jest-util@29.7.0:
    +  /jest-util@29.7.0:
    +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -16737,7 +11317,9 @@ snapshots:
           graceful-fs: 4.2.11
           picomatch: 2.3.1
     
    -  jest-validate@29.7.0:
    +  /jest-validate@29.7.0:
    +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/types': 29.6.3
           camelcase: 6.3.0
    @@ -16745,8 +11327,11 @@ snapshots:
           jest-get-type: 29.6.3
           leven: 3.1.0
           pretty-format: 29.7.0
    +    dev: true
     
    -  jest-watcher@29.7.0:
    +  /jest-watcher@29.7.0:
    +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/test-result': 29.7.0
           '@jest/types': 29.6.3
    @@ -16756,21 +11341,34 @@ snapshots:
           emittery: 0.13.1
           jest-util: 29.7.0
           string-length: 4.0.2
    +    dev: true
     
    -  jest-worker@27.5.1:
    +  /jest-worker@27.5.1:
    +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           '@types/node': 18.18.2
           merge-stream: 2.0.0
           supports-color: 8.1.1
     
    -  jest-worker@29.7.0:
    +  /jest-worker@29.7.0:
    +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@types/node': 18.18.2
           jest-util: 29.7.0
           merge-stream: 2.0.0
           supports-color: 8.1.1
     
    -  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/types': 29.6.3
    @@ -16781,10 +11379,14 @@ snapshots:
           - babel-plugin-macros
           - supports-color
           - ts-node
    +    dev: true
     
    -  jiti@1.21.0: {}
    +  /jiti@1.21.0:
    +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    +    hasBin: true
     
    -  joi@17.12.2:
    +  /joi@17.12.2:
    +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
         dependencies:
           '@hapi/hoek': 9.3.0
           '@hapi/topo': 5.1.0
    @@ -16792,22 +11394,37 @@ snapshots:
           '@sideway/formula': 3.0.1
           '@sideway/pinpoint': 2.0.0
     
    -  js-cookie@2.2.1: {}
    +  /js-cookie@2.2.1:
    +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    +    dev: false
     
    -  js-tokens@4.0.0: {}
    +  /js-tokens@4.0.0:
    +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
     
    -  js-yaml@3.14.1:
    +  /js-yaml@3.14.1:
    +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    +    hasBin: true
         dependencies:
           argparse: 1.0.10
           esprima: 4.0.1
     
    -  js-yaml@4.1.0:
    +  /js-yaml@4.1.0:
    +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    +    hasBin: true
         dependencies:
           argparse: 2.0.1
     
    -  jsbn@1.1.0: {}
    +  /jsbn@1.1.0:
    +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
     
    -  jsdom@20.0.3:
    +  /jsdom@20.0.3:
    +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
         dependencies:
           abab: 2.0.6
           acorn: 8.11.3
    @@ -16839,168 +11456,272 @@ snapshots:
           - bufferutil
           - supports-color
           - utf-8-validate
    +    dev: true
     
    -  jsesc@0.5.0: {}
    +  /jsesc@0.5.0:
    +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    +    hasBin: true
     
    -  jsesc@2.5.2: {}
    +  /jsesc@2.5.2:
    +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  jsesc@3.0.2: {}
    +  /jsesc@3.0.2:
    +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +    dev: true
     
    -  json-buffer@3.0.1: {}
    +  /json-buffer@3.0.1:
    +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
     
    -  json-parse-even-better-errors@2.3.1: {}
    +  /json-parse-even-better-errors@2.3.1:
    +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
     
    -  json-parse-even-better-errors@3.0.1: {}
    +  /json-parse-even-better-errors@3.0.1:
    +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  json-schema-traverse@0.4.1: {}
    +  /json-schema-traverse@0.4.1:
    +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
     
    -  json-schema-traverse@1.0.0: {}
    +  /json-schema-traverse@1.0.0:
    +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
     
    -  json-stable-stringify-without-jsonify@1.0.1: {}
    +  /json-stable-stringify-without-jsonify@1.0.1:
    +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
     
    -  json-stringify-nice@1.1.4: {}
    +  /json-stringify-nice@1.1.4:
    +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
     
    -  json-stringify-safe@5.0.1: {}
    +  /json-stringify-safe@5.0.1:
    +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
     
    -  json5@1.0.2:
    +  /json5@1.0.2:
    +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    +    hasBin: true
         dependencies:
           minimist: 1.2.8
    +    dev: true
     
    -  json5@2.2.3: {}
    +  /json5@2.2.3:
    +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
     
    -  jsonfile@6.1.0:
    +  /jsonfile@6.1.0:
    +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
         dependencies:
           universalify: 2.0.1
         optionalDependencies:
           graceful-fs: 4.2.11
     
    -  jsonparse@1.3.1: {}
    +  /jsonparse@1.3.1:
    +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    +    engines: {'0': node >= 0.2.0}
     
    -  jsx-ast-utils@3.3.5:
    +  /jsx-ast-utils@3.3.5:
    +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    +    engines: {node: '>=4.0'}
         dependencies:
           array-includes: 3.1.8
           array.prototype.flat: 1.3.2
           object.assign: 4.1.5
           object.values: 1.2.0
    +    dev: true
     
    -  jszip@3.10.1:
    +  /jszip@3.10.1:
    +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
         dependencies:
           lie: 3.3.0
           pako: 1.0.11
           readable-stream: 2.3.8
           setimmediate: 1.0.5
    +    dev: true
     
    -  just-diff-apply@5.5.0: {}
    +  /just-diff-apply@5.5.0:
    +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
     
    -  just-diff@5.2.0: {}
    +  /just-diff@5.2.0:
    +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
     
    -  just-extend@6.2.0: {}
    +  /just-extend@6.2.0:
    +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    +    dev: true
     
    -  keyv@4.5.4:
    +  /keyv@4.5.4:
    +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
         dependencies:
           json-buffer: 3.0.1
     
    -  kind-of@6.0.3: {}
    +  /kind-of@6.0.3:
    +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    +    engines: {node: '>=0.10.0'}
     
    -  kleur@3.0.3: {}
    +  /kleur@3.0.3:
    +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    +    engines: {node: '>=6'}
     
    -  kuler@2.0.0: {}
    +  /kuler@2.0.0:
    +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
     
    -  language-subtag-registry@0.3.22: {}
    +  /language-subtag-registry@0.3.22:
    +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    +    dev: true
     
    -  language-tags@1.0.9:
    +  /language-tags@1.0.9:
    +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    +    engines: {node: '>=0.10'}
         dependencies:
           language-subtag-registry: 0.3.22
    +    dev: true
     
    -  latest-version@7.0.0:
    +  /latest-version@7.0.0:
    +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           package-json: 8.1.1
    +    dev: false
     
    -  launch-editor@2.6.1:
    +  /launch-editor@2.6.1:
    +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
         dependencies:
           picocolors: 1.0.0
           shell-quote: 1.8.1
     
    -  leven@3.1.0: {}
    +  /leven@3.1.0:
    +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    +    engines: {node: '>=6'}
     
    -  levn@0.4.1:
    +  /levn@0.4.1:
    +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  lie@3.3.0:
    +  /lie@3.3.0:
    +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
         dependencies:
           immediate: 3.0.6
    +    dev: true
     
    -  lilconfig@2.1.0: {}
    +  /lilconfig@2.1.0:
    +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    +    engines: {node: '>=10'}
     
    -  lilconfig@3.1.1: {}
    +  /lilconfig@3.1.1:
    +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    +    engines: {node: '>=14'}
    +    dev: true
     
    -  lines-and-columns@1.2.4: {}
    +  /lines-and-columns@1.2.4:
    +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
     
    -  load-json-file@6.2.0:
    +  /load-json-file@6.2.0:
    +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    +    engines: {node: '>=8'}
         dependencies:
           graceful-fs: 4.2.11
           parse-json: 5.2.0
           strip-bom: 4.0.0
           type-fest: 0.6.0
    +    dev: true
     
    -  load-json-file@7.0.1: {}
    +  /load-json-file@7.0.1:
    +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: true
     
    -  load-script@1.0.0: {}
    +  /load-script@1.0.0:
    +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    +    dev: false
     
    -  load-yaml-file@0.2.0:
    +  /load-yaml-file@0.2.0:
    +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    +    engines: {node: '>=6'}
         dependencies:
           graceful-fs: 4.2.11
           js-yaml: 3.14.1
           pify: 4.0.1
           strip-bom: 3.0.0
     
    -  loader-runner@4.3.0: {}
    +  /loader-runner@4.3.0:
    +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    +    engines: {node: '>=6.11.5'}
     
    -  loader-utils@2.0.4:
    +  /loader-utils@2.0.4:
    +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    +    engines: {node: '>=8.9.0'}
         dependencies:
           big.js: 5.2.2
           emojis-list: 3.0.0
           json5: 2.2.3
    +    dev: false
     
    -  loader-utils@3.2.1: {}
    +  /loader-utils@3.2.1:
    +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    +    engines: {node: '>= 12.13.0'}
    +    dev: false
     
    -  locate-path@3.0.0:
    +  /locate-path@3.0.0:
    +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    +    engines: {node: '>=6'}
         dependencies:
           p-locate: 3.0.0
           path-exists: 3.0.0
    +    dev: false
     
    -  locate-path@5.0.0:
    +  /locate-path@5.0.0:
    +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    +    engines: {node: '>=8'}
         dependencies:
           p-locate: 4.1.0
     
    -  locate-path@6.0.0:
    +  /locate-path@6.0.0:
    +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    +    engines: {node: '>=10'}
         dependencies:
           p-locate: 5.0.0
     
    -  locate-path@7.2.0:
    +  /locate-path@7.2.0:
    +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           p-locate: 6.0.0
    +    dev: false
     
    -  lodash.debounce@4.0.8: {}
    +  /lodash.debounce@4.0.8:
    +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
     
    -  lodash.get@4.4.2: {}
    +  /lodash.get@4.4.2:
    +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    +    dev: true
     
    -  lodash.memoize@4.1.2: {}
    +  /lodash.memoize@4.1.2:
    +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
     
    -  lodash.merge@4.6.2: {}
    +  /lodash.merge@4.6.2:
    +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     
    -  lodash.uniq@4.5.0: {}
    +  /lodash.uniq@4.5.0:
    +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    +    dev: false
     
    -  lodash@4.17.21: {}
    +  /lodash@4.17.21:
    +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
     
    -  log-symbols@4.1.0:
    +  /log-symbols@4.1.0:
    +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    +    engines: {node: '>=10'}
         dependencies:
           chalk: 4.1.2
           is-unicode-supported: 0.1.0
     
    -  logform@2.6.0:
    +  /logform@2.6.0:
    +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           '@colors/colors': 1.6.0
           '@types/triple-beam': 1.3.5
    @@ -17009,45 +11730,74 @@ snapshots:
           safe-stable-stringify: 2.4.3
           triple-beam: 1.4.1
     
    -  longest-streak@3.1.0: {}
    +  /longest-streak@3.1.0:
    +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
     
    -  loose-envify@1.4.0:
    +  /loose-envify@1.4.0:
    +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    +    hasBin: true
         dependencies:
           js-tokens: 4.0.0
     
    -  loupe@3.1.0:
    +  /loupe@3.1.0:
    +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
         dependencies:
           get-func-name: 2.0.2
    +    dev: true
     
    -  lower-case@2.0.2:
    +  /lower-case@2.0.2:
    +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
         dependencies:
           tslib: 2.6.2
     
    -  lowercase-keys@3.0.0: {}
    +  /lowercase-keys@3.0.0:
    +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  lru-cache@10.2.0: {}
    +  /lru-cache@10.2.0:
    +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    +    engines: {node: 14 || >=16.14}
     
    -  lru-cache@5.1.1:
    +  /lru-cache@5.1.1:
    +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
         dependencies:
           yallist: 3.1.1
     
    -  lru-cache@6.0.0:
    +  /lru-cache@6.0.0:
    +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    +    engines: {node: '>=10'}
         dependencies:
           yallist: 4.0.0
     
    -  lru-cache@7.10.1: {}
    +  /lru-cache@7.10.1:
    +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  lru-cache@7.18.3: {}
    +  /lru-cache@7.18.3:
    +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    +    engines: {node: '>=12'}
     
    -  lz-string@1.5.0: {}
    +  /lz-string@1.5.0:
    +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    +    hasBin: true
    +    dev: true
     
    -  make-dir@4.0.0:
    +  /make-dir@4.0.0:
    +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    +    engines: {node: '>=10'}
         dependencies:
           semver: 7.6.0
    +    dev: true
     
    -  make-error@1.3.6: {}
    +  /make-error@1.3.6:
    +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    +    dev: true
     
    -  make-fetch-happen@10.2.1:
    +  /make-fetch-happen@10.2.1:
    +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 16.1.3
    @@ -17069,7 +11819,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  make-fetch-happen@11.1.1:
    +  /make-fetch-happen@11.1.1:
    +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 17.1.4
    @@ -17089,7 +11841,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  make-fetch-happen@9.1.0:
    +  /make-fetch-happen@9.1.0:
    +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    +    engines: {node: '>= 10'}
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 15.3.0
    @@ -17111,23 +11865,39 @@ snapshots:
           - bluebird
           - supports-color
     
    -  makeerror@1.0.12:
    +  /makeerror@1.0.12:
    +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
         dependencies:
           tmpl: 1.0.5
    +    dev: true
     
    -  map-age-cleaner@0.1.3:
    +  /map-age-cleaner@0.1.3:
    +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    +    engines: {node: '>=6'}
         dependencies:
           p-defer: 1.0.0
    +    dev: true
     
    -  map-obj@1.0.1: {}
    +  /map-obj@1.0.1:
    +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  map-obj@4.3.0: {}
    +  /map-obj@4.3.0:
    +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  markdown-extensions@2.0.0: {}
    +  /markdown-extensions@2.0.0:
    +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    +    engines: {node: '>=16'}
     
    -  markdown-table@3.0.3: {}
    +  /markdown-table@3.0.3:
    +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    +    dev: false
     
    -  mdast-util-directive@3.0.0:
    +  /mdast-util-directive@3.0.0:
    +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17139,15 +11909,19 @@ snapshots:
           unist-util-visit-parents: 6.0.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-find-and-replace@3.0.1:
    +  /mdast-util-find-and-replace@3.0.1:
    +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
         dependencies:
           '@types/mdast': 4.0.3
           escape-string-regexp: 5.0.0
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
    +    dev: false
     
    -  mdast-util-from-markdown@2.0.0:
    +  /mdast-util-from-markdown@2.0.0:
    +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17164,7 +11938,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-frontmatter@2.0.1:
    +  /mdast-util-frontmatter@2.0.1:
    +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17174,16 +11949,20 @@ snapshots:
           micromark-extension-frontmatter: 2.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-autolink-literal@2.0.0:
    +  /mdast-util-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
         dependencies:
           '@types/mdast': 4.0.3
           ccount: 2.0.1
           devlop: 1.1.0
           mdast-util-find-and-replace: 3.0.1
           micromark-util-character: 2.1.0
    +    dev: false
     
    -  mdast-util-gfm-footnote@2.0.0:
    +  /mdast-util-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17192,16 +11971,20 @@ snapshots:
           micromark-util-normalize-identifier: 2.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-strikethrough@2.0.0:
    +  /mdast-util-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-table@2.0.0:
    +  /mdast-util-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17210,8 +11993,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm-task-list-item@2.0.0:
    +  /mdast-util-gfm-task-list-item@2.0.0:
    +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -17219,8 +12004,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-gfm@3.0.0:
    +  /mdast-util-gfm@3.0.0:
    +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-gfm-autolink-literal: 2.0.0
    @@ -17231,8 +12018,10 @@ snapshots:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  mdast-util-mdx-expression@2.0.0:
    +  /mdast-util-mdx-expression@2.0.0:
    +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17243,7 +12032,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdx-jsx@3.1.2:
    +  /mdast-util-mdx-jsx@3.1.2:
    +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17261,7 +12051,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdx@3.0.0:
    +  /mdast-util-mdx@3.0.0:
    +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-mdx-expression: 2.0.0
    @@ -17271,7 +12062,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-mdxjs-esm@2.0.1:
    +  /mdast-util-mdxjs-esm@2.0.1:
    +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -17282,12 +12074,14 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  mdast-util-phrasing@4.1.0:
    +  /mdast-util-phrasing@4.1.0:
    +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
         dependencies:
           '@types/mdast': 4.0.3
           unist-util-is: 6.0.0
     
    -  mdast-util-to-hast@13.1.0:
    +  /mdast-util-to-hast@13.1.0:
    +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -17299,7 +12093,8 @@ snapshots:
           unist-util-visit: 5.0.0
           vfile: 6.0.1
     
    -  mdast-util-to-markdown@2.1.0:
    +  /mdast-util-to-markdown@2.1.0:
    +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -17310,19 +12105,35 @@ snapshots:
           unist-util-visit: 5.0.0
           zwitch: 2.0.4
     
    -  mdast-util-to-string@4.0.0:
    +  /mdast-util-to-string@4.0.0:
    +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
         dependencies:
           '@types/mdast': 4.0.3
     
    -  mdn-data@2.0.14: {}
    +  /mdn-data@2.0.14:
    +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    +    dev: false
     
    -  mdn-data@2.0.28: {}
    +  /mdn-data@2.0.28:
    +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    +    dev: true
     
    -  mdn-data@2.0.30: {}
    +  /mdn-data@2.0.30:
    +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    +    dev: true
     
    -  media-typer@0.3.0: {}
    +  /media-typer@0.3.0:
    +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    +    engines: {node: '>= 0.6'}
     
    -  mem-fs-editor@9.7.0(mem-fs@2.3.0):
    +  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
    +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      mem-fs: ^2.1.0
    +    peerDependenciesMeta:
    +      mem-fs:
    +        optional: true
         dependencies:
           binaryextensions: 4.19.0
           commondir: 1.0.1
    @@ -17336,29 +12147,43 @@ snapshots:
           normalize-path: 3.0.0
           textextensions: 5.16.0
     
    -  mem-fs@2.3.0:
    +  /mem-fs@2.3.0:
    +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    +    engines: {node: '>=12'}
         dependencies:
           '@types/node': 15.14.9
           '@types/vinyl': 2.0.11
           vinyl: 2.2.1
           vinyl-file: 3.0.0
     
    -  mem@8.1.1:
    +  /mem@8.1.1:
    +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    +    engines: {node: '>=10'}
         dependencies:
           map-age-cleaner: 0.1.3
           mimic-fn: 3.1.0
    +    dev: true
     
    -  memfs@3.5.3:
    +  /memfs@3.5.3:
    +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    +    engines: {node: '>= 4.0.0'}
         dependencies:
           fs-monkey: 1.0.5
    +    dev: false
     
    -  memfs@4.8.0:
    +  /memfs@4.8.0:
    +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    +    engines: {node: '>= 4.0.0'}
         dependencies:
           tslib: 2.6.2
     
    -  memoize-one@5.2.1: {}
    +  /memoize-one@5.2.1:
    +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    +    dev: false
     
    -  meow@10.1.5:
    +  /meow@10.1.5:
    +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           '@types/minimist': 1.2.5
           camelcase-keys: 7.0.2
    @@ -17372,16 +12197,24 @@ snapshots:
           trim-newlines: 4.1.1
           type-fest: 1.4.0
           yargs-parser: 20.2.9
    +    dev: true
     
    -  merge-descriptors@1.0.1: {}
    +  /merge-descriptors@1.0.1:
    +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
     
    -  merge-stream@2.0.0: {}
    +  /merge-stream@2.0.0:
    +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
     
    -  merge2@1.4.1: {}
    +  /merge2@1.4.1:
    +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    +    engines: {node: '>= 8'}
     
    -  methods@1.1.2: {}
    +  /methods@1.1.2:
    +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    +    engines: {node: '>= 0.6'}
     
    -  micromark-core-commonmark@2.0.0:
    +  /micromark-core-commonmark@2.0.0:
    +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
         dependencies:
           decode-named-character-reference: 1.0.2
           devlop: 1.1.0
    @@ -17400,7 +12233,8 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-extension-directive@3.0.0:
    +  /micromark-extension-directive@3.0.0:
    +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
    @@ -17409,22 +12243,28 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
           parse-entities: 4.0.1
    +    dev: false
     
    -  micromark-extension-frontmatter@2.0.0:
    +  /micromark-extension-frontmatter@2.0.0:
    +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
         dependencies:
           fault: 2.0.1
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-autolink-literal@2.0.0:
    +  /micromark-extension-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-footnote@2.0.0:
    +  /micromark-extension-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
         dependencies:
           devlop: 1.1.0
           micromark-core-commonmark: 2.0.0
    @@ -17434,8 +12274,10 @@ snapshots:
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-strikethrough@2.0.0:
    +  /micromark-extension-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
    @@ -17443,28 +12285,36 @@ snapshots:
           micromark-util-resolve-all: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-table@2.0.0:
    +  /micromark-extension-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-tagfilter@2.0.0:
    +  /micromark-extension-gfm-tagfilter@2.0.0:
    +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
         dependencies:
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm-task-list-item@2.0.1:
    +  /micromark-extension-gfm-task-list-item@2.0.1:
    +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-gfm@3.0.0:
    +  /micromark-extension-gfm@3.0.0:
    +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
         dependencies:
           micromark-extension-gfm-autolink-literal: 2.0.0
           micromark-extension-gfm-footnote: 2.0.0
    @@ -17474,8 +12324,10 @@ snapshots:
           micromark-extension-gfm-task-list-item: 2.0.1
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
    +    dev: false
     
    -  micromark-extension-mdx-expression@3.0.0:
    +  /micromark-extension-mdx-expression@3.0.0:
    +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17486,7 +12338,8 @@ snapshots:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-extension-mdx-jsx@3.0.0:
    +  /micromark-extension-mdx-jsx@3.0.0:
    +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -17499,11 +12352,13 @@ snapshots:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-extension-mdx-md@2.0.0:
    +  /micromark-extension-mdx-md@2.0.0:
    +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
         dependencies:
           micromark-util-types: 2.0.0
     
    -  micromark-extension-mdxjs-esm@3.0.0:
    +  /micromark-extension-mdxjs-esm@3.0.0:
    +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17515,7 +12370,8 @@ snapshots:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-extension-mdxjs@3.0.0:
    +  /micromark-extension-mdxjs@3.0.0:
    +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
    @@ -17526,20 +12382,23 @@ snapshots:
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-destination@2.0.0:
    +  /micromark-factory-destination@2.0.0:
    +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-label@2.0.0:
    +  /micromark-factory-label@2.0.0:
    +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
         dependencies:
           devlop: 1.1.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-mdx-expression@2.0.1:
    +  /micromark-factory-mdx-expression@2.0.1:
    +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -17550,69 +12409,84 @@ snapshots:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-factory-space@1.1.0:
    +  /micromark-factory-space@1.1.0:
    +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
         dependencies:
           micromark-util-character: 1.2.0
           micromark-util-types: 1.1.0
    +    dev: false
     
    -  micromark-factory-space@2.0.0:
    +  /micromark-factory-space@2.0.0:
    +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-title@2.0.0:
    +  /micromark-factory-title@2.0.0:
    +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-factory-whitespace@2.0.0:
    +  /micromark-factory-whitespace@2.0.0:
    +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-character@1.2.0:
    +  /micromark-util-character@1.2.0:
    +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
         dependencies:
           micromark-util-symbol: 1.1.0
           micromark-util-types: 1.1.0
    +    dev: false
     
    -  micromark-util-character@2.1.0:
    +  /micromark-util-character@2.1.0:
    +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
         dependencies:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-chunked@2.0.0:
    +  /micromark-util-chunked@2.0.0:
    +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-classify-character@2.0.0:
    +  /micromark-util-classify-character@2.0.0:
    +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-combine-extensions@2.0.0:
    +  /micromark-util-combine-extensions@2.0.0:
    +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
         dependencies:
           micromark-util-chunked: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-decode-numeric-character-reference@2.0.1:
    +  /micromark-util-decode-numeric-character-reference@2.0.1:
    +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-decode-string@2.0.0:
    +  /micromark-util-decode-string@2.0.0:
    +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
         dependencies:
           decode-named-character-reference: 1.0.2
           micromark-util-character: 2.1.0
           micromark-util-decode-numeric-character-reference: 2.0.1
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-encode@2.0.0: {}
    +  /micromark-util-encode@2.0.0:
    +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
     
    -  micromark-util-events-to-acorn@2.0.2:
    +  /micromark-util-events-to-acorn@2.0.2:
    +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -17623,38 +12497,50 @@ snapshots:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  micromark-util-html-tag-name@2.0.0: {}
    +  /micromark-util-html-tag-name@2.0.0:
    +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
     
    -  micromark-util-normalize-identifier@2.0.0:
    +  /micromark-util-normalize-identifier@2.0.0:
    +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-resolve-all@2.0.0:
    +  /micromark-util-resolve-all@2.0.0:
    +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
         dependencies:
           micromark-util-types: 2.0.0
     
    -  micromark-util-sanitize-uri@2.0.0:
    +  /micromark-util-sanitize-uri@2.0.0:
    +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-encode: 2.0.0
           micromark-util-symbol: 2.0.0
     
    -  micromark-util-subtokenize@2.0.0:
    +  /micromark-util-subtokenize@2.0.0:
    +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  micromark-util-symbol@1.1.0: {}
    +  /micromark-util-symbol@1.1.0:
    +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    +    dev: false
     
    -  micromark-util-symbol@2.0.0: {}
    +  /micromark-util-symbol@2.0.0:
    +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
     
    -  micromark-util-types@1.1.0: {}
    +  /micromark-util-types@1.1.0:
    +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    +    dev: false
     
    -  micromark-util-types@2.0.0: {}
    +  /micromark-util-types@2.0.0:
    +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
     
    -  micromark@4.0.0:
    +  /micromark@4.0.0:
    +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
         dependencies:
           '@types/debug': 4.1.12
           debug: 4.3.4(supports-color@8.1.1)
    @@ -17676,76 +12562,129 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  micromatch@4.0.5:
    +  /micromatch@4.0.5:
    +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    +    engines: {node: '>=8.6'}
         dependencies:
           braces: 3.0.2
           picomatch: 2.3.1
     
    -  mime-db@1.33.0: {}
    +  /mime-db@1.33.0:
    +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  mime-db@1.52.0: {}
    +  /mime-db@1.52.0:
    +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    +    engines: {node: '>= 0.6'}
     
    -  mime-types@2.1.18:
    +  /mime-types@2.1.18:
    +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.33.0
    +    dev: false
     
    -  mime-types@2.1.35:
    +  /mime-types@2.1.35:
    +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           mime-db: 1.52.0
     
    -  mime@1.6.0: {}
    +  /mime@1.6.0:
    +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
     
    -  mimic-fn@2.1.0: {}
    +  /mimic-fn@2.1.0:
    +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    +    engines: {node: '>=6'}
     
    -  mimic-fn@3.1.0: {}
    +  /mimic-fn@3.1.0:
    +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  mimic-response@3.1.0: {}
    +  /mimic-response@3.1.0:
    +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  mimic-response@4.0.0: {}
    +  /mimic-response@4.0.0:
    +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  min-indent@1.0.1: {}
    +  /min-indent@1.0.1:
    +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    +  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
         dependencies:
           schema-utils: 4.2.0
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  minimalistic-assert@1.0.1: {}
    +  /minimalistic-assert@1.0.1:
    +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
     
    -  minimatch@3.1.2:
    +  /minimatch@3.1.2:
    +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
         dependencies:
           brace-expansion: 1.1.11
     
    -  minimatch@5.0.1:
    +  /minimatch@5.0.1:
    +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
    +    dev: true
     
    -  minimatch@5.1.6:
    +  /minimatch@5.1.6:
    +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimatch@7.4.6:
    +  /minimatch@7.4.6:
    +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    +    engines: {node: '>=10'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimatch@9.0.3:
    +  /minimatch@9.0.3:
    +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    +    engines: {node: '>=16 || 14 >=14.17'}
         dependencies:
           brace-expansion: 2.0.1
     
    -  minimist-options@4.1.0:
    +  /minimist-options@4.1.0:
    +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    +    engines: {node: '>= 6'}
         dependencies:
           arrify: 1.0.1
           is-plain-obj: 1.1.0
           kind-of: 6.0.3
    +    dev: true
     
    -  minimist@1.2.8: {}
    +  /minimist@1.2.8:
    +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
     
    -  minipass-collect@1.0.2:
    +  /minipass-collect@1.0.2:
    +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-fetch@1.4.1:
    +  /minipass-fetch@1.4.1:
    +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -17753,7 +12692,9 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-fetch@2.1.2:
    +  /minipass-fetch@2.1.2:
    +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -17761,7 +12702,9 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-fetch@3.0.4:
    +  /minipass-fetch@3.0.4:
    +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
           minipass-sized: 1.0.3
    @@ -17769,49 +12712,75 @@ snapshots:
         optionalDependencies:
           encoding: 0.1.13
     
    -  minipass-flush@1.0.5:
    +  /minipass-flush@1.0.5:
    +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-json-stream@1.0.1:
    +  /minipass-json-stream@1.0.1:
    +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
         dependencies:
           jsonparse: 1.3.1
           minipass: 3.3.6
     
    -  minipass-pipeline@1.2.4:
    +  /minipass-pipeline@1.2.4:
    +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass-sized@1.0.3:
    +  /minipass-sized@1.0.3:
    +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    +    engines: {node: '>=8'}
         dependencies:
           minipass: 3.3.6
     
    -  minipass@3.3.6:
    +  /minipass@3.3.6:
    +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    +    engines: {node: '>=8'}
         dependencies:
           yallist: 4.0.0
     
    -  minipass@5.0.0: {}
    +  /minipass@5.0.0:
    +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    +    engines: {node: '>=8'}
     
    -  minipass@7.0.4: {}
    +  /minipass@7.0.4:
    +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
     
    -  minizlib@2.1.2:
    +  /minizlib@2.1.2:
    +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
           yallist: 4.0.0
     
    -  mkdirp-infer-owner@2.0.0:
    +  /mkdirp-infer-owner@2.0.0:
    +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    +    engines: {node: '>=10'}
         dependencies:
           chownr: 2.0.0
           infer-owner: 1.0.4
           mkdirp: 1.0.4
     
    -  mkdirp@0.5.6:
    +  /mkdirp@0.5.6:
    +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    +    hasBin: true
         dependencies:
           minimist: 1.2.8
    +    dev: true
     
    -  mkdirp@1.0.4: {}
    +  /mkdirp@1.0.4:
    +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
     
    -  mocha@10.3.0:
    +  /mocha@10.3.0:
    +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    +    engines: {node: '>= 14.0.0'}
    +    hasBin: true
         dependencies:
           ansi-colors: 4.1.1
           browser-stdout: 1.3.1
    @@ -17833,23 +12802,36 @@ snapshots:
           yargs: 16.2.0
           yargs-parser: 20.2.4
           yargs-unparser: 2.0.0
    +    dev: true
     
    -  moo@0.5.2: {}
    +  /moo@0.5.2:
    +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    +    dev: false
     
    -  mrmime@2.0.0: {}
    +  /mrmime@2.0.0:
    +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  ms@2.0.0: {}
    +  /ms@2.0.0:
    +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
     
    -  ms@2.1.2: {}
    +  /ms@2.1.2:
    +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
     
    -  ms@2.1.3: {}
    +  /ms@2.1.3:
    +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
     
    -  multicast-dns@7.2.5:
    +  /multicast-dns@7.2.5:
    +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    +    hasBin: true
         dependencies:
           dns-packet: 5.6.1
           thunky: 1.1.0
     
    -  multimatch@5.0.0:
    +  /multimatch@5.0.0:
    +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/minimatch': 3.0.5
           array-differ: 3.0.0
    @@ -17857,15 +12839,22 @@ snapshots:
           arrify: 2.0.1
           minimatch: 3.1.2
     
    -  mute-stream@0.0.8: {}
    +  /mute-stream@0.0.8:
    +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
     
    -  mz@2.7.0:
    +  /mz@2.7.0:
    +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
         dependencies:
           any-promise: 1.3.0
           object-assign: 4.1.1
           thenify-all: 1.6.0
    +    dev: true
     
    -  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    +  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@jridgewell/sourcemap-codec': 1.4.15
           css-tree: 1.1.3
    @@ -17877,12 +12866,20 @@ snapshots:
           rtl-css-js: 1.16.1
           stacktrace-js: 2.0.2
           stylis: 4.3.1
    +    dev: false
     
    -  nanoid@3.3.7: {}
    +  /nanoid@3.3.7:
    +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    +    hasBin: true
     
    -  natural-compare@1.4.0: {}
    +  /natural-compare@1.4.0:
    +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
     
    -  ndjson@2.0.0:
    +  /ndjson@2.0.0:
    +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           json-stringify-safe: 5.0.1
           minimist: 1.2.8
    @@ -17890,25 +12887,50 @@ snapshots:
           split2: 3.2.2
           through2: 4.0.2
     
    -  nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
    +  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
    +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    +    hasBin: true
         dependencies:
           commander: 2.20.3
           moo: 0.5.2
           railroad-diagrams: 1.0.0
           randexp: 0.4.6
    +    dev: false
    +    patched: true
     
    -  negotiator@0.6.3: {}
    +  /negotiator@0.6.3:
    +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    +    engines: {node: '>= 0.6'}
     
    -  neo-async@2.6.2: {}
    +  /neo-async@2.6.2:
    +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
     
    -  neovim@5.1.0:
    +  /neovim@5.1.0:
    +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           '@msgpack/msgpack': 2.8.0
           winston: 3.11.0
     
    -  nerf-dart@1.0.0: {}
    +  /nerf-dart@1.0.0:
    +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    +    dev: false
     
    -  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    +  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    +    engines: {node: '>=18.17.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@opentelemetry/api': ^1.1.0
    +      react: ^18.2.0 || 18
    +      react-dom: ^18.2.0 || 18
    +      sass: ^1.3.0
    +    peerDependenciesMeta:
    +      '@opentelemetry/api':
    +        optional: true
    +      sass:
    +        optional: true
         dependencies:
           '@next/env': 14.1.4
           '@swc/helpers': 0.5.2
    @@ -17932,34 +12954,53 @@ snapshots:
         transitivePeerDependencies:
           - '@babel/core'
           - babel-plugin-macros
    +    dev: false
     
    -  nise@5.1.9:
    +  /nise@5.1.9:
    +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
           '@sinonjs/text-encoding': 0.7.2
           just-extend: 6.2.0
           path-to-regexp: 6.2.1
    +    dev: true
     
    -  no-case@3.0.4:
    +  /no-case@3.0.4:
    +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
         dependencies:
           lower-case: 2.0.2
           tslib: 2.6.2
     
    -  node-emoji@2.1.3:
    +  /node-emoji@2.1.3:
    +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    +    engines: {node: '>=18'}
         dependencies:
           '@sindresorhus/is': 4.6.0
           char-regex: 1.0.2
           emojilib: 2.4.0
           skin-tone: 2.0.0
    +    dev: false
     
    -  node-fetch@2.7.0:
    +  /node-fetch@2.7.0:
    +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    +    engines: {node: 4.x || >=6.0.0}
    +    peerDependencies:
    +      encoding: ^0.1.0
    +    peerDependenciesMeta:
    +      encoding:
    +        optional: true
         dependencies:
           whatwg-url: 5.0.0
     
    -  node-forge@1.3.1: {}
    +  /node-forge@1.3.1:
    +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    +    engines: {node: '>= 6.13.0'}
     
    -  node-gyp@8.4.1:
    +  /node-gyp@8.4.1:
    +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    +    engines: {node: '>= 10.12.0'}
    +    hasBin: true
         dependencies:
           env-paths: 2.2.1
           glob: 7.2.3
    @@ -17975,7 +13016,10 @@ snapshots:
           - bluebird
           - supports-color
     
    -  node-gyp@9.4.1:
    +  /node-gyp@9.4.1:
    +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    +    engines: {node: ^12.13 || ^14.13 || >=16}
    +    hasBin: true
         dependencies:
           env-paths: 2.2.1
           exponential-backoff: 3.1.1
    @@ -17992,122 +13036,180 @@ snapshots:
           - bluebird
           - supports-color
     
    -  node-html-parser@6.1.12:
    +  /node-html-parser@6.1.12:
    +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
         dependencies:
           css-select: 5.1.0
           he: 1.2.0
    +    dev: false
     
    -  node-int64@0.4.0: {}
    +  /node-int64@0.4.0:
    +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    +    dev: true
     
    -  node-releases@2.0.14: {}
    +  /node-releases@2.0.14:
    +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
     
    -  nopt@5.0.0:
    +  /nopt@5.0.0:
    +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    +    engines: {node: '>=6'}
    +    hasBin: true
         dependencies:
           abbrev: 1.1.1
     
    -  nopt@6.0.0:
    +  /nopt@6.0.0:
    +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    hasBin: true
         dependencies:
           abbrev: 1.1.1
     
    -  normalize-package-data@2.5.0:
    +  /normalize-package-data@2.5.0:
    +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
         dependencies:
           hosted-git-info: 2.8.9
           resolve: 1.22.8
           semver: 5.7.2
           validate-npm-package-license: 3.0.4
     
    -  normalize-package-data@3.0.3:
    +  /normalize-package-data@3.0.3:
    +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    +    engines: {node: '>=10'}
         dependencies:
           hosted-git-info: 4.1.0
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
    +    dev: true
     
    -  normalize-package-data@5.0.0:
    +  /normalize-package-data@5.0.0:
    +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 6.1.1
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
     
    -  normalize-path@3.0.0: {}
    +  /normalize-path@3.0.0:
    +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    +    engines: {node: '>=0.10.0'}
     
    -  normalize-range@0.1.2: {}
    +  /normalize-range@0.1.2:
    +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    +    engines: {node: '>=0.10.0'}
     
    -  normalize-registry-url@2.0.0: {}
    +  /normalize-registry-url@2.0.0:
    +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    +    dev: true
     
    -  normalize-url@6.1.0: {}
    +  /normalize-url@6.1.0:
    +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  normalize-url@8.0.1: {}
    +  /normalize-url@8.0.1:
    +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    +    engines: {node: '>=14.16'}
    +    dev: false
     
    -  npm-bundled@1.1.2:
    +  /npm-bundled@1.1.2:
    +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
         dependencies:
           npm-normalize-package-bin: 1.0.1
     
    -  npm-bundled@3.0.0:
    +  /npm-bundled@3.0.0:
    +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           npm-normalize-package-bin: 3.0.1
     
    -  npm-install-checks@4.0.0:
    +  /npm-install-checks@4.0.0:
    +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    +    engines: {node: '>=10'}
         dependencies:
           semver: 7.6.0
     
    -  npm-install-checks@6.3.0:
    +  /npm-install-checks@6.3.0:
    +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           semver: 7.6.0
     
    -  npm-normalize-package-bin@1.0.1: {}
    +  /npm-normalize-package-bin@1.0.1:
    +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
     
    -  npm-normalize-package-bin@2.0.0: {}
    +  /npm-normalize-package-bin@2.0.0:
    +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     
    -  npm-normalize-package-bin@3.0.1: {}
    +  /npm-normalize-package-bin@3.0.1:
    +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  npm-package-arg@10.1.0:
    +  /npm-package-arg@10.1.0:
    +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 6.1.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
     
    -  npm-package-arg@11.0.1:
    +  /npm-package-arg@11.0.1:
    +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
         dependencies:
           hosted-git-info: 7.0.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
    +    dev: true
     
    -  npm-package-arg@8.1.5:
    +  /npm-package-arg@8.1.5:
    +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    +    engines: {node: '>=10'}
         dependencies:
           hosted-git-info: 4.1.0
           semver: 7.6.0
           validate-npm-package-name: 3.0.0
     
    -  npm-packlist@3.0.0:
    +  /npm-packlist@3.0.0:
    +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
           ignore-walk: 4.0.1
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  npm-packlist@7.0.4:
    +  /npm-packlist@7.0.4:
    +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           ignore-walk: 6.0.4
     
    -  npm-pick-manifest@6.1.1:
    +  /npm-pick-manifest@6.1.1:
    +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
         dependencies:
           npm-install-checks: 4.0.0
           npm-normalize-package-bin: 1.0.1
           npm-package-arg: 8.1.5
           semver: 7.6.0
     
    -  npm-pick-manifest@8.0.2:
    +  /npm-pick-manifest@8.0.2:
    +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           npm-install-checks: 6.3.0
           npm-normalize-package-bin: 3.0.1
           npm-package-arg: 10.1.0
           semver: 7.6.0
     
    -  npm-registry-fetch@12.0.2:
    +  /npm-registry-fetch@12.0.2:
    +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
         dependencies:
           make-fetch-happen: 10.2.1
           minipass: 3.3.6
    @@ -18119,7 +13221,9 @@ snapshots:
           - bluebird
           - supports-color
     
    -  npm-registry-fetch@14.0.5:
    +  /npm-registry-fetch@14.0.5:
    +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           make-fetch-happen: 11.1.1
           minipass: 5.0.0
    @@ -18131,119 +13235,175 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  npm-run-path@4.0.1:
    +  /npm-run-path@4.0.1:
    +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    +    engines: {node: '>=8'}
         dependencies:
           path-key: 3.1.1
     
    -  npmlog@5.0.1:
    +  /npmlog@5.0.1:
    +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
         dependencies:
           are-we-there-yet: 2.0.0
           console-control-strings: 1.1.0
           gauge: 3.0.2
           set-blocking: 2.0.0
     
    -  npmlog@6.0.2:
    +  /npmlog@6.0.2:
    +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           are-we-there-yet: 3.0.1
           console-control-strings: 1.1.0
           gauge: 4.0.4
           set-blocking: 2.0.0
     
    -  nprogress@0.2.0: {}
    +  /nprogress@0.2.0:
    +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    +    dev: false
     
    -  nth-check@2.1.1:
    +  /nth-check@2.1.1:
    +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
         dependencies:
           boolbase: 1.0.0
     
    -  nwsapi@2.2.7: {}
    +  /nwsapi@2.2.7:
    +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    +    dev: true
     
    -  object-assign@4.1.1: {}
    +  /object-assign@4.1.1:
    +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    +    engines: {node: '>=0.10.0'}
     
    -  object-hash@3.0.0: {}
    +  /object-hash@3.0.0:
    +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  object-inspect@1.13.1: {}
    +  /object-inspect@1.13.1:
    +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
     
    -  object-is@1.1.6:
    +  /object-is@1.1.6:
    +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    +    dev: true
     
    -  object-keys@1.1.1: {}
    +  /object-keys@1.1.1:
    +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    +    engines: {node: '>= 0.4'}
     
    -  object.assign@4.1.5:
    +  /object.assign@4.1.5:
    +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           has-symbols: 1.0.3
           object-keys: 1.1.1
     
    -  object.entries@1.1.8:
    +  /object.entries@1.1.8:
    +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.fromentries@2.0.8:
    +  /object.fromentries@2.0.8:
    +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.groupby@1.0.3:
    +  /object.groupby@1.0.3:
    +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
    +    dev: true
     
    -  object.hasown@1.1.4:
    +  /object.hasown@1.1.4:
    +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  object.values@1.2.0:
    +  /object.values@1.2.0:
    +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  obuf@1.1.2: {}
    +  /obuf@1.1.2:
    +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
     
    -  on-finished@2.4.1:
    +  /on-finished@2.4.1:
    +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           ee-first: 1.1.1
     
    -  on-headers@1.0.2: {}
    +  /on-headers@1.0.2:
    +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    +    engines: {node: '>= 0.8'}
     
    -  once@1.4.0:
    +  /once@1.4.0:
    +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
         dependencies:
           wrappy: 1.0.2
     
    -  one-time@1.0.0:
    +  /one-time@1.0.0:
    +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
         dependencies:
           fn.name: 1.1.0
     
    -  onetime@5.1.2:
    +  /onetime@5.1.2:
    +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    +    engines: {node: '>=6'}
         dependencies:
           mimic-fn: 2.1.0
     
    -  open@10.1.0:
    +  /open@10.1.0:
    +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    +    engines: {node: '>=18'}
         dependencies:
           default-browser: 5.2.1
           define-lazy-prop: 3.0.0
           is-inside-container: 1.0.0
           is-wsl: 3.1.0
     
    -  open@8.4.2:
    +  /open@8.4.2:
    +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    +    engines: {node: '>=12'}
         dependencies:
           define-lazy-prop: 2.0.0
           is-docker: 2.2.1
           is-wsl: 2.2.0
    +    dev: false
     
    -  opener@1.5.2: {}
    +  /opener@1.5.2:
    +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    +    hasBin: true
     
    -  optionator@0.9.3:
    +  /optionator@0.9.3:
    +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           '@aashutoshrathi/word-wrap': 1.2.6
           deep-is: 0.1.4
    @@ -18252,7 +13412,9 @@ snapshots:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  ora@5.4.1:
    +  /ora@5.4.1:
    +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    +    engines: {node: '>=10'}
         dependencies:
           bl: 4.1.0
           chalk: 4.1.2
    @@ -18264,89 +13426,143 @@ snapshots:
           strip-ansi: 6.0.1
           wcwidth: 1.0.1
     
    -  os-tmpdir@1.0.2: {}
    +  /os-tmpdir@1.0.2:
    +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    +    engines: {node: '>=0.10.0'}
     
    -  p-cancelable@3.0.0: {}
    +  /p-cancelable@3.0.0:
    +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  p-defer@1.0.0: {}
    +  /p-defer@1.0.0:
    +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  p-filter@2.1.0:
    +  /p-filter@2.1.0:
    +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    +    engines: {node: '>=8'}
         dependencies:
           p-map: 2.1.0
    +    dev: true
     
    -  p-finally@1.0.0: {}
    +  /p-finally@1.0.0:
    +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    +    engines: {node: '>=4'}
     
    -  p-limit@2.3.0:
    +  /p-limit@2.3.0:
    +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    +    engines: {node: '>=6'}
         dependencies:
           p-try: 2.2.0
     
    -  p-limit@3.1.0:
    +  /p-limit@3.1.0:
    +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    +    engines: {node: '>=10'}
         dependencies:
           yocto-queue: 0.1.0
     
    -  p-limit@4.0.0:
    +  /p-limit@4.0.0:
    +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           yocto-queue: 1.0.0
    +    dev: false
     
    -  p-locate@3.0.0:
    +  /p-locate@3.0.0:
    +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    +    engines: {node: '>=6'}
         dependencies:
           p-limit: 2.3.0
    +    dev: false
     
    -  p-locate@4.1.0:
    +  /p-locate@4.1.0:
    +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    +    engines: {node: '>=8'}
         dependencies:
           p-limit: 2.3.0
     
    -  p-locate@5.0.0:
    +  /p-locate@5.0.0:
    +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    +    engines: {node: '>=10'}
         dependencies:
           p-limit: 3.1.0
     
    -  p-locate@6.0.0:
    +  /p-locate@6.0.0:
    +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           p-limit: 4.0.0
    +    dev: false
     
    -  p-map@2.1.0: {}
    +  /p-map@2.1.0:
    +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  p-map@4.0.0:
    +  /p-map@4.0.0:
    +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    +    engines: {node: '>=10'}
         dependencies:
           aggregate-error: 3.1.0
     
    -  p-queue@6.6.2:
    +  /p-queue@6.6.2:
    +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    +    engines: {node: '>=8'}
         dependencies:
           eventemitter3: 4.0.7
           p-timeout: 3.2.0
     
    -  p-retry@4.6.2:
    +  /p-retry@4.6.2:
    +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/retry': 0.12.0
           retry: 0.13.1
    +    dev: false
     
    -  p-retry@6.2.0:
    +  /p-retry@6.2.0:
    +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    +    engines: {node: '>=16.17'}
         dependencies:
           '@types/retry': 0.12.2
           is-network-error: 1.1.0
           retry: 0.13.1
     
    -  p-timeout@3.2.0:
    +  /p-timeout@3.2.0:
    +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    +    engines: {node: '>=8'}
         dependencies:
           p-finally: 1.0.0
     
    -  p-transform@1.3.0:
    +  /p-transform@1.3.0:
    +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    +    engines: {node: '>=12.10.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           p-queue: 6.6.2
         transitivePeerDependencies:
           - supports-color
     
    -  p-try@2.2.0: {}
    +  /p-try@2.2.0:
    +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    +    engines: {node: '>=6'}
     
    -  package-json@8.1.1:
    +  /package-json@8.1.1:
    +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    +    engines: {node: '>=14.16'}
         dependencies:
           got: 12.6.1
           registry-auth-token: 5.0.2
           registry-url: 6.0.1
           semver: 7.6.0
    +    dev: false
     
    -  pacote@12.0.3:
    +  /pacote@12.0.3:
    +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
         dependencies:
           '@npmcli/git': 2.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -18371,7 +13587,10 @@ snapshots:
           - bluebird
           - supports-color
     
    -  pacote@15.2.0:
    +  /pacote@15.2.0:
    +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@npmcli/git': 4.1.0
           '@npmcli/installed-package-contents': 2.0.2
    @@ -18395,24 +13614,32 @@ snapshots:
           - bluebird
           - supports-color
     
    -  pako@1.0.11: {}
    +  /pako@1.0.11:
    +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    +    dev: true
     
    -  param-case@3.0.4:
    +  /param-case@3.0.4:
    +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
     
    -  parent-module@1.0.1:
    +  /parent-module@1.0.1:
    +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    +    engines: {node: '>=6'}
         dependencies:
           callsites: 3.1.0
     
    -  parse-conflict-json@2.0.2:
    +  /parse-conflict-json@2.0.2:
    +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           json-parse-even-better-errors: 2.3.1
           just-diff: 5.2.0
           just-diff-apply: 5.5.0
     
    -  parse-entities@4.0.1:
    +  /parse-entities@4.0.1:
    +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
         dependencies:
           '@types/unist': 2.0.10
           character-entities: 2.0.2
    @@ -18423,177 +13650,321 @@ snapshots:
           is-decimal: 2.0.1
           is-hexadecimal: 2.0.1
     
    -  parse-json@5.2.0:
    +  /parse-json@5.2.0:
    +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@babel/code-frame': 7.24.2
           error-ex: 1.3.2
           json-parse-even-better-errors: 2.3.1
           lines-and-columns: 1.2.4
     
    -  parse-ms@2.1.0: {}
    +  /parse-ms@2.1.0:
    +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  parse-numeric-range@1.3.0: {}
    +  /parse-numeric-range@1.3.0:
    +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    +    dev: false
     
    -  parse-srcset@1.0.2: {}
    +  /parse-srcset@1.0.2:
    +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    +    dev: false
     
    -  parse5-htmlparser2-tree-adapter@7.0.0:
    +  /parse5-htmlparser2-tree-adapter@7.0.0:
    +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
         dependencies:
           domhandler: 5.0.3
           parse5: 7.1.2
    +    dev: false
     
    -  parse5@7.1.2:
    +  /parse5@7.1.2:
    +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
         dependencies:
           entities: 4.5.0
     
    -  parseurl@1.3.3: {}
    +  /parseurl@1.3.3:
    +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    +    engines: {node: '>= 0.8'}
     
    -  pascal-case@3.1.2:
    +  /pascal-case@3.1.2:
    +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  path-absolute@1.0.1: {}
    +  /path-absolute@1.0.1:
    +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  path-exists@3.0.0: {}
    +  /path-exists@3.0.0:
    +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  path-exists@4.0.0: {}
    +  /path-exists@4.0.0:
    +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    +    engines: {node: '>=8'}
     
    -  path-exists@5.0.0: {}
    +  /path-exists@5.0.0:
    +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dev: false
     
    -  path-is-absolute@1.0.1: {}
    +  /path-is-absolute@1.0.1:
    +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    +    engines: {node: '>=0.10.0'}
     
    -  path-is-inside@1.0.2: {}
    +  /path-is-inside@1.0.2:
    +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    +    dev: false
     
    -  path-key@3.1.1: {}
    +  /path-key@3.1.1:
    +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    +    engines: {node: '>=8'}
     
    -  path-name@1.0.0: {}
    +  /path-name@1.0.0:
    +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
     
    -  path-parse@1.0.7: {}
    +  /path-parse@1.0.7:
    +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     
    -  path-scurry@1.10.1:
    +  /path-scurry@1.10.1:
    +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
         dependencies:
           lru-cache: 10.2.0
           minipass: 7.0.4
     
    -  path-temp@2.1.0:
    +  /path-temp@2.1.0:
    +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    +    engines: {node: '>=8.15'}
         dependencies:
           unique-string: 2.0.0
    +    dev: true
     
    -  path-to-regexp@0.1.7: {}
    +  /path-to-regexp@0.1.7:
    +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
     
    -  path-to-regexp@1.8.0:
    +  /path-to-regexp@1.8.0:
    +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
         dependencies:
           isarray: 0.0.1
    +    dev: false
     
    -  path-to-regexp@2.2.1: {}
    +  /path-to-regexp@2.2.1:
    +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    +    dev: false
     
    -  path-to-regexp@6.2.1: {}
    +  /path-to-regexp@6.2.1:
    +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    +    dev: true
     
    -  path-type@4.0.0: {}
    +  /path-type@4.0.0:
    +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    +    engines: {node: '>=8'}
     
    -  pathval@2.0.0: {}
    +  /pathval@2.0.0:
    +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    +    engines: {node: '>= 14.16'}
    +    dev: true
     
    -  periscopic@3.1.0:
    +  /periscopic@3.1.0:
    +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
         dependencies:
           '@types/estree': 1.0.5
           estree-walker: 3.0.3
           is-reference: 3.0.2
     
    -  picocolors@1.0.0: {}
    +  /picocolors@1.0.0:
    +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
     
    -  picomatch@2.3.1: {}
    +  /picomatch@2.3.1:
    +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    +    engines: {node: '>=8.6'}
     
    -  pify@2.3.0: {}
    +  /pify@2.3.0:
    +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    +    engines: {node: '>=0.10.0'}
     
    -  pify@4.0.1: {}
    +  /pify@4.0.1:
    +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    +    engines: {node: '>=6'}
     
    -  pirates@4.0.6: {}
    +  /pirates@4.0.6:
    +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    +    engines: {node: '>= 6'}
    +    dev: true
     
    -  pkg-dir@4.2.0:
    +  /pkg-dir@4.2.0:
    +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 4.1.0
     
    -  pkg-dir@7.0.0:
    +  /pkg-dir@7.0.0:
    +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    +    engines: {node: '>=14.16'}
         dependencies:
           find-up: 6.3.0
    +    dev: false
     
    -  pkg-up@3.1.0:
    +  /pkg-up@3.1.0:
    +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 3.0.0
    +    dev: false
     
    -  pluralize@8.0.0: {}
    +  /pluralize@8.0.0:
    +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  portfinder@1.0.32:
    +  /portfinder@1.0.32:
    +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    +    engines: {node: '>= 0.12.0'}
         dependencies:
           async: 2.6.4
           debug: 3.2.7
           mkdirp: 0.5.6
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  possible-typed-array-names@1.0.0: {}
    +  /possible-typed-array-names@1.0.0:
    +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    +    engines: {node: '>= 0.4'}
    +    dev: true
     
    -  postcss-calc@8.2.4(postcss@8.4.38):
    +  /postcss-calc@8.2.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    +    peerDependencies:
    +      postcss: ^8.2.2
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-colormin@5.3.1(postcss@8.4.38):
    +  /postcss-colormin@5.3.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           colord: 2.9.3
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-convert-values@5.1.3(postcss@8.4.38):
    +  /postcss-convert-values@5.1.3(postcss@8.4.38):
    +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-discard-comments@5.1.2(postcss@8.4.38):
    +  /postcss-discard-comments@5.1.2(postcss@8.4.38):
    +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    +  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-empty@5.1.1(postcss@8.4.38):
    +  /postcss-discard-empty@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-overridden@5.1.0(postcss@8.4.38):
    +  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-discard-unused@5.1.0(postcss@8.4.38):
    +  /postcss-discard-unused@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-import@15.1.0(postcss@8.4.38):
    +  /postcss-import@15.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      postcss: ^8.0.0
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           read-cache: 1.0.0
           resolve: 1.22.8
    +    dev: true
     
    -  postcss-js@4.0.1(postcss@8.4.38):
    +  /postcss-js@4.0.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    +    engines: {node: ^12 || ^14 || >= 16}
    +    peerDependencies:
    +      postcss: ^8.4.21
         dependencies:
           camelcase-css: 2.0.1
           postcss: 8.4.38
    +    dev: true
     
    -  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    +  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    +    engines: {node: '>= 14'}
    +    peerDependencies:
    +      postcss: '>=8.0.9'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      postcss:
    +        optional: true
    +      ts-node:
    +        optional: true
         dependencies:
           lilconfig: 3.1.1
           postcss: 8.4.38
           ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
           yaml: 2.4.1
    +    dev: true
     
    -  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
         dependencies:
           cosmiconfig: 8.3.6(typescript@5.4.3)
           jiti: 1.21.0
    @@ -18602,8 +13973,20 @@ snapshots:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    +    dev: false
     
    -  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
         dependencies:
           cosmiconfig: 9.0.0(typescript@5.4.3)
           jiti: 1.21.0
    @@ -18612,343 +13995,655 @@ snapshots:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  postcss-merge-idents@5.1.1(postcss@8.4.38):
    +  /postcss-merge-idents@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-merge-longhand@5.1.7(postcss@8.4.38):
    +  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
    +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           stylehacks: 5.1.1(postcss@8.4.38)
    +    dev: false
     
    -  postcss-merge-rules@5.1.4(postcss@8.4.38):
    +  /postcss-merge-rules@5.1.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-minify-font-values@5.1.0(postcss@8.4.38):
    +  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-gradients@5.1.1(postcss@8.4.38):
    +  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           colord: 2.9.3
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-params@5.1.4(postcss@8.4.38):
    +  /postcss-minify-params@5.1.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-minify-selectors@5.2.1(postcss@8.4.38):
    +  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    +  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
     
    -  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    +  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
     
    -  postcss-modules-scope@3.1.1(postcss@8.4.38):
    +  /postcss-modules-scope@3.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
     
    -  postcss-modules-values@4.0.0(postcss@8.4.38):
    +  /postcss-modules-values@4.0.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
     
    -  postcss-nested@6.0.1(postcss@8.4.38):
    +  /postcss-nested@6.0.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    +    engines: {node: '>=12.0'}
    +    peerDependencies:
    +      postcss: ^8.2.14
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: true
     
    -  postcss-normalize-charset@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-positions@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-string@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-string@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-url@5.1.0(postcss@8.4.38):
    +  /postcss-normalize-url@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           normalize-url: 6.1.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    +  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-ordered-values@5.1.3(postcss@8.4.38):
    +  /postcss-ordered-values@5.1.3(postcss@8.4.38):
    +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-reduce-idents@5.2.0(postcss@8.4.38):
    +  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-reduce-initial@5.1.2(postcss@8.4.38):
    +  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
    +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           postcss: 8.4.38
    +    dev: false
     
    -  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    +  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    +    dev: false
     
    -  postcss-selector-parser@6.0.16:
    +  /postcss-selector-parser@6.0.16:
    +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    +    engines: {node: '>=4'}
         dependencies:
           cssesc: 3.0.0
           util-deprecate: 1.0.2
     
    -  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    +  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      postcss: ^8.4.16
         dependencies:
           postcss: 8.4.38
           sort-css-media-queries: 2.1.0
    +    dev: false
     
    -  postcss-svgo@5.1.0(postcss@8.4.38):
    +  /postcss-svgo@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           svgo: 2.8.0
    +    dev: false
     
    -  postcss-unique-selectors@5.1.1(postcss@8.4.38):
    +  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  postcss-value-parser@4.2.0: {}
    +  /postcss-value-parser@4.2.0:
    +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
     
    -  postcss-zindex@5.1.0(postcss@8.4.38):
    +  /postcss-zindex@5.1.0(postcss@8.4.38):
    +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           postcss: 8.4.38
    +    dev: false
     
    -  postcss@8.4.31:
    +  /postcss@8.4.31:
    +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    +    engines: {node: ^10 || ^12 || >=14}
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
    +    dev: false
     
    -  postcss@8.4.38:
    +  /postcss@8.4.38:
    +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    +    engines: {node: ^10 || ^12 || >=14}
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
     
    -  preferred-pm@3.1.3:
    +  /preferred-pm@3.1.3:
    +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    +    engines: {node: '>=10'}
         dependencies:
           find-up: 5.0.0
           find-yarn-workspace-root2: 1.2.16
           path-exists: 4.0.0
           which-pm: 2.0.0
     
    -  prelude-ls@1.2.1: {}
    +  /prelude-ls@1.2.1:
    +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    +    engines: {node: '>= 0.8.0'}
     
    -  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    +  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    +    engines: {node: '>=14.21.3'}
    +    peerDependencies:
    +      '@ianvs/prettier-plugin-sort-imports': '*'
    +      '@prettier/plugin-pug': '*'
    +      '@shopify/prettier-plugin-liquid': '*'
    +      '@trivago/prettier-plugin-sort-imports': '*'
    +      prettier: ^3.0
    +      prettier-plugin-astro: '*'
    +      prettier-plugin-css-order: '*'
    +      prettier-plugin-import-sort: '*'
    +      prettier-plugin-jsdoc: '*'
    +      prettier-plugin-marko: '*'
    +      prettier-plugin-organize-attributes: '*'
    +      prettier-plugin-organize-imports: '*'
    +      prettier-plugin-sort-imports: '*'
    +      prettier-plugin-style-order: '*'
    +      prettier-plugin-svelte: '*'
    +      prettier-plugin-twig-melody: '*'
    +    peerDependenciesMeta:
    +      '@ianvs/prettier-plugin-sort-imports':
    +        optional: true
    +      '@prettier/plugin-pug':
    +        optional: true
    +      '@shopify/prettier-plugin-liquid':
    +        optional: true
    +      '@trivago/prettier-plugin-sort-imports':
    +        optional: true
    +      prettier-plugin-astro:
    +        optional: true
    +      prettier-plugin-css-order:
    +        optional: true
    +      prettier-plugin-import-sort:
    +        optional: true
    +      prettier-plugin-jsdoc:
    +        optional: true
    +      prettier-plugin-marko:
    +        optional: true
    +      prettier-plugin-organize-attributes:
    +        optional: true
    +      prettier-plugin-organize-imports:
    +        optional: true
    +      prettier-plugin-sort-imports:
    +        optional: true
    +      prettier-plugin-style-order:
    +        optional: true
    +      prettier-plugin-svelte:
    +        optional: true
    +      prettier-plugin-twig-melody:
    +        optional: true
         dependencies:
           prettier: 3.2.5
    +    dev: true
     
    -  prettier@3.2.5: {}
    +  /prettier@3.2.5:
    +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
     
    -  pretty-bytes@5.6.0: {}
    +  /pretty-bytes@5.6.0:
    +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    +    engines: {node: '>=6'}
     
    -  pretty-error@4.0.0:
    +  /pretty-error@4.0.0:
    +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
         dependencies:
           lodash: 4.17.21
           renderkid: 3.0.0
     
    -  pretty-format@27.5.1:
    +  /pretty-format@27.5.1:
    +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
         dependencies:
           ansi-regex: 5.0.1
           ansi-styles: 5.2.0
           react-is: 17.0.2
    +    dev: true
     
    -  pretty-format@29.7.0:
    +  /pretty-format@29.7.0:
    +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.6.3
           ansi-styles: 5.2.0
           react-is: 18.2.0
    +    dev: true
     
    -  pretty-ms@7.0.1:
    +  /pretty-ms@7.0.1:
    +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    +    engines: {node: '>=10'}
         dependencies:
           parse-ms: 2.1.0
    +    dev: true
     
    -  pretty-time@1.1.0: {}
    +  /pretty-time@1.1.0:
    +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  print-diff@1.0.0:
    +  /print-diff@1.0.0:
    +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    +    engines: {node: '>=8.3'}
         dependencies:
           diff: 4.0.2
    +    dev: true
     
    -  printable-characters@1.0.42: {}
    +  /printable-characters@1.0.42:
    +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    +    dev: true
     
    -  prism-react-renderer@2.3.1(react@18.2.0):
    +  /prism-react-renderer@2.3.1(react@18.2.0):
    +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    +    peerDependencies:
    +      react: '>=16.0.0 || 18'
         dependencies:
           '@types/prismjs': 1.26.3
           clsx: 2.1.0
           react: 18.2.0
    +    dev: false
     
    -  prismjs@1.29.0: {}
    +  /prismjs@1.29.0:
    +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  proc-log@1.0.0: {}
    +  /proc-log@1.0.0:
    +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
     
    -  proc-log@3.0.0: {}
    +  /proc-log@3.0.0:
    +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     
    -  process-nextick-args@2.0.1: {}
    +  /process-nextick-args@2.0.1:
    +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
     
    -  process@0.11.10: {}
    +  /process@0.11.10:
    +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    +    engines: {node: '>= 0.6.0'}
     
    -  promise-all-reject-late@1.0.1: {}
    +  /promise-all-reject-late@1.0.1:
    +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
     
    -  promise-call-limit@1.0.2: {}
    +  /promise-call-limit@1.0.2:
    +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
     
    -  promise-inflight@1.0.1: {}
    +  /promise-inflight@1.0.1:
    +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    +    peerDependencies:
    +      bluebird: '*'
    +    peerDependenciesMeta:
    +      bluebird:
    +        optional: true
     
    -  promise-retry@2.0.1:
    +  /promise-retry@2.0.1:
    +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    +    engines: {node: '>=10'}
         dependencies:
           err-code: 2.0.3
           retry: 0.12.0
     
    -  prompts@2.4.2:
    +  /prompts@2.4.2:
    +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    +    engines: {node: '>= 6'}
         dependencies:
           kleur: 3.0.3
           sisteransi: 1.0.5
     
    -  prop-types@15.8.1:
    +  /prop-types@15.8.1:
    +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
         dependencies:
           loose-envify: 1.4.0
           object-assign: 4.1.1
           react-is: 16.13.1
     
    -  property-information@6.4.1: {}
    +  /property-information@6.4.1:
    +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
     
    -  proto-list@1.2.4: {}
    +  /proto-list@1.2.4:
    +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
     
    -  proxy-addr@2.0.7:
    +  /proxy-addr@2.0.7:
    +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           forwarded: 0.2.0
           ipaddr.js: 1.9.1
     
    -  psl@1.9.0: {}
    +  /psl@1.9.0:
    +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    +    dev: true
     
    -  punycode@1.4.1: {}
    +  /punycode@1.4.1:
    +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    +    dev: false
     
    -  punycode@2.3.1: {}
    +  /punycode@2.3.1:
    +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    +    engines: {node: '>=6'}
     
    -  pupa@3.1.0:
    +  /pupa@3.1.0:
    +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    +    engines: {node: '>=12.20'}
         dependencies:
           escape-goat: 4.0.0
    +    dev: false
     
    -  pure-rand@6.1.0: {}
    +  /pure-rand@6.1.0:
    +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    +    dev: true
     
    -  qs@6.11.0:
    +  /qs@6.11.0:
    +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    +    engines: {node: '>=0.6'}
         dependencies:
           side-channel: 1.0.6
     
    -  qs@6.12.0:
    +  /qs@6.12.0:
    +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    +    engines: {node: '>=0.6'}
         dependencies:
           side-channel: 1.0.6
    +    dev: true
     
    -  querystringify@2.2.0: {}
    +  /querystringify@2.2.0:
    +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    +    dev: true
     
    -  queue-microtask@1.2.3: {}
    +  /queue-microtask@1.2.3:
    +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
     
    -  queue@6.0.2:
    +  /queue@6.0.2:
    +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
         dependencies:
           inherits: 2.0.4
    +    dev: false
     
    -  quick-lru@4.0.1: {}
    +  /quick-lru@4.0.1:
    +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    +    engines: {node: '>=8'}
    +    dev: true
     
    -  quick-lru@5.1.1: {}
    +  /quick-lru@5.1.1:
    +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    +    engines: {node: '>=10'}
     
    -  railroad-diagrams@1.0.0: {}
    +  /railroad-diagrams@1.0.0:
    +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    +    dev: false
     
    -  rambda@7.5.0: {}
    +  /rambda@7.5.0:
    +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    +    dev: true
     
    -  ramda@0.29.1: {}
    +  /ramda@0.29.1:
    +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    +    dev: true
     
    -  randexp@0.4.6:
    +  /randexp@0.4.6:
    +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    +    engines: {node: '>=0.12'}
         dependencies:
           discontinuous-range: 1.0.0
           ret: 0.1.15
    +    dev: false
     
    -  randombytes@2.1.0:
    +  /randombytes@2.1.0:
    +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
         dependencies:
           safe-buffer: 5.2.1
     
    -  range-parser@1.2.0: {}
    +  /range-parser@1.2.0:
    +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    +    engines: {node: '>= 0.6'}
    +    dev: false
     
    -  range-parser@1.2.1: {}
    +  /range-parser@1.2.1:
    +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    +    engines: {node: '>= 0.6'}
     
    -  raw-body@2.5.2:
    +  /raw-body@2.5.2:
    +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    +    engines: {node: '>= 0.8'}
         dependencies:
           bytes: 3.1.2
           http-errors: 2.0.0
           iconv-lite: 0.4.24
           unpipe: 1.0.0
     
    -  rc@1.2.8:
    +  /rc@1.2.8:
    +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    +    hasBin: true
         dependencies:
           deep-extend: 0.6.0
           ini: 1.3.8
           minimist: 1.2.8
           strip-json-comments: 2.0.1
    +    dev: false
     
    -  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=2.7'
    +      webpack: '>=4'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
         dependencies:
           '@babel/code-frame': 7.24.2
           address: 1.2.2
    @@ -18980,18 +14675,29 @@ snapshots:
           - eslint
           - supports-color
           - vue-template-compiler
    +    dev: false
     
    -  react-dom@18.2.0(react@18.2.0):
    +  /react-dom@18.2.0(react@18.2.0):
    +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    +    peerDependencies:
    +      react: ^18.2.0 || 18
         dependencies:
           loose-envify: 1.4.0
           react: 18.2.0
           scheduler: 0.23.0
     
    -  react-error-overlay@6.0.11: {}
    +  /react-error-overlay@6.0.11:
    +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    +    dev: false
     
    -  react-fast-compare@3.2.2: {}
    +  /react-fast-compare@3.2.2:
    +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
     
    -  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    +  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           '@babel/runtime': 7.24.1
           invariant: 2.2.4
    @@ -19001,7 +14707,11 @@ snapshots:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    +  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           invariant: 2.2.4
           react: 18.2.0
    @@ -19009,23 +14719,42 @@ snapshots:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  react-is@16.13.1: {}
    +  /react-is@16.13.1:
    +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
     
    -  react-is@17.0.2: {}
    +  /react-is@17.0.2:
    +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    +    dev: true
     
    -  react-is@18.2.0: {}
    +  /react-is@18.2.0:
    +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    +    dev: true
     
    -  react-json-view-lite@1.3.0(react@18.2.0):
    +  /react-json-view-lite@1.3.0(react@18.2.0):
    +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
         dependencies:
           react: 18.2.0
    +    dev: false
     
    -  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    +  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      react-loadable: '*'
    +      webpack: '>=4.41.1 || 5.x'
         dependencies:
           '@babel/runtime': 7.24.1
    -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
    +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  react-player@2.15.1(react@18.2.0):
    +  /react-player@2.15.1(react@18.2.0):
    +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    +    peerDependencies:
    +      react: '>=16.6.0 || 18'
         dependencies:
           deepmerge: 4.3.1
           load-script: 1.0.0
    @@ -19033,14 +14762,23 @@ snapshots:
           prop-types: 15.8.1
           react: 18.2.0
           react-fast-compare: 3.2.2
    +    dev: false
     
    -  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    +  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +      react-router: '>=5'
         dependencies:
           '@babel/runtime': 7.24.1
           react: 18.2.0
           react-router: 5.3.4(react@18.2.0)
    +    dev: false
     
    -  react-router-dom@5.3.4(react@18.2.0):
    +  /react-router-dom@5.3.4(react@18.2.0):
    +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    +    peerDependencies:
    +      react: '>=15 || 18'
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -19050,8 +14788,12 @@ snapshots:
           react-router: 5.3.4(react@18.2.0)
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    +    dev: false
     
    -  react-router@5.3.4(react@18.2.0):
    +  /react-router@5.3.4(react@18.2.0):
    +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    +    peerDependencies:
    +      react: '>=15 || 18'
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -19063,15 +14805,28 @@ snapshots:
           react-is: 16.13.1
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    +    dev: false
     
    -  react-string-replace@1.1.1: {}
    +  /react-string-replace@1.1.1:
    +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    +    engines: {node: '>=0.12.0'}
    +    dev: false
     
    -  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    +  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    +    peerDependencies:
    +      react: '*'
    +      tslib: '*'
         dependencies:
           react: 18.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    +  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
         dependencies:
           '@types/js-cookie': 2.2.7
           '@xobotyi/scrollbar-width': 1.9.5
    @@ -19089,71 +14844,101 @@ snapshots:
           throttle-debounce: 3.0.1
           ts-easing: 0.2.0
           tslib: 2.6.2
    +    dev: false
     
    -  react@18.2.0:
    +  /react@18.2.0:
    +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           loose-envify: 1.4.0
     
    -  read-cache@1.0.0:
    +  /read-cache@1.0.0:
    +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
         dependencies:
           pify: 2.3.0
    +    dev: true
     
    -  read-cmd-shim@3.0.1: {}
    +  /read-cmd-shim@3.0.1:
    +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     
    -  read-ini-file@4.0.0:
    +  /read-ini-file@4.0.0:
    +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    +    engines: {node: '>=14.6'}
         dependencies:
           ini: 3.0.1
           strip-bom: 4.0.0
    +    dev: true
     
    -  read-package-json-fast@2.0.3:
    +  /read-package-json-fast@2.0.3:
    +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    +    engines: {node: '>=10'}
         dependencies:
           json-parse-even-better-errors: 2.3.1
           npm-normalize-package-bin: 1.0.1
     
    -  read-package-json-fast@3.0.2:
    +  /read-package-json-fast@3.0.2:
    +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           json-parse-even-better-errors: 3.0.1
           npm-normalize-package-bin: 3.0.1
     
    -  read-package-json@6.0.4:
    +  /read-package-json@6.0.4:
    +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           glob: 10.3.10
           json-parse-even-better-errors: 3.0.1
           normalize-package-data: 5.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  read-pkg-up@7.0.1:
    +  /read-pkg-up@7.0.1:
    +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    +    engines: {node: '>=8'}
         dependencies:
           find-up: 4.1.0
           read-pkg: 5.2.0
           type-fest: 0.8.1
     
    -  read-pkg-up@8.0.0:
    +  /read-pkg-up@8.0.0:
    +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    +    engines: {node: '>=12'}
         dependencies:
           find-up: 5.0.0
           read-pkg: 6.0.0
           type-fest: 1.4.0
    +    dev: true
     
    -  read-pkg@5.2.0:
    +  /read-pkg@5.2.0:
    +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    +    engines: {node: '>=8'}
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 2.5.0
           parse-json: 5.2.0
           type-fest: 0.6.0
     
    -  read-pkg@6.0.0:
    +  /read-pkg@6.0.0:
    +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    +    engines: {node: '>=12'}
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 3.0.3
           parse-json: 5.2.0
           type-fest: 1.4.0
    +    dev: true
     
    -  read-yaml-file@2.1.0:
    +  /read-yaml-file@2.1.0:
    +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    +    engines: {node: '>=10.13'}
         dependencies:
           js-yaml: 4.1.0
           strip-bom: 4.0.0
    +    dev: true
     
    -  readable-stream@2.3.8:
    +  /readable-stream@2.3.8:
    +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
         dependencies:
           core-util-is: 1.0.3
           inherits: 2.0.4
    @@ -19163,13 +14948,17 @@ snapshots:
           string_decoder: 1.1.1
           util-deprecate: 1.0.2
     
    -  readable-stream@3.6.2:
    +  /readable-stream@3.6.2:
    +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    +    engines: {node: '>= 6'}
         dependencies:
           inherits: 2.0.4
           string_decoder: 1.3.0
           util-deprecate: 1.0.2
     
    -  readable-stream@4.5.2:
    +  /readable-stream@4.5.2:
    +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         dependencies:
           abort-controller: 3.0.0
           buffer: 6.0.3
    @@ -19177,39 +14966,60 @@ snapshots:
           process: 0.11.10
           string_decoder: 1.3.0
     
    -  readdir-scoped-modules@1.1.0:
    +  /readdir-scoped-modules@1.1.0:
    +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    +    deprecated: This functionality has been moved to @npmcli/fs
         dependencies:
           debuglog: 1.0.1
           dezalgo: 1.0.4
           graceful-fs: 4.2.11
           once: 1.4.0
     
    -  readdirp@3.6.0:
    +  /readdirp@3.6.0:
    +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    +    engines: {node: '>=8.10.0'}
         dependencies:
           picomatch: 2.3.1
     
    -  reading-time@1.5.0: {}
    +  /reading-time@1.5.0:
    +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    +    dev: false
     
    -  realpath-missing@1.1.0: {}
    +  /realpath-missing@1.1.0:
    +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  rechoir@0.6.2:
    +  /rechoir@0.6.2:
    +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           resolve: 1.22.8
     
    -  rechoir@0.8.0:
    +  /rechoir@0.8.0:
    +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           resolve: 1.22.8
     
    -  recursive-readdir@2.2.3:
    +  /recursive-readdir@2.2.3:
    +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           minimatch: 3.1.2
    +    dev: false
     
    -  redent@4.0.0:
    +  /redent@4.0.0:
    +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    +    engines: {node: '>=12'}
         dependencies:
           indent-string: 5.0.0
           strip-indent: 4.0.0
    +    dev: true
     
    -  reflect.getprototypeof@1.0.6:
    +  /reflect.getprototypeof@1.0.6:
    +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -19218,29 +15028,43 @@ snapshots:
           get-intrinsic: 1.2.4
           globalthis: 1.0.3
           which-builtin-type: 1.1.3
    +    dev: true
     
    -  regenerate-unicode-properties@10.1.1:
    +  /regenerate-unicode-properties@10.1.1:
    +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    +    engines: {node: '>=4'}
         dependencies:
           regenerate: 1.4.2
     
    -  regenerate@1.4.2: {}
    +  /regenerate@1.4.2:
    +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
     
    -  regenerator-runtime@0.14.1: {}
    +  /regenerator-runtime@0.14.1:
    +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
     
    -  regenerator-transform@0.15.2:
    +  /regenerator-transform@0.15.2:
    +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
         dependencies:
           '@babel/runtime': 7.24.1
     
    -  regexp-tree@0.1.27: {}
    +  /regexp-tree@0.1.27:
    +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    +    hasBin: true
    +    dev: true
     
    -  regexp.prototype.flags@1.5.2:
    +  /regexp.prototype.flags@1.5.2:
    +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-errors: 1.3.0
           set-function-name: 2.0.2
    +    dev: true
     
    -  regexpu-core@5.3.2:
    +  /regexpu-core@5.3.2:
    +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    +    engines: {node: '>=4'}
         dependencies:
           '@babel/regjsgen': 0.8.0
           regenerate: 1.4.2
    @@ -19249,31 +15073,47 @@ snapshots:
           unicode-match-property-ecmascript: 2.0.0
           unicode-match-property-value-ecmascript: 2.1.0
     
    -  registry-auth-token@5.0.2:
    +  /registry-auth-token@5.0.2:
    +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    +    engines: {node: '>=14'}
         dependencies:
           '@pnpm/npm-conf': 2.2.2
    +    dev: false
     
    -  registry-url@6.0.1:
    +  /registry-url@6.0.1:
    +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    +    engines: {node: '>=12'}
         dependencies:
           rc: 1.2.8
    +    dev: false
     
    -  regjsparser@0.10.0:
    +  /regjsparser@0.10.0:
    +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    +    hasBin: true
         dependencies:
           jsesc: 0.5.0
    +    dev: true
     
    -  regjsparser@0.9.1:
    +  /regjsparser@0.9.1:
    +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    +    hasBin: true
         dependencies:
           jsesc: 0.5.0
     
    -  rehype-raw@7.0.0:
    +  /rehype-raw@7.0.0:
    +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
         dependencies:
           '@types/hast': 3.0.4
           hast-util-raw: 9.0.2
           vfile: 6.0.1
    +    dev: false
     
    -  relateurl@0.2.7: {}
    +  /relateurl@0.2.7:
    +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    +    engines: {node: '>= 0.10'}
     
    -  remark-directive@3.0.0:
    +  /remark-directive@3.0.0:
    +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-directive: 3.0.0
    @@ -19281,16 +15121,21 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-emoji@4.0.1:
    +  /remark-emoji@4.0.1:
    +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           '@types/mdast': 4.0.3
           emoticon: 4.0.1
           mdast-util-find-and-replace: 3.0.1
           node-emoji: 2.1.3
           unified: 11.0.4
    +    dev: false
     
    -  remark-frontmatter@5.0.0:
    +  /remark-frontmatter@5.0.0:
    +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-frontmatter: 2.0.1
    @@ -19298,8 +15143,10 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-gfm@4.0.0:
    +  /remark-gfm@4.0.0:
    +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-gfm: 3.0.0
    @@ -19309,15 +15156,18 @@ snapshots:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  remark-mdx@3.0.1:
    +  /remark-mdx@3.0.1:
    +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
         dependencies:
           mdast-util-mdx: 3.0.0
           micromark-extension-mdxjs: 3.0.0
         transitivePeerDependencies:
           - supports-color
     
    -  remark-parse@11.0.0:
    +  /remark-parse@11.0.0:
    +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
    @@ -19326,7 +15176,8 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  remark-rehype@11.1.0:
    +  /remark-rehype@11.1.0:
    +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -19334,15 +15185,19 @@ snapshots:
           unified: 11.0.4
           vfile: 6.0.1
     
    -  remark-stringify@11.0.0:
    +  /remark-stringify@11.0.0:
    +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-to-markdown: 2.1.0
           unified: 11.0.4
    +    dev: false
     
    -  remove-trailing-separator@1.1.0: {}
    +  /remove-trailing-separator@1.1.0:
    +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
     
    -  renderkid@3.0.0:
    +  /renderkid@3.0.0:
    +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
         dependencies:
           css-select: 4.3.0
           dom-converter: 0.2.0
    @@ -19350,128 +15205,212 @@ snapshots:
           lodash: 4.17.21
           strip-ansi: 6.0.1
     
    -  replace-ext@1.0.1: {}
    +  /replace-ext@1.0.1:
    +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    +    engines: {node: '>= 0.10'}
     
    -  require-directory@2.1.1: {}
    +  /require-directory@2.1.1:
    +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
     
    -  require-from-string@2.0.2: {}
    +  /require-from-string@2.0.2:
    +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    +    engines: {node: '>=0.10.0'}
     
    -  require-like@0.1.2: {}
    +  /require-like@0.1.2:
    +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    +    dev: false
     
    -  requires-port@1.0.0: {}
    +  /requires-port@1.0.0:
    +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
     
    -  resize-observer-polyfill@1.5.1: {}
    +  /resize-observer-polyfill@1.5.1:
    +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    +    dev: false
     
    -  resolve-alpn@1.2.1: {}
    +  /resolve-alpn@1.2.1:
    +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    +    dev: false
     
    -  resolve-cwd@3.0.0:
    +  /resolve-cwd@3.0.0:
    +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    +    engines: {node: '>=8'}
         dependencies:
           resolve-from: 5.0.0
     
    -  resolve-from@4.0.0: {}
    +  /resolve-from@4.0.0:
    +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    +    engines: {node: '>=4'}
     
    -  resolve-from@5.0.0: {}
    +  /resolve-from@5.0.0:
    +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    +    engines: {node: '>=8'}
     
    -  resolve-pathname@3.0.0: {}
    +  /resolve-pathname@3.0.0:
    +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    +    dev: false
     
    -  resolve-pkg-maps@1.0.0: {}
    +  /resolve-pkg-maps@1.0.0:
    +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    +    dev: true
     
    -  resolve.exports@2.0.2: {}
    +  /resolve.exports@2.0.2:
    +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  resolve@1.22.8:
    +  /resolve@1.22.8:
    +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    +    hasBin: true
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
     
    -  resolve@2.0.0-next.5:
    +  /resolve@2.0.0-next.5:
    +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    +    hasBin: true
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
    +    dev: true
     
    -  responselike@3.0.0:
    +  /responselike@3.0.0:
    +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    +    engines: {node: '>=14.16'}
         dependencies:
           lowercase-keys: 3.0.0
    +    dev: false
     
    -  restore-cursor@3.1.0:
    +  /restore-cursor@3.1.0:
    +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    +    engines: {node: '>=8'}
         dependencies:
           onetime: 5.1.2
           signal-exit: 3.0.7
     
    -  ret@0.1.15: {}
    +  /ret@0.1.15:
    +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    +    engines: {node: '>=0.12'}
    +    dev: false
     
    -  retry@0.12.0: {}
    +  /retry@0.12.0:
    +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    +    engines: {node: '>= 4'}
     
    -  retry@0.13.1: {}
    +  /retry@0.13.1:
    +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    +    engines: {node: '>= 4'}
     
    -  reusify@1.0.4: {}
    +  /reusify@1.0.4:
    +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
     
    -  rfc4648@1.5.3: {}
    +  /rfc4648@1.5.3:
    +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    +    dev: false
     
    -  right-pad@1.0.1: {}
    +  /right-pad@1.0.1:
    +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    +    engines: {node: '>= 0.10'}
    +    dev: true
     
    -  rimraf@3.0.2:
    +  /rimraf@3.0.2:
    +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
     
    -  rimraf@5.0.5:
    +  /rimraf@5.0.5:
    +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
         dependencies:
           glob: 10.3.10
     
    -  rtl-css-js@1.16.1:
    +  /rtl-css-js@1.16.1:
    +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
         dependencies:
           '@babel/runtime': 7.24.1
    +    dev: false
     
    -  rtl-detect@1.1.2: {}
    +  /rtl-detect@1.1.2:
    +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    +    dev: false
     
    -  rtlcss@4.1.1:
    +  /rtlcss@4.1.1:
    +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    +    engines: {node: '>=12.0.0'}
    +    hasBin: true
         dependencies:
           escalade: 3.1.2
           picocolors: 1.0.0
           postcss: 8.4.38
           strip-json-comments: 3.1.1
    +    dev: false
     
    -  run-applescript@7.0.0: {}
    +  /run-applescript@7.0.0:
    +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    +    engines: {node: '>=18'}
     
    -  run-async@2.4.1: {}
    +  /run-async@2.4.1:
    +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    +    engines: {node: '>=0.12.0'}
     
    -  run-parallel@1.2.0:
    +  /run-parallel@1.2.0:
    +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
         dependencies:
           queue-microtask: 1.2.3
     
    -  rxjs@7.8.1:
    +  /rxjs@7.8.1:
    +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
         dependencies:
           tslib: 2.6.2
     
    -  safe-array-concat@1.1.2:
    +  /safe-array-concat@1.1.2:
    +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    +    engines: {node: '>=0.4'}
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           isarray: 2.0.5
    +    dev: true
     
    -  safe-buffer@5.1.2: {}
    +  /safe-buffer@5.1.2:
    +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
     
    -  safe-buffer@5.2.1: {}
    +  /safe-buffer@5.2.1:
    +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
     
    -  safe-execa@0.1.2:
    +  /safe-execa@0.1.2:
    +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    +    engines: {node: '>=12'}
         dependencies:
           '@zkochan/which': 2.0.3
           execa: 5.1.1
           path-name: 1.0.0
     
    -  safe-regex-test@1.0.3:
    +  /safe-regex-test@1.0.3:
    +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-regex: 1.1.4
    +    dev: true
     
    -  safe-stable-stringify@2.4.3: {}
    +  /safe-stable-stringify@2.4.3:
    +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    +    engines: {node: '>=10'}
     
    -  safer-buffer@2.1.2: {}
    +  /safer-buffer@2.1.2:
    +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
     
    -  sanitize-html@2.13.0:
    +  /sanitize-html@2.13.0:
    +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
         dependencies:
           deepmerge: 4.3.1
           escape-string-regexp: 4.0.0
    @@ -19479,77 +15418,124 @@ snapshots:
           is-plain-object: 5.0.0
           parse-srcset: 1.0.2
           postcss: 8.4.38
    +    dev: false
     
    -  sax@1.3.0: {}
    +  /sax@1.3.0:
    +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    +    dev: false
     
    -  saxes@6.0.0:
    +  /saxes@6.0.0:
    +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    +    engines: {node: '>=v12.22.7'}
         dependencies:
           xmlchars: 2.2.0
    +    dev: true
     
    -  sbd@1.0.19:
    +  /sbd@1.0.19:
    +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
         dependencies:
           sanitize-html: 2.13.0
    +    dev: false
     
    -  scheduler@0.23.0:
    +  /scheduler@0.23.0:
    +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
         dependencies:
           loose-envify: 1.4.0
     
    -  schema-utils@2.7.0:
    +  /schema-utils@2.7.0:
    +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    +    engines: {node: '>= 8.9.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
    +    dev: false
     
    -  schema-utils@3.3.0:
    +  /schema-utils@3.3.0:
    +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    +    engines: {node: '>= 10.13.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
     
    -  schema-utils@4.2.0:
    +  /schema-utils@4.2.0:
    +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    +    engines: {node: '>= 12.13.0'}
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 8.12.0
           ajv-formats: 2.1.1(ajv@8.12.0)
           ajv-keywords: 5.1.0(ajv@8.12.0)
     
    -  scoped-regex@2.1.0: {}
    +  /scoped-regex@2.1.0:
    +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    +    engines: {node: '>=8'}
     
    -  screenfull@5.2.0: {}
    +  /screenfull@5.2.0:
    +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  search-insights@2.13.0: {}
    +  /search-insights@2.13.0:
    +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    +    dev: false
     
    -  section-matter@1.0.0:
    +  /section-matter@1.0.0:
    +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    +    engines: {node: '>=4'}
         dependencies:
           extend-shallow: 2.0.1
           kind-of: 6.0.3
    +    dev: false
     
    -  secure-compare@3.0.1: {}
    +  /secure-compare@3.0.1:
    +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    +    dev: true
     
    -  select-hose@2.0.0: {}
    +  /select-hose@2.0.0:
    +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
     
    -  selfsigned@2.4.1:
    +  /selfsigned@2.4.1:
    +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    +    engines: {node: '>=10'}
         dependencies:
           '@types/node-forge': 1.3.11
           node-forge: 1.3.1
     
    -  semver-diff@4.0.0:
    +  /semver-diff@4.0.0:
    +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    +    engines: {node: '>=12'}
         dependencies:
           semver: 7.6.0
    +    dev: false
     
    -  semver@5.7.2: {}
    +  /semver@5.7.2:
    +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    +    hasBin: true
     
    -  semver@6.3.1: {}
    +  /semver@6.3.1:
    +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    +    hasBin: true
     
    -  semver@7.5.4:
    +  /semver@7.5.4:
    +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           lru-cache: 6.0.0
    +    dev: true
     
    -  semver@7.6.0:
    +  /semver@7.6.0:
    +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           lru-cache: 6.0.0
     
    -  send@0.18.0:
    +  /send@0.18.0:
    +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           debug: 2.6.9
           depd: 2.0.0
    @@ -19567,15 +15553,19 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  serialize-javascript@6.0.0:
    +  /serialize-javascript@6.0.0:
    +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
         dependencies:
           randombytes: 2.1.0
    +    dev: true
     
    -  serialize-javascript@6.0.2:
    +  /serialize-javascript@6.0.2:
    +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
         dependencies:
           randombytes: 2.1.0
     
    -  serve-handler@6.1.5:
    +  /serve-handler@6.1.5:
    +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
         dependencies:
           bytes: 3.0.0
           content-disposition: 0.5.2
    @@ -19585,8 +15575,11 @@ snapshots:
           path-is-inside: 1.0.2
           path-to-regexp: 2.2.1
           range-parser: 1.2.0
    +    dev: false
     
    -  serve-index@1.9.1:
    +  /serve-index@1.9.1:
    +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           accepts: 1.3.8
           batch: 0.6.1
    @@ -19598,7 +15591,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  serve-static@1.15.0:
    +  /serve-static@1.15.0:
    +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           encodeurl: 1.0.2
           escape-html: 1.0.3
    @@ -19607,9 +15602,12 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  set-blocking@2.0.0: {}
    +  /set-blocking@2.0.0:
    +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
     
    -  set-function-length@1.2.2:
    +  /set-function-length@1.2.2:
    +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
    @@ -19618,53 +15616,82 @@ snapshots:
           gopd: 1.0.1
           has-property-descriptors: 1.0.2
     
    -  set-function-name@2.0.2:
    +  /set-function-name@2.0.2:
    +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
           functions-have-names: 1.2.3
           has-property-descriptors: 1.0.2
    +    dev: true
     
    -  set-harmonic-interval@1.0.1: {}
    +  /set-harmonic-interval@1.0.1:
    +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    +    engines: {node: '>=6.9'}
    +    dev: false
     
    -  setimmediate@1.0.5: {}
    +  /setimmediate@1.0.5:
    +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    +    dev: true
     
    -  setprototypeof@1.1.0: {}
    +  /setprototypeof@1.1.0:
    +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
     
    -  setprototypeof@1.2.0: {}
    +  /setprototypeof@1.2.0:
    +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
     
    -  shallow-clone@3.0.1:
    +  /shallow-clone@3.0.1:
    +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    +    engines: {node: '>=8'}
         dependencies:
           kind-of: 6.0.3
     
    -  shallowequal@1.1.0: {}
    +  /shallowequal@1.1.0:
    +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
     
    -  shebang-command@2.0.0:
    +  /shebang-command@2.0.0:
    +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    +    engines: {node: '>=8'}
         dependencies:
           shebang-regex: 3.0.0
     
    -  shebang-regex@3.0.0: {}
    +  /shebang-regex@3.0.0:
    +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    +    engines: {node: '>=8'}
     
    -  shell-quote@1.8.1: {}
    +  /shell-quote@1.8.1:
    +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
     
    -  shelljs@0.8.5:
    +  /shelljs@0.8.5:
    +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    +    engines: {node: '>=4'}
    +    hasBin: true
         dependencies:
           glob: 7.2.3
           interpret: 1.4.0
           rechoir: 0.6.2
     
    -  side-channel@1.0.6:
    +  /side-channel@1.0.6:
    +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
           object-inspect: 1.13.1
     
    -  signal-exit@3.0.7: {}
    +  /signal-exit@3.0.7:
    +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
     
    -  signal-exit@4.1.0: {}
    +  /signal-exit@4.1.0:
    +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    +    engines: {node: '>=14'}
     
    -  sigstore@1.9.0:
    +  /sigstore@1.9.0:
    +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -19674,11 +15701,13 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  simple-swizzle@0.2.2:
    +  /simple-swizzle@0.2.2:
    +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
         dependencies:
           is-arrayish: 0.3.2
     
    -  sinon@17.0.1:
    +  /sinon@17.0.1:
    +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
    @@ -19686,52 +15715,79 @@ snapshots:
           diff: 5.2.0
           nise: 5.1.9
           supports-color: 7.2.0
    +    dev: true
     
    -  sirv@2.0.4:
    +  /sirv@2.0.4:
    +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           '@polka/url': 1.0.0-next.25
           mrmime: 2.0.0
           totalist: 3.0.1
    +    dev: false
     
    -  sisteransi@1.0.5: {}
    +  /sisteransi@1.0.5:
    +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
     
    -  sitemap@7.1.1:
    +  /sitemap@7.1.1:
    +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    +    hasBin: true
         dependencies:
           '@types/node': 17.0.45
           '@types/sax': 1.2.7
           arg: 5.0.2
           sax: 1.3.0
    +    dev: false
     
    -  skin-tone@2.0.0:
    +  /skin-tone@2.0.0:
    +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    +    engines: {node: '>=8'}
         dependencies:
           unicode-emoji-modifier-base: 1.0.0
    +    dev: false
     
    -  slash@3.0.0: {}
    +  /slash@3.0.0:
    +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    +    engines: {node: '>=8'}
     
    -  slash@4.0.0: {}
    +  /slash@4.0.0:
    +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  smart-buffer@4.2.0: {}
    +  /smart-buffer@4.2.0:
    +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
     
    -  snake-case@3.0.4:
    +  /snake-case@3.0.4:
    +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
    +    dev: true
     
    -  sockjs@0.3.24:
    +  /sockjs@0.3.24:
    +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
         dependencies:
           faye-websocket: 0.11.4
           uuid: 8.3.2
           websocket-driver: 0.7.4
     
    -  socks-proxy-agent@6.1.1:
    +  /socks-proxy-agent@6.1.1:
    +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
           socks: 2.8.1
         transitivePeerDependencies:
           - supports-color
    +    dev: false
     
    -  socks-proxy-agent@6.2.1:
    +  /socks-proxy-agent@6.2.1:
    +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -19739,7 +15795,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  socks-proxy-agent@7.0.0:
    +  /socks-proxy-agent@7.0.0:
    +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    +    engines: {node: '>= 10'}
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -19747,58 +15805,89 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  socks@2.8.1:
    +  /socks@2.8.1:
    +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
         dependencies:
           ip-address: 9.0.5
           smart-buffer: 4.2.0
     
    -  sort-css-media-queries@2.1.0: {}
    +  /sort-css-media-queries@2.1.0:
    +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    +    engines: {node: '>= 6.3.0'}
    +    dev: false
     
    -  sort-keys@4.2.0:
    +  /sort-keys@4.2.0:
    +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    +    engines: {node: '>=8'}
         dependencies:
           is-plain-obj: 2.1.0
     
    -  sort-keys@5.0.0:
    +  /sort-keys@5.0.0:
    +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    +    engines: {node: '>=12'}
         dependencies:
           is-plain-obj: 4.1.0
    +    dev: true
     
    -  source-map-js@1.2.0: {}
    +  /source-map-js@1.2.0:
    +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    +    engines: {node: '>=0.10.0'}
     
    -  source-map-support@0.5.13:
    +  /source-map-support@0.5.13:
    +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
    +    dev: true
     
    -  source-map-support@0.5.21:
    +  /source-map-support@0.5.21:
    +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
     
    -  source-map-url@0.4.1: {}
    +  /source-map-url@0.4.1:
    +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    +    deprecated: See https://github.com/lydell/source-map-url#deprecated
    +    dev: true
     
    -  source-map@0.5.6: {}
    +  /source-map@0.5.6:
    +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  source-map@0.6.1: {}
    +  /source-map@0.6.1:
    +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    +    engines: {node: '>=0.10.0'}
     
    -  source-map@0.7.4: {}
    +  /source-map@0.7.4:
    +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    +    engines: {node: '>= 8'}
     
    -  space-separated-tokens@2.0.2: {}
    +  /space-separated-tokens@2.0.2:
    +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
     
    -  spdx-correct@3.2.0:
    +  /spdx-correct@3.2.0:
    +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
         dependencies:
           spdx-expression-parse: 3.0.1
           spdx-license-ids: 3.0.17
     
    -  spdx-exceptions@2.5.0: {}
    +  /spdx-exceptions@2.5.0:
    +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
     
    -  spdx-expression-parse@3.0.1:
    +  /spdx-expression-parse@3.0.1:
    +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
         dependencies:
           spdx-exceptions: 2.5.0
           spdx-license-ids: 3.0.17
     
    -  spdx-license-ids@3.0.17: {}
    +  /spdx-license-ids@3.0.17:
    +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
     
    -  spdy-transport@3.0.0:
    +  /spdy-transport@3.0.0:
    +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           detect-node: 2.1.0
    @@ -19809,7 +15898,9 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  spdy@4.0.2:
    +  /spdy@4.0.2:
    +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    +    engines: {node: '>=6.0.0'}
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           handle-thing: 2.0.1
    @@ -19819,88 +15910,138 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  split2@3.2.2:
    +  /split2@3.2.2:
    +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
         dependencies:
           readable-stream: 3.6.2
     
    -  sprintf-js@1.0.3: {}
    +  /sprintf-js@1.0.3:
    +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
     
    -  sprintf-js@1.1.3: {}
    +  /sprintf-js@1.1.3:
    +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
     
    -  srcset@4.0.0: {}
    +  /srcset@4.0.0:
    +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  ssri@10.0.5:
    +  /ssri@10.0.5:
    +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           minipass: 7.0.4
     
    -  ssri@8.0.1:
    +  /ssri@8.0.1:
    +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    +    engines: {node: '>= 8'}
         dependencies:
           minipass: 3.3.6
     
    -  ssri@9.0.1:
    +  /ssri@9.0.1:
    +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           minipass: 3.3.6
     
    -  stable@0.1.8: {}
    +  /stable@0.1.8:
    +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    +    dev: false
     
    -  stack-generator@2.0.10:
    +  /stack-generator@2.0.10:
    +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
         dependencies:
           stackframe: 1.3.4
    +    dev: false
     
    -  stack-trace@0.0.10: {}
    +  /stack-trace@0.0.10:
    +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
     
    -  stack-utils@2.0.6:
    +  /stack-utils@2.0.6:
    +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    +    engines: {node: '>=10'}
         dependencies:
           escape-string-regexp: 2.0.0
    +    dev: true
     
    -  stackframe@1.3.4: {}
    +  /stackframe@1.3.4:
    +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    +    dev: false
     
    -  stacktrace-gps@3.1.2:
    +  /stacktrace-gps@3.1.2:
    +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
         dependencies:
           source-map: 0.5.6
           stackframe: 1.3.4
    +    dev: false
     
    -  stacktrace-js@2.0.2:
    +  /stacktrace-js@2.0.2:
    +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
         dependencies:
           error-stack-parser: 2.1.4
           stack-generator: 2.0.10
           stacktrace-gps: 3.1.2
    +    dev: false
     
    -  stacktracey@2.1.8:
    +  /stacktracey@2.1.8:
    +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
         dependencies:
           as-table: 1.0.55
           get-source: 2.0.12
    +    dev: true
     
    -  statuses@1.5.0: {}
    +  /statuses@1.5.0:
    +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    +    engines: {node: '>= 0.6'}
     
    -  statuses@2.0.1: {}
    +  /statuses@2.0.1:
    +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    +    engines: {node: '>= 0.8'}
     
    -  std-env@3.7.0: {}
    +  /std-env@3.7.0:
    +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    +    dev: false
     
    -  stop-iteration-iterator@1.0.0:
    +  /stop-iteration-iterator@1.0.0:
    +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           internal-slot: 1.0.7
    +    dev: true
     
    -  streamsearch@1.1.0: {}
    +  /streamsearch@1.1.0:
    +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    +    engines: {node: '>=10.0.0'}
    +    dev: false
     
    -  string-length@4.0.2:
    +  /string-length@4.0.2:
    +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    +    engines: {node: '>=10'}
         dependencies:
           char-regex: 1.0.2
           strip-ansi: 6.0.1
    +    dev: true
     
    -  string-width@4.2.3:
    +  /string-width@4.2.3:
    +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    +    engines: {node: '>=8'}
         dependencies:
           emoji-regex: 8.0.0
           is-fullwidth-code-point: 3.0.0
           strip-ansi: 6.0.1
     
    -  string-width@5.1.2:
    +  /string-width@5.1.2:
    +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    +    engines: {node: '>=12'}
         dependencies:
           eastasianwidth: 0.2.0
           emoji-regex: 9.2.2
           strip-ansi: 7.1.0
     
    -  string.prototype.matchall@4.0.11:
    +  /string.prototype.matchall@4.0.11:
    +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -19914,117 +16055,195 @@ snapshots:
           regexp.prototype.flags: 1.5.2
           set-function-name: 2.0.2
           side-channel: 1.0.6
    +    dev: true
     
    -  string.prototype.trim@1.2.9:
    +  /string.prototype.trim@1.2.9:
    +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string.prototype.trimend@1.0.8:
    +  /string.prototype.trimend@1.0.8:
    +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string.prototype.trimstart@1.0.8:
    +  /string.prototype.trimstart@1.0.8:
    +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    +    dev: true
     
    -  string_decoder@1.1.1:
    +  /string_decoder@1.1.1:
    +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
         dependencies:
           safe-buffer: 5.1.2
     
    -  string_decoder@1.3.0:
    +  /string_decoder@1.3.0:
    +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
         dependencies:
           safe-buffer: 5.2.1
     
    -  stringify-entities@4.0.3:
    +  /stringify-entities@4.0.3:
    +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
         dependencies:
           character-entities-html4: 2.1.0
           character-entities-legacy: 3.0.0
     
    -  stringify-object@3.3.0:
    +  /stringify-object@3.3.0:
    +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    +    engines: {node: '>=4'}
         dependencies:
           get-own-enumerable-property-symbols: 3.0.2
           is-obj: 1.0.1
           is-regexp: 1.0.0
    +    dev: false
     
    -  strip-ansi@6.0.1:
    +  /strip-ansi@6.0.1:
    +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    +    engines: {node: '>=8'}
         dependencies:
           ansi-regex: 5.0.1
     
    -  strip-ansi@7.1.0:
    +  /strip-ansi@7.1.0:
    +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    +    engines: {node: '>=12'}
         dependencies:
           ansi-regex: 6.0.1
     
    -  strip-bom-buf@1.0.0:
    +  /strip-bom-buf@1.0.0:
    +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    +    engines: {node: '>=4'}
         dependencies:
           is-utf8: 0.2.1
     
    -  strip-bom-stream@2.0.0:
    +  /strip-bom-stream@2.0.0:
    +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           first-chunk-stream: 2.0.0
           strip-bom: 2.0.0
     
    -  strip-bom-string@1.0.0: {}
    +  /strip-bom-string@1.0.0:
    +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  strip-bom@2.0.0:
    +  /strip-bom@2.0.0:
    +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    +    engines: {node: '>=0.10.0'}
         dependencies:
           is-utf8: 0.2.1
     
    -  strip-bom@3.0.0: {}
    +  /strip-bom@3.0.0:
    +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    +    engines: {node: '>=4'}
     
    -  strip-bom@4.0.0: {}
    +  /strip-bom@4.0.0:
    +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    +    engines: {node: '>=8'}
     
    -  strip-comments-strings@1.2.0: {}
    +  /strip-comments-strings@1.2.0:
    +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    +    dev: true
     
    -  strip-final-newline@2.0.0: {}
    +  /strip-final-newline@2.0.0:
    +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    +    engines: {node: '>=6'}
     
    -  strip-indent@3.0.0:
    +  /strip-indent@3.0.0:
    +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    +    engines: {node: '>=8'}
         dependencies:
           min-indent: 1.0.1
    +    dev: true
     
    -  strip-indent@4.0.0:
    +  /strip-indent@4.0.0:
    +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    +    engines: {node: '>=12'}
         dependencies:
           min-indent: 1.0.1
    +    dev: true
     
    -  strip-json-comments@2.0.1: {}
    +  /strip-json-comments@2.0.1:
    +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    +    engines: {node: '>=0.10.0'}
    +    dev: false
     
    -  strip-json-comments@3.1.1: {}
    +  /strip-json-comments@3.1.1:
    +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    +    engines: {node: '>=8'}
     
    -  strnum@1.0.5: {}
    +  /strnum@1.0.5:
    +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    +    dev: true
     
    -  style-loader@3.3.4(webpack@5.91.0):
    +  /style-loader@3.3.4(webpack@5.91.0):
    +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  style-to-object@0.4.4:
    +  /style-to-object@0.4.4:
    +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
         dependencies:
           inline-style-parser: 0.1.1
     
    -  style-to-object@1.0.5:
    +  /style-to-object@1.0.5:
    +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
         dependencies:
           inline-style-parser: 0.2.2
     
    -  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    +  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    +    engines: {node: '>= 12.0.0'}
    +    peerDependencies:
    +      '@babel/core': '*'
    +      babel-plugin-macros: '*'
    +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      babel-plugin-macros:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           client-only: 0.0.1
           react: 18.2.0
    +    dev: false
     
    -  stylehacks@5.1.1(postcss@8.4.38):
    +  /stylehacks@5.1.1(postcss@8.4.38):
    +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    +    dev: false
     
    -  stylis@4.3.1: {}
    +  /stylis@4.3.1:
    +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    +    dev: false
     
    -  sucrase@3.35.0:
    +  /sucrase@3.35.0:
    +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           commander: 4.1.1
    @@ -20033,24 +16252,37 @@ snapshots:
           mz: 2.7.0
           pirates: 4.0.6
           ts-interface-checker: 0.1.13
    +    dev: true
     
    -  supports-color@5.5.0:
    +  /supports-color@5.5.0:
    +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    +    engines: {node: '>=4'}
         dependencies:
           has-flag: 3.0.0
     
    -  supports-color@7.2.0:
    +  /supports-color@7.2.0:
    +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    +    engines: {node: '>=8'}
         dependencies:
           has-flag: 4.0.0
     
    -  supports-color@8.1.1:
    +  /supports-color@8.1.1:
    +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    +    engines: {node: '>=10'}
         dependencies:
           has-flag: 4.0.0
     
    -  supports-preserve-symlinks-flag@1.0.0: {}
    +  /supports-preserve-symlinks-flag@1.0.0:
    +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    +    engines: {node: '>= 0.4'}
     
    -  svg-parser@2.0.4: {}
    +  /svg-parser@2.0.4:
    +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
     
    -  svgo@2.8.0:
    +  /svgo@2.8.0:
    +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -20059,8 +16291,12 @@ snapshots:
           csso: 4.2.0
           picocolors: 1.0.0
           stable: 0.1.8
    +    dev: false
     
    -  svgo@3.2.0:
    +  /svgo@3.2.0:
    +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -20069,10 +16305,16 @@ snapshots:
           css-what: 6.1.0
           csso: 5.0.5
           picocolors: 1.0.0
    +    dev: true
     
    -  symbol-tree@3.2.4: {}
    +  /symbol-tree@3.2.4:
    +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    +    dev: true
     
    -  syncpack@12.3.0(typescript@5.4.3):
    +  /syncpack@12.3.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    +    engines: {node: '>=16'}
    +    hasBin: true
         dependencies:
           '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
           chalk: 4.1.2
    @@ -20092,8 +16334,17 @@ snapshots:
           ts-toolbelt: 9.6.0
         transitivePeerDependencies:
           - typescript
    +    dev: true
     
    -  tailwindcss@3.4.1(ts-node@10.9.2):
    +  /tail@2.2.6:
    +    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
    +    engines: {node: '>= 6.0.0'}
    +    dev: false
    +
    +  /tailwindcss@3.4.1(ts-node@10.9.2):
    +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
         dependencies:
           '@alloc/quick-lru': 5.2.0
           arg: 5.0.2
    @@ -20119,12 +16370,20 @@ snapshots:
           sucrase: 3.35.0
         transitivePeerDependencies:
           - ts-node
    +    dev: true
     
    -  tapable@1.1.3: {}
    +  /tapable@1.1.3:
    +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  tapable@2.2.1: {}
    +  /tapable@2.2.1:
    +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    +    engines: {node: '>=6'}
     
    -  tar@6.2.1:
    +  /tar@6.2.1:
    +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    +    engines: {node: '>=10'}
         dependencies:
           chownr: 2.0.0
           fs-minipass: 2.1.0
    @@ -20133,7 +16392,21 @@ snapshots:
           mkdirp: 1.0.4
           yallist: 4.0.0
     
    -  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    +  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      '@swc/core': '*'
    +      esbuild: '*'
    +      uglify-js: '*'
    +      webpack: ^5.1.0
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      esbuild:
    +        optional: true
    +      uglify-js:
    +        optional: true
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           esbuild: 0.20.2
    @@ -20143,105 +16416,195 @@ snapshots:
           terser: 5.29.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  terser@5.29.2:
    +  /terser@5.29.2:
    +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
         dependencies:
           '@jridgewell/source-map': 0.3.6
           acorn: 8.11.3
           commander: 2.20.3
           source-map-support: 0.5.21
     
    -  test-exclude@6.0.0:
    +  /test-exclude@6.0.0:
    +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    +    engines: {node: '>=8'}
         dependencies:
           '@istanbuljs/schema': 0.1.3
           glob: 7.2.3
           minimatch: 3.1.2
    +    dev: true
     
    -  text-hex@1.0.0: {}
    +  /text-hex@1.0.0:
    +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
     
    -  text-table@0.2.0: {}
    +  /text-table@0.2.0:
    +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
     
    -  textextensions@5.16.0: {}
    +  /textextensions@5.16.0:
    +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    +    engines: {node: '>=0.8'}
     
    -  thenify-all@1.6.0:
    +  /thenify-all@1.6.0:
    +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    +    engines: {node: '>=0.8'}
         dependencies:
           thenify: 3.3.1
    +    dev: true
     
    -  thenify@3.3.1:
    +  /thenify@3.3.1:
    +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
         dependencies:
           any-promise: 1.3.0
    +    dev: true
     
    -  throttle-debounce@3.0.1: {}
    +  /throttle-debounce@3.0.1:
    +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    +    engines: {node: '>=10'}
    +    dev: false
     
    -  through2@4.0.2:
    +  /through2@4.0.2:
    +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
         dependencies:
           readable-stream: 3.6.2
     
    -  through@2.3.8: {}
    +  /through@2.3.8:
    +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
     
    -  thunky@1.1.0: {}
    +  /thunky@1.1.0:
    +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
     
    -  tightrope@0.1.0: {}
    +  /tightrope@0.1.0:
    +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    +    engines: {node: '>=14'}
    +    dev: true
     
    -  tiny-invariant@1.3.3: {}
    +  /tiny-invariant@1.3.3:
    +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    +    dev: false
     
    -  tiny-warning@1.0.3: {}
    +  /tiny-warning@1.0.3:
    +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    +    dev: false
     
    -  tinycolor2@1.6.0: {}
    +  /tinycolor2@1.6.0:
    +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    +    dev: false
     
    -  tmp@0.0.33:
    +  /tmp@0.0.33:
    +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    +    engines: {node: '>=0.6.0'}
         dependencies:
           os-tmpdir: 1.0.2
     
    -  tmpl@1.0.5: {}
    +  /tmpl@1.0.5:
    +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    +    dev: true
     
    -  to-fast-properties@2.0.0: {}
    +  /to-fast-properties@2.0.0:
    +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    +    engines: {node: '>=4'}
     
    -  to-regex-range@5.0.1:
    +  /to-regex-range@5.0.1:
    +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    +    engines: {node: '>=8.0'}
         dependencies:
           is-number: 7.0.0
     
    -  toggle-selection@1.0.6: {}
    +  /toggle-selection@1.0.6:
    +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    +    dev: false
     
    -  toidentifier@1.0.1: {}
    +  /toidentifier@1.0.1:
    +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    +    engines: {node: '>=0.6'}
     
    -  totalist@3.0.1: {}
    +  /totalist@3.0.1:
    +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    +    engines: {node: '>=6'}
    +    dev: false
     
    -  tough-cookie@4.1.3:
    +  /tough-cookie@4.1.3:
    +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    +    engines: {node: '>=6'}
         dependencies:
           psl: 1.9.0
           punycode: 2.3.1
           universalify: 0.2.0
           url-parse: 1.5.10
    +    dev: true
     
    -  tr46@0.0.3: {}
    +  /tr46@0.0.3:
    +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
     
    -  tr46@3.0.0:
    +  /tr46@3.0.0:
    +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    +    engines: {node: '>=12'}
         dependencies:
           punycode: 2.3.1
    +    dev: true
     
    -  treeverse@1.0.4: {}
    +  /treeverse@1.0.4:
    +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
     
    -  trie-search@2.0.0:
    +  /trie-search@2.0.0:
    +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
         dependencies:
           hasharray: 1.1.2
    +    dev: false
     
    -  trim-lines@3.0.1: {}
    +  /trim-lines@3.0.1:
    +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
     
    -  trim-newlines@4.1.1: {}
    +  /trim-newlines@4.1.1:
    +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  triple-beam@1.4.1: {}
    +  /triple-beam@1.4.1:
    +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    +    engines: {node: '>= 14.0.0'}
     
    -  trough@2.2.0: {}
    +  /trough@2.2.0:
    +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
     
    -  ts-api-utils@1.3.0(typescript@5.4.3):
    +  /ts-api-utils@1.3.0(typescript@5.4.3):
    +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      typescript: '>=4.2.0'
         dependencies:
           typescript: 5.4.3
    +    dev: true
     
    -  ts-easing@0.2.0: {}
    +  /ts-easing@0.2.0:
    +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    +    dev: false
     
    -  ts-interface-checker@0.1.13: {}
    +  /ts-interface-checker@0.1.13:
    +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    +    dev: true
     
    -  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    +  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      '@babel/core': '>=7.0.0-beta.0 <8'
    +      '@jest/types': ^29.0.0
    +      babel-jest: ^29.0.0
    +      esbuild: '*'
    +      jest: ^29.0.0
    +      typescript: '>=4.3 <6'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      '@jest/types':
    +        optional: true
    +      babel-jest:
    +        optional: true
    +      esbuild:
    +        optional: true
         dependencies:
           '@babel/core': 7.24.3
           bs-logger: 0.2.6
    @@ -20255,8 +16618,14 @@ snapshots:
           semver: 7.6.0
           typescript: 5.4.3
           yargs-parser: 21.1.1
    +    dev: true
     
    -  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    +  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      typescript: '*'
    +      webpack: ^5.0.0
         dependencies:
           chalk: 4.1.2
           enhanced-resolve: 5.16.0
    @@ -20265,8 +16634,21 @@ snapshots:
           source-map: 0.7.4
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: true
     
    -  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    +  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    +    hasBin: true
    +    peerDependencies:
    +      '@swc/core': '>=1.2.50'
    +      '@swc/wasm': '>=1.2.50'
    +      '@types/node': '*'
    +      typescript: '>=2.7'
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      '@swc/wasm':
    +        optional: true
         dependencies:
           '@cspotcode/source-map-support': 0.8.1
           '@tsconfig/node10': 1.0.10
    @@ -20283,19 +16665,27 @@ snapshots:
           typescript: 5.4.3
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
    +    dev: true
     
    -  ts-toolbelt@9.6.0: {}
    +  /ts-toolbelt@9.6.0:
    +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    +    dev: true
     
    -  tsconfig-paths@3.15.0:
    +  /tsconfig-paths@3.15.0:
    +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
         dependencies:
           '@types/json5': 0.0.29
           json5: 1.0.2
           minimist: 1.2.8
           strip-bom: 3.0.0
    +    dev: true
     
    -  tslib@2.6.2: {}
    +  /tslib@2.6.2:
    +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
     
    -  tuf-js@1.1.7:
    +  /tuf-js@1.1.7:
    +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           '@tufjs/models': 1.0.4
           debug: 4.3.4(supports-color@8.1.1)
    @@ -20303,46 +16693,77 @@ snapshots:
         transitivePeerDependencies:
           - supports-color
     
    -  type-check@0.4.0:
    +  /type-check@0.4.0:
    +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           prelude-ls: 1.2.1
     
    -  type-detect@4.0.8: {}
    +  /type-detect@4.0.8:
    +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    +    engines: {node: '>=4'}
    +    dev: true
     
    -  type-fest@0.20.2: {}
    +  /type-fest@0.20.2:
    +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    +    engines: {node: '>=10'}
     
    -  type-fest@0.21.3: {}
    +  /type-fest@0.21.3:
    +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    +    engines: {node: '>=10'}
     
    -  type-fest@0.6.0: {}
    +  /type-fest@0.6.0:
    +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    +    engines: {node: '>=8'}
     
    -  type-fest@0.8.1: {}
    +  /type-fest@0.8.1:
    +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    +    engines: {node: '>=8'}
     
    -  type-fest@1.4.0: {}
    +  /type-fest@1.4.0:
    +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    +    engines: {node: '>=10'}
     
    -  type-fest@2.19.0: {}
    +  /type-fest@2.19.0:
    +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  type-fest@4.14.0: {}
    +  /type-fest@4.14.0:
    +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    +    engines: {node: '>=16'}
    +    dev: false
     
    -  type-is@1.6.18:
    +  /type-is@1.6.18:
    +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    +    engines: {node: '>= 0.6'}
         dependencies:
           media-typer: 0.3.0
           mime-types: 2.1.35
     
    -  typed-array-buffer@1.0.2:
    +  /typed-array-buffer@1.0.2:
    +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-byte-length@1.0.1:
    +  /typed-array-byte-length@1.0.1:
    +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-byte-offset@1.0.2:
    +  /typed-array-byte-offset@1.0.2:
    +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
    @@ -20350,8 +16771,11 @@ snapshots:
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    +    dev: true
     
    -  typed-array-length@1.0.6:
    +  /typed-array-length@1.0.6:
    +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
    @@ -20359,34 +16783,53 @@ snapshots:
           has-proto: 1.0.3
           is-typed-array: 1.1.13
           possible-typed-array-names: 1.0.0
    +    dev: true
     
    -  typedarray-to-buffer@3.1.5:
    +  /typedarray-to-buffer@3.1.5:
    +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
         dependencies:
           is-typedarray: 1.0.0
     
    -  typescript@5.4.3: {}
    +  /typescript@5.4.3:
    +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    +    engines: {node: '>=14.17'}
    +    hasBin: true
     
    -  unbox-primitive@1.0.2:
    +  /unbox-primitive@1.0.2:
    +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
         dependencies:
           call-bind: 1.0.7
           has-bigints: 1.0.2
           has-symbols: 1.0.3
           which-boxed-primitive: 1.0.2
    +    dev: true
     
    -  unicode-canonical-property-names-ecmascript@2.0.0: {}
    +  /unicode-canonical-property-names-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    +    engines: {node: '>=4'}
     
    -  unicode-emoji-modifier-base@1.0.0: {}
    +  /unicode-emoji-modifier-base@1.0.0:
    +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    +    engines: {node: '>=4'}
    +    dev: false
     
    -  unicode-match-property-ecmascript@2.0.0:
    +  /unicode-match-property-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    +    engines: {node: '>=4'}
         dependencies:
           unicode-canonical-property-names-ecmascript: 2.0.0
           unicode-property-aliases-ecmascript: 2.1.0
     
    -  unicode-match-property-value-ecmascript@2.1.0: {}
    +  /unicode-match-property-value-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    +    engines: {node: '>=4'}
     
    -  unicode-property-aliases-ecmascript@2.1.0: {}
    +  /unicode-property-aliases-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    +    engines: {node: '>=4'}
     
    -  unified@11.0.4:
    +  /unified@11.0.4:
    +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
         dependencies:
           '@types/unist': 3.0.2
           bail: 2.0.2
    @@ -20396,91 +16839,133 @@ snapshots:
           trough: 2.2.0
           vfile: 6.0.1
     
    -  union@0.5.0:
    +  /union@0.5.0:
    +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    +    engines: {node: '>= 0.8.0'}
         dependencies:
           qs: 6.12.0
    +    dev: true
     
    -  unique-filename@1.1.1:
    +  /unique-filename@1.1.1:
    +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
         dependencies:
           unique-slug: 2.0.2
     
    -  unique-filename@2.0.1:
    +  /unique-filename@2.0.1:
    +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           unique-slug: 3.0.0
     
    -  unique-filename@3.0.0:
    +  /unique-filename@3.0.0:
    +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           unique-slug: 4.0.0
     
    -  unique-slug@2.0.2:
    +  /unique-slug@2.0.2:
    +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-slug@3.0.0:
    +  /unique-slug@3.0.0:
    +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-slug@4.0.0:
    +  /unique-slug@4.0.0:
    +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           imurmurhash: 0.1.4
     
    -  unique-string@2.0.0:
    +  /unique-string@2.0.0:
    +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    +    engines: {node: '>=8'}
         dependencies:
           crypto-random-string: 2.0.0
    +    dev: true
     
    -  unique-string@3.0.0:
    +  /unique-string@3.0.0:
    +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    +    engines: {node: '>=12'}
         dependencies:
           crypto-random-string: 4.0.0
    +    dev: false
     
    -  unist-util-is@6.0.0:
    +  /unist-util-is@6.0.0:
    +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-position-from-estree@2.0.0:
    +  /unist-util-position-from-estree@2.0.0:
    +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-position@5.0.0:
    +  /unist-util-position@5.0.0:
    +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-remove-position@5.0.0:
    +  /unist-util-remove-position@5.0.0:
    +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-visit: 5.0.0
     
    -  unist-util-stringify-position@4.0.0:
    +  /unist-util-stringify-position@4.0.0:
    +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
         dependencies:
           '@types/unist': 3.0.2
     
    -  unist-util-visit-parents@6.0.1:
    +  /unist-util-visit-parents@6.0.1:
    +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
     
    -  unist-util-visit@5.0.0:
    +  /unist-util-visit@5.0.0:
    +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
     
    -  universal-user-agent@6.0.1: {}
    +  /universal-user-agent@6.0.1:
    +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
     
    -  universalify@0.2.0: {}
    +  /universalify@0.2.0:
    +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    +    engines: {node: '>= 4.0.0'}
    +    dev: true
     
    -  universalify@2.0.1: {}
    +  /universalify@2.0.1:
    +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    +    engines: {node: '>= 10.0.0'}
     
    -  unpipe@1.0.0: {}
    +  /unpipe@1.0.0:
    +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    +    engines: {node: '>= 0.8'}
     
    -  untildify@4.0.0: {}
    +  /untildify@4.0.0:
    +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    +    engines: {node: '>=8'}
     
    -  update-browserslist-db@1.0.13(browserslist@4.23.0):
    +  /update-browserslist-db@1.0.13(browserslist@4.23.0):
    +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    +    hasBin: true
    +    peerDependencies:
    +      browserslist: '>= 4.21.0'
         dependencies:
           browserslist: 4.23.0
           escalade: 3.1.2
           picocolors: 1.0.0
     
    -  update-notifier@6.0.2:
    +  /update-notifier@6.0.2:
    +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    +    engines: {node: '>=14.16'}
         dependencies:
           boxen: 7.1.1
           chalk: 5.3.0
    @@ -20496,80 +16981,125 @@ snapshots:
           semver: 7.6.0
           semver-diff: 4.0.0
           xdg-basedir: 5.1.0
    +    dev: false
     
    -  uri-js@4.4.1:
    +  /uri-js@4.4.1:
    +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
         dependencies:
           punycode: 2.3.1
     
    -  url-join@4.0.1: {}
    +  /url-join@4.0.1:
    +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    +    dev: true
     
    -  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    +  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      file-loader: '*'
    +      webpack: ^4.0.0 || ^5.0.0
    +    peerDependenciesMeta:
    +      file-loader:
    +        optional: true
         dependencies:
           file-loader: 6.2.0(webpack@5.91.0)
           loader-utils: 2.0.4
           mime-types: 2.1.35
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  url-parse@1.5.10:
    +  /url-parse@1.5.10:
    +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
         dependencies:
           querystringify: 2.2.0
           requires-port: 1.0.0
    +    dev: true
     
    -  util-deprecate@1.0.2: {}
    +  /util-deprecate@1.0.2:
    +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
     
    -  utila@0.4.0: {}
    +  /utila@0.4.0:
    +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
     
    -  utility-types@3.11.0: {}
    +  /utility-types@3.11.0:
    +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    +    engines: {node: '>= 4'}
     
    -  utils-merge@1.0.1: {}
    +  /utils-merge@1.0.1:
    +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    +    engines: {node: '>= 0.4.0'}
     
    -  uuid@8.3.2: {}
    +  /uuid@8.3.2:
    +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    +    hasBin: true
     
    -  uuid@9.0.1: {}
    +  /uuid@9.0.1:
    +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    +    hasBin: true
    +    dev: false
     
    -  v8-compile-cache-lib@3.0.1: {}
    +  /v8-compile-cache-lib@3.0.1:
    +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    +    dev: true
     
    -  v8-to-istanbul@9.2.0:
    +  /v8-to-istanbul@9.2.0:
    +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    +    engines: {node: '>=10.12.0'}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           '@types/istanbul-lib-coverage': 2.0.6
           convert-source-map: 2.0.0
    +    dev: true
     
    -  validate-npm-package-license@3.0.4:
    +  /validate-npm-package-license@3.0.4:
    +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
         dependencies:
           spdx-correct: 3.2.0
           spdx-expression-parse: 3.0.1
     
    -  validate-npm-package-name@3.0.0:
    +  /validate-npm-package-name@3.0.0:
    +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
         dependencies:
           builtins: 1.0.3
     
    -  validate-npm-package-name@5.0.0:
    +  /validate-npm-package-name@5.0.0:
    +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           builtins: 5.0.1
     
    -  value-equal@1.0.1: {}
    +  /value-equal@1.0.1:
    +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    +    dev: false
     
    -  vary@1.1.2: {}
    +  /vary@1.1.2:
    +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    +    engines: {node: '>= 0.8'}
     
    -  vfile-location@5.0.2:
    +  /vfile-location@5.0.2:
    +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
         dependencies:
           '@types/unist': 3.0.2
           vfile: 6.0.1
    +    dev: false
     
    -  vfile-message@4.0.2:
    +  /vfile-message@4.0.2:
    +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
     
    -  vfile@6.0.1:
    +  /vfile@6.0.1:
    +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
           vfile-message: 4.0.2
     
    -  vinyl-file@3.0.0:
    +  /vinyl-file@3.0.0:
    +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    +    engines: {node: '>=4'}
         dependencies:
           graceful-fs: 4.2.11
           pify: 2.3.0
    @@ -20577,7 +17107,9 @@ snapshots:
           strip-bom-stream: 2.0.0
           vinyl: 2.2.1
     
    -  vinyl@2.2.1:
    +  /vinyl@2.2.1:
    +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    +    engines: {node: '>= 0.10'}
         dependencies:
           clone: 2.1.2
           clone-buffer: 1.0.0
    @@ -20586,38 +17118,58 @@ snapshots:
           remove-trailing-separator: 1.1.0
           replace-ext: 1.0.1
     
    -  vscode-uri@3.0.8: {}
    +  /vscode-uri@3.0.8:
    +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
     
    -  w3c-xmlserializer@4.0.0:
    +  /w3c-xmlserializer@4.0.0:
    +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    +    engines: {node: '>=14'}
         dependencies:
           xml-name-validator: 4.0.0
    +    dev: true
     
    -  walk-up-path@1.0.0: {}
    +  /walk-up-path@1.0.0:
    +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
     
    -  walker@1.0.8:
    +  /walker@1.0.8:
    +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
         dependencies:
           makeerror: 1.0.12
    +    dev: true
     
    -  watchpack@2.4.1:
    +  /watchpack@2.4.1:
    +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    +    engines: {node: '>=10.13.0'}
         dependencies:
           glob-to-regexp: 0.4.1
           graceful-fs: 4.2.11
     
    -  wbuf@1.7.3:
    +  /wbuf@1.7.3:
    +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
         dependencies:
           minimalistic-assert: 1.0.1
     
    -  wcwidth@1.0.1:
    +  /wcwidth@1.0.1:
    +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
         dependencies:
           defaults: 1.0.4
     
    -  web-namespaces@2.0.1: {}
    +  /web-namespaces@2.0.1:
    +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    +    dev: false
     
    -  webidl-conversions@3.0.1: {}
    +  /webidl-conversions@3.0.1:
    +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
     
    -  webidl-conversions@7.0.0: {}
    +  /webidl-conversions@7.0.0:
    +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  webpack-bundle-analyzer@4.10.1:
    +  /webpack-bundle-analyzer@4.10.1:
    +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    +    engines: {node: '>= 10.13.0'}
    +    hasBin: true
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           acorn: 8.11.3
    @@ -20635,8 +17187,24 @@ snapshots:
         transitivePeerDependencies:
           - bufferutil
           - utf-8-validate
    +    dev: false
     
    -  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    +    engines: {node: '>=14.15.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@webpack-cli/generators': '*'
    +      webpack: 5.x.x
    +      webpack-bundle-analyzer: '*'
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      '@webpack-cli/generators':
    +        optional: true
    +      webpack-bundle-analyzer:
    +        optional: true
    +      webpack-dev-server:
    +        optional: true
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
    @@ -20655,7 +17223,11 @@ snapshots:
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
           webpack-merge: 5.10.0
     
    -  webpack-dev-middleware@5.3.4(webpack@5.91.0):
    +  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
    +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
         dependencies:
           colorette: 2.0.20
           memfs: 3.5.3
    @@ -20663,8 +17235,16 @@ snapshots:
           range-parser: 1.2.1
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  webpack-dev-middleware@7.1.1(webpack@5.91.0):
    +  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
    +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
         dependencies:
           colorette: 2.0.20
           memfs: 4.8.0
    @@ -20674,7 +17254,18 @@ snapshots:
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  webpack-dev-server@4.15.2(webpack@5.91.0):
    +  /webpack-dev-server@4.15.2(webpack@5.91.0):
    +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    +    engines: {node: '>= 12.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^4.37.0 || ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -20712,8 +17303,20 @@ snapshots:
           - debug
           - supports-color
           - utf-8-validate
    +    dev: false
     
    -  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    +  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    +    engines: {node: '>= 18.12.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -20753,15 +17356,27 @@ snapshots:
           - supports-color
           - utf-8-validate
     
    -  webpack-merge@5.10.0:
    +  /webpack-merge@5.10.0:
    +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    +    engines: {node: '>=10.0.0'}
         dependencies:
           clone-deep: 4.0.1
           flat: 5.0.2
           wildcard: 2.0.1
     
    -  webpack-sources@3.2.3: {}
    +  /webpack-sources@3.2.3:
    +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    +    engines: {node: '>=10.13.0'}
     
    -  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    +  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack-cli:
    +        optional: true
         dependencies:
           '@types/eslint-scope': 3.7.7
           '@types/estree': 1.0.5
    @@ -20793,47 +17408,70 @@ snapshots:
           - esbuild
           - uglify-js
     
    -  webpackbar@5.0.2(webpack@5.91.0):
    +  /webpackbar@5.0.2(webpack@5.91.0):
    +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      webpack: 3 || 4 || 5
         dependencies:
           chalk: 4.1.2
           consola: 2.15.3
           pretty-time: 1.1.0
           std-env: 3.7.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    +    dev: false
     
    -  websocket-driver@0.7.4:
    +  /websocket-driver@0.7.4:
    +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    +    engines: {node: '>=0.8.0'}
         dependencies:
           http-parser-js: 0.5.8
           safe-buffer: 5.2.1
           websocket-extensions: 0.1.4
     
    -  websocket-extensions@0.1.4: {}
    +  /websocket-extensions@0.1.4:
    +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    +    engines: {node: '>=0.8.0'}
     
    -  whatwg-encoding@2.0.0:
    +  /whatwg-encoding@2.0.0:
    +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    +    engines: {node: '>=12'}
         dependencies:
           iconv-lite: 0.6.3
    +    dev: true
     
    -  whatwg-mimetype@3.0.0: {}
    +  /whatwg-mimetype@3.0.0:
    +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  whatwg-url@11.0.0:
    +  /whatwg-url@11.0.0:
    +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    +    engines: {node: '>=12'}
         dependencies:
           tr46: 3.0.0
           webidl-conversions: 7.0.0
    +    dev: true
     
    -  whatwg-url@5.0.0:
    +  /whatwg-url@5.0.0:
    +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
         dependencies:
           tr46: 0.0.3
           webidl-conversions: 3.0.1
     
    -  which-boxed-primitive@1.0.2:
    +  /which-boxed-primitive@1.0.2:
    +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
         dependencies:
           is-bigint: 1.0.4
           is-boolean-object: 1.1.2
           is-number-object: 1.0.7
           is-string: 1.0.7
           is-symbol: 1.0.4
    +    dev: true
     
    -  which-builtin-type@1.1.3:
    +  /which-builtin-type@1.1.3:
    +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           function.prototype.name: 1.1.6
           has-tostringtag: 1.0.2
    @@ -20847,60 +17485,90 @@ snapshots:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    +    dev: true
     
    -  which-collection@1.0.2:
    +  /which-collection@1.0.2:
    +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           is-map: 2.0.3
           is-set: 2.0.3
           is-weakmap: 2.0.2
           is-weakset: 2.0.3
    +    dev: true
     
    -  which-pm@2.0.0:
    +  /which-pm@2.0.0:
    +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    +    engines: {node: '>=8.15'}
         dependencies:
           load-yaml-file: 0.2.0
           path-exists: 4.0.0
     
    -  which-typed-array@1.1.15:
    +  /which-typed-array@1.1.15:
    +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    +    engines: {node: '>= 0.4'}
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-tostringtag: 1.0.2
    +    dev: true
     
    -  which@1.3.1:
    +  /which@1.3.1:
    +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
    +    dev: false
     
    -  which@2.0.2:
    +  /which@2.0.2:
    +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  which@3.0.1:
    +  /which@3.0.1:
    +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
         dependencies:
           isexe: 2.0.0
     
    -  wide-align@1.1.5:
    +  /wide-align@1.1.5:
    +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
         dependencies:
           string-width: 4.2.3
     
    -  widest-line@3.1.0:
    +  /widest-line@3.1.0:
    +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    +    engines: {node: '>=8'}
         dependencies:
           string-width: 4.2.3
    +    dev: true
     
    -  widest-line@4.0.1:
    +  /widest-line@4.0.1:
    +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    +    engines: {node: '>=12'}
         dependencies:
           string-width: 5.1.2
    +    dev: false
     
    -  wildcard@2.0.1: {}
    +  /wildcard@2.0.1:
    +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
     
    -  winston-transport@4.7.0:
    +  /winston-transport@4.7.0:
    +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           logform: 2.6.0
           readable-stream: 3.6.2
           triple-beam: 1.4.1
     
    -  winston@3.11.0:
    +  /winston@3.11.0:
    +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    +    engines: {node: '>= 12.0.0'}
         dependencies:
           '@colors/colors': 1.6.0
           '@dabh/diagnostics': 2.0.3
    @@ -20914,95 +17582,173 @@ snapshots:
           triple-beam: 1.4.1
           winston-transport: 4.7.0
     
    -  workerpool@6.2.1: {}
    +  /workerpool@6.2.1:
    +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    +    dev: true
     
    -  wrap-ansi@6.2.0:
    +  /wrap-ansi@6.2.0:
    +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    +    engines: {node: '>=8'}
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  wrap-ansi@7.0.0:
    +  /wrap-ansi@7.0.0:
    +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    +    engines: {node: '>=10'}
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  wrap-ansi@8.1.0:
    +  /wrap-ansi@8.1.0:
    +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    +    engines: {node: '>=12'}
         dependencies:
           ansi-styles: 6.2.1
           string-width: 5.1.2
           strip-ansi: 7.1.0
     
    -  wrappy@1.0.2: {}
    +  /wrappy@1.0.2:
    +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
     
    -  write-file-atomic@3.0.3:
    +  /write-file-atomic@3.0.3:
    +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
         dependencies:
           imurmurhash: 0.1.4
           is-typedarray: 1.0.0
           signal-exit: 3.0.7
           typedarray-to-buffer: 3.1.5
     
    -  write-file-atomic@4.0.2:
    +  /write-file-atomic@4.0.2:
    +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 3.0.7
     
    -  write-file-atomic@5.0.1:
    +  /write-file-atomic@5.0.1:
    +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 4.1.0
     
    -  write-json-file@5.0.0:
    +  /write-json-file@5.0.0:
    +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
         dependencies:
           detect-indent: 7.0.1
           is-plain-obj: 4.1.0
           sort-keys: 5.0.0
           write-file-atomic: 3.0.3
    +    dev: true
     
    -  write-yaml-file@5.0.0:
    +  /write-yaml-file@5.0.0:
    +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    +    engines: {node: '>=16.14'}
         dependencies:
           js-yaml: 4.1.0
           write-file-atomic: 5.0.1
    +    dev: true
     
    -  ws@7.5.9: {}
    +  /ws@7.5.9:
    +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    +    engines: {node: '>=8.3.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: ^5.0.2
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +    dev: false
     
    -  ws@8.16.0: {}
    +  /ws@8.16.0:
    +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: '>=5.0.2'
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
     
    -  xdg-basedir@5.1.0: {}
    +  /xdg-basedir@5.1.0:
    +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    +    engines: {node: '>=12'}
    +    dev: false
     
    -  xml-js@1.6.11:
    +  /xml-js@1.6.11:
    +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    +    hasBin: true
         dependencies:
           sax: 1.3.0
    +    dev: false
     
    -  xml-name-validator@4.0.0: {}
    +  /xml-name-validator@4.0.0:
    +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  xmlchars@2.2.0: {}
    +  /xmlchars@2.2.0:
    +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    +    dev: true
     
    -  y18n@5.0.8: {}
    +  /y18n@5.0.8:
    +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yallist@3.1.1: {}
    +  /yallist@3.1.1:
    +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
     
    -  yallist@4.0.0: {}
    +  /yallist@4.0.0:
    +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
     
    -  yaml@1.10.2: {}
    +  /yaml@1.10.2:
    +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    +    engines: {node: '>= 6'}
    +    dev: false
     
    -  yaml@2.4.1: {}
    +  /yaml@2.4.1:
    +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    +    engines: {node: '>= 14'}
    +    hasBin: true
    +    dev: true
     
    -  yargs-parser@20.2.4: {}
    +  /yargs-parser@20.2.4:
    +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yargs-parser@20.2.9: {}
    +  /yargs-parser@20.2.9:
    +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    +    engines: {node: '>=10'}
    +    dev: true
     
    -  yargs-parser@21.1.1: {}
    +  /yargs-parser@21.1.1:
    +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    +    engines: {node: '>=12'}
    +    dev: true
     
    -  yargs-unparser@2.0.0:
    +  /yargs-unparser@2.0.0:
    +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    +    engines: {node: '>=10'}
         dependencies:
           camelcase: 6.3.0
           decamelize: 4.0.0
           flat: 5.0.2
           is-plain-obj: 2.1.0
    +    dev: true
     
    -  yargs@16.2.0:
    +  /yargs@16.2.0:
    +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    +    engines: {node: '>=10'}
         dependencies:
           cliui: 7.0.4
           escalade: 3.1.2
    @@ -21011,8 +17757,11 @@ snapshots:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 20.2.9
    +    dev: true
     
    -  yargs@17.7.2:
    +  /yargs@17.7.2:
    +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    +    engines: {node: '>=12'}
         dependencies:
           cliui: 8.0.1
           escalade: 3.1.2
    @@ -21021,8 +17770,12 @@ snapshots:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 21.1.1
    +    dev: true
     
    -  yeoman-environment@3.19.3:
    +  /yeoman-environment@3.19.3:
    +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    +    engines: {node: '>=12.10.0'}
    +    hasBin: true
         dependencies:
           '@npmcli/arborist': 4.3.1
           are-we-there-yet: 2.0.0
    @@ -21065,7 +17818,14 @@ snapshots:
           - bluebird
           - supports-color
     
    -  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    +  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      yeoman-environment: ^3.2.0
    +    peerDependenciesMeta:
    +      yeoman-environment:
    +        optional: true
         dependencies:
           chalk: 4.1.2
           dargs: 7.0.0
    @@ -21089,12 +17849,23 @@ snapshots:
           - mem-fs
           - supports-color
     
    -  yn@3.1.1: {}
    +  /yn@3.1.1:
    +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    +    engines: {node: '>=6'}
    +    dev: true
     
    -  yocto-queue@0.1.0: {}
    +  /yocto-queue@0.1.0:
    +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    +    engines: {node: '>=10'}
     
    -  yocto-queue@1.0.0: {}
    +  /yocto-queue@1.0.0:
    +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    +    engines: {node: '>=12.20'}
    +    dev: false
     
    -  zod@3.22.4: {}
    +  /zod@3.22.4:
    +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    +    dev: false
     
    -  zwitch@2.0.4: {}
    +  /zwitch@2.0.4:
    +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    
    From 2b4c1e8399c0d228a2bbd05a3d97b75778df63a3 Mon Sep 17 00:00:00 2001
    From: "pre-commit-ci-lite[bot]"
     <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    Date: Thu, 16 May 2024 16:58:24 +0000
    Subject: [PATCH 350/504] [pre-commit.ci lite] apply automatic fixes
    
    ---
     pnpm-lock.yaml | 18938 +++++++++++++++++++++++++++--------------------
     1 file changed, 11092 insertions(+), 7846 deletions(-)
    
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 70d6a387e0..c6a4871c0a 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -1,4 +1,4 @@
    -lockfileVersion: '6.0'
    +lockfileVersion: '9.0'
     
     settings:
       autoInstallPeers: true
    @@ -775,12 +775,8917 @@ importers:
     
     packages:
     
    -  /@aashutoshrathi/word-wrap@1.2.6:
    +  '@aashutoshrathi/word-wrap@1.2.6':
         resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
         engines: {node: '>=0.10.0'}
     
    -  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    +  '@algolia/autocomplete-core@1.9.3':
         resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
    +
    +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
    +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    +    peerDependencies:
    +      search-insights: '>= 1 < 3'
    +
    +  '@algolia/autocomplete-preset-algolia@1.9.3':
    +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
    +
    +  '@algolia/autocomplete-shared@1.9.3':
    +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    +    peerDependencies:
    +      '@algolia/client-search': '>= 4.9.1 < 6'
    +      algoliasearch: '>= 4.9.1 < 6'
    +
    +  '@algolia/cache-browser-local-storage@4.22.1':
    +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    +
    +  '@algolia/cache-common@4.22.1':
    +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    +
    +  '@algolia/cache-in-memory@4.22.1':
    +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    +
    +  '@algolia/client-account@4.22.1':
    +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    +
    +  '@algolia/client-analytics@4.22.1':
    +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    +
    +  '@algolia/client-common@4.22.1':
    +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    +
    +  '@algolia/client-personalization@4.22.1':
    +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    +
    +  '@algolia/client-search@4.22.1':
    +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    +
    +  '@algolia/events@4.0.1':
    +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    +
    +  '@algolia/logger-common@4.22.1':
    +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    +
    +  '@algolia/logger-console@4.22.1':
    +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    +
    +  '@algolia/requester-browser-xhr@4.22.1':
    +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    +
    +  '@algolia/requester-common@4.22.1':
    +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    +
    +  '@algolia/requester-node-http@4.22.1':
    +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    +
    +  '@algolia/transporter@4.22.1':
    +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    +
    +  '@alloc/quick-lru@5.2.0':
    +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    +    engines: {node: '>=10'}
    +
    +  '@ampproject/remapping@2.3.0':
    +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@babel/code-frame@7.24.2':
    +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/compat-data@7.24.1':
    +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/core@7.24.3':
    +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/generator@7.24.1':
    +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-annotate-as-pure@7.22.5':
    +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
    +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-compilation-targets@7.23.6':
    +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-create-class-features-plugin@7.24.1':
    +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-create-regexp-features-plugin@7.22.15':
    +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-define-polyfill-provider@0.6.1':
    +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  '@babel/helper-environment-visitor@7.22.20':
    +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-function-name@7.23.0':
    +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-hoist-variables@7.22.5':
    +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-member-expression-to-functions@7.23.0':
    +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-module-imports@7.24.3':
    +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-module-transforms@7.23.3':
    +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-optimise-call-expression@7.22.5':
    +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-plugin-utils@7.24.0':
    +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-remap-async-to-generator@7.22.20':
    +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-replace-supers@7.24.1':
    +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/helper-simple-access@7.22.5':
    +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
    +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-split-export-declaration@7.22.6':
    +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-string-parser@7.24.1':
    +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-validator-identifier@7.22.20':
    +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-validator-option@7.23.5':
    +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helper-wrap-function@7.22.20':
    +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/helpers@7.24.1':
    +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/highlight@7.24.2':
    +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/parser@7.24.1':
    +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    +    engines: {node: '>=6.0.0'}
    +    hasBin: true
    +
    +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
    +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
    +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.13.0
    +
    +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
    +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
    +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-async-generators@7.8.4':
    +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-bigint@7.8.3':
    +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-class-properties@7.12.13':
    +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-class-static-block@7.14.5':
    +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-dynamic-import@7.8.3':
    +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-export-namespace-from@7.8.3':
    +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-assertions@7.24.1':
    +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-attributes@7.24.1':
    +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-import-meta@7.10.4':
    +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-json-strings@7.8.3':
    +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-jsx@7.24.1':
    +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
    +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
    +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-numeric-separator@7.10.4':
    +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-object-rest-spread@7.8.3':
    +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
    +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-optional-chaining@7.8.3':
    +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-private-property-in-object@7.14.5':
    +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-top-level-await@7.14.5':
    +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-typescript@7.24.1':
    +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
    +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-transform-arrow-functions@7.24.1':
    +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-async-generator-functions@7.24.3':
    +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-async-to-generator@7.24.1':
    +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-block-scoped-functions@7.24.1':
    +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-block-scoping@7.24.1':
    +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-class-properties@7.24.1':
    +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-class-static-block@7.24.1':
    +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +
    +  '@babel/plugin-transform-classes@7.24.1':
    +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-computed-properties@7.24.1':
    +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-destructuring@7.24.1':
    +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-dotall-regex@7.24.1':
    +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-duplicate-keys@7.24.1':
    +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-dynamic-import@7.24.1':
    +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-exponentiation-operator@7.24.1':
    +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-export-namespace-from@7.24.1':
    +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-for-of@7.24.1':
    +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-function-name@7.24.1':
    +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-json-strings@7.24.1':
    +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-literals@7.24.1':
    +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
    +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-member-expression-literals@7.24.1':
    +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-amd@7.24.1':
    +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-commonjs@7.24.1':
    +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-systemjs@7.24.1':
    +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-modules-umd@7.24.1':
    +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
    +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/plugin-transform-new-target@7.24.1':
    +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
    +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-numeric-separator@7.24.1':
    +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-object-rest-spread@7.24.1':
    +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-object-super@7.24.1':
    +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-optional-catch-binding@7.24.1':
    +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-optional-chaining@7.24.1':
    +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-parameters@7.24.1':
    +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-private-methods@7.24.1':
    +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-private-property-in-object@7.24.1':
    +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-property-literals@7.24.1':
    +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-constant-elements@7.24.1':
    +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-display-name@7.24.1':
    +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-jsx-development@7.22.5':
    +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-jsx@7.23.4':
    +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-react-pure-annotations@7.24.1':
    +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-regenerator@7.24.1':
    +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-reserved-words@7.24.1':
    +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-runtime@7.24.3':
    +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-shorthand-properties@7.24.1':
    +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-spread@7.24.1':
    +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-sticky-regex@7.24.1':
    +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-template-literals@7.24.1':
    +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-typeof-symbol@7.24.1':
    +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-typescript@7.24.1':
    +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-escapes@7.24.1':
    +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-property-regex@7.24.1':
    +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-regex@7.24.1':
    +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
    +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  '@babel/preset-env@7.24.3':
    +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/preset-modules@0.1.6-no-external-plugins':
    +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    +
    +  '@babel/preset-react@7.24.1':
    +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/preset-typescript@7.24.1':
    +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@babel/regjsgen@0.8.0':
    +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    +
    +  '@babel/runtime-corejs3@7.24.1':
    +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/runtime@7.24.1':
    +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/template@7.24.0':
    +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/traverse@7.24.1':
    +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@babel/types@7.24.0':
    +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    +    engines: {node: '>=6.9.0'}
    +
    +  '@bcoe/v8-coverage@0.2.3':
    +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    +
    +  '@colors/colors@1.5.0':
    +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    +    engines: {node: '>=0.1.90'}
    +
    +  '@colors/colors@1.6.0':
    +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    +    engines: {node: '>=0.1.90'}
    +
    +  '@cspotcode/source-map-support@0.8.1':
    +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    +    engines: {node: '>=12'}
    +
    +  '@dabh/diagnostics@2.0.3':
    +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    +
    +  '@discoveryjs/json-ext@0.5.7':
    +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    +    engines: {node: '>=10.0.0'}
    +
    +  '@docsearch/css@3.6.0':
    +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    +
    +  '@docsearch/react@3.6.0':
    +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    +    peerDependencies:
    +      '@types/react': '>= 16.8.0 < 19.0.0'
    +      react: '>= 16.8.0 < 19.0.0 || 18'
    +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    +      search-insights: '>= 1 < 3'
    +    peerDependenciesMeta:
    +      '@types/react':
    +        optional: true
    +      react:
    +        optional: true
    +      react-dom:
    +        optional: true
    +      search-insights:
    +        optional: true
    +
    +  '@docusaurus/core@3.1.1':
    +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    +    engines: {node: '>=18.0'}
    +    hasBin: true
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/cssnano-preset@3.1.1':
    +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/logger@3.1.1':
    +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/mdx-loader@3.1.1':
    +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/module-type-aliases@3.1.1':
    +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  '@docusaurus/plugin-content-blog@3.1.1':
    +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-content-docs@3.1.1':
    +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-content-pages@3.1.1':
    +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-debug@3.1.1':
    +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-analytics@3.1.1':
    +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-gtag@3.1.1':
    +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-google-tag-manager@3.1.1':
    +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/plugin-sitemap@3.1.1':
    +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/preset-classic@3.1.1':
    +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/react-loadable@5.5.2':
    +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    +    peerDependencies:
    +      react: '*'
    +
    +  '@docusaurus/theme-classic@3.1.1':
    +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-common@3.1.1':
    +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-search-algolia@3.1.1':
    +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/theme-translations@3.1.1':
    +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/types@3.1.1':
    +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@docusaurus/utils-common@3.1.1':
    +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
    +
    +  '@docusaurus/utils-validation@3.1.1':
    +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    +    engines: {node: '>=18.0'}
    +
    +  '@docusaurus/utils@3.1.1':
    +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    +    engines: {node: '>=18.0'}
    +    peerDependencies:
    +      '@docusaurus/types': '*'
    +    peerDependenciesMeta:
    +      '@docusaurus/types':
    +        optional: true
    +
    +  '@effect/schema@0.56.1':
    +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    +    peerDependencies:
    +      effect: 2.0.0-next.62
    +      fast-check: ^3.13.2
    +
    +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
    +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      html-webpack-plugin: '>=5'
    +      webpack: '>=5'
    +
    +  '@esbuild/aix-ppc64@0.20.2':
    +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [aix]
    +
    +  '@esbuild/android-arm64@0.20.2':
    +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +
    +  '@esbuild/android-arm@0.20.2':
    +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [android]
    +
    +  '@esbuild/android-x64@0.20.2':
    +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +
    +  '@esbuild/darwin-arm64@0.20.2':
    +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +
    +  '@esbuild/darwin-x64@0.20.2':
    +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +
    +  '@esbuild/freebsd-arm64@0.20.2':
    +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +
    +  '@esbuild/freebsd-x64@0.20.2':
    +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +
    +  '@esbuild/linux-arm64@0.20.2':
    +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@esbuild/linux-arm@0.20.2':
    +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +
    +  '@esbuild/linux-ia32@0.20.2':
    +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +
    +  '@esbuild/linux-loong64@0.20.2':
    +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +
    +  '@esbuild/linux-mips64el@0.20.2':
    +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +
    +  '@esbuild/linux-ppc64@0.20.2':
    +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +
    +  '@esbuild/linux-riscv64@0.20.2':
    +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +
    +  '@esbuild/linux-s390x@0.20.2':
    +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +
    +  '@esbuild/linux-x64@0.20.2':
    +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@esbuild/netbsd-x64@0.20.2':
    +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +
    +  '@esbuild/openbsd-x64@0.20.2':
    +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +
    +  '@esbuild/sunos-x64@0.20.2':
    +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +
    +  '@esbuild/win32-arm64@0.20.2':
    +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  '@esbuild/win32-ia32@0.20.2':
    +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +
    +  '@esbuild/win32-x64@0.20.2':
    +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  '@eslint-community/eslint-utils@4.4.0':
    +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    +
    +  '@eslint-community/regexpp@4.10.0':
    +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    +
    +  '@eslint/eslintrc@2.1.4':
    +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  '@eslint/js@8.57.0':
    +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  '@fortawesome/fontawesome-common-types@6.5.1':
    +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/fontawesome-svg-core@6.5.1':
    +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/free-solid-svg-icons@6.5.1':
    +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    +    engines: {node: '>=6'}
    +
    +  '@fortawesome/react-fontawesome@0.2.0':
    +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    +    peerDependencies:
    +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    +      react: '>=16.3 || 18'
    +
    +  '@gar/promisify@1.1.3':
    +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    +
    +  '@gwhitney/detect-indent@7.0.1':
    +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    +    engines: {node: '>=12.20'}
    +
    +  '@hapi/hoek@9.3.0':
    +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    +
    +  '@hapi/topo@5.1.0':
    +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    +
    +  '@humanwhocodes/config-array@0.11.14':
    +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    +    engines: {node: '>=10.10.0'}
    +
    +  '@humanwhocodes/module-importer@1.0.1':
    +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    +    engines: {node: '>=12.22'}
    +
    +  '@humanwhocodes/object-schema@2.0.2':
    +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    +
    +  '@isaacs/cliui@8.0.2':
    +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    +    engines: {node: '>=12'}
    +
    +  '@isaacs/string-locale-compare@1.1.0':
    +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    +
    +  '@istanbuljs/load-nyc-config@1.1.0':
    +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    +    engines: {node: '>=8'}
    +
    +  '@istanbuljs/schema@0.1.3':
    +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    +    engines: {node: '>=8'}
    +
    +  '@jest/console@29.7.0':
    +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/core@29.7.0':
    +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  '@jest/environment@29.7.0':
    +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/expect-utils@29.7.0':
    +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/expect@29.7.0':
    +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/fake-timers@29.7.0':
    +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/globals@29.7.0':
    +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/reporters@29.7.0':
    +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  '@jest/schemas@29.6.3':
    +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/source-map@29.6.3':
    +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/test-result@29.7.0':
    +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/test-sequencer@29.7.0':
    +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/transform@29.7.0':
    +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jest/types@29.6.3':
    +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  '@jridgewell/gen-mapping@0.3.5':
    +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/resolve-uri@3.1.2':
    +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/set-array@1.2.1':
    +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    +    engines: {node: '>=6.0.0'}
    +
    +  '@jridgewell/source-map@0.3.6':
    +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    +
    +  '@jridgewell/sourcemap-codec@1.4.15':
    +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    +
    +  '@jridgewell/trace-mapping@0.3.25':
    +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +
    +  '@jridgewell/trace-mapping@0.3.9':
    +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    +
    +  '@leichtgewicht/ip-codec@2.0.4':
    +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    +
    +  '@mdx-js/loader@3.0.1':
    +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    +    peerDependencies:
    +      webpack: '>=5'
    +
    +  '@mdx-js/mdx@3.0.1':
    +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    +
    +  '@mdx-js/react@3.0.1':
    +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    +    peerDependencies:
    +      '@types/react': '>=16'
    +      react: '>=16 || 18'
    +
    +  '@msgpack/msgpack@2.8.0':
    +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    +    engines: {node: '>= 10'}
    +
    +  '@next/env@14.1.4':
    +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    +
    +  '@next/eslint-plugin-next@14.1.4':
    +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    +
    +  '@next/mdx@14.1.4':
    +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    +    peerDependencies:
    +      '@mdx-js/loader': '>=0.15.0'
    +      '@mdx-js/react': '>=0.15.0'
    +    peerDependenciesMeta:
    +      '@mdx-js/loader':
    +        optional: true
    +      '@mdx-js/react':
    +        optional: true
    +
    +  '@next/swc-darwin-arm64@14.1.4':
    +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [darwin]
    +
    +  '@next/swc-darwin-x64@14.1.4':
    +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [darwin]
    +
    +  '@next/swc-linux-arm64-gnu@14.1.4':
    +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@next/swc-linux-arm64-musl@14.1.4':
    +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +
    +  '@next/swc-linux-x64-gnu@14.1.4':
    +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@next/swc-linux-x64-musl@14.1.4':
    +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +
    +  '@next/swc-win32-arm64-msvc@14.1.4':
    +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  '@next/swc-win32-ia32-msvc@14.1.4':
    +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    +    engines: {node: '>= 10'}
    +    cpu: [ia32]
    +    os: [win32]
    +
    +  '@next/swc-win32-x64-msvc@14.1.4':
    +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  '@nodelib/fs.scandir@2.1.5':
    +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    +    engines: {node: '>= 8'}
    +
    +  '@nodelib/fs.stat@2.0.5':
    +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    +    engines: {node: '>= 8'}
    +
    +  '@nodelib/fs.walk@1.2.8':
    +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    +    engines: {node: '>= 8'}
    +
    +  '@npmcli/arborist@4.3.1':
    +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
    +
    +  '@npmcli/fs@1.1.1':
    +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    +
    +  '@npmcli/fs@2.1.2':
    +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  '@npmcli/fs@3.1.0':
    +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/git@2.1.0':
    +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    +
    +  '@npmcli/git@4.1.0':
    +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/installed-package-contents@1.0.7':
    +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    +    engines: {node: '>= 10'}
    +    hasBin: true
    +
    +  '@npmcli/installed-package-contents@2.0.2':
    +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  '@npmcli/map-workspaces@2.0.4':
    +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  '@npmcli/metavuln-calculator@2.0.0':
    +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +
    +  '@npmcli/move-file@1.1.2':
    +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    +    engines: {node: '>=10'}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  '@npmcli/move-file@2.0.1':
    +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  '@npmcli/name-from-folder@1.0.1':
    +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    +
    +  '@npmcli/node-gyp@1.0.3':
    +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    +
    +  '@npmcli/node-gyp@3.0.0':
    +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/package-json@1.0.1':
    +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    +
    +  '@npmcli/promise-spawn@1.3.2':
    +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    +
    +  '@npmcli/promise-spawn@6.0.2':
    +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@npmcli/run-script@2.0.0':
    +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    +
    +  '@npmcli/run-script@6.0.2':
    +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@octokit/auth-token@2.5.0':
    +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    +
    +  '@octokit/core@3.6.0':
    +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    +
    +  '@octokit/endpoint@6.0.12':
    +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    +
    +  '@octokit/graphql@4.8.0':
    +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    +
    +  '@octokit/openapi-types@12.11.0':
    +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    +
    +  '@octokit/plugin-paginate-rest@2.21.3':
    +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    +    peerDependencies:
    +      '@octokit/core': '>=2'
    +
    +  '@octokit/plugin-request-log@1.0.4':
    +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
    +
    +  '@octokit/plugin-rest-endpoint-methods@5.16.2':
    +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    +    peerDependencies:
    +      '@octokit/core': '>=3'
    +
    +  '@octokit/request-error@2.1.0':
    +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    +
    +  '@octokit/request@5.6.3':
    +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    +
    +  '@octokit/rest@18.12.0':
    +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    +
    +  '@octokit/types@6.41.0':
    +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    +
    +  '@pkgjs/parseargs@0.11.0':
    +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    +    engines: {node: '>=14'}
    +
    +  '@pnpm/cli-meta@5.0.1':
    +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/cli-utils@2.0.9':
    +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/config.env-replace@1.1.0':
    +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/config@18.4.0':
    +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@6.2.0':
    +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    +    engines: {node: '>=14.6'}
    +
    +  '@pnpm/constants@7.1.0':
    +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@7.1.1':
    +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/constants@8.0.0':
    +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/core-loggers@10.0.0':
    +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/core-loggers@9.0.1':
    +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/crypto.base32-hash@3.0.0':
    +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/dedupe.issues-renderer@1.0.0':
    +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/dedupe.types@1.0.0':
    +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/default-reporter@12.2.3':
    +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/dependency-path@3.0.0':
    +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/error@4.0.1':
    +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    +    engines: {node: '>=14.6'}
    +
    +  '@pnpm/error@5.0.1':
    +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/error@5.0.3':
    +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/error@6.0.0':
    +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/fetch@8.0.0':
    +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/fetcher-base@14.0.1':
    +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/fetching-types@6.0.0':
    +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/find-workspace-dir@6.0.3':
    +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/find-workspace-packages@6.0.9':
    +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/fs.find-packages@2.0.1':
    +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/git-resolver@9.0.1':
    +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/git-utils@1.0.0':
    +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/git-utils@2.0.0':
    +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/graceful-fs@3.0.0':
    +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/hooks.types@1.0.1':
    +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/hosted-git-info@1.0.0':
    +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    +    engines: {node: '>=10'}
    +
    +  '@pnpm/lockfile-file@9.0.2':
    +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    +    engines: {node: '>=18.12'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/lockfile-types@5.1.0':
    +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/lockfile-types@6.0.0':
    +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/lockfile-utils@10.0.0':
    +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/logger@5.0.0':
    +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    +    engines: {node: '>=12.17'}
    +
    +  '@pnpm/manifest-utils@5.0.1':
    +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/matcher@5.0.0':
    +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/merge-lockfile-changes@6.0.0':
    +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/meta-updater@1.0.0':
    +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    +    engines: {node: '>=10.12'}
    +    hasBin: true
    +
    +  '@pnpm/network.agent@1.0.1':
    +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.ca-file@1.0.2':
    +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.config@1.0.1':
    +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/network.proxy-agent@1.0.1':
    +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/node-fetch@1.0.0':
    +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    +    engines: {node: ^10.17 || >=12.3}
    +
    +  '@pnpm/npm-conf@2.2.0':
    +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    +    engines: {node: '>=12'}
    +
    +  '@pnpm/npm-conf@2.2.2':
    +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    +    engines: {node: '>=12'}
    +
    +  '@pnpm/package-is-installable@8.0.2':
    +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/pick-fetcher@3.0.0':
    +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/pnpmfile@5.0.7':
    +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    +    engines: {node: '>=16.14'}
    +    peerDependencies:
    +      '@pnpm/logger': ^5.0.0
    +
    +  '@pnpm/ramda@0.28.1':
    +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    +
    +  '@pnpm/read-project-manifest@5.0.1':
    +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/render-peer-issues@4.0.1':
    +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/resolver-base@10.0.1':
    +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/resolver-base@12.0.0':
    +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/store-controller-types@15.0.1':
    +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/text.comments-parser@2.0.0':
    +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/types@10.0.0':
    +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/types@9.1.0':
    +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/types@9.4.2':
    +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    +    engines: {node: '>=16.14'}
    +
    +  '@pnpm/util.lex-comparator@1.0.0':
    +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    +    engines: {node: '>=12.22.0'}
    +
    +  '@pnpm/util.lex-comparator@3.0.0':
    +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    +    engines: {node: '>=18.12'}
    +
    +  '@pnpm/write-project-manifest@5.0.1':
    +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    +    engines: {node: '>=16.14'}
    +
    +  '@polka/url@1.0.0-next.25':
    +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    +
    +  '@rushstack/eslint-patch@1.8.0':
    +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    +
    +  '@sideway/address@4.1.5':
    +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    +
    +  '@sideway/formula@3.0.1':
    +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    +
    +  '@sideway/pinpoint@2.0.0':
    +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    +
    +  '@sigstore/bundle@1.1.0':
    +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/protobuf-specs@0.2.1':
    +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/sign@1.0.0':
    +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sigstore/tuf@1.0.3':
    +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@sinclair/typebox@0.27.8':
    +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    +
    +  '@sindresorhus/is@4.6.0':
    +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    +    engines: {node: '>=10'}
    +
    +  '@sindresorhus/is@5.6.0':
    +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    +    engines: {node: '>=14.16'}
    +
    +  '@sinonjs/commons@2.0.0':
    +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    +
    +  '@sinonjs/commons@3.0.1':
    +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    +
    +  '@sinonjs/fake-timers@10.3.0':
    +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    +
    +  '@sinonjs/fake-timers@11.2.2':
    +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    +
    +  '@sinonjs/samsam@8.0.0':
    +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    +
    +  '@sinonjs/text-encoding@0.7.2':
    +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    +
    +  '@slorber/remark-comment@1.0.0':
    +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    +
    +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
    +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
    +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
    +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
    +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
    +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
    +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
    +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
    +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
    +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
    +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
    +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
    +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
    +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-svg-component@6.5.1':
    +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-transform-svg-component@8.0.0':
    +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-preset@6.5.1':
    +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-preset@8.1.0':
    +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/core@6.5.1':
    +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/core@8.1.0':
    +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/hast-util-to-babel-ast@6.5.1':
    +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/hast-util-to-babel-ast@8.0.0':
    +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    +    engines: {node: '>=14'}
    +
    +  '@svgr/plugin-jsx@6.5.1':
    +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': ^6.0.0
    +
    +  '@svgr/plugin-jsx@8.1.0':
    +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/plugin-svgo@6.5.1':
    +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/plugin-svgo@8.1.0':
    +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      '@svgr/core': '*'
    +
    +  '@svgr/webpack@6.5.1':
    +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    +    engines: {node: '>=10'}
    +
    +  '@svgr/webpack@8.1.0':
    +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    +    engines: {node: '>=14'}
    +
    +  '@swc/helpers@0.5.2':
    +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    +
    +  '@szmarczak/http-timer@5.0.1':
    +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    +    engines: {node: '>=14.16'}
    +
    +  '@testing-library/dom@9.3.4':
    +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    +    engines: {node: '>=14'}
    +
    +  '@testing-library/react@14.2.2':
    +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^18.0.0 || 18
    +      react-dom: ^18.0.0 || 18
    +
    +  '@tootallnate/once@1.1.2':
    +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    +    engines: {node: '>= 6'}
    +
    +  '@tootallnate/once@2.0.0':
    +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    +    engines: {node: '>= 10'}
    +
    +  '@trysound/sax@0.2.0':
    +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    +    engines: {node: '>=10.13.0'}
    +
    +  '@tsconfig/docusaurus@2.0.2':
    +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    +
    +  '@tsconfig/node10@1.0.10':
    +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    +
    +  '@tsconfig/node12@1.0.11':
    +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    +
    +  '@tsconfig/node14@1.0.3':
    +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    +
    +  '@tsconfig/node16@1.0.4':
    +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    +
    +  '@tufjs/canonical-json@1.0.0':
    +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@tufjs/models@1.0.4':
    +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  '@types/acorn@4.0.6':
    +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    +
    +  '@types/aria-query@5.0.4':
    +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    +
    +  '@types/babel__core@7.20.5':
    +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    +
    +  '@types/babel__generator@7.6.8':
    +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    +
    +  '@types/babel__template@7.4.4':
    +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    +
    +  '@types/babel__traverse@7.20.5':
    +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    +
    +  '@types/body-parser@1.19.5':
    +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    +
    +  '@types/bonjour@3.5.13':
    +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    +
    +  '@types/chai@4.3.14':
    +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    +
    +  '@types/connect-history-api-fallback@1.5.4':
    +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    +
    +  '@types/connect@3.4.38':
    +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    +
    +  '@types/debug@4.1.12':
    +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    +
    +  '@types/eslint-scope@3.7.7':
    +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    +
    +  '@types/eslint@8.56.6':
    +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    +
    +  '@types/estree-jsx@1.0.5':
    +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    +
    +  '@types/estree@1.0.5':
    +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    +
    +  '@types/expect@1.20.4':
    +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    +
    +  '@types/express-serve-static-core@4.17.43':
    +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    +
    +  '@types/express@4.17.21':
    +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    +
    +  '@types/fs-extra@11.0.4':
    +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    +
    +  '@types/glob@8.1.0':
    +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    +
    +  '@types/graceful-fs@4.1.9':
    +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    +
    +  '@types/gtag.js@0.0.12':
    +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    +
    +  '@types/hast@3.0.4':
    +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    +
    +  '@types/history@4.7.11':
    +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    +
    +  '@types/html-minifier-terser@6.1.0':
    +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    +
    +  '@types/http-cache-semantics@4.0.4':
    +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    +
    +  '@types/http-errors@2.0.4':
    +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    +
    +  '@types/http-proxy@1.17.14':
    +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    +
    +  '@types/istanbul-lib-coverage@2.0.6':
    +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    +
    +  '@types/istanbul-lib-report@3.0.3':
    +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    +
    +  '@types/istanbul-reports@3.0.4':
    +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    +
    +  '@types/jest@29.5.12':
    +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    +
    +  '@types/js-cookie@2.2.7':
    +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    +
    +  '@types/js-yaml@4.0.9':
    +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    +
    +  '@types/jsdom@20.0.1':
    +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    +
    +  '@types/json-schema@7.0.15':
    +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    +
    +  '@types/json5@0.0.29':
    +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    +
    +  '@types/jsonfile@6.1.4':
    +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    +
    +  '@types/lodash@4.17.0':
    +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    +
    +  '@types/mdast@4.0.3':
    +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    +
    +  '@types/mdx-js__react@1.5.8':
    +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    +
    +  '@types/mdx@2.0.12':
    +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    +
    +  '@types/mime@1.3.5':
    +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    +
    +  '@types/mime@3.0.4':
    +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    +
    +  '@types/minimatch@3.0.5':
    +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    +
    +  '@types/minimatch@5.1.2':
    +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    +
    +  '@types/minimist@1.2.5':
    +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    +
    +  '@types/mocha@10.0.6':
    +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    +
    +  '@types/moo@0.5.9':
    +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    +
    +  '@types/ms@0.7.34':
    +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    +
    +  '@types/nearley@2.11.5':
    +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    +
    +  '@types/node-forge@1.3.11':
    +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    +
    +  '@types/node@15.14.9':
    +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    +
    +  '@types/node@17.0.45':
    +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    +
    +  '@types/node@18.18.2':
    +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    +
    +  '@types/normalize-package-data@2.4.4':
    +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    +
    +  '@types/normalize-path@3.0.2':
    +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    +
    +  '@types/parse-json@4.0.2':
    +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    +
    +  '@types/prismjs@1.26.3':
    +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    +
    +  '@types/prop-types@15.7.12':
    +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    +
    +  '@types/qs@6.9.14':
    +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    +
    +  '@types/range-parser@1.2.7':
    +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    +
    +  '@types/react-dom@18.2.22':
    +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    +
    +  '@types/react-helmet@6.1.11':
    +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    +
    +  '@types/react-router-config@5.0.11':
    +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    +
    +  '@types/react-router-dom@5.3.3':
    +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    +
    +  '@types/react-router@5.1.20':
    +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    +
    +  '@types/react@18.2.71':
    +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    +
    +  '@types/retry@0.12.0':
    +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    +
    +  '@types/retry@0.12.2':
    +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    +
    +  '@types/sax@1.2.7':
    +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    +
    +  '@types/sbd@1.0.5':
    +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    +
    +  '@types/scheduler@0.23.0':
    +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    +
    +  '@types/semver@7.5.8':
    +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    +
    +  '@types/send@0.17.4':
    +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    +
    +  '@types/serve-index@1.9.4':
    +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    +
    +  '@types/serve-static@1.15.5':
    +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    +
    +  '@types/sinon@17.0.3':
    +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    +
    +  '@types/sinonjs__fake-timers@8.1.5':
    +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    +
    +  '@types/sockjs@0.3.36':
    +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    +
    +  '@types/ssri@7.1.5':
    +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    +
    +  '@types/stack-utils@2.0.3':
    +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    +
    +  '@types/tail@2.2.3':
    +    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
    +
    +  '@types/tinycolor2@1.4.6':
    +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    +
    +  '@types/tough-cookie@4.0.5':
    +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    +
    +  '@types/triple-beam@1.3.5':
    +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    +
    +  '@types/unist@2.0.10':
    +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    +
    +  '@types/unist@3.0.2':
    +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    +
    +  '@types/uuid@9.0.8':
    +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    +
    +  '@types/vinyl@2.0.11':
    +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    +
    +  '@types/vscode@1.75.1':
    +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    +
    +  '@types/webpack@5.28.5':
    +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    +
    +  '@types/ws@8.5.10':
    +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    +
    +  '@types/yargs-parser@21.0.3':
    +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    +
    +  '@types/yargs@17.0.32':
    +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    +
    +  '@typescript-eslint/eslint-plugin@7.4.0':
    +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^7.0.0
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/parser@6.21.0':
    +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      eslint: ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/parser@7.4.0':
    +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/scope-manager@6.21.0':
    +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/scope-manager@7.4.0':
    +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@typescript-eslint/type-utils@7.4.0':
    +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/types@6.21.0':
    +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/types@7.4.0':
    +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@typescript-eslint/typescript-estree@6.21.0':
    +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/typescript-estree@7.4.0':
    +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  '@typescript-eslint/utils@7.4.0':
    +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +    peerDependencies:
    +      eslint: ^8.56.0
    +
    +  '@typescript-eslint/visitor-keys@6.21.0':
    +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    +    engines: {node: ^16.0.0 || >=18.0.0}
    +
    +  '@typescript-eslint/visitor-keys@7.4.0':
    +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    +    engines: {node: ^18.18.0 || >=20.0.0}
    +
    +  '@ungap/structured-clone@1.2.0':
    +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    +
    +  '@vscode/test-electron@2.3.9':
    +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    +    engines: {node: '>=16'}
    +
    +  '@webassemblyjs/ast@1.12.1':
    +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    +
    +  '@webassemblyjs/floating-point-hex-parser@1.11.6':
    +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    +
    +  '@webassemblyjs/helper-api-error@1.11.6':
    +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    +
    +  '@webassemblyjs/helper-buffer@1.12.1':
    +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    +
    +  '@webassemblyjs/helper-numbers@1.11.6':
    +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    +
    +  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
    +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    +
    +  '@webassemblyjs/helper-wasm-section@1.12.1':
    +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    +
    +  '@webassemblyjs/ieee754@1.11.6':
    +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    +
    +  '@webassemblyjs/leb128@1.11.6':
    +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    +
    +  '@webassemblyjs/utf8@1.11.6':
    +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    +
    +  '@webassemblyjs/wasm-edit@1.12.1':
    +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    +
    +  '@webassemblyjs/wasm-gen@1.12.1':
    +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    +
    +  '@webassemblyjs/wasm-opt@1.12.1':
    +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    +
    +  '@webassemblyjs/wasm-parser@1.12.1':
    +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    +
    +  '@webassemblyjs/wast-printer@1.12.1':
    +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    +
    +  '@webpack-cli/configtest@2.1.1':
    +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +
    +  '@webpack-cli/generators@3.0.7':
    +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      prettier: '*'
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +    peerDependenciesMeta:
    +      prettier:
    +        optional: true
    +
    +  '@webpack-cli/info@2.0.2':
    +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +
    +  '@webpack-cli/serve@2.0.5':
    +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    +    engines: {node: '>=14.15.0'}
    +    peerDependencies:
    +      webpack: 5.x.x
    +      webpack-cli: 5.x.x
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      webpack-dev-server:
    +        optional: true
    +
    +  '@xobotyi/scrollbar-width@1.9.5':
    +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    +
    +  '@xtuc/ieee754@1.2.0':
    +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    +
    +  '@xtuc/long@4.2.2':
    +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    +
    +  '@zkochan/js-yaml@0.0.7':
    +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    +    hasBin: true
    +
    +  '@zkochan/retry@0.2.0':
    +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    +    engines: {node: '>=10'}
    +
    +  '@zkochan/rimraf@2.1.3':
    +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    +    engines: {node: '>=12.10'}
    +
    +  '@zkochan/which@2.0.3':
    +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
    +
    +  abab@2.0.6:
    +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    +    deprecated: Use your platform's native atob() and btoa() methods instead
    +
    +  abbrev@1.1.1:
    +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    +
    +  abort-controller@3.0.0:
    +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    +    engines: {node: '>=6.5'}
    +
    +  accepts@1.3.8:
    +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    +    engines: {node: '>= 0.6'}
    +
    +  acorn-globals@7.0.1:
    +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    +
    +  acorn-import-assertions@1.9.0:
    +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    +    peerDependencies:
    +      acorn: ^8
    +
    +  acorn-jsx@5.3.2:
    +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    +    peerDependencies:
    +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    +
    +  acorn-walk@8.3.2:
    +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    +    engines: {node: '>=0.4.0'}
    +
    +  acorn@8.11.3:
    +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    +    engines: {node: '>=0.4.0'}
    +    hasBin: true
    +
    +  address@1.2.2:
    +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    +    engines: {node: '>= 10.0.0'}
    +
    +  agent-base@6.0.2:
    +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    +    engines: {node: '>= 6.0.0'}
    +
    +  agentkeepalive@4.2.1:
    +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  agentkeepalive@4.5.0:
    +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  aggregate-error@3.1.0:
    +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    +    engines: {node: '>=8'}
    +
    +  ajv-formats@2.1.1:
    +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    +    peerDependencies:
    +      ajv: ^8.0.0
    +    peerDependenciesMeta:
    +      ajv:
    +        optional: true
    +
    +  ajv-keywords@3.5.2:
    +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    +    peerDependencies:
    +      ajv: ^6.9.1
    +
    +  ajv-keywords@5.1.0:
    +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    +    peerDependencies:
    +      ajv: ^8.8.2
    +
    +  ajv@6.12.6:
    +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    +
    +  ajv@8.12.0:
    +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    +
    +  algoliasearch-helper@3.16.3:
    +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    +    peerDependencies:
    +      algoliasearch: '>= 3.1 < 6'
    +
    +  algoliasearch@4.22.1:
    +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    +
    +  ansi-align@3.0.1:
    +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    +
    +  ansi-colors@4.1.1:
    +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    +    engines: {node: '>=6'}
    +
    +  ansi-colors@4.1.3:
    +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    +    engines: {node: '>=6'}
    +
    +  ansi-diff@1.1.1:
    +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    +
    +  ansi-escapes@4.3.2:
    +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    +    engines: {node: '>=8'}
    +
    +  ansi-html-community@0.0.8:
    +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    +    engines: {'0': node >= 0.8.0}
    +    hasBin: true
    +
    +  ansi-regex@3.0.1:
    +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    +    engines: {node: '>=4'}
    +
    +  ansi-regex@5.0.1:
    +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    +    engines: {node: '>=8'}
    +
    +  ansi-regex@6.0.1:
    +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    +    engines: {node: '>=12'}
    +
    +  ansi-split@1.0.1:
    +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    +
    +  ansi-styles@3.2.1:
    +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    +    engines: {node: '>=4'}
    +
    +  ansi-styles@4.3.0:
    +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    +    engines: {node: '>=8'}
    +
    +  ansi-styles@5.2.0:
    +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    +    engines: {node: '>=10'}
    +
    +  ansi-styles@6.2.1:
    +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    +    engines: {node: '>=12'}
    +
    +  any-promise@1.3.0:
    +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    +
    +  anymatch@3.1.3:
    +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    +    engines: {node: '>= 8'}
    +
    +  aproba@2.0.0:
    +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    +
    +  archy@1.0.0:
    +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    +
    +  are-we-there-yet@2.0.0:
    +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    +    engines: {node: '>=10'}
    +
    +  are-we-there-yet@3.0.1:
    +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  arg@4.1.3:
    +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    +
    +  arg@5.0.2:
    +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +
    +  argparse@1.0.10:
    +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    +
    +  argparse@2.0.1:
    +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    +
    +  aria-query@5.1.3:
    +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    +
    +  aria-query@5.3.0:
    +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    +
    +  array-buffer-byte-length@1.0.1:
    +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    +    engines: {node: '>= 0.4'}
    +
    +  array-differ@3.0.0:
    +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    +    engines: {node: '>=8'}
    +
    +  array-flatten@1.1.1:
    +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    +
    +  array-includes@3.1.8:
    +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array-union@2.1.0:
    +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    +    engines: {node: '>=8'}
    +
    +  array.prototype.findlast@1.2.5:
    +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.findlastindex@1.2.5:
    +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.flat@1.3.2:
    +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.flatmap@1.3.2:
    +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  array.prototype.toreversed@1.1.2:
    +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    +
    +  array.prototype.tosorted@1.1.3:
    +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    +
    +  arraybuffer.prototype.slice@1.0.3:
    +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    +    engines: {node: '>= 0.4'}
    +
    +  arrify@1.0.1:
    +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  arrify@2.0.1:
    +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    +    engines: {node: '>=8'}
    +
    +  as-table@1.0.55:
    +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    +
    +  asap@2.0.6:
    +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    +
    +  assertion-error@2.0.1:
    +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    +    engines: {node: '>=12'}
    +
    +  ast-types-flow@0.0.8:
    +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    +
    +  astring@1.8.6:
    +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    +    hasBin: true
    +
    +  async@2.6.4:
    +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    +
    +  async@3.2.5:
    +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    +
    +  asynckit@0.4.0:
    +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    +
    +  at-least-node@1.0.0:
    +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  autoprefixer@10.4.19:
    +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    hasBin: true
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  available-typed-arrays@1.0.7:
    +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  axe-core@4.7.0:
    +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    +    engines: {node: '>=4'}
    +
    +  axobject-query@3.2.1:
    +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    +
    +  babel-jest@29.7.0:
    +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.8.0
    +
    +  babel-loader@9.1.3:
    +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.12.0
    +      webpack: '>=5'
    +
    +  babel-plugin-dynamic-import-node@2.3.3:
    +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    +
    +  babel-plugin-istanbul@6.1.1:
    +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    +    engines: {node: '>=8'}
    +
    +  babel-plugin-jest-hoist@29.6.3:
    +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  babel-plugin-polyfill-corejs2@0.4.10:
    +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-plugin-polyfill-corejs3@0.10.4:
    +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-plugin-polyfill-regenerator@0.6.1:
    +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    +    peerDependencies:
    +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +
    +  babel-preset-current-node-syntax@1.0.1:
    +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  babel-preset-jest@29.6.3:
    +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +
    +  bail@2.0.2:
    +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    +
    +  balanced-match@1.0.2:
    +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +
    +  base64-js@1.5.1:
    +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    +
    +  basic-auth@2.0.1:
    +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    +    engines: {node: '>= 0.8'}
    +
    +  batch@0.6.1:
    +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    +
    +  before-after-hook@2.2.3:
    +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    +
    +  better-path-resolve@1.0.0:
    +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    +    engines: {node: '>=4'}
    +
    +  big.js@5.2.2:
    +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    +
    +  bin-links@3.0.3:
    +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  binary-extensions@2.3.0:
    +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    +    engines: {node: '>=8'}
    +
    +  binaryextensions@4.19.0:
    +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    +    engines: {node: '>=0.8'}
    +
    +  bl@4.1.0:
    +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    +
    +  body-parser@1.20.2:
    +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +
    +  bole@5.0.11:
    +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    +
    +  bonjour-service@1.2.1:
    +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    +
    +  boolbase@1.0.0:
    +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    +
    +  boxen@5.1.2:
    +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    +    engines: {node: '>=10'}
    +
    +  boxen@6.2.1:
    +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  boxen@7.1.1:
    +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    +    engines: {node: '>=14.16'}
    +
    +  brace-expansion@1.1.11:
    +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    +
    +  brace-expansion@2.0.1:
    +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    +
    +  braces@3.0.2:
    +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    +    engines: {node: '>=8'}
    +
    +  browser-stdout@1.3.1:
    +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    +
    +  browserslist@4.23.0:
    +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    +    hasBin: true
    +
    +  bs-logger@0.2.6:
    +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    +    engines: {node: '>= 6'}
    +
    +  bser@2.1.1:
    +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    +
    +  buffer-from@1.1.2:
    +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    +
    +  buffer@5.7.1:
    +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    +
    +  buffer@6.0.3:
    +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    +
    +  builtin-modules@3.3.0:
    +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    +    engines: {node: '>=6'}
    +
    +  builtins@1.0.3:
    +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    +
    +  builtins@5.0.1:
    +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    +
    +  bundle-name@4.1.0:
    +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    +    engines: {node: '>=18'}
    +
    +  busboy@1.6.0:
    +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    +    engines: {node: '>=10.16.0'}
    +
    +  bytes@3.0.0:
    +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    +    engines: {node: '>= 0.8'}
    +
    +  bytes@3.1.2:
    +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    +    engines: {node: '>= 0.8'}
    +
    +  cacache@15.3.0:
    +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    +    engines: {node: '>= 10'}
    +
    +  cacache@16.1.3:
    +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  cacache@17.1.4:
    +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  cacheable-lookup@7.0.0:
    +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    +    engines: {node: '>=14.16'}
    +
    +  cacheable-request@10.2.14:
    +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    +    engines: {node: '>=14.16'}
    +
    +  call-bind@1.0.7:
    +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    +    engines: {node: '>= 0.4'}
    +
    +  callsites@3.1.0:
    +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    +    engines: {node: '>=6'}
    +
    +  camel-case@4.1.2:
    +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    +
    +  camelcase-css@2.0.1:
    +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    +    engines: {node: '>= 6'}
    +
    +  camelcase-keys@6.2.2:
    +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    +    engines: {node: '>=8'}
    +
    +  camelcase-keys@7.0.2:
    +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    +    engines: {node: '>=12'}
    +
    +  camelcase@5.3.1:
    +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    +    engines: {node: '>=6'}
    +
    +  camelcase@6.3.0:
    +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    +    engines: {node: '>=10'}
    +
    +  camelcase@7.0.1:
    +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    +    engines: {node: '>=14.16'}
    +
    +  can-write-to-dir@1.1.1:
    +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    +    engines: {node: '>=10.13'}
    +
    +  caniuse-api@3.0.0:
    +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    +
    +  caniuse-lite@1.0.30001600:
    +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    +
    +  ccount@2.0.1:
    +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    +
    +  chai@5.1.0:
    +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    +    engines: {node: '>=12'}
    +
    +  chalk@2.4.2:
    +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    +    engines: {node: '>=4'}
    +
    +  chalk@4.1.2:
    +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    +    engines: {node: '>=10'}
    +
    +  chalk@5.3.0:
    +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    +
    +  char-regex@1.0.2:
    +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    +    engines: {node: '>=10'}
    +
    +  character-entities-html4@2.1.0:
    +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    +
    +  character-entities-legacy@3.0.0:
    +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    +
    +  character-entities@2.0.2:
    +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    +
    +  character-reference-invalid@2.0.1:
    +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    +
    +  chardet@0.7.0:
    +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    +
    +  check-error@2.0.0:
    +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    +    engines: {node: '>= 16'}
    +
    +  cheerio-select@2.1.0:
    +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    +
    +  cheerio@1.0.0-rc.12:
    +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    +    engines: {node: '>= 6'}
    +
    +  chokidar@3.5.3:
    +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    +    engines: {node: '>= 8.10.0'}
    +
    +  chokidar@3.6.0:
    +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    +    engines: {node: '>= 8.10.0'}
    +
    +  chownr@2.0.0:
    +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    +    engines: {node: '>=10'}
    +
    +  chrome-trace-event@1.0.3:
    +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    +    engines: {node: '>=6.0'}
    +
    +  ci-info@3.9.0:
    +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    +    engines: {node: '>=8'}
    +
    +  ci-info@4.0.0:
    +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    +    engines: {node: '>=8'}
    +
    +  cjs-module-lexer@1.2.3:
    +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    +
    +  clean-css@5.3.3:
    +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    +    engines: {node: '>= 10.0'}
    +
    +  clean-regexp@1.0.0:
    +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    +    engines: {node: '>=4'}
    +
    +  clean-stack@2.2.0:
    +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    +    engines: {node: '>=6'}
    +
    +  cli-boxes@2.2.1:
    +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    +    engines: {node: '>=6'}
    +
    +  cli-boxes@3.0.0:
    +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    +    engines: {node: '>=10'}
    +
    +  cli-columns@4.0.0:
    +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    +    engines: {node: '>= 10'}
    +
    +  cli-cursor@3.1.0:
    +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    +    engines: {node: '>=8'}
    +
    +  cli-spinners@2.9.2:
    +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    +    engines: {node: '>=6'}
    +
    +  cli-table3@0.6.4:
    +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    +    engines: {node: 10.* || >= 12.*}
    +
    +  cli-table@0.3.11:
    +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    +    engines: {node: '>= 0.2.0'}
    +
    +  cli-width@3.0.0:
    +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    +    engines: {node: '>= 10'}
    +
    +  client-only@0.0.1:
    +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    +
    +  cliui@7.0.4:
    +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    +
    +  cliui@8.0.1:
    +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    +    engines: {node: '>=12'}
    +
    +  clone-buffer@1.0.0:
    +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    +    engines: {node: '>= 0.10'}
    +
    +  clone-deep@4.0.1:
    +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    +    engines: {node: '>=6'}
    +
    +  clone-stats@1.0.0:
    +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    +
    +  clone@1.0.4:
    +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    +    engines: {node: '>=0.8'}
    +
    +  clone@2.1.2:
    +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    +    engines: {node: '>=0.8'}
    +
    +  cloneable-readable@1.1.3:
    +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    +
    +  clsx@2.1.0:
    +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    +    engines: {node: '>=6'}
    +
    +  cmd-shim@5.0.0:
    +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  co@4.6.0:
    +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    +
    +  collapse-white-space@2.1.0:
    +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    +
    +  collect-v8-coverage@1.0.2:
    +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    +
    +  color-convert@1.9.3:
    +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    +
    +  color-convert@2.0.1:
    +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    +    engines: {node: '>=7.0.0'}
    +
    +  color-name@1.1.3:
    +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +
    +  color-name@1.1.4:
    +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +
    +  color-string@1.9.1:
    +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    +
    +  color-support@1.1.3:
    +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    +    hasBin: true
    +
    +  color@3.2.1:
    +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    +
    +  colord@2.9.3:
    +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    +
    +  colorette@2.0.20:
    +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    +
    +  colors@1.0.3:
    +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    +    engines: {node: '>=0.1.90'}
    +
    +  colorspace@1.1.4:
    +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    +
    +  combine-promises@1.2.0:
    +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    +    engines: {node: '>=10'}
    +
    +  combined-stream@1.0.8:
    +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    +    engines: {node: '>= 0.8'}
    +
    +  comma-separated-tokens@2.0.3:
    +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    +
    +  commander@10.0.1:
    +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    +    engines: {node: '>=14'}
    +
    +  commander@11.1.0:
    +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    +    engines: {node: '>=16'}
    +
    +  commander@2.20.3:
    +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    +
    +  commander@4.1.1:
    +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    +    engines: {node: '>= 6'}
    +
    +  commander@5.1.0:
    +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    +    engines: {node: '>= 6'}
    +
    +  commander@7.1.0:
    +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    +    engines: {node: '>= 10'}
    +
    +  commander@7.2.0:
    +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    +    engines: {node: '>= 10'}
    +
    +  commander@8.3.0:
    +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    +    engines: {node: '>= 12'}
    +
    +  common-ancestor-path@1.0.1:
    +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    +
    +  common-path-prefix@3.0.0:
    +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    +
    +  commondir@1.0.1:
    +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    +
    +  compressible@2.0.18:
    +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    +    engines: {node: '>= 0.6'}
    +
    +  compression@1.7.4:
    +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  comver-to-semver@1.0.0:
    +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    +    engines: {node: '>=12.17'}
    +
    +  concat-map@0.0.1:
    +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +
    +  config-chain@1.1.13:
    +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    +
    +  configstore@6.0.0:
    +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    +    engines: {node: '>=12'}
    +
    +  connect-history-api-fallback@2.0.0:
    +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    +    engines: {node: '>=0.8'}
    +
    +  consola@2.15.3:
    +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    +
    +  console-control-strings@1.1.0:
    +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    +
    +  content-disposition@0.5.2:
    +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    +    engines: {node: '>= 0.6'}
    +
    +  content-disposition@0.5.4:
    +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  content-type@1.0.5:
    +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    +    engines: {node: '>= 0.6'}
    +
    +  convert-source-map@2.0.0:
    +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    +
    +  cookie-signature@1.0.6:
    +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    +
    +  cookie@0.6.0:
    +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    +    engines: {node: '>= 0.6'}
    +
    +  copy-text-to-clipboard@3.2.0:
    +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    +    engines: {node: '>=12'}
    +
    +  copy-to-clipboard@3.3.3:
    +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    +
    +  copy-webpack-plugin@11.0.0:
    +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      webpack: ^5.1.0
    +
    +  core-js-compat@3.36.1:
    +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    +
    +  core-js-pure@3.36.1:
    +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    +
    +  core-js@3.36.1:
    +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    +
    +  core-util-is@1.0.3:
    +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    +
    +  corser@2.0.1:
    +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  cosmiconfig@6.0.0:
    +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    +    engines: {node: '>=8'}
    +
    +  cosmiconfig@7.1.0:
    +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    +    engines: {node: '>=10'}
    +
    +  cosmiconfig@8.3.6:
    +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  cosmiconfig@9.0.0:
    +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=4.9.5'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  create-jest@29.7.0:
    +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +
    +  create-require@1.1.1:
    +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    +
    +  cross-spawn@7.0.3:
    +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    +    engines: {node: '>= 8'}
    +
    +  crypto-random-string@2.0.0:
    +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    +    engines: {node: '>=8'}
    +
    +  crypto-random-string@4.0.0:
    +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    +    engines: {node: '>=12'}
    +
    +  css-declaration-sorter@6.4.1:
    +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    +    engines: {node: ^10 || ^12 || >=14}
    +    peerDependencies:
    +      postcss: ^8.0.9
    +
    +  css-in-js-utils@3.1.0:
    +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    +
    +  css-loader@6.10.0:
    +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  css-minimizer-webpack-plugin@4.2.2:
    +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      '@parcel/css': '*'
    +      '@swc/css': '*'
    +      clean-css: '*'
    +      csso: '*'
    +      esbuild: '*'
    +      lightningcss: '*'
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@parcel/css':
    +        optional: true
    +      '@swc/css':
    +        optional: true
    +      clean-css:
    +        optional: true
    +      csso:
    +        optional: true
    +      esbuild:
    +        optional: true
    +      lightningcss:
    +        optional: true
    +
    +  css-select@4.3.0:
    +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    +
    +  css-select@5.1.0:
    +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    +
    +  css-tree@1.1.3:
    +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  css-tree@2.2.1:
    +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +
    +  css-tree@2.3.1:
    +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    +
    +  css-what@6.1.0:
    +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    +    engines: {node: '>= 6'}
    +
    +  cssesc@3.0.0:
    +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  cssnano-preset-advanced@5.3.10:
    +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano-preset-default@5.2.14:
    +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano-utils@3.1.0:
    +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  cssnano@5.1.15:
    +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  csso@4.2.0:
    +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    +    engines: {node: '>=8.0.0'}
    +
    +  csso@5.0.5:
    +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +
    +  cssom@0.3.8:
    +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    +
    +  cssom@0.5.0:
    +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    +
    +  cssstyle@2.3.0:
    +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    +    engines: {node: '>=8'}
    +
    +  csstype@3.1.3:
    +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    +
    +  damerau-levenshtein@1.0.8:
    +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    +
    +  dargs@7.0.0:
    +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    +    engines: {node: '>=8'}
    +
    +  data-uri-to-buffer@2.0.2:
    +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    +
    +  data-uri-to-buffer@3.0.1:
    +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    +    engines: {node: '>= 6'}
    +
    +  data-urls@3.0.2:
    +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    +    engines: {node: '>=12'}
    +
    +  data-view-buffer@1.0.1:
    +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    +    engines: {node: '>= 0.4'}
    +
    +  data-view-byte-length@1.0.1:
    +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  data-view-byte-offset@1.0.0:
    +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    +    engines: {node: '>= 0.4'}
    +
    +  dateformat@4.6.3:
    +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    +
    +  debounce@1.2.1:
    +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    +
    +  debug@2.6.9:
    +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debug@3.2.7:
    +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debug@4.3.4:
    +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    +    engines: {node: '>=6.0'}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +
    +  debuglog@1.0.1:
    +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    +
    +  decamelize-keys@1.1.1:
    +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  decamelize@1.2.0:
    +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  decamelize@4.0.0:
    +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    +    engines: {node: '>=10'}
    +
    +  decamelize@5.0.1:
    +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    +    engines: {node: '>=10'}
    +
    +  decimal.js@10.4.3:
    +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    +
    +  decode-named-character-reference@1.0.2:
    +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    +
    +  decompress-response@6.0.0:
    +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    +    engines: {node: '>=10'}
    +
    +  dedent@1.5.1:
    +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    +    peerDependencies:
    +      babel-plugin-macros: ^3.1.0
    +    peerDependenciesMeta:
    +      babel-plugin-macros:
    +        optional: true
    +
    +  deep-eql@5.0.1:
    +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    +    engines: {node: '>=6'}
    +
    +  deep-equal@2.2.3:
    +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    +    engines: {node: '>= 0.4'}
    +
    +  deep-extend@0.6.0:
    +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    +    engines: {node: '>=4.0.0'}
    +
    +  deep-is@0.1.4:
    +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    +
    +  deepmerge@4.3.1:
    +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    +    engines: {node: '>=0.10.0'}
    +
    +  default-browser-id@5.0.0:
    +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    +    engines: {node: '>=18'}
    +
    +  default-browser@5.2.1:
    +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    +    engines: {node: '>=18'}
    +
    +  default-gateway@6.0.3:
    +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    +    engines: {node: '>= 10'}
    +
    +  defaults@1.0.4:
    +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    +
    +  defer-to-connect@2.0.1:
    +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    +    engines: {node: '>=10'}
    +
    +  define-data-property@1.1.4:
    +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    +    engines: {node: '>= 0.4'}
    +
    +  define-lazy-prop@2.0.0:
    +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    +    engines: {node: '>=8'}
    +
    +  define-lazy-prop@3.0.0:
    +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    +    engines: {node: '>=12'}
    +
    +  define-properties@1.2.1:
    +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    +    engines: {node: '>= 0.4'}
    +
    +  del@6.1.1:
    +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    +    engines: {node: '>=10'}
    +
    +  delayed-stream@1.0.0:
    +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    +    engines: {node: '>=0.4.0'}
    +
    +  delegates@1.0.0:
    +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    +
    +  depd@1.1.2:
    +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  depd@2.0.0:
    +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    +    engines: {node: '>= 0.8'}
    +
    +  deprecation@2.3.1:
    +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    +
    +  dequal@2.0.3:
    +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    +    engines: {node: '>=6'}
    +
    +  destroy@1.2.0:
    +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +
    +  detect-indent@7.0.1:
    +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    +    engines: {node: '>=12.20'}
    +
    +  detect-libc@2.0.3:
    +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    +    engines: {node: '>=8'}
    +
    +  detect-newline@3.1.0:
    +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    +    engines: {node: '>=8'}
    +
    +  detect-node@2.1.0:
    +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    +
    +  detect-port-alt@1.1.6:
    +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    +    engines: {node: '>= 4.2.1'}
    +    hasBin: true
    +
    +  detect-port@1.5.1:
    +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    +    hasBin: true
    +
    +  devlop@1.1.0:
    +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    +
    +  dezalgo@1.0.4:
    +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    +
    +  didyoumean@1.2.2:
    +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    +
    +  diff-sequences@29.6.3:
    +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  diff@4.0.2:
    +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    +    engines: {node: '>=0.3.1'}
    +
    +  diff@5.0.0:
    +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    +    engines: {node: '>=0.3.1'}
    +
    +  diff@5.2.0:
    +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    +    engines: {node: '>=0.3.1'}
    +
    +  dir-glob@3.0.1:
    +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    +    engines: {node: '>=8'}
    +
    +  discontinuous-range@1.0.0:
    +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    +
    +  dlv@1.1.3:
    +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    +
    +  dns-packet@5.6.1:
    +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    +    engines: {node: '>=6'}
    +
    +  doctrine@2.1.0:
    +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  doctrine@3.0.0:
    +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    +    engines: {node: '>=6.0.0'}
    +
    +  dom-accessibility-api@0.5.16:
    +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    +
    +  dom-converter@0.2.0:
    +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    +
    +  dom-serializer@1.4.1:
    +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    +
    +  dom-serializer@2.0.0:
    +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    +
    +  domelementtype@2.3.0:
    +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    +
    +  domexception@4.0.0:
    +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    +    engines: {node: '>=12'}
    +    deprecated: Use your platform's native DOMException instead
    +
    +  domhandler@4.3.1:
    +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    +    engines: {node: '>= 4'}
    +
    +  domhandler@5.0.3:
    +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    +    engines: {node: '>= 4'}
    +
    +  domutils@2.8.0:
    +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    +
    +  domutils@3.1.0:
    +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    +
    +  dot-case@3.0.4:
    +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    +
    +  dot-prop@6.0.1:
    +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    +    engines: {node: '>=10'}
    +
    +  duplexer@0.1.2:
    +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    +
    +  eastasianwidth@0.2.0:
    +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    +
    +  ee-first@1.1.1:
    +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    +
    +  effect@2.0.0-next.62:
    +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    +
    +  ejs@3.1.9:
    +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    +    engines: {node: '>=0.10.0'}
    +    hasBin: true
    +
    +  electron-to-chromium@1.4.717:
    +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    +
    +  emittery@0.13.1:
    +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    +    engines: {node: '>=12'}
    +
    +  emoji-regex@8.0.0:
    +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    +
    +  emoji-regex@9.2.2:
    +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    +
    +  emojilib@2.4.0:
    +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    +
    +  emojis-list@3.0.0:
    +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    +    engines: {node: '>= 4'}
    +
    +  emoticon@4.0.1:
    +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    +
    +  enabled@2.0.0:
    +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    +
    +  encodeurl@1.0.2:
    +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    +    engines: {node: '>= 0.8'}
    +
    +  encoding@0.1.13:
    +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    +
    +  enhanced-resolve@5.16.0:
    +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    +    engines: {node: '>=10.13.0'}
    +
    +  enquirer@2.4.1:
    +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    +    engines: {node: '>=8.6'}
    +
    +  entities@2.2.0:
    +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    +
    +  entities@4.5.0:
    +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    +    engines: {node: '>=0.12'}
    +
    +  env-paths@2.2.1:
    +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    +    engines: {node: '>=6'}
    +
    +  envinfo@7.11.1:
    +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  err-code@2.0.3:
    +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    +
    +  error-ex@1.3.2:
    +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    +
    +  error-stack-parser@2.1.4:
    +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    +
    +  error@10.4.0:
    +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    +
    +  es-abstract@1.23.2:
    +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-define-property@1.0.0:
    +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-errors@1.3.0:
    +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-get-iterator@1.1.3:
    +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    +
    +  es-iterator-helpers@1.0.18:
    +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-module-lexer@1.5.0:
    +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    +
    +  es-object-atoms@1.0.0:
    +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-set-tostringtag@2.0.3:
    +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  es-shim-unscopables@1.0.2:
    +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    +
    +  es-to-primitive@1.2.1:
    +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    +    engines: {node: '>= 0.4'}
    +
    +  esbuild@0.20.2:
    +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  escalade@3.1.2:
    +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    +    engines: {node: '>=6'}
    +
    +  escape-goat@4.0.0:
    +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    +    engines: {node: '>=12'}
    +
    +  escape-html@1.0.3:
    +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    +
    +  escape-string-regexp@1.0.5:
    +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  escape-string-regexp@2.0.0:
    +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    +    engines: {node: '>=8'}
    +
    +  escape-string-regexp@4.0.0:
    +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    +    engines: {node: '>=10'}
    +
    +  escape-string-regexp@5.0.0:
    +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    +    engines: {node: '>=12'}
    +
    +  escodegen@2.1.0:
    +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    +    engines: {node: '>=6.0'}
    +    hasBin: true
    +
    +  eslint-config-next@14.1.4:
    +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    +    peerDependencies:
    +      eslint: ^7.23.0 || ^8.0.0
    +      typescript: '>=3.3.1'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  eslint-config-prettier@9.1.0:
    +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +
    +  eslint-import-resolver-node@0.3.9:
    +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    +
    +  eslint-import-resolver-typescript@3.6.1:
    +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    +    engines: {node: ^14.18.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      eslint-plugin-import: '*'
    +
    +  eslint-module-utils@2.8.1:
    +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: '*'
    +      eslint-import-resolver-node: '*'
    +      eslint-import-resolver-typescript: '*'
    +      eslint-import-resolver-webpack: '*'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +      eslint:
    +        optional: true
    +      eslint-import-resolver-node:
    +        optional: true
    +      eslint-import-resolver-typescript:
    +        optional: true
    +      eslint-import-resolver-webpack:
    +        optional: true
    +
    +  eslint-plugin-import@2.29.1:
    +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      '@typescript-eslint/parser': '*'
    +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    +    peerDependenciesMeta:
    +      '@typescript-eslint/parser':
    +        optional: true
    +
    +  eslint-plugin-jsx-a11y@6.8.0:
    +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +
    +  eslint-plugin-mocha@10.4.1:
    +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +
    +  eslint-plugin-react-hooks@4.6.0:
    +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    +    engines: {node: '>=10'}
    +    peerDependencies:
    +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    +
    +  eslint-plugin-react@7.34.1:
    +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    +    engines: {node: '>=4'}
    +    peerDependencies:
    +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +
    +  eslint-plugin-unicorn@51.0.1:
    +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      eslint: '>=8.56.0'
    +
    +  eslint-plugin-unused-imports@3.1.0:
    +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/eslint-plugin': 6 - 7
    +      eslint: '8'
    +    peerDependenciesMeta:
    +      '@typescript-eslint/eslint-plugin':
    +        optional: true
    +
    +  eslint-rule-composer@0.3.0:
    +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    +    engines: {node: '>=4.0.0'}
    +
    +  eslint-scope@5.1.1:
    +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    +    engines: {node: '>=8.0.0'}
    +
    +  eslint-scope@7.2.2:
    +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  eslint-utils@3.0.0:
    +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    +    peerDependencies:
    +      eslint: '>=5'
    +
    +  eslint-visitor-keys@2.1.0:
    +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    +    engines: {node: '>=10'}
    +
    +  eslint-visitor-keys@3.4.3:
    +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  eslint@8.57.0:
    +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
    +
    +  espree@9.6.1:
    +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  esprima@4.0.1:
    +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  esquery@1.5.0:
    +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    +    engines: {node: '>=0.10'}
    +
    +  esrecurse@4.3.0:
    +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    +    engines: {node: '>=4.0'}
    +
    +  estraverse@4.3.0:
    +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    +    engines: {node: '>=4.0'}
    +
    +  estraverse@5.3.0:
    +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    +    engines: {node: '>=4.0'}
    +
    +  estree-util-attach-comments@3.0.0:
    +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    +
    +  estree-util-build-jsx@3.0.1:
    +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    +
    +  estree-util-is-identifier-name@3.0.0:
    +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    +
    +  estree-util-to-js@2.0.0:
    +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    +
    +  estree-util-value-to-estree@3.0.1:
    +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    +    engines: {node: '>=16.0.0'}
    +
    +  estree-util-visit@2.0.0:
    +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    +
    +  estree-walker@3.0.3:
    +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    +
    +  esutils@2.0.3:
    +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  eta@2.2.0:
    +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    +    engines: {node: '>=6.0.0'}
    +
    +  etag@1.8.1:
    +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    +    engines: {node: '>= 0.6'}
    +
    +  eval@0.1.8:
    +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    +    engines: {node: '>= 0.8'}
    +
    +  event-target-shim@5.0.1:
    +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    +    engines: {node: '>=6'}
    +
    +  eventemitter3@4.0.7:
    +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    +
    +  events@3.3.0:
    +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    +    engines: {node: '>=0.8.x'}
    +
    +  execa@5.1.1:
    +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    +    engines: {node: '>=10'}
    +
    +  exit@0.1.2:
    +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  expect@29.7.0:
    +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  exponential-backoff@3.1.1:
    +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    +
    +  express@4.19.2:
    +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    +    engines: {node: '>= 0.10.0'}
    +
    +  extend-shallow@2.0.1:
    +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    +    engines: {node: '>=0.10.0'}
    +
    +  extend@3.0.2:
    +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    +
    +  external-editor@3.1.0:
    +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    +    engines: {node: '>=4'}
    +
    +  fast-check@3.15.0:
    +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  fast-check@3.17.0:
    +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    +    engines: {node: '>=8.0.0'}
    +
    +  fast-deep-equal@3.1.3:
    +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    +
    +  fast-glob@3.3.2:
    +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    +    engines: {node: '>=8.6.0'}
    +
    +  fast-json-stable-stringify@2.1.0:
    +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +
    +  fast-levenshtein@2.0.6:
    +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    +
    +  fast-loops@1.1.3:
    +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    +
    +  fast-safe-stringify@2.1.1:
    +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    +
    +  fast-shallow-equal@1.0.0:
    +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    +
    +  fast-url-parser@1.1.3:
    +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    +
    +  fast-xml-parser@4.3.6:
    +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    +    hasBin: true
    +
    +  fastest-levenshtein@1.0.16:
    +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    +    engines: {node: '>= 4.9.1'}
    +
    +  fastest-stable-stringify@2.0.2:
    +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    +
    +  fastq@1.17.1:
    +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +
    +  fault@2.0.1:
    +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    +
    +  faye-websocket@0.11.4:
    +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    +    engines: {node: '>=0.8.0'}
    +
    +  fb-watchman@2.0.2:
    +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    +
    +  fecha@4.2.3:
    +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    +
    +  feed@4.2.2:
    +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    +    engines: {node: '>=0.4.0'}
    +
    +  fetch-blob@2.1.2:
    +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    +    engines: {node: ^10.17.0 || >=12.3.0}
    +    peerDependencies:
    +      domexception: '*'
    +    peerDependenciesMeta:
    +      domexception:
    +        optional: true
    +
    +  figures@3.2.0:
    +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    +    engines: {node: '>=8'}
    +
    +  file-entry-cache@6.0.1:
    +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +
    +  file-loader@6.2.0:
    +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
    +
    +  filelist@1.0.4:
    +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    +
    +  filesize@8.0.7:
    +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  fill-range@7.0.1:
    +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    +    engines: {node: '>=8'}
    +
    +  finalhandler@1.2.0:
    +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    +    engines: {node: '>= 0.8'}
    +
    +  find-cache-dir@4.0.0:
    +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    +    engines: {node: '>=14.16'}
    +
    +  find-up@3.0.0:
    +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    +    engines: {node: '>=6'}
    +
    +  find-up@4.1.0:
    +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    +    engines: {node: '>=8'}
    +
    +  find-up@5.0.0:
    +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    +    engines: {node: '>=10'}
    +
    +  find-up@6.3.0:
    +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  find-yarn-workspace-root2@1.2.16:
    +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    +
    +  first-chunk-stream@2.0.0:
    +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  flat-cache@3.2.0:
    +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +
    +  flat@5.0.2:
    +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    +    hasBin: true
    +
    +  flatted@3.3.1:
    +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    +
    +  fn.name@1.1.0:
    +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    +
    +  follow-redirects@1.15.6:
    +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      debug: '*'
    +    peerDependenciesMeta:
    +      debug:
    +        optional: true
    +
    +  for-each@0.3.3:
    +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    +
    +  foreground-child@3.1.1:
    +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    +    engines: {node: '>=14'}
    +
    +  fork-ts-checker-webpack-plugin@6.5.3:
    +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    +    engines: {node: '>=10', yarn: '>=1.0.0'}
    +    peerDependencies:
    +      eslint: '>= 6'
    +      typescript: '>= 2.7'
    +      vue-template-compiler: '*'
    +      webpack: '>= 4'
    +    peerDependenciesMeta:
    +      eslint:
    +        optional: true
    +      vue-template-compiler:
    +        optional: true
    +
    +  form-data-encoder@2.1.4:
    +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    +    engines: {node: '>= 14.17'}
    +
    +  form-data@4.0.0:
    +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    +    engines: {node: '>= 6'}
    +
    +  format@0.2.2:
    +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    +    engines: {node: '>=0.4.x'}
    +
    +  forwarded@0.2.0:
    +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    +    engines: {node: '>= 0.6'}
    +
    +  fraction.js@4.3.7:
    +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    +
    +  fresh@0.5.2:
    +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    +    engines: {node: '>= 0.6'}
    +
    +  fs-extra@11.2.0:
    +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    +    engines: {node: '>=14.14'}
    +
    +  fs-extra@9.1.0:
    +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    +    engines: {node: '>=10'}
    +
    +  fs-minipass@2.1.0:
    +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    +    engines: {node: '>= 8'}
    +
    +  fs-minipass@3.0.3:
    +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  fs-monkey@1.0.5:
    +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    +
    +  fs.realpath@1.0.0:
    +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +
    +  fsevents@2.3.3:
    +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    +    os: [darwin]
    +
    +  function-bind@1.1.2:
    +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    +
    +  function.prototype.name@1.1.6:
    +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    +    engines: {node: '>= 0.4'}
    +
    +  functions-have-names@1.2.3:
    +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    +
    +  gauge@3.0.2:
    +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    +    engines: {node: '>=10'}
    +
    +  gauge@4.0.4:
    +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  gensync@1.0.0-beta.2:
    +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    +    engines: {node: '>=6.9.0'}
    +
    +  get-caller-file@2.0.5:
    +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    +    engines: {node: 6.* || 8.* || >= 10.*}
    +
    +  get-func-name@2.0.2:
    +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    +
    +  get-intrinsic@1.2.4:
    +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  get-npm-tarball-url@2.1.0:
    +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    +    engines: {node: '>=12.17'}
    +
    +  get-own-enumerable-property-symbols@3.0.2:
    +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    +
    +  get-package-type@0.1.0:
    +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    +    engines: {node: '>=8.0.0'}
    +
    +  get-source@2.0.12:
    +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    +
    +  get-stream@6.0.1:
    +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    +    engines: {node: '>=10'}
    +
    +  get-symbol-description@1.0.2:
    +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    +    engines: {node: '>= 0.4'}
    +
    +  get-tsconfig@4.7.3:
    +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    +
    +  github-slugger@1.5.0:
    +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    +
    +  github-username@6.0.0:
    +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    +    engines: {node: '>=10'}
    +
    +  glob-parent@5.1.2:
    +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    +    engines: {node: '>= 6'}
    +
    +  glob-parent@6.0.2:
    +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    +    engines: {node: '>=10.13.0'}
    +
    +  glob-to-regexp@0.4.1:
    +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    +
    +  glob@10.3.10:
    +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
    +
    +  glob@7.2.3:
    +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    +
    +  glob@8.1.0:
    +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    +    engines: {node: '>=12'}
    +
    +  global-dirs@3.0.1:
    +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    +    engines: {node: '>=10'}
    +
    +  global-modules@2.0.0:
    +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    +    engines: {node: '>=6'}
    +
    +  global-prefix@3.0.0:
    +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    +    engines: {node: '>=6'}
    +
    +  globals@11.12.0:
    +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    +    engines: {node: '>=4'}
    +
    +  globals@13.24.0:
    +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    +    engines: {node: '>=8'}
    +
    +  globalthis@1.0.3:
    +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    +    engines: {node: '>= 0.4'}
    +
    +  globby@11.1.0:
    +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    +    engines: {node: '>=10'}
    +
    +  globby@13.2.2:
    +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  gopd@1.0.1:
    +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    +
    +  got@12.6.1:
    +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    +    engines: {node: '>=14.16'}
    +
    +  graceful-fs@4.2.10:
    +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    +
    +  graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    +
    +  graceful-git@3.1.2:
    +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    +    engines: {node: '>=10'}
    +
    +  graphemer@1.4.0:
    +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    +
    +  gray-matter@4.0.3:
    +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    +    engines: {node: '>=6.0'}
    +
    +  grouped-queue@2.0.0:
    +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    +    engines: {node: '>=8.0.0'}
    +
    +  gzip-size@6.0.0:
    +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    +    engines: {node: '>=10'}
    +
    +  handle-thing@2.0.1:
    +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    +
    +  hard-rejection@2.1.0:
    +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    +    engines: {node: '>=6'}
    +
    +  has-bigints@1.0.2:
    +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    +
    +  has-flag@3.0.0:
    +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    +    engines: {node: '>=4'}
    +
    +  has-flag@4.0.0:
    +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    +    engines: {node: '>=8'}
    +
    +  has-property-descriptors@1.0.2:
    +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    +
    +  has-proto@1.0.3:
    +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-symbols@1.0.3:
    +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-tostringtag@1.0.2:
    +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    +    engines: {node: '>= 0.4'}
    +
    +  has-unicode@2.0.1:
    +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    +
    +  has-yarn@3.0.0:
    +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  hasharray@1.1.2:
    +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    +
    +  hasown@2.0.2:
    +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  hast-util-from-parse5@8.0.1:
    +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    +
    +  hast-util-parse-selector@4.0.0:
    +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    +
    +  hast-util-raw@9.0.2:
    +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    +
    +  hast-util-to-estree@3.1.0:
    +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    +
    +  hast-util-to-jsx-runtime@2.3.0:
    +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    +
    +  hast-util-to-parse5@8.0.0:
    +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    +
    +  hast-util-whitespace@3.0.0:
    +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    +
    +  hastscript@8.0.0:
    +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    +
    +  he@1.2.0:
    +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    +    hasBin: true
    +
    +  history@4.10.1:
    +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    +
    +  hoist-non-react-statics@3.3.2:
    +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    +
    +  hosted-git-info@2.8.9:
    +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    +
    +  hosted-git-info@4.1.0:
    +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    +    engines: {node: '>=10'}
    +
    +  hosted-git-info@6.1.1:
    +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  hosted-git-info@7.0.1:
    +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
    +
    +  hpack.js@2.1.6:
    +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    +
    +  html-encoding-sniffer@3.0.0:
    +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    +    engines: {node: '>=12'}
    +
    +  html-entities@2.5.2:
    +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    +
    +  html-escaper@2.0.2:
    +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    +
    +  html-minifier-terser@6.1.0:
    +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  html-minifier-terser@7.2.0:
    +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    +    engines: {node: ^14.13.1 || >=16.0.0}
    +    hasBin: true
    +
    +  html-tags@3.3.1:
    +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    +    engines: {node: '>=8'}
    +
    +  html-void-elements@3.0.0:
    +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    +
    +  html-webpack-plugin@5.6.0:
    +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      webpack: ^5.20.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  htmlparser2@6.1.0:
    +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    +
    +  htmlparser2@8.0.2:
    +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    +
    +  http-cache-semantics@4.1.1:
    +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    +
    +  http-deceiver@1.2.7:
    +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    +
    +  http-errors@1.6.3:
    +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    +    engines: {node: '>= 0.6'}
    +
    +  http-errors@2.0.0:
    +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  http-parser-js@0.5.8:
    +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    +
    +  http-proxy-agent@4.0.1:
    +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    +    engines: {node: '>= 6'}
    +
    +  http-proxy-agent@5.0.0:
    +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    +    engines: {node: '>= 6'}
    +
    +  http-proxy-middleware@2.0.6:
    +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      '@types/express': ^4.17.13
    +    peerDependenciesMeta:
    +      '@types/express':
    +        optional: true
    +
    +  http-proxy@1.18.1:
    +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    +    engines: {node: '>=8.0.0'}
    +
    +  http-server@14.1.1:
    +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +
    +  http2-wrapper@2.2.1:
    +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    +    engines: {node: '>=10.19.0'}
    +
    +  https-proxy-agent@5.0.1:
    +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    +    engines: {node: '>= 6'}
    +
    +  human-signals@2.1.0:
    +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    +    engines: {node: '>=10.17.0'}
    +
    +  humanize-ms@1.2.1:
    +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    +
    +  hyphenate-style-name@1.0.4:
    +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    +
    +  iconv-lite@0.4.24:
    +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  iconv-lite@0.6.3:
    +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  icss-utils@5.1.0:
    +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  ieee754@1.2.1:
    +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    +
    +  ignore-walk@4.0.1:
    +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    +    engines: {node: '>=10'}
    +
    +  ignore-walk@6.0.4:
    +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  ignore@5.3.1:
    +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    +    engines: {node: '>= 4'}
    +
    +  image-size@1.1.1:
    +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    +    engines: {node: '>=16.x'}
    +    hasBin: true
    +
    +  immediate@3.0.6:
    +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    +
    +  immer@10.0.4:
    +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    +
    +  immer@9.0.21:
    +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    +
    +  immutability-helper@3.1.1:
    +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    +
    +  import-fresh@3.3.0:
    +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    +    engines: {node: '>=6'}
    +
    +  import-lazy@4.0.0:
    +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    +    engines: {node: '>=8'}
    +
    +  import-local@3.1.0:
    +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +
    +  imurmurhash@0.1.4:
    +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    +    engines: {node: '>=0.8.19'}
    +
    +  indent-string@4.0.0:
    +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    +    engines: {node: '>=8'}
    +
    +  indent-string@5.0.0:
    +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    +    engines: {node: '>=12'}
    +
    +  individual@3.0.0:
    +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    +
    +  infer-owner@1.0.4:
    +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    +
    +  infima@0.2.0-alpha.43:
    +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    +    engines: {node: '>=12'}
    +
    +  inflight@1.0.6:
    +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    +
    +  inherits@2.0.3:
    +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    +
    +  inherits@2.0.4:
    +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +
    +  ini@1.3.8:
    +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    +
    +  ini@2.0.0:
    +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    +    engines: {node: '>=10'}
    +
    +  ini@3.0.1:
    +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  inline-style-parser@0.1.1:
    +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    +
    +  inline-style-parser@0.2.2:
    +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    +
    +  inline-style-prefixer@7.0.0:
    +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    +
    +  inquirer@8.2.6:
    +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    +    engines: {node: '>=12.0.0'}
    +
    +  internal-slot@1.0.7:
    +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    +    engines: {node: '>= 0.4'}
    +
    +  interpret@1.4.0:
    +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    +    engines: {node: '>= 0.10'}
    +
    +  interpret@3.1.1:
    +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    +    engines: {node: '>=10.13.0'}
    +
    +  invariant@2.2.4:
    +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    +
    +  ip-address@9.0.5:
    +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    +    engines: {node: '>= 12'}
    +
    +  ipaddr.js@1.9.1:
    +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    +    engines: {node: '>= 0.10'}
    +
    +  ipaddr.js@2.1.0:
    +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    +    engines: {node: '>= 10'}
    +
    +  is-alphabetical@2.0.1:
    +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    +
    +  is-alphanumerical@2.0.1:
    +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    +
    +  is-arguments@1.1.1:
    +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-array-buffer@3.0.4:
    +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-arrayish@0.2.1:
    +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    +
    +  is-arrayish@0.3.2:
    +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    +
    +  is-async-function@2.0.0:
    +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-bigint@1.0.4:
    +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    +
    +  is-binary-path@2.1.0:
    +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    +    engines: {node: '>=8'}
    +
    +  is-boolean-object@1.1.2:
    +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-builtin-module@3.2.1:
    +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    +    engines: {node: '>=6'}
    +
    +  is-callable@1.2.7:
    +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-ci@3.0.1:
    +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    +    hasBin: true
    +
    +  is-core-module@2.13.1:
    +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    +
    +  is-data-view@1.0.1:
    +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-date-object@1.0.5:
    +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-decimal@2.0.1:
    +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    +
    +  is-docker@2.2.1:
    +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    +    engines: {node: '>=8'}
    +    hasBin: true
    +
    +  is-docker@3.0.0:
    +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    hasBin: true
    +
    +  is-extendable@0.1.1:
    +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-extglob@2.1.1:
    +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-finalizationregistry@1.0.2:
    +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    +
    +  is-fullwidth-code-point@3.0.0:
    +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    +    engines: {node: '>=8'}
    +
    +  is-generator-fn@2.1.0:
    +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    +    engines: {node: '>=6'}
    +
    +  is-generator-function@1.0.10:
    +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-glob@4.0.3:
    +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-hexadecimal@2.0.1:
    +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    +
    +  is-inside-container@1.0.0:
    +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    +    engines: {node: '>=14.16'}
    +    hasBin: true
    +
    +  is-installed-globally@0.4.0:
    +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    +    engines: {node: '>=10'}
    +
    +  is-interactive@1.0.0:
    +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    +    engines: {node: '>=8'}
    +
    +  is-lambda@1.0.1:
    +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    +
    +  is-map@2.0.3:
    +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-negative-zero@2.0.3:
    +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-network-error@1.1.0:
    +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    +    engines: {node: '>=16'}
    +
    +  is-npm@6.0.0:
    +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  is-number-object@1.0.7:
    +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-number@7.0.0:
    +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    +    engines: {node: '>=0.12.0'}
    +
    +  is-obj@1.0.1:
    +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-obj@2.0.0:
    +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    +    engines: {node: '>=8'}
    +
    +  is-path-cwd@2.2.0:
    +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    +    engines: {node: '>=6'}
    +
    +  is-path-inside@3.0.3:
    +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    +    engines: {node: '>=8'}
    +
    +  is-plain-obj@1.1.0:
    +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-plain-obj@2.1.0:
    +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    +    engines: {node: '>=8'}
    +
    +  is-plain-obj@3.0.0:
    +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    +    engines: {node: '>=10'}
    +
    +  is-plain-obj@4.1.0:
    +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    +    engines: {node: '>=12'}
    +
    +  is-plain-object@2.0.4:
    +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-plain-object@5.0.0:
    +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-potential-custom-element-name@1.0.1:
    +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    +
    +  is-reference@3.0.2:
    +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    +
    +  is-regex@1.1.4:
    +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-regexp@1.0.0:
    +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-root@2.1.0:
    +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    +    engines: {node: '>=6'}
    +
    +  is-scoped@2.1.0:
    +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    +    engines: {node: '>=8'}
    +
    +  is-set@2.0.3:
    +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-shared-array-buffer@1.0.3:
    +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-stream@2.0.1:
    +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    +    engines: {node: '>=8'}
    +
    +  is-string@1.0.7:
    +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-subdir@1.2.0:
    +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    +    engines: {node: '>=4'}
    +
    +  is-symbol@1.0.4:
    +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-typed-array@1.1.13:
    +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-typedarray@1.0.0:
    +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    +
    +  is-unicode-supported@0.1.0:
    +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    +    engines: {node: '>=10'}
    +
    +  is-utf8@0.2.1:
    +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    +
    +  is-weakmap@2.0.2:
    +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-weakref@1.0.2:
    +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    +
    +  is-weakset@2.0.3:
    +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  is-windows@1.0.2:
    +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  is-wsl@2.2.0:
    +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    +    engines: {node: '>=8'}
    +
    +  is-wsl@3.1.0:
    +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    +    engines: {node: '>=16'}
    +
    +  is-yarn-global@0.4.1:
    +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    +    engines: {node: '>=12'}
    +
    +  isarray@0.0.1:
    +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    +
    +  isarray@1.0.0:
    +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    +
    +  isarray@2.0.5:
    +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    +
    +  isbinaryfile@4.0.10:
    +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    +    engines: {node: '>= 8.0.0'}
    +
    +  isbinaryfile@5.0.2:
    +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    +    engines: {node: '>= 18.0.0'}
    +
    +  isexe@2.0.0:
    +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +
    +  isobject@3.0.1:
    +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  istanbul-lib-coverage@3.2.2:
    +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    +    engines: {node: '>=8'}
    +
    +  istanbul-lib-instrument@5.2.1:
    +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    +    engines: {node: '>=8'}
    +
    +  istanbul-lib-instrument@6.0.2:
    +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-lib-report@3.0.1:
    +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-lib-source-maps@4.0.1:
    +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    +    engines: {node: '>=10'}
    +
    +  istanbul-reports@3.1.7:
    +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    +    engines: {node: '>=8'}
    +
    +  iterator.prototype@1.1.2:
    +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    +
    +  itertools@2.2.5:
    +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    +
    +  jackspeak@2.3.6:
    +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    +    engines: {node: '>=14'}
    +
    +  jake@10.8.7:
    +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  jclass@1.2.1:
    +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    +    engines: {node: '>= 0.6'}
    +
    +  jest-changed-files@29.7.0:
    +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-circus@29.7.0:
    +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-cli@29.7.0:
    +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  jest-config@29.7.0:
    +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      '@types/node': '*'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      '@types/node':
    +        optional: true
    +      ts-node:
    +        optional: true
    +
    +  jest-diff@29.7.0:
    +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-docblock@29.7.0:
    +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-each@29.7.0:
    +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-environment-jsdom@29.7.0:
    +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
    +
    +  jest-environment-node@29.7.0:
    +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-get-type@29.6.3:
    +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-haste-map@29.7.0:
    +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-leak-detector@29.7.0:
    +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-matcher-utils@29.7.0:
    +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-message-util@29.7.0:
    +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-mock@29.7.0:
    +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-pnp-resolver@1.2.3:
    +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    +    engines: {node: '>=6'}
    +    peerDependencies:
    +      jest-resolve: '*'
    +    peerDependenciesMeta:
    +      jest-resolve:
    +        optional: true
    +
    +  jest-regex-util@29.6.3:
    +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-resolve-dependencies@29.7.0:
    +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-resolve@29.7.0:
    +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-runner@29.7.0:
    +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-runtime@29.7.0:
    +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-snapshot@29.7.0:
    +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-util@29.7.0:
    +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-validate@29.7.0:
    +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-watcher@29.7.0:
    +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest-worker@27.5.1:
    +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  jest-worker@29.7.0:
    +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  jest@29.7.0:
    +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    +    peerDependenciesMeta:
    +      node-notifier:
    +        optional: true
    +
    +  jiti@1.21.0:
    +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    +    hasBin: true
    +
    +  joi@17.12.2:
    +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    +
    +  js-cookie@2.2.1:
    +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    +
    +  js-tokens@4.0.0:
    +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +
    +  js-yaml@3.14.1:
    +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    +    hasBin: true
    +
    +  js-yaml@4.1.0:
    +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    +    hasBin: true
    +
    +  jsbn@1.1.0:
    +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    +
    +  jsdom@20.0.3:
    +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      canvas: ^2.5.0
    +    peerDependenciesMeta:
    +      canvas:
    +        optional: true
    +
    +  jsesc@0.5.0:
    +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    +    hasBin: true
    +
    +  jsesc@2.5.2:
    +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  jsesc@3.0.2:
    +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  json-buffer@3.0.1:
    +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    +
    +  json-parse-even-better-errors@2.3.1:
    +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    +
    +  json-parse-even-better-errors@3.0.1:
    +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  json-schema-traverse@0.4.1:
    +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    +
    +  json-schema-traverse@1.0.0:
    +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    +
    +  json-stable-stringify-without-jsonify@1.0.1:
    +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    +
    +  json-stringify-nice@1.1.4:
    +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    +
    +  json-stringify-safe@5.0.1:
    +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    +
    +  json5@1.0.2:
    +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    +    hasBin: true
    +
    +  json5@2.2.3:
    +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  jsonfile@6.1.0:
    +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    +
    +  jsonparse@1.3.1:
    +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    +    engines: {'0': node >= 0.2.0}
    +
    +  jsx-ast-utils@3.3.5:
    +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    +    engines: {node: '>=4.0'}
    +
    +  jszip@3.10.1:
    +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    +
    +  just-diff-apply@5.5.0:
    +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    +
    +  just-diff@5.2.0:
    +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    +
    +  just-extend@6.2.0:
    +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    +
    +  keyv@4.5.4:
    +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    +
    +  kind-of@6.0.3:
    +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  kleur@3.0.3:
    +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    +    engines: {node: '>=6'}
    +
    +  kuler@2.0.0:
    +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    +
    +  language-subtag-registry@0.3.22:
    +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    +
    +  language-tags@1.0.9:
    +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    +    engines: {node: '>=0.10'}
    +
    +  latest-version@7.0.0:
    +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    +    engines: {node: '>=14.16'}
    +
    +  launch-editor@2.6.1:
    +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    +
    +  leven@3.1.0:
    +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    +    engines: {node: '>=6'}
    +
    +  levn@0.4.1:
    +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  lie@3.3.0:
    +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    +
    +  lilconfig@2.1.0:
    +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    +    engines: {node: '>=10'}
    +
    +  lilconfig@3.1.1:
    +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    +    engines: {node: '>=14'}
    +
    +  lines-and-columns@1.2.4:
    +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +
    +  load-json-file@6.2.0:
    +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    +    engines: {node: '>=8'}
    +
    +  load-json-file@7.0.1:
    +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  load-script@1.0.0:
    +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    +
    +  load-yaml-file@0.2.0:
    +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    +    engines: {node: '>=6'}
    +
    +  loader-runner@4.3.0:
    +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    +    engines: {node: '>=6.11.5'}
    +
    +  loader-utils@2.0.4:
    +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    +    engines: {node: '>=8.9.0'}
    +
    +  loader-utils@3.2.1:
    +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    +    engines: {node: '>= 12.13.0'}
    +
    +  locate-path@3.0.0:
    +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    +    engines: {node: '>=6'}
    +
    +  locate-path@5.0.0:
    +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    +    engines: {node: '>=8'}
    +
    +  locate-path@6.0.0:
    +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    +    engines: {node: '>=10'}
    +
    +  locate-path@7.2.0:
    +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  lodash.debounce@4.0.8:
    +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    +
    +  lodash.get@4.4.2:
    +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    +
    +  lodash.memoize@4.1.2:
    +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    +
    +  lodash.merge@4.6.2:
    +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    +
    +  lodash.uniq@4.5.0:
    +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    +
    +  lodash@4.17.21:
    +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    +
    +  log-symbols@4.1.0:
    +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    +    engines: {node: '>=10'}
    +
    +  logform@2.6.0:
    +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  longest-streak@3.1.0:
    +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    +
    +  loose-envify@1.4.0:
    +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    +    hasBin: true
    +
    +  loupe@3.1.0:
    +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    +
    +  lower-case@2.0.2:
    +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    +
    +  lowercase-keys@3.0.0:
    +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  lru-cache@10.2.0:
    +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    +    engines: {node: 14 || >=16.14}
    +
    +  lru-cache@5.1.1:
    +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    +
    +  lru-cache@6.0.0:
    +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    +    engines: {node: '>=10'}
    +
    +  lru-cache@7.10.1:
    +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    +    engines: {node: '>=12'}
    +
    +  lru-cache@7.18.3:
    +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    +    engines: {node: '>=12'}
    +
    +  lz-string@1.5.0:
    +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    +    hasBin: true
    +
    +  make-dir@4.0.0:
    +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    +    engines: {node: '>=10'}
    +
    +  make-error@1.3.6:
    +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    +
    +  make-fetch-happen@10.2.1:
    +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  make-fetch-happen@11.1.1:
    +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  make-fetch-happen@9.1.0:
    +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    +    engines: {node: '>= 10'}
    +
    +  makeerror@1.0.12:
    +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    +
    +  map-age-cleaner@0.1.3:
    +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    +    engines: {node: '>=6'}
    +
    +  map-obj@1.0.1:
    +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  map-obj@4.3.0:
    +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    +    engines: {node: '>=8'}
    +
    +  markdown-extensions@2.0.0:
    +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    +    engines: {node: '>=16'}
    +
    +  markdown-table@3.0.3:
    +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    +
    +  mdast-util-directive@3.0.0:
    +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    +
    +  mdast-util-find-and-replace@3.0.1:
    +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    +
    +  mdast-util-from-markdown@2.0.0:
    +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    +
    +  mdast-util-frontmatter@2.0.1:
    +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    +
    +  mdast-util-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    +
    +  mdast-util-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    +
    +  mdast-util-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    +
    +  mdast-util-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    +
    +  mdast-util-gfm-task-list-item@2.0.0:
    +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    +
    +  mdast-util-gfm@3.0.0:
    +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    +
    +  mdast-util-mdx-expression@2.0.0:
    +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    +
    +  mdast-util-mdx-jsx@3.1.2:
    +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    +
    +  mdast-util-mdx@3.0.0:
    +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    +
    +  mdast-util-mdxjs-esm@2.0.1:
    +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    +
    +  mdast-util-phrasing@4.1.0:
    +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    +
    +  mdast-util-to-hast@13.1.0:
    +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    +
    +  mdast-util-to-markdown@2.1.0:
    +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    +
    +  mdast-util-to-string@4.0.0:
    +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    +
    +  mdn-data@2.0.14:
    +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    +
    +  mdn-data@2.0.28:
    +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    +
    +  mdn-data@2.0.30:
    +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    +
    +  media-typer@0.3.0:
    +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mem-fs-editor@9.7.0:
    +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      mem-fs: ^2.1.0
    +    peerDependenciesMeta:
    +      mem-fs:
    +        optional: true
    +
    +  mem-fs@2.3.0:
    +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    +    engines: {node: '>=12'}
    +
    +  mem@8.1.1:
    +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    +    engines: {node: '>=10'}
    +
    +  memfs@3.5.3:
    +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  memfs@4.8.0:
    +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  memoize-one@5.2.1:
    +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    +
    +  meow@10.1.5:
    +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  merge-descriptors@1.0.1:
    +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    +
    +  merge-stream@2.0.0:
    +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    +
    +  merge2@1.4.1:
    +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    +    engines: {node: '>= 8'}
    +
    +  methods@1.1.2:
    +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    +    engines: {node: '>= 0.6'}
    +
    +  micromark-core-commonmark@2.0.0:
    +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    +
    +  micromark-extension-directive@3.0.0:
    +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    +
    +  micromark-extension-frontmatter@2.0.0:
    +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    +
    +  micromark-extension-gfm-autolink-literal@2.0.0:
    +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    +
    +  micromark-extension-gfm-footnote@2.0.0:
    +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    +
    +  micromark-extension-gfm-strikethrough@2.0.0:
    +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    +
    +  micromark-extension-gfm-table@2.0.0:
    +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    +
    +  micromark-extension-gfm-tagfilter@2.0.0:
    +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    +
    +  micromark-extension-gfm-task-list-item@2.0.1:
    +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    +
    +  micromark-extension-gfm@3.0.0:
    +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    +
    +  micromark-extension-mdx-expression@3.0.0:
    +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    +
    +  micromark-extension-mdx-jsx@3.0.0:
    +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    +
    +  micromark-extension-mdx-md@2.0.0:
    +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    +
    +  micromark-extension-mdxjs-esm@3.0.0:
    +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    +
    +  micromark-extension-mdxjs@3.0.0:
    +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    +
    +  micromark-factory-destination@2.0.0:
    +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    +
    +  micromark-factory-label@2.0.0:
    +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    +
    +  micromark-factory-mdx-expression@2.0.1:
    +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    +
    +  micromark-factory-space@1.1.0:
    +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    +
    +  micromark-factory-space@2.0.0:
    +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    +
    +  micromark-factory-title@2.0.0:
    +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    +
    +  micromark-factory-whitespace@2.0.0:
    +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    +
    +  micromark-util-character@1.2.0:
    +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    +
    +  micromark-util-character@2.1.0:
    +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    +
    +  micromark-util-chunked@2.0.0:
    +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    +
    +  micromark-util-classify-character@2.0.0:
    +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    +
    +  micromark-util-combine-extensions@2.0.0:
    +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    +
    +  micromark-util-decode-numeric-character-reference@2.0.1:
    +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    +
    +  micromark-util-decode-string@2.0.0:
    +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    +
    +  micromark-util-encode@2.0.0:
    +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    +
    +  micromark-util-events-to-acorn@2.0.2:
    +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    +
    +  micromark-util-html-tag-name@2.0.0:
    +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    +
    +  micromark-util-normalize-identifier@2.0.0:
    +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    +
    +  micromark-util-resolve-all@2.0.0:
    +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    +
    +  micromark-util-sanitize-uri@2.0.0:
    +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    +
    +  micromark-util-subtokenize@2.0.0:
    +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    +
    +  micromark-util-symbol@1.1.0:
    +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    +
    +  micromark-util-symbol@2.0.0:
    +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    +
    +  micromark-util-types@1.1.0:
    +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    +
    +  micromark-util-types@2.0.0:
    +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    +
    +  micromark@4.0.0:
    +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    +
    +  micromatch@4.0.5:
    +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    +    engines: {node: '>=8.6'}
    +
    +  mime-db@1.33.0:
    +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-db@1.52.0:
    +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-types@2.1.18:
    +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime-types@2.1.35:
    +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    +    engines: {node: '>= 0.6'}
    +
    +  mime@1.6.0:
    +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  mimic-fn@2.1.0:
    +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    +    engines: {node: '>=6'}
    +
    +  mimic-fn@3.1.0:
    +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    +    engines: {node: '>=8'}
    +
    +  mimic-response@3.1.0:
    +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    +    engines: {node: '>=10'}
    +
    +  mimic-response@4.0.0:
    +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  min-indent@1.0.1:
    +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    +    engines: {node: '>=4'}
    +
    +  mini-css-extract-plugin@2.8.1:
    +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +
    +  minimalistic-assert@1.0.1:
    +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    +
    +  minimatch@3.1.2:
    +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    +
    +  minimatch@5.0.1:
    +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@5.1.6:
    +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@7.4.6:
    +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    +    engines: {node: '>=10'}
    +
    +  minimatch@9.0.3:
    +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  minimist-options@4.1.0:
    +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    +    engines: {node: '>= 6'}
    +
    +  minimist@1.2.8:
    +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    +
    +  minipass-collect@1.0.2:
    +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    +    engines: {node: '>= 8'}
    +
    +  minipass-fetch@1.4.1:
    +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    +    engines: {node: '>=8'}
    +
    +  minipass-fetch@2.1.2:
    +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  minipass-fetch@3.0.4:
    +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  minipass-flush@1.0.5:
    +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    +    engines: {node: '>= 8'}
    +
    +  minipass-json-stream@1.0.1:
    +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    +
    +  minipass-pipeline@1.2.4:
    +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    +    engines: {node: '>=8'}
    +
    +  minipass-sized@1.0.3:
    +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    +    engines: {node: '>=8'}
    +
    +  minipass@3.3.6:
    +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    +    engines: {node: '>=8'}
    +
    +  minipass@5.0.0:
    +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    +    engines: {node: '>=8'}
    +
    +  minipass@7.0.4:
    +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  minizlib@2.1.2:
    +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    +    engines: {node: '>= 8'}
    +
    +  mkdirp-infer-owner@2.0.0:
    +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    +    engines: {node: '>=10'}
    +
    +  mkdirp@0.5.6:
    +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    +    hasBin: true
    +
    +  mkdirp@1.0.4:
    +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  mocha@10.3.0:
    +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    +    engines: {node: '>= 14.0.0'}
    +    hasBin: true
    +
    +  moo@0.5.2:
    +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    +
    +  mrmime@2.0.0:
    +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    +    engines: {node: '>=10'}
    +
    +  ms@2.0.0:
    +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    +
    +  ms@2.1.2:
    +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +
    +  ms@2.1.3:
    +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    +
    +  multicast-dns@7.2.5:
    +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    +    hasBin: true
    +
    +  multimatch@5.0.0:
    +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    +    engines: {node: '>=10'}
    +
    +  mute-stream@0.0.8:
    +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    +
    +  mz@2.7.0:
    +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    +
    +  nano-css@5.6.1:
    +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  nanoid@3.3.7:
    +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    +    hasBin: true
    +
    +  natural-compare@1.4.0:
    +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +
    +  ndjson@2.0.0:
    +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  nearley@2.20.1:
    +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    +    hasBin: true
    +
    +  negotiator@0.6.3:
    +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    +    engines: {node: '>= 0.6'}
    +
    +  neo-async@2.6.2:
    +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    +
    +  neovim@5.1.0:
    +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  nerf-dart@1.0.0:
    +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    +
    +  next@14.1.4:
    +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    +    engines: {node: '>=18.17.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@opentelemetry/api': ^1.1.0
    +      react: ^18.2.0 || 18
    +      react-dom: ^18.2.0 || 18
    +      sass: ^1.3.0
    +    peerDependenciesMeta:
    +      '@opentelemetry/api':
    +        optional: true
    +      sass:
    +        optional: true
    +
    +  nise@5.1.9:
    +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    +
    +  no-case@3.0.4:
    +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    +
    +  node-emoji@2.1.3:
    +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    +    engines: {node: '>=18'}
    +
    +  node-fetch@2.7.0:
    +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    +    engines: {node: 4.x || >=6.0.0}
    +    peerDependencies:
    +      encoding: ^0.1.0
    +    peerDependenciesMeta:
    +      encoding:
    +        optional: true
    +
    +  node-forge@1.3.1:
    +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    +    engines: {node: '>= 6.13.0'}
    +
    +  node-gyp@8.4.1:
    +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    +    engines: {node: '>= 10.12.0'}
    +    hasBin: true
    +
    +  node-gyp@9.4.1:
    +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    +    engines: {node: ^12.13 || ^14.13 || >=16}
    +    hasBin: true
    +
    +  node-html-parser@6.1.12:
    +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    +
    +  node-int64@0.4.0:
    +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    +
    +  node-releases@2.0.14:
    +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    +
    +  nopt@5.0.0:
    +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +
    +  nopt@6.0.0:
    +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +    hasBin: true
    +
    +  normalize-package-data@2.5.0:
    +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    +
    +  normalize-package-data@3.0.3:
    +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    +    engines: {node: '>=10'}
    +
    +  normalize-package-data@5.0.0:
    +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  normalize-path@3.0.0:
    +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  normalize-range@0.1.2:
    +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  normalize-registry-url@2.0.0:
    +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    +
    +  normalize-url@6.1.0:
    +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    +    engines: {node: '>=10'}
    +
    +  normalize-url@8.0.1:
    +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    +    engines: {node: '>=14.16'}
    +
    +  npm-bundled@1.1.2:
    +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    +
    +  npm-bundled@3.0.0:
    +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-install-checks@4.0.0:
    +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    +    engines: {node: '>=10'}
    +
    +  npm-install-checks@6.3.0:
    +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-normalize-package-bin@1.0.1:
    +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    +
    +  npm-normalize-package-bin@2.0.0:
    +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  npm-normalize-package-bin@3.0.1:
    +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-package-arg@10.1.0:
    +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-package-arg@11.0.1:
    +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    +    engines: {node: ^16.14.0 || >=18.0.0}
    +
    +  npm-package-arg@8.1.5:
    +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    +    engines: {node: '>=10'}
    +
    +  npm-packlist@3.0.0:
    +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  npm-packlist@7.0.4:
    +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-pick-manifest@6.1.1:
    +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    +
    +  npm-pick-manifest@8.0.2:
    +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-registry-fetch@12.0.2:
    +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +
    +  npm-registry-fetch@14.0.5:
    +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  npm-run-path@4.0.1:
    +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    +    engines: {node: '>=8'}
    +
    +  npmlog@5.0.1:
    +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    +
    +  npmlog@6.0.2:
    +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  nprogress@0.2.0:
    +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    +
    +  nth-check@2.1.1:
    +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    +
    +  nwsapi@2.2.7:
    +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    +
    +  object-assign@4.1.1:
    +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  object-hash@3.0.0:
    +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    +    engines: {node: '>= 6'}
    +
    +  object-inspect@1.13.1:
    +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    +
    +  object-is@1.1.6:
    +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  object-keys@1.1.1:
    +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.assign@4.1.5:
    +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.entries@1.1.8:
    +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.fromentries@2.0.8:
    +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.groupby@1.0.3:
    +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.hasown@1.1.4:
    +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    +    engines: {node: '>= 0.4'}
    +
    +  object.values@1.2.0:
    +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  obuf@1.1.2:
    +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    +
    +  on-finished@2.4.1:
    +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    +    engines: {node: '>= 0.8'}
    +
    +  on-headers@1.0.2:
    +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    +    engines: {node: '>= 0.8'}
    +
    +  once@1.4.0:
    +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    +
    +  one-time@1.0.0:
    +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    +
    +  onetime@5.1.2:
    +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    +    engines: {node: '>=6'}
    +
    +  open@10.1.0:
    +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    +    engines: {node: '>=18'}
    +
    +  open@8.4.2:
    +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    +    engines: {node: '>=12'}
    +
    +  opener@1.5.2:
    +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    +    hasBin: true
    +
    +  optionator@0.9.3:
    +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  ora@5.4.1:
    +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    +    engines: {node: '>=10'}
    +
    +  os-tmpdir@1.0.2:
    +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  p-cancelable@3.0.0:
    +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    +    engines: {node: '>=12.20'}
    +
    +  p-defer@1.0.0:
    +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    +    engines: {node: '>=4'}
    +
    +  p-filter@2.1.0:
    +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    +    engines: {node: '>=8'}
    +
    +  p-finally@1.0.0:
    +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    +    engines: {node: '>=4'}
    +
    +  p-limit@2.3.0:
    +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    +    engines: {node: '>=6'}
    +
    +  p-limit@3.1.0:
    +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    +    engines: {node: '>=10'}
    +
    +  p-limit@4.0.0:
    +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  p-locate@3.0.0:
    +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    +    engines: {node: '>=6'}
    +
    +  p-locate@4.1.0:
    +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    +    engines: {node: '>=8'}
    +
    +  p-locate@5.0.0:
    +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    +    engines: {node: '>=10'}
    +
    +  p-locate@6.0.0:
    +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  p-map@2.1.0:
    +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    +    engines: {node: '>=6'}
    +
    +  p-map@4.0.0:
    +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    +    engines: {node: '>=10'}
    +
    +  p-queue@6.6.2:
    +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    +    engines: {node: '>=8'}
    +
    +  p-retry@4.6.2:
    +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    +    engines: {node: '>=8'}
    +
    +  p-retry@6.2.0:
    +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    +    engines: {node: '>=16.17'}
    +
    +  p-timeout@3.2.0:
    +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    +    engines: {node: '>=8'}
    +
    +  p-transform@1.3.0:
    +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    +    engines: {node: '>=12.10.0'}
    +
    +  p-try@2.2.0:
    +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    +    engines: {node: '>=6'}
    +
    +  package-json@8.1.1:
    +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    +    engines: {node: '>=14.16'}
    +
    +  pacote@12.0.3:
    +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +    hasBin: true
    +
    +  pacote@15.2.0:
    +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  pako@1.0.11:
    +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    +
    +  param-case@3.0.4:
    +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    +
    +  parent-module@1.0.1:
    +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    +    engines: {node: '>=6'}
    +
    +  parse-conflict-json@2.0.2:
    +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  parse-entities@4.0.1:
    +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    +
    +  parse-json@5.2.0:
    +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    +    engines: {node: '>=8'}
    +
    +  parse-ms@2.1.0:
    +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    +    engines: {node: '>=6'}
    +
    +  parse-numeric-range@1.3.0:
    +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    +
    +  parse-srcset@1.0.2:
    +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    +
    +  parse5-htmlparser2-tree-adapter@7.0.0:
    +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    +
    +  parse5@7.1.2:
    +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    +
    +  parseurl@1.3.3:
    +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  pascal-case@3.1.2:
    +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    +
    +  path-absolute@1.0.1:
    +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    +    engines: {node: '>=4'}
    +
    +  path-exists@3.0.0:
    +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    +    engines: {node: '>=4'}
    +
    +  path-exists@4.0.0:
    +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    +    engines: {node: '>=8'}
    +
    +  path-exists@5.0.0:
    +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  path-is-absolute@1.0.1:
    +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  path-is-inside@1.0.2:
    +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    +
    +  path-key@3.1.1:
    +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    +    engines: {node: '>=8'}
    +
    +  path-name@1.0.0:
    +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    +
    +  path-parse@1.0.7:
    +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    +
    +  path-scurry@1.10.1:
    +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +
    +  path-temp@2.1.0:
    +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    +    engines: {node: '>=8.15'}
    +
    +  path-to-regexp@0.1.7:
    +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    +
    +  path-to-regexp@1.8.0:
    +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    +
    +  path-to-regexp@2.2.1:
    +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    +
    +  path-to-regexp@6.2.1:
    +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    +
    +  path-type@4.0.0:
    +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    +    engines: {node: '>=8'}
    +
    +  pathval@2.0.0:
    +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    +    engines: {node: '>= 14.16'}
    +
    +  periscopic@3.1.0:
    +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    +
    +  picocolors@1.0.0:
    +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    +
    +  picomatch@2.3.1:
    +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    +    engines: {node: '>=8.6'}
    +
    +  pify@2.3.0:
    +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    +    engines: {node: '>=0.10.0'}
    +
    +  pify@4.0.1:
    +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    +    engines: {node: '>=6'}
    +
    +  pirates@4.0.6:
    +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    +    engines: {node: '>= 6'}
    +
    +  pkg-dir@4.2.0:
    +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    +    engines: {node: '>=8'}
    +
    +  pkg-dir@7.0.0:
    +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    +    engines: {node: '>=14.16'}
    +
    +  pkg-up@3.1.0:
    +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    +    engines: {node: '>=8'}
    +
    +  pluralize@8.0.0:
    +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    +    engines: {node: '>=4'}
    +
    +  portfinder@1.0.32:
    +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    +    engines: {node: '>= 0.12.0'}
    +
    +  possible-typed-array-names@1.0.0:
    +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    +    engines: {node: '>= 0.4'}
    +
    +  postcss-calc@8.2.4:
    +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    +    peerDependencies:
    +      postcss: ^8.2.2
    +
    +  postcss-colormin@5.3.1:
    +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-convert-values@5.1.3:
    +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-comments@5.1.2:
    +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-duplicates@5.1.0:
    +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-empty@5.1.1:
    +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-overridden@5.1.0:
    +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-discard-unused@5.1.0:
    +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-import@15.1.0:
    +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    +    engines: {node: '>=14.0.0'}
    +    peerDependencies:
    +      postcss: ^8.0.0
    +
    +  postcss-js@4.0.1:
    +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    +    engines: {node: ^12 || ^14 || >= 16}
    +    peerDependencies:
    +      postcss: ^8.4.21
    +
    +  postcss-load-config@4.0.2:
    +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    +    engines: {node: '>= 14'}
    +    peerDependencies:
    +      postcss: '>=8.0.9'
    +      ts-node: '>=9.0.0'
    +    peerDependenciesMeta:
    +      postcss:
    +        optional: true
    +      ts-node:
    +        optional: true
    +
    +  postcss-loader@7.3.4:
    +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    +    engines: {node: '>= 14.15.0'}
    +    peerDependencies:
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +
    +  postcss-loader@8.1.1:
    +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      '@rspack/core': 0.x || 1.x
    +      postcss: ^7.0.0 || ^8.0.1
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      '@rspack/core':
    +        optional: true
    +      webpack:
    +        optional: true
    +
    +  postcss-merge-idents@5.1.1:
    +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-merge-longhand@5.1.7:
    +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-merge-rules@5.1.4:
    +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-font-values@5.1.0:
    +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-gradients@5.1.1:
    +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-params@5.1.4:
    +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-minify-selectors@5.2.1:
    +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-modules-extract-imports@3.0.0:
    +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-local-by-default@4.0.4:
    +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-scope@3.1.1:
    +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-modules-values@4.0.0:
    +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    +    engines: {node: ^10 || ^12 || >= 14}
    +    peerDependencies:
    +      postcss: ^8.1.0
    +
    +  postcss-nested@6.0.1:
    +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    +    engines: {node: '>=12.0'}
    +    peerDependencies:
    +      postcss: ^8.2.14
    +
    +  postcss-normalize-charset@5.1.0:
    +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-display-values@5.1.0:
    +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-positions@5.1.1:
    +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-repeat-style@5.1.1:
    +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-string@5.1.0:
    +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-timing-functions@5.1.0:
    +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-unicode@5.1.1:
    +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-url@5.1.0:
    +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-normalize-whitespace@5.1.1:
    +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-ordered-values@5.1.3:
    +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-idents@5.2.0:
    +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-initial@5.1.2:
    +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-reduce-transforms@5.1.0:
    +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-selector-parser@6.0.16:
    +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    +    engines: {node: '>=4'}
    +
    +  postcss-sort-media-queries@4.4.1:
    +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      postcss: ^8.4.16
    +
    +  postcss-svgo@5.1.0:
    +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-unique-selectors@5.1.1:
    +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss-value-parser@4.2.0:
    +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    +
    +  postcss-zindex@5.1.0:
    +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  postcss@8.4.31:
    +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    +    engines: {node: ^10 || ^12 || >=14}
    +
    +  postcss@8.4.38:
    +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    +    engines: {node: ^10 || ^12 || >=14}
    +
    +  preferred-pm@3.1.3:
    +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    +    engines: {node: '>=10'}
    +
    +  prelude-ls@1.2.1:
    +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  prettier-plugin-tailwindcss@0.5.12:
    +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    +    engines: {node: '>=14.21.3'}
    +    peerDependencies:
    +      '@ianvs/prettier-plugin-sort-imports': '*'
    +      '@prettier/plugin-pug': '*'
    +      '@shopify/prettier-plugin-liquid': '*'
    +      '@trivago/prettier-plugin-sort-imports': '*'
    +      prettier: ^3.0
    +      prettier-plugin-astro: '*'
    +      prettier-plugin-css-order: '*'
    +      prettier-plugin-import-sort: '*'
    +      prettier-plugin-jsdoc: '*'
    +      prettier-plugin-marko: '*'
    +      prettier-plugin-organize-attributes: '*'
    +      prettier-plugin-organize-imports: '*'
    +      prettier-plugin-sort-imports: '*'
    +      prettier-plugin-style-order: '*'
    +      prettier-plugin-svelte: '*'
    +      prettier-plugin-twig-melody: '*'
    +    peerDependenciesMeta:
    +      '@ianvs/prettier-plugin-sort-imports':
    +        optional: true
    +      '@prettier/plugin-pug':
    +        optional: true
    +      '@shopify/prettier-plugin-liquid':
    +        optional: true
    +      '@trivago/prettier-plugin-sort-imports':
    +        optional: true
    +      prettier-plugin-astro:
    +        optional: true
    +      prettier-plugin-css-order:
    +        optional: true
    +      prettier-plugin-import-sort:
    +        optional: true
    +      prettier-plugin-jsdoc:
    +        optional: true
    +      prettier-plugin-marko:
    +        optional: true
    +      prettier-plugin-organize-attributes:
    +        optional: true
    +      prettier-plugin-organize-imports:
    +        optional: true
    +      prettier-plugin-sort-imports:
    +        optional: true
    +      prettier-plugin-style-order:
    +        optional: true
    +      prettier-plugin-svelte:
    +        optional: true
    +      prettier-plugin-twig-melody:
    +        optional: true
    +
    +  prettier@3.2.5:
    +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
    +
    +  pretty-bytes@5.6.0:
    +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    +    engines: {node: '>=6'}
    +
    +  pretty-error@4.0.0:
    +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    +
    +  pretty-format@27.5.1:
    +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    +
    +  pretty-format@29.7.0:
    +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +
    +  pretty-ms@7.0.1:
    +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    +    engines: {node: '>=10'}
    +
    +  pretty-time@1.1.0:
    +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    +    engines: {node: '>=4'}
    +
    +  print-diff@1.0.0:
    +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    +    engines: {node: '>=8.3'}
    +
    +  printable-characters@1.0.42:
    +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    +
    +  prism-react-renderer@2.3.1:
    +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    +    peerDependencies:
    +      react: '>=16.0.0 || 18'
    +
    +  prismjs@1.29.0:
    +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    +    engines: {node: '>=6'}
    +
    +  proc-log@1.0.0:
    +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    +
    +  proc-log@3.0.0:
    +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  process-nextick-args@2.0.1:
    +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    +
    +  process@0.11.10:
    +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    +    engines: {node: '>= 0.6.0'}
    +
    +  promise-all-reject-late@1.0.1:
    +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    +
    +  promise-call-limit@1.0.2:
    +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    +
    +  promise-inflight@1.0.1:
    +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    +    peerDependencies:
    +      bluebird: '*'
    +    peerDependenciesMeta:
    +      bluebird:
    +        optional: true
    +
    +  promise-retry@2.0.1:
    +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    +    engines: {node: '>=10'}
    +
    +  prompts@2.4.2:
    +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    +    engines: {node: '>= 6'}
    +
    +  prop-types@15.8.1:
    +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    +
    +  property-information@6.4.1:
    +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    +
    +  proto-list@1.2.4:
    +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    +
    +  proxy-addr@2.0.7:
    +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    +    engines: {node: '>= 0.10'}
    +
    +  psl@1.9.0:
    +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    +
    +  punycode@1.4.1:
    +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    +
    +  punycode@2.3.1:
    +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    +    engines: {node: '>=6'}
    +
    +  pupa@3.1.0:
    +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    +    engines: {node: '>=12.20'}
    +
    +  pure-rand@6.1.0:
    +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    +
    +  qs@6.11.0:
    +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    +    engines: {node: '>=0.6'}
    +
    +  qs@6.12.0:
    +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    +    engines: {node: '>=0.6'}
    +
    +  querystringify@2.2.0:
    +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    +
    +  queue-microtask@1.2.3:
    +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    +
    +  queue@6.0.2:
    +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    +
    +  quick-lru@4.0.1:
    +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    +    engines: {node: '>=8'}
    +
    +  quick-lru@5.1.1:
    +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    +    engines: {node: '>=10'}
    +
    +  railroad-diagrams@1.0.0:
    +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    +
    +  rambda@7.5.0:
    +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    +
    +  ramda@0.29.1:
    +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    +
    +  randexp@0.4.6:
    +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    +    engines: {node: '>=0.12'}
    +
    +  randombytes@2.1.0:
    +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    +
    +  range-parser@1.2.0:
    +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    +    engines: {node: '>= 0.6'}
    +
    +  range-parser@1.2.1:
    +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    +    engines: {node: '>= 0.6'}
    +
    +  raw-body@2.5.2:
    +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    +    engines: {node: '>= 0.8'}
    +
    +  rc@1.2.8:
    +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    +    hasBin: true
    +
    +  react-dev-utils@12.0.1:
    +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      typescript: '>=2.7'
    +      webpack: '>=4'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +
    +  react-dom@18.2.0:
    +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    +    peerDependencies:
    +      react: ^18.2.0 || 18
    +
    +  react-error-overlay@6.0.11:
    +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    +
    +  react-fast-compare@3.2.2:
    +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    +
    +  react-helmet-async@1.3.0:
    +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-helmet-async@2.0.4:
    +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    +    peerDependencies:
    +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-is@16.13.1:
    +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    +
    +  react-is@17.0.2:
    +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    +
    +  react-is@18.2.0:
    +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    +
    +  react-json-view-lite@1.3.0:
    +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    +    engines: {node: '>=14'}
    +    peerDependencies:
    +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    +
    +  react-loadable-ssr-addon-v5-slorber@1.0.1:
    +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    +    engines: {node: '>=10.13.0'}
    +    peerDependencies:
    +      react-loadable: '*'
    +      webpack: '>=4.41.1 || 5.x'
    +
    +  react-player@2.15.1:
    +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    +    peerDependencies:
    +      react: '>=16.6.0 || 18'
    +
    +  react-router-config@5.1.1:
    +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +      react-router: '>=5'
    +
    +  react-router-dom@5.3.4:
    +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +
    +  react-router@5.3.4:
    +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    +    peerDependencies:
    +      react: '>=15 || 18'
    +
    +  react-string-replace@1.1.1:
    +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    +    engines: {node: '>=0.12.0'}
    +
    +  react-universal-interface@0.6.2:
    +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    +    peerDependencies:
    +      react: '*'
    +      tslib: '*'
    +
    +  react-use@17.5.0:
    +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    +    peerDependencies:
    +      react: '*'
    +      react-dom: '*'
    +
    +  react@18.2.0:
    +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  read-cache@1.0.0:
    +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    +
    +  read-cmd-shim@3.0.1:
    +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  read-ini-file@4.0.0:
    +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    +    engines: {node: '>=14.6'}
    +
    +  read-package-json-fast@2.0.3:
    +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    +    engines: {node: '>=10'}
    +
    +  read-package-json-fast@3.0.2:
    +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  read-package-json@6.0.4:
    +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  read-pkg-up@7.0.1:
    +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    +    engines: {node: '>=8'}
    +
    +  read-pkg-up@8.0.0:
    +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    +    engines: {node: '>=12'}
    +
    +  read-pkg@5.2.0:
    +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    +    engines: {node: '>=8'}
    +
    +  read-pkg@6.0.0:
    +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    +    engines: {node: '>=12'}
    +
    +  read-yaml-file@2.1.0:
    +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    +    engines: {node: '>=10.13'}
    +
    +  readable-stream@2.3.8:
    +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    +
    +  readable-stream@3.6.2:
    +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    +    engines: {node: '>= 6'}
    +
    +  readable-stream@4.5.2:
    +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +
    +  readdir-scoped-modules@1.1.0:
    +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    +    deprecated: This functionality has been moved to @npmcli/fs
    +
    +  readdirp@3.6.0:
    +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    +    engines: {node: '>=8.10.0'}
    +
    +  reading-time@1.5.0:
    +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    +
    +  realpath-missing@1.1.0:
    +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    +    engines: {node: '>=10'}
    +
    +  rechoir@0.6.2:
    +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    +    engines: {node: '>= 0.10'}
    +
    +  rechoir@0.8.0:
    +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  recursive-readdir@2.2.3:
    +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    +    engines: {node: '>=6.0.0'}
    +
    +  redent@4.0.0:
    +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    +    engines: {node: '>=12'}
    +
    +  reflect.getprototypeof@1.0.6:
    +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    +    engines: {node: '>= 0.4'}
    +
    +  regenerate-unicode-properties@10.1.1:
    +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    +    engines: {node: '>=4'}
    +
    +  regenerate@1.4.2:
    +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    +
    +  regenerator-runtime@0.14.1:
    +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    +
    +  regenerator-transform@0.15.2:
    +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    +
    +  regexp-tree@0.1.27:
    +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    +    hasBin: true
    +
    +  regexp.prototype.flags@1.5.2:
    +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    +    engines: {node: '>= 0.4'}
    +
    +  regexpu-core@5.3.2:
    +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    +    engines: {node: '>=4'}
    +
    +  registry-auth-token@5.0.2:
    +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    +    engines: {node: '>=14'}
    +
    +  registry-url@6.0.1:
    +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    +    engines: {node: '>=12'}
    +
    +  regjsparser@0.10.0:
    +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    +    hasBin: true
    +
    +  regjsparser@0.9.1:
    +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    +    hasBin: true
    +
    +  rehype-raw@7.0.0:
    +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    +
    +  relateurl@0.2.7:
    +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    +    engines: {node: '>= 0.10'}
    +
    +  remark-directive@3.0.0:
    +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    +
    +  remark-emoji@4.0.1:
    +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  remark-frontmatter@5.0.0:
    +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    +
    +  remark-gfm@4.0.0:
    +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    +
    +  remark-mdx@3.0.1:
    +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    +
    +  remark-parse@11.0.0:
    +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    +
    +  remark-rehype@11.1.0:
    +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    +
    +  remark-stringify@11.0.0:
    +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    +
    +  remove-trailing-separator@1.1.0:
    +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    +
    +  renderkid@3.0.0:
    +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    +
    +  replace-ext@1.0.1:
    +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    +    engines: {node: '>= 0.10'}
    +
    +  require-directory@2.1.1:
    +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    +    engines: {node: '>=0.10.0'}
    +
    +  require-from-string@2.0.2:
    +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    +    engines: {node: '>=0.10.0'}
    +
    +  require-like@0.1.2:
    +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    +
    +  requires-port@1.0.0:
    +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    +
    +  resize-observer-polyfill@1.5.1:
    +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    +
    +  resolve-alpn@1.2.1:
    +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    +
    +  resolve-cwd@3.0.0:
    +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    +    engines: {node: '>=8'}
    +
    +  resolve-from@4.0.0:
    +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    +    engines: {node: '>=4'}
    +
    +  resolve-from@5.0.0:
    +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    +    engines: {node: '>=8'}
    +
    +  resolve-pathname@3.0.0:
    +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    +
    +  resolve-pkg-maps@1.0.0:
    +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    +
    +  resolve.exports@2.0.2:
    +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    +    engines: {node: '>=10'}
    +
    +  resolve@1.22.8:
    +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    +    hasBin: true
    +
    +  resolve@2.0.0-next.5:
    +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    +    hasBin: true
    +
    +  responselike@3.0.0:
    +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    +    engines: {node: '>=14.16'}
    +
    +  restore-cursor@3.1.0:
    +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    +    engines: {node: '>=8'}
    +
    +  ret@0.1.15:
    +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    +    engines: {node: '>=0.12'}
    +
    +  retry@0.12.0:
    +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    +    engines: {node: '>= 4'}
    +
    +  retry@0.13.1:
    +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    +    engines: {node: '>= 4'}
    +
    +  reusify@1.0.4:
    +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    +
    +  rfc4648@1.5.3:
    +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    +
    +  right-pad@1.0.1:
    +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    +    engines: {node: '>= 0.10'}
    +
    +  rimraf@3.0.2:
    +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    +    hasBin: true
    +
    +  rimraf@5.0.5:
    +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    +    engines: {node: '>=14'}
    +    hasBin: true
    +
    +  rtl-css-js@1.16.1:
    +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    +
    +  rtl-detect@1.1.2:
    +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    +
    +  rtlcss@4.1.1:
    +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    +    engines: {node: '>=12.0.0'}
    +    hasBin: true
    +
    +  run-applescript@7.0.0:
    +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    +    engines: {node: '>=18'}
    +
    +  run-async@2.4.1:
    +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    +    engines: {node: '>=0.12.0'}
    +
    +  run-parallel@1.2.0:
    +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    +
    +  rxjs@7.8.1:
    +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    +
    +  safe-array-concat@1.1.2:
    +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    +    engines: {node: '>=0.4'}
    +
    +  safe-buffer@5.1.2:
    +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    +
    +  safe-buffer@5.2.1:
    +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    +
    +  safe-execa@0.1.2:
    +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    +    engines: {node: '>=12'}
    +
    +  safe-regex-test@1.0.3:
    +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    +    engines: {node: '>= 0.4'}
    +
    +  safe-stable-stringify@2.4.3:
    +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    +    engines: {node: '>=10'}
    +
    +  safer-buffer@2.1.2:
    +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    +
    +  sanitize-html@2.13.0:
    +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    +
    +  sax@1.3.0:
    +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    +
    +  saxes@6.0.0:
    +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    +    engines: {node: '>=v12.22.7'}
    +
    +  sbd@1.0.19:
    +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    +
    +  scheduler@0.23.0:
    +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    +
    +  schema-utils@2.7.0:
    +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    +    engines: {node: '>= 8.9.0'}
    +
    +  schema-utils@3.3.0:
    +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    +    engines: {node: '>= 10.13.0'}
    +
    +  schema-utils@4.2.0:
    +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    +    engines: {node: '>= 12.13.0'}
    +
    +  scoped-regex@2.1.0:
    +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    +    engines: {node: '>=8'}
    +
    +  screenfull@5.2.0:
    +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  search-insights@2.13.0:
    +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    +
    +  section-matter@1.0.0:
    +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    +    engines: {node: '>=4'}
    +
    +  secure-compare@3.0.1:
    +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    +
    +  select-hose@2.0.0:
    +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    +
    +  selfsigned@2.4.1:
    +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    +    engines: {node: '>=10'}
    +
    +  semver-diff@4.0.0:
    +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    +    engines: {node: '>=12'}
    +
    +  semver@5.7.2:
    +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    +    hasBin: true
    +
    +  semver@6.3.1:
    +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    +    hasBin: true
    +
    +  semver@7.5.4:
    +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  semver@7.6.0:
    +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  send@0.18.0:
    +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  serialize-javascript@6.0.0:
    +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    +
    +  serialize-javascript@6.0.2:
    +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    +
    +  serve-handler@6.1.5:
    +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    +
    +  serve-index@1.9.1:
    +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  serve-static@1.15.0:
    +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  set-blocking@2.0.0:
    +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    +
    +  set-function-length@1.2.2:
    +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    +    engines: {node: '>= 0.4'}
    +
    +  set-function-name@2.0.2:
    +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  set-harmonic-interval@1.0.1:
    +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    +    engines: {node: '>=6.9'}
    +
    +  setimmediate@1.0.5:
    +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    +
    +  setprototypeof@1.1.0:
    +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    +
    +  setprototypeof@1.2.0:
    +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    +
    +  shallow-clone@3.0.1:
    +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    +    engines: {node: '>=8'}
    +
    +  shallowequal@1.1.0:
    +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    +
    +  shebang-command@2.0.0:
    +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    +    engines: {node: '>=8'}
    +
    +  shebang-regex@3.0.0:
    +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    +    engines: {node: '>=8'}
    +
    +  shell-quote@1.8.1:
    +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    +
    +  shelljs@0.8.5:
    +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +
    +  side-channel@1.0.6:
    +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    +    engines: {node: '>= 0.4'}
    +
    +  signal-exit@3.0.7:
    +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    +
    +  signal-exit@4.1.0:
    +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    +    engines: {node: '>=14'}
    +
    +  sigstore@1.9.0:
    +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  simple-swizzle@0.2.2:
    +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    +
    +  sinon@17.0.1:
    +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    +
    +  sirv@2.0.4:
    +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    +    engines: {node: '>= 10'}
    +
    +  sisteransi@1.0.5:
    +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    +
    +  sitemap@7.1.1:
    +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    +    hasBin: true
    +
    +  skin-tone@2.0.0:
    +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    +    engines: {node: '>=8'}
    +
    +  slash@3.0.0:
    +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    +    engines: {node: '>=8'}
    +
    +  slash@4.0.0:
    +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    +    engines: {node: '>=12'}
    +
    +  smart-buffer@4.2.0:
    +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    +
    +  snake-case@3.0.4:
    +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    +
    +  sockjs@0.3.24:
    +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    +
    +  socks-proxy-agent@6.1.1:
    +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    +    engines: {node: '>= 10'}
    +
    +  socks-proxy-agent@6.2.1:
    +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    +    engines: {node: '>= 10'}
    +
    +  socks-proxy-agent@7.0.0:
    +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    +    engines: {node: '>= 10'}
    +
    +  socks@2.8.1:
    +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    +
    +  sort-css-media-queries@2.1.0:
    +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    +    engines: {node: '>= 6.3.0'}
    +
    +  sort-keys@4.2.0:
    +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    +    engines: {node: '>=8'}
    +
    +  sort-keys@5.0.0:
    +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    +    engines: {node: '>=12'}
    +
    +  source-map-js@1.2.0:
    +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map-support@0.5.13:
    +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    +
    +  source-map-support@0.5.21:
    +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    +
    +  source-map-url@0.4.1:
    +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    +    deprecated: See https://github.com/lydell/source-map-url#deprecated
    +
    +  source-map@0.5.6:
    +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map@0.6.1:
    +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  source-map@0.7.4:
    +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    +    engines: {node: '>= 8'}
    +
    +  space-separated-tokens@2.0.2:
    +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    +
    +  spdx-correct@3.2.0:
    +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    +
    +  spdx-exceptions@2.5.0:
    +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    +
    +  spdx-expression-parse@3.0.1:
    +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    +
    +  spdx-license-ids@3.0.17:
    +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    +
    +  spdy-transport@3.0.0:
    +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    +
    +  spdy@4.0.2:
    +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    +    engines: {node: '>=6.0.0'}
    +
    +  split2@3.2.2:
    +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    +
    +  sprintf-js@1.0.3:
    +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    +
    +  sprintf-js@1.1.3:
    +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    +
    +  srcset@4.0.0:
    +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    +    engines: {node: '>=12'}
    +
    +  ssri@10.0.5:
    +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  ssri@8.0.1:
    +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    +    engines: {node: '>= 8'}
    +
    +  ssri@9.0.1:
    +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  stable@0.1.8:
    +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    +
    +  stack-generator@2.0.10:
    +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    +
    +  stack-trace@0.0.10:
    +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    +
    +  stack-utils@2.0.6:
    +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    +    engines: {node: '>=10'}
    +
    +  stackframe@1.3.4:
    +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    +
    +  stacktrace-gps@3.1.2:
    +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    +
    +  stacktrace-js@2.0.2:
    +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    +
    +  stacktracey@2.1.8:
    +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    +
    +  statuses@1.5.0:
    +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    +    engines: {node: '>= 0.6'}
    +
    +  statuses@2.0.1:
    +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  std-env@3.7.0:
    +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    +
    +  stop-iteration-iterator@1.0.0:
    +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  streamsearch@1.1.0:
    +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    +    engines: {node: '>=10.0.0'}
    +
    +  string-length@4.0.2:
    +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    +    engines: {node: '>=10'}
    +
    +  string-width@4.2.3:
    +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    +    engines: {node: '>=8'}
    +
    +  string-width@5.1.2:
    +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    +    engines: {node: '>=12'}
    +
    +  string.prototype.matchall@4.0.11:
    +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    +    engines: {node: '>= 0.4'}
    +
    +  string.prototype.trim@1.2.9:
    +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    +    engines: {node: '>= 0.4'}
    +
    +  string.prototype.trimend@1.0.8:
    +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    +
    +  string.prototype.trimstart@1.0.8:
    +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    +    engines: {node: '>= 0.4'}
    +
    +  string_decoder@1.1.1:
    +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    +
    +  string_decoder@1.3.0:
    +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    +
    +  stringify-entities@4.0.3:
    +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    +
    +  stringify-object@3.3.0:
    +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    +    engines: {node: '>=4'}
    +
    +  strip-ansi@6.0.1:
    +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    +    engines: {node: '>=8'}
    +
    +  strip-ansi@7.1.0:
    +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    +    engines: {node: '>=12'}
    +
    +  strip-bom-buf@1.0.0:
    +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    +    engines: {node: '>=4'}
    +
    +  strip-bom-stream@2.0.0:
    +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom-string@1.0.0:
    +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom@2.0.0:
    +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-bom@3.0.0:
    +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    +    engines: {node: '>=4'}
    +
    +  strip-bom@4.0.0:
    +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    +    engines: {node: '>=8'}
    +
    +  strip-comments-strings@1.2.0:
    +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    +
    +  strip-final-newline@2.0.0:
    +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    +    engines: {node: '>=6'}
    +
    +  strip-indent@3.0.0:
    +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    +    engines: {node: '>=8'}
    +
    +  strip-indent@4.0.0:
    +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    +    engines: {node: '>=12'}
    +
    +  strip-json-comments@2.0.1:
    +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    +    engines: {node: '>=0.10.0'}
    +
    +  strip-json-comments@3.1.1:
    +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    +    engines: {node: '>=8'}
    +
    +  strnum@1.0.5:
    +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    +
    +  style-loader@3.3.4:
    +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +
    +  style-to-object@0.4.4:
    +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    +
    +  style-to-object@1.0.5:
    +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    +
    +  styled-jsx@5.1.1:
    +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    +    engines: {node: '>= 12.0.0'}
    +    peerDependencies:
    +      '@babel/core': '*'
    +      babel-plugin-macros: '*'
    +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      babel-plugin-macros:
    +        optional: true
    +
    +  stylehacks@5.1.1:
    +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    +    engines: {node: ^10 || ^12 || >=14.0}
    +    peerDependencies:
    +      postcss: ^8.2.15
    +
    +  stylis@4.3.1:
    +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    +
    +  sucrase@3.35.0:
    +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    +    engines: {node: '>=16 || 14 >=14.17'}
    +    hasBin: true
    +
    +  supports-color@5.5.0:
    +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    +    engines: {node: '>=4'}
    +
    +  supports-color@7.2.0:
    +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    +    engines: {node: '>=8'}
    +
    +  supports-color@8.1.1:
    +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    +    engines: {node: '>=10'}
    +
    +  supports-preserve-symlinks-flag@1.0.0:
    +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    +    engines: {node: '>= 0.4'}
    +
    +  svg-parser@2.0.4:
    +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    +
    +  svgo@2.8.0:
    +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +
    +  svgo@3.2.0:
    +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
    +
    +  symbol-tree@3.2.4:
    +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    +
    +  syncpack@12.3.0:
    +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    +    engines: {node: '>=16'}
    +    hasBin: true
    +
    +  tail@2.2.6:
    +    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
    +    engines: {node: '>= 6.0.0'}
    +
    +  tailwindcss@3.4.1:
    +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    +    engines: {node: '>=14.0.0'}
    +    hasBin: true
    +
    +  tapable@1.1.3:
    +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    +    engines: {node: '>=6'}
    +
    +  tapable@2.2.1:
    +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    +    engines: {node: '>=6'}
    +
    +  tar@6.2.1:
    +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    +    engines: {node: '>=10'}
    +
    +  terser-webpack-plugin@5.3.10:
    +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      '@swc/core': '*'
    +      esbuild: '*'
    +      uglify-js: '*'
    +      webpack: ^5.1.0
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      esbuild:
    +        optional: true
    +      uglify-js:
    +        optional: true
    +
    +  terser@5.29.2:
    +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +
    +  test-exclude@6.0.0:
    +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    +    engines: {node: '>=8'}
    +
    +  text-hex@1.0.0:
    +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    +
    +  text-table@0.2.0:
    +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    +
    +  textextensions@5.16.0:
    +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    +    engines: {node: '>=0.8'}
    +
    +  thenify-all@1.6.0:
    +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    +    engines: {node: '>=0.8'}
    +
    +  thenify@3.3.1:
    +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    +
    +  throttle-debounce@3.0.1:
    +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    +    engines: {node: '>=10'}
    +
    +  through2@4.0.2:
    +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    +
    +  through@2.3.8:
    +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    +
    +  thunky@1.1.0:
    +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    +
    +  tightrope@0.1.0:
    +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    +    engines: {node: '>=14'}
    +
    +  tiny-invariant@1.3.3:
    +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    +
    +  tiny-warning@1.0.3:
    +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    +
    +  tinycolor2@1.6.0:
    +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    +
    +  tmp@0.0.33:
    +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    +    engines: {node: '>=0.6.0'}
    +
    +  tmpl@1.0.5:
    +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    +
    +  to-fast-properties@2.0.0:
    +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    +    engines: {node: '>=4'}
    +
    +  to-regex-range@5.0.1:
    +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    +    engines: {node: '>=8.0'}
    +
    +  toggle-selection@1.0.6:
    +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    +
    +  toidentifier@1.0.1:
    +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    +    engines: {node: '>=0.6'}
    +
    +  totalist@3.0.1:
    +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    +    engines: {node: '>=6'}
    +
    +  tough-cookie@4.1.3:
    +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    +    engines: {node: '>=6'}
    +
    +  tr46@0.0.3:
    +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    +
    +  tr46@3.0.0:
    +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    +    engines: {node: '>=12'}
    +
    +  treeverse@1.0.4:
    +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    +
    +  trie-search@2.0.0:
    +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    +
    +  trim-lines@3.0.1:
    +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    +
    +  trim-newlines@4.1.1:
    +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    +    engines: {node: '>=12'}
    +
    +  triple-beam@1.4.1:
    +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    +    engines: {node: '>= 14.0.0'}
    +
    +  trough@2.2.0:
    +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    +
    +  ts-api-utils@1.3.0:
    +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    +    engines: {node: '>=16'}
    +    peerDependencies:
    +      typescript: '>=4.2.0'
    +
    +  ts-easing@0.2.0:
    +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    +
    +  ts-interface-checker@0.1.13:
    +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    +
    +  ts-jest@29.1.2:
    +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    +    hasBin: true
    +    peerDependencies:
    +      '@babel/core': '>=7.0.0-beta.0 <8'
    +      '@jest/types': ^29.0.0
    +      babel-jest: ^29.0.0
    +      esbuild: '*'
    +      jest: ^29.0.0
    +      typescript: '>=4.3 <6'
    +    peerDependenciesMeta:
    +      '@babel/core':
    +        optional: true
    +      '@jest/types':
    +        optional: true
    +      babel-jest:
    +        optional: true
    +      esbuild:
    +        optional: true
    +
    +  ts-loader@9.5.1:
    +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      typescript: '*'
    +      webpack: ^5.0.0
    +
    +  ts-node@10.9.2:
    +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    +    hasBin: true
    +    peerDependencies:
    +      '@swc/core': '>=1.2.50'
    +      '@swc/wasm': '>=1.2.50'
    +      '@types/node': '*'
    +      typescript: '>=2.7'
    +    peerDependenciesMeta:
    +      '@swc/core':
    +        optional: true
    +      '@swc/wasm':
    +        optional: true
    +
    +  ts-toolbelt@9.6.0:
    +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    +
    +  tsconfig-paths@3.15.0:
    +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    +
    +  tslib@2.6.2:
    +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    +
    +  tuf-js@1.1.7:
    +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  type-check@0.4.0:
    +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  type-detect@4.0.8:
    +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    +    engines: {node: '>=4'}
    +
    +  type-fest@0.20.2:
    +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@0.21.3:
    +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@0.6.0:
    +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    +    engines: {node: '>=8'}
    +
    +  type-fest@0.8.1:
    +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    +    engines: {node: '>=8'}
    +
    +  type-fest@1.4.0:
    +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    +    engines: {node: '>=10'}
    +
    +  type-fest@2.19.0:
    +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    +    engines: {node: '>=12.20'}
    +
    +  type-fest@4.14.0:
    +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    +    engines: {node: '>=16'}
    +
    +  type-is@1.6.18:
    +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    +    engines: {node: '>= 0.6'}
    +
    +  typed-array-buffer@1.0.2:
    +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-byte-length@1.0.1:
    +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-byte-offset@1.0.2:
    +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    +    engines: {node: '>= 0.4'}
    +
    +  typed-array-length@1.0.6:
    +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    +    engines: {node: '>= 0.4'}
    +
    +  typedarray-to-buffer@3.1.5:
    +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    +
    +  typescript@5.4.3:
    +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    +    engines: {node: '>=14.17'}
    +    hasBin: true
    +
    +  unbox-primitive@1.0.2:
    +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    +
    +  unicode-canonical-property-names-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    +    engines: {node: '>=4'}
    +
    +  unicode-emoji-modifier-base@1.0.0:
    +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    +    engines: {node: '>=4'}
    +
    +  unicode-match-property-ecmascript@2.0.0:
    +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    +    engines: {node: '>=4'}
    +
    +  unicode-match-property-value-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    +    engines: {node: '>=4'}
    +
    +  unicode-property-aliases-ecmascript@2.1.0:
    +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    +    engines: {node: '>=4'}
    +
    +  unified@11.0.4:
    +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    +
    +  union@0.5.0:
    +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    +    engines: {node: '>= 0.8.0'}
    +
    +  unique-filename@1.1.1:
    +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    +
    +  unique-filename@2.0.1:
    +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  unique-filename@3.0.0:
    +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  unique-slug@2.0.2:
    +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    +
    +  unique-slug@3.0.0:
    +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  unique-slug@4.0.0:
    +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  unique-string@2.0.0:
    +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    +    engines: {node: '>=8'}
    +
    +  unique-string@3.0.0:
    +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    +    engines: {node: '>=12'}
    +
    +  unist-util-is@6.0.0:
    +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    +
    +  unist-util-position-from-estree@2.0.0:
    +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    +
    +  unist-util-position@5.0.0:
    +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    +
    +  unist-util-remove-position@5.0.0:
    +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    +
    +  unist-util-stringify-position@4.0.0:
    +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    +
    +  unist-util-visit-parents@6.0.1:
    +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    +
    +  unist-util-visit@5.0.0:
    +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    +
    +  universal-user-agent@6.0.1:
    +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    +
    +  universalify@0.2.0:
    +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    +    engines: {node: '>= 4.0.0'}
    +
    +  universalify@2.0.1:
    +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    +    engines: {node: '>= 10.0.0'}
    +
    +  unpipe@1.0.0:
    +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    +    engines: {node: '>= 0.8'}
    +
    +  untildify@4.0.0:
    +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    +    engines: {node: '>=8'}
    +
    +  update-browserslist-db@1.0.13:
    +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    +    hasBin: true
    +    peerDependencies:
    +      browserslist: '>= 4.21.0'
    +
    +  update-notifier@6.0.2:
    +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    +    engines: {node: '>=14.16'}
    +
    +  uri-js@4.4.1:
    +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    +
    +  url-join@4.0.1:
    +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    +
    +  url-loader@4.1.1:
    +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    +    engines: {node: '>= 10.13.0'}
    +    peerDependencies:
    +      file-loader: '*'
    +      webpack: ^4.0.0 || ^5.0.0
    +    peerDependenciesMeta:
    +      file-loader:
    +        optional: true
    +
    +  url-parse@1.5.10:
    +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    +
    +  util-deprecate@1.0.2:
    +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    +
    +  utila@0.4.0:
    +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    +
    +  utility-types@3.11.0:
    +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    +    engines: {node: '>= 4'}
    +
    +  utils-merge@1.0.1:
    +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    +    engines: {node: '>= 0.4.0'}
    +
    +  uuid@8.3.2:
    +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    +    hasBin: true
    +
    +  uuid@9.0.1:
    +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    +    hasBin: true
    +
    +  v8-compile-cache-lib@3.0.1:
    +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    +
    +  v8-to-istanbul@9.2.0:
    +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    +    engines: {node: '>=10.12.0'}
    +
    +  validate-npm-package-license@3.0.4:
    +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    +
    +  validate-npm-package-name@3.0.0:
    +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    +
    +  validate-npm-package-name@5.0.0:
    +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  value-equal@1.0.1:
    +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    +
    +  vary@1.1.2:
    +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    +    engines: {node: '>= 0.8'}
    +
    +  vfile-location@5.0.2:
    +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    +
    +  vfile-message@4.0.2:
    +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    +
    +  vfile@6.0.1:
    +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    +
    +  vinyl-file@3.0.0:
    +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    +    engines: {node: '>=4'}
    +
    +  vinyl@2.2.1:
    +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    +    engines: {node: '>= 0.10'}
    +
    +  vscode-uri@3.0.8:
    +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    +
    +  w3c-xmlserializer@4.0.0:
    +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    +    engines: {node: '>=14'}
    +
    +  walk-up-path@1.0.0:
    +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    +
    +  walker@1.0.8:
    +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    +
    +  watchpack@2.4.1:
    +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    +    engines: {node: '>=10.13.0'}
    +
    +  wbuf@1.7.3:
    +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    +
    +  wcwidth@1.0.1:
    +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    +
    +  web-namespaces@2.0.1:
    +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    +
    +  webidl-conversions@3.0.1:
    +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    +
    +  webidl-conversions@7.0.0:
    +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    +    engines: {node: '>=12'}
    +
    +  webpack-bundle-analyzer@4.10.1:
    +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    +    engines: {node: '>= 10.13.0'}
    +    hasBin: true
    +
    +  webpack-cli@5.1.4:
    +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    +    engines: {node: '>=14.15.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@webpack-cli/generators': '*'
    +      webpack: 5.x.x
    +      webpack-bundle-analyzer: '*'
    +      webpack-dev-server: '*'
    +    peerDependenciesMeta:
    +      '@webpack-cli/generators':
    +        optional: true
    +      webpack-bundle-analyzer:
    +        optional: true
    +      webpack-dev-server:
    +        optional: true
    +
    +  webpack-dev-middleware@5.3.4:
    +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    +    engines: {node: '>= 12.13.0'}
    +    peerDependencies:
    +      webpack: ^4.0.0 || ^5.0.0
    +
    +  webpack-dev-middleware@7.1.1:
    +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    +    engines: {node: '>= 18.12.0'}
    +    peerDependencies:
    +      webpack: ^5.0.0
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +
    +  webpack-dev-server@4.15.2:
    +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    +    engines: {node: '>= 12.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^4.37.0 || ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
    +
    +  webpack-dev-server@5.0.4:
    +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    +    engines: {node: '>= 18.12.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack: ^5.0.0
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack:
    +        optional: true
    +      webpack-cli:
    +        optional: true
    +
    +  webpack-merge@5.10.0:
    +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    +    engines: {node: '>=10.0.0'}
    +
    +  webpack-sources@3.2.3:
    +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    +    engines: {node: '>=10.13.0'}
    +
    +  webpack@5.91.0:
    +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    +    engines: {node: '>=10.13.0'}
    +    hasBin: true
    +    peerDependencies:
    +      webpack-cli: '*'
    +    peerDependenciesMeta:
    +      webpack-cli:
    +        optional: true
    +
    +  webpackbar@5.0.2:
    +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    +    engines: {node: '>=12'}
    +    peerDependencies:
    +      webpack: 3 || 4 || 5
    +
    +  websocket-driver@0.7.4:
    +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  websocket-extensions@0.1.4:
    +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    +    engines: {node: '>=0.8.0'}
    +
    +  whatwg-encoding@2.0.0:
    +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-mimetype@3.0.0:
    +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-url@11.0.0:
    +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    +    engines: {node: '>=12'}
    +
    +  whatwg-url@5.0.0:
    +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    +
    +  which-boxed-primitive@1.0.2:
    +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    +
    +  which-builtin-type@1.1.3:
    +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    +    engines: {node: '>= 0.4'}
    +
    +  which-collection@1.0.2:
    +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    +    engines: {node: '>= 0.4'}
    +
    +  which-pm@2.0.0:
    +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    +    engines: {node: '>=8.15'}
    +
    +  which-typed-array@1.1.15:
    +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    +    engines: {node: '>= 0.4'}
    +
    +  which@1.3.1:
    +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    +    hasBin: true
    +
    +  which@2.0.2:
    +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    +    engines: {node: '>= 8'}
    +    hasBin: true
    +
    +  which@3.0.1:
    +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +    hasBin: true
    +
    +  wide-align@1.1.5:
    +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    +
    +  widest-line@3.1.0:
    +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    +    engines: {node: '>=8'}
    +
    +  widest-line@4.0.1:
    +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    +    engines: {node: '>=12'}
    +
    +  wildcard@2.0.1:
    +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    +
    +  winston-transport@4.7.0:
    +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  winston@3.11.0:
    +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    +    engines: {node: '>= 12.0.0'}
    +
    +  workerpool@6.2.1:
    +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    +
    +  wrap-ansi@6.2.0:
    +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    +    engines: {node: '>=8'}
    +
    +  wrap-ansi@7.0.0:
    +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    +    engines: {node: '>=10'}
    +
    +  wrap-ansi@8.1.0:
    +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    +    engines: {node: '>=12'}
    +
    +  wrappy@1.0.2:
    +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    +
    +  write-file-atomic@3.0.3:
    +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    +
    +  write-file-atomic@4.0.2:
    +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +
    +  write-file-atomic@5.0.1:
    +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +
    +  write-json-file@5.0.0:
    +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +
    +  write-yaml-file@5.0.0:
    +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    +    engines: {node: '>=16.14'}
    +
    +  ws@7.5.9:
    +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    +    engines: {node: '>=8.3.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: ^5.0.2
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +
    +  ws@8.16.0:
    +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    +    engines: {node: '>=10.0.0'}
    +    peerDependencies:
    +      bufferutil: ^4.0.1
    +      utf-8-validate: '>=5.0.2'
    +    peerDependenciesMeta:
    +      bufferutil:
    +        optional: true
    +      utf-8-validate:
    +        optional: true
    +
    +  xdg-basedir@5.1.0:
    +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    +    engines: {node: '>=12'}
    +
    +  xml-js@1.6.11:
    +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    +    hasBin: true
    +
    +  xml-name-validator@4.0.0:
    +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    +    engines: {node: '>=12'}
    +
    +  xmlchars@2.2.0:
    +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    +
    +  y18n@5.0.8:
    +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    +    engines: {node: '>=10'}
    +
    +  yallist@3.1.1:
    +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    +
    +  yallist@4.0.0:
    +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    +
    +  yaml@1.10.2:
    +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    +    engines: {node: '>= 6'}
    +
    +  yaml@2.4.1:
    +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    +    engines: {node: '>= 14'}
    +    hasBin: true
    +
    +  yargs-parser@20.2.4:
    +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    +    engines: {node: '>=10'}
    +
    +  yargs-parser@20.2.9:
    +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    +    engines: {node: '>=10'}
    +
    +  yargs-parser@21.1.1:
    +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    +    engines: {node: '>=12'}
    +
    +  yargs-unparser@2.0.0:
    +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    +    engines: {node: '>=10'}
    +
    +  yargs@16.2.0:
    +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    +    engines: {node: '>=10'}
    +
    +  yargs@17.7.2:
    +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    +    engines: {node: '>=12'}
    +
    +  yeoman-environment@3.19.3:
    +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    +    engines: {node: '>=12.10.0'}
    +    hasBin: true
    +
    +  yeoman-generator@5.10.0:
    +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    +    engines: {node: '>=12.10.0'}
    +    peerDependencies:
    +      yeoman-environment: ^3.2.0
    +    peerDependenciesMeta:
    +      yeoman-environment:
    +        optional: true
    +
    +  yn@3.1.1:
    +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    +    engines: {node: '>=6'}
    +
    +  yocto-queue@0.1.0:
    +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    +    engines: {node: '>=10'}
    +
    +  yocto-queue@1.0.0:
    +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    +    engines: {node: '>=12.20'}
    +
    +  zod@3.22.4:
    +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    +
    +  zwitch@2.0.4:
    +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    +
    +snapshots:
    +
    +  '@aashutoshrathi/word-wrap@1.2.6': {}
    +
    +  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -788,161 +9693,105 @@ packages:
           - '@algolia/client-search'
           - algoliasearch
           - search-insights
    -    dev: false
     
    -  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
    -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
    -    peerDependencies:
    -      search-insights: '>= 1 < 3'
    +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
           - algoliasearch
    -    dev: false
     
    -  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    +  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
         dependencies:
           '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
    -    peerDependencies:
    -      '@algolia/client-search': '>= 4.9.1 < 6'
    -      algoliasearch: '>= 4.9.1 < 6'
    +  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
         dependencies:
           '@algolia/client-search': 4.22.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /@algolia/cache-browser-local-storage@4.22.1:
    -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
    +  '@algolia/cache-browser-local-storage@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
    -    dev: false
     
    -  /@algolia/cache-common@4.22.1:
    -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
    -    dev: false
    +  '@algolia/cache-common@4.22.1': {}
     
    -  /@algolia/cache-in-memory@4.22.1:
    -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
    +  '@algolia/cache-in-memory@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
    -    dev: false
     
    -  /@algolia/client-account@4.22.1:
    -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
    +  '@algolia/client-account@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-analytics@4.22.1:
    -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
    +  '@algolia/client-analytics@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/client-search': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-common@4.22.1:
    -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
    +  '@algolia/client-common@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-personalization@4.22.1:
    -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
    +  '@algolia/client-personalization@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/client-search@4.22.1:
    -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
    +  '@algolia/client-search@4.22.1':
         dependencies:
           '@algolia/client-common': 4.22.1
           '@algolia/requester-common': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /@algolia/events@4.0.1:
    -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
    -    dev: false
    +  '@algolia/events@4.0.1': {}
     
    -  /@algolia/logger-common@4.22.1:
    -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
    -    dev: false
    +  '@algolia/logger-common@4.22.1': {}
     
    -  /@algolia/logger-console@4.22.1:
    -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
    +  '@algolia/logger-console@4.22.1':
         dependencies:
           '@algolia/logger-common': 4.22.1
    -    dev: false
     
    -  /@algolia/requester-browser-xhr@4.22.1:
    -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
    +  '@algolia/requester-browser-xhr@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@algolia/requester-common@4.22.1:
    -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
    -    dev: false
    +  '@algolia/requester-common@4.22.1': {}
     
    -  /@algolia/requester-node-http@4.22.1:
    -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
    +  '@algolia/requester-node-http@4.22.1':
         dependencies:
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@algolia/transporter@4.22.1:
    -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
    +  '@algolia/transporter@4.22.1':
         dependencies:
           '@algolia/cache-common': 4.22.1
           '@algolia/logger-common': 4.22.1
           '@algolia/requester-common': 4.22.1
    -    dev: false
     
    -  /@alloc/quick-lru@5.2.0:
    -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  '@alloc/quick-lru@5.2.0': {}
     
    -  /@ampproject/remapping@2.3.0:
    -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    -    engines: {node: '>=6.0.0'}
    +  '@ampproject/remapping@2.3.0':
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@babel/code-frame@7.24.2:
    -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/code-frame@7.24.2':
         dependencies:
           '@babel/highlight': 7.24.2
           picocolors: 1.0.0
     
    -  /@babel/compat-data@7.24.1:
    -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/compat-data@7.24.1': {}
     
    -  /@babel/core@7.24.3:
    -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/core@7.24.3':
         dependencies:
           '@ampproject/remapping': 2.3.0
           '@babel/code-frame': 7.24.2
    @@ -962,30 +9811,22 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/generator@7.24.1:
    -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/generator@7.24.1':
         dependencies:
           '@babel/types': 7.24.0
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
           jsesc: 2.5.2
     
    -  /@babel/helper-annotate-as-pure@7.22.5:
    -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-annotate-as-pure@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
    -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-compilation-targets@7.23.6:
    -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-compilation-targets@7.23.6':
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/helper-validator-option': 7.23.5
    @@ -993,11 +9834,7 @@ packages:
           lru-cache: 5.1.1
           semver: 6.3.1
     
    -  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1010,21 +9847,14 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           semver: 6.3.1
     
    -  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           regexpu-core: 5.3.2
           semver: 6.3.1
     
    -  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -1035,40 +9865,26 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/helper-environment-visitor@7.22.20:
    -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-environment-visitor@7.22.20': {}
     
    -  /@babel/helper-function-name@7.23.0:
    -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-function-name@7.23.0':
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  /@babel/helper-hoist-variables@7.22.5:
    -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-hoist-variables@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-member-expression-to-functions@7.23.0:
    -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-member-expression-to-functions@7.23.0':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-module-imports@7.24.3:
    -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-module-imports@7.24.3':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -1077,79 +9893,51 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           '@babel/helper-validator-identifier': 7.22.20
     
    -  /@babel/helper-optimise-call-expression@7.22.5:
    -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-optimise-call-expression@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-plugin-utils@7.24.0:
    -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-plugin-utils@7.24.0': {}
     
    -  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-wrap-function': 7.22.20
     
    -  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-member-expression-to-functions': 7.23.0
           '@babel/helper-optimise-call-expression': 7.22.5
     
    -  /@babel/helper-simple-access@7.22.5:
    -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-simple-access@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
    -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-split-export-declaration@7.22.6:
    -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-split-export-declaration@7.22.6':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/helper-string-parser@7.24.1:
    -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-string-parser@7.24.1': {}
     
    -  /@babel/helper-validator-identifier@7.22.20:
    -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-validator-identifier@7.22.20': {}
     
    -  /@babel/helper-validator-option@7.23.5:
    -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-validator-option@7.23.5': {}
     
    -  /@babel/helper-wrap-function@7.22.20:
    -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helper-wrap-function@7.22.20':
         dependencies:
           '@babel/helper-function-name': 7.23.0
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
     
    -  /@babel/helpers@7.24.1:
    -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/helpers@7.24.1':
         dependencies:
           '@babel/template': 7.24.0
           '@babel/traverse': 7.24.1
    @@ -1157,252 +9945,151 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/highlight@7.24.2:
    -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/highlight@7.24.2':
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           chalk: 2.4.2
           js-tokens: 4.0.0
           picocolors: 1.0.0
     
    -  /@babel/parser@7.24.1:
    -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
    -    engines: {node: '>=6.0.0'}
    -    hasBin: true
    +  '@babel/parser@7.24.1':
         dependencies:
           '@babel/types': 7.24.0
     
    -  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.13.0
    +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    -    dev: true
     
    -  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-environment-visitor': 7.22.20
    @@ -1410,61 +10097,37 @@ packages:
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    +  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1476,159 +10139,95 @@ packages:
           '@babel/helper-split-export-declaration': 7.22.6
           globals: 11.12.0
     
    -  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/template': 7.24.0
     
    -  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
           '@babel/helper-function-name': 7.23.0
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-simple-access': 7.22.5
     
    -  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-hoist-variables': 7.22.5
    @@ -1636,60 +10235,36 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-validator-identifier': 7.22.20
     
    -  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-compilation-targets': 7.23.6
    @@ -1697,61 +10272,37 @@ packages:
           '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    -      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
    -
    -  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
    +
    +  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1759,47 +10310,27 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1808,40 +10339,24 @@ packages:
           '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
           '@babel/types': 7.24.0
     
    -  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           regenerator-transform: 0.15.2
     
    -  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-module-imports': 7.24.3
    @@ -1852,59 +10367,34 @@ packages:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
     
    -  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-annotate-as-pure': 7.22.5
    @@ -1912,50 +10402,30 @@ packages:
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
           '@babel/helper-plugin-utils': 7.24.0
     
    -  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -2041,21 +10511,14 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
    +  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
           '@babel/types': 7.24.0
           esutils: 2.0.3
     
    -  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -2065,11 +10528,7 @@ packages:
           '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
           '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
    -    engines: {node: '>=6.9.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-plugin-utils': 7.24.0
    @@ -2078,34 +10537,24 @@ packages:
           '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
           '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
     
    -  /@babel/regjsgen@0.8.0:
    -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
    +  '@babel/regjsgen@0.8.0': {}
     
    -  /@babel/runtime-corejs3@7.24.1:
    -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/runtime-corejs3@7.24.1':
         dependencies:
           core-js-pure: 3.36.1
           regenerator-runtime: 0.14.1
    -    dev: false
     
    -  /@babel/runtime@7.24.1:
    -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/runtime@7.24.1':
         dependencies:
           regenerator-runtime: 0.14.1
     
    -  /@babel/template@7.24.0:
    -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/template@7.24.0':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
     
    -  /@babel/traverse@7.24.1:
    -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/traverse@7.24.1':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/generator': 7.24.1
    @@ -2120,67 +10569,34 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@babel/types@7.24.0:
    -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
    -    engines: {node: '>=6.9.0'}
    +  '@babel/types@7.24.0':
         dependencies:
           '@babel/helper-string-parser': 7.24.1
           '@babel/helper-validator-identifier': 7.22.20
           to-fast-properties: 2.0.0
     
    -  /@bcoe/v8-coverage@0.2.3:
    -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    -    dev: true
    +  '@bcoe/v8-coverage@0.2.3': {}
     
    -  /@colors/colors@1.5.0:
    -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
    -    engines: {node: '>=0.1.90'}
    -    requiresBuild: true
    -    dev: false
    +  '@colors/colors@1.5.0':
         optional: true
     
    -  /@colors/colors@1.6.0:
    -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
    -    engines: {node: '>=0.1.90'}
    +  '@colors/colors@1.6.0': {}
     
    -  /@cspotcode/source-map-support@0.8.1:
    -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
    -    engines: {node: '>=12'}
    +  '@cspotcode/source-map-support@0.8.1':
         dependencies:
           '@jridgewell/trace-mapping': 0.3.9
    -    dev: true
     
    -  /@dabh/diagnostics@2.0.3:
    -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
    +  '@dabh/diagnostics@2.0.3':
         dependencies:
           colorspace: 1.1.4
           enabled: 2.0.0
           kuler: 2.0.0
     
    -  /@discoveryjs/json-ext@0.5.7:
    -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
    -    engines: {node: '>=10.0.0'}
    +  '@discoveryjs/json-ext@0.5.7': {}
     
    -  /@docsearch/css@3.6.0:
    -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
    -    dev: false
    +  '@docsearch/css@3.6.0': {}
     
    -  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
    -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
    -    peerDependencies:
    -      '@types/react': '>= 16.8.0 < 19.0.0'
    -      react: '>= 16.8.0 < 19.0.0 || 18'
    -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
    -      search-insights: '>= 1 < 3'
    -    peerDependenciesMeta:
    -      '@types/react':
    -        optional: true
    -      react:
    -        optional: true
    -      react-dom:
    -        optional: true
    -      search-insights:
    -        optional: true
    +  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
         dependencies:
           '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
           '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
    @@ -2192,15 +10608,8 @@ packages:
           search-insights: 2.13.0
         transitivePeerDependencies:
           - '@algolia/client-search'
    -    dev: false
     
    -  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
    -    engines: {node: '>=18.0'}
    -    hasBin: true
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -2255,7 +10664,7 @@ packages:
           react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
           react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
           react-router: 5.3.4(react@18.2.0)
           react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
    @@ -2291,32 +10700,20 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/cssnano-preset@3.1.1:
    -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/cssnano-preset@3.1.1':
         dependencies:
           cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
           postcss: 8.4.38
           postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/logger@3.1.1:
    -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/logger@3.1.1':
         dependencies:
           chalk: 4.1.2
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/traverse': 7.24.1
    @@ -2353,13 +10750,8 @@ packages:
           - supports-color
           - uglify-js
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2370,7 +10762,7 @@ packages:
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
           react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
         transitivePeerDependencies:
           - '@swc/core'
           - esbuild
    @@ -2378,12 +10770,7 @@ packages:
           - uglify-js
           - webpack-cli
     
    -  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2421,14 +10808,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2464,14 +10845,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2500,14 +10875,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2534,14 +10903,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2566,14 +10929,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2599,14 +10956,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2631,14 +10982,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/logger': 3.1.1
    @@ -2668,14 +11013,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -2712,23 +11051,14 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
    -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
    -    peerDependencies:
    -      react: '*'
    +  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
         dependencies:
           '@types/react': 18.2.71
           prop-types: 15.8.1
           react: 18.2.0
     
    -  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2775,14 +11105,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
         dependencies:
           '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2819,14 +11143,8 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
         dependencies:
           '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
           '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
    @@ -2867,22 +11185,13 @@ packages:
           - utf-8-validate
           - vue-template-compiler
           - webpack-cli
    -    dev: false
    -    patched: true
     
    -  /@docusaurus/theme-translations@3.1.1:
    -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/theme-translations@3.1.1':
         dependencies:
           fs-extra: 11.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@mdx-js/mdx': 3.0.1
           '@types/history': 4.7.11
    @@ -2902,22 +11211,12 @@ packages:
           - uglify-js
           - webpack-cli
     
    -  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
    -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    +  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
         dependencies:
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
           tslib: 2.6.2
    -    dev: false
     
    -  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
    -    engines: {node: '>=18.0'}
    +  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
    @@ -2931,16 +11230,8 @@ packages:
           - supports-color
           - uglify-js
           - webpack-cli
    -    dev: false
     
    -  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
    -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
    -    engines: {node: '>=18.0'}
    -    peerDependencies:
    -      '@docusaurus/types': '*'
    -    peerDependenciesMeta:
    -      '@docusaurus/types':
    -        optional: true
    +  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
         dependencies:
           '@docusaurus/logger': 3.1.1
           '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
    @@ -2965,233 +11256,98 @@ packages:
           - esbuild
           - supports-color
           - uglify-js
    -      - webpack-cli
    -    dev: false
    -
    -  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
    -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
    -    peerDependencies:
    -      effect: 2.0.0-next.62
    -      fast-check: ^3.13.2
    +      - webpack-cli
    +
    +  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
         dependencies:
           effect: 2.0.0-next.62
           fast-check: 3.15.0
    -    dev: true
     
    -  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
    -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      html-webpack-plugin: '>=5'
    -      webpack: '>=5'
    +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
         dependencies:
           escape-string-regexp: 4.0.0
           html-webpack-plugin: 5.6.0(webpack@5.91.0)
           slash: 3.0.0
           source-map-url: 0.4.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /@esbuild/aix-ppc64@0.20.2:
    -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [aix]
    -    requiresBuild: true
    +  '@esbuild/aix-ppc64@0.20.2':
         optional: true
     
    -  /@esbuild/android-arm64@0.20.2:
    -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/android-arm@0.20.2:
    -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-arm@0.20.2':
         optional: true
     
    -  /@esbuild/android-x64@0.20.2:
    -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -    requiresBuild: true
    +  '@esbuild/android-x64@0.20.2':
         optional: true
     
    -  /@esbuild/darwin-arm64@0.20.2:
    -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    +  '@esbuild/darwin-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/darwin-x64@0.20.2:
    -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    +  '@esbuild/darwin-x64@0.20.2':
         optional: true
     
    -  /@esbuild/freebsd-arm64@0.20.2:
    -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -    requiresBuild: true
    +  '@esbuild/freebsd-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/freebsd-x64@0.20.2:
    -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -    requiresBuild: true
    +  '@esbuild/freebsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-arm64@0.20.2:
    -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-arm@0.20.2:
    -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-arm@0.20.2':
         optional: true
     
    -  /@esbuild/linux-ia32@0.20.2:
    -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-ia32@0.20.2':
         optional: true
     
    -  /@esbuild/linux-loong64@0.20.2:
    -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-loong64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-mips64el@0.20.2:
    -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-mips64el@0.20.2':
         optional: true
     
    -  /@esbuild/linux-ppc64@0.20.2:
    -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-ppc64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-riscv64@0.20.2:
    -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-riscv64@0.20.2':
         optional: true
     
    -  /@esbuild/linux-s390x@0.20.2:
    -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-s390x@0.20.2':
         optional: true
     
    -  /@esbuild/linux-x64@0.20.2:
    -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    +  '@esbuild/linux-x64@0.20.2':
         optional: true
     
    -  /@esbuild/netbsd-x64@0.20.2:
    -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -    requiresBuild: true
    +  '@esbuild/netbsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/openbsd-x64@0.20.2:
    -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -    requiresBuild: true
    +  '@esbuild/openbsd-x64@0.20.2':
         optional: true
     
    -  /@esbuild/sunos-x64@0.20.2:
    -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -    requiresBuild: true
    +  '@esbuild/sunos-x64@0.20.2':
         optional: true
     
    -  /@esbuild/win32-arm64@0.20.2:
    -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-arm64@0.20.2':
         optional: true
     
    -  /@esbuild/win32-ia32@0.20.2:
    -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-ia32@0.20.2':
         optional: true
     
    -  /@esbuild/win32-x64@0.20.2:
    -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    +  '@esbuild/win32-x64@0.20.2':
         optional: true
     
    -  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    +  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 3.4.3
     
    -  /@eslint-community/regexpp@4.10.0:
    -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    +  '@eslint-community/regexpp@4.10.0': {}
     
    -  /@eslint/eslintrc@2.1.4:
    -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  '@eslint/eslintrc@2.1.4':
         dependencies:
           ajv: 6.12.6
           debug: 4.3.4(supports-color@8.1.1)
    @@ -3205,62 +11361,35 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@eslint/js@8.57.0:
    -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  '@eslint/js@8.57.0': {}
     
    -  /@fortawesome/fontawesome-common-types@6.5.1:
    -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    -    dev: false
    +  '@fortawesome/fontawesome-common-types@6.5.1': {}
     
    -  /@fortawesome/fontawesome-svg-core@6.5.1:
    -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    +  '@fortawesome/fontawesome-svg-core@6.5.1':
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    -    dev: false
     
    -  /@fortawesome/free-solid-svg-icons@6.5.1:
    -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
    -    engines: {node: '>=6'}
    -    requiresBuild: true
    +  '@fortawesome/free-solid-svg-icons@6.5.1':
         dependencies:
           '@fortawesome/fontawesome-common-types': 6.5.1
    -    dev: false
     
    -  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
    -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
    -    peerDependencies:
    -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
    -      react: '>=16.3 || 18'
    +  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
         dependencies:
           '@fortawesome/fontawesome-svg-core': 6.5.1
           prop-types: 15.8.1
           react: 18.2.0
    -    dev: false
     
    -  /@gar/promisify@1.1.3:
    -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
    +  '@gar/promisify@1.1.3': {}
     
    -  /@gwhitney/detect-indent@7.0.1:
    -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
    -    engines: {node: '>=12.20'}
    -    dev: true
    +  '@gwhitney/detect-indent@7.0.1': {}
     
    -  /@hapi/hoek@9.3.0:
    -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
    +  '@hapi/hoek@9.3.0': {}
     
    -  /@hapi/topo@5.1.0:
    -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
    +  '@hapi/topo@5.1.0':
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  /@humanwhocodes/config-array@0.11.14:
    -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    -    engines: {node: '>=10.10.0'}
    +  '@humanwhocodes/config-array@0.11.14':
         dependencies:
           '@humanwhocodes/object-schema': 2.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -3268,46 +11397,32 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@humanwhocodes/module-importer@1.0.1:
    -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    -    engines: {node: '>=12.22'}
    +  '@humanwhocodes/module-importer@1.0.1': {}
     
    -  /@humanwhocodes/object-schema@2.0.2:
    -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
    +  '@humanwhocodes/object-schema@2.0.2': {}
     
    -  /@isaacs/cliui@8.0.2:
    -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    -    engines: {node: '>=12'}
    +  '@isaacs/cliui@8.0.2':
         dependencies:
           string-width: 5.1.2
    -      string-width-cjs: /string-width@4.2.3
    +      string-width-cjs: string-width@4.2.3
           strip-ansi: 7.1.0
    -      strip-ansi-cjs: /strip-ansi@6.0.1
    +      strip-ansi-cjs: strip-ansi@6.0.1
           wrap-ansi: 8.1.0
    -      wrap-ansi-cjs: /wrap-ansi@7.0.0
    +      wrap-ansi-cjs: wrap-ansi@7.0.0
     
    -  /@isaacs/string-locale-compare@1.1.0:
    -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
    +  '@isaacs/string-locale-compare@1.1.0': {}
     
    -  /@istanbuljs/load-nyc-config@1.1.0:
    -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
    -    engines: {node: '>=8'}
    +  '@istanbuljs/load-nyc-config@1.1.0':
         dependencies:
           camelcase: 5.3.1
           find-up: 4.1.0
           get-package-type: 0.1.0
           js-yaml: 3.14.1
           resolve-from: 5.0.0
    -    dev: true
     
    -  /@istanbuljs/schema@0.1.3:
    -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  '@istanbuljs/schema@0.1.3': {}
     
    -  /@jest/console@29.7.0:
    -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/console@29.7.0':
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -3315,16 +11430,8 @@ packages:
           jest-message-util: 29.7.0
           jest-util: 29.7.0
           slash: 3.0.0
    -    dev: true
     
    -  /@jest/core@29.7.0(ts-node@10.9.2):
    -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  '@jest/core@29.7.0(ts-node@10.9.2)':
         dependencies:
           '@jest/console': 29.7.0
           '@jest/reporters': 29.7.0
    @@ -3358,38 +11465,26 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /@jest/environment@29.7.0:
    -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/environment@29.7.0':
         dependencies:
           '@jest/fake-timers': 29.7.0
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-mock: 29.7.0
    -    dev: true
     
    -  /@jest/expect-utils@29.7.0:
    -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/expect-utils@29.7.0':
         dependencies:
           jest-get-type: 29.6.3
    -    dev: true
     
    -  /@jest/expect@29.7.0:
    -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/expect@29.7.0':
         dependencies:
           expect: 29.7.0
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/fake-timers@29.7.0:
    -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/fake-timers@29.7.0':
         dependencies:
           '@jest/types': 29.6.3
           '@sinonjs/fake-timers': 10.3.0
    @@ -3397,11 +11492,8 @@ packages:
           jest-message-util: 29.7.0
           jest-mock: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /@jest/globals@29.7.0:
    -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/globals@29.7.0':
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -3409,16 +11501,8 @@ packages:
           jest-mock: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/reporters@29.7.0:
    -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  '@jest/reporters@29.7.0':
         dependencies:
           '@bcoe/v8-coverage': 0.2.3
           '@jest/console': 29.7.0
    @@ -3446,46 +11530,32 @@ packages:
           v8-to-istanbul: 9.2.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/schemas@29.6.3:
    -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/schemas@29.6.3':
         dependencies:
           '@sinclair/typebox': 0.27.8
     
    -  /@jest/source-map@29.6.3:
    -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/source-map@29.6.3':
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           callsites: 3.1.0
           graceful-fs: 4.2.11
    -    dev: true
     
    -  /@jest/test-result@29.7.0:
    -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/test-result@29.7.0':
         dependencies:
           '@jest/console': 29.7.0
           '@jest/types': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
           collect-v8-coverage: 1.0.2
    -    dev: true
     
    -  /@jest/test-sequencer@29.7.0:
    -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/test-sequencer@29.7.0':
         dependencies:
           '@jest/test-result': 29.7.0
           graceful-fs: 4.2.11
           jest-haste-map: 29.7.0
           slash: 3.0.0
    -    dev: true
     
    -  /@jest/transform@29.7.0:
    -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/transform@29.7.0':
         dependencies:
           '@babel/core': 7.24.3
           '@jest/types': 29.6.3
    @@ -3504,11 +11574,8 @@ packages:
           write-file-atomic: 4.0.2
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@jest/types@29.6.3:
    -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  '@jest/types@29.6.3':
         dependencies:
           '@jest/schemas': 29.6.3
           '@types/istanbul-lib-coverage': 2.0.6
    @@ -3517,61 +11584,44 @@ packages:
           '@types/yargs': 17.0.32
           chalk: 4.1.2
     
    -  /@jridgewell/gen-mapping@0.3.5:
    -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/gen-mapping@0.3.5':
         dependencies:
           '@jridgewell/set-array': 1.2.1
           '@jridgewell/sourcemap-codec': 1.4.15
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@jridgewell/resolve-uri@3.1.2:
    -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/resolve-uri@3.1.2': {}
     
    -  /@jridgewell/set-array@1.2.1:
    -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    -    engines: {node: '>=6.0.0'}
    +  '@jridgewell/set-array@1.2.1': {}
     
    -  /@jridgewell/source-map@0.3.6:
    -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
    +  '@jridgewell/source-map@0.3.6':
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           '@jridgewell/trace-mapping': 0.3.25
     
    -  /@jridgewell/sourcemap-codec@1.4.15:
    -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    +  '@jridgewell/sourcemap-codec@1.4.15': {}
     
    -  /@jridgewell/trace-mapping@0.3.25:
    -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +  '@jridgewell/trace-mapping@0.3.25':
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
     
    -  /@jridgewell/trace-mapping@0.3.9:
    -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
    +  '@jridgewell/trace-mapping@0.3.9':
         dependencies:
           '@jridgewell/resolve-uri': 3.1.2
           '@jridgewell/sourcemap-codec': 1.4.15
    -    dev: true
     
    -  /@leichtgewicht/ip-codec@2.0.4:
    -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
    +  '@leichtgewicht/ip-codec@2.0.4': {}
     
    -  /@mdx-js/loader@3.0.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
    -    peerDependencies:
    -      webpack: '>=5'
    +  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
         dependencies:
           '@mdx-js/mdx': 3.0.1
           source-map: 0.7.4
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@mdx-js/mdx@3.0.1:
    -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
    +  '@mdx-js/mdx@3.0.1':
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -3599,150 +11649,66 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
    -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
    -    peerDependencies:
    -      '@types/react': '>=16'
    -      react: '>=16 || 18'
    +  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
         dependencies:
           '@types/mdx': 2.0.12
           '@types/react': 18.2.71
           react: 18.2.0
    -    dev: false
     
    -  /@msgpack/msgpack@2.8.0:
    -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
    -    engines: {node: '>= 10'}
    +  '@msgpack/msgpack@2.8.0': {}
     
    -  /@next/env@14.1.4:
    -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
    -    dev: false
    +  '@next/env@14.1.4': {}
     
    -  /@next/eslint-plugin-next@14.1.4:
    -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
    +  '@next/eslint-plugin-next@14.1.4':
         dependencies:
           glob: 10.3.10
    -    dev: true
     
    -  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
    -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
    -    peerDependencies:
    -      '@mdx-js/loader': '>=0.15.0'
    -      '@mdx-js/react': '>=0.15.0'
    -    peerDependenciesMeta:
    -      '@mdx-js/loader':
    -        optional: true
    -      '@mdx-js/react':
    -        optional: true
    +  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
         dependencies:
           '@mdx-js/loader': 3.0.1(webpack@5.91.0)
           '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
           source-map: 0.7.4
    -    dev: false
     
    -  /@next/swc-darwin-arm64@14.1.4:
    -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-darwin-arm64@14.1.4':
         optional: true
     
    -  /@next/swc-darwin-x64@14.1.4:
    -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-darwin-x64@14.1.4':
         optional: true
     
    -  /@next/swc-linux-arm64-gnu@14.1.4:
    -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-arm64-gnu@14.1.4':
         optional: true
     
    -  /@next/swc-linux-arm64-musl@14.1.4:
    -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-arm64-musl@14.1.4':
         optional: true
     
    -  /@next/swc-linux-x64-gnu@14.1.4:
    -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-x64-gnu@14.1.4':
         optional: true
     
    -  /@next/swc-linux-x64-musl@14.1.4:
    -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-linux-x64-musl@14.1.4':
         optional: true
     
    -  /@next/swc-win32-arm64-msvc@14.1.4:
    -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
    -    engines: {node: '>= 10'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-arm64-msvc@14.1.4':
         optional: true
     
    -  /@next/swc-win32-ia32-msvc@14.1.4:
    -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
    -    engines: {node: '>= 10'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-ia32-msvc@14.1.4':
         optional: true
     
    -  /@next/swc-win32-x64-msvc@14.1.4:
    -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
    -    engines: {node: '>= 10'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: false
    +  '@next/swc-win32-x64-msvc@14.1.4':
         optional: true
     
    -  /@nodelib/fs.scandir@2.1.5:
    -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.scandir@2.1.5':
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           run-parallel: 1.2.0
     
    -  /@nodelib/fs.stat@2.0.5:
    -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.stat@2.0.5': {}
     
    -  /@nodelib/fs.walk@1.2.8:
    -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    -    engines: {node: '>= 8'}
    +  '@nodelib/fs.walk@1.2.8':
         dependencies:
           '@nodelib/fs.scandir': 2.1.5
           fastq: 1.17.1
     
    -  /@npmcli/arborist@4.3.1:
    -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    +  '@npmcli/arborist@4.3.1':
         dependencies:
           '@isaacs/string-locale-compare': 1.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -3780,27 +11746,21 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/fs@1.1.1:
    -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
    +  '@npmcli/fs@1.1.1':
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  /@npmcli/fs@2.1.2:
    -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  '@npmcli/fs@2.1.2':
         dependencies:
           '@gar/promisify': 1.1.3
           semver: 7.6.0
     
    -  /@npmcli/fs@3.1.0:
    -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/fs@3.1.0':
         dependencies:
           semver: 7.6.0
     
    -  /@npmcli/git@2.1.0:
    -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
    +  '@npmcli/git@2.1.0':
         dependencies:
           '@npmcli/promise-spawn': 1.3.2
           lru-cache: 6.0.0
    @@ -3813,9 +11773,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /@npmcli/git@4.1.0:
    -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/git@4.1.0':
         dependencies:
           '@npmcli/promise-spawn': 6.0.2
           lru-cache: 7.18.3
    @@ -3828,34 +11786,24 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /@npmcli/installed-package-contents@1.0.7:
    -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
    -    engines: {node: '>= 10'}
    -    hasBin: true
    +  '@npmcli/installed-package-contents@1.0.7':
         dependencies:
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  /@npmcli/installed-package-contents@2.0.2:
    -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  '@npmcli/installed-package-contents@2.0.2':
         dependencies:
           npm-bundled: 3.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  /@npmcli/map-workspaces@2.0.4:
    -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  '@npmcli/map-workspaces@2.0.4':
         dependencies:
           '@npmcli/name-from-folder': 1.0.1
           glob: 8.1.0
           minimatch: 5.1.6
           read-package-json-fast: 2.0.3
     
    -  /@npmcli/metavuln-calculator@2.0.0:
    -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +  '@npmcli/metavuln-calculator@2.0.0':
         dependencies:
           cacache: 15.3.0
           json-parse-even-better-errors: 2.3.1
    @@ -3865,50 +11813,35 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/move-file@1.1.2:
    -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
    -    engines: {node: '>=10'}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  '@npmcli/move-file@1.1.2':
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  /@npmcli/move-file@2.0.1:
    -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  '@npmcli/move-file@2.0.1':
         dependencies:
           mkdirp: 1.0.4
           rimraf: 3.0.2
     
    -  /@npmcli/name-from-folder@1.0.1:
    -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
    +  '@npmcli/name-from-folder@1.0.1': {}
     
    -  /@npmcli/node-gyp@1.0.3:
    -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
    +  '@npmcli/node-gyp@1.0.3': {}
     
    -  /@npmcli/node-gyp@3.0.0:
    -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/node-gyp@3.0.0': {}
     
    -  /@npmcli/package-json@1.0.1:
    -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
    +  '@npmcli/package-json@1.0.1':
         dependencies:
           json-parse-even-better-errors: 2.3.1
     
    -  /@npmcli/promise-spawn@1.3.2:
    -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
    +  '@npmcli/promise-spawn@1.3.2':
         dependencies:
           infer-owner: 1.0.4
     
    -  /@npmcli/promise-spawn@6.0.2:
    -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/promise-spawn@6.0.2':
         dependencies:
           which: 3.0.1
     
    -  /@npmcli/run-script@2.0.0:
    -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
    +  '@npmcli/run-script@2.0.0':
         dependencies:
           '@npmcli/node-gyp': 1.0.3
           '@npmcli/promise-spawn': 1.3.2
    @@ -3918,9 +11851,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /@npmcli/run-script@6.0.2:
    -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@npmcli/run-script@6.0.2':
         dependencies:
           '@npmcli/node-gyp': 3.0.0
           '@npmcli/promise-spawn': 6.0.2
    @@ -3931,13 +11862,11 @@ packages:
           - bluebird
           - supports-color
     
    -  /@octokit/auth-token@2.5.0:
    -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
    +  '@octokit/auth-token@2.5.0':
         dependencies:
           '@octokit/types': 6.41.0
     
    -  /@octokit/core@3.6.0:
    -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
    +  '@octokit/core@3.6.0':
         dependencies:
           '@octokit/auth-token': 2.5.0
           '@octokit/graphql': 4.8.0
    @@ -3949,15 +11878,13 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/endpoint@6.0.12:
    -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
    +  '@octokit/endpoint@6.0.12':
         dependencies:
           '@octokit/types': 6.41.0
           is-plain-object: 5.0.0
           universal-user-agent: 6.0.1
     
    -  /@octokit/graphql@4.8.0:
    -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
    +  '@octokit/graphql@4.8.0':
         dependencies:
           '@octokit/request': 5.6.3
           '@octokit/types': 6.41.0
    @@ -3965,42 +11892,30 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/openapi-types@12.11.0:
    -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
    +  '@octokit/openapi-types@12.11.0': {}
     
    -  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
    -    peerDependencies:
    -      '@octokit/core': '>=2'
    +  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
     
    -  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    +  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
     
    -  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
    -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
    -    peerDependencies:
    -      '@octokit/core': '>=3'
    +  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
     
    -  /@octokit/request-error@2.1.0:
    -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
    +  '@octokit/request-error@2.1.0':
         dependencies:
           '@octokit/types': 6.41.0
           deprecation: 2.3.1
           once: 1.4.0
     
    -  /@octokit/request@5.6.3:
    -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
    +  '@octokit/request@5.6.3':
         dependencies:
           '@octokit/endpoint': 6.0.12
           '@octokit/request-error': 2.1.0
    @@ -4011,8 +11926,7 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/rest@18.12.0:
    -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
    +  '@octokit/rest@18.12.0':
         dependencies:
           '@octokit/core': 3.6.0
           '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
    @@ -4021,30 +11935,19 @@ packages:
         transitivePeerDependencies:
           - encoding
     
    -  /@octokit/types@6.41.0:
    -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
    +  '@octokit/types@6.41.0':
         dependencies:
           '@octokit/openapi-types': 12.11.0
     
    -  /@pkgjs/parseargs@0.11.0:
    -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    -    engines: {node: '>=14'}
    -    requiresBuild: true
    +  '@pkgjs/parseargs@0.11.0':
         optional: true
     
    -  /@pnpm/cli-meta@5.0.1:
    -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/cli-meta@5.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
           load-json-file: 6.2.0
    -    dev: true
     
    -  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/cli-meta': 5.0.1
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
    @@ -4057,15 +11960,10 @@ packages:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           load-json-file: 6.2.0
    -    dev: true
     
    -  /@pnpm/config.env-replace@1.1.0:
    -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/config.env-replace@1.1.0': {}
     
    -  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/constants': 7.1.0
    @@ -4085,80 +11983,44 @@ packages:
           normalize-registry-url: 2.0.0
           path-absolute: 1.0.1
           path-name: 1.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           read-ini-file: 4.0.0
           realpath-missing: 1.1.0
           which: 3.0.1
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/constants@6.2.0:
    -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
    -    engines: {node: '>=14.6'}
    -    dev: false
    +  '@pnpm/constants@6.2.0': {}
     
    -  /@pnpm/constants@7.1.0:
    -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/constants@7.1.0': {}
     
    -  /@pnpm/constants@7.1.1:
    -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/constants@7.1.1': {}
     
    -  /@pnpm/constants@8.0.0:
    -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/constants@8.0.0': {}
     
    -  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/crypto.base32-hash@3.0.0:
    -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/crypto.base32-hash@3.0.0':
         dependencies:
           rfc4648: 1.5.3
    -    dev: false
     
    -  /@pnpm/dedupe.issues-renderer@1.0.0:
    -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/dedupe.issues-renderer@1.0.0':
         dependencies:
           '@pnpm/dedupe.types': 1.0.0
           archy: 1.0.0
           chalk: 4.1.2
    -    dev: true
     
    -  /@pnpm/dedupe.types@1.0.0:
    -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/dedupe.types@1.0.0': {}
     
    -  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
    @@ -4174,57 +12036,37 @@ packages:
           normalize-path: 3.0.0
           pretty-bytes: 5.6.0
           pretty-ms: 7.0.1
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           right-pad: 1.0.1
           rxjs: 7.8.1
           semver: 7.6.0
           stacktracey: 2.1.8
           string-length: 4.0.2
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /@pnpm/dependency-path@3.0.0:
    -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/dependency-path@3.0.0':
         dependencies:
           '@pnpm/crypto.base32-hash': 3.0.0
           '@pnpm/types': 10.0.0
           semver: 7.6.0
    -    dev: false
     
    -  /@pnpm/error@4.0.1:
    -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
    -    engines: {node: '>=14.6'}
    +  '@pnpm/error@4.0.1':
         dependencies:
           '@pnpm/constants': 6.2.0
    -    dev: false
     
    -  /@pnpm/error@5.0.1:
    -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/error@5.0.1':
         dependencies:
           '@pnpm/constants': 7.1.0
    -    dev: true
     
    -  /@pnpm/error@5.0.3:
    -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/error@5.0.3':
         dependencies:
           '@pnpm/constants': 7.1.1
    -    dev: true
     
    -  /@pnpm/error@6.0.0:
    -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/error@6.0.0':
         dependencies:
           '@pnpm/constants': 8.0.0
    -    dev: false
     
    -  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
           '@pnpm/fetching-types': 6.0.0
    @@ -4232,42 +12074,30 @@ packages:
           '@pnpm/network.agent': 1.0.1
           '@pnpm/types': 10.0.0
           '@zkochan/retry': 0.2.0
    -      node-fetch: /@pnpm/node-fetch@1.0.0
    +      node-fetch: '@pnpm/node-fetch@1.0.0'
         transitivePeerDependencies:
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/fetcher-base@14.0.1:
    -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/fetcher-base@14.0.1':
         dependencies:
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
           '@types/ssri': 7.1.5
    -    dev: true
     
    -  /@pnpm/fetching-types@6.0.0:
    -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/fetching-types@6.0.0':
         dependencies:
           '@zkochan/retry': 0.2.0
    -      node-fetch: /@pnpm/node-fetch@1.0.0
    +      node-fetch: '@pnpm/node-fetch@1.0.0'
         transitivePeerDependencies:
           - domexception
    -    dev: false
     
    -  /@pnpm/find-workspace-dir@6.0.3:
    -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/find-workspace-dir@6.0.3':
         dependencies:
           '@pnpm/error': 5.0.3
           find-up: 5.0.0
    -    dev: true
     
    -  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
           '@pnpm/constants': 7.1.0
    @@ -4277,75 +12107,49 @@ packages:
           read-yaml-file: 2.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/fs.find-packages@2.0.1:
    -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/fs.find-packages@2.0.1':
         dependencies:
           '@pnpm/read-project-manifest': 5.0.1
           '@pnpm/types': 9.1.0
           '@pnpm/util.lex-comparator': 1.0.0
           fast-glob: 3.3.2
           p-filter: 2.1.0
    -    dev: true
     
    -  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
           '@pnpm/resolver-base': 12.0.0
           graceful-git: 3.1.2
    -      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
    +      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
           semver: 7.6.0
         transitivePeerDependencies:
           - '@pnpm/logger'
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/git-utils@1.0.0:
    -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/git-utils@1.0.0':
         dependencies:
    -      execa: /safe-execa@0.1.2
    -    dev: true
    +      execa: safe-execa@0.1.2
     
    -  /@pnpm/git-utils@2.0.0:
    -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/git-utils@2.0.0':
         dependencies:
    -      execa: /safe-execa@0.1.2
    -    dev: false
    +      execa: safe-execa@0.1.2
     
    -  /@pnpm/graceful-fs@3.0.0:
    -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/graceful-fs@3.0.0':
         dependencies:
           graceful-fs: 4.2.11
    -    dev: true
     
    -  /@pnpm/hooks.types@1.0.1:
    -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/hooks.types@1.0.1':
         dependencies:
           '@pnpm/lockfile-types': 5.1.0
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/hosted-git-info@1.0.0:
    -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
    -    engines: {node: '>=10'}
    +  '@pnpm/hosted-git-info@1.0.0':
         dependencies:
           lru-cache: 6.0.0
    -    dev: false
     
    -  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
    -    engines: {node: '>=18.12'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/constants': 8.0.0
           '@pnpm/dependency-path': 3.0.0
    @@ -4360,9 +12164,9 @@ packages:
           '@pnpm/util.lex-comparator': 3.0.0
           '@zkochan/rimraf': 2.1.3
           comver-to-semver: 1.0.0
    -      js-yaml: /@zkochan/js-yaml@0.0.7
    +      js-yaml: '@zkochan/js-yaml@0.0.7'
           normalize-path: 3.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           semver: 7.6.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    @@ -4370,25 +12174,16 @@ packages:
         transitivePeerDependencies:
           - domexception
           - supports-color
    -    dev: false
     
    -  /@pnpm/lockfile-types@5.1.0:
    -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/lockfile-types@5.1.0':
         dependencies:
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/lockfile-types@6.0.0:
    -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/lockfile-types@6.0.0':
         dependencies:
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/lockfile-utils@10.0.0:
    -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/lockfile-utils@10.0.0':
         dependencies:
           '@pnpm/dependency-path': 3.0.0
           '@pnpm/lockfile-types': 6.0.0
    @@ -4396,48 +12191,33 @@ packages:
           '@pnpm/resolver-base': 12.0.0
           '@pnpm/types': 10.0.0
           get-npm-tarball-url: 2.1.0
    -      ramda: /@pnpm/ramda@0.28.1
    -    dev: false
    +      ramda: '@pnpm/ramda@0.28.1'
     
    -  /@pnpm/logger@5.0.0:
    -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
    -    engines: {node: '>=12.17'}
    +  '@pnpm/logger@5.0.0':
         dependencies:
           bole: 5.0.11
           ndjson: 2.0.0
     
    -  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/types': 9.1.0
         transitivePeerDependencies:
           - '@pnpm/logger'
    -    dev: true
     
    -  /@pnpm/matcher@5.0.0:
    -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/matcher@5.0.0':
         dependencies:
           escape-string-regexp: 4.0.0
    -    dev: true
     
    -  /@pnpm/merge-lockfile-changes@6.0.0:
    -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/merge-lockfile-changes@6.0.0':
         dependencies:
           '@pnpm/lockfile-types': 6.0.0
           comver-to-semver: 1.0.0
    -      ramda: /@pnpm/ramda@0.28.1
    +      ramda: '@pnpm/ramda@0.28.1'
           semver: 7.6.0
    -    dev: false
     
    -  /@pnpm/meta-updater@1.0.0:
    -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
    -    engines: {node: '>=10.12'}
    -    hasBin: true
    +  '@pnpm/meta-updater@1.0.0':
         dependencies:
           '@pnpm/find-workspace-dir': 6.0.3
           '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
    @@ -4448,11 +12228,8 @@ packages:
           print-diff: 1.0.0
           ramda: 0.29.1
           write-json-file: 5.0.0
    -    dev: true
     
    -  /@pnpm/network.agent@1.0.1:
    -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.agent@1.0.1':
         dependencies:
           '@pnpm/network.config': 1.0.1
           '@pnpm/network.proxy-agent': 1.0.1
    @@ -4460,24 +12237,16 @@ packages:
           lru-cache: 7.10.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@pnpm/network.ca-file@1.0.2:
    -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.ca-file@1.0.2':
         dependencies:
           graceful-fs: 4.2.10
     
    -  /@pnpm/network.config@1.0.1:
    -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.config@1.0.1':
         dependencies:
           nerf-dart: 1.0.0
    -    dev: false
     
    -  /@pnpm/network.proxy-agent@1.0.1:
    -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
    -    engines: {node: '>=12.22.0'}
    +  '@pnpm/network.proxy-agent@1.0.1':
         dependencies:
           '@pnpm/error': 4.0.1
           http-proxy-agent: 5.0.0
    @@ -4486,62 +12255,40 @@ packages:
           socks-proxy-agent: 6.1.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@pnpm/node-fetch@1.0.0:
    -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
    -    engines: {node: ^10.17 || >=12.3}
    +  '@pnpm/node-fetch@1.0.0':
         dependencies:
           data-uri-to-buffer: 3.0.1
           fetch-blob: 2.1.2
         transitivePeerDependencies:
           - domexception
    -    dev: false
     
    -  /@pnpm/npm-conf@2.2.0:
    -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
    -    engines: {node: '>=12'}
    +  '@pnpm/npm-conf@2.2.0':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    -    dev: true
     
    -  /@pnpm/npm-conf@2.2.2:
    -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
    -    engines: {node: '>=12'}
    +  '@pnpm/npm-conf@2.2.2':
         dependencies:
           '@pnpm/config.env-replace': 1.1.0
           '@pnpm/network.ca-file': 1.0.2
           config-chain: 1.1.13
    -    dev: false
     
    -  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
           '@pnpm/logger': 5.0.0
           '@pnpm/types': 9.1.0
           detect-libc: 2.0.3
    -      execa: /safe-execa@0.1.2
    +      execa: safe-execa@0.1.2
           mem: 8.1.1
           semver: 7.6.0
    -    dev: true
     
    -  /@pnpm/pick-fetcher@3.0.0:
    -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/pick-fetcher@3.0.0': {}
     
    -  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
    -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
    -    engines: {node: '>=16.14'}
    -    peerDependencies:
    -      '@pnpm/logger': ^5.0.0
    +  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
         dependencies:
           '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
           '@pnpm/error': 5.0.1
    @@ -4552,14 +12299,10 @@ packages:
           '@pnpm/types': 9.1.0
           chalk: 4.1.2
           path-absolute: 1.0.1
    -    dev: true
     
    -  /@pnpm/ramda@0.28.1:
    -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
    +  '@pnpm/ramda@0.28.1': {}
     
    -  /@pnpm/read-project-manifest@5.0.1:
    -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/read-project-manifest@5.0.1':
         dependencies:
           '@gwhitney/detect-indent': 7.0.1
           '@pnpm/error': 5.0.1
    @@ -4574,116 +12317,69 @@ packages:
           read-yaml-file: 2.1.0
           sort-keys: 4.2.0
           strip-bom: 4.0.0
    -    dev: true
     
    -  /@pnpm/render-peer-issues@4.0.1:
    -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/render-peer-issues@4.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
           archy: 1.0.0
           chalk: 4.1.2
           cli-columns: 4.0.0
    -    dev: true
     
    -  /@pnpm/resolver-base@10.0.1:
    -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/resolver-base@10.0.1':
         dependencies:
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/resolver-base@12.0.0:
    -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
    -    engines: {node: '>=18.12'}
    +  '@pnpm/resolver-base@12.0.0':
         dependencies:
           '@pnpm/types': 10.0.0
    -    dev: false
     
    -  /@pnpm/store-controller-types@15.0.1:
    -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/store-controller-types@15.0.1':
         dependencies:
           '@pnpm/fetcher-base': 14.0.1
           '@pnpm/resolver-base': 10.0.1
           '@pnpm/types': 9.1.0
    -    dev: true
     
    -  /@pnpm/text.comments-parser@2.0.0:
    -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/text.comments-parser@2.0.0':
         dependencies:
           strip-comments-strings: 1.2.0
    -    dev: true
     
    -  /@pnpm/types@10.0.0:
    -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/types@10.0.0': {}
     
    -  /@pnpm/types@9.1.0:
    -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/types@9.1.0': {}
     
    -  /@pnpm/types@9.4.2:
    -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
    -    engines: {node: '>=16.14'}
    -    dev: true
    +  '@pnpm/types@9.4.2': {}
     
    -  /@pnpm/util.lex-comparator@1.0.0:
    -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
    -    engines: {node: '>=12.22.0'}
    -    dev: true
    +  '@pnpm/util.lex-comparator@1.0.0': {}
     
    -  /@pnpm/util.lex-comparator@3.0.0:
    -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
    -    engines: {node: '>=18.12'}
    -    dev: false
    +  '@pnpm/util.lex-comparator@3.0.0': {}
     
    -  /@pnpm/write-project-manifest@5.0.1:
    -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
    -    engines: {node: '>=16.14'}
    +  '@pnpm/write-project-manifest@5.0.1':
         dependencies:
           '@pnpm/text.comments-parser': 2.0.0
           '@pnpm/types': 9.1.0
           json5: 2.2.3
           write-file-atomic: 5.0.1
           write-yaml-file: 5.0.0
    -    dev: true
     
    -  /@polka/url@1.0.0-next.25:
    -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
    -    dev: false
    +  '@polka/url@1.0.0-next.25': {}
     
    -  /@rushstack/eslint-patch@1.8.0:
    -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
    -    dev: true
    +  '@rushstack/eslint-patch@1.8.0': {}
     
    -  /@sideway/address@4.1.5:
    -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
    +  '@sideway/address@4.1.5':
         dependencies:
           '@hapi/hoek': 9.3.0
     
    -  /@sideway/formula@3.0.1:
    -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    +  '@sideway/formula@3.0.1': {}
     
    -  /@sideway/pinpoint@2.0.0:
    -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
    +  '@sideway/pinpoint@2.0.0': {}
     
    -  /@sigstore/bundle@1.1.0:
    -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/bundle@1.1.0':
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
     
    -  /@sigstore/protobuf-specs@0.2.1:
    -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/protobuf-specs@0.2.1': {}
     
    -  /@sigstore/sign@1.0.0:
    -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/sign@1.0.0':
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -4691,210 +12387,112 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /@sigstore/tuf@1.0.3:
    -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@sigstore/tuf@1.0.3':
         dependencies:
           '@sigstore/protobuf-specs': 0.2.1
           tuf-js: 1.1.7
         transitivePeerDependencies:
           - supports-color
     
    -  /@sinclair/typebox@0.27.8:
    -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
    +  '@sinclair/typebox@0.27.8': {}
     
    -  /@sindresorhus/is@4.6.0:
    -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  '@sindresorhus/is@4.6.0': {}
     
    -  /@sindresorhus/is@5.6.0:
    -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  '@sindresorhus/is@5.6.0': {}
     
    -  /@sinonjs/commons@2.0.0:
    -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
    +  '@sinonjs/commons@2.0.0':
         dependencies:
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/commons@3.0.1:
    -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
    +  '@sinonjs/commons@3.0.1':
         dependencies:
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/fake-timers@10.3.0:
    -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
    +  '@sinonjs/fake-timers@10.3.0':
         dependencies:
           '@sinonjs/commons': 3.0.1
    -    dev: true
     
    -  /@sinonjs/fake-timers@11.2.2:
    -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
    +  '@sinonjs/fake-timers@11.2.2':
         dependencies:
           '@sinonjs/commons': 3.0.1
    -    dev: true
     
    -  /@sinonjs/samsam@8.0.0:
    -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
    +  '@sinonjs/samsam@8.0.0':
         dependencies:
           '@sinonjs/commons': 2.0.0
           lodash.get: 4.4.2
           type-detect: 4.0.8
    -    dev: true
     
    -  /@sinonjs/text-encoding@0.7.2:
    -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
    -    dev: true
    +  '@sinonjs/text-encoding@0.7.2': {}
     
    -  /@slorber/remark-comment@1.0.0:
    -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
    +  '@slorber/remark-comment@1.0.0':
         dependencies:
           micromark-factory-space: 1.1.0
           micromark-util-character: 1.2.0
           micromark-util-symbol: 1.1.0
    -    dev: false
     
    -  /@slorber/static-site-generator-webpack-plugin@4.0.7:
    -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
    -    engines: {node: '>=14'}
    +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
         dependencies:
           eval: 0.1.8
           p-map: 4.0.0
           webpack-sources: 3.2.3
    -    dev: false
     
    -  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
     
    -  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
    -
    -  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +
    +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: false
     
    -  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
    -    dev: true
     
    -  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
    @@ -4905,13 +12503,8 @@ packages:
           '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
    -    dev: false
     
    -  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0-0
    +  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
    @@ -4922,11 +12515,8 @@ packages:
           '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
           '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
    -    dev: true
     
    -  /@svgr/core@6.5.1:
    -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
    -    engines: {node: '>=10'}
    +  '@svgr/core@6.5.1':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -4935,11 +12525,8 @@ packages:
           cosmiconfig: 7.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/core@8.1.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
    -    engines: {node: '>=14'}
    +  '@svgr/core@8.1.0(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -4949,29 +12536,18 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@svgr/hast-util-to-babel-ast@6.5.1:
    -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
    -    engines: {node: '>=10'}
    +  '@svgr/hast-util-to-babel-ast@6.5.1':
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    -    dev: false
     
    -  /@svgr/hast-util-to-babel-ast@8.0.0:
    -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
    -    engines: {node: '>=14'}
    +  '@svgr/hast-util-to-babel-ast@8.0.0':
         dependencies:
           '@babel/types': 7.24.0
           entities: 4.5.0
    -    dev: true
     
    -  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
    -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': ^6.0.0
    +  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
    @@ -4980,13 +12556,8 @@ packages:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
    -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
         dependencies:
           '@babel/core': 7.24.3
           '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
    @@ -4995,25 +12566,15 @@ packages:
           svg-parser: 2.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
    -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
         dependencies:
           '@svgr/core': 6.5.1
           cosmiconfig: 7.1.0
           deepmerge: 4.3.1
           svgo: 2.8.0
    -    dev: false
     
    -  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      '@svgr/core': '*'
    +  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
         dependencies:
           '@svgr/core': 8.1.0(typescript@5.4.3)
           cosmiconfig: 8.3.6(typescript@5.4.3)
    @@ -5021,11 +12582,8 @@ packages:
           svgo: 3.2.0
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /@svgr/webpack@6.5.1:
    -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
    -    engines: {node: '>=10'}
    +  '@svgr/webpack@6.5.1':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -5037,11 +12595,8 @@ packages:
           '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /@svgr/webpack@8.1.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
    -    engines: {node: '>=14'}
    +  '@svgr/webpack@8.1.0(typescript@5.4.3)':
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
    @@ -5054,24 +12609,16 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@swc/helpers@0.5.2:
    -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
    +  '@swc/helpers@0.5.2':
         dependencies:
           tslib: 2.6.2
    -    dev: false
     
    -  /@szmarczak/http-timer@5.0.1:
    -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
    -    engines: {node: '>=14.16'}
    +  '@szmarczak/http-timer@5.0.1':
         dependencies:
           defer-to-connect: 2.0.1
    -    dev: false
     
    -  /@testing-library/dom@9.3.4:
    -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
    -    engines: {node: '>=14'}
    +  '@testing-library/dom@9.3.4':
         dependencies:
           '@babel/code-frame': 7.24.2
           '@babel/runtime': 7.24.1
    @@ -5081,495 +12628,338 @@ packages:
           dom-accessibility-api: 0.5.16
           lz-string: 1.5.0
           pretty-format: 27.5.1
    -    dev: true
     
    -  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^18.0.0 || 18
    -      react-dom: ^18.0.0 || 18
    +  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
         dependencies:
           '@babel/runtime': 7.24.1
           '@testing-library/dom': 9.3.4
           '@types/react-dom': 18.2.22
           react: 18.2.0
           react-dom: 18.2.0(react@18.2.0)
    -    dev: true
     
    -  /@tootallnate/once@1.1.2:
    -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
    -    engines: {node: '>= 6'}
    +  '@tootallnate/once@1.1.2': {}
     
    -  /@tootallnate/once@2.0.0:
    -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
    -    engines: {node: '>= 10'}
    +  '@tootallnate/once@2.0.0': {}
     
    -  /@trysound/sax@0.2.0:
    -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
    -    engines: {node: '>=10.13.0'}
    +  '@trysound/sax@0.2.0': {}
     
    -  /@tsconfig/docusaurus@2.0.2:
    -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
    -    dev: true
    +  '@tsconfig/docusaurus@2.0.2': {}
     
    -  /@tsconfig/node10@1.0.10:
    -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
    -    dev: true
    +  '@tsconfig/node10@1.0.10': {}
     
    -  /@tsconfig/node12@1.0.11:
    -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    -    dev: true
    +  '@tsconfig/node12@1.0.11': {}
     
    -  /@tsconfig/node14@1.0.3:
    -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    -    dev: true
    +  '@tsconfig/node14@1.0.3': {}
     
    -  /@tsconfig/node16@1.0.4:
    -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
    -    dev: true
    +  '@tsconfig/node16@1.0.4': {}
     
    -  /@tufjs/canonical-json@1.0.0:
    -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@tufjs/canonical-json@1.0.0': {}
     
    -  /@tufjs/models@1.0.4:
    -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  '@tufjs/models@1.0.4':
         dependencies:
           '@tufjs/canonical-json': 1.0.0
           minimatch: 9.0.3
     
    -  /@types/acorn@4.0.6:
    -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
    +  '@types/acorn@4.0.6':
         dependencies:
           '@types/estree': 1.0.5
     
    -  /@types/aria-query@5.0.4:
    -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
    -    dev: true
    +  '@types/aria-query@5.0.4': {}
     
    -  /@types/babel__core@7.20.5:
    -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
    +  '@types/babel__core@7.20.5':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
           '@types/babel__generator': 7.6.8
           '@types/babel__template': 7.4.4
           '@types/babel__traverse': 7.20.5
    -    dev: true
     
    -  /@types/babel__generator@7.6.8:
    -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
    +  '@types/babel__generator@7.6.8':
         dependencies:
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/babel__template@7.4.4:
    -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
    +  '@types/babel__template@7.4.4':
         dependencies:
           '@babel/parser': 7.24.1
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/babel__traverse@7.20.5:
    -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
    +  '@types/babel__traverse@7.20.5':
         dependencies:
           '@babel/types': 7.24.0
    -    dev: true
     
    -  /@types/body-parser@1.19.5:
    -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
    +  '@types/body-parser@1.19.5':
         dependencies:
           '@types/connect': 3.4.38
           '@types/node': 18.18.2
     
    -  /@types/bonjour@3.5.13:
    -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
    +  '@types/bonjour@3.5.13':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/chai@4.3.14:
    -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
    +  '@types/chai@4.3.14': {}
     
    -  /@types/connect-history-api-fallback@1.5.4:
    -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
    +  '@types/connect-history-api-fallback@1.5.4':
         dependencies:
           '@types/express-serve-static-core': 4.17.43
           '@types/node': 18.18.2
     
    -  /@types/connect@3.4.38:
    -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
    +  '@types/connect@3.4.38':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/debug@4.1.12:
    -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
    +  '@types/debug@4.1.12':
         dependencies:
           '@types/ms': 0.7.34
     
    -  /@types/eslint-scope@3.7.7:
    -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
    +  '@types/eslint-scope@3.7.7':
         dependencies:
           '@types/eslint': 8.56.6
           '@types/estree': 1.0.5
     
    -  /@types/eslint@8.56.6:
    -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
    +  '@types/eslint@8.56.6':
         dependencies:
           '@types/estree': 1.0.5
           '@types/json-schema': 7.0.15
     
    -  /@types/estree-jsx@1.0.5:
    -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
    +  '@types/estree-jsx@1.0.5':
         dependencies:
           '@types/estree': 1.0.5
     
    -  /@types/estree@1.0.5:
    -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    +  '@types/estree@1.0.5': {}
     
    -  /@types/expect@1.20.4:
    -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
    +  '@types/expect@1.20.4': {}
     
    -  /@types/express-serve-static-core@4.17.43:
    -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
    +  '@types/express-serve-static-core@4.17.43':
         dependencies:
           '@types/node': 18.18.2
           '@types/qs': 6.9.14
           '@types/range-parser': 1.2.7
           '@types/send': 0.17.4
     
    -  /@types/express@4.17.21:
    -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
    +  '@types/express@4.17.21':
         dependencies:
           '@types/body-parser': 1.19.5
           '@types/express-serve-static-core': 4.17.43
           '@types/qs': 6.9.14
           '@types/serve-static': 1.15.5
     
    -  /@types/fs-extra@11.0.4:
    -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
    +  '@types/fs-extra@11.0.4':
         dependencies:
           '@types/jsonfile': 6.1.4
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/glob@8.1.0:
    -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
    +  '@types/glob@8.1.0':
         dependencies:
           '@types/minimatch': 5.1.2
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/graceful-fs@4.1.9:
    -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    +  '@types/graceful-fs@4.1.9':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/gtag.js@0.0.12:
    -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
    -    dev: false
    +  '@types/gtag.js@0.0.12': {}
     
    -  /@types/hast@3.0.4:
    -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
    +  '@types/hast@3.0.4':
         dependencies:
           '@types/unist': 3.0.2
     
    -  /@types/history@4.7.11:
    -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
    +  '@types/history@4.7.11': {}
     
    -  /@types/html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
    +  '@types/html-minifier-terser@6.1.0': {}
     
    -  /@types/http-cache-semantics@4.0.4:
    -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
    -    dev: false
    +  '@types/http-cache-semantics@4.0.4': {}
     
    -  /@types/http-errors@2.0.4:
    -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
    +  '@types/http-errors@2.0.4': {}
     
    -  /@types/http-proxy@1.17.14:
    -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
    +  '@types/http-proxy@1.17.14':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/istanbul-lib-coverage@2.0.6:
    -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
    +  '@types/istanbul-lib-coverage@2.0.6': {}
     
    -  /@types/istanbul-lib-report@3.0.3:
    -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
    +  '@types/istanbul-lib-report@3.0.3':
         dependencies:
           '@types/istanbul-lib-coverage': 2.0.6
     
    -  /@types/istanbul-reports@3.0.4:
    -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
    +  '@types/istanbul-reports@3.0.4':
         dependencies:
           '@types/istanbul-lib-report': 3.0.3
     
    -  /@types/jest@29.5.12:
    -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
    +  '@types/jest@29.5.12':
         dependencies:
           expect: 29.7.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /@types/js-cookie@2.2.7:
    -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
    -    dev: false
    +  '@types/js-cookie@2.2.7': {}
     
    -  /@types/js-yaml@4.0.9:
    -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
    +  '@types/js-yaml@4.0.9': {}
     
    -  /@types/jsdom@20.0.1:
    -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
    +  '@types/jsdom@20.0.1':
         dependencies:
           '@types/node': 18.18.2
           '@types/tough-cookie': 4.0.5
           parse5: 7.1.2
    -    dev: true
     
    -  /@types/json-schema@7.0.15:
    -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    +  '@types/json-schema@7.0.15': {}
     
    -  /@types/json5@0.0.29:
    -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
    -    dev: true
    +  '@types/json5@0.0.29': {}
     
    -  /@types/jsonfile@6.1.4:
    -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
    +  '@types/jsonfile@6.1.4':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/lodash@4.17.0:
    -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
    +  '@types/lodash@4.17.0': {}
     
    -  /@types/mdast@4.0.3:
    -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
    +  '@types/mdast@4.0.3':
         dependencies:
           '@types/unist': 3.0.2
     
    -  /@types/mdx-js__react@1.5.8:
    -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
    +  '@types/mdx-js__react@1.5.8':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/mdx@2.0.12:
    -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
    +  '@types/mdx@2.0.12': {}
     
    -  /@types/mime@1.3.5:
    -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
    +  '@types/mime@1.3.5': {}
     
    -  /@types/mime@3.0.4:
    -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
    +  '@types/mime@3.0.4': {}
     
    -  /@types/minimatch@3.0.5:
    -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
    +  '@types/minimatch@3.0.5': {}
     
    -  /@types/minimatch@5.1.2:
    -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
    -    dev: true
    +  '@types/minimatch@5.1.2': {}
     
    -  /@types/minimist@1.2.5:
    -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
    -    dev: true
    +  '@types/minimist@1.2.5': {}
     
    -  /@types/mocha@10.0.6:
    -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
    -    dev: true
    +  '@types/mocha@10.0.6': {}
     
    -  /@types/moo@0.5.9:
    -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
    -    dev: true
    +  '@types/moo@0.5.9': {}
     
    -  /@types/ms@0.7.34:
    -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
    +  '@types/ms@0.7.34': {}
     
    -  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
    -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
    -    dev: true
    -    patched: true
    +  '@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)': {}
     
    -  /@types/node-forge@1.3.11:
    -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
    +  '@types/node-forge@1.3.11':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/node@15.14.9:
    -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
    +  '@types/node@15.14.9': {}
     
    -  /@types/node@17.0.45:
    -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    -    dev: false
    +  '@types/node@17.0.45': {}
     
    -  /@types/node@18.18.2:
    -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
    +  '@types/node@18.18.2': {}
     
    -  /@types/normalize-package-data@2.4.4:
    -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
    +  '@types/normalize-package-data@2.4.4': {}
     
    -  /@types/normalize-path@3.0.2:
    -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
    -    dev: false
    +  '@types/normalize-path@3.0.2': {}
     
    -  /@types/parse-json@4.0.2:
    -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
    -    dev: false
    +  '@types/parse-json@4.0.2': {}
     
    -  /@types/prismjs@1.26.3:
    -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
    -    dev: false
    +  '@types/prismjs@1.26.3': {}
     
    -  /@types/prop-types@15.7.12:
    -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
    +  '@types/prop-types@15.7.12': {}
     
    -  /@types/qs@6.9.14:
    -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
    +  '@types/qs@6.9.14': {}
     
    -  /@types/range-parser@1.2.7:
    -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
    +  '@types/range-parser@1.2.7': {}
     
    -  /@types/react-dom@18.2.22:
    -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
    +  '@types/react-dom@18.2.22':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/react-helmet@6.1.11:
    -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
    +  '@types/react-helmet@6.1.11':
         dependencies:
           '@types/react': 18.2.71
    -    dev: true
     
    -  /@types/react-router-config@5.0.11:
    -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
    +  '@types/react-router-config@5.0.11':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  /@types/react-router-dom@5.3.3:
    -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
    +  '@types/react-router-dom@5.3.3':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
           '@types/react-router': 5.1.20
     
    -  /@types/react-router@5.1.20:
    -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
    +  '@types/react-router@5.1.20':
         dependencies:
           '@types/history': 4.7.11
           '@types/react': 18.2.71
     
    -  /@types/react@18.2.71:
    -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
    +  '@types/react@18.2.71':
         dependencies:
           '@types/prop-types': 15.7.12
           '@types/scheduler': 0.23.0
           csstype: 3.1.3
     
    -  /@types/retry@0.12.0:
    -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
    -    dev: false
    +  '@types/retry@0.12.0': {}
     
    -  /@types/retry@0.12.2:
    -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
    +  '@types/retry@0.12.2': {}
     
    -  /@types/sax@1.2.7:
    -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
    +  '@types/sax@1.2.7':
         dependencies:
           '@types/node': 18.18.2
    -    dev: false
     
    -  /@types/sbd@1.0.5:
    -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
    -    dev: true
    +  '@types/sbd@1.0.5': {}
     
    -  /@types/scheduler@0.23.0:
    -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
    +  '@types/scheduler@0.23.0': {}
     
    -  /@types/semver@7.5.8:
    -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    -    dev: true
    +  '@types/semver@7.5.8': {}
     
    -  /@types/send@0.17.4:
    -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
    +  '@types/send@0.17.4':
         dependencies:
           '@types/mime': 1.3.5
           '@types/node': 18.18.2
     
    -  /@types/serve-index@1.9.4:
    -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
    +  '@types/serve-index@1.9.4':
         dependencies:
           '@types/express': 4.17.21
     
    -  /@types/serve-static@1.15.5:
    -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
    +  '@types/serve-static@1.15.5':
         dependencies:
           '@types/http-errors': 2.0.4
           '@types/mime': 3.0.4
           '@types/node': 18.18.2
     
    -  /@types/sinon@17.0.3:
    -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
    +  '@types/sinon@17.0.3':
         dependencies:
           '@types/sinonjs__fake-timers': 8.1.5
     
    -  /@types/sinonjs__fake-timers@8.1.5:
    -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
    +  '@types/sinonjs__fake-timers@8.1.5': {}
     
    -  /@types/sockjs@0.3.36:
    -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
    +  '@types/sockjs@0.3.36':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/ssri@7.1.5:
    -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
    +  '@types/ssri@7.1.5':
         dependencies:
           '@types/node': 18.18.2
    -    dev: true
     
    -  /@types/stack-utils@2.0.3:
    -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
    -    dev: true
    +  '@types/stack-utils@2.0.3': {}
     
    -  /@types/tail@2.2.3:
    -    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
    -    dev: true
    +  '@types/tail@2.2.3': {}
     
    -  /@types/tinycolor2@1.4.6:
    -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
    -    dev: true
    +  '@types/tinycolor2@1.4.6': {}
     
    -  /@types/tough-cookie@4.0.5:
    -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
    -    dev: true
    +  '@types/tough-cookie@4.0.5': {}
     
    -  /@types/triple-beam@1.3.5:
    -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
    +  '@types/triple-beam@1.3.5': {}
     
    -  /@types/unist@2.0.10:
    -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
    +  '@types/unist@2.0.10': {}
     
    -  /@types/unist@3.0.2:
    -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
    +  '@types/unist@3.0.2': {}
     
    -  /@types/uuid@9.0.8:
    -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
    +  '@types/uuid@9.0.8': {}
     
    -  /@types/vinyl@2.0.11:
    -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
    +  '@types/vinyl@2.0.11':
         dependencies:
           '@types/expect': 1.20.4
           '@types/node': 18.18.2
     
    -  /@types/vscode@1.75.1:
    -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
    +  '@types/vscode@1.75.1': {}
     
    -  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
    -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
    +  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
         dependencies:
           '@types/node': 18.18.2
           tapable: 2.2.1
    @@ -5579,31 +12969,18 @@ packages:
           - esbuild
           - uglify-js
           - webpack-cli
    -    dev: true
     
    -  /@types/ws@8.5.10:
    -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
    +  '@types/ws@8.5.10':
         dependencies:
           '@types/node': 18.18.2
     
    -  /@types/yargs-parser@21.0.3:
    -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
    +  '@types/yargs-parser@21.0.3': {}
     
    -  /@types/yargs@17.0.32:
    -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
    +  '@types/yargs@17.0.32':
         dependencies:
           '@types/yargs-parser': 21.0.3
     
    -  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/parser': ^7.0.0
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@eslint-community/regexpp': 4.10.0
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -5621,17 +12998,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      eslint: ^7.0.0 || ^8.0.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/scope-manager': 6.21.0
           '@typescript-eslint/types': 6.21.0
    @@ -5642,17 +13010,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/scope-manager': 7.4.0
           '@typescript-eslint/types': 7.4.0
    @@ -5663,33 +13022,18 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/scope-manager@6.21.0:
    -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    +  '@typescript-eslint/scope-manager@6.21.0':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    -    dev: true
     
    -  /@typescript-eslint/scope-manager@7.4.0:
    -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    +  '@typescript-eslint/scope-manager@7.4.0':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    -    dev: true
     
    -  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
           '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
    @@ -5699,26 +13043,12 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/types@6.21.0:
    -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    dev: true
    +  '@typescript-eslint/types@6.21.0': {}
     
    -  /@typescript-eslint/types@7.4.0:
    -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    dev: true
    +  '@typescript-eslint/types@7.4.0': {}
     
    -  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           '@typescript-eslint/visitor-keys': 6.21.0
    @@ -5731,16 +13061,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      typescript: '*'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           '@typescript-eslint/visitor-keys': 7.4.0
    @@ -5753,13 +13075,8 @@ packages:
           typescript: 5.4.3
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    -    peerDependencies:
    -      eslint: ^8.56.0
    +  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@types/json-schema': 7.0.15
    @@ -5772,30 +13089,20 @@ packages:
         transitivePeerDependencies:
           - supports-color
           - typescript
    -    dev: true
     
    -  /@typescript-eslint/visitor-keys@6.21.0:
    -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
    -    engines: {node: ^16.0.0 || >=18.0.0}
    +  '@typescript-eslint/visitor-keys@6.21.0':
         dependencies:
           '@typescript-eslint/types': 6.21.0
           eslint-visitor-keys: 3.4.3
    -    dev: true
     
    -  /@typescript-eslint/visitor-keys@7.4.0:
    -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
    -    engines: {node: ^18.18.0 || >=20.0.0}
    +  '@typescript-eslint/visitor-keys@7.4.0':
         dependencies:
           '@typescript-eslint/types': 7.4.0
           eslint-visitor-keys: 3.4.3
    -    dev: true
     
    -  /@ungap/structured-clone@1.2.0:
    -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    +  '@ungap/structured-clone@1.2.0': {}
     
    -  /@vscode/test-electron@2.3.9:
    -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
    -    engines: {node: '>=16'}
    +  '@vscode/test-electron@2.3.9':
         dependencies:
           http-proxy-agent: 4.0.1
           https-proxy-agent: 5.0.1
    @@ -5803,56 +13110,44 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /@webassemblyjs/ast@1.12.1:
    -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
    +  '@webassemblyjs/ast@1.12.1':
         dependencies:
           '@webassemblyjs/helper-numbers': 1.11.6
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
     
    -  /@webassemblyjs/floating-point-hex-parser@1.11.6:
    -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
    +  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
     
    -  /@webassemblyjs/helper-api-error@1.11.6:
    -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
    +  '@webassemblyjs/helper-api-error@1.11.6': {}
     
    -  /@webassemblyjs/helper-buffer@1.12.1:
    -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
    +  '@webassemblyjs/helper-buffer@1.12.1': {}
     
    -  /@webassemblyjs/helper-numbers@1.11.6:
    -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
    +  '@webassemblyjs/helper-numbers@1.11.6':
         dependencies:
           '@webassemblyjs/floating-point-hex-parser': 1.11.6
           '@webassemblyjs/helper-api-error': 1.11.6
           '@xtuc/long': 4.2.2
     
    -  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
    -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
    +  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
     
    -  /@webassemblyjs/helper-wasm-section@1.12.1:
    -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
    +  '@webassemblyjs/helper-wasm-section@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
           '@webassemblyjs/wasm-gen': 1.12.1
     
    -  /@webassemblyjs/ieee754@1.11.6:
    -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
    +  '@webassemblyjs/ieee754@1.11.6':
         dependencies:
           '@xtuc/ieee754': 1.2.0
     
    -  /@webassemblyjs/leb128@1.11.6:
    -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
    +  '@webassemblyjs/leb128@1.11.6':
         dependencies:
           '@xtuc/long': 4.2.2
     
    -  /@webassemblyjs/utf8@1.11.6:
    -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
    +  '@webassemblyjs/utf8@1.11.6': {}
     
    -  /@webassemblyjs/wasm-edit@1.12.1:
    -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
    +  '@webassemblyjs/wasm-edit@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
    @@ -5863,8 +13158,7 @@ packages:
           '@webassemblyjs/wasm-parser': 1.12.1
           '@webassemblyjs/wast-printer': 1.12.1
     
    -  /@webassemblyjs/wasm-gen@1.12.1:
    -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
    +  '@webassemblyjs/wasm-gen@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-wasm-bytecode': 1.11.6
    @@ -5872,16 +13166,14 @@ packages:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  /@webassemblyjs/wasm-opt@1.12.1:
    -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
    +  '@webassemblyjs/wasm-opt@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-buffer': 1.12.1
           '@webassemblyjs/wasm-gen': 1.12.1
           '@webassemblyjs/wasm-parser': 1.12.1
     
    -  /@webassemblyjs/wasm-parser@1.12.1:
    -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
    +  '@webassemblyjs/wasm-parser@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@webassemblyjs/helper-api-error': 1.11.6
    @@ -5890,32 +13182,17 @@ packages:
           '@webassemblyjs/leb128': 1.11.6
           '@webassemblyjs/utf8': 1.11.6
     
    -  /@webassemblyjs/wast-printer@1.12.1:
    -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
    +  '@webassemblyjs/wast-printer@1.12.1':
         dependencies:
           '@webassemblyjs/ast': 1.12.1
           '@xtuc/long': 4.2.2
     
    -  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    +  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      prettier: '*'
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -    peerDependenciesMeta:
    -      prettier:
    -        optional: true
    +  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           prettier: 3.2.5
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    @@ -5928,207 +13205,125 @@ packages:
           - mem-fs
           - supports-color
     
    -  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    +  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
     
    -  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
    -    engines: {node: '>=14.15.0'}
    -    peerDependencies:
    -      webpack: 5.x.x
    -      webpack-cli: 5.x.x
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      webpack-dev-server:
    -        optional: true
    +  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
     
    -  /@xobotyi/scrollbar-width@1.9.5:
    -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
    -    dev: false
    +  '@xobotyi/scrollbar-width@1.9.5': {}
     
    -  /@xtuc/ieee754@1.2.0:
    -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
    +  '@xtuc/ieee754@1.2.0': {}
     
    -  /@xtuc/long@4.2.2:
    -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
    +  '@xtuc/long@4.2.2': {}
     
    -  /@zkochan/js-yaml@0.0.7:
    -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
    -    hasBin: true
    +  '@zkochan/js-yaml@0.0.7':
         dependencies:
           argparse: 2.0.1
    -    dev: false
     
    -  /@zkochan/retry@0.2.0:
    -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  '@zkochan/retry@0.2.0': {}
     
    -  /@zkochan/rimraf@2.1.3:
    -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
    -    engines: {node: '>=12.10'}
    +  '@zkochan/rimraf@2.1.3':
         dependencies:
           rimraf: 3.0.2
    -    dev: false
     
    -  /@zkochan/which@2.0.3:
    -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    +  '@zkochan/which@2.0.3':
         dependencies:
           isexe: 2.0.0
     
    -  /abab@2.0.6:
    -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
    -    deprecated: Use your platform's native atob() and btoa() methods instead
    -    dev: true
    +  abab@2.0.6: {}
     
    -  /abbrev@1.1.1:
    -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
    +  abbrev@1.1.1: {}
     
    -  /abort-controller@3.0.0:
    -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
    -    engines: {node: '>=6.5'}
    +  abort-controller@3.0.0:
         dependencies:
           event-target-shim: 5.0.1
     
    -  /accepts@1.3.8:
    -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
    -    engines: {node: '>= 0.6'}
    +  accepts@1.3.8:
         dependencies:
           mime-types: 2.1.35
           negotiator: 0.6.3
     
    -  /acorn-globals@7.0.1:
    -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
    +  acorn-globals@7.0.1:
         dependencies:
           acorn: 8.11.3
           acorn-walk: 8.3.2
    -    dev: true
     
    -  /acorn-import-assertions@1.9.0(acorn@8.11.3):
    -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
    -    peerDependencies:
    -      acorn: ^8
    +  acorn-import-assertions@1.9.0(acorn@8.11.3):
         dependencies:
           acorn: 8.11.3
     
    -  /acorn-jsx@5.3.2(acorn@8.11.3):
    -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    -    peerDependencies:
    -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    +  acorn-jsx@5.3.2(acorn@8.11.3):
         dependencies:
           acorn: 8.11.3
     
    -  /acorn-walk@8.3.2:
    -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
    -    engines: {node: '>=0.4.0'}
    +  acorn-walk@8.3.2: {}
     
    -  /acorn@8.11.3:
    -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    -    engines: {node: '>=0.4.0'}
    -    hasBin: true
    +  acorn@8.11.3: {}
     
    -  /address@1.2.2:
    -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
    -    engines: {node: '>= 10.0.0'}
    -    dev: false
    +  address@1.2.2: {}
     
    -  /agent-base@6.0.2:
    -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
    -    engines: {node: '>= 6.0.0'}
    +  agent-base@6.0.2:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  /agentkeepalive@4.2.1:
    -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
    -    engines: {node: '>= 8.0.0'}
    +  agentkeepalive@4.2.1:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           depd: 1.1.2
           humanize-ms: 1.2.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /agentkeepalive@4.5.0:
    -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
    -    engines: {node: '>= 8.0.0'}
    +  agentkeepalive@4.5.0:
         dependencies:
           humanize-ms: 1.2.1
     
    -  /aggregate-error@3.1.0:
    -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
    -    engines: {node: '>=8'}
    +  aggregate-error@3.1.0:
         dependencies:
           clean-stack: 2.2.0
           indent-string: 4.0.0
     
    -  /ajv-formats@2.1.1(ajv@8.12.0):
    -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
    -    peerDependencies:
    -      ajv: ^8.0.0
    -    peerDependenciesMeta:
    -      ajv:
    -        optional: true
    +  ajv-formats@2.1.1(ajv@8.12.0):
         dependencies:
           ajv: 8.12.0
     
    -  /ajv-keywords@3.5.2(ajv@6.12.6):
    -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
    -    peerDependencies:
    -      ajv: ^6.9.1
    +  ajv-keywords@3.5.2(ajv@6.12.6):
         dependencies:
           ajv: 6.12.6
     
    -  /ajv-keywords@5.1.0(ajv@8.12.0):
    -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
    -    peerDependencies:
    -      ajv: ^8.8.2
    +  ajv-keywords@5.1.0(ajv@8.12.0):
         dependencies:
           ajv: 8.12.0
           fast-deep-equal: 3.1.3
     
    -  /ajv@6.12.6:
    -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    +  ajv@6.12.6:
         dependencies:
           fast-deep-equal: 3.1.3
           fast-json-stable-stringify: 2.1.0
           json-schema-traverse: 0.4.1
           uri-js: 4.4.1
     
    -  /ajv@8.12.0:
    -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
    +  ajv@8.12.0:
         dependencies:
           fast-deep-equal: 3.1.3
           json-schema-traverse: 1.0.0
           require-from-string: 2.0.2
           uri-js: 4.4.1
     
    -  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
    -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
    -    peerDependencies:
    -      algoliasearch: '>= 3.1 < 6'
    +  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
         dependencies:
           '@algolia/events': 4.0.1
           algoliasearch: 4.22.1
    -    dev: false
     
    -  /algoliasearch@4.22.1:
    -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
    +  algoliasearch@4.22.1:
         dependencies:
           '@algolia/cache-browser-local-storage': 4.22.1
           '@algolia/cache-common': 4.22.1
    @@ -6144,157 +13339,96 @@ packages:
           '@algolia/requester-common': 4.22.1
           '@algolia/requester-node-http': 4.22.1
           '@algolia/transporter': 4.22.1
    -    dev: false
     
    -  /ansi-align@3.0.1:
    -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
    +  ansi-align@3.0.1:
         dependencies:
           string-width: 4.2.3
     
    -  /ansi-colors@4.1.1:
    -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  ansi-colors@4.1.1: {}
     
    -  /ansi-colors@4.1.3:
    -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  ansi-colors@4.1.3: {}
     
    -  /ansi-diff@1.1.1:
    -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
    +  ansi-diff@1.1.1:
         dependencies:
           ansi-split: 1.0.1
    -    dev: true
     
    -  /ansi-escapes@4.3.2:
    -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
    -    engines: {node: '>=8'}
    +  ansi-escapes@4.3.2:
         dependencies:
           type-fest: 0.21.3
     
    -  /ansi-html-community@0.0.8:
    -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
    -    engines: {'0': node >= 0.8.0}
    -    hasBin: true
    +  ansi-html-community@0.0.8: {}
     
    -  /ansi-regex@3.0.1:
    -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  ansi-regex@3.0.1: {}
     
    -  /ansi-regex@5.0.1:
    -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    -    engines: {node: '>=8'}
    +  ansi-regex@5.0.1: {}
     
    -  /ansi-regex@6.0.1:
    -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    -    engines: {node: '>=12'}
    +  ansi-regex@6.0.1: {}
     
    -  /ansi-split@1.0.1:
    -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
    +  ansi-split@1.0.1:
         dependencies:
           ansi-regex: 3.0.1
    -    dev: true
     
    -  /ansi-styles@3.2.1:
    -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    -    engines: {node: '>=4'}
    +  ansi-styles@3.2.1:
         dependencies:
           color-convert: 1.9.3
     
    -  /ansi-styles@4.3.0:
    -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    -    engines: {node: '>=8'}
    +  ansi-styles@4.3.0:
         dependencies:
           color-convert: 2.0.1
     
    -  /ansi-styles@5.2.0:
    -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  ansi-styles@5.2.0: {}
     
    -  /ansi-styles@6.2.1:
    -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    -    engines: {node: '>=12'}
    +  ansi-styles@6.2.1: {}
     
    -  /any-promise@1.3.0:
    -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    -    dev: true
    +  any-promise@1.3.0: {}
     
    -  /anymatch@3.1.3:
    -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    -    engines: {node: '>= 8'}
    +  anymatch@3.1.3:
         dependencies:
           normalize-path: 3.0.0
           picomatch: 2.3.1
     
    -  /aproba@2.0.0:
    -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
    +  aproba@2.0.0: {}
     
    -  /archy@1.0.0:
    -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
    -    dev: true
    +  archy@1.0.0: {}
     
    -  /are-we-there-yet@2.0.0:
    -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
    -    engines: {node: '>=10'}
    +  are-we-there-yet@2.0.0:
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  /are-we-there-yet@3.0.1:
    -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  are-we-there-yet@3.0.1:
         dependencies:
           delegates: 1.0.0
           readable-stream: 3.6.2
     
    -  /arg@4.1.3:
    -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    -    dev: true
    +  arg@4.1.3: {}
     
    -  /arg@5.0.2:
    -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +  arg@5.0.2: {}
     
    -  /argparse@1.0.10:
    -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
    +  argparse@1.0.10:
         dependencies:
           sprintf-js: 1.0.3
     
    -  /argparse@2.0.1:
    -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    +  argparse@2.0.1: {}
     
    -  /aria-query@5.1.3:
    -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
    +  aria-query@5.1.3:
         dependencies:
           deep-equal: 2.2.3
    -    dev: true
     
    -  /aria-query@5.3.0:
    -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
    +  aria-query@5.3.0:
         dependencies:
           dequal: 2.0.3
    -    dev: true
     
    -  /array-buffer-byte-length@1.0.1:
    -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
    -    engines: {node: '>= 0.4'}
    +  array-buffer-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           is-array-buffer: 3.0.4
    -    dev: true
     
    -  /array-differ@3.0.0:
    -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
    -    engines: {node: '>=8'}
    +  array-differ@3.0.0: {}
     
    -  /array-flatten@1.1.1:
    -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
    +  array-flatten@1.1.1: {}
     
    -  /array-includes@3.1.8:
    -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
    -    engines: {node: '>= 0.4'}
    +  array-includes@3.1.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6302,15 +13436,10 @@ packages:
           es-object-atoms: 1.0.0
           get-intrinsic: 1.2.4
           is-string: 1.0.7
    -    dev: true
     
    -  /array-union@2.1.0:
    -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    -    engines: {node: '>=8'}
    +  array-union@2.1.0: {}
     
    -  /array.prototype.findlast@1.2.5:
    -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.findlast@1.2.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6318,11 +13447,8 @@ packages:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.findlastindex@1.2.5:
    -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.findlastindex@1.2.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -6330,50 +13456,37 @@ packages:
           es-errors: 1.3.0
           es-object-atoms: 1.0.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.flat@1.3.2:
    -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.flat@1.3.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.flatmap@1.3.2:
    -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
    -    engines: {node: '>= 0.4'}
    +  array.prototype.flatmap@1.3.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.toreversed@1.1.2:
    -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
    +  array.prototype.toreversed@1.1.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /array.prototype.tosorted@1.1.3:
    -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
    +  array.prototype.tosorted@1.1.3:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-errors: 1.3.0
           es-shim-unscopables: 1.0.2
    -    dev: true
     
    -  /arraybuffer.prototype.slice@1.0.3:
    -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
    -    engines: {node: '>= 0.4'}
    +  arraybuffer.prototype.slice@1.0.3:
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -6383,63 +13496,34 @@ packages:
           get-intrinsic: 1.2.4
           is-array-buffer: 3.0.4
           is-shared-array-buffer: 1.0.3
    -    dev: true
     
    -  /arrify@1.0.1:
    -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  arrify@1.0.1: {}
     
    -  /arrify@2.0.1:
    -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
    -    engines: {node: '>=8'}
    +  arrify@2.0.1: {}
     
    -  /as-table@1.0.55:
    -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
    +  as-table@1.0.55:
         dependencies:
           printable-characters: 1.0.42
    -    dev: true
     
    -  /asap@2.0.6:
    -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
    +  asap@2.0.6: {}
     
    -  /assertion-error@2.0.1:
    -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  assertion-error@2.0.1: {}
     
    -  /ast-types-flow@0.0.8:
    -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
    -    dev: true
    +  ast-types-flow@0.0.8: {}
     
    -  /astring@1.8.6:
    -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
    -    hasBin: true
    +  astring@1.8.6: {}
     
    -  /async@2.6.4:
    -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
    +  async@2.6.4:
         dependencies:
           lodash: 4.17.21
    -    dev: true
     
    -  /async@3.2.5:
    -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
    +  async@3.2.5: {}
     
    -  /asynckit@0.4.0:
    -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
    -    dev: true
    +  asynckit@0.4.0: {}
     
    -  /at-least-node@1.0.0:
    -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
    -    engines: {node: '>= 4.0.0'}
    -    dev: false
    +  at-least-node@1.0.0: {}
     
    -  /autoprefixer@10.4.19(postcss@8.4.38):
    -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    hasBin: true
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  autoprefixer@10.4.19(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
    @@ -6449,29 +13533,17 @@ packages:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
     
    -  /available-typed-arrays@1.0.7:
    -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
    -    engines: {node: '>= 0.4'}
    +  available-typed-arrays@1.0.7:
         dependencies:
           possible-typed-array-names: 1.0.0
    -    dev: true
     
    -  /axe-core@4.7.0:
    -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  axe-core@4.7.0: {}
     
    -  /axobject-query@3.2.1:
    -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
    +  axobject-query@3.2.1:
         dependencies:
           dequal: 2.0.3
    -    dev: true
     
    -  /babel-jest@29.7.0(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.8.0
    +  babel-jest@29.7.0(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@jest/transform': 29.7.0
    @@ -6483,30 +13555,19 @@ packages:
           slash: 3.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@babel/core': ^7.12.0
    -      webpack: '>=5'
    +  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
         dependencies:
           '@babel/core': 7.24.3
           find-cache-dir: 4.0.0
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /babel-plugin-dynamic-import-node@2.3.3:
    -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    +  babel-plugin-dynamic-import-node@2.3.3:
         dependencies:
           object.assign: 4.1.5
    -    dev: false
     
    -  /babel-plugin-istanbul@6.1.1:
    -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
    -    engines: {node: '>=8'}
    +  babel-plugin-istanbul@6.1.1:
         dependencies:
           '@babel/helper-plugin-utils': 7.24.0
           '@istanbuljs/load-nyc-config': 1.1.0
    @@ -6515,22 +13576,15 @@ packages:
           test-exclude: 6.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /babel-plugin-jest-hoist@29.6.3:
    -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  babel-plugin-jest-hoist@29.6.3:
         dependencies:
           '@babel/template': 7.24.0
           '@babel/types': 7.24.0
           '@types/babel__core': 7.20.5
           '@types/babel__traverse': 7.20.5
    -    dev: true
     
    -  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
         dependencies:
           '@babel/compat-data': 7.24.1
           '@babel/core': 7.24.3
    @@ -6539,10 +13593,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
    @@ -6550,20 +13601,14 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
    -    peerDependencies:
    -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
    +  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
         transitivePeerDependencies:
           - supports-color
     
    -  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
    @@ -6578,55 +13623,34 @@ packages:
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
           '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
    -    dev: true
     
    -  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
    -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@babel/core': ^7.0.0
    +  babel-preset-jest@29.6.3(@babel/core@7.24.3):
         dependencies:
           '@babel/core': 7.24.3
           babel-plugin-jest-hoist: 29.6.3
           babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
    -    dev: true
     
    -  /bail@2.0.2:
    -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
    +  bail@2.0.2: {}
     
    -  /balanced-match@1.0.2:
    -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +  balanced-match@1.0.2: {}
     
    -  /base64-js@1.5.1:
    -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
    +  base64-js@1.5.1: {}
     
    -  /basic-auth@2.0.1:
    -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
    -    engines: {node: '>= 0.8'}
    +  basic-auth@2.0.1:
         dependencies:
           safe-buffer: 5.1.2
    -    dev: true
     
    -  /batch@0.6.1:
    -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
    +  batch@0.6.1: {}
     
    -  /before-after-hook@2.2.3:
    -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
    +  before-after-hook@2.2.3: {}
     
    -  /better-path-resolve@1.0.0:
    -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
    -    engines: {node: '>=4'}
    +  better-path-resolve@1.0.0:
         dependencies:
           is-windows: 1.0.2
    -    dev: true
     
    -  /big.js@5.2.2:
    -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
    -    dev: false
    +  big.js@5.2.2: {}
     
    -  /bin-links@3.0.3:
    -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  bin-links@3.0.3:
         dependencies:
           cmd-shim: 5.0.0
           mkdirp-infer-owner: 2.0.0
    @@ -6635,24 +13659,17 @@ packages:
           rimraf: 3.0.2
           write-file-atomic: 4.0.2
     
    -  /binary-extensions@2.3.0:
    -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    -    engines: {node: '>=8'}
    +  binary-extensions@2.3.0: {}
     
    -  /binaryextensions@4.19.0:
    -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
    -    engines: {node: '>=0.8'}
    +  binaryextensions@4.19.0: {}
     
    -  /bl@4.1.0:
    -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
    +  bl@4.1.0:
         dependencies:
           buffer: 5.7.1
           inherits: 2.0.4
           readable-stream: 3.6.2
     
    -  /body-parser@1.20.2:
    -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +  body-parser@1.20.2:
         dependencies:
           bytes: 3.1.2
           content-type: 1.0.5
    @@ -6669,24 +13686,19 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /bole@5.0.11:
    -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
    +  bole@5.0.11:
         dependencies:
           fast-safe-stringify: 2.1.1
           individual: 3.0.0
     
    -  /bonjour-service@1.2.1:
    -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
    +  bonjour-service@1.2.1:
         dependencies:
           fast-deep-equal: 3.1.3
           multicast-dns: 7.2.5
     
    -  /boolbase@1.0.0:
    -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
    +  boolbase@1.0.0: {}
     
    -  /boxen@5.1.2:
    -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
    -    engines: {node: '>=10'}
    +  boxen@5.1.2:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -6696,11 +13708,8 @@ packages:
           type-fest: 0.20.2
           widest-line: 3.1.0
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /boxen@6.2.1:
    -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  boxen@6.2.1:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 6.3.0
    @@ -6710,11 +13719,8 @@ packages:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    -    dev: false
     
    -  /boxen@7.1.1:
    -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
    -    engines: {node: '>=14.16'}
    +  boxen@7.1.1:
         dependencies:
           ansi-align: 3.0.1
           camelcase: 7.0.1
    @@ -6724,104 +13730,70 @@ packages:
           type-fest: 2.19.0
           widest-line: 4.0.1
           wrap-ansi: 8.1.0
    -    dev: false
     
    -  /brace-expansion@1.1.11:
    -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    +  brace-expansion@1.1.11:
         dependencies:
           balanced-match: 1.0.2
           concat-map: 0.0.1
     
    -  /brace-expansion@2.0.1:
    -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    +  brace-expansion@2.0.1:
         dependencies:
           balanced-match: 1.0.2
     
    -  /braces@3.0.2:
    -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    -    engines: {node: '>=8'}
    +  braces@3.0.2:
         dependencies:
           fill-range: 7.0.1
     
    -  /browser-stdout@1.3.1:
    -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
    -    dev: true
    +  browser-stdout@1.3.1: {}
     
    -  /browserslist@4.23.0:
    -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    -    hasBin: true
    +  browserslist@4.23.0:
         dependencies:
           caniuse-lite: 1.0.30001600
           electron-to-chromium: 1.4.717
           node-releases: 2.0.14
           update-browserslist-db: 1.0.13(browserslist@4.23.0)
     
    -  /bs-logger@0.2.6:
    -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
    -    engines: {node: '>= 6'}
    +  bs-logger@0.2.6:
         dependencies:
           fast-json-stable-stringify: 2.1.0
    -    dev: true
     
    -  /bser@2.1.1:
    -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
    +  bser@2.1.1:
         dependencies:
           node-int64: 0.4.0
    -    dev: true
     
    -  /buffer-from@1.1.2:
    -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    +  buffer-from@1.1.2: {}
     
    -  /buffer@5.7.1:
    -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
    +  buffer@5.7.1:
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  /buffer@6.0.3:
    -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
    +  buffer@6.0.3:
         dependencies:
           base64-js: 1.5.1
           ieee754: 1.2.1
     
    -  /builtin-modules@3.3.0:
    -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  builtin-modules@3.3.0: {}
     
    -  /builtins@1.0.3:
    -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
    +  builtins@1.0.3: {}
     
    -  /builtins@5.0.1:
    -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
    +  builtins@5.0.1:
         dependencies:
           semver: 7.6.0
     
    -  /bundle-name@4.1.0:
    -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
    -    engines: {node: '>=18'}
    +  bundle-name@4.1.0:
         dependencies:
           run-applescript: 7.0.0
     
    -  /busboy@1.6.0:
    -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
    -    engines: {node: '>=10.16.0'}
    +  busboy@1.6.0:
         dependencies:
           streamsearch: 1.1.0
    -    dev: false
     
    -  /bytes@3.0.0:
    -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
    -    engines: {node: '>= 0.8'}
    +  bytes@3.0.0: {}
     
    -  /bytes@3.1.2:
    -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
    -    engines: {node: '>= 0.8'}
    +  bytes@3.1.2: {}
     
    -  /cacache@15.3.0:
    -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
    -    engines: {node: '>= 10'}
    +  cacache@15.3.0:
         dependencies:
           '@npmcli/fs': 1.1.1
           '@npmcli/move-file': 1.1.2
    @@ -6844,9 +13816,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /cacache@16.1.3:
    -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  cacache@16.1.3:
         dependencies:
           '@npmcli/fs': 2.1.2
           '@npmcli/move-file': 2.0.1
    @@ -6869,9 +13839,7 @@ packages:
         transitivePeerDependencies:
           - bluebird
     
    -  /cacache@17.1.4:
    -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  cacache@17.1.4:
         dependencies:
           '@npmcli/fs': 3.1.0
           fs-minipass: 3.0.3
    @@ -6886,14 +13854,9 @@ packages:
           tar: 6.2.1
           unique-filename: 3.0.0
     
    -  /cacheable-lookup@7.0.0:
    -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  cacheable-lookup@7.0.0: {}
     
    -  /cacheable-request@10.2.14:
    -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
    -    engines: {node: '>=14.16'}
    +  cacheable-request@10.2.14:
         dependencies:
           '@types/http-cache-semantics': 4.0.4
           get-stream: 6.0.1
    @@ -6902,11 +13865,8 @@ packages:
           mimic-response: 4.0.0
           normalize-url: 8.0.1
           responselike: 3.0.0
    -    dev: false
     
    -  /call-bind@1.0.7:
    -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
    -    engines: {node: '>= 0.4'}
    +  call-bind@1.0.7:
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
    @@ -6914,133 +13874,85 @@ packages:
           get-intrinsic: 1.2.4
           set-function-length: 1.2.2
     
    -  /callsites@3.1.0:
    -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    -    engines: {node: '>=6'}
    +  callsites@3.1.0: {}
     
    -  /camel-case@4.1.2:
    -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
    +  camel-case@4.1.2:
         dependencies:
           pascal-case: 3.1.2
           tslib: 2.6.2
     
    -  /camelcase-css@2.0.1:
    -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  camelcase-css@2.0.1: {}
     
    -  /camelcase-keys@6.2.2:
    -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    -    engines: {node: '>=8'}
    +  camelcase-keys@6.2.2:
         dependencies:
           camelcase: 5.3.1
           map-obj: 4.3.0
           quick-lru: 4.0.1
    -    dev: true
     
    -  /camelcase-keys@7.0.2:
    -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
    -    engines: {node: '>=12'}
    +  camelcase-keys@7.0.2:
         dependencies:
           camelcase: 6.3.0
           map-obj: 4.3.0
           quick-lru: 5.1.1
           type-fest: 1.4.0
    -    dev: true
     
    -  /camelcase@5.3.1:
    -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  camelcase@5.3.1: {}
     
    -  /camelcase@6.3.0:
    -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
    -    engines: {node: '>=10'}
    +  camelcase@6.3.0: {}
     
    -  /camelcase@7.0.1:
    -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  camelcase@7.0.1: {}
     
    -  /can-write-to-dir@1.1.1:
    -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
    -    engines: {node: '>=10.13'}
    +  can-write-to-dir@1.1.1:
         dependencies:
           path-temp: 2.1.0
    -    dev: true
     
    -  /caniuse-api@3.0.0:
    -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
    +  caniuse-api@3.0.0:
         dependencies:
           browserslist: 4.23.0
           caniuse-lite: 1.0.30001600
           lodash.memoize: 4.1.2
           lodash.uniq: 4.5.0
    -    dev: false
     
    -  /caniuse-lite@1.0.30001600:
    -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
    +  caniuse-lite@1.0.30001600: {}
     
    -  /ccount@2.0.1:
    -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
    +  ccount@2.0.1: {}
     
    -  /chai@5.1.0:
    -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
    -    engines: {node: '>=12'}
    +  chai@5.1.0:
         dependencies:
           assertion-error: 2.0.1
           check-error: 2.0.0
           deep-eql: 5.0.1
           loupe: 3.1.0
           pathval: 2.0.0
    -    dev: true
     
    -  /chalk@2.4.2:
    -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    -    engines: {node: '>=4'}
    +  chalk@2.4.2:
         dependencies:
           ansi-styles: 3.2.1
           escape-string-regexp: 1.0.5
           supports-color: 5.5.0
     
    -  /chalk@4.1.2:
    -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    -    engines: {node: '>=10'}
    +  chalk@4.1.2:
         dependencies:
           ansi-styles: 4.3.0
           supports-color: 7.2.0
     
    -  /chalk@5.3.0:
    -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    -    dev: false
    +  chalk@5.3.0: {}
     
    -  /char-regex@1.0.2:
    -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
    -    engines: {node: '>=10'}
    +  char-regex@1.0.2: {}
     
    -  /character-entities-html4@2.1.0:
    -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
    +  character-entities-html4@2.1.0: {}
     
    -  /character-entities-legacy@3.0.0:
    -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
    +  character-entities-legacy@3.0.0: {}
     
    -  /character-entities@2.0.2:
    -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
    +  character-entities@2.0.2: {}
     
    -  /character-reference-invalid@2.0.1:
    -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
    +  character-reference-invalid@2.0.1: {}
     
    -  /chardet@0.7.0:
    -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
    +  chardet@0.7.0: {}
     
    -  /check-error@2.0.0:
    -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
    -    engines: {node: '>= 16'}
    -    dev: true
    +  check-error@2.0.0: {}
     
    -  /cheerio-select@2.1.0:
    -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
    +  cheerio-select@2.1.0:
         dependencies:
           boolbase: 1.0.0
           css-select: 5.1.0
    @@ -7048,11 +13960,8 @@ packages:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
    -    dev: false
     
    -  /cheerio@1.0.0-rc.12:
    -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
    -    engines: {node: '>= 6'}
    +  cheerio@1.0.0-rc.12:
         dependencies:
           cheerio-select: 2.1.0
           dom-serializer: 2.0.0
    @@ -7061,11 +13970,8 @@ packages:
           htmlparser2: 8.0.2
           parse5: 7.1.2
           parse5-htmlparser2-tree-adapter: 7.0.0
    -    dev: false
     
    -  /chokidar@3.5.3:
    -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
    -    engines: {node: '>= 8.10.0'}
    +  chokidar@3.5.3:
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -7076,11 +13982,8 @@ packages:
           readdirp: 3.6.0
         optionalDependencies:
           fsevents: 2.3.3
    -    dev: true
     
    -  /chokidar@3.6.0:
    -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    -    engines: {node: '>= 8.10.0'}
    +  chokidar@3.6.0:
         dependencies:
           anymatch: 3.1.3
           braces: 3.0.2
    @@ -7092,282 +13995,169 @@ packages:
         optionalDependencies:
           fsevents: 2.3.3
     
    -  /chownr@2.0.0:
    -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
    -    engines: {node: '>=10'}
    +  chownr@2.0.0: {}
     
    -  /chrome-trace-event@1.0.3:
    -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
    -    engines: {node: '>=6.0'}
    +  chrome-trace-event@1.0.3: {}
     
    -  /ci-info@3.9.0:
    -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
    -    engines: {node: '>=8'}
    +  ci-info@3.9.0: {}
     
    -  /ci-info@4.0.0:
    -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  ci-info@4.0.0: {}
     
    -  /cjs-module-lexer@1.2.3:
    -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
    -    dev: true
    +  cjs-module-lexer@1.2.3: {}
     
    -  /clean-css@5.3.3:
    -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
    -    engines: {node: '>= 10.0'}
    +  clean-css@5.3.3:
         dependencies:
           source-map: 0.6.1
     
    -  /clean-regexp@1.0.0:
    -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
    -    engines: {node: '>=4'}
    +  clean-regexp@1.0.0:
         dependencies:
           escape-string-regexp: 1.0.5
    -    dev: true
     
    -  /clean-stack@2.2.0:
    -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
    -    engines: {node: '>=6'}
    +  clean-stack@2.2.0: {}
     
    -  /cli-boxes@2.2.1:
    -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  cli-boxes@2.2.1: {}
     
    -  /cli-boxes@3.0.0:
    -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  cli-boxes@3.0.0: {}
     
    -  /cli-columns@4.0.0:
    -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
    -    engines: {node: '>= 10'}
    +  cli-columns@4.0.0:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /cli-cursor@3.1.0:
    -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
    -    engines: {node: '>=8'}
    +  cli-cursor@3.1.0:
         dependencies:
           restore-cursor: 3.1.0
     
    -  /cli-spinners@2.9.2:
    -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
    -    engines: {node: '>=6'}
    +  cli-spinners@2.9.2: {}
     
    -  /cli-table3@0.6.4:
    -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
    -    engines: {node: 10.* || >= 12.*}
    +  cli-table3@0.6.4:
         dependencies:
           string-width: 4.2.3
         optionalDependencies:
           '@colors/colors': 1.5.0
    -    dev: false
     
    -  /cli-table@0.3.11:
    -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
    -    engines: {node: '>= 0.2.0'}
    +  cli-table@0.3.11:
         dependencies:
           colors: 1.0.3
     
    -  /cli-width@3.0.0:
    -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
    -    engines: {node: '>= 10'}
    +  cli-width@3.0.0: {}
     
    -  /client-only@0.0.1:
    -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
    -    dev: false
    +  client-only@0.0.1: {}
     
    -  /cliui@7.0.4:
    -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
    +  cliui@7.0.4:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /cliui@8.0.1:
    -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
    -    engines: {node: '>=12'}
    +  cliui@8.0.1:
         dependencies:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    -    dev: true
     
    -  /clone-buffer@1.0.0:
    -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    -    engines: {node: '>= 0.10'}
    +  clone-buffer@1.0.0: {}
     
    -  /clone-deep@4.0.1:
    -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
    -    engines: {node: '>=6'}
    +  clone-deep@4.0.1:
         dependencies:
           is-plain-object: 2.0.4
           kind-of: 6.0.3
           shallow-clone: 3.0.1
     
    -  /clone-stats@1.0.0:
    -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
    +  clone-stats@1.0.0: {}
     
    -  /clone@1.0.4:
    -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
    -    engines: {node: '>=0.8'}
    +  clone@1.0.4: {}
     
    -  /clone@2.1.2:
    -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
    -    engines: {node: '>=0.8'}
    +  clone@2.1.2: {}
     
    -  /cloneable-readable@1.1.3:
    -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
    +  cloneable-readable@1.1.3:
         dependencies:
           inherits: 2.0.4
           process-nextick-args: 2.0.1
           readable-stream: 2.3.8
     
    -  /clsx@2.1.0:
    -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  clsx@2.1.0: {}
     
    -  /cmd-shim@5.0.0:
    -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  cmd-shim@5.0.0:
         dependencies:
           mkdirp-infer-owner: 2.0.0
     
    -  /co@4.6.0:
    -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
    -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    -    dev: true
    +  co@4.6.0: {}
     
    -  /collapse-white-space@2.1.0:
    -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
    +  collapse-white-space@2.1.0: {}
     
    -  /collect-v8-coverage@1.0.2:
    -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
    -    dev: true
    +  collect-v8-coverage@1.0.2: {}
     
    -  /color-convert@1.9.3:
    -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    +  color-convert@1.9.3:
         dependencies:
           color-name: 1.1.3
     
    -  /color-convert@2.0.1:
    -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    -    engines: {node: '>=7.0.0'}
    +  color-convert@2.0.1:
         dependencies:
           color-name: 1.1.4
     
    -  /color-name@1.1.3:
    -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +  color-name@1.1.3: {}
     
    -  /color-name@1.1.4:
    -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +  color-name@1.1.4: {}
     
    -  /color-string@1.9.1:
    -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
    +  color-string@1.9.1:
         dependencies:
           color-name: 1.1.4
           simple-swizzle: 0.2.2
     
    -  /color-support@1.1.3:
    -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
    -    hasBin: true
    +  color-support@1.1.3: {}
     
    -  /color@3.2.1:
    -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
    +  color@3.2.1:
         dependencies:
           color-convert: 1.9.3
           color-string: 1.9.1
     
    -  /colord@2.9.3:
    -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
    -    dev: false
    +  colord@2.9.3: {}
     
    -  /colorette@2.0.20:
    -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
    +  colorette@2.0.20: {}
     
    -  /colors@1.0.3:
    -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
    -    engines: {node: '>=0.1.90'}
    +  colors@1.0.3: {}
     
    -  /colorspace@1.1.4:
    -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
    +  colorspace@1.1.4:
         dependencies:
           color: 3.2.1
           text-hex: 1.0.0
     
    -  /combine-promises@1.2.0:
    -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  combine-promises@1.2.0: {}
     
    -  /combined-stream@1.0.8:
    -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    -    engines: {node: '>= 0.8'}
    +  combined-stream@1.0.8:
         dependencies:
           delayed-stream: 1.0.0
    -    dev: true
     
    -  /comma-separated-tokens@2.0.3:
    -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
    +  comma-separated-tokens@2.0.3: {}
     
    -  /commander@10.0.1:
    -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
    -    engines: {node: '>=14'}
    +  commander@10.0.1: {}
     
    -  /commander@11.1.0:
    -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
    -    engines: {node: '>=16'}
    -    dev: true
    +  commander@11.1.0: {}
     
    -  /commander@2.20.3:
    -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
    +  commander@2.20.3: {}
     
    -  /commander@4.1.1:
    -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  commander@4.1.1: {}
     
    -  /commander@5.1.0:
    -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
    -    engines: {node: '>= 6'}
    +  commander@5.1.0: {}
     
    -  /commander@7.1.0:
    -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
    -    engines: {node: '>= 10'}
    +  commander@7.1.0: {}
     
    -  /commander@7.2.0:
    -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
    -    engines: {node: '>= 10'}
    +  commander@7.2.0: {}
     
    -  /commander@8.3.0:
    -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
    -    engines: {node: '>= 12'}
    +  commander@8.3.0: {}
     
    -  /common-ancestor-path@1.0.1:
    -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
    +  common-ancestor-path@1.0.1: {}
     
    -  /common-path-prefix@3.0.0:
    -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
    -    dev: false
    +  common-path-prefix@3.0.0: {}
     
    -  /commondir@1.0.1:
    -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    +  commondir@1.0.1: {}
     
    -  /compressible@2.0.18:
    -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
    -    engines: {node: '>= 0.6'}
    +  compressible@2.0.18:
         dependencies:
           mime-db: 1.52.0
     
    -  /compression@1.7.4:
    -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
    -    engines: {node: '>= 0.8.0'}
    +  compression@1.7.4:
         dependencies:
           accepts: 1.3.8
           bytes: 3.0.0
    @@ -7379,83 +14169,50 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /comver-to-semver@1.0.0:
    -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
    -    engines: {node: '>=12.17'}
    -    dev: false
    +  comver-to-semver@1.0.0: {}
     
    -  /concat-map@0.0.1:
    -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +  concat-map@0.0.1: {}
     
    -  /config-chain@1.1.13:
    -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
    +  config-chain@1.1.13:
         dependencies:
           ini: 1.3.8
           proto-list: 1.2.4
     
    -  /configstore@6.0.0:
    -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
    -    engines: {node: '>=12'}
    +  configstore@6.0.0:
         dependencies:
           dot-prop: 6.0.1
           graceful-fs: 4.2.11
           unique-string: 3.0.0
           write-file-atomic: 3.0.3
           xdg-basedir: 5.1.0
    -    dev: false
     
    -  /connect-history-api-fallback@2.0.0:
    -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
    -    engines: {node: '>=0.8'}
    +  connect-history-api-fallback@2.0.0: {}
     
    -  /consola@2.15.3:
    -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    -    dev: false
    +  consola@2.15.3: {}
     
    -  /console-control-strings@1.1.0:
    -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
    +  console-control-strings@1.1.0: {}
     
    -  /content-disposition@0.5.2:
    -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  content-disposition@0.5.2: {}
     
    -  /content-disposition@0.5.4:
    -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
    -    engines: {node: '>= 0.6'}
    +  content-disposition@0.5.4:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /content-type@1.0.5:
    -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
    -    engines: {node: '>= 0.6'}
    +  content-type@1.0.5: {}
     
    -  /convert-source-map@2.0.0:
    -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    +  convert-source-map@2.0.0: {}
     
    -  /cookie-signature@1.0.6:
    -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    +  cookie-signature@1.0.6: {}
     
    -  /cookie@0.6.0:
    -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
    -    engines: {node: '>= 0.6'}
    +  cookie@0.6.0: {}
     
    -  /copy-text-to-clipboard@3.2.0:
    -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  copy-text-to-clipboard@3.2.0: {}
     
    -  /copy-to-clipboard@3.3.3:
    -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
    +  copy-to-clipboard@3.3.3:
         dependencies:
           toggle-selection: 1.0.6
    -    dev: false
     
    -  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      webpack: ^5.1.0
    +  copy-webpack-plugin@11.0.0(webpack@5.91.0):
         dependencies:
           fast-glob: 3.3.2
           glob-parent: 6.0.2
    @@ -7464,61 +14221,36 @@ packages:
           schema-utils: 4.2.0
           serialize-javascript: 6.0.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /core-js-compat@3.36.1:
    -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
    +  core-js-compat@3.36.1:
         dependencies:
           browserslist: 4.23.0
     
    -  /core-js-pure@3.36.1:
    -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
    -    requiresBuild: true
    -    dev: false
    +  core-js-pure@3.36.1: {}
     
    -  /core-js@3.36.1:
    -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
    -    requiresBuild: true
    -    dev: false
    +  core-js@3.36.1: {}
     
    -  /core-util-is@1.0.3:
    -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
    +  core-util-is@1.0.3: {}
     
    -  /corser@2.0.1:
    -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
    -    engines: {node: '>= 0.4.0'}
    -    dev: true
    +  corser@2.0.1: {}
     
    -  /cosmiconfig@6.0.0:
    -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
    -    engines: {node: '>=8'}
    +  cosmiconfig@6.0.0:
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    -    dev: false
     
    -  /cosmiconfig@7.1.0:
    -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
    -    engines: {node: '>=10'}
    +  cosmiconfig@7.1.0:
         dependencies:
           '@types/parse-json': 4.0.2
           import-fresh: 3.3.0
           parse-json: 5.2.0
           path-type: 4.0.0
           yaml: 1.10.2
    -    dev: false
     
    -  /cosmiconfig@8.3.6(typescript@5.4.3):
    -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  cosmiconfig@8.3.6(typescript@5.4.3):
         dependencies:
           import-fresh: 3.3.0
           js-yaml: 4.1.0
    @@ -7526,26 +14258,15 @@ packages:
           path-type: 4.0.0
           typescript: 5.4.3
     
    -  /cosmiconfig@9.0.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=4.9.5'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  cosmiconfig@9.0.0(typescript@5.4.3):
         dependencies:
           env-paths: 2.2.1
           import-fresh: 3.3.0
           js-yaml: 4.1.0
           parse-json: 5.2.0
           typescript: 5.4.3
    -    dev: true
     
    -  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    +  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
    @@ -7559,58 +14280,30 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /create-require@1.1.1:
    -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    -    dev: true
    +  create-require@1.1.1: {}
     
    -  /cross-spawn@7.0.3:
    -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    -    engines: {node: '>= 8'}
    +  cross-spawn@7.0.3:
         dependencies:
           path-key: 3.1.1
           shebang-command: 2.0.0
           which: 2.0.2
     
    -  /crypto-random-string@2.0.0:
    -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  crypto-random-string@2.0.0: {}
     
    -  /crypto-random-string@4.0.0:
    -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
    -    engines: {node: '>=12'}
    +  crypto-random-string@4.0.0:
         dependencies:
           type-fest: 1.4.0
    -    dev: false
     
    -  /css-declaration-sorter@6.4.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    peerDependencies:
    -      postcss: ^8.0.9
    +  css-declaration-sorter@6.4.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /css-in-js-utils@3.1.0:
    -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
    +  css-in-js-utils@3.1.0:
         dependencies:
           hyphenate-style-name: 1.0.4
    -    dev: false
     
    -  /css-loader@6.10.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  css-loader@6.10.0(webpack@5.91.0):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
    @@ -7621,31 +14314,8 @@ packages:
           postcss-value-parser: 4.2.0
           semver: 7.6.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -
    -  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      '@parcel/css': '*'
    -      '@swc/css': '*'
    -      clean-css: '*'
    -      csso: '*'
    -      esbuild: '*'
    -      lightningcss: '*'
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@parcel/css':
    -        optional: true
    -      '@swc/css':
    -        optional: true
    -      clean-css:
    -        optional: true
    -      csso:
    -        optional: true
    -      esbuild:
    -        optional: true
    -      lightningcss:
    -        optional: true
    +
    +  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
         dependencies:
           clean-css: 5.3.3
           cssnano: 5.1.15(postcss@8.4.38)
    @@ -7656,10 +14326,8 @@ packages:
           serialize-javascript: 6.0.2
           source-map: 0.6.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /css-select@4.3.0:
    -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
    +  css-select@4.3.0:
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -7667,8 +14335,7 @@ packages:
           domutils: 2.8.0
           nth-check: 2.1.1
     
    -  /css-select@5.1.0:
    -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
    +  css-select@5.1.0:
         dependencies:
           boolbase: 1.0.0
           css-what: 6.1.0
    @@ -7676,44 +14343,26 @@ packages:
           domutils: 3.1.0
           nth-check: 2.1.1
     
    -  /css-tree@1.1.3:
    -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
    -    engines: {node: '>=8.0.0'}
    +  css-tree@1.1.3:
         dependencies:
           mdn-data: 2.0.14
           source-map: 0.6.1
    -    dev: false
     
    -  /css-tree@2.2.1:
    -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +  css-tree@2.2.1:
         dependencies:
           mdn-data: 2.0.28
           source-map-js: 1.2.0
    -    dev: true
     
    -  /css-tree@2.3.1:
    -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
    +  css-tree@2.3.1:
         dependencies:
           mdn-data: 2.0.30
           source-map-js: 1.2.0
    -    dev: true
     
    -  /css-what@6.1.0:
    -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
    -    engines: {node: '>= 6'}
    +  css-what@6.1.0: {}
     
    -  /cssesc@3.0.0:
    -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  cssesc@3.0.0: {}
     
    -  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
    -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
         dependencies:
           autoprefixer: 10.4.19(postcss@8.4.38)
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
    @@ -7722,13 +14371,8 @@ packages:
           postcss-merge-idents: 5.1.1(postcss@8.4.38)
           postcss-reduce-idents: 5.2.0(postcss@8.4.38)
           postcss-zindex: 5.1.0(postcss@8.4.38)
    -    dev: false
     
    -  /cssnano-preset-default@5.2.14(postcss@8.4.38):
    -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-preset-default@5.2.14(postcss@8.4.38):
         dependencies:
           css-declaration-sorter: 6.4.1(postcss@8.4.38)
           cssnano-utils: 3.1.0(postcss@8.4.38)
    @@ -7760,214 +14404,113 @@ packages:
           postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
           postcss-svgo: 5.1.0(postcss@8.4.38)
           postcss-unique-selectors: 5.1.1(postcss@8.4.38)
    -    dev: false
     
    -  /cssnano-utils@3.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano-utils@3.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /cssnano@5.1.15(postcss@8.4.38):
    -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  cssnano@5.1.15(postcss@8.4.38):
         dependencies:
           cssnano-preset-default: 5.2.14(postcss@8.4.38)
           lilconfig: 2.1.0
           postcss: 8.4.38
           yaml: 1.10.2
    -    dev: false
     
    -  /csso@4.2.0:
    -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
    -    engines: {node: '>=8.0.0'}
    +  csso@4.2.0:
         dependencies:
           css-tree: 1.1.3
    -    dev: false
     
    -  /csso@5.0.5:
    -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
    -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
    +  csso@5.0.5:
         dependencies:
           css-tree: 2.2.1
    -    dev: true
     
    -  /cssom@0.3.8:
    -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
    -    dev: true
    +  cssom@0.3.8: {}
     
    -  /cssom@0.5.0:
    -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
    -    dev: true
    +  cssom@0.5.0: {}
     
    -  /cssstyle@2.3.0:
    -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
    -    engines: {node: '>=8'}
    +  cssstyle@2.3.0:
         dependencies:
           cssom: 0.3.8
    -    dev: true
     
    -  /csstype@3.1.3:
    -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
    +  csstype@3.1.3: {}
     
    -  /damerau-levenshtein@1.0.8:
    -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
    -    dev: true
    +  damerau-levenshtein@1.0.8: {}
     
    -  /dargs@7.0.0:
    -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
    -    engines: {node: '>=8'}
    +  dargs@7.0.0: {}
     
    -  /data-uri-to-buffer@2.0.2:
    -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
    -    dev: true
    +  data-uri-to-buffer@2.0.2: {}
     
    -  /data-uri-to-buffer@3.0.1:
    -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
    -    engines: {node: '>= 6'}
    -    dev: false
    +  data-uri-to-buffer@3.0.1: {}
     
    -  /data-urls@3.0.2:
    -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
    -    engines: {node: '>=12'}
    +  data-urls@3.0.2:
         dependencies:
           abab: 2.0.6
           whatwg-mimetype: 3.0.0
           whatwg-url: 11.0.0
    -    dev: true
     
    -  /data-view-buffer@1.0.1:
    -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
    -    engines: {node: '>= 0.4'}
    +  data-view-buffer@1.0.1:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /data-view-byte-length@1.0.1:
    -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
    -    engines: {node: '>= 0.4'}
    +  data-view-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /data-view-byte-offset@1.0.0:
    -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
    -    engines: {node: '>= 0.4'}
    +  data-view-byte-offset@1.0.0:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-data-view: 1.0.1
    -    dev: true
     
    -  /dateformat@4.6.3:
    -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
    +  dateformat@4.6.3: {}
     
    -  /debounce@1.2.1:
    -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
    -    dev: false
    +  debounce@1.2.1: {}
     
    -  /debug@2.6.9:
    -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@2.6.9:
         dependencies:
           ms: 2.0.0
     
    -  /debug@3.2.7:
    -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@3.2.7:
         dependencies:
           ms: 2.1.3
    -    dev: true
     
    -  /debug@4.3.4(supports-color@8.1.1):
    -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    -    engines: {node: '>=6.0'}
    -    peerDependencies:
    -      supports-color: '*'
    -    peerDependenciesMeta:
    -      supports-color:
    -        optional: true
    +  debug@4.3.4(supports-color@8.1.1):
         dependencies:
           ms: 2.1.2
           supports-color: 8.1.1
     
    -  /debuglog@1.0.1:
    -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
    -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    +  debuglog@1.0.1: {}
     
    -  /decamelize-keys@1.1.1:
    -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
    -    engines: {node: '>=0.10.0'}
    +  decamelize-keys@1.1.1:
         dependencies:
           decamelize: 1.2.0
           map-obj: 1.0.1
    -    dev: true
     
    -  /decamelize@1.2.0:
    -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  decamelize@1.2.0: {}
     
    -  /decamelize@4.0.0:
    -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  decamelize@4.0.0: {}
     
    -  /decamelize@5.0.1:
    -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  decamelize@5.0.1: {}
     
    -  /decimal.js@10.4.3:
    -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
    -    dev: true
    +  decimal.js@10.4.3: {}
     
    -  /decode-named-character-reference@1.0.2:
    -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
    +  decode-named-character-reference@1.0.2:
         dependencies:
           character-entities: 2.0.2
     
    -  /decompress-response@6.0.0:
    -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
    -    engines: {node: '>=10'}
    +  decompress-response@6.0.0:
         dependencies:
           mimic-response: 3.1.0
    -    dev: false
     
    -  /dedent@1.5.1:
    -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
    -    peerDependencies:
    -      babel-plugin-macros: ^3.1.0
    -    peerDependenciesMeta:
    -      babel-plugin-macros:
    -        optional: true
    -    dev: true
    +  dedent@1.5.1: {}
     
    -  /deep-eql@5.0.1:
    -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  deep-eql@5.0.1: {}
     
    -  /deep-equal@2.2.3:
    -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
    -    engines: {node: '>= 0.4'}
    +  deep-equal@2.2.3:
         dependencies:
           array-buffer-byte-length: 1.0.1
           call-bind: 1.0.7
    @@ -7987,74 +14530,47 @@ packages:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /deep-extend@0.6.0:
    -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
    -    engines: {node: '>=4.0.0'}
    +  deep-extend@0.6.0: {}
     
    -  /deep-is@0.1.4:
    -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    +  deep-is@0.1.4: {}
     
    -  /deepmerge@4.3.1:
    -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    -    engines: {node: '>=0.10.0'}
    +  deepmerge@4.3.1: {}
     
    -  /default-browser-id@5.0.0:
    -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
    -    engines: {node: '>=18'}
    +  default-browser-id@5.0.0: {}
     
    -  /default-browser@5.2.1:
    -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
    -    engines: {node: '>=18'}
    +  default-browser@5.2.1:
         dependencies:
           bundle-name: 4.1.0
           default-browser-id: 5.0.0
     
    -  /default-gateway@6.0.3:
    -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
    -    engines: {node: '>= 10'}
    +  default-gateway@6.0.3:
         dependencies:
           execa: 5.1.1
     
    -  /defaults@1.0.4:
    -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
    +  defaults@1.0.4:
         dependencies:
           clone: 1.0.4
     
    -  /defer-to-connect@2.0.1:
    -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  defer-to-connect@2.0.1: {}
     
    -  /define-data-property@1.1.4:
    -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
    -    engines: {node: '>= 0.4'}
    +  define-data-property@1.1.4:
         dependencies:
           es-define-property: 1.0.0
           es-errors: 1.3.0
           gopd: 1.0.1
     
    -  /define-lazy-prop@2.0.0:
    -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  define-lazy-prop@2.0.0: {}
     
    -  /define-lazy-prop@3.0.0:
    -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
    -    engines: {node: '>=12'}
    +  define-lazy-prop@3.0.0: {}
     
    -  /define-properties@1.2.1:
    -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
    -    engines: {node: '>= 0.4'}
    +  define-properties@1.2.1:
         dependencies:
           define-data-property: 1.1.4
           has-property-descriptors: 1.0.2
           object-keys: 1.1.1
     
    -  /del@6.1.1:
    -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
    -    engines: {node: '>=10'}
    +  del@6.1.1:
         dependencies:
           globby: 11.1.0
           graceful-fs: 4.2.11
    @@ -8064,327 +14580,201 @@ packages:
           p-map: 4.0.0
           rimraf: 3.0.2
           slash: 3.0.0
    -    dev: false
     
    -  /delayed-stream@1.0.0:
    -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
    -    engines: {node: '>=0.4.0'}
    -    dev: true
    +  delayed-stream@1.0.0: {}
     
    -  /delegates@1.0.0:
    -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
    +  delegates@1.0.0: {}
     
    -  /depd@1.1.2:
    -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
    -    engines: {node: '>= 0.6'}
    +  depd@1.1.2: {}
     
    -  /depd@2.0.0:
    -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
    -    engines: {node: '>= 0.8'}
    +  depd@2.0.0: {}
     
    -  /deprecation@2.3.1:
    -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
    +  deprecation@2.3.1: {}
     
    -  /dequal@2.0.3:
    -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
    -    engines: {node: '>=6'}
    +  dequal@2.0.3: {}
     
    -  /destroy@1.2.0:
    -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
    -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
    +  destroy@1.2.0: {}
     
    -  /detect-indent@7.0.1:
    -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
    -    engines: {node: '>=12.20'}
    -    dev: true
    +  detect-indent@7.0.1: {}
     
    -  /detect-libc@2.0.3:
    -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  detect-libc@2.0.3: {}
     
    -  /detect-newline@3.1.0:
    -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  detect-newline@3.1.0: {}
     
    -  /detect-node@2.1.0:
    -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
    +  detect-node@2.1.0: {}
     
    -  /detect-port-alt@1.1.6:
    -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
    -    engines: {node: '>= 4.2.1'}
    -    hasBin: true
    +  detect-port-alt@1.1.6:
         dependencies:
           address: 1.2.2
           debug: 2.6.9
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /detect-port@1.5.1:
    -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
    -    hasBin: true
    +  detect-port@1.5.1:
         dependencies:
           address: 1.2.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /devlop@1.1.0:
    -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
    +  devlop@1.1.0:
         dependencies:
           dequal: 2.0.3
     
    -  /dezalgo@1.0.4:
    -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
    +  dezalgo@1.0.4:
         dependencies:
           asap: 2.0.6
           wrappy: 1.0.2
     
    -  /didyoumean@1.2.2:
    -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    -    dev: true
    +  didyoumean@1.2.2: {}
     
    -  /diff-sequences@29.6.3:
    -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  diff-sequences@29.6.3: {}
     
    -  /diff@4.0.2:
    -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
    -    engines: {node: '>=0.3.1'}
    -    dev: true
    +  diff@4.0.2: {}
     
    -  /diff@5.0.0:
    -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
    -    engines: {node: '>=0.3.1'}
    -    dev: true
    +  diff@5.0.0: {}
     
    -  /diff@5.2.0:
    -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
    -    engines: {node: '>=0.3.1'}
    +  diff@5.2.0: {}
     
    -  /dir-glob@3.0.1:
    -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    -    engines: {node: '>=8'}
    +  dir-glob@3.0.1:
         dependencies:
           path-type: 4.0.0
     
    -  /discontinuous-range@1.0.0:
    -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
    -    dev: false
    +  discontinuous-range@1.0.0: {}
     
    -  /dlv@1.1.3:
    -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    -    dev: true
    +  dlv@1.1.3: {}
     
    -  /dns-packet@5.6.1:
    -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
    -    engines: {node: '>=6'}
    +  dns-packet@5.6.1:
         dependencies:
           '@leichtgewicht/ip-codec': 2.0.4
     
    -  /doctrine@2.1.0:
    -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
    -    engines: {node: '>=0.10.0'}
    +  doctrine@2.1.0:
         dependencies:
           esutils: 2.0.3
    -    dev: true
     
    -  /doctrine@3.0.0:
    -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    -    engines: {node: '>=6.0.0'}
    +  doctrine@3.0.0:
         dependencies:
           esutils: 2.0.3
     
    -  /dom-accessibility-api@0.5.16:
    -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
    -    dev: true
    +  dom-accessibility-api@0.5.16: {}
     
    -  /dom-converter@0.2.0:
    -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
    +  dom-converter@0.2.0:
         dependencies:
           utila: 0.4.0
     
    -  /dom-serializer@1.4.1:
    -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
    +  dom-serializer@1.4.1:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           entities: 2.2.0
     
    -  /dom-serializer@2.0.0:
    -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
    +  dom-serializer@2.0.0:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           entities: 4.5.0
     
    -  /domelementtype@2.3.0:
    -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
    +  domelementtype@2.3.0: {}
     
    -  /domexception@4.0.0:
    -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
    -    engines: {node: '>=12'}
    -    deprecated: Use your platform's native DOMException instead
    +  domexception@4.0.0:
         dependencies:
           webidl-conversions: 7.0.0
    -    dev: true
     
    -  /domhandler@4.3.1:
    -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
    -    engines: {node: '>= 4'}
    +  domhandler@4.3.1:
         dependencies:
           domelementtype: 2.3.0
     
    -  /domhandler@5.0.3:
    -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
    -    engines: {node: '>= 4'}
    +  domhandler@5.0.3:
         dependencies:
           domelementtype: 2.3.0
     
    -  /domutils@2.8.0:
    -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
    +  domutils@2.8.0:
         dependencies:
           dom-serializer: 1.4.1
           domelementtype: 2.3.0
           domhandler: 4.3.1
     
    -  /domutils@3.1.0:
    -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
    +  domutils@3.1.0:
         dependencies:
           dom-serializer: 2.0.0
           domelementtype: 2.3.0
           domhandler: 5.0.3
     
    -  /dot-case@3.0.4:
    -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
    +  dot-case@3.0.4:
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  /dot-prop@6.0.1:
    -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
    -    engines: {node: '>=10'}
    +  dot-prop@6.0.1:
         dependencies:
           is-obj: 2.0.0
    -    dev: false
     
    -  /duplexer@0.1.2:
    -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
    -    dev: false
    +  duplexer@0.1.2: {}
     
    -  /eastasianwidth@0.2.0:
    -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    +  eastasianwidth@0.2.0: {}
     
    -  /ee-first@1.1.1:
    -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    +  ee-first@1.1.1: {}
     
    -  /effect@2.0.0-next.62:
    -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
    -    dev: true
    +  effect@2.0.0-next.62: {}
     
    -  /ejs@3.1.9:
    -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
    -    engines: {node: '>=0.10.0'}
    -    hasBin: true
    +  ejs@3.1.9:
         dependencies:
           jake: 10.8.7
     
    -  /electron-to-chromium@1.4.717:
    -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
    +  electron-to-chromium@1.4.717: {}
     
    -  /emittery@0.13.1:
    -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  emittery@0.13.1: {}
     
    -  /emoji-regex@8.0.0:
    -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    +  emoji-regex@8.0.0: {}
     
    -  /emoji-regex@9.2.2:
    -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    +  emoji-regex@9.2.2: {}
     
    -  /emojilib@2.4.0:
    -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
    -    dev: false
    +  emojilib@2.4.0: {}
     
    -  /emojis-list@3.0.0:
    -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
    -    engines: {node: '>= 4'}
    -    dev: false
    +  emojis-list@3.0.0: {}
     
    -  /emoticon@4.0.1:
    -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
    -    dev: false
    +  emoticon@4.0.1: {}
     
    -  /enabled@2.0.0:
    -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
    +  enabled@2.0.0: {}
     
    -  /encodeurl@1.0.2:
    -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
    -    engines: {node: '>= 0.8'}
    +  encodeurl@1.0.2: {}
     
    -  /encoding@0.1.13:
    -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
    -    requiresBuild: true
    +  encoding@0.1.13:
         dependencies:
           iconv-lite: 0.6.3
         optional: true
     
    -  /enhanced-resolve@5.16.0:
    -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
    -    engines: {node: '>=10.13.0'}
    +  enhanced-resolve@5.16.0:
         dependencies:
           graceful-fs: 4.2.11
           tapable: 2.2.1
     
    -  /enquirer@2.4.1:
    -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
    -    engines: {node: '>=8.6'}
    +  enquirer@2.4.1:
         dependencies:
           ansi-colors: 4.1.3
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /entities@2.2.0:
    -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
    +  entities@2.2.0: {}
     
    -  /entities@4.5.0:
    -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
    -    engines: {node: '>=0.12'}
    +  entities@4.5.0: {}
     
    -  /env-paths@2.2.1:
    -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
    -    engines: {node: '>=6'}
    +  env-paths@2.2.1: {}
     
    -  /envinfo@7.11.1:
    -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  envinfo@7.11.1: {}
     
    -  /err-code@2.0.3:
    -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
    +  err-code@2.0.3: {}
     
    -  /error-ex@1.3.2:
    -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
    +  error-ex@1.3.2:
         dependencies:
           is-arrayish: 0.2.1
     
    -  /error-stack-parser@2.1.4:
    -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
    +  error-stack-parser@2.1.4:
         dependencies:
           stackframe: 1.3.4
    -    dev: false
     
    -  /error@10.4.0:
    -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
    +  error@10.4.0: {}
     
    -  /es-abstract@1.23.2:
    -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
    -    engines: {node: '>= 0.4'}
    +  es-abstract@1.23.2:
         dependencies:
           array-buffer-byte-length: 1.0.1
           arraybuffer.prototype.slice: 1.0.3
    @@ -8432,20 +14822,14 @@ packages:
           typed-array-length: 1.0.6
           unbox-primitive: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /es-define-property@1.0.0:
    -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
    -    engines: {node: '>= 0.4'}
    +  es-define-property@1.0.0:
         dependencies:
           get-intrinsic: 1.2.4
     
    -  /es-errors@1.3.0:
    -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
    -    engines: {node: '>= 0.4'}
    +  es-errors@1.3.0: {}
     
    -  /es-get-iterator@1.1.3:
    -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
    +  es-get-iterator@1.1.3:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    @@ -8456,11 +14840,8 @@ packages:
           is-string: 1.0.7
           isarray: 2.0.5
           stop-iteration-iterator: 1.0.0
    -    dev: true
     
    -  /es-iterator-helpers@1.0.18:
    -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
    -    engines: {node: '>= 0.4'}
    +  es-iterator-helpers@1.0.18:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -8476,47 +14857,30 @@ packages:
           internal-slot: 1.0.7
           iterator.prototype: 1.1.2
           safe-array-concat: 1.1.2
    -    dev: true
     
    -  /es-module-lexer@1.5.0:
    -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
    +  es-module-lexer@1.5.0: {}
     
    -  /es-object-atoms@1.0.0:
    -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
    -    engines: {node: '>= 0.4'}
    +  es-object-atoms@1.0.0:
         dependencies:
           es-errors: 1.3.0
    -    dev: true
     
    -  /es-set-tostringtag@2.0.3:
    -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
    -    engines: {node: '>= 0.4'}
    +  es-set-tostringtag@2.0.3:
         dependencies:
           get-intrinsic: 1.2.4
           has-tostringtag: 1.0.2
           hasown: 2.0.2
    -    dev: true
     
    -  /es-shim-unscopables@1.0.2:
    -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
    +  es-shim-unscopables@1.0.2:
         dependencies:
           hasown: 2.0.2
    -    dev: true
     
    -  /es-to-primitive@1.2.1:
    -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
    -    engines: {node: '>= 0.4'}
    +  es-to-primitive@1.2.1:
         dependencies:
           is-callable: 1.2.7
           is-date-object: 1.0.5
           is-symbol: 1.0.4
    -    dev: true
     
    -  /esbuild@0.20.2:
    -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -    requiresBuild: true
    +  esbuild@0.20.2:
         optionalDependencies:
           '@esbuild/aix-ppc64': 0.20.2
           '@esbuild/android-arm': 0.20.2
    @@ -8542,56 +14906,29 @@ packages:
           '@esbuild/win32-ia32': 0.20.2
           '@esbuild/win32-x64': 0.20.2
     
    -  /escalade@3.1.2:
    -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    -    engines: {node: '>=6'}
    +  escalade@3.1.2: {}
     
    -  /escape-goat@4.0.0:
    -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  escape-goat@4.0.0: {}
     
    -  /escape-html@1.0.3:
    -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    +  escape-html@1.0.3: {}
     
    -  /escape-string-regexp@1.0.5:
    -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    -    engines: {node: '>=0.8.0'}
    +  escape-string-regexp@1.0.5: {}
     
    -  /escape-string-regexp@2.0.0:
    -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  escape-string-regexp@2.0.0: {}
     
    -  /escape-string-regexp@4.0.0:
    -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    -    engines: {node: '>=10'}
    +  escape-string-regexp@4.0.0: {}
     
    -  /escape-string-regexp@5.0.0:
    -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  escape-string-regexp@5.0.0: {}
     
    -  /escodegen@2.1.0:
    -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
    -    engines: {node: '>=6.0'}
    -    hasBin: true
    +  escodegen@2.1.0:
         dependencies:
           esprima: 4.0.1
           estraverse: 5.3.0
           esutils: 2.0.3
         optionalDependencies:
           source-map: 0.6.1
    -    dev: true
     
    -  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
    -    peerDependencies:
    -      eslint: ^7.23.0 || ^8.0.0
    -      typescript: '>=3.3.1'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
         dependencies:
           '@next/eslint-plugin-next': 14.1.4
           '@rushstack/eslint-patch': 1.8.0
    @@ -8607,33 +14944,20 @@ packages:
         transitivePeerDependencies:
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-config-prettier@9.1.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
    -    hasBin: true
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    +  eslint-config-prettier@9.1.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
    -    dev: true
     
    -  /eslint-import-resolver-node@0.3.9:
    -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
    +  eslint-import-resolver-node@0.3.9:
         dependencies:
           debug: 3.2.7
           is-core-module: 2.13.1
           resolve: 1.22.8
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -8649,14 +14973,8 @@ packages:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    peerDependencies:
    -      eslint: '*'
    -      eslint-plugin-import: '*'
    +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           enhanced-resolve: 5.16.0
    @@ -8672,28 +14990,8 @@ packages:
           - eslint-import-resolver-node
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    +  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -8702,28 +15000,8 @@ packages:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: '*'
    -      eslint-import-resolver-node: '*'
    -      eslint-import-resolver-typescript: '*'
    -      eslint-import-resolver-webpack: '*'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    -      eslint:
    -        optional: true
    -      eslint-import-resolver-node:
    -        optional: true
    -      eslint-import-resolver-typescript:
    -        optional: true
    -      eslint-import-resolver-webpack:
    -        optional: true
    +  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           debug: 3.2.7
    @@ -8732,17 +15010,8 @@ packages:
           eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
    -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      '@typescript-eslint/parser': '*'
    -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
    -    peerDependenciesMeta:
    -      '@typescript-eslint/parser':
    -        optional: true
    +  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
           array-includes: 3.1.8
    @@ -8767,13 +15036,8 @@ packages:
           - eslint-import-resolver-typescript
           - eslint-import-resolver-webpack
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
         dependencies:
           '@babel/runtime': 7.24.1
           aria-query: 5.3.0
    @@ -8792,34 +15056,19 @@ packages:
           minimatch: 3.1.2
           object.entries: 1.1.8
           object.fromentries: 2.0.8
    -    dev: true
     
    -  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      eslint: '>=7.0.0'
    +  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
           eslint-utils: 3.0.0(eslint@8.57.0)
           globals: 13.24.0
           rambda: 7.5.0
    -    dev: true
     
    -  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
    -    engines: {node: '>=10'}
    -    peerDependencies:
    -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
    +  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
    -    dev: true
     
    -  /eslint-plugin-react@7.34.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
    -    engines: {node: '>=4'}
    -    peerDependencies:
    -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
    +  eslint-plugin-react@7.34.1(eslint@8.57.0):
         dependencies:
           array-includes: 3.1.8
           array.prototype.findlast: 1.2.5
    @@ -8840,13 +15089,8 @@ packages:
           resolve: 2.0.0-next.5
           semver: 6.3.1
           string.prototype.matchall: 4.0.11
    -    dev: true
     
    -  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
    -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      eslint: '>=8.56.0'
    +  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
         dependencies:
           '@babel/helper-validator-identifier': 7.22.20
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    @@ -8867,65 +15111,35 @@ packages:
           strip-indent: 3.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
    -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    peerDependencies:
    -      '@typescript-eslint/eslint-plugin': 6 - 7
    -      eslint: '8'
    -    peerDependenciesMeta:
    -      '@typescript-eslint/eslint-plugin':
    -        optional: true
    +  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
         dependencies:
           '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
           eslint: 8.57.0
           eslint-rule-composer: 0.3.0
    -    dev: true
     
    -  /eslint-rule-composer@0.3.0:
    -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
    -    engines: {node: '>=4.0.0'}
    -    dev: true
    +  eslint-rule-composer@0.3.0: {}
     
    -  /eslint-scope@5.1.1:
    -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    -    engines: {node: '>=8.0.0'}
    +  eslint-scope@5.1.1:
         dependencies:
           esrecurse: 4.3.0
           estraverse: 4.3.0
     
    -  /eslint-scope@7.2.2:
    -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  eslint-scope@7.2.2:
         dependencies:
           esrecurse: 4.3.0
           estraverse: 5.3.0
     
    -  /eslint-utils@3.0.0(eslint@8.57.0):
    -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    -    peerDependencies:
    -      eslint: '>=5'
    +  eslint-utils@3.0.0(eslint@8.57.0):
         dependencies:
           eslint: 8.57.0
           eslint-visitor-keys: 2.1.0
    -    dev: true
     
    -  /eslint-visitor-keys@2.1.0:
    -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  eslint-visitor-keys@2.1.0: {}
     
    -  /eslint-visitor-keys@3.4.3:
    -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  eslint-visitor-keys@3.4.3: {}
     
    -  /eslint@8.57.0:
    -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    -    hasBin: true
    +  eslint@8.57.0:
         dependencies:
           '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
           '@eslint-community/regexpp': 4.10.0
    @@ -8968,116 +15182,77 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /espree@9.6.1:
    -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  espree@9.6.1:
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
           eslint-visitor-keys: 3.4.3
     
    -  /esprima@4.0.1:
    -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  esprima@4.0.1: {}
     
    -  /esquery@1.5.0:
    -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    -    engines: {node: '>=0.10'}
    +  esquery@1.5.0:
         dependencies:
           estraverse: 5.3.0
     
    -  /esrecurse@4.3.0:
    -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    -    engines: {node: '>=4.0'}
    +  esrecurse@4.3.0:
         dependencies:
           estraverse: 5.3.0
     
    -  /estraverse@4.3.0:
    -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    -    engines: {node: '>=4.0'}
    +  estraverse@4.3.0: {}
     
    -  /estraverse@5.3.0:
    -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    -    engines: {node: '>=4.0'}
    +  estraverse@5.3.0: {}
     
    -  /estree-util-attach-comments@3.0.0:
    -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
    +  estree-util-attach-comments@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /estree-util-build-jsx@3.0.1:
    -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
    +  estree-util-build-jsx@3.0.1:
         dependencies:
           '@types/estree-jsx': 1.0.5
           devlop: 1.1.0
           estree-util-is-identifier-name: 3.0.0
           estree-walker: 3.0.3
     
    -  /estree-util-is-identifier-name@3.0.0:
    -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
    +  estree-util-is-identifier-name@3.0.0: {}
     
    -  /estree-util-to-js@2.0.0:
    -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
    +  estree-util-to-js@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           astring: 1.8.6
           source-map: 0.7.4
     
    -  /estree-util-value-to-estree@3.0.1:
    -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
    -    engines: {node: '>=16.0.0'}
    +  estree-util-value-to-estree@3.0.1:
         dependencies:
           '@types/estree': 1.0.5
           is-plain-obj: 4.1.0
    -    dev: false
     
    -  /estree-util-visit@2.0.0:
    -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
    +  estree-util-visit@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/unist': 3.0.2
     
    -  /estree-walker@3.0.3:
    -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
    +  estree-walker@3.0.3:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /esutils@2.0.3:
    -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    -    engines: {node: '>=0.10.0'}
    +  esutils@2.0.3: {}
     
    -  /eta@2.2.0:
    -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
    -    engines: {node: '>=6.0.0'}
    -    dev: false
    +  eta@2.2.0: {}
     
    -  /etag@1.8.1:
    -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
    -    engines: {node: '>= 0.6'}
    +  etag@1.8.1: {}
     
    -  /eval@0.1.8:
    -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
    -    engines: {node: '>= 0.8'}
    +  eval@0.1.8:
         dependencies:
           '@types/node': 18.18.2
           require-like: 0.1.2
    -    dev: false
     
    -  /event-target-shim@5.0.1:
    -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
    -    engines: {node: '>=6'}
    +  event-target-shim@5.0.1: {}
     
    -  /eventemitter3@4.0.7:
    -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
    +  eventemitter3@4.0.7: {}
     
    -  /events@3.3.0:
    -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
    -    engines: {node: '>=0.8.x'}
    +  events@3.3.0: {}
     
    -  /execa@5.1.1:
    -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
    -    engines: {node: '>=10'}
    +  execa@5.1.1:
         dependencies:
           cross-spawn: 7.0.3
           get-stream: 6.0.1
    @@ -9089,28 +15264,19 @@ packages:
           signal-exit: 3.0.7
           strip-final-newline: 2.0.0
     
    -  /exit@0.1.2:
    -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
    -    engines: {node: '>= 0.8.0'}
    -    dev: true
    +  exit@0.1.2: {}
     
    -  /expect@29.7.0:
    -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  expect@29.7.0:
         dependencies:
           '@jest/expect-utils': 29.7.0
           jest-get-type: 29.6.3
           jest-matcher-utils: 29.7.0
           jest-message-util: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /exponential-backoff@3.1.1:
    -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    +  exponential-backoff@3.1.1: {}
     
    -  /express@4.19.2:
    -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
    -    engines: {node: '>= 0.10.0'}
    +  express@4.19.2:
         dependencies:
           accepts: 1.3.8
           array-flatten: 1.1.1
    @@ -9146,44 +15312,29 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /extend-shallow@2.0.1:
    -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
    -    engines: {node: '>=0.10.0'}
    +  extend-shallow@2.0.1:
         dependencies:
           is-extendable: 0.1.1
    -    dev: false
     
    -  /extend@3.0.2:
    -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
    +  extend@3.0.2: {}
     
    -  /external-editor@3.1.0:
    -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
    -    engines: {node: '>=4'}
    +  external-editor@3.1.0:
         dependencies:
           chardet: 0.7.0
           iconv-lite: 0.4.24
           tmp: 0.0.33
     
    -  /fast-check@3.15.0:
    -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
    -    engines: {node: '>=8.0.0'}
    +  fast-check@3.15.0:
         dependencies:
           pure-rand: 6.1.0
    -    dev: true
     
    -  /fast-check@3.17.0:
    -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
    -    engines: {node: '>=8.0.0'}
    +  fast-check@3.17.0:
         dependencies:
           pure-rand: 6.1.0
    -    dev: true
     
    -  /fast-deep-equal@3.1.3:
    -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    +  fast-deep-equal@3.1.3: {}
     
    -  /fast-glob@3.3.2:
    -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    -    engines: {node: '>=8.6.0'}
    +  fast-glob@3.3.2:
         dependencies:
           '@nodelib/fs.stat': 2.0.5
           '@nodelib/fs.walk': 1.2.8
    @@ -9191,129 +15342,77 @@ packages:
           merge2: 1.4.1
           micromatch: 4.0.5
     
    -  /fast-json-stable-stringify@2.1.0:
    -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +  fast-json-stable-stringify@2.1.0: {}
     
    -  /fast-levenshtein@2.0.6:
    -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    +  fast-levenshtein@2.0.6: {}
     
    -  /fast-loops@1.1.3:
    -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
    -    dev: false
    +  fast-loops@1.1.3: {}
     
    -  /fast-safe-stringify@2.1.1:
    -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
    +  fast-safe-stringify@2.1.1: {}
     
    -  /fast-shallow-equal@1.0.0:
    -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
    -    dev: false
    +  fast-shallow-equal@1.0.0: {}
     
    -  /fast-url-parser@1.1.3:
    -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
    +  fast-url-parser@1.1.3:
         dependencies:
           punycode: 1.4.1
    -    dev: false
     
    -  /fast-xml-parser@4.3.6:
    -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
    -    hasBin: true
    +  fast-xml-parser@4.3.6:
         dependencies:
           strnum: 1.0.5
    -    dev: true
     
    -  /fastest-levenshtein@1.0.16:
    -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
    -    engines: {node: '>= 4.9.1'}
    +  fastest-levenshtein@1.0.16: {}
     
    -  /fastest-stable-stringify@2.0.2:
    -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
    -    dev: false
    +  fastest-stable-stringify@2.0.2: {}
     
    -  /fastq@1.17.1:
    -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +  fastq@1.17.1:
         dependencies:
           reusify: 1.0.4
     
    -  /fault@2.0.1:
    -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
    +  fault@2.0.1:
         dependencies:
           format: 0.2.2
    -    dev: false
     
    -  /faye-websocket@0.11.4:
    -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
    -    engines: {node: '>=0.8.0'}
    +  faye-websocket@0.11.4:
         dependencies:
           websocket-driver: 0.7.4
     
    -  /fb-watchman@2.0.2:
    -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
    +  fb-watchman@2.0.2:
         dependencies:
           bser: 2.1.1
    -    dev: true
     
    -  /fecha@4.2.3:
    -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
    +  fecha@4.2.3: {}
     
    -  /feed@4.2.2:
    -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
    -    engines: {node: '>=0.4.0'}
    +  feed@4.2.2:
         dependencies:
           xml-js: 1.6.11
    -    dev: false
     
    -  /fetch-blob@2.1.2:
    -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
    -    engines: {node: ^10.17.0 || >=12.3.0}
    -    peerDependencies:
    -      domexception: '*'
    -    peerDependenciesMeta:
    -      domexception:
    -        optional: true
    -    dev: false
    +  fetch-blob@2.1.2: {}
     
    -  /figures@3.2.0:
    -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
    -    engines: {node: '>=8'}
    +  figures@3.2.0:
         dependencies:
           escape-string-regexp: 1.0.5
     
    -  /file-entry-cache@6.0.1:
    -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    +  file-entry-cache@6.0.1:
         dependencies:
           flat-cache: 3.2.0
     
    -  /file-loader@6.2.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    +  file-loader@6.2.0(webpack@5.91.0):
         dependencies:
           loader-utils: 2.0.4
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /filelist@1.0.4:
    -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
    +  filelist@1.0.4:
         dependencies:
           minimatch: 5.1.6
     
    -  /filesize@8.0.7:
    -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
    -    engines: {node: '>= 0.4.0'}
    -    dev: false
    +  filesize@8.0.7: {}
     
    -  /fill-range@7.0.1:
    -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    -    engines: {node: '>=8'}
    +  fill-range@7.0.1:
         dependencies:
           to-regex-range: 5.0.1
     
    -  /finalhandler@1.2.0:
    -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
    -    engines: {node: '>= 0.8'}
    +  finalhandler@1.2.0:
         dependencies:
           debug: 2.6.9
           encodeurl: 1.0.2
    @@ -9325,108 +15424,63 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /find-cache-dir@4.0.0:
    -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
    -    engines: {node: '>=14.16'}
    +  find-cache-dir@4.0.0:
         dependencies:
           common-path-prefix: 3.0.0
           pkg-dir: 7.0.0
    -    dev: false
     
    -  /find-up@3.0.0:
    -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
    -    engines: {node: '>=6'}
    +  find-up@3.0.0:
         dependencies:
           locate-path: 3.0.0
    -    dev: false
     
    -  /find-up@4.1.0:
    -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
    -    engines: {node: '>=8'}
    +  find-up@4.1.0:
         dependencies:
           locate-path: 5.0.0
           path-exists: 4.0.0
     
    -  /find-up@5.0.0:
    -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    -    engines: {node: '>=10'}
    +  find-up@5.0.0:
         dependencies:
           locate-path: 6.0.0
           path-exists: 4.0.0
     
    -  /find-up@6.3.0:
    -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  find-up@6.3.0:
         dependencies:
           locate-path: 7.2.0
           path-exists: 5.0.0
    -    dev: false
     
    -  /find-yarn-workspace-root2@1.2.16:
    -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
    +  find-yarn-workspace-root2@1.2.16:
         dependencies:
           micromatch: 4.0.5
           pkg-dir: 4.2.0
     
    -  /first-chunk-stream@2.0.0:
    -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
    -    engines: {node: '>=0.10.0'}
    +  first-chunk-stream@2.0.0:
         dependencies:
           readable-stream: 2.3.8
     
    -  /flat-cache@3.2.0:
    -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    -    engines: {node: ^10.12.0 || >=12.0.0}
    +  flat-cache@3.2.0:
         dependencies:
           flatted: 3.3.1
           keyv: 4.5.4
           rimraf: 3.0.2
     
    -  /flat@5.0.2:
    -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
    -    hasBin: true
    -
    -  /flatted@3.3.1:
    -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    +  flat@5.0.2: {}
     
    -  /fn.name@1.1.0:
    -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
    +  flatted@3.3.1: {}
     
    -  /follow-redirects@1.15.6:
    -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
    -    engines: {node: '>=4.0'}
    -    peerDependencies:
    -      debug: '*'
    -    peerDependenciesMeta:
    -      debug:
    -        optional: true
    +  fn.name@1.1.0: {}
     
    -  /for-each@0.3.3:
    -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
    -    dependencies:
    -      is-callable: 1.2.7
    -    dev: true
    +  follow-redirects@1.15.6: {}
     
    -  /foreground-child@3.1.1:
    -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
    -    engines: {node: '>=14'}
    +  for-each@0.3.3:
         dependencies:
    -      cross-spawn: 7.0.3
    -      signal-exit: 4.1.0
    -
    -  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
    -    engines: {node: '>=10', yarn: '>=1.0.0'}
    -    peerDependencies:
    -      eslint: '>= 6'
    -      typescript: '>= 2.7'
    -      vue-template-compiler: '*'
    -      webpack: '>= 4'
    -    peerDependenciesMeta:
    -      eslint:
    -        optional: true
    -      vue-template-compiler:
    -        optional: true
    +      is-callable: 1.2.7
    +
    +  foreground-child@3.1.1:
    +    dependencies:
    +      cross-spawn: 7.0.3
    +      signal-exit: 4.1.0
    +
    +  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           '@babel/code-frame': 7.24.2
           '@types/json-schema': 7.0.15
    @@ -9444,102 +15498,63 @@ packages:
           tapable: 1.1.3
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /form-data-encoder@2.1.4:
    -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
    -    engines: {node: '>= 14.17'}
    -    dev: false
    +  form-data-encoder@2.1.4: {}
     
    -  /form-data@4.0.0:
    -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
    -    engines: {node: '>= 6'}
    +  form-data@4.0.0:
         dependencies:
           asynckit: 0.4.0
           combined-stream: 1.0.8
           mime-types: 2.1.35
    -    dev: true
     
    -  /format@0.2.2:
    -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
    -    engines: {node: '>=0.4.x'}
    -    dev: false
    +  format@0.2.2: {}
     
    -  /forwarded@0.2.0:
    -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
    -    engines: {node: '>= 0.6'}
    +  forwarded@0.2.0: {}
     
    -  /fraction.js@4.3.7:
    -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
    +  fraction.js@4.3.7: {}
     
    -  /fresh@0.5.2:
    -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
    -    engines: {node: '>= 0.6'}
    +  fresh@0.5.2: {}
     
    -  /fs-extra@11.2.0:
    -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
    -    engines: {node: '>=14.14'}
    +  fs-extra@11.2.0:
         dependencies:
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
     
    -  /fs-extra@9.1.0:
    -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
    -    engines: {node: '>=10'}
    +  fs-extra@9.1.0:
         dependencies:
           at-least-node: 1.0.0
           graceful-fs: 4.2.11
           jsonfile: 6.1.0
           universalify: 2.0.1
    -    dev: false
     
    -  /fs-minipass@2.1.0:
    -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
    -    engines: {node: '>= 8'}
    +  fs-minipass@2.1.0:
         dependencies:
           minipass: 3.3.6
     
    -  /fs-minipass@3.0.3:
    -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  fs-minipass@3.0.3:
         dependencies:
           minipass: 7.0.4
     
    -  /fs-monkey@1.0.5:
    -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
    -    dev: false
    +  fs-monkey@1.0.5: {}
     
    -  /fs.realpath@1.0.0:
    -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +  fs.realpath@1.0.0: {}
     
    -  /fsevents@2.3.3:
    -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    -    os: [darwin]
    -    requiresBuild: true
    +  fsevents@2.3.3:
         optional: true
     
    -  /function-bind@1.1.2:
    -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    +  function-bind@1.1.2: {}
     
    -  /function.prototype.name@1.1.6:
    -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
    -    engines: {node: '>= 0.4'}
    +  function.prototype.name@1.1.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           functions-have-names: 1.2.3
    -    dev: true
     
    -  /functions-have-names@1.2.3:
    -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
    -    dev: true
    +  functions-have-names@1.2.3: {}
     
    -  /gauge@3.0.2:
    -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
    -    engines: {node: '>=10'}
    +  gauge@3.0.2:
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -9551,9 +15566,7 @@ packages:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  /gauge@4.0.4:
    -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  gauge@4.0.4:
         dependencies:
           aproba: 2.0.0
           color-support: 1.1.3
    @@ -9564,22 +15577,13 @@ packages:
           strip-ansi: 6.0.1
           wide-align: 1.1.5
     
    -  /gensync@1.0.0-beta.2:
    -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    -    engines: {node: '>=6.9.0'}
    +  gensync@1.0.0-beta.2: {}
     
    -  /get-caller-file@2.0.5:
    -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
    -    engines: {node: 6.* || 8.* || >= 10.*}
    -    dev: true
    +  get-caller-file@2.0.5: {}
     
    -  /get-func-name@2.0.2:
    -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
    -    dev: true
    +  get-func-name@2.0.2: {}
     
    -  /get-intrinsic@1.2.4:
    -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
    -    engines: {node: '>= 0.4'}
    +  get-intrinsic@1.2.4:
         dependencies:
           es-errors: 1.3.0
           function-bind: 1.1.2
    @@ -9587,77 +15591,48 @@ packages:
           has-symbols: 1.0.3
           hasown: 2.0.2
     
    -  /get-npm-tarball-url@2.1.0:
    -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
    -    engines: {node: '>=12.17'}
    -    dev: false
    +  get-npm-tarball-url@2.1.0: {}
     
    -  /get-own-enumerable-property-symbols@3.0.2:
    -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
    -    dev: false
    +  get-own-enumerable-property-symbols@3.0.2: {}
     
    -  /get-package-type@0.1.0:
    -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
    -    engines: {node: '>=8.0.0'}
    -    dev: true
    +  get-package-type@0.1.0: {}
     
    -  /get-source@2.0.12:
    -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
    +  get-source@2.0.12:
         dependencies:
           data-uri-to-buffer: 2.0.2
           source-map: 0.6.1
    -    dev: true
     
    -  /get-stream@6.0.1:
    -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
    -    engines: {node: '>=10'}
    +  get-stream@6.0.1: {}
     
    -  /get-symbol-description@1.0.2:
    -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
    -    engines: {node: '>= 0.4'}
    +  get-symbol-description@1.0.2:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /get-tsconfig@4.7.3:
    -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
    +  get-tsconfig@4.7.3:
         dependencies:
           resolve-pkg-maps: 1.0.0
    -    dev: true
     
    -  /github-slugger@1.5.0:
    -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
    -    dev: false
    +  github-slugger@1.5.0: {}
     
    -  /github-username@6.0.0:
    -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
    -    engines: {node: '>=10'}
    +  github-username@6.0.0:
         dependencies:
           '@octokit/rest': 18.12.0
         transitivePeerDependencies:
           - encoding
     
    -  /glob-parent@5.1.2:
    -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    -    engines: {node: '>= 6'}
    +  glob-parent@5.1.2:
         dependencies:
           is-glob: 4.0.3
     
    -  /glob-parent@6.0.2:
    -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    -    engines: {node: '>=10.13.0'}
    +  glob-parent@6.0.2:
         dependencies:
           is-glob: 4.0.3
     
    -  /glob-to-regexp@0.4.1:
    -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
    +  glob-to-regexp@0.4.1: {}
     
    -  /glob@10.3.10:
    -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    +  glob@10.3.10:
         dependencies:
           foreground-child: 3.1.1
           jackspeak: 2.3.6
    @@ -9665,8 +15640,7 @@ packages:
           minipass: 7.0.4
           path-scurry: 1.10.1
     
    -  /glob@7.2.3:
    -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    +  glob@7.2.3:
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -9675,9 +15649,7 @@ packages:
           once: 1.4.0
           path-is-absolute: 1.0.1
     
    -  /glob@8.1.0:
    -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
    -    engines: {node: '>=12'}
    +  glob@8.1.0:
         dependencies:
           fs.realpath: 1.0.0
           inflight: 1.0.6
    @@ -9685,49 +15657,31 @@ packages:
           minimatch: 5.1.6
           once: 1.4.0
     
    -  /global-dirs@3.0.1:
    -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
    -    engines: {node: '>=10'}
    +  global-dirs@3.0.1:
         dependencies:
           ini: 2.0.0
    -    dev: false
     
    -  /global-modules@2.0.0:
    -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
    -    engines: {node: '>=6'}
    +  global-modules@2.0.0:
         dependencies:
           global-prefix: 3.0.0
    -    dev: false
     
    -  /global-prefix@3.0.0:
    -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
    -    engines: {node: '>=6'}
    +  global-prefix@3.0.0:
         dependencies:
           ini: 1.3.8
           kind-of: 6.0.3
           which: 1.3.1
    -    dev: false
     
    -  /globals@11.12.0:
    -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    -    engines: {node: '>=4'}
    +  globals@11.12.0: {}
     
    -  /globals@13.24.0:
    -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    -    engines: {node: '>=8'}
    +  globals@13.24.0:
         dependencies:
           type-fest: 0.20.2
     
    -  /globalthis@1.0.3:
    -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
    -    engines: {node: '>= 0.4'}
    +  globalthis@1.0.3:
         dependencies:
           define-properties: 1.2.1
    -    dev: true
     
    -  /globby@11.1.0:
    -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    -    engines: {node: '>=10'}
    +  globby@11.1.0:
         dependencies:
           array-union: 2.1.0
           dir-glob: 3.0.1
    @@ -9736,25 +15690,19 @@ packages:
           merge2: 1.4.1
           slash: 3.0.0
     
    -  /globby@13.2.2:
    -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  globby@13.2.2:
         dependencies:
           dir-glob: 3.0.1
           fast-glob: 3.3.2
           ignore: 5.3.1
           merge2: 1.4.1
           slash: 4.0.0
    -    dev: false
     
    -  /gopd@1.0.1:
    -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
    +  gopd@1.0.1:
         dependencies:
           get-intrinsic: 1.2.4
     
    -  /got@12.6.1:
    -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
    -    engines: {node: '>=14.16'}
    +  got@12.6.1:
         dependencies:
           '@sindresorhus/is': 5.6.0
           '@szmarczak/http-timer': 5.0.1
    @@ -9767,108 +15715,66 @@ packages:
           lowercase-keys: 3.0.0
           p-cancelable: 3.0.0
           responselike: 3.0.0
    -    dev: false
     
    -  /graceful-fs@4.2.10:
    -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    +  graceful-fs@4.2.10: {}
     
    -  /graceful-fs@4.2.11:
    -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    +  graceful-fs@4.2.11: {}
     
    -  /graceful-git@3.1.2:
    -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
    -    engines: {node: '>=10'}
    +  graceful-git@3.1.2:
         dependencies:
           retry: 0.12.0
           safe-execa: 0.1.2
    -    dev: false
     
    -  /graphemer@1.4.0:
    -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    +  graphemer@1.4.0: {}
     
    -  /gray-matter@4.0.3:
    -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
    -    engines: {node: '>=6.0'}
    +  gray-matter@4.0.3:
         dependencies:
           js-yaml: 3.14.1
           kind-of: 6.0.3
           section-matter: 1.0.0
           strip-bom-string: 1.0.0
    -    dev: false
     
    -  /grouped-queue@2.0.0:
    -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
    -    engines: {node: '>=8.0.0'}
    +  grouped-queue@2.0.0: {}
     
    -  /gzip-size@6.0.0:
    -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
    -    engines: {node: '>=10'}
    +  gzip-size@6.0.0:
         dependencies:
           duplexer: 0.1.2
    -    dev: false
     
    -  /handle-thing@2.0.1:
    -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
    +  handle-thing@2.0.1: {}
     
    -  /hard-rejection@2.1.0:
    -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  hard-rejection@2.1.0: {}
     
    -  /has-bigints@1.0.2:
    -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
    -    dev: true
    +  has-bigints@1.0.2: {}
     
    -  /has-flag@3.0.0:
    -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    -    engines: {node: '>=4'}
    +  has-flag@3.0.0: {}
     
    -  /has-flag@4.0.0:
    -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    -    engines: {node: '>=8'}
    +  has-flag@4.0.0: {}
     
    -  /has-property-descriptors@1.0.2:
    -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
    +  has-property-descriptors@1.0.2:
         dependencies:
           es-define-property: 1.0.0
     
    -  /has-proto@1.0.3:
    -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
    -    engines: {node: '>= 0.4'}
    +  has-proto@1.0.3: {}
     
    -  /has-symbols@1.0.3:
    -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
    -    engines: {node: '>= 0.4'}
    +  has-symbols@1.0.3: {}
     
    -  /has-tostringtag@1.0.2:
    -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
    -    engines: {node: '>= 0.4'}
    +  has-tostringtag@1.0.2:
         dependencies:
           has-symbols: 1.0.3
    -    dev: true
     
    -  /has-unicode@2.0.1:
    -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
    +  has-unicode@2.0.1: {}
     
    -  /has-yarn@3.0.0:
    -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  has-yarn@3.0.0: {}
     
    -  /hasharray@1.1.2:
    -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
    +  hasharray@1.1.2:
         dependencies:
           jclass: 1.2.1
    -    dev: false
     
    -  /hasown@2.0.2:
    -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    -    engines: {node: '>= 0.4'}
    +  hasown@2.0.2:
         dependencies:
           function-bind: 1.1.2
     
    -  /hast-util-from-parse5@8.0.1:
    -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
    +  hast-util-from-parse5@8.0.1:
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -9878,16 +15784,12 @@ packages:
           vfile: 6.0.1
           vfile-location: 5.0.2
           web-namespaces: 2.0.1
    -    dev: false
     
    -  /hast-util-parse-selector@4.0.0:
    -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
    +  hast-util-parse-selector@4.0.0:
         dependencies:
           '@types/hast': 3.0.4
    -    dev: false
     
    -  /hast-util-raw@9.0.2:
    -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
    +  hast-util-raw@9.0.2:
         dependencies:
           '@types/hast': 3.0.4
           '@types/unist': 3.0.2
    @@ -9902,10 +15804,8 @@ packages:
           vfile: 6.0.1
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    -    dev: false
     
    -  /hast-util-to-estree@3.1.0:
    -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
    +  hast-util-to-estree@3.1.0:
         dependencies:
           '@types/estree': 1.0.5
           '@types/estree-jsx': 1.0.5
    @@ -9926,8 +15826,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /hast-util-to-jsx-runtime@2.3.0:
    -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
    +  hast-util-to-jsx-runtime@2.3.0:
         dependencies:
           '@types/estree': 1.0.5
           '@types/hast': 3.0.4
    @@ -9947,8 +15846,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /hast-util-to-parse5@8.0.0:
    -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
    +  hast-util-to-parse5@8.0.0:
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
    @@ -9957,29 +15855,22 @@ packages:
           space-separated-tokens: 2.0.2
           web-namespaces: 2.0.1
           zwitch: 2.0.4
    -    dev: false
     
    -  /hast-util-whitespace@3.0.0:
    -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
    +  hast-util-whitespace@3.0.0:
         dependencies:
           '@types/hast': 3.0.4
     
    -  /hastscript@8.0.0:
    -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
    +  hastscript@8.0.0:
         dependencies:
           '@types/hast': 3.0.4
           comma-separated-tokens: 2.0.3
           hast-util-parse-selector: 4.0.0
           property-information: 6.4.1
           space-separated-tokens: 2.0.2
    -    dev: false
     
    -  /he@1.2.0:
    -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
    -    hasBin: true
    +  he@1.2.0: {}
     
    -  /history@4.10.1:
    -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
    +  history@4.10.1:
         dependencies:
           '@babel/runtime': 7.24.1
           loose-envify: 1.4.0
    @@ -9987,61 +15878,41 @@ packages:
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
           value-equal: 1.0.1
    -    dev: false
     
    -  /hoist-non-react-statics@3.3.2:
    -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
    +  hoist-non-react-statics@3.3.2:
         dependencies:
           react-is: 16.13.1
    -    dev: false
     
    -  /hosted-git-info@2.8.9:
    -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
    +  hosted-git-info@2.8.9: {}
     
    -  /hosted-git-info@4.1.0:
    -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
    -    engines: {node: '>=10'}
    +  hosted-git-info@4.1.0:
         dependencies:
           lru-cache: 6.0.0
     
    -  /hosted-git-info@6.1.1:
    -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  hosted-git-info@6.1.1:
         dependencies:
           lru-cache: 7.18.3
     
    -  /hosted-git-info@7.0.1:
    -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    +  hosted-git-info@7.0.1:
         dependencies:
           lru-cache: 10.2.0
    -    dev: true
     
    -  /hpack.js@2.1.6:
    -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
    +  hpack.js@2.1.6:
         dependencies:
           inherits: 2.0.4
           obuf: 1.1.2
           readable-stream: 2.3.8
           wbuf: 1.7.3
     
    -  /html-encoding-sniffer@3.0.0:
    -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
    -    engines: {node: '>=12'}
    +  html-encoding-sniffer@3.0.0:
         dependencies:
           whatwg-encoding: 2.0.0
    -    dev: true
     
    -  /html-entities@2.5.2:
    -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
    +  html-entities@2.5.2: {}
     
    -  /html-escaper@2.0.2:
    -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    +  html-escaper@2.0.2: {}
     
    -  /html-minifier-terser@6.1.0:
    -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    +  html-minifier-terser@6.1.0:
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -10051,10 +15922,7 @@ packages:
           relateurl: 0.2.7
           terser: 5.29.2
     
    -  /html-minifier-terser@7.2.0:
    -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
    -    engines: {node: ^14.13.1 || >=16.0.0}
    -    hasBin: true
    +  html-minifier-terser@7.2.0:
         dependencies:
           camel-case: 4.1.2
           clean-css: 5.3.3
    @@ -10063,28 +15931,12 @@ packages:
           param-case: 3.0.4
           relateurl: 0.2.7
           terser: 5.29.2
    -    dev: false
     
    -  /html-tags@3.3.1:
    -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  html-tags@3.3.1: {}
     
    -  /html-void-elements@3.0.0:
    -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
    -    dev: false
    +  html-void-elements@3.0.0: {}
     
    -  /html-webpack-plugin@5.6.0(webpack@5.91.0):
    -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      webpack: ^5.20.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  html-webpack-plugin@5.6.0(webpack@5.91.0):
         dependencies:
           '@types/html-minifier-terser': 6.1.0
           html-minifier-terser: 6.1.0
    @@ -10093,41 +15945,32 @@ packages:
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /htmlparser2@6.1.0:
    -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
    +  htmlparser2@6.1.0:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 4.3.1
           domutils: 2.8.0
           entities: 2.2.0
     
    -  /htmlparser2@8.0.2:
    -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
    +  htmlparser2@8.0.2:
         dependencies:
           domelementtype: 2.3.0
           domhandler: 5.0.3
           domutils: 3.1.0
           entities: 4.5.0
    -    dev: false
     
    -  /http-cache-semantics@4.1.1:
    -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
    +  http-cache-semantics@4.1.1: {}
     
    -  /http-deceiver@1.2.7:
    -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
    +  http-deceiver@1.2.7: {}
     
    -  /http-errors@1.6.3:
    -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
    -    engines: {node: '>= 0.6'}
    +  http-errors@1.6.3:
         dependencies:
           depd: 1.1.2
           inherits: 2.0.3
           setprototypeof: 1.1.0
           statuses: 1.5.0
     
    -  /http-errors@2.0.0:
    -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
    -    engines: {node: '>= 0.8'}
    +  http-errors@2.0.0:
         dependencies:
           depd: 2.0.0
           inherits: 2.0.4
    @@ -10135,12 +15978,9 @@ packages:
           statuses: 2.0.1
           toidentifier: 1.0.1
     
    -  /http-parser-js@0.5.8:
    -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
    +  http-parser-js@0.5.8: {}
     
    -  /http-proxy-agent@4.0.1:
    -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
    -    engines: {node: '>= 6'}
    +  http-proxy-agent@4.0.1:
         dependencies:
           '@tootallnate/once': 1.1.2
           agent-base: 6.0.2
    @@ -10148,9 +15988,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /http-proxy-agent@5.0.0:
    -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
    -    engines: {node: '>= 6'}
    +  http-proxy-agent@5.0.0:
         dependencies:
           '@tootallnate/once': 2.0.0
           agent-base: 6.0.2
    @@ -10158,14 +15996,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
    -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      '@types/express': ^4.17.13
    -    peerDependenciesMeta:
    -      '@types/express':
    -        optional: true
    +  http-proxy-middleware@2.0.6(@types/express@4.17.21):
         dependencies:
           '@types/express': 4.17.21
           '@types/http-proxy': 1.17.14
    @@ -10176,9 +16007,7 @@ packages:
         transitivePeerDependencies:
           - debug
     
    -  /http-proxy@1.18.1:
    -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
    -    engines: {node: '>=8.0.0'}
    +  http-proxy@1.18.1:
         dependencies:
           eventemitter3: 4.0.7
           follow-redirects: 1.15.6
    @@ -10186,10 +16015,7 @@ packages:
         transitivePeerDependencies:
           - debug
     
    -  /http-server@14.1.1:
    -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    +  http-server@14.1.1:
         dependencies:
           basic-auth: 2.0.1
           chalk: 4.1.2
    @@ -10207,187 +16033,112 @@ packages:
         transitivePeerDependencies:
           - debug
           - supports-color
    -    dev: true
     
    -  /http2-wrapper@2.2.1:
    -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
    -    engines: {node: '>=10.19.0'}
    +  http2-wrapper@2.2.1:
         dependencies:
           quick-lru: 5.1.1
           resolve-alpn: 1.2.1
    -    dev: false
     
    -  /https-proxy-agent@5.0.1:
    -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
    -    engines: {node: '>= 6'}
    +  https-proxy-agent@5.0.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
         transitivePeerDependencies:
           - supports-color
     
    -  /human-signals@2.1.0:
    -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
    -    engines: {node: '>=10.17.0'}
    +  human-signals@2.1.0: {}
     
    -  /humanize-ms@1.2.1:
    -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
    +  humanize-ms@1.2.1:
         dependencies:
           ms: 2.1.3
     
    -  /hyphenate-style-name@1.0.4:
    -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
    -    dev: false
    +  hyphenate-style-name@1.0.4: {}
     
    -  /iconv-lite@0.4.24:
    -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
    -    engines: {node: '>=0.10.0'}
    +  iconv-lite@0.4.24:
         dependencies:
           safer-buffer: 2.1.2
     
    -  /iconv-lite@0.6.3:
    -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
    -    engines: {node: '>=0.10.0'}
    -    requiresBuild: true
    +  iconv-lite@0.6.3:
         dependencies:
           safer-buffer: 2.1.2
     
    -  /icss-utils@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  icss-utils@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
     
    -  /ieee754@1.2.1:
    -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
    +  ieee754@1.2.1: {}
     
    -  /ignore-walk@4.0.1:
    -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
    -    engines: {node: '>=10'}
    +  ignore-walk@4.0.1:
         dependencies:
           minimatch: 3.1.2
     
    -  /ignore-walk@6.0.4:
    -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  ignore-walk@6.0.4:
         dependencies:
           minimatch: 9.0.3
     
    -  /ignore@5.3.1:
    -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    -    engines: {node: '>= 4'}
    +  ignore@5.3.1: {}
     
    -  /image-size@1.1.1:
    -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
    -    engines: {node: '>=16.x'}
    -    hasBin: true
    +  image-size@1.1.1:
         dependencies:
           queue: 6.0.2
    -    dev: false
     
    -  /immediate@3.0.6:
    -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
    -    dev: true
    +  immediate@3.0.6: {}
     
    -  /immer@10.0.4:
    -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
    -    dev: false
    +  immer@10.0.4: {}
     
    -  /immer@9.0.21:
    -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
    -    dev: false
    +  immer@9.0.21: {}
     
    -  /immutability-helper@3.1.1:
    -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
    -    dev: false
    +  immutability-helper@3.1.1: {}
     
    -  /import-fresh@3.3.0:
    -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    -    engines: {node: '>=6'}
    +  import-fresh@3.3.0:
         dependencies:
           parent-module: 1.0.1
           resolve-from: 4.0.0
     
    -  /import-lazy@4.0.0:
    -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  import-lazy@4.0.0: {}
     
    -  /import-local@3.1.0:
    -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    +  import-local@3.1.0:
         dependencies:
           pkg-dir: 4.2.0
           resolve-cwd: 3.0.0
     
    -  /imurmurhash@0.1.4:
    -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    -    engines: {node: '>=0.8.19'}
    +  imurmurhash@0.1.4: {}
     
    -  /indent-string@4.0.0:
    -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    -    engines: {node: '>=8'}
    +  indent-string@4.0.0: {}
     
    -  /indent-string@5.0.0:
    -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  indent-string@5.0.0: {}
     
    -  /individual@3.0.0:
    -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
    +  individual@3.0.0: {}
     
    -  /infer-owner@1.0.4:
    -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
    +  infer-owner@1.0.4: {}
     
    -  /infima@0.2.0-alpha.43:
    -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  infima@0.2.0-alpha.43: {}
     
    -  /inflight@1.0.6:
    -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    +  inflight@1.0.6:
         dependencies:
           once: 1.4.0
           wrappy: 1.0.2
     
    -  /inherits@2.0.3:
    -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
    +  inherits@2.0.3: {}
     
    -  /inherits@2.0.4:
    -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +  inherits@2.0.4: {}
     
    -  /ini@1.3.8:
    -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    +  ini@1.3.8: {}
     
    -  /ini@2.0.0:
    -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  ini@2.0.0: {}
     
    -  /ini@3.0.1:
    -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    dev: true
    +  ini@3.0.1: {}
     
    -  /inline-style-parser@0.1.1:
    -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
    +  inline-style-parser@0.1.1: {}
     
    -  /inline-style-parser@0.2.2:
    -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
    +  inline-style-parser@0.2.2: {}
     
    -  /inline-style-prefixer@7.0.0:
    -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
    +  inline-style-prefixer@7.0.0:
         dependencies:
           css-in-js-utils: 3.1.0
           fast-loops: 1.1.3
    -    dev: false
     
    -  /inquirer@8.2.6:
    -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
    -    engines: {node: '>=12.0.0'}
    +  inquirer@8.2.6:
         dependencies:
           ansi-escapes: 4.3.2
           chalk: 4.1.2
    @@ -10405,454 +16156,255 @@ packages:
           through: 2.3.8
           wrap-ansi: 6.2.0
     
    -  /internal-slot@1.0.7:
    -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
    -    engines: {node: '>= 0.4'}
    +  internal-slot@1.0.7:
         dependencies:
           es-errors: 1.3.0
           hasown: 2.0.2
           side-channel: 1.0.6
    -    dev: true
    -
    -  /interpret@1.4.0:
    -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
    -    engines: {node: '>= 0.10'}
     
    -  /interpret@3.1.1:
    -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
    -    engines: {node: '>=10.13.0'}
    +  interpret@1.4.0: {}
     
    -  /invariant@2.2.4:
    -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
    +  interpret@3.1.1: {}
    +
    +  invariant@2.2.4:
         dependencies:
           loose-envify: 1.4.0
     
    -  /ip-address@9.0.5:
    -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
    -    engines: {node: '>= 12'}
    +  ip-address@9.0.5:
         dependencies:
           jsbn: 1.1.0
           sprintf-js: 1.1.3
     
    -  /ipaddr.js@1.9.1:
    -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
    -    engines: {node: '>= 0.10'}
    +  ipaddr.js@1.9.1: {}
     
    -  /ipaddr.js@2.1.0:
    -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
    -    engines: {node: '>= 10'}
    +  ipaddr.js@2.1.0: {}
     
    -  /is-alphabetical@2.0.1:
    -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
    +  is-alphabetical@2.0.1: {}
     
    -  /is-alphanumerical@2.0.1:
    -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
    +  is-alphanumerical@2.0.1:
         dependencies:
           is-alphabetical: 2.0.1
           is-decimal: 2.0.1
     
    -  /is-arguments@1.1.1:
    -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
    -    engines: {node: '>= 0.4'}
    +  is-arguments@1.1.1:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-array-buffer@3.0.4:
    -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
    -    engines: {node: '>= 0.4'}
    +  is-array-buffer@3.0.4:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /is-arrayish@0.2.1:
    -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    +  is-arrayish@0.2.1: {}
     
    -  /is-arrayish@0.3.2:
    -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
    +  is-arrayish@0.3.2: {}
     
    -  /is-async-function@2.0.0:
    -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
    -    engines: {node: '>= 0.4'}
    +  is-async-function@2.0.0:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-bigint@1.0.4:
    -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
    +  is-bigint@1.0.4:
         dependencies:
           has-bigints: 1.0.2
    -    dev: true
     
    -  /is-binary-path@2.1.0:
    -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    -    engines: {node: '>=8'}
    +  is-binary-path@2.1.0:
         dependencies:
           binary-extensions: 2.3.0
     
    -  /is-boolean-object@1.1.2:
    -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
    -    engines: {node: '>= 0.4'}
    +  is-boolean-object@1.1.2:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-builtin-module@3.2.1:
    -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    -    engines: {node: '>=6'}
    +  is-builtin-module@3.2.1:
         dependencies:
           builtin-modules: 3.3.0
    -    dev: true
     
    -  /is-callable@1.2.7:
    -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-callable@1.2.7: {}
     
    -  /is-ci@3.0.1:
    -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
    -    hasBin: true
    +  is-ci@3.0.1:
         dependencies:
           ci-info: 3.9.0
    -    dev: false
     
    -  /is-core-module@2.13.1:
    -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    +  is-core-module@2.13.1:
         dependencies:
           hasown: 2.0.2
     
    -  /is-data-view@1.0.1:
    -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
    -    engines: {node: '>= 0.4'}
    +  is-data-view@1.0.1:
         dependencies:
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /is-date-object@1.0.5:
    -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
    -    engines: {node: '>= 0.4'}
    +  is-date-object@1.0.5:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-decimal@2.0.1:
    -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
    +  is-decimal@2.0.1: {}
     
    -  /is-docker@2.2.1:
    -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
    -    engines: {node: '>=8'}
    -    hasBin: true
    -    dev: false
    +  is-docker@2.2.1: {}
     
    -  /is-docker@3.0.0:
    -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    hasBin: true
    +  is-docker@3.0.0: {}
     
    -  /is-extendable@0.1.1:
    -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-extendable@0.1.1: {}
     
    -  /is-extglob@2.1.1:
    -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    -    engines: {node: '>=0.10.0'}
    +  is-extglob@2.1.1: {}
     
    -  /is-finalizationregistry@1.0.2:
    -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
    +  is-finalizationregistry@1.0.2:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-fullwidth-code-point@3.0.0:
    -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    -    engines: {node: '>=8'}
    +  is-fullwidth-code-point@3.0.0: {}
     
    -  /is-generator-fn@2.1.0:
    -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  is-generator-fn@2.1.0: {}
     
    -  /is-generator-function@1.0.10:
    -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
    -    engines: {node: '>= 0.4'}
    +  is-generator-function@1.0.10:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-glob@4.0.3:
    -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    -    engines: {node: '>=0.10.0'}
    +  is-glob@4.0.3:
         dependencies:
           is-extglob: 2.1.1
     
    -  /is-hexadecimal@2.0.1:
    -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
    +  is-hexadecimal@2.0.1: {}
     
    -  /is-inside-container@1.0.0:
    -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
    -    engines: {node: '>=14.16'}
    -    hasBin: true
    +  is-inside-container@1.0.0:
         dependencies:
           is-docker: 3.0.0
     
    -  /is-installed-globally@0.4.0:
    -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
    -    engines: {node: '>=10'}
    +  is-installed-globally@0.4.0:
         dependencies:
           global-dirs: 3.0.1
           is-path-inside: 3.0.3
    -    dev: false
     
    -  /is-interactive@1.0.0:
    -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
    -    engines: {node: '>=8'}
    +  is-interactive@1.0.0: {}
     
    -  /is-lambda@1.0.1:
    -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
    +  is-lambda@1.0.1: {}
     
    -  /is-map@2.0.3:
    -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-map@2.0.3: {}
     
    -  /is-negative-zero@2.0.3:
    -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-negative-zero@2.0.3: {}
     
    -  /is-network-error@1.1.0:
    -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
    -    engines: {node: '>=16'}
    +  is-network-error@1.1.0: {}
     
    -  /is-npm@6.0.0:
    -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  is-npm@6.0.0: {}
     
    -  /is-number-object@1.0.7:
    -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
    -    engines: {node: '>= 0.4'}
    +  is-number-object@1.0.7:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-number@7.0.0:
    -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    -    engines: {node: '>=0.12.0'}
    +  is-number@7.0.0: {}
     
    -  /is-obj@1.0.1:
    -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-obj@1.0.1: {}
     
    -  /is-obj@2.0.0:
    -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    -    engines: {node: '>=8'}
    -    dev: false
    +  is-obj@2.0.0: {}
     
    -  /is-path-cwd@2.2.0:
    -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  is-path-cwd@2.2.0: {}
     
    -  /is-path-inside@3.0.3:
    -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    -    engines: {node: '>=8'}
    +  is-path-inside@3.0.3: {}
     
    -  /is-plain-obj@1.1.0:
    -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  is-plain-obj@1.1.0: {}
     
    -  /is-plain-obj@2.1.0:
    -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
    -    engines: {node: '>=8'}
    +  is-plain-obj@2.1.0: {}
     
    -  /is-plain-obj@3.0.0:
    -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
    -    engines: {node: '>=10'}
    +  is-plain-obj@3.0.0: {}
     
    -  /is-plain-obj@4.1.0:
    -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
    -    engines: {node: '>=12'}
    +  is-plain-obj@4.1.0: {}
     
    -  /is-plain-object@2.0.4:
    -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
    -    engines: {node: '>=0.10.0'}
    +  is-plain-object@2.0.4:
         dependencies:
           isobject: 3.0.1
     
    -  /is-plain-object@5.0.0:
    -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
    -    engines: {node: '>=0.10.0'}
    +  is-plain-object@5.0.0: {}
     
    -  /is-potential-custom-element-name@1.0.1:
    -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
    -    dev: true
    +  is-potential-custom-element-name@1.0.1: {}
     
    -  /is-reference@3.0.2:
    -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
    +  is-reference@3.0.2:
         dependencies:
           '@types/estree': 1.0.5
     
    -  /is-regex@1.1.4:
    -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
    -    engines: {node: '>= 0.4'}
    +  is-regex@1.1.4:
         dependencies:
           call-bind: 1.0.7
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-regexp@1.0.0:
    -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  is-regexp@1.0.0: {}
     
    -  /is-root@2.1.0:
    -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  is-root@2.1.0: {}
     
    -  /is-scoped@2.1.0:
    -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
    -    engines: {node: '>=8'}
    +  is-scoped@2.1.0:
         dependencies:
           scoped-regex: 2.1.0
     
    -  /is-set@2.0.3:
    -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-set@2.0.3: {}
     
    -  /is-shared-array-buffer@1.0.3:
    -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
    -    engines: {node: '>= 0.4'}
    +  is-shared-array-buffer@1.0.3:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-stream@2.0.1:
    -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
    -    engines: {node: '>=8'}
    +  is-stream@2.0.1: {}
     
    -  /is-string@1.0.7:
    -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
    -    engines: {node: '>= 0.4'}
    +  is-string@1.0.7:
         dependencies:
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /is-subdir@1.2.0:
    -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
    -    engines: {node: '>=4'}
    +  is-subdir@1.2.0:
         dependencies:
           better-path-resolve: 1.0.0
    -    dev: true
     
    -  /is-symbol@1.0.4:
    -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
    -    engines: {node: '>= 0.4'}
    +  is-symbol@1.0.4:
         dependencies:
           has-symbols: 1.0.3
    -    dev: true
     
    -  /is-typed-array@1.1.13:
    -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
    -    engines: {node: '>= 0.4'}
    +  is-typed-array@1.1.13:
         dependencies:
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /is-typedarray@1.0.0:
    -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
    +  is-typedarray@1.0.0: {}
     
    -  /is-unicode-supported@0.1.0:
    -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
    -    engines: {node: '>=10'}
    +  is-unicode-supported@0.1.0: {}
     
    -  /is-utf8@0.2.1:
    -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
    +  is-utf8@0.2.1: {}
     
    -  /is-weakmap@2.0.2:
    -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  is-weakmap@2.0.2: {}
     
    -  /is-weakref@1.0.2:
    -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
    +  is-weakref@1.0.2:
         dependencies:
           call-bind: 1.0.7
    -    dev: true
     
    -  /is-weakset@2.0.3:
    -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
    -    engines: {node: '>= 0.4'}
    +  is-weakset@2.0.3:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
    -    dev: true
     
    -  /is-windows@1.0.2:
    -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  is-windows@1.0.2: {}
     
    -  /is-wsl@2.2.0:
    -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
    -    engines: {node: '>=8'}
    +  is-wsl@2.2.0:
         dependencies:
           is-docker: 2.2.1
    -    dev: false
     
    -  /is-wsl@3.1.0:
    -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
    -    engines: {node: '>=16'}
    +  is-wsl@3.1.0:
         dependencies:
           is-inside-container: 1.0.0
     
    -  /is-yarn-global@0.4.1:
    -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  is-yarn-global@0.4.1: {}
     
    -  /isarray@0.0.1:
    -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
    -    dev: false
    +  isarray@0.0.1: {}
     
    -  /isarray@1.0.0:
    -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
    +  isarray@1.0.0: {}
     
    -  /isarray@2.0.5:
    -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
    -    dev: true
    +  isarray@2.0.5: {}
     
    -  /isbinaryfile@4.0.10:
    -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
    -    engines: {node: '>= 8.0.0'}
    +  isbinaryfile@4.0.10: {}
     
    -  /isbinaryfile@5.0.2:
    -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
    -    engines: {node: '>= 18.0.0'}
    +  isbinaryfile@5.0.2: {}
     
    -  /isexe@2.0.0:
    -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +  isexe@2.0.0: {}
     
    -  /isobject@3.0.1:
    -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
    -    engines: {node: '>=0.10.0'}
    +  isobject@3.0.1: {}
     
    -  /istanbul-lib-coverage@3.2.2:
    -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  istanbul-lib-coverage@3.2.2: {}
     
    -  /istanbul-lib-instrument@5.2.1:
    -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
    -    engines: {node: '>=8'}
    +  istanbul-lib-instrument@5.2.1:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -10861,11 +16413,8 @@ packages:
           semver: 6.3.1
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-lib-instrument@6.0.2:
    -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-instrument@6.0.2:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/parser': 7.24.1
    @@ -10874,85 +16423,58 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-lib-report@3.0.1:
    -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-report@3.0.1:
         dependencies:
           istanbul-lib-coverage: 3.2.2
           make-dir: 4.0.0
           supports-color: 7.2.0
    -    dev: true
     
    -  /istanbul-lib-source-maps@4.0.1:
    -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    -    engines: {node: '>=10'}
    +  istanbul-lib-source-maps@4.0.1:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           istanbul-lib-coverage: 3.2.2
           source-map: 0.6.1
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /istanbul-reports@3.1.7:
    -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
    -    engines: {node: '>=8'}
    +  istanbul-reports@3.1.7:
         dependencies:
           html-escaper: 2.0.2
           istanbul-lib-report: 3.0.1
    -    dev: true
     
    -  /iterator.prototype@1.1.2:
    -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
    +  iterator.prototype@1.1.2:
         dependencies:
           define-properties: 1.2.1
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           reflect.getprototypeof: 1.0.6
           set-function-name: 2.0.2
    -    dev: true
     
    -  /itertools@2.2.5:
    -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
    -    dev: false
    +  itertools@2.2.5: {}
     
    -  /jackspeak@2.3.6:
    -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
    -    engines: {node: '>=14'}
    +  jackspeak@2.3.6:
         dependencies:
           '@isaacs/cliui': 8.0.2
         optionalDependencies:
           '@pkgjs/parseargs': 0.11.0
     
    -  /jake@10.8.7:
    -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  jake@10.8.7:
         dependencies:
           async: 3.2.5
           chalk: 4.1.2
           filelist: 1.0.4
           minimatch: 3.1.2
     
    -  /jclass@1.2.1:
    -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  jclass@1.2.1: {}
     
    -  /jest-changed-files@29.7.0:
    -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-changed-files@29.7.0:
         dependencies:
           execa: 5.1.1
           jest-util: 29.7.0
           p-limit: 3.1.0
    -    dev: true
     
    -  /jest-circus@29.7.0:
    -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-circus@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/expect': 29.7.0
    @@ -10977,17 +16499,8 @@ packages:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    -    dev: true
     
    -  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/test-result': 29.7.0
    @@ -11005,19 +16518,8 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      '@types/node': '*'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      ts-node:
    -        optional: true
    +  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@babel/core': 7.24.3
           '@jest/test-sequencer': 29.7.0
    @@ -11046,44 +16548,27 @@ packages:
         transitivePeerDependencies:
           - babel-plugin-macros
           - supports-color
    -    dev: true
     
    -  /jest-diff@29.7.0:
    -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-diff@29.7.0:
         dependencies:
           chalk: 4.1.2
           diff-sequences: 29.6.3
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-docblock@29.7.0:
    -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-docblock@29.7.0:
         dependencies:
           detect-newline: 3.1.0
    -    dev: true
     
    -  /jest-each@29.7.0:
    -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-each@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           chalk: 4.1.2
           jest-get-type: 29.6.3
           jest-util: 29.7.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-environment-jsdom@29.7.0:
    -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    +  jest-environment-jsdom@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11097,11 +16582,8 @@ packages:
           - bufferutil
           - supports-color
           - utf-8-validate
    -    dev: true
     
    -  /jest-environment-node@29.7.0:
    -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-environment-node@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11109,16 +16591,10 @@ packages:
           '@types/node': 18.18.2
           jest-mock: 29.7.0
           jest-util: 29.7.0
    -    dev: true
     
    -  /jest-get-type@29.6.3:
    -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  jest-get-type@29.6.3: {}
     
    -  /jest-haste-map@29.7.0:
    -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-haste-map@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/graceful-fs': 4.1.9
    @@ -11133,29 +16609,20 @@ packages:
           walker: 1.0.8
         optionalDependencies:
           fsevents: 2.3.3
    -    dev: true
     
    -  /jest-leak-detector@29.7.0:
    -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-leak-detector@29.7.0:
         dependencies:
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-matcher-utils@29.7.0:
    -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-matcher-utils@29.7.0:
         dependencies:
           chalk: 4.1.2
           jest-diff: 29.7.0
           jest-get-type: 29.6.3
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-message-util@29.7.0:
    -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-message-util@29.7.0:
         dependencies:
           '@babel/code-frame': 7.24.2
           '@jest/types': 29.6.3
    @@ -11166,47 +16633,27 @@ packages:
           pretty-format: 29.7.0
           slash: 3.0.0
           stack-utils: 2.0.6
    -    dev: true
     
    -  /jest-mock@29.7.0:
    -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-mock@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
           jest-util: 29.7.0
    -    dev: true
     
    -  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
    -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
    -    engines: {node: '>=6'}
    -    peerDependencies:
    -      jest-resolve: '*'
    -    peerDependenciesMeta:
    -      jest-resolve:
    -        optional: true
    +  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
         dependencies:
           jest-resolve: 29.7.0
    -    dev: true
     
    -  /jest-regex-util@29.6.3:
    -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    dev: true
    +  jest-regex-util@29.6.3: {}
     
    -  /jest-resolve-dependencies@29.7.0:
    -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-resolve-dependencies@29.7.0:
         dependencies:
           jest-regex-util: 29.6.3
           jest-snapshot: 29.7.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-resolve@29.7.0:
    -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-resolve@29.7.0:
         dependencies:
           chalk: 4.1.2
           graceful-fs: 4.2.11
    @@ -11217,11 +16664,8 @@ packages:
           resolve: 1.22.8
           resolve.exports: 2.0.2
           slash: 3.0.0
    -    dev: true
     
    -  /jest-runner@29.7.0:
    -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-runner@29.7.0:
         dependencies:
           '@jest/console': 29.7.0
           '@jest/environment': 29.7.0
    @@ -11246,11 +16690,8 @@ packages:
           source-map-support: 0.5.13
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-runtime@29.7.0:
    -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-runtime@29.7.0:
         dependencies:
           '@jest/environment': 29.7.0
           '@jest/fake-timers': 29.7.0
    @@ -11276,11 +16717,8 @@ packages:
           strip-bom: 4.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-snapshot@29.7.0:
    -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-snapshot@29.7.0:
         dependencies:
           '@babel/core': 7.24.3
           '@babel/generator': 7.24.1
    @@ -11304,11 +16742,8 @@ packages:
           semver: 7.6.0
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /jest-util@29.7.0:
    -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-util@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           '@types/node': 18.18.2
    @@ -11317,9 +16752,7 @@ packages:
           graceful-fs: 4.2.11
           picomatch: 2.3.1
     
    -  /jest-validate@29.7.0:
    -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-validate@29.7.0:
         dependencies:
           '@jest/types': 29.6.3
           camelcase: 6.3.0
    @@ -11327,11 +16760,8 @@ packages:
           jest-get-type: 29.6.3
           leven: 3.1.0
           pretty-format: 29.7.0
    -    dev: true
     
    -  /jest-watcher@29.7.0:
    -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-watcher@29.7.0:
         dependencies:
           '@jest/test-result': 29.7.0
           '@jest/types': 29.6.3
    @@ -11341,34 +16771,21 @@ packages:
           emittery: 0.13.1
           jest-util: 29.7.0
           string-length: 4.0.2
    -    dev: true
     
    -  /jest-worker@27.5.1:
    -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    -    engines: {node: '>= 10.13.0'}
    +  jest-worker@27.5.1:
         dependencies:
           '@types/node': 18.18.2
           merge-stream: 2.0.0
           supports-color: 8.1.1
     
    -  /jest-worker@29.7.0:
    -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  jest-worker@29.7.0:
         dependencies:
           '@types/node': 18.18.2
           jest-util: 29.7.0
    -      merge-stream: 2.0.0
    -      supports-color: 8.1.1
    -
    -  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    -    peerDependenciesMeta:
    -      node-notifier:
    -        optional: true
    +      merge-stream: 2.0.0
    +      supports-color: 8.1.1
    +
    +  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
         dependencies:
           '@jest/core': 29.7.0(ts-node@10.9.2)
           '@jest/types': 29.6.3
    @@ -11379,14 +16796,10 @@ packages:
           - babel-plugin-macros
           - supports-color
           - ts-node
    -    dev: true
     
    -  /jiti@1.21.0:
    -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    -    hasBin: true
    +  jiti@1.21.0: {}
     
    -  /joi@17.12.2:
    -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
    +  joi@17.12.2:
         dependencies:
           '@hapi/hoek': 9.3.0
           '@hapi/topo': 5.1.0
    @@ -11394,37 +16807,22 @@ packages:
           '@sideway/formula': 3.0.1
           '@sideway/pinpoint': 2.0.0
     
    -  /js-cookie@2.2.1:
    -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
    -    dev: false
    +  js-cookie@2.2.1: {}
     
    -  /js-tokens@4.0.0:
    -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +  js-tokens@4.0.0: {}
     
    -  /js-yaml@3.14.1:
    -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    -    hasBin: true
    +  js-yaml@3.14.1:
         dependencies:
           argparse: 1.0.10
           esprima: 4.0.1
     
    -  /js-yaml@4.1.0:
    -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    -    hasBin: true
    +  js-yaml@4.1.0:
         dependencies:
           argparse: 2.0.1
     
    -  /jsbn@1.1.0:
    -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
    +  jsbn@1.1.0: {}
     
    -  /jsdom@20.0.3:
    -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      canvas: ^2.5.0
    -    peerDependenciesMeta:
    -      canvas:
    -        optional: true
    +  jsdom@20.0.3:
         dependencies:
           abab: 2.0.6
           acorn: 8.11.3
    @@ -11456,272 +16854,168 @@ packages:
           - bufferutil
           - supports-color
           - utf-8-validate
    -    dev: true
     
    -  /jsesc@0.5.0:
    -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
    -    hasBin: true
    +  jsesc@0.5.0: {}
     
    -  /jsesc@2.5.2:
    -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  jsesc@2.5.2: {}
     
    -  /jsesc@3.0.2:
    -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    -    dev: true
    +  jsesc@3.0.2: {}
     
    -  /json-buffer@3.0.1:
    -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    +  json-buffer@3.0.1: {}
     
    -  /json-parse-even-better-errors@2.3.1:
    -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    +  json-parse-even-better-errors@2.3.1: {}
     
    -  /json-parse-even-better-errors@3.0.1:
    -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  json-parse-even-better-errors@3.0.1: {}
     
    -  /json-schema-traverse@0.4.1:
    -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    +  json-schema-traverse@0.4.1: {}
     
    -  /json-schema-traverse@1.0.0:
    -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
    +  json-schema-traverse@1.0.0: {}
     
    -  /json-stable-stringify-without-jsonify@1.0.1:
    -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    +  json-stable-stringify-without-jsonify@1.0.1: {}
     
    -  /json-stringify-nice@1.1.4:
    -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
    +  json-stringify-nice@1.1.4: {}
     
    -  /json-stringify-safe@5.0.1:
    -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
    +  json-stringify-safe@5.0.1: {}
     
    -  /json5@1.0.2:
    -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
    -    hasBin: true
    +  json5@1.0.2:
         dependencies:
           minimist: 1.2.8
    -    dev: true
     
    -  /json5@2.2.3:
    -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    +  json5@2.2.3: {}
     
    -  /jsonfile@6.1.0:
    -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    +  jsonfile@6.1.0:
         dependencies:
           universalify: 2.0.1
         optionalDependencies:
           graceful-fs: 4.2.11
     
    -  /jsonparse@1.3.1:
    -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
    -    engines: {'0': node >= 0.2.0}
    +  jsonparse@1.3.1: {}
     
    -  /jsx-ast-utils@3.3.5:
    -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
    -    engines: {node: '>=4.0'}
    +  jsx-ast-utils@3.3.5:
         dependencies:
           array-includes: 3.1.8
           array.prototype.flat: 1.3.2
           object.assign: 4.1.5
           object.values: 1.2.0
    -    dev: true
     
    -  /jszip@3.10.1:
    -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
    +  jszip@3.10.1:
         dependencies:
           lie: 3.3.0
           pako: 1.0.11
           readable-stream: 2.3.8
           setimmediate: 1.0.5
    -    dev: true
     
    -  /just-diff-apply@5.5.0:
    -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
    +  just-diff-apply@5.5.0: {}
     
    -  /just-diff@5.2.0:
    -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
    +  just-diff@5.2.0: {}
     
    -  /just-extend@6.2.0:
    -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
    -    dev: true
    +  just-extend@6.2.0: {}
     
    -  /keyv@4.5.4:
    -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    +  keyv@4.5.4:
         dependencies:
           json-buffer: 3.0.1
     
    -  /kind-of@6.0.3:
    -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
    -    engines: {node: '>=0.10.0'}
    +  kind-of@6.0.3: {}
     
    -  /kleur@3.0.3:
    -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
    -    engines: {node: '>=6'}
    +  kleur@3.0.3: {}
     
    -  /kuler@2.0.0:
    -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
    +  kuler@2.0.0: {}
     
    -  /language-subtag-registry@0.3.22:
    -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
    -    dev: true
    +  language-subtag-registry@0.3.22: {}
     
    -  /language-tags@1.0.9:
    -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
    -    engines: {node: '>=0.10'}
    +  language-tags@1.0.9:
         dependencies:
           language-subtag-registry: 0.3.22
    -    dev: true
     
    -  /latest-version@7.0.0:
    -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
    -    engines: {node: '>=14.16'}
    +  latest-version@7.0.0:
         dependencies:
           package-json: 8.1.1
    -    dev: false
     
    -  /launch-editor@2.6.1:
    -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
    +  launch-editor@2.6.1:
         dependencies:
           picocolors: 1.0.0
           shell-quote: 1.8.1
     
    -  /leven@3.1.0:
    -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
    -    engines: {node: '>=6'}
    +  leven@3.1.0: {}
     
    -  /levn@0.4.1:
    -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    -    engines: {node: '>= 0.8.0'}
    +  levn@0.4.1:
         dependencies:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  /lie@3.3.0:
    -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
    +  lie@3.3.0:
         dependencies:
           immediate: 3.0.6
    -    dev: true
     
    -  /lilconfig@2.1.0:
    -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
    -    engines: {node: '>=10'}
    +  lilconfig@2.1.0: {}
     
    -  /lilconfig@3.1.1:
    -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
    -    engines: {node: '>=14'}
    -    dev: true
    +  lilconfig@3.1.1: {}
     
    -  /lines-and-columns@1.2.4:
    -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +  lines-and-columns@1.2.4: {}
     
    -  /load-json-file@6.2.0:
    -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
    -    engines: {node: '>=8'}
    +  load-json-file@6.2.0:
         dependencies:
           graceful-fs: 4.2.11
           parse-json: 5.2.0
           strip-bom: 4.0.0
           type-fest: 0.6.0
    -    dev: true
     
    -  /load-json-file@7.0.1:
    -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: true
    +  load-json-file@7.0.1: {}
     
    -  /load-script@1.0.0:
    -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
    -    dev: false
    +  load-script@1.0.0: {}
     
    -  /load-yaml-file@0.2.0:
    -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
    -    engines: {node: '>=6'}
    +  load-yaml-file@0.2.0:
         dependencies:
           graceful-fs: 4.2.11
           js-yaml: 3.14.1
           pify: 4.0.1
           strip-bom: 3.0.0
     
    -  /loader-runner@4.3.0:
    -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
    -    engines: {node: '>=6.11.5'}
    +  loader-runner@4.3.0: {}
     
    -  /loader-utils@2.0.4:
    -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
    -    engines: {node: '>=8.9.0'}
    +  loader-utils@2.0.4:
         dependencies:
           big.js: 5.2.2
           emojis-list: 3.0.0
           json5: 2.2.3
    -    dev: false
     
    -  /loader-utils@3.2.1:
    -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
    -    engines: {node: '>= 12.13.0'}
    -    dev: false
    +  loader-utils@3.2.1: {}
     
    -  /locate-path@3.0.0:
    -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
    -    engines: {node: '>=6'}
    +  locate-path@3.0.0:
         dependencies:
           p-locate: 3.0.0
           path-exists: 3.0.0
    -    dev: false
     
    -  /locate-path@5.0.0:
    -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
    -    engines: {node: '>=8'}
    +  locate-path@5.0.0:
         dependencies:
           p-locate: 4.1.0
     
    -  /locate-path@6.0.0:
    -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    -    engines: {node: '>=10'}
    +  locate-path@6.0.0:
         dependencies:
           p-locate: 5.0.0
     
    -  /locate-path@7.2.0:
    -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  locate-path@7.2.0:
         dependencies:
           p-locate: 6.0.0
    -    dev: false
     
    -  /lodash.debounce@4.0.8:
    -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
    +  lodash.debounce@4.0.8: {}
     
    -  /lodash.get@4.4.2:
    -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
    -    dev: true
    +  lodash.get@4.4.2: {}
     
    -  /lodash.memoize@4.1.2:
    -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
    +  lodash.memoize@4.1.2: {}
     
    -  /lodash.merge@4.6.2:
    -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    +  lodash.merge@4.6.2: {}
     
    -  /lodash.uniq@4.5.0:
    -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
    -    dev: false
    +  lodash.uniq@4.5.0: {}
     
    -  /lodash@4.17.21:
    -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
    +  lodash@4.17.21: {}
     
    -  /log-symbols@4.1.0:
    -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
    -    engines: {node: '>=10'}
    +  log-symbols@4.1.0:
         dependencies:
           chalk: 4.1.2
           is-unicode-supported: 0.1.0
     
    -  /logform@2.6.0:
    -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
    -    engines: {node: '>= 12.0.0'}
    +  logform@2.6.0:
         dependencies:
           '@colors/colors': 1.6.0
           '@types/triple-beam': 1.3.5
    @@ -11730,74 +17024,45 @@ packages:
           safe-stable-stringify: 2.4.3
           triple-beam: 1.4.1
     
    -  /longest-streak@3.1.0:
    -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
    +  longest-streak@3.1.0: {}
     
    -  /loose-envify@1.4.0:
    -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
    -    hasBin: true
    +  loose-envify@1.4.0:
         dependencies:
           js-tokens: 4.0.0
     
    -  /loupe@3.1.0:
    -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
    +  loupe@3.1.0:
         dependencies:
           get-func-name: 2.0.2
    -    dev: true
     
    -  /lower-case@2.0.2:
    -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
    +  lower-case@2.0.2:
         dependencies:
           tslib: 2.6.2
     
    -  /lowercase-keys@3.0.0:
    -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  lowercase-keys@3.0.0: {}
     
    -  /lru-cache@10.2.0:
    -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
    -    engines: {node: 14 || >=16.14}
    +  lru-cache@10.2.0: {}
     
    -  /lru-cache@5.1.1:
    -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    +  lru-cache@5.1.1:
         dependencies:
           yallist: 3.1.1
     
    -  /lru-cache@6.0.0:
    -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    -    engines: {node: '>=10'}
    +  lru-cache@6.0.0:
         dependencies:
           yallist: 4.0.0
     
    -  /lru-cache@7.10.1:
    -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  lru-cache@7.10.1: {}
     
    -  /lru-cache@7.18.3:
    -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
    -    engines: {node: '>=12'}
    +  lru-cache@7.18.3: {}
     
    -  /lz-string@1.5.0:
    -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
    -    hasBin: true
    -    dev: true
    +  lz-string@1.5.0: {}
     
    -  /make-dir@4.0.0:
    -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    -    engines: {node: '>=10'}
    +  make-dir@4.0.0:
         dependencies:
           semver: 7.6.0
    -    dev: true
     
    -  /make-error@1.3.6:
    -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    -    dev: true
    +  make-error@1.3.6: {}
     
    -  /make-fetch-happen@10.2.1:
    -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  make-fetch-happen@10.2.1:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 16.1.3
    @@ -11819,9 +17084,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /make-fetch-happen@11.1.1:
    -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  make-fetch-happen@11.1.1:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 17.1.4
    @@ -11841,9 +17104,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /make-fetch-happen@9.1.0:
    -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
    -    engines: {node: '>= 10'}
    +  make-fetch-happen@9.1.0:
         dependencies:
           agentkeepalive: 4.5.0
           cacache: 15.3.0
    @@ -11865,39 +17126,23 @@ packages:
           - bluebird
           - supports-color
     
    -  /makeerror@1.0.12:
    -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
    +  makeerror@1.0.12:
         dependencies:
           tmpl: 1.0.5
    -    dev: true
     
    -  /map-age-cleaner@0.1.3:
    -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
    -    engines: {node: '>=6'}
    +  map-age-cleaner@0.1.3:
         dependencies:
           p-defer: 1.0.0
    -    dev: true
     
    -  /map-obj@1.0.1:
    -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  map-obj@1.0.1: {}
     
    -  /map-obj@4.3.0:
    -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  map-obj@4.3.0: {}
     
    -  /markdown-extensions@2.0.0:
    -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
    -    engines: {node: '>=16'}
    +  markdown-extensions@2.0.0: {}
     
    -  /markdown-table@3.0.3:
    -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
    -    dev: false
    +  markdown-table@3.0.3: {}
     
    -  /mdast-util-directive@3.0.0:
    -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
    +  mdast-util-directive@3.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -11909,19 +17154,15 @@ packages:
           unist-util-visit-parents: 6.0.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-find-and-replace@3.0.1:
    -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
    +  mdast-util-find-and-replace@3.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           escape-string-regexp: 5.0.0
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
    -    dev: false
     
    -  /mdast-util-from-markdown@2.0.0:
    -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
    +  mdast-util-from-markdown@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -11938,8 +17179,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-frontmatter@2.0.1:
    -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
    +  mdast-util-frontmatter@2.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11949,20 +17189,16 @@ packages:
           micromark-extension-frontmatter: 2.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
    +  mdast-util-gfm-autolink-literal@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           ccount: 2.0.1
           devlop: 1.1.0
           mdast-util-find-and-replace: 3.0.1
           micromark-util-character: 2.1.0
    -    dev: false
     
    -  /mdast-util-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
    +  mdast-util-gfm-footnote@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11971,20 +17207,16 @@ packages:
           micromark-util-normalize-identifier: 2.0.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
    +  mdast-util-gfm-strikethrough@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
    +  mdast-util-gfm-table@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -11993,10 +17225,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm-task-list-item@2.0.0:
    -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
    +  mdast-util-gfm-task-list-item@2.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           devlop: 1.1.0
    @@ -12004,10 +17234,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-gfm@3.0.0:
    -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
    +  mdast-util-gfm@3.0.0:
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-gfm-autolink-literal: 2.0.0
    @@ -12018,10 +17246,8 @@ packages:
           mdast-util-to-markdown: 2.1.0
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /mdast-util-mdx-expression@2.0.0:
    -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
    +  mdast-util-mdx-expression@2.0.0:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12032,8 +17258,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdx-jsx@3.1.2:
    -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
    +  mdast-util-mdx-jsx@3.1.2:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12051,8 +17276,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdx@3.0.0:
    -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
    +  mdast-util-mdx@3.0.0:
         dependencies:
           mdast-util-from-markdown: 2.0.0
           mdast-util-mdx-expression: 2.0.0
    @@ -12062,8 +17286,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-mdxjs-esm@2.0.1:
    -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
    +  mdast-util-mdxjs-esm@2.0.1:
         dependencies:
           '@types/estree-jsx': 1.0.5
           '@types/hast': 3.0.4
    @@ -12074,14 +17297,12 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /mdast-util-phrasing@4.1.0:
    -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
    +  mdast-util-phrasing@4.1.0:
         dependencies:
           '@types/mdast': 4.0.3
           unist-util-is: 6.0.0
     
    -  /mdast-util-to-hast@13.1.0:
    -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
    +  mdast-util-to-hast@13.1.0:
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -12093,8 +17314,7 @@ packages:
           unist-util-visit: 5.0.0
           vfile: 6.0.1
     
    -  /mdast-util-to-markdown@2.1.0:
    -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
    +  mdast-util-to-markdown@2.1.0:
         dependencies:
           '@types/mdast': 4.0.3
           '@types/unist': 3.0.2
    @@ -12105,35 +17325,19 @@ packages:
           unist-util-visit: 5.0.0
           zwitch: 2.0.4
     
    -  /mdast-util-to-string@4.0.0:
    -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
    +  mdast-util-to-string@4.0.0:
         dependencies:
           '@types/mdast': 4.0.3
     
    -  /mdn-data@2.0.14:
    -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
    -    dev: false
    +  mdn-data@2.0.14: {}
     
    -  /mdn-data@2.0.28:
    -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
    -    dev: true
    +  mdn-data@2.0.28: {}
     
    -  /mdn-data@2.0.30:
    -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
    -    dev: true
    +  mdn-data@2.0.30: {}
     
    -  /media-typer@0.3.0:
    -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
    -    engines: {node: '>= 0.6'}
    +  media-typer@0.3.0: {}
     
    -  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
    -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      mem-fs: ^2.1.0
    -    peerDependenciesMeta:
    -      mem-fs:
    -        optional: true
    +  mem-fs-editor@9.7.0(mem-fs@2.3.0):
         dependencies:
           binaryextensions: 4.19.0
           commondir: 1.0.1
    @@ -12147,43 +17351,29 @@ packages:
           normalize-path: 3.0.0
           textextensions: 5.16.0
     
    -  /mem-fs@2.3.0:
    -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
    -    engines: {node: '>=12'}
    +  mem-fs@2.3.0:
         dependencies:
           '@types/node': 15.14.9
           '@types/vinyl': 2.0.11
           vinyl: 2.2.1
           vinyl-file: 3.0.0
     
    -  /mem@8.1.1:
    -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
    -    engines: {node: '>=10'}
    +  mem@8.1.1:
         dependencies:
           map-age-cleaner: 0.1.3
           mimic-fn: 3.1.0
    -    dev: true
     
    -  /memfs@3.5.3:
    -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
    -    engines: {node: '>= 4.0.0'}
    +  memfs@3.5.3:
         dependencies:
           fs-monkey: 1.0.5
    -    dev: false
     
    -  /memfs@4.8.0:
    -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
    -    engines: {node: '>= 4.0.0'}
    +  memfs@4.8.0:
         dependencies:
           tslib: 2.6.2
     
    -  /memoize-one@5.2.1:
    -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
    -    dev: false
    +  memoize-one@5.2.1: {}
     
    -  /meow@10.1.5:
    -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  meow@10.1.5:
         dependencies:
           '@types/minimist': 1.2.5
           camelcase-keys: 7.0.2
    @@ -12197,24 +17387,16 @@ packages:
           trim-newlines: 4.1.1
           type-fest: 1.4.0
           yargs-parser: 20.2.9
    -    dev: true
     
    -  /merge-descriptors@1.0.1:
    -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
    +  merge-descriptors@1.0.1: {}
     
    -  /merge-stream@2.0.0:
    -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    +  merge-stream@2.0.0: {}
     
    -  /merge2@1.4.1:
    -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    -    engines: {node: '>= 8'}
    +  merge2@1.4.1: {}
     
    -  /methods@1.1.2:
    -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
    -    engines: {node: '>= 0.6'}
    +  methods@1.1.2: {}
     
    -  /micromark-core-commonmark@2.0.0:
    -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
    +  micromark-core-commonmark@2.0.0:
         dependencies:
           decode-named-character-reference: 1.0.2
           devlop: 1.1.0
    @@ -12233,8 +17415,7 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-directive@3.0.0:
    -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
    +  micromark-extension-directive@3.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
    @@ -12243,28 +17424,22 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
           parse-entities: 4.0.1
    -    dev: false
     
    -  /micromark-extension-frontmatter@2.0.0:
    -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
    +  micromark-extension-frontmatter@2.0.0:
         dependencies:
           fault: 2.0.1
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-autolink-literal@2.0.0:
    -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
    +  micromark-extension-gfm-autolink-literal@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-footnote@2.0.0:
    -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
    +  micromark-extension-gfm-footnote@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-core-commonmark: 2.0.0
    @@ -12274,10 +17449,8 @@ packages:
           micromark-util-sanitize-uri: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-strikethrough@2.0.0:
    -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
    +  micromark-extension-gfm-strikethrough@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
    @@ -12285,36 +17458,28 @@ packages:
           micromark-util-resolve-all: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-table@2.0.0:
    -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
    +  micromark-extension-gfm-table@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-tagfilter@2.0.0:
    -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
    +  micromark-extension-gfm-tagfilter@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm-task-list-item@2.0.1:
    -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
    +  micromark-extension-gfm-task-list-item@2.0.1:
         dependencies:
           devlop: 1.1.0
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-gfm@3.0.0:
    -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
    +  micromark-extension-gfm@3.0.0:
         dependencies:
           micromark-extension-gfm-autolink-literal: 2.0.0
           micromark-extension-gfm-footnote: 2.0.0
    @@ -12324,10 +17489,8 @@ packages:
           micromark-extension-gfm-task-list-item: 2.0.1
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
    -    dev: false
     
    -  /micromark-extension-mdx-expression@3.0.0:
    -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
    +  micromark-extension-mdx-expression@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12338,8 +17501,7 @@ packages:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-mdx-jsx@3.0.0:
    -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
    +  micromark-extension-mdx-jsx@3.0.0:
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -12352,13 +17514,11 @@ packages:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-extension-mdx-md@2.0.0:
    -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
    +  micromark-extension-mdx-md@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
     
    -  /micromark-extension-mdxjs-esm@3.0.0:
    -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
    +  micromark-extension-mdxjs-esm@3.0.0:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12370,8 +17530,7 @@ packages:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-extension-mdxjs@3.0.0:
    -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
    +  micromark-extension-mdxjs@3.0.0:
         dependencies:
           acorn: 8.11.3
           acorn-jsx: 5.3.2(acorn@8.11.3)
    @@ -12382,23 +17541,20 @@ packages:
           micromark-util-combine-extensions: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-destination@2.0.0:
    -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
    +  micromark-factory-destination@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-label@2.0.0:
    -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
    +  micromark-factory-label@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-mdx-expression@2.0.1:
    -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
    +  micromark-factory-mdx-expression@2.0.1:
         dependencies:
           '@types/estree': 1.0.5
           devlop: 1.1.0
    @@ -12409,84 +17565,69 @@ packages:
           unist-util-position-from-estree: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-factory-space@1.1.0:
    -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
    +  micromark-factory-space@1.1.0:
         dependencies:
           micromark-util-character: 1.2.0
           micromark-util-types: 1.1.0
    -    dev: false
     
    -  /micromark-factory-space@2.0.0:
    -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
    +  micromark-factory-space@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-title@2.0.0:
    -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
    +  micromark-factory-title@2.0.0:
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-factory-whitespace@2.0.0:
    -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
    +  micromark-factory-whitespace@2.0.0:
         dependencies:
           micromark-factory-space: 2.0.0
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-character@1.2.0:
    -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
    +  micromark-util-character@1.2.0:
         dependencies:
           micromark-util-symbol: 1.1.0
           micromark-util-types: 1.1.0
    -    dev: false
     
    -  /micromark-util-character@2.1.0:
    -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
    +  micromark-util-character@2.1.0:
         dependencies:
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-chunked@2.0.0:
    -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
    +  micromark-util-chunked@2.0.0:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-classify-character@2.0.0:
    -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
    +  micromark-util-classify-character@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-combine-extensions@2.0.0:
    -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
    +  micromark-util-combine-extensions@2.0.0:
         dependencies:
           micromark-util-chunked: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-decode-numeric-character-reference@2.0.1:
    -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
    +  micromark-util-decode-numeric-character-reference@2.0.1:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-decode-string@2.0.0:
    -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
    +  micromark-util-decode-string@2.0.0:
         dependencies:
           decode-named-character-reference: 1.0.2
           micromark-util-character: 2.1.0
           micromark-util-decode-numeric-character-reference: 2.0.1
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-encode@2.0.0:
    -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
    +  micromark-util-encode@2.0.0: {}
     
    -  /micromark-util-events-to-acorn@2.0.2:
    -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
    +  micromark-util-events-to-acorn@2.0.2:
         dependencies:
           '@types/acorn': 4.0.6
           '@types/estree': 1.0.5
    @@ -12497,50 +17638,38 @@ packages:
           micromark-util-types: 2.0.0
           vfile-message: 4.0.2
     
    -  /micromark-util-html-tag-name@2.0.0:
    -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
    +  micromark-util-html-tag-name@2.0.0: {}
     
    -  /micromark-util-normalize-identifier@2.0.0:
    -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
    +  micromark-util-normalize-identifier@2.0.0:
         dependencies:
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-resolve-all@2.0.0:
    -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
    +  micromark-util-resolve-all@2.0.0:
         dependencies:
           micromark-util-types: 2.0.0
     
    -  /micromark-util-sanitize-uri@2.0.0:
    -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
    +  micromark-util-sanitize-uri@2.0.0:
         dependencies:
           micromark-util-character: 2.1.0
           micromark-util-encode: 2.0.0
           micromark-util-symbol: 2.0.0
     
    -  /micromark-util-subtokenize@2.0.0:
    -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
    +  micromark-util-subtokenize@2.0.0:
         dependencies:
           devlop: 1.1.0
           micromark-util-chunked: 2.0.0
           micromark-util-symbol: 2.0.0
           micromark-util-types: 2.0.0
     
    -  /micromark-util-symbol@1.1.0:
    -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
    -    dev: false
    +  micromark-util-symbol@1.1.0: {}
     
    -  /micromark-util-symbol@2.0.0:
    -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
    +  micromark-util-symbol@2.0.0: {}
     
    -  /micromark-util-types@1.1.0:
    -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
    -    dev: false
    +  micromark-util-types@1.1.0: {}
     
    -  /micromark-util-types@2.0.0:
    -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
    +  micromark-util-types@2.0.0: {}
     
    -  /micromark@4.0.0:
    -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
    +  micromark@4.0.0:
         dependencies:
           '@types/debug': 4.1.12
           debug: 4.3.4(supports-color@8.1.1)
    @@ -12562,129 +17691,76 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /micromatch@4.0.5:
    -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    -    engines: {node: '>=8.6'}
    +  micromatch@4.0.5:
         dependencies:
           braces: 3.0.2
           picomatch: 2.3.1
     
    -  /mime-db@1.33.0:
    -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  mime-db@1.33.0: {}
     
    -  /mime-db@1.52.0:
    -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    -    engines: {node: '>= 0.6'}
    +  mime-db@1.52.0: {}
     
    -  /mime-types@2.1.18:
    -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
    -    engines: {node: '>= 0.6'}
    +  mime-types@2.1.18:
         dependencies:
           mime-db: 1.33.0
    -    dev: false
     
    -  /mime-types@2.1.35:
    -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
    -    engines: {node: '>= 0.6'}
    +  mime-types@2.1.35:
         dependencies:
           mime-db: 1.52.0
     
    -  /mime@1.6.0:
    -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  mime@1.6.0: {}
     
    -  /mimic-fn@2.1.0:
    -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
    -    engines: {node: '>=6'}
    +  mimic-fn@2.1.0: {}
     
    -  /mimic-fn@3.1.0:
    -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  mimic-fn@3.1.0: {}
     
    -  /mimic-response@3.1.0:
    -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  mimic-response@3.1.0: {}
     
    -  /mimic-response@4.0.0:
    -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  mimic-response@4.0.0: {}
     
    -  /min-indent@1.0.1:
    -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  min-indent@1.0.1: {}
     
    -  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    +  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
         dependencies:
           schema-utils: 4.2.0
           tapable: 2.2.1
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /minimalistic-assert@1.0.1:
    -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
    +  minimalistic-assert@1.0.1: {}
     
    -  /minimatch@3.1.2:
    -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    +  minimatch@3.1.2:
         dependencies:
           brace-expansion: 1.1.11
     
    -  /minimatch@5.0.1:
    -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
    -    engines: {node: '>=10'}
    +  minimatch@5.0.1:
         dependencies:
           brace-expansion: 2.0.1
    -    dev: true
     
    -  /minimatch@5.1.6:
    -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
    -    engines: {node: '>=10'}
    +  minimatch@5.1.6:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimatch@7.4.6:
    -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
    -    engines: {node: '>=10'}
    +  minimatch@7.4.6:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimatch@9.0.3:
    -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  minimatch@9.0.3:
         dependencies:
           brace-expansion: 2.0.1
     
    -  /minimist-options@4.1.0:
    -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    -    engines: {node: '>= 6'}
    +  minimist-options@4.1.0:
         dependencies:
           arrify: 1.0.1
           is-plain-obj: 1.1.0
           kind-of: 6.0.3
    -    dev: true
     
    -  /minimist@1.2.8:
    -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    +  minimist@1.2.8: {}
     
    -  /minipass-collect@1.0.2:
    -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
    -    engines: {node: '>= 8'}
    +  minipass-collect@1.0.2:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-fetch@1.4.1:
    -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
    -    engines: {node: '>=8'}
    +  minipass-fetch@1.4.1:
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -12692,9 +17768,7 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-fetch@2.1.2:
    -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  minipass-fetch@2.1.2:
         dependencies:
           minipass: 3.3.6
           minipass-sized: 1.0.3
    @@ -12702,9 +17776,7 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-fetch@3.0.4:
    -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  minipass-fetch@3.0.4:
         dependencies:
           minipass: 7.0.4
           minipass-sized: 1.0.3
    @@ -12712,75 +17784,49 @@ packages:
         optionalDependencies:
           encoding: 0.1.13
     
    -  /minipass-flush@1.0.5:
    -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
    -    engines: {node: '>= 8'}
    +  minipass-flush@1.0.5:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-json-stream@1.0.1:
    -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
    +  minipass-json-stream@1.0.1:
         dependencies:
           jsonparse: 1.3.1
           minipass: 3.3.6
     
    -  /minipass-pipeline@1.2.4:
    -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
    -    engines: {node: '>=8'}
    +  minipass-pipeline@1.2.4:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass-sized@1.0.3:
    -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
    -    engines: {node: '>=8'}
    +  minipass-sized@1.0.3:
         dependencies:
           minipass: 3.3.6
     
    -  /minipass@3.3.6:
    -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
    -    engines: {node: '>=8'}
    +  minipass@3.3.6:
         dependencies:
           yallist: 4.0.0
     
    -  /minipass@5.0.0:
    -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
    -    engines: {node: '>=8'}
    +  minipass@5.0.0: {}
     
    -  /minipass@7.0.4:
    -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  minipass@7.0.4: {}
     
    -  /minizlib@2.1.2:
    -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
    -    engines: {node: '>= 8'}
    +  minizlib@2.1.2:
         dependencies:
           minipass: 3.3.6
           yallist: 4.0.0
     
    -  /mkdirp-infer-owner@2.0.0:
    -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
    -    engines: {node: '>=10'}
    +  mkdirp-infer-owner@2.0.0:
         dependencies:
           chownr: 2.0.0
           infer-owner: 1.0.4
           mkdirp: 1.0.4
     
    -  /mkdirp@0.5.6:
    -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
    -    hasBin: true
    +  mkdirp@0.5.6:
         dependencies:
           minimist: 1.2.8
    -    dev: true
     
    -  /mkdirp@1.0.4:
    -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  mkdirp@1.0.4: {}
     
    -  /mocha@10.3.0:
    -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
    -    engines: {node: '>= 14.0.0'}
    -    hasBin: true
    +  mocha@10.3.0:
         dependencies:
           ansi-colors: 4.1.1
           browser-stdout: 1.3.1
    @@ -12802,36 +17848,23 @@ packages:
           yargs: 16.2.0
           yargs-parser: 20.2.4
           yargs-unparser: 2.0.0
    -    dev: true
     
    -  /moo@0.5.2:
    -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
    -    dev: false
    +  moo@0.5.2: {}
     
    -  /mrmime@2.0.0:
    -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  mrmime@2.0.0: {}
     
    -  /ms@2.0.0:
    -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
    +  ms@2.0.0: {}
     
    -  /ms@2.1.2:
    -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +  ms@2.1.2: {}
     
    -  /ms@2.1.3:
    -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    +  ms@2.1.3: {}
     
    -  /multicast-dns@7.2.5:
    -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
    -    hasBin: true
    +  multicast-dns@7.2.5:
         dependencies:
           dns-packet: 5.6.1
           thunky: 1.1.0
     
    -  /multimatch@5.0.0:
    -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
    -    engines: {node: '>=10'}
    +  multimatch@5.0.0:
         dependencies:
           '@types/minimatch': 3.0.5
           array-differ: 3.0.0
    @@ -12839,22 +17872,15 @@ packages:
           arrify: 2.0.1
           minimatch: 3.1.2
     
    -  /mute-stream@0.0.8:
    -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
    +  mute-stream@0.0.8: {}
     
    -  /mz@2.7.0:
    -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    +  mz@2.7.0:
         dependencies:
           any-promise: 1.3.0
           object-assign: 4.1.1
           thenify-all: 1.6.0
    -    dev: true
     
    -  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@jridgewell/sourcemap-codec': 1.4.15
           css-tree: 1.1.3
    @@ -12866,20 +17892,12 @@ packages:
           rtl-css-js: 1.16.1
           stacktrace-js: 2.0.2
           stylis: 4.3.1
    -    dev: false
     
    -  /nanoid@3.3.7:
    -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
    -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    -    hasBin: true
    +  nanoid@3.3.7: {}
     
    -  /natural-compare@1.4.0:
    -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +  natural-compare@1.4.0: {}
     
    -  /ndjson@2.0.0:
    -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  ndjson@2.0.0:
         dependencies:
           json-stringify-safe: 5.0.1
           minimist: 1.2.8
    @@ -12887,50 +17905,25 @@ packages:
           split2: 3.2.2
           through2: 4.0.2
     
    -  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
    -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
    -    hasBin: true
    +  nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
         dependencies:
           commander: 2.20.3
           moo: 0.5.2
           railroad-diagrams: 1.0.0
           randexp: 0.4.6
    -    dev: false
    -    patched: true
     
    -  /negotiator@0.6.3:
    -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    -    engines: {node: '>= 0.6'}
    +  negotiator@0.6.3: {}
     
    -  /neo-async@2.6.2:
    -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
    +  neo-async@2.6.2: {}
     
    -  /neovim@5.1.0:
    -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  neovim@5.1.0:
         dependencies:
           '@msgpack/msgpack': 2.8.0
           winston: 3.11.0
     
    -  /nerf-dart@1.0.0:
    -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
    -    dev: false
    +  nerf-dart@1.0.0: {}
     
    -  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
    -    engines: {node: '>=18.17.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@opentelemetry/api': ^1.1.0
    -      react: ^18.2.0 || 18
    -      react-dom: ^18.2.0 || 18
    -      sass: ^1.3.0
    -    peerDependenciesMeta:
    -      '@opentelemetry/api':
    -        optional: true
    -      sass:
    -        optional: true
    +  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@next/env': 14.1.4
           '@swc/helpers': 0.5.2
    @@ -12954,53 +17947,34 @@ packages:
         transitivePeerDependencies:
           - '@babel/core'
           - babel-plugin-macros
    -    dev: false
     
    -  /nise@5.1.9:
    -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
    +  nise@5.1.9:
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
           '@sinonjs/text-encoding': 0.7.2
           just-extend: 6.2.0
           path-to-regexp: 6.2.1
    -    dev: true
     
    -  /no-case@3.0.4:
    -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
    +  no-case@3.0.4:
         dependencies:
           lower-case: 2.0.2
           tslib: 2.6.2
     
    -  /node-emoji@2.1.3:
    -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
    -    engines: {node: '>=18'}
    +  node-emoji@2.1.3:
         dependencies:
           '@sindresorhus/is': 4.6.0
           char-regex: 1.0.2
           emojilib: 2.4.0
           skin-tone: 2.0.0
    -    dev: false
     
    -  /node-fetch@2.7.0:
    -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
    -    engines: {node: 4.x || >=6.0.0}
    -    peerDependencies:
    -      encoding: ^0.1.0
    -    peerDependenciesMeta:
    -      encoding:
    -        optional: true
    +  node-fetch@2.7.0:
         dependencies:
           whatwg-url: 5.0.0
     
    -  /node-forge@1.3.1:
    -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
    -    engines: {node: '>= 6.13.0'}
    +  node-forge@1.3.1: {}
     
    -  /node-gyp@8.4.1:
    -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
    -    engines: {node: '>= 10.12.0'}
    -    hasBin: true
    +  node-gyp@8.4.1:
         dependencies:
           env-paths: 2.2.1
           glob: 7.2.3
    @@ -13016,10 +17990,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /node-gyp@9.4.1:
    -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
    -    engines: {node: ^12.13 || ^14.13 || >=16}
    -    hasBin: true
    +  node-gyp@9.4.1:
         dependencies:
           env-paths: 2.2.1
           exponential-backoff: 3.1.1
    @@ -13036,180 +18007,122 @@ packages:
           - bluebird
           - supports-color
     
    -  /node-html-parser@6.1.12:
    -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
    +  node-html-parser@6.1.12:
         dependencies:
           css-select: 5.1.0
           he: 1.2.0
    -    dev: false
     
    -  /node-int64@0.4.0:
    -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    -    dev: true
    +  node-int64@0.4.0: {}
     
    -  /node-releases@2.0.14:
    -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
    +  node-releases@2.0.14: {}
     
    -  /nopt@5.0.0:
    -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
    -    engines: {node: '>=6'}
    -    hasBin: true
    +  nopt@5.0.0:
         dependencies:
           abbrev: 1.1.1
     
    -  /nopt@6.0.0:
    -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    -    hasBin: true
    +  nopt@6.0.0:
         dependencies:
           abbrev: 1.1.1
     
    -  /normalize-package-data@2.5.0:
    -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
    +  normalize-package-data@2.5.0:
         dependencies:
           hosted-git-info: 2.8.9
           resolve: 1.22.8
           semver: 5.7.2
           validate-npm-package-license: 3.0.4
     
    -  /normalize-package-data@3.0.3:
    -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
    -    engines: {node: '>=10'}
    +  normalize-package-data@3.0.3:
         dependencies:
           hosted-git-info: 4.1.0
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
    -    dev: true
     
    -  /normalize-package-data@5.0.0:
    -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  normalize-package-data@5.0.0:
         dependencies:
           hosted-git-info: 6.1.1
           is-core-module: 2.13.1
           semver: 7.6.0
           validate-npm-package-license: 3.0.4
     
    -  /normalize-path@3.0.0:
    -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    -    engines: {node: '>=0.10.0'}
    +  normalize-path@3.0.0: {}
     
    -  /normalize-range@0.1.2:
    -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
    -    engines: {node: '>=0.10.0'}
    +  normalize-range@0.1.2: {}
     
    -  /normalize-registry-url@2.0.0:
    -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
    -    dev: true
    +  normalize-registry-url@2.0.0: {}
     
    -  /normalize-url@6.1.0:
    -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  normalize-url@6.1.0: {}
     
    -  /normalize-url@8.0.1:
    -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
    -    engines: {node: '>=14.16'}
    -    dev: false
    +  normalize-url@8.0.1: {}
     
    -  /npm-bundled@1.1.2:
    -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
    +  npm-bundled@1.1.2:
         dependencies:
           npm-normalize-package-bin: 1.0.1
     
    -  /npm-bundled@3.0.0:
    -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-bundled@3.0.0:
         dependencies:
           npm-normalize-package-bin: 3.0.1
     
    -  /npm-install-checks@4.0.0:
    -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
    -    engines: {node: '>=10'}
    +  npm-install-checks@4.0.0:
         dependencies:
           semver: 7.6.0
     
    -  /npm-install-checks@6.3.0:
    -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-install-checks@6.3.0:
         dependencies:
           semver: 7.6.0
     
    -  /npm-normalize-package-bin@1.0.1:
    -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
    +  npm-normalize-package-bin@1.0.1: {}
     
    -  /npm-normalize-package-bin@2.0.0:
    -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  npm-normalize-package-bin@2.0.0: {}
     
    -  /npm-normalize-package-bin@3.0.1:
    -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-normalize-package-bin@3.0.1: {}
     
    -  /npm-package-arg@10.1.0:
    -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-package-arg@10.1.0:
         dependencies:
           hosted-git-info: 6.1.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
     
    -  /npm-package-arg@11.0.1:
    -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
    -    engines: {node: ^16.14.0 || >=18.0.0}
    +  npm-package-arg@11.0.1:
         dependencies:
           hosted-git-info: 7.0.1
           proc-log: 3.0.0
           semver: 7.6.0
           validate-npm-package-name: 5.0.0
    -    dev: true
     
    -  /npm-package-arg@8.1.5:
    -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
    -    engines: {node: '>=10'}
    +  npm-package-arg@8.1.5:
         dependencies:
           hosted-git-info: 4.1.0
           semver: 7.6.0
           validate-npm-package-name: 3.0.0
     
    -  /npm-packlist@3.0.0:
    -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  npm-packlist@3.0.0:
         dependencies:
           glob: 7.2.3
           ignore-walk: 4.0.1
           npm-bundled: 1.1.2
           npm-normalize-package-bin: 1.0.1
     
    -  /npm-packlist@7.0.4:
    -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-packlist@7.0.4:
         dependencies:
           ignore-walk: 6.0.4
     
    -  /npm-pick-manifest@6.1.1:
    -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
    +  npm-pick-manifest@6.1.1:
         dependencies:
           npm-install-checks: 4.0.0
           npm-normalize-package-bin: 1.0.1
           npm-package-arg: 8.1.5
           semver: 7.6.0
     
    -  /npm-pick-manifest@8.0.2:
    -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-pick-manifest@8.0.2:
         dependencies:
           npm-install-checks: 6.3.0
           npm-normalize-package-bin: 3.0.1
           npm-package-arg: 10.1.0
           semver: 7.6.0
     
    -  /npm-registry-fetch@12.0.2:
    -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    +  npm-registry-fetch@12.0.2:
         dependencies:
           make-fetch-happen: 10.2.1
           minipass: 3.3.6
    @@ -13221,9 +18134,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /npm-registry-fetch@14.0.5:
    -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  npm-registry-fetch@14.0.5:
         dependencies:
           make-fetch-happen: 11.1.1
           minipass: 5.0.0
    @@ -13235,175 +18146,119 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /npm-run-path@4.0.1:
    -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
    -    engines: {node: '>=8'}
    +  npm-run-path@4.0.1:
         dependencies:
           path-key: 3.1.1
     
    -  /npmlog@5.0.1:
    -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
    +  npmlog@5.0.1:
         dependencies:
           are-we-there-yet: 2.0.0
           console-control-strings: 1.1.0
           gauge: 3.0.2
           set-blocking: 2.0.0
     
    -  /npmlog@6.0.2:
    -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  npmlog@6.0.2:
         dependencies:
           are-we-there-yet: 3.0.1
           console-control-strings: 1.1.0
           gauge: 4.0.4
           set-blocking: 2.0.0
     
    -  /nprogress@0.2.0:
    -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
    -    dev: false
    +  nprogress@0.2.0: {}
     
    -  /nth-check@2.1.1:
    -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
    +  nth-check@2.1.1:
         dependencies:
           boolbase: 1.0.0
     
    -  /nwsapi@2.2.7:
    -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
    -    dev: true
    +  nwsapi@2.2.7: {}
     
    -  /object-assign@4.1.1:
    -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    -    engines: {node: '>=0.10.0'}
    +  object-assign@4.1.1: {}
     
    -  /object-hash@3.0.0:
    -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  object-hash@3.0.0: {}
     
    -  /object-inspect@1.13.1:
    -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
    +  object-inspect@1.13.1: {}
     
    -  /object-is@1.1.6:
    -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
    -    engines: {node: '>= 0.4'}
    +  object-is@1.1.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    -    dev: true
     
    -  /object-keys@1.1.1:
    -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
    -    engines: {node: '>= 0.4'}
    +  object-keys@1.1.1: {}
     
    -  /object.assign@4.1.5:
    -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
    -    engines: {node: '>= 0.4'}
    +  object.assign@4.1.5:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           has-symbols: 1.0.3
           object-keys: 1.1.1
     
    -  /object.entries@1.1.8:
    -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
    -    engines: {node: '>= 0.4'}
    +  object.entries@1.1.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.fromentries@2.0.8:
    -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
    -    engines: {node: '>= 0.4'}
    +  object.fromentries@2.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.groupby@1.0.3:
    -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
    -    engines: {node: '>= 0.4'}
    +  object.groupby@1.0.3:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
    -    dev: true
     
    -  /object.hasown@1.1.4:
    -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
    -    engines: {node: '>= 0.4'}
    +  object.hasown@1.1.4:
         dependencies:
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /object.values@1.2.0:
    -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
    -    engines: {node: '>= 0.4'}
    +  object.values@1.2.0:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /obuf@1.1.2:
    -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
    +  obuf@1.1.2: {}
     
    -  /on-finished@2.4.1:
    -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
    -    engines: {node: '>= 0.8'}
    +  on-finished@2.4.1:
         dependencies:
           ee-first: 1.1.1
     
    -  /on-headers@1.0.2:
    -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
    -    engines: {node: '>= 0.8'}
    +  on-headers@1.0.2: {}
     
    -  /once@1.4.0:
    -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
    +  once@1.4.0:
         dependencies:
           wrappy: 1.0.2
     
    -  /one-time@1.0.0:
    -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
    +  one-time@1.0.0:
         dependencies:
           fn.name: 1.1.0
     
    -  /onetime@5.1.2:
    -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
    -    engines: {node: '>=6'}
    +  onetime@5.1.2:
         dependencies:
           mimic-fn: 2.1.0
     
    -  /open@10.1.0:
    -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
    -    engines: {node: '>=18'}
    +  open@10.1.0:
         dependencies:
           default-browser: 5.2.1
           define-lazy-prop: 3.0.0
           is-inside-container: 1.0.0
           is-wsl: 3.1.0
     
    -  /open@8.4.2:
    -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
    -    engines: {node: '>=12'}
    +  open@8.4.2:
         dependencies:
           define-lazy-prop: 2.0.0
           is-docker: 2.2.1
           is-wsl: 2.2.0
    -    dev: false
     
    -  /opener@1.5.2:
    -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
    -    hasBin: true
    +  opener@1.5.2: {}
     
    -  /optionator@0.9.3:
    -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
    -    engines: {node: '>= 0.8.0'}
    +  optionator@0.9.3:
         dependencies:
           '@aashutoshrathi/word-wrap': 1.2.6
           deep-is: 0.1.4
    @@ -13412,9 +18267,7 @@ packages:
           prelude-ls: 1.2.1
           type-check: 0.4.0
     
    -  /ora@5.4.1:
    -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
    -    engines: {node: '>=10'}
    +  ora@5.4.1:
         dependencies:
           bl: 4.1.0
           chalk: 4.1.2
    @@ -13426,143 +18279,89 @@ packages:
           strip-ansi: 6.0.1
           wcwidth: 1.0.1
     
    -  /os-tmpdir@1.0.2:
    -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
    -    engines: {node: '>=0.10.0'}
    +  os-tmpdir@1.0.2: {}
     
    -  /p-cancelable@3.0.0:
    -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  p-cancelable@3.0.0: {}
     
    -  /p-defer@1.0.0:
    -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  p-defer@1.0.0: {}
     
    -  /p-filter@2.1.0:
    -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
    -    engines: {node: '>=8'}
    +  p-filter@2.1.0:
         dependencies:
           p-map: 2.1.0
    -    dev: true
     
    -  /p-finally@1.0.0:
    -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
    -    engines: {node: '>=4'}
    +  p-finally@1.0.0: {}
     
    -  /p-limit@2.3.0:
    -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
    -    engines: {node: '>=6'}
    +  p-limit@2.3.0:
         dependencies:
           p-try: 2.2.0
     
    -  /p-limit@3.1.0:
    -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
    -    engines: {node: '>=10'}
    +  p-limit@3.1.0:
         dependencies:
           yocto-queue: 0.1.0
     
    -  /p-limit@4.0.0:
    -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  p-limit@4.0.0:
         dependencies:
           yocto-queue: 1.0.0
    -    dev: false
     
    -  /p-locate@3.0.0:
    -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
    -    engines: {node: '>=6'}
    +  p-locate@3.0.0:
         dependencies:
           p-limit: 2.3.0
    -    dev: false
     
    -  /p-locate@4.1.0:
    -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
    -    engines: {node: '>=8'}
    +  p-locate@4.1.0:
         dependencies:
           p-limit: 2.3.0
     
    -  /p-locate@5.0.0:
    -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    -    engines: {node: '>=10'}
    +  p-locate@5.0.0:
         dependencies:
           p-limit: 3.1.0
     
    -  /p-locate@6.0.0:
    -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  p-locate@6.0.0:
         dependencies:
           p-limit: 4.0.0
    -    dev: false
     
    -  /p-map@2.1.0:
    -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  p-map@2.1.0: {}
     
    -  /p-map@4.0.0:
    -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
    -    engines: {node: '>=10'}
    +  p-map@4.0.0:
         dependencies:
           aggregate-error: 3.1.0
     
    -  /p-queue@6.6.2:
    -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
    -    engines: {node: '>=8'}
    +  p-queue@6.6.2:
         dependencies:
           eventemitter3: 4.0.7
           p-timeout: 3.2.0
     
    -  /p-retry@4.6.2:
    -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
    -    engines: {node: '>=8'}
    +  p-retry@4.6.2:
         dependencies:
           '@types/retry': 0.12.0
           retry: 0.13.1
    -    dev: false
     
    -  /p-retry@6.2.0:
    -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
    -    engines: {node: '>=16.17'}
    +  p-retry@6.2.0:
         dependencies:
           '@types/retry': 0.12.2
           is-network-error: 1.1.0
           retry: 0.13.1
     
    -  /p-timeout@3.2.0:
    -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
    -    engines: {node: '>=8'}
    +  p-timeout@3.2.0:
         dependencies:
           p-finally: 1.0.0
     
    -  /p-transform@1.3.0:
    -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
    -    engines: {node: '>=12.10.0'}
    +  p-transform@1.3.0:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           p-queue: 6.6.2
         transitivePeerDependencies:
           - supports-color
     
    -  /p-try@2.2.0:
    -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
    -    engines: {node: '>=6'}
    +  p-try@2.2.0: {}
     
    -  /package-json@8.1.1:
    -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
    -    engines: {node: '>=14.16'}
    +  package-json@8.1.1:
         dependencies:
           got: 12.6.1
           registry-auth-token: 5.0.2
           registry-url: 6.0.1
           semver: 7.6.0
    -    dev: false
     
    -  /pacote@12.0.3:
    -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
    -    hasBin: true
    +  pacote@12.0.3:
         dependencies:
           '@npmcli/git': 2.1.0
           '@npmcli/installed-package-contents': 1.0.7
    @@ -13587,10 +18386,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /pacote@15.2.0:
    -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  pacote@15.2.0:
         dependencies:
           '@npmcli/git': 4.1.0
           '@npmcli/installed-package-contents': 2.0.2
    @@ -13614,32 +18410,24 @@ packages:
           - bluebird
           - supports-color
     
    -  /pako@1.0.11:
    -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
    -    dev: true
    +  pako@1.0.11: {}
     
    -  /param-case@3.0.4:
    -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
    +  param-case@3.0.4:
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
     
    -  /parent-module@1.0.1:
    -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
    -    engines: {node: '>=6'}
    +  parent-module@1.0.1:
         dependencies:
           callsites: 3.1.0
     
    -  /parse-conflict-json@2.0.2:
    -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  parse-conflict-json@2.0.2:
         dependencies:
           json-parse-even-better-errors: 2.3.1
           just-diff: 5.2.0
           just-diff-apply: 5.5.0
     
    -  /parse-entities@4.0.1:
    -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
    +  parse-entities@4.0.1:
         dependencies:
           '@types/unist': 2.0.10
           character-entities: 2.0.2
    @@ -13650,321 +18438,177 @@ packages:
           is-decimal: 2.0.1
           is-hexadecimal: 2.0.1
     
    -  /parse-json@5.2.0:
    -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
    -    engines: {node: '>=8'}
    +  parse-json@5.2.0:
         dependencies:
           '@babel/code-frame': 7.24.2
           error-ex: 1.3.2
           json-parse-even-better-errors: 2.3.1
           lines-and-columns: 1.2.4
     
    -  /parse-ms@2.1.0:
    -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  parse-ms@2.1.0: {}
     
    -  /parse-numeric-range@1.3.0:
    -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
    -    dev: false
    +  parse-numeric-range@1.3.0: {}
     
    -  /parse-srcset@1.0.2:
    -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
    -    dev: false
    +  parse-srcset@1.0.2: {}
     
    -  /parse5-htmlparser2-tree-adapter@7.0.0:
    -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
    +  parse5-htmlparser2-tree-adapter@7.0.0:
         dependencies:
           domhandler: 5.0.3
           parse5: 7.1.2
    -    dev: false
     
    -  /parse5@7.1.2:
    -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
    +  parse5@7.1.2:
         dependencies:
           entities: 4.5.0
     
    -  /parseurl@1.3.3:
    -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
    -    engines: {node: '>= 0.8'}
    +  parseurl@1.3.3: {}
     
    -  /pascal-case@3.1.2:
    -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
    +  pascal-case@3.1.2:
         dependencies:
           no-case: 3.0.4
           tslib: 2.6.2
     
    -  /path-absolute@1.0.1:
    -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  path-absolute@1.0.1: {}
     
    -  /path-exists@3.0.0:
    -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  path-exists@3.0.0: {}
     
    -  /path-exists@4.0.0:
    -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
    -    engines: {node: '>=8'}
    +  path-exists@4.0.0: {}
     
    -  /path-exists@5.0.0:
    -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    -    dev: false
    +  path-exists@5.0.0: {}
     
    -  /path-is-absolute@1.0.1:
    -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
    -    engines: {node: '>=0.10.0'}
    +  path-is-absolute@1.0.1: {}
     
    -  /path-is-inside@1.0.2:
    -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
    -    dev: false
    +  path-is-inside@1.0.2: {}
     
    -  /path-key@3.1.1:
    -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    -    engines: {node: '>=8'}
    +  path-key@3.1.1: {}
     
    -  /path-name@1.0.0:
    -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
    +  path-name@1.0.0: {}
     
    -  /path-parse@1.0.7:
    -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    +  path-parse@1.0.7: {}
     
    -  /path-scurry@1.10.1:
    -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  path-scurry@1.10.1:
         dependencies:
           lru-cache: 10.2.0
           minipass: 7.0.4
     
    -  /path-temp@2.1.0:
    -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
    -    engines: {node: '>=8.15'}
    +  path-temp@2.1.0:
         dependencies:
           unique-string: 2.0.0
    -    dev: true
     
    -  /path-to-regexp@0.1.7:
    -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
    +  path-to-regexp@0.1.7: {}
     
    -  /path-to-regexp@1.8.0:
    -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
    +  path-to-regexp@1.8.0:
         dependencies:
           isarray: 0.0.1
    -    dev: false
     
    -  /path-to-regexp@2.2.1:
    -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
    -    dev: false
    +  path-to-regexp@2.2.1: {}
     
    -  /path-to-regexp@6.2.1:
    -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
    -    dev: true
    +  path-to-regexp@6.2.1: {}
     
    -  /path-type@4.0.0:
    -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
    -    engines: {node: '>=8'}
    +  path-type@4.0.0: {}
     
    -  /pathval@2.0.0:
    -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
    -    engines: {node: '>= 14.16'}
    -    dev: true
    +  pathval@2.0.0: {}
     
    -  /periscopic@3.1.0:
    -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
    +  periscopic@3.1.0:
         dependencies:
           '@types/estree': 1.0.5
           estree-walker: 3.0.3
           is-reference: 3.0.2
     
    -  /picocolors@1.0.0:
    -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
    +  picocolors@1.0.0: {}
     
    -  /picomatch@2.3.1:
    -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    -    engines: {node: '>=8.6'}
    +  picomatch@2.3.1: {}
     
    -  /pify@2.3.0:
    -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    -    engines: {node: '>=0.10.0'}
    +  pify@2.3.0: {}
     
    -  /pify@4.0.1:
    -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
    -    engines: {node: '>=6'}
    +  pify@4.0.1: {}
     
    -  /pirates@4.0.6:
    -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    -    engines: {node: '>= 6'}
    -    dev: true
    +  pirates@4.0.6: {}
     
    -  /pkg-dir@4.2.0:
    -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
    -    engines: {node: '>=8'}
    +  pkg-dir@4.2.0:
         dependencies:
           find-up: 4.1.0
     
    -  /pkg-dir@7.0.0:
    -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
    -    engines: {node: '>=14.16'}
    +  pkg-dir@7.0.0:
         dependencies:
           find-up: 6.3.0
    -    dev: false
     
    -  /pkg-up@3.1.0:
    -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
    -    engines: {node: '>=8'}
    +  pkg-up@3.1.0:
         dependencies:
           find-up: 3.0.0
    -    dev: false
     
    -  /pluralize@8.0.0:
    -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  pluralize@8.0.0: {}
     
    -  /portfinder@1.0.32:
    -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
    -    engines: {node: '>= 0.12.0'}
    +  portfinder@1.0.32:
         dependencies:
           async: 2.6.4
           debug: 3.2.7
           mkdirp: 0.5.6
         transitivePeerDependencies:
           - supports-color
    -    dev: true
     
    -  /possible-typed-array-names@1.0.0:
    -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
    -    engines: {node: '>= 0.4'}
    -    dev: true
    +  possible-typed-array-names@1.0.0: {}
     
    -  /postcss-calc@8.2.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
    -    peerDependencies:
    -      postcss: ^8.2.2
    +  postcss-calc@8.2.4(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-colormin@5.3.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-colormin@5.3.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           colord: 2.9.3
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-convert-values@5.1.3(postcss@8.4.38):
    -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-convert-values@5.1.3(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-discard-comments@5.1.2(postcss@8.4.38):
    -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-comments@5.1.2(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-empty@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-empty@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-overridden@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-discard-unused@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-discard-unused@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-import@15.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      postcss: ^8.0.0
    +  postcss-import@15.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           read-cache: 1.0.0
           resolve: 1.22.8
    -    dev: true
     
    -  /postcss-js@4.0.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    -    engines: {node: ^12 || ^14 || >= 16}
    -    peerDependencies:
    -      postcss: ^8.4.21
    +  postcss-js@4.0.1(postcss@8.4.38):
         dependencies:
           camelcase-css: 2.0.1
           postcss: 8.4.38
    -    dev: true
     
    -  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
    -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    -    engines: {node: '>= 14'}
    -    peerDependencies:
    -      postcss: '>=8.0.9'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      postcss:
    -        optional: true
    -      ts-node:
    -        optional: true
    +  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
         dependencies:
           lilconfig: 3.1.1
           postcss: 8.4.38
           ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
           yaml: 2.4.1
    -    dev: true
     
    -  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
    -    engines: {node: '>= 14.15.0'}
    -    peerDependencies:
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    +  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           cosmiconfig: 8.3.6(typescript@5.4.3)
           jiti: 1.21.0
    @@ -13973,20 +18617,8 @@ packages:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    -    dev: false
     
    -  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      '@rspack/core': 0.x || 1.x
    -      postcss: ^7.0.0 || ^8.0.1
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      '@rspack/core':
    -        optional: true
    -      webpack:
    -        optional: true
    +  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           cosmiconfig: 9.0.0(typescript@5.4.3)
           jiti: 1.21.0
    @@ -13995,655 +18627,343 @@ packages:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /postcss-merge-idents@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-idents@5.1.1(postcss@8.4.38):
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
    -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-longhand@5.1.7(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           stylehacks: 5.1.1(postcss@8.4.38)
    -    dev: false
     
    -  /postcss-merge-rules@5.1.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-merge-rules@5.1.4(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-font-values@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-gradients@5.1.1(postcss@8.4.38):
         dependencies:
           colord: 2.9.3
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-params@5.1.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-params@5.1.4(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-minify-selectors@5.2.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
     
    -  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
    -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
           postcss-value-parser: 4.2.0
     
    -  /postcss-modules-scope@3.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-scope@3.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
     
    -  /postcss-modules-values@4.0.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
    -    engines: {node: ^10 || ^12 || >= 14}
    -    peerDependencies:
    -      postcss: ^8.1.0
    +  postcss-modules-values@4.0.0(postcss@8.4.38):
         dependencies:
           icss-utils: 5.1.0(postcss@8.4.38)
           postcss: 8.4.38
     
    -  /postcss-nested@6.0.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
    -    engines: {node: '>=12.0'}
    -    peerDependencies:
    -      postcss: ^8.2.14
    +  postcss-nested@6.0.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: true
     
    -  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-charset@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-positions@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-string@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-string@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-url@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-url@5.1.0(postcss@8.4.38):
         dependencies:
           normalize-url: 6.1.0
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-ordered-values@5.1.3(postcss@8.4.38):
    -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-ordered-values@5.1.3(postcss@8.4.38):
         dependencies:
           cssnano-utils: 3.1.0(postcss@8.4.38)
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-idents@5.2.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
    -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-initial@5.1.2(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           caniuse-api: 3.0.0
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
    -    dev: false
     
    -  /postcss-selector-parser@6.0.16:
    -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
    -    engines: {node: '>=4'}
    +  postcss-selector-parser@6.0.16:
         dependencies:
           cssesc: 3.0.0
           util-deprecate: 1.0.2
     
    -  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      postcss: ^8.4.16
    +  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           sort-css-media-queries: 2.1.0
    -    dev: false
     
    -  /postcss-svgo@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-svgo@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-value-parser: 4.2.0
           svgo: 2.8.0
    -    dev: false
     
    -  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  postcss-unique-selectors@5.1.1(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
    -
    -  /postcss-value-parser@4.2.0:
    -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    -
    -  /postcss-zindex@5.1.0(postcss@8.4.38):
    -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +
    +  postcss-value-parser@4.2.0: {}
    +
    +  postcss-zindex@5.1.0(postcss@8.4.38):
         dependencies:
           postcss: 8.4.38
    -    dev: false
     
    -  /postcss@8.4.31:
    -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
    -    engines: {node: ^10 || ^12 || >=14}
    +  postcss@8.4.31:
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
    -    dev: false
     
    -  /postcss@8.4.38:
    -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
    -    engines: {node: ^10 || ^12 || >=14}
    +  postcss@8.4.38:
         dependencies:
           nanoid: 3.3.7
           picocolors: 1.0.0
           source-map-js: 1.2.0
     
    -  /preferred-pm@3.1.3:
    -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
    -    engines: {node: '>=10'}
    +  preferred-pm@3.1.3:
         dependencies:
           find-up: 5.0.0
           find-yarn-workspace-root2: 1.2.16
           path-exists: 4.0.0
           which-pm: 2.0.0
     
    -  /prelude-ls@1.2.1:
    -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
    -    engines: {node: '>= 0.8.0'}
    +  prelude-ls@1.2.1: {}
     
    -  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
    -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
    -    engines: {node: '>=14.21.3'}
    -    peerDependencies:
    -      '@ianvs/prettier-plugin-sort-imports': '*'
    -      '@prettier/plugin-pug': '*'
    -      '@shopify/prettier-plugin-liquid': '*'
    -      '@trivago/prettier-plugin-sort-imports': '*'
    -      prettier: ^3.0
    -      prettier-plugin-astro: '*'
    -      prettier-plugin-css-order: '*'
    -      prettier-plugin-import-sort: '*'
    -      prettier-plugin-jsdoc: '*'
    -      prettier-plugin-marko: '*'
    -      prettier-plugin-organize-attributes: '*'
    -      prettier-plugin-organize-imports: '*'
    -      prettier-plugin-sort-imports: '*'
    -      prettier-plugin-style-order: '*'
    -      prettier-plugin-svelte: '*'
    -      prettier-plugin-twig-melody: '*'
    -    peerDependenciesMeta:
    -      '@ianvs/prettier-plugin-sort-imports':
    -        optional: true
    -      '@prettier/plugin-pug':
    -        optional: true
    -      '@shopify/prettier-plugin-liquid':
    -        optional: true
    -      '@trivago/prettier-plugin-sort-imports':
    -        optional: true
    -      prettier-plugin-astro:
    -        optional: true
    -      prettier-plugin-css-order:
    -        optional: true
    -      prettier-plugin-import-sort:
    -        optional: true
    -      prettier-plugin-jsdoc:
    -        optional: true
    -      prettier-plugin-marko:
    -        optional: true
    -      prettier-plugin-organize-attributes:
    -        optional: true
    -      prettier-plugin-organize-imports:
    -        optional: true
    -      prettier-plugin-sort-imports:
    -        optional: true
    -      prettier-plugin-style-order:
    -        optional: true
    -      prettier-plugin-svelte:
    -        optional: true
    -      prettier-plugin-twig-melody:
    -        optional: true
    +  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
         dependencies:
           prettier: 3.2.5
    -    dev: true
     
    -  /prettier@3.2.5:
    -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    +  prettier@3.2.5: {}
     
    -  /pretty-bytes@5.6.0:
    -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
    -    engines: {node: '>=6'}
    +  pretty-bytes@5.6.0: {}
     
    -  /pretty-error@4.0.0:
    -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
    +  pretty-error@4.0.0:
         dependencies:
           lodash: 4.17.21
           renderkid: 3.0.0
     
    -  /pretty-format@27.5.1:
    -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
    -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    +  pretty-format@27.5.1:
         dependencies:
           ansi-regex: 5.0.1
           ansi-styles: 5.2.0
           react-is: 17.0.2
    -    dev: true
     
    -  /pretty-format@29.7.0:
    -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
    -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +  pretty-format@29.7.0:
         dependencies:
           '@jest/schemas': 29.6.3
           ansi-styles: 5.2.0
           react-is: 18.2.0
    -    dev: true
     
    -  /pretty-ms@7.0.1:
    -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
    -    engines: {node: '>=10'}
    +  pretty-ms@7.0.1:
         dependencies:
           parse-ms: 2.1.0
    -    dev: true
     
    -  /pretty-time@1.1.0:
    -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  pretty-time@1.1.0: {}
     
    -  /print-diff@1.0.0:
    -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
    -    engines: {node: '>=8.3'}
    +  print-diff@1.0.0:
         dependencies:
           diff: 4.0.2
    -    dev: true
     
    -  /printable-characters@1.0.42:
    -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
    -    dev: true
    +  printable-characters@1.0.42: {}
     
    -  /prism-react-renderer@2.3.1(react@18.2.0):
    -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
    -    peerDependencies:
    -      react: '>=16.0.0 || 18'
    +  prism-react-renderer@2.3.1(react@18.2.0):
         dependencies:
           '@types/prismjs': 1.26.3
           clsx: 2.1.0
           react: 18.2.0
    -    dev: false
     
    -  /prismjs@1.29.0:
    -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  prismjs@1.29.0: {}
     
    -  /proc-log@1.0.0:
    -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
    +  proc-log@1.0.0: {}
     
    -  /proc-log@3.0.0:
    -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  proc-log@3.0.0: {}
     
    -  /process-nextick-args@2.0.1:
    -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
    +  process-nextick-args@2.0.1: {}
     
    -  /process@0.11.10:
    -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
    -    engines: {node: '>= 0.6.0'}
    +  process@0.11.10: {}
     
    -  /promise-all-reject-late@1.0.1:
    -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
    +  promise-all-reject-late@1.0.1: {}
     
    -  /promise-call-limit@1.0.2:
    -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
    +  promise-call-limit@1.0.2: {}
     
    -  /promise-inflight@1.0.1:
    -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
    -    peerDependencies:
    -      bluebird: '*'
    -    peerDependenciesMeta:
    -      bluebird:
    -        optional: true
    +  promise-inflight@1.0.1: {}
     
    -  /promise-retry@2.0.1:
    -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
    -    engines: {node: '>=10'}
    +  promise-retry@2.0.1:
         dependencies:
           err-code: 2.0.3
           retry: 0.12.0
     
    -  /prompts@2.4.2:
    -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
    -    engines: {node: '>= 6'}
    +  prompts@2.4.2:
         dependencies:
           kleur: 3.0.3
           sisteransi: 1.0.5
     
    -  /prop-types@15.8.1:
    -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
    +  prop-types@15.8.1:
         dependencies:
           loose-envify: 1.4.0
           object-assign: 4.1.1
           react-is: 16.13.1
     
    -  /property-information@6.4.1:
    -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
    +  property-information@6.4.1: {}
     
    -  /proto-list@1.2.4:
    -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
    +  proto-list@1.2.4: {}
     
    -  /proxy-addr@2.0.7:
    -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
    -    engines: {node: '>= 0.10'}
    +  proxy-addr@2.0.7:
         dependencies:
           forwarded: 0.2.0
           ipaddr.js: 1.9.1
     
    -  /psl@1.9.0:
    -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
    -    dev: true
    +  psl@1.9.0: {}
     
    -  /punycode@1.4.1:
    -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
    -    dev: false
    +  punycode@1.4.1: {}
     
    -  /punycode@2.3.1:
    -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    -    engines: {node: '>=6'}
    +  punycode@2.3.1: {}
     
    -  /pupa@3.1.0:
    -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
    -    engines: {node: '>=12.20'}
    +  pupa@3.1.0:
         dependencies:
           escape-goat: 4.0.0
    -    dev: false
     
    -  /pure-rand@6.1.0:
    -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
    -    dev: true
    +  pure-rand@6.1.0: {}
     
    -  /qs@6.11.0:
    -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
    -    engines: {node: '>=0.6'}
    +  qs@6.11.0:
         dependencies:
           side-channel: 1.0.6
     
    -  /qs@6.12.0:
    -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
    -    engines: {node: '>=0.6'}
    +  qs@6.12.0:
         dependencies:
           side-channel: 1.0.6
    -    dev: true
     
    -  /querystringify@2.2.0:
    -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
    -    dev: true
    +  querystringify@2.2.0: {}
     
    -  /queue-microtask@1.2.3:
    -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    +  queue-microtask@1.2.3: {}
     
    -  /queue@6.0.2:
    -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
    +  queue@6.0.2:
         dependencies:
           inherits: 2.0.4
    -    dev: false
     
    -  /quick-lru@4.0.1:
    -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
    -    engines: {node: '>=8'}
    -    dev: true
    +  quick-lru@4.0.1: {}
     
    -  /quick-lru@5.1.1:
    -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
    -    engines: {node: '>=10'}
    +  quick-lru@5.1.1: {}
     
    -  /railroad-diagrams@1.0.0:
    -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
    -    dev: false
    +  railroad-diagrams@1.0.0: {}
     
    -  /rambda@7.5.0:
    -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
    -    dev: true
    +  rambda@7.5.0: {}
     
    -  /ramda@0.29.1:
    -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
    -    dev: true
    +  ramda@0.29.1: {}
     
    -  /randexp@0.4.6:
    -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
    -    engines: {node: '>=0.12'}
    +  randexp@0.4.6:
         dependencies:
           discontinuous-range: 1.0.0
           ret: 0.1.15
    -    dev: false
     
    -  /randombytes@2.1.0:
    -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
    +  randombytes@2.1.0:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /range-parser@1.2.0:
    -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
    -    engines: {node: '>= 0.6'}
    -    dev: false
    +  range-parser@1.2.0: {}
     
    -  /range-parser@1.2.1:
    -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
    -    engines: {node: '>= 0.6'}
    +  range-parser@1.2.1: {}
     
    -  /raw-body@2.5.2:
    -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
    -    engines: {node: '>= 0.8'}
    +  raw-body@2.5.2:
         dependencies:
           bytes: 3.1.2
           http-errors: 2.0.0
           iconv-lite: 0.4.24
           unpipe: 1.0.0
     
    -  /rc@1.2.8:
    -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
    -    hasBin: true
    +  rc@1.2.8:
         dependencies:
           deep-extend: 0.6.0
           ini: 1.3.8
           minimist: 1.2.8
           strip-json-comments: 2.0.1
    -    dev: false
     
    -  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      typescript: '>=2.7'
    -      webpack: '>=4'
    -    peerDependenciesMeta:
    -      typescript:
    -        optional: true
    +  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           '@babel/code-frame': 7.24.2
           address: 1.2.2
    @@ -14675,29 +18995,18 @@ packages:
           - eslint
           - supports-color
           - vue-template-compiler
    -    dev: false
     
    -  /react-dom@18.2.0(react@18.2.0):
    -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
    -    peerDependencies:
    -      react: ^18.2.0 || 18
    +  react-dom@18.2.0(react@18.2.0):
         dependencies:
           loose-envify: 1.4.0
           react: 18.2.0
           scheduler: 0.23.0
     
    -  /react-error-overlay@6.0.11:
    -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
    -    dev: false
    +  react-error-overlay@6.0.11: {}
     
    -  /react-fast-compare@3.2.2:
    -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
    +  react-fast-compare@3.2.2: {}
     
    -  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           invariant: 2.2.4
    @@ -14707,11 +19016,7 @@ packages:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
    -    peerDependencies:
    -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
    +  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           invariant: 2.2.4
           react: 18.2.0
    @@ -14719,42 +19024,23 @@ packages:
           react-fast-compare: 3.2.2
           shallowequal: 1.1.0
     
    -  /react-is@16.13.1:
    -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
    +  react-is@16.13.1: {}
     
    -  /react-is@17.0.2:
    -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
    -    dev: true
    +  react-is@17.0.2: {}
     
    -  /react-is@18.2.0:
    -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    -    dev: true
    +  react-is@18.2.0: {}
     
    -  /react-json-view-lite@1.3.0(react@18.2.0):
    -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
    -    engines: {node: '>=14'}
    -    peerDependencies:
    -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
    +  react-json-view-lite@1.3.0(react@18.2.0):
         dependencies:
           react: 18.2.0
    -    dev: false
     
    -  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
    -    engines: {node: '>=10.13.0'}
    -    peerDependencies:
    -      react-loadable: '*'
    -      webpack: '>=4.41.1 || 5.x'
    +  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
         dependencies:
           '@babel/runtime': 7.24.1
    -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
    +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /react-player@2.15.1(react@18.2.0):
    -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
    -    peerDependencies:
    -      react: '>=16.6.0 || 18'
    +  react-player@2.15.1(react@18.2.0):
         dependencies:
           deepmerge: 4.3.1
           load-script: 1.0.0
    @@ -14762,23 +19048,14 @@ packages:
           prop-types: 15.8.1
           react: 18.2.0
           react-fast-compare: 3.2.2
    -    dev: false
     
    -  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
    -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    -      react-router: '>=5'
    +  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           react: 18.2.0
           react-router: 5.3.4(react@18.2.0)
    -    dev: false
     
    -  /react-router-dom@5.3.4(react@18.2.0):
    -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    +  react-router-dom@5.3.4(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -14788,12 +19065,8 @@ packages:
           react-router: 5.3.4(react@18.2.0)
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    -    dev: false
     
    -  /react-router@5.3.4(react@18.2.0):
    -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
    -    peerDependencies:
    -      react: '>=15 || 18'
    +  react-router@5.3.4(react@18.2.0):
         dependencies:
           '@babel/runtime': 7.24.1
           history: 4.10.1
    @@ -14805,28 +19078,15 @@ packages:
           react-is: 16.13.1
           tiny-invariant: 1.3.3
           tiny-warning: 1.0.3
    -    dev: false
     
    -  /react-string-replace@1.1.1:
    -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
    -    engines: {node: '>=0.12.0'}
    -    dev: false
    +  react-string-replace@1.1.1: {}
     
    -  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
    -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
    -    peerDependencies:
    -      react: '*'
    -      tslib: '*'
    +  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
         dependencies:
           react: 18.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
    -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
    -    peerDependencies:
    -      react: '*'
    -      react-dom: '*'
    +  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
         dependencies:
           '@types/js-cookie': 2.2.7
           '@xobotyi/scrollbar-width': 1.9.5
    @@ -14844,101 +19104,71 @@ packages:
           throttle-debounce: 3.0.1
           ts-easing: 0.2.0
           tslib: 2.6.2
    -    dev: false
     
    -  /react@18.2.0:
    -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
    -    engines: {node: '>=0.10.0'}
    +  react@18.2.0:
         dependencies:
           loose-envify: 1.4.0
     
    -  /read-cache@1.0.0:
    -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    +  read-cache@1.0.0:
         dependencies:
           pify: 2.3.0
    -    dev: true
     
    -  /read-cmd-shim@3.0.1:
    -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  read-cmd-shim@3.0.1: {}
     
    -  /read-ini-file@4.0.0:
    -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
    -    engines: {node: '>=14.6'}
    +  read-ini-file@4.0.0:
         dependencies:
           ini: 3.0.1
           strip-bom: 4.0.0
    -    dev: true
     
    -  /read-package-json-fast@2.0.3:
    -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
    -    engines: {node: '>=10'}
    +  read-package-json-fast@2.0.3:
         dependencies:
           json-parse-even-better-errors: 2.3.1
           npm-normalize-package-bin: 1.0.1
     
    -  /read-package-json-fast@3.0.2:
    -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  read-package-json-fast@3.0.2:
         dependencies:
           json-parse-even-better-errors: 3.0.1
           npm-normalize-package-bin: 3.0.1
     
    -  /read-package-json@6.0.4:
    -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  read-package-json@6.0.4:
         dependencies:
           glob: 10.3.10
           json-parse-even-better-errors: 3.0.1
           normalize-package-data: 5.0.0
           npm-normalize-package-bin: 3.0.1
     
    -  /read-pkg-up@7.0.1:
    -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
    -    engines: {node: '>=8'}
    +  read-pkg-up@7.0.1:
         dependencies:
           find-up: 4.1.0
           read-pkg: 5.2.0
           type-fest: 0.8.1
     
    -  /read-pkg-up@8.0.0:
    -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
    -    engines: {node: '>=12'}
    +  read-pkg-up@8.0.0:
         dependencies:
           find-up: 5.0.0
           read-pkg: 6.0.0
           type-fest: 1.4.0
    -    dev: true
     
    -  /read-pkg@5.2.0:
    -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
    -    engines: {node: '>=8'}
    +  read-pkg@5.2.0:
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 2.5.0
           parse-json: 5.2.0
           type-fest: 0.6.0
     
    -  /read-pkg@6.0.0:
    -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
    -    engines: {node: '>=12'}
    +  read-pkg@6.0.0:
         dependencies:
           '@types/normalize-package-data': 2.4.4
           normalize-package-data: 3.0.3
           parse-json: 5.2.0
           type-fest: 1.4.0
    -    dev: true
     
    -  /read-yaml-file@2.1.0:
    -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
    -    engines: {node: '>=10.13'}
    +  read-yaml-file@2.1.0:
         dependencies:
           js-yaml: 4.1.0
           strip-bom: 4.0.0
    -    dev: true
     
    -  /readable-stream@2.3.8:
    -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
    +  readable-stream@2.3.8:
         dependencies:
           core-util-is: 1.0.3
           inherits: 2.0.4
    @@ -14948,17 +19178,13 @@ packages:
           string_decoder: 1.1.1
           util-deprecate: 1.0.2
     
    -  /readable-stream@3.6.2:
    -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
    -    engines: {node: '>= 6'}
    +  readable-stream@3.6.2:
         dependencies:
           inherits: 2.0.4
           string_decoder: 1.3.0
           util-deprecate: 1.0.2
     
    -  /readable-stream@4.5.2:
    -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
    -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +  readable-stream@4.5.2:
         dependencies:
           abort-controller: 3.0.0
           buffer: 6.0.3
    @@ -14966,60 +19192,39 @@ packages:
           process: 0.11.10
           string_decoder: 1.3.0
     
    -  /readdir-scoped-modules@1.1.0:
    -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
    -    deprecated: This functionality has been moved to @npmcli/fs
    +  readdir-scoped-modules@1.1.0:
         dependencies:
           debuglog: 1.0.1
           dezalgo: 1.0.4
           graceful-fs: 4.2.11
           once: 1.4.0
     
    -  /readdirp@3.6.0:
    -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    -    engines: {node: '>=8.10.0'}
    +  readdirp@3.6.0:
         dependencies:
           picomatch: 2.3.1
     
    -  /reading-time@1.5.0:
    -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
    -    dev: false
    +  reading-time@1.5.0: {}
     
    -  /realpath-missing@1.1.0:
    -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  realpath-missing@1.1.0: {}
     
    -  /rechoir@0.6.2:
    -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
    -    engines: {node: '>= 0.10'}
    +  rechoir@0.6.2:
         dependencies:
           resolve: 1.22.8
     
    -  /rechoir@0.8.0:
    -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
    -    engines: {node: '>= 10.13.0'}
    +  rechoir@0.8.0:
         dependencies:
           resolve: 1.22.8
     
    -  /recursive-readdir@2.2.3:
    -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
    -    engines: {node: '>=6.0.0'}
    +  recursive-readdir@2.2.3:
         dependencies:
           minimatch: 3.1.2
    -    dev: false
     
    -  /redent@4.0.0:
    -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
    -    engines: {node: '>=12'}
    +  redent@4.0.0:
         dependencies:
           indent-string: 5.0.0
           strip-indent: 4.0.0
    -    dev: true
     
    -  /reflect.getprototypeof@1.0.6:
    -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
    -    engines: {node: '>= 0.4'}
    +  reflect.getprototypeof@1.0.6:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -15028,43 +19233,29 @@ packages:
           get-intrinsic: 1.2.4
           globalthis: 1.0.3
           which-builtin-type: 1.1.3
    -    dev: true
     
    -  /regenerate-unicode-properties@10.1.1:
    -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
    -    engines: {node: '>=4'}
    +  regenerate-unicode-properties@10.1.1:
         dependencies:
           regenerate: 1.4.2
     
    -  /regenerate@1.4.2:
    -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
    +  regenerate@1.4.2: {}
     
    -  /regenerator-runtime@0.14.1:
    -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
    +  regenerator-runtime@0.14.1: {}
     
    -  /regenerator-transform@0.15.2:
    -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
    +  regenerator-transform@0.15.2:
         dependencies:
           '@babel/runtime': 7.24.1
     
    -  /regexp-tree@0.1.27:
    -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
    -    hasBin: true
    -    dev: true
    +  regexp-tree@0.1.27: {}
     
    -  /regexp.prototype.flags@1.5.2:
    -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
    -    engines: {node: '>= 0.4'}
    +  regexp.prototype.flags@1.5.2:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-errors: 1.3.0
           set-function-name: 2.0.2
    -    dev: true
     
    -  /regexpu-core@5.3.2:
    -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
    -    engines: {node: '>=4'}
    +  regexpu-core@5.3.2:
         dependencies:
           '@babel/regjsgen': 0.8.0
           regenerate: 1.4.2
    @@ -15073,47 +19264,31 @@ packages:
           unicode-match-property-ecmascript: 2.0.0
           unicode-match-property-value-ecmascript: 2.1.0
     
    -  /registry-auth-token@5.0.2:
    -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
    -    engines: {node: '>=14'}
    +  registry-auth-token@5.0.2:
         dependencies:
           '@pnpm/npm-conf': 2.2.2
    -    dev: false
     
    -  /registry-url@6.0.1:
    -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
    -    engines: {node: '>=12'}
    +  registry-url@6.0.1:
         dependencies:
           rc: 1.2.8
    -    dev: false
    -
    -  /regjsparser@0.10.0:
    -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
    -    hasBin: true
    +
    +  regjsparser@0.10.0:
         dependencies:
           jsesc: 0.5.0
    -    dev: true
     
    -  /regjsparser@0.9.1:
    -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
    -    hasBin: true
    +  regjsparser@0.9.1:
         dependencies:
           jsesc: 0.5.0
     
    -  /rehype-raw@7.0.0:
    -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
    +  rehype-raw@7.0.0:
         dependencies:
           '@types/hast': 3.0.4
           hast-util-raw: 9.0.2
           vfile: 6.0.1
    -    dev: false
     
    -  /relateurl@0.2.7:
    -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
    -    engines: {node: '>= 0.10'}
    +  relateurl@0.2.7: {}
     
    -  /remark-directive@3.0.0:
    -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
    +  remark-directive@3.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-directive: 3.0.0
    @@ -15121,21 +19296,16 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-emoji@4.0.1:
    -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  remark-emoji@4.0.1:
         dependencies:
           '@types/mdast': 4.0.3
           emoticon: 4.0.1
           mdast-util-find-and-replace: 3.0.1
           node-emoji: 2.1.3
           unified: 11.0.4
    -    dev: false
     
    -  /remark-frontmatter@5.0.0:
    -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
    +  remark-frontmatter@5.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-frontmatter: 2.0.1
    @@ -15143,10 +19313,8 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-gfm@4.0.0:
    -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
    +  remark-gfm@4.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-gfm: 3.0.0
    @@ -15156,18 +19324,15 @@ packages:
           unified: 11.0.4
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /remark-mdx@3.0.1:
    -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
    +  remark-mdx@3.0.1:
         dependencies:
           mdast-util-mdx: 3.0.0
           micromark-extension-mdxjs: 3.0.0
         transitivePeerDependencies:
           - supports-color
     
    -  /remark-parse@11.0.0:
    -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
    +  remark-parse@11.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-from-markdown: 2.0.0
    @@ -15176,8 +19341,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /remark-rehype@11.1.0:
    -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
    +  remark-rehype@11.1.0:
         dependencies:
           '@types/hast': 3.0.4
           '@types/mdast': 4.0.3
    @@ -15185,19 +19349,15 @@ packages:
           unified: 11.0.4
           vfile: 6.0.1
     
    -  /remark-stringify@11.0.0:
    -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
    +  remark-stringify@11.0.0:
         dependencies:
           '@types/mdast': 4.0.3
           mdast-util-to-markdown: 2.1.0
           unified: 11.0.4
    -    dev: false
     
    -  /remove-trailing-separator@1.1.0:
    -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
    +  remove-trailing-separator@1.1.0: {}
     
    -  /renderkid@3.0.0:
    -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
    +  renderkid@3.0.0:
         dependencies:
           css-select: 4.3.0
           dom-converter: 0.2.0
    @@ -15205,212 +19365,128 @@ packages:
           lodash: 4.17.21
           strip-ansi: 6.0.1
     
    -  /replace-ext@1.0.1:
    -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
    -    engines: {node: '>= 0.10'}
    +  replace-ext@1.0.1: {}
     
    -  /require-directory@2.1.1:
    -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
    -    engines: {node: '>=0.10.0'}
    -    dev: true
    +  require-directory@2.1.1: {}
     
    -  /require-from-string@2.0.2:
    -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    -    engines: {node: '>=0.10.0'}
    +  require-from-string@2.0.2: {}
     
    -  /require-like@0.1.2:
    -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
    -    dev: false
    +  require-like@0.1.2: {}
     
    -  /requires-port@1.0.0:
    -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
    +  requires-port@1.0.0: {}
     
    -  /resize-observer-polyfill@1.5.1:
    -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
    -    dev: false
    +  resize-observer-polyfill@1.5.1: {}
     
    -  /resolve-alpn@1.2.1:
    -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
    -    dev: false
    +  resolve-alpn@1.2.1: {}
     
    -  /resolve-cwd@3.0.0:
    -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
    -    engines: {node: '>=8'}
    +  resolve-cwd@3.0.0:
         dependencies:
           resolve-from: 5.0.0
     
    -  /resolve-from@4.0.0:
    -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    -    engines: {node: '>=4'}
    +  resolve-from@4.0.0: {}
     
    -  /resolve-from@5.0.0:
    -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
    -    engines: {node: '>=8'}
    +  resolve-from@5.0.0: {}
     
    -  /resolve-pathname@3.0.0:
    -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
    -    dev: false
    +  resolve-pathname@3.0.0: {}
     
    -  /resolve-pkg-maps@1.0.0:
    -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
    -    dev: true
    +  resolve-pkg-maps@1.0.0: {}
     
    -  /resolve.exports@2.0.2:
    -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  resolve.exports@2.0.2: {}
     
    -  /resolve@1.22.8:
    -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
    -    hasBin: true
    +  resolve@1.22.8:
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
     
    -  /resolve@2.0.0-next.5:
    -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
    -    hasBin: true
    +  resolve@2.0.0-next.5:
         dependencies:
           is-core-module: 2.13.1
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
    -    dev: true
     
    -  /responselike@3.0.0:
    -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
    -    engines: {node: '>=14.16'}
    +  responselike@3.0.0:
         dependencies:
           lowercase-keys: 3.0.0
    -    dev: false
     
    -  /restore-cursor@3.1.0:
    -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
    -    engines: {node: '>=8'}
    +  restore-cursor@3.1.0:
         dependencies:
           onetime: 5.1.2
           signal-exit: 3.0.7
     
    -  /ret@0.1.15:
    -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
    -    engines: {node: '>=0.12'}
    -    dev: false
    +  ret@0.1.15: {}
     
    -  /retry@0.12.0:
    -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
    -    engines: {node: '>= 4'}
    +  retry@0.12.0: {}
     
    -  /retry@0.13.1:
    -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
    -    engines: {node: '>= 4'}
    +  retry@0.13.1: {}
     
    -  /reusify@1.0.4:
    -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    +  reusify@1.0.4: {}
     
    -  /rfc4648@1.5.3:
    -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
    -    dev: false
    +  rfc4648@1.5.3: {}
     
    -  /right-pad@1.0.1:
    -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
    -    engines: {node: '>= 0.10'}
    -    dev: true
    +  right-pad@1.0.1: {}
     
    -  /rimraf@3.0.2:
    -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
    -    hasBin: true
    +  rimraf@3.0.2:
         dependencies:
           glob: 7.2.3
     
    -  /rimraf@5.0.5:
    -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
    -    engines: {node: '>=14'}
    -    hasBin: true
    +  rimraf@5.0.5:
         dependencies:
           glob: 10.3.10
     
    -  /rtl-css-js@1.16.1:
    -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
    +  rtl-css-js@1.16.1:
         dependencies:
           '@babel/runtime': 7.24.1
    -    dev: false
     
    -  /rtl-detect@1.1.2:
    -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
    -    dev: false
    +  rtl-detect@1.1.2: {}
     
    -  /rtlcss@4.1.1:
    -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
    -    engines: {node: '>=12.0.0'}
    -    hasBin: true
    +  rtlcss@4.1.1:
         dependencies:
           escalade: 3.1.2
           picocolors: 1.0.0
           postcss: 8.4.38
           strip-json-comments: 3.1.1
    -    dev: false
     
    -  /run-applescript@7.0.0:
    -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
    -    engines: {node: '>=18'}
    +  run-applescript@7.0.0: {}
     
    -  /run-async@2.4.1:
    -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
    -    engines: {node: '>=0.12.0'}
    +  run-async@2.4.1: {}
     
    -  /run-parallel@1.2.0:
    -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    +  run-parallel@1.2.0:
         dependencies:
           queue-microtask: 1.2.3
     
    -  /rxjs@7.8.1:
    -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
    +  rxjs@7.8.1:
         dependencies:
           tslib: 2.6.2
     
    -  /safe-array-concat@1.1.2:
    -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
    -    engines: {node: '>=0.4'}
    +  safe-array-concat@1.1.2:
         dependencies:
           call-bind: 1.0.7
           get-intrinsic: 1.2.4
           has-symbols: 1.0.3
           isarray: 2.0.5
    -    dev: true
     
    -  /safe-buffer@5.1.2:
    -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    +  safe-buffer@5.1.2: {}
     
    -  /safe-buffer@5.2.1:
    -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    +  safe-buffer@5.2.1: {}
     
    -  /safe-execa@0.1.2:
    -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
    -    engines: {node: '>=12'}
    +  safe-execa@0.1.2:
         dependencies:
           '@zkochan/which': 2.0.3
           execa: 5.1.1
           path-name: 1.0.0
     
    -  /safe-regex-test@1.0.3:
    -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
    -    engines: {node: '>= 0.4'}
    +  safe-regex-test@1.0.3:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-regex: 1.1.4
    -    dev: true
     
    -  /safe-stable-stringify@2.4.3:
    -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
    -    engines: {node: '>=10'}
    +  safe-stable-stringify@2.4.3: {}
     
    -  /safer-buffer@2.1.2:
    -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
    +  safer-buffer@2.1.2: {}
     
    -  /sanitize-html@2.13.0:
    -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
    +  sanitize-html@2.13.0:
         dependencies:
           deepmerge: 4.3.1
           escape-string-regexp: 4.0.0
    @@ -15418,124 +19494,77 @@ packages:
           is-plain-object: 5.0.0
           parse-srcset: 1.0.2
           postcss: 8.4.38
    -    dev: false
     
    -  /sax@1.3.0:
    -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
    -    dev: false
    +  sax@1.3.0: {}
     
    -  /saxes@6.0.0:
    -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
    -    engines: {node: '>=v12.22.7'}
    +  saxes@6.0.0:
         dependencies:
           xmlchars: 2.2.0
    -    dev: true
     
    -  /sbd@1.0.19:
    -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
    +  sbd@1.0.19:
         dependencies:
           sanitize-html: 2.13.0
    -    dev: false
     
    -  /scheduler@0.23.0:
    -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
    +  scheduler@0.23.0:
         dependencies:
           loose-envify: 1.4.0
     
    -  /schema-utils@2.7.0:
    -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
    -    engines: {node: '>= 8.9.0'}
    +  schema-utils@2.7.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
    -    dev: false
     
    -  /schema-utils@3.3.0:
    -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
    -    engines: {node: '>= 10.13.0'}
    +  schema-utils@3.3.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 6.12.6
           ajv-keywords: 3.5.2(ajv@6.12.6)
     
    -  /schema-utils@4.2.0:
    -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
    -    engines: {node: '>= 12.13.0'}
    +  schema-utils@4.2.0:
         dependencies:
           '@types/json-schema': 7.0.15
           ajv: 8.12.0
           ajv-formats: 2.1.1(ajv@8.12.0)
           ajv-keywords: 5.1.0(ajv@8.12.0)
     
    -  /scoped-regex@2.1.0:
    -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
    -    engines: {node: '>=8'}
    +  scoped-regex@2.1.0: {}
     
    -  /screenfull@5.2.0:
    -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  screenfull@5.2.0: {}
     
    -  /search-insights@2.13.0:
    -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
    -    dev: false
    +  search-insights@2.13.0: {}
     
    -  /section-matter@1.0.0:
    -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
    -    engines: {node: '>=4'}
    +  section-matter@1.0.0:
         dependencies:
           extend-shallow: 2.0.1
           kind-of: 6.0.3
    -    dev: false
     
    -  /secure-compare@3.0.1:
    -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
    -    dev: true
    +  secure-compare@3.0.1: {}
     
    -  /select-hose@2.0.0:
    -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
    +  select-hose@2.0.0: {}
     
    -  /selfsigned@2.4.1:
    -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
    -    engines: {node: '>=10'}
    +  selfsigned@2.4.1:
         dependencies:
           '@types/node-forge': 1.3.11
           node-forge: 1.3.1
     
    -  /semver-diff@4.0.0:
    -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
    -    engines: {node: '>=12'}
    +  semver-diff@4.0.0:
         dependencies:
           semver: 7.6.0
    -    dev: false
     
    -  /semver@5.7.2:
    -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
    -    hasBin: true
    +  semver@5.7.2: {}
     
    -  /semver@6.3.1:
    -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    -    hasBin: true
    +  semver@6.3.1: {}
     
    -  /semver@7.5.4:
    -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  semver@7.5.4:
         dependencies:
           lru-cache: 6.0.0
    -    dev: true
     
    -  /semver@7.6.0:
    -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  semver@7.6.0:
         dependencies:
           lru-cache: 6.0.0
     
    -  /send@0.18.0:
    -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    -    engines: {node: '>= 0.8.0'}
    +  send@0.18.0:
         dependencies:
           debug: 2.6.9
           depd: 2.0.0
    @@ -15553,19 +19582,15 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /serialize-javascript@6.0.0:
    -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
    +  serialize-javascript@6.0.0:
         dependencies:
           randombytes: 2.1.0
    -    dev: true
     
    -  /serialize-javascript@6.0.2:
    -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
    +  serialize-javascript@6.0.2:
         dependencies:
           randombytes: 2.1.0
     
    -  /serve-handler@6.1.5:
    -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
    +  serve-handler@6.1.5:
         dependencies:
           bytes: 3.0.0
           content-disposition: 0.5.2
    @@ -15575,11 +19600,8 @@ packages:
           path-is-inside: 1.0.2
           path-to-regexp: 2.2.1
           range-parser: 1.2.0
    -    dev: false
     
    -  /serve-index@1.9.1:
    -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
    -    engines: {node: '>= 0.8.0'}
    +  serve-index@1.9.1:
         dependencies:
           accepts: 1.3.8
           batch: 0.6.1
    @@ -15591,9 +19613,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /serve-static@1.15.0:
    -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
    -    engines: {node: '>= 0.8.0'}
    +  serve-static@1.15.0:
         dependencies:
           encodeurl: 1.0.2
           escape-html: 1.0.3
    @@ -15602,12 +19622,9 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /set-blocking@2.0.0:
    -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
    +  set-blocking@2.0.0: {}
     
    -  /set-function-length@1.2.2:
    -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
    -    engines: {node: '>= 0.4'}
    +  set-function-length@1.2.2:
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
    @@ -15616,82 +19633,53 @@ packages:
           gopd: 1.0.1
           has-property-descriptors: 1.0.2
     
    -  /set-function-name@2.0.2:
    -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
    -    engines: {node: '>= 0.4'}
    +  set-function-name@2.0.2:
         dependencies:
           define-data-property: 1.1.4
           es-errors: 1.3.0
           functions-have-names: 1.2.3
           has-property-descriptors: 1.0.2
    -    dev: true
     
    -  /set-harmonic-interval@1.0.1:
    -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
    -    engines: {node: '>=6.9'}
    -    dev: false
    +  set-harmonic-interval@1.0.1: {}
     
    -  /setimmediate@1.0.5:
    -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
    -    dev: true
    +  setimmediate@1.0.5: {}
     
    -  /setprototypeof@1.1.0:
    -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
    +  setprototypeof@1.1.0: {}
     
    -  /setprototypeof@1.2.0:
    -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
    +  setprototypeof@1.2.0: {}
     
    -  /shallow-clone@3.0.1:
    -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
    -    engines: {node: '>=8'}
    +  shallow-clone@3.0.1:
         dependencies:
           kind-of: 6.0.3
     
    -  /shallowequal@1.1.0:
    -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
    +  shallowequal@1.1.0: {}
     
    -  /shebang-command@2.0.0:
    -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    -    engines: {node: '>=8'}
    +  shebang-command@2.0.0:
         dependencies:
           shebang-regex: 3.0.0
     
    -  /shebang-regex@3.0.0:
    -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    -    engines: {node: '>=8'}
    +  shebang-regex@3.0.0: {}
     
    -  /shell-quote@1.8.1:
    -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
    +  shell-quote@1.8.1: {}
     
    -  /shelljs@0.8.5:
    -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
    -    engines: {node: '>=4'}
    -    hasBin: true
    +  shelljs@0.8.5:
         dependencies:
           glob: 7.2.3
           interpret: 1.4.0
           rechoir: 0.6.2
     
    -  /side-channel@1.0.6:
    -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
    -    engines: {node: '>= 0.4'}
    +  side-channel@1.0.6:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           get-intrinsic: 1.2.4
           object-inspect: 1.13.1
     
    -  /signal-exit@3.0.7:
    -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    +  signal-exit@3.0.7: {}
     
    -  /signal-exit@4.1.0:
    -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    -    engines: {node: '>=14'}
    +  signal-exit@4.1.0: {}
     
    -  /sigstore@1.9.0:
    -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  sigstore@1.9.0:
         dependencies:
           '@sigstore/bundle': 1.1.0
           '@sigstore/protobuf-specs': 0.2.1
    @@ -15701,13 +19689,11 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /simple-swizzle@0.2.2:
    -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
    +  simple-swizzle@0.2.2:
         dependencies:
           is-arrayish: 0.3.2
     
    -  /sinon@17.0.1:
    -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
    +  sinon@17.0.1:
         dependencies:
           '@sinonjs/commons': 3.0.1
           '@sinonjs/fake-timers': 11.2.2
    @@ -15715,79 +19701,52 @@ packages:
           diff: 5.2.0
           nise: 5.1.9
           supports-color: 7.2.0
    -    dev: true
     
    -  /sirv@2.0.4:
    -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
    -    engines: {node: '>= 10'}
    +  sirv@2.0.4:
         dependencies:
           '@polka/url': 1.0.0-next.25
           mrmime: 2.0.0
           totalist: 3.0.1
    -    dev: false
     
    -  /sisteransi@1.0.5:
    -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    +  sisteransi@1.0.5: {}
     
    -  /sitemap@7.1.1:
    -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
    -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
    -    hasBin: true
    +  sitemap@7.1.1:
         dependencies:
           '@types/node': 17.0.45
           '@types/sax': 1.2.7
           arg: 5.0.2
           sax: 1.3.0
    -    dev: false
     
    -  /skin-tone@2.0.0:
    -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
    -    engines: {node: '>=8'}
    +  skin-tone@2.0.0:
         dependencies:
           unicode-emoji-modifier-base: 1.0.0
    -    dev: false
     
    -  /slash@3.0.0:
    -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
    -    engines: {node: '>=8'}
    +  slash@3.0.0: {}
     
    -  /slash@4.0.0:
    -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  slash@4.0.0: {}
     
    -  /smart-buffer@4.2.0:
    -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
    -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
    +  smart-buffer@4.2.0: {}
     
    -  /snake-case@3.0.4:
    -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
    +  snake-case@3.0.4:
         dependencies:
           dot-case: 3.0.4
           tslib: 2.6.2
    -    dev: true
     
    -  /sockjs@0.3.24:
    -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
    +  sockjs@0.3.24:
         dependencies:
           faye-websocket: 0.11.4
           uuid: 8.3.2
           websocket-driver: 0.7.4
     
    -  /socks-proxy-agent@6.1.1:
    -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@6.1.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
           socks: 2.8.1
         transitivePeerDependencies:
           - supports-color
    -    dev: false
     
    -  /socks-proxy-agent@6.2.1:
    -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@6.2.1:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -15795,9 +19754,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /socks-proxy-agent@7.0.0:
    -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
    -    engines: {node: '>= 10'}
    +  socks-proxy-agent@7.0.0:
         dependencies:
           agent-base: 6.0.2
           debug: 4.3.4(supports-color@8.1.1)
    @@ -15805,89 +19762,58 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /socks@2.8.1:
    -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
    -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
    +  socks@2.8.1:
         dependencies:
           ip-address: 9.0.5
           smart-buffer: 4.2.0
     
    -  /sort-css-media-queries@2.1.0:
    -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
    -    engines: {node: '>= 6.3.0'}
    -    dev: false
    +  sort-css-media-queries@2.1.0: {}
     
    -  /sort-keys@4.2.0:
    -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
    -    engines: {node: '>=8'}
    +  sort-keys@4.2.0:
         dependencies:
           is-plain-obj: 2.1.0
     
    -  /sort-keys@5.0.0:
    -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
    -    engines: {node: '>=12'}
    +  sort-keys@5.0.0:
         dependencies:
           is-plain-obj: 4.1.0
    -    dev: true
     
    -  /source-map-js@1.2.0:
    -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
    -    engines: {node: '>=0.10.0'}
    +  source-map-js@1.2.0: {}
     
    -  /source-map-support@0.5.13:
    -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
    +  source-map-support@0.5.13:
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
    -    dev: true
     
    -  /source-map-support@0.5.21:
    -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
    +  source-map-support@0.5.21:
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
     
    -  /source-map-url@0.4.1:
    -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    -    deprecated: See https://github.com/lydell/source-map-url#deprecated
    -    dev: true
    +  source-map-url@0.4.1: {}
     
    -  /source-map@0.5.6:
    -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  source-map@0.5.6: {}
     
    -  /source-map@0.6.1:
    -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
    -    engines: {node: '>=0.10.0'}
    +  source-map@0.6.1: {}
     
    -  /source-map@0.7.4:
    -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    -    engines: {node: '>= 8'}
    +  source-map@0.7.4: {}
     
    -  /space-separated-tokens@2.0.2:
    -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
    +  space-separated-tokens@2.0.2: {}
     
    -  /spdx-correct@3.2.0:
    -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
    +  spdx-correct@3.2.0:
         dependencies:
           spdx-expression-parse: 3.0.1
           spdx-license-ids: 3.0.17
     
    -  /spdx-exceptions@2.5.0:
    -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
    +  spdx-exceptions@2.5.0: {}
     
    -  /spdx-expression-parse@3.0.1:
    -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
    +  spdx-expression-parse@3.0.1:
         dependencies:
           spdx-exceptions: 2.5.0
           spdx-license-ids: 3.0.17
     
    -  /spdx-license-ids@3.0.17:
    -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
    +  spdx-license-ids@3.0.17: {}
     
    -  /spdy-transport@3.0.0:
    -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
    +  spdy-transport@3.0.0:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           detect-node: 2.1.0
    @@ -15898,9 +19824,7 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /spdy@4.0.2:
    -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
    -    engines: {node: '>=6.0.0'}
    +  spdy@4.0.2:
         dependencies:
           debug: 4.3.4(supports-color@8.1.1)
           handle-thing: 2.0.1
    @@ -15910,138 +19834,88 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /split2@3.2.2:
    -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
    +  split2@3.2.2:
         dependencies:
           readable-stream: 3.6.2
     
    -  /sprintf-js@1.0.3:
    -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    +  sprintf-js@1.0.3: {}
     
    -  /sprintf-js@1.1.3:
    -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
    +  sprintf-js@1.1.3: {}
     
    -  /srcset@4.0.0:
    -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  srcset@4.0.0: {}
     
    -  /ssri@10.0.5:
    -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  ssri@10.0.5:
         dependencies:
           minipass: 7.0.4
     
    -  /ssri@8.0.1:
    -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
    -    engines: {node: '>= 8'}
    +  ssri@8.0.1:
         dependencies:
           minipass: 3.3.6
     
    -  /ssri@9.0.1:
    -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  ssri@9.0.1:
         dependencies:
           minipass: 3.3.6
     
    -  /stable@0.1.8:
    -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
    -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
    -    dev: false
    +  stable@0.1.8: {}
     
    -  /stack-generator@2.0.10:
    -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
    +  stack-generator@2.0.10:
         dependencies:
           stackframe: 1.3.4
    -    dev: false
     
    -  /stack-trace@0.0.10:
    -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
    +  stack-trace@0.0.10: {}
     
    -  /stack-utils@2.0.6:
    -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
    -    engines: {node: '>=10'}
    +  stack-utils@2.0.6:
         dependencies:
           escape-string-regexp: 2.0.0
    -    dev: true
     
    -  /stackframe@1.3.4:
    -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
    -    dev: false
    +  stackframe@1.3.4: {}
     
    -  /stacktrace-gps@3.1.2:
    -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
    +  stacktrace-gps@3.1.2:
         dependencies:
           source-map: 0.5.6
           stackframe: 1.3.4
    -    dev: false
     
    -  /stacktrace-js@2.0.2:
    -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
    +  stacktrace-js@2.0.2:
         dependencies:
           error-stack-parser: 2.1.4
           stack-generator: 2.0.10
           stacktrace-gps: 3.1.2
    -    dev: false
     
    -  /stacktracey@2.1.8:
    -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
    +  stacktracey@2.1.8:
         dependencies:
           as-table: 1.0.55
           get-source: 2.0.12
    -    dev: true
     
    -  /statuses@1.5.0:
    -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
    -    engines: {node: '>= 0.6'}
    +  statuses@1.5.0: {}
     
    -  /statuses@2.0.1:
    -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
    -    engines: {node: '>= 0.8'}
    +  statuses@2.0.1: {}
     
    -  /std-env@3.7.0:
    -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
    -    dev: false
    +  std-env@3.7.0: {}
     
    -  /stop-iteration-iterator@1.0.0:
    -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
    -    engines: {node: '>= 0.4'}
    +  stop-iteration-iterator@1.0.0:
         dependencies:
           internal-slot: 1.0.7
    -    dev: true
     
    -  /streamsearch@1.1.0:
    -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
    -    engines: {node: '>=10.0.0'}
    -    dev: false
    +  streamsearch@1.1.0: {}
     
    -  /string-length@4.0.2:
    -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
    -    engines: {node: '>=10'}
    +  string-length@4.0.2:
         dependencies:
           char-regex: 1.0.2
           strip-ansi: 6.0.1
    -    dev: true
     
    -  /string-width@4.2.3:
    -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    -    engines: {node: '>=8'}
    +  string-width@4.2.3:
         dependencies:
           emoji-regex: 8.0.0
           is-fullwidth-code-point: 3.0.0
           strip-ansi: 6.0.1
     
    -  /string-width@5.1.2:
    -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    -    engines: {node: '>=12'}
    +  string-width@5.1.2:
         dependencies:
           eastasianwidth: 0.2.0
           emoji-regex: 9.2.2
           strip-ansi: 7.1.0
     
    -  /string.prototype.matchall@4.0.11:
    -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.matchall@4.0.11:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
    @@ -16055,195 +19929,117 @@ packages:
           regexp.prototype.flags: 1.5.2
           set-function-name: 2.0.2
           side-channel: 1.0.6
    -    dev: true
     
    -  /string.prototype.trim@1.2.9:
    -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.trim@1.2.9:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-abstract: 1.23.2
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string.prototype.trimend@1.0.8:
    -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
    +  string.prototype.trimend@1.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string.prototype.trimstart@1.0.8:
    -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
    -    engines: {node: '>= 0.4'}
    +  string.prototype.trimstart@1.0.8:
         dependencies:
           call-bind: 1.0.7
           define-properties: 1.2.1
           es-object-atoms: 1.0.0
    -    dev: true
     
    -  /string_decoder@1.1.1:
    -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
    +  string_decoder@1.1.1:
         dependencies:
           safe-buffer: 5.1.2
     
    -  /string_decoder@1.3.0:
    -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
    +  string_decoder@1.3.0:
         dependencies:
           safe-buffer: 5.2.1
     
    -  /stringify-entities@4.0.3:
    -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
    +  stringify-entities@4.0.3:
         dependencies:
           character-entities-html4: 2.1.0
           character-entities-legacy: 3.0.0
     
    -  /stringify-object@3.3.0:
    -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
    -    engines: {node: '>=4'}
    +  stringify-object@3.3.0:
         dependencies:
           get-own-enumerable-property-symbols: 3.0.2
           is-obj: 1.0.1
           is-regexp: 1.0.0
    -    dev: false
     
    -  /strip-ansi@6.0.1:
    -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    -    engines: {node: '>=8'}
    +  strip-ansi@6.0.1:
         dependencies:
           ansi-regex: 5.0.1
     
    -  /strip-ansi@7.1.0:
    -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    -    engines: {node: '>=12'}
    +  strip-ansi@7.1.0:
         dependencies:
           ansi-regex: 6.0.1
     
    -  /strip-bom-buf@1.0.0:
    -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
    -    engines: {node: '>=4'}
    +  strip-bom-buf@1.0.0:
         dependencies:
           is-utf8: 0.2.1
     
    -  /strip-bom-stream@2.0.0:
    -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
    -    engines: {node: '>=0.10.0'}
    +  strip-bom-stream@2.0.0:
         dependencies:
           first-chunk-stream: 2.0.0
           strip-bom: 2.0.0
     
    -  /strip-bom-string@1.0.0:
    -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  strip-bom-string@1.0.0: {}
     
    -  /strip-bom@2.0.0:
    -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
    -    engines: {node: '>=0.10.0'}
    +  strip-bom@2.0.0:
         dependencies:
           is-utf8: 0.2.1
     
    -  /strip-bom@3.0.0:
    -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
    -    engines: {node: '>=4'}
    +  strip-bom@3.0.0: {}
     
    -  /strip-bom@4.0.0:
    -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
    -    engines: {node: '>=8'}
    +  strip-bom@4.0.0: {}
     
    -  /strip-comments-strings@1.2.0:
    -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
    -    dev: true
    +  strip-comments-strings@1.2.0: {}
     
    -  /strip-final-newline@2.0.0:
    -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
    -    engines: {node: '>=6'}
    +  strip-final-newline@2.0.0: {}
     
    -  /strip-indent@3.0.0:
    -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
    -    engines: {node: '>=8'}
    +  strip-indent@3.0.0:
         dependencies:
           min-indent: 1.0.1
    -    dev: true
     
    -  /strip-indent@4.0.0:
    -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
    -    engines: {node: '>=12'}
    +  strip-indent@4.0.0:
         dependencies:
           min-indent: 1.0.1
    -    dev: true
     
    -  /strip-json-comments@2.0.1:
    -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
    -    engines: {node: '>=0.10.0'}
    -    dev: false
    +  strip-json-comments@2.0.1: {}
     
    -  /strip-json-comments@3.1.1:
    -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    -    engines: {node: '>=8'}
    +  strip-json-comments@3.1.1: {}
     
    -  /strnum@1.0.5:
    -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
    -    dev: true
    +  strnum@1.0.5: {}
     
    -  /style-loader@3.3.4(webpack@5.91.0):
    -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    +  style-loader@3.3.4(webpack@5.91.0):
         dependencies:
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /style-to-object@0.4.4:
    -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
    +  style-to-object@0.4.4:
         dependencies:
           inline-style-parser: 0.1.1
     
    -  /style-to-object@1.0.5:
    -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
    +  style-to-object@1.0.5:
         dependencies:
           inline-style-parser: 0.2.2
     
    -  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
    -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
    -    engines: {node: '>= 12.0.0'}
    -    peerDependencies:
    -      '@babel/core': '*'
    -      babel-plugin-macros: '*'
    -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      babel-plugin-macros:
    -        optional: true
    +  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
         dependencies:
           '@babel/core': 7.24.3
           client-only: 0.0.1
           react: 18.2.0
    -    dev: false
     
    -  /stylehacks@5.1.1(postcss@8.4.38):
    -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
    -    engines: {node: ^10 || ^12 || >=14.0}
    -    peerDependencies:
    -      postcss: ^8.2.15
    +  stylehacks@5.1.1(postcss@8.4.38):
         dependencies:
           browserslist: 4.23.0
           postcss: 8.4.38
           postcss-selector-parser: 6.0.16
    -    dev: false
     
    -  /stylis@4.3.1:
    -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
    -    dev: false
    +  stylis@4.3.1: {}
     
    -  /sucrase@3.35.0:
    -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    +  sucrase@3.35.0:
         dependencies:
           '@jridgewell/gen-mapping': 0.3.5
           commander: 4.1.1
    @@ -16252,37 +20048,24 @@ packages:
           mz: 2.7.0
           pirates: 4.0.6
           ts-interface-checker: 0.1.13
    -    dev: true
     
    -  /supports-color@5.5.0:
    -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
    -    engines: {node: '>=4'}
    +  supports-color@5.5.0:
         dependencies:
           has-flag: 3.0.0
     
    -  /supports-color@7.2.0:
    -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
    -    engines: {node: '>=8'}
    +  supports-color@7.2.0:
         dependencies:
           has-flag: 4.0.0
     
    -  /supports-color@8.1.1:
    -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
    -    engines: {node: '>=10'}
    +  supports-color@8.1.1:
         dependencies:
           has-flag: 4.0.0
     
    -  /supports-preserve-symlinks-flag@1.0.0:
    -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    -    engines: {node: '>= 0.4'}
    +  supports-preserve-symlinks-flag@1.0.0: {}
     
    -  /svg-parser@2.0.4:
    -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
    +  svg-parser@2.0.4: {}
     
    -  /svgo@2.8.0:
    -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    +  svgo@2.8.0:
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -16291,12 +20074,8 @@ packages:
           csso: 4.2.0
           picocolors: 1.0.0
           stable: 0.1.8
    -    dev: false
     
    -  /svgo@3.2.0:
    -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    +  svgo@3.2.0:
         dependencies:
           '@trysound/sax': 0.2.0
           commander: 7.2.0
    @@ -16305,16 +20084,10 @@ packages:
           css-what: 6.1.0
           csso: 5.0.5
           picocolors: 1.0.0
    -    dev: true
     
    -  /symbol-tree@3.2.4:
    -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    -    dev: true
    +  symbol-tree@3.2.4: {}
     
    -  /syncpack@12.3.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
    -    engines: {node: '>=16'}
    -    hasBin: true
    +  syncpack@12.3.0(typescript@5.4.3):
         dependencies:
           '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
           chalk: 4.1.2
    @@ -16334,17 +20107,10 @@ packages:
           ts-toolbelt: 9.6.0
         transitivePeerDependencies:
           - typescript
    -    dev: true
     
    -  /tail@2.2.6:
    -    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
    -    engines: {node: '>= 6.0.0'}
    -    dev: false
    +  tail@2.2.6: {}
     
    -  /tailwindcss@3.4.1(ts-node@10.9.2):
    -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    +  tailwindcss@3.4.1(ts-node@10.9.2):
         dependencies:
           '@alloc/quick-lru': 5.2.0
           arg: 5.0.2
    @@ -16370,20 +20136,12 @@ packages:
           sucrase: 3.35.0
         transitivePeerDependencies:
           - ts-node
    -    dev: true
     
    -  /tapable@1.1.3:
    -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  tapable@1.1.3: {}
     
    -  /tapable@2.2.1:
    -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    -    engines: {node: '>=6'}
    +  tapable@2.2.1: {}
     
    -  /tar@6.2.1:
    -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
    -    engines: {node: '>=10'}
    +  tar@6.2.1:
         dependencies:
           chownr: 2.0.0
           fs-minipass: 2.1.0
    @@ -16392,21 +20150,7 @@ packages:
           mkdirp: 1.0.4
           yallist: 4.0.0
     
    -  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
    -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      '@swc/core': '*'
    -      esbuild: '*'
    -      uglify-js: '*'
    -      webpack: ^5.1.0
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      esbuild:
    -        optional: true
    -      uglify-js:
    -        optional: true
    +  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           esbuild: 0.20.2
    @@ -16416,195 +20160,105 @@ packages:
           terser: 5.29.2
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /terser@5.29.2:
    -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
    -    engines: {node: '>=10'}
    -    hasBin: true
    +  terser@5.29.2:
         dependencies:
           '@jridgewell/source-map': 0.3.6
           acorn: 8.11.3
           commander: 2.20.3
           source-map-support: 0.5.21
     
    -  /test-exclude@6.0.0:
    -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    -    engines: {node: '>=8'}
    +  test-exclude@6.0.0:
         dependencies:
           '@istanbuljs/schema': 0.1.3
           glob: 7.2.3
           minimatch: 3.1.2
    -    dev: true
     
    -  /text-hex@1.0.0:
    -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
    +  text-hex@1.0.0: {}
     
    -  /text-table@0.2.0:
    -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
    +  text-table@0.2.0: {}
     
    -  /textextensions@5.16.0:
    -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
    -    engines: {node: '>=0.8'}
    +  textextensions@5.16.0: {}
     
    -  /thenify-all@1.6.0:
    -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    -    engines: {node: '>=0.8'}
    +  thenify-all@1.6.0:
         dependencies:
           thenify: 3.3.1
    -    dev: true
     
    -  /thenify@3.3.1:
    -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    +  thenify@3.3.1:
         dependencies:
           any-promise: 1.3.0
    -    dev: true
     
    -  /throttle-debounce@3.0.1:
    -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
    -    engines: {node: '>=10'}
    -    dev: false
    +  throttle-debounce@3.0.1: {}
     
    -  /through2@4.0.2:
    -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
    +  through2@4.0.2:
         dependencies:
           readable-stream: 3.6.2
     
    -  /through@2.3.8:
    -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
    +  through@2.3.8: {}
     
    -  /thunky@1.1.0:
    -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
    +  thunky@1.1.0: {}
     
    -  /tightrope@0.1.0:
    -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
    -    engines: {node: '>=14'}
    -    dev: true
    +  tightrope@0.1.0: {}
     
    -  /tiny-invariant@1.3.3:
    -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
    -    dev: false
    +  tiny-invariant@1.3.3: {}
     
    -  /tiny-warning@1.0.3:
    -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    -    dev: false
    +  tiny-warning@1.0.3: {}
     
    -  /tinycolor2@1.6.0:
    -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
    -    dev: false
    +  tinycolor2@1.6.0: {}
     
    -  /tmp@0.0.33:
    -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
    -    engines: {node: '>=0.6.0'}
    +  tmp@0.0.33:
         dependencies:
           os-tmpdir: 1.0.2
     
    -  /tmpl@1.0.5:
    -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    -    dev: true
    +  tmpl@1.0.5: {}
     
    -  /to-fast-properties@2.0.0:
    -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
    -    engines: {node: '>=4'}
    +  to-fast-properties@2.0.0: {}
     
    -  /to-regex-range@5.0.1:
    -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
    -    engines: {node: '>=8.0'}
    +  to-regex-range@5.0.1:
         dependencies:
           is-number: 7.0.0
     
    -  /toggle-selection@1.0.6:
    -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
    -    dev: false
    +  toggle-selection@1.0.6: {}
     
    -  /toidentifier@1.0.1:
    -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
    -    engines: {node: '>=0.6'}
    +  toidentifier@1.0.1: {}
     
    -  /totalist@3.0.1:
    -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
    -    engines: {node: '>=6'}
    -    dev: false
    +  totalist@3.0.1: {}
     
    -  /tough-cookie@4.1.3:
    -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
    -    engines: {node: '>=6'}
    +  tough-cookie@4.1.3:
         dependencies:
           psl: 1.9.0
           punycode: 2.3.1
           universalify: 0.2.0
           url-parse: 1.5.10
    -    dev: true
     
    -  /tr46@0.0.3:
    -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
    +  tr46@0.0.3: {}
     
    -  /tr46@3.0.0:
    -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
    -    engines: {node: '>=12'}
    +  tr46@3.0.0:
         dependencies:
           punycode: 2.3.1
    -    dev: true
     
    -  /treeverse@1.0.4:
    -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
    +  treeverse@1.0.4: {}
     
    -  /trie-search@2.0.0:
    -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
    +  trie-search@2.0.0:
         dependencies:
           hasharray: 1.1.2
    -    dev: false
     
    -  /trim-lines@3.0.1:
    -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
    +  trim-lines@3.0.1: {}
     
    -  /trim-newlines@4.1.1:
    -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  trim-newlines@4.1.1: {}
     
    -  /triple-beam@1.4.1:
    -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
    -    engines: {node: '>= 14.0.0'}
    +  triple-beam@1.4.1: {}
     
    -  /trough@2.2.0:
    -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
    +  trough@2.2.0: {}
     
    -  /ts-api-utils@1.3.0(typescript@5.4.3):
    -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
    -    engines: {node: '>=16'}
    -    peerDependencies:
    -      typescript: '>=4.2.0'
    +  ts-api-utils@1.3.0(typescript@5.4.3):
         dependencies:
           typescript: 5.4.3
    -    dev: true
     
    -  /ts-easing@0.2.0:
    -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
    -    dev: false
    +  ts-easing@0.2.0: {}
     
    -  /ts-interface-checker@0.1.13:
    -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    -    dev: true
    +  ts-interface-checker@0.1.13: {}
     
    -  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
    -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
    -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      '@babel/core': '>=7.0.0-beta.0 <8'
    -      '@jest/types': ^29.0.0
    -      babel-jest: ^29.0.0
    -      esbuild: '*'
    -      jest: ^29.0.0
    -      typescript: '>=4.3 <6'
    -    peerDependenciesMeta:
    -      '@babel/core':
    -        optional: true
    -      '@jest/types':
    -        optional: true
    -      babel-jest:
    -        optional: true
    -      esbuild:
    -        optional: true
    +  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
         dependencies:
           '@babel/core': 7.24.3
           bs-logger: 0.2.6
    @@ -16618,14 +20272,8 @@ packages:
           semver: 7.6.0
           typescript: 5.4.3
           yargs-parser: 21.1.1
    -    dev: true
     
    -  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
    -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
    -    engines: {node: '>=12.0.0'}
    -    peerDependencies:
    -      typescript: '*'
    -      webpack: ^5.0.0
    +  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
         dependencies:
           chalk: 4.1.2
           enhanced-resolve: 5.16.0
    @@ -16634,21 +20282,8 @@ packages:
           source-map: 0.7.4
           typescript: 5.4.3
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: true
     
    -  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
    -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
    -    hasBin: true
    -    peerDependencies:
    -      '@swc/core': '>=1.2.50'
    -      '@swc/wasm': '>=1.2.50'
    -      '@types/node': '*'
    -      typescript: '>=2.7'
    -    peerDependenciesMeta:
    -      '@swc/core':
    -        optional: true
    -      '@swc/wasm':
    -        optional: true
    +  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
         dependencies:
           '@cspotcode/source-map-support': 0.8.1
           '@tsconfig/node10': 1.0.10
    @@ -16665,27 +20300,19 @@ packages:
           typescript: 5.4.3
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
    -    dev: true
     
    -  /ts-toolbelt@9.6.0:
    -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
    -    dev: true
    +  ts-toolbelt@9.6.0: {}
     
    -  /tsconfig-paths@3.15.0:
    -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
    +  tsconfig-paths@3.15.0:
         dependencies:
           '@types/json5': 0.0.29
           json5: 1.0.2
           minimist: 1.2.8
           strip-bom: 3.0.0
    -    dev: true
     
    -  /tslib@2.6.2:
    -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
    +  tslib@2.6.2: {}
     
    -  /tuf-js@1.1.7:
    -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  tuf-js@1.1.7:
         dependencies:
           '@tufjs/models': 1.0.4
           debug: 4.3.4(supports-color@8.1.1)
    @@ -16693,77 +20320,46 @@ packages:
         transitivePeerDependencies:
           - supports-color
     
    -  /type-check@0.4.0:
    -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
    -    engines: {node: '>= 0.8.0'}
    +  type-check@0.4.0:
         dependencies:
           prelude-ls: 1.2.1
     
    -  /type-detect@4.0.8:
    -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
    -    engines: {node: '>=4'}
    -    dev: true
    +  type-detect@4.0.8: {}
     
    -  /type-fest@0.20.2:
    -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
    -    engines: {node: '>=10'}
    +  type-fest@0.20.2: {}
     
    -  /type-fest@0.21.3:
    -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
    -    engines: {node: '>=10'}
    +  type-fest@0.21.3: {}
     
    -  /type-fest@0.6.0:
    -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    -    engines: {node: '>=8'}
    +  type-fest@0.6.0: {}
     
    -  /type-fest@0.8.1:
    -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
    -    engines: {node: '>=8'}
    +  type-fest@0.8.1: {}
     
    -  /type-fest@1.4.0:
    -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
    -    engines: {node: '>=10'}
    +  type-fest@1.4.0: {}
     
    -  /type-fest@2.19.0:
    -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  type-fest@2.19.0: {}
     
    -  /type-fest@4.14.0:
    -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
    -    engines: {node: '>=16'}
    -    dev: false
    +  type-fest@4.14.0: {}
     
    -  /type-is@1.6.18:
    -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
    -    engines: {node: '>= 0.6'}
    +  type-is@1.6.18:
         dependencies:
           media-typer: 0.3.0
           mime-types: 2.1.35
     
    -  /typed-array-buffer@1.0.2:
    -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-buffer@1.0.2:
         dependencies:
           call-bind: 1.0.7
           es-errors: 1.3.0
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-byte-length@1.0.1:
    -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-byte-length@1.0.1:
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-byte-offset@1.0.2:
    -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-byte-offset@1.0.2:
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
    @@ -16771,11 +20367,8 @@ packages:
           gopd: 1.0.1
           has-proto: 1.0.3
           is-typed-array: 1.1.13
    -    dev: true
     
    -  /typed-array-length@1.0.6:
    -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
    -    engines: {node: '>= 0.4'}
    +  typed-array-length@1.0.6:
         dependencies:
           call-bind: 1.0.7
           for-each: 0.3.3
    @@ -16783,53 +20376,34 @@ packages:
           has-proto: 1.0.3
           is-typed-array: 1.1.13
           possible-typed-array-names: 1.0.0
    -    dev: true
     
    -  /typedarray-to-buffer@3.1.5:
    -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
    +  typedarray-to-buffer@3.1.5:
         dependencies:
           is-typedarray: 1.0.0
     
    -  /typescript@5.4.3:
    -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
    -    engines: {node: '>=14.17'}
    -    hasBin: true
    +  typescript@5.4.3: {}
     
    -  /unbox-primitive@1.0.2:
    -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
    +  unbox-primitive@1.0.2:
         dependencies:
           call-bind: 1.0.7
           has-bigints: 1.0.2
           has-symbols: 1.0.3
           which-boxed-primitive: 1.0.2
    -    dev: true
     
    -  /unicode-canonical-property-names-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
    -    engines: {node: '>=4'}
    +  unicode-canonical-property-names-ecmascript@2.0.0: {}
     
    -  /unicode-emoji-modifier-base@1.0.0:
    -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
    -    engines: {node: '>=4'}
    -    dev: false
    +  unicode-emoji-modifier-base@1.0.0: {}
     
    -  /unicode-match-property-ecmascript@2.0.0:
    -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
    -    engines: {node: '>=4'}
    +  unicode-match-property-ecmascript@2.0.0:
         dependencies:
           unicode-canonical-property-names-ecmascript: 2.0.0
           unicode-property-aliases-ecmascript: 2.1.0
     
    -  /unicode-match-property-value-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
    -    engines: {node: '>=4'}
    +  unicode-match-property-value-ecmascript@2.1.0: {}
     
    -  /unicode-property-aliases-ecmascript@2.1.0:
    -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
    -    engines: {node: '>=4'}
    +  unicode-property-aliases-ecmascript@2.1.0: {}
     
    -  /unified@11.0.4:
    -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
    +  unified@11.0.4:
         dependencies:
           '@types/unist': 3.0.2
           bail: 2.0.2
    @@ -16839,133 +20413,91 @@ packages:
           trough: 2.2.0
           vfile: 6.0.1
     
    -  /union@0.5.0:
    -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
    -    engines: {node: '>= 0.8.0'}
    +  union@0.5.0:
         dependencies:
           qs: 6.12.0
    -    dev: true
     
    -  /unique-filename@1.1.1:
    -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
    +  unique-filename@1.1.1:
         dependencies:
           unique-slug: 2.0.2
     
    -  /unique-filename@2.0.1:
    -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  unique-filename@2.0.1:
         dependencies:
           unique-slug: 3.0.0
     
    -  /unique-filename@3.0.0:
    -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  unique-filename@3.0.0:
         dependencies:
           unique-slug: 4.0.0
     
    -  /unique-slug@2.0.2:
    -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
    +  unique-slug@2.0.2:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-slug@3.0.0:
    -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  unique-slug@3.0.0:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-slug@4.0.0:
    -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  unique-slug@4.0.0:
         dependencies:
           imurmurhash: 0.1.4
     
    -  /unique-string@2.0.0:
    -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
    -    engines: {node: '>=8'}
    +  unique-string@2.0.0:
         dependencies:
           crypto-random-string: 2.0.0
    -    dev: true
     
    -  /unique-string@3.0.0:
    -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
    -    engines: {node: '>=12'}
    +  unique-string@3.0.0:
         dependencies:
           crypto-random-string: 4.0.0
    -    dev: false
     
    -  /unist-util-is@6.0.0:
    -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
    +  unist-util-is@6.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-position-from-estree@2.0.0:
    -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
    +  unist-util-position-from-estree@2.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-position@5.0.0:
    -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
    +  unist-util-position@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-remove-position@5.0.0:
    -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
    +  unist-util-remove-position@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-visit: 5.0.0
     
    -  /unist-util-stringify-position@4.0.0:
    -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
    +  unist-util-stringify-position@4.0.0:
         dependencies:
           '@types/unist': 3.0.2
     
    -  /unist-util-visit-parents@6.0.1:
    -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
    +  unist-util-visit-parents@6.0.1:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
     
    -  /unist-util-visit@5.0.0:
    -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
    +  unist-util-visit@5.0.0:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-is: 6.0.0
           unist-util-visit-parents: 6.0.1
     
    -  /universal-user-agent@6.0.1:
    -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
    +  universal-user-agent@6.0.1: {}
     
    -  /universalify@0.2.0:
    -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
    -    engines: {node: '>= 4.0.0'}
    -    dev: true
    +  universalify@0.2.0: {}
     
    -  /universalify@2.0.1:
    -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
    -    engines: {node: '>= 10.0.0'}
    +  universalify@2.0.1: {}
     
    -  /unpipe@1.0.0:
    -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    -    engines: {node: '>= 0.8'}
    +  unpipe@1.0.0: {}
     
    -  /untildify@4.0.0:
    -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
    -    engines: {node: '>=8'}
    +  untildify@4.0.0: {}
     
    -  /update-browserslist-db@1.0.13(browserslist@4.23.0):
    -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
    -    hasBin: true
    -    peerDependencies:
    -      browserslist: '>= 4.21.0'
    +  update-browserslist-db@1.0.13(browserslist@4.23.0):
         dependencies:
           browserslist: 4.23.0
           escalade: 3.1.2
           picocolors: 1.0.0
     
    -  /update-notifier@6.0.2:
    -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
    -    engines: {node: '>=14.16'}
    +  update-notifier@6.0.2:
         dependencies:
           boxen: 7.1.1
           chalk: 5.3.0
    @@ -16981,125 +20513,80 @@ packages:
           semver: 7.6.0
           semver-diff: 4.0.0
           xdg-basedir: 5.1.0
    -    dev: false
     
    -  /uri-js@4.4.1:
    -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
    +  uri-js@4.4.1:
         dependencies:
           punycode: 2.3.1
     
    -  /url-join@4.0.1:
    -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
    -    dev: true
    +  url-join@4.0.1: {}
     
    -  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
    -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
    -    engines: {node: '>= 10.13.0'}
    -    peerDependencies:
    -      file-loader: '*'
    -      webpack: ^4.0.0 || ^5.0.0
    -    peerDependenciesMeta:
    -      file-loader:
    -        optional: true
    +  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
         dependencies:
           file-loader: 6.2.0(webpack@5.91.0)
           loader-utils: 2.0.4
           mime-types: 2.1.35
           schema-utils: 3.3.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /url-parse@1.5.10:
    -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
    +  url-parse@1.5.10:
         dependencies:
           querystringify: 2.2.0
           requires-port: 1.0.0
    -    dev: true
     
    -  /util-deprecate@1.0.2:
    -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    +  util-deprecate@1.0.2: {}
     
    -  /utila@0.4.0:
    -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
    +  utila@0.4.0: {}
     
    -  /utility-types@3.11.0:
    -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
    -    engines: {node: '>= 4'}
    +  utility-types@3.11.0: {}
     
    -  /utils-merge@1.0.1:
    -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
    -    engines: {node: '>= 0.4.0'}
    +  utils-merge@1.0.1: {}
     
    -  /uuid@8.3.2:
    -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
    -    hasBin: true
    +  uuid@8.3.2: {}
     
    -  /uuid@9.0.1:
    -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
    -    hasBin: true
    -    dev: false
    +  uuid@9.0.1: {}
     
    -  /v8-compile-cache-lib@3.0.1:
    -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    -    dev: true
    +  v8-compile-cache-lib@3.0.1: {}
     
    -  /v8-to-istanbul@9.2.0:
    -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
    -    engines: {node: '>=10.12.0'}
    +  v8-to-istanbul@9.2.0:
         dependencies:
           '@jridgewell/trace-mapping': 0.3.25
           '@types/istanbul-lib-coverage': 2.0.6
           convert-source-map: 2.0.0
    -    dev: true
     
    -  /validate-npm-package-license@3.0.4:
    -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    +  validate-npm-package-license@3.0.4:
         dependencies:
           spdx-correct: 3.2.0
           spdx-expression-parse: 3.0.1
     
    -  /validate-npm-package-name@3.0.0:
    -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
    +  validate-npm-package-name@3.0.0:
         dependencies:
           builtins: 1.0.3
     
    -  /validate-npm-package-name@5.0.0:
    -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  validate-npm-package-name@5.0.0:
         dependencies:
           builtins: 5.0.1
     
    -  /value-equal@1.0.1:
    -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
    -    dev: false
    +  value-equal@1.0.1: {}
     
    -  /vary@1.1.2:
    -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
    -    engines: {node: '>= 0.8'}
    +  vary@1.1.2: {}
     
    -  /vfile-location@5.0.2:
    -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
    +  vfile-location@5.0.2:
         dependencies:
           '@types/unist': 3.0.2
           vfile: 6.0.1
    -    dev: false
     
    -  /vfile-message@4.0.2:
    -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
    +  vfile-message@4.0.2:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
     
    -  /vfile@6.0.1:
    -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
    +  vfile@6.0.1:
         dependencies:
           '@types/unist': 3.0.2
           unist-util-stringify-position: 4.0.0
           vfile-message: 4.0.2
     
    -  /vinyl-file@3.0.0:
    -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
    -    engines: {node: '>=4'}
    +  vinyl-file@3.0.0:
         dependencies:
           graceful-fs: 4.2.11
           pify: 2.3.0
    @@ -17107,9 +20594,7 @@ packages:
           strip-bom-stream: 2.0.0
           vinyl: 2.2.1
     
    -  /vinyl@2.2.1:
    -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
    -    engines: {node: '>= 0.10'}
    +  vinyl@2.2.1:
         dependencies:
           clone: 2.1.2
           clone-buffer: 1.0.0
    @@ -17118,58 +20603,38 @@ packages:
           remove-trailing-separator: 1.1.0
           replace-ext: 1.0.1
     
    -  /vscode-uri@3.0.8:
    -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
    +  vscode-uri@3.0.8: {}
     
    -  /w3c-xmlserializer@4.0.0:
    -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
    -    engines: {node: '>=14'}
    +  w3c-xmlserializer@4.0.0:
         dependencies:
           xml-name-validator: 4.0.0
    -    dev: true
     
    -  /walk-up-path@1.0.0:
    -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
    +  walk-up-path@1.0.0: {}
     
    -  /walker@1.0.8:
    -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
    +  walker@1.0.8:
         dependencies:
           makeerror: 1.0.12
    -    dev: true
     
    -  /watchpack@2.4.1:
    -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
    -    engines: {node: '>=10.13.0'}
    +  watchpack@2.4.1:
         dependencies:
           glob-to-regexp: 0.4.1
           graceful-fs: 4.2.11
     
    -  /wbuf@1.7.3:
    -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
    +  wbuf@1.7.3:
         dependencies:
           minimalistic-assert: 1.0.1
     
    -  /wcwidth@1.0.1:
    -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
    +  wcwidth@1.0.1:
         dependencies:
           defaults: 1.0.4
     
    -  /web-namespaces@2.0.1:
    -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
    -    dev: false
    +  web-namespaces@2.0.1: {}
     
    -  /webidl-conversions@3.0.1:
    -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
    +  webidl-conversions@3.0.1: {}
     
    -  /webidl-conversions@7.0.0:
    -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  webidl-conversions@7.0.0: {}
     
    -  /webpack-bundle-analyzer@4.10.1:
    -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
    -    engines: {node: '>= 10.13.0'}
    -    hasBin: true
    +  webpack-bundle-analyzer@4.10.1:
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           acorn: 8.11.3
    @@ -17187,24 +20652,8 @@ packages:
         transitivePeerDependencies:
           - bufferutil
           - utf-8-validate
    -    dev: false
     
    -  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
    -    engines: {node: '>=14.15.0'}
    -    hasBin: true
    -    peerDependencies:
    -      '@webpack-cli/generators': '*'
    -      webpack: 5.x.x
    -      webpack-bundle-analyzer: '*'
    -      webpack-dev-server: '*'
    -    peerDependenciesMeta:
    -      '@webpack-cli/generators':
    -        optional: true
    -      webpack-bundle-analyzer:
    -        optional: true
    -      webpack-dev-server:
    -        optional: true
    +  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
         dependencies:
           '@discoveryjs/json-ext': 0.5.7
           '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
    @@ -17223,11 +20672,7 @@ packages:
           webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
           webpack-merge: 5.10.0
     
    -  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
    -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
    -    engines: {node: '>= 12.13.0'}
    -    peerDependencies:
    -      webpack: ^4.0.0 || ^5.0.0
    +  webpack-dev-middleware@5.3.4(webpack@5.91.0):
         dependencies:
           colorette: 2.0.20
           memfs: 3.5.3
    @@ -17235,16 +20680,8 @@ packages:
           range-parser: 1.2.1
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
    -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
    -    engines: {node: '>= 18.12.0'}
    -    peerDependencies:
    -      webpack: ^5.0.0
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    +  webpack-dev-middleware@7.1.1(webpack@5.91.0):
         dependencies:
           colorette: 2.0.20
           memfs: 4.8.0
    @@ -17254,18 +20691,7 @@ packages:
           schema-utils: 4.2.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
     
    -  /webpack-dev-server@4.15.2(webpack@5.91.0):
    -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
    -    engines: {node: '>= 12.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^4.37.0 || ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    +  webpack-dev-server@4.15.2(webpack@5.91.0):
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -17303,20 +20729,8 @@ packages:
           - debug
           - supports-color
           - utf-8-validate
    -    dev: false
     
    -  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
    -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
    -    engines: {node: '>= 18.12.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack: ^5.0.0
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack:
    -        optional: true
    -      webpack-cli:
    -        optional: true
    +  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
         dependencies:
           '@types/bonjour': 3.5.13
           '@types/connect-history-api-fallback': 1.5.4
    @@ -17356,27 +20770,15 @@ packages:
           - supports-color
           - utf-8-validate
     
    -  /webpack-merge@5.10.0:
    -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
    -    engines: {node: '>=10.0.0'}
    +  webpack-merge@5.10.0:
         dependencies:
           clone-deep: 4.0.1
           flat: 5.0.2
           wildcard: 2.0.1
     
    -  /webpack-sources@3.2.3:
    -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
    -    engines: {node: '>=10.13.0'}
    +  webpack-sources@3.2.3: {}
     
    -  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
    -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
    -    engines: {node: '>=10.13.0'}
    -    hasBin: true
    -    peerDependencies:
    -      webpack-cli: '*'
    -    peerDependenciesMeta:
    -      webpack-cli:
    -        optional: true
    +  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
         dependencies:
           '@types/eslint-scope': 3.7.7
           '@types/estree': 1.0.5
    @@ -17408,70 +20810,47 @@ packages:
           - esbuild
           - uglify-js
     
    -  /webpackbar@5.0.2(webpack@5.91.0):
    -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
    -    engines: {node: '>=12'}
    -    peerDependencies:
    -      webpack: 3 || 4 || 5
    +  webpackbar@5.0.2(webpack@5.91.0):
         dependencies:
           chalk: 4.1.2
           consola: 2.15.3
           pretty-time: 1.1.0
           std-env: 3.7.0
           webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
    -    dev: false
     
    -  /websocket-driver@0.7.4:
    -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
    -    engines: {node: '>=0.8.0'}
    +  websocket-driver@0.7.4:
         dependencies:
           http-parser-js: 0.5.8
           safe-buffer: 5.2.1
           websocket-extensions: 0.1.4
     
    -  /websocket-extensions@0.1.4:
    -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
    -    engines: {node: '>=0.8.0'}
    +  websocket-extensions@0.1.4: {}
     
    -  /whatwg-encoding@2.0.0:
    -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
    -    engines: {node: '>=12'}
    +  whatwg-encoding@2.0.0:
         dependencies:
           iconv-lite: 0.6.3
    -    dev: true
     
    -  /whatwg-mimetype@3.0.0:
    -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  whatwg-mimetype@3.0.0: {}
     
    -  /whatwg-url@11.0.0:
    -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
    -    engines: {node: '>=12'}
    +  whatwg-url@11.0.0:
         dependencies:
           tr46: 3.0.0
           webidl-conversions: 7.0.0
    -    dev: true
     
    -  /whatwg-url@5.0.0:
    -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
    +  whatwg-url@5.0.0:
         dependencies:
           tr46: 0.0.3
           webidl-conversions: 3.0.1
     
    -  /which-boxed-primitive@1.0.2:
    -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
    +  which-boxed-primitive@1.0.2:
         dependencies:
           is-bigint: 1.0.4
           is-boolean-object: 1.1.2
           is-number-object: 1.0.7
           is-string: 1.0.7
           is-symbol: 1.0.4
    -    dev: true
     
    -  /which-builtin-type@1.1.3:
    -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
    -    engines: {node: '>= 0.4'}
    +  which-builtin-type@1.1.3:
         dependencies:
           function.prototype.name: 1.1.6
           has-tostringtag: 1.0.2
    @@ -17485,90 +20864,60 @@ packages:
           which-boxed-primitive: 1.0.2
           which-collection: 1.0.2
           which-typed-array: 1.1.15
    -    dev: true
     
    -  /which-collection@1.0.2:
    -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
    -    engines: {node: '>= 0.4'}
    +  which-collection@1.0.2:
         dependencies:
           is-map: 2.0.3
           is-set: 2.0.3
           is-weakmap: 2.0.2
           is-weakset: 2.0.3
    -    dev: true
     
    -  /which-pm@2.0.0:
    -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
    -    engines: {node: '>=8.15'}
    +  which-pm@2.0.0:
         dependencies:
           load-yaml-file: 0.2.0
           path-exists: 4.0.0
     
    -  /which-typed-array@1.1.15:
    -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
    -    engines: {node: '>= 0.4'}
    +  which-typed-array@1.1.15:
         dependencies:
           available-typed-arrays: 1.0.7
           call-bind: 1.0.7
           for-each: 0.3.3
           gopd: 1.0.1
           has-tostringtag: 1.0.2
    -    dev: true
     
    -  /which@1.3.1:
    -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
    -    hasBin: true
    +  which@1.3.1:
         dependencies:
           isexe: 2.0.0
    -    dev: false
     
    -  /which@2.0.2:
    -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    +  which@2.0.2:
         dependencies:
           isexe: 2.0.0
     
    -  /which@3.0.1:
    -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    -    hasBin: true
    +  which@3.0.1:
         dependencies:
           isexe: 2.0.0
     
    -  /wide-align@1.1.5:
    -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
    +  wide-align@1.1.5:
         dependencies:
           string-width: 4.2.3
     
    -  /widest-line@3.1.0:
    -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
    -    engines: {node: '>=8'}
    +  widest-line@3.1.0:
         dependencies:
           string-width: 4.2.3
    -    dev: true
     
    -  /widest-line@4.0.1:
    -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
    -    engines: {node: '>=12'}
    +  widest-line@4.0.1:
         dependencies:
           string-width: 5.1.2
    -    dev: false
     
    -  /wildcard@2.0.1:
    -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
    +  wildcard@2.0.1: {}
     
    -  /winston-transport@4.7.0:
    -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
    -    engines: {node: '>= 12.0.0'}
    +  winston-transport@4.7.0:
         dependencies:
           logform: 2.6.0
           readable-stream: 3.6.2
           triple-beam: 1.4.1
     
    -  /winston@3.11.0:
    -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
    -    engines: {node: '>= 12.0.0'}
    +  winston@3.11.0:
         dependencies:
           '@colors/colors': 1.6.0
           '@dabh/diagnostics': 2.0.3
    @@ -17582,173 +20931,95 @@ packages:
           triple-beam: 1.4.1
           winston-transport: 4.7.0
     
    -  /workerpool@6.2.1:
    -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
    -    dev: true
    +  workerpool@6.2.1: {}
     
    -  /wrap-ansi@6.2.0:
    -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
    -    engines: {node: '>=8'}
    +  wrap-ansi@6.2.0:
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  /wrap-ansi@7.0.0:
    -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    -    engines: {node: '>=10'}
    +  wrap-ansi@7.0.0:
         dependencies:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
     
    -  /wrap-ansi@8.1.0:
    -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    -    engines: {node: '>=12'}
    +  wrap-ansi@8.1.0:
         dependencies:
           ansi-styles: 6.2.1
           string-width: 5.1.2
           strip-ansi: 7.1.0
     
    -  /wrappy@1.0.2:
    -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    +  wrappy@1.0.2: {}
     
    -  /write-file-atomic@3.0.3:
    -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
    +  write-file-atomic@3.0.3:
         dependencies:
           imurmurhash: 0.1.4
           is-typedarray: 1.0.0
           signal-exit: 3.0.7
           typedarray-to-buffer: 3.1.5
     
    -  /write-file-atomic@4.0.2:
    -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
    +  write-file-atomic@4.0.2:
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 3.0.7
     
    -  /write-file-atomic@5.0.1:
    -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
    -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
    +  write-file-atomic@5.0.1:
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 4.1.0
     
    -  /write-json-file@5.0.0:
    -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
    -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +  write-json-file@5.0.0:
         dependencies:
           detect-indent: 7.0.1
           is-plain-obj: 4.1.0
           sort-keys: 5.0.0
           write-file-atomic: 3.0.3
    -    dev: true
     
    -  /write-yaml-file@5.0.0:
    -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
    -    engines: {node: '>=16.14'}
    +  write-yaml-file@5.0.0:
         dependencies:
           js-yaml: 4.1.0
           write-file-atomic: 5.0.1
    -    dev: true
     
    -  /ws@7.5.9:
    -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
    -    engines: {node: '>=8.3.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: ^5.0.2
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    -    dev: false
    +  ws@7.5.9: {}
     
    -  /ws@8.16.0:
    -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
    -    engines: {node: '>=10.0.0'}
    -    peerDependencies:
    -      bufferutil: ^4.0.1
    -      utf-8-validate: '>=5.0.2'
    -    peerDependenciesMeta:
    -      bufferutil:
    -        optional: true
    -      utf-8-validate:
    -        optional: true
    +  ws@8.16.0: {}
     
    -  /xdg-basedir@5.1.0:
    -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
    -    engines: {node: '>=12'}
    -    dev: false
    +  xdg-basedir@5.1.0: {}
     
    -  /xml-js@1.6.11:
    -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
    -    hasBin: true
    +  xml-js@1.6.11:
         dependencies:
           sax: 1.3.0
    -    dev: false
     
    -  /xml-name-validator@4.0.0:
    -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  xml-name-validator@4.0.0: {}
     
    -  /xmlchars@2.2.0:
    -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
    -    dev: true
    +  xmlchars@2.2.0: {}
     
    -  /y18n@5.0.8:
    -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  y18n@5.0.8: {}
     
    -  /yallist@3.1.1:
    -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    +  yallist@3.1.1: {}
     
    -  /yallist@4.0.0:
    -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    +  yallist@4.0.0: {}
     
    -  /yaml@1.10.2:
    -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    -    engines: {node: '>= 6'}
    -    dev: false
    +  yaml@1.10.2: {}
     
    -  /yaml@2.4.1:
    -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
    -    engines: {node: '>= 14'}
    -    hasBin: true
    -    dev: true
    +  yaml@2.4.1: {}
     
    -  /yargs-parser@20.2.4:
    -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  yargs-parser@20.2.4: {}
     
    -  /yargs-parser@20.2.9:
    -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
    -    engines: {node: '>=10'}
    -    dev: true
    +  yargs-parser@20.2.9: {}
     
    -  /yargs-parser@21.1.1:
    -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
    -    engines: {node: '>=12'}
    -    dev: true
    +  yargs-parser@21.1.1: {}
     
    -  /yargs-unparser@2.0.0:
    -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
    -    engines: {node: '>=10'}
    +  yargs-unparser@2.0.0:
         dependencies:
           camelcase: 6.3.0
           decamelize: 4.0.0
           flat: 5.0.2
           is-plain-obj: 2.1.0
    -    dev: true
     
    -  /yargs@16.2.0:
    -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
    -    engines: {node: '>=10'}
    +  yargs@16.2.0:
         dependencies:
           cliui: 7.0.4
           escalade: 3.1.2
    @@ -17757,11 +21028,8 @@ packages:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 20.2.9
    -    dev: true
     
    -  /yargs@17.7.2:
    -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
    -    engines: {node: '>=12'}
    +  yargs@17.7.2:
         dependencies:
           cliui: 8.0.1
           escalade: 3.1.2
    @@ -17770,12 +21038,8 @@ packages:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 21.1.1
    -    dev: true
     
    -  /yeoman-environment@3.19.3:
    -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
    -    engines: {node: '>=12.10.0'}
    -    hasBin: true
    +  yeoman-environment@3.19.3:
         dependencies:
           '@npmcli/arborist': 4.3.1
           are-we-there-yet: 2.0.0
    @@ -17818,14 +21082,7 @@ packages:
           - bluebird
           - supports-color
     
    -  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
    -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
    -    engines: {node: '>=12.10.0'}
    -    peerDependencies:
    -      yeoman-environment: ^3.2.0
    -    peerDependenciesMeta:
    -      yeoman-environment:
    -        optional: true
    +  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
         dependencies:
           chalk: 4.1.2
           dargs: 7.0.0
    @@ -17849,23 +21106,12 @@ packages:
           - mem-fs
           - supports-color
     
    -  /yn@3.1.1:
    -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
    -    engines: {node: '>=6'}
    -    dev: true
    +  yn@3.1.1: {}
     
    -  /yocto-queue@0.1.0:
    -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
    -    engines: {node: '>=10'}
    +  yocto-queue@0.1.0: {}
     
    -  /yocto-queue@1.0.0:
    -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
    -    engines: {node: '>=12.20'}
    -    dev: false
    +  yocto-queue@1.0.0: {}
     
    -  /zod@3.22.4:
    -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
    -    dev: false
    +  zod@3.22.4: {}
     
    -  /zwitch@2.0.4:
    -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
    +  zwitch@2.0.4: {}
    
    From 16d260cd1e34da9dff6e3519e4ee798acec0cb43 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 18:03:05 +0100
    Subject: [PATCH 351/504] ci: tail nvim-data/log
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 21 ++++++++++++++++++-
     1 file changed, 20 insertions(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 9d613cf6fd..a8e627994b 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -121,7 +121,26 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    -    const tail = new Tail(logName, {
    +    // const tail = new Tail(logName, {
    +    //   // separator: "\n",
    +    //   fromBeginning: true,
    +    // });
    +    /*
    +      Test run threw exception:
    +      Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    +          at Object.accessSync (node:fs:254:11)
    +          at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
    +      Returned code: 1
    +          at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
    +          at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
    +        errno: -4058,
    +        code: 'ENOENT',
    +        syscall: 'access',
    +        path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
    +      }
    +    */
    +
    +    const tail = new Tail("C:\\Users\\user\\AppData\\Local\\nvim-data\\log", {
           // separator: "\n",
           fromBeginning: true,
         });
    
    From 65bd946f84774569f8531a6512f336069c307b89 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 18:04:07 +0100
    Subject: [PATCH 352/504] more ci
    
    ---
     .../test-harness/src/launchNeovimAndRunTests.ts | 17 ++++++++++-------
     1 file changed, 10 insertions(+), 7 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index a8e627994b..7376a69738 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -85,9 +85,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // console.log(`signal: ${signal}`);
         // console.log(`error: ${error}`);
     
    -    // C:\Users\user\AppData\Local\nvim\init.lua
    -    // C:\Users\user\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
    -    // C:\Users\user\AppData\Local\nvim-data\log
    +    // C:\Users\runneradmin\AppData\Local\nvim\init.lua
    +    // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
    +    // C:\Users\runneradmin\AppData\Local\nvim-data\log
         copyFile(
           `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
           "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    @@ -140,10 +140,13 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         */
     
    -    const tail = new Tail("C:\\Users\\user\\AppData\\Local\\nvim-data\\log", {
    -      // separator: "\n",
    -      fromBeginning: true,
    -    });
    +    const tail = new Tail(
    +      "C:\\Users\\runneradmin\\AppData\\Local\\nvim-data\\log",
    +      {
    +        // separator: "\n",
    +        fromBeginning: true,
    +      },
    +    );
         tail.on("line", function (data: string) {
           console.log(data);
         });
    
    From c8c0d4e3e32d5b59be621d223c59233064c0fdfd Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 19:00:32 +0100
    Subject: [PATCH 353/504] minor
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 7376a69738..ca74241aed 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -153,6 +153,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         tail.on("error", function (error) {
           console.log("ERROR: ", error);
         });
    +    console.log("tail started done");
     
         await delay(20000);
     
    
    From 2b567defa05f4fb29a8baa16d95efb8c22eaa7d0 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 19:11:01 +0100
    Subject: [PATCH 354/504] ci worked locally
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 21 ++++++++-----------
     1 file changed, 9 insertions(+), 12 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index ca74241aed..42e7caa8c6 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -108,7 +108,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             ...process.env,
             // "NVIM_NODE_HOST_DEBUG": "1",
             NVIM_NODE_LOG_FILE: logName,
    -        NVIM_NODE_LOG_LEVEL: "debug",
    +        NVIM_NODE_LOG_LEVEL: "info",
             CURSORLESS_MODE: "test",
           },
         });
    @@ -121,10 +121,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    -    // const tail = new Tail(logName, {
    -    //   // separator: "\n",
    -    //   fromBeginning: true,
    -    // });
    +    const tail = new Tail(logName, {
    +      // separator: "\n",
    +      fromBeginning: true,
    +    });
         /*
           Test run threw exception:
           Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    @@ -140,13 +140,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         */
     
    -    const tail = new Tail(
    -      "C:\\Users\\runneradmin\\AppData\\Local\\nvim-data\\log",
    -      {
    -        // separator: "\n",
    -        fromBeginning: true,
    -      },
    -    );
    +    // const tail = new Tail("C:\\Users\\runneradmin\\AppData\\Local\\nvim-data\\log", {
    +    //   // separator: "\n",
    +    //   fromBeginning: true,
    +    // });
         tail.on("line", function (data: string) {
           console.log(data);
         });
    
    From 44cbca5acc5b2522ae99e412ea0b44d12b6be6d2 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 19:15:00 +0100
    Subject: [PATCH 355/504] testing ${{ github.workspace }}
    
    ---
     .github/workflows/test.yml | 4 ++++
     1 file changed, 4 insertions(+)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 04a4769728..cde8b83357 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -36,6 +36,10 @@ jobs:
             with:
               node-version-file: .nvmrc
               cache: pnpm
    +      # XXX testing only
    +      - run: dir ${{ github.workspace }}
    +      - run: dir ${{ github.workspace }}/packages
    +      - run: dir ${{ github.workspace }}/packages/test-harness
           - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
             shell: bash
           # NB: we can't comment this for speeding up testing as we get this error when running test harness:
    
    From 2efcbf8cc9eabe08c5d94b5446ef890f057aec77 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 21:20:37 +0100
    Subject: [PATCH 356/504] working locally
    
    ---
     .../test-harness/src/launchNeovimAndRunTests.ts | 17 ++++++++++++++---
     1 file changed, 14 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 42e7caa8c6..4751492a40 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -1,7 +1,7 @@
     import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
    -import { copyFile } from "fs";
    +import { copyFile, exists, unlinkSync } from "fs";
     import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
    @@ -47,9 +47,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
         // const [cli, ...args] =
         //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
    -    const cli = getEnvironmentVariableStrict("APP_PATH");
    +    let cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
    -    // cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    cli = cli.replace("nvim.exe", "nvim-qt.exe");
     
         // Install extension dependencies
         // const extensionInstallArgs = [
    @@ -100,6 +100,17 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         console.log("init.lua copying done");
     
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
    +
    +    // temporary, to delete old log when testing
    +    exists(logName, function (exists) {
    +      if (exists) {
    +        console.log("nvim_node.log exists. Deleting now ...");
    +        unlinkSync(logName);
    +      } else {
    +        console.log("nvim_node.log not found, so not deleting.");
    +      }
    +    });
    +
         // const nvim_process = cp.spawn(cli); // this works
         const nvim_process = cp.spawn(cli, [], {
           // encoding: "utf-8",
    
    From 5b0188355efecb9d0a92fde6e183b5fec9806ca8 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 21:27:39 +0100
    Subject: [PATCH 357/504] nvim-qt.exe does not exist on CI but exists locally?
    
    ---
     .github/workflows/test.yml                    |  1 +
     .../src/launchNeovimAndRunTests.ts            | 20 +++++++++++++++++++
     2 files changed, 21 insertions(+)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index cde8b83357..af5c727d25 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -106,6 +106,7 @@ jobs:
             with:
               version: stable
               neovim: true
    +      - run: dir C:\Users\runneradmin\nvim-stable\bin\
           # XXX: delete this because it doesn't work
           # - name: Run neovim unit tests using themis.vim
           #   env:
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 4751492a40..d2ee7a3770 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -50,6 +50,26 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         let cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
         cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    /*
    +      node:events:496
    +            throw er; // Unhandled 'error' event
    +            ^
    +      Error: spawn C:\Users\runneradmin\nvim-stable\bin\nvim-qt.exe ENOENT
    +          at ChildProcess._handle.onexit (node:internal/child_process:286:19)
    +          at onErrorNT (node:internal/child_process:484:16)
    +          at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
    +      Emitted 'error' event on ChildProcess instance at:
    +          at ChildProcess._handle.onexit (node:internal/child_process:292:12)
    +          at onErrorNT (node:internal/child_process:484:16)
    +          at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
    +        errno: -4058,
    +        code: 'ENOENT',
    +        syscall: 'spawn C:\\Users\\runneradmin\\nvim-stable\\bin\\nvim-qt.exe',
    +        path: 'C:\\Users\\runneradmin\\nvim-stable\\bin\\nvim-qt.exe',
    +        spawnargs: []
    +      }
    +      Node.js v20.12.1
    +    */
     
         // Install extension dependencies
         // const extensionInstallArgs = [
    
    From 3c903374ce835b263443fd64685d5962d8c35f3b Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 21:41:08 +0100
    Subject: [PATCH 358/504] no qt version in stable 0.10 actually
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index d2ee7a3770..6d4362bfd7 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -47,9 +47,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
         // const [cli, ...args] =
         //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
    -    let cli = getEnvironmentVariableStrict("APP_PATH");
    +    const cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
    -    cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    //cli = cli.replace("nvim.exe", "nvim-qt.exe");
         /*
           node:events:496
                 throw er; // Unhandled 'error' event
    
    From 1cecf83df7f382bae927bff9b84a03de07cadfa4 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 21:52:25 +0100
    Subject: [PATCH 359/504] testing nvim 0.9.5
    
    ---
     .github/workflows/test.yml                           | 6 +++++-
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
     2 files changed, 7 insertions(+), 3 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index af5c727d25..147f264cbe 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -18,7 +18,11 @@ jobs:
             # XXX: restore this once neovim tests work in CI
             # os: [macos-latest, ubuntu-latest, windows-latest]
             os: [windows-latest]
    -        app_version: [stable]
    +        # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
    +        # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
    +        # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
    +        # app_version: [stable]
    +        app_version: [v0.9.5]
             # XXX: restore this once neovim tests work in CI
             # include:
             #   - os: ubuntu-latest
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 6d4362bfd7..d2ee7a3770 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -47,9 +47,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
         // const [cli, ...args] =
         //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
    -    const cli = getEnvironmentVariableStrict("APP_PATH");
    +    let cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
    -    //cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    cli = cli.replace("nvim.exe", "nvim-qt.exe");
         /*
           node:events:496
                 throw er; // Unhandled 'error' event
    
    From 630847f114b75d62f49c5aafc36df668302cdc4c Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 21:58:33 +0100
    Subject: [PATCH 360/504] fix version to 0.9.5
    
    ---
     .github/workflows/test.yml | 6 ++++--
     1 file changed, 4 insertions(+), 2 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 147f264cbe..7c33b17faa 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -108,9 +108,11 @@ jobs:
             uses: rhysd/action-setup-vim@v1
             id: vim
             with:
    -          version: stable
    +          version: ${{ matrix.app_version }}
               neovim: true
    -      - run: dir C:\Users\runneradmin\nvim-stable\bin\
    +      - run: dir C:\Users\runneradmin\
    +      # - run: dir C:\Users\runneradmin\nvim-stable\bin\
    +      - run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
           # XXX: delete this because it doesn't work
           # - name: Run neovim unit tests using themis.vim
           #   env:
    
    From 5654aaafbb29ff8204ce6554f912f3c36275cc2b Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 22:10:19 +0100
    Subject: [PATCH 361/504] attempt to save snapshot
    
    ---
     .github/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++-
     1 file changed, 38 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 7c33b17faa..fdabc97f4e 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -111,8 +111,39 @@ jobs:
               version: ${{ matrix.app_version }}
               neovim: true
           - run: dir C:\Users\runneradmin\
    -      # - run: dir C:\Users\runneradmin\nvim-stable\bin\
           - run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
    +      # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
    +      #     Directory: C:\Users\runneradmin\nvim-v0.9.5\bin
    +      # Mode                 LastWriteTime         Length Name
    +      # ----                 -------------         ------ ----
    +      # d----          12/30/2023  1:22 PM                bearer
    +      # d----          12/30/2023  1:22 PM                iconengines
    +      # d----          12/30/2023  1:22 PM                imageformats
    +      # d----          12/30/2023  1:22 PM                platforms
    +      # d----          12/30/2023  1:22 PM                styles
    +      # d----          12/30/2023  1:22 PM                translations
    +      # -a---          12/30/2023  1:20 PM          16384 cat.exe
    +      # -a---          12/30/2023  1:20 PM        4173928 D3Dcompiler_47.dll
    +      # -a---          12/30/2023  1:22 PM        1199296 dbghelp.dll
    +      # -a---          12/30/2023  1:20 PM          68096 diff.exe
    +      # -a---          12/30/2023  1:20 PM          69088 libEGL.dll
    +      # -a---          12/30/2023  1:20 PM          76288 libgcc_s_seh-1.dll
    +      # -a---          12/30/2023  1:20 PM        6298808 libGLESv2.dll
    +      # -a---          12/30/2023  1:20 PM        1417216 libstdc++-6.dll
    +      # -a---          12/30/2023  1:20 PM          52224 libwinpthread-1.dll
    +      # -a---          12/30/2023  1:22 PM         539648 lua51.dll
    +      # -a---          12/30/2023  1:20 PM        3757746 nvim-qt.exe
    +      # -a---          12/30/2023  1:22 PM        5214720 nvim.exe
    +      # -a---          12/30/2023  1:22 PM       13242368 nvim.pdb
    +      # -a---          12/30/2023  1:20 PM       20923392 opengl32sw.dll
    +      # -a---          12/30/2023  1:20 PM        8185968 Qt5Core.dll
    +      # -a---          12/30/2023  1:20 PM        9663232 Qt5Gui.dll
    +      # -a---          12/30/2023  1:20 PM        2699096 Qt5Network.dll
    +      # -a---          12/30/2023  1:20 PM         580088 Qt5Svg.dll
    +      # -a---          12/30/2023  1:20 PM        8662160 Qt5Widgets.dll
    +      # -a---          12/30/2023  1:20 PM         131072 tee.exe
    +      # -a---          12/30/2023  1:20 PM        1137152 win32yank.exe
    +      # -a---          12/30/2023  1:20 PM         151040 xxd.exe
           # XXX: delete this because it doesn't work
           # - name: Run neovim unit tests using themis.vim
           #   env:
    @@ -126,6 +157,12 @@ jobs:
             if: runner.os != 'Linux'
             env:
               APP_PATH: ${{ steps.vim.outputs.executable }}
    +      - name: Save snapshots
    +        if: always()
    +        uses: actions/upload-artifact@v2
    +        with:
    +          save-only: true
    +          path: .artifacts/visual-snapshots
           # XXX: enable this once neovim tests work in CI for Windows
           # - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
           #   if: runner.os == 'Linux'
    
    From 200b2715124fced6bf1f041a27209fa3c4c936df Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 22:20:56 +0100
    Subject: [PATCH 362/504] disable logs hoping to get a screenshot
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 61 ++++++++++---------
     1 file changed, 31 insertions(+), 30 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index d2ee7a3770..10be118f18 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -2,7 +2,7 @@ import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
     import { copyFile, exists, unlinkSync } from "fs";
    -import { Tail } from "tail";
    +//import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
     //   resolveCliArgsFromVSCodeExecutablePath,
    @@ -152,41 +152,42 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    -    const tail = new Tail(logName, {
    -      // separator: "\n",
    -      fromBeginning: true,
    -    });
    -    /*
    -      Test run threw exception:
    -      Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    -          at Object.accessSync (node:fs:254:11)
    -          at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
    -      Returned code: 1
    -          at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
    -          at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
    -        errno: -4058,
    -        code: 'ENOENT',
    -        syscall: 'access',
    -        path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
    -      }
    -    */
    +    // XXX - reenable logging
    +    // for now we disable in order to be able to get a screenshot
     
    -    // const tail = new Tail("C:\\Users\\runneradmin\\AppData\\Local\\nvim-data\\log", {
    +    // read log file live and print to console
    +    // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    +    // const tail = new Tail(logName, {
         //   // separator: "\n",
         //   fromBeginning: true,
         // });
    -    tail.on("line", function (data: string) {
    -      console.log(data);
    -    });
    -    tail.on("error", function (error) {
    -      console.log("ERROR: ", error);
    -    });
    -    console.log("tail started done");
    +    // /*
    +    //   Test run threw exception:
    +    //   Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    +    //       at Object.accessSync (node:fs:254:11)
    +    //       at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
    +    //   Returned code: 1
    +    //       at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
    +    //       at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
    +    //     errno: -4058,
    +    //     code: 'ENOENT',
    +    //     syscall: 'access',
    +    //     path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
    +    //   }
    +    // */
    +
    +    // tail.on("line", function (data: string) {
    +    //   console.log(data);
    +    // });
    +    // tail.on("error", function (error) {
    +    //   console.log("ERROR: ", error);
    +    // });
    +    // console.log("tail started done");
     
    -    await delay(20000);
    +    // await delay(20000);
     
    -    nvim_process.kill("SIGTERM");
    -    console.log(`killed: ${nvim_process.killed}`);
    +    // nvim_process.kill("SIGTERM");
    +    // console.log(`killed: ${nvim_process.killed}`);
     
         // console.log("status: ", status);
         // console.log("signal: ", signal);
    
    From c03fe8417079b19fc0c8c1d8c4ef8c2e71355914 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Thu, 16 May 2024 22:40:10 +0100
    Subject: [PATCH 363/504] working test-harness simulating what is on CI,  that
     works locally
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 63 +++++++++----------
     1 file changed, 30 insertions(+), 33 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 10be118f18..9b40241e2c 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -2,7 +2,7 @@ import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
     import { copyFile, exists, unlinkSync } from "fs";
    -//import { Tail } from "tail";
    +import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
     //   resolveCliArgsFromVSCodeExecutablePath,
    @@ -152,42 +152,39 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    -    // XXX - reenable logging
    -    // for now we disable in order to be able to get a screenshot
    -
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    -    // const tail = new Tail(logName, {
    -    //   // separator: "\n",
    -    //   fromBeginning: true,
    -    // });
    -    // /*
    -    //   Test run threw exception:
    -    //   Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    -    //       at Object.accessSync (node:fs:254:11)
    -    //       at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
    -    //   Returned code: 1
    -    //       at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
    -    //       at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
    -    //     errno: -4058,
    -    //     code: 'ENOENT',
    -    //     syscall: 'access',
    -    //     path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
    -    //   }
    -    // */
    -
    -    // tail.on("line", function (data: string) {
    -    //   console.log(data);
    -    // });
    -    // tail.on("error", function (error) {
    -    //   console.log("ERROR: ", error);
    -    // });
    -    // console.log("tail started done");
    +    const tail = new Tail(logName, {
    +      // separator: "\n",
    +      fromBeginning: true,
    +    });
    +    /*
    +      Test run threw exception:
    +      Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
    +          at Object.accessSync (node:fs:254:11)
    +          at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
    +      Returned code: 1
    +          at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
    +          at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
    +        errno: -4058,
    +        code: 'ENOENT',
    +        syscall: 'access',
    +        path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
    +      }
    +    */
    +
    +    tail.on("line", function (data: string) {
    +      console.log(data);
    +    });
    +    tail.on("error", function (error) {
    +      console.log("ERROR: ", error);
    +    });
    +    console.log("tail started done");
     
    -    // await delay(20000);
    +    await delay(20000);
     
    -    // nvim_process.kill("SIGTERM");
    -    // console.log(`killed: ${nvim_process.killed}`);
    +    nvim_process.kill("SIGTERM");
    +    console.log(`killed: ${nvim_process.killed}`);
     
         // console.log("status: ", status);
         // console.log("signal: ", signal);
    
    From 5886445c58a6c9df980b9ef0d9b725072b79029b Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 08:09:07 +0100
    Subject: [PATCH 364/504] force compile to get out\ folder created
    
    ---
     .github/workflows/test.yml | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index fdabc97f4e..c99ac25c2d 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -58,7 +58,8 @@ jobs:
           # Error: Process completed with exit code 1.
           - run: pnpm --color install
           # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
    -      # - run: pnpm --color compile
    +      # XXX - if we don't run this, we might have to create packages\cursorless-neovim\out folder so the logs can be written
    +      - run: pnpm --color compile
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
           # - run: xvfb-run -a pnpm --color test
    
    From e4fdc16e4a1f3ce99403ba6a5baeeca7bc42baa6 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 08:20:51 +0100
    Subject: [PATCH 365/504] Update test.yml
    
    ---
     .github/workflows/test.yml | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index c99ac25c2d..49698e9803 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -60,6 +60,7 @@ jobs:
           # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
           # XXX - if we don't run this, we might have to create packages\cursorless-neovim\out folder so the logs can be written
           - run: pnpm --color compile
    +      - run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
           # - run: xvfb-run -a pnpm --color test
    
    From d2b672cfbab93c77f05eef807417759d98653a5d Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 09:55:19 +0100
    Subject: [PATCH 366/504] try log at startup
    
    ---
     .github/workflows/test.yml                           | 1 +
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     2 files changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 49698e9803..38ec776669 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -61,6 +61,7 @@ jobs:
           # XXX - if we don't run this, we might have to create packages\cursorless-neovim\out folder so the logs can be written
           - run: pnpm --color compile
           - run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
    +      - run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
           # - run: xvfb-run -a pnpm --color test
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 9b40241e2c..475cff260e 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -132,7 +132,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         });
     
         // const nvim_process = cp.spawn(cli); // this works
    -    const nvim_process = cp.spawn(cli, [], {
    +    const nvim_process = cp.spawn(cli, [`-V9${logName}`], {
           // encoding: "utf-8",
           // stdio: "inherit",
           env: {
    
    From 6ae4af1f041566317f777b655f9b0e434eba2458 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 10:05:27 +0100
    Subject: [PATCH 367/504] try logging harder
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 9 ++++++---
     1 file changed, 6 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 475cff260e..32d69cdc4c 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -131,8 +131,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         });
     
    -    // const nvim_process = cp.spawn(cli); // this works
    -    const nvim_process = cp.spawn(cli, [`-V9${logName}`], {
    +    // const nvim_process = cp.spawn(cli, [], {
    +    //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
    +    const vimlogPath = `${getCursorlessRepoRoot()}\\vim.log`;
    +    const nvim_process = cp.spawn(cli, [`-V9vim.log`], {
           // encoding: "utf-8",
           // stdio: "inherit",
           env: {
    @@ -154,7 +156,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    -    const tail = new Tail(logName, {
    +    // const tail = new Tail(logName, {
    +    const tail = new Tail(vimlogPath, {
           // separator: "\n",
           fromBeginning: true,
         });
    
    From be90ff06bdc24b8533ef880d739c7d69e8724585 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 10:12:33 +0100
    Subject: [PATCH 368/504] checking if vim.log is created
    
    ---
     .../test-harness/src/launchNeovimAndRunTests.ts    | 14 +++++++++++---
     1 file changed, 11 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 32d69cdc4c..66e9d32ffa 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -1,7 +1,7 @@
     import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
    -import { copyFile, exists, unlinkSync } from "fs";
    +import { copyFile, exists, readdirSync, unlinkSync } from "fs";
     import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
    @@ -47,9 +47,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
         // const [cli, ...args] =
         //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
    -    let cli = getEnvironmentVariableStrict("APP_PATH");
    +    const cli = getEnvironmentVariableStrict("APP_PATH");
         // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
    -    cli = cli.replace("nvim.exe", "nvim-qt.exe");
    +    // nvim-qt.exe does not allow logging into file using -V9
    +    //cli = cli.replace("nvim.exe", "nvim-qt.exe");
         /*
           node:events:496
                 throw er; // Unhandled 'error' event
    @@ -154,6 +155,11 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    +    readdirSync(getCursorlessRepoRoot()).forEach((file) => {
    +      console.log(file);
    +    });
    +    console.log("listing root dir done");
    +
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
         // const tail = new Tail(logName, {
    @@ -189,6 +195,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         nvim_process.kill("SIGTERM");
         console.log(`killed: ${nvim_process.killed}`);
     
    +    await delay(20000);
    +
         // console.log("status: ", status);
         // console.log("signal: ", signal);
         // console.log("error: ", error);
    
    From 8965ffb6036db622c3d02f4cc82b30e60cc96d38 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 11:01:24 +0100
    Subject: [PATCH 369/504] attempt to inherit stdout to debug nvim.exe startup
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 26 +++++++++++++++++++
     1 file changed, 26 insertions(+)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 66e9d32ffa..4a1ff66e40 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -132,6 +132,32 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         });
     
    +    const nvim_process2 = cp.spawn(cli, [`-V9`], {
    +      stdio: ["inherit", "pipe", "pipe"],
    +      env: {
    +        ...process.env,
    +        // "NVIM_NODE_HOST_DEBUG": "1",
    +        NVIM_NODE_LOG_FILE: logName,
    +        NVIM_NODE_LOG_LEVEL: "info",
    +        CURSORLESS_MODE: "test",
    +      },
    +    });
    +
    +    const output: string[] = [];
    +
    +    nvim_process2.stdout.on("data", (d) => {
    +      console.log(d.toString());
    +      output.push(d.toString());
    +    });
    +
    +    nvim_process2.stdout.on("end", () => {
    +      console.log("Finished");
    +      console.log({ output });
    +    });
    +
    +    console.log(`Exiting early`);
    +    process.exit(0);
    +
         // const nvim_process = cp.spawn(cli, [], {
         //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
         const vimlogPath = `${getCursorlessRepoRoot()}\\vim.log`;
    
    From 4f5796572e85e237b2cac8bdce326f81aed269d1 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 11:04:58 +0100
    Subject: [PATCH 370/504] spawn sync
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 4a1ff66e40..02a23c5749 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -132,7 +132,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         });
     
    -    const nvim_process2 = cp.spawn(cli, [`-V9`], {
    +    const nvim_process2 = cp.spawnSync(cli, [`-V9`], {
           stdio: ["inherit", "pipe", "pipe"],
           env: {
             ...process.env,
    
    From 999f606ae1da608e0586021282d5fd38d0e080e6 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn 
    Date: Fri, 17 May 2024 11:05:44 +0100
    Subject: [PATCH 371/504] test
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 02a23c5749..23c2481525 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -142,6 +142,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             CURSORLESS_MODE: "test",
           },
         });
    +    console.log(`pid: ${nvim_process2.pid}`);
     
         const output: string[] = [];
     
    
    From 3d9ced5c10a69a2820fe4cd61bf62db7b3ebe9f1 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 13:22:10 +0100
    Subject: [PATCH 372/504] Update launchNeovimAndRunTests.ts
    
    ---
     .../src/launchNeovimAndRunTests.ts             | 18 ++++--------------
     1 file changed, 4 insertions(+), 14 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 23c2481525..5f262f0c78 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -132,7 +132,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         });
     
    -    const nvim_process2 = cp.spawnSync(cli, [`-V9`], {
    +    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
           stdio: ["inherit", "pipe", "pipe"],
           env: {
             ...process.env,
    @@ -142,19 +142,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             CURSORLESS_MODE: "test",
           },
         });
    -    console.log(`pid: ${nvim_process2.pid}`);
    -
    -    const output: string[] = [];
    -
    -    nvim_process2.stdout.on("data", (d) => {
    -      console.log(d.toString());
    -      output.push(d.toString());
    -    });
    -
    -    nvim_process2.stdout.on("end", () => {
    -      console.log("Finished");
    -      console.log({ output });
    -    });
    +    console.log(`status: ${status}`);
    +    console.log(`signal: ${signal}`);
    +    console.log(`error: ${error}`);
     
         console.log(`Exiting early`);
         process.exit(0);
    
    From c7924f87a00d6f91317a0e5535729fa95b29c561 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 13:34:57 +0100
    Subject: [PATCH 373/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 5 +++--
     1 file changed, 3 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 5f262f0c78..47ef0b3038 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -133,9 +133,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         });
     
         const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
    -      stdio: ["inherit", "pipe", "pipe"],
    +      encoding: "utf-8",
    +      stdio: "inherit",
           env: {
    -        ...process.env,
    +        //...process.env,
             // "NVIM_NODE_HOST_DEBUG": "1",
             NVIM_NODE_LOG_FILE: logName,
             NVIM_NODE_LOG_LEVEL: "info",
    
    From eef53903168b3d0d100e4ec7eefe9a3a78de5634 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 16:08:30 +0100
    Subject: [PATCH 374/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 8 +++++---
     1 file changed, 5 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 47ef0b3038..7a65ec4a3c 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -109,7 +109,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
         // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
         // C:\Users\runneradmin\AppData\Local\nvim-data\log
    -    copyFile(
    +    //xxx commenting for now to avoid loading any config since nvim hangs anyway atm
    +    /*copyFile(
           `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
           "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
           (err) => {
    @@ -119,7 +120,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           },
         );
         console.log("init.lua copying done");
    -
    +*/
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
     
         // temporary, to delete old log when testing
    @@ -135,13 +136,14 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
           encoding: "utf-8",
           stdio: "inherit",
    -      env: {
    +      /*env: {
             //...process.env,
             // "NVIM_NODE_HOST_DEBUG": "1",
             NVIM_NODE_LOG_FILE: logName,
             NVIM_NODE_LOG_LEVEL: "info",
             CURSORLESS_MODE: "test",
           },
    +      */
         });
         console.log(`status: ${status}`);
         console.log(`signal: ${signal}`);
    
    From 07ef815c055bf2701dd8522334c8fb08ef0c76be Mon Sep 17 00:00:00 2001
    From: "pre-commit-ci-lite[bot]"
     <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    Date: Fri, 17 May 2024 15:10:07 +0000
    Subject: [PATCH 375/504] [pre-commit.ci lite] apply automatic fixes
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 7a65ec4a3c..c83be29c2f 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -1,7 +1,7 @@
     import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
    -import { copyFile, exists, readdirSync, unlinkSync } from "fs";
    +import { exists, readdirSync, unlinkSync } from "fs";
     import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
    
    From 14a5dd4830ca260dad62468a38ece6d5bc01cd3a Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 19:58:28 +0100
    Subject: [PATCH 376/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index c83be29c2f..f2a19ff0dc 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -133,7 +133,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           }
         });
     
    -    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
    +    const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
           encoding: "utf-8",
           stdio: "inherit",
           /*env: {
    
    From 59a63076a50fd285437e103ddf552e14f44a0e8a Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 20:03:09 +0100
    Subject: [PATCH 377/504] Update test.yml
    
    ---
     .github/workflows/test.yml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 38ec776669..15c872faf9 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -21,8 +21,8 @@ jobs:
             # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
             # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
             # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
    -        # app_version: [stable]
    -        app_version: [v0.9.5]
    +        app_version: [stable]
    +        # app_version: [v0.9.5]
             # XXX: restore this once neovim tests work in CI
             # include:
             #   - os: ubuntu-latest
    
    From 46799eda62f5322c9d9578dbe231c7f30b38c1e1 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 22:31:19 +0100
    Subject: [PATCH 378/504] Update test.yml - cleanup for testing on Linux
    
    ---
     .github/workflows/test.yml | 42 ++++++++++++++------------------------
     1 file changed, 15 insertions(+), 27 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 15c872faf9..83f5413af5 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -17,7 +17,8 @@ jobs:
           matrix:
             # XXX: restore this once neovim tests work in CI
             # os: [macos-latest, ubuntu-latest, windows-latest]
    -        os: [windows-latest]
    +        #os: [windows-latest]
    +        os: [ubuntu-latest]
             # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
             # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
             # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
    @@ -60,8 +61,8 @@ jobs:
           # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
           # XXX - if we don't run this, we might have to create packages\cursorless-neovim\out folder so the logs can be written
           - run: pnpm --color compile
    -      - run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
    -      - run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
    +      #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
    +      #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
           # XXX: restore this once neovim tests work in CI
           # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
           # - run: xvfb-run -a pnpm --color test
    @@ -76,7 +77,7 @@ jobs:
           #     path: vim-themis
           # testing - D:\a\cursorless\cursorless (to remove)
           - run: pwd
    -      - run: dir C:\Users\runneradmin\AppData\Local
    +      #- run: dir C:\Users\runneradmin\AppData\Local
           #     Directory: C:\Users\runneradmin\AppData\Local
           # Mode                 LastWriteTime         Length Name
           # ----                 -------------         ------ ----
    @@ -95,8 +96,8 @@ jobs:
           # d----           5/16/2024 11:21 AM                Temp
           - name: Install cursorless.nvim dependencies
             run: npm install -g neovim@5.1.0
    -      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
    -      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
    +      #- run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
    +      #- run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
           # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
           # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
           # Line |
    @@ -106,15 +107,15 @@ jobs:
           #      | script file, or executable program. Check the spelling of the name, or if a path was included, verify that the
           #      | path is correct and try again.
           # Error: Process completed with exit code 1.
    -      - run: mkdir C:\Users\runneradmin\AppData\Local\nvim
    +      #- run: mkdir C:\Users\runneradmin\AppData\Local\nvim
           - name: Install Neovim
             uses: rhysd/action-setup-vim@v1
             id: vim
             with:
               version: ${{ matrix.app_version }}
               neovim: true
    -      - run: dir C:\Users\runneradmin\
    -      - run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
    +      #- run: dir C:\Users\runneradmin\
    +      #- run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
           # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
           #     Directory: C:\Users\runneradmin\nvim-v0.9.5\bin
           # Mode                 LastWriteTime         Length Name
    @@ -146,29 +147,16 @@ jobs:
           # -a---          12/30/2023  1:20 PM        8662160 Qt5Widgets.dll
           # -a---          12/30/2023  1:20 PM         131072 tee.exe
           # -a---          12/30/2023  1:20 PM        1137152 win32yank.exe
    -      # -a---          12/30/2023  1:20 PM         151040 xxd.exe
    -      # XXX: delete this because it doesn't work
    -      # - name: Run neovim unit tests using themis.vim
    -      #   env:
    -      #     THEMIS_VIM: ${{ steps.vim.outputs.executable }}
    -      #     # PROFILE_LOG: profile.txt
    -      #   run: |
    -      #     echo "${THEMIS_VIM}"
    -      #     ./vim-themis/bin/themis ./test/all.vimspec
    +      # -a---          12/30/2023  1:20 PM         151040 
           - name: Run neovim unit tests using test-harness
             run: pnpm -F @cursorless/test-harness testNeovim
             if: runner.os != 'Linux'
             env:
               APP_PATH: ${{ steps.vim.outputs.executable }}
    -      - name: Save snapshots
    -        if: always()
    -        uses: actions/upload-artifact@v2
    -        with:
    -          save-only: true
    -          path: .artifacts/visual-snapshots
    -      # XXX: enable this once neovim tests work in CI for Windows
    -      # - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
    -      #   if: runner.os == 'Linux'
    +      - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
    +        if: runner.os == 'Linux'
    +        env:
    +          APP_PATH: ${{ steps.vim.outputs.executable }}
           - name: Create vscode dist that can be installed locally
             run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
             if: runner.os == 'Linux' && matrix.app_version == 'stable'
    
    From 5b3b5e36f31956a41c746fc7fb0ea2fb4d7c8f96 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 22:38:28 +0100
    Subject: [PATCH 379/504] Update test.yml
    
    ---
     .github/workflows/test.yml | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 83f5413af5..740f9e937d 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -75,8 +75,10 @@ jobs:
           #   with:
           #     repository: thinca/vim-themis
           #     path: vim-themis
    -      # testing - D:\a\cursorless\cursorless (to remove)
    +      # Windows: D:\a\cursorless\cursorless
    +      # Linux: /home/runner/work/cursorless/cursorless
           - run: pwd
    +      - run: dir
           #- run: dir C:\Users\runneradmin\AppData\Local
           #     Directory: C:\Users\runneradmin\AppData\Local
           # Mode                 LastWriteTime         Length Name
    
    From bf059e2ec38ac6b676ca7d2c92cf665643bce457 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 22:51:33 +0100
    Subject: [PATCH 380/504] Update launchNeovimAndRunTests.ts for Linux
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 41 +++++++------------
     1 file changed, 14 insertions(+), 27 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index f2a19ff0dc..e2b9c95bf9 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -106,13 +106,16 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // console.log(`signal: ${signal}`);
         // console.log(`error: ${error}`);
     
    +    //~/.config/nvim/init.lua?
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
         // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
         // C:\Users\runneradmin\AppData\Local\nvim-data\log
         //xxx commenting for now to avoid loading any config since nvim hangs anyway atm
    -    /*copyFile(
    -      `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
    -      "C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    +    copyFile(
    +      //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
    +      `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
    +      //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    +      "~/.config/nvim/init.lua",
           (err) => {
             if (err) {
               console.error(err);
    @@ -120,7 +123,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           },
         );
         console.log("init.lua copying done");
    -*/
    +
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
     
         // temporary, to delete old log when testing
    @@ -132,18 +135,11 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log("nvim_node.log not found, so not deleting.");
           }
         });
    -
    +/*
    +    //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
         const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
           encoding: "utf-8",
           stdio: "inherit",
    -      /*env: {
    -        //...process.env,
    -        // "NVIM_NODE_HOST_DEBUG": "1",
    -        NVIM_NODE_LOG_FILE: logName,
    -        NVIM_NODE_LOG_LEVEL: "info",
    -        CURSORLESS_MODE: "test",
    -      },
    -      */
         });
         console.log(`status: ${status}`);
         console.log(`signal: ${signal}`);
    @@ -151,13 +147,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`Exiting early`);
         process.exit(0);
    -
    -    // const nvim_process = cp.spawn(cli, [], {
    -    //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
    -    const vimlogPath = `${getCursorlessRepoRoot()}\\vim.log`;
    -    const nvim_process = cp.spawn(cli, [`-V9vim.log`], {
    -      // encoding: "utf-8",
    -      // stdio: "inherit",
    +*/
    +    
    +    const nvim_process = cp.spawn(cli, [], {
           env: {
             ...process.env,
             // "NVIM_NODE_HOST_DEBUG": "1",
    @@ -182,8 +174,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    -    // const tail = new Tail(logName, {
    -    const tail = new Tail(vimlogPath, {
    +    const tail = new Tail(logName, 
           // separator: "\n",
           fromBeginning: true,
         });
    @@ -215,11 +206,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         nvim_process.kill("SIGTERM");
         console.log(`killed: ${nvim_process.killed}`);
     
    -    await delay(20000);
    -
    -    // console.log("status: ", status);
    -    // console.log("signal: ", signal);
    -    // console.log("error: ", error);
    +    await delay(10000);
     
         // console.log("finished installing dependency extensions");
     
    
    From 2ec2e1ecfb1265340fc30daf5195b881d9370b88 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 22:54:16 +0100
    Subject: [PATCH 381/504] Update launchNeovimAndRunTests.ts typo
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index e2b9c95bf9..7182b3a873 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -174,7 +174,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    -    const tail = new Tail(logName, 
    +    const tail = new Tail(logName, {
           // separator: "\n",
           fromBeginning: true,
         });
    
    From aac70f408440627544b884c70f1d25c760a7bf8f Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:01:35 +0100
    Subject: [PATCH 382/504] Update launchNeovimAndRunTests.ts fix
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 7182b3a873..c33ab9b030 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -1,7 +1,7 @@
     import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
    -import { exists, readdirSync, unlinkSync } from "fs";
    +import { exists, readdirSync, unlinkSync, copyFile } from "fs";
     import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
    @@ -116,7 +116,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
           //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
           "~/.config/nvim/init.lua",
    -      (err) => {
    +      (err: ErrnoException | null) => {
             if (err) {
               console.error(err);
             }
    
    From 6cc9ef7066221fc4ef0630163cb6c1fa6f15e914 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:03:32 +0100
    Subject: [PATCH 383/504] Update launchNeovimAndRunTests.ts fix
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index c33ab9b030..546e07efd6 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -116,7 +116,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
           //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
           "~/.config/nvim/init.lua",
    -      (err: ErrnoException | null) => {
    +      (err: any) => {
             if (err) {
               console.error(err);
             }
    
    From 737b24f2c3e5a86fdf4fc27a5731af81c6245d35 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:17:05 +0100
    Subject: [PATCH 384/504] Update test.yml Linux config path test
    
    ---
     .github/workflows/test.yml | 9 +++++++++
     1 file changed, 9 insertions(+)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 740f9e937d..18f883120d 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -116,6 +116,15 @@ jobs:
             with:
               version: ${{ matrix.app_version }}
               neovim: true
    +      - run: dir ~/.local/share/ || true
    +      - run: dir ~/.local/share/nvim/ || true
    +      - run: dir ~/.config/ || true
    +      - run: dir ~/.config/nvim/ || true
    +      - run: ${{ steps.vim.outputs.executable }} -l ${{ github.workspace }}/packages/test-harness/src/config/empty.lua
    +      - run: dir ~/.local/share/ || true
    +      - run: dir ~/.local/share/nvim/ || true
    +      - run: dir ~/.config/ || true
    +      - run: dir ~/.config/nvim/ || true
           #- run: dir C:\Users\runneradmin\
           #- run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
           # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
    
    From 66d2b5791d18bbdc88cf41bd543ce0b2fc03857f Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:24:17 +0100
    Subject: [PATCH 385/504] Update launchNeovimAndRunTests.ts config file linux
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 546e07efd6..f0beeed8fe 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -1,7 +1,7 @@
     import * as cp from "child_process";
     // import * as path from "path";
     // import * as os from "os";
    -import { exists, readdirSync, unlinkSync, copyFile } from "fs";
    +import { exists, readdirSync, mkdirSync, unlinkSync, copyFile } from "fs";
     import { Tail } from "tail";
     // import {
     //   downloadAndUnzipVSCode,
    @@ -106,6 +106,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // console.log(`signal: ${signal}`);
         // console.log(`error: ${error}`);
     
    +    fs.mkdirSync('~/.config/nvim/', { recursive: true });
    +    
         //~/.config/nvim/init.lua?
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
         // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
    
    From e8c957002a7cd6c7b24ea5480bc640f18b220490 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:25:38 +0100
    Subject: [PATCH 386/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index f0beeed8fe..5b88d467ee 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -106,7 +106,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         // console.log(`signal: ${signal}`);
         // console.log(`error: ${error}`);
     
    -    fs.mkdirSync('~/.config/nvim/', { recursive: true });
    +    mkdirSync('~/.config/nvim/', { recursive: true });
         
         //~/.config/nvim/init.lua?
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
    
    From de4eba63dde6f907fd8ec65be5c212aa0f887863 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:29:55 +0100
    Subject: [PATCH 387/504] Update launchNeovimAndRunTests.ts
    
    ---
     .../src/launchNeovimAndRunTests.ts            | 39 ++-----------------
     1 file changed, 4 insertions(+), 35 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 5b88d467ee..612a9861d7 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -72,39 +72,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           Node.js v20.12.1
         */
     
    -    // Install extension dependencies
    -    // const extensionInstallArgs = [
    -    //   ...args,
    -    //   ...extensionDependencies.flatMap((dependency) => [
    -    //     "--install-extension",
    -    //     dependency,
    -    //   ]),
    -    // ];
    -
    -    // console.log("starting to install dependency extensions");
         console.log(`cli: ${cli}`);
    -    // console.log(JSON.stringify(extensionInstallArgs, null, 2));
    -
    -    // const { status, signal, error } = cp.spawnSync(cli, extensionInstallArgs, {
    -    //   encoding: "utf-8",
    -    //   stdio: "inherit",
    -    // });
    -
    -    // console.log(`Starting nvim for creating config directories...`);
    -    // const { status, signal, error } = cp.spawnSync(
    -    //   cli,
    -    //   [
    -    //     "-l",
    -    //     `${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\empty.lua`,
    -    //   ],
    -    //   {
    -    //     encoding: "utf-8",
    -    //     stdio: "inherit",
    -    //   },
    -    // );
    -    // console.log(`status: ${status}`);
    -    // console.log(`signal: ${signal}`);
    -    // console.log(`error: ${error}`);
     
         mkdirSync('~/.config/nvim/', { recursive: true });
         
    @@ -137,9 +105,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log("nvim_node.log not found, so not deleting.");
           }
         });
    -/*
    +
    +    // testing normal nvim startup
         //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
    -    const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
    +    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
           encoding: "utf-8",
           stdio: "inherit",
         });
    @@ -149,7 +118,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`Exiting early`);
         process.exit(0);
    -*/
    +
         
         const nvim_process = cp.spawn(cli, [], {
           env: {
    
    From d887cb0b4c611356a32cad3a67242451d40a6292 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:46:50 +0100
    Subject: [PATCH 388/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 612a9861d7..b43781c3bf 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -85,14 +85,14 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
           //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    -      "~/.config/nvim/init.lua",
    +      "~/.config/nvim/init.vim",
           (err: any) => {
             if (err) {
               console.error(err);
             }
           },
         );
    -    console.log("init.lua copying done");
    +    console.log("init.vim copying done");
     
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
     
    
    From f66051c54973bd9f6bf314f116ecb7d6e3fd0ec2 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:52:08 +0100
    Subject: [PATCH 389/504] Update launchNeovimAndRunTests.ts
    
    ---
     .../test-harness/src/launchNeovimAndRunTests.ts     | 13 ++++++++++++-
     1 file changed, 12 insertions(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index b43781c3bf..f142a96ab2 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -74,7 +74,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`cli: ${cli}`);
     
    -    mkdirSync('~/.config/nvim/', { recursive: true });
    +    mkdirSync('~/.config/nvim/lua', { recursive: true });
         
         //~/.config/nvim/init.lua?
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
    @@ -85,6 +85,17 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
           //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    +      "~/.config/nvim/lua/init.lua",
    +      (err: any) => {
    +        if (err) {
    +          console.error(err);
    +        }
    +      },
    +    );
    +    console.log("init.lua copying done");
    +    
    +    copyFile(
    +      `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.vim`,
           "~/.config/nvim/init.vim",
           (err: any) => {
             if (err) {
    
    From 01b4c190d55af9f681c18b0f794ed2a9e051883c Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Fri, 17 May 2024 23:54:02 +0100
    Subject: [PATCH 390/504] Create init.vim
    
    ---
     packages/test-harness/src/config/init.vim | 1 +
     1 file changed, 1 insertion(+)
     create mode 100644 packages/test-harness/src/config/init.vim
    
    diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
    new file mode 100644
    index 0000000000..36bd8724c3
    --- /dev/null
    +++ b/packages/test-harness/src/config/init.vim
    @@ -0,0 +1 @@
    +lua require("init")
    
    From cd670ef317cc41f824a99f2edee61461e0dc6db8 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:09:13 +0100
    Subject: [PATCH 391/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 10 ++++++++++
     1 file changed, 10 insertions(+)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index f142a96ab2..e3324acae3 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -105,6 +105,16 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         );
         console.log("init.vim copying done");
     
    +    readdirSync("~/.config/nvim/").forEach((file) => {
    +      console.log(file);
    +    });
    +    console.log("listing ~/.config/nvim/ dir done");
    +    
    +    readdirSync("~/.config/nvim/lua/").forEach((file) => {
    +      console.log(file);
    +    });
    +    console.log("listing ~/.config/nvim/lua/ dir done");
    +
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
     
         // temporary, to delete old log when testing
    
    From c89b99b791d38fb4e3d2c13d785f00c71c9133aa Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:14:28 +0100
    Subject: [PATCH 392/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index e3324acae3..64498fca6b 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -105,12 +105,12 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         );
         console.log("init.vim copying done");
     
    -    readdirSync("~/.config/nvim/").forEach((file) => {
    +    readdirSync("/home/runner/.config/nvim/").forEach((file) => {
           console.log(file);
         });
         console.log("listing ~/.config/nvim/ dir done");
         
    -    readdirSync("~/.config/nvim/lua/").forEach((file) => {
    +    readdirSync("/home/runner/.config/nvim/lua/").forEach((file) => {
           console.log(file);
         });
         console.log("listing ~/.config/nvim/lua/ dir done");
    
    From 5640cf1c306d88f7bf3c79c1bd5c8c39efb007a2 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:17:54 +0100
    Subject: [PATCH 393/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 10 +++++-----
     1 file changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index 64498fca6b..cb6883d5bf 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -74,7 +74,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`cli: ${cli}`);
     
    -    mkdirSync('~/.config/nvim/lua', { recursive: true });
    +    mkdirSync('/home/runner/.config/nvim/lua', { recursive: true });
         
         //~/.config/nvim/init.lua?
         // C:\Users\runneradmin\AppData\Local\nvim\init.lua
    @@ -85,7 +85,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
           //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
    -      "~/.config/nvim/lua/init.lua",
    +      "/home/runner/.config/nvim/lua/init.lua",
           (err: any) => {
             if (err) {
               console.error(err);
    @@ -96,7 +96,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         
         copyFile(
           `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.vim`,
    -      "~/.config/nvim/init.vim",
    +      "/home/runner/.config/nvim/init.vim",
           (err: any) => {
             if (err) {
               console.error(err);
    @@ -108,12 +108,12 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         readdirSync("/home/runner/.config/nvim/").forEach((file) => {
           console.log(file);
         });
    -    console.log("listing ~/.config/nvim/ dir done");
    +    console.log("listing /home/runner/.config/nvim/ dir done");
         
         readdirSync("/home/runner/.config/nvim/lua/").forEach((file) => {
           console.log(file);
         });
    -    console.log("listing ~/.config/nvim/lua/ dir done");
    +    console.log("listing /home/runner/.config/nvim/lua/ dir done");
     
         const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
     
    
    From fd69e29184d6d2bb0e7b91d2c3cbae72bdbdb3d9 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:24:29 +0100
    Subject: [PATCH 394/504] Update test.yml
    
    ---
     .github/workflows/test.yml | 18 ++++++++++--------
     1 file changed, 10 insertions(+), 8 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 18f883120d..53867c858c 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -100,6 +100,8 @@ jobs:
             run: npm install -g neovim@5.1.0
           #- run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
           #- run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
    +      - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
    +      - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
           # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
           # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
           # Line |
    @@ -116,15 +118,15 @@ jobs:
             with:
               version: ${{ matrix.app_version }}
               neovim: true
    -      - run: dir ~/.local/share/ || true
    -      - run: dir ~/.local/share/nvim/ || true
    -      - run: dir ~/.config/ || true
    -      - run: dir ~/.config/nvim/ || true
    +      - run: dir /home/runner/.local/share/ || true
    +      - run: dir /home/runner/.local/share/nvim/ || true
    +      - run: dir /home/runner/.config/ || true
    +      - run: dir /home/runner/.config/nvim/ || true
           - run: ${{ steps.vim.outputs.executable }} -l ${{ github.workspace }}/packages/test-harness/src/config/empty.lua
    -      - run: dir ~/.local/share/ || true
    -      - run: dir ~/.local/share/nvim/ || true
    -      - run: dir ~/.config/ || true
    -      - run: dir ~/.config/nvim/ || true
    +      - run: dir /home/runner/.local/share/ || true
    +      - run: dir /home/runner/.local/share/nvim/ || true
    +      - run: dir /home/runner/.config/ || true
    +      - run: dir /home/runner/.config/nvim/ || true
           #- run: dir C:\Users\runneradmin\
           #- run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
           # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
    
    From a4d4ae113f70051abe28b1712573e8ddfce7a0c2 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:29:18 +0100
    Subject: [PATCH 395/504] Update init.lua
    
    ---
     packages/test-harness/src/config/init.lua | 13 ++++++++++---
     1 file changed, 10 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua
    index 96fde6a70d..ad12f33f2b 100644
    --- a/packages/test-harness/src/config/init.lua
    +++ b/packages/test-harness/src/config/init.lua
    @@ -1,9 +1,16 @@
    -vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
    +-- vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
     
    -vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
    +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
    +-- vim.o.runtimepath = vim.o.runtimepath
    +--   .. ','
    +--   .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
    +
    +vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
    +
    +vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
     vim.o.runtimepath = vim.o.runtimepath
       .. ','
    -  .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
    +  .. '/home/runner/cursorless/cursorless/dist/cursorless.nvim'
     
     require('talon').setup()
     require('cursorless').setup()
    
    From 7346fbf23f9839e19a0b8a22f06c46fabfc58d2b Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:32:27 +0100
    Subject: [PATCH 396/504] Update init.lua
    
    ---
     packages/test-harness/src/config/init.lua | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua
    index ad12f33f2b..9584d29f80 100644
    --- a/packages/test-harness/src/config/init.lua
    +++ b/packages/test-harness/src/config/init.lua
    @@ -10,7 +10,7 @@ vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
     vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
     vim.o.runtimepath = vim.o.runtimepath
       .. ','
    -  .. '/home/runner/cursorless/cursorless/dist/cursorless.nvim'
    +  .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
     
     require('talon').setup()
     require('cursorless').setup()
    
    From b303f93cf55137716d56665b6fc7a58f295d35ec Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:38:33 +0100
    Subject: [PATCH 397/504] Update launchNeovimAndRunTests.ts
    
    ---
     packages/test-harness/src/launchNeovimAndRunTests.ts | 7 ++++---
     1 file changed, 4 insertions(+), 3 deletions(-)
    
    diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
    index cb6883d5bf..8c9c1eb09b 100644
    --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
    +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
    @@ -129,6 +129,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         // testing normal nvim startup
         //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
    +    /*
         const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
           encoding: "utf-8",
           stdio: "inherit",
    @@ -139,7 +140,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         console.log(`Exiting early`);
         process.exit(0);
    -
    +*/
         
         const nvim_process = cp.spawn(cli, [], {
           env: {
    @@ -159,10 +160,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
     
         await delay(10000);
     
    -    readdirSync(getCursorlessRepoRoot()).forEach((file) => {
    +    readdirSync(`${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`).forEach((file) => {
           console.log(file);
         });
    -    console.log("listing root dir done");
    +    console.log("listing out/ dir done");
     
         // read log file live and print to console
         // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
    
    From b419b04d51b884604afe085e389dda49ce186beb Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:45:59 +0100
    Subject: [PATCH 398/504] Update test.yml
    
    ---
     .github/workflows/test.yml | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 53867c858c..00eadd6f66 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -170,9 +170,9 @@ jobs:
             if: runner.os == 'Linux'
             env:
               APP_PATH: ${{ steps.vim.outputs.executable }}
    -      - name: Create vscode dist that can be installed locally
    -        run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
    -        if: runner.os == 'Linux' && matrix.app_version == 'stable'
    +      #- name: Create vscode dist that can be installed locally
    +      #  run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
    +      #  if: runner.os == 'Linux' && matrix.app_version == 'stable'
           # XXX: restore this once neovim tests work in CI
           # - name: Test create vsix
           #   id: createVsix
    
    From dbfcd587395ed43854b94183faaf60ea55073c94 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 00:55:18 +0100
    Subject: [PATCH 399/504] Update runAllTests.ts
    
    ---
     packages/test-harness/src/runAllTests.ts | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
    index b41f320a75..a2460cbb15 100644
    --- a/packages/test-harness/src/runAllTests.ts
    +++ b/packages/test-harness/src/runAllTests.ts
    @@ -55,7 +55,9 @@ async function runTestsInDir(
       });
     
       const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
    -
    +  console.log("test files:");
    +  console.log(files); // temp
    +  
       // Add files to the test suite
       files.forEach((f) => mocha.addFile(path.resolve(testRoot, f)));
     
    
    From ff62737a500093a9e57f2aa148bc44140d79e782 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 01:01:28 +0100
    Subject: [PATCH 400/504] Update index.ts
    
    ---
     packages/test-harness/src/index.ts | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
    index 0d469dd517..02c5aa7b87 100644
    --- a/packages/test-harness/src/index.ts
    +++ b/packages/test-harness/src/index.ts
    @@ -12,6 +12,7 @@ import type { NeovimClient, NvimPlugin } from "neovim";
     // FIXME: this is neovim specific atm so in the future we can support other apps here
     // with an environment variable
     export async function run(plugin: NvimPlugin): Promise {
    +  console.log("run()");
       // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
       // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
       (global as any).additionalParameters = {
    
    From b420ce63eee19b33b3b4b2cce435beef6b23c4c4 Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 01:04:29 +0100
    Subject: [PATCH 401/504] Update runAllTests.ts
    
    ---
     packages/test-harness/src/runAllTests.ts | 2 ++
     1 file changed, 2 insertions(+)
    
    diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
    index a2460cbb15..4368e94031 100644
    --- a/packages/test-harness/src/runAllTests.ts
    +++ b/packages/test-harness/src/runAllTests.ts
    @@ -22,6 +22,7 @@ export enum TestType {
     }
     
     export function runAllTests(...types: TestType[]) {
    +  console.log("runAllTests()");
       return runTestsInDir(
         path.join(getCursorlessRepoRoot(), "packages"),
         (files) =>
    @@ -47,6 +48,7 @@ async function runTestsInDir(
       testRoot: string,
       filterFiles: (files: string[]) => string[],
     ): Promise {
    +  console.log("runTestsInDir()");
       // Create the mocha test
       const mocha = new Mocha({
         ui: "tdd",
    
    From 344f3c5a67c7a29e35b8f936a18414be1b0590dc Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 01:09:37 +0100
    Subject: [PATCH 402/504] Update index.ts
    
    ---
     packages/test-harness/src/index.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
    index 02c5aa7b87..003567aad8 100644
    --- a/packages/test-harness/src/index.ts
    +++ b/packages/test-harness/src/index.ts
    @@ -21,13 +21,13 @@ export async function run(plugin: NvimPlugin): Promise {
       try {
         await runAllTests(TestType.neovim, TestType.unit);
       } catch (error) {
    -    console.error("runAllTests failed");
    +    console.error("runAllTests failed (1)");
         console.error(error);
         // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
         // XXX: kill neovim with -1 code ":cq!" command?
         return;
       }
    -  console.log("runAllTests succeeded");
    +  console.log("runAllTests succeeded (1)");
       // XXX: kill neovim with 0 code ":q!" command?
     
       // XXX: launchNeovimAndRunTests.ts will catch that error code
    
    From 9a3469b6aec17fbc6a9dd3efa7104dc7d4d2f72c Mon Sep 17 00:00:00 2001
    From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
    Date: Sat, 18 May 2024 01:14:57 +0100
    Subject: [PATCH 403/504] Delete dist/cursorless.nvim directory
    
    ---
     dist/cursorless.nvim/README.md                |    91 -
     .../assets/cursorless-snippets/.gitkeep       |     0
     .../lua/cursorless/cursorless.lua             |   140 -
     dist/cursorless.nvim/lua/cursorless/init.lua  |    77 -
     dist/cursorless.nvim/lua/cursorless/utils.lua |    64 -
     .../command-server/out/index.cjs              |   311 -
     .../command-server/package.json               |   138 -
     .../node/command-server/out/index.cjs         |   311 -
     .../node/command-server/package.json          |   138 -
     .../node/cursorless-neovim/out/index.cjs      | 50785 ----------------
     .../node/cursorless-neovim/package.json       |    42 -
     .../node/test-harness/out/index.cjs           | 26716 --------
     .../node/test-harness/package.json            |    48 -
     dist/cursorless.nvim/vim/cursorless.vim       |    15 -
     14 files changed, 78876 deletions(-)
     delete mode 100644 dist/cursorless.nvim/README.md
     delete mode 100644 dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep
     delete mode 100644 dist/cursorless.nvim/lua/cursorless/cursorless.lua
     delete mode 100644 dist/cursorless.nvim/lua/cursorless/init.lua
     delete mode 100644 dist/cursorless.nvim/lua/cursorless/utils.lua
     delete mode 100644 dist/cursorless.nvim/node/command-server/command-server/out/index.cjs
     delete mode 100644 dist/cursorless.nvim/node/command-server/command-server/package.json
     delete mode 100644 dist/cursorless.nvim/node/command-server/out/index.cjs
     delete mode 100644 dist/cursorless.nvim/node/command-server/package.json
     delete mode 100644 dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
     delete mode 100644 dist/cursorless.nvim/node/cursorless-neovim/package.json
     delete mode 100644 dist/cursorless.nvim/node/test-harness/out/index.cjs
     delete mode 100644 dist/cursorless.nvim/node/test-harness/package.json
     delete mode 100644 dist/cursorless.nvim/vim/cursorless.vim
    
    diff --git a/dist/cursorless.nvim/README.md b/dist/cursorless.nvim/README.md
    deleted file mode 100644
    index 64c4e62306..0000000000
    --- a/dist/cursorless.nvim/README.md
    +++ /dev/null
    @@ -1,91 +0,0 @@
    -
    -
    -- [cursorless.nvim](#cursorlessnvim)
    -  - [Prerequisites](#prerequisites)
    -  - [Installation](#installation)
    -    - [Lazy installation](#lazy-installation)
    -    - [Manual installation](#manual-installation)
    -  - [Configuration](#configuration)
    -    - [neovim configuration](#neovim-configuration)
    -    - [Talon configuration](#talon-configuration)
    -  - [Frequently asked questions](#frequently-asked-questions)
    -    - [nvim does not support Lazy?](#nvim-does-not-support-lazy)
    -    - [nvim does not find the `neovim` globally installed package?](#nvim-does-not-find-the-neovim-globally-installed-package)
    -  - [Contributors](#contributors)
    -
    -
    -
    -# cursorless.nvim
    -
    -Neovim plugin to support Cursorless
    -
    -## Prerequisites
    -
    -- neovim: https://neovim.io/
    -- Talon voice: https://talonvoice.com/
    -- neovim-talon: https://github.com/hands-free-vim/neovim-talon
    -- node/npm: https://nodejs.org/en
    -- neovim node package: https://github.com/neovim/node-client (globally installed with `npm`)
    -- talon.nvim: https://github.com/hands-free-vim/talon.nvim (optional but recommended)
    -
    -## Installation
    -
    -Ideally, you want to use a neovim plugin manager like [lazy.nvim](https://github.com/folke/lazy.nvim).
    -
    -### Lazy installation
    -
    -After the typical [lazy setup](https://github.com/folke/lazy.nvim?tab=readme-ov-file#-installation), you'll have to add the `cursorless.nvim` plugin to your `init.lua`.
    -
    -```lua
    -require('lazy').setup({
    -  'hands-free-vim/cursorless.nvim',
    -})
    -```
    -
    -### Manual installation
    -
    -This method is not recommended but you can try directly cloning the plugin into your nvim data folder:
    -
    -```
    -git clone https://github.com/hands-free-vim/cursorless.nvim
    -```
    -
    -## Configuration
    -
    -### neovim configuration
    -
    -If you aren't using a plugin manager that automatically calls setup for you (e.g. it is needed for lazy), you will need this somewhere in your neovim config, e.g. in [init.lua](https://neovim.io/doc/user/lua-guide.html#lua-guide-config):
    -
    -```lua
    -require("cursorless").setup()
    -```
    -
    -### Talon configuration
    -
    -Add a `.talon` file like the following anywhere in your Talon user directory (e.g. named `cursorless_neovim.talon`):
    -
    -```talon
    -app: neovim
    --
    -tag(): user.cursorless
    -```
    -
    -## Frequently asked questions
    -
    -### nvim does not support Lazy?
    -
    -Some Linux package managers ship with a version of `nvim` too old for Lazy. If this is the case, [install nvim](https://github.com/neovim/neovim/blob/master/INSTALL.md) via another method.
    -
    -### nvim does not find the `neovim` globally installed package?
    -
    -If you are on Linux, avoid using the snap package for `npm` as it may not be able to globally expose the neovim npm package due to sandboxing. If this is the case, install node via another method (nvm, brew, etc).
    -
    -## Contributors
    -
    -You will need to add the `vim-scripts/BufOnly.vim` neovim plugin if you want to be able to run the tests. For instance, with lazy:
    -
    -```lua
    -require('lazy').setup({
    -  'vim-scripts/BufOnly.vim'
    -})
    -```
    diff --git a/dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep b/dist/cursorless.nvim/assets/cursorless-snippets/.gitkeep
    deleted file mode 100644
    index e69de29bb2..0000000000
    diff --git a/dist/cursorless.nvim/lua/cursorless/cursorless.lua b/dist/cursorless.nvim/lua/cursorless/cursorless.lua
    deleted file mode 100644
    index 7977788503..0000000000
    --- a/dist/cursorless.nvim/lua/cursorless/cursorless.lua
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -local M = {}
    -
    --- Get the first and last visible line of the current window/buffer
    --- @see https://vi.stackexchange.com/questions/28471/get-first-and-last-visible-line-from-other-buffer-than-current
    --- w0/w$ are indexed from 1, similarly to what is shown in neovim
    --- e.g. :lua print(dump_table(require('talon.cursorless').window_get_visible_lines()))"
    ---   window_get_visible_lines
    ---  { [1] = 28, [2] = 74 }
    -function M.window_get_visible_lines()
    -  -- print('window_get_visible_lines()')
    -  return { vim.fn.line('w0'), vim.fn.line('w$') }
    -end
    -
    --- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/
    --- https://neovim.io/doc/user/api.html#nvim_win_get_cursor()
    ---
    --- luacheck:ignore 631
    --- e.g. run in command mode :vmap  lua print(vim.inspect(require('talon.cursorless').buffer_get_selection()))
    --- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air"
    --- on the second line.
    --- Then hit ctrl+b and it will show the selection
    --- cline=2, ccol=2, vline=1, vcol=1
    --- sline=1, scol=1, eline=2, ecol=3, reverse=false
    --- { 1, 1, 2, 3, false }
    ---
    --- if instead you select from the end of the "air" word on the second line
    --- and select up to the beginning of "hello" on the first line
    --- cline=1, ccol=0, vline=3, vcol=3
    --- sline=1, scol=1, eline=2, ecol=3, reverse=true
    --- { 1, 1, 2, 3, true }
    ---
    --- if you want to directly see how it is parsed in the node extension, you can use the below:
    --- e.g. run in command mode :vmap  :call CursorlessLoadExtension()
    --- and again use ctrl+a after selecting the text
    -function M.buffer_get_selection()
    -  -- print('buffer_get_selection()')
    -  local modeInfo = vim.api.nvim_get_mode()
    -  local mode = modeInfo.mode
    -
    -  local cursor = vim.api.nvim_win_get_cursor(0)
    -  local cline, ccol = cursor[1], cursor[2]
    -  local vline, vcol = vim.fn.line('v'), vim.fn.col('v')
    -  -- print(('cline=%d, ccol=%d, vline=%d, vcol=%d'):format(cline, ccol, vcol, vcol))
    -
    -  local sline, scol
    -  local eline, ecol
    -  local reverse
    -  if cline == vline then
    -    --   if ccol <= vcol then
    -    if ccol < vcol then
    -      sline, scol = cline, ccol
    -      eline, ecol = vline, vcol
    -      scol = scol + 1
    -      reverse = true
    -    else
    -      sline, scol = vline, vcol
    -      eline, ecol = cline, ccol
    -      ecol = ecol + 1
    -      reverse = false
    -    end
    -  elseif cline < vline then
    -    sline, scol = cline, ccol
    -    eline, ecol = vline, vcol
    -    scol = scol + 1
    -    reverse = true
    -  else
    -    sline, scol = vline, vcol
    -    eline, ecol = cline, ccol
    -    ecol = ecol + 1
    -    reverse = false
    -  end
    -
    -  if mode == 'V' or mode == 'CTRL-V' or mode == '\22' then
    -    scol = 1
    -    ecol = nil
    -  end
    -
    -  -- print(
    -  --   ('sline=%d, scol=%d, eline=%d, ecol=%d, reverse=%s'):format(
    -  --     sline,
    -  --     scol,
    -  --     eline,
    -  --     ecol,
    -  --     tostring(reverse)
    -  --   )
    -  -- )
    -  return { sline, scol, eline, ecol, reverse }
    -end
    -
    --- https://www.reddit.com/r/neovim/comments/p4u4zy/how_to_pass_visual_selection_range_to_lua_function/
    --- luacheck:ignore 631
    --- e.g. run in command mode :vmap  lua print(vim.inspect(require('talon.cursorless').buffer_get_selection_text()))
    --- then go in visual mode with "v" and select "hello" on the first line and continue selection with "air"
    --- on the second line.
    --- Then hit ctrl+b and it will show the selection
    --- { "hello", "air" }
    -function M.buffer_get_selection_text()
    -  -- print('buffer_get_selection_text()')
    -  local sline, scol, eline, ecol, _ = unpack(require('talon.cursorless').buffer_get_selection())
    -
    -  local lines = vim.api.nvim_buf_get_lines(0, sline - 1, eline, 0)
    -  if #lines == 0 then
    -    return
    -  end
    -
    -  local startText, endText
    -  if #lines == 1 then
    -    startText = string.sub(lines[1], scol, ecol)
    -  else
    -    startText = string.sub(lines[1], scol)
    -    endText = string.sub(lines[#lines], 1, ecol)
    -  end
    -
    -  local selection = { startText }
    -  if #lines > 2 then
    -    vim.list_extend(selection, vim.list_slice(lines, 2, #lines - 1))
    -  end
    -  table.insert(selection, endText)
    -
    -  return selection
    -end
    -
    --- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/lua/nvim-treesitter/ts_utils.lua#L278
    --- luacheck:ignore 631
    --- https://github.com/nvim-treesitter/nvim-treesitter-textobjects/blob/master/lua/nvim-treesitter/textobjects/select.lua#L114
    --- as an example if you put that in a vim buffer and do the following you can do a selection:
    --- :w c:\work\tmp\test.lua
    --- :so %
    --- :lua select_range(5, 12, 5, 30)
    --- for example it will highlight the last function name (nvim_win_set_cursor).
    --- another example is :tmap  lua require("talon.cursorless").select_range(4, 0, 4, 38)
    --- NOTE: works for any mode (n,i,v,nt) except in t mode
    -function M.select_range(start_x, start_y, end_x, end_y)
    -  vim.cmd([[normal! :noh]])
    -  vim.api.nvim_win_set_cursor(0, { start_x, start_y })
    -  vim.cmd([[normal v]])
    -  vim.api.nvim_win_set_cursor(0, { end_x, end_y })
    -end
    -
    -return M
    diff --git a/dist/cursorless.nvim/lua/cursorless/init.lua b/dist/cursorless.nvim/lua/cursorless/init.lua
    deleted file mode 100644
    index 0d74f39aa0..0000000000
    --- a/dist/cursorless.nvim/lua/cursorless/init.lua
    +++ /dev/null
    @@ -1,77 +0,0 @@
    -local function register_functions()
    -  local path = require('cursorless.utils').cursorless_nvim_path()
    -  -- revert to using forward slashes as works when passed to remote#host#RegisterPlugin()
    -  if require('cursorless.utils').is_win() then
    -    path = path:gsub('\\', '/')
    -  end
    -  vim.api.nvim_call_function('RegisterFunctions', { path })
    -end
    -
    --- this triggers loading the node process as well as calling one function
    --- in the cursorless-neovim, command-server and neovim-registry extensions
    --- in order to initialize them
    -local function load_extensions()
    -  vim.api.nvim_call_function('CursorlessLoadExtension', {})
    -  vim.api.nvim_call_function('CommandServerLoadExtension', {})
    -
    -  if os.getenv('CURSORLESS_MODE') == 'test' then
    -    -- make sure cursorless is loaded before starting the tests
    -    -- see https://neovim.io/doc/user/various.html#%3Asleep
    -    vim.cmd([[sleep 1]])
    -    vim.api.nvim_call_function('TestHarnessRun', {})
    -  end
    -end
    -
    --- Cursorless command-server shortcut: CTRL+q
    --- https://stackoverflow.com/questions/40504408/can-i-map-a-key-binding-to-a-function-in-vimrc
    --- https://stackoverflow.com/questions/7642746/is-there-any-way-to-view-the-currently-mapped-keys-in-vim
    --- luacheck:ignore 631
    --- https://stackoverflow.com/questions/3776117/what-is-the-difference-between-the-remap-noremap-nnoremap-and-vnoremap-mapping
    -local function configure_command_server_shortcut()
    -  -- these mappings don't change the current mode
    -  -- https://neovim.io/doc/user/api.html#nvim_set_keymap()
    -  -- https://www.reddit.com/r/neovim/comments/pt92qn/mapping_cd_in_terminal_mode/
    -  vim.api.nvim_set_keymap(
    -    'i',
    -    '',
    -    'lua vim.fn.CommandServerRunCommand()',
    -    { noremap = true }
    -  )
    -  vim.api.nvim_set_keymap(
    -    'n',
    -    '',
    -    'lua vim.fn.CommandServerRunCommand()',
    -    { noremap = true }
    -  )
    -  vim.api.nvim_set_keymap(
    -    'c',
    -    '',
    -    'lua vim.fn.CommandServerRunCommand()',
    -    { noremap = true }
    -  )
    -  vim.api.nvim_set_keymap(
    -    'v',
    -    '',
    -    'lua vim.fn.CommandServerRunCommand()',
    -    { noremap = true }
    -  )
    -  vim.api.nvim_set_keymap(
    -    't',
    -    '',
    -    'lua vim.fn.CommandServerRunCommand()',
    -    { noremap = true }
    -  )
    -end
    -
    -local function setup()
    -  vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim')
    -  register_functions()
    -  load_extensions()
    -  configure_command_server_shortcut()
    -end
    -
    -local M = {
    -  setup = setup,
    -}
    -
    -return M
    diff --git a/dist/cursorless.nvim/lua/cursorless/utils.lua b/dist/cursorless.nvim/lua/cursorless/utils.lua
    deleted file mode 100644
    index 30210d9344..0000000000
    --- a/dist/cursorless.nvim/lua/cursorless/utils.lua
    +++ /dev/null
    @@ -1,64 +0,0 @@
    -local M = {}
    -
    --- :lua print(require('cursorless.utils').is_win())
    -function M.is_win()
    -  return package.config:sub(1, 1) == '\\'
    -end
    -
    --- :lua print(require('cursorless.utils').get_path_separator())
    -function M.get_path_separator()
    -  if require('cursorless.utils').is_win() then
    -    return '\\'
    -  end
    -  return '/'
    -end
    -
    --- https://www.reddit.com/r/neovim/comments/tk1hby/get_the_path_to_the_current_lua_script_in_neovim/
    --- https://pgl.yoyo.org/luai/i/debug.getinfo
    --- https://www.gammon.com.au/scripts/doc.php?lua=debug.getinfo
    --- e.g. :lua print(require('cursorless.utils').cursorless_nvim_path())
    --- outputs: C:\Users\User\AppData\Local\nvim-data\lazy\talon.nvim
    --- NOTE: Development cursorless-neovim is installed in: C:\Users\User\AppData\Local\nvim\rplugin\node\cursorless-neovim
    -function M.cursorless_nvim_path()
    -  --source_file=@C:/Users/User/AppData/Local/nvim-data/lazy/talon.nvim/lua/talon/utils.lua
    -  local str = debug.getinfo(1, 'S').source
    -  -- print(('source_file=%s'):format(str))
    -  -- skip as the file name is prefixed by "@"
    -  str = str:sub(2)
    -  -- print(('source_file2=%s'):format(str))
    -  if require('cursorless.utils').is_win() then
    -    str = str:gsub('/', '\\')
    -    -- print('is_win')
    -  end
    -  -- print(('source_file3=%s'):format(str))
    -  -- remove where our current file is located to get talon.nvim base path
    -  str = str:sub(0, -1 - #'lua/cursorless/utils.lua')
    -  -- print(('talon.nvim=%s'):format(str))
    -  return str
    -end
    -
    --- assumes we are in terminal mode and switch to normal terminal mode
    --- https://www.reddit.com/r/neovim/comments/uk3xmq/change_mode_in_lua/
    --- https://neovim.io/doc/user/api.html#nvim_feedkeys()
    --- https://neovim.io/doc/user/builtin.html#feedkeys()
    --- https://neovim.io/doc/user/api.html#nvim_replace_termcodes()
    --- e.g. run in command mode :tmap  lua mode_switch_nt()
    -function M.mode_switch_nt()
    -  local key = vim.api.nvim_replace_termcodes('', true, false, true)
    -  vim.api.nvim_feedkeys(key, 'n', false)
    -end
    -
    --- assumes we are in normal terminal mode and switch to terminal mode
    --- e.g. run in command mode :nmap  lua mode_switch_t()
    -function M.mode_switch_t()
    -  vim.api.nvim_feedkeys('i', 'n', true)
    -end
    -
    --- paste what is in the clipboard
    --- https://www.baeldung.com/linux/vim-paste-text
    --- e.g. run in command mode :imap  lua require('cursorless.utils').paste()
    -function M.paste()
    -  vim.cmd([[normal! "+p]])
    -end
    -
    -return M
    diff --git a/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs b/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs
    deleted file mode 100644
    index e2201d93cf..0000000000
    --- a/dist/cursorless.nvim/node/command-server/command-server/out/index.cjs
    +++ /dev/null
    @@ -1,311 +0,0 @@
    -"use strict";
    -var __defProp = Object.defineProperty;
    -var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
    -var __getOwnPropNames = Object.getOwnPropertyNames;
    -var __hasOwnProp = Object.prototype.hasOwnProperty;
    -var __export = (target, all) => {
    -  for (var name in all)
    -    __defProp(target, name, { get: all[name], enumerable: true });
    -};
    -var __copyProps = (to, from, except, desc) => {
    -  if (from && typeof from === "object" || typeof from === "function") {
    -    for (let key of __getOwnPropNames(from))
    -      if (!__hasOwnProp.call(to, key) && key !== except)
    -        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
    -  }
    -  return to;
    -};
    -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
    -
    -// src/index.ts
    -var src_exports = {};
    -__export(src_exports, {
    -  default: () => entry
    -});
    -module.exports = __toCommonJS(src_exports);
    -
    -// src/nativeIo.ts
    -var import_fs = require("fs");
    -var import_path2 = require("path");
    -var import_constants = require("constants");
    -
    -// src/paths.ts
    -var import_os = require("os");
    -var import_path = require("path");
    -function getCommunicationDirPath() {
    -  const info = (0, import_os.userInfo)();
    -  const suffix = info.uid >= 0 ? `-${info.uid}` : "";
    -  return (0, import_path.join)((0, import_os.tmpdir)(), `neovim-command-server${suffix}`);
    -}
    -function getSignalDirPath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "signals");
    -}
    -function getRequestPath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "request.json");
    -}
    -function getResponsePath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "response.json");
    -}
    -
    -// src/nativeIo.ts
    -var import_os2 = require("os");
    -var import_promises = require("fs/promises");
    -
    -// src/constants.ts
    -var NEOVIM_COMMAND_TIMEOUT_MS = 3e3;
    -
    -// src/nativeIo.ts
    -var InboundSignal = class {
    -  constructor(path) {
    -    this.path = path;
    -  }
    -  /**
    -   * Gets the current version of the signal. This version string changes every
    -   * time the signal is emitted, and can be used to detect whether signal has
    -   * been emitted between two timepoints.
    -   * @returns The current signal version or null if the signal file could not be
    -   * found
    -   */
    -  async getVersion() {
    -    try {
    -      return (await (0, import_promises.stat)(this.path)).mtimeMs.toString();
    -    } catch (err) {
    -      if (err.code !== "ENOENT") {
    -        throw err;
    -      }
    -      return null;
    -    }
    -  }
    -};
    -var NativeIo = class {
    -  constructor() {
    -    this.responseFile = null;
    -  }
    -  async initialize() {
    -    const communicationDirPath = getCommunicationDirPath();
    -    console.warn(`Creating communication dir ${communicationDirPath}`);
    -    (0, import_fs.mkdirSync)(communicationDirPath, { recursive: true, mode: 504 });
    -    const stats = (0, import_fs.lstatSync)(communicationDirPath);
    -    const info = (0, import_os2.userInfo)();
    -    if (!stats.isDirectory() || stats.isSymbolicLink() || stats.mode & import_constants.S_IWOTH || // On Windows, uid < 0, so we don't worry about it for simplicity
    -    info.uid >= 0 && stats.uid !== info.uid) {
    -      throw new Error(
    -        `Refusing to proceed because of invalid communication dir ${communicationDirPath}`
    -      );
    -    }
    -  }
    -  async prepareResponse() {
    -    if (this.responseFile) {
    -      throw new Error("response is already locked");
    -    }
    -    this.responseFile = await (0, import_promises.open)(getResponsePath(), "wx");
    -  }
    -  async closeResponse() {
    -    if (!this.responseFile) {
    -      throw new Error("response is not locked");
    -    }
    -    await this.responseFile.close();
    -    this.responseFile = null;
    -  }
    -  /**
    -   * Reads the JSON-encoded request from the request file, unlinking the file
    -   * after reading.
    -   * @returns A promise that resolves to a Response object
    -   */
    -  async readRequest() {
    -    const requestPath = getRequestPath();
    -    const stats = await (0, import_promises.stat)(requestPath);
    -    const request = JSON.parse(await (0, import_promises.readFile)(requestPath, "utf-8"));
    -    if (Math.abs(stats.mtimeMs - (/* @__PURE__ */ new Date()).getTime()) > NEOVIM_COMMAND_TIMEOUT_MS) {
    -      throw new Error(
    -        "Request file is older than timeout; refusing to execute command"
    -      );
    -    }
    -    return request;
    -  }
    -  /**
    -   * Writes the response to the response file as JSON.
    -   * @param file The file to write to
    -   * @param response The response object to JSON-encode and write to disk
    -   */
    -  async writeResponse(response) {
    -    if (!this.responseFile) {
    -      throw new Error("response is not locked");
    -    }
    -    await this.responseFile.write(`${JSON.stringify(response)}
    -`);
    -  }
    -  getInboundSignal(name) {
    -    const signalDir = getSignalDirPath();
    -    const path = (0, import_path2.join)(signalDir, name);
    -    return new InboundSignal(path);
    -  }
    -};
    -
    -// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts
    -var import_node_events = require("node:events");
    -var NeovimRegistry = class {
    -  constructor() {
    -    this.apis = /* @__PURE__ */ new Map();
    -    this.commands = /* @__PURE__ */ new Map();
    -    this.eventEmitter = new import_node_events.EventEmitter();
    -  }
    -  registerExtensionApi(extensionId, api) {
    -    this.apis.set(extensionId, api);
    -  }
    -  getExtensionApi(extensionId) {
    -    return this.apis.get(extensionId);
    -  }
    -  registerCommand(commandId, callback) {
    -    this.commands.set(commandId, callback);
    -  }
    -  async executeCommand(commandId, ...rest) {
    -    return await this.commands.get(commandId)(...rest);
    -  }
    -  onEvent(eventName, listener) {
    -    return this.eventEmitter.on(eventName, listener);
    -  }
    -  emitEvent(eventName, ...args) {
    -    return this.eventEmitter.emit(eventName, ...args);
    -  }
    -};
    -
    -// ../cursorless_fork/packages/neovim-registry/src/index.ts
    -function getNeovimRegistry() {
    -  if (global._neovimRegistry == null) {
    -    global._neovimRegistry = new NeovimRegistry();
    -  }
    -  return global._neovimRegistry;
    -}
    -
    -// src/commandRunner.ts
    -var CommandRunner = class {
    -  constructor(io) {
    -    this.io = io;
    -    this.reloadConfiguration = this.reloadConfiguration.bind(this);
    -    this.runCommand = this.runCommand.bind(this);
    -    this.reloadConfiguration();
    -  }
    -  reloadConfiguration() {
    -  }
    -  /**
    -   * Reads a command from the request file and executes it.  Writes information
    -   * about command execution to the result of the command to the response file,
    -   * If requested, will wait for command to finish, and can also write command
    -   * output to response file.  See also documentation for Request / Response
    -   * types.
    -   */
    -  async runCommand() {
    -    console.warn("------------------------------------------------------------------------------");
    -    await this.io.prepareResponse();
    -    let request;
    -    try {
    -      request = await this.io.readRequest();
    -    } catch (err) {
    -      await this.io.closeResponse();
    -      throw err;
    -    }
    -    const { commandId, args, uuid, returnCommandOutput, waitForFinish } = request;
    -    const warnings = [];
    -    try {
    -      if (!commandId.match(this.allowRegex)) {
    -        throw new Error("Command not in allowList");
    -      }
    -      if (this.denyRegex != null && commandId.match(this.denyRegex)) {
    -        throw new Error("Command in denyList");
    -      }
    -      const commandPromise = getNeovimRegistry().executeCommand(commandId, ...args);
    -      let commandReturnValue = null;
    -      if (returnCommandOutput) {
    -        commandReturnValue = await commandPromise;
    -      } else if (waitForFinish) {
    -        await commandPromise;
    -      }
    -      await this.io.writeResponse({
    -        error: null,
    -        uuid,
    -        returnValue: commandReturnValue,
    -        warnings
    -      });
    -    } catch (err) {
    -      await this.io.writeResponse({
    -        error: err.message,
    -        uuid,
    -        warnings
    -      });
    -    }
    -    await this.io.closeResponse();
    -  }
    -};
    -
    -// src/singletons/commandRunner.singleton.ts
    -var cmdRunner_;
    -function injectCommandRunner(cmdRunner) {
    -  cmdRunner_ = cmdRunner;
    -}
    -function commandRunner() {
    -  if (cmdRunner_ == null) {
    -    throw Error("Tried to access CommandRunner before it was injected");
    -  }
    -  return cmdRunner_;
    -}
    -
    -// src/extension.ts
    -async function activate() {
    -  const io = new NativeIo();
    -  await io.initialize();
    -  const commandRunner2 = new CommandRunner(io);
    -  let focusedElementType;
    -  injectCommandRunner(commandRunner2);
    -  return {
    -    /**
    -     * The type of the focused element in vscode at the moment of the command being executed.
    -     */
    -    getFocusedElementType: () => focusedElementType,
    -    /**
    -     * These signals can be used as a form of IPC to indicate that an event has
    -     * occurred.
    -     */
    -    signals: {
    -      /**
    -       * This signal is emitted by the voice engine to indicate that a phrase has
    -       * just begun execution.
    -       */
    -      prePhrase: io.getInboundSignal("prePhrase")
    -    }
    -  };
    -}
    -
    -// src/index.ts
    -function entry(plugin) {
    -  plugin.setOptions({ dev: false });
    -  plugin.registerFunction("CommandServerTest", () => test(plugin), {
    -    sync: false
    -  });
    -  plugin.registerFunction(
    -    "CommandServerLoadExtension",
    -    async () => await loadExtension(plugin),
    -    { sync: false }
    -  );
    -  plugin.registerFunction(
    -    "CommandServerRunCommand",
    -    () => runCommand(),
    -    { sync: false }
    -  );
    -}
    -function test(plugin) {
    -  const currentDate = /* @__PURE__ */ new Date();
    -  const currentDateStr = currentDate.toLocaleString();
    -  console.warn("test(): " + currentDateStr);
    -}
    -async function loadExtension(plugin) {
    -  console.warn("loadExtension(command-server): start");
    -  await activate();
    -  console.warn("loadExtension(command-server): done");
    -}
    -async function runCommand() {
    -  console.warn("runCommand(command-server): start");
    -  commandRunner().runCommand();
    -  console.warn("runCommand(command-server): done");
    -}
    -//# sourceMappingURL=index.cjs.map
    diff --git a/dist/cursorless.nvim/node/command-server/command-server/package.json b/dist/cursorless.nvim/node/command-server/command-server/package.json
    deleted file mode 100644
    index 39b8379d10..0000000000
    --- a/dist/cursorless.nvim/node/command-server/command-server/package.json
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -{
    -  "name": "command-server",
    -  "displayName": "Command server",
    -  "description": "Exposes a file-based RPC API for running VSCode commands",
    -  "publisher": "pokey",
    -  "license": "MIT",
    -  "repository": {
    -    "type": "git",
    -    "url": "https://github.com/pokey/command-server"
    -  },
    -  "version": "0.9.1",
    -  "categories": [
    -    "Other"
    -  ],
    -  "activationEvents": [
    -    "*"
    -  ],
    -  "main": "./out/index.cjs",
    -  "private": true,
    -  "extensionKind": [
    -    "ui"
    -  ],
    -  "capabilities": {
    -    "untrustedWorkspaces": {
    -      "supported": "limited",
    -      "description": "Untrusted workspaces can't override allowList / denyList",
    -      "restrictedConfigurations": [
    -        "allowList",
    -        "denyList"
    -      ]
    -    }
    -  },
    -  "contributes": {
    -    "commands": [
    -      {
    -        "command": "command-server.runCommand",
    -        "title": "Read command description from a file and execute the command"
    -      },
    -      {
    -        "command": "command-server.getFocusedElementType",
    -        "title": "Returns the type of the currently focused element in vscode"
    -      }
    -    ],
    -    "keybindings": [
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17",
    -        "when": "editorTextFocus",
    -        "args": "textEditor"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p",
    -        "when": "editorTextFocus",
    -        "args": "textEditor"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17",
    -        "when": "terminalFocus",
    -        "args": "terminal"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p",
    -        "when": "terminalFocus",
    -        "args": "terminal"
    -      }
    -    ],
    -    "configuration": {
    -      "title": "Command server",
    -      "properties": {
    -        "command-server.allowList": {
    -          "type": "array",
    -          "default": [
    -            "*"
    -          ],
    -          "description": "Commands to allow.  Supports simple glob syntax"
    -        },
    -        "command-server.denyList": {
    -          "type": "array",
    -          "default": [],
    -          "description": "Commands to deny.  Supports simple glob syntax"
    -        },
    -        "command-server.backgroundWindowProtection": {
    -          "type": "boolean",
    -          "default": false,
    -          "description": "Whether to enable protection against background windows executing a command"
    -        }
    -      }
    -    }
    -  },
    -  "scripts": {
    -    "test": "echo \"Error: no test specified\" && exit 1",
    -    "compile:tsc": "tsc --build",
    -    "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node",
    -    "compile": "pnpm compile:tsc && pnpm compile:esbuild",
    -    "watch:tsc": "pnpm compile:tsc --watch",
    -    "watch:esbuild": "pnpm compile:esbuild --watch",
    -    "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'",
    -    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
    -  },
    -  "devDependencies": {
    -    "@types/glob": "^7.1.3",
    -    "@types/mocha": "8.0.4",
    -    "@types/node": "^18.19.22",
    -    "@types/rimraf": "^3.0.0",
    -    "@types/vscode": "^1.53.0",
    -    "@typescript-eslint/eslint-plugin": "^4.9.0",
    -    "@typescript-eslint/parser": "^4.9.0",
    -    "esbuild": "^0.20.2",
    -    "eslint": "^7.15.0",
    -    "glob": "^7.1.6",
    -    "mocha": "8.1.3",
    -    "typescript": "^4.1.2",
    -    "vscode-test": "^1.4.1",
    -    "neovim": "^5.0.1"
    -  },
    -  "dependencies": {
    -    "@cursorless/neovim-registry": "link:..\\cursorless_fork\\packages\\neovim-registry",
    -    "minimatch": "^3.0.4",
    -    "rimraf": "^3.0.2"
    -  }
    -}
    diff --git a/dist/cursorless.nvim/node/command-server/out/index.cjs b/dist/cursorless.nvim/node/command-server/out/index.cjs
    deleted file mode 100644
    index e2201d93cf..0000000000
    --- a/dist/cursorless.nvim/node/command-server/out/index.cjs
    +++ /dev/null
    @@ -1,311 +0,0 @@
    -"use strict";
    -var __defProp = Object.defineProperty;
    -var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
    -var __getOwnPropNames = Object.getOwnPropertyNames;
    -var __hasOwnProp = Object.prototype.hasOwnProperty;
    -var __export = (target, all) => {
    -  for (var name in all)
    -    __defProp(target, name, { get: all[name], enumerable: true });
    -};
    -var __copyProps = (to, from, except, desc) => {
    -  if (from && typeof from === "object" || typeof from === "function") {
    -    for (let key of __getOwnPropNames(from))
    -      if (!__hasOwnProp.call(to, key) && key !== except)
    -        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
    -  }
    -  return to;
    -};
    -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
    -
    -// src/index.ts
    -var src_exports = {};
    -__export(src_exports, {
    -  default: () => entry
    -});
    -module.exports = __toCommonJS(src_exports);
    -
    -// src/nativeIo.ts
    -var import_fs = require("fs");
    -var import_path2 = require("path");
    -var import_constants = require("constants");
    -
    -// src/paths.ts
    -var import_os = require("os");
    -var import_path = require("path");
    -function getCommunicationDirPath() {
    -  const info = (0, import_os.userInfo)();
    -  const suffix = info.uid >= 0 ? `-${info.uid}` : "";
    -  return (0, import_path.join)((0, import_os.tmpdir)(), `neovim-command-server${suffix}`);
    -}
    -function getSignalDirPath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "signals");
    -}
    -function getRequestPath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "request.json");
    -}
    -function getResponsePath() {
    -  return (0, import_path.join)(getCommunicationDirPath(), "response.json");
    -}
    -
    -// src/nativeIo.ts
    -var import_os2 = require("os");
    -var import_promises = require("fs/promises");
    -
    -// src/constants.ts
    -var NEOVIM_COMMAND_TIMEOUT_MS = 3e3;
    -
    -// src/nativeIo.ts
    -var InboundSignal = class {
    -  constructor(path) {
    -    this.path = path;
    -  }
    -  /**
    -   * Gets the current version of the signal. This version string changes every
    -   * time the signal is emitted, and can be used to detect whether signal has
    -   * been emitted between two timepoints.
    -   * @returns The current signal version or null if the signal file could not be
    -   * found
    -   */
    -  async getVersion() {
    -    try {
    -      return (await (0, import_promises.stat)(this.path)).mtimeMs.toString();
    -    } catch (err) {
    -      if (err.code !== "ENOENT") {
    -        throw err;
    -      }
    -      return null;
    -    }
    -  }
    -};
    -var NativeIo = class {
    -  constructor() {
    -    this.responseFile = null;
    -  }
    -  async initialize() {
    -    const communicationDirPath = getCommunicationDirPath();
    -    console.warn(`Creating communication dir ${communicationDirPath}`);
    -    (0, import_fs.mkdirSync)(communicationDirPath, { recursive: true, mode: 504 });
    -    const stats = (0, import_fs.lstatSync)(communicationDirPath);
    -    const info = (0, import_os2.userInfo)();
    -    if (!stats.isDirectory() || stats.isSymbolicLink() || stats.mode & import_constants.S_IWOTH || // On Windows, uid < 0, so we don't worry about it for simplicity
    -    info.uid >= 0 && stats.uid !== info.uid) {
    -      throw new Error(
    -        `Refusing to proceed because of invalid communication dir ${communicationDirPath}`
    -      );
    -    }
    -  }
    -  async prepareResponse() {
    -    if (this.responseFile) {
    -      throw new Error("response is already locked");
    -    }
    -    this.responseFile = await (0, import_promises.open)(getResponsePath(), "wx");
    -  }
    -  async closeResponse() {
    -    if (!this.responseFile) {
    -      throw new Error("response is not locked");
    -    }
    -    await this.responseFile.close();
    -    this.responseFile = null;
    -  }
    -  /**
    -   * Reads the JSON-encoded request from the request file, unlinking the file
    -   * after reading.
    -   * @returns A promise that resolves to a Response object
    -   */
    -  async readRequest() {
    -    const requestPath = getRequestPath();
    -    const stats = await (0, import_promises.stat)(requestPath);
    -    const request = JSON.parse(await (0, import_promises.readFile)(requestPath, "utf-8"));
    -    if (Math.abs(stats.mtimeMs - (/* @__PURE__ */ new Date()).getTime()) > NEOVIM_COMMAND_TIMEOUT_MS) {
    -      throw new Error(
    -        "Request file is older than timeout; refusing to execute command"
    -      );
    -    }
    -    return request;
    -  }
    -  /**
    -   * Writes the response to the response file as JSON.
    -   * @param file The file to write to
    -   * @param response The response object to JSON-encode and write to disk
    -   */
    -  async writeResponse(response) {
    -    if (!this.responseFile) {
    -      throw new Error("response is not locked");
    -    }
    -    await this.responseFile.write(`${JSON.stringify(response)}
    -`);
    -  }
    -  getInboundSignal(name) {
    -    const signalDir = getSignalDirPath();
    -    const path = (0, import_path2.join)(signalDir, name);
    -    return new InboundSignal(path);
    -  }
    -};
    -
    -// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts
    -var import_node_events = require("node:events");
    -var NeovimRegistry = class {
    -  constructor() {
    -    this.apis = /* @__PURE__ */ new Map();
    -    this.commands = /* @__PURE__ */ new Map();
    -    this.eventEmitter = new import_node_events.EventEmitter();
    -  }
    -  registerExtensionApi(extensionId, api) {
    -    this.apis.set(extensionId, api);
    -  }
    -  getExtensionApi(extensionId) {
    -    return this.apis.get(extensionId);
    -  }
    -  registerCommand(commandId, callback) {
    -    this.commands.set(commandId, callback);
    -  }
    -  async executeCommand(commandId, ...rest) {
    -    return await this.commands.get(commandId)(...rest);
    -  }
    -  onEvent(eventName, listener) {
    -    return this.eventEmitter.on(eventName, listener);
    -  }
    -  emitEvent(eventName, ...args) {
    -    return this.eventEmitter.emit(eventName, ...args);
    -  }
    -};
    -
    -// ../cursorless_fork/packages/neovim-registry/src/index.ts
    -function getNeovimRegistry() {
    -  if (global._neovimRegistry == null) {
    -    global._neovimRegistry = new NeovimRegistry();
    -  }
    -  return global._neovimRegistry;
    -}
    -
    -// src/commandRunner.ts
    -var CommandRunner = class {
    -  constructor(io) {
    -    this.io = io;
    -    this.reloadConfiguration = this.reloadConfiguration.bind(this);
    -    this.runCommand = this.runCommand.bind(this);
    -    this.reloadConfiguration();
    -  }
    -  reloadConfiguration() {
    -  }
    -  /**
    -   * Reads a command from the request file and executes it.  Writes information
    -   * about command execution to the result of the command to the response file,
    -   * If requested, will wait for command to finish, and can also write command
    -   * output to response file.  See also documentation for Request / Response
    -   * types.
    -   */
    -  async runCommand() {
    -    console.warn("------------------------------------------------------------------------------");
    -    await this.io.prepareResponse();
    -    let request;
    -    try {
    -      request = await this.io.readRequest();
    -    } catch (err) {
    -      await this.io.closeResponse();
    -      throw err;
    -    }
    -    const { commandId, args, uuid, returnCommandOutput, waitForFinish } = request;
    -    const warnings = [];
    -    try {
    -      if (!commandId.match(this.allowRegex)) {
    -        throw new Error("Command not in allowList");
    -      }
    -      if (this.denyRegex != null && commandId.match(this.denyRegex)) {
    -        throw new Error("Command in denyList");
    -      }
    -      const commandPromise = getNeovimRegistry().executeCommand(commandId, ...args);
    -      let commandReturnValue = null;
    -      if (returnCommandOutput) {
    -        commandReturnValue = await commandPromise;
    -      } else if (waitForFinish) {
    -        await commandPromise;
    -      }
    -      await this.io.writeResponse({
    -        error: null,
    -        uuid,
    -        returnValue: commandReturnValue,
    -        warnings
    -      });
    -    } catch (err) {
    -      await this.io.writeResponse({
    -        error: err.message,
    -        uuid,
    -        warnings
    -      });
    -    }
    -    await this.io.closeResponse();
    -  }
    -};
    -
    -// src/singletons/commandRunner.singleton.ts
    -var cmdRunner_;
    -function injectCommandRunner(cmdRunner) {
    -  cmdRunner_ = cmdRunner;
    -}
    -function commandRunner() {
    -  if (cmdRunner_ == null) {
    -    throw Error("Tried to access CommandRunner before it was injected");
    -  }
    -  return cmdRunner_;
    -}
    -
    -// src/extension.ts
    -async function activate() {
    -  const io = new NativeIo();
    -  await io.initialize();
    -  const commandRunner2 = new CommandRunner(io);
    -  let focusedElementType;
    -  injectCommandRunner(commandRunner2);
    -  return {
    -    /**
    -     * The type of the focused element in vscode at the moment of the command being executed.
    -     */
    -    getFocusedElementType: () => focusedElementType,
    -    /**
    -     * These signals can be used as a form of IPC to indicate that an event has
    -     * occurred.
    -     */
    -    signals: {
    -      /**
    -       * This signal is emitted by the voice engine to indicate that a phrase has
    -       * just begun execution.
    -       */
    -      prePhrase: io.getInboundSignal("prePhrase")
    -    }
    -  };
    -}
    -
    -// src/index.ts
    -function entry(plugin) {
    -  plugin.setOptions({ dev: false });
    -  plugin.registerFunction("CommandServerTest", () => test(plugin), {
    -    sync: false
    -  });
    -  plugin.registerFunction(
    -    "CommandServerLoadExtension",
    -    async () => await loadExtension(plugin),
    -    { sync: false }
    -  );
    -  plugin.registerFunction(
    -    "CommandServerRunCommand",
    -    () => runCommand(),
    -    { sync: false }
    -  );
    -}
    -function test(plugin) {
    -  const currentDate = /* @__PURE__ */ new Date();
    -  const currentDateStr = currentDate.toLocaleString();
    -  console.warn("test(): " + currentDateStr);
    -}
    -async function loadExtension(plugin) {
    -  console.warn("loadExtension(command-server): start");
    -  await activate();
    -  console.warn("loadExtension(command-server): done");
    -}
    -async function runCommand() {
    -  console.warn("runCommand(command-server): start");
    -  commandRunner().runCommand();
    -  console.warn("runCommand(command-server): done");
    -}
    -//# sourceMappingURL=index.cjs.map
    diff --git a/dist/cursorless.nvim/node/command-server/package.json b/dist/cursorless.nvim/node/command-server/package.json
    deleted file mode 100644
    index 39b8379d10..0000000000
    --- a/dist/cursorless.nvim/node/command-server/package.json
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -{
    -  "name": "command-server",
    -  "displayName": "Command server",
    -  "description": "Exposes a file-based RPC API for running VSCode commands",
    -  "publisher": "pokey",
    -  "license": "MIT",
    -  "repository": {
    -    "type": "git",
    -    "url": "https://github.com/pokey/command-server"
    -  },
    -  "version": "0.9.1",
    -  "categories": [
    -    "Other"
    -  ],
    -  "activationEvents": [
    -    "*"
    -  ],
    -  "main": "./out/index.cjs",
    -  "private": true,
    -  "extensionKind": [
    -    "ui"
    -  ],
    -  "capabilities": {
    -    "untrustedWorkspaces": {
    -      "supported": "limited",
    -      "description": "Untrusted workspaces can't override allowList / denyList",
    -      "restrictedConfigurations": [
    -        "allowList",
    -        "denyList"
    -      ]
    -    }
    -  },
    -  "contributes": {
    -    "commands": [
    -      {
    -        "command": "command-server.runCommand",
    -        "title": "Read command description from a file and execute the command"
    -      },
    -      {
    -        "command": "command-server.getFocusedElementType",
    -        "title": "Returns the type of the currently focused element in vscode"
    -      }
    -    ],
    -    "keybindings": [
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17",
    -        "when": "editorTextFocus",
    -        "args": "textEditor"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p",
    -        "when": "editorTextFocus",
    -        "args": "textEditor"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+f17",
    -        "mac": "cmd+shift+f17",
    -        "when": "terminalFocus",
    -        "args": "terminal"
    -      },
    -      {
    -        "command": "command-server.runCommand",
    -        "key": "ctrl+shift+alt+p",
    -        "mac": "cmd+shift+alt+p",
    -        "when": "terminalFocus",
    -        "args": "terminal"
    -      }
    -    ],
    -    "configuration": {
    -      "title": "Command server",
    -      "properties": {
    -        "command-server.allowList": {
    -          "type": "array",
    -          "default": [
    -            "*"
    -          ],
    -          "description": "Commands to allow.  Supports simple glob syntax"
    -        },
    -        "command-server.denyList": {
    -          "type": "array",
    -          "default": [],
    -          "description": "Commands to deny.  Supports simple glob syntax"
    -        },
    -        "command-server.backgroundWindowProtection": {
    -          "type": "boolean",
    -          "default": false,
    -          "description": "Whether to enable protection against background windows executing a command"
    -        }
    -      }
    -    }
    -  },
    -  "scripts": {
    -    "test": "echo \"Error: no test specified\" && exit 1",
    -    "compile:tsc": "tsc --build",
    -    "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node",
    -    "compile": "pnpm compile:tsc && pnpm compile:esbuild",
    -    "watch:tsc": "pnpm compile:tsc --watch",
    -    "watch:esbuild": "pnpm compile:esbuild --watch",
    -    "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'",
    -    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
    -  },
    -  "devDependencies": {
    -    "@types/glob": "^7.1.3",
    -    "@types/mocha": "8.0.4",
    -    "@types/node": "^18.19.22",
    -    "@types/rimraf": "^3.0.0",
    -    "@types/vscode": "^1.53.0",
    -    "@typescript-eslint/eslint-plugin": "^4.9.0",
    -    "@typescript-eslint/parser": "^4.9.0",
    -    "esbuild": "^0.20.2",
    -    "eslint": "^7.15.0",
    -    "glob": "^7.1.6",
    -    "mocha": "8.1.3",
    -    "typescript": "^4.1.2",
    -    "vscode-test": "^1.4.1",
    -    "neovim": "^5.0.1"
    -  },
    -  "dependencies": {
    -    "@cursorless/neovim-registry": "link:..\\cursorless_fork\\packages\\neovim-registry",
    -    "minimatch": "^3.0.4",
    -    "rimraf": "^3.0.2"
    -  }
    -}
    diff --git a/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs b/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
    deleted file mode 100644
    index d22d9df1ba..0000000000
    --- a/dist/cursorless.nvim/node/cursorless-neovim/out/index.cjs
    +++ /dev/null
    @@ -1,50785 +0,0 @@
    -"use strict";
    -var __create = Object.create;
    -var __defProp = Object.defineProperty;
    -var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
    -var __getOwnPropNames = Object.getOwnPropertyNames;
    -var __getProtoOf = Object.getPrototypeOf;
    -var __hasOwnProp = Object.prototype.hasOwnProperty;
    -var __commonJS = (cb, mod) => function __require() {
    -  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
    -};
    -var __export = (target, all) => {
    -  for (var name in all)
    -    __defProp(target, name, { get: all[name], enumerable: true });
    -};
    -var __copyProps = (to, from, except, desc) => {
    -  if (from && typeof from === "object" || typeof from === "function") {
    -    for (let key of __getOwnPropNames(from))
    -      if (!__hasOwnProp.call(to, key) && key !== except)
    -        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
    -  }
    -  return to;
    -};
    -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
    -  // If the importer is in node compatibility mode or this is not an ESM
    -  // file that has been converted to a CommonJS file using a Babel-
    -  // compatible transform (i.e. "__esModule" has not been set), then set
    -  // "default" to the CommonJS "module.exports" for node compatibility.
    -  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
    -  mod
    -));
    -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
    -
    -// ../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js
    -var require_lodash = __commonJS({
    -  "../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"(exports2, module2) {
    -    (function() {
    -      var undefined2;
    -      var VERSION = "4.17.21";
    -      var LARGE_ARRAY_SIZE = 200;
    -      var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
    -      var HASH_UNDEFINED = "__lodash_hash_undefined__";
    -      var MAX_MEMOIZE_SIZE = 500;
    -      var PLACEHOLDER = "__lodash_placeholder__";
    -      var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;
    -      var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
    -      var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;
    -      var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "...";
    -      var HOT_COUNT = 800, HOT_SPAN = 16;
    -      var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;
    -      var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;
    -      var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
    -      var wrapFlags = [
    -        ["ary", WRAP_ARY_FLAG],
    -        ["bind", WRAP_BIND_FLAG],
    -        ["bindKey", WRAP_BIND_KEY_FLAG],
    -        ["curry", WRAP_CURRY_FLAG],
    -        ["curryRight", WRAP_CURRY_RIGHT_FLAG],
    -        ["flip", WRAP_FLIP_FLAG],
    -        ["partial", WRAP_PARTIAL_FLAG],
    -        ["partialRight", WRAP_PARTIAL_RIGHT_FLAG],
    -        ["rearg", WRAP_REARG_FLAG]
    -      ];
    -      var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]";
    -      var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
    -      var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
    -      var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
    -      var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g;
    -      var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
    -      var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);
    -      var reTrimStart = /^\s+/;
    -      var reWhitespace = /\s/;
    -      var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /;
    -      var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
    -      var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
    -      var reEscapeChar = /\\(\\)?/g;
    -      var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
    -      var reFlags = /\w*$/;
    -      var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
    -      var reIsBinary = /^0b[01]+$/i;
    -      var reIsHostCtor = /^\[object .+?Constructor\]$/;
    -      var reIsOctal = /^0o[0-7]+$/i;
    -      var reIsUint = /^(?:0|[1-9]\d*)$/;
    -      var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
    -      var reNoMatch = /($^)/;
    -      var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
    -      var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
    -      var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d";
    -      var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
    -      var reApos = RegExp(rsApos, "g");
    -      var reComboMark = RegExp(rsCombo, "g");
    -      var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
    -      var reUnicodeWord = RegExp([
    -        rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
    -        rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
    -        rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
    -        rsUpper + "+" + rsOptContrUpper,
    -        rsOrdUpper,
    -        rsOrdLower,
    -        rsDigits,
    -        rsEmoji
    -      ].join("|"), "g");
    -      var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
    -      var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
    -      var contextProps = [
    -        "Array",
    -        "Buffer",
    -        "DataView",
    -        "Date",
    -        "Error",
    -        "Float32Array",
    -        "Float64Array",
    -        "Function",
    -        "Int8Array",
    -        "Int16Array",
    -        "Int32Array",
    -        "Map",
    -        "Math",
    -        "Object",
    -        "Promise",
    -        "RegExp",
    -        "Set",
    -        "String",
    -        "Symbol",
    -        "TypeError",
    -        "Uint8Array",
    -        "Uint8ClampedArray",
    -        "Uint16Array",
    -        "Uint32Array",
    -        "WeakMap",
    -        "_",
    -        "clearTimeout",
    -        "isFinite",
    -        "parseInt",
    -        "setTimeout"
    -      ];
    -      var templateCounter = -1;
    -      var typedArrayTags = {};
    -      typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
    -      typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
    -      var cloneableTags = {};
    -      cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
    -      cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
    -      var deburredLetters = {
    -        // Latin-1 Supplement block.
    -        "\xC0": "A",
    -        "\xC1": "A",
    -        "\xC2": "A",
    -        "\xC3": "A",
    -        "\xC4": "A",
    -        "\xC5": "A",
    -        "\xE0": "a",
    -        "\xE1": "a",
    -        "\xE2": "a",
    -        "\xE3": "a",
    -        "\xE4": "a",
    -        "\xE5": "a",
    -        "\xC7": "C",
    -        "\xE7": "c",
    -        "\xD0": "D",
    -        "\xF0": "d",
    -        "\xC8": "E",
    -        "\xC9": "E",
    -        "\xCA": "E",
    -        "\xCB": "E",
    -        "\xE8": "e",
    -        "\xE9": "e",
    -        "\xEA": "e",
    -        "\xEB": "e",
    -        "\xCC": "I",
    -        "\xCD": "I",
    -        "\xCE": "I",
    -        "\xCF": "I",
    -        "\xEC": "i",
    -        "\xED": "i",
    -        "\xEE": "i",
    -        "\xEF": "i",
    -        "\xD1": "N",
    -        "\xF1": "n",
    -        "\xD2": "O",
    -        "\xD3": "O",
    -        "\xD4": "O",
    -        "\xD5": "O",
    -        "\xD6": "O",
    -        "\xD8": "O",
    -        "\xF2": "o",
    -        "\xF3": "o",
    -        "\xF4": "o",
    -        "\xF5": "o",
    -        "\xF6": "o",
    -        "\xF8": "o",
    -        "\xD9": "U",
    -        "\xDA": "U",
    -        "\xDB": "U",
    -        "\xDC": "U",
    -        "\xF9": "u",
    -        "\xFA": "u",
    -        "\xFB": "u",
    -        "\xFC": "u",
    -        "\xDD": "Y",
    -        "\xFD": "y",
    -        "\xFF": "y",
    -        "\xC6": "Ae",
    -        "\xE6": "ae",
    -        "\xDE": "Th",
    -        "\xFE": "th",
    -        "\xDF": "ss",
    -        // Latin Extended-A block.
    -        "\u0100": "A",
    -        "\u0102": "A",
    -        "\u0104": "A",
    -        "\u0101": "a",
    -        "\u0103": "a",
    -        "\u0105": "a",
    -        "\u0106": "C",
    -        "\u0108": "C",
    -        "\u010A": "C",
    -        "\u010C": "C",
    -        "\u0107": "c",
    -        "\u0109": "c",
    -        "\u010B": "c",
    -        "\u010D": "c",
    -        "\u010E": "D",
    -        "\u0110": "D",
    -        "\u010F": "d",
    -        "\u0111": "d",
    -        "\u0112": "E",
    -        "\u0114": "E",
    -        "\u0116": "E",
    -        "\u0118": "E",
    -        "\u011A": "E",
    -        "\u0113": "e",
    -        "\u0115": "e",
    -        "\u0117": "e",
    -        "\u0119": "e",
    -        "\u011B": "e",
    -        "\u011C": "G",
    -        "\u011E": "G",
    -        "\u0120": "G",
    -        "\u0122": "G",
    -        "\u011D": "g",
    -        "\u011F": "g",
    -        "\u0121": "g",
    -        "\u0123": "g",
    -        "\u0124": "H",
    -        "\u0126": "H",
    -        "\u0125": "h",
    -        "\u0127": "h",
    -        "\u0128": "I",
    -        "\u012A": "I",
    -        "\u012C": "I",
    -        "\u012E": "I",
    -        "\u0130": "I",
    -        "\u0129": "i",
    -        "\u012B": "i",
    -        "\u012D": "i",
    -        "\u012F": "i",
    -        "\u0131": "i",
    -        "\u0134": "J",
    -        "\u0135": "j",
    -        "\u0136": "K",
    -        "\u0137": "k",
    -        "\u0138": "k",
    -        "\u0139": "L",
    -        "\u013B": "L",
    -        "\u013D": "L",
    -        "\u013F": "L",
    -        "\u0141": "L",
    -        "\u013A": "l",
    -        "\u013C": "l",
    -        "\u013E": "l",
    -        "\u0140": "l",
    -        "\u0142": "l",
    -        "\u0143": "N",
    -        "\u0145": "N",
    -        "\u0147": "N",
    -        "\u014A": "N",
    -        "\u0144": "n",
    -        "\u0146": "n",
    -        "\u0148": "n",
    -        "\u014B": "n",
    -        "\u014C": "O",
    -        "\u014E": "O",
    -        "\u0150": "O",
    -        "\u014D": "o",
    -        "\u014F": "o",
    -        "\u0151": "o",
    -        "\u0154": "R",
    -        "\u0156": "R",
    -        "\u0158": "R",
    -        "\u0155": "r",
    -        "\u0157": "r",
    -        "\u0159": "r",
    -        "\u015A": "S",
    -        "\u015C": "S",
    -        "\u015E": "S",
    -        "\u0160": "S",
    -        "\u015B": "s",
    -        "\u015D": "s",
    -        "\u015F": "s",
    -        "\u0161": "s",
    -        "\u0162": "T",
    -        "\u0164": "T",
    -        "\u0166": "T",
    -        "\u0163": "t",
    -        "\u0165": "t",
    -        "\u0167": "t",
    -        "\u0168": "U",
    -        "\u016A": "U",
    -        "\u016C": "U",
    -        "\u016E": "U",
    -        "\u0170": "U",
    -        "\u0172": "U",
    -        "\u0169": "u",
    -        "\u016B": "u",
    -        "\u016D": "u",
    -        "\u016F": "u",
    -        "\u0171": "u",
    -        "\u0173": "u",
    -        "\u0174": "W",
    -        "\u0175": "w",
    -        "\u0176": "Y",
    -        "\u0177": "y",
    -        "\u0178": "Y",
    -        "\u0179": "Z",
    -        "\u017B": "Z",
    -        "\u017D": "Z",
    -        "\u017A": "z",
    -        "\u017C": "z",
    -        "\u017E": "z",
    -        "\u0132": "IJ",
    -        "\u0133": "ij",
    -        "\u0152": "Oe",
    -        "\u0153": "oe",
    -        "\u0149": "'n",
    -        "\u017F": "s"
    -      };
    -      var htmlEscapes = {
    -        "&": "&",
    -        "<": "<",
    -        ">": ">",
    -        '"': """,
    -        "'": "'"
    -      };
    -      var htmlUnescapes = {
    -        "&": "&",
    -        "<": "<",
    -        ">": ">",
    -        """: '"',
    -        "'": "'"
    -      };
    -      var stringEscapes = {
    -        "\\": "\\",
    -        "'": "'",
    -        "\n": "n",
    -        "\r": "r",
    -        "\u2028": "u2028",
    -        "\u2029": "u2029"
    -      };
    -      var freeParseFloat = parseFloat, freeParseInt = parseInt;
    -      var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    -      var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    -      var root = freeGlobal || freeSelf || Function("return this")();
    -      var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2;
    -      var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2;
    -      var moduleExports = freeModule && freeModule.exports === freeExports;
    -      var freeProcess = moduleExports && freeGlobal.process;
    -      var nodeUtil = function() {
    -        try {
    -          var types2 = freeModule && freeModule.require && freeModule.require("util").types;
    -          if (types2) {
    -            return types2;
    -          }
    -          return freeProcess && freeProcess.binding && freeProcess.binding("util");
    -        } catch (e) {
    -        }
    -      }();
    -      var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
    -      function apply(func, thisArg, args) {
    -        switch (args.length) {
    -          case 0:
    -            return func.call(thisArg);
    -          case 1:
    -            return func.call(thisArg, args[0]);
    -          case 2:
    -            return func.call(thisArg, args[0], args[1]);
    -          case 3:
    -            return func.call(thisArg, args[0], args[1], args[2]);
    -        }
    -        return func.apply(thisArg, args);
    -      }
    -      function arrayAggregator(array, setter, iteratee, accumulator) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        while (++index < length) {
    -          var value = array[index];
    -          setter(accumulator, value, iteratee(value), array);
    -        }
    -        return accumulator;
    -      }
    -      function arrayEach(array, iteratee) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        while (++index < length) {
    -          if (iteratee(array[index], index, array) === false) {
    -            break;
    -          }
    -        }
    -        return array;
    -      }
    -      function arrayEachRight(array, iteratee) {
    -        var length = array == null ? 0 : array.length;
    -        while (length--) {
    -          if (iteratee(array[length], length, array) === false) {
    -            break;
    -          }
    -        }
    -        return array;
    -      }
    -      function arrayEvery(array, predicate) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        while (++index < length) {
    -          if (!predicate(array[index], index, array)) {
    -            return false;
    -          }
    -        }
    -        return true;
    -      }
    -      function arrayFilter(array, predicate) {
    -        var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
    -        while (++index < length) {
    -          var value = array[index];
    -          if (predicate(value, index, array)) {
    -            result[resIndex++] = value;
    -          }
    -        }
    -        return result;
    -      }
    -      function arrayIncludes(array, value) {
    -        var length = array == null ? 0 : array.length;
    -        return !!length && baseIndexOf(array, value, 0) > -1;
    -      }
    -      function arrayIncludesWith(array, value, comparator) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        while (++index < length) {
    -          if (comparator(value, array[index])) {
    -            return true;
    -          }
    -        }
    -        return false;
    -      }
    -      function arrayMap(array, iteratee) {
    -        var index = -1, length = array == null ? 0 : array.length, result = Array(length);
    -        while (++index < length) {
    -          result[index] = iteratee(array[index], index, array);
    -        }
    -        return result;
    -      }
    -      function arrayPush(array, values2) {
    -        var index = -1, length = values2.length, offset = array.length;
    -        while (++index < length) {
    -          array[offset + index] = values2[index];
    -        }
    -        return array;
    -      }
    -      function arrayReduce(array, iteratee, accumulator, initAccum) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        if (initAccum && length) {
    -          accumulator = array[++index];
    -        }
    -        while (++index < length) {
    -          accumulator = iteratee(accumulator, array[index], index, array);
    -        }
    -        return accumulator;
    -      }
    -      function arrayReduceRight(array, iteratee, accumulator, initAccum) {
    -        var length = array == null ? 0 : array.length;
    -        if (initAccum && length) {
    -          accumulator = array[--length];
    -        }
    -        while (length--) {
    -          accumulator = iteratee(accumulator, array[length], length, array);
    -        }
    -        return accumulator;
    -      }
    -      function arraySome(array, predicate) {
    -        var index = -1, length = array == null ? 0 : array.length;
    -        while (++index < length) {
    -          if (predicate(array[index], index, array)) {
    -            return true;
    -          }
    -        }
    -        return false;
    -      }
    -      var asciiSize = baseProperty("length");
    -      function asciiToArray(string2) {
    -        return string2.split("");
    -      }
    -      function asciiWords(string2) {
    -        return string2.match(reAsciiWord) || [];
    -      }
    -      function baseFindKey(collection, predicate, eachFunc) {
    -        var result;
    -        eachFunc(collection, function(value, key, collection2) {
    -          if (predicate(value, key, collection2)) {
    -            result = key;
    -            return false;
    -          }
    -        });
    -        return result;
    -      }
    -      function baseFindIndex(array, predicate, fromIndex, fromRight) {
    -        var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
    -        while (fromRight ? index-- : ++index < length) {
    -          if (predicate(array[index], index, array)) {
    -            return index;
    -          }
    -        }
    -        return -1;
    -      }
    -      function baseIndexOf(array, value, fromIndex) {
    -        return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
    -      }
    -      function baseIndexOfWith(array, value, fromIndex, comparator) {
    -        var index = fromIndex - 1, length = array.length;
    -        while (++index < length) {
    -          if (comparator(array[index], value)) {
    -            return index;
    -          }
    -        }
    -        return -1;
    -      }
    -      function baseIsNaN(value) {
    -        return value !== value;
    -      }
    -      function baseMean(array, iteratee) {
    -        var length = array == null ? 0 : array.length;
    -        return length ? baseSum(array, iteratee) / length : NAN;
    -      }
    -      function baseProperty(key) {
    -        return function(object) {
    -          return object == null ? undefined2 : object[key];
    -        };
    -      }
    -      function basePropertyOf(object) {
    -        return function(key) {
    -          return object == null ? undefined2 : object[key];
    -        };
    -      }
    -      function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
    -        eachFunc(collection, function(value, index, collection2) {
    -          accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);
    -        });
    -        return accumulator;
    -      }
    -      function baseSortBy(array, comparer) {
    -        var length = array.length;
    -        array.sort(comparer);
    -        while (length--) {
    -          array[length] = array[length].value;
    -        }
    -        return array;
    -      }
    -      function baseSum(array, iteratee) {
    -        var result, index = -1, length = array.length;
    -        while (++index < length) {
    -          var current2 = iteratee(array[index]);
    -          if (current2 !== undefined2) {
    -            result = result === undefined2 ? current2 : result + current2;
    -          }
    -        }
    -        return result;
    -      }
    -      function baseTimes(n, iteratee) {
    -        var index = -1, result = Array(n);
    -        while (++index < n) {
    -          result[index] = iteratee(index);
    -        }
    -        return result;
    -      }
    -      function baseToPairs(object, props) {
    -        return arrayMap(props, function(key) {
    -          return [key, object[key]];
    -        });
    -      }
    -      function baseTrim(string2) {
    -        return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
    -      }
    -      function baseUnary(func) {
    -        return function(value) {
    -          return func(value);
    -        };
    -      }
    -      function baseValues(object, props) {
    -        return arrayMap(props, function(key) {
    -          return object[key];
    -        });
    -      }
    -      function cacheHas(cache, key) {
    -        return cache.has(key);
    -      }
    -      function charsStartIndex(strSymbols, chrSymbols) {
    -        var index = -1, length = strSymbols.length;
    -        while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
    -        }
    -        return index;
    -      }
    -      function charsEndIndex(strSymbols, chrSymbols) {
    -        var index = strSymbols.length;
    -        while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
    -        }
    -        return index;
    -      }
    -      function countHolders(array, placeholder) {
    -        var length = array.length, result = 0;
    -        while (length--) {
    -          if (array[length] === placeholder) {
    -            ++result;
    -          }
    -        }
    -        return result;
    -      }
    -      var deburrLetter = basePropertyOf(deburredLetters);
    -      var escapeHtmlChar = basePropertyOf(htmlEscapes);
    -      function escapeStringChar(chr) {
    -        return "\\" + stringEscapes[chr];
    -      }
    -      function getValue(object, key) {
    -        return object == null ? undefined2 : object[key];
    -      }
    -      function hasUnicode(string2) {
    -        return reHasUnicode.test(string2);
    -      }
    -      function hasUnicodeWord(string2) {
    -        return reHasUnicodeWord.test(string2);
    -      }
    -      function iteratorToArray(iterator) {
    -        var data, result = [];
    -        while (!(data = iterator.next()).done) {
    -          result.push(data.value);
    -        }
    -        return result;
    -      }
    -      function mapToArray(map4) {
    -        var index = -1, result = Array(map4.size);
    -        map4.forEach(function(value, key) {
    -          result[++index] = [key, value];
    -        });
    -        return result;
    -      }
    -      function overArg(func, transform) {
    -        return function(arg) {
    -          return func(transform(arg));
    -        };
    -      }
    -      function replaceHolders(array, placeholder) {
    -        var index = -1, length = array.length, resIndex = 0, result = [];
    -        while (++index < length) {
    -          var value = array[index];
    -          if (value === placeholder || value === PLACEHOLDER) {
    -            array[index] = PLACEHOLDER;
    -            result[resIndex++] = index;
    -          }
    -        }
    -        return result;
    -      }
    -      function setToArray(set3) {
    -        var index = -1, result = Array(set3.size);
    -        set3.forEach(function(value) {
    -          result[++index] = value;
    -        });
    -        return result;
    -      }
    -      function setToPairs(set3) {
    -        var index = -1, result = Array(set3.size);
    -        set3.forEach(function(value) {
    -          result[++index] = [value, value];
    -        });
    -        return result;
    -      }
    -      function strictIndexOf(array, value, fromIndex) {
    -        var index = fromIndex - 1, length = array.length;
    -        while (++index < length) {
    -          if (array[index] === value) {
    -            return index;
    -          }
    -        }
    -        return -1;
    -      }
    -      function strictLastIndexOf(array, value, fromIndex) {
    -        var index = fromIndex + 1;
    -        while (index--) {
    -          if (array[index] === value) {
    -            return index;
    -          }
    -        }
    -        return index;
    -      }
    -      function stringSize(string2) {
    -        return hasUnicode(string2) ? unicodeSize(string2) : asciiSize(string2);
    -      }
    -      function stringToArray(string2) {
    -        return hasUnicode(string2) ? unicodeToArray(string2) : asciiToArray(string2);
    -      }
    -      function trimmedEndIndex(string2) {
    -        var index = string2.length;
    -        while (index-- && reWhitespace.test(string2.charAt(index))) {
    -        }
    -        return index;
    -      }
    -      var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
    -      function unicodeSize(string2) {
    -        var result = reUnicode.lastIndex = 0;
    -        while (reUnicode.test(string2)) {
    -          ++result;
    -        }
    -        return result;
    -      }
    -      function unicodeToArray(string2) {
    -        return string2.match(reUnicode) || [];
    -      }
    -      function unicodeWords(string2) {
    -        return string2.match(reUnicodeWord) || [];
    -      }
    -      var runInContext = function runInContext2(context) {
    -        context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
    -        var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
    -        var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
    -        var coreJsData = context["__core-js_shared__"];
    -        var funcToString = funcProto.toString;
    -        var hasOwnProperty = objectProto.hasOwnProperty;
    -        var idCounter = 0;
    -        var maskSrcKey = function() {
    -          var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
    -          return uid ? "Symbol(src)_1." + uid : "";
    -        }();
    -        var nativeObjectToString = objectProto.toString;
    -        var objectCtorString2 = funcToString.call(Object2);
    -        var oldDash = root._;
    -        var reIsNative = RegExp2(
    -          "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    -        );
    -        var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;
    -        var defineProperty = function() {
    -          try {
    -            var func = getNative(Object2, "defineProperty");
    -            func({}, "", {});
    -            return func;
    -          } catch (e) {
    -          }
    -        }();
    -        var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
    -        var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
    -        var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
    -        var metaMap = WeakMap2 && new WeakMap2();
    -        var realNames = {};
    -        var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2);
    -        var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;
    -        function lodash(value) {
    -          if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
    -            if (value instanceof LodashWrapper) {
    -              return value;
    -            }
    -            if (hasOwnProperty.call(value, "__wrapped__")) {
    -              return wrapperClone(value);
    -            }
    -          }
    -          return new LodashWrapper(value);
    -        }
    -        var baseCreate = /* @__PURE__ */ function() {
    -          function object() {
    -          }
    -          return function(proto) {
    -            if (!isObject3(proto)) {
    -              return {};
    -            }
    -            if (objectCreate) {
    -              return objectCreate(proto);
    -            }
    -            object.prototype = proto;
    -            var result2 = new object();
    -            object.prototype = undefined2;
    -            return result2;
    -          };
    -        }();
    -        function baseLodash() {
    -        }
    -        function LodashWrapper(value, chainAll) {
    -          this.__wrapped__ = value;
    -          this.__actions__ = [];
    -          this.__chain__ = !!chainAll;
    -          this.__index__ = 0;
    -          this.__values__ = undefined2;
    -        }
    -        lodash.templateSettings = {
    -          /**
    -           * Used to detect `data` property values to be HTML-escaped.
    -           *
    -           * @memberOf _.templateSettings
    -           * @type {RegExp}
    -           */
    -          "escape": reEscape,
    -          /**
    -           * Used to detect code to be evaluated.
    -           *
    -           * @memberOf _.templateSettings
    -           * @type {RegExp}
    -           */
    -          "evaluate": reEvaluate,
    -          /**
    -           * Used to detect `data` property values to inject.
    -           *
    -           * @memberOf _.templateSettings
    -           * @type {RegExp}
    -           */
    -          "interpolate": reInterpolate,
    -          /**
    -           * Used to reference the data object in the template text.
    -           *
    -           * @memberOf _.templateSettings
    -           * @type {string}
    -           */
    -          "variable": "",
    -          /**
    -           * Used to import variables into the compiled template.
    -           *
    -           * @memberOf _.templateSettings
    -           * @type {Object}
    -           */
    -          "imports": {
    -            /**
    -             * A reference to the `lodash` function.
    -             *
    -             * @memberOf _.templateSettings.imports
    -             * @type {Function}
    -             */
    -            "_": lodash
    -          }
    -        };
    -        lodash.prototype = baseLodash.prototype;
    -        lodash.prototype.constructor = lodash;
    -        LodashWrapper.prototype = baseCreate(baseLodash.prototype);
    -        LodashWrapper.prototype.constructor = LodashWrapper;
    -        function LazyWrapper(value) {
    -          this.__wrapped__ = value;
    -          this.__actions__ = [];
    -          this.__dir__ = 1;
    -          this.__filtered__ = false;
    -          this.__iteratees__ = [];
    -          this.__takeCount__ = MAX_ARRAY_LENGTH;
    -          this.__views__ = [];
    -        }
    -        function lazyClone() {
    -          var result2 = new LazyWrapper(this.__wrapped__);
    -          result2.__actions__ = copyArray(this.__actions__);
    -          result2.__dir__ = this.__dir__;
    -          result2.__filtered__ = this.__filtered__;
    -          result2.__iteratees__ = copyArray(this.__iteratees__);
    -          result2.__takeCount__ = this.__takeCount__;
    -          result2.__views__ = copyArray(this.__views__);
    -          return result2;
    -        }
    -        function lazyReverse() {
    -          if (this.__filtered__) {
    -            var result2 = new LazyWrapper(this);
    -            result2.__dir__ = -1;
    -            result2.__filtered__ = true;
    -          } else {
    -            result2 = this.clone();
    -            result2.__dir__ *= -1;
    -          }
    -          return result2;
    -        }
    -        function lazyValue() {
    -          var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);
    -          if (!isArr || !isRight && arrLength == length && takeCount == length) {
    -            return baseWrapperValue(array, this.__actions__);
    -          }
    -          var result2 = [];
    -          outer:
    -            while (length-- && resIndex < takeCount) {
    -              index += dir;
    -              var iterIndex = -1, value = array[index];
    -              while (++iterIndex < iterLength) {
    -                var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value);
    -                if (type2 == LAZY_MAP_FLAG) {
    -                  value = computed;
    -                } else if (!computed) {
    -                  if (type2 == LAZY_FILTER_FLAG) {
    -                    continue outer;
    -                  } else {
    -                    break outer;
    -                  }
    -                }
    -              }
    -              result2[resIndex++] = value;
    -            }
    -          return result2;
    -        }
    -        LazyWrapper.prototype = baseCreate(baseLodash.prototype);
    -        LazyWrapper.prototype.constructor = LazyWrapper;
    -        function Hash(entries) {
    -          var index = -1, length = entries == null ? 0 : entries.length;
    -          this.clear();
    -          while (++index < length) {
    -            var entry2 = entries[index];
    -            this.set(entry2[0], entry2[1]);
    -          }
    -        }
    -        function hashClear() {
    -          this.__data__ = nativeCreate ? nativeCreate(null) : {};
    -          this.size = 0;
    -        }
    -        function hashDelete(key) {
    -          var result2 = this.has(key) && delete this.__data__[key];
    -          this.size -= result2 ? 1 : 0;
    -          return result2;
    -        }
    -        function hashGet(key) {
    -          var data = this.__data__;
    -          if (nativeCreate) {
    -            var result2 = data[key];
    -            return result2 === HASH_UNDEFINED ? undefined2 : result2;
    -          }
    -          return hasOwnProperty.call(data, key) ? data[key] : undefined2;
    -        }
    -        function hashHas(key) {
    -          var data = this.__data__;
    -          return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key);
    -        }
    -        function hashSet(key, value) {
    -          var data = this.__data__;
    -          this.size += this.has(key) ? 0 : 1;
    -          data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;
    -          return this;
    -        }
    -        Hash.prototype.clear = hashClear;
    -        Hash.prototype["delete"] = hashDelete;
    -        Hash.prototype.get = hashGet;
    -        Hash.prototype.has = hashHas;
    -        Hash.prototype.set = hashSet;
    -        function ListCache(entries) {
    -          var index = -1, length = entries == null ? 0 : entries.length;
    -          this.clear();
    -          while (++index < length) {
    -            var entry2 = entries[index];
    -            this.set(entry2[0], entry2[1]);
    -          }
    -        }
    -        function listCacheClear() {
    -          this.__data__ = [];
    -          this.size = 0;
    -        }
    -        function listCacheDelete(key) {
    -          var data = this.__data__, index = assocIndexOf(data, key);
    -          if (index < 0) {
    -            return false;
    -          }
    -          var lastIndex = data.length - 1;
    -          if (index == lastIndex) {
    -            data.pop();
    -          } else {
    -            splice.call(data, index, 1);
    -          }
    -          --this.size;
    -          return true;
    -        }
    -        function listCacheGet(key) {
    -          var data = this.__data__, index = assocIndexOf(data, key);
    -          return index < 0 ? undefined2 : data[index][1];
    -        }
    -        function listCacheHas(key) {
    -          return assocIndexOf(this.__data__, key) > -1;
    -        }
    -        function listCacheSet(key, value) {
    -          var data = this.__data__, index = assocIndexOf(data, key);
    -          if (index < 0) {
    -            ++this.size;
    -            data.push([key, value]);
    -          } else {
    -            data[index][1] = value;
    -          }
    -          return this;
    -        }
    -        ListCache.prototype.clear = listCacheClear;
    -        ListCache.prototype["delete"] = listCacheDelete;
    -        ListCache.prototype.get = listCacheGet;
    -        ListCache.prototype.has = listCacheHas;
    -        ListCache.prototype.set = listCacheSet;
    -        function MapCache(entries) {
    -          var index = -1, length = entries == null ? 0 : entries.length;
    -          this.clear();
    -          while (++index < length) {
    -            var entry2 = entries[index];
    -            this.set(entry2[0], entry2[1]);
    -          }
    -        }
    -        function mapCacheClear() {
    -          this.size = 0;
    -          this.__data__ = {
    -            "hash": new Hash(),
    -            "map": new (Map2 || ListCache)(),
    -            "string": new Hash()
    -          };
    -        }
    -        function mapCacheDelete(key) {
    -          var result2 = getMapData(this, key)["delete"](key);
    -          this.size -= result2 ? 1 : 0;
    -          return result2;
    -        }
    -        function mapCacheGet(key) {
    -          return getMapData(this, key).get(key);
    -        }
    -        function mapCacheHas(key) {
    -          return getMapData(this, key).has(key);
    -        }
    -        function mapCacheSet(key, value) {
    -          var data = getMapData(this, key), size2 = data.size;
    -          data.set(key, value);
    -          this.size += data.size == size2 ? 0 : 1;
    -          return this;
    -        }
    -        MapCache.prototype.clear = mapCacheClear;
    -        MapCache.prototype["delete"] = mapCacheDelete;
    -        MapCache.prototype.get = mapCacheGet;
    -        MapCache.prototype.has = mapCacheHas;
    -        MapCache.prototype.set = mapCacheSet;
    -        function SetCache(values3) {
    -          var index = -1, length = values3 == null ? 0 : values3.length;
    -          this.__data__ = new MapCache();
    -          while (++index < length) {
    -            this.add(values3[index]);
    -          }
    -        }
    -        function setCacheAdd(value) {
    -          this.__data__.set(value, HASH_UNDEFINED);
    -          return this;
    -        }
    -        function setCacheHas(value) {
    -          return this.__data__.has(value);
    -        }
    -        SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
    -        SetCache.prototype.has = setCacheHas;
    -        function Stack2(entries) {
    -          var data = this.__data__ = new ListCache(entries);
    -          this.size = data.size;
    -        }
    -        function stackClear() {
    -          this.__data__ = new ListCache();
    -          this.size = 0;
    -        }
    -        function stackDelete(key) {
    -          var data = this.__data__, result2 = data["delete"](key);
    -          this.size = data.size;
    -          return result2;
    -        }
    -        function stackGet(key) {
    -          return this.__data__.get(key);
    -        }
    -        function stackHas(key) {
    -          return this.__data__.has(key);
    -        }
    -        function stackSet(key, value) {
    -          var data = this.__data__;
    -          if (data instanceof ListCache) {
    -            var pairs2 = data.__data__;
    -            if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) {
    -              pairs2.push([key, value]);
    -              this.size = ++data.size;
    -              return this;
    -            }
    -            data = this.__data__ = new MapCache(pairs2);
    -          }
    -          data.set(key, value);
    -          this.size = data.size;
    -          return this;
    -        }
    -        Stack2.prototype.clear = stackClear;
    -        Stack2.prototype["delete"] = stackDelete;
    -        Stack2.prototype.get = stackGet;
    -        Stack2.prototype.has = stackHas;
    -        Stack2.prototype.set = stackSet;
    -        function arrayLikeKeys(value, inherited) {
    -          var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;
    -          for (var key in value) {
    -            if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
    -            (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
    -            isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    -            isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
    -            isIndex(key, length)))) {
    -              result2.push(key);
    -            }
    -          }
    -          return result2;
    -        }
    -        function arraySample(array) {
    -          var length = array.length;
    -          return length ? array[baseRandom(0, length - 1)] : undefined2;
    -        }
    -        function arraySampleSize(array, n) {
    -          return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
    -        }
    -        function arrayShuffle(array) {
    -          return shuffleSelf(copyArray(array));
    -        }
    -        function assignMergeValue(object, key, value) {
    -          if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {
    -            baseAssignValue(object, key, value);
    -          }
    -        }
    -        function assignValue(object, key, value) {
    -          var objValue = object[key];
    -          if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {
    -            baseAssignValue(object, key, value);
    -          }
    -        }
    -        function assocIndexOf(array, key) {
    -          var length = array.length;
    -          while (length--) {
    -            if (eq(array[length][0], key)) {
    -              return length;
    -            }
    -          }
    -          return -1;
    -        }
    -        function baseAggregator(collection, setter, iteratee2, accumulator) {
    -          baseEach(collection, function(value, key, collection2) {
    -            setter(accumulator, value, iteratee2(value), collection2);
    -          });
    -          return accumulator;
    -        }
    -        function baseAssign(object, source) {
    -          return object && copyObject(source, keys(source), object);
    -        }
    -        function baseAssignIn(object, source) {
    -          return object && copyObject(source, keysIn(source), object);
    -        }
    -        function baseAssignValue(object, key, value) {
    -          if (key == "__proto__" && defineProperty) {
    -            defineProperty(object, key, {
    -              "configurable": true,
    -              "enumerable": true,
    -              "value": value,
    -              "writable": true
    -            });
    -          } else {
    -            object[key] = value;
    -          }
    -        }
    -        function baseAt(object, paths) {
    -          var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;
    -          while (++index < length) {
    -            result2[index] = skip ? undefined2 : get3(object, paths[index]);
    -          }
    -          return result2;
    -        }
    -        function baseClamp(number, lower, upper) {
    -          if (number === number) {
    -            if (upper !== undefined2) {
    -              number = number <= upper ? number : upper;
    -            }
    -            if (lower !== undefined2) {
    -              number = number >= lower ? number : lower;
    -            }
    -          }
    -          return number;
    -        }
    -        function baseClone(value, bitmask, customizer, key, object, stack) {
    -          var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;
    -          if (customizer) {
    -            result2 = object ? customizer(value, key, object, stack) : customizer(value);
    -          }
    -          if (result2 !== undefined2) {
    -            return result2;
    -          }
    -          if (!isObject3(value)) {
    -            return value;
    -          }
    -          var isArr = isArray(value);
    -          if (isArr) {
    -            result2 = initCloneArray(value);
    -            if (!isDeep) {
    -              return copyArray(value, result2);
    -            }
    -          } else {
    -            var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;
    -            if (isBuffer(value)) {
    -              return cloneBuffer(value, isDeep);
    -            }
    -            if (tag == objectTag || tag == argsTag || isFunc && !object) {
    -              result2 = isFlat || isFunc ? {} : initCloneObject(value);
    -              if (!isDeep) {
    -                return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value));
    -              }
    -            } else {
    -              if (!cloneableTags[tag]) {
    -                return object ? value : {};
    -              }
    -              result2 = initCloneByTag(value, tag, isDeep);
    -            }
    -          }
    -          stack || (stack = new Stack2());
    -          var stacked = stack.get(value);
    -          if (stacked) {
    -            return stacked;
    -          }
    -          stack.set(value, result2);
    -          if (isSet2(value)) {
    -            value.forEach(function(subValue) {
    -              result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
    -            });
    -          } else if (isMap2(value)) {
    -            value.forEach(function(subValue, key2) {
    -              result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
    -            });
    -          }
    -          var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
    -          var props = isArr ? undefined2 : keysFunc(value);
    -          arrayEach(props || value, function(subValue, key2) {
    -            if (props) {
    -              key2 = subValue;
    -              subValue = value[key2];
    -            }
    -            assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
    -          });
    -          return result2;
    -        }
    -        function baseConforms(source) {
    -          var props = keys(source);
    -          return function(object) {
    -            return baseConformsTo(object, source, props);
    -          };
    -        }
    -        function baseConformsTo(object, source, props) {
    -          var length = props.length;
    -          if (object == null) {
    -            return !length;
    -          }
    -          object = Object2(object);
    -          while (length--) {
    -            var key = props[length], predicate = source[key], value = object[key];
    -            if (value === undefined2 && !(key in object) || !predicate(value)) {
    -              return false;
    -            }
    -          }
    -          return true;
    -        }
    -        function baseDelay(func, wait, args) {
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          return setTimeout2(function() {
    -            func.apply(undefined2, args);
    -          }, wait);
    -        }
    -        function baseDifference(array, values3, iteratee2, comparator) {
    -          var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values3.length;
    -          if (!length) {
    -            return result2;
    -          }
    -          if (iteratee2) {
    -            values3 = arrayMap(values3, baseUnary(iteratee2));
    -          }
    -          if (comparator) {
    -            includes2 = arrayIncludesWith;
    -            isCommon = false;
    -          } else if (values3.length >= LARGE_ARRAY_SIZE) {
    -            includes2 = cacheHas;
    -            isCommon = false;
    -            values3 = new SetCache(values3);
    -          }
    -          outer:
    -            while (++index < length) {
    -              var value = array[index], computed = iteratee2 == null ? value : iteratee2(value);
    -              value = comparator || value !== 0 ? value : 0;
    -              if (isCommon && computed === computed) {
    -                var valuesIndex = valuesLength;
    -                while (valuesIndex--) {
    -                  if (values3[valuesIndex] === computed) {
    -                    continue outer;
    -                  }
    -                }
    -                result2.push(value);
    -              } else if (!includes2(values3, computed, comparator)) {
    -                result2.push(value);
    -              }
    -            }
    -          return result2;
    -        }
    -        var baseEach = createBaseEach(baseForOwn);
    -        var baseEachRight = createBaseEach(baseForOwnRight, true);
    -        function baseEvery(collection, predicate) {
    -          var result2 = true;
    -          baseEach(collection, function(value, index, collection2) {
    -            result2 = !!predicate(value, index, collection2);
    -            return result2;
    -          });
    -          return result2;
    -        }
    -        function baseExtremum(array, iteratee2, comparator) {
    -          var index = -1, length = array.length;
    -          while (++index < length) {
    -            var value = array[index], current2 = iteratee2(value);
    -            if (current2 != null && (computed === undefined2 ? current2 === current2 && !isSymbol(current2) : comparator(current2, computed))) {
    -              var computed = current2, result2 = value;
    -            }
    -          }
    -          return result2;
    -        }
    -        function baseFill(array, value, start, end) {
    -          var length = array.length;
    -          start = toInteger(start);
    -          if (start < 0) {
    -            start = -start > length ? 0 : length + start;
    -          }
    -          end = end === undefined2 || end > length ? length : toInteger(end);
    -          if (end < 0) {
    -            end += length;
    -          }
    -          end = start > end ? 0 : toLength(end);
    -          while (start < end) {
    -            array[start++] = value;
    -          }
    -          return array;
    -        }
    -        function baseFilter(collection, predicate) {
    -          var result2 = [];
    -          baseEach(collection, function(value, index, collection2) {
    -            if (predicate(value, index, collection2)) {
    -              result2.push(value);
    -            }
    -          });
    -          return result2;
    -        }
    -        function baseFlatten(array, depth, predicate, isStrict, result2) {
    -          var index = -1, length = array.length;
    -          predicate || (predicate = isFlattenable);
    -          result2 || (result2 = []);
    -          while (++index < length) {
    -            var value = array[index];
    -            if (depth > 0 && predicate(value)) {
    -              if (depth > 1) {
    -                baseFlatten(value, depth - 1, predicate, isStrict, result2);
    -              } else {
    -                arrayPush(result2, value);
    -              }
    -            } else if (!isStrict) {
    -              result2[result2.length] = value;
    -            }
    -          }
    -          return result2;
    -        }
    -        var baseFor = createBaseFor();
    -        var baseForRight = createBaseFor(true);
    -        function baseForOwn(object, iteratee2) {
    -          return object && baseFor(object, iteratee2, keys);
    -        }
    -        function baseForOwnRight(object, iteratee2) {
    -          return object && baseForRight(object, iteratee2, keys);
    -        }
    -        function baseFunctions(object, props) {
    -          return arrayFilter(props, function(key) {
    -            return isFunction(object[key]);
    -          });
    -        }
    -        function baseGet(object, path8) {
    -          path8 = castPath(path8, object);
    -          var index = 0, length = path8.length;
    -          while (object != null && index < length) {
    -            object = object[toKey(path8[index++])];
    -          }
    -          return index && index == length ? object : undefined2;
    -        }
    -        function baseGetAllKeys(object, keysFunc, symbolsFunc) {
    -          var result2 = keysFunc(object);
    -          return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object));
    -        }
    -        function baseGetTag(value) {
    -          if (value == null) {
    -            return value === undefined2 ? undefinedTag : nullTag;
    -          }
    -          return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);
    -        }
    -        function baseGt(value, other) {
    -          return value > other;
    -        }
    -        function baseHas(object, key) {
    -          return object != null && hasOwnProperty.call(object, key);
    -        }
    -        function baseHasIn(object, key) {
    -          return object != null && key in Object2(object);
    -        }
    -        function baseInRange(number, start, end) {
    -          return number >= nativeMin(start, end) && number < nativeMax(start, end);
    -        }
    -        function baseIntersection(arrays, iteratee2, comparator) {
    -          var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = [];
    -          while (othIndex--) {
    -            var array = arrays[othIndex];
    -            if (othIndex && iteratee2) {
    -              array = arrayMap(array, baseUnary(iteratee2));
    -            }
    -            maxLength = nativeMin(array.length, maxLength);
    -            caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2;
    -          }
    -          array = arrays[0];
    -          var index = -1, seen = caches[0];
    -          outer:
    -            while (++index < length && result2.length < maxLength) {
    -              var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
    -              value = comparator || value !== 0 ? value : 0;
    -              if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) {
    -                othIndex = othLength;
    -                while (--othIndex) {
    -                  var cache = caches[othIndex];
    -                  if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {
    -                    continue outer;
    -                  }
    -                }
    -                if (seen) {
    -                  seen.push(computed);
    -                }
    -                result2.push(value);
    -              }
    -            }
    -          return result2;
    -        }
    -        function baseInverter(object, setter, iteratee2, accumulator) {
    -          baseForOwn(object, function(value, key, object2) {
    -            setter(accumulator, iteratee2(value), key, object2);
    -          });
    -          return accumulator;
    -        }
    -        function baseInvoke(object, path8, args) {
    -          path8 = castPath(path8, object);
    -          object = parent(object, path8);
    -          var func = object == null ? object : object[toKey(last2(path8))];
    -          return func == null ? undefined2 : apply(func, object, args);
    -        }
    -        function baseIsArguments(value) {
    -          return isObjectLike(value) && baseGetTag(value) == argsTag;
    -        }
    -        function baseIsArrayBuffer(value) {
    -          return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
    -        }
    -        function baseIsDate(value) {
    -          return isObjectLike(value) && baseGetTag(value) == dateTag;
    -        }
    -        function baseIsEqual(value, other, bitmask, customizer, stack) {
    -          if (value === other) {
    -            return true;
    -          }
    -          if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
    -            return value !== value && other !== other;
    -          }
    -          return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
    -        }
    -        function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
    -          var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
    -          objTag = objTag == argsTag ? objectTag : objTag;
    -          othTag = othTag == argsTag ? objectTag : othTag;
    -          var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
    -          if (isSameTag && isBuffer(object)) {
    -            if (!isBuffer(other)) {
    -              return false;
    -            }
    -            objIsArr = true;
    -            objIsObj = false;
    -          }
    -          if (isSameTag && !objIsObj) {
    -            stack || (stack = new Stack2());
    -            return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
    -          }
    -          if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
    -            var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
    -            if (objIsWrapped || othIsWrapped) {
    -              var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
    -              stack || (stack = new Stack2());
    -              return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    -            }
    -          }
    -          if (!isSameTag) {
    -            return false;
    -          }
    -          stack || (stack = new Stack2());
    -          return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
    -        }
    -        function baseIsMap(value) {
    -          return isObjectLike(value) && getTag(value) == mapTag;
    -        }
    -        function baseIsMatch(object, source, matchData, customizer) {
    -          var index = matchData.length, length = index, noCustomizer = !customizer;
    -          if (object == null) {
    -            return !length;
    -          }
    -          object = Object2(object);
    -          while (index--) {
    -            var data = matchData[index];
    -            if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
    -              return false;
    -            }
    -          }
    -          while (++index < length) {
    -            data = matchData[index];
    -            var key = data[0], objValue = object[key], srcValue = data[1];
    -            if (noCustomizer && data[2]) {
    -              if (objValue === undefined2 && !(key in object)) {
    -                return false;
    -              }
    -            } else {
    -              var stack = new Stack2();
    -              if (customizer) {
    -                var result2 = customizer(objValue, srcValue, key, object, source, stack);
    -              }
    -              if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) {
    -                return false;
    -              }
    -            }
    -          }
    -          return true;
    -        }
    -        function baseIsNative(value) {
    -          if (!isObject3(value) || isMasked(value)) {
    -            return false;
    -          }
    -          var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
    -          return pattern.test(toSource(value));
    -        }
    -        function baseIsRegExp(value) {
    -          return isObjectLike(value) && baseGetTag(value) == regexpTag;
    -        }
    -        function baseIsSet(value) {
    -          return isObjectLike(value) && getTag(value) == setTag;
    -        }
    -        function baseIsTypedArray(value) {
    -          return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
    -        }
    -        function baseIteratee(value) {
    -          if (typeof value == "function") {
    -            return value;
    -          }
    -          if (value == null) {
    -            return identity3;
    -          }
    -          if (typeof value == "object") {
    -            return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
    -          }
    -          return property(value);
    -        }
    -        function baseKeys(object) {
    -          if (!isPrototype(object)) {
    -            return nativeKeys(object);
    -          }
    -          var result2 = [];
    -          for (var key in Object2(object)) {
    -            if (hasOwnProperty.call(object, key) && key != "constructor") {
    -              result2.push(key);
    -            }
    -          }
    -          return result2;
    -        }
    -        function baseKeysIn(object) {
    -          if (!isObject3(object)) {
    -            return nativeKeysIn(object);
    -          }
    -          var isProto = isPrototype(object), result2 = [];
    -          for (var key in object) {
    -            if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) {
    -              result2.push(key);
    -            }
    -          }
    -          return result2;
    -        }
    -        function baseLt(value, other) {
    -          return value < other;
    -        }
    -        function baseMap(collection, iteratee2) {
    -          var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : [];
    -          baseEach(collection, function(value, key, collection2) {
    -            result2[++index] = iteratee2(value, key, collection2);
    -          });
    -          return result2;
    -        }
    -        function baseMatches(source) {
    -          var matchData = getMatchData(source);
    -          if (matchData.length == 1 && matchData[0][2]) {
    -            return matchesStrictComparable(matchData[0][0], matchData[0][1]);
    -          }
    -          return function(object) {
    -            return object === source || baseIsMatch(object, source, matchData);
    -          };
    -        }
    -        function baseMatchesProperty(path8, srcValue) {
    -          if (isKey(path8) && isStrictComparable(srcValue)) {
    -            return matchesStrictComparable(toKey(path8), srcValue);
    -          }
    -          return function(object) {
    -            var objValue = get3(object, path8);
    -            return objValue === undefined2 && objValue === srcValue ? hasIn(object, path8) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
    -          };
    -        }
    -        function baseMerge(object, source, srcIndex, customizer, stack) {
    -          if (object === source) {
    -            return;
    -          }
    -          baseFor(source, function(srcValue, key) {
    -            stack || (stack = new Stack2());
    -            if (isObject3(srcValue)) {
    -              baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
    -            } else {
    -              var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2;
    -              if (newValue === undefined2) {
    -                newValue = srcValue;
    -              }
    -              assignMergeValue(object, key, newValue);
    -            }
    -          }, keysIn);
    -        }
    -        function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
    -          var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
    -          if (stacked) {
    -            assignMergeValue(object, key, stacked);
    -            return;
    -          }
    -          var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2;
    -          var isCommon = newValue === undefined2;
    -          if (isCommon) {
    -            var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
    -            newValue = srcValue;
    -            if (isArr || isBuff || isTyped) {
    -              if (isArray(objValue)) {
    -                newValue = objValue;
    -              } else if (isArrayLikeObject(objValue)) {
    -                newValue = copyArray(objValue);
    -              } else if (isBuff) {
    -                isCommon = false;
    -                newValue = cloneBuffer(srcValue, true);
    -              } else if (isTyped) {
    -                isCommon = false;
    -                newValue = cloneTypedArray(srcValue, true);
    -              } else {
    -                newValue = [];
    -              }
    -            } else if (isPlainObject3(srcValue) || isArguments(srcValue)) {
    -              newValue = objValue;
    -              if (isArguments(objValue)) {
    -                newValue = toPlainObject(objValue);
    -              } else if (!isObject3(objValue) || isFunction(objValue)) {
    -                newValue = initCloneObject(srcValue);
    -              }
    -            } else {
    -              isCommon = false;
    -            }
    -          }
    -          if (isCommon) {
    -            stack.set(srcValue, newValue);
    -            mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
    -            stack["delete"](srcValue);
    -          }
    -          assignMergeValue(object, key, newValue);
    -        }
    -        function baseNth(array, n) {
    -          var length = array.length;
    -          if (!length) {
    -            return;
    -          }
    -          n += n < 0 ? length : 0;
    -          return isIndex(n, length) ? array[n] : undefined2;
    -        }
    -        function baseOrderBy(collection, iteratees, orders) {
    -          if (iteratees.length) {
    -            iteratees = arrayMap(iteratees, function(iteratee2) {
    -              if (isArray(iteratee2)) {
    -                return function(value) {
    -                  return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);
    -                };
    -              }
    -              return iteratee2;
    -            });
    -          } else {
    -            iteratees = [identity3];
    -          }
    -          var index = -1;
    -          iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
    -          var result2 = baseMap(collection, function(value, key, collection2) {
    -            var criteria = arrayMap(iteratees, function(iteratee2) {
    -              return iteratee2(value);
    -            });
    -            return { "criteria": criteria, "index": ++index, "value": value };
    -          });
    -          return baseSortBy(result2, function(object, other) {
    -            return compareMultiple(object, other, orders);
    -          });
    -        }
    -        function basePick(object, paths) {
    -          return basePickBy(object, paths, function(value, path8) {
    -            return hasIn(object, path8);
    -          });
    -        }
    -        function basePickBy(object, paths, predicate) {
    -          var index = -1, length = paths.length, result2 = {};
    -          while (++index < length) {
    -            var path8 = paths[index], value = baseGet(object, path8);
    -            if (predicate(value, path8)) {
    -              baseSet(result2, castPath(path8, object), value);
    -            }
    -          }
    -          return result2;
    -        }
    -        function basePropertyDeep(path8) {
    -          return function(object) {
    -            return baseGet(object, path8);
    -          };
    -        }
    -        function basePullAll(array, values3, iteratee2, comparator) {
    -          var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values3.length, seen = array;
    -          if (array === values3) {
    -            values3 = copyArray(values3);
    -          }
    -          if (iteratee2) {
    -            seen = arrayMap(array, baseUnary(iteratee2));
    -          }
    -          while (++index < length) {
    -            var fromIndex = 0, value = values3[index], computed = iteratee2 ? iteratee2(value) : value;
    -            while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) {
    -              if (seen !== array) {
    -                splice.call(seen, fromIndex, 1);
    -              }
    -              splice.call(array, fromIndex, 1);
    -            }
    -          }
    -          return array;
    -        }
    -        function basePullAt(array, indexes) {
    -          var length = array ? indexes.length : 0, lastIndex = length - 1;
    -          while (length--) {
    -            var index = indexes[length];
    -            if (length == lastIndex || index !== previous) {
    -              var previous = index;
    -              if (isIndex(index)) {
    -                splice.call(array, index, 1);
    -              } else {
    -                baseUnset(array, index);
    -              }
    -            }
    -          }
    -          return array;
    -        }
    -        function baseRandom(lower, upper) {
    -          return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
    -        }
    -        function baseRange(start, end, step, fromRight) {
    -          var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length);
    -          while (length--) {
    -            result2[fromRight ? length : ++index] = start;
    -            start += step;
    -          }
    -          return result2;
    -        }
    -        function baseRepeat(string2, n) {
    -          var result2 = "";
    -          if (!string2 || n < 1 || n > MAX_SAFE_INTEGER) {
    -            return result2;
    -          }
    -          do {
    -            if (n % 2) {
    -              result2 += string2;
    -            }
    -            n = nativeFloor(n / 2);
    -            if (n) {
    -              string2 += string2;
    -            }
    -          } while (n);
    -          return result2;
    -        }
    -        function baseRest(func, start) {
    -          return setToString(overRest(func, start, identity3), func + "");
    -        }
    -        function baseSample(collection) {
    -          return arraySample(values2(collection));
    -        }
    -        function baseSampleSize(collection, n) {
    -          var array = values2(collection);
    -          return shuffleSelf(array, baseClamp(n, 0, array.length));
    -        }
    -        function baseSet(object, path8, value, customizer) {
    -          if (!isObject3(object)) {
    -            return object;
    -          }
    -          path8 = castPath(path8, object);
    -          var index = -1, length = path8.length, lastIndex = length - 1, nested = object;
    -          while (nested != null && ++index < length) {
    -            var key = toKey(path8[index]), newValue = value;
    -            if (key === "__proto__" || key === "constructor" || key === "prototype") {
    -              return object;
    -            }
    -            if (index != lastIndex) {
    -              var objValue = nested[key];
    -              newValue = customizer ? customizer(objValue, key, nested) : undefined2;
    -              if (newValue === undefined2) {
    -                newValue = isObject3(objValue) ? objValue : isIndex(path8[index + 1]) ? [] : {};
    -              }
    -            }
    -            assignValue(nested, key, newValue);
    -            nested = nested[key];
    -          }
    -          return object;
    -        }
    -        var baseSetData = !metaMap ? identity3 : function(func, data) {
    -          metaMap.set(func, data);
    -          return func;
    -        };
    -        var baseSetToString = !defineProperty ? identity3 : function(func, string2) {
    -          return defineProperty(func, "toString", {
    -            "configurable": true,
    -            "enumerable": false,
    -            "value": constant(string2),
    -            "writable": true
    -          });
    -        };
    -        function baseShuffle(collection) {
    -          return shuffleSelf(values2(collection));
    -        }
    -        function baseSlice(array, start, end) {
    -          var index = -1, length = array.length;
    -          if (start < 0) {
    -            start = -start > length ? 0 : length + start;
    -          }
    -          end = end > length ? length : end;
    -          if (end < 0) {
    -            end += length;
    -          }
    -          length = start > end ? 0 : end - start >>> 0;
    -          start >>>= 0;
    -          var result2 = Array2(length);
    -          while (++index < length) {
    -            result2[index] = array[index + start];
    -          }
    -          return result2;
    -        }
    -        function baseSome(collection, predicate) {
    -          var result2;
    -          baseEach(collection, function(value, index, collection2) {
    -            result2 = predicate(value, index, collection2);
    -            return !result2;
    -          });
    -          return !!result2;
    -        }
    -        function baseSortedIndex(array, value, retHighest) {
    -          var low = 0, high = array == null ? low : array.length;
    -          if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
    -            while (low < high) {
    -              var mid = low + high >>> 1, computed = array[mid];
    -              if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {
    -                low = mid + 1;
    -              } else {
    -                high = mid;
    -              }
    -            }
    -            return high;
    -          }
    -          return baseSortedIndexBy(array, value, identity3, retHighest);
    -        }
    -        function baseSortedIndexBy(array, value, iteratee2, retHighest) {
    -          var low = 0, high = array == null ? 0 : array.length;
    -          if (high === 0) {
    -            return 0;
    -          }
    -          value = iteratee2(value);
    -          var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;
    -          while (low < high) {
    -            var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);
    -            if (valIsNaN) {
    -              var setLow = retHighest || othIsReflexive;
    -            } else if (valIsUndefined) {
    -              setLow = othIsReflexive && (retHighest || othIsDefined);
    -            } else if (valIsNull) {
    -              setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
    -            } else if (valIsSymbol) {
    -              setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
    -            } else if (othIsNull || othIsSymbol) {
    -              setLow = false;
    -            } else {
    -              setLow = retHighest ? computed <= value : computed < value;
    -            }
    -            if (setLow) {
    -              low = mid + 1;
    -            } else {
    -              high = mid;
    -            }
    -          }
    -          return nativeMin(high, MAX_ARRAY_INDEX);
    -        }
    -        function baseSortedUniq(array, iteratee2) {
    -          var index = -1, length = array.length, resIndex = 0, result2 = [];
    -          while (++index < length) {
    -            var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
    -            if (!index || !eq(computed, seen)) {
    -              var seen = computed;
    -              result2[resIndex++] = value === 0 ? 0 : value;
    -            }
    -          }
    -          return result2;
    -        }
    -        function baseToNumber(value) {
    -          if (typeof value == "number") {
    -            return value;
    -          }
    -          if (isSymbol(value)) {
    -            return NAN;
    -          }
    -          return +value;
    -        }
    -        function baseToString(value) {
    -          if (typeof value == "string") {
    -            return value;
    -          }
    -          if (isArray(value)) {
    -            return arrayMap(value, baseToString) + "";
    -          }
    -          if (isSymbol(value)) {
    -            return symbolToString ? symbolToString.call(value) : "";
    -          }
    -          var result2 = value + "";
    -          return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2;
    -        }
    -        function baseUniq(array, iteratee2, comparator) {
    -          var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2;
    -          if (comparator) {
    -            isCommon = false;
    -            includes2 = arrayIncludesWith;
    -          } else if (length >= LARGE_ARRAY_SIZE) {
    -            var set4 = iteratee2 ? null : createSet(array);
    -            if (set4) {
    -              return setToArray(set4);
    -            }
    -            isCommon = false;
    -            includes2 = cacheHas;
    -            seen = new SetCache();
    -          } else {
    -            seen = iteratee2 ? [] : result2;
    -          }
    -          outer:
    -            while (++index < length) {
    -              var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
    -              value = comparator || value !== 0 ? value : 0;
    -              if (isCommon && computed === computed) {
    -                var seenIndex = seen.length;
    -                while (seenIndex--) {
    -                  if (seen[seenIndex] === computed) {
    -                    continue outer;
    -                  }
    -                }
    -                if (iteratee2) {
    -                  seen.push(computed);
    -                }
    -                result2.push(value);
    -              } else if (!includes2(seen, computed, comparator)) {
    -                if (seen !== result2) {
    -                  seen.push(computed);
    -                }
    -                result2.push(value);
    -              }
    -            }
    -          return result2;
    -        }
    -        function baseUnset(object, path8) {
    -          path8 = castPath(path8, object);
    -          object = parent(object, path8);
    -          return object == null || delete object[toKey(last2(path8))];
    -        }
    -        function baseUpdate(object, path8, updater, customizer) {
    -          return baseSet(object, path8, updater(baseGet(object, path8)), customizer);
    -        }
    -        function baseWhile(array, predicate, isDrop, fromRight) {
    -          var length = array.length, index = fromRight ? length : -1;
    -          while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {
    -          }
    -          return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);
    -        }
    -        function baseWrapperValue(value, actions2) {
    -          var result2 = value;
    -          if (result2 instanceof LazyWrapper) {
    -            result2 = result2.value();
    -          }
    -          return arrayReduce(actions2, function(result3, action) {
    -            return action.func.apply(action.thisArg, arrayPush([result3], action.args));
    -          }, result2);
    -        }
    -        function baseXor(arrays, iteratee2, comparator) {
    -          var length = arrays.length;
    -          if (length < 2) {
    -            return length ? baseUniq(arrays[0]) : [];
    -          }
    -          var index = -1, result2 = Array2(length);
    -          while (++index < length) {
    -            var array = arrays[index], othIndex = -1;
    -            while (++othIndex < length) {
    -              if (othIndex != index) {
    -                result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator);
    -              }
    -            }
    -          }
    -          return baseUniq(baseFlatten(result2, 1), iteratee2, comparator);
    -        }
    -        function baseZipObject(props, values3, assignFunc) {
    -          var index = -1, length = props.length, valsLength = values3.length, result2 = {};
    -          while (++index < length) {
    -            var value = index < valsLength ? values3[index] : undefined2;
    -            assignFunc(result2, props[index], value);
    -          }
    -          return result2;
    -        }
    -        function castArrayLikeObject(value) {
    -          return isArrayLikeObject(value) ? value : [];
    -        }
    -        function castFunction(value) {
    -          return typeof value == "function" ? value : identity3;
    -        }
    -        function castPath(value, object) {
    -          if (isArray(value)) {
    -            return value;
    -          }
    -          return isKey(value, object) ? [value] : stringToPath(toString2(value));
    -        }
    -        var castRest = baseRest;
    -        function castSlice(array, start, end) {
    -          var length = array.length;
    -          end = end === undefined2 ? length : end;
    -          return !start && end >= length ? array : baseSlice(array, start, end);
    -        }
    -        var clearTimeout2 = ctxClearTimeout || function(id) {
    -          return root.clearTimeout(id);
    -        };
    -        function cloneBuffer(buffer, isDeep) {
    -          if (isDeep) {
    -            return buffer.slice();
    -          }
    -          var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
    -          buffer.copy(result2);
    -          return result2;
    -        }
    -        function cloneArrayBuffer(arrayBuffer) {
    -          var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);
    -          new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));
    -          return result2;
    -        }
    -        function cloneDataView(dataView, isDeep) {
    -          var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
    -          return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
    -        }
    -        function cloneRegExp(regexp) {
    -          var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));
    -          result2.lastIndex = regexp.lastIndex;
    -          return result2;
    -        }
    -        function cloneSymbol(symbol) {
    -          return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {};
    -        }
    -        function cloneTypedArray(typedArray, isDeep) {
    -          var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
    -          return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
    -        }
    -        function compareAscending(value, other) {
    -          if (value !== other) {
    -            var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
    -            var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
    -            if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
    -              return 1;
    -            }
    -            if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
    -              return -1;
    -            }
    -          }
    -          return 0;
    -        }
    -        function compareMultiple(object, other, orders) {
    -          var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;
    -          while (++index < length) {
    -            var result2 = compareAscending(objCriteria[index], othCriteria[index]);
    -            if (result2) {
    -              if (index >= ordersLength) {
    -                return result2;
    -              }
    -              var order = orders[index];
    -              return result2 * (order == "desc" ? -1 : 1);
    -            }
    -          }
    -          return object.index - other.index;
    -        }
    -        function composeArgs(args, partials, holders, isCurried) {
    -          var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried;
    -          while (++leftIndex < leftLength) {
    -            result2[leftIndex] = partials[leftIndex];
    -          }
    -          while (++argsIndex < holdersLength) {
    -            if (isUncurried || argsIndex < argsLength) {
    -              result2[holders[argsIndex]] = args[argsIndex];
    -            }
    -          }
    -          while (rangeLength--) {
    -            result2[leftIndex++] = args[argsIndex++];
    -          }
    -          return result2;
    -        }
    -        function composeArgsRight(args, partials, holders, isCurried) {
    -          var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried;
    -          while (++argsIndex < rangeLength) {
    -            result2[argsIndex] = args[argsIndex];
    -          }
    -          var offset = argsIndex;
    -          while (++rightIndex < rightLength) {
    -            result2[offset + rightIndex] = partials[rightIndex];
    -          }
    -          while (++holdersIndex < holdersLength) {
    -            if (isUncurried || argsIndex < argsLength) {
    -              result2[offset + holders[holdersIndex]] = args[argsIndex++];
    -            }
    -          }
    -          return result2;
    -        }
    -        function copyArray(source, array) {
    -          var index = -1, length = source.length;
    -          array || (array = Array2(length));
    -          while (++index < length) {
    -            array[index] = source[index];
    -          }
    -          return array;
    -        }
    -        function copyObject(source, props, object, customizer) {
    -          var isNew = !object;
    -          object || (object = {});
    -          var index = -1, length = props.length;
    -          while (++index < length) {
    -            var key = props[index];
    -            var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;
    -            if (newValue === undefined2) {
    -              newValue = source[key];
    -            }
    -            if (isNew) {
    -              baseAssignValue(object, key, newValue);
    -            } else {
    -              assignValue(object, key, newValue);
    -            }
    -          }
    -          return object;
    -        }
    -        function copySymbols(source, object) {
    -          return copyObject(source, getSymbols(source), object);
    -        }
    -        function copySymbolsIn(source, object) {
    -          return copyObject(source, getSymbolsIn(source), object);
    -        }
    -        function createAggregator(setter, initializer) {
    -          return function(collection, iteratee2) {
    -            var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};
    -            return func(collection, setter, getIteratee(iteratee2, 2), accumulator);
    -          };
    -        }
    -        function createAssigner(assigner) {
    -          return baseRest(function(object, sources) {
    -            var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;
    -            customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2;
    -            if (guard && isIterateeCall(sources[0], sources[1], guard)) {
    -              customizer = length < 3 ? undefined2 : customizer;
    -              length = 1;
    -            }
    -            object = Object2(object);
    -            while (++index < length) {
    -              var source = sources[index];
    -              if (source) {
    -                assigner(object, source, index, customizer);
    -              }
    -            }
    -            return object;
    -          });
    -        }
    -        function createBaseEach(eachFunc, fromRight) {
    -          return function(collection, iteratee2) {
    -            if (collection == null) {
    -              return collection;
    -            }
    -            if (!isArrayLike(collection)) {
    -              return eachFunc(collection, iteratee2);
    -            }
    -            var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);
    -            while (fromRight ? index-- : ++index < length) {
    -              if (iteratee2(iterable[index], index, iterable) === false) {
    -                break;
    -              }
    -            }
    -            return collection;
    -          };
    -        }
    -        function createBaseFor(fromRight) {
    -          return function(object, iteratee2, keysFunc) {
    -            var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;
    -            while (length--) {
    -              var key = props[fromRight ? length : ++index];
    -              if (iteratee2(iterable[key], key, iterable) === false) {
    -                break;
    -              }
    -            }
    -            return object;
    -          };
    -        }
    -        function createBind(func, bitmask, thisArg) {
    -          var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);
    -          function wrapper() {
    -            var fn = this && this !== root && this instanceof wrapper ? Ctor : func;
    -            return fn.apply(isBind ? thisArg : this, arguments);
    -          }
    -          return wrapper;
    -        }
    -        function createCaseFirst(methodName) {
    -          return function(string2) {
    -            string2 = toString2(string2);
    -            var strSymbols = hasUnicode(string2) ? stringToArray(string2) : undefined2;
    -            var chr = strSymbols ? strSymbols[0] : string2.charAt(0);
    -            var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string2.slice(1);
    -            return chr[methodName]() + trailing;
    -          };
    -        }
    -        function createCompounder(callback2) {
    -          return function(string2) {
    -            return arrayReduce(words(deburr2(string2).replace(reApos, "")), callback2, "");
    -          };
    -        }
    -        function createCtor(Ctor) {
    -          return function() {
    -            var args = arguments;
    -            switch (args.length) {
    -              case 0:
    -                return new Ctor();
    -              case 1:
    -                return new Ctor(args[0]);
    -              case 2:
    -                return new Ctor(args[0], args[1]);
    -              case 3:
    -                return new Ctor(args[0], args[1], args[2]);
    -              case 4:
    -                return new Ctor(args[0], args[1], args[2], args[3]);
    -              case 5:
    -                return new Ctor(args[0], args[1], args[2], args[3], args[4]);
    -              case 6:
    -                return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
    -              case 7:
    -                return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
    -            }
    -            var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);
    -            return isObject3(result2) ? result2 : thisBinding;
    -          };
    -        }
    -        function createCurry(func, bitmask, arity) {
    -          var Ctor = createCtor(func);
    -          function wrapper() {
    -            var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);
    -            while (index--) {
    -              args[index] = arguments[index];
    -            }
    -            var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);
    -            length -= holders.length;
    -            if (length < arity) {
    -              return createRecurry(
    -                func,
    -                bitmask,
    -                createHybrid,
    -                wrapper.placeholder,
    -                undefined2,
    -                args,
    -                holders,
    -                undefined2,
    -                undefined2,
    -                arity - length
    -              );
    -            }
    -            var fn = this && this !== root && this instanceof wrapper ? Ctor : func;
    -            return apply(fn, this, args);
    -          }
    -          return wrapper;
    -        }
    -        function createFind(findIndexFunc) {
    -          return function(collection, predicate, fromIndex) {
    -            var iterable = Object2(collection);
    -            if (!isArrayLike(collection)) {
    -              var iteratee2 = getIteratee(predicate, 3);
    -              collection = keys(collection);
    -              predicate = function(key) {
    -                return iteratee2(iterable[key], key, iterable);
    -              };
    -            }
    -            var index = findIndexFunc(collection, predicate, fromIndex);
    -            return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;
    -          };
    -        }
    -        function createFlow(fromRight) {
    -          return flatRest(function(funcs) {
    -            var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;
    -            if (fromRight) {
    -              funcs.reverse();
    -            }
    -            while (index--) {
    -              var func = funcs[index];
    -              if (typeof func != "function") {
    -                throw new TypeError2(FUNC_ERROR_TEXT);
    -              }
    -              if (prereq && !wrapper && getFuncName(func) == "wrapper") {
    -                var wrapper = new LodashWrapper([], true);
    -              }
    -            }
    -            index = wrapper ? index : length;
    -            while (++index < length) {
    -              func = funcs[index];
    -              var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2;
    -              if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {
    -                wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
    -              } else {
    -                wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);
    -              }
    -            }
    -            return function() {
    -              var args = arguments, value = args[0];
    -              if (wrapper && args.length == 1 && isArray(value)) {
    -                return wrapper.plant(value).value();
    -              }
    -              var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value;
    -              while (++index2 < length) {
    -                result2 = funcs[index2].call(this, result2);
    -              }
    -              return result2;
    -            };
    -          });
    -        }
    -        function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {
    -          var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func);
    -          function wrapper() {
    -            var length = arguments.length, args = Array2(length), index = length;
    -            while (index--) {
    -              args[index] = arguments[index];
    -            }
    -            if (isCurried) {
    -              var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);
    -            }
    -            if (partials) {
    -              args = composeArgs(args, partials, holders, isCurried);
    -            }
    -            if (partialsRight) {
    -              args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
    -            }
    -            length -= holdersCount;
    -            if (isCurried && length < arity) {
    -              var newHolders = replaceHolders(args, placeholder);
    -              return createRecurry(
    -                func,
    -                bitmask,
    -                createHybrid,
    -                wrapper.placeholder,
    -                thisArg,
    -                args,
    -                newHolders,
    -                argPos,
    -                ary2,
    -                arity - length
    -              );
    -            }
    -            var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;
    -            length = args.length;
    -            if (argPos) {
    -              args = reorder(args, argPos);
    -            } else if (isFlip && length > 1) {
    -              args.reverse();
    -            }
    -            if (isAry && ary2 < length) {
    -              args.length = ary2;
    -            }
    -            if (this && this !== root && this instanceof wrapper) {
    -              fn = Ctor || createCtor(fn);
    -            }
    -            return fn.apply(thisBinding, args);
    -          }
    -          return wrapper;
    -        }
    -        function createInverter(setter, toIteratee) {
    -          return function(object, iteratee2) {
    -            return baseInverter(object, setter, toIteratee(iteratee2), {});
    -          };
    -        }
    -        function createMathOperation(operator, defaultValue) {
    -          return function(value, other) {
    -            var result2;
    -            if (value === undefined2 && other === undefined2) {
    -              return defaultValue;
    -            }
    -            if (value !== undefined2) {
    -              result2 = value;
    -            }
    -            if (other !== undefined2) {
    -              if (result2 === undefined2) {
    -                return other;
    -              }
    -              if (typeof value == "string" || typeof other == "string") {
    -                value = baseToString(value);
    -                other = baseToString(other);
    -              } else {
    -                value = baseToNumber(value);
    -                other = baseToNumber(other);
    -              }
    -              result2 = operator(value, other);
    -            }
    -            return result2;
    -          };
    -        }
    -        function createOver(arrayFunc) {
    -          return flatRest(function(iteratees) {
    -            iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
    -            return baseRest(function(args) {
    -              var thisArg = this;
    -              return arrayFunc(iteratees, function(iteratee2) {
    -                return apply(iteratee2, thisArg, args);
    -              });
    -            });
    -          });
    -        }
    -        function createPadding(length, chars) {
    -          chars = chars === undefined2 ? " " : baseToString(chars);
    -          var charsLength = chars.length;
    -          if (charsLength < 2) {
    -            return charsLength ? baseRepeat(chars, length) : chars;
    -          }
    -          var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
    -          return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length);
    -        }
    -        function createPartial(func, bitmask, thisArg, partials) {
    -          var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);
    -          function wrapper() {
    -            var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func;
    -            while (++leftIndex < leftLength) {
    -              args[leftIndex] = partials[leftIndex];
    -            }
    -            while (argsLength--) {
    -              args[leftIndex++] = arguments[++argsIndex];
    -            }
    -            return apply(fn, isBind ? thisArg : this, args);
    -          }
    -          return wrapper;
    -        }
    -        function createRange(fromRight) {
    -          return function(start, end, step) {
    -            if (step && typeof step != "number" && isIterateeCall(start, end, step)) {
    -              end = step = undefined2;
    -            }
    -            start = toFinite(start);
    -            if (end === undefined2) {
    -              end = start;
    -              start = 0;
    -            } else {
    -              end = toFinite(end);
    -            }
    -            step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step);
    -            return baseRange(start, end, step, fromRight);
    -          };
    -        }
    -        function createRelationalOperation(operator) {
    -          return function(value, other) {
    -            if (!(typeof value == "string" && typeof other == "string")) {
    -              value = toNumber(value);
    -              other = toNumber(other);
    -            }
    -            return operator(value, other);
    -          };
    -        }
    -        function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {
    -          var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;
    -          bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;
    -          bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
    -          if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
    -            bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
    -          }
    -          var newData = [
    -            func,
    -            bitmask,
    -            thisArg,
    -            newPartials,
    -            newHolders,
    -            newPartialsRight,
    -            newHoldersRight,
    -            argPos,
    -            ary2,
    -            arity
    -          ];
    -          var result2 = wrapFunc.apply(undefined2, newData);
    -          if (isLaziable(func)) {
    -            setData(result2, newData);
    -          }
    -          result2.placeholder = placeholder;
    -          return setWrapToString(result2, func, bitmask);
    -        }
    -        function createRound(methodName) {
    -          var func = Math2[methodName];
    -          return function(number, precision) {
    -            number = toNumber(number);
    -            precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
    -            if (precision && nativeIsFinite(number)) {
    -              var pair = (toString2(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision));
    -              pair = (toString2(value) + "e").split("e");
    -              return +(pair[0] + "e" + (+pair[1] - precision));
    -            }
    -            return func(number);
    -          };
    -        }
    -        var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values3) {
    -          return new Set2(values3);
    -        };
    -        function createToPairs(keysFunc) {
    -          return function(object) {
    -            var tag = getTag(object);
    -            if (tag == mapTag) {
    -              return mapToArray(object);
    -            }
    -            if (tag == setTag) {
    -              return setToPairs(object);
    -            }
    -            return baseToPairs(object, keysFunc(object));
    -          };
    -        }
    -        function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {
    -          var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
    -          if (!isBindKey && typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          var length = partials ? partials.length : 0;
    -          if (!length) {
    -            bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
    -            partials = holders = undefined2;
    -          }
    -          ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);
    -          arity = arity === undefined2 ? arity : toInteger(arity);
    -          length -= holders ? holders.length : 0;
    -          if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
    -            var partialsRight = partials, holdersRight = holders;
    -            partials = holders = undefined2;
    -          }
    -          var data = isBindKey ? undefined2 : getData(func);
    -          var newData = [
    -            func,
    -            bitmask,
    -            thisArg,
    -            partials,
    -            holders,
    -            partialsRight,
    -            holdersRight,
    -            argPos,
    -            ary2,
    -            arity
    -          ];
    -          if (data) {
    -            mergeData(newData, data);
    -          }
    -          func = newData[0];
    -          bitmask = newData[1];
    -          thisArg = newData[2];
    -          partials = newData[3];
    -          holders = newData[4];
    -          arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);
    -          if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
    -            bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
    -          }
    -          if (!bitmask || bitmask == WRAP_BIND_FLAG) {
    -            var result2 = createBind(func, bitmask, thisArg);
    -          } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
    -            result2 = createCurry(func, bitmask, arity);
    -          } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
    -            result2 = createPartial(func, bitmask, thisArg, partials);
    -          } else {
    -            result2 = createHybrid.apply(undefined2, newData);
    -          }
    -          var setter = data ? baseSetData : setData;
    -          return setWrapToString(setter(result2, newData), func, bitmask);
    -        }
    -        function customDefaultsAssignIn(objValue, srcValue, key, object) {
    -          if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {
    -            return srcValue;
    -          }
    -          return objValue;
    -        }
    -        function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
    -          if (isObject3(objValue) && isObject3(srcValue)) {
    -            stack.set(srcValue, objValue);
    -            baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);
    -            stack["delete"](srcValue);
    -          }
    -          return objValue;
    -        }
    -        function customOmitClone(value) {
    -          return isPlainObject3(value) ? undefined2 : value;
    -        }
    -        function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
    -          var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
    -          if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    -            return false;
    -          }
    -          var arrStacked = stack.get(array);
    -          var othStacked = stack.get(other);
    -          if (arrStacked && othStacked) {
    -            return arrStacked == other && othStacked == array;
    -          }
    -          var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;
    -          stack.set(array, other);
    -          stack.set(other, array);
    -          while (++index < arrLength) {
    -            var arrValue = array[index], othValue = other[index];
    -            if (customizer) {
    -              var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
    -            }
    -            if (compared !== undefined2) {
    -              if (compared) {
    -                continue;
    -              }
    -              result2 = false;
    -              break;
    -            }
    -            if (seen) {
    -              if (!arraySome(other, function(othValue2, othIndex) {
    -                if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
    -                  return seen.push(othIndex);
    -                }
    -              })) {
    -                result2 = false;
    -                break;
    -              }
    -            } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
    -              result2 = false;
    -              break;
    -            }
    -          }
    -          stack["delete"](array);
    -          stack["delete"](other);
    -          return result2;
    -        }
    -        function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
    -          switch (tag) {
    -            case dataViewTag:
    -              if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
    -                return false;
    -              }
    -              object = object.buffer;
    -              other = other.buffer;
    -            case arrayBufferTag:
    -              if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
    -                return false;
    -              }
    -              return true;
    -            case boolTag:
    -            case dateTag:
    -            case numberTag:
    -              return eq(+object, +other);
    -            case errorTag:
    -              return object.name == other.name && object.message == other.message;
    -            case regexpTag:
    -            case stringTag:
    -              return object == other + "";
    -            case mapTag:
    -              var convert = mapToArray;
    -            case setTag:
    -              var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
    -              convert || (convert = setToArray);
    -              if (object.size != other.size && !isPartial) {
    -                return false;
    -              }
    -              var stacked = stack.get(object);
    -              if (stacked) {
    -                return stacked == other;
    -              }
    -              bitmask |= COMPARE_UNORDERED_FLAG;
    -              stack.set(object, other);
    -              var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
    -              stack["delete"](object);
    -              return result2;
    -            case symbolTag:
    -              if (symbolValueOf) {
    -                return symbolValueOf.call(object) == symbolValueOf.call(other);
    -              }
    -          }
    -          return false;
    -        }
    -        function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
    -          var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
    -          if (objLength != othLength && !isPartial) {
    -            return false;
    -          }
    -          var index = objLength;
    -          while (index--) {
    -            var key = objProps[index];
    -            if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
    -              return false;
    -            }
    -          }
    -          var objStacked = stack.get(object);
    -          var othStacked = stack.get(other);
    -          if (objStacked && othStacked) {
    -            return objStacked == other && othStacked == object;
    -          }
    -          var result2 = true;
    -          stack.set(object, other);
    -          stack.set(other, object);
    -          var skipCtor = isPartial;
    -          while (++index < objLength) {
    -            key = objProps[index];
    -            var objValue = object[key], othValue = other[key];
    -            if (customizer) {
    -              var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
    -            }
    -            if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
    -              result2 = false;
    -              break;
    -            }
    -            skipCtor || (skipCtor = key == "constructor");
    -          }
    -          if (result2 && !skipCtor) {
    -            var objCtor = object.constructor, othCtor = other.constructor;
    -            if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
    -              result2 = false;
    -            }
    -          }
    -          stack["delete"](object);
    -          stack["delete"](other);
    -          return result2;
    -        }
    -        function flatRest(func) {
    -          return setToString(overRest(func, undefined2, flatten13), func + "");
    -        }
    -        function getAllKeys(object) {
    -          return baseGetAllKeys(object, keys, getSymbols);
    -        }
    -        function getAllKeysIn(object) {
    -          return baseGetAllKeys(object, keysIn, getSymbolsIn);
    -        }
    -        var getData = !metaMap ? noop : function(func) {
    -          return metaMap.get(func);
    -        };
    -        function getFuncName(func) {
    -          var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0;
    -          while (length--) {
    -            var data = array[length], otherFunc = data.func;
    -            if (otherFunc == null || otherFunc == func) {
    -              return data.name;
    -            }
    -          }
    -          return result2;
    -        }
    -        function getHolder(func) {
    -          var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func;
    -          return object.placeholder;
    -        }
    -        function getIteratee() {
    -          var result2 = lodash.iteratee || iteratee;
    -          result2 = result2 === iteratee ? baseIteratee : result2;
    -          return arguments.length ? result2(arguments[0], arguments[1]) : result2;
    -        }
    -        function getMapData(map5, key) {
    -          var data = map5.__data__;
    -          return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
    -        }
    -        function getMatchData(object) {
    -          var result2 = keys(object), length = result2.length;
    -          while (length--) {
    -            var key = result2[length], value = object[key];
    -            result2[length] = [key, value, isStrictComparable(value)];
    -          }
    -          return result2;
    -        }
    -        function getNative(object, key) {
    -          var value = getValue(object, key);
    -          return baseIsNative(value) ? value : undefined2;
    -        }
    -        function getRawTag(value) {
    -          var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
    -          try {
    -            value[symToStringTag] = undefined2;
    -            var unmasked = true;
    -          } catch (e) {
    -          }
    -          var result2 = nativeObjectToString.call(value);
    -          if (unmasked) {
    -            if (isOwn) {
    -              value[symToStringTag] = tag;
    -            } else {
    -              delete value[symToStringTag];
    -            }
    -          }
    -          return result2;
    -        }
    -        var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
    -          if (object == null) {
    -            return [];
    -          }
    -          object = Object2(object);
    -          return arrayFilter(nativeGetSymbols(object), function(symbol) {
    -            return propertyIsEnumerable.call(object, symbol);
    -          });
    -        };
    -        var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
    -          var result2 = [];
    -          while (object) {
    -            arrayPush(result2, getSymbols(object));
    -            object = getPrototype(object);
    -          }
    -          return result2;
    -        };
    -        var getTag = baseGetTag;
    -        if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
    -          getTag = function(value) {
    -            var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : "";
    -            if (ctorString) {
    -              switch (ctorString) {
    -                case dataViewCtorString:
    -                  return dataViewTag;
    -                case mapCtorString:
    -                  return mapTag;
    -                case promiseCtorString:
    -                  return promiseTag;
    -                case setCtorString:
    -                  return setTag;
    -                case weakMapCtorString:
    -                  return weakMapTag;
    -              }
    -            }
    -            return result2;
    -          };
    -        }
    -        function getView(start, end, transforms) {
    -          var index = -1, length = transforms.length;
    -          while (++index < length) {
    -            var data = transforms[index], size2 = data.size;
    -            switch (data.type) {
    -              case "drop":
    -                start += size2;
    -                break;
    -              case "dropRight":
    -                end -= size2;
    -                break;
    -              case "take":
    -                end = nativeMin(end, start + size2);
    -                break;
    -              case "takeRight":
    -                start = nativeMax(start, end - size2);
    -                break;
    -            }
    -          }
    -          return { "start": start, "end": end };
    -        }
    -        function getWrapDetails(source) {
    -          var match2 = source.match(reWrapDetails);
    -          return match2 ? match2[1].split(reSplitDetails) : [];
    -        }
    -        function hasPath(object, path8, hasFunc) {
    -          path8 = castPath(path8, object);
    -          var index = -1, length = path8.length, result2 = false;
    -          while (++index < length) {
    -            var key = toKey(path8[index]);
    -            if (!(result2 = object != null && hasFunc(object, key))) {
    -              break;
    -            }
    -            object = object[key];
    -          }
    -          if (result2 || ++index != length) {
    -            return result2;
    -          }
    -          length = object == null ? 0 : object.length;
    -          return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));
    -        }
    -        function initCloneArray(array) {
    -          var length = array.length, result2 = new array.constructor(length);
    -          if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) {
    -            result2.index = array.index;
    -            result2.input = array.input;
    -          }
    -          return result2;
    -        }
    -        function initCloneObject(object) {
    -          return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
    -        }
    -        function initCloneByTag(object, tag, isDeep) {
    -          var Ctor = object.constructor;
    -          switch (tag) {
    -            case arrayBufferTag:
    -              return cloneArrayBuffer(object);
    -            case boolTag:
    -            case dateTag:
    -              return new Ctor(+object);
    -            case dataViewTag:
    -              return cloneDataView(object, isDeep);
    -            case float32Tag:
    -            case float64Tag:
    -            case int8Tag:
    -            case int16Tag:
    -            case int32Tag:
    -            case uint8Tag:
    -            case uint8ClampedTag:
    -            case uint16Tag:
    -            case uint32Tag:
    -              return cloneTypedArray(object, isDeep);
    -            case mapTag:
    -              return new Ctor();
    -            case numberTag:
    -            case stringTag:
    -              return new Ctor(object);
    -            case regexpTag:
    -              return cloneRegExp(object);
    -            case setTag:
    -              return new Ctor();
    -            case symbolTag:
    -              return cloneSymbol(object);
    -          }
    -        }
    -        function insertWrapDetails(source, details) {
    -          var length = details.length;
    -          if (!length) {
    -            return source;
    -          }
    -          var lastIndex = length - 1;
    -          details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex];
    -          details = details.join(length > 2 ? ", " : " ");
    -          return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n");
    -        }
    -        function isFlattenable(value) {
    -          return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
    -        }
    -        function isIndex(value, length) {
    -          var type2 = typeof value;
    -          length = length == null ? MAX_SAFE_INTEGER : length;
    -          return !!length && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
    -        }
    -        function isIterateeCall(value, index, object) {
    -          if (!isObject3(object)) {
    -            return false;
    -          }
    -          var type2 = typeof index;
    -          if (type2 == "number" ? isArrayLike(object) && isIndex(index, object.length) : type2 == "string" && index in object) {
    -            return eq(object[index], value);
    -          }
    -          return false;
    -        }
    -        function isKey(value, object) {
    -          if (isArray(value)) {
    -            return false;
    -          }
    -          var type2 = typeof value;
    -          if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) {
    -            return true;
    -          }
    -          return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);
    -        }
    -        function isKeyable(value) {
    -          var type2 = typeof value;
    -          return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
    -        }
    -        function isLaziable(func) {
    -          var funcName = getFuncName(func), other = lodash[funcName];
    -          if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) {
    -            return false;
    -          }
    -          if (func === other) {
    -            return true;
    -          }
    -          var data = getData(other);
    -          return !!data && func === data[0];
    -        }
    -        function isMasked(func) {
    -          return !!maskSrcKey && maskSrcKey in func;
    -        }
    -        var isMaskable = coreJsData ? isFunction : stubFalse;
    -        function isPrototype(value) {
    -          var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
    -          return value === proto;
    -        }
    -        function isStrictComparable(value) {
    -          return value === value && !isObject3(value);
    -        }
    -        function matchesStrictComparable(key, srcValue) {
    -          return function(object) {
    -            if (object == null) {
    -              return false;
    -            }
    -            return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));
    -          };
    -        }
    -        function memoizeCapped(func) {
    -          var result2 = memoize2(func, function(key) {
    -            if (cache.size === MAX_MEMOIZE_SIZE) {
    -              cache.clear();
    -            }
    -            return key;
    -          });
    -          var cache = result2.cache;
    -          return result2;
    -        }
    -        function mergeData(data, source) {
    -          var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
    -          var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;
    -          if (!(isCommon || isCombo)) {
    -            return data;
    -          }
    -          if (srcBitmask & WRAP_BIND_FLAG) {
    -            data[2] = source[2];
    -            newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
    -          }
    -          var value = source[3];
    -          if (value) {
    -            var partials = data[3];
    -            data[3] = partials ? composeArgs(partials, value, source[4]) : value;
    -            data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
    -          }
    -          value = source[5];
    -          if (value) {
    -            partials = data[5];
    -            data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
    -            data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
    -          }
    -          value = source[7];
    -          if (value) {
    -            data[7] = value;
    -          }
    -          if (srcBitmask & WRAP_ARY_FLAG) {
    -            data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
    -          }
    -          if (data[9] == null) {
    -            data[9] = source[9];
    -          }
    -          data[0] = source[0];
    -          data[1] = newBitmask;
    -          return data;
    -        }
    -        function nativeKeysIn(object) {
    -          var result2 = [];
    -          if (object != null) {
    -            for (var key in Object2(object)) {
    -              result2.push(key);
    -            }
    -          }
    -          return result2;
    -        }
    -        function objectToString(value) {
    -          return nativeObjectToString.call(value);
    -        }
    -        function overRest(func, start, transform2) {
    -          start = nativeMax(start === undefined2 ? func.length - 1 : start, 0);
    -          return function() {
    -            var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length);
    -            while (++index < length) {
    -              array[index] = args[start + index];
    -            }
    -            index = -1;
    -            var otherArgs = Array2(start + 1);
    -            while (++index < start) {
    -              otherArgs[index] = args[index];
    -            }
    -            otherArgs[start] = transform2(array);
    -            return apply(func, this, otherArgs);
    -          };
    -        }
    -        function parent(object, path8) {
    -          return path8.length < 2 ? object : baseGet(object, baseSlice(path8, 0, -1));
    -        }
    -        function reorder(array, indexes) {
    -          var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);
    -          while (length--) {
    -            var index = indexes[length];
    -            array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;
    -          }
    -          return array;
    -        }
    -        function safeGet(object, key) {
    -          if (key === "constructor" && typeof object[key] === "function") {
    -            return;
    -          }
    -          if (key == "__proto__") {
    -            return;
    -          }
    -          return object[key];
    -        }
    -        var setData = shortOut(baseSetData);
    -        var setTimeout2 = ctxSetTimeout || function(func, wait) {
    -          return root.setTimeout(func, wait);
    -        };
    -        var setToString = shortOut(baseSetToString);
    -        function setWrapToString(wrapper, reference, bitmask) {
    -          var source = reference + "";
    -          return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
    -        }
    -        function shortOut(func) {
    -          var count2 = 0, lastCalled = 0;
    -          return function() {
    -            var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
    -            lastCalled = stamp;
    -            if (remaining > 0) {
    -              if (++count2 >= HOT_COUNT) {
    -                return arguments[0];
    -              }
    -            } else {
    -              count2 = 0;
    -            }
    -            return func.apply(undefined2, arguments);
    -          };
    -        }
    -        function shuffleSelf(array, size2) {
    -          var index = -1, length = array.length, lastIndex = length - 1;
    -          size2 = size2 === undefined2 ? length : size2;
    -          while (++index < size2) {
    -            var rand = baseRandom(index, lastIndex), value = array[rand];
    -            array[rand] = array[index];
    -            array[index] = value;
    -          }
    -          array.length = size2;
    -          return array;
    -        }
    -        var stringToPath = memoizeCapped(function(string2) {
    -          var result2 = [];
    -          if (string2.charCodeAt(0) === 46) {
    -            result2.push("");
    -          }
    -          string2.replace(rePropName, function(match2, number, quote, subString) {
    -            result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match2);
    -          });
    -          return result2;
    -        });
    -        function toKey(value) {
    -          if (typeof value == "string" || isSymbol(value)) {
    -            return value;
    -          }
    -          var result2 = value + "";
    -          return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2;
    -        }
    -        function toSource(func) {
    -          if (func != null) {
    -            try {
    -              return funcToString.call(func);
    -            } catch (e) {
    -            }
    -            try {
    -              return func + "";
    -            } catch (e) {
    -            }
    -          }
    -          return "";
    -        }
    -        function updateWrapDetails(details, bitmask) {
    -          arrayEach(wrapFlags, function(pair) {
    -            var value = "_." + pair[0];
    -            if (bitmask & pair[1] && !arrayIncludes(details, value)) {
    -              details.push(value);
    -            }
    -          });
    -          return details.sort();
    -        }
    -        function wrapperClone(wrapper) {
    -          if (wrapper instanceof LazyWrapper) {
    -            return wrapper.clone();
    -          }
    -          var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
    -          result2.__actions__ = copyArray(wrapper.__actions__);
    -          result2.__index__ = wrapper.__index__;
    -          result2.__values__ = wrapper.__values__;
    -          return result2;
    -        }
    -        function chunk(array, size2, guard) {
    -          if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) {
    -            size2 = 1;
    -          } else {
    -            size2 = nativeMax(toInteger(size2), 0);
    -          }
    -          var length = array == null ? 0 : array.length;
    -          if (!length || size2 < 1) {
    -            return [];
    -          }
    -          var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2));
    -          while (index < length) {
    -            result2[resIndex++] = baseSlice(array, index, index += size2);
    -          }
    -          return result2;
    -        }
    -        function compact(array) {
    -          var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];
    -          while (++index < length) {
    -            var value = array[index];
    -            if (value) {
    -              result2[resIndex++] = value;
    -            }
    -          }
    -          return result2;
    -        }
    -        function concat3() {
    -          var length = arguments.length;
    -          if (!length) {
    -            return [];
    -          }
    -          var args = Array2(length - 1), array = arguments[0], index = length;
    -          while (index--) {
    -            args[index - 1] = arguments[index];
    -          }
    -          return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
    -        }
    -        var difference = baseRest(function(array, values3) {
    -          return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true)) : [];
    -        });
    -        var differenceBy = baseRest(function(array, values3) {
    -          var iteratee2 = last2(values3);
    -          if (isArrayLikeObject(iteratee2)) {
    -            iteratee2 = undefined2;
    -          }
    -          return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];
    -        });
    -        var differenceWith = baseRest(function(array, values3) {
    -          var comparator = last2(values3);
    -          if (isArrayLikeObject(comparator)) {
    -            comparator = undefined2;
    -          }
    -          return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), undefined2, comparator) : [];
    -        });
    -        function drop(array, n, guard) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          n = guard || n === undefined2 ? 1 : toInteger(n);
    -          return baseSlice(array, n < 0 ? 0 : n, length);
    -        }
    -        function dropRight(array, n, guard) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          n = guard || n === undefined2 ? 1 : toInteger(n);
    -          n = length - n;
    -          return baseSlice(array, 0, n < 0 ? 0 : n);
    -        }
    -        function dropRightWhile(array, predicate) {
    -          return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];
    -        }
    -        function dropWhile(array, predicate) {
    -          return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];
    -        }
    -        function fill(array, value, start, end) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          if (start && typeof start != "number" && isIterateeCall(array, value, start)) {
    -            start = 0;
    -            end = length;
    -          }
    -          return baseFill(array, value, start, end);
    -        }
    -        function findIndex(array, predicate, fromIndex) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return -1;
    -          }
    -          var index = fromIndex == null ? 0 : toInteger(fromIndex);
    -          if (index < 0) {
    -            index = nativeMax(length + index, 0);
    -          }
    -          return baseFindIndex(array, getIteratee(predicate, 3), index);
    -        }
    -        function findLastIndex3(array, predicate, fromIndex) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return -1;
    -          }
    -          var index = length - 1;
    -          if (fromIndex !== undefined2) {
    -            index = toInteger(fromIndex);
    -            index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
    -          }
    -          return baseFindIndex(array, getIteratee(predicate, 3), index, true);
    -        }
    -        function flatten13(array) {
    -          var length = array == null ? 0 : array.length;
    -          return length ? baseFlatten(array, 1) : [];
    -        }
    -        function flattenDeep(array) {
    -          var length = array == null ? 0 : array.length;
    -          return length ? baseFlatten(array, INFINITY) : [];
    -        }
    -        function flattenDepth(array, depth) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          depth = depth === undefined2 ? 1 : toInteger(depth);
    -          return baseFlatten(array, depth);
    -        }
    -        function fromPairs(pairs2) {
    -          var index = -1, length = pairs2 == null ? 0 : pairs2.length, result2 = {};
    -          while (++index < length) {
    -            var pair = pairs2[index];
    -            result2[pair[0]] = pair[1];
    -          }
    -          return result2;
    -        }
    -        function head(array) {
    -          return array && array.length ? array[0] : undefined2;
    -        }
    -        function indexOf(array, value, fromIndex) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return -1;
    -          }
    -          var index = fromIndex == null ? 0 : toInteger(fromIndex);
    -          if (index < 0) {
    -            index = nativeMax(length + index, 0);
    -          }
    -          return baseIndexOf(array, value, index);
    -        }
    -        function initial(array) {
    -          var length = array == null ? 0 : array.length;
    -          return length ? baseSlice(array, 0, -1) : [];
    -        }
    -        var intersection = baseRest(function(arrays) {
    -          var mapped = arrayMap(arrays, castArrayLikeObject);
    -          return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];
    -        });
    -        var intersectionBy = baseRest(function(arrays) {
    -          var iteratee2 = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
    -          if (iteratee2 === last2(mapped)) {
    -            iteratee2 = undefined2;
    -          } else {
    -            mapped.pop();
    -          }
    -          return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];
    -        });
    -        var intersectionWith = baseRest(function(arrays) {
    -          var comparator = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
    -          comparator = typeof comparator == "function" ? comparator : undefined2;
    -          if (comparator) {
    -            mapped.pop();
    -          }
    -          return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];
    -        });
    -        function join9(array, separator2) {
    -          return array == null ? "" : nativeJoin.call(array, separator2);
    -        }
    -        function last2(array) {
    -          var length = array == null ? 0 : array.length;
    -          return length ? array[length - 1] : undefined2;
    -        }
    -        function lastIndexOf(array, value, fromIndex) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return -1;
    -          }
    -          var index = length;
    -          if (fromIndex !== undefined2) {
    -            index = toInteger(fromIndex);
    -            index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
    -          }
    -          return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);
    -        }
    -        function nth(array, n) {
    -          return array && array.length ? baseNth(array, toInteger(n)) : undefined2;
    -        }
    -        var pull8 = baseRest(pullAll);
    -        function pullAll(array, values3) {
    -          return array && array.length && values3 && values3.length ? basePullAll(array, values3) : array;
    -        }
    -        function pullAllBy(array, values3, iteratee2) {
    -          return array && array.length && values3 && values3.length ? basePullAll(array, values3, getIteratee(iteratee2, 2)) : array;
    -        }
    -        function pullAllWith(array, values3, comparator) {
    -          return array && array.length && values3 && values3.length ? basePullAll(array, values3, undefined2, comparator) : array;
    -        }
    -        var pullAt = flatRest(function(array, indexes) {
    -          var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes);
    -          basePullAt(array, arrayMap(indexes, function(index) {
    -            return isIndex(index, length) ? +index : index;
    -          }).sort(compareAscending));
    -          return result2;
    -        });
    -        function remove2(array, predicate) {
    -          var result2 = [];
    -          if (!(array && array.length)) {
    -            return result2;
    -          }
    -          var index = -1, indexes = [], length = array.length;
    -          predicate = getIteratee(predicate, 3);
    -          while (++index < length) {
    -            var value = array[index];
    -            if (predicate(value, index, array)) {
    -              result2.push(value);
    -              indexes.push(index);
    -            }
    -          }
    -          basePullAt(array, indexes);
    -          return result2;
    -        }
    -        function reverse(array) {
    -          return array == null ? array : nativeReverse.call(array);
    -        }
    -        function slice(array, start, end) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          if (end && typeof end != "number" && isIterateeCall(array, start, end)) {
    -            start = 0;
    -            end = length;
    -          } else {
    -            start = start == null ? 0 : toInteger(start);
    -            end = end === undefined2 ? length : toInteger(end);
    -          }
    -          return baseSlice(array, start, end);
    -        }
    -        function sortedIndex(array, value) {
    -          return baseSortedIndex(array, value);
    -        }
    -        function sortedIndexBy2(array, value, iteratee2) {
    -          return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2));
    -        }
    -        function sortedIndexOf(array, value) {
    -          var length = array == null ? 0 : array.length;
    -          if (length) {
    -            var index = baseSortedIndex(array, value);
    -            if (index < length && eq(array[index], value)) {
    -              return index;
    -            }
    -          }
    -          return -1;
    -        }
    -        function sortedLastIndex(array, value) {
    -          return baseSortedIndex(array, value, true);
    -        }
    -        function sortedLastIndexBy(array, value, iteratee2) {
    -          return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true);
    -        }
    -        function sortedLastIndexOf(array, value) {
    -          var length = array == null ? 0 : array.length;
    -          if (length) {
    -            var index = baseSortedIndex(array, value, true) - 1;
    -            if (eq(array[index], value)) {
    -              return index;
    -            }
    -          }
    -          return -1;
    -        }
    -        function sortedUniq(array) {
    -          return array && array.length ? baseSortedUniq(array) : [];
    -        }
    -        function sortedUniqBy(array, iteratee2) {
    -          return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : [];
    -        }
    -        function tail(array) {
    -          var length = array == null ? 0 : array.length;
    -          return length ? baseSlice(array, 1, length) : [];
    -        }
    -        function take(array, n, guard) {
    -          if (!(array && array.length)) {
    -            return [];
    -          }
    -          n = guard || n === undefined2 ? 1 : toInteger(n);
    -          return baseSlice(array, 0, n < 0 ? 0 : n);
    -        }
    -        function takeRight(array, n, guard) {
    -          var length = array == null ? 0 : array.length;
    -          if (!length) {
    -            return [];
    -          }
    -          n = guard || n === undefined2 ? 1 : toInteger(n);
    -          n = length - n;
    -          return baseSlice(array, n < 0 ? 0 : n, length);
    -        }
    -        function takeRightWhile(array, predicate) {
    -          return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];
    -        }
    -        function takeWhile(array, predicate) {
    -          return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];
    -        }
    -        var union2 = baseRest(function(arrays) {
    -          return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
    -        });
    -        var unionBy = baseRest(function(arrays) {
    -          var iteratee2 = last2(arrays);
    -          if (isArrayLikeObject(iteratee2)) {
    -            iteratee2 = undefined2;
    -          }
    -          return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));
    -        });
    -        var unionWith = baseRest(function(arrays) {
    -          var comparator = last2(arrays);
    -          comparator = typeof comparator == "function" ? comparator : undefined2;
    -          return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);
    -        });
    -        function uniq5(array) {
    -          return array && array.length ? baseUniq(array) : [];
    -        }
    -        function uniqBy(array, iteratee2) {
    -          return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];
    -        }
    -        function uniqWith3(array, comparator) {
    -          comparator = typeof comparator == "function" ? comparator : undefined2;
    -          return array && array.length ? baseUniq(array, undefined2, comparator) : [];
    -        }
    -        function unzip(array) {
    -          if (!(array && array.length)) {
    -            return [];
    -          }
    -          var length = 0;
    -          array = arrayFilter(array, function(group) {
    -            if (isArrayLikeObject(group)) {
    -              length = nativeMax(group.length, length);
    -              return true;
    -            }
    -          });
    -          return baseTimes(length, function(index) {
    -            return arrayMap(array, baseProperty(index));
    -          });
    -        }
    -        function unzipWith(array, iteratee2) {
    -          if (!(array && array.length)) {
    -            return [];
    -          }
    -          var result2 = unzip(array);
    -          if (iteratee2 == null) {
    -            return result2;
    -          }
    -          return arrayMap(result2, function(group) {
    -            return apply(iteratee2, undefined2, group);
    -          });
    -        }
    -        var without = baseRest(function(array, values3) {
    -          return isArrayLikeObject(array) ? baseDifference(array, values3) : [];
    -        });
    -        var xor = baseRest(function(arrays) {
    -          return baseXor(arrayFilter(arrays, isArrayLikeObject));
    -        });
    -        var xorBy = baseRest(function(arrays) {
    -          var iteratee2 = last2(arrays);
    -          if (isArrayLikeObject(iteratee2)) {
    -            iteratee2 = undefined2;
    -          }
    -          return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));
    -        });
    -        var xorWith = baseRest(function(arrays) {
    -          var comparator = last2(arrays);
    -          comparator = typeof comparator == "function" ? comparator : undefined2;
    -          return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);
    -        });
    -        var zip9 = baseRest(unzip);
    -        function zipObject(props, values3) {
    -          return baseZipObject(props || [], values3 || [], assignValue);
    -        }
    -        function zipObjectDeep(props, values3) {
    -          return baseZipObject(props || [], values3 || [], baseSet);
    -        }
    -        var zipWith = baseRest(function(arrays) {
    -          var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;
    -          iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2;
    -          return unzipWith(arrays, iteratee2);
    -        });
    -        function chain(value) {
    -          var result2 = lodash(value);
    -          result2.__chain__ = true;
    -          return result2;
    -        }
    -        function tap(value, interceptor) {
    -          interceptor(value);
    -          return value;
    -        }
    -        function thru(value, interceptor) {
    -          return interceptor(value);
    -        }
    -        var wrapperAt = flatRest(function(paths) {
    -          var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) {
    -            return baseAt(object, paths);
    -          };
    -          if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {
    -            return this.thru(interceptor);
    -          }
    -          value = value.slice(start, +start + (length ? 1 : 0));
    -          value.__actions__.push({
    -            "func": thru,
    -            "args": [interceptor],
    -            "thisArg": undefined2
    -          });
    -          return new LodashWrapper(value, this.__chain__).thru(function(array) {
    -            if (length && !array.length) {
    -              array.push(undefined2);
    -            }
    -            return array;
    -          });
    -        });
    -        function wrapperChain() {
    -          return chain(this);
    -        }
    -        function wrapperCommit() {
    -          return new LodashWrapper(this.value(), this.__chain__);
    -        }
    -        function wrapperNext() {
    -          if (this.__values__ === undefined2) {
    -            this.__values__ = toArray2(this.value());
    -          }
    -          var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++];
    -          return { "done": done, "value": value };
    -        }
    -        function wrapperToIterator() {
    -          return this;
    -        }
    -        function wrapperPlant(value) {
    -          var result2, parent2 = this;
    -          while (parent2 instanceof baseLodash) {
    -            var clone2 = wrapperClone(parent2);
    -            clone2.__index__ = 0;
    -            clone2.__values__ = undefined2;
    -            if (result2) {
    -              previous.__wrapped__ = clone2;
    -            } else {
    -              result2 = clone2;
    -            }
    -            var previous = clone2;
    -            parent2 = parent2.__wrapped__;
    -          }
    -          previous.__wrapped__ = value;
    -          return result2;
    -        }
    -        function wrapperReverse() {
    -          var value = this.__wrapped__;
    -          if (value instanceof LazyWrapper) {
    -            var wrapped = value;
    -            if (this.__actions__.length) {
    -              wrapped = new LazyWrapper(this);
    -            }
    -            wrapped = wrapped.reverse();
    -            wrapped.__actions__.push({
    -              "func": thru,
    -              "args": [reverse],
    -              "thisArg": undefined2
    -            });
    -            return new LodashWrapper(wrapped, this.__chain__);
    -          }
    -          return this.thru(reverse);
    -        }
    -        function wrapperValue() {
    -          return baseWrapperValue(this.__wrapped__, this.__actions__);
    -        }
    -        var countBy = createAggregator(function(result2, value, key) {
    -          if (hasOwnProperty.call(result2, key)) {
    -            ++result2[key];
    -          } else {
    -            baseAssignValue(result2, key, 1);
    -          }
    -        });
    -        function every(collection, predicate, guard) {
    -          var func = isArray(collection) ? arrayEvery : baseEvery;
    -          if (guard && isIterateeCall(collection, predicate, guard)) {
    -            predicate = undefined2;
    -          }
    -          return func(collection, getIteratee(predicate, 3));
    -        }
    -        function filter2(collection, predicate) {
    -          var func = isArray(collection) ? arrayFilter : baseFilter;
    -          return func(collection, getIteratee(predicate, 3));
    -        }
    -        var find = createFind(findIndex);
    -        var findLast2 = createFind(findLastIndex3);
    -        function flatMap(collection, iteratee2) {
    -          return baseFlatten(map4(collection, iteratee2), 1);
    -        }
    -        function flatMapDeep(collection, iteratee2) {
    -          return baseFlatten(map4(collection, iteratee2), INFINITY);
    -        }
    -        function flatMapDepth(collection, iteratee2, depth) {
    -          depth = depth === undefined2 ? 1 : toInteger(depth);
    -          return baseFlatten(map4(collection, iteratee2), depth);
    -        }
    -        function forEach(collection, iteratee2) {
    -          var func = isArray(collection) ? arrayEach : baseEach;
    -          return func(collection, getIteratee(iteratee2, 3));
    -        }
    -        function forEachRight(collection, iteratee2) {
    -          var func = isArray(collection) ? arrayEachRight : baseEachRight;
    -          return func(collection, getIteratee(iteratee2, 3));
    -        }
    -        var groupBy5 = createAggregator(function(result2, value, key) {
    -          if (hasOwnProperty.call(result2, key)) {
    -            result2[key].push(value);
    -          } else {
    -            baseAssignValue(result2, key, [value]);
    -          }
    -        });
    -        function includes(collection, value, fromIndex, guard) {
    -          collection = isArrayLike(collection) ? collection : values2(collection);
    -          fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;
    -          var length = collection.length;
    -          if (fromIndex < 0) {
    -            fromIndex = nativeMax(length + fromIndex, 0);
    -          }
    -          return isString3(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
    -        }
    -        var invokeMap = baseRest(function(collection, path8, args) {
    -          var index = -1, isFunc = typeof path8 == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : [];
    -          baseEach(collection, function(value) {
    -            result2[++index] = isFunc ? apply(path8, value, args) : baseInvoke(value, path8, args);
    -          });
    -          return result2;
    -        });
    -        var keyBy = createAggregator(function(result2, value, key) {
    -          baseAssignValue(result2, key, value);
    -        });
    -        function map4(collection, iteratee2) {
    -          var func = isArray(collection) ? arrayMap : baseMap;
    -          return func(collection, getIteratee(iteratee2, 3));
    -        }
    -        function orderBy(collection, iteratees, orders, guard) {
    -          if (collection == null) {
    -            return [];
    -          }
    -          if (!isArray(iteratees)) {
    -            iteratees = iteratees == null ? [] : [iteratees];
    -          }
    -          orders = guard ? undefined2 : orders;
    -          if (!isArray(orders)) {
    -            orders = orders == null ? [] : [orders];
    -          }
    -          return baseOrderBy(collection, iteratees, orders);
    -        }
    -        var partition = createAggregator(function(result2, value, key) {
    -          result2[key ? 0 : 1].push(value);
    -        }, function() {
    -          return [[], []];
    -        });
    -        function reduce(collection, iteratee2, accumulator) {
    -          var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
    -          return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);
    -        }
    -        function reduceRight(collection, iteratee2, accumulator) {
    -          var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;
    -          return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);
    -        }
    -        function reject(collection, predicate) {
    -          var func = isArray(collection) ? arrayFilter : baseFilter;
    -          return func(collection, negate(getIteratee(predicate, 3)));
    -        }
    -        function sample(collection) {
    -          var func = isArray(collection) ? arraySample : baseSample;
    -          return func(collection);
    -        }
    -        function sampleSize(collection, n, guard) {
    -          if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {
    -            n = 1;
    -          } else {
    -            n = toInteger(n);
    -          }
    -          var func = isArray(collection) ? arraySampleSize : baseSampleSize;
    -          return func(collection, n);
    -        }
    -        function shuffle2(collection) {
    -          var func = isArray(collection) ? arrayShuffle : baseShuffle;
    -          return func(collection);
    -        }
    -        function size(collection) {
    -          if (collection == null) {
    -            return 0;
    -          }
    -          if (isArrayLike(collection)) {
    -            return isString3(collection) ? stringSize(collection) : collection.length;
    -          }
    -          var tag = getTag(collection);
    -          if (tag == mapTag || tag == setTag) {
    -            return collection.size;
    -          }
    -          return baseKeys(collection).length;
    -        }
    -        function some(collection, predicate, guard) {
    -          var func = isArray(collection) ? arraySome : baseSome;
    -          if (guard && isIterateeCall(collection, predicate, guard)) {
    -            predicate = undefined2;
    -          }
    -          return func(collection, getIteratee(predicate, 3));
    -        }
    -        var sortBy3 = baseRest(function(collection, iteratees) {
    -          if (collection == null) {
    -            return [];
    -          }
    -          var length = iteratees.length;
    -          if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
    -            iteratees = [];
    -          } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
    -            iteratees = [iteratees[0]];
    -          }
    -          return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
    -        });
    -        var now = ctxNow || function() {
    -          return root.Date.now();
    -        };
    -        function after(n, func) {
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          n = toInteger(n);
    -          return function() {
    -            if (--n < 1) {
    -              return func.apply(this, arguments);
    -            }
    -          };
    -        }
    -        function ary(func, n, guard) {
    -          n = guard ? undefined2 : n;
    -          n = func && n == null ? func.length : n;
    -          return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);
    -        }
    -        function before(n, func) {
    -          var result2;
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          n = toInteger(n);
    -          return function() {
    -            if (--n > 0) {
    -              result2 = func.apply(this, arguments);
    -            }
    -            if (n <= 1) {
    -              func = undefined2;
    -            }
    -            return result2;
    -          };
    -        }
    -        var bind = baseRest(function(func, thisArg, partials) {
    -          var bitmask = WRAP_BIND_FLAG;
    -          if (partials.length) {
    -            var holders = replaceHolders(partials, getHolder(bind));
    -            bitmask |= WRAP_PARTIAL_FLAG;
    -          }
    -          return createWrap(func, bitmask, thisArg, partials, holders);
    -        });
    -        var bindKey = baseRest(function(object, key, partials) {
    -          var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
    -          if (partials.length) {
    -            var holders = replaceHolders(partials, getHolder(bindKey));
    -            bitmask |= WRAP_PARTIAL_FLAG;
    -          }
    -          return createWrap(key, bitmask, object, partials, holders);
    -        });
    -        function curry(func, arity, guard) {
    -          arity = guard ? undefined2 : arity;
    -          var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
    -          result2.placeholder = curry.placeholder;
    -          return result2;
    -        }
    -        function curryRight(func, arity, guard) {
    -          arity = guard ? undefined2 : arity;
    -          var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
    -          result2.placeholder = curryRight.placeholder;
    -          return result2;
    -        }
    -        function debounce(func, wait, options2) {
    -          var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          wait = toNumber(wait) || 0;
    -          if (isObject3(options2)) {
    -            leading = !!options2.leading;
    -            maxing = "maxWait" in options2;
    -            maxWait = maxing ? nativeMax(toNumber(options2.maxWait) || 0, wait) : maxWait;
    -            trailing = "trailing" in options2 ? !!options2.trailing : trailing;
    -          }
    -          function invokeFunc(time) {
    -            var args = lastArgs, thisArg = lastThis;
    -            lastArgs = lastThis = undefined2;
    -            lastInvokeTime = time;
    -            result2 = func.apply(thisArg, args);
    -            return result2;
    -          }
    -          function leadingEdge(time) {
    -            lastInvokeTime = time;
    -            timerId = setTimeout2(timerExpired, wait);
    -            return leading ? invokeFunc(time) : result2;
    -          }
    -          function remainingWait(time) {
    -            var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
    -            return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
    -          }
    -          function shouldInvoke(time) {
    -            var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
    -            return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
    -          }
    -          function timerExpired() {
    -            var time = now();
    -            if (shouldInvoke(time)) {
    -              return trailingEdge(time);
    -            }
    -            timerId = setTimeout2(timerExpired, remainingWait(time));
    -          }
    -          function trailingEdge(time) {
    -            timerId = undefined2;
    -            if (trailing && lastArgs) {
    -              return invokeFunc(time);
    -            }
    -            lastArgs = lastThis = undefined2;
    -            return result2;
    -          }
    -          function cancel() {
    -            if (timerId !== undefined2) {
    -              clearTimeout2(timerId);
    -            }
    -            lastInvokeTime = 0;
    -            lastArgs = lastCallTime = lastThis = timerId = undefined2;
    -          }
    -          function flush() {
    -            return timerId === undefined2 ? result2 : trailingEdge(now());
    -          }
    -          function debounced() {
    -            var time = now(), isInvoking = shouldInvoke(time);
    -            lastArgs = arguments;
    -            lastThis = this;
    -            lastCallTime = time;
    -            if (isInvoking) {
    -              if (timerId === undefined2) {
    -                return leadingEdge(lastCallTime);
    -              }
    -              if (maxing) {
    -                clearTimeout2(timerId);
    -                timerId = setTimeout2(timerExpired, wait);
    -                return invokeFunc(lastCallTime);
    -              }
    -            }
    -            if (timerId === undefined2) {
    -              timerId = setTimeout2(timerExpired, wait);
    -            }
    -            return result2;
    -          }
    -          debounced.cancel = cancel;
    -          debounced.flush = flush;
    -          return debounced;
    -        }
    -        var defer2 = baseRest(function(func, args) {
    -          return baseDelay(func, 1, args);
    -        });
    -        var delay = baseRest(function(func, wait, args) {
    -          return baseDelay(func, toNumber(wait) || 0, args);
    -        });
    -        function flip(func) {
    -          return createWrap(func, WRAP_FLIP_FLAG);
    -        }
    -        function memoize2(func, resolver) {
    -          if (typeof func != "function" || resolver != null && typeof resolver != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          var memoized = function() {
    -            var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
    -            if (cache.has(key)) {
    -              return cache.get(key);
    -            }
    -            var result2 = func.apply(this, args);
    -            memoized.cache = cache.set(key, result2) || cache;
    -            return result2;
    -          };
    -          memoized.cache = new (memoize2.Cache || MapCache)();
    -          return memoized;
    -        }
    -        memoize2.Cache = MapCache;
    -        function negate(predicate) {
    -          if (typeof predicate != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          return function() {
    -            var args = arguments;
    -            switch (args.length) {
    -              case 0:
    -                return !predicate.call(this);
    -              case 1:
    -                return !predicate.call(this, args[0]);
    -              case 2:
    -                return !predicate.call(this, args[0], args[1]);
    -              case 3:
    -                return !predicate.call(this, args[0], args[1], args[2]);
    -            }
    -            return !predicate.apply(this, args);
    -          };
    -        }
    -        function once(func) {
    -          return before(2, func);
    -        }
    -        var overArgs = castRest(function(func, transforms) {
    -          transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
    -          var funcsLength = transforms.length;
    -          return baseRest(function(args) {
    -            var index = -1, length = nativeMin(args.length, funcsLength);
    -            while (++index < length) {
    -              args[index] = transforms[index].call(this, args[index]);
    -            }
    -            return apply(func, this, args);
    -          });
    -        });
    -        var partial = baseRest(function(func, partials) {
    -          var holders = replaceHolders(partials, getHolder(partial));
    -          return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders);
    -        });
    -        var partialRight = baseRest(function(func, partials) {
    -          var holders = replaceHolders(partials, getHolder(partialRight));
    -          return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);
    -        });
    -        var rearg = flatRest(function(func, indexes) {
    -          return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);
    -        });
    -        function rest(func, start) {
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          start = start === undefined2 ? start : toInteger(start);
    -          return baseRest(func, start);
    -        }
    -        function spread(func, start) {
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          start = start == null ? 0 : nativeMax(toInteger(start), 0);
    -          return baseRest(function(args) {
    -            var array = args[start], otherArgs = castSlice(args, 0, start);
    -            if (array) {
    -              arrayPush(otherArgs, array);
    -            }
    -            return apply(func, this, otherArgs);
    -          });
    -        }
    -        function throttle(func, wait, options2) {
    -          var leading = true, trailing = true;
    -          if (typeof func != "function") {
    -            throw new TypeError2(FUNC_ERROR_TEXT);
    -          }
    -          if (isObject3(options2)) {
    -            leading = "leading" in options2 ? !!options2.leading : leading;
    -            trailing = "trailing" in options2 ? !!options2.trailing : trailing;
    -          }
    -          return debounce(func, wait, {
    -            "leading": leading,
    -            "maxWait": wait,
    -            "trailing": trailing
    -          });
    -        }
    -        function unary(func) {
    -          return ary(func, 1);
    -        }
    -        function wrap(value, wrapper) {
    -          return partial(castFunction(wrapper), value);
    -        }
    -        function castArray() {
    -          if (!arguments.length) {
    -            return [];
    -          }
    -          var value = arguments[0];
    -          return isArray(value) ? value : [value];
    -        }
    -        function clone(value) {
    -          return baseClone(value, CLONE_SYMBOLS_FLAG);
    -        }
    -        function cloneWith(value, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
    -        }
    -        function cloneDeep2(value) {
    -          return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
    -        }
    -        function cloneDeepWith(value, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
    -        }
    -        function conformsTo(object, source) {
    -          return source == null || baseConformsTo(object, source, keys(source));
    -        }
    -        function eq(value, other) {
    -          return value === other || value !== value && other !== other;
    -        }
    -        var gt = createRelationalOperation(baseGt);
    -        var gte = createRelationalOperation(function(value, other) {
    -          return value >= other;
    -        });
    -        var isArguments = baseIsArguments(/* @__PURE__ */ function() {
    -          return arguments;
    -        }()) ? baseIsArguments : function(value) {
    -          return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
    -        };
    -        var isArray = Array2.isArray;
    -        var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
    -        function isArrayLike(value) {
    -          return value != null && isLength(value.length) && !isFunction(value);
    -        }
    -        function isArrayLikeObject(value) {
    -          return isObjectLike(value) && isArrayLike(value);
    -        }
    -        function isBoolean2(value) {
    -          return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;
    -        }
    -        var isBuffer = nativeIsBuffer || stubFalse;
    -        var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
    -        function isElement(value) {
    -          return isObjectLike(value) && value.nodeType === 1 && !isPlainObject3(value);
    -        }
    -        function isEmpty(value) {
    -          if (value == null) {
    -            return true;
    -          }
    -          if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {
    -            return !value.length;
    -          }
    -          var tag = getTag(value);
    -          if (tag == mapTag || tag == setTag) {
    -            return !value.size;
    -          }
    -          if (isPrototype(value)) {
    -            return !baseKeys(value).length;
    -          }
    -          for (var key in value) {
    -            if (hasOwnProperty.call(value, key)) {
    -              return false;
    -            }
    -          }
    -          return true;
    -        }
    -        function isEqual5(value, other) {
    -          return baseIsEqual(value, other);
    -        }
    -        function isEqualWith(value, other, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          var result2 = customizer ? customizer(value, other) : undefined2;
    -          return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2;
    -        }
    -        function isError(value) {
    -          if (!isObjectLike(value)) {
    -            return false;
    -          }
    -          var tag = baseGetTag(value);
    -          return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject3(value);
    -        }
    -        function isFinite2(value) {
    -          return typeof value == "number" && nativeIsFinite(value);
    -        }
    -        function isFunction(value) {
    -          if (!isObject3(value)) {
    -            return false;
    -          }
    -          var tag = baseGetTag(value);
    -          return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    -        }
    -        function isInteger2(value) {
    -          return typeof value == "number" && value == toInteger(value);
    -        }
    -        function isLength(value) {
    -          return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
    -        }
    -        function isObject3(value) {
    -          var type2 = typeof value;
    -          return value != null && (type2 == "object" || type2 == "function");
    -        }
    -        function isObjectLike(value) {
    -          return value != null && typeof value == "object";
    -        }
    -        var isMap2 = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
    -        function isMatch(object, source) {
    -          return object === source || baseIsMatch(object, source, getMatchData(source));
    -        }
    -        function isMatchWith(object, source, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          return baseIsMatch(object, source, getMatchData(source), customizer);
    -        }
    -        function isNaN2(value) {
    -          return isNumber(value) && value != +value;
    -        }
    -        function isNative(value) {
    -          if (isMaskable(value)) {
    -            throw new Error2(CORE_ERROR_TEXT);
    -          }
    -          return baseIsNative(value);
    -        }
    -        function isNull2(value) {
    -          return value === null;
    -        }
    -        function isNil(value) {
    -          return value == null;
    -        }
    -        function isNumber(value) {
    -          return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag;
    -        }
    -        function isPlainObject3(value) {
    -          if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    -            return false;
    -          }
    -          var proto = getPrototype(value);
    -          if (proto === null) {
    -            return true;
    -          }
    -          var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
    -          return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString2;
    -        }
    -        var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
    -        function isSafeInteger(value) {
    -          return isInteger2(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
    -        }
    -        var isSet2 = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
    -        function isString3(value) {
    -          return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
    -        }
    -        function isSymbol(value) {
    -          return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
    -        }
    -        var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
    -        function isUndefined(value) {
    -          return value === undefined2;
    -        }
    -        function isWeakMap(value) {
    -          return isObjectLike(value) && getTag(value) == weakMapTag;
    -        }
    -        function isWeakSet(value) {
    -          return isObjectLike(value) && baseGetTag(value) == weakSetTag;
    -        }
    -        var lt = createRelationalOperation(baseLt);
    -        var lte = createRelationalOperation(function(value, other) {
    -          return value <= other;
    -        });
    -        function toArray2(value) {
    -          if (!value) {
    -            return [];
    -          }
    -          if (isArrayLike(value)) {
    -            return isString3(value) ? stringToArray(value) : copyArray(value);
    -          }
    -          if (symIterator && value[symIterator]) {
    -            return iteratorToArray(value[symIterator]());
    -          }
    -          var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values2;
    -          return func(value);
    -        }
    -        function toFinite(value) {
    -          if (!value) {
    -            return value === 0 ? value : 0;
    -          }
    -          value = toNumber(value);
    -          if (value === INFINITY || value === -INFINITY) {
    -            var sign = value < 0 ? -1 : 1;
    -            return sign * MAX_INTEGER;
    -          }
    -          return value === value ? value : 0;
    -        }
    -        function toInteger(value) {
    -          var result2 = toFinite(value), remainder = result2 % 1;
    -          return result2 === result2 ? remainder ? result2 - remainder : result2 : 0;
    -        }
    -        function toLength(value) {
    -          return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
    -        }
    -        function toNumber(value) {
    -          if (typeof value == "number") {
    -            return value;
    -          }
    -          if (isSymbol(value)) {
    -            return NAN;
    -          }
    -          if (isObject3(value)) {
    -            var other = typeof value.valueOf == "function" ? value.valueOf() : value;
    -            value = isObject3(other) ? other + "" : other;
    -          }
    -          if (typeof value != "string") {
    -            return value === 0 ? value : +value;
    -          }
    -          value = baseTrim(value);
    -          var isBinary2 = reIsBinary.test(value);
    -          return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
    -        }
    -        function toPlainObject(value) {
    -          return copyObject(value, keysIn(value));
    -        }
    -        function toSafeInteger(value) {
    -          return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;
    -        }
    -        function toString2(value) {
    -          return value == null ? "" : baseToString(value);
    -        }
    -        var assign = createAssigner(function(object, source) {
    -          if (isPrototype(source) || isArrayLike(source)) {
    -            copyObject(source, keys(source), object);
    -            return;
    -          }
    -          for (var key in source) {
    -            if (hasOwnProperty.call(source, key)) {
    -              assignValue(object, key, source[key]);
    -            }
    -          }
    -        });
    -        var assignIn = createAssigner(function(object, source) {
    -          copyObject(source, keysIn(source), object);
    -        });
    -        var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
    -          copyObject(source, keysIn(source), object, customizer);
    -        });
    -        var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
    -          copyObject(source, keys(source), object, customizer);
    -        });
    -        var at = flatRest(baseAt);
    -        function create(prototype, properties) {
    -          var result2 = baseCreate(prototype);
    -          return properties == null ? result2 : baseAssign(result2, properties);
    -        }
    -        var defaults2 = baseRest(function(object, sources) {
    -          object = Object2(object);
    -          var index = -1;
    -          var length = sources.length;
    -          var guard = length > 2 ? sources[2] : undefined2;
    -          if (guard && isIterateeCall(sources[0], sources[1], guard)) {
    -            length = 1;
    -          }
    -          while (++index < length) {
    -            var source = sources[index];
    -            var props = keysIn(source);
    -            var propsIndex = -1;
    -            var propsLength = props.length;
    -            while (++propsIndex < propsLength) {
    -              var key = props[propsIndex];
    -              var value = object[key];
    -              if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {
    -                object[key] = source[key];
    -              }
    -            }
    -          }
    -          return object;
    -        });
    -        var defaultsDeep = baseRest(function(args) {
    -          args.push(undefined2, customDefaultsMerge);
    -          return apply(mergeWith, undefined2, args);
    -        });
    -        function findKey(object, predicate) {
    -          return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
    -        }
    -        function findLastKey(object, predicate) {
    -          return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
    -        }
    -        function forIn(object, iteratee2) {
    -          return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);
    -        }
    -        function forInRight(object, iteratee2) {
    -          return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);
    -        }
    -        function forOwn(object, iteratee2) {
    -          return object && baseForOwn(object, getIteratee(iteratee2, 3));
    -        }
    -        function forOwnRight(object, iteratee2) {
    -          return object && baseForOwnRight(object, getIteratee(iteratee2, 3));
    -        }
    -        function functions(object) {
    -          return object == null ? [] : baseFunctions(object, keys(object));
    -        }
    -        function functionsIn(object) {
    -          return object == null ? [] : baseFunctions(object, keysIn(object));
    -        }
    -        function get3(object, path8, defaultValue) {
    -          var result2 = object == null ? undefined2 : baseGet(object, path8);
    -          return result2 === undefined2 ? defaultValue : result2;
    -        }
    -        function has2(object, path8) {
    -          return object != null && hasPath(object, path8, baseHas);
    -        }
    -        function hasIn(object, path8) {
    -          return object != null && hasPath(object, path8, baseHasIn);
    -        }
    -        var invert = createInverter(function(result2, value, key) {
    -          if (value != null && typeof value.toString != "function") {
    -            value = nativeObjectToString.call(value);
    -          }
    -          result2[value] = key;
    -        }, constant(identity3));
    -        var invertBy = createInverter(function(result2, value, key) {
    -          if (value != null && typeof value.toString != "function") {
    -            value = nativeObjectToString.call(value);
    -          }
    -          if (hasOwnProperty.call(result2, value)) {
    -            result2[value].push(key);
    -          } else {
    -            result2[value] = [key];
    -          }
    -        }, getIteratee);
    -        var invoke = baseRest(baseInvoke);
    -        function keys(object) {
    -          return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
    -        }
    -        function keysIn(object) {
    -          return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
    -        }
    -        function mapKeys(object, iteratee2) {
    -          var result2 = {};
    -          iteratee2 = getIteratee(iteratee2, 3);
    -          baseForOwn(object, function(value, key, object2) {
    -            baseAssignValue(result2, iteratee2(value, key, object2), value);
    -          });
    -          return result2;
    -        }
    -        function mapValues2(object, iteratee2) {
    -          var result2 = {};
    -          iteratee2 = getIteratee(iteratee2, 3);
    -          baseForOwn(object, function(value, key, object2) {
    -            baseAssignValue(result2, key, iteratee2(value, key, object2));
    -          });
    -          return result2;
    -        }
    -        var merge4 = createAssigner(function(object, source, srcIndex) {
    -          baseMerge(object, source, srcIndex);
    -        });
    -        var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
    -          baseMerge(object, source, srcIndex, customizer);
    -        });
    -        var omit = flatRest(function(object, paths) {
    -          var result2 = {};
    -          if (object == null) {
    -            return result2;
    -          }
    -          var isDeep = false;
    -          paths = arrayMap(paths, function(path8) {
    -            path8 = castPath(path8, object);
    -            isDeep || (isDeep = path8.length > 1);
    -            return path8;
    -          });
    -          copyObject(object, getAllKeysIn(object), result2);
    -          if (isDeep) {
    -            result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
    -          }
    -          var length = paths.length;
    -          while (length--) {
    -            baseUnset(result2, paths[length]);
    -          }
    -          return result2;
    -        });
    -        function omitBy(object, predicate) {
    -          return pickBy2(object, negate(getIteratee(predicate)));
    -        }
    -        var pick2 = flatRest(function(object, paths) {
    -          return object == null ? {} : basePick(object, paths);
    -        });
    -        function pickBy2(object, predicate) {
    -          if (object == null) {
    -            return {};
    -          }
    -          var props = arrayMap(getAllKeysIn(object), function(prop) {
    -            return [prop];
    -          });
    -          predicate = getIteratee(predicate);
    -          return basePickBy(object, props, function(value, path8) {
    -            return predicate(value, path8[0]);
    -          });
    -        }
    -        function result(object, path8, defaultValue) {
    -          path8 = castPath(path8, object);
    -          var index = -1, length = path8.length;
    -          if (!length) {
    -            length = 1;
    -            object = undefined2;
    -          }
    -          while (++index < length) {
    -            var value = object == null ? undefined2 : object[toKey(path8[index])];
    -            if (value === undefined2) {
    -              index = length;
    -              value = defaultValue;
    -            }
    -            object = isFunction(value) ? value.call(object) : value;
    -          }
    -          return object;
    -        }
    -        function set3(object, path8, value) {
    -          return object == null ? object : baseSet(object, path8, value);
    -        }
    -        function setWith(object, path8, value, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          return object == null ? object : baseSet(object, path8, value, customizer);
    -        }
    -        var toPairs = createToPairs(keys);
    -        var toPairsIn = createToPairs(keysIn);
    -        function transform(object, iteratee2, accumulator) {
    -          var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object);
    -          iteratee2 = getIteratee(iteratee2, 4);
    -          if (accumulator == null) {
    -            var Ctor = object && object.constructor;
    -            if (isArrLike) {
    -              accumulator = isArr ? new Ctor() : [];
    -            } else if (isObject3(object)) {
    -              accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
    -            } else {
    -              accumulator = {};
    -            }
    -          }
    -          (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {
    -            return iteratee2(accumulator, value, index, object2);
    -          });
    -          return accumulator;
    -        }
    -        function unset(object, path8) {
    -          return object == null ? true : baseUnset(object, path8);
    -        }
    -        function update(object, path8, updater) {
    -          return object == null ? object : baseUpdate(object, path8, castFunction(updater));
    -        }
    -        function updateWith(object, path8, updater, customizer) {
    -          customizer = typeof customizer == "function" ? customizer : undefined2;
    -          return object == null ? object : baseUpdate(object, path8, castFunction(updater), customizer);
    -        }
    -        function values2(object) {
    -          return object == null ? [] : baseValues(object, keys(object));
    -        }
    -        function valuesIn(object) {
    -          return object == null ? [] : baseValues(object, keysIn(object));
    -        }
    -        function clamp(number, lower, upper) {
    -          if (upper === undefined2) {
    -            upper = lower;
    -            lower = undefined2;
    -          }
    -          if (upper !== undefined2) {
    -            upper = toNumber(upper);
    -            upper = upper === upper ? upper : 0;
    -          }
    -          if (lower !== undefined2) {
    -            lower = toNumber(lower);
    -            lower = lower === lower ? lower : 0;
    -          }
    -          return baseClamp(toNumber(number), lower, upper);
    -        }
    -        function inRange(number, start, end) {
    -          start = toFinite(start);
    -          if (end === undefined2) {
    -            end = start;
    -            start = 0;
    -          } else {
    -            end = toFinite(end);
    -          }
    -          number = toNumber(number);
    -          return baseInRange(number, start, end);
    -        }
    -        function random(lower, upper, floating) {
    -          if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) {
    -            upper = floating = undefined2;
    -          }
    -          if (floating === undefined2) {
    -            if (typeof upper == "boolean") {
    -              floating = upper;
    -              upper = undefined2;
    -            } else if (typeof lower == "boolean") {
    -              floating = lower;
    -              lower = undefined2;
    -            }
    -          }
    -          if (lower === undefined2 && upper === undefined2) {
    -            lower = 0;
    -            upper = 1;
    -          } else {
    -            lower = toFinite(lower);
    -            if (upper === undefined2) {
    -              upper = lower;
    -              lower = 0;
    -            } else {
    -              upper = toFinite(upper);
    -            }
    -          }
    -          if (lower > upper) {
    -            var temp = lower;
    -            lower = upper;
    -            upper = temp;
    -          }
    -          if (floating || lower % 1 || upper % 1) {
    -            var rand = nativeRandom();
    -            return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper);
    -          }
    -          return baseRandom(lower, upper);
    -        }
    -        var camelCase = createCompounder(function(result2, word, index) {
    -          word = word.toLowerCase();
    -          return result2 + (index ? capitalize(word) : word);
    -        });
    -        function capitalize(string2) {
    -          return upperFirst(toString2(string2).toLowerCase());
    -        }
    -        function deburr2(string2) {
    -          string2 = toString2(string2);
    -          return string2 && string2.replace(reLatin, deburrLetter).replace(reComboMark, "");
    -        }
    -        function endsWith(string2, target, position) {
    -          string2 = toString2(string2);
    -          target = baseToString(target);
    -          var length = string2.length;
    -          position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);
    -          var end = position;
    -          position -= target.length;
    -          return position >= 0 && string2.slice(position, end) == target;
    -        }
    -        function escape2(string2) {
    -          string2 = toString2(string2);
    -          return string2 && reHasUnescapedHtml.test(string2) ? string2.replace(reUnescapedHtml, escapeHtmlChar) : string2;
    -        }
    -        function escapeRegExp6(string2) {
    -          string2 = toString2(string2);
    -          return string2 && reHasRegExpChar.test(string2) ? string2.replace(reRegExpChar, "\\$&") : string2;
    -        }
    -        var kebabCase = createCompounder(function(result2, word, index) {
    -          return result2 + (index ? "-" : "") + word.toLowerCase();
    -        });
    -        var lowerCase = createCompounder(function(result2, word, index) {
    -          return result2 + (index ? " " : "") + word.toLowerCase();
    -        });
    -        var lowerFirst = createCaseFirst("toLowerCase");
    -        function pad(string2, length, chars) {
    -          string2 = toString2(string2);
    -          length = toInteger(length);
    -          var strLength = length ? stringSize(string2) : 0;
    -          if (!length || strLength >= length) {
    -            return string2;
    -          }
    -          var mid = (length - strLength) / 2;
    -          return createPadding(nativeFloor(mid), chars) + string2 + createPadding(nativeCeil(mid), chars);
    -        }
    -        function padEnd(string2, length, chars) {
    -          string2 = toString2(string2);
    -          length = toInteger(length);
    -          var strLength = length ? stringSize(string2) : 0;
    -          return length && strLength < length ? string2 + createPadding(length - strLength, chars) : string2;
    -        }
    -        function padStart2(string2, length, chars) {
    -          string2 = toString2(string2);
    -          length = toInteger(length);
    -          var strLength = length ? stringSize(string2) : 0;
    -          return length && strLength < length ? createPadding(length - strLength, chars) + string2 : string2;
    -        }
    -        function parseInt2(string2, radix, guard) {
    -          if (guard || radix == null) {
    -            radix = 0;
    -          } else if (radix) {
    -            radix = +radix;
    -          }
    -          return nativeParseInt(toString2(string2).replace(reTrimStart, ""), radix || 0);
    -        }
    -        function repeat3(string2, n, guard) {
    -          if (guard ? isIterateeCall(string2, n, guard) : n === undefined2) {
    -            n = 1;
    -          } else {
    -            n = toInteger(n);
    -          }
    -          return baseRepeat(toString2(string2), n);
    -        }
    -        function replace() {
    -          var args = arguments, string2 = toString2(args[0]);
    -          return args.length < 3 ? string2 : string2.replace(args[1], args[2]);
    -        }
    -        var snakeCase = createCompounder(function(result2, word, index) {
    -          return result2 + (index ? "_" : "") + word.toLowerCase();
    -        });
    -        function split(string2, separator2, limit) {
    -          if (limit && typeof limit != "number" && isIterateeCall(string2, separator2, limit)) {
    -            separator2 = limit = undefined2;
    -          }
    -          limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;
    -          if (!limit) {
    -            return [];
    -          }
    -          string2 = toString2(string2);
    -          if (string2 && (typeof separator2 == "string" || separator2 != null && !isRegExp(separator2))) {
    -            separator2 = baseToString(separator2);
    -            if (!separator2 && hasUnicode(string2)) {
    -              return castSlice(stringToArray(string2), 0, limit);
    -            }
    -          }
    -          return string2.split(separator2, limit);
    -        }
    -        var startCase = createCompounder(function(result2, word, index) {
    -          return result2 + (index ? " " : "") + upperFirst(word);
    -        });
    -        function startsWith(string2, target, position) {
    -          string2 = toString2(string2);
    -          position = position == null ? 0 : baseClamp(toInteger(position), 0, string2.length);
    -          target = baseToString(target);
    -          return string2.slice(position, position + target.length) == target;
    -        }
    -        function template(string2, options2, guard) {
    -          var settings = lodash.templateSettings;
    -          if (guard && isIterateeCall(string2, options2, guard)) {
    -            options2 = undefined2;
    -          }
    -          string2 = toString2(string2);
    -          options2 = assignInWith({}, options2, settings, customDefaultsAssignIn);
    -          var imports = assignInWith({}, options2.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
    -          var isEscaping, isEvaluating, index = 0, interpolate = options2.interpolate || reNoMatch, source = "__p += '";
    -          var reDelimiters = RegExp2(
    -            (options2.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options2.evaluate || reNoMatch).source + "|$",
    -            "g"
    -          );
    -          var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options2, "sourceURL") ? (options2.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n";
    -          string2.replace(reDelimiters, function(match2, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
    -            interpolateValue || (interpolateValue = esTemplateValue);
    -            source += string2.slice(index, offset).replace(reUnescapedString, escapeStringChar);
    -            if (escapeValue) {
    -              isEscaping = true;
    -              source += "' +\n__e(" + escapeValue + ") +\n'";
    -            }
    -            if (evaluateValue) {
    -              isEvaluating = true;
    -              source += "';\n" + evaluateValue + ";\n__p += '";
    -            }
    -            if (interpolateValue) {
    -              source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
    -            }
    -            index = offset + match2.length;
    -            return match2;
    -          });
    -          source += "';\n";
    -          var variable = hasOwnProperty.call(options2, "variable") && options2.variable;
    -          if (!variable) {
    -            source = "with (obj) {\n" + source + "\n}\n";
    -          } else if (reForbiddenIdentifierChars.test(variable)) {
    -            throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);
    -          }
    -          source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;");
    -          source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}";
    -          var result2 = attempt(function() {
    -            return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues);
    -          });
    -          result2.source = source;
    -          if (isError(result2)) {
    -            throw result2;
    -          }
    -          return result2;
    -        }
    -        function toLower(value) {
    -          return toString2(value).toLowerCase();
    -        }
    -        function toUpper(value) {
    -          return toString2(value).toUpperCase();
    -        }
    -        function trim(string2, chars, guard) {
    -          string2 = toString2(string2);
    -          if (string2 && (guard || chars === undefined2)) {
    -            return baseTrim(string2);
    -          }
    -          if (!string2 || !(chars = baseToString(chars))) {
    -            return string2;
    -          }
    -          var strSymbols = stringToArray(string2), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;
    -          return castSlice(strSymbols, start, end).join("");
    -        }
    -        function trimEnd(string2, chars, guard) {
    -          string2 = toString2(string2);
    -          if (string2 && (guard || chars === undefined2)) {
    -            return string2.slice(0, trimmedEndIndex(string2) + 1);
    -          }
    -          if (!string2 || !(chars = baseToString(chars))) {
    -            return string2;
    -          }
    -          var strSymbols = stringToArray(string2), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
    -          return castSlice(strSymbols, 0, end).join("");
    -        }
    -        function trimStart(string2, chars, guard) {
    -          string2 = toString2(string2);
    -          if (string2 && (guard || chars === undefined2)) {
    -            return string2.replace(reTrimStart, "");
    -          }
    -          if (!string2 || !(chars = baseToString(chars))) {
    -            return string2;
    -          }
    -          var strSymbols = stringToArray(string2), start = charsStartIndex(strSymbols, stringToArray(chars));
    -          return castSlice(strSymbols, start).join("");
    -        }
    -        function truncate(string2, options2) {
    -          var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
    -          if (isObject3(options2)) {
    -            var separator2 = "separator" in options2 ? options2.separator : separator2;
    -            length = "length" in options2 ? toInteger(options2.length) : length;
    -            omission = "omission" in options2 ? baseToString(options2.omission) : omission;
    -          }
    -          string2 = toString2(string2);
    -          var strLength = string2.length;
    -          if (hasUnicode(string2)) {
    -            var strSymbols = stringToArray(string2);
    -            strLength = strSymbols.length;
    -          }
    -          if (length >= strLength) {
    -            return string2;
    -          }
    -          var end = length - stringSize(omission);
    -          if (end < 1) {
    -            return omission;
    -          }
    -          var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string2.slice(0, end);
    -          if (separator2 === undefined2) {
    -            return result2 + omission;
    -          }
    -          if (strSymbols) {
    -            end += result2.length - end;
    -          }
    -          if (isRegExp(separator2)) {
    -            if (string2.slice(end).search(separator2)) {
    -              var match2, substring = result2;
    -              if (!separator2.global) {
    -                separator2 = RegExp2(separator2.source, toString2(reFlags.exec(separator2)) + "g");
    -              }
    -              separator2.lastIndex = 0;
    -              while (match2 = separator2.exec(substring)) {
    -                var newEnd = match2.index;
    -              }
    -              result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd);
    -            }
    -          } else if (string2.indexOf(baseToString(separator2), end) != end) {
    -            var index = result2.lastIndexOf(separator2);
    -            if (index > -1) {
    -              result2 = result2.slice(0, index);
    -            }
    -          }
    -          return result2 + omission;
    -        }
    -        function unescape3(string2) {
    -          string2 = toString2(string2);
    -          return string2 && reHasEscapedHtml.test(string2) ? string2.replace(reEscapedHtml, unescapeHtmlChar) : string2;
    -        }
    -        var upperCase = createCompounder(function(result2, word, index) {
    -          return result2 + (index ? " " : "") + word.toUpperCase();
    -        });
    -        var upperFirst = createCaseFirst("toUpperCase");
    -        function words(string2, pattern, guard) {
    -          string2 = toString2(string2);
    -          pattern = guard ? undefined2 : pattern;
    -          if (pattern === undefined2) {
    -            return hasUnicodeWord(string2) ? unicodeWords(string2) : asciiWords(string2);
    -          }
    -          return string2.match(pattern) || [];
    -        }
    -        var attempt = baseRest(function(func, args) {
    -          try {
    -            return apply(func, undefined2, args);
    -          } catch (e) {
    -            return isError(e) ? e : new Error2(e);
    -          }
    -        });
    -        var bindAll = flatRest(function(object, methodNames) {
    -          arrayEach(methodNames, function(key) {
    -            key = toKey(key);
    -            baseAssignValue(object, key, bind(object[key], object));
    -          });
    -          return object;
    -        });
    -        function cond(pairs2) {
    -          var length = pairs2 == null ? 0 : pairs2.length, toIteratee = getIteratee();
    -          pairs2 = !length ? [] : arrayMap(pairs2, function(pair) {
    -            if (typeof pair[1] != "function") {
    -              throw new TypeError2(FUNC_ERROR_TEXT);
    -            }
    -            return [toIteratee(pair[0]), pair[1]];
    -          });
    -          return baseRest(function(args) {
    -            var index = -1;
    -            while (++index < length) {
    -              var pair = pairs2[index];
    -              if (apply(pair[0], this, args)) {
    -                return apply(pair[1], this, args);
    -              }
    -            }
    -          });
    -        }
    -        function conforms(source) {
    -          return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
    -        }
    -        function constant(value) {
    -          return function() {
    -            return value;
    -          };
    -        }
    -        function defaultTo(value, defaultValue) {
    -          return value == null || value !== value ? defaultValue : value;
    -        }
    -        var flow2 = createFlow();
    -        var flowRight = createFlow(true);
    -        function identity3(value) {
    -          return value;
    -        }
    -        function iteratee(func) {
    -          return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG));
    -        }
    -        function matches(source) {
    -          return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
    -        }
    -        function matchesProperty(path8, srcValue) {
    -          return baseMatchesProperty(path8, baseClone(srcValue, CLONE_DEEP_FLAG));
    -        }
    -        var method = baseRest(function(path8, args) {
    -          return function(object) {
    -            return baseInvoke(object, path8, args);
    -          };
    -        });
    -        var methodOf = baseRest(function(object, args) {
    -          return function(path8) {
    -            return baseInvoke(object, path8, args);
    -          };
    -        });
    -        function mixin(object, source, options2) {
    -          var props = keys(source), methodNames = baseFunctions(source, props);
    -          if (options2 == null && !(isObject3(source) && (methodNames.length || !props.length))) {
    -            options2 = source;
    -            source = object;
    -            object = this;
    -            methodNames = baseFunctions(source, keys(source));
    -          }
    -          var chain2 = !(isObject3(options2) && "chain" in options2) || !!options2.chain, isFunc = isFunction(object);
    -          arrayEach(methodNames, function(methodName) {
    -            var func = source[methodName];
    -            object[methodName] = func;
    -            if (isFunc) {
    -              object.prototype[methodName] = function() {
    -                var chainAll = this.__chain__;
    -                if (chain2 || chainAll) {
    -                  var result2 = object(this.__wrapped__), actions2 = result2.__actions__ = copyArray(this.__actions__);
    -                  actions2.push({ "func": func, "args": arguments, "thisArg": object });
    -                  result2.__chain__ = chainAll;
    -                  return result2;
    -                }
    -                return func.apply(object, arrayPush([this.value()], arguments));
    -              };
    -            }
    -          });
    -          return object;
    -        }
    -        function noConflict() {
    -          if (root._ === this) {
    -            root._ = oldDash;
    -          }
    -          return this;
    -        }
    -        function noop() {
    -        }
    -        function nthArg(n) {
    -          n = toInteger(n);
    -          return baseRest(function(args) {
    -            return baseNth(args, n);
    -          });
    -        }
    -        var over = createOver(arrayMap);
    -        var overEvery = createOver(arrayEvery);
    -        var overSome = createOver(arraySome);
    -        function property(path8) {
    -          return isKey(path8) ? baseProperty(toKey(path8)) : basePropertyDeep(path8);
    -        }
    -        function propertyOf(object) {
    -          return function(path8) {
    -            return object == null ? undefined2 : baseGet(object, path8);
    -          };
    -        }
    -        var range4 = createRange();
    -        var rangeRight = createRange(true);
    -        function stubArray() {
    -          return [];
    -        }
    -        function stubFalse() {
    -          return false;
    -        }
    -        function stubObject() {
    -          return {};
    -        }
    -        function stubString() {
    -          return "";
    -        }
    -        function stubTrue() {
    -          return true;
    -        }
    -        function times(n, iteratee2) {
    -          n = toInteger(n);
    -          if (n < 1 || n > MAX_SAFE_INTEGER) {
    -            return [];
    -          }
    -          var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);
    -          iteratee2 = getIteratee(iteratee2);
    -          n -= MAX_ARRAY_LENGTH;
    -          var result2 = baseTimes(length, iteratee2);
    -          while (++index < n) {
    -            iteratee2(index);
    -          }
    -          return result2;
    -        }
    -        function toPath(value) {
    -          if (isArray(value)) {
    -            return arrayMap(value, toKey);
    -          }
    -          return isSymbol(value) ? [value] : copyArray(stringToPath(toString2(value)));
    -        }
    -        function uniqueId(prefix) {
    -          var id = ++idCounter;
    -          return toString2(prefix) + id;
    -        }
    -        var add = createMathOperation(function(augend, addend) {
    -          return augend + addend;
    -        }, 0);
    -        var ceil = createRound("ceil");
    -        var divide = createMathOperation(function(dividend, divisor) {
    -          return dividend / divisor;
    -        }, 1);
    -        var floor = createRound("floor");
    -        function max2(array) {
    -          return array && array.length ? baseExtremum(array, identity3, baseGt) : undefined2;
    -        }
    -        function maxBy2(array, iteratee2) {
    -          return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2;
    -        }
    -        function mean(array) {
    -          return baseMean(array, identity3);
    -        }
    -        function meanBy(array, iteratee2) {
    -          return baseMean(array, getIteratee(iteratee2, 2));
    -        }
    -        function min2(array) {
    -          return array && array.length ? baseExtremum(array, identity3, baseLt) : undefined2;
    -        }
    -        function minBy(array, iteratee2) {
    -          return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2;
    -        }
    -        var multiply = createMathOperation(function(multiplier, multiplicand) {
    -          return multiplier * multiplicand;
    -        }, 1);
    -        var round = createRound("round");
    -        var subtract = createMathOperation(function(minuend, subtrahend) {
    -          return minuend - subtrahend;
    -        }, 0);
    -        function sum2(array) {
    -          return array && array.length ? baseSum(array, identity3) : 0;
    -        }
    -        function sumBy2(array, iteratee2) {
    -          return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;
    -        }
    -        lodash.after = after;
    -        lodash.ary = ary;
    -        lodash.assign = assign;
    -        lodash.assignIn = assignIn;
    -        lodash.assignInWith = assignInWith;
    -        lodash.assignWith = assignWith;
    -        lodash.at = at;
    -        lodash.before = before;
    -        lodash.bind = bind;
    -        lodash.bindAll = bindAll;
    -        lodash.bindKey = bindKey;
    -        lodash.castArray = castArray;
    -        lodash.chain = chain;
    -        lodash.chunk = chunk;
    -        lodash.compact = compact;
    -        lodash.concat = concat3;
    -        lodash.cond = cond;
    -        lodash.conforms = conforms;
    -        lodash.constant = constant;
    -        lodash.countBy = countBy;
    -        lodash.create = create;
    -        lodash.curry = curry;
    -        lodash.curryRight = curryRight;
    -        lodash.debounce = debounce;
    -        lodash.defaults = defaults2;
    -        lodash.defaultsDeep = defaultsDeep;
    -        lodash.defer = defer2;
    -        lodash.delay = delay;
    -        lodash.difference = difference;
    -        lodash.differenceBy = differenceBy;
    -        lodash.differenceWith = differenceWith;
    -        lodash.drop = drop;
    -        lodash.dropRight = dropRight;
    -        lodash.dropRightWhile = dropRightWhile;
    -        lodash.dropWhile = dropWhile;
    -        lodash.fill = fill;
    -        lodash.filter = filter2;
    -        lodash.flatMap = flatMap;
    -        lodash.flatMapDeep = flatMapDeep;
    -        lodash.flatMapDepth = flatMapDepth;
    -        lodash.flatten = flatten13;
    -        lodash.flattenDeep = flattenDeep;
    -        lodash.flattenDepth = flattenDepth;
    -        lodash.flip = flip;
    -        lodash.flow = flow2;
    -        lodash.flowRight = flowRight;
    -        lodash.fromPairs = fromPairs;
    -        lodash.functions = functions;
    -        lodash.functionsIn = functionsIn;
    -        lodash.groupBy = groupBy5;
    -        lodash.initial = initial;
    -        lodash.intersection = intersection;
    -        lodash.intersectionBy = intersectionBy;
    -        lodash.intersectionWith = intersectionWith;
    -        lodash.invert = invert;
    -        lodash.invertBy = invertBy;
    -        lodash.invokeMap = invokeMap;
    -        lodash.iteratee = iteratee;
    -        lodash.keyBy = keyBy;
    -        lodash.keys = keys;
    -        lodash.keysIn = keysIn;
    -        lodash.map = map4;
    -        lodash.mapKeys = mapKeys;
    -        lodash.mapValues = mapValues2;
    -        lodash.matches = matches;
    -        lodash.matchesProperty = matchesProperty;
    -        lodash.memoize = memoize2;
    -        lodash.merge = merge4;
    -        lodash.mergeWith = mergeWith;
    -        lodash.method = method;
    -        lodash.methodOf = methodOf;
    -        lodash.mixin = mixin;
    -        lodash.negate = negate;
    -        lodash.nthArg = nthArg;
    -        lodash.omit = omit;
    -        lodash.omitBy = omitBy;
    -        lodash.once = once;
    -        lodash.orderBy = orderBy;
    -        lodash.over = over;
    -        lodash.overArgs = overArgs;
    -        lodash.overEvery = overEvery;
    -        lodash.overSome = overSome;
    -        lodash.partial = partial;
    -        lodash.partialRight = partialRight;
    -        lodash.partition = partition;
    -        lodash.pick = pick2;
    -        lodash.pickBy = pickBy2;
    -        lodash.property = property;
    -        lodash.propertyOf = propertyOf;
    -        lodash.pull = pull8;
    -        lodash.pullAll = pullAll;
    -        lodash.pullAllBy = pullAllBy;
    -        lodash.pullAllWith = pullAllWith;
    -        lodash.pullAt = pullAt;
    -        lodash.range = range4;
    -        lodash.rangeRight = rangeRight;
    -        lodash.rearg = rearg;
    -        lodash.reject = reject;
    -        lodash.remove = remove2;
    -        lodash.rest = rest;
    -        lodash.reverse = reverse;
    -        lodash.sampleSize = sampleSize;
    -        lodash.set = set3;
    -        lodash.setWith = setWith;
    -        lodash.shuffle = shuffle2;
    -        lodash.slice = slice;
    -        lodash.sortBy = sortBy3;
    -        lodash.sortedUniq = sortedUniq;
    -        lodash.sortedUniqBy = sortedUniqBy;
    -        lodash.split = split;
    -        lodash.spread = spread;
    -        lodash.tail = tail;
    -        lodash.take = take;
    -        lodash.takeRight = takeRight;
    -        lodash.takeRightWhile = takeRightWhile;
    -        lodash.takeWhile = takeWhile;
    -        lodash.tap = tap;
    -        lodash.throttle = throttle;
    -        lodash.thru = thru;
    -        lodash.toArray = toArray2;
    -        lodash.toPairs = toPairs;
    -        lodash.toPairsIn = toPairsIn;
    -        lodash.toPath = toPath;
    -        lodash.toPlainObject = toPlainObject;
    -        lodash.transform = transform;
    -        lodash.unary = unary;
    -        lodash.union = union2;
    -        lodash.unionBy = unionBy;
    -        lodash.unionWith = unionWith;
    -        lodash.uniq = uniq5;
    -        lodash.uniqBy = uniqBy;
    -        lodash.uniqWith = uniqWith3;
    -        lodash.unset = unset;
    -        lodash.unzip = unzip;
    -        lodash.unzipWith = unzipWith;
    -        lodash.update = update;
    -        lodash.updateWith = updateWith;
    -        lodash.values = values2;
    -        lodash.valuesIn = valuesIn;
    -        lodash.without = without;
    -        lodash.words = words;
    -        lodash.wrap = wrap;
    -        lodash.xor = xor;
    -        lodash.xorBy = xorBy;
    -        lodash.xorWith = xorWith;
    -        lodash.zip = zip9;
    -        lodash.zipObject = zipObject;
    -        lodash.zipObjectDeep = zipObjectDeep;
    -        lodash.zipWith = zipWith;
    -        lodash.entries = toPairs;
    -        lodash.entriesIn = toPairsIn;
    -        lodash.extend = assignIn;
    -        lodash.extendWith = assignInWith;
    -        mixin(lodash, lodash);
    -        lodash.add = add;
    -        lodash.attempt = attempt;
    -        lodash.camelCase = camelCase;
    -        lodash.capitalize = capitalize;
    -        lodash.ceil = ceil;
    -        lodash.clamp = clamp;
    -        lodash.clone = clone;
    -        lodash.cloneDeep = cloneDeep2;
    -        lodash.cloneDeepWith = cloneDeepWith;
    -        lodash.cloneWith = cloneWith;
    -        lodash.conformsTo = conformsTo;
    -        lodash.deburr = deburr2;
    -        lodash.defaultTo = defaultTo;
    -        lodash.divide = divide;
    -        lodash.endsWith = endsWith;
    -        lodash.eq = eq;
    -        lodash.escape = escape2;
    -        lodash.escapeRegExp = escapeRegExp6;
    -        lodash.every = every;
    -        lodash.find = find;
    -        lodash.findIndex = findIndex;
    -        lodash.findKey = findKey;
    -        lodash.findLast = findLast2;
    -        lodash.findLastIndex = findLastIndex3;
    -        lodash.findLastKey = findLastKey;
    -        lodash.floor = floor;
    -        lodash.forEach = forEach;
    -        lodash.forEachRight = forEachRight;
    -        lodash.forIn = forIn;
    -        lodash.forInRight = forInRight;
    -        lodash.forOwn = forOwn;
    -        lodash.forOwnRight = forOwnRight;
    -        lodash.get = get3;
    -        lodash.gt = gt;
    -        lodash.gte = gte;
    -        lodash.has = has2;
    -        lodash.hasIn = hasIn;
    -        lodash.head = head;
    -        lodash.identity = identity3;
    -        lodash.includes = includes;
    -        lodash.indexOf = indexOf;
    -        lodash.inRange = inRange;
    -        lodash.invoke = invoke;
    -        lodash.isArguments = isArguments;
    -        lodash.isArray = isArray;
    -        lodash.isArrayBuffer = isArrayBuffer;
    -        lodash.isArrayLike = isArrayLike;
    -        lodash.isArrayLikeObject = isArrayLikeObject;
    -        lodash.isBoolean = isBoolean2;
    -        lodash.isBuffer = isBuffer;
    -        lodash.isDate = isDate;
    -        lodash.isElement = isElement;
    -        lodash.isEmpty = isEmpty;
    -        lodash.isEqual = isEqual5;
    -        lodash.isEqualWith = isEqualWith;
    -        lodash.isError = isError;
    -        lodash.isFinite = isFinite2;
    -        lodash.isFunction = isFunction;
    -        lodash.isInteger = isInteger2;
    -        lodash.isLength = isLength;
    -        lodash.isMap = isMap2;
    -        lodash.isMatch = isMatch;
    -        lodash.isMatchWith = isMatchWith;
    -        lodash.isNaN = isNaN2;
    -        lodash.isNative = isNative;
    -        lodash.isNil = isNil;
    -        lodash.isNull = isNull2;
    -        lodash.isNumber = isNumber;
    -        lodash.isObject = isObject3;
    -        lodash.isObjectLike = isObjectLike;
    -        lodash.isPlainObject = isPlainObject3;
    -        lodash.isRegExp = isRegExp;
    -        lodash.isSafeInteger = isSafeInteger;
    -        lodash.isSet = isSet2;
    -        lodash.isString = isString3;
    -        lodash.isSymbol = isSymbol;
    -        lodash.isTypedArray = isTypedArray;
    -        lodash.isUndefined = isUndefined;
    -        lodash.isWeakMap = isWeakMap;
    -        lodash.isWeakSet = isWeakSet;
    -        lodash.join = join9;
    -        lodash.kebabCase = kebabCase;
    -        lodash.last = last2;
    -        lodash.lastIndexOf = lastIndexOf;
    -        lodash.lowerCase = lowerCase;
    -        lodash.lowerFirst = lowerFirst;
    -        lodash.lt = lt;
    -        lodash.lte = lte;
    -        lodash.max = max2;
    -        lodash.maxBy = maxBy2;
    -        lodash.mean = mean;
    -        lodash.meanBy = meanBy;
    -        lodash.min = min2;
    -        lodash.minBy = minBy;
    -        lodash.stubArray = stubArray;
    -        lodash.stubFalse = stubFalse;
    -        lodash.stubObject = stubObject;
    -        lodash.stubString = stubString;
    -        lodash.stubTrue = stubTrue;
    -        lodash.multiply = multiply;
    -        lodash.nth = nth;
    -        lodash.noConflict = noConflict;
    -        lodash.noop = noop;
    -        lodash.now = now;
    -        lodash.pad = pad;
    -        lodash.padEnd = padEnd;
    -        lodash.padStart = padStart2;
    -        lodash.parseInt = parseInt2;
    -        lodash.random = random;
    -        lodash.reduce = reduce;
    -        lodash.reduceRight = reduceRight;
    -        lodash.repeat = repeat3;
    -        lodash.replace = replace;
    -        lodash.result = result;
    -        lodash.round = round;
    -        lodash.runInContext = runInContext2;
    -        lodash.sample = sample;
    -        lodash.size = size;
    -        lodash.snakeCase = snakeCase;
    -        lodash.some = some;
    -        lodash.sortedIndex = sortedIndex;
    -        lodash.sortedIndexBy = sortedIndexBy2;
    -        lodash.sortedIndexOf = sortedIndexOf;
    -        lodash.sortedLastIndex = sortedLastIndex;
    -        lodash.sortedLastIndexBy = sortedLastIndexBy;
    -        lodash.sortedLastIndexOf = sortedLastIndexOf;
    -        lodash.startCase = startCase;
    -        lodash.startsWith = startsWith;
    -        lodash.subtract = subtract;
    -        lodash.sum = sum2;
    -        lodash.sumBy = sumBy2;
    -        lodash.template = template;
    -        lodash.times = times;
    -        lodash.toFinite = toFinite;
    -        lodash.toInteger = toInteger;
    -        lodash.toLength = toLength;
    -        lodash.toLower = toLower;
    -        lodash.toNumber = toNumber;
    -        lodash.toSafeInteger = toSafeInteger;
    -        lodash.toString = toString2;
    -        lodash.toUpper = toUpper;
    -        lodash.trim = trim;
    -        lodash.trimEnd = trimEnd;
    -        lodash.trimStart = trimStart;
    -        lodash.truncate = truncate;
    -        lodash.unescape = unescape3;
    -        lodash.uniqueId = uniqueId;
    -        lodash.upperCase = upperCase;
    -        lodash.upperFirst = upperFirst;
    -        lodash.each = forEach;
    -        lodash.eachRight = forEachRight;
    -        lodash.first = head;
    -        mixin(lodash, function() {
    -          var source = {};
    -          baseForOwn(lodash, function(func, methodName) {
    -            if (!hasOwnProperty.call(lodash.prototype, methodName)) {
    -              source[methodName] = func;
    -            }
    -          });
    -          return source;
    -        }(), { "chain": false });
    -        lodash.VERSION = VERSION;
    -        arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
    -          lodash[methodName].placeholder = lodash;
    -        });
    -        arrayEach(["drop", "take"], function(methodName, index) {
    -          LazyWrapper.prototype[methodName] = function(n) {
    -            n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);
    -            var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();
    -            if (result2.__filtered__) {
    -              result2.__takeCount__ = nativeMin(n, result2.__takeCount__);
    -            } else {
    -              result2.__views__.push({
    -                "size": nativeMin(n, MAX_ARRAY_LENGTH),
    -                "type": methodName + (result2.__dir__ < 0 ? "Right" : "")
    -              });
    -            }
    -            return result2;
    -          };
    -          LazyWrapper.prototype[methodName + "Right"] = function(n) {
    -            return this.reverse()[methodName](n).reverse();
    -          };
    -        });
    -        arrayEach(["filter", "map", "takeWhile"], function(methodName, index) {
    -          var type2 = index + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG;
    -          LazyWrapper.prototype[methodName] = function(iteratee2) {
    -            var result2 = this.clone();
    -            result2.__iteratees__.push({
    -              "iteratee": getIteratee(iteratee2, 3),
    -              "type": type2
    -            });
    -            result2.__filtered__ = result2.__filtered__ || isFilter;
    -            return result2;
    -          };
    -        });
    -        arrayEach(["head", "last"], function(methodName, index) {
    -          var takeName = "take" + (index ? "Right" : "");
    -          LazyWrapper.prototype[methodName] = function() {
    -            return this[takeName](1).value()[0];
    -          };
    -        });
    -        arrayEach(["initial", "tail"], function(methodName, index) {
    -          var dropName = "drop" + (index ? "" : "Right");
    -          LazyWrapper.prototype[methodName] = function() {
    -            return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
    -          };
    -        });
    -        LazyWrapper.prototype.compact = function() {
    -          return this.filter(identity3);
    -        };
    -        LazyWrapper.prototype.find = function(predicate) {
    -          return this.filter(predicate).head();
    -        };
    -        LazyWrapper.prototype.findLast = function(predicate) {
    -          return this.reverse().find(predicate);
    -        };
    -        LazyWrapper.prototype.invokeMap = baseRest(function(path8, args) {
    -          if (typeof path8 == "function") {
    -            return new LazyWrapper(this);
    -          }
    -          return this.map(function(value) {
    -            return baseInvoke(value, path8, args);
    -          });
    -        });
    -        LazyWrapper.prototype.reject = function(predicate) {
    -          return this.filter(negate(getIteratee(predicate)));
    -        };
    -        LazyWrapper.prototype.slice = function(start, end) {
    -          start = toInteger(start);
    -          var result2 = this;
    -          if (result2.__filtered__ && (start > 0 || end < 0)) {
    -            return new LazyWrapper(result2);
    -          }
    -          if (start < 0) {
    -            result2 = result2.takeRight(-start);
    -          } else if (start) {
    -            result2 = result2.drop(start);
    -          }
    -          if (end !== undefined2) {
    -            end = toInteger(end);
    -            result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);
    -          }
    -          return result2;
    -        };
    -        LazyWrapper.prototype.takeRightWhile = function(predicate) {
    -          return this.reverse().takeWhile(predicate).reverse();
    -        };
    -        LazyWrapper.prototype.toArray = function() {
    -          return this.take(MAX_ARRAY_LENGTH);
    -        };
    -        baseForOwn(LazyWrapper.prototype, function(func, methodName) {
    -          var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);
    -          if (!lodashFunc) {
    -            return;
    -          }
    -          lodash.prototype[methodName] = function() {
    -            var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);
    -            var interceptor = function(value2) {
    -              var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));
    -              return isTaker && chainAll ? result3[0] : result3;
    -            };
    -            if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) {
    -              isLazy = useLazy = false;
    -            }
    -            var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;
    -            if (!retUnwrapped && useLazy) {
    -              value = onlyLazy ? value : new LazyWrapper(this);
    -              var result2 = func.apply(value, args);
    -              result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 });
    -              return new LodashWrapper(result2, chainAll);
    -            }
    -            if (isUnwrapped && onlyLazy) {
    -              return func.apply(this, args);
    -            }
    -            result2 = this.thru(interceptor);
    -            return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;
    -          };
    -        });
    -        arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) {
    -          var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName);
    -          lodash.prototype[methodName] = function() {
    -            var args = arguments;
    -            if (retUnwrapped && !this.__chain__) {
    -              var value = this.value();
    -              return func.apply(isArray(value) ? value : [], args);
    -            }
    -            return this[chainName](function(value2) {
    -              return func.apply(isArray(value2) ? value2 : [], args);
    -            });
    -          };
    -        });
    -        baseForOwn(LazyWrapper.prototype, function(func, methodName) {
    -          var lodashFunc = lodash[methodName];
    -          if (lodashFunc) {
    -            var key = lodashFunc.name + "";
    -            if (!hasOwnProperty.call(realNames, key)) {
    -              realNames[key] = [];
    -            }
    -            realNames[key].push({ "name": methodName, "func": lodashFunc });
    -          }
    -        });
    -        realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{
    -          "name": "wrapper",
    -          "func": undefined2
    -        }];
    -        LazyWrapper.prototype.clone = lazyClone;
    -        LazyWrapper.prototype.reverse = lazyReverse;
    -        LazyWrapper.prototype.value = lazyValue;
    -        lodash.prototype.at = wrapperAt;
    -        lodash.prototype.chain = wrapperChain;
    -        lodash.prototype.commit = wrapperCommit;
    -        lodash.prototype.next = wrapperNext;
    -        lodash.prototype.plant = wrapperPlant;
    -        lodash.prototype.reverse = wrapperReverse;
    -        lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
    -        lodash.prototype.first = lodash.prototype.head;
    -        if (symIterator) {
    -          lodash.prototype[symIterator] = wrapperToIterator;
    -        }
    -        return lodash;
    -      };
    -      var _ = runInContext();
    -      if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
    -        root._ = _;
    -        define(function() {
    -          return _;
    -        });
    -      } else if (freeModule) {
    -        (freeModule.exports = _)._ = _;
    -        freeExports._ = _;
    -      } else {
    -        root._ = _;
    -      }
    -    }).call(exports2);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/immutability-helper@3.1.1/node_modules/immutability-helper/index.js
    -var require_immutability_helper = __commonJS({
    -  "../../node_modules/.pnpm/immutability-helper@3.1.1/node_modules/immutability-helper/index.js"(exports2, module2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    function stringifiable(obj) {
    -      return typeof obj === "object" && !("toString" in obj) ? Object.prototype.toString.call(obj).slice(8, -1) : obj;
    -    }
    -    var isProduction = typeof process === "object" && process.env.NODE_ENV === "production";
    -    function invariant5(condition, message) {
    -      if (!condition) {
    -        if (isProduction) {
    -          throw new Error("Invariant failed");
    -        }
    -        throw new Error(message());
    -      }
    -    }
    -    exports2.invariant = invariant5;
    -    var hasOwnProperty = Object.prototype.hasOwnProperty;
    -    var splice = Array.prototype.splice;
    -    var toString2 = Object.prototype.toString;
    -    function type2(obj) {
    -      return toString2.call(obj).slice(8, -1);
    -    }
    -    var assign = Object.assign || /* istanbul ignore next */
    -    function(target, source) {
    -      getAllKeys(source).forEach(function(key) {
    -        if (hasOwnProperty.call(source, key)) {
    -          target[key] = source[key];
    -        }
    -      });
    -      return target;
    -    };
    -    var getAllKeys = typeof Object.getOwnPropertySymbols === "function" ? function(obj) {
    -      return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj));
    -    } : function(obj) {
    -      return Object.keys(obj);
    -    };
    -    function copy(object) {
    -      return Array.isArray(object) ? assign(object.constructor(object.length), object) : type2(object) === "Map" ? new Map(object) : type2(object) === "Set" ? new Set(object) : object && typeof object === "object" ? assign(Object.create(Object.getPrototypeOf(object)), object) : object;
    -    }
    -    var Context = (
    -      /** @class */
    -      function() {
    -        function Context2() {
    -          this.commands = assign({}, defaultCommands);
    -          this.update = this.update.bind(this);
    -          this.update.extend = this.extend = this.extend.bind(this);
    -          this.update.isEquals = function(x, y) {
    -            return x === y;
    -          };
    -          this.update.newContext = function() {
    -            return new Context2().update;
    -          };
    -        }
    -        Object.defineProperty(Context2.prototype, "isEquals", {
    -          get: function() {
    -            return this.update.isEquals;
    -          },
    -          set: function(value) {
    -            this.update.isEquals = value;
    -          },
    -          enumerable: true,
    -          configurable: true
    -        });
    -        Context2.prototype.extend = function(directive, fn) {
    -          this.commands[directive] = fn;
    -        };
    -        Context2.prototype.update = function(object, $spec) {
    -          var _this = this;
    -          var spec = typeof $spec === "function" ? { $apply: $spec } : $spec;
    -          if (!(Array.isArray(object) && Array.isArray(spec))) {
    -            invariant5(!Array.isArray(spec), function() {
    -              return "update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value.";
    -            });
    -          }
    -          invariant5(typeof spec === "object" && spec !== null, function() {
    -            return "update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the " + ("following commands: " + Object.keys(_this.commands).join(", ") + ".");
    -          });
    -          var nextObject = object;
    -          getAllKeys(spec).forEach(function(key) {
    -            if (hasOwnProperty.call(_this.commands, key)) {
    -              var objectWasNextObject = object === nextObject;
    -              nextObject = _this.commands[key](spec[key], nextObject, spec, object);
    -              if (objectWasNextObject && _this.isEquals(nextObject, object)) {
    -                nextObject = object;
    -              }
    -            } else {
    -              var nextValueForKey = type2(object) === "Map" ? _this.update(object.get(key), spec[key]) : _this.update(object[key], spec[key]);
    -              var nextObjectValue = type2(nextObject) === "Map" ? nextObject.get(key) : nextObject[key];
    -              if (!_this.isEquals(nextValueForKey, nextObjectValue) || typeof nextValueForKey === "undefined" && !hasOwnProperty.call(object, key)) {
    -                if (nextObject === object) {
    -                  nextObject = copy(object);
    -                }
    -                if (type2(nextObject) === "Map") {
    -                  nextObject.set(key, nextValueForKey);
    -                } else {
    -                  nextObject[key] = nextValueForKey;
    -                }
    -              }
    -            }
    -          });
    -          return nextObject;
    -        };
    -        return Context2;
    -      }()
    -    );
    -    exports2.Context = Context;
    -    var defaultCommands = {
    -      $push: function(value, nextObject, spec) {
    -        invariantPushAndUnshift(nextObject, spec, "$push");
    -        return value.length ? nextObject.concat(value) : nextObject;
    -      },
    -      $unshift: function(value, nextObject, spec) {
    -        invariantPushAndUnshift(nextObject, spec, "$unshift");
    -        return value.length ? value.concat(nextObject) : nextObject;
    -      },
    -      $splice: function(value, nextObject, spec, originalObject) {
    -        invariantSplices(nextObject, spec);
    -        value.forEach(function(args) {
    -          invariantSplice(args);
    -          if (nextObject === originalObject && args.length) {
    -            nextObject = copy(originalObject);
    -          }
    -          splice.apply(nextObject, args);
    -        });
    -        return nextObject;
    -      },
    -      $set: function(value, _nextObject, spec) {
    -        invariantSet(spec);
    -        return value;
    -      },
    -      $toggle: function(targets, nextObject) {
    -        invariantSpecArray(targets, "$toggle");
    -        var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;
    -        targets.forEach(function(target) {
    -          nextObjectCopy[target] = !nextObject[target];
    -        });
    -        return nextObjectCopy;
    -      },
    -      $unset: function(value, nextObject, _spec, originalObject) {
    -        invariantSpecArray(value, "$unset");
    -        value.forEach(function(key) {
    -          if (Object.hasOwnProperty.call(nextObject, key)) {
    -            if (nextObject === originalObject) {
    -              nextObject = copy(originalObject);
    -            }
    -            delete nextObject[key];
    -          }
    -        });
    -        return nextObject;
    -      },
    -      $add: function(values2, nextObject, _spec, originalObject) {
    -        invariantMapOrSet(nextObject, "$add");
    -        invariantSpecArray(values2, "$add");
    -        if (type2(nextObject) === "Map") {
    -          values2.forEach(function(_a) {
    -            var key = _a[0], value = _a[1];
    -            if (nextObject === originalObject && nextObject.get(key) !== value) {
    -              nextObject = copy(originalObject);
    -            }
    -            nextObject.set(key, value);
    -          });
    -        } else {
    -          values2.forEach(function(value) {
    -            if (nextObject === originalObject && !nextObject.has(value)) {
    -              nextObject = copy(originalObject);
    -            }
    -            nextObject.add(value);
    -          });
    -        }
    -        return nextObject;
    -      },
    -      $remove: function(value, nextObject, _spec, originalObject) {
    -        invariantMapOrSet(nextObject, "$remove");
    -        invariantSpecArray(value, "$remove");
    -        value.forEach(function(key) {
    -          if (nextObject === originalObject && nextObject.has(key)) {
    -            nextObject = copy(originalObject);
    -          }
    -          nextObject.delete(key);
    -        });
    -        return nextObject;
    -      },
    -      $merge: function(value, nextObject, _spec, originalObject) {
    -        invariantMerge(nextObject, value);
    -        getAllKeys(value).forEach(function(key) {
    -          if (value[key] !== nextObject[key]) {
    -            if (nextObject === originalObject) {
    -              nextObject = copy(originalObject);
    -            }
    -            nextObject[key] = value[key];
    -          }
    -        });
    -        return nextObject;
    -      },
    -      $apply: function(value, original) {
    -        invariantApply(value);
    -        return value(original);
    -      }
    -    };
    -    var defaultContext = new Context();
    -    exports2.isEquals = defaultContext.update.isEquals;
    -    exports2.extend = defaultContext.extend;
    -    exports2.default = defaultContext.update;
    -    exports2.default.default = module2.exports = assign(exports2.default, exports2);
    -    function invariantPushAndUnshift(value, spec, command) {
    -      invariant5(Array.isArray(value), function() {
    -        return "update(): expected target of " + stringifiable(command) + " to be an array; got " + stringifiable(value) + ".";
    -      });
    -      invariantSpecArray(spec[command], command);
    -    }
    -    function invariantSpecArray(spec, command) {
    -      invariant5(Array.isArray(spec), function() {
    -        return "update(): expected spec of " + stringifiable(command) + " to be an array; got " + stringifiable(spec) + ". Did you forget to wrap your parameter in an array?";
    -      });
    -    }
    -    function invariantSplices(value, spec) {
    -      invariant5(Array.isArray(value), function() {
    -        return "Expected $splice target to be an array; got " + stringifiable(value);
    -      });
    -      invariantSplice(spec.$splice);
    -    }
    -    function invariantSplice(value) {
    -      invariant5(Array.isArray(value), function() {
    -        return "update(): expected spec of $splice to be an array of arrays; got " + stringifiable(value) + ". Did you forget to wrap your parameters in an array?";
    -      });
    -    }
    -    function invariantApply(fn) {
    -      invariant5(typeof fn === "function", function() {
    -        return "update(): expected spec of $apply to be a function; got " + stringifiable(fn) + ".";
    -      });
    -    }
    -    function invariantSet(spec) {
    -      invariant5(Object.keys(spec).length === 1, function() {
    -        return "Cannot have more than one key in an object with $set";
    -      });
    -    }
    -    function invariantMerge(target, specValue) {
    -      invariant5(specValue && typeof specValue === "object", function() {
    -        return "update(): $merge expects a spec of type 'object'; got " + stringifiable(specValue);
    -      });
    -      invariant5(target && typeof target === "object", function() {
    -        return "update(): $merge expects a target of type 'object'; got " + stringifiable(target);
    -      });
    -    }
    -    function invariantMapOrSet(target, command) {
    -      var typeOfTarget = type2(target);
    -      invariant5(typeOfTarget === "Map" || typeOfTarget === "Set", function() {
    -        return "update(): " + stringifiable(command) + " expects a target of type Set or Map; got " + stringifiable(typeOfTarget);
    -      });
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js
    -var require_decode_data_html = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.default = new Uint16Array(
    -      // prettier-ignore
    -      '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(c) {
    -        return c.charCodeAt(0);
    -      })
    -    );
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js
    -var require_decode_data_xml = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.default = new Uint16Array(
    -      // prettier-ignore
    -      "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(c) {
    -        return c.charCodeAt(0);
    -      })
    -    );
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js
    -var require_decode_codepoint = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js"(exports2) {
    -    "use strict";
    -    var _a;
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.replaceCodePoint = exports2.fromCodePoint = void 0;
    -    var decodeMap = /* @__PURE__ */ new Map([
    -      [0, 65533],
    -      // C1 Unicode control character reference replacements
    -      [128, 8364],
    -      [130, 8218],
    -      [131, 402],
    -      [132, 8222],
    -      [133, 8230],
    -      [134, 8224],
    -      [135, 8225],
    -      [136, 710],
    -      [137, 8240],
    -      [138, 352],
    -      [139, 8249],
    -      [140, 338],
    -      [142, 381],
    -      [145, 8216],
    -      [146, 8217],
    -      [147, 8220],
    -      [148, 8221],
    -      [149, 8226],
    -      [150, 8211],
    -      [151, 8212],
    -      [152, 732],
    -      [153, 8482],
    -      [154, 353],
    -      [155, 8250],
    -      [156, 339],
    -      [158, 382],
    -      [159, 376]
    -    ]);
    -    exports2.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
    -    (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) {
    -      var output = "";
    -      if (codePoint > 65535) {
    -        codePoint -= 65536;
    -        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
    -        codePoint = 56320 | codePoint & 1023;
    -      }
    -      output += String.fromCharCode(codePoint);
    -      return output;
    -    };
    -    function replaceCodePoint(codePoint) {
    -      var _a2;
    -      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
    -        return 65533;
    -      }
    -      return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
    -    }
    -    exports2.replaceCodePoint = replaceCodePoint;
    -    function decodeCodePoint(codePoint) {
    -      return (0, exports2.fromCodePoint)(replaceCodePoint(codePoint));
    -    }
    -    exports2.default = decodeCodePoint;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js
    -var require_decode = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js"(exports2) {
    -    "use strict";
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
    -      Object.defineProperty(o, "default", { enumerable: true, value: v });
    -    } : function(o, v) {
    -      o["default"] = v;
    -    });
    -    var __importStar = exports2 && exports2.__importStar || function(mod) {
    -      if (mod && mod.__esModule)
    -        return mod;
    -      var result = {};
    -      if (mod != null) {
    -        for (var k in mod)
    -          if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
    -            __createBinding(result, mod, k);
    -      }
    -      __setModuleDefault(result, mod);
    -      return result;
    -    };
    -    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
    -      return mod && mod.__esModule ? mod : { "default": mod };
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.decodeXML = exports2.decodeHTMLStrict = exports2.decodeHTMLAttribute = exports2.decodeHTML = exports2.determineBranch = exports2.EntityDecoder = exports2.DecodingMode = exports2.BinTrieFlags = exports2.fromCodePoint = exports2.replaceCodePoint = exports2.decodeCodePoint = exports2.xmlDecodeTree = exports2.htmlDecodeTree = void 0;
    -    var decode_data_html_js_1 = __importDefault(require_decode_data_html());
    -    exports2.htmlDecodeTree = decode_data_html_js_1.default;
    -    var decode_data_xml_js_1 = __importDefault(require_decode_data_xml());
    -    exports2.xmlDecodeTree = decode_data_xml_js_1.default;
    -    var decode_codepoint_js_1 = __importStar(require_decode_codepoint());
    -    exports2.decodeCodePoint = decode_codepoint_js_1.default;
    -    var decode_codepoint_js_2 = require_decode_codepoint();
    -    Object.defineProperty(exports2, "replaceCodePoint", { enumerable: true, get: function() {
    -      return decode_codepoint_js_2.replaceCodePoint;
    -    } });
    -    Object.defineProperty(exports2, "fromCodePoint", { enumerable: true, get: function() {
    -      return decode_codepoint_js_2.fromCodePoint;
    -    } });
    -    var CharCodes;
    -    (function(CharCodes2) {
    -      CharCodes2[CharCodes2["NUM"] = 35] = "NUM";
    -      CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI";
    -      CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS";
    -      CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO";
    -      CharCodes2[CharCodes2["NINE"] = 57] = "NINE";
    -      CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A";
    -      CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F";
    -      CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X";
    -      CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z";
    -      CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A";
    -      CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F";
    -      CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z";
    -    })(CharCodes || (CharCodes = {}));
    -    var TO_LOWER_BIT = 32;
    -    var BinTrieFlags;
    -    (function(BinTrieFlags2) {
    -      BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
    -      BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
    -      BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    -    })(BinTrieFlags = exports2.BinTrieFlags || (exports2.BinTrieFlags = {}));
    -    function isNumber(code) {
    -      return code >= CharCodes.ZERO && code <= CharCodes.NINE;
    -    }
    -    function isHexadecimalCharacter(code) {
    -      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F;
    -    }
    -    function isAsciiAlphaNumeric(code) {
    -      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber(code);
    -    }
    -    function isEntityInAttributeInvalidEnd(code) {
    -      return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
    -    }
    -    var EntityDecoderState;
    -    (function(EntityDecoderState2) {
    -      EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
    -      EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
    -      EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
    -      EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
    -      EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
    -    })(EntityDecoderState || (EntityDecoderState = {}));
    -    var DecodingMode;
    -    (function(DecodingMode2) {
    -      DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
    -      DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
    -      DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
    -    })(DecodingMode = exports2.DecodingMode || (exports2.DecodingMode = {}));
    -    var EntityDecoder = (
    -      /** @class */
    -      function() {
    -        function EntityDecoder2(decodeTree, emitCodePoint, errors2) {
    -          this.decodeTree = decodeTree;
    -          this.emitCodePoint = emitCodePoint;
    -          this.errors = errors2;
    -          this.state = EntityDecoderState.EntityStart;
    -          this.consumed = 1;
    -          this.result = 0;
    -          this.treeIndex = 0;
    -          this.excess = 1;
    -          this.decodeMode = DecodingMode.Strict;
    -        }
    -        EntityDecoder2.prototype.startEntity = function(decodeMode) {
    -          this.decodeMode = decodeMode;
    -          this.state = EntityDecoderState.EntityStart;
    -          this.result = 0;
    -          this.treeIndex = 0;
    -          this.excess = 1;
    -          this.consumed = 1;
    -        };
    -        EntityDecoder2.prototype.write = function(str2, offset) {
    -          switch (this.state) {
    -            case EntityDecoderState.EntityStart: {
    -              if (str2.charCodeAt(offset) === CharCodes.NUM) {
    -                this.state = EntityDecoderState.NumericStart;
    -                this.consumed += 1;
    -                return this.stateNumericStart(str2, offset + 1);
    -              }
    -              this.state = EntityDecoderState.NamedEntity;
    -              return this.stateNamedEntity(str2, offset);
    -            }
    -            case EntityDecoderState.NumericStart: {
    -              return this.stateNumericStart(str2, offset);
    -            }
    -            case EntityDecoderState.NumericDecimal: {
    -              return this.stateNumericDecimal(str2, offset);
    -            }
    -            case EntityDecoderState.NumericHex: {
    -              return this.stateNumericHex(str2, offset);
    -            }
    -            case EntityDecoderState.NamedEntity: {
    -              return this.stateNamedEntity(str2, offset);
    -            }
    -          }
    -        };
    -        EntityDecoder2.prototype.stateNumericStart = function(str2, offset) {
    -          if (offset >= str2.length) {
    -            return -1;
    -          }
    -          if ((str2.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
    -            this.state = EntityDecoderState.NumericHex;
    -            this.consumed += 1;
    -            return this.stateNumericHex(str2, offset + 1);
    -          }
    -          this.state = EntityDecoderState.NumericDecimal;
    -          return this.stateNumericDecimal(str2, offset);
    -        };
    -        EntityDecoder2.prototype.addToNumericResult = function(str2, start, end, base) {
    -          if (start !== end) {
    -            var digitCount = end - start;
    -            this.result = this.result * Math.pow(base, digitCount) + parseInt(str2.substr(start, digitCount), base);
    -            this.consumed += digitCount;
    -          }
    -        };
    -        EntityDecoder2.prototype.stateNumericHex = function(str2, offset) {
    -          var startIdx = offset;
    -          while (offset < str2.length) {
    -            var char = str2.charCodeAt(offset);
    -            if (isNumber(char) || isHexadecimalCharacter(char)) {
    -              offset += 1;
    -            } else {
    -              this.addToNumericResult(str2, startIdx, offset, 16);
    -              return this.emitNumericEntity(char, 3);
    -            }
    -          }
    -          this.addToNumericResult(str2, startIdx, offset, 16);
    -          return -1;
    -        };
    -        EntityDecoder2.prototype.stateNumericDecimal = function(str2, offset) {
    -          var startIdx = offset;
    -          while (offset < str2.length) {
    -            var char = str2.charCodeAt(offset);
    -            if (isNumber(char)) {
    -              offset += 1;
    -            } else {
    -              this.addToNumericResult(str2, startIdx, offset, 10);
    -              return this.emitNumericEntity(char, 2);
    -            }
    -          }
    -          this.addToNumericResult(str2, startIdx, offset, 10);
    -          return -1;
    -        };
    -        EntityDecoder2.prototype.emitNumericEntity = function(lastCp, expectedLength) {
    -          var _a;
    -          if (this.consumed <= expectedLength) {
    -            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
    -            return 0;
    -          }
    -          if (lastCp === CharCodes.SEMI) {
    -            this.consumed += 1;
    -          } else if (this.decodeMode === DecodingMode.Strict) {
    -            return 0;
    -          }
    -          this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
    -          if (this.errors) {
    -            if (lastCp !== CharCodes.SEMI) {
    -              this.errors.missingSemicolonAfterCharacterReference();
    -            }
    -            this.errors.validateNumericCharacterReference(this.result);
    -          }
    -          return this.consumed;
    -        };
    -        EntityDecoder2.prototype.stateNamedEntity = function(str2, offset) {
    -          var decodeTree = this.decodeTree;
    -          var current2 = decodeTree[this.treeIndex];
    -          var valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
    -          for (; offset < str2.length; offset++, this.excess++) {
    -            var char = str2.charCodeAt(offset);
    -            this.treeIndex = determineBranch(decodeTree, current2, this.treeIndex + Math.max(1, valueLength), char);
    -            if (this.treeIndex < 0) {
    -              return this.result === 0 || // If we are parsing an attribute
    -              this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
    -              (valueLength === 0 || // And there should be no invalid characters.
    -              isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
    -            }
    -            current2 = decodeTree[this.treeIndex];
    -            valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
    -            if (valueLength !== 0) {
    -              if (char === CharCodes.SEMI) {
    -                return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
    -              }
    -              if (this.decodeMode !== DecodingMode.Strict) {
    -                this.result = this.treeIndex;
    -                this.consumed += this.excess;
    -                this.excess = 0;
    -              }
    -            }
    -          }
    -          return -1;
    -        };
    -        EntityDecoder2.prototype.emitNotTerminatedNamedEntity = function() {
    -          var _a;
    -          var _b = this, result = _b.result, decodeTree = _b.decodeTree;
    -          var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
    -          this.emitNamedEntityData(result, valueLength, this.consumed);
    -          (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();
    -          return this.consumed;
    -        };
    -        EntityDecoder2.prototype.emitNamedEntityData = function(result, valueLength, consumed) {
    -          var decodeTree = this.decodeTree;
    -          this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed);
    -          if (valueLength === 3) {
    -            this.emitCodePoint(decodeTree[result + 2], consumed);
    -          }
    -          return consumed;
    -        };
    -        EntityDecoder2.prototype.end = function() {
    -          var _a;
    -          switch (this.state) {
    -            case EntityDecoderState.NamedEntity: {
    -              return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
    -            }
    -            case EntityDecoderState.NumericDecimal: {
    -              return this.emitNumericEntity(0, 2);
    -            }
    -            case EntityDecoderState.NumericHex: {
    -              return this.emitNumericEntity(0, 3);
    -            }
    -            case EntityDecoderState.NumericStart: {
    -              (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
    -              return 0;
    -            }
    -            case EntityDecoderState.EntityStart: {
    -              return 0;
    -            }
    -          }
    -        };
    -        return EntityDecoder2;
    -      }()
    -    );
    -    exports2.EntityDecoder = EntityDecoder;
    -    function getDecoder(decodeTree) {
    -      var ret = "";
    -      var decoder = new EntityDecoder(decodeTree, function(str2) {
    -        return ret += (0, decode_codepoint_js_1.fromCodePoint)(str2);
    -      });
    -      return function decodeWithTrie(str2, decodeMode) {
    -        var lastIndex = 0;
    -        var offset = 0;
    -        while ((offset = str2.indexOf("&", offset)) >= 0) {
    -          ret += str2.slice(lastIndex, offset);
    -          decoder.startEntity(decodeMode);
    -          var len = decoder.write(
    -            str2,
    -            // Skip the "&"
    -            offset + 1
    -          );
    -          if (len < 0) {
    -            lastIndex = offset + decoder.end();
    -            break;
    -          }
    -          lastIndex = offset + len;
    -          offset = len === 0 ? lastIndex + 1 : lastIndex;
    -        }
    -        var result = ret + str2.slice(lastIndex);
    -        ret = "";
    -        return result;
    -      };
    -    }
    -    function determineBranch(decodeTree, current2, nodeIdx, char) {
    -      var branchCount = (current2 & BinTrieFlags.BRANCH_LENGTH) >> 7;
    -      var jumpOffset = current2 & BinTrieFlags.JUMP_TABLE;
    -      if (branchCount === 0) {
    -        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
    -      }
    -      if (jumpOffset) {
    -        var value = char - jumpOffset;
    -        return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1;
    -      }
    -      var lo = nodeIdx;
    -      var hi = lo + branchCount - 1;
    -      while (lo <= hi) {
    -        var mid = lo + hi >>> 1;
    -        var midVal = decodeTree[mid];
    -        if (midVal < char) {
    -          lo = mid + 1;
    -        } else if (midVal > char) {
    -          hi = mid - 1;
    -        } else {
    -          return decodeTree[mid + branchCount];
    -        }
    -      }
    -      return -1;
    -    }
    -    exports2.determineBranch = determineBranch;
    -    var htmlDecoder = getDecoder(decode_data_html_js_1.default);
    -    var xmlDecoder = getDecoder(decode_data_xml_js_1.default);
    -    function decodeHTML(str2, mode) {
    -      if (mode === void 0) {
    -        mode = DecodingMode.Legacy;
    -      }
    -      return htmlDecoder(str2, mode);
    -    }
    -    exports2.decodeHTML = decodeHTML;
    -    function decodeHTMLAttribute(str2) {
    -      return htmlDecoder(str2, DecodingMode.Attribute);
    -    }
    -    exports2.decodeHTMLAttribute = decodeHTMLAttribute;
    -    function decodeHTMLStrict(str2) {
    -      return htmlDecoder(str2, DecodingMode.Strict);
    -    }
    -    exports2.decodeHTMLStrict = decodeHTMLStrict;
    -    function decodeXML(str2) {
    -      return xmlDecoder(str2, DecodingMode.Strict);
    -    }
    -    exports2.decodeXML = decodeXML;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js
    -var require_Tokenizer = __commonJS({
    -  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.QuoteType = void 0;
    -    var decode_js_1 = require_decode();
    -    var CharCodes;
    -    (function(CharCodes2) {
    -      CharCodes2[CharCodes2["Tab"] = 9] = "Tab";
    -      CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine";
    -      CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed";
    -      CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn";
    -      CharCodes2[CharCodes2["Space"] = 32] = "Space";
    -      CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark";
    -      CharCodes2[CharCodes2["Number"] = 35] = "Number";
    -      CharCodes2[CharCodes2["Amp"] = 38] = "Amp";
    -      CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote";
    -      CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote";
    -      CharCodes2[CharCodes2["Dash"] = 45] = "Dash";
    -      CharCodes2[CharCodes2["Slash"] = 47] = "Slash";
    -      CharCodes2[CharCodes2["Zero"] = 48] = "Zero";
    -      CharCodes2[CharCodes2["Nine"] = 57] = "Nine";
    -      CharCodes2[CharCodes2["Semi"] = 59] = "Semi";
    -      CharCodes2[CharCodes2["Lt"] = 60] = "Lt";
    -      CharCodes2[CharCodes2["Eq"] = 61] = "Eq";
    -      CharCodes2[CharCodes2["Gt"] = 62] = "Gt";
    -      CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark";
    -      CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA";
    -      CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA";
    -      CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF";
    -      CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF";
    -      CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ";
    -      CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ";
    -      CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX";
    -      CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    -    })(CharCodes || (CharCodes = {}));
    -    var State2;
    -    (function(State3) {
    -      State3[State3["Text"] = 1] = "Text";
    -      State3[State3["BeforeTagName"] = 2] = "BeforeTagName";
    -      State3[State3["InTagName"] = 3] = "InTagName";
    -      State3[State3["InSelfClosingTag"] = 4] = "InSelfClosingTag";
    -      State3[State3["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
    -      State3[State3["InClosingTagName"] = 6] = "InClosingTagName";
    -      State3[State3["AfterClosingTagName"] = 7] = "AfterClosingTagName";
    -      State3[State3["BeforeAttributeName"] = 8] = "BeforeAttributeName";
    -      State3[State3["InAttributeName"] = 9] = "InAttributeName";
    -      State3[State3["AfterAttributeName"] = 10] = "AfterAttributeName";
    -      State3[State3["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
    -      State3[State3["InAttributeValueDq"] = 12] = "InAttributeValueDq";
    -      State3[State3["InAttributeValueSq"] = 13] = "InAttributeValueSq";
    -      State3[State3["InAttributeValueNq"] = 14] = "InAttributeValueNq";
    -      State3[State3["BeforeDeclaration"] = 15] = "BeforeDeclaration";
    -      State3[State3["InDeclaration"] = 16] = "InDeclaration";
    -      State3[State3["InProcessingInstruction"] = 17] = "InProcessingInstruction";
    -      State3[State3["BeforeComment"] = 18] = "BeforeComment";
    -      State3[State3["CDATASequence"] = 19] = "CDATASequence";
    -      State3[State3["InSpecialComment"] = 20] = "InSpecialComment";
    -      State3[State3["InCommentLike"] = 21] = "InCommentLike";
    -      State3[State3["BeforeSpecialS"] = 22] = "BeforeSpecialS";
    -      State3[State3["SpecialStartSequence"] = 23] = "SpecialStartSequence";
    -      State3[State3["InSpecialTag"] = 24] = "InSpecialTag";
    -      State3[State3["BeforeEntity"] = 25] = "BeforeEntity";
    -      State3[State3["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
    -      State3[State3["InNamedEntity"] = 27] = "InNamedEntity";
    -      State3[State3["InNumericEntity"] = 28] = "InNumericEntity";
    -      State3[State3["InHexEntity"] = 29] = "InHexEntity";
    -    })(State2 || (State2 = {}));
    -    function isWhitespace2(c) {
    -      return c === CharCodes.Space || c === CharCodes.NewLine || c === CharCodes.Tab || c === CharCodes.FormFeed || c === CharCodes.CarriageReturn;
    -    }
    -    function isEndOfTagSection(c) {
    -      return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace2(c);
    -    }
    -    function isNumber(c) {
    -      return c >= CharCodes.Zero && c <= CharCodes.Nine;
    -    }
    -    function isASCIIAlpha(c) {
    -      return c >= CharCodes.LowerA && c <= CharCodes.LowerZ || c >= CharCodes.UpperA && c <= CharCodes.UpperZ;
    -    }
    -    function isHexDigit(c) {
    -      return c >= CharCodes.UpperA && c <= CharCodes.UpperF || c >= CharCodes.LowerA && c <= CharCodes.LowerF;
    -    }
    -    var QuoteType;
    -    (function(QuoteType2) {
    -      QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue";
    -      QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted";
    -      QuoteType2[QuoteType2["Single"] = 2] = "Single";
    -      QuoteType2[QuoteType2["Double"] = 3] = "Double";
    -    })(QuoteType = exports2.QuoteType || (exports2.QuoteType = {}));
    -    var Sequences = {
    -      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
    -      CdataEnd: new Uint8Array([93, 93, 62]),
    -      CommentEnd: new Uint8Array([45, 45, 62]),
    -      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
    -      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
    -      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101])
    -      // ` this.sectionStart) {
    -              this.cbs.ontext(this.sectionStart, this.index);
    -            }
    -            this.state = State2.BeforeTagName;
    -            this.sectionStart = this.index;
    -          } else if (this.decodeEntities && c === CharCodes.Amp) {
    -            this.state = State2.BeforeEntity;
    -          }
    -        };
    -        Tokenizer2.prototype.stateSpecialStartSequence = function(c) {
    -          var isEnd = this.sequenceIndex === this.currentSequence.length;
    -          var isMatch = isEnd ? (
    -            // If we are at the end of the sequence, make sure the tag name has ended
    -            isEndOfTagSection(c)
    -          ) : (
    -            // Otherwise, do a case-insensitive comparison
    -            (c | 32) === this.currentSequence[this.sequenceIndex]
    -          );
    -          if (!isMatch) {
    -            this.isSpecial = false;
    -          } else if (!isEnd) {
    -            this.sequenceIndex++;
    -            return;
    -          }
    -          this.sequenceIndex = 0;
    -          this.state = State2.InTagName;
    -          this.stateInTagName(c);
    -        };
    -        Tokenizer2.prototype.stateInSpecialTag = function(c) {
    -          if (this.sequenceIndex === this.currentSequence.length) {
    -            if (c === CharCodes.Gt || isWhitespace2(c)) {
    -              var endOfText = this.index - this.currentSequence.length;
    -              if (this.sectionStart < endOfText) {
    -                var actualIndex = this.index;
    -                this.index = endOfText;
    -                this.cbs.ontext(this.sectionStart, endOfText);
    -                this.index = actualIndex;
    -              }
    -              this.isSpecial = false;
    -              this.sectionStart = endOfText + 2;
    -              this.stateInClosingTagName(c);
    -              return;
    -            }
    -            this.sequenceIndex = 0;
    -          }
    -          if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
    -            this.sequenceIndex += 1;
    -          } else if (this.sequenceIndex === 0) {
    -            if (this.currentSequence === Sequences.TitleEnd) {
    -              if (this.decodeEntities && c === CharCodes.Amp) {
    -                this.state = State2.BeforeEntity;
    -              }
    -            } else if (this.fastForwardTo(CharCodes.Lt)) {
    -              this.sequenceIndex = 1;
    -            }
    -          } else {
    -            this.sequenceIndex = Number(c === CharCodes.Lt);
    -          }
    -        };
    -        Tokenizer2.prototype.stateCDATASequence = function(c) {
    -          if (c === Sequences.Cdata[this.sequenceIndex]) {
    -            if (++this.sequenceIndex === Sequences.Cdata.length) {
    -              this.state = State2.InCommentLike;
    -              this.currentSequence = Sequences.CdataEnd;
    -              this.sequenceIndex = 0;
    -              this.sectionStart = this.index + 1;
    -            }
    -          } else {
    -            this.sequenceIndex = 0;
    -            this.state = State2.InDeclaration;
    -            this.stateInDeclaration(c);
    -          }
    -        };
    -        Tokenizer2.prototype.fastForwardTo = function(c) {
    -          while (++this.index < this.buffer.length + this.offset) {
    -            if (this.buffer.charCodeAt(this.index - this.offset) === c) {
    -              return true;
    -            }
    -          }
    -          this.index = this.buffer.length + this.offset - 1;
    -          return false;
    -        };
    -        Tokenizer2.prototype.stateInCommentLike = function(c) {
    -          if (c === this.currentSequence[this.sequenceIndex]) {
    -            if (++this.sequenceIndex === this.currentSequence.length) {
    -              if (this.currentSequence === Sequences.CdataEnd) {
    -                this.cbs.oncdata(this.sectionStart, this.index, 2);
    -              } else {
    -                this.cbs.oncomment(this.sectionStart, this.index, 2);
    -              }
    -              this.sequenceIndex = 0;
    -              this.sectionStart = this.index + 1;
    -              this.state = State2.Text;
    -            }
    -          } else if (this.sequenceIndex === 0) {
    -            if (this.fastForwardTo(this.currentSequence[0])) {
    -              this.sequenceIndex = 1;
    -            }
    -          } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {
    -            this.sequenceIndex = 0;
    -          }
    -        };
    -        Tokenizer2.prototype.isTagStartChar = function(c) {
    -          return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);
    -        };
    -        Tokenizer2.prototype.startSpecial = function(sequence, offset) {
    -          this.isSpecial = true;
    -          this.currentSequence = sequence;
    -          this.sequenceIndex = offset;
    -          this.state = State2.SpecialStartSequence;
    -        };
    -        Tokenizer2.prototype.stateBeforeTagName = function(c) {
    -          if (c === CharCodes.ExclamationMark) {
    -            this.state = State2.BeforeDeclaration;
    -            this.sectionStart = this.index + 1;
    -          } else if (c === CharCodes.Questionmark) {
    -            this.state = State2.InProcessingInstruction;
    -            this.sectionStart = this.index + 1;
    -          } else if (this.isTagStartChar(c)) {
    -            var lower = c | 32;
    -            this.sectionStart = this.index;
    -            if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {
    -              this.startSpecial(Sequences.TitleEnd, 3);
    -            } else {
    -              this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State2.BeforeSpecialS : State2.InTagName;
    -            }
    -          } else if (c === CharCodes.Slash) {
    -            this.state = State2.BeforeClosingTagName;
    -          } else {
    -            this.state = State2.Text;
    -            this.stateText(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateInTagName = function(c) {
    -          if (isEndOfTagSection(c)) {
    -            this.cbs.onopentagname(this.sectionStart, this.index);
    -            this.sectionStart = -1;
    -            this.state = State2.BeforeAttributeName;
    -            this.stateBeforeAttributeName(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeClosingTagName = function(c) {
    -          if (isWhitespace2(c)) {
    -          } else if (c === CharCodes.Gt) {
    -            this.state = State2.Text;
    -          } else {
    -            this.state = this.isTagStartChar(c) ? State2.InClosingTagName : State2.InSpecialComment;
    -            this.sectionStart = this.index;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInClosingTagName = function(c) {
    -          if (c === CharCodes.Gt || isWhitespace2(c)) {
    -            this.cbs.onclosetag(this.sectionStart, this.index);
    -            this.sectionStart = -1;
    -            this.state = State2.AfterClosingTagName;
    -            this.stateAfterClosingTagName(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateAfterClosingTagName = function(c) {
    -          if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
    -            this.state = State2.Text;
    -            this.baseState = State2.Text;
    -            this.sectionStart = this.index + 1;
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeAttributeName = function(c) {
    -          if (c === CharCodes.Gt) {
    -            this.cbs.onopentagend(this.index);
    -            if (this.isSpecial) {
    -              this.state = State2.InSpecialTag;
    -              this.sequenceIndex = 0;
    -            } else {
    -              this.state = State2.Text;
    -            }
    -            this.baseState = this.state;
    -            this.sectionStart = this.index + 1;
    -          } else if (c === CharCodes.Slash) {
    -            this.state = State2.InSelfClosingTag;
    -          } else if (!isWhitespace2(c)) {
    -            this.state = State2.InAttributeName;
    -            this.sectionStart = this.index;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInSelfClosingTag = function(c) {
    -          if (c === CharCodes.Gt) {
    -            this.cbs.onselfclosingtag(this.index);
    -            this.state = State2.Text;
    -            this.baseState = State2.Text;
    -            this.sectionStart = this.index + 1;
    -            this.isSpecial = false;
    -          } else if (!isWhitespace2(c)) {
    -            this.state = State2.BeforeAttributeName;
    -            this.stateBeforeAttributeName(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateInAttributeName = function(c) {
    -          if (c === CharCodes.Eq || isEndOfTagSection(c)) {
    -            this.cbs.onattribname(this.sectionStart, this.index);
    -            this.sectionStart = -1;
    -            this.state = State2.AfterAttributeName;
    -            this.stateAfterAttributeName(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateAfterAttributeName = function(c) {
    -          if (c === CharCodes.Eq) {
    -            this.state = State2.BeforeAttributeValue;
    -          } else if (c === CharCodes.Slash || c === CharCodes.Gt) {
    -            this.cbs.onattribend(QuoteType.NoValue, this.index);
    -            this.state = State2.BeforeAttributeName;
    -            this.stateBeforeAttributeName(c);
    -          } else if (!isWhitespace2(c)) {
    -            this.cbs.onattribend(QuoteType.NoValue, this.index);
    -            this.state = State2.InAttributeName;
    -            this.sectionStart = this.index;
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeAttributeValue = function(c) {
    -          if (c === CharCodes.DoubleQuote) {
    -            this.state = State2.InAttributeValueDq;
    -            this.sectionStart = this.index + 1;
    -          } else if (c === CharCodes.SingleQuote) {
    -            this.state = State2.InAttributeValueSq;
    -            this.sectionStart = this.index + 1;
    -          } else if (!isWhitespace2(c)) {
    -            this.sectionStart = this.index;
    -            this.state = State2.InAttributeValueNq;
    -            this.stateInAttributeValueNoQuotes(c);
    -          }
    -        };
    -        Tokenizer2.prototype.handleInAttributeValue = function(c, quote) {
    -          if (c === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
    -            this.cbs.onattribdata(this.sectionStart, this.index);
    -            this.sectionStart = -1;
    -            this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index);
    -            this.state = State2.BeforeAttributeName;
    -          } else if (this.decodeEntities && c === CharCodes.Amp) {
    -            this.baseState = this.state;
    -            this.state = State2.BeforeEntity;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInAttributeValueDoubleQuotes = function(c) {
    -          this.handleInAttributeValue(c, CharCodes.DoubleQuote);
    -        };
    -        Tokenizer2.prototype.stateInAttributeValueSingleQuotes = function(c) {
    -          this.handleInAttributeValue(c, CharCodes.SingleQuote);
    -        };
    -        Tokenizer2.prototype.stateInAttributeValueNoQuotes = function(c) {
    -          if (isWhitespace2(c) || c === CharCodes.Gt) {
    -            this.cbs.onattribdata(this.sectionStart, this.index);
    -            this.sectionStart = -1;
    -            this.cbs.onattribend(QuoteType.Unquoted, this.index);
    -            this.state = State2.BeforeAttributeName;
    -            this.stateBeforeAttributeName(c);
    -          } else if (this.decodeEntities && c === CharCodes.Amp) {
    -            this.baseState = this.state;
    -            this.state = State2.BeforeEntity;
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeDeclaration = function(c) {
    -          if (c === CharCodes.OpeningSquareBracket) {
    -            this.state = State2.CDATASequence;
    -            this.sequenceIndex = 0;
    -          } else {
    -            this.state = c === CharCodes.Dash ? State2.BeforeComment : State2.InDeclaration;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInDeclaration = function(c) {
    -          if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
    -            this.cbs.ondeclaration(this.sectionStart, this.index);
    -            this.state = State2.Text;
    -            this.sectionStart = this.index + 1;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInProcessingInstruction = function(c) {
    -          if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
    -            this.cbs.onprocessinginstruction(this.sectionStart, this.index);
    -            this.state = State2.Text;
    -            this.sectionStart = this.index + 1;
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeComment = function(c) {
    -          if (c === CharCodes.Dash) {
    -            this.state = State2.InCommentLike;
    -            this.currentSequence = Sequences.CommentEnd;
    -            this.sequenceIndex = 2;
    -            this.sectionStart = this.index + 1;
    -          } else {
    -            this.state = State2.InDeclaration;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInSpecialComment = function(c) {
    -          if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
    -            this.cbs.oncomment(this.sectionStart, this.index, 0);
    -            this.state = State2.Text;
    -            this.sectionStart = this.index + 1;
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeSpecialS = function(c) {
    -          var lower = c | 32;
    -          if (lower === Sequences.ScriptEnd[3]) {
    -            this.startSpecial(Sequences.ScriptEnd, 4);
    -          } else if (lower === Sequences.StyleEnd[3]) {
    -            this.startSpecial(Sequences.StyleEnd, 4);
    -          } else {
    -            this.state = State2.InTagName;
    -            this.stateInTagName(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeEntity = function(c) {
    -          this.entityExcess = 1;
    -          this.entityResult = 0;
    -          if (c === CharCodes.Number) {
    -            this.state = State2.BeforeNumericEntity;
    -          } else if (c === CharCodes.Amp) {
    -          } else {
    -            this.trieIndex = 0;
    -            this.trieCurrent = this.entityTrie[0];
    -            this.state = State2.InNamedEntity;
    -            this.stateInNamedEntity(c);
    -          }
    -        };
    -        Tokenizer2.prototype.stateInNamedEntity = function(c) {
    -          this.entityExcess += 1;
    -          this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);
    -          if (this.trieIndex < 0) {
    -            this.emitNamedEntity();
    -            this.index--;
    -            return;
    -          }
    -          this.trieCurrent = this.entityTrie[this.trieIndex];
    -          var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;
    -          if (masked) {
    -            var valueLength = (masked >> 14) - 1;
    -            if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {
    -              this.trieIndex += valueLength;
    -            } else {
    -              var entityStart = this.index - this.entityExcess + 1;
    -              if (entityStart > this.sectionStart) {
    -                this.emitPartial(this.sectionStart, entityStart);
    -              }
    -              this.entityResult = this.trieIndex;
    -              this.trieIndex += valueLength;
    -              this.entityExcess = 0;
    -              this.sectionStart = this.index + 1;
    -              if (valueLength === 0) {
    -                this.emitNamedEntity();
    -              }
    -            }
    -          }
    -        };
    -        Tokenizer2.prototype.emitNamedEntity = function() {
    -          this.state = this.baseState;
    -          if (this.entityResult === 0) {
    -            return;
    -          }
    -          var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
    -          switch (valueLength) {
    -            case 1: {
    -              this.emitCodePoint(this.entityTrie[this.entityResult] & ~decode_js_1.BinTrieFlags.VALUE_LENGTH);
    -              break;
    -            }
    -            case 2: {
    -              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
    -              break;
    -            }
    -            case 3: {
    -              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
    -              this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
    -            }
    -          }
    -        };
    -        Tokenizer2.prototype.stateBeforeNumericEntity = function(c) {
    -          if ((c | 32) === CharCodes.LowerX) {
    -            this.entityExcess++;
    -            this.state = State2.InHexEntity;
    -          } else {
    -            this.state = State2.InNumericEntity;
    -            this.stateInNumericEntity(c);
    -          }
    -        };
    -        Tokenizer2.prototype.emitNumericEntity = function(strict) {
    -          var entityStart = this.index - this.entityExcess - 1;
    -          var numberStart = entityStart + 2 + Number(this.state === State2.InHexEntity);
    -          if (numberStart !== this.index) {
    -            if (entityStart > this.sectionStart) {
    -              this.emitPartial(this.sectionStart, entityStart);
    -            }
    -            this.sectionStart = this.index + Number(strict);
    -            this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));
    -          }
    -          this.state = this.baseState;
    -        };
    -        Tokenizer2.prototype.stateInNumericEntity = function(c) {
    -          if (c === CharCodes.Semi) {
    -            this.emitNumericEntity(true);
    -          } else if (isNumber(c)) {
    -            this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);
    -            this.entityExcess++;
    -          } else {
    -            if (this.allowLegacyEntity()) {
    -              this.emitNumericEntity(false);
    -            } else {
    -              this.state = this.baseState;
    -            }
    -            this.index--;
    -          }
    -        };
    -        Tokenizer2.prototype.stateInHexEntity = function(c) {
    -          if (c === CharCodes.Semi) {
    -            this.emitNumericEntity(true);
    -          } else if (isNumber(c)) {
    -            this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);
    -            this.entityExcess++;
    -          } else if (isHexDigit(c)) {
    -            this.entityResult = this.entityResult * 16 + ((c | 32) - CharCodes.LowerA + 10);
    -            this.entityExcess++;
    -          } else {
    -            if (this.allowLegacyEntity()) {
    -              this.emitNumericEntity(false);
    -            } else {
    -              this.state = this.baseState;
    -            }
    -            this.index--;
    -          }
    -        };
    -        Tokenizer2.prototype.allowLegacyEntity = function() {
    -          return !this.xmlMode && (this.baseState === State2.Text || this.baseState === State2.InSpecialTag);
    -        };
    -        Tokenizer2.prototype.cleanup = function() {
    -          if (this.running && this.sectionStart !== this.index) {
    -            if (this.state === State2.Text || this.state === State2.InSpecialTag && this.sequenceIndex === 0) {
    -              this.cbs.ontext(this.sectionStart, this.index);
    -              this.sectionStart = this.index;
    -            } else if (this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueNq) {
    -              this.cbs.onattribdata(this.sectionStart, this.index);
    -              this.sectionStart = this.index;
    -            }
    -          }
    -        };
    -        Tokenizer2.prototype.shouldContinue = function() {
    -          return this.index < this.buffer.length + this.offset && this.running;
    -        };
    -        Tokenizer2.prototype.parse = function() {
    -          while (this.shouldContinue()) {
    -            var c = this.buffer.charCodeAt(this.index - this.offset);
    -            switch (this.state) {
    -              case State2.Text: {
    -                this.stateText(c);
    -                break;
    -              }
    -              case State2.SpecialStartSequence: {
    -                this.stateSpecialStartSequence(c);
    -                break;
    -              }
    -              case State2.InSpecialTag: {
    -                this.stateInSpecialTag(c);
    -                break;
    -              }
    -              case State2.CDATASequence: {
    -                this.stateCDATASequence(c);
    -                break;
    -              }
    -              case State2.InAttributeValueDq: {
    -                this.stateInAttributeValueDoubleQuotes(c);
    -                break;
    -              }
    -              case State2.InAttributeName: {
    -                this.stateInAttributeName(c);
    -                break;
    -              }
    -              case State2.InCommentLike: {
    -                this.stateInCommentLike(c);
    -                break;
    -              }
    -              case State2.InSpecialComment: {
    -                this.stateInSpecialComment(c);
    -                break;
    -              }
    -              case State2.BeforeAttributeName: {
    -                this.stateBeforeAttributeName(c);
    -                break;
    -              }
    -              case State2.InTagName: {
    -                this.stateInTagName(c);
    -                break;
    -              }
    -              case State2.InClosingTagName: {
    -                this.stateInClosingTagName(c);
    -                break;
    -              }
    -              case State2.BeforeTagName: {
    -                this.stateBeforeTagName(c);
    -                break;
    -              }
    -              case State2.AfterAttributeName: {
    -                this.stateAfterAttributeName(c);
    -                break;
    -              }
    -              case State2.InAttributeValueSq: {
    -                this.stateInAttributeValueSingleQuotes(c);
    -                break;
    -              }
    -              case State2.BeforeAttributeValue: {
    -                this.stateBeforeAttributeValue(c);
    -                break;
    -              }
    -              case State2.BeforeClosingTagName: {
    -                this.stateBeforeClosingTagName(c);
    -                break;
    -              }
    -              case State2.AfterClosingTagName: {
    -                this.stateAfterClosingTagName(c);
    -                break;
    -              }
    -              case State2.BeforeSpecialS: {
    -                this.stateBeforeSpecialS(c);
    -                break;
    -              }
    -              case State2.InAttributeValueNq: {
    -                this.stateInAttributeValueNoQuotes(c);
    -                break;
    -              }
    -              case State2.InSelfClosingTag: {
    -                this.stateInSelfClosingTag(c);
    -                break;
    -              }
    -              case State2.InDeclaration: {
    -                this.stateInDeclaration(c);
    -                break;
    -              }
    -              case State2.BeforeDeclaration: {
    -                this.stateBeforeDeclaration(c);
    -                break;
    -              }
    -              case State2.BeforeComment: {
    -                this.stateBeforeComment(c);
    -                break;
    -              }
    -              case State2.InProcessingInstruction: {
    -                this.stateInProcessingInstruction(c);
    -                break;
    -              }
    -              case State2.InNamedEntity: {
    -                this.stateInNamedEntity(c);
    -                break;
    -              }
    -              case State2.BeforeEntity: {
    -                this.stateBeforeEntity(c);
    -                break;
    -              }
    -              case State2.InHexEntity: {
    -                this.stateInHexEntity(c);
    -                break;
    -              }
    -              case State2.InNumericEntity: {
    -                this.stateInNumericEntity(c);
    -                break;
    -              }
    -              default: {
    -                this.stateBeforeNumericEntity(c);
    -              }
    -            }
    -            this.index++;
    -          }
    -          this.cleanup();
    -        };
    -        Tokenizer2.prototype.finish = function() {
    -          if (this.state === State2.InNamedEntity) {
    -            this.emitNamedEntity();
    -          }
    -          if (this.sectionStart < this.index) {
    -            this.handleTrailingData();
    -          }
    -          this.cbs.onend();
    -        };
    -        Tokenizer2.prototype.handleTrailingData = function() {
    -          var endIndex = this.buffer.length + this.offset;
    -          if (this.state === State2.InCommentLike) {
    -            if (this.currentSequence === Sequences.CdataEnd) {
    -              this.cbs.oncdata(this.sectionStart, endIndex, 0);
    -            } else {
    -              this.cbs.oncomment(this.sectionStart, endIndex, 0);
    -            }
    -          } else if (this.state === State2.InNumericEntity && this.allowLegacyEntity()) {
    -            this.emitNumericEntity(false);
    -          } else if (this.state === State2.InHexEntity && this.allowLegacyEntity()) {
    -            this.emitNumericEntity(false);
    -          } else if (this.state === State2.InTagName || this.state === State2.BeforeAttributeName || this.state === State2.BeforeAttributeValue || this.state === State2.AfterAttributeName || this.state === State2.InAttributeName || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueNq || this.state === State2.InClosingTagName) {
    -          } else {
    -            this.cbs.ontext(this.sectionStart, endIndex);
    -          }
    -        };
    -        Tokenizer2.prototype.emitPartial = function(start, endIndex) {
    -          if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) {
    -            this.cbs.onattribdata(start, endIndex);
    -          } else {
    -            this.cbs.ontext(start, endIndex);
    -          }
    -        };
    -        Tokenizer2.prototype.emitCodePoint = function(cp) {
    -          if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) {
    -            this.cbs.onattribentity(cp);
    -          } else {
    -            this.cbs.ontextentity(cp);
    -          }
    -        };
    -        return Tokenizer2;
    -      }()
    -    );
    -    exports2.default = Tokenizer;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js
    -var require_Parser = __commonJS({
    -  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js"(exports2) {
    -    "use strict";
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
    -      Object.defineProperty(o, "default", { enumerable: true, value: v });
    -    } : function(o, v) {
    -      o["default"] = v;
    -    });
    -    var __importStar = exports2 && exports2.__importStar || function(mod) {
    -      if (mod && mod.__esModule)
    -        return mod;
    -      var result = {};
    -      if (mod != null) {
    -        for (var k in mod)
    -          if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
    -            __createBinding(result, mod, k);
    -      }
    -      __setModuleDefault(result, mod);
    -      return result;
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.Parser = void 0;
    -    var Tokenizer_js_1 = __importStar(require_Tokenizer());
    -    var decode_js_1 = require_decode();
    -    var formTags = /* @__PURE__ */ new Set([
    -      "input",
    -      "option",
    -      "optgroup",
    -      "select",
    -      "button",
    -      "datalist",
    -      "textarea"
    -    ]);
    -    var pTag = /* @__PURE__ */ new Set(["p"]);
    -    var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
    -    var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
    -    var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
    -    var openImpliesClose = /* @__PURE__ */ new Map([
    -      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
    -      ["th", /* @__PURE__ */ new Set(["th"])],
    -      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
    -      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
    -      ["li", /* @__PURE__ */ new Set(["li"])],
    -      ["p", pTag],
    -      ["h1", pTag],
    -      ["h2", pTag],
    -      ["h3", pTag],
    -      ["h4", pTag],
    -      ["h5", pTag],
    -      ["h6", pTag],
    -      ["select", formTags],
    -      ["input", formTags],
    -      ["output", formTags],
    -      ["button", formTags],
    -      ["datalist", formTags],
    -      ["textarea", formTags],
    -      ["option", /* @__PURE__ */ new Set(["option"])],
    -      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
    -      ["dd", ddtTags],
    -      ["dt", ddtTags],
    -      ["address", pTag],
    -      ["article", pTag],
    -      ["aside", pTag],
    -      ["blockquote", pTag],
    -      ["details", pTag],
    -      ["div", pTag],
    -      ["dl", pTag],
    -      ["fieldset", pTag],
    -      ["figcaption", pTag],
    -      ["figure", pTag],
    -      ["footer", pTag],
    -      ["form", pTag],
    -      ["header", pTag],
    -      ["hr", pTag],
    -      ["main", pTag],
    -      ["nav", pTag],
    -      ["ol", pTag],
    -      ["pre", pTag],
    -      ["section", pTag],
    -      ["table", pTag],
    -      ["ul", pTag],
    -      ["rt", rtpTags],
    -      ["rp", rtpTags],
    -      ["tbody", tableSectionTags],
    -      ["tfoot", tableSectionTags]
    -    ]);
    -    var voidElements = /* @__PURE__ */ new Set([
    -      "area",
    -      "base",
    -      "basefont",
    -      "br",
    -      "col",
    -      "command",
    -      "embed",
    -      "frame",
    -      "hr",
    -      "img",
    -      "input",
    -      "isindex",
    -      "keygen",
    -      "link",
    -      "meta",
    -      "param",
    -      "source",
    -      "track",
    -      "wbr"
    -    ]);
    -    var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]);
    -    var htmlIntegrationElements = /* @__PURE__ */ new Set([
    -      "mi",
    -      "mo",
    -      "mn",
    -      "ms",
    -      "mtext",
    -      "annotation-xml",
    -      "foreignobject",
    -      "desc",
    -      "title"
    -    ]);
    -    var reNameEnd = /\s|\//;
    -    var Parser = (
    -      /** @class */
    -      function() {
    -        function Parser2(cbs, options2) {
    -          if (options2 === void 0) {
    -            options2 = {};
    -          }
    -          var _a, _b, _c, _d, _e;
    -          this.options = options2;
    -          this.startIndex = 0;
    -          this.endIndex = 0;
    -          this.openTagStart = 0;
    -          this.tagname = "";
    -          this.attribname = "";
    -          this.attribvalue = "";
    -          this.attribs = null;
    -          this.stack = [];
    -          this.foreignContext = [];
    -          this.buffers = [];
    -          this.bufferOffset = 0;
    -          this.writeIndex = 0;
    -          this.ended = false;
    -          this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
    -          this.lowerCaseTagNames = (_a = options2.lowerCaseTags) !== null && _a !== void 0 ? _a : !options2.xmlMode;
    -          this.lowerCaseAttributeNames = (_b = options2.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options2.xmlMode;
    -          this.tokenizer = new ((_c = options2.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);
    -          (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);
    -        }
    -        Parser2.prototype.ontext = function(start, endIndex) {
    -          var _a, _b;
    -          var data = this.getSlice(start, endIndex);
    -          this.endIndex = endIndex - 1;
    -          (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);
    -          this.startIndex = endIndex;
    -        };
    -        Parser2.prototype.ontextentity = function(cp) {
    -          var _a, _b;
    -          var index = this.tokenizer.getSectionStart();
    -          this.endIndex = index - 1;
    -          (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));
    -          this.startIndex = index;
    -        };
    -        Parser2.prototype.isVoidElement = function(name) {
    -          return !this.options.xmlMode && voidElements.has(name);
    -        };
    -        Parser2.prototype.onopentagname = function(start, endIndex) {
    -          this.endIndex = endIndex;
    -          var name = this.getSlice(start, endIndex);
    -          if (this.lowerCaseTagNames) {
    -            name = name.toLowerCase();
    -          }
    -          this.emitOpenTag(name);
    -        };
    -        Parser2.prototype.emitOpenTag = function(name) {
    -          var _a, _b, _c, _d;
    -          this.openTagStart = this.startIndex;
    -          this.tagname = name;
    -          var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);
    -          if (impliesClose) {
    -            while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) {
    -              var element = this.stack.pop();
    -              (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);
    -            }
    -          }
    -          if (!this.isVoidElement(name)) {
    -            this.stack.push(name);
    -            if (foreignContextElements.has(name)) {
    -              this.foreignContext.push(true);
    -            } else if (htmlIntegrationElements.has(name)) {
    -              this.foreignContext.push(false);
    -            }
    -          }
    -          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
    -          if (this.cbs.onopentag)
    -            this.attribs = {};
    -        };
    -        Parser2.prototype.endOpenTag = function(isImplied) {
    -          var _a, _b;
    -          this.startIndex = this.openTagStart;
    -          if (this.attribs) {
    -            (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);
    -            this.attribs = null;
    -          }
    -          if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
    -            this.cbs.onclosetag(this.tagname, true);
    -          }
    -          this.tagname = "";
    -        };
    -        Parser2.prototype.onopentagend = function(endIndex) {
    -          this.endIndex = endIndex;
    -          this.endOpenTag(false);
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.onclosetag = function(start, endIndex) {
    -          var _a, _b, _c, _d, _e, _f;
    -          this.endIndex = endIndex;
    -          var name = this.getSlice(start, endIndex);
    -          if (this.lowerCaseTagNames) {
    -            name = name.toLowerCase();
    -          }
    -          if (foreignContextElements.has(name) || htmlIntegrationElements.has(name)) {
    -            this.foreignContext.pop();
    -          }
    -          if (!this.isVoidElement(name)) {
    -            var pos = this.stack.lastIndexOf(name);
    -            if (pos !== -1) {
    -              if (this.cbs.onclosetag) {
    -                var count2 = this.stack.length - pos;
    -                while (count2--) {
    -                  this.cbs.onclosetag(this.stack.pop(), count2 !== 0);
    -                }
    -              } else
    -                this.stack.length = pos;
    -            } else if (!this.options.xmlMode && name === "p") {
    -              this.emitOpenTag("p");
    -              this.closeCurrentTag(true);
    -            }
    -          } else if (!this.options.xmlMode && name === "br") {
    -            (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, "br");
    -            (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true);
    -            (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", false);
    -          }
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.onselfclosingtag = function(endIndex) {
    -          this.endIndex = endIndex;
    -          if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) {
    -            this.closeCurrentTag(false);
    -            this.startIndex = endIndex + 1;
    -          } else {
    -            this.onopentagend(endIndex);
    -          }
    -        };
    -        Parser2.prototype.closeCurrentTag = function(isOpenImplied) {
    -          var _a, _b;
    -          var name = this.tagname;
    -          this.endOpenTag(isOpenImplied);
    -          if (this.stack[this.stack.length - 1] === name) {
    -            (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);
    -            this.stack.pop();
    -          }
    -        };
    -        Parser2.prototype.onattribname = function(start, endIndex) {
    -          this.startIndex = start;
    -          var name = this.getSlice(start, endIndex);
    -          this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name;
    -        };
    -        Parser2.prototype.onattribdata = function(start, endIndex) {
    -          this.attribvalue += this.getSlice(start, endIndex);
    -        };
    -        Parser2.prototype.onattribentity = function(cp) {
    -          this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);
    -        };
    -        Parser2.prototype.onattribend = function(quote, endIndex) {
    -          var _a, _b;
    -          this.endIndex = endIndex;
    -          (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
    -          if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
    -            this.attribs[this.attribname] = this.attribvalue;
    -          }
    -          this.attribvalue = "";
    -        };
    -        Parser2.prototype.getInstructionName = function(value) {
    -          var index = value.search(reNameEnd);
    -          var name = index < 0 ? value : value.substr(0, index);
    -          if (this.lowerCaseTagNames) {
    -            name = name.toLowerCase();
    -          }
    -          return name;
    -        };
    -        Parser2.prototype.ondeclaration = function(start, endIndex) {
    -          this.endIndex = endIndex;
    -          var value = this.getSlice(start, endIndex);
    -          if (this.cbs.onprocessinginstruction) {
    -            var name = this.getInstructionName(value);
    -            this.cbs.onprocessinginstruction("!".concat(name), "!".concat(value));
    -          }
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.onprocessinginstruction = function(start, endIndex) {
    -          this.endIndex = endIndex;
    -          var value = this.getSlice(start, endIndex);
    -          if (this.cbs.onprocessinginstruction) {
    -            var name = this.getInstructionName(value);
    -            this.cbs.onprocessinginstruction("?".concat(name), "?".concat(value));
    -          }
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.oncomment = function(start, endIndex, offset) {
    -          var _a, _b, _c, _d;
    -          this.endIndex = endIndex;
    -          (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));
    -          (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.oncdata = function(start, endIndex, offset) {
    -          var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
    -          this.endIndex = endIndex;
    -          var value = this.getSlice(start, endIndex - offset);
    -          if (this.options.xmlMode || this.options.recognizeCDATA) {
    -            (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);
    -            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
    -            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
    -          } else {
    -            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value, "]]"));
    -            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
    -          }
    -          this.startIndex = endIndex + 1;
    -        };
    -        Parser2.prototype.onend = function() {
    -          var _a, _b;
    -          if (this.cbs.onclosetag) {
    -            this.endIndex = this.startIndex;
    -            for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))
    -              ;
    -          }
    -          (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);
    -        };
    -        Parser2.prototype.reset = function() {
    -          var _a, _b, _c, _d;
    -          (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);
    -          this.tokenizer.reset();
    -          this.tagname = "";
    -          this.attribname = "";
    -          this.attribs = null;
    -          this.stack.length = 0;
    -          this.startIndex = 0;
    -          this.endIndex = 0;
    -          (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
    -          this.buffers.length = 0;
    -          this.bufferOffset = 0;
    -          this.writeIndex = 0;
    -          this.ended = false;
    -        };
    -        Parser2.prototype.parseComplete = function(data) {
    -          this.reset();
    -          this.end(data);
    -        };
    -        Parser2.prototype.getSlice = function(start, end) {
    -          while (start - this.bufferOffset >= this.buffers[0].length) {
    -            this.shiftBuffer();
    -          }
    -          var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);
    -          while (end - this.bufferOffset > this.buffers[0].length) {
    -            this.shiftBuffer();
    -            slice += this.buffers[0].slice(0, end - this.bufferOffset);
    -          }
    -          return slice;
    -        };
    -        Parser2.prototype.shiftBuffer = function() {
    -          this.bufferOffset += this.buffers[0].length;
    -          this.writeIndex--;
    -          this.buffers.shift();
    -        };
    -        Parser2.prototype.write = function(chunk) {
    -          var _a, _b;
    -          if (this.ended) {
    -            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".write() after done!"));
    -            return;
    -          }
    -          this.buffers.push(chunk);
    -          if (this.tokenizer.running) {
    -            this.tokenizer.write(chunk);
    -            this.writeIndex++;
    -          }
    -        };
    -        Parser2.prototype.end = function(chunk) {
    -          var _a, _b;
    -          if (this.ended) {
    -            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".end() after done!"));
    -            return;
    -          }
    -          if (chunk)
    -            this.write(chunk);
    -          this.ended = true;
    -          this.tokenizer.end();
    -        };
    -        Parser2.prototype.pause = function() {
    -          this.tokenizer.pause();
    -        };
    -        Parser2.prototype.resume = function() {
    -          this.tokenizer.resume();
    -          while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
    -            this.tokenizer.write(this.buffers[this.writeIndex++]);
    -          }
    -          if (this.ended)
    -            this.tokenizer.end();
    -        };
    -        Parser2.prototype.parseChunk = function(chunk) {
    -          this.write(chunk);
    -        };
    -        Parser2.prototype.done = function(chunk) {
    -          this.end(chunk);
    -        };
    -        return Parser2;
    -      }()
    -    );
    -    exports2.Parser = Parser;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js
    -var require_lib = __commonJS({
    -  "../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.Doctype = exports2.CDATA = exports2.Tag = exports2.Style = exports2.Script = exports2.Comment = exports2.Directive = exports2.Text = exports2.Root = exports2.isTag = exports2.ElementType = void 0;
    -    var ElementType;
    -    (function(ElementType2) {
    -      ElementType2["Root"] = "root";
    -      ElementType2["Text"] = "text";
    -      ElementType2["Directive"] = "directive";
    -      ElementType2["Comment"] = "comment";
    -      ElementType2["Script"] = "script";
    -      ElementType2["Style"] = "style";
    -      ElementType2["Tag"] = "tag";
    -      ElementType2["CDATA"] = "cdata";
    -      ElementType2["Doctype"] = "doctype";
    -    })(ElementType = exports2.ElementType || (exports2.ElementType = {}));
    -    function isTag(elem) {
    -      return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style;
    -    }
    -    exports2.isTag = isTag;
    -    exports2.Root = ElementType.Root;
    -    exports2.Text = ElementType.Text;
    -    exports2.Directive = ElementType.Directive;
    -    exports2.Comment = ElementType.Comment;
    -    exports2.Script = ElementType.Script;
    -    exports2.Style = ElementType.Style;
    -    exports2.Tag = ElementType.Tag;
    -    exports2.CDATA = ElementType.CDATA;
    -    exports2.Doctype = ElementType.Doctype;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js
    -var require_node = __commonJS({
    -  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js"(exports2) {
    -    "use strict";
    -    var __extends = exports2 && exports2.__extends || /* @__PURE__ */ function() {
    -      var extendStatics = function(d, b) {
    -        extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
    -          d2.__proto__ = b2;
    -        } || function(d2, b2) {
    -          for (var p in b2)
    -            if (Object.prototype.hasOwnProperty.call(b2, p))
    -              d2[p] = b2[p];
    -        };
    -        return extendStatics(d, b);
    -      };
    -      return function(d, b) {
    -        if (typeof b !== "function" && b !== null)
    -          throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
    -        extendStatics(d, b);
    -        function __() {
    -          this.constructor = d;
    -        }
    -        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    -      };
    -    }();
    -    var __assign = exports2 && exports2.__assign || function() {
    -      __assign = Object.assign || function(t) {
    -        for (var s, i = 1, n = arguments.length; i < n; i++) {
    -          s = arguments[i];
    -          for (var p in s)
    -            if (Object.prototype.hasOwnProperty.call(s, p))
    -              t[p] = s[p];
    -        }
    -        return t;
    -      };
    -      return __assign.apply(this, arguments);
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.cloneNode = exports2.hasChildren = exports2.isDocument = exports2.isDirective = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = exports2.Element = exports2.Document = exports2.CDATA = exports2.NodeWithChildren = exports2.ProcessingInstruction = exports2.Comment = exports2.Text = exports2.DataNode = exports2.Node = void 0;
    -    var domelementtype_1 = require_lib();
    -    var Node = (
    -      /** @class */
    -      function() {
    -        function Node2() {
    -          this.parent = null;
    -          this.prev = null;
    -          this.next = null;
    -          this.startIndex = null;
    -          this.endIndex = null;
    -        }
    -        Object.defineProperty(Node2.prototype, "parentNode", {
    -          // Read-write aliases for properties
    -          /**
    -           * Same as {@link parent}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.parent;
    -          },
    -          set: function(parent) {
    -            this.parent = parent;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(Node2.prototype, "previousSibling", {
    -          /**
    -           * Same as {@link prev}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.prev;
    -          },
    -          set: function(prev) {
    -            this.prev = prev;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(Node2.prototype, "nextSibling", {
    -          /**
    -           * Same as {@link next}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.next;
    -          },
    -          set: function(next) {
    -            this.next = next;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Node2.prototype.cloneNode = function(recursive) {
    -          if (recursive === void 0) {
    -            recursive = false;
    -          }
    -          return cloneNode(this, recursive);
    -        };
    -        return Node2;
    -      }()
    -    );
    -    exports2.Node = Node;
    -    var DataNode = (
    -      /** @class */
    -      function(_super) {
    -        __extends(DataNode2, _super);
    -        function DataNode2(data) {
    -          var _this = _super.call(this) || this;
    -          _this.data = data;
    -          return _this;
    -        }
    -        Object.defineProperty(DataNode2.prototype, "nodeValue", {
    -          /**
    -           * Same as {@link data}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.data;
    -          },
    -          set: function(data) {
    -            this.data = data;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return DataNode2;
    -      }(Node)
    -    );
    -    exports2.DataNode = DataNode;
    -    var Text2 = (
    -      /** @class */
    -      function(_super) {
    -        __extends(Text3, _super);
    -        function Text3() {
    -          var _this = _super !== null && _super.apply(this, arguments) || this;
    -          _this.type = domelementtype_1.ElementType.Text;
    -          return _this;
    -        }
    -        Object.defineProperty(Text3.prototype, "nodeType", {
    -          get: function() {
    -            return 3;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return Text3;
    -      }(DataNode)
    -    );
    -    exports2.Text = Text2;
    -    var Comment = (
    -      /** @class */
    -      function(_super) {
    -        __extends(Comment2, _super);
    -        function Comment2() {
    -          var _this = _super !== null && _super.apply(this, arguments) || this;
    -          _this.type = domelementtype_1.ElementType.Comment;
    -          return _this;
    -        }
    -        Object.defineProperty(Comment2.prototype, "nodeType", {
    -          get: function() {
    -            return 8;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return Comment2;
    -      }(DataNode)
    -    );
    -    exports2.Comment = Comment;
    -    var ProcessingInstruction = (
    -      /** @class */
    -      function(_super) {
    -        __extends(ProcessingInstruction2, _super);
    -        function ProcessingInstruction2(name, data) {
    -          var _this = _super.call(this, data) || this;
    -          _this.name = name;
    -          _this.type = domelementtype_1.ElementType.Directive;
    -          return _this;
    -        }
    -        Object.defineProperty(ProcessingInstruction2.prototype, "nodeType", {
    -          get: function() {
    -            return 1;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return ProcessingInstruction2;
    -      }(DataNode)
    -    );
    -    exports2.ProcessingInstruction = ProcessingInstruction;
    -    var NodeWithChildren = (
    -      /** @class */
    -      function(_super) {
    -        __extends(NodeWithChildren2, _super);
    -        function NodeWithChildren2(children) {
    -          var _this = _super.call(this) || this;
    -          _this.children = children;
    -          return _this;
    -        }
    -        Object.defineProperty(NodeWithChildren2.prototype, "firstChild", {
    -          // Aliases
    -          /** First child of the node. */
    -          get: function() {
    -            var _a;
    -            return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(NodeWithChildren2.prototype, "lastChild", {
    -          /** Last child of the node. */
    -          get: function() {
    -            return this.children.length > 0 ? this.children[this.children.length - 1] : null;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(NodeWithChildren2.prototype, "childNodes", {
    -          /**
    -           * Same as {@link children}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.children;
    -          },
    -          set: function(children) {
    -            this.children = children;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return NodeWithChildren2;
    -      }(Node)
    -    );
    -    exports2.NodeWithChildren = NodeWithChildren;
    -    var CDATA = (
    -      /** @class */
    -      function(_super) {
    -        __extends(CDATA2, _super);
    -        function CDATA2() {
    -          var _this = _super !== null && _super.apply(this, arguments) || this;
    -          _this.type = domelementtype_1.ElementType.CDATA;
    -          return _this;
    -        }
    -        Object.defineProperty(CDATA2.prototype, "nodeType", {
    -          get: function() {
    -            return 4;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return CDATA2;
    -      }(NodeWithChildren)
    -    );
    -    exports2.CDATA = CDATA;
    -    var Document = (
    -      /** @class */
    -      function(_super) {
    -        __extends(Document2, _super);
    -        function Document2() {
    -          var _this = _super !== null && _super.apply(this, arguments) || this;
    -          _this.type = domelementtype_1.ElementType.Root;
    -          return _this;
    -        }
    -        Object.defineProperty(Document2.prototype, "nodeType", {
    -          get: function() {
    -            return 9;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return Document2;
    -      }(NodeWithChildren)
    -    );
    -    exports2.Document = Document;
    -    var Element = (
    -      /** @class */
    -      function(_super) {
    -        __extends(Element2, _super);
    -        function Element2(name, attribs, children, type2) {
    -          if (children === void 0) {
    -            children = [];
    -          }
    -          if (type2 === void 0) {
    -            type2 = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag;
    -          }
    -          var _this = _super.call(this, children) || this;
    -          _this.name = name;
    -          _this.attribs = attribs;
    -          _this.type = type2;
    -          return _this;
    -        }
    -        Object.defineProperty(Element2.prototype, "nodeType", {
    -          get: function() {
    -            return 1;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(Element2.prototype, "tagName", {
    -          // DOM Level 1 aliases
    -          /**
    -           * Same as {@link name}.
    -           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
    -           */
    -          get: function() {
    -            return this.name;
    -          },
    -          set: function(name) {
    -            this.name = name;
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        Object.defineProperty(Element2.prototype, "attributes", {
    -          get: function() {
    -            var _this = this;
    -            return Object.keys(this.attribs).map(function(name) {
    -              var _a, _b;
    -              return {
    -                name,
    -                value: _this.attribs[name],
    -                namespace: (_a = _this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name],
    -                prefix: (_b = _this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name]
    -              };
    -            });
    -          },
    -          enumerable: false,
    -          configurable: true
    -        });
    -        return Element2;
    -      }(NodeWithChildren)
    -    );
    -    exports2.Element = Element;
    -    function isTag(node) {
    -      return (0, domelementtype_1.isTag)(node);
    -    }
    -    exports2.isTag = isTag;
    -    function isCDATA(node) {
    -      return node.type === domelementtype_1.ElementType.CDATA;
    -    }
    -    exports2.isCDATA = isCDATA;
    -    function isText(node) {
    -      return node.type === domelementtype_1.ElementType.Text;
    -    }
    -    exports2.isText = isText;
    -    function isComment(node) {
    -      return node.type === domelementtype_1.ElementType.Comment;
    -    }
    -    exports2.isComment = isComment;
    -    function isDirective(node) {
    -      return node.type === domelementtype_1.ElementType.Directive;
    -    }
    -    exports2.isDirective = isDirective;
    -    function isDocument(node) {
    -      return node.type === domelementtype_1.ElementType.Root;
    -    }
    -    exports2.isDocument = isDocument;
    -    function hasChildren(node) {
    -      return Object.prototype.hasOwnProperty.call(node, "children");
    -    }
    -    exports2.hasChildren = hasChildren;
    -    function cloneNode(node, recursive) {
    -      if (recursive === void 0) {
    -        recursive = false;
    -      }
    -      var result;
    -      if (isText(node)) {
    -        result = new Text2(node.data);
    -      } else if (isComment(node)) {
    -        result = new Comment(node.data);
    -      } else if (isTag(node)) {
    -        var children = recursive ? cloneChildren(node.children) : [];
    -        var clone_1 = new Element(node.name, __assign({}, node.attribs), children);
    -        children.forEach(function(child) {
    -          return child.parent = clone_1;
    -        });
    -        if (node.namespace != null) {
    -          clone_1.namespace = node.namespace;
    -        }
    -        if (node["x-attribsNamespace"]) {
    -          clone_1["x-attribsNamespace"] = __assign({}, node["x-attribsNamespace"]);
    -        }
    -        if (node["x-attribsPrefix"]) {
    -          clone_1["x-attribsPrefix"] = __assign({}, node["x-attribsPrefix"]);
    -        }
    -        result = clone_1;
    -      } else if (isCDATA(node)) {
    -        var children = recursive ? cloneChildren(node.children) : [];
    -        var clone_2 = new CDATA(children);
    -        children.forEach(function(child) {
    -          return child.parent = clone_2;
    -        });
    -        result = clone_2;
    -      } else if (isDocument(node)) {
    -        var children = recursive ? cloneChildren(node.children) : [];
    -        var clone_3 = new Document(children);
    -        children.forEach(function(child) {
    -          return child.parent = clone_3;
    -        });
    -        if (node["x-mode"]) {
    -          clone_3["x-mode"] = node["x-mode"];
    -        }
    -        result = clone_3;
    -      } else if (isDirective(node)) {
    -        var instruction = new ProcessingInstruction(node.name, node.data);
    -        if (node["x-name"] != null) {
    -          instruction["x-name"] = node["x-name"];
    -          instruction["x-publicId"] = node["x-publicId"];
    -          instruction["x-systemId"] = node["x-systemId"];
    -        }
    -        result = instruction;
    -      } else {
    -        throw new Error("Not implemented yet: ".concat(node.type));
    -      }
    -      result.startIndex = node.startIndex;
    -      result.endIndex = node.endIndex;
    -      if (node.sourceCodeLocation != null) {
    -        result.sourceCodeLocation = node.sourceCodeLocation;
    -      }
    -      return result;
    -    }
    -    exports2.cloneNode = cloneNode;
    -    function cloneChildren(childs) {
    -      var children = childs.map(function(child) {
    -        return cloneNode(child, true);
    -      });
    -      for (var i = 1; i < children.length; i++) {
    -        children[i].prev = children[i - 1];
    -        children[i - 1].next = children[i];
    -      }
    -      return children;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js
    -var require_lib2 = __commonJS({
    -  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js"(exports2) {
    -    "use strict";
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
    -      for (var p in m)
    -        if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
    -          __createBinding(exports3, m, p);
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.DomHandler = void 0;
    -    var domelementtype_1 = require_lib();
    -    var node_js_1 = require_node();
    -    __exportStar(require_node(), exports2);
    -    var defaultOpts = {
    -      withStartIndices: false,
    -      withEndIndices: false,
    -      xmlMode: false
    -    };
    -    var DomHandler = (
    -      /** @class */
    -      function() {
    -        function DomHandler2(callback2, options2, elementCB) {
    -          this.dom = [];
    -          this.root = new node_js_1.Document(this.dom);
    -          this.done = false;
    -          this.tagStack = [this.root];
    -          this.lastNode = null;
    -          this.parser = null;
    -          if (typeof options2 === "function") {
    -            elementCB = options2;
    -            options2 = defaultOpts;
    -          }
    -          if (typeof callback2 === "object") {
    -            options2 = callback2;
    -            callback2 = void 0;
    -          }
    -          this.callback = callback2 !== null && callback2 !== void 0 ? callback2 : null;
    -          this.options = options2 !== null && options2 !== void 0 ? options2 : defaultOpts;
    -          this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
    -        }
    -        DomHandler2.prototype.onparserinit = function(parser) {
    -          this.parser = parser;
    -        };
    -        DomHandler2.prototype.onreset = function() {
    -          this.dom = [];
    -          this.root = new node_js_1.Document(this.dom);
    -          this.done = false;
    -          this.tagStack = [this.root];
    -          this.lastNode = null;
    -          this.parser = null;
    -        };
    -        DomHandler2.prototype.onend = function() {
    -          if (this.done)
    -            return;
    -          this.done = true;
    -          this.parser = null;
    -          this.handleCallback(null);
    -        };
    -        DomHandler2.prototype.onerror = function(error) {
    -          this.handleCallback(error);
    -        };
    -        DomHandler2.prototype.onclosetag = function() {
    -          this.lastNode = null;
    -          var elem = this.tagStack.pop();
    -          if (this.options.withEndIndices) {
    -            elem.endIndex = this.parser.endIndex;
    -          }
    -          if (this.elementCB)
    -            this.elementCB(elem);
    -        };
    -        DomHandler2.prototype.onopentag = function(name, attribs) {
    -          var type2 = this.options.xmlMode ? domelementtype_1.ElementType.Tag : void 0;
    -          var element = new node_js_1.Element(name, attribs, void 0, type2);
    -          this.addNode(element);
    -          this.tagStack.push(element);
    -        };
    -        DomHandler2.prototype.ontext = function(data) {
    -          var lastNode = this.lastNode;
    -          if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {
    -            lastNode.data += data;
    -            if (this.options.withEndIndices) {
    -              lastNode.endIndex = this.parser.endIndex;
    -            }
    -          } else {
    -            var node = new node_js_1.Text(data);
    -            this.addNode(node);
    -            this.lastNode = node;
    -          }
    -        };
    -        DomHandler2.prototype.oncomment = function(data) {
    -          if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {
    -            this.lastNode.data += data;
    -            return;
    -          }
    -          var node = new node_js_1.Comment(data);
    -          this.addNode(node);
    -          this.lastNode = node;
    -        };
    -        DomHandler2.prototype.oncommentend = function() {
    -          this.lastNode = null;
    -        };
    -        DomHandler2.prototype.oncdatastart = function() {
    -          var text = new node_js_1.Text("");
    -          var node = new node_js_1.CDATA([text]);
    -          this.addNode(node);
    -          text.parent = node;
    -          this.lastNode = text;
    -        };
    -        DomHandler2.prototype.oncdataend = function() {
    -          this.lastNode = null;
    -        };
    -        DomHandler2.prototype.onprocessinginstruction = function(name, data) {
    -          var node = new node_js_1.ProcessingInstruction(name, data);
    -          this.addNode(node);
    -        };
    -        DomHandler2.prototype.handleCallback = function(error) {
    -          if (typeof this.callback === "function") {
    -            this.callback(error, this.dom);
    -          } else if (error) {
    -            throw error;
    -          }
    -        };
    -        DomHandler2.prototype.addNode = function(node) {
    -          var parent = this.tagStack[this.tagStack.length - 1];
    -          var previousSibling = parent.children[parent.children.length - 1];
    -          if (this.options.withStartIndices) {
    -            node.startIndex = this.parser.startIndex;
    -          }
    -          if (this.options.withEndIndices) {
    -            node.endIndex = this.parser.endIndex;
    -          }
    -          parent.children.push(node);
    -          if (previousSibling) {
    -            node.prev = previousSibling;
    -            previousSibling.next = node;
    -          }
    -          node.parent = parent;
    -          this.lastNode = null;
    -        };
    -        return DomHandler2;
    -      }()
    -    );
    -    exports2.DomHandler = DomHandler;
    -    exports2.default = DomHandler;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js
    -var require_encode_html = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    function restoreDiff(arr) {
    -      for (var i = 1; i < arr.length; i++) {
    -        arr[i][0] += arr[i - 1][0] + 1;
    -      }
    -      return arr;
    -    }
    -    exports2.default = new Map(/* @__PURE__ */ restoreDiff([[9, "	"], [0, "
    "], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, "­"], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, "‌"], [0, "‍"], [0, "‎"], [0, "‏"], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "⟨"], [0, "⟩"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]]));
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js
    -var require_escape = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.getCodePoint = exports2.xmlReplacer = void 0;
    -    exports2.xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
    -    var xmlCodeMap = /* @__PURE__ */ new Map([
    -      [34, """],
    -      [38, "&"],
    -      [39, "'"],
    -      [60, "<"],
    -      [62, ">"]
    -    ]);
    -    exports2.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
    -    String.prototype.codePointAt != null ? function(str2, index) {
    -      return str2.codePointAt(index);
    -    } : (
    -      // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    -      function(c, index) {
    -        return (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index);
    -      }
    -    );
    -    function encodeXML(str2) {
    -      var ret = "";
    -      var lastIdx = 0;
    -      var match2;
    -      while ((match2 = exports2.xmlReplacer.exec(str2)) !== null) {
    -        var i = match2.index;
    -        var char = str2.charCodeAt(i);
    -        var next = xmlCodeMap.get(char);
    -        if (next !== void 0) {
    -          ret += str2.substring(lastIdx, i) + next;
    -          lastIdx = i + 1;
    -        } else {
    -          ret += "".concat(str2.substring(lastIdx, i), "&#x").concat((0, exports2.getCodePoint)(str2, i).toString(16), ";");
    -          lastIdx = exports2.xmlReplacer.lastIndex += Number((char & 64512) === 55296);
    -        }
    -      }
    -      return ret + str2.substr(lastIdx);
    -    }
    -    exports2.encodeXML = encodeXML;
    -    exports2.escape = encodeXML;
    -    function getEscaper(regex, map4) {
    -      return function escape2(data) {
    -        var match2;
    -        var lastIdx = 0;
    -        var result = "";
    -        while (match2 = regex.exec(data)) {
    -          if (lastIdx !== match2.index) {
    -            result += data.substring(lastIdx, match2.index);
    -          }
    -          result += map4.get(match2[0].charCodeAt(0));
    -          lastIdx = match2.index + 1;
    -        }
    -        return result + data.substring(lastIdx);
    -      };
    -    }
    -    exports2.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
    -    exports2.escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([
    -      [34, """],
    -      [38, "&"],
    -      [160, " "]
    -    ]));
    -    exports2.escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
    -      [38, "&"],
    -      [60, "<"],
    -      [62, ">"],
    -      [160, " "]
    -    ]));
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js
    -var require_encode = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js"(exports2) {
    -    "use strict";
    -    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
    -      return mod && mod.__esModule ? mod : { "default": mod };
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.encodeNonAsciiHTML = exports2.encodeHTML = void 0;
    -    var encode_html_js_1 = __importDefault(require_encode_html());
    -    var escape_js_1 = require_escape();
    -    var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
    -    function encodeHTML(data) {
    -      return encodeHTMLTrieRe(htmlReplacer, data);
    -    }
    -    exports2.encodeHTML = encodeHTML;
    -    function encodeNonAsciiHTML(data) {
    -      return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);
    -    }
    -    exports2.encodeNonAsciiHTML = encodeNonAsciiHTML;
    -    function encodeHTMLTrieRe(regExp, str2) {
    -      var ret = "";
    -      var lastIdx = 0;
    -      var match2;
    -      while ((match2 = regExp.exec(str2)) !== null) {
    -        var i = match2.index;
    -        ret += str2.substring(lastIdx, i);
    -        var char = str2.charCodeAt(i);
    -        var next = encode_html_js_1.default.get(char);
    -        if (typeof next === "object") {
    -          if (i + 1 < str2.length) {
    -            var nextChar = str2.charCodeAt(i + 1);
    -            var value = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar);
    -            if (value !== void 0) {
    -              ret += value;
    -              lastIdx = regExp.lastIndex += 1;
    -              continue;
    -            }
    -          }
    -          next = next.v;
    -        }
    -        if (next !== void 0) {
    -          ret += next;
    -          lastIdx = i + 1;
    -        } else {
    -          var cp = (0, escape_js_1.getCodePoint)(str2, i);
    -          ret += "&#x".concat(cp.toString(16), ";");
    -          lastIdx = regExp.lastIndex += Number(cp !== char);
    -        }
    -      }
    -      return ret + str2.substr(lastIdx);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js
    -var require_lib3 = __commonJS({
    -  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.decodeXMLStrict = exports2.decodeHTML5Strict = exports2.decodeHTML4Strict = exports2.decodeHTML5 = exports2.decodeHTML4 = exports2.decodeHTMLAttribute = exports2.decodeHTMLStrict = exports2.decodeHTML = exports2.decodeXML = exports2.DecodingMode = exports2.EntityDecoder = exports2.encodeHTML5 = exports2.encodeHTML4 = exports2.encodeNonAsciiHTML = exports2.encodeHTML = exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.encode = exports2.decodeStrict = exports2.decode = exports2.EncodingMode = exports2.EntityLevel = void 0;
    -    var decode_js_1 = require_decode();
    -    var encode_js_1 = require_encode();
    -    var escape_js_1 = require_escape();
    -    var EntityLevel;
    -    (function(EntityLevel2) {
    -      EntityLevel2[EntityLevel2["XML"] = 0] = "XML";
    -      EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML";
    -    })(EntityLevel = exports2.EntityLevel || (exports2.EntityLevel = {}));
    -    var EncodingMode;
    -    (function(EncodingMode2) {
    -      EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8";
    -      EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII";
    -      EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive";
    -      EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute";
    -      EncodingMode2[EncodingMode2["Text"] = 4] = "Text";
    -    })(EncodingMode = exports2.EncodingMode || (exports2.EncodingMode = {}));
    -    function decode(data, options2) {
    -      if (options2 === void 0) {
    -        options2 = EntityLevel.XML;
    -      }
    -      var level = typeof options2 === "number" ? options2 : options2.level;
    -      if (level === EntityLevel.HTML) {
    -        var mode = typeof options2 === "object" ? options2.mode : void 0;
    -        return (0, decode_js_1.decodeHTML)(data, mode);
    -      }
    -      return (0, decode_js_1.decodeXML)(data);
    -    }
    -    exports2.decode = decode;
    -    function decodeStrict(data, options2) {
    -      var _a;
    -      if (options2 === void 0) {
    -        options2 = EntityLevel.XML;
    -      }
    -      var opts = typeof options2 === "number" ? { level: options2 } : options2;
    -      (_a = opts.mode) !== null && _a !== void 0 ? _a : opts.mode = decode_js_1.DecodingMode.Strict;
    -      return decode(data, opts);
    -    }
    -    exports2.decodeStrict = decodeStrict;
    -    function encode(data, options2) {
    -      if (options2 === void 0) {
    -        options2 = EntityLevel.XML;
    -      }
    -      var opts = typeof options2 === "number" ? { level: options2 } : options2;
    -      if (opts.mode === EncodingMode.UTF8)
    -        return (0, escape_js_1.escapeUTF8)(data);
    -      if (opts.mode === EncodingMode.Attribute)
    -        return (0, escape_js_1.escapeAttribute)(data);
    -      if (opts.mode === EncodingMode.Text)
    -        return (0, escape_js_1.escapeText)(data);
    -      if (opts.level === EntityLevel.HTML) {
    -        if (opts.mode === EncodingMode.ASCII) {
    -          return (0, encode_js_1.encodeNonAsciiHTML)(data);
    -        }
    -        return (0, encode_js_1.encodeHTML)(data);
    -      }
    -      return (0, escape_js_1.encodeXML)(data);
    -    }
    -    exports2.encode = encode;
    -    var escape_js_2 = require_escape();
    -    Object.defineProperty(exports2, "encodeXML", { enumerable: true, get: function() {
    -      return escape_js_2.encodeXML;
    -    } });
    -    Object.defineProperty(exports2, "escape", { enumerable: true, get: function() {
    -      return escape_js_2.escape;
    -    } });
    -    Object.defineProperty(exports2, "escapeUTF8", { enumerable: true, get: function() {
    -      return escape_js_2.escapeUTF8;
    -    } });
    -    Object.defineProperty(exports2, "escapeAttribute", { enumerable: true, get: function() {
    -      return escape_js_2.escapeAttribute;
    -    } });
    -    Object.defineProperty(exports2, "escapeText", { enumerable: true, get: function() {
    -      return escape_js_2.escapeText;
    -    } });
    -    var encode_js_2 = require_encode();
    -    Object.defineProperty(exports2, "encodeHTML", { enumerable: true, get: function() {
    -      return encode_js_2.encodeHTML;
    -    } });
    -    Object.defineProperty(exports2, "encodeNonAsciiHTML", { enumerable: true, get: function() {
    -      return encode_js_2.encodeNonAsciiHTML;
    -    } });
    -    Object.defineProperty(exports2, "encodeHTML4", { enumerable: true, get: function() {
    -      return encode_js_2.encodeHTML;
    -    } });
    -    Object.defineProperty(exports2, "encodeHTML5", { enumerable: true, get: function() {
    -      return encode_js_2.encodeHTML;
    -    } });
    -    var decode_js_2 = require_decode();
    -    Object.defineProperty(exports2, "EntityDecoder", { enumerable: true, get: function() {
    -      return decode_js_2.EntityDecoder;
    -    } });
    -    Object.defineProperty(exports2, "DecodingMode", { enumerable: true, get: function() {
    -      return decode_js_2.DecodingMode;
    -    } });
    -    Object.defineProperty(exports2, "decodeXML", { enumerable: true, get: function() {
    -      return decode_js_2.decodeXML;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTML", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTML;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTMLStrict", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTMLStrict;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTMLAttribute", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTMLAttribute;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTML4", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTML;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTML5", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTML;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTML4Strict", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTMLStrict;
    -    } });
    -    Object.defineProperty(exports2, "decodeHTML5Strict", { enumerable: true, get: function() {
    -      return decode_js_2.decodeHTMLStrict;
    -    } });
    -    Object.defineProperty(exports2, "decodeXMLStrict", { enumerable: true, get: function() {
    -      return decode_js_2.decodeXML;
    -    } });
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js
    -var require_foreignNames = __commonJS({
    -  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.attributeNames = exports2.elementNames = void 0;
    -    exports2.elementNames = new Map([
    -      "altGlyph",
    -      "altGlyphDef",
    -      "altGlyphItem",
    -      "animateColor",
    -      "animateMotion",
    -      "animateTransform",
    -      "clipPath",
    -      "feBlend",
    -      "feColorMatrix",
    -      "feComponentTransfer",
    -      "feComposite",
    -      "feConvolveMatrix",
    -      "feDiffuseLighting",
    -      "feDisplacementMap",
    -      "feDistantLight",
    -      "feDropShadow",
    -      "feFlood",
    -      "feFuncA",
    -      "feFuncB",
    -      "feFuncG",
    -      "feFuncR",
    -      "feGaussianBlur",
    -      "feImage",
    -      "feMerge",
    -      "feMergeNode",
    -      "feMorphology",
    -      "feOffset",
    -      "fePointLight",
    -      "feSpecularLighting",
    -      "feSpotLight",
    -      "feTile",
    -      "feTurbulence",
    -      "foreignObject",
    -      "glyphRef",
    -      "linearGradient",
    -      "radialGradient",
    -      "textPath"
    -    ].map(function(val) {
    -      return [val.toLowerCase(), val];
    -    }));
    -    exports2.attributeNames = new Map([
    -      "definitionURL",
    -      "attributeName",
    -      "attributeType",
    -      "baseFrequency",
    -      "baseProfile",
    -      "calcMode",
    -      "clipPathUnits",
    -      "diffuseConstant",
    -      "edgeMode",
    -      "filterUnits",
    -      "glyphRef",
    -      "gradientTransform",
    -      "gradientUnits",
    -      "kernelMatrix",
    -      "kernelUnitLength",
    -      "keyPoints",
    -      "keySplines",
    -      "keyTimes",
    -      "lengthAdjust",
    -      "limitingConeAngle",
    -      "markerHeight",
    -      "markerUnits",
    -      "markerWidth",
    -      "maskContentUnits",
    -      "maskUnits",
    -      "numOctaves",
    -      "pathLength",
    -      "patternContentUnits",
    -      "patternTransform",
    -      "patternUnits",
    -      "pointsAtX",
    -      "pointsAtY",
    -      "pointsAtZ",
    -      "preserveAlpha",
    -      "preserveAspectRatio",
    -      "primitiveUnits",
    -      "refX",
    -      "refY",
    -      "repeatCount",
    -      "repeatDur",
    -      "requiredExtensions",
    -      "requiredFeatures",
    -      "specularConstant",
    -      "specularExponent",
    -      "spreadMethod",
    -      "startOffset",
    -      "stdDeviation",
    -      "stitchTiles",
    -      "surfaceScale",
    -      "systemLanguage",
    -      "tableValues",
    -      "targetX",
    -      "targetY",
    -      "textLength",
    -      "viewBox",
    -      "viewTarget",
    -      "xChannelSelector",
    -      "yChannelSelector",
    -      "zoomAndPan"
    -    ].map(function(val) {
    -      return [val.toLowerCase(), val];
    -    }));
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js
    -var require_lib4 = __commonJS({
    -  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js"(exports2) {
    -    "use strict";
    -    var __assign = exports2 && exports2.__assign || function() {
    -      __assign = Object.assign || function(t) {
    -        for (var s, i = 1, n = arguments.length; i < n; i++) {
    -          s = arguments[i];
    -          for (var p in s)
    -            if (Object.prototype.hasOwnProperty.call(s, p))
    -              t[p] = s[p];
    -        }
    -        return t;
    -      };
    -      return __assign.apply(this, arguments);
    -    };
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
    -      Object.defineProperty(o, "default", { enumerable: true, value: v });
    -    } : function(o, v) {
    -      o["default"] = v;
    -    });
    -    var __importStar = exports2 && exports2.__importStar || function(mod) {
    -      if (mod && mod.__esModule)
    -        return mod;
    -      var result = {};
    -      if (mod != null) {
    -        for (var k in mod)
    -          if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
    -            __createBinding(result, mod, k);
    -      }
    -      __setModuleDefault(result, mod);
    -      return result;
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.render = void 0;
    -    var ElementType = __importStar(require_lib());
    -    var entities_1 = require_lib3();
    -    var foreignNames_js_1 = require_foreignNames();
    -    var unencodedElements = /* @__PURE__ */ new Set([
    -      "style",
    -      "script",
    -      "xmp",
    -      "iframe",
    -      "noembed",
    -      "noframes",
    -      "plaintext",
    -      "noscript"
    -    ]);
    -    function replaceQuotes(value) {
    -      return value.replace(/"/g, """);
    -    }
    -    function formatAttributes(attributes, opts) {
    -      var _a;
    -      if (!attributes)
    -        return;
    -      var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute;
    -      return Object.keys(attributes).map(function(key) {
    -        var _a2, _b;
    -        var value = (_a2 = attributes[key]) !== null && _a2 !== void 0 ? _a2 : "";
    -        if (opts.xmlMode === "foreign") {
    -          key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;
    -        }
    -        if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
    -          return key;
    -        }
    -        return "".concat(key, '="').concat(encode(value), '"');
    -      }).join(" ");
    -    }
    -    var singleTag = /* @__PURE__ */ new Set([
    -      "area",
    -      "base",
    -      "basefont",
    -      "br",
    -      "col",
    -      "command",
    -      "embed",
    -      "frame",
    -      "hr",
    -      "img",
    -      "input",
    -      "isindex",
    -      "keygen",
    -      "link",
    -      "meta",
    -      "param",
    -      "source",
    -      "track",
    -      "wbr"
    -    ]);
    -    function render(node, options2) {
    -      if (options2 === void 0) {
    -        options2 = {};
    -      }
    -      var nodes = "length" in node ? node : [node];
    -      var output = "";
    -      for (var i = 0; i < nodes.length; i++) {
    -        output += renderNode(nodes[i], options2);
    -      }
    -      return output;
    -    }
    -    exports2.render = render;
    -    exports2.default = render;
    -    function renderNode(node, options2) {
    -      switch (node.type) {
    -        case ElementType.Root:
    -          return render(node.children, options2);
    -        case ElementType.Doctype:
    -        case ElementType.Directive:
    -          return renderDirective(node);
    -        case ElementType.Comment:
    -          return renderComment(node);
    -        case ElementType.CDATA:
    -          return renderCdata(node);
    -        case ElementType.Script:
    -        case ElementType.Style:
    -        case ElementType.Tag:
    -          return renderTag(node, options2);
    -        case ElementType.Text:
    -          return renderText(node, options2);
    -      }
    -    }
    -    var foreignModeIntegrationPoints = /* @__PURE__ */ new Set([
    -      "mi",
    -      "mo",
    -      "mn",
    -      "ms",
    -      "mtext",
    -      "annotation-xml",
    -      "foreignObject",
    -      "desc",
    -      "title"
    -    ]);
    -    var foreignElements = /* @__PURE__ */ new Set(["svg", "math"]);
    -    function renderTag(elem, opts) {
    -      var _a;
    -      if (opts.xmlMode === "foreign") {
    -        elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;
    -        if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) {
    -          opts = __assign(__assign({}, opts), { xmlMode: false });
    -        }
    -      }
    -      if (!opts.xmlMode && foreignElements.has(elem.name)) {
    -        opts = __assign(__assign({}, opts), { xmlMode: "foreign" });
    -      }
    -      var tag = "<".concat(elem.name);
    -      var attribs = formatAttributes(elem.attribs, opts);
    -      if (attribs) {
    -        tag += " ".concat(attribs);
    -      }
    -      if (elem.children.length === 0 && (opts.xmlMode ? (
    -        // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
    -        opts.selfClosingTags !== false
    -      ) : (
    -        // User explicitly asked for self-closing tags, even in HTML mode
    -        opts.selfClosingTags && singleTag.has(elem.name)
    -      ))) {
    -        if (!opts.xmlMode)
    -          tag += " ";
    -        tag += "/>";
    -      } else {
    -        tag += ">";
    -        if (elem.children.length > 0) {
    -          tag += render(elem.children, opts);
    -        }
    -        if (opts.xmlMode || !singleTag.has(elem.name)) {
    -          tag += "");
    -        }
    -      }
    -      return tag;
    -    }
    -    function renderDirective(elem) {
    -      return "<".concat(elem.data, ">");
    -    }
    -    function renderText(elem, opts) {
    -      var _a;
    -      var data = elem.data || "";
    -      if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) {
    -        data = opts.xmlMode || opts.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data) : (0, entities_1.escapeText)(data);
    -      }
    -      return data;
    -    }
    -    function renderCdata(elem) {
    -      return "");
    -    }
    -    function renderComment(elem) {
    -      return "");
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.js
    -var require_stringify = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.js"(exports2) {
    -    "use strict";
    -    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
    -      return mod && mod.__esModule ? mod : { "default": mod };
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.innerText = exports2.textContent = exports2.getText = exports2.getInnerHTML = exports2.getOuterHTML = void 0;
    -    var domhandler_1 = require_lib2();
    -    var dom_serializer_1 = __importDefault(require_lib4());
    -    var domelementtype_1 = require_lib();
    -    function getOuterHTML(node, options2) {
    -      return (0, dom_serializer_1.default)(node, options2);
    -    }
    -    exports2.getOuterHTML = getOuterHTML;
    -    function getInnerHTML(node, options2) {
    -      return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) {
    -        return getOuterHTML(node2, options2);
    -      }).join("") : "";
    -    }
    -    exports2.getInnerHTML = getInnerHTML;
    -    function getText2(node) {
    -      if (Array.isArray(node))
    -        return node.map(getText2).join("");
    -      if ((0, domhandler_1.isTag)(node))
    -        return node.name === "br" ? "\n" : getText2(node.children);
    -      if ((0, domhandler_1.isCDATA)(node))
    -        return getText2(node.children);
    -      if ((0, domhandler_1.isText)(node))
    -        return node.data;
    -      return "";
    -    }
    -    exports2.getText = getText2;
    -    function textContent(node) {
    -      if (Array.isArray(node))
    -        return node.map(textContent).join("");
    -      if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {
    -        return textContent(node.children);
    -      }
    -      if ((0, domhandler_1.isText)(node))
    -        return node.data;
    -      return "";
    -    }
    -    exports2.textContent = textContent;
    -    function innerText(node) {
    -      if (Array.isArray(node))
    -        return node.map(innerText).join("");
    -      if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {
    -        return innerText(node.children);
    -      }
    -      if ((0, domhandler_1.isText)(node))
    -        return node.data;
    -      return "";
    -    }
    -    exports2.innerText = innerText;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.js
    -var require_traversal = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.prevElementSibling = exports2.nextElementSibling = exports2.getName = exports2.hasAttrib = exports2.getAttributeValue = exports2.getSiblings = exports2.getParent = exports2.getChildren = void 0;
    -    var domhandler_1 = require_lib2();
    -    function getChildren(elem) {
    -      return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];
    -    }
    -    exports2.getChildren = getChildren;
    -    function getParent(elem) {
    -      return elem.parent || null;
    -    }
    -    exports2.getParent = getParent;
    -    function getSiblings(elem) {
    -      var _a, _b;
    -      var parent = getParent(elem);
    -      if (parent != null)
    -        return getChildren(parent);
    -      var siblings = [elem];
    -      var prev = elem.prev, next = elem.next;
    -      while (prev != null) {
    -        siblings.unshift(prev);
    -        _a = prev, prev = _a.prev;
    -      }
    -      while (next != null) {
    -        siblings.push(next);
    -        _b = next, next = _b.next;
    -      }
    -      return siblings;
    -    }
    -    exports2.getSiblings = getSiblings;
    -    function getAttributeValue(elem, name) {
    -      var _a;
    -      return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];
    -    }
    -    exports2.getAttributeValue = getAttributeValue;
    -    function hasAttrib(elem, name) {
    -      return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null;
    -    }
    -    exports2.hasAttrib = hasAttrib;
    -    function getName(elem) {
    -      return elem.name;
    -    }
    -    exports2.getName = getName;
    -    function nextElementSibling(elem) {
    -      var _a;
    -      var next = elem.next;
    -      while (next !== null && !(0, domhandler_1.isTag)(next))
    -        _a = next, next = _a.next;
    -      return next;
    -    }
    -    exports2.nextElementSibling = nextElementSibling;
    -    function prevElementSibling(elem) {
    -      var _a;
    -      var prev = elem.prev;
    -      while (prev !== null && !(0, domhandler_1.isTag)(prev))
    -        _a = prev, prev = _a.prev;
    -      return prev;
    -    }
    -    exports2.prevElementSibling = prevElementSibling;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.js
    -var require_manipulation = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.prepend = exports2.prependChild = exports2.append = exports2.appendChild = exports2.replaceElement = exports2.removeElement = void 0;
    -    function removeElement(elem) {
    -      if (elem.prev)
    -        elem.prev.next = elem.next;
    -      if (elem.next)
    -        elem.next.prev = elem.prev;
    -      if (elem.parent) {
    -        var childs = elem.parent.children;
    -        var childsIndex = childs.lastIndexOf(elem);
    -        if (childsIndex >= 0) {
    -          childs.splice(childsIndex, 1);
    -        }
    -      }
    -      elem.next = null;
    -      elem.prev = null;
    -      elem.parent = null;
    -    }
    -    exports2.removeElement = removeElement;
    -    function replaceElement(elem, replacement) {
    -      var prev = replacement.prev = elem.prev;
    -      if (prev) {
    -        prev.next = replacement;
    -      }
    -      var next = replacement.next = elem.next;
    -      if (next) {
    -        next.prev = replacement;
    -      }
    -      var parent = replacement.parent = elem.parent;
    -      if (parent) {
    -        var childs = parent.children;
    -        childs[childs.lastIndexOf(elem)] = replacement;
    -        elem.parent = null;
    -      }
    -    }
    -    exports2.replaceElement = replaceElement;
    -    function appendChild(parent, child) {
    -      removeElement(child);
    -      child.next = null;
    -      child.parent = parent;
    -      if (parent.children.push(child) > 1) {
    -        var sibling = parent.children[parent.children.length - 2];
    -        sibling.next = child;
    -        child.prev = sibling;
    -      } else {
    -        child.prev = null;
    -      }
    -    }
    -    exports2.appendChild = appendChild;
    -    function append(elem, next) {
    -      removeElement(next);
    -      var parent = elem.parent;
    -      var currNext = elem.next;
    -      next.next = currNext;
    -      next.prev = elem;
    -      elem.next = next;
    -      next.parent = parent;
    -      if (currNext) {
    -        currNext.prev = next;
    -        if (parent) {
    -          var childs = parent.children;
    -          childs.splice(childs.lastIndexOf(currNext), 0, next);
    -        }
    -      } else if (parent) {
    -        parent.children.push(next);
    -      }
    -    }
    -    exports2.append = append;
    -    function prependChild(parent, child) {
    -      removeElement(child);
    -      child.parent = parent;
    -      child.prev = null;
    -      if (parent.children.unshift(child) !== 1) {
    -        var sibling = parent.children[1];
    -        sibling.prev = child;
    -        child.next = sibling;
    -      } else {
    -        child.next = null;
    -      }
    -    }
    -    exports2.prependChild = prependChild;
    -    function prepend(elem, prev) {
    -      removeElement(prev);
    -      var parent = elem.parent;
    -      if (parent) {
    -        var childs = parent.children;
    -        childs.splice(childs.indexOf(elem), 0, prev);
    -      }
    -      if (elem.prev) {
    -        elem.prev.next = prev;
    -      }
    -      prev.parent = parent;
    -      prev.prev = elem.prev;
    -      prev.next = elem;
    -      elem.prev = prev;
    -    }
    -    exports2.prepend = prepend;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.js
    -var require_querying = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.findAll = exports2.existsOne = exports2.findOne = exports2.findOneChild = exports2.find = exports2.filter = void 0;
    -    var domhandler_1 = require_lib2();
    -    function filter2(test, node, recurse, limit) {
    -      if (recurse === void 0) {
    -        recurse = true;
    -      }
    -      if (limit === void 0) {
    -        limit = Infinity;
    -      }
    -      return find(test, Array.isArray(node) ? node : [node], recurse, limit);
    -    }
    -    exports2.filter = filter2;
    -    function find(test, nodes, recurse, limit) {
    -      var result = [];
    -      var nodeStack = [nodes];
    -      var indexStack = [0];
    -      for (; ; ) {
    -        if (indexStack[0] >= nodeStack[0].length) {
    -          if (indexStack.length === 1) {
    -            return result;
    -          }
    -          nodeStack.shift();
    -          indexStack.shift();
    -          continue;
    -        }
    -        var elem = nodeStack[0][indexStack[0]++];
    -        if (test(elem)) {
    -          result.push(elem);
    -          if (--limit <= 0)
    -            return result;
    -        }
    -        if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {
    -          indexStack.unshift(0);
    -          nodeStack.unshift(elem.children);
    -        }
    -      }
    -    }
    -    exports2.find = find;
    -    function findOneChild(test, nodes) {
    -      return nodes.find(test);
    -    }
    -    exports2.findOneChild = findOneChild;
    -    function findOne(test, nodes, recurse) {
    -      if (recurse === void 0) {
    -        recurse = true;
    -      }
    -      var elem = null;
    -      for (var i = 0; i < nodes.length && !elem; i++) {
    -        var node = nodes[i];
    -        if (!(0, domhandler_1.isTag)(node)) {
    -          continue;
    -        } else if (test(node)) {
    -          elem = node;
    -        } else if (recurse && node.children.length > 0) {
    -          elem = findOne(test, node.children, true);
    -        }
    -      }
    -      return elem;
    -    }
    -    exports2.findOne = findOne;
    -    function existsOne(test, nodes) {
    -      return nodes.some(function(checked) {
    -        return (0, domhandler_1.isTag)(checked) && (test(checked) || existsOne(test, checked.children));
    -      });
    -    }
    -    exports2.existsOne = existsOne;
    -    function findAll(test, nodes) {
    -      var result = [];
    -      var nodeStack = [nodes];
    -      var indexStack = [0];
    -      for (; ; ) {
    -        if (indexStack[0] >= nodeStack[0].length) {
    -          if (nodeStack.length === 1) {
    -            return result;
    -          }
    -          nodeStack.shift();
    -          indexStack.shift();
    -          continue;
    -        }
    -        var elem = nodeStack[0][indexStack[0]++];
    -        if (!(0, domhandler_1.isTag)(elem))
    -          continue;
    -        if (test(elem))
    -          result.push(elem);
    -        if (elem.children.length > 0) {
    -          indexStack.unshift(0);
    -          nodeStack.unshift(elem.children);
    -        }
    -      }
    -    }
    -    exports2.findAll = findAll;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.js
    -var require_legacy = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.getElementsByTagType = exports2.getElementsByTagName = exports2.getElementById = exports2.getElements = exports2.testElement = void 0;
    -    var domhandler_1 = require_lib2();
    -    var querying_js_1 = require_querying();
    -    var Checks = {
    -      tag_name: function(name) {
    -        if (typeof name === "function") {
    -          return function(elem) {
    -            return (0, domhandler_1.isTag)(elem) && name(elem.name);
    -          };
    -        } else if (name === "*") {
    -          return domhandler_1.isTag;
    -        }
    -        return function(elem) {
    -          return (0, domhandler_1.isTag)(elem) && elem.name === name;
    -        };
    -      },
    -      tag_type: function(type2) {
    -        if (typeof type2 === "function") {
    -          return function(elem) {
    -            return type2(elem.type);
    -          };
    -        }
    -        return function(elem) {
    -          return elem.type === type2;
    -        };
    -      },
    -      tag_contains: function(data) {
    -        if (typeof data === "function") {
    -          return function(elem) {
    -            return (0, domhandler_1.isText)(elem) && data(elem.data);
    -          };
    -        }
    -        return function(elem) {
    -          return (0, domhandler_1.isText)(elem) && elem.data === data;
    -        };
    -      }
    -    };
    -    function getAttribCheck(attrib, value) {
    -      if (typeof value === "function") {
    -        return function(elem) {
    -          return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]);
    -        };
    -      }
    -      return function(elem) {
    -        return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value;
    -      };
    -    }
    -    function combineFuncs(a, b) {
    -      return function(elem) {
    -        return a(elem) || b(elem);
    -      };
    -    }
    -    function compileTest(options2) {
    -      var funcs = Object.keys(options2).map(function(key) {
    -        var value = options2[key];
    -        return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value);
    -      });
    -      return funcs.length === 0 ? null : funcs.reduce(combineFuncs);
    -    }
    -    function testElement(options2, node) {
    -      var test = compileTest(options2);
    -      return test ? test(node) : true;
    -    }
    -    exports2.testElement = testElement;
    -    function getElements(options2, nodes, recurse, limit) {
    -      if (limit === void 0) {
    -        limit = Infinity;
    -      }
    -      var test = compileTest(options2);
    -      return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];
    -    }
    -    exports2.getElements = getElements;
    -    function getElementById(id, nodes, recurse) {
    -      if (recurse === void 0) {
    -        recurse = true;
    -      }
    -      if (!Array.isArray(nodes))
    -        nodes = [nodes];
    -      return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse);
    -    }
    -    exports2.getElementById = getElementById;
    -    function getElementsByTagName(tagName, nodes, recurse, limit) {
    -      if (recurse === void 0) {
    -        recurse = true;
    -      }
    -      if (limit === void 0) {
    -        limit = Infinity;
    -      }
    -      return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit);
    -    }
    -    exports2.getElementsByTagName = getElementsByTagName;
    -    function getElementsByTagType(type2, nodes, recurse, limit) {
    -      if (recurse === void 0) {
    -        recurse = true;
    -      }
    -      if (limit === void 0) {
    -        limit = Infinity;
    -      }
    -      return (0, querying_js_1.filter)(Checks["tag_type"](type2), nodes, recurse, limit);
    -    }
    -    exports2.getElementsByTagType = getElementsByTagType;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.js
    -var require_helpers = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.uniqueSort = exports2.compareDocumentPosition = exports2.DocumentPosition = exports2.removeSubsets = void 0;
    -    var domhandler_1 = require_lib2();
    -    function removeSubsets(nodes) {
    -      var idx = nodes.length;
    -      while (--idx >= 0) {
    -        var node = nodes[idx];
    -        if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {
    -          nodes.splice(idx, 1);
    -          continue;
    -        }
    -        for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {
    -          if (nodes.includes(ancestor)) {
    -            nodes.splice(idx, 1);
    -            break;
    -          }
    -        }
    -      }
    -      return nodes;
    -    }
    -    exports2.removeSubsets = removeSubsets;
    -    var DocumentPosition;
    -    (function(DocumentPosition2) {
    -      DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED";
    -      DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING";
    -      DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING";
    -      DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS";
    -      DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY";
    -    })(DocumentPosition = exports2.DocumentPosition || (exports2.DocumentPosition = {}));
    -    function compareDocumentPosition(nodeA, nodeB) {
    -      var aParents = [];
    -      var bParents = [];
    -      if (nodeA === nodeB) {
    -        return 0;
    -      }
    -      var current2 = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;
    -      while (current2) {
    -        aParents.unshift(current2);
    -        current2 = current2.parent;
    -      }
    -      current2 = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;
    -      while (current2) {
    -        bParents.unshift(current2);
    -        current2 = current2.parent;
    -      }
    -      var maxIdx = Math.min(aParents.length, bParents.length);
    -      var idx = 0;
    -      while (idx < maxIdx && aParents[idx] === bParents[idx]) {
    -        idx++;
    -      }
    -      if (idx === 0) {
    -        return DocumentPosition.DISCONNECTED;
    -      }
    -      var sharedParent = aParents[idx - 1];
    -      var siblings = sharedParent.children;
    -      var aSibling = aParents[idx];
    -      var bSibling = bParents[idx];
    -      if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {
    -        if (sharedParent === nodeB) {
    -          return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;
    -        }
    -        return DocumentPosition.FOLLOWING;
    -      }
    -      if (sharedParent === nodeA) {
    -        return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;
    -      }
    -      return DocumentPosition.PRECEDING;
    -    }
    -    exports2.compareDocumentPosition = compareDocumentPosition;
    -    function uniqueSort(nodes) {
    -      nodes = nodes.filter(function(node, i, arr) {
    -        return !arr.includes(node, i + 1);
    -      });
    -      nodes.sort(function(a, b) {
    -        var relative2 = compareDocumentPosition(a, b);
    -        if (relative2 & DocumentPosition.PRECEDING) {
    -          return -1;
    -        } else if (relative2 & DocumentPosition.FOLLOWING) {
    -          return 1;
    -        }
    -        return 0;
    -      });
    -      return nodes;
    -    }
    -    exports2.uniqueSort = uniqueSort;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.js
    -var require_feeds = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.getFeed = void 0;
    -    var stringify_js_1 = require_stringify();
    -    var legacy_js_1 = require_legacy();
    -    function getFeed(doc) {
    -      var feedRoot = getOneElement(isValidFeed, doc);
    -      return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot);
    -    }
    -    exports2.getFeed = getFeed;
    -    function getAtomFeed(feedRoot) {
    -      var _a;
    -      var childs = feedRoot.children;
    -      var feed = {
    -        type: "atom",
    -        items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) {
    -          var _a2;
    -          var children = item.children;
    -          var entry2 = { media: getMediaElements(children) };
    -          addConditionally(entry2, "id", "id", children);
    -          addConditionally(entry2, "title", "title", children);
    -          var href2 = (_a2 = getOneElement("link", children)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"];
    -          if (href2) {
    -            entry2.link = href2;
    -          }
    -          var description = fetch("summary", children) || fetch("content", children);
    -          if (description) {
    -            entry2.description = description;
    -          }
    -          var pubDate = fetch("updated", children);
    -          if (pubDate) {
    -            entry2.pubDate = new Date(pubDate);
    -          }
    -          return entry2;
    -        })
    -      };
    -      addConditionally(feed, "id", "id", childs);
    -      addConditionally(feed, "title", "title", childs);
    -      var href = (_a = getOneElement("link", childs)) === null || _a === void 0 ? void 0 : _a.attribs["href"];
    -      if (href) {
    -        feed.link = href;
    -      }
    -      addConditionally(feed, "description", "subtitle", childs);
    -      var updated = fetch("updated", childs);
    -      if (updated) {
    -        feed.updated = new Date(updated);
    -      }
    -      addConditionally(feed, "author", "email", childs, true);
    -      return feed;
    -    }
    -    function getRssFeed(feedRoot) {
    -      var _a, _b;
    -      var childs = (_b = (_a = getOneElement("channel", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];
    -      var feed = {
    -        type: feedRoot.name.substr(0, 3),
    -        id: "",
    -        items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) {
    -          var children = item.children;
    -          var entry2 = { media: getMediaElements(children) };
    -          addConditionally(entry2, "id", "guid", children);
    -          addConditionally(entry2, "title", "title", children);
    -          addConditionally(entry2, "link", "link", children);
    -          addConditionally(entry2, "description", "description", children);
    -          var pubDate = fetch("pubDate", children) || fetch("dc:date", children);
    -          if (pubDate)
    -            entry2.pubDate = new Date(pubDate);
    -          return entry2;
    -        })
    -      };
    -      addConditionally(feed, "title", "title", childs);
    -      addConditionally(feed, "link", "link", childs);
    -      addConditionally(feed, "description", "description", childs);
    -      var updated = fetch("lastBuildDate", childs);
    -      if (updated) {
    -        feed.updated = new Date(updated);
    -      }
    -      addConditionally(feed, "author", "managingEditor", childs, true);
    -      return feed;
    -    }
    -    var MEDIA_KEYS_STRING = ["url", "type", "lang"];
    -    var MEDIA_KEYS_INT = [
    -      "fileSize",
    -      "bitrate",
    -      "framerate",
    -      "samplingrate",
    -      "channels",
    -      "duration",
    -      "height",
    -      "width"
    -    ];
    -    function getMediaElements(where) {
    -      return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) {
    -        var attribs = elem.attribs;
    -        var media = {
    -          medium: attribs["medium"],
    -          isDefault: !!attribs["isDefault"]
    -        };
    -        for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {
    -          var attrib = MEDIA_KEYS_STRING_1[_i];
    -          if (attribs[attrib]) {
    -            media[attrib] = attribs[attrib];
    -          }
    -        }
    -        for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {
    -          var attrib = MEDIA_KEYS_INT_1[_a];
    -          if (attribs[attrib]) {
    -            media[attrib] = parseInt(attribs[attrib], 10);
    -          }
    -        }
    -        if (attribs["expression"]) {
    -          media.expression = attribs["expression"];
    -        }
    -        return media;
    -      });
    -    }
    -    function getOneElement(tagName, node) {
    -      return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];
    -    }
    -    function fetch(tagName, where, recurse) {
    -      if (recurse === void 0) {
    -        recurse = false;
    -      }
    -      return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();
    -    }
    -    function addConditionally(obj, prop, tagName, where, recurse) {
    -      if (recurse === void 0) {
    -        recurse = false;
    -      }
    -      var val = fetch(tagName, where, recurse);
    -      if (val)
    -        obj[prop] = val;
    -    }
    -    function isValidFeed(value) {
    -      return value === "rss" || value === "feed" || value === "rdf:RDF";
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.js
    -var require_lib5 = __commonJS({
    -  "../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.js"(exports2) {
    -    "use strict";
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
    -      for (var p in m)
    -        if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
    -          __createBinding(exports3, m, p);
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.hasChildren = exports2.isDocument = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = void 0;
    -    __exportStar(require_stringify(), exports2);
    -    __exportStar(require_traversal(), exports2);
    -    __exportStar(require_manipulation(), exports2);
    -    __exportStar(require_querying(), exports2);
    -    __exportStar(require_legacy(), exports2);
    -    __exportStar(require_helpers(), exports2);
    -    __exportStar(require_feeds(), exports2);
    -    var domhandler_1 = require_lib2();
    -    Object.defineProperty(exports2, "isTag", { enumerable: true, get: function() {
    -      return domhandler_1.isTag;
    -    } });
    -    Object.defineProperty(exports2, "isCDATA", { enumerable: true, get: function() {
    -      return domhandler_1.isCDATA;
    -    } });
    -    Object.defineProperty(exports2, "isText", { enumerable: true, get: function() {
    -      return domhandler_1.isText;
    -    } });
    -    Object.defineProperty(exports2, "isComment", { enumerable: true, get: function() {
    -      return domhandler_1.isComment;
    -    } });
    -    Object.defineProperty(exports2, "isDocument", { enumerable: true, get: function() {
    -      return domhandler_1.isDocument;
    -    } });
    -    Object.defineProperty(exports2, "hasChildren", { enumerable: true, get: function() {
    -      return domhandler_1.hasChildren;
    -    } });
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js
    -var require_lib6 = __commonJS({
    -  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js"(exports2) {
    -    "use strict";
    -    var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      var desc = Object.getOwnPropertyDescriptor(m, k);
    -      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    -        desc = { enumerable: true, get: function() {
    -          return m[k];
    -        } };
    -      }
    -      Object.defineProperty(o, k2, desc);
    -    } : function(o, m, k, k2) {
    -      if (k2 === void 0)
    -        k2 = k;
    -      o[k2] = m[k];
    -    });
    -    var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
    -      Object.defineProperty(o, "default", { enumerable: true, value: v });
    -    } : function(o, v) {
    -      o["default"] = v;
    -    });
    -    var __importStar = exports2 && exports2.__importStar || function(mod) {
    -      if (mod && mod.__esModule)
    -        return mod;
    -      var result = {};
    -      if (mod != null) {
    -        for (var k in mod)
    -          if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
    -            __createBinding(result, mod, k);
    -      }
    -      __setModuleDefault(result, mod);
    -      return result;
    -    };
    -    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
    -      return mod && mod.__esModule ? mod : { "default": mod };
    -    };
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    exports2.DomUtils = exports2.parseFeed = exports2.getFeed = exports2.ElementType = exports2.Tokenizer = exports2.createDomStream = exports2.parseDOM = exports2.parseDocument = exports2.DefaultHandler = exports2.DomHandler = exports2.Parser = void 0;
    -    var Parser_js_1 = require_Parser();
    -    var Parser_js_2 = require_Parser();
    -    Object.defineProperty(exports2, "Parser", { enumerable: true, get: function() {
    -      return Parser_js_2.Parser;
    -    } });
    -    var domhandler_1 = require_lib2();
    -    var domhandler_2 = require_lib2();
    -    Object.defineProperty(exports2, "DomHandler", { enumerable: true, get: function() {
    -      return domhandler_2.DomHandler;
    -    } });
    -    Object.defineProperty(exports2, "DefaultHandler", { enumerable: true, get: function() {
    -      return domhandler_2.DomHandler;
    -    } });
    -    function parseDocument(data, options2) {
    -      var handler = new domhandler_1.DomHandler(void 0, options2);
    -      new Parser_js_1.Parser(handler, options2).end(data);
    -      return handler.root;
    -    }
    -    exports2.parseDocument = parseDocument;
    -    function parseDOM(data, options2) {
    -      return parseDocument(data, options2).children;
    -    }
    -    exports2.parseDOM = parseDOM;
    -    function createDomStream(callback2, options2, elementCallback) {
    -      var handler = new domhandler_1.DomHandler(callback2, options2, elementCallback);
    -      return new Parser_js_1.Parser(handler, options2);
    -    }
    -    exports2.createDomStream = createDomStream;
    -    var Tokenizer_js_1 = require_Tokenizer();
    -    Object.defineProperty(exports2, "Tokenizer", { enumerable: true, get: function() {
    -      return __importDefault(Tokenizer_js_1).default;
    -    } });
    -    exports2.ElementType = __importStar(require_lib());
    -    var domutils_1 = require_lib5();
    -    var domutils_2 = require_lib5();
    -    Object.defineProperty(exports2, "getFeed", { enumerable: true, get: function() {
    -      return domutils_2.getFeed;
    -    } });
    -    var parseFeedDefaultOptions = { xmlMode: true };
    -    function parseFeed(feed, options2) {
    -      if (options2 === void 0) {
    -        options2 = parseFeedDefaultOptions;
    -      }
    -      return (0, domutils_1.getFeed)(parseDOM(feed, options2));
    -    }
    -    exports2.parseFeed = parseFeed;
    -    exports2.DomUtils = __importStar(require_lib5());
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js
    -var require_escape_string_regexp = __commonJS({
    -  "../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = (string2) => {
    -      if (typeof string2 !== "string") {
    -        throw new TypeError("Expected a string");
    -      }
    -      return string2.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.js
    -var require_is_plain_object = __commonJS({
    -  "../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", { value: true });
    -    function isObject3(o) {
    -      return Object.prototype.toString.call(o) === "[object Object]";
    -    }
    -    function isPlainObject3(o) {
    -      var ctor, prot;
    -      if (isObject3(o) === false)
    -        return false;
    -      ctor = o.constructor;
    -      if (ctor === void 0)
    -        return true;
    -      prot = ctor.prototype;
    -      if (isObject3(prot) === false)
    -        return false;
    -      if (prot.hasOwnProperty("isPrototypeOf") === false) {
    -        return false;
    -      }
    -      return true;
    -    }
    -    exports2.isPlainObject = isPlainObject3;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js
    -var require_cjs = __commonJS({
    -  "../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js"(exports2, module2) {
    -    "use strict";
    -    var isMergeableObject = function isMergeableObject2(value) {
    -      return isNonNullObject(value) && !isSpecial(value);
    -    };
    -    function isNonNullObject(value) {
    -      return !!value && typeof value === "object";
    -    }
    -    function isSpecial(value) {
    -      var stringValue = Object.prototype.toString.call(value);
    -      return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value);
    -    }
    -    var canUseSymbol = typeof Symbol === "function" && Symbol.for;
    -    var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103;
    -    function isReactElement(value) {
    -      return value.$$typeof === REACT_ELEMENT_TYPE;
    -    }
    -    function emptyTarget(val) {
    -      return Array.isArray(val) ? [] : {};
    -    }
    -    function cloneUnlessOtherwiseSpecified(value, options2) {
    -      return options2.clone !== false && options2.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options2) : value;
    -    }
    -    function defaultArrayMerge(target, source, options2) {
    -      return target.concat(source).map(function(element) {
    -        return cloneUnlessOtherwiseSpecified(element, options2);
    -      });
    -    }
    -    function getMergeFunction(key, options2) {
    -      if (!options2.customMerge) {
    -        return deepmerge;
    -      }
    -      var customMerge = options2.customMerge(key);
    -      return typeof customMerge === "function" ? customMerge : deepmerge;
    -    }
    -    function getEnumerableOwnPropertySymbols(target) {
    -      return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
    -        return Object.propertyIsEnumerable.call(target, symbol);
    -      }) : [];
    -    }
    -    function getKeys(target) {
    -      return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));
    -    }
    -    function propertyIsOnObject(object, property) {
    -      try {
    -        return property in object;
    -      } catch (_) {
    -        return false;
    -      }
    -    }
    -    function propertyIsUnsafe(target, key) {
    -      return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));
    -    }
    -    function mergeObject(target, source, options2) {
    -      var destination = {};
    -      if (options2.isMergeableObject(target)) {
    -        getKeys(target).forEach(function(key) {
    -          destination[key] = cloneUnlessOtherwiseSpecified(target[key], options2);
    -        });
    -      }
    -      getKeys(source).forEach(function(key) {
    -        if (propertyIsUnsafe(target, key)) {
    -          return;
    -        }
    -        if (propertyIsOnObject(target, key) && options2.isMergeableObject(source[key])) {
    -          destination[key] = getMergeFunction(key, options2)(target[key], source[key], options2);
    -        } else {
    -          destination[key] = cloneUnlessOtherwiseSpecified(source[key], options2);
    -        }
    -      });
    -      return destination;
    -    }
    -    function deepmerge(target, source, options2) {
    -      options2 = options2 || {};
    -      options2.arrayMerge = options2.arrayMerge || defaultArrayMerge;
    -      options2.isMergeableObject = options2.isMergeableObject || isMergeableObject;
    -      options2.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
    -      var sourceIsArray = Array.isArray(source);
    -      var targetIsArray = Array.isArray(target);
    -      var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
    -      if (!sourceAndTargetTypesMatch) {
    -        return cloneUnlessOtherwiseSpecified(source, options2);
    -      } else if (sourceIsArray) {
    -        return options2.arrayMerge(target, source, options2);
    -      } else {
    -        return mergeObject(target, source, options2);
    -      }
    -    }
    -    deepmerge.all = function deepmergeAll(array, options2) {
    -      if (!Array.isArray(array)) {
    -        throw new Error("first argument should be an array");
    -      }
    -      return array.reduce(function(prev, next) {
    -        return deepmerge(prev, next, options2);
    -      }, {});
    -    };
    -    var deepmerge_1 = deepmerge;
    -    module2.exports = deepmerge_1;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js
    -var require_parse_srcset = __commonJS({
    -  "../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js"(exports2, module2) {
    -    (function(root, factory) {
    -      if (typeof define === "function" && define.amd) {
    -        define([], factory);
    -      } else if (typeof module2 === "object" && module2.exports) {
    -        module2.exports = factory();
    -      } else {
    -        root.parseSrcset = factory();
    -      }
    -    })(exports2, function() {
    -      return function(input) {
    -        function isSpace(c2) {
    -          return c2 === " " || // space
    -          c2 === "	" || // horizontal tab
    -          c2 === "\n" || // new line
    -          c2 === "\f" || // form feed
    -          c2 === "\r";
    -        }
    -        function collectCharacters(regEx) {
    -          var chars, match2 = regEx.exec(input.substring(pos));
    -          if (match2) {
    -            chars = match2[0];
    -            pos += chars.length;
    -            return chars;
    -          }
    -        }
    -        var inputLength = input.length, regexLeadingSpaces = /^[ \t\n\r\u000c]+/, regexLeadingCommasOrSpaces = /^[, \t\n\r\u000c]+/, regexLeadingNotSpaces = /^[^ \t\n\r\u000c]+/, regexTrailingCommas = /[,]+$/, regexNonNegativeInteger = /^\d+$/, regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/, url, descriptors, currentDescriptor, state, c, pos = 0, candidates = [];
    -        while (true) {
    -          collectCharacters(regexLeadingCommasOrSpaces);
    -          if (pos >= inputLength) {
    -            return candidates;
    -          }
    -          url = collectCharacters(regexLeadingNotSpaces);
    -          descriptors = [];
    -          if (url.slice(-1) === ",") {
    -            url = url.replace(regexTrailingCommas, "");
    -            parseDescriptors();
    -          } else {
    -            tokenize2();
    -          }
    -        }
    -        function tokenize2() {
    -          collectCharacters(regexLeadingSpaces);
    -          currentDescriptor = "";
    -          state = "in descriptor";
    -          while (true) {
    -            c = input.charAt(pos);
    -            if (state === "in descriptor") {
    -              if (isSpace(c)) {
    -                if (currentDescriptor) {
    -                  descriptors.push(currentDescriptor);
    -                  currentDescriptor = "";
    -                  state = "after descriptor";
    -                }
    -              } else if (c === ",") {
    -                pos += 1;
    -                if (currentDescriptor) {
    -                  descriptors.push(currentDescriptor);
    -                }
    -                parseDescriptors();
    -                return;
    -              } else if (c === "(") {
    -                currentDescriptor = currentDescriptor + c;
    -                state = "in parens";
    -              } else if (c === "") {
    -                if (currentDescriptor) {
    -                  descriptors.push(currentDescriptor);
    -                }
    -                parseDescriptors();
    -                return;
    -              } else {
    -                currentDescriptor = currentDescriptor + c;
    -              }
    -            } else if (state === "in parens") {
    -              if (c === ")") {
    -                currentDescriptor = currentDescriptor + c;
    -                state = "in descriptor";
    -              } else if (c === "") {
    -                descriptors.push(currentDescriptor);
    -                parseDescriptors();
    -                return;
    -              } else {
    -                currentDescriptor = currentDescriptor + c;
    -              }
    -            } else if (state === "after descriptor") {
    -              if (isSpace(c)) {
    -              } else if (c === "") {
    -                parseDescriptors();
    -                return;
    -              } else {
    -                state = "in descriptor";
    -                pos -= 1;
    -              }
    -            }
    -            pos += 1;
    -          }
    -        }
    -        function parseDescriptors() {
    -          var pError = false, w, d, h, i, candidate = {}, desc, lastChar, value, intVal, floatVal;
    -          for (i = 0; i < descriptors.length; i++) {
    -            desc = descriptors[i];
    -            lastChar = desc[desc.length - 1];
    -            value = desc.substring(0, desc.length - 1);
    -            intVal = parseInt(value, 10);
    -            floatVal = parseFloat(value);
    -            if (regexNonNegativeInteger.test(value) && lastChar === "w") {
    -              if (w || d) {
    -                pError = true;
    -              }
    -              if (intVal === 0) {
    -                pError = true;
    -              } else {
    -                w = intVal;
    -              }
    -            } else if (regexFloatingPoint.test(value) && lastChar === "x") {
    -              if (w || d || h) {
    -                pError = true;
    -              }
    -              if (floatVal < 0) {
    -                pError = true;
    -              } else {
    -                d = floatVal;
    -              }
    -            } else if (regexNonNegativeInteger.test(value) && lastChar === "h") {
    -              if (h || d) {
    -                pError = true;
    -              }
    -              if (intVal === 0) {
    -                pError = true;
    -              } else {
    -                h = intVal;
    -              }
    -            } else {
    -              pError = true;
    -            }
    -          }
    -          if (!pError) {
    -            candidate.url = url;
    -            if (w) {
    -              candidate.w = w;
    -            }
    -            if (d) {
    -              candidate.d = d;
    -            }
    -            if (h) {
    -              candidate.h = h;
    -            }
    -            candidates.push(candidate);
    -          } else if (console && console.log) {
    -            console.log("Invalid srcset descriptor found in '" + input + "' at '" + desc + "'.");
    -          }
    -        }
    -      };
    -    });
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js
    -var require_picocolors = __commonJS({
    -  "../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js"(exports2, module2) {
    -    var tty = require("tty");
    -    var isColorSupported = !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && ("FORCE_COLOR" in process.env || process.argv.includes("--color") || process.platform === "win32" || tty.isatty(1) && process.env.TERM !== "dumb" || "CI" in process.env);
    -    var formatter = (open2, close, replace = open2) => (input) => {
    -      let string2 = "" + input;
    -      let index = string2.indexOf(close, open2.length);
    -      return ~index ? open2 + replaceClose(string2, close, replace, index) + close : open2 + string2 + close;
    -    };
    -    var replaceClose = (string2, close, replace, index) => {
    -      let start = string2.substring(0, index) + replace;
    -      let end = string2.substring(index + close.length);
    -      let nextIndex = end.indexOf(close);
    -      return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
    -    };
    -    var createColors = (enabled = isColorSupported) => ({
    -      isColorSupported: enabled,
    -      reset: enabled ? (s) => `\x1B[0m${s}\x1B[0m` : String,
    -      bold: enabled ? formatter("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m") : String,
    -      dim: enabled ? formatter("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m") : String,
    -      italic: enabled ? formatter("\x1B[3m", "\x1B[23m") : String,
    -      underline: enabled ? formatter("\x1B[4m", "\x1B[24m") : String,
    -      inverse: enabled ? formatter("\x1B[7m", "\x1B[27m") : String,
    -      hidden: enabled ? formatter("\x1B[8m", "\x1B[28m") : String,
    -      strikethrough: enabled ? formatter("\x1B[9m", "\x1B[29m") : String,
    -      black: enabled ? formatter("\x1B[30m", "\x1B[39m") : String,
    -      red: enabled ? formatter("\x1B[31m", "\x1B[39m") : String,
    -      green: enabled ? formatter("\x1B[32m", "\x1B[39m") : String,
    -      yellow: enabled ? formatter("\x1B[33m", "\x1B[39m") : String,
    -      blue: enabled ? formatter("\x1B[34m", "\x1B[39m") : String,
    -      magenta: enabled ? formatter("\x1B[35m", "\x1B[39m") : String,
    -      cyan: enabled ? formatter("\x1B[36m", "\x1B[39m") : String,
    -      white: enabled ? formatter("\x1B[37m", "\x1B[39m") : String,
    -      gray: enabled ? formatter("\x1B[90m", "\x1B[39m") : String,
    -      bgBlack: enabled ? formatter("\x1B[40m", "\x1B[49m") : String,
    -      bgRed: enabled ? formatter("\x1B[41m", "\x1B[49m") : String,
    -      bgGreen: enabled ? formatter("\x1B[42m", "\x1B[49m") : String,
    -      bgYellow: enabled ? formatter("\x1B[43m", "\x1B[49m") : String,
    -      bgBlue: enabled ? formatter("\x1B[44m", "\x1B[49m") : String,
    -      bgMagenta: enabled ? formatter("\x1B[45m", "\x1B[49m") : String,
    -      bgCyan: enabled ? formatter("\x1B[46m", "\x1B[49m") : String,
    -      bgWhite: enabled ? formatter("\x1B[47m", "\x1B[49m") : String
    -    });
    -    module2.exports = createColors();
    -    module2.exports.createColors = createColors;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/tokenize.js
    -var require_tokenize = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/tokenize.js"(exports2, module2) {
    -    "use strict";
    -    var SINGLE_QUOTE = "'".charCodeAt(0);
    -    var DOUBLE_QUOTE = '"'.charCodeAt(0);
    -    var BACKSLASH = "\\".charCodeAt(0);
    -    var SLASH = "/".charCodeAt(0);
    -    var NEWLINE = "\n".charCodeAt(0);
    -    var SPACE = " ".charCodeAt(0);
    -    var FEED = "\f".charCodeAt(0);
    -    var TAB = "	".charCodeAt(0);
    -    var CR = "\r".charCodeAt(0);
    -    var OPEN_SQUARE = "[".charCodeAt(0);
    -    var CLOSE_SQUARE = "]".charCodeAt(0);
    -    var OPEN_PARENTHESES = "(".charCodeAt(0);
    -    var CLOSE_PARENTHESES = ")".charCodeAt(0);
    -    var OPEN_CURLY = "{".charCodeAt(0);
    -    var CLOSE_CURLY = "}".charCodeAt(0);
    -    var SEMICOLON = ";".charCodeAt(0);
    -    var ASTERISK = "*".charCodeAt(0);
    -    var COLON = ":".charCodeAt(0);
    -    var AT = "@".charCodeAt(0);
    -    var RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g;
    -    var RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g;
    -    var RE_BAD_BRACKET = /.[\r\n"'(/\\]/;
    -    var RE_HEX_ESCAPE = /[\da-f]/i;
    -    module2.exports = function tokenizer(input, options2 = {}) {
    -      let css = input.css.valueOf();
    -      let ignore = options2.ignoreErrors;
    -      let code, next, quote, content, escape2;
    -      let escaped, escapePos, prev, n, currentToken;
    -      let length = css.length;
    -      let pos = 0;
    -      let buffer = [];
    -      let returned = [];
    -      function position() {
    -        return pos;
    -      }
    -      function unclosed(what) {
    -        throw input.error("Unclosed " + what, pos);
    -      }
    -      function endOfFile() {
    -        return returned.length === 0 && pos >= length;
    -      }
    -      function nextToken(opts) {
    -        if (returned.length)
    -          return returned.pop();
    -        if (pos >= length)
    -          return;
    -        let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;
    -        code = css.charCodeAt(pos);
    -        switch (code) {
    -          case NEWLINE:
    -          case SPACE:
    -          case TAB:
    -          case CR:
    -          case FEED: {
    -            next = pos;
    -            do {
    -              next += 1;
    -              code = css.charCodeAt(next);
    -            } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);
    -            currentToken = ["space", css.slice(pos, next)];
    -            pos = next - 1;
    -            break;
    -          }
    -          case OPEN_SQUARE:
    -          case CLOSE_SQUARE:
    -          case OPEN_CURLY:
    -          case CLOSE_CURLY:
    -          case COLON:
    -          case SEMICOLON:
    -          case CLOSE_PARENTHESES: {
    -            let controlChar = String.fromCharCode(code);
    -            currentToken = [controlChar, controlChar, pos];
    -            break;
    -          }
    -          case OPEN_PARENTHESES: {
    -            prev = buffer.length ? buffer.pop()[1] : "";
    -            n = css.charCodeAt(pos + 1);
    -            if (prev === "url" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {
    -              next = pos;
    -              do {
    -                escaped = false;
    -                next = css.indexOf(")", next + 1);
    -                if (next === -1) {
    -                  if (ignore || ignoreUnclosed) {
    -                    next = pos;
    -                    break;
    -                  } else {
    -                    unclosed("bracket");
    -                  }
    -                }
    -                escapePos = next;
    -                while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
    -                  escapePos -= 1;
    -                  escaped = !escaped;
    -                }
    -              } while (escaped);
    -              currentToken = ["brackets", css.slice(pos, next + 1), pos, next];
    -              pos = next;
    -            } else {
    -              next = css.indexOf(")", pos + 1);
    -              content = css.slice(pos, next + 1);
    -              if (next === -1 || RE_BAD_BRACKET.test(content)) {
    -                currentToken = ["(", "(", pos];
    -              } else {
    -                currentToken = ["brackets", content, pos, next];
    -                pos = next;
    -              }
    -            }
    -            break;
    -          }
    -          case SINGLE_QUOTE:
    -          case DOUBLE_QUOTE: {
    -            quote = code === SINGLE_QUOTE ? "'" : '"';
    -            next = pos;
    -            do {
    -              escaped = false;
    -              next = css.indexOf(quote, next + 1);
    -              if (next === -1) {
    -                if (ignore || ignoreUnclosed) {
    -                  next = pos + 1;
    -                  break;
    -                } else {
    -                  unclosed("string");
    -                }
    -              }
    -              escapePos = next;
    -              while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
    -                escapePos -= 1;
    -                escaped = !escaped;
    -              }
    -            } while (escaped);
    -            currentToken = ["string", css.slice(pos, next + 1), pos, next];
    -            pos = next;
    -            break;
    -          }
    -          case AT: {
    -            RE_AT_END.lastIndex = pos + 1;
    -            RE_AT_END.test(css);
    -            if (RE_AT_END.lastIndex === 0) {
    -              next = css.length - 1;
    -            } else {
    -              next = RE_AT_END.lastIndex - 2;
    -            }
    -            currentToken = ["at-word", css.slice(pos, next + 1), pos, next];
    -            pos = next;
    -            break;
    -          }
    -          case BACKSLASH: {
    -            next = pos;
    -            escape2 = true;
    -            while (css.charCodeAt(next + 1) === BACKSLASH) {
    -              next += 1;
    -              escape2 = !escape2;
    -            }
    -            code = css.charCodeAt(next + 1);
    -            if (escape2 && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {
    -              next += 1;
    -              if (RE_HEX_ESCAPE.test(css.charAt(next))) {
    -                while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {
    -                  next += 1;
    -                }
    -                if (css.charCodeAt(next + 1) === SPACE) {
    -                  next += 1;
    -                }
    -              }
    -            }
    -            currentToken = ["word", css.slice(pos, next + 1), pos, next];
    -            pos = next;
    -            break;
    -          }
    -          default: {
    -            if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {
    -              next = css.indexOf("*/", pos + 2) + 1;
    -              if (next === 0) {
    -                if (ignore || ignoreUnclosed) {
    -                  next = css.length;
    -                } else {
    -                  unclosed("comment");
    -                }
    -              }
    -              currentToken = ["comment", css.slice(pos, next + 1), pos, next];
    -              pos = next;
    -            } else {
    -              RE_WORD_END.lastIndex = pos + 1;
    -              RE_WORD_END.test(css);
    -              if (RE_WORD_END.lastIndex === 0) {
    -                next = css.length - 1;
    -              } else {
    -                next = RE_WORD_END.lastIndex - 2;
    -              }
    -              currentToken = ["word", css.slice(pos, next + 1), pos, next];
    -              buffer.push(currentToken);
    -              pos = next;
    -            }
    -            break;
    -          }
    -        }
    -        pos++;
    -        return currentToken;
    -      }
    -      function back(token) {
    -        returned.push(token);
    -      }
    -      return {
    -        back,
    -        endOfFile,
    -        nextToken,
    -        position
    -      };
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/terminal-highlight.js
    -var require_terminal_highlight = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/terminal-highlight.js"(exports2, module2) {
    -    "use strict";
    -    var pico = require_picocolors();
    -    var tokenizer = require_tokenize();
    -    var Input;
    -    function registerInput(dependant) {
    -      Input = dependant;
    -    }
    -    var HIGHLIGHT_THEME = {
    -      ";": pico.yellow,
    -      ":": pico.yellow,
    -      "(": pico.cyan,
    -      ")": pico.cyan,
    -      "[": pico.yellow,
    -      "]": pico.yellow,
    -      "{": pico.yellow,
    -      "}": pico.yellow,
    -      "at-word": pico.cyan,
    -      "brackets": pico.cyan,
    -      "call": pico.cyan,
    -      "class": pico.yellow,
    -      "comment": pico.gray,
    -      "hash": pico.magenta,
    -      "string": pico.green
    -    };
    -    function getTokenType([type2, value], processor) {
    -      if (type2 === "word") {
    -        if (value[0] === ".") {
    -          return "class";
    -        }
    -        if (value[0] === "#") {
    -          return "hash";
    -        }
    -      }
    -      if (!processor.endOfFile()) {
    -        let next = processor.nextToken();
    -        processor.back(next);
    -        if (next[0] === "brackets" || next[0] === "(")
    -          return "call";
    -      }
    -      return type2;
    -    }
    -    function terminalHighlight(css) {
    -      let processor = tokenizer(new Input(css), { ignoreErrors: true });
    -      let result = "";
    -      while (!processor.endOfFile()) {
    -        let token = processor.nextToken();
    -        let color = HIGHLIGHT_THEME[getTokenType(token, processor)];
    -        if (color) {
    -          result += token[1].split(/\r?\n/).map((i) => color(i)).join("\n");
    -        } else {
    -          result += token[1];
    -        }
    -      }
    -      return result;
    -    }
    -    terminalHighlight.registerInput = registerInput;
    -    module2.exports = terminalHighlight;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/css-syntax-error.js
    -var require_css_syntax_error = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/css-syntax-error.js"(exports2, module2) {
    -    "use strict";
    -    var pico = require_picocolors();
    -    var terminalHighlight = require_terminal_highlight();
    -    var CssSyntaxError = class _CssSyntaxError extends Error {
    -      constructor(message, line, column, source, file, plugin) {
    -        super(message);
    -        this.name = "CssSyntaxError";
    -        this.reason = message;
    -        if (file) {
    -          this.file = file;
    -        }
    -        if (source) {
    -          this.source = source;
    -        }
    -        if (plugin) {
    -          this.plugin = plugin;
    -        }
    -        if (typeof line !== "undefined" && typeof column !== "undefined") {
    -          if (typeof line === "number") {
    -            this.line = line;
    -            this.column = column;
    -          } else {
    -            this.line = line.line;
    -            this.column = line.column;
    -            this.endLine = column.line;
    -            this.endColumn = column.column;
    -          }
    -        }
    -        this.setMessage();
    -        if (Error.captureStackTrace) {
    -          Error.captureStackTrace(this, _CssSyntaxError);
    -        }
    -      }
    -      setMessage() {
    -        this.message = this.plugin ? this.plugin + ": " : "";
    -        this.message += this.file ? this.file : "";
    -        if (typeof this.line !== "undefined") {
    -          this.message += ":" + this.line + ":" + this.column;
    -        }
    -        this.message += ": " + this.reason;
    -      }
    -      showSourceCode(color) {
    -        if (!this.source)
    -          return "";
    -        let css = this.source;
    -        if (color == null)
    -          color = pico.isColorSupported;
    -        if (terminalHighlight) {
    -          if (color)
    -            css = terminalHighlight(css);
    -        }
    -        let lines = css.split(/\r?\n/);
    -        let start = Math.max(this.line - 3, 0);
    -        let end = Math.min(this.line + 2, lines.length);
    -        let maxWidth = String(end).length;
    -        let mark, aside;
    -        if (color) {
    -          let { bold, gray, red } = pico.createColors(true);
    -          mark = (text) => bold(red(text));
    -          aside = (text) => gray(text);
    -        } else {
    -          mark = aside = (str2) => str2;
    -        }
    -        return lines.slice(start, end).map((line, index) => {
    -          let number = start + 1 + index;
    -          let gutter = " " + (" " + number).slice(-maxWidth) + " | ";
    -          if (number === this.line) {
    -            let spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, this.column - 1).replace(/[^\t]/g, " ");
    -            return mark(">") + aside(gutter) + line + "\n " + spacing + mark("^");
    -          }
    -          return " " + aside(gutter) + line;
    -        }).join("\n");
    -      }
    -      toString() {
    -        let code = this.showSourceCode();
    -        if (code) {
    -          code = "\n\n" + code + "\n";
    -        }
    -        return this.name + ": " + this.message + code;
    -      }
    -    };
    -    module2.exports = CssSyntaxError;
    -    CssSyntaxError.default = CssSyntaxError;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/symbols.js
    -var require_symbols = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/symbols.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports.isClean = Symbol("isClean");
    -    module2.exports.my = Symbol("my");
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringifier.js
    -var require_stringifier = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringifier.js"(exports2, module2) {
    -    "use strict";
    -    var DEFAULT_RAW = {
    -      after: "\n",
    -      beforeClose: "\n",
    -      beforeComment: "\n",
    -      beforeDecl: "\n",
    -      beforeOpen: " ",
    -      beforeRule: "\n",
    -      colon: ": ",
    -      commentLeft: " ",
    -      commentRight: " ",
    -      emptyBody: "",
    -      indent: "    ",
    -      semicolon: false
    -    };
    -    function capitalize(str2) {
    -      return str2[0].toUpperCase() + str2.slice(1);
    -    }
    -    var Stringifier = class {
    -      constructor(builder) {
    -        this.builder = builder;
    -      }
    -      atrule(node, semicolon) {
    -        let name = "@" + node.name;
    -        let params = node.params ? this.rawValue(node, "params") : "";
    -        if (typeof node.raws.afterName !== "undefined") {
    -          name += node.raws.afterName;
    -        } else if (params) {
    -          name += " ";
    -        }
    -        if (node.nodes) {
    -          this.block(node, name + params);
    -        } else {
    -          let end = (node.raws.between || "") + (semicolon ? ";" : "");
    -          this.builder(name + params + end, node);
    -        }
    -      }
    -      beforeAfter(node, detect) {
    -        let value;
    -        if (node.type === "decl") {
    -          value = this.raw(node, null, "beforeDecl");
    -        } else if (node.type === "comment") {
    -          value = this.raw(node, null, "beforeComment");
    -        } else if (detect === "before") {
    -          value = this.raw(node, null, "beforeRule");
    -        } else {
    -          value = this.raw(node, null, "beforeClose");
    -        }
    -        let buf = node.parent;
    -        let depth = 0;
    -        while (buf && buf.type !== "root") {
    -          depth += 1;
    -          buf = buf.parent;
    -        }
    -        if (value.includes("\n")) {
    -          let indent = this.raw(node, null, "indent");
    -          if (indent.length) {
    -            for (let step = 0; step < depth; step++)
    -              value += indent;
    -          }
    -        }
    -        return value;
    -      }
    -      block(node, start) {
    -        let between = this.raw(node, "between", "beforeOpen");
    -        this.builder(start + between + "{", node, "start");
    -        let after;
    -        if (node.nodes && node.nodes.length) {
    -          this.body(node);
    -          after = this.raw(node, "after");
    -        } else {
    -          after = this.raw(node, "after", "emptyBody");
    -        }
    -        if (after)
    -          this.builder(after);
    -        this.builder("}", node, "end");
    -      }
    -      body(node) {
    -        let last2 = node.nodes.length - 1;
    -        while (last2 > 0) {
    -          if (node.nodes[last2].type !== "comment")
    -            break;
    -          last2 -= 1;
    -        }
    -        let semicolon = this.raw(node, "semicolon");
    -        for (let i = 0; i < node.nodes.length; i++) {
    -          let child = node.nodes[i];
    -          let before = this.raw(child, "before");
    -          if (before)
    -            this.builder(before);
    -          this.stringify(child, last2 !== i || semicolon);
    -        }
    -      }
    -      comment(node) {
    -        let left = this.raw(node, "left", "commentLeft");
    -        let right = this.raw(node, "right", "commentRight");
    -        this.builder("/*" + left + node.text + right + "*/", node);
    -      }
    -      decl(node, semicolon) {
    -        let between = this.raw(node, "between", "colon");
    -        let string2 = node.prop + between + this.rawValue(node, "value");
    -        if (node.important) {
    -          string2 += node.raws.important || " !important";
    -        }
    -        if (semicolon)
    -          string2 += ";";
    -        this.builder(string2, node);
    -      }
    -      document(node) {
    -        this.body(node);
    -      }
    -      raw(node, own, detect) {
    -        let value;
    -        if (!detect)
    -          detect = own;
    -        if (own) {
    -          value = node.raws[own];
    -          if (typeof value !== "undefined")
    -            return value;
    -        }
    -        let parent = node.parent;
    -        if (detect === "before") {
    -          if (!parent || parent.type === "root" && parent.first === node) {
    -            return "";
    -          }
    -          if (parent && parent.type === "document") {
    -            return "";
    -          }
    -        }
    -        if (!parent)
    -          return DEFAULT_RAW[detect];
    -        let root = node.root();
    -        if (!root.rawCache)
    -          root.rawCache = {};
    -        if (typeof root.rawCache[detect] !== "undefined") {
    -          return root.rawCache[detect];
    -        }
    -        if (detect === "before" || detect === "after") {
    -          return this.beforeAfter(node, detect);
    -        } else {
    -          let method = "raw" + capitalize(detect);
    -          if (this[method]) {
    -            value = this[method](root, node);
    -          } else {
    -            root.walk((i) => {
    -              value = i.raws[own];
    -              if (typeof value !== "undefined")
    -                return false;
    -            });
    -          }
    -        }
    -        if (typeof value === "undefined")
    -          value = DEFAULT_RAW[detect];
    -        root.rawCache[detect] = value;
    -        return value;
    -      }
    -      rawBeforeClose(root) {
    -        let value;
    -        root.walk((i) => {
    -          if (i.nodes && i.nodes.length > 0) {
    -            if (typeof i.raws.after !== "undefined") {
    -              value = i.raws.after;
    -              if (value.includes("\n")) {
    -                value = value.replace(/[^\n]+$/, "");
    -              }
    -              return false;
    -            }
    -          }
    -        });
    -        if (value)
    -          value = value.replace(/\S/g, "");
    -        return value;
    -      }
    -      rawBeforeComment(root, node) {
    -        let value;
    -        root.walkComments((i) => {
    -          if (typeof i.raws.before !== "undefined") {
    -            value = i.raws.before;
    -            if (value.includes("\n")) {
    -              value = value.replace(/[^\n]+$/, "");
    -            }
    -            return false;
    -          }
    -        });
    -        if (typeof value === "undefined") {
    -          value = this.raw(node, null, "beforeDecl");
    -        } else if (value) {
    -          value = value.replace(/\S/g, "");
    -        }
    -        return value;
    -      }
    -      rawBeforeDecl(root, node) {
    -        let value;
    -        root.walkDecls((i) => {
    -          if (typeof i.raws.before !== "undefined") {
    -            value = i.raws.before;
    -            if (value.includes("\n")) {
    -              value = value.replace(/[^\n]+$/, "");
    -            }
    -            return false;
    -          }
    -        });
    -        if (typeof value === "undefined") {
    -          value = this.raw(node, null, "beforeRule");
    -        } else if (value) {
    -          value = value.replace(/\S/g, "");
    -        }
    -        return value;
    -      }
    -      rawBeforeOpen(root) {
    -        let value;
    -        root.walk((i) => {
    -          if (i.type !== "decl") {
    -            value = i.raws.between;
    -            if (typeof value !== "undefined")
    -              return false;
    -          }
    -        });
    -        return value;
    -      }
    -      rawBeforeRule(root) {
    -        let value;
    -        root.walk((i) => {
    -          if (i.nodes && (i.parent !== root || root.first !== i)) {
    -            if (typeof i.raws.before !== "undefined") {
    -              value = i.raws.before;
    -              if (value.includes("\n")) {
    -                value = value.replace(/[^\n]+$/, "");
    -              }
    -              return false;
    -            }
    -          }
    -        });
    -        if (value)
    -          value = value.replace(/\S/g, "");
    -        return value;
    -      }
    -      rawColon(root) {
    -        let value;
    -        root.walkDecls((i) => {
    -          if (typeof i.raws.between !== "undefined") {
    -            value = i.raws.between.replace(/[^\s:]/g, "");
    -            return false;
    -          }
    -        });
    -        return value;
    -      }
    -      rawEmptyBody(root) {
    -        let value;
    -        root.walk((i) => {
    -          if (i.nodes && i.nodes.length === 0) {
    -            value = i.raws.after;
    -            if (typeof value !== "undefined")
    -              return false;
    -          }
    -        });
    -        return value;
    -      }
    -      rawIndent(root) {
    -        if (root.raws.indent)
    -          return root.raws.indent;
    -        let value;
    -        root.walk((i) => {
    -          let p = i.parent;
    -          if (p && p !== root && p.parent && p.parent === root) {
    -            if (typeof i.raws.before !== "undefined") {
    -              let parts = i.raws.before.split("\n");
    -              value = parts[parts.length - 1];
    -              value = value.replace(/\S/g, "");
    -              return false;
    -            }
    -          }
    -        });
    -        return value;
    -      }
    -      rawSemicolon(root) {
    -        let value;
    -        root.walk((i) => {
    -          if (i.nodes && i.nodes.length && i.last.type === "decl") {
    -            value = i.raws.semicolon;
    -            if (typeof value !== "undefined")
    -              return false;
    -          }
    -        });
    -        return value;
    -      }
    -      rawValue(node, prop) {
    -        let value = node[prop];
    -        let raw = node.raws[prop];
    -        if (raw && raw.value === value) {
    -          return raw.raw;
    -        }
    -        return value;
    -      }
    -      root(node) {
    -        this.body(node);
    -        if (node.raws.after)
    -          this.builder(node.raws.after);
    -      }
    -      rule(node) {
    -        this.block(node, this.rawValue(node, "selector"));
    -        if (node.raws.ownSemicolon) {
    -          this.builder(node.raws.ownSemicolon, node, "end");
    -        }
    -      }
    -      stringify(node, semicolon) {
    -        if (!this[node.type]) {
    -          throw new Error(
    -            "Unknown AST node type " + node.type + ". Maybe you need to change PostCSS stringifier."
    -          );
    -        }
    -        this[node.type](node, semicolon);
    -      }
    -    };
    -    module2.exports = Stringifier;
    -    Stringifier.default = Stringifier;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringify.js
    -var require_stringify2 = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/stringify.js"(exports2, module2) {
    -    "use strict";
    -    var Stringifier = require_stringifier();
    -    function stringify2(node, builder) {
    -      let str2 = new Stringifier(builder);
    -      str2.stringify(node);
    -    }
    -    module2.exports = stringify2;
    -    stringify2.default = stringify2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/node.js
    -var require_node2 = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/node.js"(exports2, module2) {
    -    "use strict";
    -    var { isClean, my } = require_symbols();
    -    var CssSyntaxError = require_css_syntax_error();
    -    var Stringifier = require_stringifier();
    -    var stringify2 = require_stringify2();
    -    function cloneNode(obj, parent) {
    -      let cloned = new obj.constructor();
    -      for (let i in obj) {
    -        if (!Object.prototype.hasOwnProperty.call(obj, i)) {
    -          continue;
    -        }
    -        if (i === "proxyCache")
    -          continue;
    -        let value = obj[i];
    -        let type2 = typeof value;
    -        if (i === "parent" && type2 === "object") {
    -          if (parent)
    -            cloned[i] = parent;
    -        } else if (i === "source") {
    -          cloned[i] = value;
    -        } else if (Array.isArray(value)) {
    -          cloned[i] = value.map((j) => cloneNode(j, cloned));
    -        } else {
    -          if (type2 === "object" && value !== null)
    -            value = cloneNode(value);
    -          cloned[i] = value;
    -        }
    -      }
    -      return cloned;
    -    }
    -    var Node = class {
    -      constructor(defaults2 = {}) {
    -        this.raws = {};
    -        this[isClean] = false;
    -        this[my] = true;
    -        for (let name in defaults2) {
    -          if (name === "nodes") {
    -            this.nodes = [];
    -            for (let node of defaults2[name]) {
    -              if (typeof node.clone === "function") {
    -                this.append(node.clone());
    -              } else {
    -                this.append(node);
    -              }
    -            }
    -          } else {
    -            this[name] = defaults2[name];
    -          }
    -        }
    -      }
    -      addToError(error) {
    -        error.postcssNode = this;
    -        if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) {
    -          let s = this.source;
    -          error.stack = error.stack.replace(
    -            /\n\s{4}at /,
    -            `$&${s.input.from}:${s.start.line}:${s.start.column}$&`
    -          );
    -        }
    -        return error;
    -      }
    -      after(add) {
    -        this.parent.insertAfter(this, add);
    -        return this;
    -      }
    -      assign(overrides = {}) {
    -        for (let name in overrides) {
    -          this[name] = overrides[name];
    -        }
    -        return this;
    -      }
    -      before(add) {
    -        this.parent.insertBefore(this, add);
    -        return this;
    -      }
    -      cleanRaws(keepBetween) {
    -        delete this.raws.before;
    -        delete this.raws.after;
    -        if (!keepBetween)
    -          delete this.raws.between;
    -      }
    -      clone(overrides = {}) {
    -        let cloned = cloneNode(this);
    -        for (let name in overrides) {
    -          cloned[name] = overrides[name];
    -        }
    -        return cloned;
    -      }
    -      cloneAfter(overrides = {}) {
    -        let cloned = this.clone(overrides);
    -        this.parent.insertAfter(this, cloned);
    -        return cloned;
    -      }
    -      cloneBefore(overrides = {}) {
    -        let cloned = this.clone(overrides);
    -        this.parent.insertBefore(this, cloned);
    -        return cloned;
    -      }
    -      error(message, opts = {}) {
    -        if (this.source) {
    -          let { end, start } = this.rangeBy(opts);
    -          return this.source.input.error(
    -            message,
    -            { column: start.column, line: start.line },
    -            { column: end.column, line: end.line },
    -            opts
    -          );
    -        }
    -        return new CssSyntaxError(message);
    -      }
    -      getProxyProcessor() {
    -        return {
    -          get(node, prop) {
    -            if (prop === "proxyOf") {
    -              return node;
    -            } else if (prop === "root") {
    -              return () => node.root().toProxy();
    -            } else {
    -              return node[prop];
    -            }
    -          },
    -          set(node, prop, value) {
    -            if (node[prop] === value)
    -              return true;
    -            node[prop] = value;
    -            if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || /* c8 ignore next */
    -            prop === "text") {
    -              node.markDirty();
    -            }
    -            return true;
    -          }
    -        };
    -      }
    -      markDirty() {
    -        if (this[isClean]) {
    -          this[isClean] = false;
    -          let next = this;
    -          while (next = next.parent) {
    -            next[isClean] = false;
    -          }
    -        }
    -      }
    -      next() {
    -        if (!this.parent)
    -          return void 0;
    -        let index = this.parent.index(this);
    -        return this.parent.nodes[index + 1];
    -      }
    -      positionBy(opts, stringRepresentation) {
    -        let pos = this.source.start;
    -        if (opts.index) {
    -          pos = this.positionInside(opts.index, stringRepresentation);
    -        } else if (opts.word) {
    -          stringRepresentation = this.toString();
    -          let index = stringRepresentation.indexOf(opts.word);
    -          if (index !== -1)
    -            pos = this.positionInside(index, stringRepresentation);
    -        }
    -        return pos;
    -      }
    -      positionInside(index, stringRepresentation) {
    -        let string2 = stringRepresentation || this.toString();
    -        let column = this.source.start.column;
    -        let line = this.source.start.line;
    -        for (let i = 0; i < index; i++) {
    -          if (string2[i] === "\n") {
    -            column = 1;
    -            line += 1;
    -          } else {
    -            column += 1;
    -          }
    -        }
    -        return { column, line };
    -      }
    -      prev() {
    -        if (!this.parent)
    -          return void 0;
    -        let index = this.parent.index(this);
    -        return this.parent.nodes[index - 1];
    -      }
    -      rangeBy(opts) {
    -        let start = {
    -          column: this.source.start.column,
    -          line: this.source.start.line
    -        };
    -        let end = this.source.end ? {
    -          column: this.source.end.column + 1,
    -          line: this.source.end.line
    -        } : {
    -          column: start.column + 1,
    -          line: start.line
    -        };
    -        if (opts.word) {
    -          let stringRepresentation = this.toString();
    -          let index = stringRepresentation.indexOf(opts.word);
    -          if (index !== -1) {
    -            start = this.positionInside(index, stringRepresentation);
    -            end = this.positionInside(index + opts.word.length, stringRepresentation);
    -          }
    -        } else {
    -          if (opts.start) {
    -            start = {
    -              column: opts.start.column,
    -              line: opts.start.line
    -            };
    -          } else if (opts.index) {
    -            start = this.positionInside(opts.index);
    -          }
    -          if (opts.end) {
    -            end = {
    -              column: opts.end.column,
    -              line: opts.end.line
    -            };
    -          } else if (typeof opts.endIndex === "number") {
    -            end = this.positionInside(opts.endIndex);
    -          } else if (opts.index) {
    -            end = this.positionInside(opts.index + 1);
    -          }
    -        }
    -        if (end.line < start.line || end.line === start.line && end.column <= start.column) {
    -          end = { column: start.column + 1, line: start.line };
    -        }
    -        return { end, start };
    -      }
    -      raw(prop, defaultType) {
    -        let str2 = new Stringifier();
    -        return str2.raw(this, prop, defaultType);
    -      }
    -      remove() {
    -        if (this.parent) {
    -          this.parent.removeChild(this);
    -        }
    -        this.parent = void 0;
    -        return this;
    -      }
    -      replaceWith(...nodes) {
    -        if (this.parent) {
    -          let bookmark = this;
    -          let foundSelf = false;
    -          for (let node of nodes) {
    -            if (node === this) {
    -              foundSelf = true;
    -            } else if (foundSelf) {
    -              this.parent.insertAfter(bookmark, node);
    -              bookmark = node;
    -            } else {
    -              this.parent.insertBefore(bookmark, node);
    -            }
    -          }
    -          if (!foundSelf) {
    -            this.remove();
    -          }
    -        }
    -        return this;
    -      }
    -      root() {
    -        let result = this;
    -        while (result.parent && result.parent.type !== "document") {
    -          result = result.parent;
    -        }
    -        return result;
    -      }
    -      toJSON(_, inputs) {
    -        let fixed = {};
    -        let emitInputs = inputs == null;
    -        inputs = inputs || /* @__PURE__ */ new Map();
    -        let inputsNextIndex = 0;
    -        for (let name in this) {
    -          if (!Object.prototype.hasOwnProperty.call(this, name)) {
    -            continue;
    -          }
    -          if (name === "parent" || name === "proxyCache")
    -            continue;
    -          let value = this[name];
    -          if (Array.isArray(value)) {
    -            fixed[name] = value.map((i) => {
    -              if (typeof i === "object" && i.toJSON) {
    -                return i.toJSON(null, inputs);
    -              } else {
    -                return i;
    -              }
    -            });
    -          } else if (typeof value === "object" && value.toJSON) {
    -            fixed[name] = value.toJSON(null, inputs);
    -          } else if (name === "source") {
    -            let inputId = inputs.get(value.input);
    -            if (inputId == null) {
    -              inputId = inputsNextIndex;
    -              inputs.set(value.input, inputsNextIndex);
    -              inputsNextIndex++;
    -            }
    -            fixed[name] = {
    -              end: value.end,
    -              inputId,
    -              start: value.start
    -            };
    -          } else {
    -            fixed[name] = value;
    -          }
    -        }
    -        if (emitInputs) {
    -          fixed.inputs = [...inputs.keys()].map((input) => input.toJSON());
    -        }
    -        return fixed;
    -      }
    -      toProxy() {
    -        if (!this.proxyCache) {
    -          this.proxyCache = new Proxy(this, this.getProxyProcessor());
    -        }
    -        return this.proxyCache;
    -      }
    -      toString(stringifier = stringify2) {
    -        if (stringifier.stringify)
    -          stringifier = stringifier.stringify;
    -        let result = "";
    -        stringifier(this, (i) => {
    -          result += i;
    -        });
    -        return result;
    -      }
    -      warn(result, text, opts) {
    -        let data = { node: this };
    -        for (let i in opts)
    -          data[i] = opts[i];
    -        return result.warn(text, data);
    -      }
    -      get proxyOf() {
    -        return this;
    -      }
    -    };
    -    module2.exports = Node;
    -    Node.default = Node;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/declaration.js
    -var require_declaration = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/declaration.js"(exports2, module2) {
    -    "use strict";
    -    var Node = require_node2();
    -    var Declaration = class extends Node {
    -      constructor(defaults2) {
    -        if (defaults2 && typeof defaults2.value !== "undefined" && typeof defaults2.value !== "string") {
    -          defaults2 = { ...defaults2, value: String(defaults2.value) };
    -        }
    -        super(defaults2);
    -        this.type = "decl";
    -      }
    -      get variable() {
    -        return this.prop.startsWith("--") || this.prop[0] === "$";
    -      }
    -    };
    -    module2.exports = Declaration;
    -    Declaration.default = Declaration;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64.js
    -var require_base64 = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64.js"(exports2) {
    -    var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
    -    exports2.encode = function(number) {
    -      if (0 <= number && number < intToCharMap.length) {
    -        return intToCharMap[number];
    -      }
    -      throw new TypeError("Must be between 0 and 63: " + number);
    -    };
    -    exports2.decode = function(charCode) {
    -      var bigA = 65;
    -      var bigZ = 90;
    -      var littleA = 97;
    -      var littleZ = 122;
    -      var zero = 48;
    -      var nine = 57;
    -      var plus = 43;
    -      var slash = 47;
    -      var littleOffset = 26;
    -      var numberOffset = 52;
    -      if (bigA <= charCode && charCode <= bigZ) {
    -        return charCode - bigA;
    -      }
    -      if (littleA <= charCode && charCode <= littleZ) {
    -        return charCode - littleA + littleOffset;
    -      }
    -      if (zero <= charCode && charCode <= nine) {
    -        return charCode - zero + numberOffset;
    -      }
    -      if (charCode == plus) {
    -        return 62;
    -      }
    -      if (charCode == slash) {
    -        return 63;
    -      }
    -      return -1;
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64-vlq.js
    -var require_base64_vlq = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/base64-vlq.js"(exports2) {
    -    var base64 = require_base64();
    -    var VLQ_BASE_SHIFT = 5;
    -    var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
    -    var VLQ_BASE_MASK = VLQ_BASE - 1;
    -    var VLQ_CONTINUATION_BIT = VLQ_BASE;
    -    function toVLQSigned(aValue) {
    -      return aValue < 0 ? (-aValue << 1) + 1 : (aValue << 1) + 0;
    -    }
    -    function fromVLQSigned(aValue) {
    -      var isNegative = (aValue & 1) === 1;
    -      var shifted = aValue >> 1;
    -      return isNegative ? -shifted : shifted;
    -    }
    -    exports2.encode = function base64VLQ_encode(aValue) {
    -      var encoded = "";
    -      var digit;
    -      var vlq = toVLQSigned(aValue);
    -      do {
    -        digit = vlq & VLQ_BASE_MASK;
    -        vlq >>>= VLQ_BASE_SHIFT;
    -        if (vlq > 0) {
    -          digit |= VLQ_CONTINUATION_BIT;
    -        }
    -        encoded += base64.encode(digit);
    -      } while (vlq > 0);
    -      return encoded;
    -    };
    -    exports2.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
    -      var strLen = aStr.length;
    -      var result = 0;
    -      var shift = 0;
    -      var continuation, digit;
    -      do {
    -        if (aIndex >= strLen) {
    -          throw new Error("Expected more digits in base 64 VLQ value.");
    -        }
    -        digit = base64.decode(aStr.charCodeAt(aIndex++));
    -        if (digit === -1) {
    -          throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
    -        }
    -        continuation = !!(digit & VLQ_CONTINUATION_BIT);
    -        digit &= VLQ_BASE_MASK;
    -        result = result + (digit << shift);
    -        shift += VLQ_BASE_SHIFT;
    -      } while (continuation);
    -      aOutParam.value = fromVLQSigned(result);
    -      aOutParam.rest = aIndex;
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/util.js
    -var require_util = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/util.js"(exports2) {
    -    function getArg(aArgs, aName, aDefaultValue) {
    -      if (aName in aArgs) {
    -        return aArgs[aName];
    -      } else if (arguments.length === 3) {
    -        return aDefaultValue;
    -      } else {
    -        throw new Error('"' + aName + '" is a required argument.');
    -      }
    -    }
    -    exports2.getArg = getArg;
    -    var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;
    -    var dataUrlRegexp = /^data:.+\,.+$/;
    -    function urlParse(aUrl) {
    -      var match2 = aUrl.match(urlRegexp);
    -      if (!match2) {
    -        return null;
    -      }
    -      return {
    -        scheme: match2[1],
    -        auth: match2[2],
    -        host: match2[3],
    -        port: match2[4],
    -        path: match2[5]
    -      };
    -    }
    -    exports2.urlParse = urlParse;
    -    function urlGenerate(aParsedUrl) {
    -      var url = "";
    -      if (aParsedUrl.scheme) {
    -        url += aParsedUrl.scheme + ":";
    -      }
    -      url += "//";
    -      if (aParsedUrl.auth) {
    -        url += aParsedUrl.auth + "@";
    -      }
    -      if (aParsedUrl.host) {
    -        url += aParsedUrl.host;
    -      }
    -      if (aParsedUrl.port) {
    -        url += ":" + aParsedUrl.port;
    -      }
    -      if (aParsedUrl.path) {
    -        url += aParsedUrl.path;
    -      }
    -      return url;
    -    }
    -    exports2.urlGenerate = urlGenerate;
    -    var MAX_CACHED_INPUTS = 32;
    -    function lruMemoize(f) {
    -      var cache = [];
    -      return function(input) {
    -        for (var i = 0; i < cache.length; i++) {
    -          if (cache[i].input === input) {
    -            var temp = cache[0];
    -            cache[0] = cache[i];
    -            cache[i] = temp;
    -            return cache[0].result;
    -          }
    -        }
    -        var result = f(input);
    -        cache.unshift({
    -          input,
    -          result
    -        });
    -        if (cache.length > MAX_CACHED_INPUTS) {
    -          cache.pop();
    -        }
    -        return result;
    -      };
    -    }
    -    var normalize2 = lruMemoize(function normalize3(aPath) {
    -      var path8 = aPath;
    -      var url = urlParse(aPath);
    -      if (url) {
    -        if (!url.path) {
    -          return aPath;
    -        }
    -        path8 = url.path;
    -      }
    -      var isAbsolute = exports2.isAbsolute(path8);
    -      var parts = [];
    -      var start = 0;
    -      var i = 0;
    -      while (true) {
    -        start = i;
    -        i = path8.indexOf("/", start);
    -        if (i === -1) {
    -          parts.push(path8.slice(start));
    -          break;
    -        } else {
    -          parts.push(path8.slice(start, i));
    -          while (i < path8.length && path8[i] === "/") {
    -            i++;
    -          }
    -        }
    -      }
    -      for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
    -        part = parts[i];
    -        if (part === ".") {
    -          parts.splice(i, 1);
    -        } else if (part === "..") {
    -          up++;
    -        } else if (up > 0) {
    -          if (part === "") {
    -            parts.splice(i + 1, up);
    -            up = 0;
    -          } else {
    -            parts.splice(i, 2);
    -            up--;
    -          }
    -        }
    -      }
    -      path8 = parts.join("/");
    -      if (path8 === "") {
    -        path8 = isAbsolute ? "/" : ".";
    -      }
    -      if (url) {
    -        url.path = path8;
    -        return urlGenerate(url);
    -      }
    -      return path8;
    -    });
    -    exports2.normalize = normalize2;
    -    function join9(aRoot, aPath) {
    -      if (aRoot === "") {
    -        aRoot = ".";
    -      }
    -      if (aPath === "") {
    -        aPath = ".";
    -      }
    -      var aPathUrl = urlParse(aPath);
    -      var aRootUrl = urlParse(aRoot);
    -      if (aRootUrl) {
    -        aRoot = aRootUrl.path || "/";
    -      }
    -      if (aPathUrl && !aPathUrl.scheme) {
    -        if (aRootUrl) {
    -          aPathUrl.scheme = aRootUrl.scheme;
    -        }
    -        return urlGenerate(aPathUrl);
    -      }
    -      if (aPathUrl || aPath.match(dataUrlRegexp)) {
    -        return aPath;
    -      }
    -      if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
    -        aRootUrl.host = aPath;
    -        return urlGenerate(aRootUrl);
    -      }
    -      var joined = aPath.charAt(0) === "/" ? aPath : normalize2(aRoot.replace(/\/+$/, "") + "/" + aPath);
    -      if (aRootUrl) {
    -        aRootUrl.path = joined;
    -        return urlGenerate(aRootUrl);
    -      }
    -      return joined;
    -    }
    -    exports2.join = join9;
    -    exports2.isAbsolute = function(aPath) {
    -      return aPath.charAt(0) === "/" || urlRegexp.test(aPath);
    -    };
    -    function relative2(aRoot, aPath) {
    -      if (aRoot === "") {
    -        aRoot = ".";
    -      }
    -      aRoot = aRoot.replace(/\/$/, "");
    -      var level = 0;
    -      while (aPath.indexOf(aRoot + "/") !== 0) {
    -        var index = aRoot.lastIndexOf("/");
    -        if (index < 0) {
    -          return aPath;
    -        }
    -        aRoot = aRoot.slice(0, index);
    -        if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
    -          return aPath;
    -        }
    -        ++level;
    -      }
    -      return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
    -    }
    -    exports2.relative = relative2;
    -    var supportsNullProto = function() {
    -      var obj = /* @__PURE__ */ Object.create(null);
    -      return !("__proto__" in obj);
    -    }();
    -    function identity3(s) {
    -      return s;
    -    }
    -    function toSetString(aStr) {
    -      if (isProtoString(aStr)) {
    -        return "$" + aStr;
    -      }
    -      return aStr;
    -    }
    -    exports2.toSetString = supportsNullProto ? identity3 : toSetString;
    -    function fromSetString(aStr) {
    -      if (isProtoString(aStr)) {
    -        return aStr.slice(1);
    -      }
    -      return aStr;
    -    }
    -    exports2.fromSetString = supportsNullProto ? identity3 : fromSetString;
    -    function isProtoString(s) {
    -      if (!s) {
    -        return false;
    -      }
    -      var length = s.length;
    -      if (length < 9) {
    -        return false;
    -      }
    -      if (s.charCodeAt(length - 1) !== 95 || s.charCodeAt(length - 2) !== 95 || s.charCodeAt(length - 3) !== 111 || s.charCodeAt(length - 4) !== 116 || s.charCodeAt(length - 5) !== 111 || s.charCodeAt(length - 6) !== 114 || s.charCodeAt(length - 7) !== 112 || s.charCodeAt(length - 8) !== 95 || s.charCodeAt(length - 9) !== 95) {
    -        return false;
    -      }
    -      for (var i = length - 10; i >= 0; i--) {
    -        if (s.charCodeAt(i) !== 36) {
    -          return false;
    -        }
    -      }
    -      return true;
    -    }
    -    function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
    -      var cmp = strcmp(mappingA.source, mappingB.source);
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalLine - mappingB.originalLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalColumn - mappingB.originalColumn;
    -      if (cmp !== 0 || onlyCompareOriginal) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedColumn - mappingB.generatedColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedLine - mappingB.generatedLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      return strcmp(mappingA.name, mappingB.name);
    -    }
    -    exports2.compareByOriginalPositions = compareByOriginalPositions;
    -    function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {
    -      var cmp;
    -      cmp = mappingA.originalLine - mappingB.originalLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalColumn - mappingB.originalColumn;
    -      if (cmp !== 0 || onlyCompareOriginal) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedColumn - mappingB.generatedColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedLine - mappingB.generatedLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      return strcmp(mappingA.name, mappingB.name);
    -    }
    -    exports2.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;
    -    function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
    -      var cmp = mappingA.generatedLine - mappingB.generatedLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedColumn - mappingB.generatedColumn;
    -      if (cmp !== 0 || onlyCompareGenerated) {
    -        return cmp;
    -      }
    -      cmp = strcmp(mappingA.source, mappingB.source);
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalLine - mappingB.originalLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalColumn - mappingB.originalColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      return strcmp(mappingA.name, mappingB.name);
    -    }
    -    exports2.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
    -    function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {
    -      var cmp = mappingA.generatedColumn - mappingB.generatedColumn;
    -      if (cmp !== 0 || onlyCompareGenerated) {
    -        return cmp;
    -      }
    -      cmp = strcmp(mappingA.source, mappingB.source);
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalLine - mappingB.originalLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalColumn - mappingB.originalColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      return strcmp(mappingA.name, mappingB.name);
    -    }
    -    exports2.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;
    -    function strcmp(aStr1, aStr2) {
    -      if (aStr1 === aStr2) {
    -        return 0;
    -      }
    -      if (aStr1 === null) {
    -        return 1;
    -      }
    -      if (aStr2 === null) {
    -        return -1;
    -      }
    -      if (aStr1 > aStr2) {
    -        return 1;
    -      }
    -      return -1;
    -    }
    -    function compareByGeneratedPositionsInflated(mappingA, mappingB) {
    -      var cmp = mappingA.generatedLine - mappingB.generatedLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.generatedColumn - mappingB.generatedColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = strcmp(mappingA.source, mappingB.source);
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalLine - mappingB.originalLine;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      cmp = mappingA.originalColumn - mappingB.originalColumn;
    -      if (cmp !== 0) {
    -        return cmp;
    -      }
    -      return strcmp(mappingA.name, mappingB.name);
    -    }
    -    exports2.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
    -    function parseSourceMapInput(str2) {
    -      return JSON.parse(str2.replace(/^\)]}'[^\n]*\n/, ""));
    -    }
    -    exports2.parseSourceMapInput = parseSourceMapInput;
    -    function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {
    -      sourceURL = sourceURL || "";
    -      if (sourceRoot) {
    -        if (sourceRoot[sourceRoot.length - 1] !== "/" && sourceURL[0] !== "/") {
    -          sourceRoot += "/";
    -        }
    -        sourceURL = sourceRoot + sourceURL;
    -      }
    -      if (sourceMapURL) {
    -        var parsed = urlParse(sourceMapURL);
    -        if (!parsed) {
    -          throw new Error("sourceMapURL could not be parsed");
    -        }
    -        if (parsed.path) {
    -          var index = parsed.path.lastIndexOf("/");
    -          if (index >= 0) {
    -            parsed.path = parsed.path.substring(0, index + 1);
    -          }
    -        }
    -        sourceURL = join9(urlGenerate(parsed), sourceURL);
    -      }
    -      return normalize2(sourceURL);
    -    }
    -    exports2.computeSourceURL = computeSourceURL;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/array-set.js
    -var require_array_set = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/array-set.js"(exports2) {
    -    var util2 = require_util();
    -    var has2 = Object.prototype.hasOwnProperty;
    -    var hasNativeMap = typeof Map !== "undefined";
    -    function ArraySet() {
    -      this._array = [];
    -      this._set = hasNativeMap ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
    -    }
    -    ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
    -      var set3 = new ArraySet();
    -      for (var i = 0, len = aArray.length; i < len; i++) {
    -        set3.add(aArray[i], aAllowDuplicates);
    -      }
    -      return set3;
    -    };
    -    ArraySet.prototype.size = function ArraySet_size() {
    -      return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
    -    };
    -    ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
    -      var sStr = hasNativeMap ? aStr : util2.toSetString(aStr);
    -      var isDuplicate = hasNativeMap ? this.has(aStr) : has2.call(this._set, sStr);
    -      var idx = this._array.length;
    -      if (!isDuplicate || aAllowDuplicates) {
    -        this._array.push(aStr);
    -      }
    -      if (!isDuplicate) {
    -        if (hasNativeMap) {
    -          this._set.set(aStr, idx);
    -        } else {
    -          this._set[sStr] = idx;
    -        }
    -      }
    -    };
    -    ArraySet.prototype.has = function ArraySet_has(aStr) {
    -      if (hasNativeMap) {
    -        return this._set.has(aStr);
    -      } else {
    -        var sStr = util2.toSetString(aStr);
    -        return has2.call(this._set, sStr);
    -      }
    -    };
    -    ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
    -      if (hasNativeMap) {
    -        var idx = this._set.get(aStr);
    -        if (idx >= 0) {
    -          return idx;
    -        }
    -      } else {
    -        var sStr = util2.toSetString(aStr);
    -        if (has2.call(this._set, sStr)) {
    -          return this._set[sStr];
    -        }
    -      }
    -      throw new Error('"' + aStr + '" is not in the set.');
    -    };
    -    ArraySet.prototype.at = function ArraySet_at(aIdx) {
    -      if (aIdx >= 0 && aIdx < this._array.length) {
    -        return this._array[aIdx];
    -      }
    -      throw new Error("No element indexed by " + aIdx);
    -    };
    -    ArraySet.prototype.toArray = function ArraySet_toArray() {
    -      return this._array.slice();
    -    };
    -    exports2.ArraySet = ArraySet;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/mapping-list.js
    -var require_mapping_list = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/mapping-list.js"(exports2) {
    -    var util2 = require_util();
    -    function generatedPositionAfter(mappingA, mappingB) {
    -      var lineA = mappingA.generatedLine;
    -      var lineB = mappingB.generatedLine;
    -      var columnA = mappingA.generatedColumn;
    -      var columnB = mappingB.generatedColumn;
    -      return lineB > lineA || lineB == lineA && columnB >= columnA || util2.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
    -    }
    -    function MappingList() {
    -      this._array = [];
    -      this._sorted = true;
    -      this._last = { generatedLine: -1, generatedColumn: 0 };
    -    }
    -    MappingList.prototype.unsortedForEach = function MappingList_forEach(aCallback, aThisArg) {
    -      this._array.forEach(aCallback, aThisArg);
    -    };
    -    MappingList.prototype.add = function MappingList_add(aMapping) {
    -      if (generatedPositionAfter(this._last, aMapping)) {
    -        this._last = aMapping;
    -        this._array.push(aMapping);
    -      } else {
    -        this._sorted = false;
    -        this._array.push(aMapping);
    -      }
    -    };
    -    MappingList.prototype.toArray = function MappingList_toArray() {
    -      if (!this._sorted) {
    -        this._array.sort(util2.compareByGeneratedPositionsInflated);
    -        this._sorted = true;
    -      }
    -      return this._array;
    -    };
    -    exports2.MappingList = MappingList;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-generator.js
    -var require_source_map_generator = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-generator.js"(exports2) {
    -    var base64VLQ = require_base64_vlq();
    -    var util2 = require_util();
    -    var ArraySet = require_array_set().ArraySet;
    -    var MappingList = require_mapping_list().MappingList;
    -    function SourceMapGenerator(aArgs) {
    -      if (!aArgs) {
    -        aArgs = {};
    -      }
    -      this._file = util2.getArg(aArgs, "file", null);
    -      this._sourceRoot = util2.getArg(aArgs, "sourceRoot", null);
    -      this._skipValidation = util2.getArg(aArgs, "skipValidation", false);
    -      this._ignoreInvalidMapping = util2.getArg(aArgs, "ignoreInvalidMapping", false);
    -      this._sources = new ArraySet();
    -      this._names = new ArraySet();
    -      this._mappings = new MappingList();
    -      this._sourcesContents = null;
    -    }
    -    SourceMapGenerator.prototype._version = 3;
    -    SourceMapGenerator.fromSourceMap = function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {
    -      var sourceRoot = aSourceMapConsumer.sourceRoot;
    -      var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {
    -        file: aSourceMapConsumer.file,
    -        sourceRoot
    -      }));
    -      aSourceMapConsumer.eachMapping(function(mapping) {
    -        var newMapping = {
    -          generated: {
    -            line: mapping.generatedLine,
    -            column: mapping.generatedColumn
    -          }
    -        };
    -        if (mapping.source != null) {
    -          newMapping.source = mapping.source;
    -          if (sourceRoot != null) {
    -            newMapping.source = util2.relative(sourceRoot, newMapping.source);
    -          }
    -          newMapping.original = {
    -            line: mapping.originalLine,
    -            column: mapping.originalColumn
    -          };
    -          if (mapping.name != null) {
    -            newMapping.name = mapping.name;
    -          }
    -        }
    -        generator.addMapping(newMapping);
    -      });
    -      aSourceMapConsumer.sources.forEach(function(sourceFile) {
    -        var sourceRelative = sourceFile;
    -        if (sourceRoot !== null) {
    -          sourceRelative = util2.relative(sourceRoot, sourceFile);
    -        }
    -        if (!generator._sources.has(sourceRelative)) {
    -          generator._sources.add(sourceRelative);
    -        }
    -        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
    -        if (content != null) {
    -          generator.setSourceContent(sourceFile, content);
    -        }
    -      });
    -      return generator;
    -    };
    -    SourceMapGenerator.prototype.addMapping = function SourceMapGenerator_addMapping(aArgs) {
    -      var generated = util2.getArg(aArgs, "generated");
    -      var original = util2.getArg(aArgs, "original", null);
    -      var source = util2.getArg(aArgs, "source", null);
    -      var name = util2.getArg(aArgs, "name", null);
    -      if (!this._skipValidation) {
    -        if (this._validateMapping(generated, original, source, name) === false) {
    -          return;
    -        }
    -      }
    -      if (source != null) {
    -        source = String(source);
    -        if (!this._sources.has(source)) {
    -          this._sources.add(source);
    -        }
    -      }
    -      if (name != null) {
    -        name = String(name);
    -        if (!this._names.has(name)) {
    -          this._names.add(name);
    -        }
    -      }
    -      this._mappings.add({
    -        generatedLine: generated.line,
    -        generatedColumn: generated.column,
    -        originalLine: original != null && original.line,
    -        originalColumn: original != null && original.column,
    -        source,
    -        name
    -      });
    -    };
    -    SourceMapGenerator.prototype.setSourceContent = function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
    -      var source = aSourceFile;
    -      if (this._sourceRoot != null) {
    -        source = util2.relative(this._sourceRoot, source);
    -      }
    -      if (aSourceContent != null) {
    -        if (!this._sourcesContents) {
    -          this._sourcesContents = /* @__PURE__ */ Object.create(null);
    -        }
    -        this._sourcesContents[util2.toSetString(source)] = aSourceContent;
    -      } else if (this._sourcesContents) {
    -        delete this._sourcesContents[util2.toSetString(source)];
    -        if (Object.keys(this._sourcesContents).length === 0) {
    -          this._sourcesContents = null;
    -        }
    -      }
    -    };
    -    SourceMapGenerator.prototype.applySourceMap = function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
    -      var sourceFile = aSourceFile;
    -      if (aSourceFile == null) {
    -        if (aSourceMapConsumer.file == null) {
    -          throw new Error(
    -            `SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`
    -          );
    -        }
    -        sourceFile = aSourceMapConsumer.file;
    -      }
    -      var sourceRoot = this._sourceRoot;
    -      if (sourceRoot != null) {
    -        sourceFile = util2.relative(sourceRoot, sourceFile);
    -      }
    -      var newSources = new ArraySet();
    -      var newNames = new ArraySet();
    -      this._mappings.unsortedForEach(function(mapping) {
    -        if (mapping.source === sourceFile && mapping.originalLine != null) {
    -          var original = aSourceMapConsumer.originalPositionFor({
    -            line: mapping.originalLine,
    -            column: mapping.originalColumn
    -          });
    -          if (original.source != null) {
    -            mapping.source = original.source;
    -            if (aSourceMapPath != null) {
    -              mapping.source = util2.join(aSourceMapPath, mapping.source);
    -            }
    -            if (sourceRoot != null) {
    -              mapping.source = util2.relative(sourceRoot, mapping.source);
    -            }
    -            mapping.originalLine = original.line;
    -            mapping.originalColumn = original.column;
    -            if (original.name != null) {
    -              mapping.name = original.name;
    -            }
    -          }
    -        }
    -        var source = mapping.source;
    -        if (source != null && !newSources.has(source)) {
    -          newSources.add(source);
    -        }
    -        var name = mapping.name;
    -        if (name != null && !newNames.has(name)) {
    -          newNames.add(name);
    -        }
    -      }, this);
    -      this._sources = newSources;
    -      this._names = newNames;
    -      aSourceMapConsumer.sources.forEach(function(sourceFile2) {
    -        var content = aSourceMapConsumer.sourceContentFor(sourceFile2);
    -        if (content != null) {
    -          if (aSourceMapPath != null) {
    -            sourceFile2 = util2.join(aSourceMapPath, sourceFile2);
    -          }
    -          if (sourceRoot != null) {
    -            sourceFile2 = util2.relative(sourceRoot, sourceFile2);
    -          }
    -          this.setSourceContent(sourceFile2, content);
    -        }
    -      }, this);
    -    };
    -    SourceMapGenerator.prototype._validateMapping = function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, aName) {
    -      if (aOriginal && typeof aOriginal.line !== "number" && typeof aOriginal.column !== "number") {
    -        var message = "original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";
    -        if (this._ignoreInvalidMapping) {
    -          if (typeof console !== "undefined" && console.warn) {
    -            console.warn(message);
    -          }
    -          return false;
    -        } else {
    -          throw new Error(message);
    -        }
    -      }
    -      if (aGenerated && "line" in aGenerated && "column" in aGenerated && aGenerated.line > 0 && aGenerated.column >= 0 && !aOriginal && !aSource && !aName) {
    -        return;
    -      } else if (aGenerated && "line" in aGenerated && "column" in aGenerated && aOriginal && "line" in aOriginal && "column" in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) {
    -        return;
    -      } else {
    -        var message = "Invalid mapping: " + JSON.stringify({
    -          generated: aGenerated,
    -          source: aSource,
    -          original: aOriginal,
    -          name: aName
    -        });
    -        if (this._ignoreInvalidMapping) {
    -          if (typeof console !== "undefined" && console.warn) {
    -            console.warn(message);
    -          }
    -          return false;
    -        } else {
    -          throw new Error(message);
    -        }
    -      }
    -    };
    -    SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() {
    -      var previousGeneratedColumn = 0;
    -      var previousGeneratedLine = 1;
    -      var previousOriginalColumn = 0;
    -      var previousOriginalLine = 0;
    -      var previousName = 0;
    -      var previousSource = 0;
    -      var result = "";
    -      var next;
    -      var mapping;
    -      var nameIdx;
    -      var sourceIdx;
    -      var mappings = this._mappings.toArray();
    -      for (var i = 0, len = mappings.length; i < len; i++) {
    -        mapping = mappings[i];
    -        next = "";
    -        if (mapping.generatedLine !== previousGeneratedLine) {
    -          previousGeneratedColumn = 0;
    -          while (mapping.generatedLine !== previousGeneratedLine) {
    -            next += ";";
    -            previousGeneratedLine++;
    -          }
    -        } else {
    -          if (i > 0) {
    -            if (!util2.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
    -              continue;
    -            }
    -            next += ",";
    -          }
    -        }
    -        next += base64VLQ.encode(mapping.generatedColumn - previousGeneratedColumn);
    -        previousGeneratedColumn = mapping.generatedColumn;
    -        if (mapping.source != null) {
    -          sourceIdx = this._sources.indexOf(mapping.source);
    -          next += base64VLQ.encode(sourceIdx - previousSource);
    -          previousSource = sourceIdx;
    -          next += base64VLQ.encode(mapping.originalLine - 1 - previousOriginalLine);
    -          previousOriginalLine = mapping.originalLine - 1;
    -          next += base64VLQ.encode(mapping.originalColumn - previousOriginalColumn);
    -          previousOriginalColumn = mapping.originalColumn;
    -          if (mapping.name != null) {
    -            nameIdx = this._names.indexOf(mapping.name);
    -            next += base64VLQ.encode(nameIdx - previousName);
    -            previousName = nameIdx;
    -          }
    -        }
    -        result += next;
    -      }
    -      return result;
    -    };
    -    SourceMapGenerator.prototype._generateSourcesContent = function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
    -      return aSources.map(function(source) {
    -        if (!this._sourcesContents) {
    -          return null;
    -        }
    -        if (aSourceRoot != null) {
    -          source = util2.relative(aSourceRoot, source);
    -        }
    -        var key = util2.toSetString(source);
    -        return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) ? this._sourcesContents[key] : null;
    -      }, this);
    -    };
    -    SourceMapGenerator.prototype.toJSON = function SourceMapGenerator_toJSON() {
    -      var map4 = {
    -        version: this._version,
    -        sources: this._sources.toArray(),
    -        names: this._names.toArray(),
    -        mappings: this._serializeMappings()
    -      };
    -      if (this._file != null) {
    -        map4.file = this._file;
    -      }
    -      if (this._sourceRoot != null) {
    -        map4.sourceRoot = this._sourceRoot;
    -      }
    -      if (this._sourcesContents) {
    -        map4.sourcesContent = this._generateSourcesContent(map4.sources, map4.sourceRoot);
    -      }
    -      return map4;
    -    };
    -    SourceMapGenerator.prototype.toString = function SourceMapGenerator_toString() {
    -      return JSON.stringify(this.toJSON());
    -    };
    -    exports2.SourceMapGenerator = SourceMapGenerator;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/binary-search.js
    -var require_binary_search = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/binary-search.js"(exports2) {
    -    exports2.GREATEST_LOWER_BOUND = 1;
    -    exports2.LEAST_UPPER_BOUND = 2;
    -    function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
    -      var mid = Math.floor((aHigh - aLow) / 2) + aLow;
    -      var cmp = aCompare(aNeedle, aHaystack[mid], true);
    -      if (cmp === 0) {
    -        return mid;
    -      } else if (cmp > 0) {
    -        if (aHigh - mid > 1) {
    -          return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
    -        }
    -        if (aBias == exports2.LEAST_UPPER_BOUND) {
    -          return aHigh < aHaystack.length ? aHigh : -1;
    -        } else {
    -          return mid;
    -        }
    -      } else {
    -        if (mid - aLow > 1) {
    -          return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
    -        }
    -        if (aBias == exports2.LEAST_UPPER_BOUND) {
    -          return mid;
    -        } else {
    -          return aLow < 0 ? -1 : aLow;
    -        }
    -      }
    -    }
    -    exports2.search = function search(aNeedle, aHaystack, aCompare, aBias) {
    -      if (aHaystack.length === 0) {
    -        return -1;
    -      }
    -      var index = recursiveSearch(
    -        -1,
    -        aHaystack.length,
    -        aNeedle,
    -        aHaystack,
    -        aCompare,
    -        aBias || exports2.GREATEST_LOWER_BOUND
    -      );
    -      if (index < 0) {
    -        return -1;
    -      }
    -      while (index - 1 >= 0) {
    -        if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
    -          break;
    -        }
    -        --index;
    -      }
    -      return index;
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/quick-sort.js
    -var require_quick_sort = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/quick-sort.js"(exports2) {
    -    function SortTemplate(comparator) {
    -      function swap(ary, x, y) {
    -        var temp = ary[x];
    -        ary[x] = ary[y];
    -        ary[y] = temp;
    -      }
    -      function randomIntInRange(low, high) {
    -        return Math.round(low + Math.random() * (high - low));
    -      }
    -      function doQuickSort(ary, comparator2, p, r) {
    -        if (p < r) {
    -          var pivotIndex = randomIntInRange(p, r);
    -          var i = p - 1;
    -          swap(ary, pivotIndex, r);
    -          var pivot = ary[r];
    -          for (var j = p; j < r; j++) {
    -            if (comparator2(ary[j], pivot, false) <= 0) {
    -              i += 1;
    -              swap(ary, i, j);
    -            }
    -          }
    -          swap(ary, i + 1, j);
    -          var q2 = i + 1;
    -          doQuickSort(ary, comparator2, p, q2 - 1);
    -          doQuickSort(ary, comparator2, q2 + 1, r);
    -        }
    -      }
    -      return doQuickSort;
    -    }
    -    function cloneSort(comparator) {
    -      let template = SortTemplate.toString();
    -      let templateFn = new Function(`return ${template}`)();
    -      return templateFn(comparator);
    -    }
    -    var sortCache = /* @__PURE__ */ new WeakMap();
    -    exports2.quickSort = function(ary, comparator, start = 0) {
    -      let doQuickSort = sortCache.get(comparator);
    -      if (doQuickSort === void 0) {
    -        doQuickSort = cloneSort(comparator);
    -        sortCache.set(comparator, doQuickSort);
    -      }
    -      doQuickSort(ary, comparator, start, ary.length - 1);
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-consumer.js
    -var require_source_map_consumer = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-map-consumer.js"(exports2) {
    -    var util2 = require_util();
    -    var binarySearch = require_binary_search();
    -    var ArraySet = require_array_set().ArraySet;
    -    var base64VLQ = require_base64_vlq();
    -    var quickSort = require_quick_sort().quickSort;
    -    function SourceMapConsumer(aSourceMap, aSourceMapURL) {
    -      var sourceMap = aSourceMap;
    -      if (typeof aSourceMap === "string") {
    -        sourceMap = util2.parseSourceMapInput(aSourceMap);
    -      }
    -      return sourceMap.sections != null ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);
    -    }
    -    SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {
    -      return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);
    -    };
    -    SourceMapConsumer.prototype._version = 3;
    -    SourceMapConsumer.prototype.__generatedMappings = null;
    -    Object.defineProperty(SourceMapConsumer.prototype, "_generatedMappings", {
    -      configurable: true,
    -      enumerable: true,
    -      get: function() {
    -        if (!this.__generatedMappings) {
    -          this._parseMappings(this._mappings, this.sourceRoot);
    -        }
    -        return this.__generatedMappings;
    -      }
    -    });
    -    SourceMapConsumer.prototype.__originalMappings = null;
    -    Object.defineProperty(SourceMapConsumer.prototype, "_originalMappings", {
    -      configurable: true,
    -      enumerable: true,
    -      get: function() {
    -        if (!this.__originalMappings) {
    -          this._parseMappings(this._mappings, this.sourceRoot);
    -        }
    -        return this.__originalMappings;
    -      }
    -    });
    -    SourceMapConsumer.prototype._charIsMappingSeparator = function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
    -      var c = aStr.charAt(index);
    -      return c === ";" || c === ",";
    -    };
    -    SourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
    -      throw new Error("Subclasses must implement _parseMappings");
    -    };
    -    SourceMapConsumer.GENERATED_ORDER = 1;
    -    SourceMapConsumer.ORIGINAL_ORDER = 2;
    -    SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
    -    SourceMapConsumer.LEAST_UPPER_BOUND = 2;
    -    SourceMapConsumer.prototype.eachMapping = function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
    -      var context = aContext || null;
    -      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
    -      var mappings;
    -      switch (order) {
    -        case SourceMapConsumer.GENERATED_ORDER:
    -          mappings = this._generatedMappings;
    -          break;
    -        case SourceMapConsumer.ORIGINAL_ORDER:
    -          mappings = this._originalMappings;
    -          break;
    -        default:
    -          throw new Error("Unknown order of iteration.");
    -      }
    -      var sourceRoot = this.sourceRoot;
    -      var boundCallback = aCallback.bind(context);
    -      var names = this._names;
    -      var sources = this._sources;
    -      var sourceMapURL = this._sourceMapURL;
    -      for (var i = 0, n = mappings.length; i < n; i++) {
    -        var mapping = mappings[i];
    -        var source = mapping.source === null ? null : sources.at(mapping.source);
    -        source = util2.computeSourceURL(sourceRoot, source, sourceMapURL);
    -        boundCallback({
    -          source,
    -          generatedLine: mapping.generatedLine,
    -          generatedColumn: mapping.generatedColumn,
    -          originalLine: mapping.originalLine,
    -          originalColumn: mapping.originalColumn,
    -          name: mapping.name === null ? null : names.at(mapping.name)
    -        });
    -      }
    -    };
    -    SourceMapConsumer.prototype.allGeneratedPositionsFor = function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
    -      var line = util2.getArg(aArgs, "line");
    -      var needle = {
    -        source: util2.getArg(aArgs, "source"),
    -        originalLine: line,
    -        originalColumn: util2.getArg(aArgs, "column", 0)
    -      };
    -      needle.source = this._findSourceIndex(needle.source);
    -      if (needle.source < 0) {
    -        return [];
    -      }
    -      var mappings = [];
    -      var index = this._findMapping(
    -        needle,
    -        this._originalMappings,
    -        "originalLine",
    -        "originalColumn",
    -        util2.compareByOriginalPositions,
    -        binarySearch.LEAST_UPPER_BOUND
    -      );
    -      if (index >= 0) {
    -        var mapping = this._originalMappings[index];
    -        if (aArgs.column === void 0) {
    -          var originalLine = mapping.originalLine;
    -          while (mapping && mapping.originalLine === originalLine) {
    -            mappings.push({
    -              line: util2.getArg(mapping, "generatedLine", null),
    -              column: util2.getArg(mapping, "generatedColumn", null),
    -              lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null)
    -            });
    -            mapping = this._originalMappings[++index];
    -          }
    -        } else {
    -          var originalColumn = mapping.originalColumn;
    -          while (mapping && mapping.originalLine === line && mapping.originalColumn == originalColumn) {
    -            mappings.push({
    -              line: util2.getArg(mapping, "generatedLine", null),
    -              column: util2.getArg(mapping, "generatedColumn", null),
    -              lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null)
    -            });
    -            mapping = this._originalMappings[++index];
    -          }
    -        }
    -      }
    -      return mappings;
    -    };
    -    exports2.SourceMapConsumer = SourceMapConsumer;
    -    function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {
    -      var sourceMap = aSourceMap;
    -      if (typeof aSourceMap === "string") {
    -        sourceMap = util2.parseSourceMapInput(aSourceMap);
    -      }
    -      var version2 = util2.getArg(sourceMap, "version");
    -      var sources = util2.getArg(sourceMap, "sources");
    -      var names = util2.getArg(sourceMap, "names", []);
    -      var sourceRoot = util2.getArg(sourceMap, "sourceRoot", null);
    -      var sourcesContent = util2.getArg(sourceMap, "sourcesContent", null);
    -      var mappings = util2.getArg(sourceMap, "mappings");
    -      var file = util2.getArg(sourceMap, "file", null);
    -      if (version2 != this._version) {
    -        throw new Error("Unsupported version: " + version2);
    -      }
    -      if (sourceRoot) {
    -        sourceRoot = util2.normalize(sourceRoot);
    -      }
    -      sources = sources.map(String).map(util2.normalize).map(function(source) {
    -        return sourceRoot && util2.isAbsolute(sourceRoot) && util2.isAbsolute(source) ? util2.relative(sourceRoot, source) : source;
    -      });
    -      this._names = ArraySet.fromArray(names.map(String), true);
    -      this._sources = ArraySet.fromArray(sources, true);
    -      this._absoluteSources = this._sources.toArray().map(function(s) {
    -        return util2.computeSourceURL(sourceRoot, s, aSourceMapURL);
    -      });
    -      this.sourceRoot = sourceRoot;
    -      this.sourcesContent = sourcesContent;
    -      this._mappings = mappings;
    -      this._sourceMapURL = aSourceMapURL;
    -      this.file = file;
    -    }
    -    BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
    -    BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
    -    BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {
    -      var relativeSource = aSource;
    -      if (this.sourceRoot != null) {
    -        relativeSource = util2.relative(this.sourceRoot, relativeSource);
    -      }
    -      if (this._sources.has(relativeSource)) {
    -        return this._sources.indexOf(relativeSource);
    -      }
    -      var i;
    -      for (i = 0; i < this._absoluteSources.length; ++i) {
    -        if (this._absoluteSources[i] == aSource) {
    -          return i;
    -        }
    -      }
    -      return -1;
    -    };
    -    BasicSourceMapConsumer.fromSourceMap = function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {
    -      var smc = Object.create(BasicSourceMapConsumer.prototype);
    -      var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
    -      var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
    -      smc.sourceRoot = aSourceMap._sourceRoot;
    -      smc.sourcesContent = aSourceMap._generateSourcesContent(
    -        smc._sources.toArray(),
    -        smc.sourceRoot
    -      );
    -      smc.file = aSourceMap._file;
    -      smc._sourceMapURL = aSourceMapURL;
    -      smc._absoluteSources = smc._sources.toArray().map(function(s) {
    -        return util2.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);
    -      });
    -      var generatedMappings = aSourceMap._mappings.toArray().slice();
    -      var destGeneratedMappings = smc.__generatedMappings = [];
    -      var destOriginalMappings = smc.__originalMappings = [];
    -      for (var i = 0, length = generatedMappings.length; i < length; i++) {
    -        var srcMapping = generatedMappings[i];
    -        var destMapping = new Mapping();
    -        destMapping.generatedLine = srcMapping.generatedLine;
    -        destMapping.generatedColumn = srcMapping.generatedColumn;
    -        if (srcMapping.source) {
    -          destMapping.source = sources.indexOf(srcMapping.source);
    -          destMapping.originalLine = srcMapping.originalLine;
    -          destMapping.originalColumn = srcMapping.originalColumn;
    -          if (srcMapping.name) {
    -            destMapping.name = names.indexOf(srcMapping.name);
    -          }
    -          destOriginalMappings.push(destMapping);
    -        }
    -        destGeneratedMappings.push(destMapping);
    -      }
    -      quickSort(smc.__originalMappings, util2.compareByOriginalPositions);
    -      return smc;
    -    };
    -    BasicSourceMapConsumer.prototype._version = 3;
    -    Object.defineProperty(BasicSourceMapConsumer.prototype, "sources", {
    -      get: function() {
    -        return this._absoluteSources.slice();
    -      }
    -    });
    -    function Mapping() {
    -      this.generatedLine = 0;
    -      this.generatedColumn = 0;
    -      this.source = null;
    -      this.originalLine = null;
    -      this.originalColumn = null;
    -      this.name = null;
    -    }
    -    var compareGenerated = util2.compareByGeneratedPositionsDeflatedNoLine;
    -    function sortGenerated(array, start) {
    -      let l = array.length;
    -      let n = array.length - start;
    -      if (n <= 1) {
    -        return;
    -      } else if (n == 2) {
    -        let a = array[start];
    -        let b = array[start + 1];
    -        if (compareGenerated(a, b) > 0) {
    -          array[start] = b;
    -          array[start + 1] = a;
    -        }
    -      } else if (n < 20) {
    -        for (let i = start; i < l; i++) {
    -          for (let j = i; j > start; j--) {
    -            let a = array[j - 1];
    -            let b = array[j];
    -            if (compareGenerated(a, b) <= 0) {
    -              break;
    -            }
    -            array[j - 1] = b;
    -            array[j] = a;
    -          }
    -        }
    -      } else {
    -        quickSort(array, compareGenerated, start);
    -      }
    -    }
    -    BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
    -      var generatedLine = 1;
    -      var previousGeneratedColumn = 0;
    -      var previousOriginalLine = 0;
    -      var previousOriginalColumn = 0;
    -      var previousSource = 0;
    -      var previousName = 0;
    -      var length = aStr.length;
    -      var index = 0;
    -      var cachedSegments = {};
    -      var temp = {};
    -      var originalMappings = [];
    -      var generatedMappings = [];
    -      var mapping, str2, segment, end, value;
    -      let subarrayStart = 0;
    -      while (index < length) {
    -        if (aStr.charAt(index) === ";") {
    -          generatedLine++;
    -          index++;
    -          previousGeneratedColumn = 0;
    -          sortGenerated(generatedMappings, subarrayStart);
    -          subarrayStart = generatedMappings.length;
    -        } else if (aStr.charAt(index) === ",") {
    -          index++;
    -        } else {
    -          mapping = new Mapping();
    -          mapping.generatedLine = generatedLine;
    -          for (end = index; end < length; end++) {
    -            if (this._charIsMappingSeparator(aStr, end)) {
    -              break;
    -            }
    -          }
    -          str2 = aStr.slice(index, end);
    -          segment = [];
    -          while (index < end) {
    -            base64VLQ.decode(aStr, index, temp);
    -            value = temp.value;
    -            index = temp.rest;
    -            segment.push(value);
    -          }
    -          if (segment.length === 2) {
    -            throw new Error("Found a source, but no line and column");
    -          }
    -          if (segment.length === 3) {
    -            throw new Error("Found a source and line, but no column");
    -          }
    -          mapping.generatedColumn = previousGeneratedColumn + segment[0];
    -          previousGeneratedColumn = mapping.generatedColumn;
    -          if (segment.length > 1) {
    -            mapping.source = previousSource + segment[1];
    -            previousSource += segment[1];
    -            mapping.originalLine = previousOriginalLine + segment[2];
    -            previousOriginalLine = mapping.originalLine;
    -            mapping.originalLine += 1;
    -            mapping.originalColumn = previousOriginalColumn + segment[3];
    -            previousOriginalColumn = mapping.originalColumn;
    -            if (segment.length > 4) {
    -              mapping.name = previousName + segment[4];
    -              previousName += segment[4];
    -            }
    -          }
    -          generatedMappings.push(mapping);
    -          if (typeof mapping.originalLine === "number") {
    -            let currentSource = mapping.source;
    -            while (originalMappings.length <= currentSource) {
    -              originalMappings.push(null);
    -            }
    -            if (originalMappings[currentSource] === null) {
    -              originalMappings[currentSource] = [];
    -            }
    -            originalMappings[currentSource].push(mapping);
    -          }
    -        }
    -      }
    -      sortGenerated(generatedMappings, subarrayStart);
    -      this.__generatedMappings = generatedMappings;
    -      for (var i = 0; i < originalMappings.length; i++) {
    -        if (originalMappings[i] != null) {
    -          quickSort(originalMappings[i], util2.compareByOriginalPositionsNoSource);
    -        }
    -      }
    -      this.__originalMappings = [].concat(...originalMappings);
    -    };
    -    BasicSourceMapConsumer.prototype._findMapping = function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, aColumnName, aComparator, aBias) {
    -      if (aNeedle[aLineName] <= 0) {
    -        throw new TypeError("Line must be greater than or equal to 1, got " + aNeedle[aLineName]);
    -      }
    -      if (aNeedle[aColumnName] < 0) {
    -        throw new TypeError("Column must be greater than or equal to 0, got " + aNeedle[aColumnName]);
    -      }
    -      return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
    -    };
    -    BasicSourceMapConsumer.prototype.computeColumnSpans = function SourceMapConsumer_computeColumnSpans() {
    -      for (var index = 0; index < this._generatedMappings.length; ++index) {
    -        var mapping = this._generatedMappings[index];
    -        if (index + 1 < this._generatedMappings.length) {
    -          var nextMapping = this._generatedMappings[index + 1];
    -          if (mapping.generatedLine === nextMapping.generatedLine) {
    -            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
    -            continue;
    -          }
    -        }
    -        mapping.lastGeneratedColumn = Infinity;
    -      }
    -    };
    -    BasicSourceMapConsumer.prototype.originalPositionFor = function SourceMapConsumer_originalPositionFor(aArgs) {
    -      var needle = {
    -        generatedLine: util2.getArg(aArgs, "line"),
    -        generatedColumn: util2.getArg(aArgs, "column")
    -      };
    -      var index = this._findMapping(
    -        needle,
    -        this._generatedMappings,
    -        "generatedLine",
    -        "generatedColumn",
    -        util2.compareByGeneratedPositionsDeflated,
    -        util2.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)
    -      );
    -      if (index >= 0) {
    -        var mapping = this._generatedMappings[index];
    -        if (mapping.generatedLine === needle.generatedLine) {
    -          var source = util2.getArg(mapping, "source", null);
    -          if (source !== null) {
    -            source = this._sources.at(source);
    -            source = util2.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);
    -          }
    -          var name = util2.getArg(mapping, "name", null);
    -          if (name !== null) {
    -            name = this._names.at(name);
    -          }
    -          return {
    -            source,
    -            line: util2.getArg(mapping, "originalLine", null),
    -            column: util2.getArg(mapping, "originalColumn", null),
    -            name
    -          };
    -        }
    -      }
    -      return {
    -        source: null,
    -        line: null,
    -        column: null,
    -        name: null
    -      };
    -    };
    -    BasicSourceMapConsumer.prototype.hasContentsOfAllSources = function BasicSourceMapConsumer_hasContentsOfAllSources() {
    -      if (!this.sourcesContent) {
    -        return false;
    -      }
    -      return this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(sc) {
    -        return sc == null;
    -      });
    -    };
    -    BasicSourceMapConsumer.prototype.sourceContentFor = function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
    -      if (!this.sourcesContent) {
    -        return null;
    -      }
    -      var index = this._findSourceIndex(aSource);
    -      if (index >= 0) {
    -        return this.sourcesContent[index];
    -      }
    -      var relativeSource = aSource;
    -      if (this.sourceRoot != null) {
    -        relativeSource = util2.relative(this.sourceRoot, relativeSource);
    -      }
    -      var url;
    -      if (this.sourceRoot != null && (url = util2.urlParse(this.sourceRoot))) {
    -        var fileUriAbsPath = relativeSource.replace(/^file:\/\//, "");
    -        if (url.scheme == "file" && this._sources.has(fileUriAbsPath)) {
    -          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)];
    -        }
    -        if ((!url.path || url.path == "/") && this._sources.has("/" + relativeSource)) {
    -          return this.sourcesContent[this._sources.indexOf("/" + relativeSource)];
    -        }
    -      }
    -      if (nullOnMissing) {
    -        return null;
    -      } else {
    -        throw new Error('"' + relativeSource + '" is not in the SourceMap.');
    -      }
    -    };
    -    BasicSourceMapConsumer.prototype.generatedPositionFor = function SourceMapConsumer_generatedPositionFor(aArgs) {
    -      var source = util2.getArg(aArgs, "source");
    -      source = this._findSourceIndex(source);
    -      if (source < 0) {
    -        return {
    -          line: null,
    -          column: null,
    -          lastColumn: null
    -        };
    -      }
    -      var needle = {
    -        source,
    -        originalLine: util2.getArg(aArgs, "line"),
    -        originalColumn: util2.getArg(aArgs, "column")
    -      };
    -      var index = this._findMapping(
    -        needle,
    -        this._originalMappings,
    -        "originalLine",
    -        "originalColumn",
    -        util2.compareByOriginalPositions,
    -        util2.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)
    -      );
    -      if (index >= 0) {
    -        var mapping = this._originalMappings[index];
    -        if (mapping.source === needle.source) {
    -          return {
    -            line: util2.getArg(mapping, "generatedLine", null),
    -            column: util2.getArg(mapping, "generatedColumn", null),
    -            lastColumn: util2.getArg(mapping, "lastGeneratedColumn", null)
    -          };
    -        }
    -      }
    -      return {
    -        line: null,
    -        column: null,
    -        lastColumn: null
    -      };
    -    };
    -    exports2.BasicSourceMapConsumer = BasicSourceMapConsumer;
    -    function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
    -      var sourceMap = aSourceMap;
    -      if (typeof aSourceMap === "string") {
    -        sourceMap = util2.parseSourceMapInput(aSourceMap);
    -      }
    -      var version2 = util2.getArg(sourceMap, "version");
    -      var sections = util2.getArg(sourceMap, "sections");
    -      if (version2 != this._version) {
    -        throw new Error("Unsupported version: " + version2);
    -      }
    -      this._sources = new ArraySet();
    -      this._names = new ArraySet();
    -      var lastOffset = {
    -        line: -1,
    -        column: 0
    -      };
    -      this._sections = sections.map(function(s) {
    -        if (s.url) {
    -          throw new Error("Support for url field in sections not implemented.");
    -        }
    -        var offset = util2.getArg(s, "offset");
    -        var offsetLine = util2.getArg(offset, "line");
    -        var offsetColumn = util2.getArg(offset, "column");
    -        if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) {
    -          throw new Error("Section offsets must be ordered and non-overlapping.");
    -        }
    -        lastOffset = offset;
    -        return {
    -          generatedOffset: {
    -            // The offset fields are 0-based, but we use 1-based indices when
    -            // encoding/decoding from VLQ.
    -            generatedLine: offsetLine + 1,
    -            generatedColumn: offsetColumn + 1
    -          },
    -          consumer: new SourceMapConsumer(util2.getArg(s, "map"), aSourceMapURL)
    -        };
    -      });
    -    }
    -    IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
    -    IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
    -    IndexedSourceMapConsumer.prototype._version = 3;
    -    Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", {
    -      get: function() {
    -        var sources = [];
    -        for (var i = 0; i < this._sections.length; i++) {
    -          for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
    -            sources.push(this._sections[i].consumer.sources[j]);
    -          }
    -        }
    -        return sources;
    -      }
    -    });
    -    IndexedSourceMapConsumer.prototype.originalPositionFor = function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
    -      var needle = {
    -        generatedLine: util2.getArg(aArgs, "line"),
    -        generatedColumn: util2.getArg(aArgs, "column")
    -      };
    -      var sectionIndex = binarySearch.search(
    -        needle,
    -        this._sections,
    -        function(needle2, section2) {
    -          var cmp = needle2.generatedLine - section2.generatedOffset.generatedLine;
    -          if (cmp) {
    -            return cmp;
    -          }
    -          return needle2.generatedColumn - section2.generatedOffset.generatedColumn;
    -        }
    -      );
    -      var section = this._sections[sectionIndex];
    -      if (!section) {
    -        return {
    -          source: null,
    -          line: null,
    -          column: null,
    -          name: null
    -        };
    -      }
    -      return section.consumer.originalPositionFor({
    -        line: needle.generatedLine - (section.generatedOffset.generatedLine - 1),
    -        column: needle.generatedColumn - (section.generatedOffset.generatedLine === needle.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0),
    -        bias: aArgs.bias
    -      });
    -    };
    -    IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = function IndexedSourceMapConsumer_hasContentsOfAllSources() {
    -      return this._sections.every(function(s) {
    -        return s.consumer.hasContentsOfAllSources();
    -      });
    -    };
    -    IndexedSourceMapConsumer.prototype.sourceContentFor = function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
    -      for (var i = 0; i < this._sections.length; i++) {
    -        var section = this._sections[i];
    -        var content = section.consumer.sourceContentFor(aSource, true);
    -        if (content || content === "") {
    -          return content;
    -        }
    -      }
    -      if (nullOnMissing) {
    -        return null;
    -      } else {
    -        throw new Error('"' + aSource + '" is not in the SourceMap.');
    -      }
    -    };
    -    IndexedSourceMapConsumer.prototype.generatedPositionFor = function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
    -      for (var i = 0; i < this._sections.length; i++) {
    -        var section = this._sections[i];
    -        if (section.consumer._findSourceIndex(util2.getArg(aArgs, "source")) === -1) {
    -          continue;
    -        }
    -        var generatedPosition = section.consumer.generatedPositionFor(aArgs);
    -        if (generatedPosition) {
    -          var ret = {
    -            line: generatedPosition.line + (section.generatedOffset.generatedLine - 1),
    -            column: generatedPosition.column + (section.generatedOffset.generatedLine === generatedPosition.line ? section.generatedOffset.generatedColumn - 1 : 0)
    -          };
    -          return ret;
    -        }
    -      }
    -      return {
    -        line: null,
    -        column: null
    -      };
    -    };
    -    IndexedSourceMapConsumer.prototype._parseMappings = function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
    -      this.__generatedMappings = [];
    -      this.__originalMappings = [];
    -      for (var i = 0; i < this._sections.length; i++) {
    -        var section = this._sections[i];
    -        var sectionMappings = section.consumer._generatedMappings;
    -        for (var j = 0; j < sectionMappings.length; j++) {
    -          var mapping = sectionMappings[j];
    -          var source = section.consumer._sources.at(mapping.source);
    -          source = util2.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);
    -          this._sources.add(source);
    -          source = this._sources.indexOf(source);
    -          var name = null;
    -          if (mapping.name) {
    -            name = section.consumer._names.at(mapping.name);
    -            this._names.add(name);
    -            name = this._names.indexOf(name);
    -          }
    -          var adjustedMapping = {
    -            source,
    -            generatedLine: mapping.generatedLine + (section.generatedOffset.generatedLine - 1),
    -            generatedColumn: mapping.generatedColumn + (section.generatedOffset.generatedLine === mapping.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0),
    -            originalLine: mapping.originalLine,
    -            originalColumn: mapping.originalColumn,
    -            name
    -          };
    -          this.__generatedMappings.push(adjustedMapping);
    -          if (typeof adjustedMapping.originalLine === "number") {
    -            this.__originalMappings.push(adjustedMapping);
    -          }
    -        }
    -      }
    -      quickSort(this.__generatedMappings, util2.compareByGeneratedPositionsDeflated);
    -      quickSort(this.__originalMappings, util2.compareByOriginalPositions);
    -    };
    -    exports2.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-node.js
    -var require_source_node = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/lib/source-node.js"(exports2) {
    -    var SourceMapGenerator = require_source_map_generator().SourceMapGenerator;
    -    var util2 = require_util();
    -    var REGEX_NEWLINE = /(\r?\n)/;
    -    var NEWLINE_CODE = 10;
    -    var isSourceNode = "$$$isSourceNode$$$";
    -    function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
    -      this.children = [];
    -      this.sourceContents = {};
    -      this.line = aLine == null ? null : aLine;
    -      this.column = aColumn == null ? null : aColumn;
    -      this.source = aSource == null ? null : aSource;
    -      this.name = aName == null ? null : aName;
    -      this[isSourceNode] = true;
    -      if (aChunks != null)
    -        this.add(aChunks);
    -    }
    -    SourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
    -      var node = new SourceNode();
    -      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
    -      var remainingLinesIndex = 0;
    -      var shiftNextLine = function() {
    -        var lineContents = getNextLine();
    -        var newLine = getNextLine() || "";
    -        return lineContents + newLine;
    -        function getNextLine() {
    -          return remainingLinesIndex < remainingLines.length ? remainingLines[remainingLinesIndex++] : void 0;
    -        }
    -      };
    -      var lastGeneratedLine = 1, lastGeneratedColumn = 0;
    -      var lastMapping = null;
    -      aSourceMapConsumer.eachMapping(function(mapping) {
    -        if (lastMapping !== null) {
    -          if (lastGeneratedLine < mapping.generatedLine) {
    -            addMappingWithCode(lastMapping, shiftNextLine());
    -            lastGeneratedLine++;
    -            lastGeneratedColumn = 0;
    -          } else {
    -            var nextLine = remainingLines[remainingLinesIndex] || "";
    -            var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn);
    -            remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - lastGeneratedColumn);
    -            lastGeneratedColumn = mapping.generatedColumn;
    -            addMappingWithCode(lastMapping, code);
    -            lastMapping = mapping;
    -            return;
    -          }
    -        }
    -        while (lastGeneratedLine < mapping.generatedLine) {
    -          node.add(shiftNextLine());
    -          lastGeneratedLine++;
    -        }
    -        if (lastGeneratedColumn < mapping.generatedColumn) {
    -          var nextLine = remainingLines[remainingLinesIndex] || "";
    -          node.add(nextLine.substr(0, mapping.generatedColumn));
    -          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
    -          lastGeneratedColumn = mapping.generatedColumn;
    -        }
    -        lastMapping = mapping;
    -      }, this);
    -      if (remainingLinesIndex < remainingLines.length) {
    -        if (lastMapping) {
    -          addMappingWithCode(lastMapping, shiftNextLine());
    -        }
    -        node.add(remainingLines.splice(remainingLinesIndex).join(""));
    -      }
    -      aSourceMapConsumer.sources.forEach(function(sourceFile) {
    -        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
    -        if (content != null) {
    -          if (aRelativePath != null) {
    -            sourceFile = util2.join(aRelativePath, sourceFile);
    -          }
    -          node.setSourceContent(sourceFile, content);
    -        }
    -      });
    -      return node;
    -      function addMappingWithCode(mapping, code) {
    -        if (mapping === null || mapping.source === void 0) {
    -          node.add(code);
    -        } else {
    -          var source = aRelativePath ? util2.join(aRelativePath, mapping.source) : mapping.source;
    -          node.add(new SourceNode(
    -            mapping.originalLine,
    -            mapping.originalColumn,
    -            source,
    -            code,
    -            mapping.name
    -          ));
    -        }
    -      }
    -    };
    -    SourceNode.prototype.add = function SourceNode_add(aChunk) {
    -      if (Array.isArray(aChunk)) {
    -        aChunk.forEach(function(chunk) {
    -          this.add(chunk);
    -        }, this);
    -      } else if (aChunk[isSourceNode] || typeof aChunk === "string") {
    -        if (aChunk) {
    -          this.children.push(aChunk);
    -        }
    -      } else {
    -        throw new TypeError(
    -          "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
    -        );
    -      }
    -      return this;
    -    };
    -    SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
    -      if (Array.isArray(aChunk)) {
    -        for (var i = aChunk.length - 1; i >= 0; i--) {
    -          this.prepend(aChunk[i]);
    -        }
    -      } else if (aChunk[isSourceNode] || typeof aChunk === "string") {
    -        this.children.unshift(aChunk);
    -      } else {
    -        throw new TypeError(
    -          "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
    -        );
    -      }
    -      return this;
    -    };
    -    SourceNode.prototype.walk = function SourceNode_walk(aFn) {
    -      var chunk;
    -      for (var i = 0, len = this.children.length; i < len; i++) {
    -        chunk = this.children[i];
    -        if (chunk[isSourceNode]) {
    -          chunk.walk(aFn);
    -        } else {
    -          if (chunk !== "") {
    -            aFn(chunk, {
    -              source: this.source,
    -              line: this.line,
    -              column: this.column,
    -              name: this.name
    -            });
    -          }
    -        }
    -      }
    -    };
    -    SourceNode.prototype.join = function SourceNode_join(aSep) {
    -      var newChildren;
    -      var i;
    -      var len = this.children.length;
    -      if (len > 0) {
    -        newChildren = [];
    -        for (i = 0; i < len - 1; i++) {
    -          newChildren.push(this.children[i]);
    -          newChildren.push(aSep);
    -        }
    -        newChildren.push(this.children[i]);
    -        this.children = newChildren;
    -      }
    -      return this;
    -    };
    -    SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
    -      var lastChild = this.children[this.children.length - 1];
    -      if (lastChild[isSourceNode]) {
    -        lastChild.replaceRight(aPattern, aReplacement);
    -      } else if (typeof lastChild === "string") {
    -        this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
    -      } else {
    -        this.children.push("".replace(aPattern, aReplacement));
    -      }
    -      return this;
    -    };
    -    SourceNode.prototype.setSourceContent = function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
    -      this.sourceContents[util2.toSetString(aSourceFile)] = aSourceContent;
    -    };
    -    SourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) {
    -      for (var i = 0, len = this.children.length; i < len; i++) {
    -        if (this.children[i][isSourceNode]) {
    -          this.children[i].walkSourceContents(aFn);
    -        }
    -      }
    -      var sources = Object.keys(this.sourceContents);
    -      for (var i = 0, len = sources.length; i < len; i++) {
    -        aFn(util2.fromSetString(sources[i]), this.sourceContents[sources[i]]);
    -      }
    -    };
    -    SourceNode.prototype.toString = function SourceNode_toString() {
    -      var str2 = "";
    -      this.walk(function(chunk) {
    -        str2 += chunk;
    -      });
    -      return str2;
    -    };
    -    SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
    -      var generated = {
    -        code: "",
    -        line: 1,
    -        column: 0
    -      };
    -      var map4 = new SourceMapGenerator(aArgs);
    -      var sourceMappingActive = false;
    -      var lastOriginalSource = null;
    -      var lastOriginalLine = null;
    -      var lastOriginalColumn = null;
    -      var lastOriginalName = null;
    -      this.walk(function(chunk, original) {
    -        generated.code += chunk;
    -        if (original.source !== null && original.line !== null && original.column !== null) {
    -          if (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) {
    -            map4.addMapping({
    -              source: original.source,
    -              original: {
    -                line: original.line,
    -                column: original.column
    -              },
    -              generated: {
    -                line: generated.line,
    -                column: generated.column
    -              },
    -              name: original.name
    -            });
    -          }
    -          lastOriginalSource = original.source;
    -          lastOriginalLine = original.line;
    -          lastOriginalColumn = original.column;
    -          lastOriginalName = original.name;
    -          sourceMappingActive = true;
    -        } else if (sourceMappingActive) {
    -          map4.addMapping({
    -            generated: {
    -              line: generated.line,
    -              column: generated.column
    -            }
    -          });
    -          lastOriginalSource = null;
    -          sourceMappingActive = false;
    -        }
    -        for (var idx = 0, length = chunk.length; idx < length; idx++) {
    -          if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
    -            generated.line++;
    -            generated.column = 0;
    -            if (idx + 1 === length) {
    -              lastOriginalSource = null;
    -              sourceMappingActive = false;
    -            } else if (sourceMappingActive) {
    -              map4.addMapping({
    -                source: original.source,
    -                original: {
    -                  line: original.line,
    -                  column: original.column
    -                },
    -                generated: {
    -                  line: generated.line,
    -                  column: generated.column
    -                },
    -                name: original.name
    -              });
    -            }
    -          } else {
    -            generated.column++;
    -          }
    -        }
    -      });
    -      this.walkSourceContents(function(sourceFile, sourceContent) {
    -        map4.setSourceContent(sourceFile, sourceContent);
    -      });
    -      return { code: generated.code, map: map4 };
    -    };
    -    exports2.SourceNode = SourceNode;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.js
    -var require_source_map = __commonJS({
    -  "../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.js"(exports2) {
    -    exports2.SourceMapGenerator = require_source_map_generator().SourceMapGenerator;
    -    exports2.SourceMapConsumer = require_source_map_consumer().SourceMapConsumer;
    -    exports2.SourceNode = require_source_node().SourceNode;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.cjs
    -var require_non_secure = __commonJS({
    -  "../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.cjs"(exports2, module2) {
    -    var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
    -    var customAlphabet = (alphabet2, defaultSize = 21) => {
    -      return (size = defaultSize) => {
    -        let id = "";
    -        let i = size;
    -        while (i--) {
    -          id += alphabet2[Math.random() * alphabet2.length | 0];
    -        }
    -        return id;
    -      };
    -    };
    -    var nanoid = (size = 21) => {
    -      let id = "";
    -      let i = size;
    -      while (i--) {
    -        id += urlAlphabet[Math.random() * 64 | 0];
    -      }
    -      return id;
    -    };
    -    module2.exports = { nanoid, customAlphabet };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/previous-map.js
    -var require_previous_map = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/previous-map.js"(exports2, module2) {
    -    "use strict";
    -    var { SourceMapConsumer, SourceMapGenerator } = require_source_map();
    -    var { existsSync: existsSync2, readFileSync } = require("fs");
    -    var { dirname: dirname4, join: join9 } = require("path");
    -    function fromBase64(str2) {
    -      if (Buffer) {
    -        return Buffer.from(str2, "base64").toString();
    -      } else {
    -        return window.atob(str2);
    -      }
    -    }
    -    var PreviousMap = class {
    -      constructor(css, opts) {
    -        if (opts.map === false)
    -          return;
    -        this.loadAnnotation(css);
    -        this.inline = this.startWith(this.annotation, "data:");
    -        let prev = opts.map ? opts.map.prev : void 0;
    -        let text = this.loadMap(opts.from, prev);
    -        if (!this.mapFile && opts.from) {
    -          this.mapFile = opts.from;
    -        }
    -        if (this.mapFile)
    -          this.root = dirname4(this.mapFile);
    -        if (text)
    -          this.text = text;
    -      }
    -      consumer() {
    -        if (!this.consumerCache) {
    -          this.consumerCache = new SourceMapConsumer(this.text);
    -        }
    -        return this.consumerCache;
    -      }
    -      decodeInline(text) {
    -        let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/;
    -        let baseUri = /^data:application\/json;base64,/;
    -        let charsetUri = /^data:application\/json;charset=utf-?8,/;
    -        let uri = /^data:application\/json,/;
    -        if (charsetUri.test(text) || uri.test(text)) {
    -          return decodeURIComponent(text.substr(RegExp.lastMatch.length));
    -        }
    -        if (baseCharsetUri.test(text) || baseUri.test(text)) {
    -          return fromBase64(text.substr(RegExp.lastMatch.length));
    -        }
    -        let encoding = text.match(/data:application\/json;([^,]+),/)[1];
    -        throw new Error("Unsupported source map encoding " + encoding);
    -      }
    -      getAnnotationURL(sourceMapString) {
    -        return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim();
    -      }
    -      isMap(map4) {
    -        if (typeof map4 !== "object")
    -          return false;
    -        return typeof map4.mappings === "string" || typeof map4._mappings === "string" || Array.isArray(map4.sections);
    -      }
    -      loadAnnotation(css) {
    -        let comments = css.match(/\/\*\s*# sourceMappingURL=/gm);
    -        if (!comments)
    -          return;
    -        let start = css.lastIndexOf(comments.pop());
    -        let end = css.indexOf("*/", start);
    -        if (start > -1 && end > -1) {
    -          this.annotation = this.getAnnotationURL(css.substring(start, end));
    -        }
    -      }
    -      loadFile(path8) {
    -        this.root = dirname4(path8);
    -        if (existsSync2(path8)) {
    -          this.mapFile = path8;
    -          return readFileSync(path8, "utf-8").toString().trim();
    -        }
    -      }
    -      loadMap(file, prev) {
    -        if (prev === false)
    -          return false;
    -        if (prev) {
    -          if (typeof prev === "string") {
    -            return prev;
    -          } else if (typeof prev === "function") {
    -            let prevPath = prev(file);
    -            if (prevPath) {
    -              let map4 = this.loadFile(prevPath);
    -              if (!map4) {
    -                throw new Error(
    -                  "Unable to load previous source map: " + prevPath.toString()
    -                );
    -              }
    -              return map4;
    -            }
    -          } else if (prev instanceof SourceMapConsumer) {
    -            return SourceMapGenerator.fromSourceMap(prev).toString();
    -          } else if (prev instanceof SourceMapGenerator) {
    -            return prev.toString();
    -          } else if (this.isMap(prev)) {
    -            return JSON.stringify(prev);
    -          } else {
    -            throw new Error(
    -              "Unsupported previous source map format: " + prev.toString()
    -            );
    -          }
    -        } else if (this.inline) {
    -          return this.decodeInline(this.annotation);
    -        } else if (this.annotation) {
    -          let map4 = this.annotation;
    -          if (file)
    -            map4 = join9(dirname4(file), map4);
    -          return this.loadFile(map4);
    -        }
    -      }
    -      startWith(string2, start) {
    -        if (!string2)
    -          return false;
    -        return string2.substr(0, start.length) === start;
    -      }
    -      withContent() {
    -        return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);
    -      }
    -    };
    -    module2.exports = PreviousMap;
    -    PreviousMap.default = PreviousMap;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/input.js
    -var require_input = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/input.js"(exports2, module2) {
    -    "use strict";
    -    var { SourceMapConsumer, SourceMapGenerator } = require_source_map();
    -    var { fileURLToPath: fileURLToPath3, pathToFileURL } = require("url");
    -    var { isAbsolute, resolve } = require("path");
    -    var { nanoid } = require_non_secure();
    -    var terminalHighlight = require_terminal_highlight();
    -    var CssSyntaxError = require_css_syntax_error();
    -    var PreviousMap = require_previous_map();
    -    var fromOffsetCache = Symbol("fromOffsetCache");
    -    var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);
    -    var pathAvailable = Boolean(resolve && isAbsolute);
    -    var Input = class {
    -      constructor(css, opts = {}) {
    -        if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) {
    -          throw new Error(`PostCSS received ${css} instead of CSS string`);
    -        }
    -        this.css = css.toString();
    -        if (this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE") {
    -          this.hasBOM = true;
    -          this.css = this.css.slice(1);
    -        } else {
    -          this.hasBOM = false;
    -        }
    -        if (opts.from) {
    -          if (!pathAvailable || /^\w+:\/\//.test(opts.from) || isAbsolute(opts.from)) {
    -            this.file = opts.from;
    -          } else {
    -            this.file = resolve(opts.from);
    -          }
    -        }
    -        if (pathAvailable && sourceMapAvailable) {
    -          let map4 = new PreviousMap(this.css, opts);
    -          if (map4.text) {
    -            this.map = map4;
    -            let file = map4.consumer().file;
    -            if (!this.file && file)
    -              this.file = this.mapResolve(file);
    -          }
    -        }
    -        if (!this.file) {
    -          this.id = "";
    -        }
    -        if (this.map)
    -          this.map.file = this.from;
    -      }
    -      error(message, line, column, opts = {}) {
    -        let result, endLine, endColumn;
    -        if (line && typeof line === "object") {
    -          let start = line;
    -          let end = column;
    -          if (typeof start.offset === "number") {
    -            let pos = this.fromOffset(start.offset);
    -            line = pos.line;
    -            column = pos.col;
    -          } else {
    -            line = start.line;
    -            column = start.column;
    -          }
    -          if (typeof end.offset === "number") {
    -            let pos = this.fromOffset(end.offset);
    -            endLine = pos.line;
    -            endColumn = pos.col;
    -          } else {
    -            endLine = end.line;
    -            endColumn = end.column;
    -          }
    -        } else if (!column) {
    -          let pos = this.fromOffset(line);
    -          line = pos.line;
    -          column = pos.col;
    -        }
    -        let origin = this.origin(line, column, endLine, endColumn);
    -        if (origin) {
    -          result = new CssSyntaxError(
    -            message,
    -            origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },
    -            origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },
    -            origin.source,
    -            origin.file,
    -            opts.plugin
    -          );
    -        } else {
    -          result = new CssSyntaxError(
    -            message,
    -            endLine === void 0 ? line : { column, line },
    -            endLine === void 0 ? column : { column: endColumn, line: endLine },
    -            this.css,
    -            this.file,
    -            opts.plugin
    -          );
    -        }
    -        result.input = { column, endColumn, endLine, line, source: this.css };
    -        if (this.file) {
    -          if (pathToFileURL) {
    -            result.input.url = pathToFileURL(this.file).toString();
    -          }
    -          result.input.file = this.file;
    -        }
    -        return result;
    -      }
    -      fromOffset(offset) {
    -        let lastLine, lineToIndex;
    -        if (!this[fromOffsetCache]) {
    -          let lines = this.css.split("\n");
    -          lineToIndex = new Array(lines.length);
    -          let prevIndex = 0;
    -          for (let i = 0, l = lines.length; i < l; i++) {
    -            lineToIndex[i] = prevIndex;
    -            prevIndex += lines[i].length + 1;
    -          }
    -          this[fromOffsetCache] = lineToIndex;
    -        } else {
    -          lineToIndex = this[fromOffsetCache];
    -        }
    -        lastLine = lineToIndex[lineToIndex.length - 1];
    -        let min2 = 0;
    -        if (offset >= lastLine) {
    -          min2 = lineToIndex.length - 1;
    -        } else {
    -          let max2 = lineToIndex.length - 2;
    -          let mid;
    -          while (min2 < max2) {
    -            mid = min2 + (max2 - min2 >> 1);
    -            if (offset < lineToIndex[mid]) {
    -              max2 = mid - 1;
    -            } else if (offset >= lineToIndex[mid + 1]) {
    -              min2 = mid + 1;
    -            } else {
    -              min2 = mid;
    -              break;
    -            }
    -          }
    -        }
    -        return {
    -          col: offset - lineToIndex[min2] + 1,
    -          line: min2 + 1
    -        };
    -      }
    -      mapResolve(file) {
    -        if (/^\w+:\/\//.test(file)) {
    -          return file;
    -        }
    -        return resolve(this.map.consumer().sourceRoot || this.map.root || ".", file);
    -      }
    -      origin(line, column, endLine, endColumn) {
    -        if (!this.map)
    -          return false;
    -        let consumer = this.map.consumer();
    -        let from = consumer.originalPositionFor({ column, line });
    -        if (!from.source)
    -          return false;
    -        let to;
    -        if (typeof endLine === "number") {
    -          to = consumer.originalPositionFor({ column: endColumn, line: endLine });
    -        }
    -        let fromUrl;
    -        if (isAbsolute(from.source)) {
    -          fromUrl = pathToFileURL(from.source);
    -        } else {
    -          fromUrl = new URL(
    -            from.source,
    -            this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)
    -          );
    -        }
    -        let result = {
    -          column: from.column,
    -          endColumn: to && to.column,
    -          endLine: to && to.line,
    -          line: from.line,
    -          url: fromUrl.toString()
    -        };
    -        if (fromUrl.protocol === "file:") {
    -          if (fileURLToPath3) {
    -            result.file = fileURLToPath3(fromUrl);
    -          } else {
    -            throw new Error(`file: protocol is not available in this PostCSS build`);
    -          }
    -        }
    -        let source = consumer.sourceContentFor(from.source);
    -        if (source)
    -          result.source = source;
    -        return result;
    -      }
    -      toJSON() {
    -        let json2 = {};
    -        for (let name of ["hasBOM", "css", "file", "id"]) {
    -          if (this[name] != null) {
    -            json2[name] = this[name];
    -          }
    -        }
    -        if (this.map) {
    -          json2.map = { ...this.map };
    -          if (json2.map.consumerCache) {
    -            json2.map.consumerCache = void 0;
    -          }
    -        }
    -        return json2;
    -      }
    -      get from() {
    -        return this.file || this.id;
    -      }
    -    };
    -    module2.exports = Input;
    -    Input.default = Input;
    -    if (terminalHighlight && terminalHighlight.registerInput) {
    -      terminalHighlight.registerInput(Input);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/map-generator.js
    -var require_map_generator = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/map-generator.js"(exports2, module2) {
    -    "use strict";
    -    var { SourceMapConsumer, SourceMapGenerator } = require_source_map();
    -    var { dirname: dirname4, relative: relative2, resolve, sep: sep3 } = require("path");
    -    var { pathToFileURL } = require("url");
    -    var Input = require_input();
    -    var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);
    -    var pathAvailable = Boolean(dirname4 && resolve && relative2 && sep3);
    -    var MapGenerator = class {
    -      constructor(stringify2, root, opts, cssString) {
    -        this.stringify = stringify2;
    -        this.mapOpts = opts.map || {};
    -        this.root = root;
    -        this.opts = opts;
    -        this.css = cssString;
    -        this.originalCSS = cssString;
    -        this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;
    -        this.memoizedFileURLs = /* @__PURE__ */ new Map();
    -        this.memoizedPaths = /* @__PURE__ */ new Map();
    -        this.memoizedURLs = /* @__PURE__ */ new Map();
    -      }
    -      addAnnotation() {
    -        let content;
    -        if (this.isInline()) {
    -          content = "data:application/json;base64," + this.toBase64(this.map.toString());
    -        } else if (typeof this.mapOpts.annotation === "string") {
    -          content = this.mapOpts.annotation;
    -        } else if (typeof this.mapOpts.annotation === "function") {
    -          content = this.mapOpts.annotation(this.opts.to, this.root);
    -        } else {
    -          content = this.outputFile() + ".map";
    -        }
    -        let eol = "\n";
    -        if (this.css.includes("\r\n"))
    -          eol = "\r\n";
    -        this.css += eol + "/*# sourceMappingURL=" + content + " */";
    -      }
    -      applyPrevMaps() {
    -        for (let prev of this.previous()) {
    -          let from = this.toUrl(this.path(prev.file));
    -          let root = prev.root || dirname4(prev.file);
    -          let map4;
    -          if (this.mapOpts.sourcesContent === false) {
    -            map4 = new SourceMapConsumer(prev.text);
    -            if (map4.sourcesContent) {
    -              map4.sourcesContent = null;
    -            }
    -          } else {
    -            map4 = prev.consumer();
    -          }
    -          this.map.applySourceMap(map4, from, this.toUrl(this.path(root)));
    -        }
    -      }
    -      clearAnnotation() {
    -        if (this.mapOpts.annotation === false)
    -          return;
    -        if (this.root) {
    -          let node;
    -          for (let i = this.root.nodes.length - 1; i >= 0; i--) {
    -            node = this.root.nodes[i];
    -            if (node.type !== "comment")
    -              continue;
    -            if (node.text.indexOf("# sourceMappingURL=") === 0) {
    -              this.root.removeChild(i);
    -            }
    -          }
    -        } else if (this.css) {
    -          this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, "");
    -        }
    -      }
    -      generate() {
    -        this.clearAnnotation();
    -        if (pathAvailable && sourceMapAvailable && this.isMap()) {
    -          return this.generateMap();
    -        } else {
    -          let result = "";
    -          this.stringify(this.root, (i) => {
    -            result += i;
    -          });
    -          return [result];
    -        }
    -      }
    -      generateMap() {
    -        if (this.root) {
    -          this.generateString();
    -        } else if (this.previous().length === 1) {
    -          let prev = this.previous()[0].consumer();
    -          prev.file = this.outputFile();
    -          this.map = SourceMapGenerator.fromSourceMap(prev, {
    -            ignoreInvalidMapping: true
    -          });
    -        } else {
    -          this.map = new SourceMapGenerator({
    -            file: this.outputFile(),
    -            ignoreInvalidMapping: true
    -          });
    -          this.map.addMapping({
    -            generated: { column: 0, line: 1 },
    -            original: { column: 0, line: 1 },
    -            source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""
    -          });
    -        }
    -        if (this.isSourcesContent())
    -          this.setSourcesContent();
    -        if (this.root && this.previous().length > 0)
    -          this.applyPrevMaps();
    -        if (this.isAnnotation())
    -          this.addAnnotation();
    -        if (this.isInline()) {
    -          return [this.css];
    -        } else {
    -          return [this.css, this.map];
    -        }
    -      }
    -      generateString() {
    -        this.css = "";
    -        this.map = new SourceMapGenerator({
    -          file: this.outputFile(),
    -          ignoreInvalidMapping: true
    -        });
    -        let line = 1;
    -        let column = 1;
    -        let noSource = "";
    -        let mapping = {
    -          generated: { column: 0, line: 0 },
    -          original: { column: 0, line: 0 },
    -          source: ""
    -        };
    -        let lines, last2;
    -        this.stringify(this.root, (str2, node, type2) => {
    -          this.css += str2;
    -          if (node && type2 !== "end") {
    -            mapping.generated.line = line;
    -            mapping.generated.column = column - 1;
    -            if (node.source && node.source.start) {
    -              mapping.source = this.sourcePath(node);
    -              mapping.original.line = node.source.start.line;
    -              mapping.original.column = node.source.start.column - 1;
    -              this.map.addMapping(mapping);
    -            } else {
    -              mapping.source = noSource;
    -              mapping.original.line = 1;
    -              mapping.original.column = 0;
    -              this.map.addMapping(mapping);
    -            }
    -          }
    -          lines = str2.match(/\n/g);
    -          if (lines) {
    -            line += lines.length;
    -            last2 = str2.lastIndexOf("\n");
    -            column = str2.length - last2;
    -          } else {
    -            column += str2.length;
    -          }
    -          if (node && type2 !== "start") {
    -            let p = node.parent || { raws: {} };
    -            let childless = node.type === "decl" || node.type === "atrule" && !node.nodes;
    -            if (!childless || node !== p.last || p.raws.semicolon) {
    -              if (node.source && node.source.end) {
    -                mapping.source = this.sourcePath(node);
    -                mapping.original.line = node.source.end.line;
    -                mapping.original.column = node.source.end.column - 1;
    -                mapping.generated.line = line;
    -                mapping.generated.column = column - 2;
    -                this.map.addMapping(mapping);
    -              } else {
    -                mapping.source = noSource;
    -                mapping.original.line = 1;
    -                mapping.original.column = 0;
    -                mapping.generated.line = line;
    -                mapping.generated.column = column - 1;
    -                this.map.addMapping(mapping);
    -              }
    -            }
    -          }
    -        });
    -      }
    -      isAnnotation() {
    -        if (this.isInline()) {
    -          return true;
    -        }
    -        if (typeof this.mapOpts.annotation !== "undefined") {
    -          return this.mapOpts.annotation;
    -        }
    -        if (this.previous().length) {
    -          return this.previous().some((i) => i.annotation);
    -        }
    -        return true;
    -      }
    -      isInline() {
    -        if (typeof this.mapOpts.inline !== "undefined") {
    -          return this.mapOpts.inline;
    -        }
    -        let annotation = this.mapOpts.annotation;
    -        if (typeof annotation !== "undefined" && annotation !== true) {
    -          return false;
    -        }
    -        if (this.previous().length) {
    -          return this.previous().some((i) => i.inline);
    -        }
    -        return true;
    -      }
    -      isMap() {
    -        if (typeof this.opts.map !== "undefined") {
    -          return !!this.opts.map;
    -        }
    -        return this.previous().length > 0;
    -      }
    -      isSourcesContent() {
    -        if (typeof this.mapOpts.sourcesContent !== "undefined") {
    -          return this.mapOpts.sourcesContent;
    -        }
    -        if (this.previous().length) {
    -          return this.previous().some((i) => i.withContent());
    -        }
    -        return true;
    -      }
    -      outputFile() {
    -        if (this.opts.to) {
    -          return this.path(this.opts.to);
    -        } else if (this.opts.from) {
    -          return this.path(this.opts.from);
    -        } else {
    -          return "to.css";
    -        }
    -      }
    -      path(file) {
    -        if (this.mapOpts.absolute)
    -          return file;
    -        if (file.charCodeAt(0) === 60)
    -          return file;
    -        if (/^\w+:\/\//.test(file))
    -          return file;
    -        let cached = this.memoizedPaths.get(file);
    -        if (cached)
    -          return cached;
    -        let from = this.opts.to ? dirname4(this.opts.to) : ".";
    -        if (typeof this.mapOpts.annotation === "string") {
    -          from = dirname4(resolve(from, this.mapOpts.annotation));
    -        }
    -        let path8 = relative2(from, file);
    -        this.memoizedPaths.set(file, path8);
    -        return path8;
    -      }
    -      previous() {
    -        if (!this.previousMaps) {
    -          this.previousMaps = [];
    -          if (this.root) {
    -            this.root.walk((node) => {
    -              if (node.source && node.source.input.map) {
    -                let map4 = node.source.input.map;
    -                if (!this.previousMaps.includes(map4)) {
    -                  this.previousMaps.push(map4);
    -                }
    -              }
    -            });
    -          } else {
    -            let input = new Input(this.originalCSS, this.opts);
    -            if (input.map)
    -              this.previousMaps.push(input.map);
    -          }
    -        }
    -        return this.previousMaps;
    -      }
    -      setSourcesContent() {
    -        let already = {};
    -        if (this.root) {
    -          this.root.walk((node) => {
    -            if (node.source) {
    -              let from = node.source.input.from;
    -              if (from && !already[from]) {
    -                already[from] = true;
    -                let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));
    -                this.map.setSourceContent(fromUrl, node.source.input.css);
    -              }
    -            }
    -          });
    -        } else if (this.css) {
    -          let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : "";
    -          this.map.setSourceContent(from, this.css);
    -        }
    -      }
    -      sourcePath(node) {
    -        if (this.mapOpts.from) {
    -          return this.toUrl(this.mapOpts.from);
    -        } else if (this.usesFileUrls) {
    -          return this.toFileUrl(node.source.input.from);
    -        } else {
    -          return this.toUrl(this.path(node.source.input.from));
    -        }
    -      }
    -      toBase64(str2) {
    -        if (Buffer) {
    -          return Buffer.from(str2).toString("base64");
    -        } else {
    -          return window.btoa(unescape(encodeURIComponent(str2)));
    -        }
    -      }
    -      toFileUrl(path8) {
    -        let cached = this.memoizedFileURLs.get(path8);
    -        if (cached)
    -          return cached;
    -        if (pathToFileURL) {
    -          let fileURL = pathToFileURL(path8).toString();
    -          this.memoizedFileURLs.set(path8, fileURL);
    -          return fileURL;
    -        } else {
    -          throw new Error(
    -            "`map.absolute` option is not available in this PostCSS build"
    -          );
    -        }
    -      }
    -      toUrl(path8) {
    -        let cached = this.memoizedURLs.get(path8);
    -        if (cached)
    -          return cached;
    -        if (sep3 === "\\") {
    -          path8 = path8.replace(/\\/g, "/");
    -        }
    -        let url = encodeURI(path8).replace(/[#?]/g, encodeURIComponent);
    -        this.memoizedURLs.set(path8, url);
    -        return url;
    -      }
    -    };
    -    module2.exports = MapGenerator;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/comment.js
    -var require_comment = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/comment.js"(exports2, module2) {
    -    "use strict";
    -    var Node = require_node2();
    -    var Comment = class extends Node {
    -      constructor(defaults2) {
    -        super(defaults2);
    -        this.type = "comment";
    -      }
    -    };
    -    module2.exports = Comment;
    -    Comment.default = Comment;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/container.js
    -var require_container = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/container.js"(exports2, module2) {
    -    "use strict";
    -    var { isClean, my } = require_symbols();
    -    var Declaration = require_declaration();
    -    var Comment = require_comment();
    -    var Node = require_node2();
    -    var parse2;
    -    var Rule;
    -    var AtRule;
    -    var Root;
    -    function cleanSource(nodes) {
    -      return nodes.map((i) => {
    -        if (i.nodes)
    -          i.nodes = cleanSource(i.nodes);
    -        delete i.source;
    -        return i;
    -      });
    -    }
    -    function markDirtyUp(node) {
    -      node[isClean] = false;
    -      if (node.proxyOf.nodes) {
    -        for (let i of node.proxyOf.nodes) {
    -          markDirtyUp(i);
    -        }
    -      }
    -    }
    -    var Container = class _Container extends Node {
    -      append(...children) {
    -        for (let child of children) {
    -          let nodes = this.normalize(child, this.last);
    -          for (let node of nodes)
    -            this.proxyOf.nodes.push(node);
    -        }
    -        this.markDirty();
    -        return this;
    -      }
    -      cleanRaws(keepBetween) {
    -        super.cleanRaws(keepBetween);
    -        if (this.nodes) {
    -          for (let node of this.nodes)
    -            node.cleanRaws(keepBetween);
    -        }
    -      }
    -      each(callback2) {
    -        if (!this.proxyOf.nodes)
    -          return void 0;
    -        let iterator = this.getIterator();
    -        let index, result;
    -        while (this.indexes[iterator] < this.proxyOf.nodes.length) {
    -          index = this.indexes[iterator];
    -          result = callback2(this.proxyOf.nodes[index], index);
    -          if (result === false)
    -            break;
    -          this.indexes[iterator] += 1;
    -        }
    -        delete this.indexes[iterator];
    -        return result;
    -      }
    -      every(condition) {
    -        return this.nodes.every(condition);
    -      }
    -      getIterator() {
    -        if (!this.lastEach)
    -          this.lastEach = 0;
    -        if (!this.indexes)
    -          this.indexes = {};
    -        this.lastEach += 1;
    -        let iterator = this.lastEach;
    -        this.indexes[iterator] = 0;
    -        return iterator;
    -      }
    -      getProxyProcessor() {
    -        return {
    -          get(node, prop) {
    -            if (prop === "proxyOf") {
    -              return node;
    -            } else if (!node[prop]) {
    -              return node[prop];
    -            } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) {
    -              return (...args) => {
    -                return node[prop](
    -                  ...args.map((i) => {
    -                    if (typeof i === "function") {
    -                      return (child, index) => i(child.toProxy(), index);
    -                    } else {
    -                      return i;
    -                    }
    -                  })
    -                );
    -              };
    -            } else if (prop === "every" || prop === "some") {
    -              return (cb) => {
    -                return node[prop](
    -                  (child, ...other) => cb(child.toProxy(), ...other)
    -                );
    -              };
    -            } else if (prop === "root") {
    -              return () => node.root().toProxy();
    -            } else if (prop === "nodes") {
    -              return node.nodes.map((i) => i.toProxy());
    -            } else if (prop === "first" || prop === "last") {
    -              return node[prop].toProxy();
    -            } else {
    -              return node[prop];
    -            }
    -          },
    -          set(node, prop, value) {
    -            if (node[prop] === value)
    -              return true;
    -            node[prop] = value;
    -            if (prop === "name" || prop === "params" || prop === "selector") {
    -              node.markDirty();
    -            }
    -            return true;
    -          }
    -        };
    -      }
    -      index(child) {
    -        if (typeof child === "number")
    -          return child;
    -        if (child.proxyOf)
    -          child = child.proxyOf;
    -        return this.proxyOf.nodes.indexOf(child);
    -      }
    -      insertAfter(exist, add) {
    -        let existIndex = this.index(exist);
    -        let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();
    -        existIndex = this.index(exist);
    -        for (let node of nodes)
    -          this.proxyOf.nodes.splice(existIndex + 1, 0, node);
    -        let index;
    -        for (let id in this.indexes) {
    -          index = this.indexes[id];
    -          if (existIndex < index) {
    -            this.indexes[id] = index + nodes.length;
    -          }
    -        }
    -        this.markDirty();
    -        return this;
    -      }
    -      insertBefore(exist, add) {
    -        let existIndex = this.index(exist);
    -        let type2 = existIndex === 0 ? "prepend" : false;
    -        let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type2).reverse();
    -        existIndex = this.index(exist);
    -        for (let node of nodes)
    -          this.proxyOf.nodes.splice(existIndex, 0, node);
    -        let index;
    -        for (let id in this.indexes) {
    -          index = this.indexes[id];
    -          if (existIndex <= index) {
    -            this.indexes[id] = index + nodes.length;
    -          }
    -        }
    -        this.markDirty();
    -        return this;
    -      }
    -      normalize(nodes, sample) {
    -        if (typeof nodes === "string") {
    -          nodes = cleanSource(parse2(nodes).nodes);
    -        } else if (typeof nodes === "undefined") {
    -          nodes = [];
    -        } else if (Array.isArray(nodes)) {
    -          nodes = nodes.slice(0);
    -          for (let i of nodes) {
    -            if (i.parent)
    -              i.parent.removeChild(i, "ignore");
    -          }
    -        } else if (nodes.type === "root" && this.type !== "document") {
    -          nodes = nodes.nodes.slice(0);
    -          for (let i of nodes) {
    -            if (i.parent)
    -              i.parent.removeChild(i, "ignore");
    -          }
    -        } else if (nodes.type) {
    -          nodes = [nodes];
    -        } else if (nodes.prop) {
    -          if (typeof nodes.value === "undefined") {
    -            throw new Error("Value field is missed in node creation");
    -          } else if (typeof nodes.value !== "string") {
    -            nodes.value = String(nodes.value);
    -          }
    -          nodes = [new Declaration(nodes)];
    -        } else if (nodes.selector) {
    -          nodes = [new Rule(nodes)];
    -        } else if (nodes.name) {
    -          nodes = [new AtRule(nodes)];
    -        } else if (nodes.text) {
    -          nodes = [new Comment(nodes)];
    -        } else {
    -          throw new Error("Unknown node type in node creation");
    -        }
    -        let processed = nodes.map((i) => {
    -          if (!i[my])
    -            _Container.rebuild(i);
    -          i = i.proxyOf;
    -          if (i.parent)
    -            i.parent.removeChild(i);
    -          if (i[isClean])
    -            markDirtyUp(i);
    -          if (typeof i.raws.before === "undefined") {
    -            if (sample && typeof sample.raws.before !== "undefined") {
    -              i.raws.before = sample.raws.before.replace(/\S/g, "");
    -            }
    -          }
    -          i.parent = this.proxyOf;
    -          return i;
    -        });
    -        return processed;
    -      }
    -      prepend(...children) {
    -        children = children.reverse();
    -        for (let child of children) {
    -          let nodes = this.normalize(child, this.first, "prepend").reverse();
    -          for (let node of nodes)
    -            this.proxyOf.nodes.unshift(node);
    -          for (let id in this.indexes) {
    -            this.indexes[id] = this.indexes[id] + nodes.length;
    -          }
    -        }
    -        this.markDirty();
    -        return this;
    -      }
    -      push(child) {
    -        child.parent = this;
    -        this.proxyOf.nodes.push(child);
    -        return this;
    -      }
    -      removeAll() {
    -        for (let node of this.proxyOf.nodes)
    -          node.parent = void 0;
    -        this.proxyOf.nodes = [];
    -        this.markDirty();
    -        return this;
    -      }
    -      removeChild(child) {
    -        child = this.index(child);
    -        this.proxyOf.nodes[child].parent = void 0;
    -        this.proxyOf.nodes.splice(child, 1);
    -        let index;
    -        for (let id in this.indexes) {
    -          index = this.indexes[id];
    -          if (index >= child) {
    -            this.indexes[id] = index - 1;
    -          }
    -        }
    -        this.markDirty();
    -        return this;
    -      }
    -      replaceValues(pattern, opts, callback2) {
    -        if (!callback2) {
    -          callback2 = opts;
    -          opts = {};
    -        }
    -        this.walkDecls((decl) => {
    -          if (opts.props && !opts.props.includes(decl.prop))
    -            return;
    -          if (opts.fast && !decl.value.includes(opts.fast))
    -            return;
    -          decl.value = decl.value.replace(pattern, callback2);
    -        });
    -        this.markDirty();
    -        return this;
    -      }
    -      some(condition) {
    -        return this.nodes.some(condition);
    -      }
    -      walk(callback2) {
    -        return this.each((child, i) => {
    -          let result;
    -          try {
    -            result = callback2(child, i);
    -          } catch (e) {
    -            throw child.addToError(e);
    -          }
    -          if (result !== false && child.walk) {
    -            result = child.walk(callback2);
    -          }
    -          return result;
    -        });
    -      }
    -      walkAtRules(name, callback2) {
    -        if (!callback2) {
    -          callback2 = name;
    -          return this.walk((child, i) => {
    -            if (child.type === "atrule") {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        if (name instanceof RegExp) {
    -          return this.walk((child, i) => {
    -            if (child.type === "atrule" && name.test(child.name)) {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        return this.walk((child, i) => {
    -          if (child.type === "atrule" && child.name === name) {
    -            return callback2(child, i);
    -          }
    -        });
    -      }
    -      walkComments(callback2) {
    -        return this.walk((child, i) => {
    -          if (child.type === "comment") {
    -            return callback2(child, i);
    -          }
    -        });
    -      }
    -      walkDecls(prop, callback2) {
    -        if (!callback2) {
    -          callback2 = prop;
    -          return this.walk((child, i) => {
    -            if (child.type === "decl") {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        if (prop instanceof RegExp) {
    -          return this.walk((child, i) => {
    -            if (child.type === "decl" && prop.test(child.prop)) {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        return this.walk((child, i) => {
    -          if (child.type === "decl" && child.prop === prop) {
    -            return callback2(child, i);
    -          }
    -        });
    -      }
    -      walkRules(selector, callback2) {
    -        if (!callback2) {
    -          callback2 = selector;
    -          return this.walk((child, i) => {
    -            if (child.type === "rule") {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        if (selector instanceof RegExp) {
    -          return this.walk((child, i) => {
    -            if (child.type === "rule" && selector.test(child.selector)) {
    -              return callback2(child, i);
    -            }
    -          });
    -        }
    -        return this.walk((child, i) => {
    -          if (child.type === "rule" && child.selector === selector) {
    -            return callback2(child, i);
    -          }
    -        });
    -      }
    -      get first() {
    -        if (!this.proxyOf.nodes)
    -          return void 0;
    -        return this.proxyOf.nodes[0];
    -      }
    -      get last() {
    -        if (!this.proxyOf.nodes)
    -          return void 0;
    -        return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
    -      }
    -    };
    -    Container.registerParse = (dependant) => {
    -      parse2 = dependant;
    -    };
    -    Container.registerRule = (dependant) => {
    -      Rule = dependant;
    -    };
    -    Container.registerAtRule = (dependant) => {
    -      AtRule = dependant;
    -    };
    -    Container.registerRoot = (dependant) => {
    -      Root = dependant;
    -    };
    -    module2.exports = Container;
    -    Container.default = Container;
    -    Container.rebuild = (node) => {
    -      if (node.type === "atrule") {
    -        Object.setPrototypeOf(node, AtRule.prototype);
    -      } else if (node.type === "rule") {
    -        Object.setPrototypeOf(node, Rule.prototype);
    -      } else if (node.type === "decl") {
    -        Object.setPrototypeOf(node, Declaration.prototype);
    -      } else if (node.type === "comment") {
    -        Object.setPrototypeOf(node, Comment.prototype);
    -      } else if (node.type === "root") {
    -        Object.setPrototypeOf(node, Root.prototype);
    -      }
    -      node[my] = true;
    -      if (node.nodes) {
    -        node.nodes.forEach((child) => {
    -          Container.rebuild(child);
    -        });
    -      }
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/document.js
    -var require_document = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/document.js"(exports2, module2) {
    -    "use strict";
    -    var Container = require_container();
    -    var LazyResult;
    -    var Processor2;
    -    var Document = class extends Container {
    -      constructor(defaults2) {
    -        super({ type: "document", ...defaults2 });
    -        if (!this.nodes) {
    -          this.nodes = [];
    -        }
    -      }
    -      toResult(opts = {}) {
    -        let lazy = new LazyResult(new Processor2(), this, opts);
    -        return lazy.stringify();
    -      }
    -    };
    -    Document.registerLazyResult = (dependant) => {
    -      LazyResult = dependant;
    -    };
    -    Document.registerProcessor = (dependant) => {
    -      Processor2 = dependant;
    -    };
    -    module2.exports = Document;
    -    Document.default = Document;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warn-once.js
    -var require_warn_once = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warn-once.js"(exports2, module2) {
    -    "use strict";
    -    var printed = {};
    -    module2.exports = function warnOnce(message) {
    -      if (printed[message])
    -        return;
    -      printed[message] = true;
    -      if (typeof console !== "undefined" && console.warn) {
    -        console.warn(message);
    -      }
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warning.js
    -var require_warning = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warning.js"(exports2, module2) {
    -    "use strict";
    -    var Warning = class {
    -      constructor(text, opts = {}) {
    -        this.type = "warning";
    -        this.text = text;
    -        if (opts.node && opts.node.source) {
    -          let range4 = opts.node.rangeBy(opts);
    -          this.line = range4.start.line;
    -          this.column = range4.start.column;
    -          this.endLine = range4.end.line;
    -          this.endColumn = range4.end.column;
    -        }
    -        for (let opt in opts)
    -          this[opt] = opts[opt];
    -      }
    -      toString() {
    -        if (this.node) {
    -          return this.node.error(this.text, {
    -            index: this.index,
    -            plugin: this.plugin,
    -            word: this.word
    -          }).message;
    -        }
    -        if (this.plugin) {
    -          return this.plugin + ": " + this.text;
    -        }
    -        return this.text;
    -      }
    -    };
    -    module2.exports = Warning;
    -    Warning.default = Warning;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/result.js
    -var require_result = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/result.js"(exports2, module2) {
    -    "use strict";
    -    var Warning = require_warning();
    -    var Result = class {
    -      constructor(processor, root, opts) {
    -        this.processor = processor;
    -        this.messages = [];
    -        this.root = root;
    -        this.opts = opts;
    -        this.css = void 0;
    -        this.map = void 0;
    -      }
    -      toString() {
    -        return this.css;
    -      }
    -      warn(text, opts = {}) {
    -        if (!opts.plugin) {
    -          if (this.lastPlugin && this.lastPlugin.postcssPlugin) {
    -            opts.plugin = this.lastPlugin.postcssPlugin;
    -          }
    -        }
    -        let warning = new Warning(text, opts);
    -        this.messages.push(warning);
    -        return warning;
    -      }
    -      warnings() {
    -        return this.messages.filter((i) => i.type === "warning");
    -      }
    -      get content() {
    -        return this.css;
    -      }
    -    };
    -    module2.exports = Result;
    -    Result.default = Result;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/at-rule.js
    -var require_at_rule = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/at-rule.js"(exports2, module2) {
    -    "use strict";
    -    var Container = require_container();
    -    var AtRule = class extends Container {
    -      constructor(defaults2) {
    -        super(defaults2);
    -        this.type = "atrule";
    -      }
    -      append(...children) {
    -        if (!this.proxyOf.nodes)
    -          this.nodes = [];
    -        return super.append(...children);
    -      }
    -      prepend(...children) {
    -        if (!this.proxyOf.nodes)
    -          this.nodes = [];
    -        return super.prepend(...children);
    -      }
    -    };
    -    module2.exports = AtRule;
    -    AtRule.default = AtRule;
    -    Container.registerAtRule(AtRule);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/root.js
    -var require_root = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/root.js"(exports2, module2) {
    -    "use strict";
    -    var Container = require_container();
    -    var LazyResult;
    -    var Processor2;
    -    var Root = class extends Container {
    -      constructor(defaults2) {
    -        super(defaults2);
    -        this.type = "root";
    -        if (!this.nodes)
    -          this.nodes = [];
    -      }
    -      normalize(child, sample, type2) {
    -        let nodes = super.normalize(child);
    -        if (sample) {
    -          if (type2 === "prepend") {
    -            if (this.nodes.length > 1) {
    -              sample.raws.before = this.nodes[1].raws.before;
    -            } else {
    -              delete sample.raws.before;
    -            }
    -          } else if (this.first !== sample) {
    -            for (let node of nodes) {
    -              node.raws.before = sample.raws.before;
    -            }
    -          }
    -        }
    -        return nodes;
    -      }
    -      removeChild(child, ignore) {
    -        let index = this.index(child);
    -        if (!ignore && index === 0 && this.nodes.length > 1) {
    -          this.nodes[1].raws.before = this.nodes[index].raws.before;
    -        }
    -        return super.removeChild(child);
    -      }
    -      toResult(opts = {}) {
    -        let lazy = new LazyResult(new Processor2(), this, opts);
    -        return lazy.stringify();
    -      }
    -    };
    -    Root.registerLazyResult = (dependant) => {
    -      LazyResult = dependant;
    -    };
    -    Root.registerProcessor = (dependant) => {
    -      Processor2 = dependant;
    -    };
    -    module2.exports = Root;
    -    Root.default = Root;
    -    Container.registerRoot(Root);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/list.js
    -var require_list = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/list.js"(exports2, module2) {
    -    "use strict";
    -    var list = {
    -      comma(string2) {
    -        return list.split(string2, [","], true);
    -      },
    -      space(string2) {
    -        let spaces = [" ", "\n", "	"];
    -        return list.split(string2, spaces);
    -      },
    -      split(string2, separators, last2) {
    -        let array = [];
    -        let current2 = "";
    -        let split = false;
    -        let func = 0;
    -        let inQuote = false;
    -        let prevQuote = "";
    -        let escape2 = false;
    -        for (let letter of string2) {
    -          if (escape2) {
    -            escape2 = false;
    -          } else if (letter === "\\") {
    -            escape2 = true;
    -          } else if (inQuote) {
    -            if (letter === prevQuote) {
    -              inQuote = false;
    -            }
    -          } else if (letter === '"' || letter === "'") {
    -            inQuote = true;
    -            prevQuote = letter;
    -          } else if (letter === "(") {
    -            func += 1;
    -          } else if (letter === ")") {
    -            if (func > 0)
    -              func -= 1;
    -          } else if (func === 0) {
    -            if (separators.includes(letter))
    -              split = true;
    -          }
    -          if (split) {
    -            if (current2 !== "")
    -              array.push(current2.trim());
    -            current2 = "";
    -            split = false;
    -          } else {
    -            current2 += letter;
    -          }
    -        }
    -        if (last2 || current2 !== "")
    -          array.push(current2.trim());
    -        return array;
    -      }
    -    };
    -    module2.exports = list;
    -    list.default = list;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/rule.js
    -var require_rule = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/rule.js"(exports2, module2) {
    -    "use strict";
    -    var Container = require_container();
    -    var list = require_list();
    -    var Rule = class extends Container {
    -      constructor(defaults2) {
    -        super(defaults2);
    -        this.type = "rule";
    -        if (!this.nodes)
    -          this.nodes = [];
    -      }
    -      get selectors() {
    -        return list.comma(this.selector);
    -      }
    -      set selectors(values2) {
    -        let match2 = this.selector ? this.selector.match(/,\s*/) : null;
    -        let sep3 = match2 ? match2[0] : "," + this.raw("between", "beforeOpen");
    -        this.selector = values2.join(sep3);
    -      }
    -    };
    -    module2.exports = Rule;
    -    Rule.default = Rule;
    -    Container.registerRule(Rule);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parser.js
    -var require_parser = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parser.js"(exports2, module2) {
    -    "use strict";
    -    var Declaration = require_declaration();
    -    var tokenizer = require_tokenize();
    -    var Comment = require_comment();
    -    var AtRule = require_at_rule();
    -    var Root = require_root();
    -    var Rule = require_rule();
    -    var SAFE_COMMENT_NEIGHBOR = {
    -      empty: true,
    -      space: true
    -    };
    -    function findLastWithPosition(tokens) {
    -      for (let i = tokens.length - 1; i >= 0; i--) {
    -        let token = tokens[i];
    -        let pos = token[3] || token[2];
    -        if (pos)
    -          return pos;
    -      }
    -    }
    -    var Parser = class {
    -      constructor(input) {
    -        this.input = input;
    -        this.root = new Root();
    -        this.current = this.root;
    -        this.spaces = "";
    -        this.semicolon = false;
    -        this.createTokenizer();
    -        this.root.source = { input, start: { column: 1, line: 1, offset: 0 } };
    -      }
    -      atrule(token) {
    -        let node = new AtRule();
    -        node.name = token[1].slice(1);
    -        if (node.name === "") {
    -          this.unnamedAtrule(node, token);
    -        }
    -        this.init(node, token[2]);
    -        let type2;
    -        let prev;
    -        let shift;
    -        let last2 = false;
    -        let open2 = false;
    -        let params = [];
    -        let brackets = [];
    -        while (!this.tokenizer.endOfFile()) {
    -          token = this.tokenizer.nextToken();
    -          type2 = token[0];
    -          if (type2 === "(" || type2 === "[") {
    -            brackets.push(type2 === "(" ? ")" : "]");
    -          } else if (type2 === "{" && brackets.length > 0) {
    -            brackets.push("}");
    -          } else if (type2 === brackets[brackets.length - 1]) {
    -            brackets.pop();
    -          }
    -          if (brackets.length === 0) {
    -            if (type2 === ";") {
    -              node.source.end = this.getPosition(token[2]);
    -              node.source.end.offset++;
    -              this.semicolon = true;
    -              break;
    -            } else if (type2 === "{") {
    -              open2 = true;
    -              break;
    -            } else if (type2 === "}") {
    -              if (params.length > 0) {
    -                shift = params.length - 1;
    -                prev = params[shift];
    -                while (prev && prev[0] === "space") {
    -                  prev = params[--shift];
    -                }
    -                if (prev) {
    -                  node.source.end = this.getPosition(prev[3] || prev[2]);
    -                  node.source.end.offset++;
    -                }
    -              }
    -              this.end(token);
    -              break;
    -            } else {
    -              params.push(token);
    -            }
    -          } else {
    -            params.push(token);
    -          }
    -          if (this.tokenizer.endOfFile()) {
    -            last2 = true;
    -            break;
    -          }
    -        }
    -        node.raws.between = this.spacesAndCommentsFromEnd(params);
    -        if (params.length) {
    -          node.raws.afterName = this.spacesAndCommentsFromStart(params);
    -          this.raw(node, "params", params);
    -          if (last2) {
    -            token = params[params.length - 1];
    -            node.source.end = this.getPosition(token[3] || token[2]);
    -            node.source.end.offset++;
    -            this.spaces = node.raws.between;
    -            node.raws.between = "";
    -          }
    -        } else {
    -          node.raws.afterName = "";
    -          node.params = "";
    -        }
    -        if (open2) {
    -          node.nodes = [];
    -          this.current = node;
    -        }
    -      }
    -      checkMissedSemicolon(tokens) {
    -        let colon = this.colon(tokens);
    -        if (colon === false)
    -          return;
    -        let founded = 0;
    -        let token;
    -        for (let j = colon - 1; j >= 0; j--) {
    -          token = tokens[j];
    -          if (token[0] !== "space") {
    -            founded += 1;
    -            if (founded === 2)
    -              break;
    -          }
    -        }
    -        throw this.input.error(
    -          "Missed semicolon",
    -          token[0] === "word" ? token[3] + 1 : token[2]
    -        );
    -      }
    -      colon(tokens) {
    -        let brackets = 0;
    -        let token, type2, prev;
    -        for (let [i, element] of tokens.entries()) {
    -          token = element;
    -          type2 = token[0];
    -          if (type2 === "(") {
    -            brackets += 1;
    -          }
    -          if (type2 === ")") {
    -            brackets -= 1;
    -          }
    -          if (brackets === 0 && type2 === ":") {
    -            if (!prev) {
    -              this.doubleColon(token);
    -            } else if (prev[0] === "word" && prev[1] === "progid") {
    -              continue;
    -            } else {
    -              return i;
    -            }
    -          }
    -          prev = token;
    -        }
    -        return false;
    -      }
    -      comment(token) {
    -        let node = new Comment();
    -        this.init(node, token[2]);
    -        node.source.end = this.getPosition(token[3] || token[2]);
    -        node.source.end.offset++;
    -        let text = token[1].slice(2, -2);
    -        if (/^\s*$/.test(text)) {
    -          node.text = "";
    -          node.raws.left = text;
    -          node.raws.right = "";
    -        } else {
    -          let match2 = text.match(/^(\s*)([^]*\S)(\s*)$/);
    -          node.text = match2[2];
    -          node.raws.left = match2[1];
    -          node.raws.right = match2[3];
    -        }
    -      }
    -      createTokenizer() {
    -        this.tokenizer = tokenizer(this.input);
    -      }
    -      decl(tokens, customProperty) {
    -        let node = new Declaration();
    -        this.init(node, tokens[0][2]);
    -        let last2 = tokens[tokens.length - 1];
    -        if (last2[0] === ";") {
    -          this.semicolon = true;
    -          tokens.pop();
    -        }
    -        node.source.end = this.getPosition(
    -          last2[3] || last2[2] || findLastWithPosition(tokens)
    -        );
    -        node.source.end.offset++;
    -        while (tokens[0][0] !== "word") {
    -          if (tokens.length === 1)
    -            this.unknownWord(tokens);
    -          node.raws.before += tokens.shift()[1];
    -        }
    -        node.source.start = this.getPosition(tokens[0][2]);
    -        node.prop = "";
    -        while (tokens.length) {
    -          let type2 = tokens[0][0];
    -          if (type2 === ":" || type2 === "space" || type2 === "comment") {
    -            break;
    -          }
    -          node.prop += tokens.shift()[1];
    -        }
    -        node.raws.between = "";
    -        let token;
    -        while (tokens.length) {
    -          token = tokens.shift();
    -          if (token[0] === ":") {
    -            node.raws.between += token[1];
    -            break;
    -          } else {
    -            if (token[0] === "word" && /\w/.test(token[1])) {
    -              this.unknownWord([token]);
    -            }
    -            node.raws.between += token[1];
    -          }
    -        }
    -        if (node.prop[0] === "_" || node.prop[0] === "*") {
    -          node.raws.before += node.prop[0];
    -          node.prop = node.prop.slice(1);
    -        }
    -        let firstSpaces = [];
    -        let next;
    -        while (tokens.length) {
    -          next = tokens[0][0];
    -          if (next !== "space" && next !== "comment")
    -            break;
    -          firstSpaces.push(tokens.shift());
    -        }
    -        this.precheckMissedSemicolon(tokens);
    -        for (let i = tokens.length - 1; i >= 0; i--) {
    -          token = tokens[i];
    -          if (token[1].toLowerCase() === "!important") {
    -            node.important = true;
    -            let string2 = this.stringFrom(tokens, i);
    -            string2 = this.spacesFromEnd(tokens) + string2;
    -            if (string2 !== " !important")
    -              node.raws.important = string2;
    -            break;
    -          } else if (token[1].toLowerCase() === "important") {
    -            let cache = tokens.slice(0);
    -            let str2 = "";
    -            for (let j = i; j > 0; j--) {
    -              let type2 = cache[j][0];
    -              if (str2.trim().indexOf("!") === 0 && type2 !== "space") {
    -                break;
    -              }
    -              str2 = cache.pop()[1] + str2;
    -            }
    -            if (str2.trim().indexOf("!") === 0) {
    -              node.important = true;
    -              node.raws.important = str2;
    -              tokens = cache;
    -            }
    -          }
    -          if (token[0] !== "space" && token[0] !== "comment") {
    -            break;
    -          }
    -        }
    -        let hasWord = tokens.some((i) => i[0] !== "space" && i[0] !== "comment");
    -        if (hasWord) {
    -          node.raws.between += firstSpaces.map((i) => i[1]).join("");
    -          firstSpaces = [];
    -        }
    -        this.raw(node, "value", firstSpaces.concat(tokens), customProperty);
    -        if (node.value.includes(":") && !customProperty) {
    -          this.checkMissedSemicolon(tokens);
    -        }
    -      }
    -      doubleColon(token) {
    -        throw this.input.error(
    -          "Double colon",
    -          { offset: token[2] },
    -          { offset: token[2] + token[1].length }
    -        );
    -      }
    -      emptyRule(token) {
    -        let node = new Rule();
    -        this.init(node, token[2]);
    -        node.selector = "";
    -        node.raws.between = "";
    -        this.current = node;
    -      }
    -      end(token) {
    -        if (this.current.nodes && this.current.nodes.length) {
    -          this.current.raws.semicolon = this.semicolon;
    -        }
    -        this.semicolon = false;
    -        this.current.raws.after = (this.current.raws.after || "") + this.spaces;
    -        this.spaces = "";
    -        if (this.current.parent) {
    -          this.current.source.end = this.getPosition(token[2]);
    -          this.current.source.end.offset++;
    -          this.current = this.current.parent;
    -        } else {
    -          this.unexpectedClose(token);
    -        }
    -      }
    -      endFile() {
    -        if (this.current.parent)
    -          this.unclosedBlock();
    -        if (this.current.nodes && this.current.nodes.length) {
    -          this.current.raws.semicolon = this.semicolon;
    -        }
    -        this.current.raws.after = (this.current.raws.after || "") + this.spaces;
    -        this.root.source.end = this.getPosition(this.tokenizer.position());
    -      }
    -      freeSemicolon(token) {
    -        this.spaces += token[1];
    -        if (this.current.nodes) {
    -          let prev = this.current.nodes[this.current.nodes.length - 1];
    -          if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) {
    -            prev.raws.ownSemicolon = this.spaces;
    -            this.spaces = "";
    -          }
    -        }
    -      }
    -      // Helpers
    -      getPosition(offset) {
    -        let pos = this.input.fromOffset(offset);
    -        return {
    -          column: pos.col,
    -          line: pos.line,
    -          offset
    -        };
    -      }
    -      init(node, offset) {
    -        this.current.push(node);
    -        node.source = {
    -          input: this.input,
    -          start: this.getPosition(offset)
    -        };
    -        node.raws.before = this.spaces;
    -        this.spaces = "";
    -        if (node.type !== "comment")
    -          this.semicolon = false;
    -      }
    -      other(start) {
    -        let end = false;
    -        let type2 = null;
    -        let colon = false;
    -        let bracket = null;
    -        let brackets = [];
    -        let customProperty = start[1].startsWith("--");
    -        let tokens = [];
    -        let token = start;
    -        while (token) {
    -          type2 = token[0];
    -          tokens.push(token);
    -          if (type2 === "(" || type2 === "[") {
    -            if (!bracket)
    -              bracket = token;
    -            brackets.push(type2 === "(" ? ")" : "]");
    -          } else if (customProperty && colon && type2 === "{") {
    -            if (!bracket)
    -              bracket = token;
    -            brackets.push("}");
    -          } else if (brackets.length === 0) {
    -            if (type2 === ";") {
    -              if (colon) {
    -                this.decl(tokens, customProperty);
    -                return;
    -              } else {
    -                break;
    -              }
    -            } else if (type2 === "{") {
    -              this.rule(tokens);
    -              return;
    -            } else if (type2 === "}") {
    -              this.tokenizer.back(tokens.pop());
    -              end = true;
    -              break;
    -            } else if (type2 === ":") {
    -              colon = true;
    -            }
    -          } else if (type2 === brackets[brackets.length - 1]) {
    -            brackets.pop();
    -            if (brackets.length === 0)
    -              bracket = null;
    -          }
    -          token = this.tokenizer.nextToken();
    -        }
    -        if (this.tokenizer.endOfFile())
    -          end = true;
    -        if (brackets.length > 0)
    -          this.unclosedBracket(bracket);
    -        if (end && colon) {
    -          if (!customProperty) {
    -            while (tokens.length) {
    -              token = tokens[tokens.length - 1][0];
    -              if (token !== "space" && token !== "comment")
    -                break;
    -              this.tokenizer.back(tokens.pop());
    -            }
    -          }
    -          this.decl(tokens, customProperty);
    -        } else {
    -          this.unknownWord(tokens);
    -        }
    -      }
    -      parse() {
    -        let token;
    -        while (!this.tokenizer.endOfFile()) {
    -          token = this.tokenizer.nextToken();
    -          switch (token[0]) {
    -            case "space":
    -              this.spaces += token[1];
    -              break;
    -            case ";":
    -              this.freeSemicolon(token);
    -              break;
    -            case "}":
    -              this.end(token);
    -              break;
    -            case "comment":
    -              this.comment(token);
    -              break;
    -            case "at-word":
    -              this.atrule(token);
    -              break;
    -            case "{":
    -              this.emptyRule(token);
    -              break;
    -            default:
    -              this.other(token);
    -              break;
    -          }
    -        }
    -        this.endFile();
    -      }
    -      precheckMissedSemicolon() {
    -      }
    -      raw(node, prop, tokens, customProperty) {
    -        let token, type2;
    -        let length = tokens.length;
    -        let value = "";
    -        let clean = true;
    -        let next, prev;
    -        for (let i = 0; i < length; i += 1) {
    -          token = tokens[i];
    -          type2 = token[0];
    -          if (type2 === "space" && i === length - 1 && !customProperty) {
    -            clean = false;
    -          } else if (type2 === "comment") {
    -            prev = tokens[i - 1] ? tokens[i - 1][0] : "empty";
    -            next = tokens[i + 1] ? tokens[i + 1][0] : "empty";
    -            if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {
    -              if (value.slice(-1) === ",") {
    -                clean = false;
    -              } else {
    -                value += token[1];
    -              }
    -            } else {
    -              clean = false;
    -            }
    -          } else {
    -            value += token[1];
    -          }
    -        }
    -        if (!clean) {
    -          let raw = tokens.reduce((all, i) => all + i[1], "");
    -          node.raws[prop] = { raw, value };
    -        }
    -        node[prop] = value;
    -      }
    -      rule(tokens) {
    -        tokens.pop();
    -        let node = new Rule();
    -        this.init(node, tokens[0][2]);
    -        node.raws.between = this.spacesAndCommentsFromEnd(tokens);
    -        this.raw(node, "selector", tokens);
    -        this.current = node;
    -      }
    -      spacesAndCommentsFromEnd(tokens) {
    -        let lastTokenType;
    -        let spaces = "";
    -        while (tokens.length) {
    -          lastTokenType = tokens[tokens.length - 1][0];
    -          if (lastTokenType !== "space" && lastTokenType !== "comment")
    -            break;
    -          spaces = tokens.pop()[1] + spaces;
    -        }
    -        return spaces;
    -      }
    -      // Errors
    -      spacesAndCommentsFromStart(tokens) {
    -        let next;
    -        let spaces = "";
    -        while (tokens.length) {
    -          next = tokens[0][0];
    -          if (next !== "space" && next !== "comment")
    -            break;
    -          spaces += tokens.shift()[1];
    -        }
    -        return spaces;
    -      }
    -      spacesFromEnd(tokens) {
    -        let lastTokenType;
    -        let spaces = "";
    -        while (tokens.length) {
    -          lastTokenType = tokens[tokens.length - 1][0];
    -          if (lastTokenType !== "space")
    -            break;
    -          spaces = tokens.pop()[1] + spaces;
    -        }
    -        return spaces;
    -      }
    -      stringFrom(tokens, from) {
    -        let result = "";
    -        for (let i = from; i < tokens.length; i++) {
    -          result += tokens[i][1];
    -        }
    -        tokens.splice(from, tokens.length - from);
    -        return result;
    -      }
    -      unclosedBlock() {
    -        let pos = this.current.source.start;
    -        throw this.input.error("Unclosed block", pos.line, pos.column);
    -      }
    -      unclosedBracket(bracket) {
    -        throw this.input.error(
    -          "Unclosed bracket",
    -          { offset: bracket[2] },
    -          { offset: bracket[2] + 1 }
    -        );
    -      }
    -      unexpectedClose(token) {
    -        throw this.input.error(
    -          "Unexpected }",
    -          { offset: token[2] },
    -          { offset: token[2] + 1 }
    -        );
    -      }
    -      unknownWord(tokens) {
    -        throw this.input.error(
    -          "Unknown word",
    -          { offset: tokens[0][2] },
    -          { offset: tokens[0][2] + tokens[0][1].length }
    -        );
    -      }
    -      unnamedAtrule(node, token) {
    -        throw this.input.error(
    -          "At-rule without name",
    -          { offset: token[2] },
    -          { offset: token[2] + token[1].length }
    -        );
    -      }
    -    };
    -    module2.exports = Parser;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parse.js
    -var require_parse = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/parse.js"(exports2, module2) {
    -    "use strict";
    -    var Container = require_container();
    -    var Parser = require_parser();
    -    var Input = require_input();
    -    function parse2(css, opts) {
    -      let input = new Input(css, opts);
    -      let parser = new Parser(input);
    -      try {
    -        parser.parse();
    -      } catch (e) {
    -        if (process.env.NODE_ENV !== "production") {
    -          if (e.name === "CssSyntaxError" && opts && opts.from) {
    -            if (/\.scss$/i.test(opts.from)) {
    -              e.message += "\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser";
    -            } else if (/\.sass/i.test(opts.from)) {
    -              e.message += "\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser";
    -            } else if (/\.less$/i.test(opts.from)) {
    -              e.message += "\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser";
    -            }
    -          }
    -        }
    -        throw e;
    -      }
    -      return parser.root;
    -    }
    -    module2.exports = parse2;
    -    parse2.default = parse2;
    -    Container.registerParse(parse2);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/lazy-result.js
    -var require_lazy_result = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/lazy-result.js"(exports2, module2) {
    -    "use strict";
    -    var { isClean, my } = require_symbols();
    -    var MapGenerator = require_map_generator();
    -    var stringify2 = require_stringify2();
    -    var Container = require_container();
    -    var Document = require_document();
    -    var warnOnce = require_warn_once();
    -    var Result = require_result();
    -    var parse2 = require_parse();
    -    var Root = require_root();
    -    var TYPE_TO_CLASS_NAME = {
    -      atrule: "AtRule",
    -      comment: "Comment",
    -      decl: "Declaration",
    -      document: "Document",
    -      root: "Root",
    -      rule: "Rule"
    -    };
    -    var PLUGIN_PROPS = {
    -      AtRule: true,
    -      AtRuleExit: true,
    -      Comment: true,
    -      CommentExit: true,
    -      Declaration: true,
    -      DeclarationExit: true,
    -      Document: true,
    -      DocumentExit: true,
    -      Once: true,
    -      OnceExit: true,
    -      postcssPlugin: true,
    -      prepare: true,
    -      Root: true,
    -      RootExit: true,
    -      Rule: true,
    -      RuleExit: true
    -    };
    -    var NOT_VISITORS = {
    -      Once: true,
    -      postcssPlugin: true,
    -      prepare: true
    -    };
    -    var CHILDREN = 0;
    -    function isPromise(obj) {
    -      return typeof obj === "object" && typeof obj.then === "function";
    -    }
    -    function getEvents(node) {
    -      let key = false;
    -      let type2 = TYPE_TO_CLASS_NAME[node.type];
    -      if (node.type === "decl") {
    -        key = node.prop.toLowerCase();
    -      } else if (node.type === "atrule") {
    -        key = node.name.toLowerCase();
    -      }
    -      if (key && node.append) {
    -        return [
    -          type2,
    -          type2 + "-" + key,
    -          CHILDREN,
    -          type2 + "Exit",
    -          type2 + "Exit-" + key
    -        ];
    -      } else if (key) {
    -        return [type2, type2 + "-" + key, type2 + "Exit", type2 + "Exit-" + key];
    -      } else if (node.append) {
    -        return [type2, CHILDREN, type2 + "Exit"];
    -      } else {
    -        return [type2, type2 + "Exit"];
    -      }
    -    }
    -    function toStack(node) {
    -      let events;
    -      if (node.type === "document") {
    -        events = ["Document", CHILDREN, "DocumentExit"];
    -      } else if (node.type === "root") {
    -        events = ["Root", CHILDREN, "RootExit"];
    -      } else {
    -        events = getEvents(node);
    -      }
    -      return {
    -        eventIndex: 0,
    -        events,
    -        iterator: 0,
    -        node,
    -        visitorIndex: 0,
    -        visitors: []
    -      };
    -    }
    -    function cleanMarks(node) {
    -      node[isClean] = false;
    -      if (node.nodes)
    -        node.nodes.forEach((i) => cleanMarks(i));
    -      return node;
    -    }
    -    var postcss = {};
    -    var LazyResult = class _LazyResult {
    -      constructor(processor, css, opts) {
    -        this.stringified = false;
    -        this.processed = false;
    -        let root;
    -        if (typeof css === "object" && css !== null && (css.type === "root" || css.type === "document")) {
    -          root = cleanMarks(css);
    -        } else if (css instanceof _LazyResult || css instanceof Result) {
    -          root = cleanMarks(css.root);
    -          if (css.map) {
    -            if (typeof opts.map === "undefined")
    -              opts.map = {};
    -            if (!opts.map.inline)
    -              opts.map.inline = false;
    -            opts.map.prev = css.map;
    -          }
    -        } else {
    -          let parser = parse2;
    -          if (opts.syntax)
    -            parser = opts.syntax.parse;
    -          if (opts.parser)
    -            parser = opts.parser;
    -          if (parser.parse)
    -            parser = parser.parse;
    -          try {
    -            root = parser(css, opts);
    -          } catch (error) {
    -            this.processed = true;
    -            this.error = error;
    -          }
    -          if (root && !root[my]) {
    -            Container.rebuild(root);
    -          }
    -        }
    -        this.result = new Result(processor, root, opts);
    -        this.helpers = { ...postcss, postcss, result: this.result };
    -        this.plugins = this.processor.plugins.map((plugin) => {
    -          if (typeof plugin === "object" && plugin.prepare) {
    -            return { ...plugin, ...plugin.prepare(this.result) };
    -          } else {
    -            return plugin;
    -          }
    -        });
    -      }
    -      async() {
    -        if (this.error)
    -          return Promise.reject(this.error);
    -        if (this.processed)
    -          return Promise.resolve(this.result);
    -        if (!this.processing) {
    -          this.processing = this.runAsync();
    -        }
    -        return this.processing;
    -      }
    -      catch(onRejected) {
    -        return this.async().catch(onRejected);
    -      }
    -      finally(onFinally) {
    -        return this.async().then(onFinally, onFinally);
    -      }
    -      getAsyncError() {
    -        throw new Error("Use process(css).then(cb) to work with async plugins");
    -      }
    -      handleError(error, node) {
    -        let plugin = this.result.lastPlugin;
    -        try {
    -          if (node)
    -            node.addToError(error);
    -          this.error = error;
    -          if (error.name === "CssSyntaxError" && !error.plugin) {
    -            error.plugin = plugin.postcssPlugin;
    -            error.setMessage();
    -          } else if (plugin.postcssVersion) {
    -            if (process.env.NODE_ENV !== "production") {
    -              let pluginName = plugin.postcssPlugin;
    -              let pluginVer = plugin.postcssVersion;
    -              let runtimeVer = this.result.processor.version;
    -              let a = pluginVer.split(".");
    -              let b = runtimeVer.split(".");
    -              if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {
    -                console.error(
    -                  "Unknown error from PostCSS plugin. Your current PostCSS version is " + runtimeVer + ", but " + pluginName + " uses " + pluginVer + ". Perhaps this is the source of the error below."
    -                );
    -              }
    -            }
    -          }
    -        } catch (err) {
    -          if (console && console.error)
    -            console.error(err);
    -        }
    -        return error;
    -      }
    -      prepareVisitors() {
    -        this.listeners = {};
    -        let add = (plugin, type2, cb) => {
    -          if (!this.listeners[type2])
    -            this.listeners[type2] = [];
    -          this.listeners[type2].push([plugin, cb]);
    -        };
    -        for (let plugin of this.plugins) {
    -          if (typeof plugin === "object") {
    -            for (let event in plugin) {
    -              if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {
    -                throw new Error(
    -                  `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`
    -                );
    -              }
    -              if (!NOT_VISITORS[event]) {
    -                if (typeof plugin[event] === "object") {
    -                  for (let filter2 in plugin[event]) {
    -                    if (filter2 === "*") {
    -                      add(plugin, event, plugin[event][filter2]);
    -                    } else {
    -                      add(
    -                        plugin,
    -                        event + "-" + filter2.toLowerCase(),
    -                        plugin[event][filter2]
    -                      );
    -                    }
    -                  }
    -                } else if (typeof plugin[event] === "function") {
    -                  add(plugin, event, plugin[event]);
    -                }
    -              }
    -            }
    -          }
    -        }
    -        this.hasListener = Object.keys(this.listeners).length > 0;
    -      }
    -      async runAsync() {
    -        this.plugin = 0;
    -        for (let i = 0; i < this.plugins.length; i++) {
    -          let plugin = this.plugins[i];
    -          let promise = this.runOnRoot(plugin);
    -          if (isPromise(promise)) {
    -            try {
    -              await promise;
    -            } catch (error) {
    -              throw this.handleError(error);
    -            }
    -          }
    -        }
    -        this.prepareVisitors();
    -        if (this.hasListener) {
    -          let root = this.result.root;
    -          while (!root[isClean]) {
    -            root[isClean] = true;
    -            let stack = [toStack(root)];
    -            while (stack.length > 0) {
    -              let promise = this.visitTick(stack);
    -              if (isPromise(promise)) {
    -                try {
    -                  await promise;
    -                } catch (e) {
    -                  let node = stack[stack.length - 1].node;
    -                  throw this.handleError(e, node);
    -                }
    -              }
    -            }
    -          }
    -          if (this.listeners.OnceExit) {
    -            for (let [plugin, visitor] of this.listeners.OnceExit) {
    -              this.result.lastPlugin = plugin;
    -              try {
    -                if (root.type === "document") {
    -                  let roots = root.nodes.map(
    -                    (subRoot) => visitor(subRoot, this.helpers)
    -                  );
    -                  await Promise.all(roots);
    -                } else {
    -                  await visitor(root, this.helpers);
    -                }
    -              } catch (e) {
    -                throw this.handleError(e);
    -              }
    -            }
    -          }
    -        }
    -        this.processed = true;
    -        return this.stringify();
    -      }
    -      runOnRoot(plugin) {
    -        this.result.lastPlugin = plugin;
    -        try {
    -          if (typeof plugin === "object" && plugin.Once) {
    -            if (this.result.root.type === "document") {
    -              let roots = this.result.root.nodes.map(
    -                (root) => plugin.Once(root, this.helpers)
    -              );
    -              if (isPromise(roots[0])) {
    -                return Promise.all(roots);
    -              }
    -              return roots;
    -            }
    -            return plugin.Once(this.result.root, this.helpers);
    -          } else if (typeof plugin === "function") {
    -            return plugin(this.result.root, this.result);
    -          }
    -        } catch (error) {
    -          throw this.handleError(error);
    -        }
    -      }
    -      stringify() {
    -        if (this.error)
    -          throw this.error;
    -        if (this.stringified)
    -          return this.result;
    -        this.stringified = true;
    -        this.sync();
    -        let opts = this.result.opts;
    -        let str2 = stringify2;
    -        if (opts.syntax)
    -          str2 = opts.syntax.stringify;
    -        if (opts.stringifier)
    -          str2 = opts.stringifier;
    -        if (str2.stringify)
    -          str2 = str2.stringify;
    -        let map4 = new MapGenerator(str2, this.result.root, this.result.opts);
    -        let data = map4.generate();
    -        this.result.css = data[0];
    -        this.result.map = data[1];
    -        return this.result;
    -      }
    -      sync() {
    -        if (this.error)
    -          throw this.error;
    -        if (this.processed)
    -          return this.result;
    -        this.processed = true;
    -        if (this.processing) {
    -          throw this.getAsyncError();
    -        }
    -        for (let plugin of this.plugins) {
    -          let promise = this.runOnRoot(plugin);
    -          if (isPromise(promise)) {
    -            throw this.getAsyncError();
    -          }
    -        }
    -        this.prepareVisitors();
    -        if (this.hasListener) {
    -          let root = this.result.root;
    -          while (!root[isClean]) {
    -            root[isClean] = true;
    -            this.walkSync(root);
    -          }
    -          if (this.listeners.OnceExit) {
    -            if (root.type === "document") {
    -              for (let subRoot of root.nodes) {
    -                this.visitSync(this.listeners.OnceExit, subRoot);
    -              }
    -            } else {
    -              this.visitSync(this.listeners.OnceExit, root);
    -            }
    -          }
    -        }
    -        return this.result;
    -      }
    -      then(onFulfilled, onRejected) {
    -        if (process.env.NODE_ENV !== "production") {
    -          if (!("from" in this.opts)) {
    -            warnOnce(
    -              "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning."
    -            );
    -          }
    -        }
    -        return this.async().then(onFulfilled, onRejected);
    -      }
    -      toString() {
    -        return this.css;
    -      }
    -      visitSync(visitors, node) {
    -        for (let [plugin, visitor] of visitors) {
    -          this.result.lastPlugin = plugin;
    -          let promise;
    -          try {
    -            promise = visitor(node, this.helpers);
    -          } catch (e) {
    -            throw this.handleError(e, node.proxyOf);
    -          }
    -          if (node.type !== "root" && node.type !== "document" && !node.parent) {
    -            return true;
    -          }
    -          if (isPromise(promise)) {
    -            throw this.getAsyncError();
    -          }
    -        }
    -      }
    -      visitTick(stack) {
    -        let visit = stack[stack.length - 1];
    -        let { node, visitors } = visit;
    -        if (node.type !== "root" && node.type !== "document" && !node.parent) {
    -          stack.pop();
    -          return;
    -        }
    -        if (visitors.length > 0 && visit.visitorIndex < visitors.length) {
    -          let [plugin, visitor] = visitors[visit.visitorIndex];
    -          visit.visitorIndex += 1;
    -          if (visit.visitorIndex === visitors.length) {
    -            visit.visitors = [];
    -            visit.visitorIndex = 0;
    -          }
    -          this.result.lastPlugin = plugin;
    -          try {
    -            return visitor(node.toProxy(), this.helpers);
    -          } catch (e) {
    -            throw this.handleError(e, node);
    -          }
    -        }
    -        if (visit.iterator !== 0) {
    -          let iterator = visit.iterator;
    -          let child;
    -          while (child = node.nodes[node.indexes[iterator]]) {
    -            node.indexes[iterator] += 1;
    -            if (!child[isClean]) {
    -              child[isClean] = true;
    -              stack.push(toStack(child));
    -              return;
    -            }
    -          }
    -          visit.iterator = 0;
    -          delete node.indexes[iterator];
    -        }
    -        let events = visit.events;
    -        while (visit.eventIndex < events.length) {
    -          let event = events[visit.eventIndex];
    -          visit.eventIndex += 1;
    -          if (event === CHILDREN) {
    -            if (node.nodes && node.nodes.length) {
    -              node[isClean] = true;
    -              visit.iterator = node.getIterator();
    -            }
    -            return;
    -          } else if (this.listeners[event]) {
    -            visit.visitors = this.listeners[event];
    -            return;
    -          }
    -        }
    -        stack.pop();
    -      }
    -      walkSync(node) {
    -        node[isClean] = true;
    -        let events = getEvents(node);
    -        for (let event of events) {
    -          if (event === CHILDREN) {
    -            if (node.nodes) {
    -              node.each((child) => {
    -                if (!child[isClean])
    -                  this.walkSync(child);
    -              });
    -            }
    -          } else {
    -            let visitors = this.listeners[event];
    -            if (visitors) {
    -              if (this.visitSync(visitors, node.toProxy()))
    -                return;
    -            }
    -          }
    -        }
    -      }
    -      warnings() {
    -        return this.sync().warnings();
    -      }
    -      get content() {
    -        return this.stringify().content;
    -      }
    -      get css() {
    -        return this.stringify().css;
    -      }
    -      get map() {
    -        return this.stringify().map;
    -      }
    -      get messages() {
    -        return this.sync().messages;
    -      }
    -      get opts() {
    -        return this.result.opts;
    -      }
    -      get processor() {
    -        return this.result.processor;
    -      }
    -      get root() {
    -        return this.sync().root;
    -      }
    -      get [Symbol.toStringTag]() {
    -        return "LazyResult";
    -      }
    -    };
    -    LazyResult.registerPostcss = (dependant) => {
    -      postcss = dependant;
    -    };
    -    module2.exports = LazyResult;
    -    LazyResult.default = LazyResult;
    -    Root.registerLazyResult(LazyResult);
    -    Document.registerLazyResult(LazyResult);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/no-work-result.js
    -var require_no_work_result = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/no-work-result.js"(exports2, module2) {
    -    "use strict";
    -    var MapGenerator = require_map_generator();
    -    var stringify2 = require_stringify2();
    -    var warnOnce = require_warn_once();
    -    var parse2 = require_parse();
    -    var Result = require_result();
    -    var NoWorkResult = class {
    -      constructor(processor, css, opts) {
    -        css = css.toString();
    -        this.stringified = false;
    -        this._processor = processor;
    -        this._css = css;
    -        this._opts = opts;
    -        this._map = void 0;
    -        let root;
    -        let str2 = stringify2;
    -        this.result = new Result(this._processor, root, this._opts);
    -        this.result.css = css;
    -        let self2 = this;
    -        Object.defineProperty(this.result, "root", {
    -          get() {
    -            return self2.root;
    -          }
    -        });
    -        let map4 = new MapGenerator(str2, root, this._opts, css);
    -        if (map4.isMap()) {
    -          let [generatedCSS, generatedMap] = map4.generate();
    -          if (generatedCSS) {
    -            this.result.css = generatedCSS;
    -          }
    -          if (generatedMap) {
    -            this.result.map = generatedMap;
    -          }
    -        } else {
    -          map4.clearAnnotation();
    -          this.result.css = map4.css;
    -        }
    -      }
    -      async() {
    -        if (this.error)
    -          return Promise.reject(this.error);
    -        return Promise.resolve(this.result);
    -      }
    -      catch(onRejected) {
    -        return this.async().catch(onRejected);
    -      }
    -      finally(onFinally) {
    -        return this.async().then(onFinally, onFinally);
    -      }
    -      sync() {
    -        if (this.error)
    -          throw this.error;
    -        return this.result;
    -      }
    -      then(onFulfilled, onRejected) {
    -        if (process.env.NODE_ENV !== "production") {
    -          if (!("from" in this._opts)) {
    -            warnOnce(
    -              "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning."
    -            );
    -          }
    -        }
    -        return this.async().then(onFulfilled, onRejected);
    -      }
    -      toString() {
    -        return this._css;
    -      }
    -      warnings() {
    -        return [];
    -      }
    -      get content() {
    -        return this.result.css;
    -      }
    -      get css() {
    -        return this.result.css;
    -      }
    -      get map() {
    -        return this.result.map;
    -      }
    -      get messages() {
    -        return [];
    -      }
    -      get opts() {
    -        return this.result.opts;
    -      }
    -      get processor() {
    -        return this.result.processor;
    -      }
    -      get root() {
    -        if (this._root) {
    -          return this._root;
    -        }
    -        let root;
    -        let parser = parse2;
    -        try {
    -          root = parser(this._css, this._opts);
    -        } catch (error) {
    -          this.error = error;
    -        }
    -        if (this.error) {
    -          throw this.error;
    -        } else {
    -          this._root = root;
    -          return root;
    -        }
    -      }
    -      get [Symbol.toStringTag]() {
    -        return "NoWorkResult";
    -      }
    -    };
    -    module2.exports = NoWorkResult;
    -    NoWorkResult.default = NoWorkResult;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/processor.js
    -var require_processor = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/processor.js"(exports2, module2) {
    -    "use strict";
    -    var NoWorkResult = require_no_work_result();
    -    var LazyResult = require_lazy_result();
    -    var Document = require_document();
    -    var Root = require_root();
    -    var Processor2 = class {
    -      constructor(plugins2 = []) {
    -        this.version = "8.4.38";
    -        this.plugins = this.normalize(plugins2);
    -      }
    -      normalize(plugins2) {
    -        let normalized = [];
    -        for (let i of plugins2) {
    -          if (i.postcss === true) {
    -            i = i();
    -          } else if (i.postcss) {
    -            i = i.postcss;
    -          }
    -          if (typeof i === "object" && Array.isArray(i.plugins)) {
    -            normalized = normalized.concat(i.plugins);
    -          } else if (typeof i === "object" && i.postcssPlugin) {
    -            normalized.push(i);
    -          } else if (typeof i === "function") {
    -            normalized.push(i);
    -          } else if (typeof i === "object" && (i.parse || i.stringify)) {
    -            if (process.env.NODE_ENV !== "production") {
    -              throw new Error(
    -                "PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation."
    -              );
    -            }
    -          } else {
    -            throw new Error(i + " is not a PostCSS plugin");
    -          }
    -        }
    -        return normalized;
    -      }
    -      process(css, opts = {}) {
    -        if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {
    -          return new NoWorkResult(this, css, opts);
    -        } else {
    -          return new LazyResult(this, css, opts);
    -        }
    -      }
    -      use(plugin) {
    -        this.plugins = this.plugins.concat(this.normalize([plugin]));
    -        return this;
    -      }
    -    };
    -    module2.exports = Processor2;
    -    Processor2.default = Processor2;
    -    Root.registerProcessor(Processor2);
    -    Document.registerProcessor(Processor2);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/fromJSON.js
    -var require_fromJSON = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/fromJSON.js"(exports2, module2) {
    -    "use strict";
    -    var Declaration = require_declaration();
    -    var PreviousMap = require_previous_map();
    -    var Comment = require_comment();
    -    var AtRule = require_at_rule();
    -    var Input = require_input();
    -    var Root = require_root();
    -    var Rule = require_rule();
    -    function fromJSON(json2, inputs) {
    -      if (Array.isArray(json2))
    -        return json2.map((n) => fromJSON(n));
    -      let { inputs: ownInputs, ...defaults2 } = json2;
    -      if (ownInputs) {
    -        inputs = [];
    -        for (let input of ownInputs) {
    -          let inputHydrated = { ...input, __proto__: Input.prototype };
    -          if (inputHydrated.map) {
    -            inputHydrated.map = {
    -              ...inputHydrated.map,
    -              __proto__: PreviousMap.prototype
    -            };
    -          }
    -          inputs.push(inputHydrated);
    -        }
    -      }
    -      if (defaults2.nodes) {
    -        defaults2.nodes = json2.nodes.map((n) => fromJSON(n, inputs));
    -      }
    -      if (defaults2.source) {
    -        let { inputId, ...source } = defaults2.source;
    -        defaults2.source = source;
    -        if (inputId != null) {
    -          defaults2.source.input = inputs[inputId];
    -        }
    -      }
    -      if (defaults2.type === "root") {
    -        return new Root(defaults2);
    -      } else if (defaults2.type === "decl") {
    -        return new Declaration(defaults2);
    -      } else if (defaults2.type === "rule") {
    -        return new Rule(defaults2);
    -      } else if (defaults2.type === "comment") {
    -        return new Comment(defaults2);
    -      } else if (defaults2.type === "atrule") {
    -        return new AtRule(defaults2);
    -      } else {
    -        throw new Error("Unknown node type: " + json2.type);
    -      }
    -    }
    -    module2.exports = fromJSON;
    -    fromJSON.default = fromJSON;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.js
    -var require_postcss = __commonJS({
    -  "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.js"(exports2, module2) {
    -    "use strict";
    -    var CssSyntaxError = require_css_syntax_error();
    -    var Declaration = require_declaration();
    -    var LazyResult = require_lazy_result();
    -    var Container = require_container();
    -    var Processor2 = require_processor();
    -    var stringify2 = require_stringify2();
    -    var fromJSON = require_fromJSON();
    -    var Document = require_document();
    -    var Warning = require_warning();
    -    var Comment = require_comment();
    -    var AtRule = require_at_rule();
    -    var Result = require_result();
    -    var Input = require_input();
    -    var parse2 = require_parse();
    -    var list = require_list();
    -    var Rule = require_rule();
    -    var Root = require_root();
    -    var Node = require_node2();
    -    function postcss(...plugins2) {
    -      if (plugins2.length === 1 && Array.isArray(plugins2[0])) {
    -        plugins2 = plugins2[0];
    -      }
    -      return new Processor2(plugins2);
    -    }
    -    postcss.plugin = function plugin(name, initializer) {
    -      let warningPrinted = false;
    -      function creator(...args) {
    -        if (console && console.warn && !warningPrinted) {
    -          warningPrinted = true;
    -          console.warn(
    -            name + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"
    -          );
    -          if (process.env.LANG && process.env.LANG.startsWith("cn")) {
    -            console.warn(
    -              name + ": \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357:\nhttps://www.w3ctech.com/topic/2226"
    -            );
    -          }
    -        }
    -        let transformer = initializer(...args);
    -        transformer.postcssPlugin = name;
    -        transformer.postcssVersion = new Processor2().version;
    -        return transformer;
    -      }
    -      let cache;
    -      Object.defineProperty(creator, "postcss", {
    -        get() {
    -          if (!cache)
    -            cache = creator();
    -          return cache;
    -        }
    -      });
    -      creator.process = function(css, processOpts, pluginOpts) {
    -        return postcss([creator(pluginOpts)]).process(css, processOpts);
    -      };
    -      return creator;
    -    };
    -    postcss.stringify = stringify2;
    -    postcss.parse = parse2;
    -    postcss.fromJSON = fromJSON;
    -    postcss.list = list;
    -    postcss.comment = (defaults2) => new Comment(defaults2);
    -    postcss.atRule = (defaults2) => new AtRule(defaults2);
    -    postcss.decl = (defaults2) => new Declaration(defaults2);
    -    postcss.rule = (defaults2) => new Rule(defaults2);
    -    postcss.root = (defaults2) => new Root(defaults2);
    -    postcss.document = (defaults2) => new Document(defaults2);
    -    postcss.CssSyntaxError = CssSyntaxError;
    -    postcss.Declaration = Declaration;
    -    postcss.Container = Container;
    -    postcss.Processor = Processor2;
    -    postcss.Document = Document;
    -    postcss.Comment = Comment;
    -    postcss.Warning = Warning;
    -    postcss.AtRule = AtRule;
    -    postcss.Result = Result;
    -    postcss.Input = Input;
    -    postcss.Rule = Rule;
    -    postcss.Root = Root;
    -    postcss.Node = Node;
    -    LazyResult.registerPostcss(postcss);
    -    module2.exports = postcss;
    -    postcss.default = postcss;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js
    -var require_sanitize_html = __commonJS({
    -  "../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js"(exports2, module2) {
    -    var htmlparser = require_lib6();
    -    var escapeStringRegexp = require_escape_string_regexp();
    -    var { isPlainObject: isPlainObject3 } = require_is_plain_object();
    -    var deepmerge = require_cjs();
    -    var parseSrcset = require_parse_srcset();
    -    var { parse: postcssParse } = require_postcss();
    -    var mediaTags = [
    -      "img",
    -      "audio",
    -      "video",
    -      "picture",
    -      "svg",
    -      "object",
    -      "map",
    -      "iframe",
    -      "embed"
    -    ];
    -    var vulnerableTags = ["script", "style"];
    -    function each2(obj, cb) {
    -      if (obj) {
    -        Object.keys(obj).forEach(function(key) {
    -          cb(obj[key], key);
    -        });
    -      }
    -    }
    -    function has2(obj, key) {
    -      return {}.hasOwnProperty.call(obj, key);
    -    }
    -    function filter2(a, cb) {
    -      const n = [];
    -      each2(a, function(v) {
    -        if (cb(v)) {
    -          n.push(v);
    -        }
    -      });
    -      return n;
    -    }
    -    function isEmptyObject(obj) {
    -      for (const key in obj) {
    -        if (has2(obj, key)) {
    -          return false;
    -        }
    -      }
    -      return true;
    -    }
    -    function stringifySrcset(parsedSrcset) {
    -      return parsedSrcset.map(function(part) {
    -        if (!part.url) {
    -          throw new Error("URL missing");
    -        }
    -        return part.url + (part.w ? ` ${part.w}w` : "") + (part.h ? ` ${part.h}h` : "") + (part.d ? ` ${part.d}x` : "");
    -      }).join(", ");
    -    }
    -    module2.exports = sanitizeHtml;
    -    var VALID_HTML_ATTRIBUTE_NAME = /^[^\0\t\n\f\r /<=>]+$/;
    -    function sanitizeHtml(html, options2, _recursing) {
    -      if (html == null) {
    -        return "";
    -      }
    -      if (typeof html === "number") {
    -        html = html.toString();
    -      }
    -      let result = "";
    -      let tempResult = "";
    -      function Frame(tag, attribs) {
    -        const that = this;
    -        this.tag = tag;
    -        this.attribs = attribs || {};
    -        this.tagPosition = result.length;
    -        this.text = "";
    -        this.mediaChildren = [];
    -        this.updateParentNodeText = function() {
    -          if (stack.length) {
    -            const parentFrame = stack[stack.length - 1];
    -            parentFrame.text += that.text;
    -          }
    -        };
    -        this.updateParentNodeMediaChildren = function() {
    -          if (stack.length && mediaTags.includes(this.tag)) {
    -            const parentFrame = stack[stack.length - 1];
    -            parentFrame.mediaChildren.push(this.tag);
    -          }
    -        };
    -      }
    -      options2 = Object.assign({}, sanitizeHtml.defaults, options2);
    -      options2.parser = Object.assign({}, htmlParserDefaults, options2.parser);
    -      const tagAllowed = function(name) {
    -        return options2.allowedTags === false || (options2.allowedTags || []).indexOf(name) > -1;
    -      };
    -      vulnerableTags.forEach(function(tag) {
    -        if (tagAllowed(tag) && !options2.allowVulnerableTags) {
    -          console.warn(`
    -
    -\u26A0\uFE0F Your \`allowedTags\` option includes, \`${tag}\`, which is inherently
    -vulnerable to XSS attacks. Please remove it from \`allowedTags\`.
    -Or, to disable this warning, add the \`allowVulnerableTags\` option
    -and ensure you are accounting for this risk.
    -
    -`);
    -        }
    -      });
    -      const nonTextTagsArray = options2.nonTextTags || [
    -        "script",
    -        "style",
    -        "textarea",
    -        "option"
    -      ];
    -      let allowedAttributesMap;
    -      let allowedAttributesGlobMap;
    -      if (options2.allowedAttributes) {
    -        allowedAttributesMap = {};
    -        allowedAttributesGlobMap = {};
    -        each2(options2.allowedAttributes, function(attributes, tag) {
    -          allowedAttributesMap[tag] = [];
    -          const globRegex = [];
    -          attributes.forEach(function(obj) {
    -            if (typeof obj === "string" && obj.indexOf("*") >= 0) {
    -              globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*"));
    -            } else {
    -              allowedAttributesMap[tag].push(obj);
    -            }
    -          });
    -          if (globRegex.length) {
    -            allowedAttributesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$");
    -          }
    -        });
    -      }
    -      const allowedClassesMap = {};
    -      const allowedClassesGlobMap = {};
    -      const allowedClassesRegexMap = {};
    -      each2(options2.allowedClasses, function(classes, tag) {
    -        if (allowedAttributesMap) {
    -          if (!has2(allowedAttributesMap, tag)) {
    -            allowedAttributesMap[tag] = [];
    -          }
    -          allowedAttributesMap[tag].push("class");
    -        }
    -        allowedClassesMap[tag] = classes;
    -        if (Array.isArray(classes)) {
    -          const globRegex = [];
    -          allowedClassesMap[tag] = [];
    -          allowedClassesRegexMap[tag] = [];
    -          classes.forEach(function(obj) {
    -            if (typeof obj === "string" && obj.indexOf("*") >= 0) {
    -              globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*"));
    -            } else if (obj instanceof RegExp) {
    -              allowedClassesRegexMap[tag].push(obj);
    -            } else {
    -              allowedClassesMap[tag].push(obj);
    -            }
    -          });
    -          if (globRegex.length) {
    -            allowedClassesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$");
    -          }
    -        }
    -      });
    -      const transformTagsMap = {};
    -      let transformTagsAll;
    -      each2(options2.transformTags, function(transform, tag) {
    -        let transFun;
    -        if (typeof transform === "function") {
    -          transFun = transform;
    -        } else if (typeof transform === "string") {
    -          transFun = sanitizeHtml.simpleTransform(transform);
    -        }
    -        if (tag === "*") {
    -          transformTagsAll = transFun;
    -        } else {
    -          transformTagsMap[tag] = transFun;
    -        }
    -      });
    -      let depth;
    -      let stack;
    -      let skipMap;
    -      let transformMap;
    -      let skipText;
    -      let skipTextDepth;
    -      let addedText = false;
    -      initializeState();
    -      const parser = new htmlparser.Parser({
    -        onopentag: function(name, attribs) {
    -          if (options2.enforceHtmlBoundary && name === "html") {
    -            initializeState();
    -          }
    -          if (skipText) {
    -            skipTextDepth++;
    -            return;
    -          }
    -          const frame = new Frame(name, attribs);
    -          stack.push(frame);
    -          let skip = false;
    -          const hasText = !!frame.text;
    -          let transformedTag;
    -          if (has2(transformTagsMap, name)) {
    -            transformedTag = transformTagsMap[name](name, attribs);
    -            frame.attribs = attribs = transformedTag.attribs;
    -            if (transformedTag.text !== void 0) {
    -              frame.innerText = transformedTag.text;
    -            }
    -            if (name !== transformedTag.tagName) {
    -              frame.name = name = transformedTag.tagName;
    -              transformMap[depth] = transformedTag.tagName;
    -            }
    -          }
    -          if (transformTagsAll) {
    -            transformedTag = transformTagsAll(name, attribs);
    -            frame.attribs = attribs = transformedTag.attribs;
    -            if (name !== transformedTag.tagName) {
    -              frame.name = name = transformedTag.tagName;
    -              transformMap[depth] = transformedTag.tagName;
    -            }
    -          }
    -          if (!tagAllowed(name) || options2.disallowedTagsMode === "recursiveEscape" && !isEmptyObject(skipMap) || options2.nestingLimit != null && depth >= options2.nestingLimit) {
    -            skip = true;
    -            skipMap[depth] = true;
    -            if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") {
    -              if (nonTextTagsArray.indexOf(name) !== -1) {
    -                skipText = true;
    -                skipTextDepth = 1;
    -              }
    -            }
    -            skipMap[depth] = true;
    -          }
    -          depth++;
    -          if (skip) {
    -            if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") {
    -              return;
    -            }
    -            tempResult = result;
    -            result = "";
    -          }
    -          result += "<" + name;
    -          if (name === "script") {
    -            if (options2.allowedScriptHostnames || options2.allowedScriptDomains) {
    -              frame.innerText = "";
    -            }
    -          }
    -          if (!allowedAttributesMap || has2(allowedAttributesMap, name) || allowedAttributesMap["*"]) {
    -            each2(attribs, function(value, a) {
    -              if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {
    -                delete frame.attribs[a];
    -                return;
    -              }
    -              if (value === "" && !options2.allowedEmptyAttributes.includes(a) && (options2.nonBooleanAttributes.includes(a) || options2.nonBooleanAttributes.includes("*"))) {
    -                delete frame.attribs[a];
    -                return;
    -              }
    -              let passedAllowedAttributesMapCheck = false;
    -              if (!allowedAttributesMap || has2(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1 || allowedAttributesMap["*"] && allowedAttributesMap["*"].indexOf(a) !== -1 || has2(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a) || allowedAttributesGlobMap["*"] && allowedAttributesGlobMap["*"].test(a)) {
    -                passedAllowedAttributesMapCheck = true;
    -              } else if (allowedAttributesMap && allowedAttributesMap[name]) {
    -                for (const o of allowedAttributesMap[name]) {
    -                  if (isPlainObject3(o) && o.name && o.name === a) {
    -                    passedAllowedAttributesMapCheck = true;
    -                    let newValue = "";
    -                    if (o.multiple === true) {
    -                      const splitStrArray = value.split(" ");
    -                      for (const s of splitStrArray) {
    -                        if (o.values.indexOf(s) !== -1) {
    -                          if (newValue === "") {
    -                            newValue = s;
    -                          } else {
    -                            newValue += " " + s;
    -                          }
    -                        }
    -                      }
    -                    } else if (o.values.indexOf(value) >= 0) {
    -                      newValue = value;
    -                    }
    -                    value = newValue;
    -                  }
    -                }
    -              }
    -              if (passedAllowedAttributesMapCheck) {
    -                if (options2.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {
    -                  if (naughtyHref(name, value)) {
    -                    delete frame.attribs[a];
    -                    return;
    -                  }
    -                }
    -                if (name === "script" && a === "src") {
    -                  let allowed = true;
    -                  try {
    -                    const parsed = parseUrl(value);
    -                    if (options2.allowedScriptHostnames || options2.allowedScriptDomains) {
    -                      const allowedHostname = (options2.allowedScriptHostnames || []).find(function(hostname) {
    -                        return hostname === parsed.url.hostname;
    -                      });
    -                      const allowedDomain = (options2.allowedScriptDomains || []).find(function(domain) {
    -                        return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
    -                      });
    -                      allowed = allowedHostname || allowedDomain;
    -                    }
    -                  } catch (e) {
    -                    allowed = false;
    -                  }
    -                  if (!allowed) {
    -                    delete frame.attribs[a];
    -                    return;
    -                  }
    -                }
    -                if (name === "iframe" && a === "src") {
    -                  let allowed = true;
    -                  try {
    -                    const parsed = parseUrl(value);
    -                    if (parsed.isRelativeUrl) {
    -                      allowed = has2(options2, "allowIframeRelativeUrls") ? options2.allowIframeRelativeUrls : !options2.allowedIframeHostnames && !options2.allowedIframeDomains;
    -                    } else if (options2.allowedIframeHostnames || options2.allowedIframeDomains) {
    -                      const allowedHostname = (options2.allowedIframeHostnames || []).find(function(hostname) {
    -                        return hostname === parsed.url.hostname;
    -                      });
    -                      const allowedDomain = (options2.allowedIframeDomains || []).find(function(domain) {
    -                        return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
    -                      });
    -                      allowed = allowedHostname || allowedDomain;
    -                    }
    -                  } catch (e) {
    -                    allowed = false;
    -                  }
    -                  if (!allowed) {
    -                    delete frame.attribs[a];
    -                    return;
    -                  }
    -                }
    -                if (a === "srcset") {
    -                  try {
    -                    let parsed = parseSrcset(value);
    -                    parsed.forEach(function(value2) {
    -                      if (naughtyHref("srcset", value2.url)) {
    -                        value2.evil = true;
    -                      }
    -                    });
    -                    parsed = filter2(parsed, function(v) {
    -                      return !v.evil;
    -                    });
    -                    if (!parsed.length) {
    -                      delete frame.attribs[a];
    -                      return;
    -                    } else {
    -                      value = stringifySrcset(filter2(parsed, function(v) {
    -                        return !v.evil;
    -                      }));
    -                      frame.attribs[a] = value;
    -                    }
    -                  } catch (e) {
    -                    delete frame.attribs[a];
    -                    return;
    -                  }
    -                }
    -                if (a === "class") {
    -                  const allowedSpecificClasses = allowedClassesMap[name];
    -                  const allowedWildcardClasses = allowedClassesMap["*"];
    -                  const allowedSpecificClassesGlob = allowedClassesGlobMap[name];
    -                  const allowedSpecificClassesRegex = allowedClassesRegexMap[name];
    -                  const allowedWildcardClassesGlob = allowedClassesGlobMap["*"];
    -                  const allowedClassesGlobs = [
    -                    allowedSpecificClassesGlob,
    -                    allowedWildcardClassesGlob
    -                  ].concat(allowedSpecificClassesRegex).filter(function(t) {
    -                    return t;
    -                  });
    -                  if (allowedSpecificClasses && allowedWildcardClasses) {
    -                    value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);
    -                  } else {
    -                    value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);
    -                  }
    -                  if (!value.length) {
    -                    delete frame.attribs[a];
    -                    return;
    -                  }
    -                }
    -                if (a === "style") {
    -                  if (options2.parseStyleAttributes) {
    -                    try {
    -                      const abstractSyntaxTree = postcssParse(name + " {" + value + "}", { map: false });
    -                      const filteredAST = filterCss(abstractSyntaxTree, options2.allowedStyles);
    -                      value = stringifyStyleAttributes(filteredAST);
    -                      if (value.length === 0) {
    -                        delete frame.attribs[a];
    -                        return;
    -                      }
    -                    } catch (e) {
    -                      if (typeof window !== "undefined") {
    -                        console.warn('Failed to parse "' + name + " {" + value + `}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`);
    -                      }
    -                      delete frame.attribs[a];
    -                      return;
    -                    }
    -                  } else if (options2.allowedStyles) {
    -                    throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");
    -                  }
    -                }
    -                result += " " + a;
    -                if (value && value.length) {
    -                  result += '="' + escapeHtml(value, true) + '"';
    -                } else if (options2.allowedEmptyAttributes.includes(a)) {
    -                  result += '=""';
    -                }
    -              } else {
    -                delete frame.attribs[a];
    -              }
    -            });
    -          }
    -          if (options2.selfClosing.indexOf(name) !== -1) {
    -            result += " />";
    -          } else {
    -            result += ">";
    -            if (frame.innerText && !hasText && !options2.textFilter) {
    -              result += escapeHtml(frame.innerText);
    -              addedText = true;
    -            }
    -          }
    -          if (skip) {
    -            result = tempResult + escapeHtml(result);
    -            tempResult = "";
    -          }
    -        },
    -        ontext: function(text) {
    -          if (skipText) {
    -            return;
    -          }
    -          const lastFrame = stack[stack.length - 1];
    -          let tag;
    -          if (lastFrame) {
    -            tag = lastFrame.tag;
    -            text = lastFrame.innerText !== void 0 ? lastFrame.innerText : text;
    -          }
    -          if (options2.disallowedTagsMode === "completelyDiscard" && !tagAllowed(tag)) {
    -            text = "";
    -          } else if ((options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") && (tag === "script" || tag === "style")) {
    -            result += text;
    -          } else {
    -            const escaped = escapeHtml(text, false);
    -            if (options2.textFilter && !addedText) {
    -              result += options2.textFilter(escaped, tag);
    -            } else if (!addedText) {
    -              result += escaped;
    -            }
    -          }
    -          if (stack.length) {
    -            const frame = stack[stack.length - 1];
    -            frame.text += text;
    -          }
    -        },
    -        onclosetag: function(name, isImplied) {
    -          if (skipText) {
    -            skipTextDepth--;
    -            if (!skipTextDepth) {
    -              skipText = false;
    -            } else {
    -              return;
    -            }
    -          }
    -          const frame = stack.pop();
    -          if (!frame) {
    -            return;
    -          }
    -          if (frame.tag !== name) {
    -            stack.push(frame);
    -            return;
    -          }
    -          skipText = options2.enforceHtmlBoundary ? name === "html" : false;
    -          depth--;
    -          const skip = skipMap[depth];
    -          if (skip) {
    -            delete skipMap[depth];
    -            if (options2.disallowedTagsMode === "discard" || options2.disallowedTagsMode === "completelyDiscard") {
    -              frame.updateParentNodeText();
    -              return;
    -            }
    -            tempResult = result;
    -            result = "";
    -          }
    -          if (transformMap[depth]) {
    -            name = transformMap[depth];
    -            delete transformMap[depth];
    -          }
    -          if (options2.exclusiveFilter && options2.exclusiveFilter(frame)) {
    -            result = result.substr(0, frame.tagPosition);
    -            return;
    -          }
    -          frame.updateParentNodeMediaChildren();
    -          frame.updateParentNodeText();
    -          if (
    -            // Already output />
    -            options2.selfClosing.indexOf(name) !== -1 || // Escaped tag, closing tag is implied
    -            isImplied && !tagAllowed(name) && ["escape", "recursiveEscape"].indexOf(options2.disallowedTagsMode) >= 0
    -          ) {
    -            if (skip) {
    -              result = tempResult;
    -              tempResult = "";
    -            }
    -            return;
    -          }
    -          result += "";
    -          if (skip) {
    -            result = tempResult + escapeHtml(result);
    -            tempResult = "";
    -          }
    -          addedText = false;
    -        }
    -      }, options2.parser);
    -      parser.write(html);
    -      parser.end();
    -      return result;
    -      function initializeState() {
    -        result = "";
    -        depth = 0;
    -        stack = [];
    -        skipMap = {};
    -        transformMap = {};
    -        skipText = false;
    -        skipTextDepth = 0;
    -      }
    -      function escapeHtml(s, quote) {
    -        if (typeof s !== "string") {
    -          s = s + "";
    -        }
    -        if (options2.parser.decodeEntities) {
    -          s = s.replace(/&/g, "&").replace(//g, ">");
    -          if (quote) {
    -            s = s.replace(/"/g, """);
    -          }
    -        }
    -        s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, "&").replace(//g, ">");
    -        if (quote) {
    -          s = s.replace(/"/g, """);
    -        }
    -        return s;
    -      }
    -      function naughtyHref(name, href) {
    -        href = href.replace(/[\x00-\x20]+/g, "");
    -        while (true) {
    -          const firstIndex = href.indexOf("", firstIndex + 4);
    -          if (lastIndex === -1) {
    -            break;
    -          }
    -          href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);
    -        }
    -        const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);
    -        if (!matches) {
    -          if (href.match(/^[/\\]{2}/)) {
    -            return !options2.allowProtocolRelative;
    -          }
    -          return false;
    -        }
    -        const scheme = matches[1].toLowerCase();
    -        if (has2(options2.allowedSchemesByTag, name)) {
    -          return options2.allowedSchemesByTag[name].indexOf(scheme) === -1;
    -        }
    -        return !options2.allowedSchemes || options2.allowedSchemes.indexOf(scheme) === -1;
    -      }
    -      function parseUrl(value) {
    -        value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, "$1//");
    -        if (value.startsWith("relative:")) {
    -          throw new Error("relative: exploit attempt");
    -        }
    -        let base = "relative://relative-site";
    -        for (let i = 0; i < 100; i++) {
    -          base += `/${i}`;
    -        }
    -        const parsed = new URL(value, base);
    -        const isRelativeUrl = parsed && parsed.hostname === "relative-site" && parsed.protocol === "relative:";
    -        return {
    -          isRelativeUrl,
    -          url: parsed
    -        };
    -      }
    -      function filterCss(abstractSyntaxTree, allowedStyles) {
    -        if (!allowedStyles) {
    -          return abstractSyntaxTree;
    -        }
    -        const astRules = abstractSyntaxTree.nodes[0];
    -        let selectedRule;
    -        if (allowedStyles[astRules.selector] && allowedStyles["*"]) {
    -          selectedRule = deepmerge(
    -            allowedStyles[astRules.selector],
    -            allowedStyles["*"]
    -          );
    -        } else {
    -          selectedRule = allowedStyles[astRules.selector] || allowedStyles["*"];
    -        }
    -        if (selectedRule) {
    -          abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);
    -        }
    -        return abstractSyntaxTree;
    -      }
    -      function stringifyStyleAttributes(filteredAST) {
    -        return filteredAST.nodes[0].nodes.reduce(function(extractedAttributes, attrObject) {
    -          extractedAttributes.push(
    -            `${attrObject.prop}:${attrObject.value}${attrObject.important ? " !important" : ""}`
    -          );
    -          return extractedAttributes;
    -        }, []).join(";");
    -      }
    -      function filterDeclarations(selectedRule) {
    -        return function(allowedDeclarationsList, attributeObject) {
    -          if (has2(selectedRule, attributeObject.prop)) {
    -            const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {
    -              return regularExpression.test(attributeObject.value);
    -            });
    -            if (matchesRegex) {
    -              allowedDeclarationsList.push(attributeObject);
    -            }
    -          }
    -          return allowedDeclarationsList;
    -        };
    -      }
    -      function filterClasses(classes, allowed, allowedGlobs) {
    -        if (!allowed) {
    -          return classes;
    -        }
    -        classes = classes.split(/\s+/);
    -        return classes.filter(function(clss) {
    -          return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob2) {
    -            return glob2.test(clss);
    -          });
    -        }).join(" ");
    -      }
    -    }
    -    var htmlParserDefaults = {
    -      decodeEntities: true
    -    };
    -    sanitizeHtml.defaults = {
    -      allowedTags: [
    -        // Sections derived from MDN element categories and limited to the more
    -        // benign categories.
    -        // https://developer.mozilla.org/en-US/docs/Web/HTML/Element
    -        // Content sectioning
    -        "address",
    -        "article",
    -        "aside",
    -        "footer",
    -        "header",
    -        "h1",
    -        "h2",
    -        "h3",
    -        "h4",
    -        "h5",
    -        "h6",
    -        "hgroup",
    -        "main",
    -        "nav",
    -        "section",
    -        // Text content
    -        "blockquote",
    -        "dd",
    -        "div",
    -        "dl",
    -        "dt",
    -        "figcaption",
    -        "figure",
    -        "hr",
    -        "li",
    -        "main",
    -        "ol",
    -        "p",
    -        "pre",
    -        "ul",
    -        // Inline text semantics
    -        "a",
    -        "abbr",
    -        "b",
    -        "bdi",
    -        "bdo",
    -        "br",
    -        "cite",
    -        "code",
    -        "data",
    -        "dfn",
    -        "em",
    -        "i",
    -        "kbd",
    -        "mark",
    -        "q",
    -        "rb",
    -        "rp",
    -        "rt",
    -        "rtc",
    -        "ruby",
    -        "s",
    -        "samp",
    -        "small",
    -        "span",
    -        "strong",
    -        "sub",
    -        "sup",
    -        "time",
    -        "u",
    -        "var",
    -        "wbr",
    -        // Table content
    -        "caption",
    -        "col",
    -        "colgroup",
    -        "table",
    -        "tbody",
    -        "td",
    -        "tfoot",
    -        "th",
    -        "thead",
    -        "tr"
    -      ],
    -      // Tags that cannot be boolean
    -      nonBooleanAttributes: [
    -        "abbr",
    -        "accept",
    -        "accept-charset",
    -        "accesskey",
    -        "action",
    -        "allow",
    -        "alt",
    -        "as",
    -        "autocapitalize",
    -        "autocomplete",
    -        "blocking",
    -        "charset",
    -        "cite",
    -        "class",
    -        "color",
    -        "cols",
    -        "colspan",
    -        "content",
    -        "contenteditable",
    -        "coords",
    -        "crossorigin",
    -        "data",
    -        "datetime",
    -        "decoding",
    -        "dir",
    -        "dirname",
    -        "download",
    -        "draggable",
    -        "enctype",
    -        "enterkeyhint",
    -        "fetchpriority",
    -        "for",
    -        "form",
    -        "formaction",
    -        "formenctype",
    -        "formmethod",
    -        "formtarget",
    -        "headers",
    -        "height",
    -        "hidden",
    -        "high",
    -        "href",
    -        "hreflang",
    -        "http-equiv",
    -        "id",
    -        "imagesizes",
    -        "imagesrcset",
    -        "inputmode",
    -        "integrity",
    -        "is",
    -        "itemid",
    -        "itemprop",
    -        "itemref",
    -        "itemtype",
    -        "kind",
    -        "label",
    -        "lang",
    -        "list",
    -        "loading",
    -        "low",
    -        "max",
    -        "maxlength",
    -        "media",
    -        "method",
    -        "min",
    -        "minlength",
    -        "name",
    -        "nonce",
    -        "optimum",
    -        "pattern",
    -        "ping",
    -        "placeholder",
    -        "popover",
    -        "popovertarget",
    -        "popovertargetaction",
    -        "poster",
    -        "preload",
    -        "referrerpolicy",
    -        "rel",
    -        "rows",
    -        "rowspan",
    -        "sandbox",
    -        "scope",
    -        "shape",
    -        "size",
    -        "sizes",
    -        "slot",
    -        "span",
    -        "spellcheck",
    -        "src",
    -        "srcdoc",
    -        "srclang",
    -        "srcset",
    -        "start",
    -        "step",
    -        "style",
    -        "tabindex",
    -        "target",
    -        "title",
    -        "translate",
    -        "type",
    -        "usemap",
    -        "value",
    -        "width",
    -        "wrap",
    -        // Event handlers
    -        "onauxclick",
    -        "onafterprint",
    -        "onbeforematch",
    -        "onbeforeprint",
    -        "onbeforeunload",
    -        "onbeforetoggle",
    -        "onblur",
    -        "oncancel",
    -        "oncanplay",
    -        "oncanplaythrough",
    -        "onchange",
    -        "onclick",
    -        "onclose",
    -        "oncontextlost",
    -        "oncontextmenu",
    -        "oncontextrestored",
    -        "oncopy",
    -        "oncuechange",
    -        "oncut",
    -        "ondblclick",
    -        "ondrag",
    -        "ondragend",
    -        "ondragenter",
    -        "ondragleave",
    -        "ondragover",
    -        "ondragstart",
    -        "ondrop",
    -        "ondurationchange",
    -        "onemptied",
    -        "onended",
    -        "onerror",
    -        "onfocus",
    -        "onformdata",
    -        "onhashchange",
    -        "oninput",
    -        "oninvalid",
    -        "onkeydown",
    -        "onkeypress",
    -        "onkeyup",
    -        "onlanguagechange",
    -        "onload",
    -        "onloadeddata",
    -        "onloadedmetadata",
    -        "onloadstart",
    -        "onmessage",
    -        "onmessageerror",
    -        "onmousedown",
    -        "onmouseenter",
    -        "onmouseleave",
    -        "onmousemove",
    -        "onmouseout",
    -        "onmouseover",
    -        "onmouseup",
    -        "onoffline",
    -        "ononline",
    -        "onpagehide",
    -        "onpageshow",
    -        "onpaste",
    -        "onpause",
    -        "onplay",
    -        "onplaying",
    -        "onpopstate",
    -        "onprogress",
    -        "onratechange",
    -        "onreset",
    -        "onresize",
    -        "onrejectionhandled",
    -        "onscroll",
    -        "onscrollend",
    -        "onsecuritypolicyviolation",
    -        "onseeked",
    -        "onseeking",
    -        "onselect",
    -        "onslotchange",
    -        "onstalled",
    -        "onstorage",
    -        "onsubmit",
    -        "onsuspend",
    -        "ontimeupdate",
    -        "ontoggle",
    -        "onunhandledrejection",
    -        "onunload",
    -        "onvolumechange",
    -        "onwaiting",
    -        "onwheel"
    -      ],
    -      disallowedTagsMode: "discard",
    -      allowedAttributes: {
    -        a: ["href", "name", "target"],
    -        // We don't currently allow img itself by default, but
    -        // these attributes would make sense if we did.
    -        img: ["src", "srcset", "alt", "title", "width", "height", "loading"]
    -      },
    -      allowedEmptyAttributes: [
    -        "alt"
    -      ],
    -      // Lots of these won't come up by default because we don't allow them
    -      selfClosing: ["img", "br", "hr", "area", "base", "basefont", "input", "link", "meta"],
    -      // URL schemes we permit
    -      allowedSchemes: ["http", "https", "ftp", "mailto", "tel"],
    -      allowedSchemesByTag: {},
    -      allowedSchemesAppliedToAttributes: ["href", "src", "cite"],
    -      allowProtocolRelative: true,
    -      enforceHtmlBoundary: false,
    -      parseStyleAttributes: true
    -    };
    -    sanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge4) {
    -      merge4 = merge4 === void 0 ? true : merge4;
    -      newAttribs = newAttribs || {};
    -      return function(tagName, attribs) {
    -        let attrib;
    -        if (merge4) {
    -          for (attrib in newAttribs) {
    -            attribs[attrib] = newAttribs[attrib];
    -          }
    -        } else {
    -          attribs = newAttribs;
    -        }
    -        return {
    -          tagName: newTagName,
    -          attribs
    -        };
    -      };
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/stringHelper.js
    -var require_stringHelper = __commonJS({
    -  "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/stringHelper.js"(exports2) {
    -    exports2.endsWithChar = function ends_with_char(word, c) {
    -      if (c.length > 1) {
    -        return c.indexOf(word.slice(-1)) > -1;
    -      }
    -      return word.slice(-1) === c;
    -    };
    -    exports2.endsWith = function ends_with(word, end) {
    -      return word.slice(word.length - end.length) === end;
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/Match.js
    -var require_Match = __commonJS({
    -  "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/Match.js"(exports2) {
    -    var abbreviations;
    -    var englishAbbreviations = [
    -      "al",
    -      "adj",
    -      "assn",
    -      "Ave",
    -      "BSc",
    -      "MSc",
    -      "Cell",
    -      "Ch",
    -      "Co",
    -      "cc",
    -      "Corp",
    -      "Dem",
    -      "Dept",
    -      "ed",
    -      "eg",
    -      "Eq",
    -      "Eqs",
    -      "est",
    -      "est",
    -      "etc",
    -      "Ex",
    -      "ext",
    -      // + number?
    -      "Fig",
    -      "fig",
    -      "Figs",
    -      "figs",
    -      "i.e",
    -      "ie",
    -      "Inc",
    -      "inc",
    -      "Jan",
    -      "Feb",
    -      "Mar",
    -      "Apr",
    -      "Jun",
    -      "Jul",
    -      "Aug",
    -      "Sep",
    -      "Sept",
    -      "Oct",
    -      "Nov",
    -      "Dec",
    -      "jr",
    -      "mi",
    -      "Miss",
    -      "Mrs",
    -      "Mr",
    -      "Ms",
    -      "Mol",
    -      "mt",
    -      "mts",
    -      "no",
    -      "Nos",
    -      "PhD",
    -      "MD",
    -      "BA",
    -      "MA",
    -      "MM",
    -      "pl",
    -      "pop",
    -      "pp",
    -      "Prof",
    -      "Dr",
    -      "pt",
    -      "Ref",
    -      "Refs",
    -      "Rep",
    -      "repr",
    -      "rev",
    -      "Sec",
    -      "Secs",
    -      "Sgt",
    -      "Col",
    -      "Gen",
    -      "Rep",
    -      "Sen",
    -      "Gov",
    -      "Lt",
    -      "Maj",
    -      "Capt",
    -      "St",
    -      "Sr",
    -      "sr",
    -      "Jr",
    -      "jr",
    -      "Rev",
    -      "Sun",
    -      "Mon",
    -      "Tu",
    -      "Tue",
    -      "Tues",
    -      "Wed",
    -      "Th",
    -      "Thu",
    -      "Thur",
    -      "Thurs",
    -      "Fri",
    -      "Sat",
    -      "trans",
    -      "Univ",
    -      "Viz",
    -      "Vol",
    -      "vs",
    -      "v"
    -    ];
    -    exports2.setAbbreviations = function(abbr) {
    -      if (abbr) {
    -        abbreviations = abbr;
    -      } else {
    -        abbreviations = englishAbbreviations;
    -      }
    -    };
    -    var isCapitalized = exports2.isCapitalized = function(str2) {
    -      return /^[A-Z][a-z].*/.test(str2) || isNumber(str2);
    -    };
    -    exports2.isSentenceStarter = function(str2) {
    -      return isCapitalized(str2) || /``|"|'/.test(str2.substring(0, 2));
    -    };
    -    exports2.isCommonAbbreviation = function(str2) {
    -      var noSymbols = str2.replace(/[-'`~!@#$%^&*()_|+=?;:'",.<>\{\}\[\]\\\/]/gi, "");
    -      return ~abbreviations.indexOf(noSymbols);
    -    };
    -    exports2.isTimeAbbreviation = function(word, next) {
    -      if (word === "a.m." || word === "p.m.") {
    -        var tmp = next.replace(/\W+/g, "").slice(-3).toLowerCase();
    -        if (tmp === "day") {
    -          return true;
    -        }
    -      }
    -      return false;
    -    };
    -    exports2.isDottedAbbreviation = function(word) {
    -      var matches = word.replace(/[\(\)\[\]\{\}]/g, "").match(/(.\.)*/);
    -      return matches && matches[0].length > 0;
    -    };
    -    exports2.isCustomAbbreviation = function(str2) {
    -      if (str2.length <= 3) {
    -        return true;
    -      }
    -      return isCapitalized(str2);
    -    };
    -    exports2.isNameAbbreviation = function(wordCount, words) {
    -      if (words.length > 0) {
    -        if (wordCount < 5 && words[0].length < 6 && isCapitalized(words[0])) {
    -          return true;
    -        }
    -        var capitalized = words.filter(function(str2) {
    -          return /[A-Z]/.test(str2.charAt(0));
    -        });
    -        return capitalized.length >= 3;
    -      }
    -      return false;
    -    };
    -    var isNumber = exports2.isNumber = function(str2, dotPos) {
    -      if (dotPos) {
    -        str2 = str2.slice(dotPos - 1, dotPos + 2);
    -      }
    -      return !isNaN(str2);
    -    };
    -    exports2.isPhoneNr = function(str2) {
    -      return str2.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/);
    -    };
    -    exports2.isURL = function(str2) {
    -      return str2.match(/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/);
    -    };
    -    exports2.isConcatenated = function(word) {
    -      var i = 0;
    -      if ((i = word.indexOf(".")) > -1 || (i = word.indexOf("!")) > -1 || (i = word.indexOf("?")) > -1) {
    -        var c = word.charAt(i + 1);
    -        if (c.match(/[a-zA-Z].*/)) {
    -          return [word.slice(0, i), word.slice(i + 1)];
    -        }
    -      }
    -      return false;
    -    };
    -    exports2.isBoundaryChar = function(word) {
    -      return word === "." || word === "!" || word === "?";
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/tokenizer.js
    -var require_tokenizer = __commonJS({
    -  "../../node_modules/.pnpm/sbd@1.0.19/node_modules/sbd/lib/tokenizer.js"(exports2) {
    -    var sanitizeHtml = require_sanitize_html();
    -    var stringHelper = require_stringHelper();
    -    var Match = require_Match();
    -    var newline_placeholder = " @~@ ";
    -    var newline_placeholder_t = newline_placeholder.trim();
    -    var whiteSpaceCheck = new RegExp("\\S", "");
    -    var addNewLineBoundaries = new RegExp("\\n+|[-#=_+*]{4,}", "g");
    -    var splitIntoWords = new RegExp("\\S+|\\n", "g");
    -    exports2.sentences = function(text, user_options) {
    -      if (!text || typeof text !== "string" || !text.length) {
    -        return [];
    -      }
    -      if (!whiteSpaceCheck.test(text)) {
    -        return [];
    -      }
    -      var options2 = {
    -        "newline_boundaries": false,
    -        "html_boundaries": false,
    -        "html_boundaries_tags": ["p", "div", "ul", "ol"],
    -        "sanitize": false,
    -        "allowed_tags": false,
    -        "preserve_whitespace": false,
    -        "abbreviations": null
    -      };
    -      if (typeof user_options === "boolean") {
    -        options2.newline_boundaries = true;
    -      } else {
    -        for (var k in user_options) {
    -          options2[k] = user_options[k];
    -        }
    -      }
    -      Match.setAbbreviations(options2.abbreviations);
    -      if (options2.newline_boundaries) {
    -        text = text.replace(addNewLineBoundaries, newline_placeholder);
    -      }
    -      if (options2.html_boundaries) {
    -        var html_boundaries_regexp = "(|<\\/(" + options2.html_boundaries_tags.join("|") + ")>)";
    -        var re = new RegExp(html_boundaries_regexp, "g");
    -        text = text.replace(re, "$1" + newline_placeholder);
    -      }
    -      if (options2.sanitize || options2.allowed_tags) {
    -        if (!options2.allowed_tags) {
    -          options2.allowed_tags = [""];
    -        }
    -        text = sanitizeHtml(text, { "allowedTags": options2.allowed_tags });
    -      }
    -      var words;
    -      var tokens;
    -      if (options2.preserve_whitespace) {
    -        tokens = text.split(/(|\S+|\n+)/);
    -        words = tokens.filter(function(token, ii) {
    -          return ii % 2;
    -        });
    -      } else {
    -        words = text.trim().match(splitIntoWords);
    -      }
    -      var wordCount = 0;
    -      var index = 0;
    -      var temp = [];
    -      var sentences2 = [];
    -      var current2 = [];
    -      if (!words || !words.length) {
    -        return [];
    -      }
    -      for (var i = 0, L = words.length; i < L; i++) {
    -        wordCount++;
    -        current2.push(words[i]);
    -        if (~words[i].indexOf(",")) {
    -          wordCount = 0;
    -        }
    -        if (Match.isBoundaryChar(words[i]) || stringHelper.endsWithChar(words[i], "?!") || words[i] === newline_placeholder_t) {
    -          if ((options2.newline_boundaries || options2.html_boundaries) && words[i] === newline_placeholder_t) {
    -            current2.pop();
    -          }
    -          sentences2.push(current2);
    -          wordCount = 0;
    -          current2 = [];
    -          continue;
    -        }
    -        if (stringHelper.endsWithChar(words[i], '"') || stringHelper.endsWithChar(words[i], "\u201D")) {
    -          words[i] = words[i].slice(0, -1);
    -        }
    -        if (stringHelper.endsWithChar(words[i], ".")) {
    -          if (i + 1 < L) {
    -            if (words[i].length === 2 && isNaN(words[i].charAt(0))) {
    -              continue;
    -            }
    -            if (Match.isCommonAbbreviation(words[i])) {
    -              continue;
    -            }
    -            if (Match.isSentenceStarter(words[i + 1])) {
    -              if (Match.isTimeAbbreviation(words[i], words[i + 1])) {
    -                continue;
    -              }
    -              if (Match.isNameAbbreviation(wordCount, words.slice(i, 6))) {
    -                continue;
    -              }
    -              if (Match.isNumber(words[i + 1])) {
    -                if (Match.isCustomAbbreviation(words[i])) {
    -                  continue;
    -                }
    -              }
    -            } else {
    -              if (stringHelper.endsWith(words[i], "..")) {
    -                continue;
    -              }
    -              if (Match.isDottedAbbreviation(words[i])) {
    -                continue;
    -              }
    -              if (Match.isNameAbbreviation(wordCount, words.slice(i, 5))) {
    -                continue;
    -              }
    -            }
    -          }
    -          sentences2.push(current2);
    -          current2 = [];
    -          wordCount = 0;
    -          continue;
    -        }
    -        if ((index = words[i].indexOf(".")) > -1) {
    -          if (Match.isNumber(words[i], index)) {
    -            continue;
    -          }
    -          if (Match.isDottedAbbreviation(words[i])) {
    -            continue;
    -          }
    -          if (Match.isURL(words[i]) || Match.isPhoneNr(words[i])) {
    -            continue;
    -          }
    -        }
    -        if (temp = Match.isConcatenated(words[i])) {
    -          current2.pop();
    -          current2.push(temp[0]);
    -          sentences2.push(current2);
    -          current2 = [];
    -          wordCount = 0;
    -          current2.push(temp[1]);
    -        }
    -      }
    -      if (current2.length) {
    -        sentences2.push(current2);
    -      }
    -      sentences2 = sentences2.filter(function(s) {
    -        return s.length > 0;
    -      });
    -      var result = sentences2.slice(1).reduce(function(out, sentence) {
    -        var lastSentence = out[out.length - 1];
    -        if (lastSentence.length === 1 && /^.{1,2}[.]$/.test(lastSentence[0])) {
    -          if (!/[.]/.test(sentence[0])) {
    -            out.pop();
    -            out.push(lastSentence.concat(sentence));
    -            return out;
    -          }
    -        }
    -        out.push(sentence);
    -        return out;
    -      }, [sentences2[0]]);
    -      return result.map(function(sentence, ii) {
    -        if (options2.preserve_whitespace && !options2.newline_boundaries && !options2.html_boundaries) {
    -          var tokenCount = sentence.length * 2;
    -          if (ii === 0) {
    -            tokenCount += 1;
    -          }
    -          return tokens.splice(0, tokenCount).join("");
    -        }
    -        return sentence.join(" ");
    -      });
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/rng.js
    -var require_rng = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/rng.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = rng;
    -    var _crypto = _interopRequireDefault(require("crypto"));
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var rnds8Pool = new Uint8Array(256);
    -    var poolPtr = rnds8Pool.length;
    -    function rng() {
    -      if (poolPtr > rnds8Pool.length - 16) {
    -        _crypto.default.randomFillSync(rnds8Pool);
    -        poolPtr = 0;
    -      }
    -      return rnds8Pool.slice(poolPtr, poolPtr += 16);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/regex.js
    -var require_regex = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/regex.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _default2 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/validate.js
    -var require_validate = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/validate.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _regex = _interopRequireDefault(require_regex());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function validate2(uuid2) {
    -      return typeof uuid2 === "string" && _regex.default.test(uuid2);
    -    }
    -    var _default2 = validate2;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/stringify.js
    -var require_stringify3 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/stringify.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    exports2.unsafeStringify = unsafeStringify;
    -    var _validate = _interopRequireDefault(require_validate());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var byteToHex = [];
    -    for (let i = 0; i < 256; ++i) {
    -      byteToHex.push((i + 256).toString(16).slice(1));
    -    }
    -    function unsafeStringify(arr, offset = 0) {
    -      return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
    -    }
    -    function stringify2(arr, offset = 0) {
    -      const uuid2 = unsafeStringify(arr, offset);
    -      if (!(0, _validate.default)(uuid2)) {
    -        throw TypeError("Stringified UUID is invalid");
    -      }
    -      return uuid2;
    -    }
    -    var _default2 = stringify2;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v1.js
    -var require_v1 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v1.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _rng = _interopRequireDefault(require_rng());
    -    var _stringify = require_stringify3();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var _nodeId;
    -    var _clockseq;
    -    var _lastMSecs = 0;
    -    var _lastNSecs = 0;
    -    function v12(options2, buf, offset) {
    -      let i = buf && offset || 0;
    -      const b = buf || new Array(16);
    -      options2 = options2 || {};
    -      let node = options2.node || _nodeId;
    -      let clockseq = options2.clockseq !== void 0 ? options2.clockseq : _clockseq;
    -      if (node == null || clockseq == null) {
    -        const seedBytes = options2.random || (options2.rng || _rng.default)();
    -        if (node == null) {
    -          node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
    -        }
    -        if (clockseq == null) {
    -          clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
    -        }
    -      }
    -      let msecs = options2.msecs !== void 0 ? options2.msecs : Date.now();
    -      let nsecs = options2.nsecs !== void 0 ? options2.nsecs : _lastNSecs + 1;
    -      const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
    -      if (dt < 0 && options2.clockseq === void 0) {
    -        clockseq = clockseq + 1 & 16383;
    -      }
    -      if ((dt < 0 || msecs > _lastMSecs) && options2.nsecs === void 0) {
    -        nsecs = 0;
    -      }
    -      if (nsecs >= 1e4) {
    -        throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
    -      }
    -      _lastMSecs = msecs;
    -      _lastNSecs = nsecs;
    -      _clockseq = clockseq;
    -      msecs += 122192928e5;
    -      const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
    -      b[i++] = tl >>> 24 & 255;
    -      b[i++] = tl >>> 16 & 255;
    -      b[i++] = tl >>> 8 & 255;
    -      b[i++] = tl & 255;
    -      const tmh = msecs / 4294967296 * 1e4 & 268435455;
    -      b[i++] = tmh >>> 8 & 255;
    -      b[i++] = tmh & 255;
    -      b[i++] = tmh >>> 24 & 15 | 16;
    -      b[i++] = tmh >>> 16 & 255;
    -      b[i++] = clockseq >>> 8 | 128;
    -      b[i++] = clockseq & 255;
    -      for (let n = 0; n < 6; ++n) {
    -        b[i + n] = node[n];
    -      }
    -      return buf || (0, _stringify.unsafeStringify)(b);
    -    }
    -    var _default2 = v12;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/parse.js
    -var require_parse2 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/parse.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _validate = _interopRequireDefault(require_validate());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function parse2(uuid2) {
    -      if (!(0, _validate.default)(uuid2)) {
    -        throw TypeError("Invalid UUID");
    -      }
    -      let v;
    -      const arr = new Uint8Array(16);
    -      arr[0] = (v = parseInt(uuid2.slice(0, 8), 16)) >>> 24;
    -      arr[1] = v >>> 16 & 255;
    -      arr[2] = v >>> 8 & 255;
    -      arr[3] = v & 255;
    -      arr[4] = (v = parseInt(uuid2.slice(9, 13), 16)) >>> 8;
    -      arr[5] = v & 255;
    -      arr[6] = (v = parseInt(uuid2.slice(14, 18), 16)) >>> 8;
    -      arr[7] = v & 255;
    -      arr[8] = (v = parseInt(uuid2.slice(19, 23), 16)) >>> 8;
    -      arr[9] = v & 255;
    -      arr[10] = (v = parseInt(uuid2.slice(24, 36), 16)) / 1099511627776 & 255;
    -      arr[11] = v / 4294967296 & 255;
    -      arr[12] = v >>> 24 & 255;
    -      arr[13] = v >>> 16 & 255;
    -      arr[14] = v >>> 8 & 255;
    -      arr[15] = v & 255;
    -      return arr;
    -    }
    -    var _default2 = parse2;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v35.js
    -var require_v35 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v35.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.URL = exports2.DNS = void 0;
    -    exports2.default = v35;
    -    var _stringify = require_stringify3();
    -    var _parse = _interopRequireDefault(require_parse2());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function stringToBytes(str2) {
    -      str2 = unescape(encodeURIComponent(str2));
    -      const bytes = [];
    -      for (let i = 0; i < str2.length; ++i) {
    -        bytes.push(str2.charCodeAt(i));
    -      }
    -      return bytes;
    -    }
    -    var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
    -    exports2.DNS = DNS;
    -    var URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
    -    exports2.URL = URL2;
    -    function v35(name, version2, hashfunc) {
    -      function generateUUID(value, namespace, buf, offset) {
    -        var _namespace;
    -        if (typeof value === "string") {
    -          value = stringToBytes(value);
    -        }
    -        if (typeof namespace === "string") {
    -          namespace = (0, _parse.default)(namespace);
    -        }
    -        if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
    -          throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
    -        }
    -        let bytes = new Uint8Array(16 + value.length);
    -        bytes.set(namespace);
    -        bytes.set(value, namespace.length);
    -        bytes = hashfunc(bytes);
    -        bytes[6] = bytes[6] & 15 | version2;
    -        bytes[8] = bytes[8] & 63 | 128;
    -        if (buf) {
    -          offset = offset || 0;
    -          for (let i = 0; i < 16; ++i) {
    -            buf[offset + i] = bytes[i];
    -          }
    -          return buf;
    -        }
    -        return (0, _stringify.unsafeStringify)(bytes);
    -      }
    -      try {
    -        generateUUID.name = name;
    -      } catch (err) {
    -      }
    -      generateUUID.DNS = DNS;
    -      generateUUID.URL = URL2;
    -      return generateUUID;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/md5.js
    -var require_md5 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/md5.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _crypto = _interopRequireDefault(require("crypto"));
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function md5(bytes) {
    -      if (Array.isArray(bytes)) {
    -        bytes = Buffer.from(bytes);
    -      } else if (typeof bytes === "string") {
    -        bytes = Buffer.from(bytes, "utf8");
    -      }
    -      return _crypto.default.createHash("md5").update(bytes).digest();
    -    }
    -    var _default2 = md5;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v3.js
    -var require_v3 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v3.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _v = _interopRequireDefault(require_v35());
    -    var _md = _interopRequireDefault(require_md5());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var v32 = (0, _v.default)("v3", 48, _md.default);
    -    var _default2 = v32;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/native.js
    -var require_native = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/native.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _crypto = _interopRequireDefault(require("crypto"));
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var _default2 = {
    -      randomUUID: _crypto.default.randomUUID
    -    };
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v4.js
    -var require_v4 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v4.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _native = _interopRequireDefault(require_native());
    -    var _rng = _interopRequireDefault(require_rng());
    -    var _stringify = require_stringify3();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function v42(options2, buf, offset) {
    -      if (_native.default.randomUUID && !buf && !options2) {
    -        return _native.default.randomUUID();
    -      }
    -      options2 = options2 || {};
    -      const rnds = options2.random || (options2.rng || _rng.default)();
    -      rnds[6] = rnds[6] & 15 | 64;
    -      rnds[8] = rnds[8] & 63 | 128;
    -      if (buf) {
    -        offset = offset || 0;
    -        for (let i = 0; i < 16; ++i) {
    -          buf[offset + i] = rnds[i];
    -        }
    -        return buf;
    -      }
    -      return (0, _stringify.unsafeStringify)(rnds);
    -    }
    -    var _default2 = v42;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/sha1.js
    -var require_sha1 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/sha1.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _crypto = _interopRequireDefault(require("crypto"));
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function sha1(bytes) {
    -      if (Array.isArray(bytes)) {
    -        bytes = Buffer.from(bytes);
    -      } else if (typeof bytes === "string") {
    -        bytes = Buffer.from(bytes, "utf8");
    -      }
    -      return _crypto.default.createHash("sha1").update(bytes).digest();
    -    }
    -    var _default2 = sha1;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v5.js
    -var require_v5 = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/v5.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _v = _interopRequireDefault(require_v35());
    -    var _sha = _interopRequireDefault(require_sha1());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    var v52 = (0, _v.default)("v5", 80, _sha.default);
    -    var _default2 = v52;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/nil.js
    -var require_nil = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/nil.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _default2 = "00000000-0000-0000-0000-000000000000";
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/version.js
    -var require_version = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/version.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.default = void 0;
    -    var _validate = _interopRequireDefault(require_validate());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -    function version2(uuid2) {
    -      if (!(0, _validate.default)(uuid2)) {
    -        throw TypeError("Invalid UUID");
    -      }
    -      return parseInt(uuid2.slice(14, 15), 16);
    -    }
    -    var _default2 = version2;
    -    exports2.default = _default2;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/index.js
    -var require_dist = __commonJS({
    -  "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/index.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    Object.defineProperty(exports2, "NIL", {
    -      enumerable: true,
    -      get: function() {
    -        return _nil.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "parse", {
    -      enumerable: true,
    -      get: function() {
    -        return _parse.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "stringify", {
    -      enumerable: true,
    -      get: function() {
    -        return _stringify.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "v1", {
    -      enumerable: true,
    -      get: function() {
    -        return _v.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "v3", {
    -      enumerable: true,
    -      get: function() {
    -        return _v2.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "v4", {
    -      enumerable: true,
    -      get: function() {
    -        return _v3.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "v5", {
    -      enumerable: true,
    -      get: function() {
    -        return _v4.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "validate", {
    -      enumerable: true,
    -      get: function() {
    -        return _validate.default;
    -      }
    -    });
    -    Object.defineProperty(exports2, "version", {
    -      enumerable: true,
    -      get: function() {
    -        return _version.default;
    -      }
    -    });
    -    var _v = _interopRequireDefault(require_v1());
    -    var _v2 = _interopRequireDefault(require_v3());
    -    var _v3 = _interopRequireDefault(require_v4());
    -    var _v4 = _interopRequireDefault(require_v5());
    -    var _nil = _interopRequireDefault(require_nil());
    -    var _version = _interopRequireDefault(require_version());
    -    var _validate = _interopRequireDefault(require_validate());
    -    var _stringify = _interopRequireDefault(require_stringify3());
    -    var _parse = _interopRequireDefault(require_parse2());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { default: obj };
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js
    -var require_balanced_match = __commonJS({
    -  "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = balanced;
    -    function balanced(a, b, str2) {
    -      if (a instanceof RegExp)
    -        a = maybeMatch(a, str2);
    -      if (b instanceof RegExp)
    -        b = maybeMatch(b, str2);
    -      var r = range4(a, b, str2);
    -      return r && {
    -        start: r[0],
    -        end: r[1],
    -        pre: str2.slice(0, r[0]),
    -        body: str2.slice(r[0] + a.length, r[1]),
    -        post: str2.slice(r[1] + b.length)
    -      };
    -    }
    -    function maybeMatch(reg, str2) {
    -      var m = str2.match(reg);
    -      return m ? m[0] : null;
    -    }
    -    balanced.range = range4;
    -    function range4(a, b, str2) {
    -      var begs, beg, left, right, result;
    -      var ai = str2.indexOf(a);
    -      var bi = str2.indexOf(b, ai + 1);
    -      var i = ai;
    -      if (ai >= 0 && bi > 0) {
    -        if (a === b) {
    -          return [ai, bi];
    -        }
    -        begs = [];
    -        left = str2.length;
    -        while (i >= 0 && !result) {
    -          if (i == ai) {
    -            begs.push(i);
    -            ai = str2.indexOf(a, i + 1);
    -          } else if (begs.length == 1) {
    -            result = [begs.pop(), bi];
    -          } else {
    -            beg = begs.pop();
    -            if (beg < left) {
    -              left = beg;
    -              right = bi;
    -            }
    -            bi = str2.indexOf(b, i + 1);
    -          }
    -          i = ai < bi && ai >= 0 ? ai : bi;
    -        }
    -        if (begs.length) {
    -          result = [left, right];
    -        }
    -      }
    -      return result;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js
    -var require_brace_expansion = __commonJS({
    -  "../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports2, module2) {
    -    var balanced = require_balanced_match();
    -    module2.exports = expandTop;
    -    var escSlash = "\0SLASH" + Math.random() + "\0";
    -    var escOpen = "\0OPEN" + Math.random() + "\0";
    -    var escClose = "\0CLOSE" + Math.random() + "\0";
    -    var escComma = "\0COMMA" + Math.random() + "\0";
    -    var escPeriod = "\0PERIOD" + Math.random() + "\0";
    -    function numeric(str2) {
    -      return parseInt(str2, 10) == str2 ? parseInt(str2, 10) : str2.charCodeAt(0);
    -    }
    -    function escapeBraces(str2) {
    -      return str2.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod);
    -    }
    -    function unescapeBraces(str2) {
    -      return str2.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
    -    }
    -    function parseCommaParts(str2) {
    -      if (!str2)
    -        return [""];
    -      var parts = [];
    -      var m = balanced("{", "}", str2);
    -      if (!m)
    -        return str2.split(",");
    -      var pre = m.pre;
    -      var body = m.body;
    -      var post = m.post;
    -      var p = pre.split(",");
    -      p[p.length - 1] += "{" + body + "}";
    -      var postParts = parseCommaParts(post);
    -      if (post.length) {
    -        p[p.length - 1] += postParts.shift();
    -        p.push.apply(p, postParts);
    -      }
    -      parts.push.apply(parts, p);
    -      return parts;
    -    }
    -    function expandTop(str2) {
    -      if (!str2)
    -        return [];
    -      if (str2.substr(0, 2) === "{}") {
    -        str2 = "\\{\\}" + str2.substr(2);
    -      }
    -      return expand2(escapeBraces(str2), true).map(unescapeBraces);
    -    }
    -    function embrace(str2) {
    -      return "{" + str2 + "}";
    -    }
    -    function isPadded(el) {
    -      return /^-?0\d/.test(el);
    -    }
    -    function lte(i, y) {
    -      return i <= y;
    -    }
    -    function gte(i, y) {
    -      return i >= y;
    -    }
    -    function expand2(str2, isTop) {
    -      var expansions = [];
    -      var m = balanced("{", "}", str2);
    -      if (!m)
    -        return [str2];
    -      var pre = m.pre;
    -      var post = m.post.length ? expand2(m.post, false) : [""];
    -      if (/\$$/.test(m.pre)) {
    -        for (var k = 0; k < post.length; k++) {
    -          var expansion = pre + "{" + m.body + "}" + post[k];
    -          expansions.push(expansion);
    -        }
    -      } else {
    -        var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
    -        var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
    -        var isSequence = isNumericSequence || isAlphaSequence;
    -        var isOptions = m.body.indexOf(",") >= 0;
    -        if (!isSequence && !isOptions) {
    -          if (m.post.match(/,.*\}/)) {
    -            str2 = m.pre + "{" + m.body + escClose + m.post;
    -            return expand2(str2);
    -          }
    -          return [str2];
    -        }
    -        var n;
    -        if (isSequence) {
    -          n = m.body.split(/\.\./);
    -        } else {
    -          n = parseCommaParts(m.body);
    -          if (n.length === 1) {
    -            n = expand2(n[0], false).map(embrace);
    -            if (n.length === 1) {
    -              return post.map(function(p) {
    -                return m.pre + n[0] + p;
    -              });
    -            }
    -          }
    -        }
    -        var N;
    -        if (isSequence) {
    -          var x = numeric(n[0]);
    -          var y = numeric(n[1]);
    -          var width = Math.max(n[0].length, n[1].length);
    -          var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
    -          var test = lte;
    -          var reverse = y < x;
    -          if (reverse) {
    -            incr *= -1;
    -            test = gte;
    -          }
    -          var pad = n.some(isPadded);
    -          N = [];
    -          for (var i = x; test(i, y); i += incr) {
    -            var c;
    -            if (isAlphaSequence) {
    -              c = String.fromCharCode(i);
    -              if (c === "\\")
    -                c = "";
    -            } else {
    -              c = String(i);
    -              if (pad) {
    -                var need = width - c.length;
    -                if (need > 0) {
    -                  var z2 = new Array(need + 1).join("0");
    -                  if (i < 0)
    -                    c = "-" + z2 + c.slice(1);
    -                  else
    -                    c = z2 + c;
    -                }
    -              }
    -            }
    -            N.push(c);
    -          }
    -        } else {
    -          N = [];
    -          for (var j = 0; j < n.length; j++) {
    -            N.push.apply(N, expand2(n[j], false));
    -          }
    -        }
    -        for (var j = 0; j < N.length; j++) {
    -          for (var k = 0; k < post.length; k++) {
    -            var expansion = pre + N[j] + post[k];
    -            if (!isTop || isSequence || expansion)
    -              expansions.push(expansion);
    -          }
    -        }
    -      }
    -      return expansions;
    -    }
    -  }
    -});
    -
    -// src/index.ts
    -var src_exports = {};
    -__export(src_exports, {
    -  default: () => entry
    -});
    -module.exports = __toCommonJS(src_exports);
    -
    -// ../common/src/cursorlessCommandIds.ts
    -var CURSORLESS_COMMAND_ID = "cursorless.command";
    -var Command = class {
    -  constructor(baseTitle) {
    -    this.baseTitle = baseTitle;
    -  }
    -  get title() {
    -    return `Cursorless: ${this.baseTitle}`;
    -  }
    -};
    -var HiddenCommand = class extends Command {
    -  constructor() {
    -    super(...arguments);
    -    this.isVisible = false;
    -  }
    -};
    -var VisibleCommand = class extends Command {
    -  constructor() {
    -    super(...arguments);
    -    this.isVisible = true;
    -  }
    -};
    -var cursorlessCommandDescriptions = {
    -  ["cursorless.toggleDecorations"]: new VisibleCommand("Toggle decorations"),
    -  ["cursorless.recomputeDecorationStyles"]: new VisibleCommand(
    -    "Recompute decoration styles"
    -  ),
    -  ["cursorless.recordTestCase"]: new VisibleCommand("Record test case"),
    -  ["cursorless.recordOneTestCaseThenPause"]: new VisibleCommand(
    -    "Record one test case, then pause"
    -  ),
    -  ["cursorless.pauseRecording"]: new VisibleCommand(
    -    "Pause test case recording"
    -  ),
    -  ["cursorless.resumeRecording"]: new VisibleCommand(
    -    "Resume test case recording"
    -  ),
    -  ["cursorless.showDocumentation"]: new VisibleCommand("Show documentation"),
    -  ["cursorless.showScopeVisualizer"]: new VisibleCommand(
    -    "Show the scope visualizer"
    -  ),
    -  ["cursorless.hideScopeVisualizer"]: new VisibleCommand(
    -    "Hide the scope visualizer"
    -  ),
    -  ["cursorless.analyzeCommandHistory"]: new VisibleCommand(
    -    "Analyze collected command history"
    -  ),
    -  ["cursorless.command"]: new HiddenCommand("The core cursorless command"),
    -  ["cursorless.showQuickPick"]: new HiddenCommand(
    -    "Pop up a quick pick of all cursorless commands"
    -  ),
    -  ["cursorless.showCheatsheet"]: new HiddenCommand(
    -    "Display the cursorless cheatsheet"
    -  ),
    -  ["cursorless.internal.updateCheatsheetDefaults"]: new HiddenCommand(
    -    "Update the default values of the cheatsheet payload used on the website and for local development. Be sure to run this on stock community and cursorless."
    -  ),
    -  ["cursorless.private.logQuickActions"]: new HiddenCommand(
    -    "Log the quick actions available at the current cursor position"
    -  ),
    -  ["cursorless.takeSnapshot"]: new HiddenCommand(
    -    "Take a snapshot of the current editor state"
    -  ),
    -  ["cursorless.keyboard.escape"]: new HiddenCommand(
    -    "Should be mapped to the escape key when using cursorless keyboard. By default, exits modal keyboard mode, but changes behaviour when Cursorless is expecting a continuation keystroke.  For example, when you type a color and Cursorless is waiting for a character, it cancels the color and switches back to modal mode."
    -  ),
    -  ["cursorless.keyboard.targeted.targetHat"]: new HiddenCommand(
    -    "Sets the keyboard target to the given hat"
    -  ),
    -  ["cursorless.keyboard.targeted.targetScope"]: new HiddenCommand(
    -    "Sets the keyboard target to the scope containing the current target"
    -  ),
    -  ["cursorless.keyboard.targeted.targetSelection"]: new HiddenCommand(
    -    "Sets the keyboard target to the current selection"
    -  ),
    -  ["cursorless.keyboard.targeted.clearTarget"]: new HiddenCommand(
    -    "Clears the current keyboard target"
    -  ),
    -  ["cursorless.keyboard.targeted.runActionOnTarget"]: new HiddenCommand(
    -    "Run the given action on the current keyboard target"
    -  ),
    -  ["cursorless.keyboard.modal.modeOn"]: new HiddenCommand(
    -    "Turn on the cursorless modal mode"
    -  ),
    -  ["cursorless.keyboard.modal.modeOff"]: new HiddenCommand(
    -    "Turn off the cursorless modal mode"
    -  ),
    -  ["cursorless.keyboard.modal.modeToggle"]: new HiddenCommand(
    -    "Toggle the cursorless modal mode"
    -  )
    -};
    -
    -// ../common/src/ide/fake/FakeIDE.ts
    -var import_lodash3 = __toESM(require_lodash(), 1);
    -
    -// ../common/src/ide/fake/FakeCapabilities.ts
    -var FakeCapabilities = class {
    -  constructor() {
    -    this.commands = {
    -      clipboardCopy: void 0,
    -      toggleLineComment: void 0,
    -      indentLine: void 0,
    -      outdentLine: void 0,
    -      rename: void 0,
    -      quickFix: void 0,
    -      revealDefinition: void 0,
    -      revealTypeDefinition: void 0,
    -      showHover: void 0,
    -      showDebugHover: void 0,
    -      extractVariable: void 0,
    -      fold: void 0,
    -      highlight: { acceptsLocation: true },
    -      unfold: void 0,
    -      showReferences: void 0
    -    };
    -  }
    -};
    -
    -// ../common/src/ide/fake/FakeClipboard.ts
    -var FakeClipboard = class {
    -  constructor() {
    -    this.clipboardContents = "";
    -  }
    -  async readText() {
    -    return this.clipboardContents;
    -  }
    -  async writeText(value) {
    -    this.clipboardContents = value;
    -  }
    -};
    -
    -// ../common/src/ide/fake/FakeConfiguration.ts
    -var import_lodash2 = __toESM(require_lodash(), 1);
    -
    -// ../common/src/util/Notifier.ts
    -var import_lodash = __toESM(require_lodash(), 1);
    -var Notifier = class {
    -  constructor() {
    -    this.listeners = [];
    -    /**
    -     * Notify all listeners that something has changed
    -     */
    -    this.notifyListeners = (...args) => {
    -      this.listeners.forEach((listener) => listener(...args));
    -    };
    -    this.registerListener = this.registerListener.bind(this);
    -  }
    -  /**
    -   * Register to be notified when {@link notifyListeners} is called
    -   * @param listener A function to be called when {@link notifyListeners} is called
    -   * @returns A function that can be called to unsubscribe from notifications
    -   */
    -  registerListener(listener) {
    -    this.listeners.push(listener);
    -    return {
    -      dispose: () => {
    -        (0, import_lodash.pull)(this.listeners, listener);
    -      }
    -    };
    -  }
    -};
    -
    -// ../common/src/ide/types/Configuration.ts
    -var CONFIGURATION_DEFAULTS = {
    -  tokenHatSplittingMode: {
    -    preserveCase: false,
    -    lettersToPreserve: [],
    -    symbolsToPreserve: []
    -  },
    -  wordSeparators: ["_"],
    -  decorationDebounceDelayMs: 50,
    -  experimental: {
    -    snippetsDir: void 0,
    -    hatStability: "balanced" /* balanced */
    -  },
    -  commandHistory: false,
    -  debug: false
    -};
    -
    -// ../common/src/ide/fake/FakeConfiguration.ts
    -var FakeConfiguration = class {
    -  constructor() {
    -    this.notifier = new Notifier();
    -    this.mocks = {
    -      ...CONFIGURATION_DEFAULTS
    -    };
    -    this.scopes = [];
    -    this.onDidChangeConfiguration = this.notifier.registerListener;
    -    this.onDidChangeConfiguration = this.onDidChangeConfiguration.bind(this);
    -  }
    -  getOwnConfiguration(path8, scope) {
    -    if (scope != null) {
    -      for (const { scope: candidateScope, values: values2 } of this.scopes) {
    -        if (scopeMatches(candidateScope, scope)) {
    -          return (0, import_lodash2.get)(values2, path8) ?? (0, import_lodash2.get)(this.mocks, path8);
    -        }
    -      }
    -    }
    -    return (0, import_lodash2.get)(this.mocks, path8);
    -  }
    -  mockConfiguration(key, value) {
    -    this.mocks[key] = value;
    -    this.notifier.notifyListeners();
    -  }
    -  mockConfigurationScope(scope, values2, noNotification = false) {
    -    this.scopes.push({ scope, values: values2 });
    -    if (!noNotification) {
    -      this.notifier.notifyListeners();
    -    }
    -  }
    -};
    -function scopeMatches(candidateScope, scope) {
    -  return candidateScope.languageId === scope.languageId;
    -}
    -
    -// ../common/src/ide/types/State.ts
    -var STATE_DEFAULTS = {
    -  hideInferenceWarning: false
    -};
    -
    -// ../common/src/ide/fake/FakeGlobalState.ts
    -var FakeGlobalState = class {
    -  constructor() {
    -    this.data = { ...STATE_DEFAULTS };
    -  }
    -  get(key) {
    -    return this.data[key];
    -  }
    -  set(key, value) {
    -    this.data[key] = value;
    -    return Promise.resolve();
    -  }
    -};
    -
    -// ../common/src/ide/fake/FakeMessages.ts
    -var FakeMessages = class {
    -  async showMessage(_type, _id, _message, ..._options) {
    -    return void 0;
    -  }
    -};
    -
    -// ../common/src/ide/fake/FakeIDE.ts
    -var FakeIDE = class {
    -  constructor() {
    -    this.configuration = new FakeConfiguration();
    -    this.messages = new FakeMessages();
    -    this.globalState = new FakeGlobalState();
    -    this.clipboard = new FakeClipboard();
    -    this.capabilities = new FakeCapabilities();
    -    this.runMode = "test";
    -    this.cursorlessVersion = "0.0.0";
    -    this.workspaceFolders = void 0;
    -    this.disposables = [];
    -    this.quickPickReturnValue = void 0;
    -    this.onDidOpenTextDocument = dummyEvent;
    -    this.onDidCloseTextDocument = dummyEvent;
    -    this.onDidChangeActiveTextEditor = dummyEvent;
    -    this.onDidChangeVisibleTextEditors = dummyEvent;
    -    this.onDidChangeTextEditorSelection = dummyEvent;
    -    this.onDidChangeTextEditorVisibleRanges = dummyEvent;
    -  }
    -  async flashRanges(_flashDescriptors) {
    -  }
    -  async setHighlightRanges(_highlightId, _editor, _ranges) {
    -  }
    -  mockAssetsRoot(_assetsRoot) {
    -    this.assetsRoot_ = _assetsRoot;
    -  }
    -  get assetsRoot() {
    -    if (this.assetsRoot_ == null) {
    -      throw Error("Field `assetsRoot` has not yet been mocked");
    -    }
    -    return this.assetsRoot_;
    -  }
    -  get activeTextEditor() {
    -    throw Error("Not implemented");
    -  }
    -  get activeEditableTextEditor() {
    -    throw Error("Not implemented");
    -  }
    -  get visibleTextEditors() {
    -    throw Error("Not implemented");
    -  }
    -  getEditableTextEditor(_editor) {
    -    throw Error("Not implemented");
    -  }
    -  findInDocument(_query, _editor) {
    -    throw Error("Not implemented");
    -  }
    -  findInWorkspace(_query) {
    -    throw Error("Not implemented");
    -  }
    -  openTextDocument(_path) {
    -    throw Error("Not implemented");
    -  }
    -  openUntitledTextDocument(_options) {
    -    throw Error("Not implemented");
    -  }
    -  setQuickPickReturnValue(value) {
    -    this.quickPickReturnValue = value;
    -  }
    -  async showQuickPick(_items, _options) {
    -    return this.quickPickReturnValue;
    -  }
    -  showInputBox(_options) {
    -    throw Error("Not implemented");
    -  }
    -  executeCommand(_command, ..._args) {
    -    throw new Error("Method not implemented.");
    -  }
    -  onDidChangeTextDocument(_listener) {
    -    throw Error("Not implemented");
    -  }
    -  disposeOnExit(...disposables) {
    -    this.disposables.push(...disposables);
    -    return () => (0, import_lodash3.pull)(this.disposables, ...disposables);
    -  }
    -  exit() {
    -    this.disposables.forEach((disposable) => disposable.dispose());
    -  }
    -};
    -function dummyEvent() {
    -  return {
    -    dispose() {
    -    }
    -  };
    -}
    -
    -// ../common/src/ide/spy/SpyIDE.ts
    -var import_lodash4 = __toESM(require_lodash(), 1);
    -
    -// ../common/src/ide/PassthroughIDEBase.ts
    -var PassthroughIDEBase = class {
    -  constructor(original) {
    -    this.original = original;
    -    this.configuration = original.configuration;
    -    this.globalState = original.globalState;
    -    this.clipboard = original.clipboard;
    -    this.messages = original.messages;
    -    this.capabilities = original.capabilities;
    -  }
    -  flashRanges(flashDescriptors) {
    -    return this.original.flashRanges(flashDescriptors);
    -  }
    -  setHighlightRanges(highlightId, editor, ranges) {
    -    return this.original.setHighlightRanges(highlightId, editor, ranges);
    -  }
    -  onDidOpenTextDocument(listener, thisArgs, disposables) {
    -    return this.original.onDidOpenTextDocument(listener, thisArgs, disposables);
    -  }
    -  onDidCloseTextDocument(listener, thisArgs, disposables) {
    -    return this.original.onDidCloseTextDocument(
    -      listener,
    -      thisArgs,
    -      disposables
    -    );
    -  }
    -  onDidChangeActiveTextEditor(listener, thisArgs, disposables) {
    -    return this.original.onDidChangeActiveTextEditor(
    -      listener,
    -      thisArgs,
    -      disposables
    -    );
    -  }
    -  onDidChangeVisibleTextEditors(listener, thisArgs, disposables) {
    -    return this.original.onDidChangeVisibleTextEditors(
    -      listener,
    -      thisArgs,
    -      disposables
    -    );
    -  }
    -  onDidChangeTextEditorSelection(listener, thisArgs, disposables) {
    -    return this.original.onDidChangeTextEditorSelection(
    -      listener,
    -      thisArgs,
    -      disposables
    -    );
    -  }
    -  onDidChangeTextEditorVisibleRanges(listener, thisArgs, disposables) {
    -    return this.original.onDidChangeTextEditorVisibleRanges(
    -      listener,
    -      thisArgs,
    -      disposables
    -    );
    -  }
    -  get activeTextEditor() {
    -    return this.original.activeTextEditor;
    -  }
    -  get activeEditableTextEditor() {
    -    return this.original.activeEditableTextEditor;
    -  }
    -  get visibleTextEditors() {
    -    return this.original.visibleTextEditors;
    -  }
    -  get cursorlessVersion() {
    -    return this.original.cursorlessVersion;
    -  }
    -  get assetsRoot() {
    -    return this.original.assetsRoot;
    -  }
    -  get runMode() {
    -    return this.original.runMode;
    -  }
    -  get workspaceFolders() {
    -    return this.original.workspaceFolders;
    -  }
    -  findInDocument(query, editor) {
    -    return this.original.findInDocument(query, editor);
    -  }
    -  findInWorkspace(query) {
    -    return this.original.findInWorkspace(query);
    -  }
    -  openTextDocument(path8) {
    -    return this.original.openTextDocument(path8);
    -  }
    -  openUntitledTextDocument(options2) {
    -    return this.original.openUntitledTextDocument(options2);
    -  }
    -  showQuickPick(items, options2) {
    -    return this.original.showQuickPick(items, options2);
    -  }
    -  showInputBox(options2) {
    -    return this.original.showInputBox(options2);
    -  }
    -  getEditableTextEditor(editor) {
    -    return this.original.getEditableTextEditor(editor);
    -  }
    -  executeCommand(command, ...args) {
    -    return this.original.executeCommand(command, ...args);
    -  }
    -  onDidChangeTextDocument(listener) {
    -    return this.original.onDidChangeTextDocument(listener);
    -  }
    -  disposeOnExit(...disposables) {
    -    return this.original.disposeOnExit(...disposables);
    -  }
    -};
    -
    -// ../common/src/util/sleep.ts
    -var import_util = require("util");
    -var sleep = (0, import_util.promisify)(setTimeout);
    -
    -// ../common/src/ide/util/messages.ts
    -function showWarning(messages, id, message, ...options2) {
    -  return messages.showMessage("warning" /* warning */, id, message, ...options2);
    -}
    -function showError(messages, id, message, ...options2) {
    -  return messages.showMessage("error" /* error */, id, message, ...options2);
    -}
    -
    -// ../common/src/util/splitKey.ts
    -function getKey(hatStyle, character) {
    -  return `${hatStyle}.${character}`;
    -}
    -
    -// ../common/src/util/timeUtils.ts
    -var nanosecondsPerSecond = BigInt(1e9);
    -function hrtimeBigintToSeconds(nanoseconds, precision = BigInt(1e6)) {
    -  return Number(nanoseconds * precision / nanosecondsPerSecond) / Number(precision);
    -}
    -
    -// ../common/src/util/walkAsync.ts
    -var path = __toESM(require("path"), 1);
    -var import_promises = require("fs/promises");
    -var import_lodash5 = __toESM(require_lodash(), 1);
    -var walkFiles = async (dir, fileEnding) => {
    -  const dirEntries = await (0, import_promises.readdir)(dir, { withFileTypes: true });
    -  const files = (0, import_lodash5.flatten)(
    -    await Promise.all(
    -      dirEntries.map(async (dirent) => {
    -        const filePath = path.join(dir, dirent.name);
    -        return dirent.isDirectory() ? await walkFiles(filePath) : [filePath];
    -      })
    -    )
    -  );
    -  if (fileEnding != null) {
    -    return files.filter((file) => file.endsWith(fileEnding));
    -  }
    -  return files;
    -};
    -
    -// ../common/src/util/disposableFrom.ts
    -function disposableFrom(...disposables) {
    -  return {
    -    dispose() {
    -      disposables.forEach(({ dispose }) => {
    -        try {
    -          dispose();
    -        } catch (e) {
    -          console.error(e);
    -        }
    -      });
    -    }
    -  };
    -}
    -
    -// ../common/src/util/camelCaseToAllDown.ts
    -function camelCaseToAllDown(input) {
    -  return input.replace(/([A-Z])/g, " $1").split(" ").map((word) => word.toLowerCase()).join(" ");
    -}
    -
    -// ../common/src/types/Position.ts
    -var Position = class _Position {
    -  /**
    -   * @param line A zero-based line value.
    -   * @param character A zero-based character value.
    -   */
    -  constructor(line, character) {
    -    this.line = line;
    -    this.character = character;
    -  }
    -  /**
    -   * Check if this position is equal to `other`.
    -   *
    -   * @param other A position.
    -   * @return `true` if the line and character of the given position are equal to
    -   * the line and character of this position.
    -   */
    -  isEqual(other) {
    -    return this.line === other.line && this.character === other.character;
    -  }
    -  /**
    -   * Check if this position is before `other`.
    -   *
    -   * @param other A position.
    -   * @return `true` if position is on a smaller line
    -   * or on the same line on a smaller character.
    -   */
    -  isBefore(other) {
    -    if (this.line < other.line) {
    -      return true;
    -    }
    -    if (this.line > other.line) {
    -      return false;
    -    }
    -    return this.character < other.character;
    -  }
    -  /**
    -   * Check if this position is after `other`.
    -   *
    -   * @param other A position.
    -   * @return `true` if position is on a greater line
    -   * or on the same line on a greater character.
    -   */
    -  isAfter(other) {
    -    if (this.line > other.line) {
    -      return true;
    -    }
    -    if (this.line < other.line) {
    -      return false;
    -    }
    -    return this.character > other.character;
    -  }
    -  /**
    -   * Check if this position is before or equal to `other`.
    -   *
    -   * @param other A position.
    -   * @return `true` if position is on a smaller line
    -   * or on the same line on a smaller or equal character.
    -   */
    -  isBeforeOrEqual(other) {
    -    return this.isEqual(other) || this.isBefore(other);
    -  }
    -  /**
    -   * Check if this position is after or equal to `other`.
    -   *
    -   * @param other A position.
    -   * @return `true` if position is on a greater line
    -   * or on the same line on a greater or equal character.
    -   */
    -  isAfterOrEqual(other) {
    -    return this.isEqual(other) || this.isAfter(other);
    -  }
    -  /**
    -   * Compare this to `other`.
    -   *
    -   * @param other A position.
    -   * @return A number smaller than zero if this position is before the given position,
    -   * a number greater than zero if this position is after the given position, or zero when
    -   * this and the given position are equal.
    -   */
    -  compareTo(other) {
    -    if (this.isBefore(other)) {
    -      return -1;
    -    }
    -    if (this.isAfter(other)) {
    -      return 1;
    -    }
    -    return 0;
    -  }
    -  /**
    -   * Create a new position derived from this position.
    -   *
    -   * @param line Value that should be used as line value, default is the {@link Position.line existing value}
    -   * @param character Value that should be used as character value, default is the {@link Position.character existing value}
    -   * @return A position where line and character are replaced by the given values.
    -   */
    -  with(line, character) {
    -    return new _Position(line ?? this.line, character ?? this.character);
    -  }
    -  /**
    -   * Create a new position relative to this position.
    -   *
    -   * @param lineDelta Delta value for the line value, default is `0`.
    -   * @param characterDelta Delta value for the character value, default is `0`.
    -   * @return A position which line and character is the sum of the current line and
    -   * character and the corresponding deltas.
    -   */
    -  translate(lineDelta, characterDelta) {
    -    return new _Position(
    -      this.line + (lineDelta ?? 0),
    -      this.character + (characterDelta ?? 0)
    -    );
    -  }
    -  /**
    -   * Create a new empty range from this position.
    -   * @returns A {@link Range}
    -   */
    -  toEmptyRange() {
    -    return new Range(this, this);
    -  }
    -  /**
    -   * Return a concise string representation of the position.
    -   * @returns concise representation
    -   **/
    -  concise() {
    -    return `${this.line}:${this.character}`;
    -  }
    -  toString() {
    -    return this.concise();
    -  }
    -};
    -function adjustPosition(doc, pos, by) {
    -  return doc.positionAt(doc.offsetAt(pos) + by);
    -}
    -
    -// ../common/src/types/Range.ts
    -var Range = class _Range {
    -  constructor(...args) {
    -    const [p1, p2] = (() => {
    -      if (args.length === 2) {
    -        return args;
    -      }
    -      return [new Position(args[0], args[1]), new Position(args[2], args[3])];
    -    })();
    -    if (p1.isBefore(p2)) {
    -      this.start = p1;
    -      this.end = p2;
    -    } else {
    -      this.start = p2;
    -      this.end = p1;
    -    }
    -  }
    -  /**
    -   * `true` if `start` and `end` are equal.
    -   */
    -  get isEmpty() {
    -    return this.start.isEqual(this.end);
    -  }
    -  /**
    -   * `true` if `start.line` and `end.line` are equal.
    -   */
    -  get isSingleLine() {
    -    return this.start.line === this.end.line;
    -  }
    -  /**
    -   * Check if `other` equals this range.
    -   *
    -   * @param other A range.
    -   * @return `true` when start and end are {@link Position.isEqual equal} to
    -   * start and end of this range.
    -   */
    -  isRangeEqual(other) {
    -    return this.start.isEqual(other.start) && this.end.isEqual(other.end);
    -  }
    -  /**
    -   * Check if a position or a range is contained in this range.
    -   *
    -   * @param positionOrRange A position or a range.
    -   * @return `true` if the position or range is inside or equal
    -   * to this range.
    -   */
    -  contains(positionOrRange) {
    -    const [start, end] = positionOrRange instanceof Position ? [positionOrRange, positionOrRange] : [positionOrRange.start, positionOrRange.end];
    -    return start.isAfterOrEqual(this.start) && end.isBeforeOrEqual(this.end);
    -  }
    -  /**
    -   * Intersect `range` with this range and returns a new range.
    -   * If the ranges are adjacent but non-overlapping, the resulting range is empty.
    -   * If the ranges have no overlap and are not adjacent, it returns `undefined`.
    -   *
    -   * @param other A range.
    -   * @return A range of the greater start and smaller end positions. Will
    -   * return undefined when there is no overlap.
    -   */
    -  intersection(other) {
    -    const start = this.start.isAfter(other.start) ? this.start : other.start;
    -    const end = this.end.isBefore(other.end) ? this.end : other.end;
    -    return start.isBeforeOrEqual(end) ? new _Range(start, end) : void 0;
    -  }
    -  /**
    -   * Compute the union of `other` with this range.
    -   *
    -   * @param other A range.
    -   * @return A range of smaller start position and the greater end position.
    -   */
    -  union(other) {
    -    return new _Range(
    -      this.start.isBefore(other.start) ? this.start : other.start,
    -      this.end.isAfter(other.end) ? this.end : other.end
    -    );
    -  }
    -  /**
    -   * Derive a new range from this range.
    -   * If the resulting range has end before start, they are swapped.
    -   *
    -   * @param start A position that should be used as start. The default value is the {@link Range.start current start}.
    -   * @param end A position that should be used as end. The default value is the {@link Range.end current end}.
    -   * @return A range derived from this range with the given start and end position.
    -   */
    -  with(start, end) {
    -    return new _Range(start ?? this.start, end ?? this.end);
    -  }
    -  /**
    -   * Construct a new selection from this range
    -   * @param isReversed If true active is before anchor
    -   * @returns A new selection
    -   */
    -  toSelection(isReversed) {
    -    return isReversed ? new Selection(this.end, this.start) : new Selection(this.start, this.end);
    -  }
    -  /**
    -   * Return a concise string representation of the range
    -   * @returns concise representation
    -   **/
    -  concise() {
    -    return `${this.start.concise()}-${this.end.concise()}`;
    -  }
    -  toString() {
    -    return this.concise();
    -  }
    -};
    -
    -// ../common/src/types/Selection.ts
    -var Selection = class extends Range {
    -  /**
    -   * Is true if active position is before anchor position.
    -   */
    -  get isReversed() {
    -    return this.active.isBefore(this.anchor);
    -  }
    -  constructor(...args) {
    -    const [anchor, active] = (() => {
    -      if (args.length === 2) {
    -        return args;
    -      }
    -      return [new Position(args[0], args[1]), new Position(args[2], args[3])];
    -    })();
    -    super(anchor, active);
    -    this.anchor = anchor;
    -    this.active = active;
    -  }
    -  /**
    -   * Check if `other` equals this range.
    -   *
    -   * @param other A selection.
    -   * @return `true` when anchor and active are {@link Position.isEqual equal} to
    -   * anchor and active of this range.
    -   */
    -  isEqual(other) {
    -    return this.anchor.isEqual(other.anchor) && this.active.isEqual(other.active);
    -  }
    -  /**
    -   * Return a concise string representation of the selection
    -   * @returns concise representation
    -   **/
    -  concise() {
    -    return `${this.anchor.concise()}->${this.active.concise()}`;
    -  }
    -  toString() {
    -    return this.concise();
    -  }
    -};
    -
    -// ../common/src/util/textFormatters.ts
    -var textFormatters = {
    -  camelCase(tokens) {
    -    if (tokens.length === 0) {
    -      return "";
    -    }
    -    const [first, ...rest] = tokens;
    -    return first + rest.map(capitalizeToken).join("");
    -  },
    -  snakeCase(tokens) {
    -    return tokens.join("_");
    -  },
    -  upperSnakeCase(tokens) {
    -    return tokens.map((token) => token.toUpperCase()).join("_");
    -  },
    -  pascalCase(tokens) {
    -    return tokens.map(capitalizeToken).join("");
    -  }
    -};
    -function capitalizeToken(token) {
    -  return token.length === 0 ? "" : token[0].toUpperCase() + token.substr(1);
    -}
    -
    -// ../common/src/testUtil/fromPlainObject.ts
    -function plainObjectToPosition({
    -  line,
    -  character
    -}) {
    -  return new Position(line, character);
    -}
    -function plainObjectToRange({ start, end }) {
    -  return new Range(plainObjectToPosition(start), plainObjectToPosition(end));
    -}
    -
    -// ../common/src/types/GeneralizedRange.ts
    -function toLineRange(range4) {
    -  return { type: "line", start: range4.start.line, end: range4.end.line };
    -}
    -function toCharacterRange({ start, end }) {
    -  return { type: "character", start, end };
    -}
    -
    -// ../common/src/util/toPlainObject.ts
    -function rangeToPlainObject(range4) {
    -  return {
    -    start: positionToPlainObject(range4.start),
    -    end: positionToPlainObject(range4.end)
    -  };
    -}
    -function selectionToPlainObject(selection) {
    -  return {
    -    anchor: positionToPlainObject(selection.anchor),
    -    active: positionToPlainObject(selection.active)
    -  };
    -}
    -function positionToPlainObject({
    -  line,
    -  character
    -}) {
    -  return { line, character };
    -}
    -
    -// ../common/src/util/DefaultMap.ts
    -var DefaultMap = class extends Map {
    -  /**
    -   * @param getDefaultValue A function that returns the default value for a given key
    -   */
    -  constructor(getDefaultValue) {
    -    super();
    -    this.getDefaultValue = getDefaultValue;
    -  }
    -  get(key) {
    -    const currentValue = super.get(key);
    -    if (currentValue != null) {
    -      return currentValue;
    -    }
    -    const value = this.getDefaultValue(key);
    -    this.set(key, value);
    -    return value;
    -  }
    -};
    -
    -// ../common/src/util/omitByDeep.ts
    -var import_lodash6 = __toESM(require_lodash(), 1);
    -
    -// ../common/src/util/range.ts
    -var import_lodash7 = __toESM(require_lodash(), 1);
    -
    -// ../common/src/util/uniqWithHash.ts
    -var import_lodash8 = __toESM(require_lodash(), 1);
    -function uniqWithHash(array, isEqual5, hash) {
    -  if (array.length < 2) {
    -    return [...array];
    -  }
    -  if (array.length === 2) {
    -    if (isEqual5(array[0], array[1])) {
    -      return [array[0]];
    -    }
    -    return [...array];
    -  }
    -  const needsUniq = [];
    -  const hashToItems = array.reduce((acc, item) => {
    -    const key = hash(item);
    -    const items = acc.get(key);
    -    if (items == null) {
    -      acc.set(key, [item]);
    -      return acc;
    -    }
    -    acc.get(key).push(item);
    -    if (items.length === 2) {
    -      needsUniq.push(key);
    -    }
    -    return acc;
    -  }, /* @__PURE__ */ new Map());
    -  if (needsUniq.length === 0) {
    -    return [...array];
    -  }
    -  needsUniq.forEach((key) => {
    -    hashToItems.set(key, (0, import_lodash8.uniqWith)(hashToItems.get(key), isEqual5));
    -  });
    -  return array.flatMap((item) => {
    -    const key = hash(item);
    -    const items = hashToItems.get(key);
    -    if (items == null || items.length === 0) {
    -      return [];
    -    }
    -    const first = items[0];
    -    if (!isEqual5(first, item)) {
    -      return [];
    -    }
    -    items.shift();
    -    return first;
    -  });
    -}
    -
    -// ../common/src/testUtil/isTesting.ts
    -var isTesting = () => process.env.CURSORLESS_TEST != null;
    -
    -// ../common/src/testUtil/getFixturePaths.ts
    -var path2 = __toESM(require("path"), 1);
    -
    -// ../common/src/testUtil/getCursorlessRepoRoot.ts
    -function getCursorlessRepoRoot() {
    -  const root = process.env["CURSORLESS_REPO_ROOT"];
    -  if (root == null) {
    -    throw new Error(
    -      "CURSORLESS_REPO_ROOT environment variable must be set to run this script"
    -    );
    -  }
    -  return root;
    -}
    -
    -// ../common/src/testUtil/getFixturePaths.ts
    -function getFixturesPath() {
    -  return path2.join(getCursorlessRepoRoot(), "data", "fixtures");
    -}
    -function getFixturePath(fixturePath) {
    -  return path2.join(getFixturesPath(), fixturePath);
    -}
    -
    -// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs
    -function isNothing(subject) {
    -  return typeof subject === "undefined" || subject === null;
    -}
    -function isObject(subject) {
    -  return typeof subject === "object" && subject !== null;
    -}
    -function toArray(sequence) {
    -  if (Array.isArray(sequence))
    -    return sequence;
    -  else if (isNothing(sequence))
    -    return [];
    -  return [sequence];
    -}
    -function extend(target, source) {
    -  var index, length, key, sourceKeys;
    -  if (source) {
    -    sourceKeys = Object.keys(source);
    -    for (index = 0, length = sourceKeys.length; index < length; index += 1) {
    -      key = sourceKeys[index];
    -      target[key] = source[key];
    -    }
    -  }
    -  return target;
    -}
    -function repeat(string2, count2) {
    -  var result = "", cycle;
    -  for (cycle = 0; cycle < count2; cycle += 1) {
    -    result += string2;
    -  }
    -  return result;
    -}
    -function isNegativeZero(number) {
    -  return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;
    -}
    -var isNothing_1 = isNothing;
    -var isObject_1 = isObject;
    -var toArray_1 = toArray;
    -var repeat_1 = repeat;
    -var isNegativeZero_1 = isNegativeZero;
    -var extend_1 = extend;
    -var common = {
    -  isNothing: isNothing_1,
    -  isObject: isObject_1,
    -  toArray: toArray_1,
    -  repeat: repeat_1,
    -  isNegativeZero: isNegativeZero_1,
    -  extend: extend_1
    -};
    -function formatError(exception2, compact) {
    -  var where = "", message = exception2.reason || "(unknown reason)";
    -  if (!exception2.mark)
    -    return message;
    -  if (exception2.mark.name) {
    -    where += 'in "' + exception2.mark.name + '" ';
    -  }
    -  where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
    -  if (!compact && exception2.mark.snippet) {
    -    where += "\n\n" + exception2.mark.snippet;
    -  }
    -  return message + " " + where;
    -}
    -function YAMLException$1(reason, mark) {
    -  Error.call(this);
    -  this.name = "YAMLException";
    -  this.reason = reason;
    -  this.mark = mark;
    -  this.message = formatError(this, false);
    -  if (Error.captureStackTrace) {
    -    Error.captureStackTrace(this, this.constructor);
    -  } else {
    -    this.stack = new Error().stack || "";
    -  }
    -}
    -YAMLException$1.prototype = Object.create(Error.prototype);
    -YAMLException$1.prototype.constructor = YAMLException$1;
    -YAMLException$1.prototype.toString = function toString(compact) {
    -  return this.name + ": " + formatError(this, compact);
    -};
    -var exception = YAMLException$1;
    -function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
    -  var head = "";
    -  var tail = "";
    -  var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
    -  if (position - lineStart > maxHalfLength) {
    -    head = " ... ";
    -    lineStart = position - maxHalfLength + head.length;
    -  }
    -  if (lineEnd - position > maxHalfLength) {
    -    tail = " ...";
    -    lineEnd = position + maxHalfLength - tail.length;
    -  }
    -  return {
    -    str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail,
    -    pos: position - lineStart + head.length
    -    // relative position
    -  };
    -}
    -function padStart(string2, max2) {
    -  return common.repeat(" ", max2 - string2.length) + string2;
    -}
    -function makeSnippet(mark, options2) {
    -  options2 = Object.create(options2 || null);
    -  if (!mark.buffer)
    -    return null;
    -  if (!options2.maxLength)
    -    options2.maxLength = 79;
    -  if (typeof options2.indent !== "number")
    -    options2.indent = 1;
    -  if (typeof options2.linesBefore !== "number")
    -    options2.linesBefore = 3;
    -  if (typeof options2.linesAfter !== "number")
    -    options2.linesAfter = 2;
    -  var re = /\r?\n|\r|\0/g;
    -  var lineStarts = [0];
    -  var lineEnds = [];
    -  var match2;
    -  var foundLineNo = -1;
    -  while (match2 = re.exec(mark.buffer)) {
    -    lineEnds.push(match2.index);
    -    lineStarts.push(match2.index + match2[0].length);
    -    if (mark.position <= match2.index && foundLineNo < 0) {
    -      foundLineNo = lineStarts.length - 2;
    -    }
    -  }
    -  if (foundLineNo < 0)
    -    foundLineNo = lineStarts.length - 1;
    -  var result = "", i, line;
    -  var lineNoLength = Math.min(mark.line + options2.linesAfter, lineEnds.length).toString().length;
    -  var maxLineLength = options2.maxLength - (options2.indent + lineNoLength + 3);
    -  for (i = 1; i <= options2.linesBefore; i++) {
    -    if (foundLineNo - i < 0)
    -      break;
    -    line = getLine(
    -      mark.buffer,
    -      lineStarts[foundLineNo - i],
    -      lineEnds[foundLineNo - i],
    -      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
    -      maxLineLength
    -    );
    -    result = common.repeat(" ", options2.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result;
    -  }
    -  line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
    -  result += common.repeat(" ", options2.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n";
    -  result += common.repeat("-", options2.indent + lineNoLength + 3 + line.pos) + "^\n";
    -  for (i = 1; i <= options2.linesAfter; i++) {
    -    if (foundLineNo + i >= lineEnds.length)
    -      break;
    -    line = getLine(
    -      mark.buffer,
    -      lineStarts[foundLineNo + i],
    -      lineEnds[foundLineNo + i],
    -      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
    -      maxLineLength
    -    );
    -    result += common.repeat(" ", options2.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n";
    -  }
    -  return result.replace(/\n$/, "");
    -}
    -var snippet = makeSnippet;
    -var TYPE_CONSTRUCTOR_OPTIONS = [
    -  "kind",
    -  "multi",
    -  "resolve",
    -  "construct",
    -  "instanceOf",
    -  "predicate",
    -  "represent",
    -  "representName",
    -  "defaultStyle",
    -  "styleAliases"
    -];
    -var YAML_NODE_KINDS = [
    -  "scalar",
    -  "sequence",
    -  "mapping"
    -];
    -function compileStyleAliases(map4) {
    -  var result = {};
    -  if (map4 !== null) {
    -    Object.keys(map4).forEach(function(style) {
    -      map4[style].forEach(function(alias) {
    -        result[String(alias)] = style;
    -      });
    -    });
    -  }
    -  return result;
    -}
    -function Type$1(tag, options2) {
    -  options2 = options2 || {};
    -  Object.keys(options2).forEach(function(name) {
    -    if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
    -      throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
    -    }
    -  });
    -  this.options = options2;
    -  this.tag = tag;
    -  this.kind = options2["kind"] || null;
    -  this.resolve = options2["resolve"] || function() {
    -    return true;
    -  };
    -  this.construct = options2["construct"] || function(data) {
    -    return data;
    -  };
    -  this.instanceOf = options2["instanceOf"] || null;
    -  this.predicate = options2["predicate"] || null;
    -  this.represent = options2["represent"] || null;
    -  this.representName = options2["representName"] || null;
    -  this.defaultStyle = options2["defaultStyle"] || null;
    -  this.multi = options2["multi"] || false;
    -  this.styleAliases = compileStyleAliases(options2["styleAliases"] || null);
    -  if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
    -    throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
    -  }
    -}
    -var type = Type$1;
    -function compileList(schema3, name) {
    -  var result = [];
    -  schema3[name].forEach(function(currentType) {
    -    var newIndex = result.length;
    -    result.forEach(function(previousType, previousIndex) {
    -      if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
    -        newIndex = previousIndex;
    -      }
    -    });
    -    result[newIndex] = currentType;
    -  });
    -  return result;
    -}
    -function compileMap() {
    -  var result = {
    -    scalar: {},
    -    sequence: {},
    -    mapping: {},
    -    fallback: {},
    -    multi: {
    -      scalar: [],
    -      sequence: [],
    -      mapping: [],
    -      fallback: []
    -    }
    -  }, index, length;
    -  function collectType(type2) {
    -    if (type2.multi) {
    -      result.multi[type2.kind].push(type2);
    -      result.multi["fallback"].push(type2);
    -    } else {
    -      result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2;
    -    }
    -  }
    -  for (index = 0, length = arguments.length; index < length; index += 1) {
    -    arguments[index].forEach(collectType);
    -  }
    -  return result;
    -}
    -function Schema$1(definition) {
    -  return this.extend(definition);
    -}
    -Schema$1.prototype.extend = function extend2(definition) {
    -  var implicit = [];
    -  var explicit = [];
    -  if (definition instanceof type) {
    -    explicit.push(definition);
    -  } else if (Array.isArray(definition)) {
    -    explicit = explicit.concat(definition);
    -  } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
    -    if (definition.implicit)
    -      implicit = implicit.concat(definition.implicit);
    -    if (definition.explicit)
    -      explicit = explicit.concat(definition.explicit);
    -  } else {
    -    throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
    -  }
    -  implicit.forEach(function(type$1) {
    -    if (!(type$1 instanceof type)) {
    -      throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
    -    }
    -    if (type$1.loadKind && type$1.loadKind !== "scalar") {
    -      throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
    -    }
    -    if (type$1.multi) {
    -      throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
    -    }
    -  });
    -  explicit.forEach(function(type$1) {
    -    if (!(type$1 instanceof type)) {
    -      throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
    -    }
    -  });
    -  var result = Object.create(Schema$1.prototype);
    -  result.implicit = (this.implicit || []).concat(implicit);
    -  result.explicit = (this.explicit || []).concat(explicit);
    -  result.compiledImplicit = compileList(result, "implicit");
    -  result.compiledExplicit = compileList(result, "explicit");
    -  result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
    -  return result;
    -};
    -var schema = Schema$1;
    -var str = new type("tag:yaml.org,2002:str", {
    -  kind: "scalar",
    -  construct: function(data) {
    -    return data !== null ? data : "";
    -  }
    -});
    -var seq = new type("tag:yaml.org,2002:seq", {
    -  kind: "sequence",
    -  construct: function(data) {
    -    return data !== null ? data : [];
    -  }
    -});
    -var map = new type("tag:yaml.org,2002:map", {
    -  kind: "mapping",
    -  construct: function(data) {
    -    return data !== null ? data : {};
    -  }
    -});
    -var failsafe = new schema({
    -  explicit: [
    -    str,
    -    seq,
    -    map
    -  ]
    -});
    -function resolveYamlNull(data) {
    -  if (data === null)
    -    return true;
    -  var max2 = data.length;
    -  return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL");
    -}
    -function constructYamlNull() {
    -  return null;
    -}
    -function isNull(object) {
    -  return object === null;
    -}
    -var _null = new type("tag:yaml.org,2002:null", {
    -  kind: "scalar",
    -  resolve: resolveYamlNull,
    -  construct: constructYamlNull,
    -  predicate: isNull,
    -  represent: {
    -    canonical: function() {
    -      return "~";
    -    },
    -    lowercase: function() {
    -      return "null";
    -    },
    -    uppercase: function() {
    -      return "NULL";
    -    },
    -    camelcase: function() {
    -      return "Null";
    -    },
    -    empty: function() {
    -      return "";
    -    }
    -  },
    -  defaultStyle: "lowercase"
    -});
    -function resolveYamlBoolean(data) {
    -  if (data === null)
    -    return false;
    -  var max2 = data.length;
    -  return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE");
    -}
    -function constructYamlBoolean(data) {
    -  return data === "true" || data === "True" || data === "TRUE";
    -}
    -function isBoolean(object) {
    -  return Object.prototype.toString.call(object) === "[object Boolean]";
    -}
    -var bool = new type("tag:yaml.org,2002:bool", {
    -  kind: "scalar",
    -  resolve: resolveYamlBoolean,
    -  construct: constructYamlBoolean,
    -  predicate: isBoolean,
    -  represent: {
    -    lowercase: function(object) {
    -      return object ? "true" : "false";
    -    },
    -    uppercase: function(object) {
    -      return object ? "TRUE" : "FALSE";
    -    },
    -    camelcase: function(object) {
    -      return object ? "True" : "False";
    -    }
    -  },
    -  defaultStyle: "lowercase"
    -});
    -function isHexCode(c) {
    -  return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;
    -}
    -function isOctCode(c) {
    -  return 48 <= c && c <= 55;
    -}
    -function isDecCode(c) {
    -  return 48 <= c && c <= 57;
    -}
    -function resolveYamlInteger(data) {
    -  if (data === null)
    -    return false;
    -  var max2 = data.length, index = 0, hasDigits = false, ch;
    -  if (!max2)
    -    return false;
    -  ch = data[index];
    -  if (ch === "-" || ch === "+") {
    -    ch = data[++index];
    -  }
    -  if (ch === "0") {
    -    if (index + 1 === max2)
    -      return true;
    -    ch = data[++index];
    -    if (ch === "b") {
    -      index++;
    -      for (; index < max2; index++) {
    -        ch = data[index];
    -        if (ch === "_")
    -          continue;
    -        if (ch !== "0" && ch !== "1")
    -          return false;
    -        hasDigits = true;
    -      }
    -      return hasDigits && ch !== "_";
    -    }
    -    if (ch === "x") {
    -      index++;
    -      for (; index < max2; index++) {
    -        ch = data[index];
    -        if (ch === "_")
    -          continue;
    -        if (!isHexCode(data.charCodeAt(index)))
    -          return false;
    -        hasDigits = true;
    -      }
    -      return hasDigits && ch !== "_";
    -    }
    -    if (ch === "o") {
    -      index++;
    -      for (; index < max2; index++) {
    -        ch = data[index];
    -        if (ch === "_")
    -          continue;
    -        if (!isOctCode(data.charCodeAt(index)))
    -          return false;
    -        hasDigits = true;
    -      }
    -      return hasDigits && ch !== "_";
    -    }
    -  }
    -  if (ch === "_")
    -    return false;
    -  for (; index < max2; index++) {
    -    ch = data[index];
    -    if (ch === "_")
    -      continue;
    -    if (!isDecCode(data.charCodeAt(index))) {
    -      return false;
    -    }
    -    hasDigits = true;
    -  }
    -  if (!hasDigits || ch === "_")
    -    return false;
    -  return true;
    -}
    -function constructYamlInteger(data) {
    -  var value = data, sign = 1, ch;
    -  if (value.indexOf("_") !== -1) {
    -    value = value.replace(/_/g, "");
    -  }
    -  ch = value[0];
    -  if (ch === "-" || ch === "+") {
    -    if (ch === "-")
    -      sign = -1;
    -    value = value.slice(1);
    -    ch = value[0];
    -  }
    -  if (value === "0")
    -    return 0;
    -  if (ch === "0") {
    -    if (value[1] === "b")
    -      return sign * parseInt(value.slice(2), 2);
    -    if (value[1] === "x")
    -      return sign * parseInt(value.slice(2), 16);
    -    if (value[1] === "o")
    -      return sign * parseInt(value.slice(2), 8);
    -  }
    -  return sign * parseInt(value, 10);
    -}
    -function isInteger(object) {
    -  return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object));
    -}
    -var int = new type("tag:yaml.org,2002:int", {
    -  kind: "scalar",
    -  resolve: resolveYamlInteger,
    -  construct: constructYamlInteger,
    -  predicate: isInteger,
    -  represent: {
    -    binary: function(obj) {
    -      return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
    -    },
    -    octal: function(obj) {
    -      return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
    -    },
    -    decimal: function(obj) {
    -      return obj.toString(10);
    -    },
    -    /* eslint-disable max-len */
    -    hexadecimal: function(obj) {
    -      return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
    -    }
    -  },
    -  defaultStyle: "decimal",
    -  styleAliases: {
    -    binary: [2, "bin"],
    -    octal: [8, "oct"],
    -    decimal: [10, "dec"],
    -    hexadecimal: [16, "hex"]
    -  }
    -});
    -var YAML_FLOAT_PATTERN = new RegExp(
    -  // 2.5e4, 2.5 and integers
    -  "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
    -);
    -function resolveYamlFloat(data) {
    -  if (data === null)
    -    return false;
    -  if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
    -  // Probably should update regexp & check speed
    -  data[data.length - 1] === "_") {
    -    return false;
    -  }
    -  return true;
    -}
    -function constructYamlFloat(data) {
    -  var value, sign;
    -  value = data.replace(/_/g, "").toLowerCase();
    -  sign = value[0] === "-" ? -1 : 1;
    -  if ("+-".indexOf(value[0]) >= 0) {
    -    value = value.slice(1);
    -  }
    -  if (value === ".inf") {
    -    return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
    -  } else if (value === ".nan") {
    -    return NaN;
    -  }
    -  return sign * parseFloat(value, 10);
    -}
    -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
    -function representYamlFloat(object, style) {
    -  var res;
    -  if (isNaN(object)) {
    -    switch (style) {
    -      case "lowercase":
    -        return ".nan";
    -      case "uppercase":
    -        return ".NAN";
    -      case "camelcase":
    -        return ".NaN";
    -    }
    -  } else if (Number.POSITIVE_INFINITY === object) {
    -    switch (style) {
    -      case "lowercase":
    -        return ".inf";
    -      case "uppercase":
    -        return ".INF";
    -      case "camelcase":
    -        return ".Inf";
    -    }
    -  } else if (Number.NEGATIVE_INFINITY === object) {
    -    switch (style) {
    -      case "lowercase":
    -        return "-.inf";
    -      case "uppercase":
    -        return "-.INF";
    -      case "camelcase":
    -        return "-.Inf";
    -    }
    -  } else if (common.isNegativeZero(object)) {
    -    return "-0.0";
    -  }
    -  res = object.toString(10);
    -  return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
    -}
    -function isFloat(object) {
    -  return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object));
    -}
    -var float = new type("tag:yaml.org,2002:float", {
    -  kind: "scalar",
    -  resolve: resolveYamlFloat,
    -  construct: constructYamlFloat,
    -  predicate: isFloat,
    -  represent: representYamlFloat,
    -  defaultStyle: "lowercase"
    -});
    -var json = failsafe.extend({
    -  implicit: [
    -    _null,
    -    bool,
    -    int,
    -    float
    -  ]
    -});
    -var core = json;
    -var YAML_DATE_REGEXP = new RegExp(
    -  "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
    -);
    -var YAML_TIMESTAMP_REGEXP = new RegExp(
    -  "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
    -);
    -function resolveYamlTimestamp(data) {
    -  if (data === null)
    -    return false;
    -  if (YAML_DATE_REGEXP.exec(data) !== null)
    -    return true;
    -  if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
    -    return true;
    -  return false;
    -}
    -function constructYamlTimestamp(data) {
    -  var match2, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;
    -  match2 = YAML_DATE_REGEXP.exec(data);
    -  if (match2 === null)
    -    match2 = YAML_TIMESTAMP_REGEXP.exec(data);
    -  if (match2 === null)
    -    throw new Error("Date resolve error");
    -  year = +match2[1];
    -  month = +match2[2] - 1;
    -  day = +match2[3];
    -  if (!match2[4]) {
    -    return new Date(Date.UTC(year, month, day));
    -  }
    -  hour = +match2[4];
    -  minute = +match2[5];
    -  second = +match2[6];
    -  if (match2[7]) {
    -    fraction = match2[7].slice(0, 3);
    -    while (fraction.length < 3) {
    -      fraction += "0";
    -    }
    -    fraction = +fraction;
    -  }
    -  if (match2[9]) {
    -    tz_hour = +match2[10];
    -    tz_minute = +(match2[11] || 0);
    -    delta = (tz_hour * 60 + tz_minute) * 6e4;
    -    if (match2[9] === "-")
    -      delta = -delta;
    -  }
    -  date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
    -  if (delta)
    -    date.setTime(date.getTime() - delta);
    -  return date;
    -}
    -function representYamlTimestamp(object) {
    -  return object.toISOString();
    -}
    -var timestamp = new type("tag:yaml.org,2002:timestamp", {
    -  kind: "scalar",
    -  resolve: resolveYamlTimestamp,
    -  construct: constructYamlTimestamp,
    -  instanceOf: Date,
    -  represent: representYamlTimestamp
    -});
    -function resolveYamlMerge(data) {
    -  return data === "<<" || data === null;
    -}
    -var merge = new type("tag:yaml.org,2002:merge", {
    -  kind: "scalar",
    -  resolve: resolveYamlMerge
    -});
    -var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
    -function resolveYamlBinary(data) {
    -  if (data === null)
    -    return false;
    -  var code, idx, bitlen = 0, max2 = data.length, map4 = BASE64_MAP;
    -  for (idx = 0; idx < max2; idx++) {
    -    code = map4.indexOf(data.charAt(idx));
    -    if (code > 64)
    -      continue;
    -    if (code < 0)
    -      return false;
    -    bitlen += 6;
    -  }
    -  return bitlen % 8 === 0;
    -}
    -function constructYamlBinary(data) {
    -  var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map4 = BASE64_MAP, bits = 0, result = [];
    -  for (idx = 0; idx < max2; idx++) {
    -    if (idx % 4 === 0 && idx) {
    -      result.push(bits >> 16 & 255);
    -      result.push(bits >> 8 & 255);
    -      result.push(bits & 255);
    -    }
    -    bits = bits << 6 | map4.indexOf(input.charAt(idx));
    -  }
    -  tailbits = max2 % 4 * 6;
    -  if (tailbits === 0) {
    -    result.push(bits >> 16 & 255);
    -    result.push(bits >> 8 & 255);
    -    result.push(bits & 255);
    -  } else if (tailbits === 18) {
    -    result.push(bits >> 10 & 255);
    -    result.push(bits >> 2 & 255);
    -  } else if (tailbits === 12) {
    -    result.push(bits >> 4 & 255);
    -  }
    -  return new Uint8Array(result);
    -}
    -function representYamlBinary(object) {
    -  var result = "", bits = 0, idx, tail, max2 = object.length, map4 = BASE64_MAP;
    -  for (idx = 0; idx < max2; idx++) {
    -    if (idx % 3 === 0 && idx) {
    -      result += map4[bits >> 18 & 63];
    -      result += map4[bits >> 12 & 63];
    -      result += map4[bits >> 6 & 63];
    -      result += map4[bits & 63];
    -    }
    -    bits = (bits << 8) + object[idx];
    -  }
    -  tail = max2 % 3;
    -  if (tail === 0) {
    -    result += map4[bits >> 18 & 63];
    -    result += map4[bits >> 12 & 63];
    -    result += map4[bits >> 6 & 63];
    -    result += map4[bits & 63];
    -  } else if (tail === 2) {
    -    result += map4[bits >> 10 & 63];
    -    result += map4[bits >> 4 & 63];
    -    result += map4[bits << 2 & 63];
    -    result += map4[64];
    -  } else if (tail === 1) {
    -    result += map4[bits >> 2 & 63];
    -    result += map4[bits << 4 & 63];
    -    result += map4[64];
    -    result += map4[64];
    -  }
    -  return result;
    -}
    -function isBinary(obj) {
    -  return Object.prototype.toString.call(obj) === "[object Uint8Array]";
    -}
    -var binary = new type("tag:yaml.org,2002:binary", {
    -  kind: "scalar",
    -  resolve: resolveYamlBinary,
    -  construct: constructYamlBinary,
    -  predicate: isBinary,
    -  represent: representYamlBinary
    -});
    -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
    -var _toString$2 = Object.prototype.toString;
    -function resolveYamlOmap(data) {
    -  if (data === null)
    -    return true;
    -  var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;
    -  for (index = 0, length = object.length; index < length; index += 1) {
    -    pair = object[index];
    -    pairHasKey = false;
    -    if (_toString$2.call(pair) !== "[object Object]")
    -      return false;
    -    for (pairKey in pair) {
    -      if (_hasOwnProperty$3.call(pair, pairKey)) {
    -        if (!pairHasKey)
    -          pairHasKey = true;
    -        else
    -          return false;
    -      }
    -    }
    -    if (!pairHasKey)
    -      return false;
    -    if (objectKeys.indexOf(pairKey) === -1)
    -      objectKeys.push(pairKey);
    -    else
    -      return false;
    -  }
    -  return true;
    -}
    -function constructYamlOmap(data) {
    -  return data !== null ? data : [];
    -}
    -var omap = new type("tag:yaml.org,2002:omap", {
    -  kind: "sequence",
    -  resolve: resolveYamlOmap,
    -  construct: constructYamlOmap
    -});
    -var _toString$1 = Object.prototype.toString;
    -function resolveYamlPairs(data) {
    -  if (data === null)
    -    return true;
    -  var index, length, pair, keys, result, object = data;
    -  result = new Array(object.length);
    -  for (index = 0, length = object.length; index < length; index += 1) {
    -    pair = object[index];
    -    if (_toString$1.call(pair) !== "[object Object]")
    -      return false;
    -    keys = Object.keys(pair);
    -    if (keys.length !== 1)
    -      return false;
    -    result[index] = [keys[0], pair[keys[0]]];
    -  }
    -  return true;
    -}
    -function constructYamlPairs(data) {
    -  if (data === null)
    -    return [];
    -  var index, length, pair, keys, result, object = data;
    -  result = new Array(object.length);
    -  for (index = 0, length = object.length; index < length; index += 1) {
    -    pair = object[index];
    -    keys = Object.keys(pair);
    -    result[index] = [keys[0], pair[keys[0]]];
    -  }
    -  return result;
    -}
    -var pairs = new type("tag:yaml.org,2002:pairs", {
    -  kind: "sequence",
    -  resolve: resolveYamlPairs,
    -  construct: constructYamlPairs
    -});
    -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
    -function resolveYamlSet(data) {
    -  if (data === null)
    -    return true;
    -  var key, object = data;
    -  for (key in object) {
    -    if (_hasOwnProperty$2.call(object, key)) {
    -      if (object[key] !== null)
    -        return false;
    -    }
    -  }
    -  return true;
    -}
    -function constructYamlSet(data) {
    -  return data !== null ? data : {};
    -}
    -var set = new type("tag:yaml.org,2002:set", {
    -  kind: "mapping",
    -  resolve: resolveYamlSet,
    -  construct: constructYamlSet
    -});
    -var _default = core.extend({
    -  implicit: [
    -    timestamp,
    -    merge
    -  ],
    -  explicit: [
    -    binary,
    -    omap,
    -    pairs,
    -    set
    -  ]
    -});
    -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
    -var CONTEXT_FLOW_IN = 1;
    -var CONTEXT_FLOW_OUT = 2;
    -var CONTEXT_BLOCK_IN = 3;
    -var CONTEXT_BLOCK_OUT = 4;
    -var CHOMPING_CLIP = 1;
    -var CHOMPING_STRIP = 2;
    -var CHOMPING_KEEP = 3;
    -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
    -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
    -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
    -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
    -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
    -function _class(obj) {
    -  return Object.prototype.toString.call(obj);
    -}
    -function is_EOL(c) {
    -  return c === 10 || c === 13;
    -}
    -function is_WHITE_SPACE(c) {
    -  return c === 9 || c === 32;
    -}
    -function is_WS_OR_EOL(c) {
    -  return c === 9 || c === 32 || c === 10 || c === 13;
    -}
    -function is_FLOW_INDICATOR(c) {
    -  return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;
    -}
    -function fromHexCode(c) {
    -  var lc;
    -  if (48 <= c && c <= 57) {
    -    return c - 48;
    -  }
    -  lc = c | 32;
    -  if (97 <= lc && lc <= 102) {
    -    return lc - 97 + 10;
    -  }
    -  return -1;
    -}
    -function escapedHexLen(c) {
    -  if (c === 120) {
    -    return 2;
    -  }
    -  if (c === 117) {
    -    return 4;
    -  }
    -  if (c === 85) {
    -    return 8;
    -  }
    -  return 0;
    -}
    -function fromDecimalCode(c) {
    -  if (48 <= c && c <= 57) {
    -    return c - 48;
    -  }
    -  return -1;
    -}
    -function simpleEscapeSequence(c) {
    -  return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? "	" : c === 9 ? "	" : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : "";
    -}
    -function charFromCodepoint(c) {
    -  if (c <= 65535) {
    -    return String.fromCharCode(c);
    -  }
    -  return String.fromCharCode(
    -    (c - 65536 >> 10) + 55296,
    -    (c - 65536 & 1023) + 56320
    -  );
    -}
    -var simpleEscapeCheck = new Array(256);
    -var simpleEscapeMap = new Array(256);
    -for (i = 0; i < 256; i++) {
    -  simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
    -  simpleEscapeMap[i] = simpleEscapeSequence(i);
    -}
    -var i;
    -function State$1(input, options2) {
    -  this.input = input;
    -  this.filename = options2["filename"] || null;
    -  this.schema = options2["schema"] || _default;
    -  this.onWarning = options2["onWarning"] || null;
    -  this.legacy = options2["legacy"] || false;
    -  this.json = options2["json"] || false;
    -  this.listener = options2["listener"] || null;
    -  this.implicitTypes = this.schema.compiledImplicit;
    -  this.typeMap = this.schema.compiledTypeMap;
    -  this.length = input.length;
    -  this.position = 0;
    -  this.line = 0;
    -  this.lineStart = 0;
    -  this.lineIndent = 0;
    -  this.firstTabInLine = -1;
    -  this.documents = [];
    -}
    -function generateError(state, message) {
    -  var mark = {
    -    name: state.filename,
    -    buffer: state.input.slice(0, -1),
    -    // omit trailing \0
    -    position: state.position,
    -    line: state.line,
    -    column: state.position - state.lineStart
    -  };
    -  mark.snippet = snippet(mark);
    -  return new exception(message, mark);
    -}
    -function throwError(state, message) {
    -  throw generateError(state, message);
    -}
    -function throwWarning(state, message) {
    -  if (state.onWarning) {
    -    state.onWarning.call(null, generateError(state, message));
    -  }
    -}
    -var directiveHandlers = {
    -  YAML: function handleYamlDirective(state, name, args) {
    -    var match2, major, minor;
    -    if (state.version !== null) {
    -      throwError(state, "duplication of %YAML directive");
    -    }
    -    if (args.length !== 1) {
    -      throwError(state, "YAML directive accepts exactly one argument");
    -    }
    -    match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
    -    if (match2 === null) {
    -      throwError(state, "ill-formed argument of the YAML directive");
    -    }
    -    major = parseInt(match2[1], 10);
    -    minor = parseInt(match2[2], 10);
    -    if (major !== 1) {
    -      throwError(state, "unacceptable YAML version of the document");
    -    }
    -    state.version = args[0];
    -    state.checkLineBreaks = minor < 2;
    -    if (minor !== 1 && minor !== 2) {
    -      throwWarning(state, "unsupported YAML version of the document");
    -    }
    -  },
    -  TAG: function handleTagDirective(state, name, args) {
    -    var handle, prefix;
    -    if (args.length !== 2) {
    -      throwError(state, "TAG directive accepts exactly two arguments");
    -    }
    -    handle = args[0];
    -    prefix = args[1];
    -    if (!PATTERN_TAG_HANDLE.test(handle)) {
    -      throwError(state, "ill-formed tag handle (first argument) of the TAG directive");
    -    }
    -    if (_hasOwnProperty$1.call(state.tagMap, handle)) {
    -      throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
    -    }
    -    if (!PATTERN_TAG_URI.test(prefix)) {
    -      throwError(state, "ill-formed tag prefix (second argument) of the TAG directive");
    -    }
    -    try {
    -      prefix = decodeURIComponent(prefix);
    -    } catch (err) {
    -      throwError(state, "tag prefix is malformed: " + prefix);
    -    }
    -    state.tagMap[handle] = prefix;
    -  }
    -};
    -function captureSegment(state, start, end, checkJson) {
    -  var _position, _length, _character, _result;
    -  if (start < end) {
    -    _result = state.input.slice(start, end);
    -    if (checkJson) {
    -      for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
    -        _character = _result.charCodeAt(_position);
    -        if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
    -          throwError(state, "expected valid JSON character");
    -        }
    -      }
    -    } else if (PATTERN_NON_PRINTABLE.test(_result)) {
    -      throwError(state, "the stream contains non-printable characters");
    -    }
    -    state.result += _result;
    -  }
    -}
    -function mergeMappings(state, destination, source, overridableKeys) {
    -  var sourceKeys, key, index, quantity;
    -  if (!common.isObject(source)) {
    -    throwError(state, "cannot merge mappings; the provided source object is unacceptable");
    -  }
    -  sourceKeys = Object.keys(source);
    -  for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
    -    key = sourceKeys[index];
    -    if (!_hasOwnProperty$1.call(destination, key)) {
    -      destination[key] = source[key];
    -      overridableKeys[key] = true;
    -    }
    -  }
    -}
    -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
    -  var index, quantity;
    -  if (Array.isArray(keyNode)) {
    -    keyNode = Array.prototype.slice.call(keyNode);
    -    for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
    -      if (Array.isArray(keyNode[index])) {
    -        throwError(state, "nested arrays are not supported inside keys");
    -      }
    -      if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
    -        keyNode[index] = "[object Object]";
    -      }
    -    }
    -  }
    -  if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
    -    keyNode = "[object Object]";
    -  }
    -  keyNode = String(keyNode);
    -  if (_result === null) {
    -    _result = {};
    -  }
    -  if (keyTag === "tag:yaml.org,2002:merge") {
    -    if (Array.isArray(valueNode)) {
    -      for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
    -        mergeMappings(state, _result, valueNode[index], overridableKeys);
    -      }
    -    } else {
    -      mergeMappings(state, _result, valueNode, overridableKeys);
    -    }
    -  } else {
    -    if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
    -      state.line = startLine || state.line;
    -      state.lineStart = startLineStart || state.lineStart;
    -      state.position = startPos || state.position;
    -      throwError(state, "duplicated mapping key");
    -    }
    -    if (keyNode === "__proto__") {
    -      Object.defineProperty(_result, keyNode, {
    -        configurable: true,
    -        enumerable: true,
    -        writable: true,
    -        value: valueNode
    -      });
    -    } else {
    -      _result[keyNode] = valueNode;
    -    }
    -    delete overridableKeys[keyNode];
    -  }
    -  return _result;
    -}
    -function readLineBreak(state) {
    -  var ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch === 10) {
    -    state.position++;
    -  } else if (ch === 13) {
    -    state.position++;
    -    if (state.input.charCodeAt(state.position) === 10) {
    -      state.position++;
    -    }
    -  } else {
    -    throwError(state, "a line break is expected");
    -  }
    -  state.line += 1;
    -  state.lineStart = state.position;
    -  state.firstTabInLine = -1;
    -}
    -function skipSeparationSpace(state, allowComments, checkIndent) {
    -  var lineBreaks = 0, ch = state.input.charCodeAt(state.position);
    -  while (ch !== 0) {
    -    while (is_WHITE_SPACE(ch)) {
    -      if (ch === 9 && state.firstTabInLine === -1) {
    -        state.firstTabInLine = state.position;
    -      }
    -      ch = state.input.charCodeAt(++state.position);
    -    }
    -    if (allowComments && ch === 35) {
    -      do {
    -        ch = state.input.charCodeAt(++state.position);
    -      } while (ch !== 10 && ch !== 13 && ch !== 0);
    -    }
    -    if (is_EOL(ch)) {
    -      readLineBreak(state);
    -      ch = state.input.charCodeAt(state.position);
    -      lineBreaks++;
    -      state.lineIndent = 0;
    -      while (ch === 32) {
    -        state.lineIndent++;
    -        ch = state.input.charCodeAt(++state.position);
    -      }
    -    } else {
    -      break;
    -    }
    -  }
    -  if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
    -    throwWarning(state, "deficient indentation");
    -  }
    -  return lineBreaks;
    -}
    -function testDocumentSeparator(state) {
    -  var _position = state.position, ch;
    -  ch = state.input.charCodeAt(_position);
    -  if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {
    -    _position += 3;
    -    ch = state.input.charCodeAt(_position);
    -    if (ch === 0 || is_WS_OR_EOL(ch)) {
    -      return true;
    -    }
    -  }
    -  return false;
    -}
    -function writeFoldedLines(state, count2) {
    -  if (count2 === 1) {
    -    state.result += " ";
    -  } else if (count2 > 1) {
    -    state.result += common.repeat("\n", count2 - 1);
    -  }
    -}
    -function readPlainScalar(state, nodeIndent, withinFlowCollection) {
    -  var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
    -    return false;
    -  }
    -  if (ch === 63 || ch === 45) {
    -    following = state.input.charCodeAt(state.position + 1);
    -    if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
    -      return false;
    -    }
    -  }
    -  state.kind = "scalar";
    -  state.result = "";
    -  captureStart = captureEnd = state.position;
    -  hasPendingContent = false;
    -  while (ch !== 0) {
    -    if (ch === 58) {
    -      following = state.input.charCodeAt(state.position + 1);
    -      if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
    -        break;
    -      }
    -    } else if (ch === 35) {
    -      preceding = state.input.charCodeAt(state.position - 1);
    -      if (is_WS_OR_EOL(preceding)) {
    -        break;
    -      }
    -    } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
    -      break;
    -    } else if (is_EOL(ch)) {
    -      _line = state.line;
    -      _lineStart = state.lineStart;
    -      _lineIndent = state.lineIndent;
    -      skipSeparationSpace(state, false, -1);
    -      if (state.lineIndent >= nodeIndent) {
    -        hasPendingContent = true;
    -        ch = state.input.charCodeAt(state.position);
    -        continue;
    -      } else {
    -        state.position = captureEnd;
    -        state.line = _line;
    -        state.lineStart = _lineStart;
    -        state.lineIndent = _lineIndent;
    -        break;
    -      }
    -    }
    -    if (hasPendingContent) {
    -      captureSegment(state, captureStart, captureEnd, false);
    -      writeFoldedLines(state, state.line - _line);
    -      captureStart = captureEnd = state.position;
    -      hasPendingContent = false;
    -    }
    -    if (!is_WHITE_SPACE(ch)) {
    -      captureEnd = state.position + 1;
    -    }
    -    ch = state.input.charCodeAt(++state.position);
    -  }
    -  captureSegment(state, captureStart, captureEnd, false);
    -  if (state.result) {
    -    return true;
    -  }
    -  state.kind = _kind;
    -  state.result = _result;
    -  return false;
    -}
    -function readSingleQuotedScalar(state, nodeIndent) {
    -  var ch, captureStart, captureEnd;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch !== 39) {
    -    return false;
    -  }
    -  state.kind = "scalar";
    -  state.result = "";
    -  state.position++;
    -  captureStart = captureEnd = state.position;
    -  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    -    if (ch === 39) {
    -      captureSegment(state, captureStart, state.position, true);
    -      ch = state.input.charCodeAt(++state.position);
    -      if (ch === 39) {
    -        captureStart = state.position;
    -        state.position++;
    -        captureEnd = state.position;
    -      } else {
    -        return true;
    -      }
    -    } else if (is_EOL(ch)) {
    -      captureSegment(state, captureStart, captureEnd, true);
    -      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
    -      captureStart = captureEnd = state.position;
    -    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
    -      throwError(state, "unexpected end of the document within a single quoted scalar");
    -    } else {
    -      state.position++;
    -      captureEnd = state.position;
    -    }
    -  }
    -  throwError(state, "unexpected end of the stream within a single quoted scalar");
    -}
    -function readDoubleQuotedScalar(state, nodeIndent) {
    -  var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch !== 34) {
    -    return false;
    -  }
    -  state.kind = "scalar";
    -  state.result = "";
    -  state.position++;
    -  captureStart = captureEnd = state.position;
    -  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    -    if (ch === 34) {
    -      captureSegment(state, captureStart, state.position, true);
    -      state.position++;
    -      return true;
    -    } else if (ch === 92) {
    -      captureSegment(state, captureStart, state.position, true);
    -      ch = state.input.charCodeAt(++state.position);
    -      if (is_EOL(ch)) {
    -        skipSeparationSpace(state, false, nodeIndent);
    -      } else if (ch < 256 && simpleEscapeCheck[ch]) {
    -        state.result += simpleEscapeMap[ch];
    -        state.position++;
    -      } else if ((tmp = escapedHexLen(ch)) > 0) {
    -        hexLength = tmp;
    -        hexResult = 0;
    -        for (; hexLength > 0; hexLength--) {
    -          ch = state.input.charCodeAt(++state.position);
    -          if ((tmp = fromHexCode(ch)) >= 0) {
    -            hexResult = (hexResult << 4) + tmp;
    -          } else {
    -            throwError(state, "expected hexadecimal character");
    -          }
    -        }
    -        state.result += charFromCodepoint(hexResult);
    -        state.position++;
    -      } else {
    -        throwError(state, "unknown escape sequence");
    -      }
    -      captureStart = captureEnd = state.position;
    -    } else if (is_EOL(ch)) {
    -      captureSegment(state, captureStart, captureEnd, true);
    -      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
    -      captureStart = captureEnd = state.position;
    -    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
    -      throwError(state, "unexpected end of the document within a double quoted scalar");
    -    } else {
    -      state.position++;
    -      captureEnd = state.position;
    -    }
    -  }
    -  throwError(state, "unexpected end of the stream within a double quoted scalar");
    -}
    -function readFlowCollection(state, nodeIndent) {
    -  var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch === 91) {
    -    terminator = 93;
    -    isMapping = false;
    -    _result = [];
    -  } else if (ch === 123) {
    -    terminator = 125;
    -    isMapping = true;
    -    _result = {};
    -  } else {
    -    return false;
    -  }
    -  if (state.anchor !== null) {
    -    state.anchorMap[state.anchor] = _result;
    -  }
    -  ch = state.input.charCodeAt(++state.position);
    -  while (ch !== 0) {
    -    skipSeparationSpace(state, true, nodeIndent);
    -    ch = state.input.charCodeAt(state.position);
    -    if (ch === terminator) {
    -      state.position++;
    -      state.tag = _tag;
    -      state.anchor = _anchor;
    -      state.kind = isMapping ? "mapping" : "sequence";
    -      state.result = _result;
    -      return true;
    -    } else if (!readNext) {
    -      throwError(state, "missed comma between flow collection entries");
    -    } else if (ch === 44) {
    -      throwError(state, "expected the node content, but found ','");
    -    }
    -    keyTag = keyNode = valueNode = null;
    -    isPair = isExplicitPair = false;
    -    if (ch === 63) {
    -      following = state.input.charCodeAt(state.position + 1);
    -      if (is_WS_OR_EOL(following)) {
    -        isPair = isExplicitPair = true;
    -        state.position++;
    -        skipSeparationSpace(state, true, nodeIndent);
    -      }
    -    }
    -    _line = state.line;
    -    _lineStart = state.lineStart;
    -    _pos = state.position;
    -    composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
    -    keyTag = state.tag;
    -    keyNode = state.result;
    -    skipSeparationSpace(state, true, nodeIndent);
    -    ch = state.input.charCodeAt(state.position);
    -    if ((isExplicitPair || state.line === _line) && ch === 58) {
    -      isPair = true;
    -      ch = state.input.charCodeAt(++state.position);
    -      skipSeparationSpace(state, true, nodeIndent);
    -      composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
    -      valueNode = state.result;
    -    }
    -    if (isMapping) {
    -      storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
    -    } else if (isPair) {
    -      _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
    -    } else {
    -      _result.push(keyNode);
    -    }
    -    skipSeparationSpace(state, true, nodeIndent);
    -    ch = state.input.charCodeAt(state.position);
    -    if (ch === 44) {
    -      readNext = true;
    -      ch = state.input.charCodeAt(++state.position);
    -    } else {
    -      readNext = false;
    -    }
    -  }
    -  throwError(state, "unexpected end of the stream within a flow collection");
    -}
    -function readBlockScalar(state, nodeIndent) {
    -  var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch === 124) {
    -    folding = false;
    -  } else if (ch === 62) {
    -    folding = true;
    -  } else {
    -    return false;
    -  }
    -  state.kind = "scalar";
    -  state.result = "";
    -  while (ch !== 0) {
    -    ch = state.input.charCodeAt(++state.position);
    -    if (ch === 43 || ch === 45) {
    -      if (CHOMPING_CLIP === chomping) {
    -        chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
    -      } else {
    -        throwError(state, "repeat of a chomping mode identifier");
    -      }
    -    } else if ((tmp = fromDecimalCode(ch)) >= 0) {
    -      if (tmp === 0) {
    -        throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one");
    -      } else if (!detectedIndent) {
    -        textIndent = nodeIndent + tmp - 1;
    -        detectedIndent = true;
    -      } else {
    -        throwError(state, "repeat of an indentation width identifier");
    -      }
    -    } else {
    -      break;
    -    }
    -  }
    -  if (is_WHITE_SPACE(ch)) {
    -    do {
    -      ch = state.input.charCodeAt(++state.position);
    -    } while (is_WHITE_SPACE(ch));
    -    if (ch === 35) {
    -      do {
    -        ch = state.input.charCodeAt(++state.position);
    -      } while (!is_EOL(ch) && ch !== 0);
    -    }
    -  }
    -  while (ch !== 0) {
    -    readLineBreak(state);
    -    state.lineIndent = 0;
    -    ch = state.input.charCodeAt(state.position);
    -    while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {
    -      state.lineIndent++;
    -      ch = state.input.charCodeAt(++state.position);
    -    }
    -    if (!detectedIndent && state.lineIndent > textIndent) {
    -      textIndent = state.lineIndent;
    -    }
    -    if (is_EOL(ch)) {
    -      emptyLines++;
    -      continue;
    -    }
    -    if (state.lineIndent < textIndent) {
    -      if (chomping === CHOMPING_KEEP) {
    -        state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
    -      } else if (chomping === CHOMPING_CLIP) {
    -        if (didReadContent) {
    -          state.result += "\n";
    -        }
    -      }
    -      break;
    -    }
    -    if (folding) {
    -      if (is_WHITE_SPACE(ch)) {
    -        atMoreIndented = true;
    -        state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
    -      } else if (atMoreIndented) {
    -        atMoreIndented = false;
    -        state.result += common.repeat("\n", emptyLines + 1);
    -      } else if (emptyLines === 0) {
    -        if (didReadContent) {
    -          state.result += " ";
    -        }
    -      } else {
    -        state.result += common.repeat("\n", emptyLines);
    -      }
    -    } else {
    -      state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
    -    }
    -    didReadContent = true;
    -    detectedIndent = true;
    -    emptyLines = 0;
    -    captureStart = state.position;
    -    while (!is_EOL(ch) && ch !== 0) {
    -      ch = state.input.charCodeAt(++state.position);
    -    }
    -    captureSegment(state, captureStart, state.position, false);
    -  }
    -  return true;
    -}
    -function readBlockSequence(state, nodeIndent) {
    -  var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;
    -  if (state.firstTabInLine !== -1)
    -    return false;
    -  if (state.anchor !== null) {
    -    state.anchorMap[state.anchor] = _result;
    -  }
    -  ch = state.input.charCodeAt(state.position);
    -  while (ch !== 0) {
    -    if (state.firstTabInLine !== -1) {
    -      state.position = state.firstTabInLine;
    -      throwError(state, "tab characters must not be used in indentation");
    -    }
    -    if (ch !== 45) {
    -      break;
    -    }
    -    following = state.input.charCodeAt(state.position + 1);
    -    if (!is_WS_OR_EOL(following)) {
    -      break;
    -    }
    -    detected = true;
    -    state.position++;
    -    if (skipSeparationSpace(state, true, -1)) {
    -      if (state.lineIndent <= nodeIndent) {
    -        _result.push(null);
    -        ch = state.input.charCodeAt(state.position);
    -        continue;
    -      }
    -    }
    -    _line = state.line;
    -    composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
    -    _result.push(state.result);
    -    skipSeparationSpace(state, true, -1);
    -    ch = state.input.charCodeAt(state.position);
    -    if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
    -      throwError(state, "bad indentation of a sequence entry");
    -    } else if (state.lineIndent < nodeIndent) {
    -      break;
    -    }
    -  }
    -  if (detected) {
    -    state.tag = _tag;
    -    state.anchor = _anchor;
    -    state.kind = "sequence";
    -    state.result = _result;
    -    return true;
    -  }
    -  return false;
    -}
    -function readBlockMapping(state, nodeIndent, flowIndent) {
    -  var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
    -  if (state.firstTabInLine !== -1)
    -    return false;
    -  if (state.anchor !== null) {
    -    state.anchorMap[state.anchor] = _result;
    -  }
    -  ch = state.input.charCodeAt(state.position);
    -  while (ch !== 0) {
    -    if (!atExplicitKey && state.firstTabInLine !== -1) {
    -      state.position = state.firstTabInLine;
    -      throwError(state, "tab characters must not be used in indentation");
    -    }
    -    following = state.input.charCodeAt(state.position + 1);
    -    _line = state.line;
    -    if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
    -      if (ch === 63) {
    -        if (atExplicitKey) {
    -          storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
    -          keyTag = keyNode = valueNode = null;
    -        }
    -        detected = true;
    -        atExplicitKey = true;
    -        allowCompact = true;
    -      } else if (atExplicitKey) {
    -        atExplicitKey = false;
    -        allowCompact = true;
    -      } else {
    -        throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
    -      }
    -      state.position += 1;
    -      ch = following;
    -    } else {
    -      _keyLine = state.line;
    -      _keyLineStart = state.lineStart;
    -      _keyPos = state.position;
    -      if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
    -        break;
    -      }
    -      if (state.line === _line) {
    -        ch = state.input.charCodeAt(state.position);
    -        while (is_WHITE_SPACE(ch)) {
    -          ch = state.input.charCodeAt(++state.position);
    -        }
    -        if (ch === 58) {
    -          ch = state.input.charCodeAt(++state.position);
    -          if (!is_WS_OR_EOL(ch)) {
    -            throwError(state, "a whitespace character is expected after the key-value separator within a block mapping");
    -          }
    -          if (atExplicitKey) {
    -            storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
    -            keyTag = keyNode = valueNode = null;
    -          }
    -          detected = true;
    -          atExplicitKey = false;
    -          allowCompact = false;
    -          keyTag = state.tag;
    -          keyNode = state.result;
    -        } else if (detected) {
    -          throwError(state, "can not read an implicit mapping pair; a colon is missed");
    -        } else {
    -          state.tag = _tag;
    -          state.anchor = _anchor;
    -          return true;
    -        }
    -      } else if (detected) {
    -        throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key");
    -      } else {
    -        state.tag = _tag;
    -        state.anchor = _anchor;
    -        return true;
    -      }
    -    }
    -    if (state.line === _line || state.lineIndent > nodeIndent) {
    -      if (atExplicitKey) {
    -        _keyLine = state.line;
    -        _keyLineStart = state.lineStart;
    -        _keyPos = state.position;
    -      }
    -      if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
    -        if (atExplicitKey) {
    -          keyNode = state.result;
    -        } else {
    -          valueNode = state.result;
    -        }
    -      }
    -      if (!atExplicitKey) {
    -        storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
    -        keyTag = keyNode = valueNode = null;
    -      }
    -      skipSeparationSpace(state, true, -1);
    -      ch = state.input.charCodeAt(state.position);
    -    }
    -    if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
    -      throwError(state, "bad indentation of a mapping entry");
    -    } else if (state.lineIndent < nodeIndent) {
    -      break;
    -    }
    -  }
    -  if (atExplicitKey) {
    -    storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
    -  }
    -  if (detected) {
    -    state.tag = _tag;
    -    state.anchor = _anchor;
    -    state.kind = "mapping";
    -    state.result = _result;
    -  }
    -  return detected;
    -}
    -function readTagProperty(state) {
    -  var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch !== 33)
    -    return false;
    -  if (state.tag !== null) {
    -    throwError(state, "duplication of a tag property");
    -  }
    -  ch = state.input.charCodeAt(++state.position);
    -  if (ch === 60) {
    -    isVerbatim = true;
    -    ch = state.input.charCodeAt(++state.position);
    -  } else if (ch === 33) {
    -    isNamed = true;
    -    tagHandle = "!!";
    -    ch = state.input.charCodeAt(++state.position);
    -  } else {
    -    tagHandle = "!";
    -  }
    -  _position = state.position;
    -  if (isVerbatim) {
    -    do {
    -      ch = state.input.charCodeAt(++state.position);
    -    } while (ch !== 0 && ch !== 62);
    -    if (state.position < state.length) {
    -      tagName = state.input.slice(_position, state.position);
    -      ch = state.input.charCodeAt(++state.position);
    -    } else {
    -      throwError(state, "unexpected end of the stream within a verbatim tag");
    -    }
    -  } else {
    -    while (ch !== 0 && !is_WS_OR_EOL(ch)) {
    -      if (ch === 33) {
    -        if (!isNamed) {
    -          tagHandle = state.input.slice(_position - 1, state.position + 1);
    -          if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
    -            throwError(state, "named tag handle cannot contain such characters");
    -          }
    -          isNamed = true;
    -          _position = state.position + 1;
    -        } else {
    -          throwError(state, "tag suffix cannot contain exclamation marks");
    -        }
    -      }
    -      ch = state.input.charCodeAt(++state.position);
    -    }
    -    tagName = state.input.slice(_position, state.position);
    -    if (PATTERN_FLOW_INDICATORS.test(tagName)) {
    -      throwError(state, "tag suffix cannot contain flow indicator characters");
    -    }
    -  }
    -  if (tagName && !PATTERN_TAG_URI.test(tagName)) {
    -    throwError(state, "tag name cannot contain such characters: " + tagName);
    -  }
    -  try {
    -    tagName = decodeURIComponent(tagName);
    -  } catch (err) {
    -    throwError(state, "tag name is malformed: " + tagName);
    -  }
    -  if (isVerbatim) {
    -    state.tag = tagName;
    -  } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {
    -    state.tag = state.tagMap[tagHandle] + tagName;
    -  } else if (tagHandle === "!") {
    -    state.tag = "!" + tagName;
    -  } else if (tagHandle === "!!") {
    -    state.tag = "tag:yaml.org,2002:" + tagName;
    -  } else {
    -    throwError(state, 'undeclared tag handle "' + tagHandle + '"');
    -  }
    -  return true;
    -}
    -function readAnchorProperty(state) {
    -  var _position, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch !== 38)
    -    return false;
    -  if (state.anchor !== null) {
    -    throwError(state, "duplication of an anchor property");
    -  }
    -  ch = state.input.charCodeAt(++state.position);
    -  _position = state.position;
    -  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    -    ch = state.input.charCodeAt(++state.position);
    -  }
    -  if (state.position === _position) {
    -    throwError(state, "name of an anchor node must contain at least one character");
    -  }
    -  state.anchor = state.input.slice(_position, state.position);
    -  return true;
    -}
    -function readAlias(state) {
    -  var _position, alias, ch;
    -  ch = state.input.charCodeAt(state.position);
    -  if (ch !== 42)
    -    return false;
    -  ch = state.input.charCodeAt(++state.position);
    -  _position = state.position;
    -  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    -    ch = state.input.charCodeAt(++state.position);
    -  }
    -  if (state.position === _position) {
    -    throwError(state, "name of an alias node must contain at least one character");
    -  }
    -  alias = state.input.slice(_position, state.position);
    -  if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {
    -    throwError(state, 'unidentified alias "' + alias + '"');
    -  }
    -  state.result = state.anchorMap[alias];
    -  skipSeparationSpace(state, true, -1);
    -  return true;
    -}
    -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
    -  var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;
    -  if (state.listener !== null) {
    -    state.listener("open", state);
    -  }
    -  state.tag = null;
    -  state.anchor = null;
    -  state.kind = null;
    -  state.result = null;
    -  allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
    -  if (allowToSeek) {
    -    if (skipSeparationSpace(state, true, -1)) {
    -      atNewLine = true;
    -      if (state.lineIndent > parentIndent) {
    -        indentStatus = 1;
    -      } else if (state.lineIndent === parentIndent) {
    -        indentStatus = 0;
    -      } else if (state.lineIndent < parentIndent) {
    -        indentStatus = -1;
    -      }
    -    }
    -  }
    -  if (indentStatus === 1) {
    -    while (readTagProperty(state) || readAnchorProperty(state)) {
    -      if (skipSeparationSpace(state, true, -1)) {
    -        atNewLine = true;
    -        allowBlockCollections = allowBlockStyles;
    -        if (state.lineIndent > parentIndent) {
    -          indentStatus = 1;
    -        } else if (state.lineIndent === parentIndent) {
    -          indentStatus = 0;
    -        } else if (state.lineIndent < parentIndent) {
    -          indentStatus = -1;
    -        }
    -      } else {
    -        allowBlockCollections = false;
    -      }
    -    }
    -  }
    -  if (allowBlockCollections) {
    -    allowBlockCollections = atNewLine || allowCompact;
    -  }
    -  if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
    -    if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
    -      flowIndent = parentIndent;
    -    } else {
    -      flowIndent = parentIndent + 1;
    -    }
    -    blockIndent = state.position - state.lineStart;
    -    if (indentStatus === 1) {
    -      if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {
    -        hasContent = true;
    -      } else {
    -        if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {
    -          hasContent = true;
    -        } else if (readAlias(state)) {
    -          hasContent = true;
    -          if (state.tag !== null || state.anchor !== null) {
    -            throwError(state, "alias node should not have any properties");
    -          }
    -        } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
    -          hasContent = true;
    -          if (state.tag === null) {
    -            state.tag = "?";
    -          }
    -        }
    -        if (state.anchor !== null) {
    -          state.anchorMap[state.anchor] = state.result;
    -        }
    -      }
    -    } else if (indentStatus === 0) {
    -      hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
    -    }
    -  }
    -  if (state.tag === null) {
    -    if (state.anchor !== null) {
    -      state.anchorMap[state.anchor] = state.result;
    -    }
    -  } else if (state.tag === "?") {
    -    if (state.result !== null && state.kind !== "scalar") {
    -      throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"');
    -    }
    -    for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
    -      type2 = state.implicitTypes[typeIndex];
    -      if (type2.resolve(state.result)) {
    -        state.result = type2.construct(state.result);
    -        state.tag = type2.tag;
    -        if (state.anchor !== null) {
    -          state.anchorMap[state.anchor] = state.result;
    -        }
    -        break;
    -      }
    -    }
    -  } else if (state.tag !== "!") {
    -    if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) {
    -      type2 = state.typeMap[state.kind || "fallback"][state.tag];
    -    } else {
    -      type2 = null;
    -      typeList = state.typeMap.multi[state.kind || "fallback"];
    -      for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
    -        if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
    -          type2 = typeList[typeIndex];
    -          break;
    -        }
    -      }
    -    }
    -    if (!type2) {
    -      throwError(state, "unknown tag !<" + state.tag + ">");
    -    }
    -    if (state.result !== null && type2.kind !== state.kind) {
    -      throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"');
    -    }
    -    if (!type2.resolve(state.result, state.tag)) {
    -      throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag");
    -    } else {
    -      state.result = type2.construct(state.result, state.tag);
    -      if (state.anchor !== null) {
    -        state.anchorMap[state.anchor] = state.result;
    -      }
    -    }
    -  }
    -  if (state.listener !== null) {
    -    state.listener("close", state);
    -  }
    -  return state.tag !== null || state.anchor !== null || hasContent;
    -}
    -function readDocument(state) {
    -  var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
    -  state.version = null;
    -  state.checkLineBreaks = state.legacy;
    -  state.tagMap = /* @__PURE__ */ Object.create(null);
    -  state.anchorMap = /* @__PURE__ */ Object.create(null);
    -  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    -    skipSeparationSpace(state, true, -1);
    -    ch = state.input.charCodeAt(state.position);
    -    if (state.lineIndent > 0 || ch !== 37) {
    -      break;
    -    }
    -    hasDirectives = true;
    -    ch = state.input.charCodeAt(++state.position);
    -    _position = state.position;
    -    while (ch !== 0 && !is_WS_OR_EOL(ch)) {
    -      ch = state.input.charCodeAt(++state.position);
    -    }
    -    directiveName = state.input.slice(_position, state.position);
    -    directiveArgs = [];
    -    if (directiveName.length < 1) {
    -      throwError(state, "directive name must not be less than one character in length");
    -    }
    -    while (ch !== 0) {
    -      while (is_WHITE_SPACE(ch)) {
    -        ch = state.input.charCodeAt(++state.position);
    -      }
    -      if (ch === 35) {
    -        do {
    -          ch = state.input.charCodeAt(++state.position);
    -        } while (ch !== 0 && !is_EOL(ch));
    -        break;
    -      }
    -      if (is_EOL(ch))
    -        break;
    -      _position = state.position;
    -      while (ch !== 0 && !is_WS_OR_EOL(ch)) {
    -        ch = state.input.charCodeAt(++state.position);
    -      }
    -      directiveArgs.push(state.input.slice(_position, state.position));
    -    }
    -    if (ch !== 0)
    -      readLineBreak(state);
    -    if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
    -      directiveHandlers[directiveName](state, directiveName, directiveArgs);
    -    } else {
    -      throwWarning(state, 'unknown document directive "' + directiveName + '"');
    -    }
    -  }
    -  skipSeparationSpace(state, true, -1);
    -  if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {
    -    state.position += 3;
    -    skipSeparationSpace(state, true, -1);
    -  } else if (hasDirectives) {
    -    throwError(state, "directives end mark is expected");
    -  }
    -  composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
    -  skipSeparationSpace(state, true, -1);
    -  if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
    -    throwWarning(state, "non-ASCII line breaks are interpreted as content");
    -  }
    -  state.documents.push(state.result);
    -  if (state.position === state.lineStart && testDocumentSeparator(state)) {
    -    if (state.input.charCodeAt(state.position) === 46) {
    -      state.position += 3;
    -      skipSeparationSpace(state, true, -1);
    -    }
    -    return;
    -  }
    -  if (state.position < state.length - 1) {
    -    throwError(state, "end of the stream or a document separator is expected");
    -  } else {
    -    return;
    -  }
    -}
    -function loadDocuments(input, options2) {
    -  input = String(input);
    -  options2 = options2 || {};
    -  if (input.length !== 0) {
    -    if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
    -      input += "\n";
    -    }
    -    if (input.charCodeAt(0) === 65279) {
    -      input = input.slice(1);
    -    }
    -  }
    -  var state = new State$1(input, options2);
    -  var nullpos = input.indexOf("\0");
    -  if (nullpos !== -1) {
    -    state.position = nullpos;
    -    throwError(state, "null byte is not allowed in input");
    -  }
    -  state.input += "\0";
    -  while (state.input.charCodeAt(state.position) === 32) {
    -    state.lineIndent += 1;
    -    state.position += 1;
    -  }
    -  while (state.position < state.length - 1) {
    -    readDocument(state);
    -  }
    -  return state.documents;
    -}
    -function loadAll$1(input, iterator, options2) {
    -  if (iterator !== null && typeof iterator === "object" && typeof options2 === "undefined") {
    -    options2 = iterator;
    -    iterator = null;
    -  }
    -  var documents = loadDocuments(input, options2);
    -  if (typeof iterator !== "function") {
    -    return documents;
    -  }
    -  for (var index = 0, length = documents.length; index < length; index += 1) {
    -    iterator(documents[index]);
    -  }
    -}
    -function load$1(input, options2) {
    -  var documents = loadDocuments(input, options2);
    -  if (documents.length === 0) {
    -    return void 0;
    -  } else if (documents.length === 1) {
    -    return documents[0];
    -  }
    -  throw new exception("expected a single document in the stream, but found more");
    -}
    -var loadAll_1 = loadAll$1;
    -var load_1 = load$1;
    -var loader = {
    -  loadAll: loadAll_1,
    -  load: load_1
    -};
    -var _toString = Object.prototype.toString;
    -var _hasOwnProperty = Object.prototype.hasOwnProperty;
    -var CHAR_BOM = 65279;
    -var CHAR_TAB = 9;
    -var CHAR_LINE_FEED = 10;
    -var CHAR_CARRIAGE_RETURN = 13;
    -var CHAR_SPACE = 32;
    -var CHAR_EXCLAMATION = 33;
    -var CHAR_DOUBLE_QUOTE = 34;
    -var CHAR_SHARP = 35;
    -var CHAR_PERCENT = 37;
    -var CHAR_AMPERSAND = 38;
    -var CHAR_SINGLE_QUOTE = 39;
    -var CHAR_ASTERISK = 42;
    -var CHAR_COMMA = 44;
    -var CHAR_MINUS = 45;
    -var CHAR_COLON = 58;
    -var CHAR_EQUALS = 61;
    -var CHAR_GREATER_THAN = 62;
    -var CHAR_QUESTION = 63;
    -var CHAR_COMMERCIAL_AT = 64;
    -var CHAR_LEFT_SQUARE_BRACKET = 91;
    -var CHAR_RIGHT_SQUARE_BRACKET = 93;
    -var CHAR_GRAVE_ACCENT = 96;
    -var CHAR_LEFT_CURLY_BRACKET = 123;
    -var CHAR_VERTICAL_LINE = 124;
    -var CHAR_RIGHT_CURLY_BRACKET = 125;
    -var ESCAPE_SEQUENCES = {};
    -ESCAPE_SEQUENCES[0] = "\\0";
    -ESCAPE_SEQUENCES[7] = "\\a";
    -ESCAPE_SEQUENCES[8] = "\\b";
    -ESCAPE_SEQUENCES[9] = "\\t";
    -ESCAPE_SEQUENCES[10] = "\\n";
    -ESCAPE_SEQUENCES[11] = "\\v";
    -ESCAPE_SEQUENCES[12] = "\\f";
    -ESCAPE_SEQUENCES[13] = "\\r";
    -ESCAPE_SEQUENCES[27] = "\\e";
    -ESCAPE_SEQUENCES[34] = '\\"';
    -ESCAPE_SEQUENCES[92] = "\\\\";
    -ESCAPE_SEQUENCES[133] = "\\N";
    -ESCAPE_SEQUENCES[160] = "\\_";
    -ESCAPE_SEQUENCES[8232] = "\\L";
    -ESCAPE_SEQUENCES[8233] = "\\P";
    -var DEPRECATED_BOOLEANS_SYNTAX = [
    -  "y",
    -  "Y",
    -  "yes",
    -  "Yes",
    -  "YES",
    -  "on",
    -  "On",
    -  "ON",
    -  "n",
    -  "N",
    -  "no",
    -  "No",
    -  "NO",
    -  "off",
    -  "Off",
    -  "OFF"
    -];
    -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
    -function compileStyleMap(schema3, map4) {
    -  var result, keys, index, length, tag, style, type2;
    -  if (map4 === null)
    -    return {};
    -  result = {};
    -  keys = Object.keys(map4);
    -  for (index = 0, length = keys.length; index < length; index += 1) {
    -    tag = keys[index];
    -    style = String(map4[tag]);
    -    if (tag.slice(0, 2) === "!!") {
    -      tag = "tag:yaml.org,2002:" + tag.slice(2);
    -    }
    -    type2 = schema3.compiledTypeMap["fallback"][tag];
    -    if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) {
    -      style = type2.styleAliases[style];
    -    }
    -    result[tag] = style;
    -  }
    -  return result;
    -}
    -function encodeHex(character) {
    -  var string2, handle, length;
    -  string2 = character.toString(16).toUpperCase();
    -  if (character <= 255) {
    -    handle = "x";
    -    length = 2;
    -  } else if (character <= 65535) {
    -    handle = "u";
    -    length = 4;
    -  } else if (character <= 4294967295) {
    -    handle = "U";
    -    length = 8;
    -  } else {
    -    throw new exception("code point within a string may not be greater than 0xFFFFFFFF");
    -  }
    -  return "\\" + handle + common.repeat("0", length - string2.length) + string2;
    -}
    -var QUOTING_TYPE_SINGLE = 1;
    -var QUOTING_TYPE_DOUBLE = 2;
    -function State(options2) {
    -  this.schema = options2["schema"] || _default;
    -  this.indent = Math.max(1, options2["indent"] || 2);
    -  this.noArrayIndent = options2["noArrayIndent"] || false;
    -  this.skipInvalid = options2["skipInvalid"] || false;
    -  this.flowLevel = common.isNothing(options2["flowLevel"]) ? -1 : options2["flowLevel"];
    -  this.styleMap = compileStyleMap(this.schema, options2["styles"] || null);
    -  this.sortKeys = options2["sortKeys"] || false;
    -  this.lineWidth = options2["lineWidth"] || 80;
    -  this.noRefs = options2["noRefs"] || false;
    -  this.noCompatMode = options2["noCompatMode"] || false;
    -  this.condenseFlow = options2["condenseFlow"] || false;
    -  this.quotingType = options2["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
    -  this.forceQuotes = options2["forceQuotes"] || false;
    -  this.replacer = typeof options2["replacer"] === "function" ? options2["replacer"] : null;
    -  this.implicitTypes = this.schema.compiledImplicit;
    -  this.explicitTypes = this.schema.compiledExplicit;
    -  this.tag = null;
    -  this.result = "";
    -  this.duplicates = [];
    -  this.usedDuplicates = null;
    -}
    -function indentString(string2, spaces) {
    -  var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string2.length;
    -  while (position < length) {
    -    next = string2.indexOf("\n", position);
    -    if (next === -1) {
    -      line = string2.slice(position);
    -      position = length;
    -    } else {
    -      line = string2.slice(position, next + 1);
    -      position = next + 1;
    -    }
    -    if (line.length && line !== "\n")
    -      result += ind;
    -    result += line;
    -  }
    -  return result;
    -}
    -function generateNextLine(state, level) {
    -  return "\n" + common.repeat(" ", state.indent * level);
    -}
    -function testImplicitResolving(state, str2) {
    -  var index, length, type2;
    -  for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
    -    type2 = state.implicitTypes[index];
    -    if (type2.resolve(str2)) {
    -      return true;
    -    }
    -  }
    -  return false;
    -}
    -function isWhitespace(c) {
    -  return c === CHAR_SPACE || c === CHAR_TAB;
    -}
    -function isPrintable(c) {
    -  return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;
    -}
    -function isNsCharOrWhitespace(c) {
    -  return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;
    -}
    -function isPlainSafe(c, prev, inblock) {
    -  var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
    -  var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
    -  return (
    -    // ns-plain-safe
    -    (inblock ? (
    -      // c = flow-in
    -      cIsNsCharOrWhitespace
    -    ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar
    -  );
    -}
    -function isPlainSafeFirst(c) {
    -  return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;
    -}
    -function isPlainSafeLast(c) {
    -  return !isWhitespace(c) && c !== CHAR_COLON;
    -}
    -function codePointAt(string2, pos) {
    -  var first = string2.charCodeAt(pos), second;
    -  if (first >= 55296 && first <= 56319 && pos + 1 < string2.length) {
    -    second = string2.charCodeAt(pos + 1);
    -    if (second >= 56320 && second <= 57343) {
    -      return (first - 55296) * 1024 + second - 56320 + 65536;
    -    }
    -  }
    -  return first;
    -}
    -function needIndentIndicator(string2) {
    -  var leadingSpaceRe = /^\n* /;
    -  return leadingSpaceRe.test(string2);
    -}
    -var STYLE_PLAIN = 1;
    -var STYLE_SINGLE = 2;
    -var STYLE_LITERAL = 3;
    -var STYLE_FOLDED = 4;
    -var STYLE_DOUBLE = 5;
    -function chooseScalarStyle(string2, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {
    -  var i;
    -  var char = 0;
    -  var prevChar = null;
    -  var hasLineBreak = false;
    -  var hasFoldableLine = false;
    -  var shouldTrackWidth = lineWidth !== -1;
    -  var previousLineBreak = -1;
    -  var plain = isPlainSafeFirst(codePointAt(string2, 0)) && isPlainSafeLast(codePointAt(string2, string2.length - 1));
    -  if (singleLineOnly || forceQuotes) {
    -    for (i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) {
    -      char = codePointAt(string2, i);
    -      if (!isPrintable(char)) {
    -        return STYLE_DOUBLE;
    -      }
    -      plain = plain && isPlainSafe(char, prevChar, inblock);
    -      prevChar = char;
    -    }
    -  } else {
    -    for (i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) {
    -      char = codePointAt(string2, i);
    -      if (char === CHAR_LINE_FEED) {
    -        hasLineBreak = true;
    -        if (shouldTrackWidth) {
    -          hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.
    -          i - previousLineBreak - 1 > lineWidth && string2[previousLineBreak + 1] !== " ";
    -          previousLineBreak = i;
    -        }
    -      } else if (!isPrintable(char)) {
    -        return STYLE_DOUBLE;
    -      }
    -      plain = plain && isPlainSafe(char, prevChar, inblock);
    -      prevChar = char;
    -    }
    -    hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string2[previousLineBreak + 1] !== " ");
    -  }
    -  if (!hasLineBreak && !hasFoldableLine) {
    -    if (plain && !forceQuotes && !testAmbiguousType(string2)) {
    -      return STYLE_PLAIN;
    -    }
    -    return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
    -  }
    -  if (indentPerLevel > 9 && needIndentIndicator(string2)) {
    -    return STYLE_DOUBLE;
    -  }
    -  if (!forceQuotes) {
    -    return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
    -  }
    -  return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
    -}
    -function writeScalar(state, string2, level, iskey, inblock) {
    -  state.dump = function() {
    -    if (string2.length === 0) {
    -      return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
    -    }
    -    if (!state.noCompatMode) {
    -      if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string2) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string2)) {
    -        return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string2 + '"' : "'" + string2 + "'";
    -      }
    -    }
    -    var indent = state.indent * Math.max(1, level);
    -    var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
    -    var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;
    -    function testAmbiguity(string3) {
    -      return testImplicitResolving(state, string3);
    -    }
    -    switch (chooseScalarStyle(
    -      string2,
    -      singleLineOnly,
    -      state.indent,
    -      lineWidth,
    -      testAmbiguity,
    -      state.quotingType,
    -      state.forceQuotes && !iskey,
    -      inblock
    -    )) {
    -      case STYLE_PLAIN:
    -        return string2;
    -      case STYLE_SINGLE:
    -        return "'" + string2.replace(/'/g, "''") + "'";
    -      case STYLE_LITERAL:
    -        return "|" + blockHeader(string2, state.indent) + dropEndingNewline(indentString(string2, indent));
    -      case STYLE_FOLDED:
    -        return ">" + blockHeader(string2, state.indent) + dropEndingNewline(indentString(foldString(string2, lineWidth), indent));
    -      case STYLE_DOUBLE:
    -        return '"' + escapeString(string2) + '"';
    -      default:
    -        throw new exception("impossible error: invalid scalar style");
    -    }
    -  }();
    -}
    -function blockHeader(string2, indentPerLevel) {
    -  var indentIndicator = needIndentIndicator(string2) ? String(indentPerLevel) : "";
    -  var clip = string2[string2.length - 1] === "\n";
    -  var keep = clip && (string2[string2.length - 2] === "\n" || string2 === "\n");
    -  var chomp = keep ? "+" : clip ? "" : "-";
    -  return indentIndicator + chomp + "\n";
    -}
    -function dropEndingNewline(string2) {
    -  return string2[string2.length - 1] === "\n" ? string2.slice(0, -1) : string2;
    -}
    -function foldString(string2, width) {
    -  var lineRe = /(\n+)([^\n]*)/g;
    -  var result = function() {
    -    var nextLF = string2.indexOf("\n");
    -    nextLF = nextLF !== -1 ? nextLF : string2.length;
    -    lineRe.lastIndex = nextLF;
    -    return foldLine(string2.slice(0, nextLF), width);
    -  }();
    -  var prevMoreIndented = string2[0] === "\n" || string2[0] === " ";
    -  var moreIndented;
    -  var match2;
    -  while (match2 = lineRe.exec(string2)) {
    -    var prefix = match2[1], line = match2[2];
    -    moreIndented = line[0] === " ";
    -    result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width);
    -    prevMoreIndented = moreIndented;
    -  }
    -  return result;
    -}
    -function foldLine(line, width) {
    -  if (line === "" || line[0] === " ")
    -    return line;
    -  var breakRe = / [^ ]/g;
    -  var match2;
    -  var start = 0, end, curr = 0, next = 0;
    -  var result = "";
    -  while (match2 = breakRe.exec(line)) {
    -    next = match2.index;
    -    if (next - start > width) {
    -      end = curr > start ? curr : next;
    -      result += "\n" + line.slice(start, end);
    -      start = end + 1;
    -    }
    -    curr = next;
    -  }
    -  result += "\n";
    -  if (line.length - start > width && curr > start) {
    -    result += line.slice(start, curr) + "\n" + line.slice(curr + 1);
    -  } else {
    -    result += line.slice(start);
    -  }
    -  return result.slice(1);
    -}
    -function escapeString(string2) {
    -  var result = "";
    -  var char = 0;
    -  var escapeSeq;
    -  for (var i = 0; i < string2.length; char >= 65536 ? i += 2 : i++) {
    -    char = codePointAt(string2, i);
    -    escapeSeq = ESCAPE_SEQUENCES[char];
    -    if (!escapeSeq && isPrintable(char)) {
    -      result += string2[i];
    -      if (char >= 65536)
    -        result += string2[i + 1];
    -    } else {
    -      result += escapeSeq || encodeHex(char);
    -    }
    -  }
    -  return result;
    -}
    -function writeFlowSequence(state, level, object) {
    -  var _result = "", _tag = state.tag, index, length, value;
    -  for (index = 0, length = object.length; index < length; index += 1) {
    -    value = object[index];
    -    if (state.replacer) {
    -      value = state.replacer.call(object, String(index), value);
    -    }
    -    if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) {
    -      if (_result !== "")
    -        _result += "," + (!state.condenseFlow ? " " : "");
    -      _result += state.dump;
    -    }
    -  }
    -  state.tag = _tag;
    -  state.dump = "[" + _result + "]";
    -}
    -function writeBlockSequence(state, level, object, compact) {
    -  var _result = "", _tag = state.tag, index, length, value;
    -  for (index = 0, length = object.length; index < length; index += 1) {
    -    value = object[index];
    -    if (state.replacer) {
    -      value = state.replacer.call(object, String(index), value);
    -    }
    -    if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) {
    -      if (!compact || _result !== "") {
    -        _result += generateNextLine(state, level);
    -      }
    -      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
    -        _result += "-";
    -      } else {
    -        _result += "- ";
    -      }
    -      _result += state.dump;
    -    }
    -  }
    -  state.tag = _tag;
    -  state.dump = _result || "[]";
    -}
    -function writeFlowMapping(state, level, object) {
    -  var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;
    -  for (index = 0, length = objectKeyList.length; index < length; index += 1) {
    -    pairBuffer = "";
    -    if (_result !== "")
    -      pairBuffer += ", ";
    -    if (state.condenseFlow)
    -      pairBuffer += '"';
    -    objectKey = objectKeyList[index];
    -    objectValue = object[objectKey];
    -    if (state.replacer) {
    -      objectValue = state.replacer.call(object, objectKey, objectValue);
    -    }
    -    if (!writeNode(state, level, objectKey, false, false)) {
    -      continue;
    -    }
    -    if (state.dump.length > 1024)
    -      pairBuffer += "? ";
    -    pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " ");
    -    if (!writeNode(state, level, objectValue, false, false)) {
    -      continue;
    -    }
    -    pairBuffer += state.dump;
    -    _result += pairBuffer;
    -  }
    -  state.tag = _tag;
    -  state.dump = "{" + _result + "}";
    -}
    -function writeBlockMapping(state, level, object, compact) {
    -  var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;
    -  if (state.sortKeys === true) {
    -    objectKeyList.sort();
    -  } else if (typeof state.sortKeys === "function") {
    -    objectKeyList.sort(state.sortKeys);
    -  } else if (state.sortKeys) {
    -    throw new exception("sortKeys must be a boolean or a function");
    -  }
    -  for (index = 0, length = objectKeyList.length; index < length; index += 1) {
    -    pairBuffer = "";
    -    if (!compact || _result !== "") {
    -      pairBuffer += generateNextLine(state, level);
    -    }
    -    objectKey = objectKeyList[index];
    -    objectValue = object[objectKey];
    -    if (state.replacer) {
    -      objectValue = state.replacer.call(object, objectKey, objectValue);
    -    }
    -    if (!writeNode(state, level + 1, objectKey, true, true, true)) {
    -      continue;
    -    }
    -    explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024;
    -    if (explicitPair) {
    -      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
    -        pairBuffer += "?";
    -      } else {
    -        pairBuffer += "? ";
    -      }
    -    }
    -    pairBuffer += state.dump;
    -    if (explicitPair) {
    -      pairBuffer += generateNextLine(state, level);
    -    }
    -    if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
    -      continue;
    -    }
    -    if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
    -      pairBuffer += ":";
    -    } else {
    -      pairBuffer += ": ";
    -    }
    -    pairBuffer += state.dump;
    -    _result += pairBuffer;
    -  }
    -  state.tag = _tag;
    -  state.dump = _result || "{}";
    -}
    -function detectType(state, object, explicit) {
    -  var _result, typeList, index, length, type2, style;
    -  typeList = explicit ? state.explicitTypes : state.implicitTypes;
    -  for (index = 0, length = typeList.length; index < length; index += 1) {
    -    type2 = typeList[index];
    -    if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) {
    -      if (explicit) {
    -        if (type2.multi && type2.representName) {
    -          state.tag = type2.representName(object);
    -        } else {
    -          state.tag = type2.tag;
    -        }
    -      } else {
    -        state.tag = "?";
    -      }
    -      if (type2.represent) {
    -        style = state.styleMap[type2.tag] || type2.defaultStyle;
    -        if (_toString.call(type2.represent) === "[object Function]") {
    -          _result = type2.represent(object, style);
    -        } else if (_hasOwnProperty.call(type2.represent, style)) {
    -          _result = type2.represent[style](object, style);
    -        } else {
    -          throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style');
    -        }
    -        state.dump = _result;
    -      }
    -      return true;
    -    }
    -  }
    -  return false;
    -}
    -function writeNode(state, level, object, block, compact, iskey, isblockseq) {
    -  state.tag = null;
    -  state.dump = object;
    -  if (!detectType(state, object, false)) {
    -    detectType(state, object, true);
    -  }
    -  var type2 = _toString.call(state.dump);
    -  var inblock = block;
    -  var tagStr;
    -  if (block) {
    -    block = state.flowLevel < 0 || state.flowLevel > level;
    -  }
    -  var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate;
    -  if (objectOrArray) {
    -    duplicateIndex = state.duplicates.indexOf(object);
    -    duplicate = duplicateIndex !== -1;
    -  }
    -  if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) {
    -    compact = false;
    -  }
    -  if (duplicate && state.usedDuplicates[duplicateIndex]) {
    -    state.dump = "*ref_" + duplicateIndex;
    -  } else {
    -    if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
    -      state.usedDuplicates[duplicateIndex] = true;
    -    }
    -    if (type2 === "[object Object]") {
    -      if (block && Object.keys(state.dump).length !== 0) {
    -        writeBlockMapping(state, level, state.dump, compact);
    -        if (duplicate) {
    -          state.dump = "&ref_" + duplicateIndex + state.dump;
    -        }
    -      } else {
    -        writeFlowMapping(state, level, state.dump);
    -        if (duplicate) {
    -          state.dump = "&ref_" + duplicateIndex + " " + state.dump;
    -        }
    -      }
    -    } else if (type2 === "[object Array]") {
    -      if (block && state.dump.length !== 0) {
    -        if (state.noArrayIndent && !isblockseq && level > 0) {
    -          writeBlockSequence(state, level - 1, state.dump, compact);
    -        } else {
    -          writeBlockSequence(state, level, state.dump, compact);
    -        }
    -        if (duplicate) {
    -          state.dump = "&ref_" + duplicateIndex + state.dump;
    -        }
    -      } else {
    -        writeFlowSequence(state, level, state.dump);
    -        if (duplicate) {
    -          state.dump = "&ref_" + duplicateIndex + " " + state.dump;
    -        }
    -      }
    -    } else if (type2 === "[object String]") {
    -      if (state.tag !== "?") {
    -        writeScalar(state, state.dump, level, iskey, inblock);
    -      }
    -    } else if (type2 === "[object Undefined]") {
    -      return false;
    -    } else {
    -      if (state.skipInvalid)
    -        return false;
    -      throw new exception("unacceptable kind of an object to dump " + type2);
    -    }
    -    if (state.tag !== null && state.tag !== "?") {
    -      tagStr = encodeURI(
    -        state.tag[0] === "!" ? state.tag.slice(1) : state.tag
    -      ).replace(/!/g, "%21");
    -      if (state.tag[0] === "!") {
    -        tagStr = "!" + tagStr;
    -      } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") {
    -        tagStr = "!!" + tagStr.slice(18);
    -      } else {
    -        tagStr = "!<" + tagStr + ">";
    -      }
    -      state.dump = tagStr + " " + state.dump;
    -    }
    -  }
    -  return true;
    -}
    -function getDuplicateReferences(object, state) {
    -  var objects = [], duplicatesIndexes = [], index, length;
    -  inspectNode(object, objects, duplicatesIndexes);
    -  for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
    -    state.duplicates.push(objects[duplicatesIndexes[index]]);
    -  }
    -  state.usedDuplicates = new Array(length);
    -}
    -function inspectNode(object, objects, duplicatesIndexes) {
    -  var objectKeyList, index, length;
    -  if (object !== null && typeof object === "object") {
    -    index = objects.indexOf(object);
    -    if (index !== -1) {
    -      if (duplicatesIndexes.indexOf(index) === -1) {
    -        duplicatesIndexes.push(index);
    -      }
    -    } else {
    -      objects.push(object);
    -      if (Array.isArray(object)) {
    -        for (index = 0, length = object.length; index < length; index += 1) {
    -          inspectNode(object[index], objects, duplicatesIndexes);
    -        }
    -      } else {
    -        objectKeyList = Object.keys(object);
    -        for (index = 0, length = objectKeyList.length; index < length; index += 1) {
    -          inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
    -        }
    -      }
    -    }
    -  }
    -}
    -function dump$1(input, options2) {
    -  options2 = options2 || {};
    -  var state = new State(options2);
    -  if (!state.noRefs)
    -    getDuplicateReferences(input, state);
    -  var value = input;
    -  if (state.replacer) {
    -    value = state.replacer.call({ "": value }, "", value);
    -  }
    -  if (writeNode(state, 0, value, true, true))
    -    return state.dump + "\n";
    -  return "";
    -}
    -var dump_1 = dump$1;
    -var dumper = {
    -  dump: dump_1
    -};
    -function renamed(from, to) {
    -  return function() {
    -    throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default.");
    -  };
    -}
    -var Type = type;
    -var DEFAULT_SCHEMA = _default;
    -var load = loader.load;
    -var loadAll = loader.loadAll;
    -var dump = dumper.dump;
    -var safeLoad = renamed("safeLoad", "load");
    -var safeLoadAll = renamed("safeLoadAll", "loadAll");
    -var safeDump = renamed("safeDump", "dump");
    -
    -// ../common/src/testUtil/serialize.ts
    -var CustomDump = class {
    -  constructor(data, opts) {
    -    this.data = data;
    -    this.opts = opts;
    -  }
    -  represent() {
    -    let result = dump(
    -      this.data,
    -      Object.assign({ replacer, schema: schema2 }, this.opts)
    -    );
    -    result = result.trim();
    -    if (result.includes("\n")) {
    -      result = "\n" + result;
    -    }
    -    return result;
    -  }
    -};
    -var customDumpType = new Type("!format", {
    -  kind: "scalar",
    -  resolve: () => false,
    -  instanceOf: CustomDump,
    -  represent: (d) => d.represent()
    -});
    -var schema2 = DEFAULT_SCHEMA.extend({ implicit: [customDumpType] });
    -var isObject2 = (value) => typeof value === "object" && value != null;
    -function hasSimpleChildren(value) {
    -  if (isObject2(value)) {
    -    return Object.values(value).every(
    -      (value2) => !isObject2(value2) && !Array.isArray(value2)
    -    );
    -  }
    -  if (Array.isArray(value)) {
    -    return value.every((value2) => !isObject2(value2) && !Array.isArray(value2));
    -  }
    -}
    -function replacer(key, value) {
    -  if (key === "") {
    -    return value;
    -  }
    -  if (hasSimpleChildren(value)) {
    -    return new CustomDump(value, { flowLevel: 0 });
    -  }
    -  return value;
    -}
    -
    -// ../common/src/errors.ts
    -var UnsupportedLanguageError = class extends Error {
    -  constructor(languageId) {
    -    super(
    -      `Language '${languageId}' is not implemented yet; See https://www.cursorless.org/docs/contributing/adding-a-new-language/`
    -    );
    -    this.name = "UnsupportedLanguageError";
    -  }
    -};
    -var OutdatedExtensionError = class extends Error {
    -  constructor() {
    -    super(
    -      "Cursorless Talon version is ahead of Cursorless VSCode extension version. Please update Cursorless VSCode."
    -    );
    -  }
    -};
    -var NoContainingScopeError = class extends Error {
    -  /**
    -   *
    -   * @param scopeType The scopeType for the failed match to show to the user
    -   */
    -  constructor(scopeType) {
    -    super(`Couldn't find containing ${scopeType}.`);
    -    this.name = "NoContainingScopeError";
    -  }
    -};
    -
    -// ../common/src/util/CompositeKeyMap.ts
    -var CompositeKeyMap = class {
    -  /**
    -   *
    -   * @param hashFunction A function that maps from a key to a list whose entries can be converted to string
    -   */
    -  constructor(hashFunction) {
    -    this.hashFunction = hashFunction;
    -    this.map = {};
    -  }
    -  hash(key) {
    -    return this.hashFunction(key).join("\0");
    -  }
    -  set(key, item) {
    -    this.map[this.hash(key)] = item;
    -    return this;
    -  }
    -  has(key) {
    -    return this.hash(key) in this.map;
    -  }
    -  get(key) {
    -    return this.map[this.hash(key)];
    -  }
    -  delete(key) {
    -    delete this.map[this.hash(key)];
    -    return this;
    -  }
    -  clear() {
    -    this.map = {};
    -    return this;
    -  }
    -};
    -
    -// ../common/src/ide/normalized/NormalizedIDE.ts
    -var NormalizedIDE = class extends PassthroughIDEBase {
    -  constructor(original, fakeIde, isSilent) {
    -    super(original);
    -    this.fakeIde = fakeIde;
    -    this.isSilent = isSilent;
    -    this.messages = isSilent ? fakeIde.messages : original.messages;
    -    this.configuration = fakeIde.configuration;
    -    this.globalState = fakeIde.globalState;
    -    this.clipboard = fakeIde.clipboard;
    -    this.initializeConfiguration();
    -  }
    -  initializeConfiguration() {
    -    this.configuration.mockConfigurationScope(
    -      { languageId: "css" },
    -      { wordSeparators: ["_", "-"] },
    -      true
    -    );
    -    this.configuration.mockConfigurationScope(
    -      { languageId: "scss" },
    -      { wordSeparators: ["_", "-"] },
    -      true
    -    );
    -    this.configuration.mockConfigurationScope(
    -      { languageId: "shellscript" },
    -      { wordSeparators: ["_", "-"] },
    -      true
    -    );
    -    this.configuration.mockConfiguration("experimental", {
    -      hatStability: this.configuration.getOwnConfiguration(
    -        "experimental.hatStability"
    -      ),
    -      snippetsDir: getFixturePath("cursorless-snippets")
    -    });
    -  }
    -  flashRanges(flashDescriptors) {
    -    return this.isSilent ? this.fakeIde.flashRanges(flashDescriptors) : super.flashRanges(flashDescriptors);
    -  }
    -  setHighlightRanges(highlightId, editor, ranges) {
    -    return this.isSilent ? this.fakeIde.setHighlightRanges(highlightId, editor, ranges) : super.setHighlightRanges(highlightId, editor, ranges);
    -  }
    -  async showQuickPick(_items, _options) {
    -    return this.isSilent ? this.fakeIde.showQuickPick(_items, _options) : super.showQuickPick(_items, _options);
    -  }
    -};
    -
    -// ../common/src/types/command/command.types.ts
    -var LATEST_VERSION = 7;
    -
    -// ../common/src/types/command/PartialTargetDescriptor.types.ts
    -var simpleSurroundingPairNames = [
    -  "angleBrackets",
    -  "backtickQuotes",
    -  "curlyBrackets",
    -  "doubleQuotes",
    -  "escapedDoubleQuotes",
    -  "escapedParentheses",
    -  "escapedSquareBrackets",
    -  "escapedSingleQuotes",
    -  "parentheses",
    -  "singleQuotes",
    -  "squareBrackets"
    -];
    -var complexSurroundingPairNames = [
    -  "string",
    -  "any",
    -  "collectionBoundary"
    -];
    -var surroundingPairNames = [
    -  ...simpleSurroundingPairNames,
    -  ...complexSurroundingPairNames
    -];
    -var simpleScopeTypeTypes = [
    -  "argumentOrParameter",
    -  "anonymousFunction",
    -  "attribute",
    -  "branch",
    -  "class",
    -  "className",
    -  "collectionItem",
    -  "collectionKey",
    -  "comment",
    -  "private.fieldAccess",
    -  "functionCall",
    -  "functionCallee",
    -  "functionName",
    -  "ifStatement",
    -  "instance",
    -  "list",
    -  "map",
    -  "name",
    -  "namedFunction",
    -  "regularExpression",
    -  "statement",
    -  "string",
    -  "type",
    -  "value",
    -  "condition",
    -  "section",
    -  "sectionLevelOne",
    -  "sectionLevelTwo",
    -  "sectionLevelThree",
    -  "sectionLevelFour",
    -  "sectionLevelFive",
    -  "sectionLevelSix",
    -  "selector",
    -  "private.switchStatementSubject",
    -  "unit",
    -  "xmlBothTags",
    -  "xmlElement",
    -  "xmlEndTag",
    -  "xmlStartTag",
    -  // Latex scope types
    -  "part",
    -  "chapter",
    -  "subSection",
    -  "subSubSection",
    -  "namedParagraph",
    -  "subParagraph",
    -  "environment",
    -  // Text based scopes
    -  "character",
    -  "word",
    -  "token",
    -  "identifier",
    -  "line",
    -  "sentence",
    -  "paragraph",
    -  "document",
    -  "nonWhitespaceSequence",
    -  "boundedNonWhitespaceSequence",
    -  "url",
    -  "notebookCell",
    -  // Talon
    -  "command"
    -];
    -function isSimpleScopeType(scopeType) {
    -  return simpleScopeTypeTypes.includes(scopeType.type);
    -}
    -
    -// ../common/src/types/command/ActionDescriptor.ts
    -var simpleActionNames = [
    -  "breakLine",
    -  "clearAndSetSelection",
    -  "copyToClipboard",
    -  "cutToClipboard",
    -  "decrement",
    -  "deselect",
    -  "editNewLineAfter",
    -  "editNewLineBefore",
    -  "experimental.setInstanceReference",
    -  "extractVariable",
    -  "findInDocument",
    -  "findInWorkspace",
    -  "foldRegion",
    -  "followLink",
    -  "increment",
    -  "indentLine",
    -  "insertCopyAfter",
    -  "insertCopyBefore",
    -  "insertEmptyLineAfter",
    -  "insertEmptyLineBefore",
    -  "insertEmptyLinesAround",
    -  "joinLines",
    -  "outdentLine",
    -  "randomizeTargets",
    -  "remove",
    -  "rename",
    -  "revealDefinition",
    -  "revealTypeDefinition",
    -  "reverseTargets",
    -  "scrollToBottom",
    -  "scrollToCenter",
    -  "scrollToTop",
    -  "setSelection",
    -  "setSelectionAfter",
    -  "setSelectionBefore",
    -  "showDebugHover",
    -  "showHover",
    -  "showQuickFix",
    -  "showReferences",
    -  "sortTargets",
    -  "toggleLineBreakpoint",
    -  "toggleLineComment",
    -  "unfoldRegion",
    -  "private.setKeyboardTarget",
    -  "private.showParseTree",
    -  "private.getTargets"
    -];
    -var complexActionNames = [
    -  "callAsFunction",
    -  "editNew",
    -  "executeCommand",
    -  "generateSnippet",
    -  "getText",
    -  "highlight",
    -  "insertSnippet",
    -  "moveToTarget",
    -  "pasteFromClipboard",
    -  "replace",
    -  "replaceWithTarget",
    -  "rewrapWithPairedDelimiter",
    -  "swapTargets",
    -  "wrapWithPairedDelimiter",
    -  "wrapWithSnippet"
    -];
    -var actionNames = [
    -  ...simpleActionNames,
    -  ...complexActionNames
    -];
    -
    -// ../common/src/util/itertools.ts
    -function groupBy(list, func) {
    -  const map4 = /* @__PURE__ */ new Map();
    -  list.forEach((element) => {
    -    const key = func(element);
    -    let group;
    -    if (map4.has(key)) {
    -      group = map4.get(key);
    -    } else {
    -      group = [];
    -      map4.set(key, group);
    -    }
    -    group.push(element);
    -  });
    -  return map4;
    -}
    -function isEmptyIterable(iterable) {
    -  for (const _ of iterable) {
    -    return false;
    -  }
    -  return true;
    -}
    -
    -// ../common/src/FakeCommandServerApi.ts
    -var FakeCommandServerApi = class {
    -  constructor() {
    -    this.signals = { prePhrase: { getVersion: async () => null } };
    -  }
    -  async getFocusedElementType() {
    -    return this.focusedElementType;
    -  }
    -  setFocusedElementType(focusedElementType) {
    -    this.focusedElementType = focusedElementType;
    -  }
    -};
    -
    -// ../common/src/util/type.ts
    -function isString(arg) {
    -  return typeof arg === "string" || arg instanceof String;
    -}
    -
    -// ../common/src/util/ensureCommandShape.ts
    -function ensureCommandShape(args) {
    -  const [spokenFormOrCommand, ...rest] = args;
    -  return handleLegacyCommandShape(spokenFormOrCommand, rest);
    -}
    -function handleLegacyCommandShape(spokenFormOrCommand, rest) {
    -  let command;
    -  if (isString(spokenFormOrCommand)) {
    -    const spokenForm = spokenFormOrCommand;
    -    const [action, targets, ...extraArgs] = rest;
    -    command = {
    -      version: 0,
    -      spokenForm,
    -      action,
    -      targets,
    -      extraArgs,
    -      usePrePhraseSnapshot: false
    -    };
    -  } else {
    -    command = spokenFormOrCommand;
    -  }
    -  return command;
    -}
    -
    -// ../common/src/util/clientSupportsFallback.ts
    -function clientSupportsFallback(command) {
    -  return command.version >= 7;
    -}
    -
    -// ../common/src/scopeSupportFacets/scopeSupportFacets.types.ts
    -var ScopeSupportFacetLevel = /* @__PURE__ */ ((ScopeSupportFacetLevel2) => {
    -  ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supported"] = 0] = "supported";
    -  ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supportedLegacy"] = 1] = "supportedLegacy";
    -  ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["unsupported"] = 2] = "unsupported";
    -  ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["notApplicable"] = 3] = "notApplicable";
    -  return ScopeSupportFacetLevel2;
    -})(ScopeSupportFacetLevel || {});
    -
    -// ../common/src/scopeSupportFacets/c.ts
    -var { supported, unsupported, notApplicable } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/clojure.ts
    -var { supported: supported2, unsupported: unsupported2, notApplicable: notApplicable2 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/cpp.ts
    -var { supported: supported3, unsupported: unsupported3, notApplicable: notApplicable3 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/csharp.ts
    -var { supported: supported4, unsupported: unsupported4, notApplicable: notApplicable4 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/css.ts
    -var { supported: supported5, unsupported: unsupported5, notApplicable: notApplicable5 } = ScopeSupportFacetLevel;
    -var cssScopeSupport = {
    -  "comment.line": supported5,
    -  "comment.block": supported5,
    -  "string.singleLine": supported5
    -};
    -
    -// ../common/src/scopeSupportFacets/go.ts
    -var { supported: supported6, unsupported: unsupported6, notApplicable: notApplicable6 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/html.ts
    -var { supported: supported7, notApplicable: notApplicable7 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/java.ts
    -var { supported: supported8, notApplicable: notApplicable8 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/javascript.ts
    -var { supported: supported9, unsupported: unsupported7, notApplicable: notApplicable9 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/json.ts
    -var { supported: supported10 } = ScopeSupportFacetLevel;
    -var jsonScopeSupport = {
    -  "comment.line": supported10,
    -  "comment.block": supported10
    -};
    -
    -// ../common/src/scopeSupportFacets/jsonc.ts
    -var { supported: supported11, unsupported: unsupported8, notApplicable: notApplicable10 } = ScopeSupportFacetLevel;
    -var jsoncScopeSupport = {
    -  ...jsonScopeSupport
    -};
    -
    -// ../common/src/scopeSupportFacets/latex.ts
    -var { supported: supported12, unsupported: unsupported9, notApplicable: notApplicable11 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/lua.ts
    -var { supported: supported13, notApplicable: notApplicable12 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/markdown.ts
    -var { supported: supported14, unsupported: unsupported10, notApplicable: notApplicable13 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/python.ts
    -var { supported: supported15, supportedLegacy, notApplicable: notApplicable14 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/ruby.ts
    -var { supported: supported16, unsupported: unsupported11, notApplicable: notApplicable15 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/rust.ts
    -var { supported: supported17, unsupported: unsupported12, notApplicable: notApplicable16 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/scala.ts
    -var { supported: supported18, unsupported: unsupported13, notApplicable: notApplicable17 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/scss.ts
    -var { supported: supported19, unsupported: unsupported14, notApplicable: notApplicable18 } = ScopeSupportFacetLevel;
    -var scssScopeSupport = {
    -  ...cssScopeSupport
    -};
    -
    -// ../common/src/scopeSupportFacets/talon.ts
    -var { supported: supported20 } = ScopeSupportFacetLevel;
    -
    -// ../common/src/scopeSupportFacets/typescript.ts
    -var { supported: supported21 } = ScopeSupportFacetLevel;
    -var typescriptScopeSupport = {
    -  // ...javascriptScopeSupport,
    -  "type.variable": supported21,
    -  "type.formalParameter": supported21,
    -  "type.return": supported21,
    -  "type.field": supported21,
    -  "type.interface": supported21,
    -  "type.alias": supported21,
    -  "name.field": supported21,
    -  "value.field": supported21
    -};
    -
    -// ../common/src/scopeSupportFacets/typescriptreact.ts
    -var { supported: supported22, unsupported: unsupported15, notApplicable: notApplicable19 } = ScopeSupportFacetLevel;
    -var typescriptreactScopeSupport = {
    -  ...typescriptScopeSupport
    -};
    -
    -// ../common/src/StoredTargetKey.ts
    -var storedTargetKeys = [
    -  "that",
    -  "source",
    -  "instanceReference",
    -  "keyboard"
    -];
    -
    -// ../cursorless-engine/src/processTargets/targets/BaseTarget.ts
    -var import_lodash9 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/rangeUtils.ts
    -function expandToFullLine(editor, range4) {
    -  return new Range(
    -    new Position(range4.start.line, 0),
    -    editor.document.lineAt(range4.end).range.end
    -  );
    -}
    -function getRangeLength(editor, range4) {
    -  return range4.isEmpty ? 0 : editor.document.offsetAt(range4.end) - editor.document.offsetAt(range4.start);
    -}
    -function strictlyContains(range1, rangeOrPosition) {
    -  const [start, end] = rangeOrPosition instanceof Position ? [rangeOrPosition, rangeOrPosition] : [rangeOrPosition.start, rangeOrPosition.end];
    -  return range1.start.isBefore(start) && range1.end.isAfter(end);
    -}
    -function union(range4, ...unionWith) {
    -  for (const r of unionWith) {
    -    if (r != null) {
    -      range4 = range4.union(r);
    -    }
    -  }
    -  return range4;
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/DestinationImpl.ts
    -var DestinationImpl = class _DestinationImpl {
    -  constructor(target, insertionMode, indentationString) {
    -    this.target = target;
    -    this.insertionMode = insertionMode;
    -    this.contentRange = getContentRange(target.contentRange, insertionMode);
    -    this.isBefore = insertionMode === "before";
    -    this.isLineDelimiter = target.insertionDelimiter.includes("\n");
    -    this.indentationString = indentationString ?? this.isLineDelimiter ? getIndentationString(target.editor, target.contentRange) : "";
    -    this.insertionPrefix = target.prefixRange != null ? target.editor.document.getText(target.prefixRange) : void 0;
    -  }
    -  get contentSelection() {
    -    return this.contentRange.toSelection(this.target.isReversed);
    -  }
    -  get editor() {
    -    return this.target.editor;
    -  }
    -  get insertionDelimiter() {
    -    return this.target.insertionDelimiter;
    -  }
    -  get isRaw() {
    -    return this.target.isRaw;
    -  }
    -  /**
    -   * Creates a new destination with the given target while preserving insertion
    -   * mode and indentation string from this destination. This is important
    -   * because our "edit new" code updates the content range of the target when
    -   * multiple edits are performed in the same document, but we want to insert
    -   * the original indentation.
    -   */
    -  withTarget(target) {
    -    return new _DestinationImpl(
    -      target,
    -      this.insertionMode,
    -      this.indentationString
    -    );
    -  }
    -  getEditNewActionType() {
    -    if (this.insertionMode === "after" && this.target.contentRange.isSingleLine && this.insertionDelimiter === "\n" && this.insertionPrefix == null) {
    -      return "insertLineAfter";
    -    }
    -    return "edit";
    -  }
    -  constructChangeEdit(text) {
    -    return this.insertionMode === "before" || this.insertionMode === "after" ? this.constructEditWithDelimiters(text) : this.constructEditWithoutDelimiters(text);
    -  }
    -  constructEditWithDelimiters(text) {
    -    const range4 = this.getEditRange();
    -    const editText2 = this.getEditText(text);
    -    const updateRange = (range5) => {
    -      return this.updateRange(range5, text);
    -    };
    -    return {
    -      range: range4,
    -      text: editText2,
    -      isReplace: this.insertionMode === "after",
    -      updateRange
    -    };
    -  }
    -  constructEditWithoutDelimiters(text) {
    -    return {
    -      range: this.contentRange,
    -      text,
    -      updateRange: (range4) => range4
    -    };
    -  }
    -  getEditRange() {
    -    const position = (() => {
    -      const insertionPosition = this.isBefore ? union(this.target.contentRange, this.target.prefixRange).start : this.target.contentRange.end;
    -      if (this.isLineDelimiter) {
    -        const line = this.editor.document.lineAt(insertionPosition);
    -        const nonWhitespaceCharacterIndex = this.isBefore ? line.firstNonWhitespaceCharacterIndex : line.lastNonWhitespaceCharacterIndex;
    -        if (insertionPosition.character === nonWhitespaceCharacterIndex) {
    -          return this.isBefore ? line.range.start : line.range.end;
    -        }
    -      }
    -      return insertionPosition;
    -    })();
    -    return new Range(position, position);
    -  }
    -  getEditText(text) {
    -    const insertionText = this.indentationString + (this.insertionPrefix ?? "") + text;
    -    return this.isBefore ? insertionText + this.insertionDelimiter : this.insertionDelimiter + insertionText;
    -  }
    -  updateRange(range4, text) {
    -    const baseStartOffset = this.editor.document.offsetAt(range4.start) + this.indentationString.length + (this.insertionPrefix?.length ?? 0);
    -    const startIndex = this.isBefore ? baseStartOffset : baseStartOffset + this.getLengthOfInsertionDelimiter();
    -    const endIndex = startIndex + text.length;
    -    return new Range(
    -      this.editor.document.positionAt(startIndex),
    -      this.editor.document.positionAt(endIndex)
    -    );
    -  }
    -  getLengthOfInsertionDelimiter() {
    -    if (this.editor.document.eol === "CRLF") {
    -      const matches = this.insertionDelimiter.match(/\n/g);
    -      if (matches != null) {
    -        return this.insertionDelimiter.length + matches.length;
    -      }
    -    }
    -    return this.insertionDelimiter.length;
    -  }
    -};
    -function getIndentationString(editor, range4) {
    -  let length = Number.MAX_SAFE_INTEGER;
    -  let indentationString = "";
    -  for (let i = range4.start.line; i <= range4.end.line; ++i) {
    -    const line = editor.document.lineAt(i);
    -    if (!line.isEmptyOrWhitespace && line.firstNonWhitespaceCharacterIndex < length) {
    -      length = line.firstNonWhitespaceCharacterIndex;
    -      indentationString = line.text.slice(0, length);
    -    }
    -  }
    -  return indentationString;
    -}
    -function getContentRange(contentRange, insertionMode) {
    -  switch (insertionMode) {
    -    case "before":
    -      return contentRange.start.toEmptyRange();
    -    case "after":
    -      return contentRange.end.toEmptyRange();
    -    case "to":
    -      return contentRange;
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/util/createContinuousRange.ts
    -function createContinuousRange(startTarget, endTarget, includeStart, includeEnd) {
    -  return createContinuousRangeFromRanges(
    -    startTarget.contentRange,
    -    endTarget.contentRange,
    -    includeStart,
    -    includeEnd
    -  );
    -}
    -function createContinuousRangeFromRanges(startRange, endRange, includeStart, includeEnd) {
    -  return new Range(
    -    includeStart ? startRange.start : startRange.end,
    -    includeEnd ? endRange.end : endRange.start
    -  );
    -}
    -function createContinuousLineRange(startTarget, endTarget, includeStart, includeEnd) {
    -  const start = includeStart ? startTarget.contentRange.start : new Position(startTarget.contentRange.end.line + 1, 0);
    -  const end = includeEnd ? endTarget.contentRange.end : endTarget.editor.document.lineAt(endTarget.contentRange.start.line - 1).range.end;
    -  return new Range(start, end);
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/BaseTarget.ts
    -var BaseTarget = class _BaseTarget {
    -  constructor(parameters) {
    -    this.isLine = false;
    -    this.isToken = true;
    -    this.hasExplicitScopeType = true;
    -    this.hasExplicitRange = true;
    -    this.isRaw = false;
    -    this.isImplicit = false;
    -    this.isNotebookCell = false;
    -    this.isWord = false;
    -    this.state = {
    -      editor: parameters.editor,
    -      isReversed: parameters.isReversed,
    -      contentRange: parameters.contentRange,
    -      thatTarget: parameters.thatTarget
    -    };
    -  }
    -  get editor() {
    -    return this.state.editor;
    -  }
    -  get isReversed() {
    -    return this.state.isReversed;
    -  }
    -  get thatTarget() {
    -    return this.state.thatTarget != null ? this.state.thatTarget.thatTarget : this;
    -  }
    -  get contentText() {
    -    return this.editor.document.getText(this.contentRange);
    -  }
    -  get contentSelection() {
    -    return this.contentRange.toSelection(this.isReversed);
    -  }
    -  get contentRange() {
    -    return this.state.contentRange;
    -  }
    -  constructRemovalEdit() {
    -    return {
    -      range: this.getRemovalRange(),
    -      text: "",
    -      updateRange: (range4) => range4
    -    };
    -  }
    -  getRemovalHighlightRange() {
    -    return this.getRemovalRange();
    -  }
    -  withThatTarget(thatTarget) {
    -    return this.cloneWith({ thatTarget });
    -  }
    -  withContentRange(contentRange) {
    -    return this.cloneWith({ contentRange });
    -  }
    -  getInteriorStrict() {
    -    throw new NoContainingScopeError("interior");
    -  }
    -  getBoundaryStrict() {
    -    throw new NoContainingScopeError("boundary");
    -  }
    -  cloneWith(parameters) {
    -    const constructor = Object.getPrototypeOf(this).constructor;
    -    return new constructor({
    -      ...this.getCloneParameters(),
    -      ...parameters
    -    });
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    const { constructor } = Object.getPrototypeOf(this);
    -    return new constructor({
    -      ...this.getCloneParameters(),
    -      isReversed,
    -      contentRange: createContinuousRange(this, endTarget, true, true)
    -    });
    -  }
    -  isEqual(otherTarget) {
    -    return otherTarget instanceof _BaseTarget && (0, import_lodash9.isEqual)(this.getEqualityParameters(), otherTarget.getEqualityParameters());
    -  }
    -  /**
    -   * Constructs an object that can be used for determining equality between two
    -   * {@link BaseTarget} objects. We proceed by just getting the objects clone
    -   * parameters and removing the `thatTarget`.
    -   *
    -   * We would prefer to instead merge the `thatTarget`s into a list. See #780
    -   * for more details.
    -   *
    -   * @returns The object to be used for determining equality
    -   */
    -  getEqualityParameters() {
    -    const { thatTarget, ...otherCloneParameters } = this.getCloneParameters();
    -    return {
    -      ...otherCloneParameters
    -    };
    -  }
    -  toDestination(insertionMode) {
    -    return new DestinationImpl(this, insertionMode);
    -  }
    -  /**
    -   * Converts the target to a plain object representation.
    -   *
    -   * Note that this implementation is quite incomplete, but is suitable for
    -   * round-tripping {@link UntypedTarget} objects and capturing the fact that an
    -   * object is not an un typed target if it is not, via the {@link type}
    -   * attribute.  In the future, we should override this method in subclasses to
    -   * provide a more complete representation.
    -   * @returns A plain object representation of the target
    -   */
    -  toPlainObject() {
    -    return {
    -      type: this.type,
    -      contentRange: rangeToPlainObject(this.contentRange),
    -      isReversed: this.isReversed,
    -      hasExplicitRange: this.hasExplicitRange
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/util/selectionUtils.ts
    -function selectionWithEditorFromRange(selection, range4) {
    -  return selectionWithEditorFromPositions(selection, range4.start, range4.end);
    -}
    -function selectionWithEditorFromPositions(selection, start, end) {
    -  return {
    -    editor: selection.editor,
    -    selection: selectionFromPositions(selection.selection, start, end)
    -  };
    -}
    -function selectionFromPositions(selection, start, end) {
    -  return !selection.isReversed ? new Selection(start, end) : new Selection(end, start);
    -}
    -function shrinkRangeToFitContent(editor, range4) {
    -  const { document } = editor;
    -  const text = document.getText(range4);
    -  const startDelta = text.length - text.trimStart().length;
    -  const endDelta = text.length - text.trimEnd().length;
    -  const startOffset = document.offsetAt(range4.start) + startDelta;
    -  const endOffset = document.offsetAt(range4.end) - endDelta;
    -  const start = document.positionAt(startOffset);
    -  const end = document.positionAt(endOffset);
    -  return new Range(start, end);
    -}
    -
    -// ../cursorless-engine/src/util/tryConstructTarget.ts
    -function tryConstructTarget(constructor, editor, range4, isReversed) {
    -  return range4 == null ? void 0 : new constructor({
    -    editor,
    -    isReversed,
    -    contentRange: range4
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/PlainTarget.ts
    -var PlainTarget = class extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "PlainTarget";
    -    this.getLeadingDelimiterTarget = () => void 0;
    -    this.getTrailingDelimiterTarget = () => void 0;
    -    this.getRemovalRange = () => this.contentRange;
    -    this.isToken = parameters.isToken ?? true;
    -    this.insertionDelimiter = parameters.insertionDelimiter ?? "";
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      isToken: this.isToken,
    -      insertionDelimiter: this.insertionDelimiter
    -    };
    -  }
    -};
    -function tryConstructPlainTarget(editor, range4, isReversed) {
    -  return tryConstructTarget(PlainTarget, editor, range4, isReversed);
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/DocumentTarget.ts
    -var DocumentTarget = class extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "DocumentTarget";
    -    this.insertionDelimiter = "\n";
    -    this.isLine = true;
    -  }
    -  getLeadingDelimiterTarget() {
    -    return void 0;
    -  }
    -  getTrailingDelimiterTarget() {
    -    return void 0;
    -  }
    -  getRemovalRange() {
    -    return this.contentRange;
    -  }
    -  getInteriorStrict() {
    -    return [
    -      // Use plain target instead of interior target since we want the same content and removal range for a document interior.
    -      new PlainTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        contentRange: shrinkRangeToFitContent(this.editor, this.contentRange)
    -      })
    -    ];
    -  }
    -  getCloneParameters() {
    -    return this.state;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/LineTarget.ts
    -var LineTarget = class _LineTarget extends BaseTarget {
    -  constructor() {
    -    super(...arguments);
    -    this.type = "LineTarget";
    -    this.insertionDelimiter = "\n";
    -    this.isLine = true;
    -    this.getRemovalHighlightRange = () => this.fullLineContentRange;
    -  }
    -  get fullLineContentRange() {
    -    return expandToFullLine(this.editor, this.contentRange);
    -  }
    -  getLeadingDelimiterTarget() {
    -    return tryConstructPlainTarget(
    -      this.editor,
    -      getLeadingDelimiterRange(this.editor, this.fullLineContentRange),
    -      this.isReversed
    -    );
    -  }
    -  getTrailingDelimiterTarget() {
    -    return tryConstructPlainTarget(
    -      this.editor,
    -      getTrailingDelimiterRange(this.editor, this.fullLineContentRange),
    -      this.isReversed
    -    );
    -  }
    -  getRemovalRange() {
    -    const contentRemovalRange = this.fullLineContentRange;
    -    const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget();
    -    return delimiterTarget == null ? contentRemovalRange : contentRemovalRange.union(delimiterTarget.contentRange);
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    return new _LineTarget({
    -      editor: this.editor,
    -      isReversed,
    -      contentRange: createContinuousLineRange(this, endTarget, true, true)
    -    });
    -  }
    -  getCloneParameters() {
    -    return this.state;
    -  }
    -};
    -function getLeadingDelimiterRange(editor, range4) {
    -  const { start } = range4;
    -  return start.line > 0 ? new Range(editor.document.lineAt(start.line - 1).range.end, range4.start) : void 0;
    -}
    -function getTrailingDelimiterRange(editor, range4) {
    -  const { end } = range4;
    -  return end.line + 1 < editor.document.lineCount ? new Range(range4.end, new Position(end.line + 1, 0)) : void 0;
    -}
    -function constructLineTarget(editor, range4, isReversed) {
    -  return tryConstructTarget(LineTarget, editor, range4, isReversed);
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/NotebookCellDestination.ts
    -var NotebookCellDestination = class _NotebookCellDestination {
    -  constructor(target, insertionMode) {
    -    this.target = target;
    -    this.insertionMode = insertionMode;
    -  }
    -  get editor() {
    -    return this.target.editor;
    -  }
    -  get contentRange() {
    -    return this.target.contentRange;
    -  }
    -  get contentSelection() {
    -    return this.target.contentSelection;
    -  }
    -  get insertionDelimiter() {
    -    return this.target.insertionDelimiter;
    -  }
    -  get isRaw() {
    -    return this.target.isRaw;
    -  }
    -  withTarget(target) {
    -    return new _NotebookCellDestination(target, this.insertionMode);
    -  }
    -  getEditNewActionType() {
    -    throw new Error("Method not implemented.");
    -  }
    -  constructChangeEdit(_text) {
    -    throw new Error("Method not implemented.");
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/NotebookCellTarget.ts
    -var NotebookCellTarget = class extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "NotebookCellTarget";
    -    this.insertionDelimiter = "\n";
    -    this.isNotebookCell = true;
    -    this.getLeadingDelimiterTarget = () => void 0;
    -    this.getTrailingDelimiterTarget = () => void 0;
    -    this.getRemovalRange = () => this.contentRange;
    -  }
    -  getCloneParameters() {
    -    return this.state;
    -  }
    -  toDestination(insertionMode) {
    -    return new NotebookCellDestination(this, insertionMode);
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/ParagraphTarget.ts
    -var ParagraphTarget = class _ParagraphTarget extends BaseTarget {
    -  constructor() {
    -    super(...arguments);
    -    this.type = "ParagraphTarget";
    -    this.insertionDelimiter = "\n\n";
    -    this.isLine = true;
    -  }
    -  getLeadingDelimiterTarget() {
    -    return constructLineTarget(
    -      this.editor,
    -      getLeadingDelimiterRange2(this.editor, this.fullLineContentRange),
    -      this.isReversed
    -    );
    -  }
    -  getTrailingDelimiterTarget() {
    -    return constructLineTarget(
    -      this.editor,
    -      getTrailingDelimiterRange2(this.editor, this.fullLineContentRange),
    -      this.isReversed
    -    );
    -  }
    -  getRemovalRange() {
    -    const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget();
    -    const removalContentRange = delimiterTarget != null ? this.contentRange.union(delimiterTarget.contentRange) : this.contentRange;
    -    return new LineTarget({
    -      contentRange: removalContentRange,
    -      editor: this.editor,
    -      isReversed: this.isReversed
    -    }).getRemovalRange();
    -  }
    -  get fullLineContentRange() {
    -    return expandToFullLine(this.editor, this.contentRange);
    -  }
    -  getRemovalHighlightRange() {
    -    const delimiterTarget = this.getTrailingDelimiterTarget() ?? this.getLeadingDelimiterTarget();
    -    return delimiterTarget != null ? this.fullLineContentRange.union(delimiterTarget.contentRange) : this.fullLineContentRange;
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    return new _ParagraphTarget({
    -      ...this.getCloneParameters(),
    -      isReversed,
    -      contentRange: createContinuousLineRange(this, endTarget, true, true)
    -    });
    -  }
    -  getCloneParameters() {
    -    return this.state;
    -  }
    -};
    -function getLeadingDelimiterRange2(editor, contentRange) {
    -  const { document } = editor;
    -  const startLine = document.lineAt(contentRange.start);
    -  const leadingLine = getPreviousNonEmptyLine(document, startLine);
    -  if (leadingLine != null) {
    -    if (leadingLine.lineNumber + 1 === startLine.lineNumber) {
    -      return void 0;
    -    }
    -    return new Range(
    -      new Position(leadingLine.lineNumber + 1, 0),
    -      document.lineAt(startLine.lineNumber - 1).range.end
    -    );
    -  }
    -  if (startLine.lineNumber > 0) {
    -    return new Range(
    -      new Position(0, 0),
    -      document.lineAt(startLine.lineNumber - 1).range.end
    -    );
    -  }
    -  return void 0;
    -}
    -function getTrailingDelimiterRange2(editor, contentRange) {
    -  const { document } = editor;
    -  const endLine = document.lineAt(contentRange.end);
    -  const trailingLine = getNextNonEmptyLine(document, endLine);
    -  if (trailingLine != null) {
    -    if (trailingLine.lineNumber - 1 === endLine.lineNumber) {
    -      return void 0;
    -    }
    -    return new Range(
    -      new Position(endLine.lineNumber + 1, 0),
    -      document.lineAt(trailingLine.lineNumber - 1).range.end
    -    );
    -  }
    -  if (endLine.lineNumber < document.lineCount - 1) {
    -    return new Range(
    -      new Position(endLine.lineNumber + 1, 0),
    -      document.lineAt(document.lineCount - 1).range.end
    -    );
    -  }
    -  return void 0;
    -}
    -function getPreviousNonEmptyLine(document, line) {
    -  while (line.lineNumber > 0) {
    -    const previousLine = document.lineAt(line.lineNumber - 1);
    -    if (!previousLine.isEmptyOrWhitespace) {
    -      return previousLine;
    -    }
    -    line = previousLine;
    -  }
    -  return null;
    -}
    -function getNextNonEmptyLine(document, line) {
    -  while (line.lineNumber + 1 < document.lineCount) {
    -    const nextLine = document.lineAt(line.lineNumber + 1);
    -    if (!nextLine.isEmptyOrWhitespace) {
    -      return nextLine;
    -    }
    -    line = nextLine;
    -  }
    -  return null;
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/RawSelectionTarget.ts
    -var RawSelectionTarget = class extends BaseTarget {
    -  constructor() {
    -    super(...arguments);
    -    this.type = "RawSelectionTarget";
    -    this.insertionDelimiter = "";
    -    this.isRaw = true;
    -    this.isToken = false;
    -    this.getLeadingDelimiterTarget = () => void 0;
    -    this.getTrailingDelimiterTarget = () => void 0;
    -    this.getRemovalRange = () => this.contentRange;
    -    this.getCloneParameters = () => this.state;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/InteriorTarget.ts
    -var InteriorTarget = class _InteriorTarget extends BaseTarget {
    -  constructor(parameters) {
    -    super({
    -      ...parameters,
    -      contentRange: shrinkRangeToFitContent(
    -        parameters.editor,
    -        parameters.fullInteriorRange
    -      )
    -    });
    -    this.type = "InteriorTarget";
    -    this.insertionDelimiter = " ";
    -    this.getLeadingDelimiterTarget = () => void 0;
    -    this.getTrailingDelimiterTarget = () => void 0;
    -    this.getRemovalRange = () => this.fullInteriorRange;
    -    this.fullInteriorRange = parameters.fullInteriorRange;
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      fullInteriorRange: this.fullInteriorRange
    -    };
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    return new _InteriorTarget({
    -      ...this.getCloneParameters(),
    -      isReversed,
    -      fullInteriorRange: createContinuousRangeFromRanges(
    -        this.fullInteriorRange,
    -        endTarget.fullInteriorRange,
    -        true,
    -        true
    -      )
    -    });
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
    -function getDelimitedSequenceRemovalRange(target) {
    -  const contentRange = union(target.contentRange, target.prefixRange);
    -  const delimiterTarget = target.getTrailingDelimiterTarget() ?? target.getLeadingDelimiterTarget();
    -  return delimiterTarget != null ? contentRange.union(delimiterTarget.contentRange) : contentRange;
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
    -var leadingDelimiters = ['"', "'", "(", "[", "{", "<"];
    -var trailingDelimiters = ['"', "'", ")", "]", "}", ">", ",", ";", ":"];
    -function getTokenLeadingDelimiterTarget(target) {
    -  const { editor } = target;
    -  const { start } = union(target.contentRange, target.prefixRange);
    -  const startLine = editor.document.lineAt(start);
    -  const leadingText = startLine.text.slice(0, start.character);
    -  const leadingDelimiters2 = leadingText.match(/\s+$/);
    -  return leadingDelimiters2 == null ? void 0 : new PlainTarget({
    -    contentRange: new Range(
    -      start.line,
    -      start.character - leadingDelimiters2[0].length,
    -      start.line,
    -      start.character
    -    ),
    -    editor,
    -    isReversed: target.isReversed
    -  });
    -}
    -function getTokenTrailingDelimiterTarget(target) {
    -  const { editor } = target;
    -  const { end } = target.contentRange;
    -  const endLine = editor.document.lineAt(end);
    -  const trailingText = endLine.text.slice(end.character);
    -  const trailingDelimiters2 = trailingText.match(/^\s+/);
    -  return trailingDelimiters2 == null ? void 0 : new PlainTarget({
    -    contentRange: new Range(
    -      end.line,
    -      end.character,
    -      end.line,
    -      end.character + trailingDelimiters2[0].length
    -    ),
    -    editor,
    -    isReversed: target.isReversed
    -  });
    -}
    -function getTokenRemovalRange(target) {
    -  const { editor } = target;
    -  const contentRange = union(target.contentRange, target.prefixRange);
    -  const { start, end } = contentRange;
    -  const leadingWhitespaceRange = target.getLeadingDelimiterTarget()?.contentRange ?? start.toEmptyRange();
    -  const trailingWhitespaceRange = target.getTrailingDelimiterTarget()?.contentRange ?? end.toEmptyRange();
    -  const fullLineRange = expandToFullLine(editor, contentRange);
    -  if (leadingWhitespaceRange.union(trailingWhitespaceRange).isRangeEqual(fullLineRange)) {
    -    return fullLineRange;
    -  }
    -  if (!trailingWhitespaceRange.isEmpty) {
    -    if (!leadingWhitespaceRange.isEmpty || contentRange.start.isEqual(fullLineRange.start) || leadingDelimiters.includes(getLeadingCharacter(editor, contentRange))) {
    -      return contentRange.union(trailingWhitespaceRange);
    -    }
    -  }
    -  if (!leadingWhitespaceRange.isEmpty) {
    -    if (contentRange.end.isEqual(fullLineRange.end) || trailingDelimiters.includes(getTrailingCharacter(editor, contentRange))) {
    -      return contentRange.union(leadingWhitespaceRange);
    -    }
    -  }
    -  return contentRange;
    -}
    -function getLeadingCharacter(editor, contentRange) {
    -  const { start } = contentRange;
    -  const line = editor.document.lineAt(start);
    -  return start.isAfter(line.range.start) ? editor.document.getText(new Range(start.translate(void 0, -1), start)) : "";
    -}
    -function getTrailingCharacter(editor, contentRange) {
    -  const { end } = contentRange;
    -  const line = editor.document.lineAt(end);
    -  return end.isBefore(line.range.end) ? editor.document.getText(new Range(end.translate(void 0, 1), end)) : "";
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/ScopeTypeTarget.ts
    -var ScopeTypeTarget = class _ScopeTypeTarget extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "ScopeTypeTarget";
    -    this.scopeTypeType_ = parameters.scopeTypeType;
    -    this.removalRange_ = parameters.removalRange;
    -    this.interiorRange_ = parameters.interiorRange;
    -    this.leadingDelimiterRange_ = parameters.leadingDelimiterRange;
    -    this.trailingDelimiterRange_ = parameters.trailingDelimiterRange;
    -    this.prefixRange = parameters.prefixRange;
    -    this.insertionDelimiter = parameters.insertionDelimiter ?? getInsertionDelimiter(parameters.scopeTypeType);
    -    this.hasDelimiterRange_ = !!this.leadingDelimiterRange_ || !!this.trailingDelimiterRange_;
    -  }
    -  getLeadingDelimiterTarget() {
    -    if (this.leadingDelimiterRange_ != null) {
    -      return new PlainTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        contentRange: this.leadingDelimiterRange_
    -      });
    -    }
    -    if (!this.hasDelimiterRange_) {
    -      return getTokenLeadingDelimiterTarget(this);
    -    }
    -    return void 0;
    -  }
    -  getTrailingDelimiterTarget() {
    -    if (this.trailingDelimiterRange_ != null) {
    -      return new PlainTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        contentRange: this.trailingDelimiterRange_
    -      });
    -    }
    -    if (!this.hasDelimiterRange_) {
    -      return getTokenTrailingDelimiterTarget(this);
    -    }
    -    return void 0;
    -  }
    -  getInteriorStrict() {
    -    if (this.interiorRange_ == null) {
    -      return super.getInteriorStrict();
    -    }
    -    return [
    -      new InteriorTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        fullInteriorRange: this.interiorRange_
    -      })
    -    ];
    -  }
    -  getRemovalRange() {
    -    return this.removalRange_ != null ? this.removalRange_ : this.hasDelimiterRange_ ? getDelimitedSequenceRemovalRange(this) : getTokenRemovalRange(this);
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    if (this.scopeTypeType_ !== endTarget.scopeTypeType_) {
    -      return null;
    -    }
    -    const contentRemovalRange = this.removalRange_ != null || endTarget.removalRange_ != null ? createContinuousRangeFromRanges(
    -      this.removalRange_ ?? this.contentRange,
    -      endTarget.removalRange_ ?? endTarget.contentRange,
    -      true,
    -      true
    -    ) : void 0;
    -    return new _ScopeTypeTarget({
    -      ...this.getCloneParameters(),
    -      isReversed,
    -      leadingDelimiterRange: this.leadingDelimiterRange_,
    -      trailingDelimiterRange: endTarget.trailingDelimiterRange_,
    -      removalRange: contentRemovalRange,
    -      contentRange: createContinuousRange(this, endTarget, true, true)
    -    });
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      insertionDelimiter: this.insertionDelimiter,
    -      prefixRange: this.prefixRange,
    -      removalRange: void 0,
    -      interiorRange: void 0,
    -      scopeTypeType: this.scopeTypeType_,
    -      leadingDelimiterRange: this.leadingDelimiterRange_,
    -      trailingDelimiterRange: this.trailingDelimiterRange_
    -    };
    -  }
    -};
    -function getInsertionDelimiter(scopeType) {
    -  switch (scopeType) {
    -    case "class":
    -    case "namedFunction":
    -    case "section":
    -    case "sectionLevelOne":
    -    case "sectionLevelTwo":
    -    case "sectionLevelThree":
    -    case "sectionLevelFour":
    -    case "sectionLevelFive":
    -    case "sectionLevelSix":
    -    case "part":
    -    case "chapter":
    -    case "subSection":
    -    case "subSubSection":
    -    case "namedParagraph":
    -    case "subParagraph":
    -      return "\n\n";
    -    case "anonymousFunction":
    -    case "statement":
    -    case "ifStatement":
    -    case "comment":
    -    case "xmlElement":
    -    case "collectionItem":
    -    case "branch":
    -    case "environment":
    -      return "\n";
    -    default:
    -      return " ";
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/targets/SubTokenWordTarget.ts
    -var SubTokenWordTarget = class _SubTokenWordTarget extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "SubTokenWordTarget";
    -    this.isToken = false;
    -    this.isWord = true;
    -    this.leadingDelimiterRange_ = parameters.leadingDelimiterRange;
    -    this.trailingDelimiterRange_ = parameters.trailingDelimiterRange;
    -    this.insertionDelimiter = parameters.insertionDelimiter;
    -  }
    -  getLeadingDelimiterTarget() {
    -    return tryConstructPlainTarget(
    -      this.editor,
    -      this.leadingDelimiterRange_,
    -      this.isReversed
    -    );
    -  }
    -  getTrailingDelimiterTarget() {
    -    return tryConstructPlainTarget(
    -      this.editor,
    -      this.trailingDelimiterRange_,
    -      this.isReversed
    -    );
    -  }
    -  getRemovalRange() {
    -    return getDelimitedSequenceRemovalRange(this);
    -  }
    -  maybeCreateRichRangeTarget(isReversed, endTarget) {
    -    return new _SubTokenWordTarget({
    -      ...this.getCloneParameters(),
    -      isReversed,
    -      contentRange: createContinuousRange(this, endTarget, true, true),
    -      trailingDelimiterRange: endTarget.trailingDelimiterRange_
    -    });
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      leadingDelimiterRange: this.leadingDelimiterRange_,
    -      trailingDelimiterRange: this.trailingDelimiterRange_,
    -      insertionDelimiter: this.insertionDelimiter
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/TokenTarget.ts
    -var TokenTarget = class extends BaseTarget {
    -  constructor() {
    -    super(...arguments);
    -    this.type = "TokenTarget";
    -    this.insertionDelimiter = " ";
    -  }
    -  getLeadingDelimiterTarget() {
    -    return getTokenLeadingDelimiterTarget(this);
    -  }
    -  getTrailingDelimiterTarget() {
    -    return getTokenTrailingDelimiterTarget(this);
    -  }
    -  getRemovalRange() {
    -    return getTokenRemovalRange(this);
    -  }
    -  getCloneParameters() {
    -    return this.state;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/SurroundingPairTarget.ts
    -var SurroundingPairTarget = class extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "SurroundingPairTarget";
    -    this.insertionDelimiter = " ";
    -    this.boundary_ = parameters.boundary;
    -    this.interiorRange_ = parameters.interiorRange;
    -  }
    -  getLeadingDelimiterTarget() {
    -    return getTokenLeadingDelimiterTarget(this);
    -  }
    -  getTrailingDelimiterTarget() {
    -    return getTokenTrailingDelimiterTarget(this);
    -  }
    -  getRemovalRange() {
    -    return getTokenRemovalRange(this);
    -  }
    -  getInteriorStrict() {
    -    return [
    -      new InteriorTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        fullInteriorRange: this.interiorRange_
    -      })
    -    ];
    -  }
    -  getBoundaryStrict() {
    -    return this.boundary_.map(
    -      (contentRange) => new TokenTarget({
    -        editor: this.editor,
    -        isReversed: this.isReversed,
    -        contentRange
    -      })
    -    );
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      interiorRange: this.interiorRange_,
    -      boundary: this.boundary_
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/UntypedTarget.ts
    -var UntypedTarget = class extends BaseTarget {
    -  constructor(parameters) {
    -    super(parameters);
    -    this.type = "UntypedTarget";
    -    this.insertionDelimiter = " ";
    -    this.hasExplicitScopeType = false;
    -    this.hasExplicitRange = parameters.hasExplicitRange;
    -    this.isToken = parameters.isToken ?? true;
    -  }
    -  getLeadingDelimiterTarget() {
    -    return getTokenLeadingDelimiterTarget(this);
    -  }
    -  getTrailingDelimiterTarget() {
    -    return getTokenTrailingDelimiterTarget(this);
    -  }
    -  getRemovalRange() {
    -    return this.editor.document.getText(this.contentRange).trim().length === 0 ? this.contentRange : getTokenRemovalRange(this);
    -  }
    -  maybeCreateRichRangeTarget() {
    -    return null;
    -  }
    -  getCloneParameters() {
    -    return {
    -      ...this.state,
    -      isToken: this.isToken,
    -      hasExplicitRange: this.hasExplicitRange
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/targets/ImplicitTarget.ts
    -var ImplicitTarget = class extends BaseTarget {
    -  constructor() {
    -    super(...arguments);
    -    this.type = "ImplicitTarget";
    -    this.insertionDelimiter = "";
    -    this.isRaw = true;
    -    this.hasExplicitScopeType = false;
    -    this.isImplicit = true;
    -    this.isToken = false;
    -    this.getLeadingDelimiterTarget = () => void 0;
    -    this.getTrailingDelimiterTarget = () => void 0;
    -    this.getRemovalRange = () => this.contentRange;
    -    this.getCloneParameters = () => this.state;
    -  }
    -};
    -
    -// ../cursorless-engine/src/testUtil/plainObjectToTarget.ts
    -function plainObjectToTarget(editor, plainObject) {
    -  switch (plainObject.type) {
    -    case "UntypedTarget":
    -      return new UntypedTarget({
    -        editor,
    -        isReversed: plainObject.isReversed,
    -        contentRange: plainObjectToRange(plainObject.contentRange),
    -        hasExplicitRange: plainObject.hasExplicitRange
    -      });
    -    case "LineTarget":
    -      return new LineTarget({
    -        editor,
    -        isReversed: plainObject.isReversed,
    -        contentRange: plainObjectToRange(plainObject.contentRange)
    -      });
    -    default:
    -      throw Error(`Unsupported target type ${plainObject.type}`);
    -  }
    -}
    -
    -// ../cursorless-engine/src/core/Cheatsheet.ts
    -var import_lodash10 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/singletons/ide.singleton.ts
    -var ide_;
    -function injectIde(ide2) {
    -  ide_ = ide2;
    -}
    -function ide() {
    -  if (ide_ == null) {
    -    throw Error("Tried to access ide before it was injected");
    -  }
    -  return ide_;
    -}
    -
    -// ../../node_modules/.pnpm/immer@10.0.4/node_modules/immer/dist/immer.mjs
    -var NOTHING = Symbol.for("immer-nothing");
    -var DRAFTABLE = Symbol.for("immer-draftable");
    -var DRAFT_STATE = Symbol.for("immer-state");
    -var errors = process.env.NODE_ENV !== "production" ? [
    -  // All error codes, starting by 0:
    -  function(plugin) {
    -    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
    -  },
    -  function(thing) {
    -    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
    -  },
    -  "This object has been frozen and should not be mutated",
    -  function(data) {
    -    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
    -  },
    -  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
    -  "Immer forbids circular references",
    -  "The first or second argument to `produce` must be a function",
    -  "The third argument to `produce` must be a function or undefined",
    -  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
    -  "First argument to `finishDraft` must be a draft returned by `createDraft`",
    -  function(thing) {
    -    return `'current' expects a draft, got: ${thing}`;
    -  },
    -  "Object.defineProperty() cannot be used on an Immer draft",
    -  "Object.setPrototypeOf() cannot be used on an Immer draft",
    -  "Immer only supports deleting array indices",
    -  "Immer only supports setting array indices and the 'length' property",
    -  function(thing) {
    -    return `'original' expects a draft, got: ${thing}`;
    -  }
    -  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
    -  // See Patches.ts for additional errors
    -] : [];
    -function die(error, ...args) {
    -  if (process.env.NODE_ENV !== "production") {
    -    const e = errors[error];
    -    const msg = typeof e === "function" ? e.apply(null, args) : e;
    -    throw new Error(`[Immer] ${msg}`);
    -  }
    -  throw new Error(
    -    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
    -  );
    -}
    -var getPrototypeOf = Object.getPrototypeOf;
    -function isDraft(value) {
    -  return !!value && !!value[DRAFT_STATE];
    -}
    -function isDraftable(value) {
    -  if (!value)
    -    return false;
    -  return isPlainObject2(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);
    -}
    -var objectCtorString = Object.prototype.constructor.toString();
    -function isPlainObject2(value) {
    -  if (!value || typeof value !== "object")
    -    return false;
    -  const proto = getPrototypeOf(value);
    -  if (proto === null) {
    -    return true;
    -  }
    -  const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
    -  if (Ctor === Object)
    -    return true;
    -  return typeof Ctor == "function" && Function.toString.call(Ctor) === objectCtorString;
    -}
    -function each(obj, iter2) {
    -  if (getArchtype(obj) === 0) {
    -    Reflect.ownKeys(obj).forEach((key) => {
    -      iter2(key, obj[key], obj);
    -    });
    -  } else {
    -    obj.forEach((entry2, index) => iter2(index, entry2, obj));
    -  }
    -}
    -function getArchtype(thing) {
    -  const state = thing[DRAFT_STATE];
    -  return state ? state.type_ : Array.isArray(thing) ? 1 : isMap(thing) ? 2 : isSet(thing) ? 3 : 0;
    -}
    -function has(thing, prop) {
    -  return getArchtype(thing) === 2 ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);
    -}
    -function set2(thing, propOrOldValue, value) {
    -  const t = getArchtype(thing);
    -  if (t === 2)
    -    thing.set(propOrOldValue, value);
    -  else if (t === 3) {
    -    thing.add(value);
    -  } else
    -    thing[propOrOldValue] = value;
    -}
    -function is(x, y) {
    -  if (x === y) {
    -    return x !== 0 || 1 / x === 1 / y;
    -  } else {
    -    return x !== x && y !== y;
    -  }
    -}
    -function isMap(target) {
    -  return target instanceof Map;
    -}
    -function isSet(target) {
    -  return target instanceof Set;
    -}
    -function latest(state) {
    -  return state.copy_ || state.base_;
    -}
    -function shallowCopy(base, strict) {
    -  if (isMap(base)) {
    -    return new Map(base);
    -  }
    -  if (isSet(base)) {
    -    return new Set(base);
    -  }
    -  if (Array.isArray(base))
    -    return Array.prototype.slice.call(base);
    -  if (!strict && isPlainObject2(base)) {
    -    if (!getPrototypeOf(base)) {
    -      const obj = /* @__PURE__ */ Object.create(null);
    -      return Object.assign(obj, base);
    -    }
    -    return { ...base };
    -  }
    -  const descriptors = Object.getOwnPropertyDescriptors(base);
    -  delete descriptors[DRAFT_STATE];
    -  let keys = Reflect.ownKeys(descriptors);
    -  for (let i = 0; i < keys.length; i++) {
    -    const key = keys[i];
    -    const desc = descriptors[key];
    -    if (desc.writable === false) {
    -      desc.writable = true;
    -      desc.configurable = true;
    -    }
    -    if (desc.get || desc.set)
    -      descriptors[key] = {
    -        configurable: true,
    -        writable: true,
    -        // could live with !!desc.set as well here...
    -        enumerable: desc.enumerable,
    -        value: base[key]
    -      };
    -  }
    -  return Object.create(getPrototypeOf(base), descriptors);
    -}
    -function freeze(obj, deep = false) {
    -  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
    -    return obj;
    -  if (getArchtype(obj) > 1) {
    -    obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;
    -  }
    -  Object.freeze(obj);
    -  if (deep)
    -    Object.entries(obj).forEach(([key, value]) => freeze(value, true));
    -  return obj;
    -}
    -function dontMutateFrozenCollections() {
    -  die(2);
    -}
    -function isFrozen(obj) {
    -  return Object.isFrozen(obj);
    -}
    -var plugins = {};
    -function getPlugin(pluginKey) {
    -  const plugin = plugins[pluginKey];
    -  if (!plugin) {
    -    die(0, pluginKey);
    -  }
    -  return plugin;
    -}
    -var currentScope;
    -function getCurrentScope() {
    -  return currentScope;
    -}
    -function createScope(parent_, immer_) {
    -  return {
    -    drafts_: [],
    -    parent_,
    -    immer_,
    -    // Whenever the modified draft contains a draft from another scope, we
    -    // need to prevent auto-freezing so the unowned draft can be finalized.
    -    canAutoFreeze_: true,
    -    unfinalizedDrafts_: 0
    -  };
    -}
    -function usePatchesInScope(scope, patchListener) {
    -  if (patchListener) {
    -    getPlugin("Patches");
    -    scope.patches_ = [];
    -    scope.inversePatches_ = [];
    -    scope.patchListener_ = patchListener;
    -  }
    -}
    -function revokeScope(scope) {
    -  leaveScope(scope);
    -  scope.drafts_.forEach(revokeDraft);
    -  scope.drafts_ = null;
    -}
    -function leaveScope(scope) {
    -  if (scope === currentScope) {
    -    currentScope = scope.parent_;
    -  }
    -}
    -function enterScope(immer2) {
    -  return currentScope = createScope(currentScope, immer2);
    -}
    -function revokeDraft(draft) {
    -  const state = draft[DRAFT_STATE];
    -  if (state.type_ === 0 || state.type_ === 1)
    -    state.revoke_();
    -  else
    -    state.revoked_ = true;
    -}
    -function processResult(result, scope) {
    -  scope.unfinalizedDrafts_ = scope.drafts_.length;
    -  const baseDraft = scope.drafts_[0];
    -  const isReplaced = result !== void 0 && result !== baseDraft;
    -  if (isReplaced) {
    -    if (baseDraft[DRAFT_STATE].modified_) {
    -      revokeScope(scope);
    -      die(4);
    -    }
    -    if (isDraftable(result)) {
    -      result = finalize(scope, result);
    -      if (!scope.parent_)
    -        maybeFreeze(scope, result);
    -    }
    -    if (scope.patches_) {
    -      getPlugin("Patches").generateReplacementPatches_(
    -        baseDraft[DRAFT_STATE].base_,
    -        result,
    -        scope.patches_,
    -        scope.inversePatches_
    -      );
    -    }
    -  } else {
    -    result = finalize(scope, baseDraft, []);
    -  }
    -  revokeScope(scope);
    -  if (scope.patches_) {
    -    scope.patchListener_(scope.patches_, scope.inversePatches_);
    -  }
    -  return result !== NOTHING ? result : void 0;
    -}
    -function finalize(rootScope, value, path8) {
    -  if (isFrozen(value))
    -    return value;
    -  const state = value[DRAFT_STATE];
    -  if (!state) {
    -    each(
    -      value,
    -      (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path8)
    -    );
    -    return value;
    -  }
    -  if (state.scope_ !== rootScope)
    -    return value;
    -  if (!state.modified_) {
    -    maybeFreeze(rootScope, state.base_, true);
    -    return state.base_;
    -  }
    -  if (!state.finalized_) {
    -    state.finalized_ = true;
    -    state.scope_.unfinalizedDrafts_--;
    -    const result = state.copy_;
    -    let resultEach = result;
    -    let isSet2 = false;
    -    if (state.type_ === 3) {
    -      resultEach = new Set(result);
    -      result.clear();
    -      isSet2 = true;
    -    }
    -    each(
    -      resultEach,
    -      (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path8, isSet2)
    -    );
    -    maybeFreeze(rootScope, result, false);
    -    if (path8 && rootScope.patches_) {
    -      getPlugin("Patches").generatePatches_(
    -        state,
    -        path8,
    -        rootScope.patches_,
    -        rootScope.inversePatches_
    -      );
    -    }
    -  }
    -  return state.copy_;
    -}
    -function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
    -  if (process.env.NODE_ENV !== "production" && childValue === targetObject)
    -    die(5);
    -  if (isDraft(childValue)) {
    -    const path8 = rootPath && parentState && parentState.type_ !== 3 && // Set objects are atomic since they have no keys.
    -    !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;
    -    const res = finalize(rootScope, childValue, path8);
    -    set2(targetObject, prop, res);
    -    if (isDraft(res)) {
    -      rootScope.canAutoFreeze_ = false;
    -    } else
    -      return;
    -  } else if (targetIsSet) {
    -    targetObject.add(childValue);
    -  }
    -  if (isDraftable(childValue) && !isFrozen(childValue)) {
    -    if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
    -      return;
    -    }
    -    finalize(rootScope, childValue);
    -    if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))
    -      maybeFreeze(rootScope, childValue);
    -  }
    -}
    -function maybeFreeze(scope, value, deep = false) {
    -  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
    -    freeze(value, deep);
    -  }
    -}
    -function createProxyProxy(base, parent) {
    -  const isArray = Array.isArray(base);
    -  const state = {
    -    type_: isArray ? 1 : 0,
    -    // Track which produce call this is associated with.
    -    scope_: parent ? parent.scope_ : getCurrentScope(),
    -    // True for both shallow and deep changes.
    -    modified_: false,
    -    // Used during finalization.
    -    finalized_: false,
    -    // Track which properties have been assigned (true) or deleted (false).
    -    assigned_: {},
    -    // The parent draft state.
    -    parent_: parent,
    -    // The base state.
    -    base_: base,
    -    // The base proxy.
    -    draft_: null,
    -    // set below
    -    // The base copy with any updated values.
    -    copy_: null,
    -    // Called by the `produce` function.
    -    revoke_: null,
    -    isManual_: false
    -  };
    -  let target = state;
    -  let traps = objectTraps;
    -  if (isArray) {
    -    target = [state];
    -    traps = arrayTraps;
    -  }
    -  const { revoke, proxy } = Proxy.revocable(target, traps);
    -  state.draft_ = proxy;
    -  state.revoke_ = revoke;
    -  return proxy;
    -}
    -var objectTraps = {
    -  get(state, prop) {
    -    if (prop === DRAFT_STATE)
    -      return state;
    -    const source = latest(state);
    -    if (!has(source, prop)) {
    -      return readPropFromProto(state, source, prop);
    -    }
    -    const value = source[prop];
    -    if (state.finalized_ || !isDraftable(value)) {
    -      return value;
    -    }
    -    if (value === peek(state.base_, prop)) {
    -      prepareCopy(state);
    -      return state.copy_[prop] = createProxy(value, state);
    -    }
    -    return value;
    -  },
    -  has(state, prop) {
    -    return prop in latest(state);
    -  },
    -  ownKeys(state) {
    -    return Reflect.ownKeys(latest(state));
    -  },
    -  set(state, prop, value) {
    -    const desc = getDescriptorFromProto(latest(state), prop);
    -    if (desc?.set) {
    -      desc.set.call(state.draft_, value);
    -      return true;
    -    }
    -    if (!state.modified_) {
    -      const current2 = peek(latest(state), prop);
    -      const currentState = current2?.[DRAFT_STATE];
    -      if (currentState && currentState.base_ === value) {
    -        state.copy_[prop] = value;
    -        state.assigned_[prop] = false;
    -        return true;
    -      }
    -      if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))
    -        return true;
    -      prepareCopy(state);
    -      markChanged(state);
    -    }
    -    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
    -    (value !== void 0 || prop in state.copy_) || // special case: NaN
    -    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
    -      return true;
    -    state.copy_[prop] = value;
    -    state.assigned_[prop] = true;
    -    return true;
    -  },
    -  deleteProperty(state, prop) {
    -    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
    -      state.assigned_[prop] = false;
    -      prepareCopy(state);
    -      markChanged(state);
    -    } else {
    -      delete state.assigned_[prop];
    -    }
    -    if (state.copy_) {
    -      delete state.copy_[prop];
    -    }
    -    return true;
    -  },
    -  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
    -  // the same guarantee in ES5 mode.
    -  getOwnPropertyDescriptor(state, prop) {
    -    const owner = latest(state);
    -    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
    -    if (!desc)
    -      return desc;
    -    return {
    -      writable: true,
    -      configurable: state.type_ !== 1 || prop !== "length",
    -      enumerable: desc.enumerable,
    -      value: owner[prop]
    -    };
    -  },
    -  defineProperty() {
    -    die(11);
    -  },
    -  getPrototypeOf(state) {
    -    return getPrototypeOf(state.base_);
    -  },
    -  setPrototypeOf() {
    -    die(12);
    -  }
    -};
    -var arrayTraps = {};
    -each(objectTraps, (key, fn) => {
    -  arrayTraps[key] = function() {
    -    arguments[0] = arguments[0][0];
    -    return fn.apply(this, arguments);
    -  };
    -});
    -arrayTraps.deleteProperty = function(state, prop) {
    -  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
    -    die(13);
    -  return arrayTraps.set.call(this, state, prop, void 0);
    -};
    -arrayTraps.set = function(state, prop, value) {
    -  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
    -    die(14);
    -  return objectTraps.set.call(this, state[0], prop, value, state[0]);
    -};
    -function peek(draft, prop) {
    -  const state = draft[DRAFT_STATE];
    -  const source = state ? latest(state) : draft;
    -  return source[prop];
    -}
    -function readPropFromProto(state, source, prop) {
    -  const desc = getDescriptorFromProto(source, prop);
    -  return desc ? `value` in desc ? desc.value : (
    -    // This is a very special case, if the prop is a getter defined by the
    -    // prototype, we should invoke it with the draft as context!
    -    desc.get?.call(state.draft_)
    -  ) : void 0;
    -}
    -function getDescriptorFromProto(source, prop) {
    -  if (!(prop in source))
    -    return void 0;
    -  let proto = getPrototypeOf(source);
    -  while (proto) {
    -    const desc = Object.getOwnPropertyDescriptor(proto, prop);
    -    if (desc)
    -      return desc;
    -    proto = getPrototypeOf(proto);
    -  }
    -  return void 0;
    -}
    -function markChanged(state) {
    -  if (!state.modified_) {
    -    state.modified_ = true;
    -    if (state.parent_) {
    -      markChanged(state.parent_);
    -    }
    -  }
    -}
    -function prepareCopy(state) {
    -  if (!state.copy_) {
    -    state.copy_ = shallowCopy(
    -      state.base_,
    -      state.scope_.immer_.useStrictShallowCopy_
    -    );
    -  }
    -}
    -var Immer2 = class {
    -  constructor(config) {
    -    this.autoFreeze_ = true;
    -    this.useStrictShallowCopy_ = false;
    -    this.produce = (base, recipe, patchListener) => {
    -      if (typeof base === "function" && typeof recipe !== "function") {
    -        const defaultBase = recipe;
    -        recipe = base;
    -        const self2 = this;
    -        return function curriedProduce(base2 = defaultBase, ...args) {
    -          return self2.produce(base2, (draft) => recipe.call(this, draft, ...args));
    -        };
    -      }
    -      if (typeof recipe !== "function")
    -        die(6);
    -      if (patchListener !== void 0 && typeof patchListener !== "function")
    -        die(7);
    -      let result;
    -      if (isDraftable(base)) {
    -        const scope = enterScope(this);
    -        const proxy = createProxy(base, void 0);
    -        let hasError = true;
    -        try {
    -          result = recipe(proxy);
    -          hasError = false;
    -        } finally {
    -          if (hasError)
    -            revokeScope(scope);
    -          else
    -            leaveScope(scope);
    -        }
    -        usePatchesInScope(scope, patchListener);
    -        return processResult(result, scope);
    -      } else if (!base || typeof base !== "object") {
    -        result = recipe(base);
    -        if (result === void 0)
    -          result = base;
    -        if (result === NOTHING)
    -          result = void 0;
    -        if (this.autoFreeze_)
    -          freeze(result, true);
    -        if (patchListener) {
    -          const p = [];
    -          const ip = [];
    -          getPlugin("Patches").generateReplacementPatches_(base, result, p, ip);
    -          patchListener(p, ip);
    -        }
    -        return result;
    -      } else
    -        die(1, base);
    -    };
    -    this.produceWithPatches = (base, recipe) => {
    -      if (typeof base === "function") {
    -        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
    -      }
    -      let patches, inversePatches;
    -      const result = this.produce(base, recipe, (p, ip) => {
    -        patches = p;
    -        inversePatches = ip;
    -      });
    -      return [result, patches, inversePatches];
    -    };
    -    if (typeof config?.autoFreeze === "boolean")
    -      this.setAutoFreeze(config.autoFreeze);
    -    if (typeof config?.useStrictShallowCopy === "boolean")
    -      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
    -  }
    -  createDraft(base) {
    -    if (!isDraftable(base))
    -      die(8);
    -    if (isDraft(base))
    -      base = current(base);
    -    const scope = enterScope(this);
    -    const proxy = createProxy(base, void 0);
    -    proxy[DRAFT_STATE].isManual_ = true;
    -    leaveScope(scope);
    -    return proxy;
    -  }
    -  finishDraft(draft, patchListener) {
    -    const state = draft && draft[DRAFT_STATE];
    -    if (!state || !state.isManual_)
    -      die(9);
    -    const { scope_: scope } = state;
    -    usePatchesInScope(scope, patchListener);
    -    return processResult(void 0, scope);
    -  }
    -  /**
    -   * Pass true to automatically freeze all copies created by Immer.
    -   *
    -   * By default, auto-freezing is enabled.
    -   */
    -  setAutoFreeze(value) {
    -    this.autoFreeze_ = value;
    -  }
    -  /**
    -   * Pass true to enable strict shallow copy.
    -   *
    -   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
    -   */
    -  setUseStrictShallowCopy(value) {
    -    this.useStrictShallowCopy_ = value;
    -  }
    -  applyPatches(base, patches) {
    -    let i;
    -    for (i = patches.length - 1; i >= 0; i--) {
    -      const patch = patches[i];
    -      if (patch.path.length === 0 && patch.op === "replace") {
    -        base = patch.value;
    -        break;
    -      }
    -    }
    -    if (i > -1) {
    -      patches = patches.slice(i + 1);
    -    }
    -    const applyPatchesImpl = getPlugin("Patches").applyPatches_;
    -    if (isDraft(base)) {
    -      return applyPatchesImpl(base, patches);
    -    }
    -    return this.produce(
    -      base,
    -      (draft) => applyPatchesImpl(draft, patches)
    -    );
    -  }
    -};
    -function createProxy(value, parent) {
    -  const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent);
    -  const scope = parent ? parent.scope_ : getCurrentScope();
    -  scope.drafts_.push(draft);
    -  return draft;
    -}
    -function current(value) {
    -  if (!isDraft(value))
    -    die(10, value);
    -  return currentImpl(value);
    -}
    -function currentImpl(value) {
    -  if (!isDraftable(value) || isFrozen(value))
    -    return value;
    -  const state = value[DRAFT_STATE];
    -  let copy;
    -  if (state) {
    -    if (!state.modified_)
    -      return state.base_;
    -    state.finalized_ = true;
    -    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
    -  } else {
    -    copy = shallowCopy(value, true);
    -  }
    -  each(copy, (key, childValue) => {
    -    set2(copy, key, currentImpl(childValue));
    -  });
    -  if (state) {
    -    state.finalized_ = false;
    -  }
    -  return copy;
    -}
    -var immer = new Immer2();
    -var produce = immer.produce;
    -var produceWithPatches = immer.produceWithPatches.bind(
    -  immer
    -);
    -var setAutoFreeze = immer.setAutoFreeze.bind(immer);
    -var setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);
    -var applyPatches = immer.applyPatches.bind(immer);
    -var createDraft = immer.createDraft.bind(immer);
    -var finishDraft = immer.finishDraft.bind(immer);
    -
    -// ../cursorless-engine/src/testUtil/takeSnapshot.ts
    -async function takeSnapshot(storedTargets, excludeFields = [], extraFields = [], editor, ide2, marks2, extraContext, metadata, clipboard) {
    -  const snapshot = {
    -    documentContents: editor.document.getText(),
    -    selections: editor.selections.map(selectionToPlainObject)
    -  };
    -  if (marks2 != null) {
    -    snapshot.marks = marks2;
    -  }
    -  if (metadata != null) {
    -    snapshot.metadata = metadata;
    -  }
    -  if (!excludeFields.includes("clipboard")) {
    -    snapshot.clipboard = await (clipboard ?? ide2.clipboard).readText();
    -  }
    -  if (!excludeFields.includes("visibleRanges")) {
    -    snapshot.visibleRanges = editor.visibleRanges.map(rangeToPlainObject);
    -  }
    -  for (const storedTargetKey of storedTargetKeys) {
    -    const targets = storedTargets?.get(storedTargetKey);
    -    const key = `${storedTargetKey}Mark`;
    -    if (targets != null && !excludeFields.includes(key)) {
    -      snapshot[key] = targets.map((target) => target.toPlainObject());
    -    }
    -  }
    -  if (extraFields.includes("timeOffsetSeconds")) {
    -    const startTimestamp = extraContext?.startTimestamp;
    -    if (startTimestamp == null) {
    -      throw new Error(
    -        "No start timestamp provided but time offset was requested"
    -      );
    -    }
    -    const offsetNanoseconds = process.hrtime.bigint() - startTimestamp;
    -    snapshot.timeOffsetSeconds = hrtimeBigintToSeconds(offsetNanoseconds);
    -  }
    -  return snapshot;
    -}
    -
    -// ../cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts
    -var import_immutability_helper = __toESM(require_immutability_helper(), 1);
    -var import_lodash12 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/generateSpokenForm/NoSpokenFormError.ts
    -var NoSpokenFormError = class extends Error {
    -  constructor(reason, requiresTalonUpdate = false, isPrivate2 = false) {
    -    super(`No spoken form for: ${reason}`);
    -    this.reason = reason;
    -    this.requiresTalonUpdate = requiresTalonUpdate;
    -    this.isPrivate = isPrivate2;
    -  }
    -};
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/actions.ts
    -var actions = {
    -  breakLine: "break",
    -  scrollToBottom: "bottom",
    -  toggleLineBreakpoint: "break point",
    -  cutToClipboard: "carve",
    -  scrollToCenter: "center",
    -  clearAndSetSelection: "change",
    -  remove: "chuck",
    -  insertCopyBefore: "clone up",
    -  insertCopyAfter: "clone",
    -  toggleLineComment: "comment",
    -  copyToClipboard: "copy",
    -  scrollToTop: "crown",
    -  outdentLine: "dedent",
    -  revealDefinition: "define",
    -  editNewLineBefore: "drink",
    -  insertEmptyLineBefore: "drop",
    -  extractVariable: "extract",
    -  insertEmptyLineAfter: "float",
    -  foldRegion: "fold",
    -  followLink: "follow",
    -  deselect: "give",
    -  highlight: "highlight",
    -  showHover: "hover",
    -  increment: "increment",
    -  decrement: "decrement",
    -  indentLine: "indent",
    -  showDebugHover: "inspect",
    -  setSelectionAfter: "post",
    -  editNewLineAfter: "pour",
    -  setSelectionBefore: "pre",
    -  insertEmptyLinesAround: "puff",
    -  showQuickFix: "quick fix",
    -  showReferences: "reference",
    -  rename: "rename",
    -  reverseTargets: "reverse",
    -  findInDocument: "scout",
    -  findInWorkspace: "scout all",
    -  randomizeTargets: "shuffle",
    -  generateSnippet: "snippet make",
    -  sortTargets: "sort",
    -  setSelection: "take",
    -  revealTypeDefinition: "type deaf",
    -  unfoldRegion: "unfold",
    -  callAsFunction: "call",
    -  swapTargets: "swap",
    -  replaceWithTarget: "bring",
    -  moveToTarget: "move",
    -  wrapWithPairedDelimiter: "wrap",
    -  wrapWithSnippet: "wrap",
    -  rewrapWithPairedDelimiter: "repack",
    -  insertSnippet: "snippet",
    -  pasteFromClipboard: "paste",
    -  joinLines: "join",
    -  ["private.showParseTree"]: "parse tree",
    -  ["experimental.setInstanceReference"]: "from",
    -  editNew: null,
    -  executeCommand: null,
    -  getText: null,
    -  replace: null,
    -  ["private.getTargets"]: null,
    -  ["private.setKeyboardTarget"]: null
    -  // These actions are implemented talon-side, usually using `getText` followed
    -  // by some other action.
    -  // applyFormatter: "format",
    -  // nextHomophone: "phones",
    -};
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts
    -var connectives = {
    -  rangeExclusive: "between",
    -  rangeInclusive: "past",
    -  // Note: rangeExcludingStart has no default spoken form
    -  rangeExcludingStart: null,
    -  rangeExcludingEnd: "until",
    -  listConnective: "and",
    -  swapConnective: "with",
    -  sourceDestinationConnective: "to",
    -  before: "before",
    -  after: "after",
    -  verticalRange: "slice",
    -  previous: "previous",
    -  next: "next",
    -  forward: "forward",
    -  backward: "backward"
    -};
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
    -var surroundingPairsDelimiters = {
    -  curlyBrackets: ["{", "}"],
    -  angleBrackets: ["<", ">"],
    -  escapedDoubleQuotes: ['\\"', '\\"'],
    -  escapedSingleQuotes: ["\\'", "\\'"],
    -  escapedParentheses: ["\\(", "\\)"],
    -  escapedSquareBrackets: ["\\[", "\\]"],
    -  doubleQuotes: ['"', '"'],
    -  parentheses: ["(", ")"],
    -  backtickQuotes: ["`", "`"],
    -  squareBrackets: ["[", "]"],
    -  singleQuotes: ["'", "'"],
    -  whitespace: [" ", " "],
    -  any: null,
    -  string: null,
    -  collectionBoundary: null
    -};
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
    -var surroundingPairDelimiterToName = new CompositeKeyMap((pair) => pair);
    -for (const [name, pair] of Object.entries(surroundingPairsDelimiters)) {
    -  if (pair != null) {
    -    surroundingPairDelimiterToName.set(
    -      pair,
    -      name
    -    );
    -  }
    -}
    -function surroundingPairDelimitersToSpokenForm(spokenFormMap, left, right) {
    -  const pairName = surroundingPairDelimiterToName.get([left, right]);
    -  if (pairName == null) {
    -    throw Error(`Unknown surrounding pair delimiters '${left} ${right}'`);
    -  }
    -  return spokenFormMap.pairedDelimiter[pairName];
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
    -var insertionSnippets = {
    -  ifStatement: "if",
    -  ifElseStatement: "if else",
    -  tryCatchStatement: "try",
    -  functionDeclaration: "funk",
    -  link: "link"
    -};
    -var wrapperSnippets = {
    -  "ifElseStatement.alternative": "else",
    -  "functionDeclaration.body": "funk",
    -  "ifElseStatement.consequence": "if else",
    -  "ifStatement.consequence": "if",
    -  "tryCatchStatement.body": "try",
    -  "link.text": "link"
    -};
    -function insertionSnippetToSpokenForm(snippetDescription) {
    -  if (snippetDescription.type === "custom") {
    -    throw new NoSpokenFormError("Custom insertion snippet");
    -  }
    -  const result = insertionSnippets[snippetDescription.name];
    -  if (result == null) {
    -    throw new NoSpokenFormError(
    -      `Named insertion snippet '${snippetDescription.name}'`
    -    );
    -  }
    -  if (snippetDescription.substitutions != null) {
    -    const values2 = Object.values(snippetDescription.substitutions);
    -    return `${result} ${values2.join(" ")}`;
    -  }
    -  return result;
    -}
    -function wrapperSnippetToSpokenForm(snippetDescription) {
    -  if (snippetDescription.type === "custom") {
    -    throw new NoSpokenFormError("Custom wrap with snippet");
    -  }
    -  const name = `${snippetDescription.name}.${snippetDescription.variableName}`;
    -  const result = wrapperSnippets[name];
    -  if (result == null) {
    -    throw new NoSpokenFormError(`Named wrap with snippet '${name}'`);
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/getRangeConnective.ts
    -function getRangeConnective(excludeAnchor, excludeActive, type2) {
    -  const prefix = type2 === "vertical" ? `${connectives.verticalRange} ` : "";
    -  if (excludeAnchor && excludeActive) {
    -    return prefix + connectives.rangeExclusive;
    -  }
    -  if (excludeAnchor) {
    -    throw new NoSpokenFormError("Range exclude anchor");
    -  }
    -  if (excludeActive) {
    -    return prefix + connectives.rangeExcludingEnd;
    -  }
    -  if (type2 === "vertical") {
    -    return connectives.verticalRange;
    -  }
    -  return connectives.rangeInclusive;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
    -var hatColors = {
    -  blue: "blue",
    -  green: "green",
    -  red: "red",
    -  pink: "pink",
    -  yellow: "yellow",
    -  userColor1: "navy",
    -  userColor2: "apricot",
    -  default: null
    -};
    -var hatShapes = {
    -  ex: "ex",
    -  fox: "fox",
    -  wing: "wing",
    -  hole: "hole",
    -  frame: "frame",
    -  curve: "curve",
    -  eye: "eye",
    -  play: "play",
    -  crosshairs: "cross",
    -  bolt: "bolt",
    -  default: null
    -};
    -var marks = {
    -  cursor: "this",
    -  that: "that",
    -  source: "source",
    -  nothing: "nothing",
    -  keyboard: null,
    -  explicit: null,
    -  decoratedSymbol: null,
    -  lineNumber: null,
    -  range: null
    -};
    -var lineDirections = {
    -  modulo100: "row",
    -  relativeUp: "up",
    -  relativeDown: "down"
    -};
    -function hatColorToSpokenForm(color) {
    -  const result = hatColors[color];
    -  if (result == null) {
    -    throw Error(`Unknown hat color '${color}'`);
    -  }
    -  return result;
    -}
    -function hatShapeToSpokenForm(shape) {
    -  const result = hatShapes[shape];
    -  if (result == null) {
    -    throw Error(`Unknown hat shape '${shape}'`);
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts
    -var numbers = [
    -  "zero",
    -  "one",
    -  "two",
    -  "three",
    -  "four",
    -  "five",
    -  "six",
    -  "seven",
    -  "eight",
    -  "nine",
    -  "ten",
    -  "eleven",
    -  "twelve",
    -  "thirteen",
    -  "fourteen",
    -  "fifteen",
    -  "sixteen",
    -  "seventeen",
    -  "eighteen",
    -  "nineteen",
    -  "twenty",
    -  "twenty one",
    -  "twenty two",
    -  "twenty three",
    -  "twenty four",
    -  "twenty five",
    -  "twenty six",
    -  "twenty seven",
    -  "twenty eight",
    -  "twenty nine",
    -  "thirty",
    -  "thirty one",
    -  "thirty two",
    -  "thirty three",
    -  "thirty four",
    -  "thirty five",
    -  "thirty six",
    -  "thirty seven",
    -  "thirty eight",
    -  "thirty nine",
    -  "forty",
    -  "forty one",
    -  "forty two",
    -  "forty three",
    -  "forty four",
    -  "forty five",
    -  "forty six",
    -  "forty seven",
    -  "forty eight",
    -  "forty nine",
    -  "fifty",
    -  "fifty one",
    -  "fifty two",
    -  "fifty three",
    -  "fifty four",
    -  "fifty five",
    -  "fifty six",
    -  "fifty seven",
    -  "fifty eight",
    -  "fifty nine",
    -  "sixty",
    -  "sixty one",
    -  "sixty two",
    -  "sixty three",
    -  "sixty four",
    -  "sixty five",
    -  "sixty six",
    -  "sixty seven",
    -  "sixty eight",
    -  "sixty nine",
    -  "seventy",
    -  "seventy one",
    -  "seventy two",
    -  "seventy three",
    -  "seventy four",
    -  "seventy five",
    -  "seventy six",
    -  "seventy seven",
    -  "seventy eight",
    -  "seventy nine",
    -  "eighty",
    -  "eighty one",
    -  "eighty two",
    -  "eighty three",
    -  "eighty four",
    -  "eighty five",
    -  "eighty six",
    -  "eighty seven",
    -  "eighty eight",
    -  "eighty nine",
    -  "ninety",
    -  "ninety one",
    -  "ninety two",
    -  "ninety three",
    -  "ninety four",
    -  "ninety five",
    -  "ninety six",
    -  "ninety seven",
    -  "ninety eight",
    -  "ninety nine"
    -];
    -var ordinals = [
    -  "zeroth",
    -  "first",
    -  "second",
    -  "third",
    -  "fourth",
    -  "fifth",
    -  "sixth",
    -  "seventh",
    -  "eighth",
    -  "ninth",
    -  "tenth",
    -  "eleventh",
    -  "twelfth",
    -  "thirteenth",
    -  "fourteenth",
    -  "fifteenth",
    -  "sixteenth",
    -  "seventeenth",
    -  "eighteenth",
    -  "nineteenth",
    -  "twentieth"
    -];
    -function numberToSpokenForm(number) {
    -  const result = numbers[number];
    -  if (result == null) {
    -    throw Error(`Unknown number '${number}'`);
    -  }
    -  return result;
    -}
    -function ordinalToSpokenForm(ordinal) {
    -  const result = ordinals[ordinal];
    -  if (result == null) {
    -    throw Error(`Unknown ordinal '${ordinal}'`);
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/defaultSpokenForms/characters.ts
    -var alphabet = Object.fromEntries(
    -  "air bat cap drum each fine gust harp sit jury crunch look made near odd pit quench red sun trap urge vest whale plex yank zip".split(" ").map((word, index) => [
    -    String.fromCharCode("a".charCodeAt(0) + index),
    -    word
    -  ])
    -);
    -var digits = Object.fromEntries(
    -  "zero one two three four five six seven eight nine".split(" ").map((word, index) => [index.toString(), word])
    -);
    -var symbols = {
    -  ".": "dot",
    -  ",": "comma",
    -  ";": "semicolon",
    -  ":": "colon",
    -  "!": "bang",
    -  "*": "asterisk",
    -  "@": "at sign",
    -  "&": "ampersand",
    -  "?": "question",
    -  "/": "slash",
    -  "\\": "backslash",
    -  "-": "dash",
    -  "=": "equals",
    -  "+": "plus",
    -  "~": "tilde",
    -  _: "underscore",
    -  "#": "hash",
    -  "%": "percent",
    -  "^": "caret",
    -  "|": "pipe",
    -  $: "dollar",
    -  "\xA3": "pound",
    -  "'": "quote",
    -  '"': "double quote",
    -  "`": "back tick",
    -  "(": "paren",
    -  ")": "right paren",
    -  "{": "brace",
    -  "}": "right brace",
    -  "[": "square",
    -  "]": "right square",
    -  "<": "angle",
    -  ">": "right angle",
    -  "\uFFFD": "special"
    -};
    -var characters = {
    -  ...alphabet,
    -  ...digits,
    -  ...symbols
    -};
    -function characterToSpokenForm(char) {
    -  const result = characters[char];
    -  if (result == null) {
    -    throw new NoSpokenFormError(`Unknown character '${char}'`);
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
    -var PrimitiveTargetSpokenFormGenerator = class {
    -  constructor(spokenFormMap) {
    -    this.spokenFormMap = spokenFormMap;
    -    this.handleModifier = this.handleModifier.bind(this);
    -  }
    -  handlePrimitiveTarget(target) {
    -    const components = [];
    -    if (target.modifiers != null) {
    -      components.push(target.modifiers.map(this.handleModifier));
    -    }
    -    if (target.mark != null) {
    -      components.push(this.handleMark(target.mark));
    -    }
    -    return components;
    -  }
    -  handleModifier(modifier) {
    -    switch (modifier.type) {
    -      case "cascading":
    -      case "modifyIfUntyped":
    -        throw new NoSpokenFormError(`Modifier '${modifier.type}'`);
    -      case "containingScope":
    -        if (modifier.ancestorIndex == null || modifier.ancestorIndex === 0) {
    -          return this.handleScopeType(modifier.scopeType);
    -        }
    -        if (modifier.ancestorIndex === 1) {
    -          return [
    -            this.spokenFormMap.modifierExtra.ancestor,
    -            this.handleScopeType(modifier.scopeType)
    -          ];
    -        }
    -        throw new NoSpokenFormError(
    -          `Modifier '${modifier.type}' with ancestor index ${modifier.ancestorIndex}`
    -        );
    -      case "everyScope":
    -        return [
    -          this.spokenFormMap.simpleModifier.everyScope,
    -          this.handleScopeType(modifier.scopeType)
    -        ];
    -      case "extendThroughStartOf":
    -      case "extendThroughEndOf": {
    -        const type2 = this.spokenFormMap.simpleModifier[modifier.type];
    -        return modifier.modifiers != null ? [type2, modifier.modifiers.map(this.handleModifier)] : [type2];
    -      }
    -      case "relativeScope":
    -        return modifier.offset === 0 ? this.handleRelativeScopeInclusive(modifier) : this.handleRelativeScopeExclusive(modifier);
    -      case "ordinalScope": {
    -        const scope = this.handleScopeType(modifier.scopeType);
    -        const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : [];
    -        if (modifier.length === 1) {
    -          if (modifier.start === -1) {
    -            return [isEvery, this.spokenFormMap.modifierExtra.last, scope];
    -          }
    -          if (modifier.start === 0) {
    -            return [isEvery, this.spokenFormMap.modifierExtra.first, scope];
    -          }
    -          if (modifier.start < 0) {
    -            return [
    -              isEvery,
    -              ordinalToSpokenForm(Math.abs(modifier.start)),
    -              this.spokenFormMap.modifierExtra.last,
    -              scope
    -            ];
    -          }
    -          return [isEvery, ordinalToSpokenForm(modifier.start + 1), scope];
    -        }
    -        const number = numberToSpokenForm(modifier.length);
    -        if (modifier.start === 0) {
    -          return [
    -            isEvery,
    -            this.spokenFormMap.modifierExtra.first,
    -            number,
    -            pluralize(scope)
    -          ];
    -        }
    -        if (modifier.start === -modifier.length) {
    -          return [
    -            isEvery,
    -            this.spokenFormMap.modifierExtra.last,
    -            number,
    -            pluralize(scope)
    -          ];
    -        }
    -        throw new NoSpokenFormError(
    -          `'${modifier.type}' with count > 1 and offset away from start / end`
    -        );
    -      }
    -      case "range": {
    -        if (modifier.anchor.type === "ordinalScope" && modifier.active.type === "ordinalScope" && modifier.anchor.length === 1 && modifier.active.length === 1 && modifier.anchor.scopeType.type === modifier.active.scopeType.type) {
    -          const anchor = modifier.anchor.start === -1 ? this.spokenFormMap.modifierExtra.last : ordinalToSpokenForm(modifier.anchor.start + 1);
    -          const active = this.handleModifier(modifier.active);
    -          const connective = getRangeConnective(
    -            modifier.excludeAnchor,
    -            modifier.excludeActive
    -          );
    -          return [anchor, connective, active];
    -        }
    -        throw Error(`Modifier '${modifier.type}' is not fully implemented`);
    -      }
    -      default:
    -        return [this.spokenFormMap.simpleModifier[modifier.type]];
    -    }
    -  }
    -  handleRelativeScopeInclusive(modifier) {
    -    const scope = this.handleScopeType(modifier.scopeType);
    -    const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : [];
    -    if (modifier.length === 1) {
    -      const direction = modifier.direction === "forward" ? connectives.forward : connectives.backward;
    -      return [isEvery, scope, direction];
    -    }
    -    const length = numberToSpokenForm(modifier.length);
    -    const scopePlural = pluralize(scope);
    -    if (modifier.direction === "forward") {
    -      return [isEvery, length, scopePlural];
    -    }
    -    return [isEvery, length, scopePlural, connectives.backward];
    -  }
    -  handleRelativeScopeExclusive(modifier) {
    -    const scope = this.handleScopeType(modifier.scopeType);
    -    const direction = modifier.direction === "forward" ? connectives.next : connectives.previous;
    -    const isEvery = modifier.isEvery ? this.spokenFormMap.simpleModifier.everyScope : [];
    -    if (modifier.offset === 1) {
    -      const number = numberToSpokenForm(modifier.length);
    -      if (modifier.length === 1) {
    -        return [isEvery, direction, scope];
    -      }
    -      const scopePlural = pluralize(scope);
    -      return [isEvery, direction, number, scopePlural];
    -    }
    -    if (modifier.length === 1) {
    -      const ordinal = ordinalToSpokenForm(modifier.offset);
    -      return [isEvery, ordinal, direction, scope];
    -    }
    -    throw new NoSpokenFormError(
    -      `${modifier.type} modifier with offset > 1 and length > 1`
    -    );
    -  }
    -  handleScopeType(scopeType) {
    -    switch (scopeType.type) {
    -      case "oneOf":
    -        throw new NoSpokenFormError(`Scope type '${scopeType.type}'`);
    -      case "glyph":
    -        return [
    -          this.spokenFormMap.complexScopeTypeType.glyph,
    -          characterToSpokenForm(scopeType.character)
    -        ];
    -      case "surroundingPair": {
    -        const pair = this.spokenFormMap.pairedDelimiter[scopeType.delimiter];
    -        if (scopeType.forceDirection != null) {
    -          return [
    -            this.spokenFormMap.surroundingPairForceDirection[scopeType.forceDirection],
    -            pair
    -          ];
    -        }
    -        return pair;
    -      }
    -      case "customRegex":
    -        return this.spokenFormMap.customRegex[scopeType.regex] ?? {
    -          type: "customizable",
    -          spokenForms: {
    -            spokenForms: [],
    -            isCustom: true,
    -            defaultSpokenForms: [],
    -            requiresTalonUpdate: false,
    -            isPrivate: false
    -          },
    -          spokenFormType: "customRegex",
    -          id: scopeType.regex
    -        };
    -      default:
    -        return this.spokenFormMap.simpleScopeTypeType[scopeType.type];
    -    }
    -  }
    -  handleMark(mark) {
    -    switch (mark.type) {
    -      case "decoratedSymbol": {
    -        const [color, shape] = mark.symbolColor.split("-");
    -        const components = [];
    -        if (color !== "default") {
    -          components.push(hatColorToSpokenForm(color));
    -        }
    -        if (shape != null) {
    -          components.push(hatShapeToSpokenForm(shape));
    -        }
    -        components.push(characterToSpokenForm(mark.character));
    -        return components;
    -      }
    -      case "lineNumber": {
    -        return this.handleLineNumberMark(mark);
    -      }
    -      case "range": {
    -        if (mark.anchor.type === "lineNumber" && mark.active.type === "lineNumber") {
    -          const [typeAnchor, numberAnchor] = this.handleLineNumberMark(
    -            mark.anchor
    -          );
    -          const [typeActive, numberActive] = this.handleLineNumberMark(
    -            mark.active
    -          );
    -          if (typeAnchor === typeActive) {
    -            const connective = getRangeConnective(
    -              mark.excludeAnchor,
    -              mark.excludeActive
    -            );
    -            return [typeAnchor, numberAnchor, connective, numberActive];
    -          }
    -        }
    -        throw Error(`Mark '${mark.type}' is not fully implemented`);
    -      }
    -      case "explicit":
    -      case "keyboard":
    -        throw new NoSpokenFormError(`Mark '${mark.type}'`);
    -      default:
    -        return [marks[mark.type]];
    -    }
    -  }
    -  handleLineNumberMark(mark) {
    -    switch (mark.lineNumberType) {
    -      case "absolute":
    -        throw new NoSpokenFormError("Absolute line numbers");
    -      case "modulo100": {
    -        return [
    -          lineDirections.modulo100,
    -          numberToSpokenForm(mark.lineNumber + 1)
    -        ];
    -      }
    -      case "relative": {
    -        return [
    -          mark.lineNumber < 0 ? lineDirections.relativeUp : lineDirections.relativeDown,
    -          numberToSpokenForm(Math.abs(mark.lineNumber))
    -        ];
    -      }
    -    }
    -  }
    -};
    -function pluralize(name) {
    -  if (typeof name === "string") {
    -    return pluralizeString(name);
    -  }
    -  if (Array.isArray(name)) {
    -    if (name.length === 0) {
    -      return name;
    -    }
    -    const last2 = name[name.length - 1];
    -    return [...name.slice(0, -1), pluralize(last2)];
    -  }
    -  return {
    -    ...name,
    -    spokenForms: {
    -      ...name.spokenForms,
    -      spokenForms: name.spokenForms.spokenForms.map(pluralizeString)
    -    }
    -  };
    -}
    -function pluralizeString(name) {
    -  return `${name}s`;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
    -function getSpokenFormComponentMap(spokenFormMap) {
    -  return Object.fromEntries(
    -    Object.entries(spokenFormMap).map(([spokenFormType, map4]) => [
    -      spokenFormType,
    -      Object.fromEntries(
    -        Object.entries(map4).map(([id, spokenForms]) => [
    -          id,
    -          {
    -            type: "customizable",
    -            spokenForms,
    -            spokenFormType,
    -            id
    -          }
    -        ])
    -      )
    -    ])
    -    // FIXME: Don't cast here; need to make our own mapValues with stronger typing
    -    // using tricks from our object.d.ts
    -  );
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/generateSpokenForm.ts
    -var SpokenFormGenerator = class {
    -  constructor(spokenFormMap) {
    -    this.spokenFormMap = getSpokenFormComponentMap(spokenFormMap);
    -    this.primitiveGenerator = new PrimitiveTargetSpokenFormGenerator(
    -      this.spokenFormMap
    -    );
    -  }
    -  /**
    -   * Given a command, generates its spoken form.
    -   * @param command The command to generate a spoken form for
    -   * @returns The spoken form of the command
    -   */
    -  processCommand(command) {
    -    return this.componentsToSpokenForm(() => this.handleAction(command.action));
    -  }
    -  /**
    -   * Given a scope type, generates its spoken form.
    -   * @param scopeType The scope type to generate a spoken form for
    -   * @returns The spoken form of the scope type
    -   */
    -  processScopeType(scopeType) {
    -    return this.componentsToSpokenForm(() => [
    -      this.primitiveGenerator.handleScopeType(scopeType)
    -    ]);
    -  }
    -  /**
    -   * Given a function that returns a spoken form component, generates a spoken
    -   * form for that component by flattening the component and performing a
    -   * cartesian product over any elements that have multiple ways to be spoken.
    -   * Note that this spoken form object can correspond to multiple actual spoken
    -   * forms, consisting of a preferred spoken form and a list of alternative
    -   * spoken forms.
    -   *
    -   * Note that today, we arbitrarily choose the first spoken form as the
    -   * preferred spoken form, and the rest as alternative spoken forms.
    -   *
    -   * If the function throws a {@link NoSpokenFormError}, returns an error spoken
    -   * form object instead.
    -   *
    -   * @param getComponents A function that returns the components to generate a
    -   * spoken form for
    -   * @returns A spoken form for the given components
    -   */
    -  componentsToSpokenForm(getComponents) {
    -    try {
    -      return {
    -        type: "success",
    -        spokenForms: constructSpokenForms(getComponents())
    -      };
    -    } catch (e) {
    -      if (e instanceof NoSpokenFormError) {
    -        return {
    -          type: "error",
    -          reason: e.reason,
    -          requiresTalonUpdate: e.requiresTalonUpdate,
    -          isPrivate: e.isPrivate
    -        };
    -      }
    -      throw e;
    -    }
    -  }
    -  handleAction(action) {
    -    switch (action.name) {
    -      case "editNew":
    -      case "getText":
    -      case "replace":
    -      case "executeCommand":
    -      case "private.getTargets":
    -      case "private.setKeyboardTarget":
    -        throw new NoSpokenFormError(`Action '${action.name}'`);
    -      case "replaceWithTarget":
    -      case "moveToTarget":
    -        return [
    -          actions[action.name],
    -          this.handleTarget(action.source),
    -          this.handleDestination(action.destination)
    -        ];
    -      case "swapTargets":
    -        return [
    -          actions[action.name],
    -          this.handleTarget(action.target1),
    -          connectives.swapConnective,
    -          this.handleTarget(action.target2)
    -        ];
    -      case "callAsFunction":
    -        if (action.argument.type === "implicit") {
    -          return [actions[action.name], this.handleTarget(action.callee)];
    -        }
    -        return [
    -          actions[action.name],
    -          this.handleTarget(action.callee),
    -          "on",
    -          this.handleTarget(action.argument)
    -        ];
    -      case "wrapWithPairedDelimiter":
    -      case "rewrapWithPairedDelimiter":
    -        return [
    -          surroundingPairDelimitersToSpokenForm(
    -            this.spokenFormMap,
    -            action.left,
    -            action.right
    -          ),
    -          actions[action.name],
    -          this.handleTarget(action.target)
    -        ];
    -      case "pasteFromClipboard":
    -        return [
    -          actions[action.name],
    -          this.handleDestination(action.destination)
    -        ];
    -      case "insertSnippet":
    -        return [
    -          actions[action.name],
    -          insertionSnippetToSpokenForm(action.snippetDescription),
    -          this.handleDestination(action.destination)
    -        ];
    -      case "generateSnippet":
    -        if (action.snippetName != null) {
    -          throw new NoSpokenFormError(`${action.name}.snippetName`);
    -        }
    -        return [actions[action.name], this.handleTarget(action.target)];
    -      case "wrapWithSnippet":
    -        return [
    -          wrapperSnippetToSpokenForm(action.snippetDescription),
    -          actions[action.name],
    -          this.handleTarget(action.target)
    -        ];
    -      case "highlight": {
    -        if (action.highlightId != null) {
    -          throw new NoSpokenFormError(`${action.name}.highlightId`);
    -        }
    -        return [actions[action.name], this.handleTarget(action.target)];
    -      }
    -      default: {
    -        return [actions[action.name], this.handleTarget(action.target)];
    -      }
    -    }
    -  }
    -  handleTarget(target) {
    -    switch (target.type) {
    -      case "list":
    -        if (target.elements.length < 2) {
    -          throw new NoSpokenFormError("List target with < 2 elements");
    -        }
    -        return target.elements.map(
    -          (element, i) => i === 0 ? this.handleTarget(element) : [connectives.listConnective, this.handleTarget(element)]
    -        );
    -      case "range": {
    -        const anchor = this.handleTarget(target.anchor);
    -        const active = this.handleTarget(target.active);
    -        const connective = getRangeConnective(
    -          target.excludeAnchor,
    -          target.excludeActive,
    -          target.rangeType
    -        );
    -        return [anchor, connective, active];
    -      }
    -      case "primitive":
    -        return this.primitiveGenerator.handlePrimitiveTarget(target);
    -      case "implicit":
    -        return [];
    -    }
    -  }
    -  handleDestination(destination) {
    -    switch (destination.type) {
    -      case "list":
    -        if (destination.destinations.length < 2) {
    -          throw new NoSpokenFormError("List destination with < 2 elements");
    -        }
    -        return destination.destinations.map(
    -          (destination2, i) => i === 0 ? this.handleDestination(destination2) : [connectives.listConnective, this.handleDestination(destination2)]
    -        );
    -      case "primitive":
    -        return [
    -          this.handleInsertionMode(destination.insertionMode),
    -          this.handleTarget(destination.target)
    -        ];
    -      case "implicit":
    -        return [];
    -    }
    -  }
    -  handleInsertionMode(insertionMode) {
    -    switch (insertionMode) {
    -      case "to":
    -        return connectives.sourceDestinationConnective;
    -      case "before":
    -        return connectives.before;
    -      case "after":
    -        return connectives.after;
    -    }
    -  }
    -};
    -function constructSpokenForms(component) {
    -  if (typeof component === "string") {
    -    return [component];
    -  }
    -  if (Array.isArray(component)) {
    -    if (component.length === 0) {
    -      return [""];
    -    }
    -    return cartesianProduct(component.map(constructSpokenForms)).map(
    -      (words) => words.filter((word) => word.length !== 0).join(" ")
    -    );
    -  }
    -  if (component.spokenForms.spokenForms.length === 0) {
    -    const componentInfo = `${camelCaseToAllDown(
    -      component.spokenFormType
    -    )} with id ${component.id}`;
    -    let helpInfo;
    -    if (component.spokenForms.isPrivate) {
    -      helpInfo = "this is a private spoken form currently only for internal experimentation";
    -    } else if (component.spokenForms.requiresTalonUpdate) {
    -      helpInfo = "please update talon to the latest version (see https://www.cursorless.org/docs/user/updating/)";
    -    } else {
    -      helpInfo = "please see https://www.cursorless.org/docs/user/customization/ for more information";
    -    }
    -    throw new NoSpokenFormError(
    -      `${componentInfo}; ${helpInfo}`,
    -      component.spokenForms.requiresTalonUpdate,
    -      component.spokenForms.isPrivate
    -    );
    -  }
    -  return component.spokenForms.spokenForms;
    -}
    -function cartesianProduct(arrays) {
    -  if (arrays.length === 0) {
    -    return [];
    -  }
    -  if (arrays.length === 1) {
    -    return arrays[0].map((element) => [element]);
    -  }
    -  const [first, ...rest] = arrays;
    -  const restCartesianProduct = cartesianProduct(rest);
    -  return first.flatMap(
    -    (element) => restCartesianProduct.map((restElement) => [element, ...restElement])
    -  );
    -}
    -
    -// ../cursorless-engine/src/spokenForms/SpokenFormMap.ts
    -function mapSpokenForms(input, mapper) {
    -  return Object.fromEntries(
    -    Object.entries(input).map(([spokenFormType, map4]) => [
    -      spokenFormType,
    -      Object.fromEntries(
    -        Object.entries(map4).map(([id, inputValue]) => [
    -          id,
    -          mapper(inputValue, spokenFormType, id)
    -        ])
    -      )
    -    ])
    -    // FIXME: Don't cast here; need to make our own mapValues with stronger typing
    -    // using tricks from our object.d.ts
    -  );
    -}
    -
    -// ../cursorless-engine/src/spokenForms/spokenFormMapUtil.ts
    -function isDisabledByDefault(...spokenForms) {
    -  return {
    -    defaultSpokenForms: spokenForms,
    -    isDisabledByDefault: true,
    -    isPrivate: false
    -  };
    -}
    -function isPrivate(...spokenForms) {
    -  return {
    -    defaultSpokenForms: spokenForms,
    -    isDisabledByDefault: true,
    -    isPrivate: true
    -  };
    -}
    -
    -// ../cursorless-engine/src/spokenForms/defaultSpokenFormMapCore.ts
    -var defaultSpokenFormMapCore = {
    -  pairedDelimiter: {
    -    curlyBrackets: "curly",
    -    angleBrackets: "diamond",
    -    escapedDoubleQuotes: "escaped quad",
    -    escapedSingleQuotes: "escaped twin",
    -    escapedParentheses: "escaped round",
    -    escapedSquareBrackets: "escaped box",
    -    doubleQuotes: "quad",
    -    parentheses: "round",
    -    backtickQuotes: "skis",
    -    squareBrackets: "box",
    -    singleQuotes: "twin",
    -    any: "pair",
    -    string: "string",
    -    whitespace: "void",
    -    collectionBoundary: isPrivate("collection boundary")
    -  },
    -  simpleScopeTypeType: {
    -    argumentOrParameter: "arg",
    -    attribute: "attribute",
    -    functionCall: "call",
    -    functionCallee: "callee",
    -    className: "class name",
    -    class: "class",
    -    comment: "comment",
    -    functionName: "funk name",
    -    namedFunction: "funk",
    -    ifStatement: "if state",
    -    instance: "instance",
    -    collectionItem: "item",
    -    collectionKey: "key",
    -    anonymousFunction: "lambda",
    -    list: "list",
    -    map: "map",
    -    name: "name",
    -    regularExpression: "regex",
    -    section: "section",
    -    sectionLevelOne: isDisabledByDefault("one section"),
    -    sectionLevelTwo: isDisabledByDefault("two section"),
    -    sectionLevelThree: isDisabledByDefault("three section"),
    -    sectionLevelFour: isDisabledByDefault("four section"),
    -    sectionLevelFive: isDisabledByDefault("five section"),
    -    sectionLevelSix: isDisabledByDefault("six section"),
    -    selector: "selector",
    -    statement: "state",
    -    branch: "branch",
    -    type: "type",
    -    value: "value",
    -    condition: "condition",
    -    unit: "unit",
    -    //  XML, JSX
    -    xmlElement: "element",
    -    xmlBothTags: "tags",
    -    xmlStartTag: "start tag",
    -    xmlEndTag: "end tag",
    -    // LaTeX
    -    part: "part",
    -    chapter: "chapter",
    -    subSection: "subsection",
    -    subSubSection: "subsubsection",
    -    namedParagraph: "paragraph",
    -    subParagraph: "subparagraph",
    -    environment: "environment",
    -    // Talon
    -    command: "command",
    -    // Text-based scope types
    -    character: "char",
    -    word: "sub",
    -    token: "token",
    -    identifier: "identifier",
    -    line: "line",
    -    sentence: "sentence",
    -    paragraph: "block",
    -    document: "file",
    -    nonWhitespaceSequence: "paint",
    -    boundedNonWhitespaceSequence: "short paint",
    -    url: "link",
    -    notebookCell: "cell",
    -    ["private.fieldAccess"]: isPrivate("access"),
    -    string: isPrivate("parse tree string"),
    -    ["private.switchStatementSubject"]: isPrivate("subject")
    -  },
    -  complexScopeTypeType: {
    -    glyph: "glyph"
    -  },
    -  surroundingPairForceDirection: {
    -    left: "left",
    -    right: "right"
    -  },
    -  simpleModifier: {
    -    excludeInterior: "bounds",
    -    toRawSelection: "just",
    -    leading: "leading",
    -    trailing: "trailing",
    -    keepContentFilter: "content",
    -    keepEmptyFilter: "empty",
    -    inferPreviousMark: "its",
    -    startOf: "start of",
    -    endOf: "end of",
    -    interiorOnly: "inside",
    -    visible: "visible",
    -    extendThroughStartOf: "head",
    -    extendThroughEndOf: "tail",
    -    everyScope: "every"
    -  },
    -  modifierExtra: {
    -    first: "first",
    -    last: "last",
    -    previous: "previous",
    -    next: "next",
    -    forward: "forward",
    -    backward: "backward",
    -    ancestor: "grand"
    -  },
    -  customRegex: {}
    -};
    -
    -// ../cursorless-engine/src/spokenForms/defaultSpokenFormMap.ts
    -var defaultSpokenFormInfoMap = mapSpokenForms(
    -  defaultSpokenFormMapCore,
    -  (value) => typeof value === "string" ? {
    -    defaultSpokenForms: [value],
    -    isDisabledByDefault: false,
    -    isPrivate: false
    -  } : value
    -);
    -var defaultSpokenFormMap = mapSpokenForms(
    -  defaultSpokenFormInfoMap,
    -  ({ defaultSpokenForms, isDisabledByDefault: isDisabledByDefault2, isPrivate: isPrivate2 }) => ({
    -    spokenForms: isDisabledByDefault2 ? [] : defaultSpokenForms,
    -    isCustom: false,
    -    defaultSpokenForms,
    -    requiresTalonUpdate: false,
    -    isPrivate: isPrivate2
    -  })
    -);
    -
    -// ../cursorless-engine/src/testCaseRecorder/TestCase.ts
    -var import_lodash11 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/getPartialTargetDescriptors.ts
    -function getPartialTargetDescriptors(action) {
    -  switch (action.name) {
    -    case "callAsFunction":
    -      return [action.callee, action.argument];
    -    case "replaceWithTarget":
    -    case "moveToTarget":
    -      return [
    -        action.source,
    -        ...getPartialTargetDescriptorsFromDestination(action.destination)
    -      ];
    -    case "swapTargets":
    -      return [action.target1, action.target2];
    -    case "pasteFromClipboard":
    -    case "insertSnippet":
    -    case "replace":
    -    case "editNew":
    -      return getPartialTargetDescriptorsFromDestination(action.destination);
    -    default:
    -      return [action.target];
    -  }
    -}
    -function getPartialTargetDescriptorsFromDestination(destination) {
    -  switch (destination.type) {
    -    case "list":
    -      return destination.destinations.map(({ target }) => target);
    -    case "primitive":
    -      return [destination.target];
    -    case "implicit":
    -      return [];
    -  }
    -}
    -
    -// ../cursorless-engine/src/util/object.ts
    -function mergeStrict(...objects) {
    -  const returnValue = {};
    -  objects.forEach((object) => {
    -    for (const [key, value] of Object.entries(object)) {
    -      if (Object.prototype.hasOwnProperty.call(returnValue, key)) {
    -        throw new Error(`Found duplicate property ${key}`);
    -      }
    -      returnValue[key] = value;
    -    }
    -  });
    -  return returnValue;
    -}
    -function unsafeKeys(o) {
    -  return Object.keys(o);
    -}
    -
    -// ../cursorless-engine/src/core/StoredTargets.ts
    -var StoredTargetMap = class {
    -  constructor() {
    -    this.targetMap = /* @__PURE__ */ new Map();
    -    this.notifier = new Notifier();
    -  }
    -  set(key, targets) {
    -    this.targetMap.set(key, targets);
    -    this.notifier.notifyListeners(key, targets);
    -  }
    -  get(key) {
    -    return this.targetMap.get(key);
    -  }
    -  onStoredTargets(callback2) {
    -    for (const key of storedTargetKeys) {
    -      callback2(key, this.get(key));
    -    }
    -    return this.notifier.registerListener(callback2);
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/Debug.ts
    -var Debug = class {
    -  constructor(treeSitter) {
    -    this.treeSitter = treeSitter;
    -    ide().disposeOnExit(this);
    -    this.evaluateSetting = this.evaluateSetting.bind(this);
    -    this.logBranchTypes = this.logBranchTypes.bind(this);
    -    this.active = true;
    -    switch (ide().runMode) {
    -      case "development":
    -        this.enableDebugLog();
    -        break;
    -      case "test":
    -        this.disableDebugLog();
    -        break;
    -      case "production":
    -        this.evaluateSetting();
    -        this.disposableConfiguration = ide().configuration.onDidChangeConfiguration(this.evaluateSetting);
    -        break;
    -    }
    -  }
    -  log(...args) {
    -    if (this.active) {
    -      console.log(...args);
    -    }
    -  }
    -  dispose() {
    -    if (this.disposableConfiguration) {
    -      this.disposableConfiguration.dispose();
    -    }
    -    if (this.disposableSelection) {
    -      this.disposableSelection.dispose();
    -    }
    -  }
    -  enableDebugLog() {
    -    this.active = true;
    -    this.disposableSelection = ide().onDidChangeTextEditorSelection(
    -      this.logBranchTypes
    -    );
    -  }
    -  disableDebugLog() {
    -    this.active = false;
    -    if (this.disposableSelection) {
    -      this.disposableSelection.dispose();
    -      this.disposableSelection = void 0;
    -    }
    -  }
    -  evaluateSetting() {
    -    const debugEnabled = ide().configuration.getOwnConfiguration("debug");
    -    if (debugEnabled) {
    -      this.enableDebugLog();
    -    } else {
    -      this.disableDebugLog();
    -    }
    -  }
    -  logBranchTypes(event) {
    -    let node;
    -    try {
    -      node = this.treeSitter.getNodeAtLocation(
    -        ide().activeTextEditor.document,
    -        event.selections[0]
    -      );
    -    } catch (error) {
    -      return;
    -    }
    -    const ancestors = [node];
    -    while (node.parent != null) {
    -      ancestors.unshift(node.parent);
    -      node = node.parent;
    -    }
    -    const cursor = node.tree.walk();
    -    this.printCursorLocationInfo(ancestors, cursor, 0);
    -  }
    -  printCursorLocationInfo(nodes, cursor, index) {
    -    const field = cursor.currentFieldName();
    -    const fieldText = field != null ? `${field}: ` : "";
    -    const indent = " ".repeat(index);
    -    const nodeIsLast = index === nodes.length - 1;
    -    const { nodeIsNamed } = cursor;
    -    let text = `${indent}${fieldText}`;
    -    if (nodeIsNamed) {
    -      text += `(${cursor.nodeType}`;
    -      if (nodeIsLast) {
    -        text += ")";
    -      }
    -    } else {
    -      text += `"${cursor.nodeType}"`;
    -    }
    -    console.log(text);
    -    if (!nodeIsLast && this.cursorGoToChildWithId(cursor, nodes[index + 1].id)) {
    -      this.printCursorLocationInfo(nodes, cursor, index + 1);
    -    }
    -    if (nodeIsNamed && !nodeIsLast) {
    -      console.log(`${indent})`);
    -    }
    -  }
    -  cursorGoToChildWithId(cursor, id) {
    -    cursor.gotoFirstChild();
    -    while (cursor.currentNode().id !== id) {
    -      if (!cursor.gotoNextSibling()) {
    -        return false;
    -      }
    -    }
    -    return true;
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/HatTokenMapImpl.ts
    -var import_process = require("process");
    -
    -// ../cursorless-engine/src/util/bigint.ts
    -function abs(x) {
    -  return x < BigInt(0) ? -x : x;
    -}
    -
    -// ../cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
    -var import_lodash13 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/regex.ts
    -function _rightAnchored(regex) {
    -  const { source, flags } = regex;
    -  return new RegExp(`(${source})$`, flags.replace("m", ""));
    -}
    -function _leftAnchored(regex) {
    -  const { source, flags } = regex;
    -  return new RegExp(`^(${source})`, flags.replace("m", ""));
    -}
    -function makeCache(func) {
    -  const cache = /* @__PURE__ */ new Map();
    -  function wrapper(arg) {
    -    let cachedValue = cache.get(arg);
    -    if (cachedValue == null) {
    -      cachedValue = func(arg);
    -      cache.set(arg, cachedValue);
    -    }
    -    return cachedValue;
    -  }
    -  return wrapper;
    -}
    -var rightAnchored = makeCache(_rightAnchored);
    -var leftAnchored = makeCache(_leftAnchored);
    -function matchAll(text, regex, mapfn) {
    -  regex.lastIndex = 0;
    -  return Array.from(text.matchAll(regex), mapfn);
    -}
    -function testRegex(regex, text) {
    -  regex.lastIndex = 0;
    -  return regex.test(text);
    -}
    -function matchRegex(regex, text) {
    -  regex.lastIndex = 0;
    -  return text.match(regex);
    -}
    -function matchText(text, regex) {
    -  return matchAll(text, regex, (match2) => ({
    -    index: match2.index,
    -    text: match2[0]
    -  }));
    -}
    -
    -// ../cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
    -var KNOWN_SYMBOLS = [
    -  "!",
    -  "#",
    -  "$",
    -  "%",
    -  "&",
    -  "'",
    -  "(",
    -  ")",
    -  "*",
    -  "+",
    -  ",",
    -  "-",
    -  ".",
    -  "/",
    -  ":",
    -  ";",
    -  "<",
    -  "=",
    -  ">",
    -  "?",
    -  "@",
    -  "[",
    -  "\\",
    -  "]",
    -  "^",
    -  "_",
    -  "`",
    -  "{",
    -  "|",
    -  "}",
    -  "~",
    -  "\xA3",
    -  '"'
    -];
    -var KNOWN_SYMBOL_REGEXP_STR = KNOWN_SYMBOLS.map(import_lodash13.escapeRegExp).join("|");
    -var KNOWN_GRAPHEME_REGEXP_STR = ["[a-zA-Z0-9]", KNOWN_SYMBOL_REGEXP_STR].join(
    -  "|"
    -);
    -var KNOWN_GRAPHEME_MATCHER = new RegExp(
    -  `^(${KNOWN_GRAPHEME_REGEXP_STR})$`,
    -  "u"
    -);
    -var UNKNOWN = "[unk]";
    -var GRAPHEME_SPLIT_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}]/gu;
    -var TokenGraphemeSplitter = class {
    -  constructor() {
    -    this.disposables = [];
    -    this.algorithmChangeNotifier = new Notifier();
    -    /**
    -     * Splits {@link token} into a list of graphemes, normalised as per
    -     * {@link normalizeGrapheme}.
    -     * @param token The token to split
    -     * @returns A list of normalised graphemes in {@link token}
    -     */
    -    this.getTokenGraphemes = (token) => matchAll(token, GRAPHEME_SPLIT_REGEX, (match2) => ({
    -      text: this.normalizeGrapheme(match2[0]),
    -      tokenStartOffset: match2.index,
    -      tokenEndOffset: match2.index + match2[0].length
    -    }));
    -    /**
    -     * Register to be notified when the graphing splitting algorithm changes, for example if
    -     * the user changes the setting to enable preserving case
    -     * @param listener A function to be called when graphing splitting algorithm changes
    -     * @returns A function that can be called to unsubscribe from notifications
    -     */
    -    this.registerAlgorithmChangeListener = this.algorithmChangeNotifier.registerListener;
    -    ide().disposeOnExit(this);
    -    this.updateTokenHatSplittingMode = this.updateTokenHatSplittingMode.bind(this);
    -    this.getTokenGraphemes = this.getTokenGraphemes.bind(this);
    -    this.updateTokenHatSplittingMode();
    -    this.disposables.push(
    -      // Notify listeners in case the user changed their token hat splitting
    -      // setting.
    -      ide().configuration.onDidChangeConfiguration(
    -        this.updateTokenHatSplittingMode
    -      )
    -    );
    -  }
    -  updateTokenHatSplittingMode() {
    -    const { lettersToPreserve, symbolsToPreserve, ...rest } = ide().configuration.getOwnConfiguration("tokenHatSplittingMode");
    -    this.tokenHatSplittingMode = {
    -      lettersToPreserve: lettersToPreserve.map(
    -        (grapheme) => grapheme.toLowerCase().normalize("NFC")
    -      ),
    -      symbolsToPreserve: symbolsToPreserve.map(
    -        (grapheme) => grapheme.normalize("NFC")
    -      ),
    -      ...rest
    -    };
    -    this.algorithmChangeNotifier.notifyListeners();
    -  }
    -  /**
    -   * Normalizes the grapheme {@link rawGraphemeText} based on user
    -   * configuration.  Proceeds as follows:
    -   *
    -   * 1. Runs text through Unicode NFC normalization to ensure that characters
    -   *    that look identical are handled the same (eg whether they use combining
    -   *    mark or single codepoint for diacritics).
    -   * 2. If the grapheme is a known grapheme, returns it.
    -   * 3. Transforms grapheme to lowercase if
    -   *    {@link TokenHatSplittingMode.preserveCase} is `false`
    -   * 3. Returns the (possibly case-normalised) grapheme if it appears in
    -   *    {@link TokenHatSplittingMode.lettersToPreserve}
    -   * 4. Strips diacritics from the grapheme
    -   * 5. If the grapheme doesn't match {@link KNOWN_GRAPHEME_MATCHER}, maps the
    -   *    grapheme to the constant {@link UNKNOWN}, so that it can be referred to
    -   *    using "special", "red special", etc.
    -   * 6. Returns the grapheme.
    -   *
    -   * @param rawGraphemeText The raw grapheme text to normalise
    -   * @returns The normalised grapheme
    -   */
    -  normalizeGrapheme(rawGraphemeText) {
    -    const { preserveCase, lettersToPreserve, symbolsToPreserve } = this.tokenHatSplittingMode;
    -    let returnValue = rawGraphemeText.normalize("NFC");
    -    if (symbolsToPreserve.includes(returnValue)) {
    -      return returnValue;
    -    }
    -    if (!preserveCase) {
    -      returnValue = returnValue.toLowerCase();
    -    }
    -    if (lettersToPreserve.includes(returnValue.toLowerCase())) {
    -      return returnValue;
    -    }
    -    returnValue = (0, import_lodash13.deburr)(returnValue);
    -    if (!KNOWN_GRAPHEME_MATCHER.test(returnValue)) {
    -      returnValue = UNKNOWN;
    -    }
    -    return returnValue;
    -  }
    -  dispose() {
    -    this.disposables.forEach(({ dispose }) => dispose());
    -  }
    -};
    -
    -// ../cursorless-engine/src/singletons/tokenGraphemeSplitter.singleton.ts
    -function tokenGraphemeSplitter() {
    -  if (tokenGraphemeSplitter_ == null) {
    -    tokenGraphemeSplitter_ = new TokenGraphemeSplitter();
    -  }
    -  return tokenGraphemeSplitter_;
    -}
    -var tokenGraphemeSplitter_;
    -
    -// ../cursorless-engine/src/util/allocateHats/HatMetrics.ts
    -var import_lodash14 = __toESM(require_lodash(), 1);
    -var negativePenalty = ({ penalty }) => -penalty;
    -function hatOldTokenRank(hatOldTokenRanks) {
    -  return ({ grapheme: { text: grapheme }, style }) => {
    -    const hatOldTokenRank2 = hatOldTokenRanks.get({
    -      grapheme,
    -      hatStyle: style
    -    });
    -    return hatOldTokenRank2 == null ? Infinity : -hatOldTokenRank2;
    -  };
    -}
    -function minimumTokenRankContainingGrapheme(tokenRank, graphemeTokenRanks) {
    -  const coreMetric = (0, import_lodash14.memoize)((graphemeText) => {
    -    return (0, import_lodash14.min)(graphemeTokenRanks[graphemeText].filter((r) => r > tokenRank)) ?? Infinity;
    -  });
    -  return ({ grapheme: { text } }) => coreMetric(text);
    -}
    -function isOldTokenHat(oldTokenHat) {
    -  return (hat) => hat.grapheme.text === oldTokenHat?.grapheme && hat.style === oldTokenHat?.hatStyle ? 1 : 0;
    -}
    -function penaltyEquivalenceClass(hatStability) {
    -  switch (hatStability) {
    -    case "greedy" /* greedy */:
    -      return ({ penalty }) => -penalty;
    -    case "balanced" /* balanced */:
    -      return ({ penalty }) => -(penalty < 2 ? 0 : 1);
    -    case "stable" /* stable */:
    -      return (_) => 0;
    -  }
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/maxByFirstDiffering.ts
    -function maxByFirstDiffering(arr, fns) {
    -  if (arr.length === 0) {
    -    return void 0;
    -  }
    -  let remainingValues = arr;
    -  for (const fn of fns) {
    -    if (remainingValues.length === 1) {
    -      return remainingValues[0];
    -    }
    -    remainingValues = maxByAllowingTies(remainingValues, fn);
    -  }
    -  return remainingValues[0];
    -}
    -function maxByAllowingTies(arr, fn) {
    -  let best = -Infinity;
    -  const keep = [];
    -  for (const item of arr) {
    -    const value = fn(item);
    -    if (value < best) {
    -      continue;
    -    }
    -    if (value > best) {
    -      best = value;
    -      keep.length = 0;
    -    }
    -    keep.push(item);
    -  }
    -  return keep;
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/chooseTokenHat.ts
    -function chooseTokenHat({ hatOldTokenRanks, graphemeTokenRanks }, hatStability, tokenRank, oldTokenHat, candidates) {
    -  return maxByFirstDiffering(candidates, [
    -    // 1. Discard any hats that are sufficiently worse than the best hat that we
    -    //    wouldn't use them even if they were our old hat
    -    penaltyEquivalenceClass(hatStability),
    -    // 2. Use our old hat if it's still in the running
    -    isOldTokenHat(oldTokenHat),
    -    // 3. Use a free hat if possible; if not, steal the hat of the token with
    -    //    lowest rank
    -    hatOldTokenRank(hatOldTokenRanks),
    -    // 4. Narrow to the hats with the lowest penalty
    -    negativePenalty,
    -    // 5. Prefer hats that sit on a grapheme that doesn't appear in any highly
    -    //    ranked token
    -    minimumTokenRankContainingGrapheme(tokenRank, graphemeTokenRanks)
    -  ]);
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/getHatRankingContext.ts
    -function getHatRankingContext(tokens, oldTokenHatMap, tokenGraphemeSplitter2) {
    -  const graphemeTokenRanks = {};
    -  const hatOldTokenRanks = new CompositeKeyMap(({ grapheme, hatStyle }) => [grapheme, hatStyle]);
    -  tokens.forEach(({ token, rank }) => {
    -    const existingTokenHat = oldTokenHatMap.get(token);
    -    if (existingTokenHat != null) {
    -      hatOldTokenRanks.set(existingTokenHat, rank);
    -    }
    -    tokenGraphemeSplitter2.getTokenGraphemes(token.text).forEach(({ text: graphemeText }) => {
    -      let tokenRanksForGrapheme;
    -      if (graphemeText in graphemeTokenRanks) {
    -        tokenRanksForGrapheme = graphemeTokenRanks[graphemeText];
    -      } else {
    -        tokenRanksForGrapheme = [];
    -        graphemeTokenRanks[graphemeText] = tokenRanksForGrapheme;
    -      }
    -      tokenRanksForGrapheme.push(rank);
    -    });
    -  });
    -  return {
    -    hatOldTokenRanks,
    -    graphemeTokenRanks
    -  };
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/getRankedTokens.ts
    -var import_lodash17 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/allocateHats/getDisplayLineMap.ts
    -var import_lodash15 = __toESM(require_lodash(), 1);
    -function getDisplayLineMap(editor, extraLines = []) {
    -  return new Map(
    -    (0, import_lodash15.flow)(
    -      import_lodash15.flatten,
    -      import_lodash15.uniq
    -    )(
    -      (0, import_lodash15.concat)(
    -        [extraLines],
    -        editor.visibleRanges.map(
    -          (visibleRange) => (0, import_lodash15.range)(visibleRange.start.line, visibleRange.end.line + 1)
    -        )
    -      )
    -    ).sort((a, b) => a - b).map((value, index) => [value, index])
    -  );
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/getTokenComparator.ts
    -function getTokenComparator(selectionDisplayLine, selectionCharacterIndex) {
    -  return (token1, token2) => {
    -    const token1LineDiff = Math.abs(token1.displayLine - selectionDisplayLine);
    -    const token2LineDiff = Math.abs(token2.displayLine - selectionDisplayLine);
    -    if (token1LineDiff < token2LineDiff) {
    -      return -1;
    -    }
    -    if (token1LineDiff > token2LineDiff) {
    -      return 1;
    -    }
    -    const token1CharacterDiff = Math.abs(
    -      token1.range.start.character - selectionCharacterIndex
    -    );
    -    const token2CharacterDiff = Math.abs(
    -      token2.range.start.character - selectionCharacterIndex
    -    );
    -    return token1CharacterDiff - token2CharacterDiff;
    -  };
    -}
    -
    -// ../cursorless-engine/src/tokenizer/tokenizer.ts
    -var import_lodash16 = __toESM(require_lodash(), 1);
    -var REPEATABLE_SYMBOLS = [
    -  "-",
    -  "+",
    -  "*",
    -  "/",
    -  "=",
    -  "<",
    -  ">",
    -  "_",
    -  "#",
    -  ".",
    -  "|",
    -  "&",
    -  ":"
    -];
    -var FIXED_TOKENS = [
    -  "!==",
    -  "!=",
    -  "+=",
    -  "-=",
    -  "*=",
    -  "/=",
    -  "%=",
    -  "<=",
    -  ">=",
    -  "=>",
    -  "->",
    -  "??",
    -  '"""',
    -  "```",
    -  "/*",
    -  "*/",
    -  ""
    -];
    -var IDENTIFIER_WORD_REGEXES = ["\\p{L}", "\\p{M}", "\\p{N}"];
    -var SINGLE_SYMBOLS_REGEX = "[^\\s\\w]";
    -var NUMBERS_REGEX = "(? `${s}+`).join("|");
    -  const fixedTokensRegex = fixedTokens.map(import_lodash16.escapeRegExp).join("|");
    -  const identifierComponents = identifierWordRegexes.concat(
    -    identifierWordDelimiters.map(import_lodash16.escapeRegExp)
    -  );
    -  const identifiersRegex = `(${identifierComponents.join("|")})+`;
    -  const wordRegex = `(${identifierWordRegexes.join("|")})+`;
    -  const regex = [
    -    fixedTokensRegex,
    -    numbersRegex,
    -    identifiersRegex,
    -    repeatableSymbolsRegex,
    -    singleSymbolsRegex
    -  ].join("|");
    -  return {
    -    identifierMatcher: new RegExp(identifiersRegex, "gu"),
    -    wordMatcher: new RegExp(wordRegex, "gu"),
    -    tokenMatcher: new RegExp(regex, "gu")
    -  };
    -}
    -var matchers = /* @__PURE__ */ new Map();
    -function getMatcher(languageId) {
    -  const wordSeparators = ide().configuration.getOwnConfiguration(
    -    "wordSeparators",
    -    {
    -      languageId
    -    }
    -  );
    -  const key = wordSeparators.join("\0");
    -  if (!matchers.has(key)) {
    -    const components = {
    -      fixedTokens: FIXED_TOKENS,
    -      repeatableSymbols: REPEATABLE_SYMBOLS,
    -      identifierWordRegexes: IDENTIFIER_WORD_REGEXES,
    -      identifierWordDelimiters: wordSeparators,
    -      numbersRegex: NUMBERS_REGEX,
    -      singleSymbolsRegex: SINGLE_SYMBOLS_REGEX
    -    };
    -    matchers.set(key, generateMatcher(components));
    -  }
    -  return matchers.get(key);
    -}
    -function tokenize(text, languageId, mapfn) {
    -  return matchAll(text, getMatcher(languageId).tokenMatcher, mapfn);
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/getTokensInRange.ts
    -function getTokensInRange(editor, range4) {
    -  const languageId = editor.document.languageId;
    -  const text = editor.document.getText(range4);
    -  const rangeOffset = editor.document.offsetAt(range4.start);
    -  return tokenize(text, languageId, (match2) => {
    -    const startOffset = rangeOffset + match2.index;
    -    const endOffset = rangeOffset + match2.index + match2[0].length;
    -    const range5 = new Range(
    -      editor.document.positionAt(startOffset),
    -      editor.document.positionAt(endOffset)
    -    );
    -    return {
    -      editor,
    -      text: match2[0],
    -      range: range5,
    -      offsets: { start: startOffset, end: endOffset }
    -    };
    -  });
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/getRankedTokens.ts
    -function getRankedTokens(activeTextEditor, visibleTextEditors) {
    -  const editors = getRankedEditors(
    -    activeTextEditor,
    -    visibleTextEditors
    -  );
    -  return editors.flatMap((editor) => {
    -    const referencePosition = editor.selections[0].active;
    -    const displayLineMap = getDisplayLineMap(editor, [referencePosition.line]);
    -    const tokens = (0, import_lodash17.flatten)(
    -      editor.visibleRanges.map(
    -        (range4) => getTokensInRange(editor, range4).map((partialToken) => ({
    -          ...partialToken,
    -          displayLine: displayLineMap.get(partialToken.range.start.line)
    -        }))
    -      )
    -    );
    -    tokens.sort(
    -      getTokenComparator(
    -        displayLineMap.get(referencePosition.line),
    -        referencePosition.character
    -      )
    -    );
    -    return tokens.map((token, index) => ({ token, rank: -index }));
    -  });
    -}
    -function getRankedEditors(activeTextEditor, visibleTextEditors) {
    -  let editors;
    -  if (activeTextEditor == null) {
    -    editors = visibleTextEditors;
    -  } else {
    -    editors = [
    -      activeTextEditor,
    -      ...visibleTextEditors.filter((editor) => editor !== activeTextEditor)
    -    ];
    -  }
    -  return editors;
    -}
    -
    -// ../cursorless-engine/src/util/allocateHats/allocateHats.ts
    -function allocateHats(tokenGraphemeSplitter2, enabledHatStyles, oldTokenHats, hatStability, activeTextEditor, visibleTextEditors) {
    -  const tokenOldHatMap = getTokenOldHatMap(oldTokenHats);
    -  const rankedTokens = getRankedTokens(activeTextEditor, visibleTextEditors);
    -  const context = getHatRankingContext(
    -    rankedTokens,
    -    tokenOldHatMap,
    -    tokenGraphemeSplitter2
    -  );
    -  const enabledHatStyleNames = Object.keys(enabledHatStyles);
    -  const graphemeRemainingHatCandidates = new DefaultMap(
    -    () => [...enabledHatStyleNames]
    -  );
    -  return rankedTokens.map(({ token, rank: tokenRank }) => {
    -    const tokenRemainingHatCandidates = getTokenRemainingHatCandidates(
    -      tokenGraphemeSplitter2,
    -      token,
    -      graphemeRemainingHatCandidates,
    -      enabledHatStyles
    -    );
    -    const chosenHat = chooseTokenHat(
    -      context,
    -      hatStability,
    -      tokenRank,
    -      tokenOldHatMap.get(token),
    -      tokenRemainingHatCandidates
    -    );
    -    if (chosenHat == null) {
    -      return void 0;
    -    }
    -    graphemeRemainingHatCandidates.set(
    -      chosenHat.grapheme.text,
    -      graphemeRemainingHatCandidates.get(chosenHat.grapheme.text).filter((style) => style !== chosenHat.style)
    -    );
    -    return constructHatRangeDescriptor(token, chosenHat);
    -  }).filter((value) => value != null);
    -}
    -function getTokenOldHatMap(oldTokenHats) {
    -  const tokenOldHatMap = new CompositeKeyMap(
    -    ({ editor, offsets }) => [editor.id, offsets.start, offsets.end]
    -  );
    -  oldTokenHats.forEach(
    -    (descriptor) => tokenOldHatMap.set(descriptor.token, descriptor)
    -  );
    -  return tokenOldHatMap;
    -}
    -function getTokenRemainingHatCandidates(tokenGraphemeSplitter2, token, graphemeRemainingHatCandidates, enabledHatStyles) {
    -  const candidates = [];
    -  const graphemes = tokenGraphemeSplitter2.getTokenGraphemes(token.text);
    -  for (const grapheme of graphemes) {
    -    for (const style of graphemeRemainingHatCandidates.get(grapheme.text)) {
    -      candidates.push({
    -        grapheme,
    -        style,
    -        penalty: enabledHatStyles[style].penalty
    -      });
    -    }
    -  }
    -  return candidates;
    -}
    -function constructHatRangeDescriptor(token, chosenHat) {
    -  return {
    -    hatStyle: chosenHat.style,
    -    grapheme: chosenHat.grapheme.text,
    -    token,
    -    hatRange: new Range(
    -      token.range.start.translate(
    -        void 0,
    -        chosenHat.grapheme.tokenStartOffset
    -      ),
    -      token.range.start.translate(void 0, chosenHat.grapheme.tokenEndOffset)
    -    )
    -  };
    -}
    -
    -// ../cursorless-engine/src/core/Debouncer.ts
    -var Debouncer = class {
    -  constructor(callback2, debounceDelayMs) {
    -    this.callback = callback2;
    -    this.debounceDelayMs = debounceDelayMs;
    -    this.timeoutHandle = null;
    -    this.run = this.run.bind(this);
    -  }
    -  run() {
    -    if (this.timeoutHandle != null) {
    -      clearTimeout(this.timeoutHandle);
    -    }
    -    const decorationDebounceDelayMs = this.debounceDelayMs ?? ide().configuration.getOwnConfiguration("decorationDebounceDelayMs");
    -    this.timeoutHandle = setTimeout(() => {
    -      this.callback();
    -      this.timeoutHandle = null;
    -    }, decorationDebounceDelayMs);
    -  }
    -  dispose() {
    -    if (this.timeoutHandle != null) {
    -      clearTimeout(this.timeoutHandle);
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/HatAllocator.ts
    -var HatAllocator = class {
    -  constructor(hats, context) {
    -    this.hats = hats;
    -    this.context = context;
    -    this.disposables = [];
    -    this.debouncer = new Debouncer(() => this.allocateHats());
    -    ide().disposeOnExit(this);
    -    this.disposables.push(
    -      this.hats.onDidChangeEnabledHatStyles(this.debouncer.run),
    -      this.hats.onDidChangeIsEnabled(this.debouncer.run),
    -      // An event that fires when a text document opens
    -      ide().onDidOpenTextDocument(this.debouncer.run),
    -      // An event that fires when a text document closes
    -      ide().onDidCloseTextDocument(this.debouncer.run),
    -      // An Event which fires when the active editor has changed. Note that the event also fires when the active editor changes to undefined.
    -      ide().onDidChangeActiveTextEditor(this.debouncer.run),
    -      // An Event which fires when the array of visible editors has changed.
    -      ide().onDidChangeVisibleTextEditors(this.debouncer.run),
    -      // An event that is emitted when a text document is changed. This usually happens when the contents changes but also when other things like the dirty-state changes.
    -      ide().onDidChangeTextDocument(this.debouncer.run),
    -      // An Event which fires when the selection in an editor has changed.
    -      ide().onDidChangeTextEditorSelection(this.debouncer.run),
    -      // An Event which fires when the visible ranges of an editor has changed.
    -      ide().onDidChangeTextEditorVisibleRanges(this.debouncer.run),
    -      // Re-draw hats on grapheme splitting algorithm change in case they
    -      // changed their token hat splitting setting.
    -      tokenGraphemeSplitter().registerAlgorithmChangeListener(
    -        this.debouncer.run
    -      ),
    -      this.debouncer
    -    );
    -  }
    -  /**
    -   * Allocate hats to the visible tokens.
    -   *
    -   * @param oldTokenHats If supplied, pretend that this allocation was the
    -   * previous allocation when trying to maintain stable hats.  This parameter is
    -   * used for testing.
    -   */
    -  async allocateHats(oldTokenHats) {
    -    const activeMap = await this.context.getActiveMap();
    -    const tokenHats = this.hats.isEnabled ? allocateHats(
    -      tokenGraphemeSplitter(),
    -      this.hats.enabledHatStyles,
    -      oldTokenHats ?? activeMap.tokenHats,
    -      ide().configuration.getOwnConfiguration("experimental.hatStability"),
    -      ide().activeTextEditor,
    -      ide().visibleTextEditors
    -    ) : [];
    -    activeMap.setTokenHats(tokenHats);
    -    await this.hats.setHatRanges(
    -      tokenHats.map(({ hatStyle, hatRange, token: { editor } }) => ({
    -        editor,
    -        range: hatRange,
    -        styleName: hatStyle
    -      }))
    -    );
    -  }
    -  dispose() {
    -    this.disposables.forEach(({ dispose }) => dispose());
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/IndividualHatMap.ts
    -var IndividualHatMap = class _IndividualHatMap {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.isExpired = false;
    -    this.documentTokenLists = /* @__PURE__ */ new Map();
    -    this.deregisterFunctions = [];
    -    this.map = {};
    -    this._tokenHats = [];
    -  }
    -  get tokenHats() {
    -    return this._tokenHats;
    -  }
    -  getDocumentTokenList(document) {
    -    const key = document.uri.toString();
    -    let currentValue = this.documentTokenLists.get(key);
    -    if (currentValue == null) {
    -      currentValue = [];
    -      this.documentTokenLists.set(key, currentValue);
    -      this.deregisterFunctions.push(
    -        this.rangeUpdater.registerRangeInfoList(document, currentValue)
    -      );
    -    }
    -    return currentValue;
    -  }
    -  clone() {
    -    const ret = new _IndividualHatMap(this.rangeUpdater);
    -    ret.setTokenHats(this._tokenHats);
    -    return ret;
    -  }
    -  /**
    -   * Overwrites the hat assignemnt for this hat token map.
    -   *
    -   * @param tokenHats The new hat assignments
    -   */
    -  setTokenHats(tokenHats) {
    -    this.map = {};
    -    this.documentTokenLists = /* @__PURE__ */ new Map();
    -    this.deregisterFunctions.forEach((func) => func());
    -    const liveTokenHats = tokenHats.map((tokenHat) => {
    -      const { hatStyle, grapheme, token } = tokenHat;
    -      const liveToken = this.makeTokenLive(token);
    -      this.map[getKey(hatStyle, grapheme)] = liveToken;
    -      return { ...tokenHat, token: liveToken };
    -    });
    -    this._tokenHats = liveTokenHats;
    -  }
    -  makeTokenLive(token) {
    -    const { tokenMatcher } = getMatcher(token.editor.document.languageId);
    -    const liveToken = {
    -      ...token,
    -      expansionBehavior: {
    -        start: {
    -          type: "regex",
    -          regex: tokenMatcher
    -        },
    -        end: {
    -          type: "regex",
    -          regex: tokenMatcher
    -        }
    -      }
    -    };
    -    this.getDocumentTokenList(token.editor.document).push(liveToken);
    -    return liveToken;
    -  }
    -  getEntries() {
    -    this.checkExpired();
    -    return Object.entries(this.map);
    -  }
    -  getToken(hatStyle, character) {
    -    this.checkExpired();
    -    return this.map[getKey(hatStyle, tokenGraphemeSplitter().normalizeGrapheme(character))];
    -  }
    -  checkExpired() {
    -    if (this.isExpired) {
    -      throw Error("Map snapshot has expired");
    -    }
    -  }
    -  dispose() {
    -    this.isExpired = true;
    -    this.deregisterFunctions.forEach((func) => func());
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/HatTokenMapImpl.ts
    -var PRE_PHRASE_SNAPSHOT_MAX_AGE_NS = BigInt(6e10);
    -var HatTokenMapImpl = class {
    -  constructor(rangeUpdater, debug, hats, commandServerApi) {
    -    this.debug = debug;
    -    this.commandServerApi = commandServerApi;
    -    this.prePhraseMapsSnapshotTimestamp = null;
    -    this.lastSignalVersion = null;
    -    ide().disposeOnExit(this);
    -    this.activeMap = new IndividualHatMap(rangeUpdater);
    -    this.getActiveMap = this.getActiveMap.bind(this);
    -    this.allocateHats = this.allocateHats.bind(this);
    -    this.hatAllocator = new HatAllocator(hats, {
    -      getActiveMap: this.getActiveMap
    -    });
    -  }
    -  /**
    -   * Allocate hats to the visible tokens.
    -   *
    -   * @param oldTokenHats If supplied, pretend that this allocation was the
    -   * previous allocation when trying to maintain stable hats.  This parameter is
    -   * used for testing.
    -   */
    -  allocateHats(oldTokenHats) {
    -    return this.hatAllocator.allocateHats(oldTokenHats);
    -  }
    -  async getActiveMap() {
    -    await this.maybeTakePrePhraseSnapshot();
    -    return this.activeMap;
    -  }
    -  /**
    -   * Returns a transient, read-only hat map for use during the course of a
    -   * single command.
    -   *
    -   * Please do not hold onto this copy beyond the lifetime of a single command,
    -   * because it will get stale.
    -   * @param usePrePhraseSnapshot Whether to use pre-phrase snapshot
    -   * @returns A readable snapshot of the map
    -   */
    -  async getReadableMap(usePrePhraseSnapshot) {
    -    await this.maybeTakePrePhraseSnapshot();
    -    if (usePrePhraseSnapshot) {
    -      if (this.lastSignalVersion == null) {
    -        console.error(
    -          "Pre phrase snapshot requested but no signal was present; please upgrade command client"
    -        );
    -        return this.activeMap;
    -      }
    -      if (this.prePhraseMapSnapshot == null) {
    -        console.error(
    -          "Navigation map pre-phrase snapshot requested, but no snapshot has been taken"
    -        );
    -        return this.activeMap;
    -      }
    -      if (abs(import_process.hrtime.bigint() - this.prePhraseMapsSnapshotTimestamp) > PRE_PHRASE_SNAPSHOT_MAX_AGE_NS) {
    -        console.error(
    -          "Navigation map pre-phrase snapshot requested, but snapshot is more than a minute old"
    -        );
    -        return this.activeMap;
    -      }
    -      return this.prePhraseMapSnapshot;
    -    }
    -    return this.activeMap;
    -  }
    -  dispose() {
    -    this.activeMap.dispose();
    -    if (this.prePhraseMapSnapshot != null) {
    -      this.prePhraseMapSnapshot.dispose();
    -    }
    -  }
    -  async maybeTakePrePhraseSnapshot() {
    -    const phraseStartSignal = this.commandServerApi?.signals?.prePhrase;
    -    if (phraseStartSignal != null) {
    -      const newSignalVersion = await phraseStartSignal.getVersion();
    -      if (newSignalVersion !== this.lastSignalVersion) {
    -        this.debug.log("taking snapshot");
    -        this.lastSignalVersion = newSignalVersion;
    -        if (newSignalVersion != null) {
    -          this.takePrePhraseSnapshot();
    -        }
    -      }
    -    }
    -  }
    -  takePrePhraseSnapshot() {
    -    if (this.prePhraseMapSnapshot != null) {
    -      this.prePhraseMapSnapshot.dispose();
    -    }
    -    this.prePhraseMapSnapshot = this.activeMap.clone();
    -    this.prePhraseMapsSnapshotTimestamp = import_process.hrtime.bigint();
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/Snippets.ts
    -var import_promises2 = require("fs/promises");
    -var import_lodash19 = __toESM(require_lodash(), 1);
    -var import_path = require("path");
    -
    -// ../cursorless-engine/src/core/mergeSnippets.ts
    -var import_lodash18 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/core/compareSnippetDefinitions.ts
    -function compareSnippetDefinitions(a, b) {
    -  const scopeComparision = compareSnippetScopes(
    -    a.definition.scope,
    -    b.definition.scope
    -  );
    -  if (scopeComparision !== 0) {
    -    return scopeComparision;
    -  }
    -  return a.origin - b.origin;
    -}
    -function compareSnippetScopes(a, b) {
    -  if (a == null && b == null) {
    -    return 0;
    -  }
    -  if (a == null) {
    -    return -1;
    -  }
    -  if (b == null) {
    -    return 1;
    -  }
    -  if (a.langIds == null && b.langIds != null) {
    -    return -1;
    -  }
    -  if (b.langIds == null && a.langIds != null) {
    -    return 1;
    -  }
    -  const scopeTypesComparision = compareScopeTypes(a.scopeTypes, b.scopeTypes);
    -  if (scopeTypesComparision !== 0) {
    -    return scopeTypesComparision;
    -  }
    -  return a.langIds == null ? 0 : b.langIds.length - a.langIds.length;
    -}
    -function compareScopeTypes(a, b) {
    -  if (a == null && b != null) {
    -    return -1;
    -  }
    -  if (b == null && a != null) {
    -    return 1;
    -  }
    -  return 0;
    -}
    -
    -// ../cursorless-engine/src/core/mergeSnippets.ts
    -function mergeSnippets(coreSnippets, thirdPartySnippets, userSnippets) {
    -  const mergedSnippets = {};
    -  const mergedMap = (0, import_lodash18.mapValues)(
    -    (0, import_lodash18.groupBy)(
    -      [
    -        ...prepareSnippetsFromOrigin(0 /* core */, coreSnippets),
    -        ...prepareSnippetsFromOrigin(
    -          1 /* thirdParty */,
    -          ...Object.values(thirdPartySnippets)
    -        ),
    -        ...prepareSnippetsFromOrigin(2 /* user */, ...userSnippets)
    -      ],
    -      ([key]) => key
    -    ),
    -    (entries) => entries.map(([, value]) => value)
    -  );
    -  Object.entries(mergedMap).forEach(([key, snippets]) => {
    -    const mergedSnippet = (0, import_lodash18.merge)(
    -      {},
    -      ...snippets.sort((a, b) => a.origin - b.origin).map(({ snippet: snippet2 }) => snippet2)
    -    );
    -    mergedSnippet.definitions = snippets.flatMap(
    -      ({ origin, snippet: snippet2 }) => snippet2.definitions.map((definition) => ({ origin, definition }))
    -    ).sort((a, b) => -compareSnippetDefinitions(a, b)).map(({ definition }) => definition);
    -    mergedSnippets[key] = mergedSnippet;
    -  });
    -  return mergedSnippets;
    -}
    -function prepareSnippetsFromOrigin(origin, ...snippetMaps) {
    -  return snippetMaps.map(
    -    (snippetMap) => (0, import_lodash18.mapValues)((0, import_lodash18.cloneDeep)(snippetMap), (snippet2) => ({
    -      origin,
    -      snippet: snippet2
    -    }))
    -  ).flatMap((snippetMap) => Object.entries(snippetMap));
    -}
    -
    -// ../cursorless-engine/src/core/Snippets.ts
    -var CURSORLESS_SNIPPETS_SUFFIX = ".cursorless-snippets";
    -var SNIPPET_DIR_REFRESH_INTERVAL_MS = 1e3;
    -var Snippets = class {
    -  constructor() {
    -    this.thirdPartySnippets = {};
    -    /**
    -     * The maximum modification time of any snippet in user snippets dir.
    -     *
    -     * This variable will be set to -1 if no user snippets have yet been read or
    -     * if the user snippets path has changed.
    -     *
    -     * This variable will be set to 0 if the user has no snippets dir configured and
    -     * we've already set userSnippets to {}.
    -     */
    -    this.maxSnippetMtimeMs = -1;
    -    /**
    -     * If the user has misconfigured their snippet dir, then we keep track of it
    -     * so that we can show them the error message if we can't find a snippet
    -     * later, and so that we don't show them the same error message every time
    -     * we try to poll the directory.
    -     */
    -    this.directoryErrorMessage = null;
    -    this.updateUserSnippetsPath();
    -    this.updateUserSnippets = this.updateUserSnippets.bind(this);
    -    this.registerThirdPartySnippets = this.registerThirdPartySnippets.bind(this);
    -    const timer = setInterval(
    -      this.updateUserSnippets,
    -      SNIPPET_DIR_REFRESH_INTERVAL_MS
    -    );
    -    ide().disposeOnExit(
    -      ide().configuration.onDidChangeConfiguration(() => {
    -        if (this.updateUserSnippetsPath()) {
    -          this.updateUserSnippets();
    -        }
    -      }),
    -      {
    -        dispose() {
    -          clearInterval(timer);
    -        }
    -      }
    -    );
    -  }
    -  async init() {
    -    const extensionPath = ide().assetsRoot;
    -    const snippetsDir = (0, import_path.join)(extensionPath, "cursorless-snippets");
    -    const snippetFiles = await getSnippetPaths(snippetsDir);
    -    this.coreSnippets = mergeStrict(
    -      ...await Promise.all(
    -        snippetFiles.map(
    -          async (path8) => JSON.parse(await (0, import_promises2.readFile)(path8, "utf8"))
    -        )
    -      )
    -    );
    -    await this.updateUserSnippets();
    -  }
    -  /**
    -   * Updates the userSnippetsDir field if it has change, returning a boolean
    -   * indicating whether there was an update.  If there was an update, resets the
    -   * maxSnippetMtime to -1 to ensure snippet update.
    -   * @returns Boolean indicating whether path has changed
    -   */
    -  updateUserSnippetsPath() {
    -    const newUserSnippetsDir = ide().configuration.getOwnConfiguration(
    -      "experimental.snippetsDir"
    -    );
    -    if (newUserSnippetsDir === this.userSnippetsDir) {
    -      return false;
    -    }
    -    this.maxSnippetMtimeMs = -1;
    -    this.userSnippetsDir = newUserSnippetsDir;
    -    return true;
    -  }
    -  async updateUserSnippets() {
    -    let snippetFiles;
    -    try {
    -      snippetFiles = this.userSnippetsDir ? await getSnippetPaths(this.userSnippetsDir) : [];
    -    } catch (err) {
    -      if (this.directoryErrorMessage?.directory !== this.userSnippetsDir) {
    -        const errorMessage = `Error with cursorless snippets dir "${this.userSnippetsDir}": ${err.message}`;
    -        showError(ide().messages, "snippetsDirError", errorMessage);
    -        this.directoryErrorMessage = {
    -          directory: this.userSnippetsDir,
    -          errorMessage
    -        };
    -      }
    -      this.userSnippets = [];
    -      this.mergeSnippets();
    -      return;
    -    }
    -    this.directoryErrorMessage = null;
    -    const maxSnippetMtime = (0, import_lodash19.max)(
    -      (await Promise.all(snippetFiles.map((file) => (0, import_promises2.stat)(file)))).map(
    -        (stat2) => stat2.mtimeMs
    -      )
    -    ) ?? 0;
    -    if (maxSnippetMtime <= this.maxSnippetMtimeMs) {
    -      return;
    -    }
    -    this.maxSnippetMtimeMs = maxSnippetMtime;
    -    this.userSnippets = await Promise.all(
    -      snippetFiles.map(async (path8) => {
    -        try {
    -          const content = await (0, import_promises2.readFile)(path8, "utf8");
    -          if (content.length === 0) {
    -            return {};
    -          }
    -          return JSON.parse(content);
    -        } catch (err) {
    -          showError(
    -            ide().messages,
    -            "snippetsFileError",
    -            `Error with cursorless snippets file "${path8}": ${err.message}`
    -          );
    -          return {};
    -        }
    -      })
    -    );
    -    this.mergeSnippets();
    -  }
    -  /**
    -   * Allows extensions to register third-party snippets.  Calling this function
    -   * twice with the same extensionId will replace the older snippets.
    -   *
    -   * Note that third-party snippets take precedence over core snippets, but
    -   * user snippets take precedence over both.
    -   * @param extensionId The id of the extension registering the snippets.
    -   * @param snippets The snippets to be registered.
    -   */
    -  registerThirdPartySnippets(extensionId, snippets) {
    -    this.thirdPartySnippets[extensionId] = snippets;
    -    this.mergeSnippets();
    -  }
    -  /**
    -   * Merge core, third-party, and user snippets, with precedence user > third
    -   * party > core.
    -   */
    -  mergeSnippets() {
    -    this.mergedSnippets = mergeSnippets(
    -      this.coreSnippets,
    -      this.thirdPartySnippets,
    -      this.userSnippets
    -    );
    -  }
    -  /**
    -   * Looks in merged collection of snippets for a snippet with key
    -   * `snippetName`. Throws an exception if the snippet of the given name could
    -   * not be found
    -   * @param snippetName The name of the snippet to look up
    -   * @returns The named snippet
    -   */
    -  getSnippetStrict(snippetName) {
    -    const snippet2 = this.mergedSnippets[snippetName];
    -    if (snippet2 == null) {
    -      let errorMessage = `Couldn't find snippet ${snippetName}. `;
    -      if (this.directoryErrorMessage != null) {
    -        errorMessage += `This could be due to: ${this.directoryErrorMessage.errorMessage}.`;
    -      }
    -      throw Error(errorMessage);
    -    }
    -    return snippet2;
    -  }
    -};
    -function getSnippetPaths(snippetsDir) {
    -  return walkFiles(snippetsDir, CURSORLESS_SNIPPETS_SUFFIX);
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/RangeUpdater.ts
    -var import_lodash21 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/map.ts
    -function getDefault(map4, key, factory) {
    -  let currentValue = map4.get(key);
    -  if (currentValue == null) {
    -    currentValue = factory();
    -    map4.set(key, currentValue);
    -  }
    -  return currentValue;
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/updateRangeInfos.ts
    -var import_lodash20 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
    -var import_immutability_helper2 = __toESM(require_immutability_helper(), 1);
    -function getOffsetsForDeleteOrReplace(changeEventInfo, rangeInfo) {
    -  const {
    -    originalOffsets: {
    -      start: changeOriginalStartOffset,
    -      end: changeOriginalEndOffset
    -    },
    -    finalOffsets: { end: changeFinalEndOffset },
    -    displacement
    -  } = changeEventInfo;
    -  const {
    -    offsets: { start: rangeStart, end: rangeEnd }
    -  } = rangeInfo;
    -  (0, import_immutability_helper2.invariant)(
    -    changeOriginalEndOffset > changeOriginalStartOffset,
    -    () => "Change range expected to be nonempty"
    -  );
    -  (0, import_immutability_helper2.invariant)(
    -    changeOriginalEndOffset >= rangeStart && changeOriginalStartOffset <= rangeEnd,
    -    () => "Change range expected to intersect with selection range"
    -  );
    -  return {
    -    start: changeOriginalEndOffset <= rangeStart ? rangeStart + displacement : Math.min(rangeStart, changeFinalEndOffset),
    -    end: changeOriginalEndOffset <= rangeEnd ? rangeEnd + displacement : Math.min(rangeEnd, changeFinalEndOffset)
    -  };
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
    -var import_immutability_helper3 = __toESM(require_immutability_helper(), 1);
    -function getOffsetsForEmptyRangeInsert(changeEventInfo, rangeInfo) {
    -  const {
    -    event: { text, isReplace: isReplace3 },
    -    finalOffsets: { start, end }
    -  } = changeEventInfo;
    -  (0, import_immutability_helper3.invariant)(
    -    start === changeEventInfo.originalOffsets.end && start === rangeInfo.offsets.start && start === rangeInfo.offsets.end,
    -    () => "Selection range and change range expected to be same empty range"
    -  );
    -  if (isReplace3) {
    -    const expansionBehavior = rangeInfo.expansionBehavior.end;
    -    switch (expansionBehavior.type) {
    -      case "closed":
    -        return {
    -          start,
    -          end: start
    -        };
    -      case "open":
    -        return { start, end };
    -      case "regex": {
    -        const matches = text.match(leftAnchored(expansionBehavior.regex));
    -        return matches == null ? {
    -          start,
    -          end: start
    -        } : {
    -          start,
    -          end: start + matches[0].length
    -        };
    -      }
    -    }
    -  } else {
    -    const expansionBehavior = rangeInfo.expansionBehavior.start;
    -    switch (expansionBehavior.type) {
    -      case "closed":
    -        return {
    -          start: end,
    -          end
    -        };
    -      case "open":
    -        return { start, end };
    -      case "regex": {
    -        const index = text.search(rightAnchored(expansionBehavior.regex));
    -        return index === -1 ? {
    -          start: end,
    -          end
    -        } : {
    -          start: start + index,
    -          end
    -        };
    -      }
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
    -var import_immutability_helper4 = __toESM(require_immutability_helper(), 1);
    -function getOffsetsForNonEmptyRangeInsert(changeEventInfo, rangeInfo) {
    -  const {
    -    event: { text: insertedText },
    -    originalOffsets: { start: insertOffset },
    -    displacement
    -  } = changeEventInfo;
    -  const {
    -    offsets: { start: rangeStart, end: rangeEnd },
    -    text: originalRangeText
    -  } = rangeInfo;
    -  (0, import_immutability_helper4.invariant)(
    -    rangeEnd > rangeStart,
    -    () => "Selection range expected to be nonempty"
    -  );
    -  (0, import_immutability_helper4.invariant)(
    -    insertOffset >= rangeStart && insertOffset <= rangeEnd,
    -    () => "Insertion offset expected to intersect with selection range"
    -  );
    -  if (insertOffset > rangeStart && insertOffset < rangeEnd) {
    -    return { start: rangeStart, end: rangeEnd + displacement };
    -  }
    -  if (insertOffset === rangeStart) {
    -    const expansionBehavior = rangeInfo.expansionBehavior.start;
    -    const newRangeEnd = rangeEnd + displacement;
    -    switch (expansionBehavior.type) {
    -      case "closed":
    -        return {
    -          start: rangeStart + displacement,
    -          end: newRangeEnd
    -        };
    -      case "open":
    -        return {
    -          start: rangeStart,
    -          end: newRangeEnd
    -        };
    -      case "regex": {
    -        let text = insertedText + originalRangeText;
    -        const regex = rightAnchored(expansionBehavior.regex);
    -        let index = text.search(regex);
    -        while (index > insertedText.length) {
    -          text = text.slice(0, index);
    -          index = text.search(regex);
    -        }
    -        return index === -1 ? {
    -          start: rangeStart,
    -          end: newRangeEnd
    -        } : {
    -          start: rangeStart + index,
    -          end: newRangeEnd
    -        };
    -      }
    -    }
    -  } else {
    -    const expansionBehavior = rangeInfo.expansionBehavior.end;
    -    const newRangeStart = rangeStart;
    -    switch (expansionBehavior.type) {
    -      case "closed":
    -        return {
    -          start: newRangeStart,
    -          end: rangeEnd
    -        };
    -      case "open":
    -        return {
    -          start: newRangeStart,
    -          end: rangeEnd + displacement
    -        };
    -      case "regex": {
    -        let text = originalRangeText + insertedText;
    -        const regex = leftAnchored(expansionBehavior.regex);
    -        let matches = text.match(regex);
    -        let matchLength = matches == null ? 0 : matches[0].length;
    -        while (matchLength !== 0 && matchLength < originalRangeText.length) {
    -          text = originalRangeText.slice(matchLength) + insertedText;
    -          matches = text.match(regex);
    -          matchLength = matches == null ? 0 : matchLength + matches[0].length;
    -        }
    -        return matchLength === 0 ? {
    -          start: newRangeStart,
    -          end: rangeEnd
    -        } : {
    -          start: newRangeStart,
    -          end: rangeStart + matchLength
    -        };
    -      }
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/getUpdatedText.ts
    -function getUpdatedText(changeEventInfo, rangeInfo, newOffsets) {
    -  const { start: changeOriginalOffsetsStart, end: changeOriginalOffsetsEnd } = changeEventInfo.originalOffsets;
    -  const { start: rangeOriginalOffsetsStart, end: rangeOriginalOffsetsEnd } = rangeInfo.offsets;
    -  const newTextStartOffset = Math.min(
    -    changeOriginalOffsetsStart,
    -    rangeOriginalOffsetsStart
    -  );
    -  let result = "";
    -  if (rangeOriginalOffsetsStart < changeOriginalOffsetsStart) {
    -    result += rangeInfo.text.substring(
    -      0,
    -      changeOriginalOffsetsStart - rangeOriginalOffsetsStart
    -    );
    -  }
    -  result += changeEventInfo.event.text;
    -  if (changeOriginalOffsetsEnd < rangeOriginalOffsetsEnd) {
    -    result += rangeInfo.text.substring(
    -      rangeOriginalOffsetsEnd - changeOriginalOffsetsEnd,
    -      rangeInfo.text.length
    -    );
    -  }
    -  return result.substring(
    -    newOffsets.start - newTextStartOffset,
    -    newOffsets.end - newTextStartOffset
    -  );
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/updateRangeInfos.ts
    -function updateRangeInfos(changeEvent, rangeInfoGenerator) {
    -  const { document, contentChanges } = changeEvent;
    -  const changeEventInfos = contentChanges.map((change) => {
    -    const changeDisplacement = change.text.length - change.rangeLength;
    -    const changeOriginalStartOffset = change.rangeOffset;
    -    const changeOriginalEndOffset = changeOriginalStartOffset + change.rangeLength;
    -    const changeFinalStartOffset = changeOriginalStartOffset;
    -    const changeFinalEndOffset = changeOriginalEndOffset + changeDisplacement;
    -    return {
    -      displacement: changeDisplacement,
    -      event: change,
    -      originalOffsets: {
    -        start: changeOriginalStartOffset,
    -        end: changeOriginalEndOffset
    -      },
    -      finalOffsets: {
    -        start: changeFinalStartOffset,
    -        end: changeFinalEndOffset
    -      }
    -    };
    -  });
    -  for (const rangeInfo of rangeInfoGenerator) {
    -    const originalOffsets = rangeInfo.offsets;
    -    const displacements = changeEventInfos.map((changeEventInfo) => {
    -      let newOffsets2;
    -      if (changeEventInfo.originalOffsets.start > originalOffsets.end) {
    -        return {
    -          start: 0,
    -          end: 0
    -        };
    -      }
    -      if (changeEventInfo.originalOffsets.end < originalOffsets.start) {
    -        return {
    -          start: changeEventInfo.displacement,
    -          end: changeEventInfo.displacement
    -        };
    -      }
    -      if (changeEventInfo.event.rangeLength === 0) {
    -        if (rangeInfo.range.isEmpty) {
    -          newOffsets2 = getOffsetsForEmptyRangeInsert(
    -            changeEventInfo,
    -            rangeInfo
    -          );
    -        } else {
    -          newOffsets2 = getOffsetsForNonEmptyRangeInsert(
    -            changeEventInfo,
    -            rangeInfo
    -          );
    -        }
    -      } else {
    -        newOffsets2 = getOffsetsForDeleteOrReplace(changeEventInfo, rangeInfo);
    -      }
    -      rangeInfo.text = getUpdatedText(changeEventInfo, rangeInfo, newOffsets2);
    -      return {
    -        start: newOffsets2.start - originalOffsets.start,
    -        end: newOffsets2.end - originalOffsets.end
    -      };
    -    });
    -    const newOffsets = {
    -      start: originalOffsets.start + (0, import_lodash20.sumBy)(displacements, ({ start }) => start),
    -      end: originalOffsets.end + (0, import_lodash20.sumBy)(displacements, ({ end }) => end)
    -    };
    -    rangeInfo.range = rangeInfo.range.with(
    -      document.positionAt(newOffsets.start),
    -      document.positionAt(newOffsets.end)
    -    );
    -    rangeInfo.offsets = newOffsets;
    -  }
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/RangeUpdater.ts
    -var RangeUpdater = class {
    -  constructor() {
    -    this.rangeInfoLists = /* @__PURE__ */ new Map();
    -    this.replaceEditLists = /* @__PURE__ */ new Map();
    -    this.listenForDocumentChanges();
    -  }
    -  getDocumentRangeInfoLists(document) {
    -    return getDefault(this.rangeInfoLists, document.uri.toString(), () => []);
    -  }
    -  getDocumentReplaceEditLists(document) {
    -    return getDefault(this.replaceEditLists, document.uri.toString(), () => []);
    -  }
    -  /**
    -   * Registers a list of range infos to be kept up to date.  It is ok to
    -   * add to this list after registering it; any items in the list at the time of
    -   * a document change will be kept up to date.  Please be sure to call the
    -   * returned deregister function when you no longer need the ranges
    -   * updated.
    -   * @param document The document containing the ranges
    -   * @param rangeInfoList The ranges to keep up to date; it is ok to add to this list after the fact
    -   * @returns A function that can be used to deregister the list
    -   */
    -  registerRangeInfoList(document, rangeInfoList) {
    -    const documentRangeInfoLists = this.getDocumentRangeInfoLists(document);
    -    documentRangeInfoLists.push(rangeInfoList);
    -    return () => (0, import_lodash21.pull)(documentRangeInfoLists, rangeInfoList);
    -  }
    -  /**
    -   * Registers a list of edits to treat as replace edits. These edits are
    -   * insertions that will not shift an empty selection to the right. Call this
    -   * function before applying your edits to the document
    -   *
    -   * Note that if you make two edits at the same location with the same text,
    -   * it is not possible to mark only one of them as replace edit.
    -   *
    -   * It is ok to add to this list after registering it; any items in the list
    -   * at the time of a document change will be treated as replace edits.  Please
    -   * be sure to call the returned deregister function after you have waited for
    -   * your edits to be applied.
    -   * @param document The document containing the ranges
    -   * @param replaceEditList A list of edits to treat as replace edits; it is ok to add to this list after the fact
    -   * @returns A function that can be used to deregister the list
    -   */
    -  registerReplaceEditList(document, replaceEditList) {
    -    const documentReplaceEditLists = this.getDocumentReplaceEditLists(document);
    -    documentReplaceEditLists.push(replaceEditList);
    -    return () => (0, import_lodash21.pull)(documentReplaceEditLists, replaceEditList);
    -  }
    -  *documentRangeInfoGenerator(document) {
    -    const documentRangeInfoLists = this.getDocumentRangeInfoLists(document);
    -    for (const rangeInfoLists of documentRangeInfoLists) {
    -      for (const rangeInfo of rangeInfoLists) {
    -        yield rangeInfo;
    -      }
    -    }
    -  }
    -  listenForDocumentChanges() {
    -    this.disposable = ide().onDidChangeTextDocument(
    -      (event) => {
    -        const changes = event.contentChanges;
    -        console.debug(
    -          `RangeUpdater.listenForDocumentChanges(): changes=${JSON.stringify(changes)}`
    -        );
    -        const documentReplaceEditLists = this.getDocumentReplaceEditLists(
    -          event.document
    -        );
    -        const extendedEvent = {
    -          ...event,
    -          contentChanges: event.contentChanges.map(
    -            (change) => isReplace(documentReplaceEditLists, change) ? {
    -              ...change,
    -              isReplace: true
    -            } : change
    -          )
    -        };
    -        updateRangeInfos(
    -          extendedEvent,
    -          this.documentRangeInfoGenerator(event.document)
    -        );
    -      }
    -    );
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -function isReplace(documentReplaceEditLists, change) {
    -  for (const replaceEditLists of documentReplaceEditLists) {
    -    for (const replaceEdit of replaceEditLists) {
    -      if (replaceEdit.range.isRangeEqual(change.range) && replaceEdit.text === change.text) {
    -        return true;
    -      }
    -    }
    -  }
    -  return false;
    -}
    -
    -// ../cursorless-engine/src/spokenForms/CustomSpokenForms.ts
    -var import_lodash22 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/scopeProviders/TalonSpokenForms.ts
    -var SUPPORTED_ENTRY_TYPES = [
    -  "simpleScopeTypeType",
    -  "complexScopeTypeType",
    -  "customRegex",
    -  "pairedDelimiter"
    -];
    -var NeedsInitialTalonUpdateError = class extends Error {
    -  constructor(message) {
    -    super(message);
    -    this.name = "NeedsInitialTalonUpdateError";
    -  }
    -};
    -
    -// ../cursorless-engine/src/spokenForms/CustomSpokenForms.ts
    -var CustomSpokenForms = class {
    -  constructor(talonSpokenForms) {
    -    this.talonSpokenForms = talonSpokenForms;
    -    this.notifier = new Notifier();
    -    this.spokenFormMap_ = { ...defaultSpokenFormMap };
    -    /**
    -     * Registers a callback to be run when the custom spoken forms change.
    -     * @param callback The callback to run when the scope ranges change
    -     * @returns A {@link Disposable} which will stop the callback from running
    -     */
    -    this.onDidChangeCustomSpokenForms = this.notifier.registerListener;
    -    this.disposable = talonSpokenForms.onDidChange(
    -      () => this.updateSpokenFormMaps().catch(() => {
    -      })
    -    );
    -    this.customSpokenFormsInitialized = this.updateSpokenFormMaps();
    -    this.customSpokenFormsInitialized.catch(() => {
    -    });
    -  }
    -  get spokenFormMap() {
    -    return this.spokenFormMap_;
    -  }
    -  /**
    -   * If `true`, indicates they need to update their Talon files to get the
    -   * machinery used to share spoken forms from Talon to the VSCode extension.
    -   */
    -  get needsInitialTalonUpdate() {
    -    return this.needsInitialTalonUpdate_;
    -  }
    -  async updateSpokenFormMaps() {
    -    let allCustomEntries;
    -    try {
    -      allCustomEntries = await this.talonSpokenForms.getSpokenFormEntries();
    -      if (allCustomEntries.length === 0) {
    -        throw new Error("Custom spoken forms list empty");
    -      }
    -    } catch (err) {
    -      if (err instanceof NeedsInitialTalonUpdateError) {
    -        this.needsInitialTalonUpdate_ = true;
    -      } else {
    -        console.error("Error loading custom spoken forms", err);
    -        showError(
    -          ide().messages,
    -          "CustomSpokenForms.updateSpokenFormMaps",
    -          `Error loading custom spoken forms: ${err.message}}}. Falling back to default spoken forms.`
    -        );
    -      }
    -      this.spokenFormMap_ = { ...defaultSpokenFormMap };
    -      this.notifier.notifyListeners();
    -      throw err;
    -    }
    -    for (const entryType of SUPPORTED_ENTRY_TYPES) {
    -      updateEntriesForType(
    -        this.spokenFormMap_,
    -        entryType,
    -        defaultSpokenFormInfoMap[entryType],
    -        Object.fromEntries(
    -          allCustomEntries.filter((entry2) => entry2.type === entryType).map(({ id, spokenForms }) => [id, spokenForms])
    -        )
    -      );
    -    }
    -    this.notifier.notifyListeners();
    -  }
    -  getCustomRegexScopeTypes() {
    -    return Object.keys(this.spokenFormMap_.customRegex).map((regex) => ({
    -      type: "customRegex",
    -      regex
    -    }));
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -function updateEntriesForType(spokenFormMapToUpdate, key, defaultEntries, customEntries) {
    -  const ids = Array.from(
    -    /* @__PURE__ */ new Set([...Object.keys(defaultEntries), ...Object.keys(customEntries)])
    -  );
    -  const obj = {};
    -  for (const id of ids) {
    -    const { defaultSpokenForms = [], isPrivate: isPrivate2 = false } = defaultEntries[id] ?? {};
    -    const customSpokenForms = customEntries[id];
    -    obj[id] = customSpokenForms == null ? (
    -      // No entry for the given id. This either means that the user needs to
    -      // update Talon, or it's a private spoken form.
    -      {
    -        defaultSpokenForms,
    -        spokenForms: [],
    -        // If it's not a private spoken form, then it's a new scope type
    -        requiresTalonUpdate: !isPrivate2,
    -        isCustom: false,
    -        isPrivate: isPrivate2
    -      }
    -    ) : (
    -      // We have an entry for the given id
    -      {
    -        defaultSpokenForms,
    -        spokenForms: customSpokenForms,
    -        requiresTalonUpdate: false,
    -        isCustom: !(0, import_lodash22.isEqual)(defaultSpokenForms, customSpokenForms),
    -        isPrivate: isPrivate2
    -      }
    -    );
    -  }
    -  spokenFormMapToUpdate[key] = obj;
    -}
    -
    -// ../cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
    -var CustomSpokenFormGeneratorImpl = class {
    -  constructor(talonSpokenForms) {
    -    this.customSpokenForms = new CustomSpokenForms(talonSpokenForms);
    -    this.customSpokenFormsInitialized = this.customSpokenForms.customSpokenFormsInitialized;
    -    this.spokenFormGenerator = new SpokenFormGenerator(
    -      this.customSpokenForms.spokenFormMap
    -    );
    -    this.disposable = this.customSpokenForms.onDidChangeCustomSpokenForms(
    -      () => {
    -        this.spokenFormGenerator = new SpokenFormGenerator(
    -          this.customSpokenForms.spokenFormMap
    -        );
    -      }
    -    );
    -  }
    -  onDidChangeCustomSpokenForms(listener) {
    -    return this.customSpokenForms.onDidChangeCustomSpokenForms(listener);
    -  }
    -  commandToSpokenForm(command) {
    -    return this.spokenFormGenerator.processCommand(command);
    -  }
    -  scopeTypeToSpokenForm(scopeType) {
    -    return this.spokenFormGenerator.processScopeType(scopeType);
    -  }
    -  getCustomRegexScopeTypes() {
    -    return this.customSpokenForms.getCustomRegexScopeTypes();
    -  }
    -  get needsInitialTalonUpdate() {
    -    return this.customSpokenForms.needsInitialTalonUpdate;
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -
    -// ../cursorless-engine/src/languages/LanguageDefinitions.ts
    -var import_path3 = require("path");
    -
    -// ../cursorless-engine/src/languages/LanguageDefinition.ts
    -var import_path2 = require("path");
    -
    -// ../../node_modules/.pnpm/itertools@2.2.5/node_modules/itertools/dist/index.js
    -function* flatten4(iterableOfIterables) {
    -  for (const iterable of iterableOfIterables) {
    -    for (const item of iterable) {
    -      yield item;
    -    }
    -  }
    -}
    -function* itake(n, iterable) {
    -  const it = iter(iterable);
    -  let count2 = n;
    -  while (count2-- > 0) {
    -    const s = it.next();
    -    if (!s.done) {
    -      yield s.value;
    -    } else {
    -      return;
    -    }
    -  }
    -}
    -function* pairwise(iterable) {
    -  const it = iter(iterable);
    -  const first2 = it.next();
    -  if (first2.done) {
    -    return;
    -  }
    -  let r1 = first2.value;
    -  for (const r2 of it) {
    -    yield [r1, r2];
    -    r1 = r2;
    -  }
    -}
    -var SENTINEL = Symbol();
    -function* count(start = 0, step = 1) {
    -  let n = start;
    -  for (; ; ) {
    -    yield n;
    -    n += step;
    -  }
    -}
    -function* ifilter(iterable, predicate) {
    -  for (const value of iterable) {
    -    if (predicate(value)) {
    -      yield value;
    -    }
    -  }
    -}
    -function* imap(iterable, mapper) {
    -  for (const value of iterable) {
    -    yield mapper(value);
    -  }
    -}
    -function* islice(iterable, stopOrStart, possiblyStop, step = 1) {
    -  let start, stop;
    -  if (possiblyStop !== void 0) {
    -    start = stopOrStart;
    -    stop = possiblyStop;
    -  } else {
    -    start = 0;
    -    stop = stopOrStart;
    -  }
    -  if (start < 0)
    -    throw new Error("start cannot be negative");
    -  if (stop !== null && stop < 0)
    -    throw new Error("stop cannot be negative");
    -  if (step <= 0)
    -    throw new Error("step cannot be negative");
    -  let i = -1;
    -  const it = iter(iterable);
    -  let res;
    -  while (true) {
    -    i++;
    -    if (stop !== null && i >= stop)
    -      return;
    -    res = it.next();
    -    if (res.done)
    -      return;
    -    if (i < start)
    -      continue;
    -    if ((i - start) % step === 0) {
    -      yield res.value;
    -    }
    -  }
    -}
    -function* takewhile(iterable, predicate) {
    -  const it = iter(iterable);
    -  let res;
    -  while (!(res = it.next()).done) {
    -    const value = res.value;
    -    if (!predicate(value))
    -      return;
    -    yield value;
    -  }
    -}
    -function iter(iterable) {
    -  return iterable[Symbol.iterator]();
    -}
    -function map2(iterable, mapper) {
    -  return Array.from(imap(iterable, mapper));
    -}
    -function range_(start, stop, step) {
    -  const counter = count(start, step);
    -  const pred = step >= 0 ? (n) => n < stop : (n) => n > stop;
    -  return takewhile(counter, pred);
    -}
    -function range2(startOrStop, definitelyStop, step = 1) {
    -  if (definitelyStop !== void 0) {
    -    return range_(startOrStop, definitelyStop, step);
    -  } else {
    -    return range_(0, startOrStop, step);
    -  }
    -}
    -function flatmap(iterable, mapper) {
    -  return flatten4(imap(iterable, mapper));
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
    -function compareTargetScopes(direction, position, { domain: a }, { domain: b }) {
    -  return direction === "forward" ? compareTargetScopesForward(position, a, b) : compareTargetScopesBackward(position, a, b);
    -}
    -function compareTargetScopesForward(position, a, b) {
    -  const aIsStartVisible = a.start.isAfterOrEqual(position);
    -  const bIsStartVisible = b.start.isAfterOrEqual(position);
    -  if (aIsStartVisible && bIsStartVisible) {
    -    const value2 = a.start.compareTo(b.start);
    -    return value2 === 0 ? a.end.compareTo(b.end) : value2;
    -  }
    -  if (!aIsStartVisible && !bIsStartVisible) {
    -    const value2 = a.end.compareTo(b.end);
    -    return value2 === 0 ? -a.start.compareTo(b.start) : value2;
    -  }
    -  if (!aIsStartVisible && bIsStartVisible) {
    -    const value2 = a.end.compareTo(b.start);
    -    return value2 !== 0 ? value2 : b.isEmpty ? 1 : -1;
    -  }
    -  const value = a.start.compareTo(b.end);
    -  return value !== 0 ? value : a.isEmpty ? -1 : 1;
    -}
    -function compareTargetScopesBackward(position, a, b) {
    -  const aIsEndVisible = a.end.isBeforeOrEqual(position);
    -  const bIsEndVisible = b.end.isBeforeOrEqual(position);
    -  if (aIsEndVisible && bIsEndVisible) {
    -    const value2 = -a.end.compareTo(b.end);
    -    return value2 === 0 ? -a.start.compareTo(b.start) : value2;
    -  }
    -  if (!aIsEndVisible && !bIsEndVisible) {
    -    const value2 = -a.start.compareTo(b.start);
    -    return value2 === 0 ? a.end.compareTo(b.end) : value2;
    -  }
    -  if (!aIsEndVisible && bIsEndVisible) {
    -    const value2 = -a.start.compareTo(b.end);
    -    return value2 !== 0 ? value2 : b.isEmpty ? 1 : -1;
    -  }
    -  const value = -a.end.compareTo(b.start);
    -  return value !== 0 ? value : a.isEmpty ? -1 : 1;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
    -function shouldYieldScope(initialPosition, currentPosition, direction, requirements, previousScope, scope) {
    -  return checkRequirements(initialPosition, requirements, previousScope, scope) && // Note that we're using `currentPosition` instead of `initialPosition`
    -  // below, because we want to filter out scopes that are strictly contained
    -  // by previous scopes.  However, if we want to include descendant scopes,
    -  // then we do use the initial position
    -  (previousScope == null || compareTargetScopes(
    -    direction,
    -    requirements.includeDescendantScopes ? initialPosition : currentPosition,
    -    previousScope,
    -    scope
    -  ) < 0);
    -}
    -function checkRequirements(position, requirements, previousScope, scope) {
    -  const {
    -    containment,
    -    distalPosition,
    -    allowAdjacentScopes,
    -    skipAncestorScopes
    -  } = requirements;
    -  const { domain } = scope;
    -  switch (containment) {
    -    case "disallowed":
    -      if (domain.contains(position)) {
    -        return false;
    -      }
    -      break;
    -    case "disallowedIfStrict":
    -      if (strictlyContains(domain, position)) {
    -        return false;
    -      }
    -      break;
    -    case "required":
    -      if (!domain.contains(position)) {
    -        return false;
    -      }
    -      break;
    -  }
    -  if (skipAncestorScopes && previousScope != null && domain.contains(previousScope.domain)) {
    -    return false;
    -  }
    -  return partiallyContains(
    -    new Range(position, distalPosition),
    -    domain,
    -    allowAdjacentScopes
    -  );
    -}
    -function partiallyContains(range1, range22, allowAdjacent) {
    -  const intersection = range1.intersection(range22);
    -  if (intersection == null) {
    -    return false;
    -  }
    -  return !intersection.isEmpty || allowAdjacent || range22.isEmpty;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
    -var DEFAULT_REQUIREMENTS = {
    -  containment: null,
    -  allowAdjacentScopes: false,
    -  skipAncestorScopes: false,
    -  includeDescendantScopes: false
    -};
    -var BaseScopeHandler = class {
    -  constructor() {
    -    this.includeAdjacentInEvery = false;
    -  }
    -  *generateScopes(editor, position, direction, requirements = {}) {
    -    const hints = {
    -      ...DEFAULT_REQUIREMENTS,
    -      ...requirements,
    -      distalPosition: requirements.distalPosition ?? (direction === "forward" ? editor.document.range.end : editor.document.range.start)
    -    };
    -    let previousScope = void 0;
    -    let currentPosition = position;
    -    for (const scope of this.generateScopeCandidates(
    -      editor,
    -      position,
    -      direction,
    -      hints
    -    )) {
    -      if (shouldYieldScope(
    -        position,
    -        currentPosition,
    -        direction,
    -        hints,
    -        previousScope,
    -        scope
    -      )) {
    -        yield scope;
    -        previousScope = scope;
    -        currentPosition = direction === "forward" ? scope.domain.end : scope.domain.start;
    -      }
    -      if (this.canStopEarly(position, direction, hints, previousScope, scope)) {
    -        return;
    -      }
    -    }
    -  }
    -  canStopEarly(position, direction, requirements, previousScope, scope) {
    -    const { containment, distalPosition, skipAncestorScopes } = requirements;
    -    if (this.isHierarchical && !skipAncestorScopes) {
    -      return false;
    -    }
    -    const scopeToCheck = this.isHierarchical && skipAncestorScopes ? previousScope : scope;
    -    if (scopeToCheck == null) {
    -      return false;
    -    }
    -    if (containment === "required" && (direction === "forward" ? scopeToCheck.domain.end.isAfter(position) : scopeToCheck.domain.start.isBefore(position))) {
    -      return true;
    -    }
    -    if (direction === "forward" ? scopeToCheck.domain.end.isAfterOrEqual(distalPosition) : scopeToCheck.domain.start.isBeforeOrEqual(distalPosition)) {
    -      return true;
    -    }
    -    return false;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
    -var NestedScopeHandler = class extends BaseScopeHandler {
    -  constructor(scopeHandlerFactory, scopeType, languageId) {
    -    super();
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.scopeType = scopeType;
    -    this.languageId = languageId;
    -    this.isHierarchical = false;
    -  }
    -  /**
    -   * We expand to this scope type before looking for instances of the scope type
    -   * handled by this scope handler.  In most cases the iteration scope will
    -   * suffice, but in some cases you want them to diverge.  For example, you
    -   * might want the default iteration scope to be `"file"`, but you don't need
    -   * to expand to the file just to find instances of the given scope type.
    -   */
    -  get searchScopeType() {
    -    return this.iterationScopeType;
    -  }
    -  get searchScopeHandler() {
    -    if (this._searchScopeHandler == null) {
    -      this._searchScopeHandler = this.scopeHandlerFactory.create(
    -        this.searchScopeType,
    -        this.languageId
    -      );
    -    }
    -    return this._searchScopeHandler;
    -  }
    -  generateScopeCandidates(editor, position, direction, hints) {
    -    const { containment, ...rest } = hints;
    -    const generator = this.searchScopeHandler.generateScopes(
    -      editor,
    -      position,
    -      direction,
    -      // If containment is disallowed, we need to unset that for the search
    -      // scope, because the search scope could contain position but nested
    -      // scopes do not.
    -      {
    -        containment: containment === "required" ? "required" : void 0,
    -        ...rest
    -      }
    -    );
    -    return flatmap(
    -      generator,
    -      (searchScope) => this.generateScopesInSearchScope(direction, searchScope)
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
    -var LineScopeHandler = class extends BaseScopeHandler {
    -  constructor(_scopeType, _languageId) {
    -    super();
    -    this.scopeType = { type: "line" };
    -    this.iterationScopeType = {
    -      type: "paragraph"
    -    };
    -    this.isHierarchical = false;
    -    this.includeAdjacentInEvery = true;
    -  }
    -  *generateScopeCandidates(editor, position, direction) {
    -    if (direction === "forward") {
    -      for (let i = position.line; i < editor.document.lineCount; i++) {
    -        yield lineNumberToScope(editor, i);
    -      }
    -    } else {
    -      for (let i = position.line; i >= 0; i--) {
    -        yield lineNumberToScope(editor, i);
    -      }
    -    }
    -  }
    -};
    -function lineNumberToScope(editor, lineNumber) {
    -  const { range: range4 } = editor.document.lineAt(lineNumber);
    -  return {
    -    editor,
    -    domain: range4,
    -    getTargets: (isReversed) => [createLineTarget(editor, isReversed, range4)]
    -  };
    -}
    -function createLineTarget(editor, isReversed, range4) {
    -  return new LineTarget({
    -    editor,
    -    isReversed,
    -    contentRange: fitRangeToLineContent(editor, range4)
    -  });
    -}
    -function fitRangeToLineContent(editor, range4) {
    -  const startLine = editor.document.lineAt(range4.start);
    -  const endLine = editor.document.lineAt(range4.end);
    -  return new Range(
    -    startLine.lineNumber,
    -    startLine.firstNonWhitespaceCharacterIndex,
    -    endLine.lineNumber,
    -    endLine.lastNonWhitespaceCharacterIndex
    -  );
    -}
    -
    -// ../cursorless-engine/src/util/getMatchesInRange.ts
    -function generateMatchesInRange(regex, editor, range4, direction) {
    -  const offset = editor.document.offsetAt(range4.start);
    -  const text = editor.document.getText(range4);
    -  const matchToRange = (match2) => new Range(
    -    editor.document.positionAt(offset + match2.index),
    -    editor.document.positionAt(offset + match2.index + match2[0].length)
    -  );
    -  regex.lastIndex = 0;
    -  return direction === "forward" ? imap(text.matchAll(regex), matchToRange) : Array.from(text.matchAll(regex), matchToRange).reverse();
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
    -var IdentifierScopeHandler = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.scopeType = { type: "identifier" };
    -    this.iterationScopeType = { type: "line" };
    -    this.regex = getMatcher(this.languageId).identifierMatcher;
    -  }
    -  generateScopesInSearchScope(direction, { editor, domain }) {
    -    return imap(
    -      generateMatchesInRange(this.regex, editor, domain, direction),
    -      (range4) => ({
    -        editor,
    -        domain: range4,
    -        getTargets: (isReversed) => [
    -          new TokenTarget({
    -            editor,
    -            contentRange: range4,
    -            isReversed
    -          })
    -        ]
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
    -function isPreferredOverHelper(scopeA, scopeB, matchers2) {
    -  const textA = scopeA.editor.document.getText(scopeA.domain);
    -  const textB = scopeB.editor.document.getText(scopeB.domain);
    -  for (const matcher2 of matchers2) {
    -    const aMatchesRegex = testRegex(matcher2, textA);
    -    const bMatchesRegex = testRegex(matcher2, textB);
    -    if (aMatchesRegex && !bMatchesRegex) {
    -      return true;
    -    }
    -    if (bMatchesRegex && !aMatchesRegex) {
    -      return false;
    -    }
    -  }
    -  return void 0;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
    -var SPLIT_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}\p{Z}\p{C}]/gu;
    -var PREFERRED_SYMBOLS_REGEX = /[$]/g;
    -var NONWHITESPACE_REGEX = /\p{L}\p{M}*|[\p{N}\p{P}\p{S}]/gu;
    -var CharacterScopeHandler = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.scopeType = { type: "character" };
    -    this.iterationScopeType = { type: "token" };
    -  }
    -  get searchScopeType() {
    -    return { type: "line" };
    -  }
    -  generateScopesInSearchScope(direction, { editor, domain }) {
    -    return imap(
    -      generateMatchesInRange(SPLIT_REGEX, editor, domain, direction),
    -      (range4) => ({
    -        editor,
    -        domain: range4,
    -        getTargets: (isReversed) => [
    -          new PlainTarget({
    -            editor,
    -            contentRange: range4,
    -            isReversed,
    -            isToken: false
    -          })
    -        ]
    -      })
    -    );
    -  }
    -  isPreferredOver(scopeA, scopeB) {
    -    const { identifierMatcher } = getMatcher(this.languageId);
    -    return isPreferredOverHelper(scopeA, scopeB, [
    -      identifierMatcher,
    -      PREFERRED_SYMBOLS_REGEX,
    -      NONWHITESPACE_REGEX
    -    ]);
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
    -var CAMEL_REGEX = /\p{Lu}?\p{Ll}+|\p{Lu}+(?!\p{Ll})|\p{N}+/gu;
    -var WordTokenizer = class {
    -  constructor(languageId) {
    -    this.wordRegex = getMatcher(languageId).wordMatcher;
    -  }
    -  splitIdentifier(text) {
    -    const wordMatches = matchText(text, this.wordRegex);
    -    return wordMatches.length > 1 ? wordMatches : (
    -      // Secondly try split on camel case
    -      matchText(text, CAMEL_REGEX)
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
    -var WordScopeHandler = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.scopeType = { type: "word" };
    -    this.iterationScopeType = { type: "identifier" };
    -    this.wordTokenizer = new WordTokenizer(this.languageId);
    -  }
    -  getScopesInSearchScope({
    -    editor,
    -    domain
    -  }) {
    -    const { document } = editor;
    -    const offset = document.offsetAt(domain.start);
    -    const matches = this.wordTokenizer.splitIdentifier(
    -      document.getText(domain)
    -    );
    -    const contentRanges = matches.map(
    -      (match2) => new Range(
    -        document.positionAt(offset + match2.index),
    -        document.positionAt(offset + match2.index + match2.text.length)
    -      )
    -    );
    -    return contentRanges.map((range4, i) => ({
    -      editor,
    -      domain: range4,
    -      getTargets: (isReversed) => {
    -        const previousContentRange = i > 0 ? contentRanges[i - 1] : null;
    -        const nextContentRange = i + 1 < contentRanges.length ? contentRanges[i + 1] : null;
    -        return [
    -          constructTarget(
    -            isReversed,
    -            editor,
    -            previousContentRange,
    -            range4,
    -            nextContentRange
    -          )
    -        ];
    -      }
    -    }));
    -  }
    -  generateScopesInSearchScope(direction, searchScope) {
    -    const scopes = this.getScopesInSearchScope(searchScope);
    -    if (direction === "backward") {
    -      scopes.reverse();
    -    }
    -    return scopes;
    -  }
    -};
    -function constructTarget(isReversed, editor, previousContentRange, contentRange, nextContentRange) {
    -  const leadingDelimiterRange = previousContentRange != null && contentRange.start.isAfter(previousContentRange.end) ? new Range(previousContentRange.end, contentRange.start) : void 0;
    -  const trailingDelimiterRange = nextContentRange != null && nextContentRange.start.isAfter(contentRange.end) ? new Range(contentRange.end, nextContentRange.start) : void 0;
    -  const isInDelimitedList = leadingDelimiterRange != null || trailingDelimiterRange != null;
    -  const insertionDelimiter = isInDelimitedList ? editor.document.getText(
    -    leadingDelimiterRange ?? trailingDelimiterRange
    -  ) : "";
    -  return new SubTokenWordTarget({
    -    editor,
    -    isReversed,
    -    contentRange,
    -    insertionDelimiter,
    -    leadingDelimiterRange,
    -    trailingDelimiterRange
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
    -var PREFERRED_SYMBOLS_REGEX2 = /[$]/g;
    -var TokenScopeHandler = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.scopeType = { type: "token" };
    -    this.iterationScopeType = { type: "line" };
    -    this.regex = getMatcher(this.languageId).tokenMatcher;
    -  }
    -  generateScopesInSearchScope(direction, { editor, domain }) {
    -    return imap(
    -      generateMatchesInRange(this.regex, editor, domain, direction),
    -      (range4) => ({
    -        editor,
    -        domain: range4,
    -        getTargets: (isReversed) => [
    -          new TokenTarget({
    -            editor,
    -            contentRange: range4,
    -            isReversed
    -          })
    -        ]
    -      })
    -    );
    -  }
    -  isPreferredOver(scopeA, scopeB) {
    -    const { identifierMatcher } = getMatcher(this.languageId);
    -    return isPreferredOverHelper(scopeA, scopeB, [
    -      identifierMatcher,
    -      PREFERRED_SYMBOLS_REGEX2
    -    ]);
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
    -var DocumentScopeHandler = class extends BaseScopeHandler {
    -  constructor(_scopeType, _languageId) {
    -    super();
    -    this.scopeType = { type: "document" };
    -    this.iterationScopeType = { type: "document" };
    -    this.isHierarchical = false;
    -  }
    -  *generateScopeCandidates(editor, _position, _direction) {
    -    const contentRange = editor.document.range;
    -    yield {
    -      editor,
    -      domain: contentRange,
    -      getTargets: (isReversed) => [
    -        new DocumentTarget({
    -          editor,
    -          isReversed,
    -          contentRange
    -        })
    -      ]
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
    -var import_lodash23 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts
    -function mergeAdjacentBy(input, isEqual5, merge4) {
    -  const result = [];
    -  let current2 = [];
    -  for (const elem of input) {
    -    if (current2.length === 0 || isEqual5(current2[current2.length - 1], elem)) {
    -      current2.push(elem);
    -    } else {
    -      result.push(merge4(current2));
    -      current2 = [elem];
    -    }
    -  }
    -  if (current2.length > 0) {
    -    result.push(merge4(current2));
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
    -var BaseTreeSitterScopeHandler = class extends BaseScopeHandler {
    -  constructor(query) {
    -    super();
    -    this.query = query;
    -  }
    -  *generateScopeCandidates(editor, position, direction, _hints) {
    -    const { document } = editor;
    -    const scopes = this.query.matches(document).map((match2) => this.matchToScope(editor, match2)).filter((scope) => scope != null).sort((a, b) => compareTargetScopes(direction, position, a, b));
    -    yield* mergeAdjacentBy(
    -      scopes,
    -      (a, b) => a.domain.isRangeEqual(b.domain),
    -      (equivalentScopes) => {
    -        if (equivalentScopes.length === 1) {
    -          return equivalentScopes[0];
    -        }
    -        return {
    -          ...equivalentScopes[0],
    -          getTargets(isReversed) {
    -            const targets = (0, import_lodash23.uniqWith)(
    -              equivalentScopes.flatMap((scope) => scope.getTargets(isReversed)),
    -              (a, b) => a.isEqual(b)
    -            );
    -            if (targets.length > 1 && !equivalentScopes.every((scope) => scope.allowMultiple)) {
    -              const message = "Please use #allow-multiple! predicate in your query to allow multiple matches for this scope type";
    -              showError(
    -                ide().messages,
    -                "BaseTreeSitterScopeHandler.allow-multiple",
    -                message
    -              );
    -              if (ide().runMode === "test") {
    -                throw Error(message);
    -              }
    -            }
    -            return targets;
    -          }
    -        };
    -      }
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
    -function getRelatedCapture(match2, scopeTypeType, relationship, matchHasScopeType) {
    -  if (matchHasScopeType) {
    -    return findCaptureByName(
    -      match2,
    -      `${scopeTypeType}.${relationship}`,
    -      `_.${relationship}`
    -    );
    -  }
    -  return findCaptureByName(match2, `${scopeTypeType}.${relationship}`) ?? (findCaptureByName(match2, scopeTypeType) != null ? findCaptureByName(match2, `_.${relationship}`) : void 0);
    -}
    -function getRelatedRange(match2, scopeTypeType, relationship, matchHasScopeType) {
    -  return getRelatedCapture(
    -    match2,
    -    scopeTypeType,
    -    relationship,
    -    matchHasScopeType
    -  )?.range;
    -}
    -function findCaptureByName(match2, ...names) {
    -  return match2.captures.find(
    -    (capture) => names.some((name) => capture.name === name)
    -  );
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
    -var TreeSitterIterationScopeHandler = class extends BaseTreeSitterScopeHandler {
    -  constructor(query, iterateeScopeType) {
    -    super(query);
    -    this.iterateeScopeType = iterateeScopeType;
    -    this.isHierarchical = true;
    -    // Doesn't correspond to any scope type
    -    this.scopeType = void 0;
    -  }
    -  // Doesn't have any iteration scope type itself; that would correspond to
    -  // something like "every every"
    -  get iterationScopeType() {
    -    throw Error("Not implemented");
    -  }
    -  matchToScope(editor, match2) {
    -    const scopeTypeType = this.iterateeScopeType.type;
    -    const capture = getRelatedCapture(match2, scopeTypeType, "iteration", false);
    -    if (capture == null) {
    -      return void 0;
    -    }
    -    const { range: contentRange, allowMultiple } = capture;
    -    const domain = getRelatedRange(match2, scopeTypeType, "iteration.domain", false) ?? contentRange;
    -    return {
    -      editor,
    -      domain,
    -      allowMultiple,
    -      getTargets: (isReversed) => [
    -        new PlainTarget({
    -          editor,
    -          isReversed,
    -          contentRange
    -        })
    -      ]
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
    -var TreeSitterScopeHandler = class extends BaseTreeSitterScopeHandler {
    -  constructor(query, scopeType) {
    -    super(query);
    -    this.scopeType = scopeType;
    -    this.isHierarchical = true;
    -  }
    -  // We just create a custom scope handler that doesn't necessarily correspond
    -  // to any well-defined scope type
    -  get iterationScopeType() {
    -    return {
    -      type: "custom",
    -      scopeHandler: new TreeSitterIterationScopeHandler(
    -        this.query,
    -        this.scopeType
    -      )
    -    };
    -  }
    -  matchToScope(editor, match2) {
    -    const scopeTypeType = this.scopeType.type;
    -    const capture = findCaptureByName(match2, scopeTypeType);
    -    if (capture == null) {
    -      return void 0;
    -    }
    -    const { range: contentRange, allowMultiple, insertionDelimiter } = capture;
    -    const domain = getRelatedRange(match2, scopeTypeType, "domain", true) ?? contentRange;
    -    const removalRange = getRelatedRange(match2, scopeTypeType, "removal", true);
    -    const interiorRange = getRelatedRange(
    -      match2,
    -      scopeTypeType,
    -      "interior",
    -      true
    -    );
    -    const prefixRange = getRelatedRange(
    -      match2,
    -      scopeTypeType,
    -      "prefix",
    -      true
    -    )?.with(void 0, contentRange.start);
    -    const leadingDelimiterRange = getRelatedRange(
    -      match2,
    -      scopeTypeType,
    -      "leading",
    -      true
    -    )?.with(void 0, prefixRange?.start ?? contentRange.start);
    -    const trailingDelimiterRange = getRelatedRange(
    -      match2,
    -      scopeTypeType,
    -      "trailing",
    -      true
    -    )?.with(contentRange.end);
    -    return {
    -      editor,
    -      domain,
    -      allowMultiple,
    -      getTargets: (isReversed) => [
    -        new ScopeTypeTarget({
    -          scopeTypeType,
    -          editor,
    -          isReversed,
    -          contentRange,
    -          prefixRange,
    -          removalRange,
    -          leadingDelimiterRange,
    -          trailingDelimiterRange,
    -          interiorRange,
    -          insertionDelimiter
    -        })
    -      ]
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts
    -function getInitialIteratorInfos(iterators) {
    -  return iterators.flatMap((iterator) => {
    -    const { value, done } = iterator.next();
    -    return done ? [] : [
    -      {
    -        iterator,
    -        value
    -      }
    -    ];
    -  });
    -}
    -function advanceIteratorsUntil(iteratorInfos, criterion) {
    -  return iteratorInfos.flatMap((iteratorInfo) => {
    -    const { iterator } = iteratorInfo;
    -    let { value } = iteratorInfo;
    -    let done = false;
    -    while (!criterion(value) && !done) {
    -      ({ value, done } = iterator.next());
    -    }
    -    if (done) {
    -      return [];
    -    }
    -    return [{ iterator, value }];
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts
    -var OneOfScopeHandler = class _OneOfScopeHandler extends BaseScopeHandler {
    -  constructor(scopeType, scopeHandlers, getIterationScopeType) {
    -    super();
    -    this.scopeType = scopeType;
    -    this.scopeHandlers = scopeHandlers;
    -    this.getIterationScopeType = getIterationScopeType;
    -    this.isHierarchical = true;
    -  }
    -  static create(scopeHandlerFactory, scopeType, languageId) {
    -    const scopeHandlers = scopeType.scopeTypes.map(
    -      (scopeType2) => {
    -        const handler = scopeHandlerFactory.create(scopeType2, languageId);
    -        if (handler == null) {
    -          throw new Error(`No available scope handler for '${scopeType2.type}'`);
    -        }
    -        return handler;
    -      }
    -    );
    -    const iterationScopeType = () => ({
    -      type: "custom",
    -      scopeHandler: new _OneOfScopeHandler(
    -        void 0,
    -        scopeHandlers.map(
    -          (scopeHandler) => scopeHandlerFactory.create(
    -            scopeHandler.iterationScopeType,
    -            languageId
    -          )
    -        ),
    -        () => {
    -          throw new Error("Not implemented");
    -        }
    -      )
    -    });
    -    return new _OneOfScopeHandler(scopeType, scopeHandlers, iterationScopeType);
    -  }
    -  get iterationScopeType() {
    -    return this.getIterationScopeType();
    -  }
    -  *generateScopeCandidates(editor, position, direction, hints) {
    -    const iterators = this.scopeHandlers.map(
    -      (scopeHandler) => scopeHandler.generateScopes(editor, position, direction, hints)[Symbol.iterator]()
    -    );
    -    let iteratorInfos = getInitialIteratorInfos(iterators);
    -    while (iteratorInfos.length > 0) {
    -      iteratorInfos.sort(
    -        (a, b) => compareTargetScopes(direction, position, a.value, b.value)
    -      );
    -      const currentScope2 = iteratorInfos[0].value;
    -      yield currentScope2;
    -      iteratorInfos = advanceIteratorsUntil(
    -        iteratorInfos,
    -        (scope) => compareTargetScopes(direction, position, currentScope2, scope) < 0
    -      );
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
    -var ParagraphScopeHandler = class extends BaseScopeHandler {
    -  constructor(_scopeType, _languageId) {
    -    super();
    -    this.scopeType = { type: "paragraph" };
    -    this.iterationScopeType = { type: "document" };
    -    this.isHierarchical = false;
    -  }
    -  *generateScopeCandidates(editor, position, direction) {
    -    const { document } = editor;
    -    const offset = direction === "forward" ? 1 : -1;
    -    const stop = direction === "forward" ? document.lineCount : -1;
    -    let startLine = getStartLine(document, position, direction);
    -    let previousLine = editor.document.lineAt(position);
    -    for (let i = position.line + offset; i !== stop; i += offset) {
    -      const currentLine = editor.document.lineAt(i);
    -      if (currentLine.isEmptyOrWhitespace) {
    -        if (startLine != null) {
    -          yield createScope2(editor, startLine.range.union(previousLine.range));
    -          startLine = void 0;
    -        }
    -      } else if (startLine == null) {
    -        startLine = currentLine;
    -      }
    -      previousLine = currentLine;
    -    }
    -    if (startLine != null) {
    -      yield createScope2(editor, startLine.range.union(previousLine.range));
    -    }
    -  }
    -};
    -function getStartLine(document, position, direction) {
    -  const offset = direction === "forward" ? -1 : 1;
    -  const stop = direction === "forward" ? -1 : document.lineCount;
    -  let startLine = document.lineAt(position);
    -  if (startLine.isEmptyOrWhitespace) {
    -    return void 0;
    -  }
    -  for (let i = position.line + offset; i !== stop; i += offset) {
    -    const line = document.lineAt(i);
    -    if (line.isEmptyOrWhitespace) {
    -      break;
    -    }
    -    startLine = line;
    -  }
    -  return startLine;
    -}
    -function createScope2(editor, domain) {
    -  return {
    -    editor,
    -    domain,
    -    getTargets: (isReversed) => [
    -      new ParagraphTarget({
    -        editor,
    -        isReversed,
    -        contentRange: fitRangeToLineContent(editor, domain)
    -      })
    -    ]
    -  };
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
    -var sbd = __toESM(require_tokenizer(), 1);
    -var leadingOffsetRegex = /\S*\p{L}/u;
    -var skipPartRegex = /(\r?\n[^\p{L}]*\r?\n)|(?<=[.!?])(\s*\r?\n)/gu;
    -var options = {
    -  ["newline_boundaries"]: false,
    -  ["preserve_whitespace"]: true
    -};
    -var SentenceSegmenter = class {
    -  *segment(text) {
    -    const sentences2 = sbd.sentences(text, options);
    -    let index = 0;
    -    for (const sentence of sentences2) {
    -      const parts = sentence.split(skipPartRegex).filter((p) => p != null);
    -      for (const part of parts) {
    -        if (!skipPart(part)) {
    -          const segment = createSegment(part, index);
    -          if (segment != null) {
    -            yield segment;
    -          }
    -        }
    -        index += part.length;
    -      }
    -    }
    -  }
    -};
    -function createSegment(sentence, index) {
    -  const leadingOffsetMatch = matchRegex(leadingOffsetRegex, sentence);
    -  if (leadingOffsetMatch == null) {
    -    return void 0;
    -  }
    -  const leadingOffset = leadingOffsetMatch.index;
    -  if (leadingOffset !== 0) {
    -    index += leadingOffset;
    -    sentence = sentence.slice(leadingOffset);
    -  }
    -  return {
    -    text: sentence.trimEnd(),
    -    index
    -  };
    -}
    -function skipPart(text) {
    -  return testRegex(skipPartRegex, text);
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
    -var SentenceScopeHandler = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.scopeType = { type: "sentence" };
    -    this.iterationScopeType = { type: "paragraph" };
    -    this.segmenter = new SentenceSegmenter();
    -  }
    -  generateScopesInSearchScope(direction, { editor, domain }) {
    -    const offset = editor.document.offsetAt(domain.start);
    -    const text = editor.document.getText(domain);
    -    const sentenceToScope = (sentence) => {
    -      const contentRange = new Range(
    -        editor.document.positionAt(offset + sentence.index),
    -        editor.document.positionAt(
    -          offset + sentence.index + sentence.text.length
    -        )
    -      );
    -      return {
    -        editor,
    -        domain: contentRange,
    -        getTargets: (isReversed) => [
    -          new TokenTarget({
    -            editor,
    -            contentRange,
    -            isReversed
    -          })
    -        ]
    -      };
    -    };
    -    const sentences2 = this.segmenter.segment(text);
    -    return direction === "forward" ? imap(sentences2, sentenceToScope) : Array.from(sentences2, sentenceToScope).reverse();
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
    -var import_lodash24 = __toESM(require_lodash(), 1);
    -var RegexStageBase = class extends NestedScopeHandler {
    -  constructor() {
    -    super(...arguments);
    -    this.iterationScopeType = { type: "line" };
    -  }
    -  generateScopesInSearchScope(direction, { editor, domain }) {
    -    return imap(
    -      generateMatchesInRange(this.regex, editor, domain, direction),
    -      (range4) => ({
    -        editor,
    -        domain: range4,
    -        getTargets: (isReversed) => [
    -          new TokenTarget({
    -            editor,
    -            contentRange: range4,
    -            isReversed
    -          })
    -        ]
    -      })
    -    );
    -  }
    -};
    -var NonWhitespaceSequenceScopeHandler = class extends RegexStageBase {
    -  constructor() {
    -    super(...arguments);
    -    this.regex = /\S+/g;
    -  }
    -};
    -var UrlScopeHandler = class extends RegexStageBase {
    -  constructor(scopeHandlerFactory, scopeType, languageId) {
    -    super(scopeHandlerFactory, scopeType, languageId);
    -    this.scopeType = scopeType;
    -    // taken from https://regexr.com/3e6m0
    -    this.regex = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g;
    -  }
    -};
    -var CustomRegexScopeHandler = class extends RegexStageBase {
    -  constructor(scopeHandlerFactory, scopeType, languageId) {
    -    super(scopeHandlerFactory, scopeType, languageId);
    -    this.scopeType = scopeType;
    -  }
    -  get regex() {
    -    return new RegExp(this.scopeType.regex, "gu");
    -  }
    -};
    -var GlyphScopeHandler = class extends RegexStageBase {
    -  constructor(scopeHandlerFactory, scopeType, languageId) {
    -    super(scopeHandlerFactory, scopeType, languageId);
    -    this.scopeType = scopeType;
    -  }
    -  get regex() {
    -    return new RegExp((0, import_lodash24.escapeRegExp)(this.scopeType.character), "gui");
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
    -var ScopeHandlerFactoryImpl = class {
    -  constructor(languageDefinitions) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.create = this.create.bind(this);
    -  }
    -  create(scopeType, languageId) {
    -    switch (scopeType.type) {
    -      case "character":
    -        return new CharacterScopeHandler(this, scopeType, languageId);
    -      case "word":
    -        return new WordScopeHandler(this, scopeType, languageId);
    -      case "token":
    -        return new TokenScopeHandler(this, scopeType, languageId);
    -      case "identifier":
    -        return new IdentifierScopeHandler(this, scopeType, languageId);
    -      case "line":
    -        return new LineScopeHandler(scopeType, languageId);
    -      case "sentence":
    -        return new SentenceScopeHandler(this, scopeType, languageId);
    -      case "paragraph":
    -        return new ParagraphScopeHandler(scopeType, languageId);
    -      case "document":
    -        return new DocumentScopeHandler(scopeType, languageId);
    -      case "oneOf":
    -        return OneOfScopeHandler.create(this, scopeType, languageId);
    -      case "nonWhitespaceSequence":
    -        return new NonWhitespaceSequenceScopeHandler(
    -          this,
    -          scopeType,
    -          languageId
    -        );
    -      case "url":
    -        return new UrlScopeHandler(this, scopeType, languageId);
    -      case "customRegex":
    -        return new CustomRegexScopeHandler(this, scopeType, languageId);
    -      case "glyph":
    -        return new GlyphScopeHandler(this, scopeType, languageId);
    -      case "custom":
    -        return scopeType.scopeHandler;
    -      case "instance":
    -        throw Error("Unexpected scope type 'instance'");
    -      default:
    -        return this.languageDefinitions.get(languageId)?.getScopeHandler(scopeType);
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/languages/captureNames.ts
    -var TEXT_FRAGMENT_CAPTURE_NAME = "textFragment";
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterTextFragmentScopeHandler.ts
    -var TreeSitterTextFragmentScopeHandler = class extends BaseTreeSitterScopeHandler {
    -  constructor(query) {
    -    super(query);
    -    this.isHierarchical = true;
    -    // Doesn't correspond to any scope type
    -    this.scopeType = void 0;
    -  }
    -  // Doesn't have any iteration scope type itself; that would correspond to
    -  // something like "every every"
    -  get iterationScopeType() {
    -    throw Error("Not implemented");
    -  }
    -  matchToScope(editor, match2) {
    -    const capture = findCaptureByName(match2, TEXT_FRAGMENT_CAPTURE_NAME);
    -    if (capture == null) {
    -      return void 0;
    -    }
    -    const { range: contentRange, allowMultiple } = capture;
    -    if (allowMultiple) {
    -      throw Error(
    -        "The #allow-multiple! predicate is not supported for text fragments"
    -      );
    -    }
    -    return {
    -      editor,
    -      domain: contentRange,
    -      allowMultiple,
    -      getTargets: (isReversed) => [
    -        new PlainTarget({
    -          editor,
    -          isReversed,
    -          contentRange
    -        })
    -      ]
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/util/nodeSelectors.ts
    -var import_lodash25 = __toESM(require_lodash(), 1);
    -function makeRangeFromPositions(startPosition, endPosition) {
    -  return new Range(
    -    startPosition.row,
    -    startPosition.column,
    -    endPosition.row,
    -    endPosition.column
    -  );
    -}
    -function positionFromPoint(point) {
    -  return new Position(point.row, point.column);
    -}
    -function getNodeRange(node) {
    -  return new Range(
    -    node.startPosition.row,
    -    node.startPosition.column,
    -    node.endPosition.row,
    -    node.endPosition.column
    -  );
    -}
    -function makeNodePairSelection(anchor, active) {
    -  return new Selection(
    -    anchor.startPosition.row,
    -    anchor.startPosition.column,
    -    active.endPosition.row,
    -    active.endPosition.column
    -  );
    -}
    -function getNodeInternalRange(node) {
    -  const children = node.children;
    -  return makeRangeFromPositions(
    -    children[0].endPosition,
    -    children[children.length - 1].startPosition
    -  );
    -}
    -function simpleSelectionExtractor(editor, node) {
    -  return {
    -    selection: new Selection(
    -      new Position(node.startPosition.row, node.startPosition.column),
    -      new Position(node.endPosition.row, node.endPosition.column)
    -    ),
    -    context: {}
    -  };
    -}
    -function extendUntilNextMatchingSiblingOrLast(editor, node, nodeFinder2) {
    -  const endNode = getNextMatchingSiblingNodeOrLast(node, nodeFinder2);
    -  return pairSelectionExtractor(editor, node, endNode);
    -}
    -function getNextMatchingSiblingNodeOrLast(node, nodeFinder2) {
    -  let currentNode = node;
    -  let nextNode = node.nextSibling;
    -  while (nextNode != null && nodeFinder2(nextNode) == null) {
    -    currentNode = nextNode;
    -    nextNode = nextNode.nextSibling;
    -  }
    -  return currentNode;
    -}
    -function pairSelectionExtractor(editor, node1, node2) {
    -  const isForward = node1.startIndex < node2.startIndex;
    -  const start = isForward ? node1 : node2;
    -  const end = isForward ? node2 : node1;
    -  return {
    -    selection: new Selection(
    -      new Position(start.startPosition.row, start.startPosition.column),
    -      new Position(end.endPosition.row, end.endPosition.column)
    -    ),
    -    context: {}
    -  };
    -}
    -function argumentSelectionExtractor() {
    -  return delimitedSelector(
    -    (node) => node.type === "," || node.type === "(" || node.type === ")" || node.type === "[" || node.type === "]" || node.type === ">" || node.type === "<" || node.type === "}" || node.type === "{",
    -    ", "
    -  );
    -}
    -function unwrapSelectionExtractor(editor, node) {
    -  let startIndex = node.startIndex;
    -  let endIndex = node.endIndex;
    -  if (node.text.startsWith("(") && node.text.endsWith(")")) {
    -    startIndex += 1;
    -    endIndex -= 1;
    -  } else if (node.text.endsWith(";")) {
    -    endIndex -= 1;
    -  }
    -  return {
    -    selection: new Selection(
    -      editor.document.positionAt(startIndex),
    -      editor.document.positionAt(endIndex)
    -    ),
    -    context: {}
    -  };
    -}
    -function selectWithLeadingDelimiter(...delimiters) {
    -  return function(editor, node) {
    -    const firstSibling = node.previousSibling;
    -    const secondSibling = firstSibling?.previousSibling;
    -    let leadingDelimiterRange;
    -    if (firstSibling) {
    -      if (delimiters.includes(firstSibling.type)) {
    -        if (secondSibling) {
    -          leadingDelimiterRange = makeRangeFromPositions(
    -            secondSibling.endPosition,
    -            node.startPosition
    -          );
    -        } else {
    -          leadingDelimiterRange = makeRangeFromPositions(
    -            firstSibling.startPosition,
    -            node.startPosition
    -          );
    -        }
    -      } else {
    -        leadingDelimiterRange = makeRangeFromPositions(
    -          firstSibling.endPosition,
    -          node.startPosition
    -        );
    -      }
    -    }
    -    return {
    -      ...simpleSelectionExtractor(editor, node),
    -      context: {
    -        leadingDelimiterRange
    -      }
    -    };
    -  };
    -}
    -function childRangeSelector(typesToExclude = [], typesToInclude = [], { includeUnnamedChildren = false } = {}) {
    -  return function(editor, node) {
    -    if (typesToExclude.length > 0 && typesToInclude.length > 0) {
    -      throw new Error("Cannot have both exclusions and inclusions.");
    -    }
    -    let nodes = includeUnnamedChildren ? node.children : node.namedChildren;
    -    const exclusionSet = new Set(typesToExclude);
    -    const inclusionSet = new Set(typesToInclude);
    -    nodes = nodes.filter((child) => {
    -      if (exclusionSet.size > 0) {
    -        return !exclusionSet.has(child.type);
    -      }
    -      if (inclusionSet.size > 0) {
    -        return inclusionSet.has(child.type);
    -      }
    -      return true;
    -    });
    -    return pairSelectionExtractor(editor, nodes[0], nodes[nodes.length - 1]);
    -  };
    -}
    -function selectWithTrailingDelimiter(...delimiters) {
    -  return function(editor, node) {
    -    const firstSibling = node.nextSibling;
    -    const secondSibling = firstSibling?.nextSibling;
    -    let trailingDelimiterRange;
    -    if (firstSibling) {
    -      if (delimiters.includes(firstSibling.type)) {
    -        if (secondSibling) {
    -          trailingDelimiterRange = makeRangeFromPositions(
    -            node.endPosition,
    -            secondSibling.startPosition
    -          );
    -        } else {
    -          trailingDelimiterRange = makeRangeFromPositions(
    -            node.endPosition,
    -            firstSibling.endPosition
    -          );
    -        }
    -      } else {
    -        trailingDelimiterRange = makeRangeFromPositions(
    -          node.endPosition,
    -          firstSibling.startPosition
    -        );
    -      }
    -    }
    -    return {
    -      ...simpleSelectionExtractor(editor, node),
    -      context: {
    -        trailingDelimiterRange
    -      }
    -    };
    -  };
    -}
    -function getNextNonDelimiterNode(startNode, isDelimiterNode) {
    -  let node = startNode.nextSibling;
    -  while (node != null) {
    -    if (!isDelimiterNode(node)) {
    -      return node;
    -    }
    -    node = node.nextSibling;
    -  }
    -  return node;
    -}
    -function getPreviousNonDelimiterNode(startNode, isDelimiterNode) {
    -  let node = startNode.previousSibling;
    -  while (node != null) {
    -    if (!isDelimiterNode(node)) {
    -      return node;
    -    }
    -    node = node.previousSibling;
    -  }
    -  return node;
    -}
    -function delimitedSelector(isDelimiterNode, defaultDelimiter, getStartNode = import_lodash25.identity, getEndNode = import_lodash25.identity) {
    -  return (editor, node) => {
    -    let leadingDelimiterRange;
    -    let trailingDelimiterRange;
    -    const startNode = getStartNode(node);
    -    const endNode = getEndNode(node);
    -    const previousNonDelimiterNode = getPreviousNonDelimiterNode(
    -      startNode,
    -      isDelimiterNode
    -    );
    -    const nextNonDelimiterNode = getNextNonDelimiterNode(
    -      endNode,
    -      isDelimiterNode
    -    );
    -    if (previousNonDelimiterNode != null) {
    -      leadingDelimiterRange = makeRangeFromPositions(
    -        previousNonDelimiterNode.endPosition,
    -        startNode.startPosition
    -      );
    -    }
    -    if (nextNonDelimiterNode != null) {
    -      trailingDelimiterRange = makeRangeFromPositions(
    -        endNode.endPosition,
    -        nextNonDelimiterNode.startPosition
    -      );
    -    }
    -    const containingListDelimiter = getInsertionDelimiter2(
    -      editor,
    -      leadingDelimiterRange,
    -      trailingDelimiterRange,
    -      defaultDelimiter
    -    );
    -    return {
    -      selection: new Selection(
    -        new Position(
    -          startNode.startPosition.row,
    -          startNode.startPosition.column
    -        ),
    -        new Position(endNode.endPosition.row, endNode.endPosition.column)
    -      ),
    -      context: {
    -        containingListDelimiter,
    -        leadingDelimiterRange,
    -        trailingDelimiterRange
    -      }
    -    };
    -  };
    -}
    -function getInsertionDelimiter2(editor, leadingDelimiterRange, trailingDelimiterRange, defaultDelimiterInsertion) {
    -  const { document } = editor;
    -  const delimiters = [
    -    trailingDelimiterRange != null ? document.getText(trailingDelimiterRange) : defaultDelimiterInsertion,
    -    leadingDelimiterRange != null ? document.getText(leadingDelimiterRange) : defaultDelimiterInsertion
    -  ];
    -  return (0, import_lodash25.maxBy)(delimiters, "length");
    -}
    -
    -// ../../node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/index.mjs
    -var util;
    -(function(util2) {
    -  util2.assertEqual = (val) => val;
    -  function assertIs(_arg) {
    -  }
    -  util2.assertIs = assertIs;
    -  function assertNever(_x) {
    -    throw new Error();
    -  }
    -  util2.assertNever = assertNever;
    -  util2.arrayToEnum = (items) => {
    -    const obj = {};
    -    for (const item of items) {
    -      obj[item] = item;
    -    }
    -    return obj;
    -  };
    -  util2.getValidEnumValues = (obj) => {
    -    const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number");
    -    const filtered = {};
    -    for (const k of validKeys) {
    -      filtered[k] = obj[k];
    -    }
    -    return util2.objectValues(filtered);
    -  };
    -  util2.objectValues = (obj) => {
    -    return util2.objectKeys(obj).map(function(e) {
    -      return obj[e];
    -    });
    -  };
    -  util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
    -    const keys = [];
    -    for (const key in object) {
    -      if (Object.prototype.hasOwnProperty.call(object, key)) {
    -        keys.push(key);
    -      }
    -    }
    -    return keys;
    -  };
    -  util2.find = (arr, checker) => {
    -    for (const item of arr) {
    -      if (checker(item))
    -        return item;
    -    }
    -    return void 0;
    -  };
    -  util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
    -  function joinValues(array, separator2 = " | ") {
    -    return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator2);
    -  }
    -  util2.joinValues = joinValues;
    -  util2.jsonStringifyReplacer = (_, value) => {
    -    if (typeof value === "bigint") {
    -      return value.toString();
    -    }
    -    return value;
    -  };
    -})(util || (util = {}));
    -var objectUtil;
    -(function(objectUtil2) {
    -  objectUtil2.mergeShapes = (first, second) => {
    -    return {
    -      ...first,
    -      ...second
    -      // second overwrites first
    -    };
    -  };
    -})(objectUtil || (objectUtil = {}));
    -var ZodParsedType = util.arrayToEnum([
    -  "string",
    -  "nan",
    -  "number",
    -  "integer",
    -  "float",
    -  "boolean",
    -  "date",
    -  "bigint",
    -  "symbol",
    -  "function",
    -  "undefined",
    -  "null",
    -  "array",
    -  "object",
    -  "unknown",
    -  "promise",
    -  "void",
    -  "never",
    -  "map",
    -  "set"
    -]);
    -var getParsedType = (data) => {
    -  const t = typeof data;
    -  switch (t) {
    -    case "undefined":
    -      return ZodParsedType.undefined;
    -    case "string":
    -      return ZodParsedType.string;
    -    case "number":
    -      return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
    -    case "boolean":
    -      return ZodParsedType.boolean;
    -    case "function":
    -      return ZodParsedType.function;
    -    case "bigint":
    -      return ZodParsedType.bigint;
    -    case "symbol":
    -      return ZodParsedType.symbol;
    -    case "object":
    -      if (Array.isArray(data)) {
    -        return ZodParsedType.array;
    -      }
    -      if (data === null) {
    -        return ZodParsedType.null;
    -      }
    -      if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
    -        return ZodParsedType.promise;
    -      }
    -      if (typeof Map !== "undefined" && data instanceof Map) {
    -        return ZodParsedType.map;
    -      }
    -      if (typeof Set !== "undefined" && data instanceof Set) {
    -        return ZodParsedType.set;
    -      }
    -      if (typeof Date !== "undefined" && data instanceof Date) {
    -        return ZodParsedType.date;
    -      }
    -      return ZodParsedType.object;
    -    default:
    -      return ZodParsedType.unknown;
    -  }
    -};
    -var ZodIssueCode = util.arrayToEnum([
    -  "invalid_type",
    -  "invalid_literal",
    -  "custom",
    -  "invalid_union",
    -  "invalid_union_discriminator",
    -  "invalid_enum_value",
    -  "unrecognized_keys",
    -  "invalid_arguments",
    -  "invalid_return_type",
    -  "invalid_date",
    -  "invalid_string",
    -  "too_small",
    -  "too_big",
    -  "invalid_intersection_types",
    -  "not_multiple_of",
    -  "not_finite"
    -]);
    -var quotelessJson = (obj) => {
    -  const json2 = JSON.stringify(obj, null, 2);
    -  return json2.replace(/"([^"]+)":/g, "$1:");
    -};
    -var ZodError = class extends Error {
    -  constructor(issues) {
    -    super();
    -    this.issues = [];
    -    this.addIssue = (sub) => {
    -      this.issues = [...this.issues, sub];
    -    };
    -    this.addIssues = (subs = []) => {
    -      this.issues = [...this.issues, ...subs];
    -    };
    -    const actualProto = new.target.prototype;
    -    if (Object.setPrototypeOf) {
    -      Object.setPrototypeOf(this, actualProto);
    -    } else {
    -      this.__proto__ = actualProto;
    -    }
    -    this.name = "ZodError";
    -    this.issues = issues;
    -  }
    -  get errors() {
    -    return this.issues;
    -  }
    -  format(_mapper) {
    -    const mapper = _mapper || function(issue) {
    -      return issue.message;
    -    };
    -    const fieldErrors = { _errors: [] };
    -    const processError = (error) => {
    -      for (const issue of error.issues) {
    -        if (issue.code === "invalid_union") {
    -          issue.unionErrors.map(processError);
    -        } else if (issue.code === "invalid_return_type") {
    -          processError(issue.returnTypeError);
    -        } else if (issue.code === "invalid_arguments") {
    -          processError(issue.argumentsError);
    -        } else if (issue.path.length === 0) {
    -          fieldErrors._errors.push(mapper(issue));
    -        } else {
    -          let curr = fieldErrors;
    -          let i = 0;
    -          while (i < issue.path.length) {
    -            const el = issue.path[i];
    -            const terminal = i === issue.path.length - 1;
    -            if (!terminal) {
    -              curr[el] = curr[el] || { _errors: [] };
    -            } else {
    -              curr[el] = curr[el] || { _errors: [] };
    -              curr[el]._errors.push(mapper(issue));
    -            }
    -            curr = curr[el];
    -            i++;
    -          }
    -        }
    -      }
    -    };
    -    processError(this);
    -    return fieldErrors;
    -  }
    -  toString() {
    -    return this.message;
    -  }
    -  get message() {
    -    return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
    -  }
    -  get isEmpty() {
    -    return this.issues.length === 0;
    -  }
    -  flatten(mapper = (issue) => issue.message) {
    -    const fieldErrors = {};
    -    const formErrors = [];
    -    for (const sub of this.issues) {
    -      if (sub.path.length > 0) {
    -        fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
    -        fieldErrors[sub.path[0]].push(mapper(sub));
    -      } else {
    -        formErrors.push(mapper(sub));
    -      }
    -    }
    -    return { formErrors, fieldErrors };
    -  }
    -  get formErrors() {
    -    return this.flatten();
    -  }
    -};
    -ZodError.create = (issues) => {
    -  const error = new ZodError(issues);
    -  return error;
    -};
    -var errorMap = (issue, _ctx) => {
    -  let message;
    -  switch (issue.code) {
    -    case ZodIssueCode.invalid_type:
    -      if (issue.received === ZodParsedType.undefined) {
    -        message = "Required";
    -      } else {
    -        message = `Expected ${issue.expected}, received ${issue.received}`;
    -      }
    -      break;
    -    case ZodIssueCode.invalid_literal:
    -      message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
    -      break;
    -    case ZodIssueCode.unrecognized_keys:
    -      message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
    -      break;
    -    case ZodIssueCode.invalid_union:
    -      message = `Invalid input`;
    -      break;
    -    case ZodIssueCode.invalid_union_discriminator:
    -      message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
    -      break;
    -    case ZodIssueCode.invalid_enum_value:
    -      message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
    -      break;
    -    case ZodIssueCode.invalid_arguments:
    -      message = `Invalid function arguments`;
    -      break;
    -    case ZodIssueCode.invalid_return_type:
    -      message = `Invalid function return type`;
    -      break;
    -    case ZodIssueCode.invalid_date:
    -      message = `Invalid date`;
    -      break;
    -    case ZodIssueCode.invalid_string:
    -      if (typeof issue.validation === "object") {
    -        if ("includes" in issue.validation) {
    -          message = `Invalid input: must include "${issue.validation.includes}"`;
    -          if (typeof issue.validation.position === "number") {
    -            message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
    -          }
    -        } else if ("startsWith" in issue.validation) {
    -          message = `Invalid input: must start with "${issue.validation.startsWith}"`;
    -        } else if ("endsWith" in issue.validation) {
    -          message = `Invalid input: must end with "${issue.validation.endsWith}"`;
    -        } else {
    -          util.assertNever(issue.validation);
    -        }
    -      } else if (issue.validation !== "regex") {
    -        message = `Invalid ${issue.validation}`;
    -      } else {
    -        message = "Invalid";
    -      }
    -      break;
    -    case ZodIssueCode.too_small:
    -      if (issue.type === "array")
    -        message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
    -      else if (issue.type === "string")
    -        message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
    -      else if (issue.type === "number")
    -        message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
    -      else if (issue.type === "date")
    -        message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
    -      else
    -        message = "Invalid input";
    -      break;
    -    case ZodIssueCode.too_big:
    -      if (issue.type === "array")
    -        message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
    -      else if (issue.type === "string")
    -        message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
    -      else if (issue.type === "number")
    -        message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
    -      else if (issue.type === "bigint")
    -        message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
    -      else if (issue.type === "date")
    -        message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
    -      else
    -        message = "Invalid input";
    -      break;
    -    case ZodIssueCode.custom:
    -      message = `Invalid input`;
    -      break;
    -    case ZodIssueCode.invalid_intersection_types:
    -      message = `Intersection results could not be merged`;
    -      break;
    -    case ZodIssueCode.not_multiple_of:
    -      message = `Number must be a multiple of ${issue.multipleOf}`;
    -      break;
    -    case ZodIssueCode.not_finite:
    -      message = "Number must be finite";
    -      break;
    -    default:
    -      message = _ctx.defaultError;
    -      util.assertNever(issue);
    -  }
    -  return { message };
    -};
    -var overrideErrorMap = errorMap;
    -function setErrorMap(map4) {
    -  overrideErrorMap = map4;
    -}
    -function getErrorMap() {
    -  return overrideErrorMap;
    -}
    -var makeIssue = (params) => {
    -  const { data, path: path8, errorMaps, issueData } = params;
    -  const fullPath = [...path8, ...issueData.path || []];
    -  const fullIssue = {
    -    ...issueData,
    -    path: fullPath
    -  };
    -  let errorMessage = "";
    -  const maps = errorMaps.filter((m) => !!m).slice().reverse();
    -  for (const map4 of maps) {
    -    errorMessage = map4(fullIssue, { data, defaultError: errorMessage }).message;
    -  }
    -  return {
    -    ...issueData,
    -    path: fullPath,
    -    message: issueData.message || errorMessage
    -  };
    -};
    -var EMPTY_PATH = [];
    -function addIssueToContext(ctx, issueData) {
    -  const issue = makeIssue({
    -    issueData,
    -    data: ctx.data,
    -    path: ctx.path,
    -    errorMaps: [
    -      ctx.common.contextualErrorMap,
    -      ctx.schemaErrorMap,
    -      getErrorMap(),
    -      errorMap
    -      // then global default map
    -    ].filter((x) => !!x)
    -  });
    -  ctx.common.issues.push(issue);
    -}
    -var ParseStatus = class _ParseStatus {
    -  constructor() {
    -    this.value = "valid";
    -  }
    -  dirty() {
    -    if (this.value === "valid")
    -      this.value = "dirty";
    -  }
    -  abort() {
    -    if (this.value !== "aborted")
    -      this.value = "aborted";
    -  }
    -  static mergeArray(status, results) {
    -    const arrayValue = [];
    -    for (const s of results) {
    -      if (s.status === "aborted")
    -        return INVALID;
    -      if (s.status === "dirty")
    -        status.dirty();
    -      arrayValue.push(s.value);
    -    }
    -    return { status: status.value, value: arrayValue };
    -  }
    -  static async mergeObjectAsync(status, pairs2) {
    -    const syncPairs = [];
    -    for (const pair of pairs2) {
    -      syncPairs.push({
    -        key: await pair.key,
    -        value: await pair.value
    -      });
    -    }
    -    return _ParseStatus.mergeObjectSync(status, syncPairs);
    -  }
    -  static mergeObjectSync(status, pairs2) {
    -    const finalObject = {};
    -    for (const pair of pairs2) {
    -      const { key, value } = pair;
    -      if (key.status === "aborted")
    -        return INVALID;
    -      if (value.status === "aborted")
    -        return INVALID;
    -      if (key.status === "dirty")
    -        status.dirty();
    -      if (value.status === "dirty")
    -        status.dirty();
    -      if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
    -        finalObject[key.value] = value.value;
    -      }
    -    }
    -    return { status: status.value, value: finalObject };
    -  }
    -};
    -var INVALID = Object.freeze({
    -  status: "aborted"
    -});
    -var DIRTY = (value) => ({ status: "dirty", value });
    -var OK = (value) => ({ status: "valid", value });
    -var isAborted = (x) => x.status === "aborted";
    -var isDirty = (x) => x.status === "dirty";
    -var isValid = (x) => x.status === "valid";
    -var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
    -var errorUtil;
    -(function(errorUtil2) {
    -  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
    -  errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message;
    -})(errorUtil || (errorUtil = {}));
    -var ParseInputLazyPath = class {
    -  constructor(parent, value, path8, key) {
    -    this._cachedPath = [];
    -    this.parent = parent;
    -    this.data = value;
    -    this._path = path8;
    -    this._key = key;
    -  }
    -  get path() {
    -    if (!this._cachedPath.length) {
    -      if (this._key instanceof Array) {
    -        this._cachedPath.push(...this._path, ...this._key);
    -      } else {
    -        this._cachedPath.push(...this._path, this._key);
    -      }
    -    }
    -    return this._cachedPath;
    -  }
    -};
    -var handleResult = (ctx, result) => {
    -  if (isValid(result)) {
    -    return { success: true, data: result.value };
    -  } else {
    -    if (!ctx.common.issues.length) {
    -      throw new Error("Validation failed but no issues detected.");
    -    }
    -    return {
    -      success: false,
    -      get error() {
    -        if (this._error)
    -          return this._error;
    -        const error = new ZodError(ctx.common.issues);
    -        this._error = error;
    -        return this._error;
    -      }
    -    };
    -  }
    -};
    -function processCreateParams(params) {
    -  if (!params)
    -    return {};
    -  const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;
    -  if (errorMap2 && (invalid_type_error || required_error)) {
    -    throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
    -  }
    -  if (errorMap2)
    -    return { errorMap: errorMap2, description };
    -  const customMap = (iss, ctx) => {
    -    if (iss.code !== "invalid_type")
    -      return { message: ctx.defaultError };
    -    if (typeof ctx.data === "undefined") {
    -      return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };
    -    }
    -    return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };
    -  };
    -  return { errorMap: customMap, description };
    -}
    -var ZodType = class {
    -  constructor(def) {
    -    this.spa = this.safeParseAsync;
    -    this._def = def;
    -    this.parse = this.parse.bind(this);
    -    this.safeParse = this.safeParse.bind(this);
    -    this.parseAsync = this.parseAsync.bind(this);
    -    this.safeParseAsync = this.safeParseAsync.bind(this);
    -    this.spa = this.spa.bind(this);
    -    this.refine = this.refine.bind(this);
    -    this.refinement = this.refinement.bind(this);
    -    this.superRefine = this.superRefine.bind(this);
    -    this.optional = this.optional.bind(this);
    -    this.nullable = this.nullable.bind(this);
    -    this.nullish = this.nullish.bind(this);
    -    this.array = this.array.bind(this);
    -    this.promise = this.promise.bind(this);
    -    this.or = this.or.bind(this);
    -    this.and = this.and.bind(this);
    -    this.transform = this.transform.bind(this);
    -    this.brand = this.brand.bind(this);
    -    this.default = this.default.bind(this);
    -    this.catch = this.catch.bind(this);
    -    this.describe = this.describe.bind(this);
    -    this.pipe = this.pipe.bind(this);
    -    this.readonly = this.readonly.bind(this);
    -    this.isNullable = this.isNullable.bind(this);
    -    this.isOptional = this.isOptional.bind(this);
    -  }
    -  get description() {
    -    return this._def.description;
    -  }
    -  _getType(input) {
    -    return getParsedType(input.data);
    -  }
    -  _getOrReturnCtx(input, ctx) {
    -    return ctx || {
    -      common: input.parent.common,
    -      data: input.data,
    -      parsedType: getParsedType(input.data),
    -      schemaErrorMap: this._def.errorMap,
    -      path: input.path,
    -      parent: input.parent
    -    };
    -  }
    -  _processInputParams(input) {
    -    return {
    -      status: new ParseStatus(),
    -      ctx: {
    -        common: input.parent.common,
    -        data: input.data,
    -        parsedType: getParsedType(input.data),
    -        schemaErrorMap: this._def.errorMap,
    -        path: input.path,
    -        parent: input.parent
    -      }
    -    };
    -  }
    -  _parseSync(input) {
    -    const result = this._parse(input);
    -    if (isAsync(result)) {
    -      throw new Error("Synchronous parse encountered promise.");
    -    }
    -    return result;
    -  }
    -  _parseAsync(input) {
    -    const result = this._parse(input);
    -    return Promise.resolve(result);
    -  }
    -  parse(data, params) {
    -    const result = this.safeParse(data, params);
    -    if (result.success)
    -      return result.data;
    -    throw result.error;
    -  }
    -  safeParse(data, params) {
    -    var _a;
    -    const ctx = {
    -      common: {
    -        issues: [],
    -        async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,
    -        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
    -      },
    -      path: (params === null || params === void 0 ? void 0 : params.path) || [],
    -      schemaErrorMap: this._def.errorMap,
    -      parent: null,
    -      data,
    -      parsedType: getParsedType(data)
    -    };
    -    const result = this._parseSync({ data, path: ctx.path, parent: ctx });
    -    return handleResult(ctx, result);
    -  }
    -  async parseAsync(data, params) {
    -    const result = await this.safeParseAsync(data, params);
    -    if (result.success)
    -      return result.data;
    -    throw result.error;
    -  }
    -  async safeParseAsync(data, params) {
    -    const ctx = {
    -      common: {
    -        issues: [],
    -        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,
    -        async: true
    -      },
    -      path: (params === null || params === void 0 ? void 0 : params.path) || [],
    -      schemaErrorMap: this._def.errorMap,
    -      parent: null,
    -      data,
    -      parsedType: getParsedType(data)
    -    };
    -    const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
    -    const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
    -    return handleResult(ctx, result);
    -  }
    -  refine(check, message) {
    -    const getIssueProperties = (val) => {
    -      if (typeof message === "string" || typeof message === "undefined") {
    -        return { message };
    -      } else if (typeof message === "function") {
    -        return message(val);
    -      } else {
    -        return message;
    -      }
    -    };
    -    return this._refinement((val, ctx) => {
    -      const result = check(val);
    -      const setError = () => ctx.addIssue({
    -        code: ZodIssueCode.custom,
    -        ...getIssueProperties(val)
    -      });
    -      if (typeof Promise !== "undefined" && result instanceof Promise) {
    -        return result.then((data) => {
    -          if (!data) {
    -            setError();
    -            return false;
    -          } else {
    -            return true;
    -          }
    -        });
    -      }
    -      if (!result) {
    -        setError();
    -        return false;
    -      } else {
    -        return true;
    -      }
    -    });
    -  }
    -  refinement(check, refinementData) {
    -    return this._refinement((val, ctx) => {
    -      if (!check(val)) {
    -        ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
    -        return false;
    -      } else {
    -        return true;
    -      }
    -    });
    -  }
    -  _refinement(refinement) {
    -    return new ZodEffects({
    -      schema: this,
    -      typeName: ZodFirstPartyTypeKind.ZodEffects,
    -      effect: { type: "refinement", refinement }
    -    });
    -  }
    -  superRefine(refinement) {
    -    return this._refinement(refinement);
    -  }
    -  optional() {
    -    return ZodOptional.create(this, this._def);
    -  }
    -  nullable() {
    -    return ZodNullable.create(this, this._def);
    -  }
    -  nullish() {
    -    return this.nullable().optional();
    -  }
    -  array() {
    -    return ZodArray.create(this, this._def);
    -  }
    -  promise() {
    -    return ZodPromise.create(this, this._def);
    -  }
    -  or(option) {
    -    return ZodUnion.create([this, option], this._def);
    -  }
    -  and(incoming) {
    -    return ZodIntersection.create(this, incoming, this._def);
    -  }
    -  transform(transform) {
    -    return new ZodEffects({
    -      ...processCreateParams(this._def),
    -      schema: this,
    -      typeName: ZodFirstPartyTypeKind.ZodEffects,
    -      effect: { type: "transform", transform }
    -    });
    -  }
    -  default(def) {
    -    const defaultValueFunc = typeof def === "function" ? def : () => def;
    -    return new ZodDefault({
    -      ...processCreateParams(this._def),
    -      innerType: this,
    -      defaultValue: defaultValueFunc,
    -      typeName: ZodFirstPartyTypeKind.ZodDefault
    -    });
    -  }
    -  brand() {
    -    return new ZodBranded({
    -      typeName: ZodFirstPartyTypeKind.ZodBranded,
    -      type: this,
    -      ...processCreateParams(this._def)
    -    });
    -  }
    -  catch(def) {
    -    const catchValueFunc = typeof def === "function" ? def : () => def;
    -    return new ZodCatch({
    -      ...processCreateParams(this._def),
    -      innerType: this,
    -      catchValue: catchValueFunc,
    -      typeName: ZodFirstPartyTypeKind.ZodCatch
    -    });
    -  }
    -  describe(description) {
    -    const This = this.constructor;
    -    return new This({
    -      ...this._def,
    -      description
    -    });
    -  }
    -  pipe(target) {
    -    return ZodPipeline.create(this, target);
    -  }
    -  readonly() {
    -    return ZodReadonly.create(this);
    -  }
    -  isOptional() {
    -    return this.safeParse(void 0).success;
    -  }
    -  isNullable() {
    -    return this.safeParse(null).success;
    -  }
    -};
    -var cuidRegex = /^c[^\s-]{8,}$/i;
    -var cuid2Regex = /^[a-z][a-z0-9]*$/;
    -var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;
    -var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
    -var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
    -var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
    -var emojiRegex;
    -var ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;
    -var ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;
    -var datetimeRegex = (args) => {
    -  if (args.precision) {
    -    if (args.offset) {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    -    } else {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`);
    -    }
    -  } else if (args.precision === 0) {
    -    if (args.offset) {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    -    } else {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`);
    -    }
    -  } else {
    -    if (args.offset) {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    -    } else {
    -      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`);
    -    }
    -  }
    -};
    -function isValidIP(ip, version2) {
    -  if ((version2 === "v4" || !version2) && ipv4Regex.test(ip)) {
    -    return true;
    -  }
    -  if ((version2 === "v6" || !version2) && ipv6Regex.test(ip)) {
    -    return true;
    -  }
    -  return false;
    -}
    -var ZodString = class _ZodString extends ZodType {
    -  _parse(input) {
    -    if (this._def.coerce) {
    -      input.data = String(input.data);
    -    }
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.string) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(
    -        ctx2,
    -        {
    -          code: ZodIssueCode.invalid_type,
    -          expected: ZodParsedType.string,
    -          received: ctx2.parsedType
    -        }
    -        //
    -      );
    -      return INVALID;
    -    }
    -    const status = new ParseStatus();
    -    let ctx = void 0;
    -    for (const check of this._def.checks) {
    -      if (check.kind === "min") {
    -        if (input.data.length < check.value) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_small,
    -            minimum: check.value,
    -            type: "string",
    -            inclusive: true,
    -            exact: false,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "max") {
    -        if (input.data.length > check.value) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_big,
    -            maximum: check.value,
    -            type: "string",
    -            inclusive: true,
    -            exact: false,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "length") {
    -        const tooBig = input.data.length > check.value;
    -        const tooSmall = input.data.length < check.value;
    -        if (tooBig || tooSmall) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          if (tooBig) {
    -            addIssueToContext(ctx, {
    -              code: ZodIssueCode.too_big,
    -              maximum: check.value,
    -              type: "string",
    -              inclusive: true,
    -              exact: true,
    -              message: check.message
    -            });
    -          } else if (tooSmall) {
    -            addIssueToContext(ctx, {
    -              code: ZodIssueCode.too_small,
    -              minimum: check.value,
    -              type: "string",
    -              inclusive: true,
    -              exact: true,
    -              message: check.message
    -            });
    -          }
    -          status.dirty();
    -        }
    -      } else if (check.kind === "email") {
    -        if (!emailRegex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "email",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "emoji") {
    -        if (!emojiRegex) {
    -          emojiRegex = new RegExp(_emojiRegex, "u");
    -        }
    -        if (!emojiRegex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "emoji",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "uuid") {
    -        if (!uuidRegex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "uuid",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "cuid") {
    -        if (!cuidRegex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "cuid",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "cuid2") {
    -        if (!cuid2Regex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "cuid2",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "ulid") {
    -        if (!ulidRegex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "ulid",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "url") {
    -        try {
    -          new URL(input.data);
    -        } catch (_a) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "url",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "regex") {
    -        check.regex.lastIndex = 0;
    -        const testResult = check.regex.test(input.data);
    -        if (!testResult) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "regex",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "trim") {
    -        input.data = input.data.trim();
    -      } else if (check.kind === "includes") {
    -        if (!input.data.includes(check.value, check.position)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.invalid_string,
    -            validation: { includes: check.value, position: check.position },
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "toLowerCase") {
    -        input.data = input.data.toLowerCase();
    -      } else if (check.kind === "toUpperCase") {
    -        input.data = input.data.toUpperCase();
    -      } else if (check.kind === "startsWith") {
    -        if (!input.data.startsWith(check.value)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.invalid_string,
    -            validation: { startsWith: check.value },
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "endsWith") {
    -        if (!input.data.endsWith(check.value)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.invalid_string,
    -            validation: { endsWith: check.value },
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "datetime") {
    -        const regex = datetimeRegex(check);
    -        if (!regex.test(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.invalid_string,
    -            validation: "datetime",
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "ip") {
    -        if (!isValidIP(input.data, check.version)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            validation: "ip",
    -            code: ZodIssueCode.invalid_string,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else {
    -        util.assertNever(check);
    -      }
    -    }
    -    return { status: status.value, value: input.data };
    -  }
    -  _regex(regex, validation, message) {
    -    return this.refinement((data) => regex.test(data), {
    -      validation,
    -      code: ZodIssueCode.invalid_string,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  _addCheck(check) {
    -    return new _ZodString({
    -      ...this._def,
    -      checks: [...this._def.checks, check]
    -    });
    -  }
    -  email(message) {
    -    return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) });
    -  }
    -  url(message) {
    -    return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
    -  }
    -  emoji(message) {
    -    return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) });
    -  }
    -  uuid(message) {
    -    return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
    -  }
    -  cuid(message) {
    -    return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
    -  }
    -  cuid2(message) {
    -    return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
    -  }
    -  ulid(message) {
    -    return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) });
    -  }
    -  ip(options2) {
    -    return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options2) });
    -  }
    -  datetime(options2) {
    -    var _a;
    -    if (typeof options2 === "string") {
    -      return this._addCheck({
    -        kind: "datetime",
    -        precision: null,
    -        offset: false,
    -        message: options2
    -      });
    -    }
    -    return this._addCheck({
    -      kind: "datetime",
    -      precision: typeof (options2 === null || options2 === void 0 ? void 0 : options2.precision) === "undefined" ? null : options2 === null || options2 === void 0 ? void 0 : options2.precision,
    -      offset: (_a = options2 === null || options2 === void 0 ? void 0 : options2.offset) !== null && _a !== void 0 ? _a : false,
    -      ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message)
    -    });
    -  }
    -  regex(regex, message) {
    -    return this._addCheck({
    -      kind: "regex",
    -      regex,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  includes(value, options2) {
    -    return this._addCheck({
    -      kind: "includes",
    -      value,
    -      position: options2 === null || options2 === void 0 ? void 0 : options2.position,
    -      ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message)
    -    });
    -  }
    -  startsWith(value, message) {
    -    return this._addCheck({
    -      kind: "startsWith",
    -      value,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  endsWith(value, message) {
    -    return this._addCheck({
    -      kind: "endsWith",
    -      value,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  min(minLength, message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: minLength,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  max(maxLength, message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: maxLength,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  length(len, message) {
    -    return this._addCheck({
    -      kind: "length",
    -      value: len,
    -      ...errorUtil.errToObj(message)
    -    });
    -  }
    -  /**
    -   * @deprecated Use z.string().min(1) instead.
    -   * @see {@link ZodString.min}
    -   */
    -  nonempty(message) {
    -    return this.min(1, errorUtil.errToObj(message));
    -  }
    -  trim() {
    -    return new _ZodString({
    -      ...this._def,
    -      checks: [...this._def.checks, { kind: "trim" }]
    -    });
    -  }
    -  toLowerCase() {
    -    return new _ZodString({
    -      ...this._def,
    -      checks: [...this._def.checks, { kind: "toLowerCase" }]
    -    });
    -  }
    -  toUpperCase() {
    -    return new _ZodString({
    -      ...this._def,
    -      checks: [...this._def.checks, { kind: "toUpperCase" }]
    -    });
    -  }
    -  get isDatetime() {
    -    return !!this._def.checks.find((ch) => ch.kind === "datetime");
    -  }
    -  get isEmail() {
    -    return !!this._def.checks.find((ch) => ch.kind === "email");
    -  }
    -  get isURL() {
    -    return !!this._def.checks.find((ch) => ch.kind === "url");
    -  }
    -  get isEmoji() {
    -    return !!this._def.checks.find((ch) => ch.kind === "emoji");
    -  }
    -  get isUUID() {
    -    return !!this._def.checks.find((ch) => ch.kind === "uuid");
    -  }
    -  get isCUID() {
    -    return !!this._def.checks.find((ch) => ch.kind === "cuid");
    -  }
    -  get isCUID2() {
    -    return !!this._def.checks.find((ch) => ch.kind === "cuid2");
    -  }
    -  get isULID() {
    -    return !!this._def.checks.find((ch) => ch.kind === "ulid");
    -  }
    -  get isIP() {
    -    return !!this._def.checks.find((ch) => ch.kind === "ip");
    -  }
    -  get minLength() {
    -    let min2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "min") {
    -        if (min2 === null || ch.value > min2)
    -          min2 = ch.value;
    -      }
    -    }
    -    return min2;
    -  }
    -  get maxLength() {
    -    let max2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "max") {
    -        if (max2 === null || ch.value < max2)
    -          max2 = ch.value;
    -      }
    -    }
    -    return max2;
    -  }
    -};
    -ZodString.create = (params) => {
    -  var _a;
    -  return new ZodString({
    -    checks: [],
    -    typeName: ZodFirstPartyTypeKind.ZodString,
    -    coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
    -    ...processCreateParams(params)
    -  });
    -};
    -function floatSafeRemainder(val, step) {
    -  const valDecCount = (val.toString().split(".")[1] || "").length;
    -  const stepDecCount = (step.toString().split(".")[1] || "").length;
    -  const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
    -  const valInt = parseInt(val.toFixed(decCount).replace(".", ""));
    -  const stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
    -  return valInt % stepInt / Math.pow(10, decCount);
    -}
    -var ZodNumber = class _ZodNumber extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this.min = this.gte;
    -    this.max = this.lte;
    -    this.step = this.multipleOf;
    -  }
    -  _parse(input) {
    -    if (this._def.coerce) {
    -      input.data = Number(input.data);
    -    }
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.number) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx2, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.number,
    -        received: ctx2.parsedType
    -      });
    -      return INVALID;
    -    }
    -    let ctx = void 0;
    -    const status = new ParseStatus();
    -    for (const check of this._def.checks) {
    -      if (check.kind === "int") {
    -        if (!util.isInteger(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.invalid_type,
    -            expected: "integer",
    -            received: "float",
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "min") {
    -        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
    -        if (tooSmall) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_small,
    -            minimum: check.value,
    -            type: "number",
    -            inclusive: check.inclusive,
    -            exact: false,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "max") {
    -        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
    -        if (tooBig) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_big,
    -            maximum: check.value,
    -            type: "number",
    -            inclusive: check.inclusive,
    -            exact: false,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "multipleOf") {
    -        if (floatSafeRemainder(input.data, check.value) !== 0) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.not_multiple_of,
    -            multipleOf: check.value,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "finite") {
    -        if (!Number.isFinite(input.data)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.not_finite,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else {
    -        util.assertNever(check);
    -      }
    -    }
    -    return { status: status.value, value: input.data };
    -  }
    -  gte(value, message) {
    -    return this.setLimit("min", value, true, errorUtil.toString(message));
    -  }
    -  gt(value, message) {
    -    return this.setLimit("min", value, false, errorUtil.toString(message));
    -  }
    -  lte(value, message) {
    -    return this.setLimit("max", value, true, errorUtil.toString(message));
    -  }
    -  lt(value, message) {
    -    return this.setLimit("max", value, false, errorUtil.toString(message));
    -  }
    -  setLimit(kind, value, inclusive, message) {
    -    return new _ZodNumber({
    -      ...this._def,
    -      checks: [
    -        ...this._def.checks,
    -        {
    -          kind,
    -          value,
    -          inclusive,
    -          message: errorUtil.toString(message)
    -        }
    -      ]
    -    });
    -  }
    -  _addCheck(check) {
    -    return new _ZodNumber({
    -      ...this._def,
    -      checks: [...this._def.checks, check]
    -    });
    -  }
    -  int(message) {
    -    return this._addCheck({
    -      kind: "int",
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  positive(message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: 0,
    -      inclusive: false,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  negative(message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: 0,
    -      inclusive: false,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  nonpositive(message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: 0,
    -      inclusive: true,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  nonnegative(message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: 0,
    -      inclusive: true,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  multipleOf(value, message) {
    -    return this._addCheck({
    -      kind: "multipleOf",
    -      value,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  finite(message) {
    -    return this._addCheck({
    -      kind: "finite",
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  safe(message) {
    -    return this._addCheck({
    -      kind: "min",
    -      inclusive: true,
    -      value: Number.MIN_SAFE_INTEGER,
    -      message: errorUtil.toString(message)
    -    })._addCheck({
    -      kind: "max",
    -      inclusive: true,
    -      value: Number.MAX_SAFE_INTEGER,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  get minValue() {
    -    let min2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "min") {
    -        if (min2 === null || ch.value > min2)
    -          min2 = ch.value;
    -      }
    -    }
    -    return min2;
    -  }
    -  get maxValue() {
    -    let max2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "max") {
    -        if (max2 === null || ch.value < max2)
    -          max2 = ch.value;
    -      }
    -    }
    -    return max2;
    -  }
    -  get isInt() {
    -    return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
    -  }
    -  get isFinite() {
    -    let max2 = null, min2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
    -        return true;
    -      } else if (ch.kind === "min") {
    -        if (min2 === null || ch.value > min2)
    -          min2 = ch.value;
    -      } else if (ch.kind === "max") {
    -        if (max2 === null || ch.value < max2)
    -          max2 = ch.value;
    -      }
    -    }
    -    return Number.isFinite(min2) && Number.isFinite(max2);
    -  }
    -};
    -ZodNumber.create = (params) => {
    -  return new ZodNumber({
    -    checks: [],
    -    typeName: ZodFirstPartyTypeKind.ZodNumber,
    -    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodBigInt = class _ZodBigInt extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this.min = this.gte;
    -    this.max = this.lte;
    -  }
    -  _parse(input) {
    -    if (this._def.coerce) {
    -      input.data = BigInt(input.data);
    -    }
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.bigint) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx2, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.bigint,
    -        received: ctx2.parsedType
    -      });
    -      return INVALID;
    -    }
    -    let ctx = void 0;
    -    const status = new ParseStatus();
    -    for (const check of this._def.checks) {
    -      if (check.kind === "min") {
    -        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
    -        if (tooSmall) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_small,
    -            type: "bigint",
    -            minimum: check.value,
    -            inclusive: check.inclusive,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "max") {
    -        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
    -        if (tooBig) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_big,
    -            type: "bigint",
    -            maximum: check.value,
    -            inclusive: check.inclusive,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "multipleOf") {
    -        if (input.data % check.value !== BigInt(0)) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.not_multiple_of,
    -            multipleOf: check.value,
    -            message: check.message
    -          });
    -          status.dirty();
    -        }
    -      } else {
    -        util.assertNever(check);
    -      }
    -    }
    -    return { status: status.value, value: input.data };
    -  }
    -  gte(value, message) {
    -    return this.setLimit("min", value, true, errorUtil.toString(message));
    -  }
    -  gt(value, message) {
    -    return this.setLimit("min", value, false, errorUtil.toString(message));
    -  }
    -  lte(value, message) {
    -    return this.setLimit("max", value, true, errorUtil.toString(message));
    -  }
    -  lt(value, message) {
    -    return this.setLimit("max", value, false, errorUtil.toString(message));
    -  }
    -  setLimit(kind, value, inclusive, message) {
    -    return new _ZodBigInt({
    -      ...this._def,
    -      checks: [
    -        ...this._def.checks,
    -        {
    -          kind,
    -          value,
    -          inclusive,
    -          message: errorUtil.toString(message)
    -        }
    -      ]
    -    });
    -  }
    -  _addCheck(check) {
    -    return new _ZodBigInt({
    -      ...this._def,
    -      checks: [...this._def.checks, check]
    -    });
    -  }
    -  positive(message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: BigInt(0),
    -      inclusive: false,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  negative(message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: BigInt(0),
    -      inclusive: false,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  nonpositive(message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: BigInt(0),
    -      inclusive: true,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  nonnegative(message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: BigInt(0),
    -      inclusive: true,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  multipleOf(value, message) {
    -    return this._addCheck({
    -      kind: "multipleOf",
    -      value,
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  get minValue() {
    -    let min2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "min") {
    -        if (min2 === null || ch.value > min2)
    -          min2 = ch.value;
    -      }
    -    }
    -    return min2;
    -  }
    -  get maxValue() {
    -    let max2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "max") {
    -        if (max2 === null || ch.value < max2)
    -          max2 = ch.value;
    -      }
    -    }
    -    return max2;
    -  }
    -};
    -ZodBigInt.create = (params) => {
    -  var _a;
    -  return new ZodBigInt({
    -    checks: [],
    -    typeName: ZodFirstPartyTypeKind.ZodBigInt,
    -    coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodBoolean = class extends ZodType {
    -  _parse(input) {
    -    if (this._def.coerce) {
    -      input.data = Boolean(input.data);
    -    }
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.boolean) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.boolean,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -};
    -ZodBoolean.create = (params) => {
    -  return new ZodBoolean({
    -    typeName: ZodFirstPartyTypeKind.ZodBoolean,
    -    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodDate = class _ZodDate extends ZodType {
    -  _parse(input) {
    -    if (this._def.coerce) {
    -      input.data = new Date(input.data);
    -    }
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.date) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx2, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.date,
    -        received: ctx2.parsedType
    -      });
    -      return INVALID;
    -    }
    -    if (isNaN(input.data.getTime())) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx2, {
    -        code: ZodIssueCode.invalid_date
    -      });
    -      return INVALID;
    -    }
    -    const status = new ParseStatus();
    -    let ctx = void 0;
    -    for (const check of this._def.checks) {
    -      if (check.kind === "min") {
    -        if (input.data.getTime() < check.value) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_small,
    -            message: check.message,
    -            inclusive: true,
    -            exact: false,
    -            minimum: check.value,
    -            type: "date"
    -          });
    -          status.dirty();
    -        }
    -      } else if (check.kind === "max") {
    -        if (input.data.getTime() > check.value) {
    -          ctx = this._getOrReturnCtx(input, ctx);
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.too_big,
    -            message: check.message,
    -            inclusive: true,
    -            exact: false,
    -            maximum: check.value,
    -            type: "date"
    -          });
    -          status.dirty();
    -        }
    -      } else {
    -        util.assertNever(check);
    -      }
    -    }
    -    return {
    -      status: status.value,
    -      value: new Date(input.data.getTime())
    -    };
    -  }
    -  _addCheck(check) {
    -    return new _ZodDate({
    -      ...this._def,
    -      checks: [...this._def.checks, check]
    -    });
    -  }
    -  min(minDate, message) {
    -    return this._addCheck({
    -      kind: "min",
    -      value: minDate.getTime(),
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  max(maxDate, message) {
    -    return this._addCheck({
    -      kind: "max",
    -      value: maxDate.getTime(),
    -      message: errorUtil.toString(message)
    -    });
    -  }
    -  get minDate() {
    -    let min2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "min") {
    -        if (min2 === null || ch.value > min2)
    -          min2 = ch.value;
    -      }
    -    }
    -    return min2 != null ? new Date(min2) : null;
    -  }
    -  get maxDate() {
    -    let max2 = null;
    -    for (const ch of this._def.checks) {
    -      if (ch.kind === "max") {
    -        if (max2 === null || ch.value < max2)
    -          max2 = ch.value;
    -      }
    -    }
    -    return max2 != null ? new Date(max2) : null;
    -  }
    -};
    -ZodDate.create = (params) => {
    -  return new ZodDate({
    -    checks: [],
    -    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    -    typeName: ZodFirstPartyTypeKind.ZodDate,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodSymbol = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.symbol) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.symbol,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -};
    -ZodSymbol.create = (params) => {
    -  return new ZodSymbol({
    -    typeName: ZodFirstPartyTypeKind.ZodSymbol,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodUndefined = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.undefined) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.undefined,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -};
    -ZodUndefined.create = (params) => {
    -  return new ZodUndefined({
    -    typeName: ZodFirstPartyTypeKind.ZodUndefined,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodNull = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.null) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.null,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -};
    -ZodNull.create = (params) => {
    -  return new ZodNull({
    -    typeName: ZodFirstPartyTypeKind.ZodNull,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodAny = class extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this._any = true;
    -  }
    -  _parse(input) {
    -    return OK(input.data);
    -  }
    -};
    -ZodAny.create = (params) => {
    -  return new ZodAny({
    -    typeName: ZodFirstPartyTypeKind.ZodAny,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodUnknown = class extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this._unknown = true;
    -  }
    -  _parse(input) {
    -    return OK(input.data);
    -  }
    -};
    -ZodUnknown.create = (params) => {
    -  return new ZodUnknown({
    -    typeName: ZodFirstPartyTypeKind.ZodUnknown,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodNever = class extends ZodType {
    -  _parse(input) {
    -    const ctx = this._getOrReturnCtx(input);
    -    addIssueToContext(ctx, {
    -      code: ZodIssueCode.invalid_type,
    -      expected: ZodParsedType.never,
    -      received: ctx.parsedType
    -    });
    -    return INVALID;
    -  }
    -};
    -ZodNever.create = (params) => {
    -  return new ZodNever({
    -    typeName: ZodFirstPartyTypeKind.ZodNever,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodVoid = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.undefined) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.void,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -};
    -ZodVoid.create = (params) => {
    -  return new ZodVoid({
    -    typeName: ZodFirstPartyTypeKind.ZodVoid,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodArray = class _ZodArray extends ZodType {
    -  _parse(input) {
    -    const { ctx, status } = this._processInputParams(input);
    -    const def = this._def;
    -    if (ctx.parsedType !== ZodParsedType.array) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.array,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    if (def.exactLength !== null) {
    -      const tooBig = ctx.data.length > def.exactLength.value;
    -      const tooSmall = ctx.data.length < def.exactLength.value;
    -      if (tooBig || tooSmall) {
    -        addIssueToContext(ctx, {
    -          code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
    -          minimum: tooSmall ? def.exactLength.value : void 0,
    -          maximum: tooBig ? def.exactLength.value : void 0,
    -          type: "array",
    -          inclusive: true,
    -          exact: true,
    -          message: def.exactLength.message
    -        });
    -        status.dirty();
    -      }
    -    }
    -    if (def.minLength !== null) {
    -      if (ctx.data.length < def.minLength.value) {
    -        addIssueToContext(ctx, {
    -          code: ZodIssueCode.too_small,
    -          minimum: def.minLength.value,
    -          type: "array",
    -          inclusive: true,
    -          exact: false,
    -          message: def.minLength.message
    -        });
    -        status.dirty();
    -      }
    -    }
    -    if (def.maxLength !== null) {
    -      if (ctx.data.length > def.maxLength.value) {
    -        addIssueToContext(ctx, {
    -          code: ZodIssueCode.too_big,
    -          maximum: def.maxLength.value,
    -          type: "array",
    -          inclusive: true,
    -          exact: false,
    -          message: def.maxLength.message
    -        });
    -        status.dirty();
    -      }
    -    }
    -    if (ctx.common.async) {
    -      return Promise.all([...ctx.data].map((item, i) => {
    -        return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));
    -      })).then((result2) => {
    -        return ParseStatus.mergeArray(status, result2);
    -      });
    -    }
    -    const result = [...ctx.data].map((item, i) => {
    -      return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));
    -    });
    -    return ParseStatus.mergeArray(status, result);
    -  }
    -  get element() {
    -    return this._def.type;
    -  }
    -  min(minLength, message) {
    -    return new _ZodArray({
    -      ...this._def,
    -      minLength: { value: minLength, message: errorUtil.toString(message) }
    -    });
    -  }
    -  max(maxLength, message) {
    -    return new _ZodArray({
    -      ...this._def,
    -      maxLength: { value: maxLength, message: errorUtil.toString(message) }
    -    });
    -  }
    -  length(len, message) {
    -    return new _ZodArray({
    -      ...this._def,
    -      exactLength: { value: len, message: errorUtil.toString(message) }
    -    });
    -  }
    -  nonempty(message) {
    -    return this.min(1, message);
    -  }
    -};
    -ZodArray.create = (schema3, params) => {
    -  return new ZodArray({
    -    type: schema3,
    -    minLength: null,
    -    maxLength: null,
    -    exactLength: null,
    -    typeName: ZodFirstPartyTypeKind.ZodArray,
    -    ...processCreateParams(params)
    -  });
    -};
    -function deepPartialify(schema3) {
    -  if (schema3 instanceof ZodObject) {
    -    const newShape = {};
    -    for (const key in schema3.shape) {
    -      const fieldSchema = schema3.shape[key];
    -      newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
    -    }
    -    return new ZodObject({
    -      ...schema3._def,
    -      shape: () => newShape
    -    });
    -  } else if (schema3 instanceof ZodArray) {
    -    return new ZodArray({
    -      ...schema3._def,
    -      type: deepPartialify(schema3.element)
    -    });
    -  } else if (schema3 instanceof ZodOptional) {
    -    return ZodOptional.create(deepPartialify(schema3.unwrap()));
    -  } else if (schema3 instanceof ZodNullable) {
    -    return ZodNullable.create(deepPartialify(schema3.unwrap()));
    -  } else if (schema3 instanceof ZodTuple) {
    -    return ZodTuple.create(schema3.items.map((item) => deepPartialify(item)));
    -  } else {
    -    return schema3;
    -  }
    -}
    -var ZodObject = class _ZodObject extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this._cached = null;
    -    this.nonstrict = this.passthrough;
    -    this.augment = this.extend;
    -  }
    -  _getCached() {
    -    if (this._cached !== null)
    -      return this._cached;
    -    const shape = this._def.shape();
    -    const keys = util.objectKeys(shape);
    -    return this._cached = { shape, keys };
    -  }
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.object) {
    -      const ctx2 = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx2, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.object,
    -        received: ctx2.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const { status, ctx } = this._processInputParams(input);
    -    const { shape, keys: shapeKeys } = this._getCached();
    -    const extraKeys = [];
    -    if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
    -      for (const key in ctx.data) {
    -        if (!shapeKeys.includes(key)) {
    -          extraKeys.push(key);
    -        }
    -      }
    -    }
    -    const pairs2 = [];
    -    for (const key of shapeKeys) {
    -      const keyValidator = shape[key];
    -      const value = ctx.data[key];
    -      pairs2.push({
    -        key: { status: "valid", value: key },
    -        value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),
    -        alwaysSet: key in ctx.data
    -      });
    -    }
    -    if (this._def.catchall instanceof ZodNever) {
    -      const unknownKeys = this._def.unknownKeys;
    -      if (unknownKeys === "passthrough") {
    -        for (const key of extraKeys) {
    -          pairs2.push({
    -            key: { status: "valid", value: key },
    -            value: { status: "valid", value: ctx.data[key] }
    -          });
    -        }
    -      } else if (unknownKeys === "strict") {
    -        if (extraKeys.length > 0) {
    -          addIssueToContext(ctx, {
    -            code: ZodIssueCode.unrecognized_keys,
    -            keys: extraKeys
    -          });
    -          status.dirty();
    -        }
    -      } else if (unknownKeys === "strip")
    -        ;
    -      else {
    -        throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
    -      }
    -    } else {
    -      const catchall = this._def.catchall;
    -      for (const key of extraKeys) {
    -        const value = ctx.data[key];
    -        pairs2.push({
    -          key: { status: "valid", value: key },
    -          value: catchall._parse(
    -            new ParseInputLazyPath(ctx, value, ctx.path, key)
    -            //, ctx.child(key), value, getParsedType(value)
    -          ),
    -          alwaysSet: key in ctx.data
    -        });
    -      }
    -    }
    -    if (ctx.common.async) {
    -      return Promise.resolve().then(async () => {
    -        const syncPairs = [];
    -        for (const pair of pairs2) {
    -          const key = await pair.key;
    -          syncPairs.push({
    -            key,
    -            value: await pair.value,
    -            alwaysSet: pair.alwaysSet
    -          });
    -        }
    -        return syncPairs;
    -      }).then((syncPairs) => {
    -        return ParseStatus.mergeObjectSync(status, syncPairs);
    -      });
    -    } else {
    -      return ParseStatus.mergeObjectSync(status, pairs2);
    -    }
    -  }
    -  get shape() {
    -    return this._def.shape();
    -  }
    -  strict(message) {
    -    errorUtil.errToObj;
    -    return new _ZodObject({
    -      ...this._def,
    -      unknownKeys: "strict",
    -      ...message !== void 0 ? {
    -        errorMap: (issue, ctx) => {
    -          var _a, _b, _c, _d;
    -          const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
    -          if (issue.code === "unrecognized_keys")
    -            return {
    -              message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError
    -            };
    -          return {
    -            message: defaultError
    -          };
    -        }
    -      } : {}
    -    });
    -  }
    -  strip() {
    -    return new _ZodObject({
    -      ...this._def,
    -      unknownKeys: "strip"
    -    });
    -  }
    -  passthrough() {
    -    return new _ZodObject({
    -      ...this._def,
    -      unknownKeys: "passthrough"
    -    });
    -  }
    -  // const AugmentFactory =
    -  //   (def: Def) =>
    -  //   (
    -  //     augmentation: Augmentation
    -  //   ): ZodObject<
    -  //     extendShape, Augmentation>,
    -  //     Def["unknownKeys"],
    -  //     Def["catchall"]
    -  //   > => {
    -  //     return new ZodObject({
    -  //       ...def,
    -  //       shape: () => ({
    -  //         ...def.shape(),
    -  //         ...augmentation,
    -  //       }),
    -  //     }) as any;
    -  //   };
    -  extend(augmentation) {
    -    return new _ZodObject({
    -      ...this._def,
    -      shape: () => ({
    -        ...this._def.shape(),
    -        ...augmentation
    -      })
    -    });
    -  }
    -  /**
    -   * Prior to zod@1.0.12 there was a bug in the
    -   * inferred type of merged objects. Please
    -   * upgrade if you are experiencing issues.
    -   */
    -  merge(merging) {
    -    const merged = new _ZodObject({
    -      unknownKeys: merging._def.unknownKeys,
    -      catchall: merging._def.catchall,
    -      shape: () => ({
    -        ...this._def.shape(),
    -        ...merging._def.shape()
    -      }),
    -      typeName: ZodFirstPartyTypeKind.ZodObject
    -    });
    -    return merged;
    -  }
    -  // merge<
    -  //   Incoming extends AnyZodObject,
    -  //   Augmentation extends Incoming["shape"],
    -  //   NewOutput extends {
    -  //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
    -  //       ? Augmentation[k]["_output"]
    -  //       : k extends keyof Output
    -  //       ? Output[k]
    -  //       : never;
    -  //   },
    -  //   NewInput extends {
    -  //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
    -  //       ? Augmentation[k]["_input"]
    -  //       : k extends keyof Input
    -  //       ? Input[k]
    -  //       : never;
    -  //   }
    -  // >(
    -  //   merging: Incoming
    -  // ): ZodObject<
    -  //   extendShape>,
    -  //   Incoming["_def"]["unknownKeys"],
    -  //   Incoming["_def"]["catchall"],
    -  //   NewOutput,
    -  //   NewInput
    -  // > {
    -  //   const merged: any = new ZodObject({
    -  //     unknownKeys: merging._def.unknownKeys,
    -  //     catchall: merging._def.catchall,
    -  //     shape: () =>
    -  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
    -  //     typeName: ZodFirstPartyTypeKind.ZodObject,
    -  //   }) as any;
    -  //   return merged;
    -  // }
    -  setKey(key, schema3) {
    -    return this.augment({ [key]: schema3 });
    -  }
    -  // merge(
    -  //   merging: Incoming
    -  // ): //ZodObject = (merging) => {
    -  // ZodObject<
    -  //   extendShape>,
    -  //   Incoming["_def"]["unknownKeys"],
    -  //   Incoming["_def"]["catchall"]
    -  // > {
    -  //   // const mergedShape = objectUtil.mergeShapes(
    -  //   //   this._def.shape(),
    -  //   //   merging._def.shape()
    -  //   // );
    -  //   const merged: any = new ZodObject({
    -  //     unknownKeys: merging._def.unknownKeys,
    -  //     catchall: merging._def.catchall,
    -  //     shape: () =>
    -  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
    -  //     typeName: ZodFirstPartyTypeKind.ZodObject,
    -  //   }) as any;
    -  //   return merged;
    -  // }
    -  catchall(index) {
    -    return new _ZodObject({
    -      ...this._def,
    -      catchall: index
    -    });
    -  }
    -  pick(mask) {
    -    const shape = {};
    -    util.objectKeys(mask).forEach((key) => {
    -      if (mask[key] && this.shape[key]) {
    -        shape[key] = this.shape[key];
    -      }
    -    });
    -    return new _ZodObject({
    -      ...this._def,
    -      shape: () => shape
    -    });
    -  }
    -  omit(mask) {
    -    const shape = {};
    -    util.objectKeys(this.shape).forEach((key) => {
    -      if (!mask[key]) {
    -        shape[key] = this.shape[key];
    -      }
    -    });
    -    return new _ZodObject({
    -      ...this._def,
    -      shape: () => shape
    -    });
    -  }
    -  /**
    -   * @deprecated
    -   */
    -  deepPartial() {
    -    return deepPartialify(this);
    -  }
    -  partial(mask) {
    -    const newShape = {};
    -    util.objectKeys(this.shape).forEach((key) => {
    -      const fieldSchema = this.shape[key];
    -      if (mask && !mask[key]) {
    -        newShape[key] = fieldSchema;
    -      } else {
    -        newShape[key] = fieldSchema.optional();
    -      }
    -    });
    -    return new _ZodObject({
    -      ...this._def,
    -      shape: () => newShape
    -    });
    -  }
    -  required(mask) {
    -    const newShape = {};
    -    util.objectKeys(this.shape).forEach((key) => {
    -      if (mask && !mask[key]) {
    -        newShape[key] = this.shape[key];
    -      } else {
    -        const fieldSchema = this.shape[key];
    -        let newField = fieldSchema;
    -        while (newField instanceof ZodOptional) {
    -          newField = newField._def.innerType;
    -        }
    -        newShape[key] = newField;
    -      }
    -    });
    -    return new _ZodObject({
    -      ...this._def,
    -      shape: () => newShape
    -    });
    -  }
    -  keyof() {
    -    return createZodEnum(util.objectKeys(this.shape));
    -  }
    -};
    -ZodObject.create = (shape, params) => {
    -  return new ZodObject({
    -    shape: () => shape,
    -    unknownKeys: "strip",
    -    catchall: ZodNever.create(),
    -    typeName: ZodFirstPartyTypeKind.ZodObject,
    -    ...processCreateParams(params)
    -  });
    -};
    -ZodObject.strictCreate = (shape, params) => {
    -  return new ZodObject({
    -    shape: () => shape,
    -    unknownKeys: "strict",
    -    catchall: ZodNever.create(),
    -    typeName: ZodFirstPartyTypeKind.ZodObject,
    -    ...processCreateParams(params)
    -  });
    -};
    -ZodObject.lazycreate = (shape, params) => {
    -  return new ZodObject({
    -    shape,
    -    unknownKeys: "strip",
    -    catchall: ZodNever.create(),
    -    typeName: ZodFirstPartyTypeKind.ZodObject,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodUnion = class extends ZodType {
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    const options2 = this._def.options;
    -    function handleResults(results) {
    -      for (const result of results) {
    -        if (result.result.status === "valid") {
    -          return result.result;
    -        }
    -      }
    -      for (const result of results) {
    -        if (result.result.status === "dirty") {
    -          ctx.common.issues.push(...result.ctx.common.issues);
    -          return result.result;
    -        }
    -      }
    -      const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_union,
    -        unionErrors
    -      });
    -      return INVALID;
    -    }
    -    if (ctx.common.async) {
    -      return Promise.all(options2.map(async (option) => {
    -        const childCtx = {
    -          ...ctx,
    -          common: {
    -            ...ctx.common,
    -            issues: []
    -          },
    -          parent: null
    -        };
    -        return {
    -          result: await option._parseAsync({
    -            data: ctx.data,
    -            path: ctx.path,
    -            parent: childCtx
    -          }),
    -          ctx: childCtx
    -        };
    -      })).then(handleResults);
    -    } else {
    -      let dirty = void 0;
    -      const issues = [];
    -      for (const option of options2) {
    -        const childCtx = {
    -          ...ctx,
    -          common: {
    -            ...ctx.common,
    -            issues: []
    -          },
    -          parent: null
    -        };
    -        const result = option._parseSync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: childCtx
    -        });
    -        if (result.status === "valid") {
    -          return result;
    -        } else if (result.status === "dirty" && !dirty) {
    -          dirty = { result, ctx: childCtx };
    -        }
    -        if (childCtx.common.issues.length) {
    -          issues.push(childCtx.common.issues);
    -        }
    -      }
    -      if (dirty) {
    -        ctx.common.issues.push(...dirty.ctx.common.issues);
    -        return dirty.result;
    -      }
    -      const unionErrors = issues.map((issues2) => new ZodError(issues2));
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_union,
    -        unionErrors
    -      });
    -      return INVALID;
    -    }
    -  }
    -  get options() {
    -    return this._def.options;
    -  }
    -};
    -ZodUnion.create = (types2, params) => {
    -  return new ZodUnion({
    -    options: types2,
    -    typeName: ZodFirstPartyTypeKind.ZodUnion,
    -    ...processCreateParams(params)
    -  });
    -};
    -var getDiscriminator = (type2) => {
    -  if (type2 instanceof ZodLazy) {
    -    return getDiscriminator(type2.schema);
    -  } else if (type2 instanceof ZodEffects) {
    -    return getDiscriminator(type2.innerType());
    -  } else if (type2 instanceof ZodLiteral) {
    -    return [type2.value];
    -  } else if (type2 instanceof ZodEnum) {
    -    return type2.options;
    -  } else if (type2 instanceof ZodNativeEnum) {
    -    return Object.keys(type2.enum);
    -  } else if (type2 instanceof ZodDefault) {
    -    return getDiscriminator(type2._def.innerType);
    -  } else if (type2 instanceof ZodUndefined) {
    -    return [void 0];
    -  } else if (type2 instanceof ZodNull) {
    -    return [null];
    -  } else {
    -    return null;
    -  }
    -};
    -var ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType {
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.object) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.object,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const discriminator = this.discriminator;
    -    const discriminatorValue = ctx.data[discriminator];
    -    const option = this.optionsMap.get(discriminatorValue);
    -    if (!option) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_union_discriminator,
    -        options: Array.from(this.optionsMap.keys()),
    -        path: [discriminator]
    -      });
    -      return INVALID;
    -    }
    -    if (ctx.common.async) {
    -      return option._parseAsync({
    -        data: ctx.data,
    -        path: ctx.path,
    -        parent: ctx
    -      });
    -    } else {
    -      return option._parseSync({
    -        data: ctx.data,
    -        path: ctx.path,
    -        parent: ctx
    -      });
    -    }
    -  }
    -  get discriminator() {
    -    return this._def.discriminator;
    -  }
    -  get options() {
    -    return this._def.options;
    -  }
    -  get optionsMap() {
    -    return this._def.optionsMap;
    -  }
    -  /**
    -   * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
    -   * However, it only allows a union of objects, all of which need to share a discriminator property. This property must
    -   * have a different value for each object in the union.
    -   * @param discriminator the name of the discriminator property
    -   * @param types an array of object schemas
    -   * @param params
    -   */
    -  static create(discriminator, options2, params) {
    -    const optionsMap = /* @__PURE__ */ new Map();
    -    for (const type2 of options2) {
    -      const discriminatorValues = getDiscriminator(type2.shape[discriminator]);
    -      if (!discriminatorValues) {
    -        throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
    -      }
    -      for (const value of discriminatorValues) {
    -        if (optionsMap.has(value)) {
    -          throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
    -        }
    -        optionsMap.set(value, type2);
    -      }
    -    }
    -    return new _ZodDiscriminatedUnion({
    -      typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
    -      discriminator,
    -      options: options2,
    -      optionsMap,
    -      ...processCreateParams(params)
    -    });
    -  }
    -};
    -function mergeValues(a, b) {
    -  const aType = getParsedType(a);
    -  const bType = getParsedType(b);
    -  if (a === b) {
    -    return { valid: true, data: a };
    -  } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
    -    const bKeys = util.objectKeys(b);
    -    const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
    -    const newObj = { ...a, ...b };
    -    for (const key of sharedKeys) {
    -      const sharedValue = mergeValues(a[key], b[key]);
    -      if (!sharedValue.valid) {
    -        return { valid: false };
    -      }
    -      newObj[key] = sharedValue.data;
    -    }
    -    return { valid: true, data: newObj };
    -  } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {
    -    if (a.length !== b.length) {
    -      return { valid: false };
    -    }
    -    const newArray = [];
    -    for (let index = 0; index < a.length; index++) {
    -      const itemA = a[index];
    -      const itemB = b[index];
    -      const sharedValue = mergeValues(itemA, itemB);
    -      if (!sharedValue.valid) {
    -        return { valid: false };
    -      }
    -      newArray.push(sharedValue.data);
    -    }
    -    return { valid: true, data: newArray };
    -  } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {
    -    return { valid: true, data: a };
    -  } else {
    -    return { valid: false };
    -  }
    -}
    -var ZodIntersection = class extends ZodType {
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    const handleParsed = (parsedLeft, parsedRight) => {
    -      if (isAborted(parsedLeft) || isAborted(parsedRight)) {
    -        return INVALID;
    -      }
    -      const merged = mergeValues(parsedLeft.value, parsedRight.value);
    -      if (!merged.valid) {
    -        addIssueToContext(ctx, {
    -          code: ZodIssueCode.invalid_intersection_types
    -        });
    -        return INVALID;
    -      }
    -      if (isDirty(parsedLeft) || isDirty(parsedRight)) {
    -        status.dirty();
    -      }
    -      return { status: status.value, value: merged.data };
    -    };
    -    if (ctx.common.async) {
    -      return Promise.all([
    -        this._def.left._parseAsync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: ctx
    -        }),
    -        this._def.right._parseAsync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: ctx
    -        })
    -      ]).then(([left, right]) => handleParsed(left, right));
    -    } else {
    -      return handleParsed(this._def.left._parseSync({
    -        data: ctx.data,
    -        path: ctx.path,
    -        parent: ctx
    -      }), this._def.right._parseSync({
    -        data: ctx.data,
    -        path: ctx.path,
    -        parent: ctx
    -      }));
    -    }
    -  }
    -};
    -ZodIntersection.create = (left, right, params) => {
    -  return new ZodIntersection({
    -    left,
    -    right,
    -    typeName: ZodFirstPartyTypeKind.ZodIntersection,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodTuple = class _ZodTuple extends ZodType {
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.array) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.array,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    if (ctx.data.length < this._def.items.length) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.too_small,
    -        minimum: this._def.items.length,
    -        inclusive: true,
    -        exact: false,
    -        type: "array"
    -      });
    -      return INVALID;
    -    }
    -    const rest = this._def.rest;
    -    if (!rest && ctx.data.length > this._def.items.length) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.too_big,
    -        maximum: this._def.items.length,
    -        inclusive: true,
    -        exact: false,
    -        type: "array"
    -      });
    -      status.dirty();
    -    }
    -    const items = [...ctx.data].map((item, itemIndex) => {
    -      const schema3 = this._def.items[itemIndex] || this._def.rest;
    -      if (!schema3)
    -        return null;
    -      return schema3._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
    -    }).filter((x) => !!x);
    -    if (ctx.common.async) {
    -      return Promise.all(items).then((results) => {
    -        return ParseStatus.mergeArray(status, results);
    -      });
    -    } else {
    -      return ParseStatus.mergeArray(status, items);
    -    }
    -  }
    -  get items() {
    -    return this._def.items;
    -  }
    -  rest(rest) {
    -    return new _ZodTuple({
    -      ...this._def,
    -      rest
    -    });
    -  }
    -};
    -ZodTuple.create = (schemas, params) => {
    -  if (!Array.isArray(schemas)) {
    -    throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
    -  }
    -  return new ZodTuple({
    -    items: schemas,
    -    typeName: ZodFirstPartyTypeKind.ZodTuple,
    -    rest: null,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodRecord = class _ZodRecord extends ZodType {
    -  get keySchema() {
    -    return this._def.keyType;
    -  }
    -  get valueSchema() {
    -    return this._def.valueType;
    -  }
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.object) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.object,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const pairs2 = [];
    -    const keyType = this._def.keyType;
    -    const valueType = this._def.valueType;
    -    for (const key in ctx.data) {
    -      pairs2.push({
    -        key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
    -        value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))
    -      });
    -    }
    -    if (ctx.common.async) {
    -      return ParseStatus.mergeObjectAsync(status, pairs2);
    -    } else {
    -      return ParseStatus.mergeObjectSync(status, pairs2);
    -    }
    -  }
    -  get element() {
    -    return this._def.valueType;
    -  }
    -  static create(first, second, third) {
    -    if (second instanceof ZodType) {
    -      return new _ZodRecord({
    -        keyType: first,
    -        valueType: second,
    -        typeName: ZodFirstPartyTypeKind.ZodRecord,
    -        ...processCreateParams(third)
    -      });
    -    }
    -    return new _ZodRecord({
    -      keyType: ZodString.create(),
    -      valueType: first,
    -      typeName: ZodFirstPartyTypeKind.ZodRecord,
    -      ...processCreateParams(second)
    -    });
    -  }
    -};
    -var ZodMap = class extends ZodType {
    -  get keySchema() {
    -    return this._def.keyType;
    -  }
    -  get valueSchema() {
    -    return this._def.valueType;
    -  }
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.map) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.map,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const keyType = this._def.keyType;
    -    const valueType = this._def.valueType;
    -    const pairs2 = [...ctx.data.entries()].map(([key, value], index) => {
    -      return {
    -        key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])),
    -        value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"]))
    -      };
    -    });
    -    if (ctx.common.async) {
    -      const finalMap = /* @__PURE__ */ new Map();
    -      return Promise.resolve().then(async () => {
    -        for (const pair of pairs2) {
    -          const key = await pair.key;
    -          const value = await pair.value;
    -          if (key.status === "aborted" || value.status === "aborted") {
    -            return INVALID;
    -          }
    -          if (key.status === "dirty" || value.status === "dirty") {
    -            status.dirty();
    -          }
    -          finalMap.set(key.value, value.value);
    -        }
    -        return { status: status.value, value: finalMap };
    -      });
    -    } else {
    -      const finalMap = /* @__PURE__ */ new Map();
    -      for (const pair of pairs2) {
    -        const key = pair.key;
    -        const value = pair.value;
    -        if (key.status === "aborted" || value.status === "aborted") {
    -          return INVALID;
    -        }
    -        if (key.status === "dirty" || value.status === "dirty") {
    -          status.dirty();
    -        }
    -        finalMap.set(key.value, value.value);
    -      }
    -      return { status: status.value, value: finalMap };
    -    }
    -  }
    -};
    -ZodMap.create = (keyType, valueType, params) => {
    -  return new ZodMap({
    -    valueType,
    -    keyType,
    -    typeName: ZodFirstPartyTypeKind.ZodMap,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodSet = class _ZodSet extends ZodType {
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.set) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.set,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const def = this._def;
    -    if (def.minSize !== null) {
    -      if (ctx.data.size < def.minSize.value) {
    -        addIssueToContext(ctx, {
    -          code: ZodIssueCode.too_small,
    -          minimum: def.minSize.value,
    -          type: "set",
    -          inclusive: true,
    -          exact: false,
    -          message: def.minSize.message
    -        });
    -        status.dirty();
    -      }
    -    }
    -    if (def.maxSize !== null) {
    -      if (ctx.data.size > def.maxSize.value) {
    -        addIssueToContext(ctx, {
    -          code: ZodIssueCode.too_big,
    -          maximum: def.maxSize.value,
    -          type: "set",
    -          inclusive: true,
    -          exact: false,
    -          message: def.maxSize.message
    -        });
    -        status.dirty();
    -      }
    -    }
    -    const valueType = this._def.valueType;
    -    function finalizeSet(elements2) {
    -      const parsedSet = /* @__PURE__ */ new Set();
    -      for (const element of elements2) {
    -        if (element.status === "aborted")
    -          return INVALID;
    -        if (element.status === "dirty")
    -          status.dirty();
    -        parsedSet.add(element.value);
    -      }
    -      return { status: status.value, value: parsedSet };
    -    }
    -    const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));
    -    if (ctx.common.async) {
    -      return Promise.all(elements).then((elements2) => finalizeSet(elements2));
    -    } else {
    -      return finalizeSet(elements);
    -    }
    -  }
    -  min(minSize, message) {
    -    return new _ZodSet({
    -      ...this._def,
    -      minSize: { value: minSize, message: errorUtil.toString(message) }
    -    });
    -  }
    -  max(maxSize, message) {
    -    return new _ZodSet({
    -      ...this._def,
    -      maxSize: { value: maxSize, message: errorUtil.toString(message) }
    -    });
    -  }
    -  size(size, message) {
    -    return this.min(size, message).max(size, message);
    -  }
    -  nonempty(message) {
    -    return this.min(1, message);
    -  }
    -};
    -ZodSet.create = (valueType, params) => {
    -  return new ZodSet({
    -    valueType,
    -    minSize: null,
    -    maxSize: null,
    -    typeName: ZodFirstPartyTypeKind.ZodSet,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodFunction = class _ZodFunction extends ZodType {
    -  constructor() {
    -    super(...arguments);
    -    this.validate = this.implement;
    -  }
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.function) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.function,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    function makeArgsIssue(args, error) {
    -      return makeIssue({
    -        data: args,
    -        path: ctx.path,
    -        errorMaps: [
    -          ctx.common.contextualErrorMap,
    -          ctx.schemaErrorMap,
    -          getErrorMap(),
    -          errorMap
    -        ].filter((x) => !!x),
    -        issueData: {
    -          code: ZodIssueCode.invalid_arguments,
    -          argumentsError: error
    -        }
    -      });
    -    }
    -    function makeReturnsIssue(returns, error) {
    -      return makeIssue({
    -        data: returns,
    -        path: ctx.path,
    -        errorMaps: [
    -          ctx.common.contextualErrorMap,
    -          ctx.schemaErrorMap,
    -          getErrorMap(),
    -          errorMap
    -        ].filter((x) => !!x),
    -        issueData: {
    -          code: ZodIssueCode.invalid_return_type,
    -          returnTypeError: error
    -        }
    -      });
    -    }
    -    const params = { errorMap: ctx.common.contextualErrorMap };
    -    const fn = ctx.data;
    -    if (this._def.returns instanceof ZodPromise) {
    -      const me = this;
    -      return OK(async function(...args) {
    -        const error = new ZodError([]);
    -        const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {
    -          error.addIssue(makeArgsIssue(args, e));
    -          throw error;
    -        });
    -        const result = await Reflect.apply(fn, this, parsedArgs);
    -        const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {
    -          error.addIssue(makeReturnsIssue(result, e));
    -          throw error;
    -        });
    -        return parsedReturns;
    -      });
    -    } else {
    -      const me = this;
    -      return OK(function(...args) {
    -        const parsedArgs = me._def.args.safeParse(args, params);
    -        if (!parsedArgs.success) {
    -          throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
    -        }
    -        const result = Reflect.apply(fn, this, parsedArgs.data);
    -        const parsedReturns = me._def.returns.safeParse(result, params);
    -        if (!parsedReturns.success) {
    -          throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
    -        }
    -        return parsedReturns.data;
    -      });
    -    }
    -  }
    -  parameters() {
    -    return this._def.args;
    -  }
    -  returnType() {
    -    return this._def.returns;
    -  }
    -  args(...items) {
    -    return new _ZodFunction({
    -      ...this._def,
    -      args: ZodTuple.create(items).rest(ZodUnknown.create())
    -    });
    -  }
    -  returns(returnType) {
    -    return new _ZodFunction({
    -      ...this._def,
    -      returns: returnType
    -    });
    -  }
    -  implement(func) {
    -    const validatedFunc = this.parse(func);
    -    return validatedFunc;
    -  }
    -  strictImplement(func) {
    -    const validatedFunc = this.parse(func);
    -    return validatedFunc;
    -  }
    -  static create(args, returns, params) {
    -    return new _ZodFunction({
    -      args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),
    -      returns: returns || ZodUnknown.create(),
    -      typeName: ZodFirstPartyTypeKind.ZodFunction,
    -      ...processCreateParams(params)
    -    });
    -  }
    -};
    -var ZodLazy = class extends ZodType {
    -  get schema() {
    -    return this._def.getter();
    -  }
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    const lazySchema = this._def.getter();
    -    return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
    -  }
    -};
    -ZodLazy.create = (getter, params) => {
    -  return new ZodLazy({
    -    getter,
    -    typeName: ZodFirstPartyTypeKind.ZodLazy,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodLiteral = class extends ZodType {
    -  _parse(input) {
    -    if (input.data !== this._def.value) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        received: ctx.data,
    -        code: ZodIssueCode.invalid_literal,
    -        expected: this._def.value
    -      });
    -      return INVALID;
    -    }
    -    return { status: "valid", value: input.data };
    -  }
    -  get value() {
    -    return this._def.value;
    -  }
    -};
    -ZodLiteral.create = (value, params) => {
    -  return new ZodLiteral({
    -    value,
    -    typeName: ZodFirstPartyTypeKind.ZodLiteral,
    -    ...processCreateParams(params)
    -  });
    -};
    -function createZodEnum(values2, params) {
    -  return new ZodEnum({
    -    values: values2,
    -    typeName: ZodFirstPartyTypeKind.ZodEnum,
    -    ...processCreateParams(params)
    -  });
    -}
    -var ZodEnum = class _ZodEnum extends ZodType {
    -  _parse(input) {
    -    if (typeof input.data !== "string") {
    -      const ctx = this._getOrReturnCtx(input);
    -      const expectedValues = this._def.values;
    -      addIssueToContext(ctx, {
    -        expected: util.joinValues(expectedValues),
    -        received: ctx.parsedType,
    -        code: ZodIssueCode.invalid_type
    -      });
    -      return INVALID;
    -    }
    -    if (this._def.values.indexOf(input.data) === -1) {
    -      const ctx = this._getOrReturnCtx(input);
    -      const expectedValues = this._def.values;
    -      addIssueToContext(ctx, {
    -        received: ctx.data,
    -        code: ZodIssueCode.invalid_enum_value,
    -        options: expectedValues
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -  get options() {
    -    return this._def.values;
    -  }
    -  get enum() {
    -    const enumValues = {};
    -    for (const val of this._def.values) {
    -      enumValues[val] = val;
    -    }
    -    return enumValues;
    -  }
    -  get Values() {
    -    const enumValues = {};
    -    for (const val of this._def.values) {
    -      enumValues[val] = val;
    -    }
    -    return enumValues;
    -  }
    -  get Enum() {
    -    const enumValues = {};
    -    for (const val of this._def.values) {
    -      enumValues[val] = val;
    -    }
    -    return enumValues;
    -  }
    -  extract(values2) {
    -    return _ZodEnum.create(values2);
    -  }
    -  exclude(values2) {
    -    return _ZodEnum.create(this.options.filter((opt) => !values2.includes(opt)));
    -  }
    -};
    -ZodEnum.create = createZodEnum;
    -var ZodNativeEnum = class extends ZodType {
    -  _parse(input) {
    -    const nativeEnumValues = util.getValidEnumValues(this._def.values);
    -    const ctx = this._getOrReturnCtx(input);
    -    if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
    -      const expectedValues = util.objectValues(nativeEnumValues);
    -      addIssueToContext(ctx, {
    -        expected: util.joinValues(expectedValues),
    -        received: ctx.parsedType,
    -        code: ZodIssueCode.invalid_type
    -      });
    -      return INVALID;
    -    }
    -    if (nativeEnumValues.indexOf(input.data) === -1) {
    -      const expectedValues = util.objectValues(nativeEnumValues);
    -      addIssueToContext(ctx, {
    -        received: ctx.data,
    -        code: ZodIssueCode.invalid_enum_value,
    -        options: expectedValues
    -      });
    -      return INVALID;
    -    }
    -    return OK(input.data);
    -  }
    -  get enum() {
    -    return this._def.values;
    -  }
    -};
    -ZodNativeEnum.create = (values2, params) => {
    -  return new ZodNativeEnum({
    -    values: values2,
    -    typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodPromise = class extends ZodType {
    -  unwrap() {
    -    return this._def.type;
    -  }
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.promise,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
    -    return OK(promisified.then((data) => {
    -      return this._def.type.parseAsync(data, {
    -        path: ctx.path,
    -        errorMap: ctx.common.contextualErrorMap
    -      });
    -    }));
    -  }
    -};
    -ZodPromise.create = (schema3, params) => {
    -  return new ZodPromise({
    -    type: schema3,
    -    typeName: ZodFirstPartyTypeKind.ZodPromise,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodEffects = class extends ZodType {
    -  innerType() {
    -    return this._def.schema;
    -  }
    -  sourceType() {
    -    return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
    -  }
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    const effect = this._def.effect || null;
    -    const checkCtx = {
    -      addIssue: (arg) => {
    -        addIssueToContext(ctx, arg);
    -        if (arg.fatal) {
    -          status.abort();
    -        } else {
    -          status.dirty();
    -        }
    -      },
    -      get path() {
    -        return ctx.path;
    -      }
    -    };
    -    checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
    -    if (effect.type === "preprocess") {
    -      const processed = effect.transform(ctx.data, checkCtx);
    -      if (ctx.common.issues.length) {
    -        return {
    -          status: "dirty",
    -          value: ctx.data
    -        };
    -      }
    -      if (ctx.common.async) {
    -        return Promise.resolve(processed).then((processed2) => {
    -          return this._def.schema._parseAsync({
    -            data: processed2,
    -            path: ctx.path,
    -            parent: ctx
    -          });
    -        });
    -      } else {
    -        return this._def.schema._parseSync({
    -          data: processed,
    -          path: ctx.path,
    -          parent: ctx
    -        });
    -      }
    -    }
    -    if (effect.type === "refinement") {
    -      const executeRefinement = (acc) => {
    -        const result = effect.refinement(acc, checkCtx);
    -        if (ctx.common.async) {
    -          return Promise.resolve(result);
    -        }
    -        if (result instanceof Promise) {
    -          throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
    -        }
    -        return acc;
    -      };
    -      if (ctx.common.async === false) {
    -        const inner = this._def.schema._parseSync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: ctx
    -        });
    -        if (inner.status === "aborted")
    -          return INVALID;
    -        if (inner.status === "dirty")
    -          status.dirty();
    -        executeRefinement(inner.value);
    -        return { status: status.value, value: inner.value };
    -      } else {
    -        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
    -          if (inner.status === "aborted")
    -            return INVALID;
    -          if (inner.status === "dirty")
    -            status.dirty();
    -          return executeRefinement(inner.value).then(() => {
    -            return { status: status.value, value: inner.value };
    -          });
    -        });
    -      }
    -    }
    -    if (effect.type === "transform") {
    -      if (ctx.common.async === false) {
    -        const base = this._def.schema._parseSync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: ctx
    -        });
    -        if (!isValid(base))
    -          return base;
    -        const result = effect.transform(base.value, checkCtx);
    -        if (result instanceof Promise) {
    -          throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);
    -        }
    -        return { status: status.value, value: result };
    -      } else {
    -        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
    -          if (!isValid(base))
    -            return base;
    -          return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));
    -        });
    -      }
    -    }
    -    util.assertNever(effect);
    -  }
    -};
    -ZodEffects.create = (schema3, effect, params) => {
    -  return new ZodEffects({
    -    schema: schema3,
    -    typeName: ZodFirstPartyTypeKind.ZodEffects,
    -    effect,
    -    ...processCreateParams(params)
    -  });
    -};
    -ZodEffects.createWithPreprocess = (preprocess, schema3, params) => {
    -  return new ZodEffects({
    -    schema: schema3,
    -    effect: { type: "preprocess", transform: preprocess },
    -    typeName: ZodFirstPartyTypeKind.ZodEffects,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodOptional = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType === ZodParsedType.undefined) {
    -      return OK(void 0);
    -    }
    -    return this._def.innerType._parse(input);
    -  }
    -  unwrap() {
    -    return this._def.innerType;
    -  }
    -};
    -ZodOptional.create = (type2, params) => {
    -  return new ZodOptional({
    -    innerType: type2,
    -    typeName: ZodFirstPartyTypeKind.ZodOptional,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodNullable = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType === ZodParsedType.null) {
    -      return OK(null);
    -    }
    -    return this._def.innerType._parse(input);
    -  }
    -  unwrap() {
    -    return this._def.innerType;
    -  }
    -};
    -ZodNullable.create = (type2, params) => {
    -  return new ZodNullable({
    -    innerType: type2,
    -    typeName: ZodFirstPartyTypeKind.ZodNullable,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodDefault = class extends ZodType {
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    let data = ctx.data;
    -    if (ctx.parsedType === ZodParsedType.undefined) {
    -      data = this._def.defaultValue();
    -    }
    -    return this._def.innerType._parse({
    -      data,
    -      path: ctx.path,
    -      parent: ctx
    -    });
    -  }
    -  removeDefault() {
    -    return this._def.innerType;
    -  }
    -};
    -ZodDefault.create = (type2, params) => {
    -  return new ZodDefault({
    -    innerType: type2,
    -    typeName: ZodFirstPartyTypeKind.ZodDefault,
    -    defaultValue: typeof params.default === "function" ? params.default : () => params.default,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodCatch = class extends ZodType {
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    const newCtx = {
    -      ...ctx,
    -      common: {
    -        ...ctx.common,
    -        issues: []
    -      }
    -    };
    -    const result = this._def.innerType._parse({
    -      data: newCtx.data,
    -      path: newCtx.path,
    -      parent: {
    -        ...newCtx
    -      }
    -    });
    -    if (isAsync(result)) {
    -      return result.then((result2) => {
    -        return {
    -          status: "valid",
    -          value: result2.status === "valid" ? result2.value : this._def.catchValue({
    -            get error() {
    -              return new ZodError(newCtx.common.issues);
    -            },
    -            input: newCtx.data
    -          })
    -        };
    -      });
    -    } else {
    -      return {
    -        status: "valid",
    -        value: result.status === "valid" ? result.value : this._def.catchValue({
    -          get error() {
    -            return new ZodError(newCtx.common.issues);
    -          },
    -          input: newCtx.data
    -        })
    -      };
    -    }
    -  }
    -  removeCatch() {
    -    return this._def.innerType;
    -  }
    -};
    -ZodCatch.create = (type2, params) => {
    -  return new ZodCatch({
    -    innerType: type2,
    -    typeName: ZodFirstPartyTypeKind.ZodCatch,
    -    catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
    -    ...processCreateParams(params)
    -  });
    -};
    -var ZodNaN = class extends ZodType {
    -  _parse(input) {
    -    const parsedType = this._getType(input);
    -    if (parsedType !== ZodParsedType.nan) {
    -      const ctx = this._getOrReturnCtx(input);
    -      addIssueToContext(ctx, {
    -        code: ZodIssueCode.invalid_type,
    -        expected: ZodParsedType.nan,
    -        received: ctx.parsedType
    -      });
    -      return INVALID;
    -    }
    -    return { status: "valid", value: input.data };
    -  }
    -};
    -ZodNaN.create = (params) => {
    -  return new ZodNaN({
    -    typeName: ZodFirstPartyTypeKind.ZodNaN,
    -    ...processCreateParams(params)
    -  });
    -};
    -var BRAND = Symbol("zod_brand");
    -var ZodBranded = class extends ZodType {
    -  _parse(input) {
    -    const { ctx } = this._processInputParams(input);
    -    const data = ctx.data;
    -    return this._def.type._parse({
    -      data,
    -      path: ctx.path,
    -      parent: ctx
    -    });
    -  }
    -  unwrap() {
    -    return this._def.type;
    -  }
    -};
    -var ZodPipeline = class _ZodPipeline extends ZodType {
    -  _parse(input) {
    -    const { status, ctx } = this._processInputParams(input);
    -    if (ctx.common.async) {
    -      const handleAsync = async () => {
    -        const inResult = await this._def.in._parseAsync({
    -          data: ctx.data,
    -          path: ctx.path,
    -          parent: ctx
    -        });
    -        if (inResult.status === "aborted")
    -          return INVALID;
    -        if (inResult.status === "dirty") {
    -          status.dirty();
    -          return DIRTY(inResult.value);
    -        } else {
    -          return this._def.out._parseAsync({
    -            data: inResult.value,
    -            path: ctx.path,
    -            parent: ctx
    -          });
    -        }
    -      };
    -      return handleAsync();
    -    } else {
    -      const inResult = this._def.in._parseSync({
    -        data: ctx.data,
    -        path: ctx.path,
    -        parent: ctx
    -      });
    -      if (inResult.status === "aborted")
    -        return INVALID;
    -      if (inResult.status === "dirty") {
    -        status.dirty();
    -        return {
    -          status: "dirty",
    -          value: inResult.value
    -        };
    -      } else {
    -        return this._def.out._parseSync({
    -          data: inResult.value,
    -          path: ctx.path,
    -          parent: ctx
    -        });
    -      }
    -    }
    -  }
    -  static create(a, b) {
    -    return new _ZodPipeline({
    -      in: a,
    -      out: b,
    -      typeName: ZodFirstPartyTypeKind.ZodPipeline
    -    });
    -  }
    -};
    -var ZodReadonly = class extends ZodType {
    -  _parse(input) {
    -    const result = this._def.innerType._parse(input);
    -    if (isValid(result)) {
    -      result.value = Object.freeze(result.value);
    -    }
    -    return result;
    -  }
    -};
    -ZodReadonly.create = (type2, params) => {
    -  return new ZodReadonly({
    -    innerType: type2,
    -    typeName: ZodFirstPartyTypeKind.ZodReadonly,
    -    ...processCreateParams(params)
    -  });
    -};
    -var custom = (check, params = {}, fatal) => {
    -  if (check)
    -    return ZodAny.create().superRefine((data, ctx) => {
    -      var _a, _b;
    -      if (!check(data)) {
    -        const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
    -        const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
    -        const p2 = typeof p === "string" ? { message: p } : p;
    -        ctx.addIssue({ code: "custom", ...p2, fatal: _fatal });
    -      }
    -    });
    -  return ZodAny.create();
    -};
    -var late = {
    -  object: ZodObject.lazycreate
    -};
    -var ZodFirstPartyTypeKind;
    -(function(ZodFirstPartyTypeKind2) {
    -  ZodFirstPartyTypeKind2["ZodString"] = "ZodString";
    -  ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber";
    -  ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN";
    -  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
    -  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
    -  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
    -  ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
    -  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
    -  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
    -  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
    -  ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown";
    -  ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever";
    -  ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid";
    -  ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray";
    -  ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject";
    -  ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion";
    -  ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
    -  ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection";
    -  ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple";
    -  ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord";
    -  ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap";
    -  ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet";
    -  ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction";
    -  ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy";
    -  ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral";
    -  ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum";
    -  ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects";
    -  ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum";
    -  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
    -  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
    -  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
    -  ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
    -  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
    -  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
    -  ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
    -  ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly";
    -})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
    -var instanceOfType = (cls, params = {
    -  message: `Input not instance of ${cls.name}`
    -}) => custom((data) => data instanceof cls, params);
    -var stringType = ZodString.create;
    -var numberType = ZodNumber.create;
    -var nanType = ZodNaN.create;
    -var bigIntType = ZodBigInt.create;
    -var booleanType = ZodBoolean.create;
    -var dateType = ZodDate.create;
    -var symbolType = ZodSymbol.create;
    -var undefinedType = ZodUndefined.create;
    -var nullType = ZodNull.create;
    -var anyType = ZodAny.create;
    -var unknownType = ZodUnknown.create;
    -var neverType = ZodNever.create;
    -var voidType = ZodVoid.create;
    -var arrayType = ZodArray.create;
    -var objectType = ZodObject.create;
    -var strictObjectType = ZodObject.strictCreate;
    -var unionType = ZodUnion.create;
    -var discriminatedUnionType = ZodDiscriminatedUnion.create;
    -var intersectionType = ZodIntersection.create;
    -var tupleType = ZodTuple.create;
    -var recordType = ZodRecord.create;
    -var mapType = ZodMap.create;
    -var setType = ZodSet.create;
    -var functionType = ZodFunction.create;
    -var lazyType = ZodLazy.create;
    -var literalType = ZodLiteral.create;
    -var enumType = ZodEnum.create;
    -var nativeEnumType = ZodNativeEnum.create;
    -var promiseType = ZodPromise.create;
    -var effectsType = ZodEffects.create;
    -var optionalType = ZodOptional.create;
    -var nullableType = ZodNullable.create;
    -var preprocessType = ZodEffects.createWithPreprocess;
    -var pipelineType = ZodPipeline.create;
    -var ostring = () => stringType().optional();
    -var onumber = () => numberType().optional();
    -var oboolean = () => booleanType().optional();
    -var coerce = {
    -  string: (arg) => ZodString.create({ ...arg, coerce: true }),
    -  number: (arg) => ZodNumber.create({ ...arg, coerce: true }),
    -  boolean: (arg) => ZodBoolean.create({
    -    ...arg,
    -    coerce: true
    -  }),
    -  bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),
    -  date: (arg) => ZodDate.create({ ...arg, coerce: true })
    -};
    -var NEVER = INVALID;
    -var z = /* @__PURE__ */ Object.freeze({
    -  __proto__: null,
    -  defaultErrorMap: errorMap,
    -  setErrorMap,
    -  getErrorMap,
    -  makeIssue,
    -  EMPTY_PATH,
    -  addIssueToContext,
    -  ParseStatus,
    -  INVALID,
    -  DIRTY,
    -  OK,
    -  isAborted,
    -  isDirty,
    -  isValid,
    -  isAsync,
    -  get util() {
    -    return util;
    -  },
    -  get objectUtil() {
    -    return objectUtil;
    -  },
    -  ZodParsedType,
    -  getParsedType,
    -  ZodType,
    -  ZodString,
    -  ZodNumber,
    -  ZodBigInt,
    -  ZodBoolean,
    -  ZodDate,
    -  ZodSymbol,
    -  ZodUndefined,
    -  ZodNull,
    -  ZodAny,
    -  ZodUnknown,
    -  ZodNever,
    -  ZodVoid,
    -  ZodArray,
    -  ZodObject,
    -  ZodUnion,
    -  ZodDiscriminatedUnion,
    -  ZodIntersection,
    -  ZodTuple,
    -  ZodRecord,
    -  ZodMap,
    -  ZodSet,
    -  ZodFunction,
    -  ZodLazy,
    -  ZodLiteral,
    -  ZodEnum,
    -  ZodNativeEnum,
    -  ZodPromise,
    -  ZodEffects,
    -  ZodTransformer: ZodEffects,
    -  ZodOptional,
    -  ZodNullable,
    -  ZodDefault,
    -  ZodCatch,
    -  ZodNaN,
    -  BRAND,
    -  ZodBranded,
    -  ZodPipeline,
    -  ZodReadonly,
    -  custom,
    -  Schema: ZodType,
    -  ZodSchema: ZodType,
    -  late,
    -  get ZodFirstPartyTypeKind() {
    -    return ZodFirstPartyTypeKind;
    -  },
    -  coerce,
    -  any: anyType,
    -  array: arrayType,
    -  bigint: bigIntType,
    -  boolean: booleanType,
    -  date: dateType,
    -  discriminatedUnion: discriminatedUnionType,
    -  effect: effectsType,
    -  "enum": enumType,
    -  "function": functionType,
    -  "instanceof": instanceOfType,
    -  intersection: intersectionType,
    -  lazy: lazyType,
    -  literal: literalType,
    -  map: mapType,
    -  nan: nanType,
    -  nativeEnum: nativeEnumType,
    -  never: neverType,
    -  "null": nullType,
    -  nullable: nullableType,
    -  number: numberType,
    -  object: objectType,
    -  oboolean,
    -  onumber,
    -  optional: optionalType,
    -  ostring,
    -  pipeline: pipelineType,
    -  preprocess: preprocessType,
    -  promise: promiseType,
    -  record: recordType,
    -  set: setType,
    -  strictObject: strictObjectType,
    -  string: stringType,
    -  symbol: symbolType,
    -  transformer: effectsType,
    -  tuple: tupleType,
    -  "undefined": undefinedType,
    -  union: unionType,
    -  unknown: unknownType,
    -  "void": voidType,
    -  NEVER,
    -  ZodIssueCode,
    -  quotelessJson,
    -  ZodError
    -});
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/predicateToString.ts
    -function predicateToString(predicateDescriptor) {
    -  const operandList = predicateDescriptor.operands.map(operandToString).join(" ");
    -  return `(#${predicateDescriptor.operator} ${operandList})`;
    -}
    -function operandToString(value) {
    -  return value.type === "capture" ? `@${value.name}` : value.value;
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts
    -function constructZodErrorMessages(inputOperands, error) {
    -  return error.errors.filter(
    -    // If the user has supplied a capture instead of a string, or vice versa,
    -    // we'll get two errors instead of one; we prefer to show the more helpful
    -    // one.
    -    (error2) => !(error2.code === "invalid_type" && error2.path.length === 2 && (error2.path[1] === "name" || error2.path[1] === "value"))
    -  ).map((error2) => getErrorMessage(inputOperands, error2));
    -}
    -function getErrorMessage(inputOperands, error) {
    -  if (error.path.length === 0) {
    -    if (error.code === "too_small") {
    -      return "Too few arguments";
    -    } else if (error.code === "too_big") {
    -      return "Too many arguments";
    -    }
    -    return error.message;
    -  }
    -  let message = error.message;
    -  if (error.code === "invalid_literal" && error.path[1] === "type") {
    -    message = error.expected === "capture" ? "Capture names must be prefixed with @" : "Expected string, but received capture";
    -  }
    -  const argIndex = error.path[0];
    -  const operandString = operandToString(inputOperands[argIndex]);
    -  return `Error on argument ${argIndex} (\`${operandString}\`): ${message}`;
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts
    -var QueryPredicateOperator = class {
    -  /**
    -   * Whether it is ok for a node argument to be missing.  If true, then the
    -   * operator will just accept the pattern if the given node is missing.  If
    -   * false, then the operator will throw an error if the node is missing.
    -   *
    -   * This is useful if we want to set some flag on a node, but only if it's
    -   * present.
    -   *
    -   * @returns A boolean indicating whether it is ok for a node argument to be
    -   * missing.
    -   */
    -  allowMissingNode() {
    -    return false;
    -  }
    -  /**
    -   * Given a list of operands, return a predicate function that can be used to
    -   * test whether a given match satisfies the predicate.
    -   *
    -   * @param inputOperands The operands to the operator, as returned directly
    -   * from tree-sitter when parse the query file.
    -   * @returns Either a predicate function, or a list of error messages if the operands
    -   * were invalid.
    -   */
    -  createPredicate(inputOperands) {
    -    const result = this.schema.safeParse(inputOperands);
    -    return result.success ? {
    -      success: true,
    -      predicate: (match2) => {
    -        try {
    -          const acceptArgs = this.constructAcceptArgs(result.data, match2);
    -          return this.run(...acceptArgs);
    -        } catch (err) {
    -          if (err instanceof CaptureNotFoundError && this.allowMissingNode()) {
    -            return true;
    -          }
    -          throw err;
    -        }
    -      }
    -    } : {
    -      success: false,
    -      errors: constructZodErrorMessages(inputOperands, result.error)
    -    };
    -  }
    -  /**
    -   * Given the output of the schema and a match, construct the arguments to pass
    -   * to the `accept` function.
    -   * @param rawOutput The output of the schema.
    -   * @param match The match to use to convert captures to nodes.
    -   * @returns The arguments to pass to the `accept` function.
    -   */
    -  constructAcceptArgs(rawOutput, match2) {
    -    return rawOutput.map((operand) => {
    -      if (operand.type === "capture") {
    -        const capture = match2.captures.find(
    -          (capture2) => capture2.name === operand.name
    -        );
    -        if (capture == null) {
    -          throw new CaptureNotFoundError(operand.name);
    -        }
    -        return capture;
    -      } else {
    -        return operand.value;
    -      }
    -    });
    -  }
    -};
    -var CaptureNotFoundError = class extends Error {
    -  constructor(operandName) {
    -    super(`Could not find capture ${operandName}`);
    -  }
    -};
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
    -var string = z.object({ type: z.literal("string"), value: z.string() });
    -var q = {
    -  /**
    -   * Expect a capture, eg @foo.  The operator will receive the node referenced
    -   * by the capture
    -   */
    -  node: z.object({ type: z.literal("capture"), name: z.string() }),
    -  /** Expect a string */
    -  string,
    -  /** Expect an integer */
    -  integer: string.transform((val, ctx) => {
    -    const parsedValue = parseInt(val.value);
    -    if (isNaN(parsedValue)) {
    -      ctx.addIssue({
    -        code: z.ZodIssueCode.custom,
    -        message: "Expected an integer"
    -      });
    -      return z.NEVER;
    -    }
    -    return { type: "integer", value: parsedValue };
    -  }),
    -  /** Expect a boolean */
    -  boolean: string.transform((val, ctx) => {
    -    if (val.value === "true") {
    -      return { type: "boolean", value: true };
    -    }
    -    if (val.value === "false") {
    -      return { type: "boolean", value: false };
    -    }
    -    ctx.addIssue({
    -      code: z.ZodIssueCode.custom,
    -      message: "Expected true or false"
    -    });
    -    return z.NEVER;
    -  })
    -};
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
    -var NotType = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "not-type?";
    -    this.schema = z.tuple([q.node, q.string]).rest(q.string);
    -  }
    -  run({ node }, ...types2) {
    -    return !types2.includes(node.type);
    -  }
    -};
    -var NotParentType = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "not-parent-type?";
    -    this.schema = z.tuple([q.node, q.string]).rest(q.string);
    -  }
    -  run({ node }, ...types2) {
    -    return node.parent == null || !types2.includes(node.parent.type);
    -  }
    -};
    -var IsNthChild = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "is-nth-child?";
    -    this.schema = z.tuple([q.node, q.integer]);
    -  }
    -  run({ node }, n) {
    -    return node.parent?.children.findIndex((n2) => n2.id === node.id) === n;
    -  }
    -};
    -var HasMultipleChildrenOfType = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "has-multiple-children-of-type?";
    -    this.schema = z.tuple([q.node, q.string]);
    -  }
    -  run({ node }, type2) {
    -    const count2 = node.children.filter((n) => n.type === type2).length;
    -    return count2 > 1;
    -  }
    -};
    -var ChildRange = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "child-range!";
    -    this.schema = z.union([
    -      z.tuple([q.node, q.integer]),
    -      z.tuple([q.node, q.integer, q.integer]),
    -      z.tuple([q.node, q.integer, q.integer, q.boolean]),
    -      z.tuple([q.node, q.integer, q.integer, q.boolean, q.boolean])
    -    ]);
    -  }
    -  run(nodeInfo, startIndex, endIndex, excludeStart, excludeEnd) {
    -    const {
    -      node: { children }
    -    } = nodeInfo;
    -    startIndex = startIndex < 0 ? children.length + startIndex : startIndex;
    -    endIndex = endIndex == null ? -1 : endIndex;
    -    endIndex = endIndex < 0 ? children.length + endIndex : endIndex;
    -    const start = children[startIndex];
    -    const end = children[endIndex];
    -    nodeInfo.range = makeRangeFromPositions(
    -      excludeStart ? start.endPosition : start.startPosition,
    -      excludeEnd ? end.startPosition : end.endPosition
    -    );
    -    return true;
    -  }
    -};
    -var ShrinkToMatch = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "shrink-to-match!";
    -    this.schema = z.tuple([q.node, q.string]);
    -  }
    -  run(nodeInfo, pattern) {
    -    const { document, range: range4 } = nodeInfo;
    -    const text = document.getText(range4);
    -    const match2 = text.match(new RegExp(pattern, "ds"));
    -    if (match2?.index == null) {
    -      throw Error(`No match for pattern '${pattern}'`);
    -    }
    -    const [startOffset, endOffset] = match2.indices?.groups?.keep ?? match2.indices[0];
    -    const baseOffset = document.offsetAt(range4.start);
    -    nodeInfo.range = new Range(
    -      document.positionAt(baseOffset + startOffset),
    -      document.positionAt(baseOffset + endOffset)
    -    );
    -    return true;
    -  }
    -};
    -var TrimEnd = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "trim-end!";
    -    this.schema = z.tuple([q.node]);
    -  }
    -  run(nodeInfo) {
    -    const { document, range: range4 } = nodeInfo;
    -    const text = document.getText(range4);
    -    const whitespaceLength = text.length - text.trimEnd().length;
    -    nodeInfo.range = new Range(
    -      range4.start,
    -      adjustPosition(document, range4.end, -whitespaceLength)
    -    );
    -    return true;
    -  }
    -};
    -var AllowMultiple = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "allow-multiple!";
    -    this.schema = z.tuple([q.node]);
    -  }
    -  allowMissingNode() {
    -    return true;
    -  }
    -  run(nodeInfo) {
    -    nodeInfo.allowMultiple = true;
    -    return true;
    -  }
    -};
    -var Log = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "log!";
    -    this.schema = z.tuple([q.node]);
    -  }
    -  run(nodeInfo) {
    -    console.log(`#log!: ${nodeInfo.name}@${nodeInfo.range}`);
    -    return true;
    -  }
    -};
    -var InsertionDelimiter = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "insertion-delimiter!";
    -    this.schema = z.tuple([q.node, q.string]);
    -  }
    -  run(nodeInfo, insertionDelimiter) {
    -    nodeInfo.insertionDelimiter = insertionDelimiter;
    -    return true;
    -  }
    -};
    -var SingleOrMultilineDelimiter = class extends QueryPredicateOperator {
    -  constructor() {
    -    super(...arguments);
    -    this.name = "single-or-multi-line-delimiter!";
    -    this.schema = z.tuple([q.node, q.node, q.string, q.string]);
    -  }
    -  run(nodeInfo, conditionNodeInfo, insertionDelimiterConsequence, insertionDelimiterAlternative) {
    -    nodeInfo.insertionDelimiter = conditionNodeInfo.range.isSingleLine ? insertionDelimiterConsequence : insertionDelimiterAlternative;
    -    return true;
    -  }
    -};
    -var queryPredicateOperators = [
    -  new Log(),
    -  new NotType(),
    -  new TrimEnd(),
    -  new NotParentType(),
    -  new IsNthChild(),
    -  new ChildRange(),
    -  new ShrinkToMatch(),
    -  new AllowMultiple(),
    -  new InsertionDelimiter(),
    -  new SingleOrMultilineDelimiter(),
    -  new HasMultipleChildrenOfType()
    -];
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.ts
    -function parsePredicates(predicateDescriptors) {
    -  const errors2 = [];
    -  const predicates = [];
    -  predicateDescriptors.forEach((patternPredicateDescriptors, patternIdx) => {
    -    const patternPredicates = [];
    -    patternPredicateDescriptors.forEach((predicateDescriptor, predicateIdx) => {
    -      const operator = queryPredicateOperators.find(
    -        ({ name }) => name === predicateDescriptor.operator
    -      );
    -      if (operator == null) {
    -        errors2.push({
    -          patternIdx,
    -          predicateIdx,
    -          error: `Unknown predicate operator "${predicateDescriptor.operator}"`
    -        });
    -        return;
    -      }
    -      const result = operator.createPredicate(predicateDescriptor.operands);
    -      if (!result.success) {
    -        errors2.push(
    -          ...result.errors.map((error) => ({
    -            patternIdx,
    -            predicateIdx,
    -            error
    -          }))
    -        );
    -        return;
    -      }
    -      patternPredicates.push(result.predicate);
    -    });
    -    predicates.push(patternPredicates);
    -  });
    -  return { errors: errors2, predicates };
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
    -var import_lodash26 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
    -function checkCaptureStartEnd(captures, messages) {
    -  if (captures.length === 1) {
    -    return true;
    -  }
    -  let shownError = false;
    -  const lastStart = captures.filter(({ name }) => name.endsWith(".start")).map(({ range: { end } }) => end).sort((a, b) => a.compareTo(b)).at(-1);
    -  const firstEnd = captures.filter(({ name }) => name.endsWith(".end")).map(({ range: { start } }) => start).sort((a, b) => a.compareTo(b)).at(0);
    -  if (lastStart != null && firstEnd != null) {
    -    if (lastStart.isAfter(firstEnd)) {
    -      showError(
    -        messages,
    -        "TreeSitterQuery.checkCaptures.badOrder",
    -        `Start capture must be before end capture: ${captures}`
    -      );
    -      shownError = true;
    -    }
    -  }
    -  const startCount = captures.filter(
    -    ({ name }) => name.endsWith(".start")
    -  ).length;
    -  const endCount = captures.filter(({ name }) => name.endsWith(".end")).length;
    -  const regularCount = captures.length - startCount - endCount;
    -  if (regularCount > 0 && (startCount > 0 || endCount > 0)) {
    -    showError(
    -      messages,
    -      "TreeSitterQuery.checkCaptures.mixRegularStartEnd",
    -      `Please do not mix regular captures and start/end captures: ${captures.map(
    -        ({ name, range: range4 }) => name + " " + range4.toString()
    -      )}`
    -    );
    -    shownError = true;
    -  }
    -  if (regularCount > 1) {
    -    showError(
    -      messages,
    -      "TreeSitterQuery.checkCaptures.duplicate",
    -      `A capture with the same name may only appear once in a single pattern: ${captures.map(
    -        ({ name, range: range4 }) => name + " " + range4.toString()
    -      )}`
    -    );
    -    shownError = true;
    -  }
    -  return !shownError;
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
    -function rewriteStartOfEndOf(captures) {
    -  return captures.map((capture) => {
    -    if (capture.name.endsWith(".startOf")) {
    -      return {
    -        ...capture,
    -        name: capture.name.replace(/\.startOf$/, ""),
    -        range: capture.range.start.toEmptyRange()
    -      };
    -    }
    -    if (capture.name.endsWith(".endOf")) {
    -      return {
    -        ...capture,
    -        name: capture.name.replace(/\.endOf$/, ""),
    -        range: capture.range.end.toEmptyRange()
    -      };
    -    }
    -    return capture;
    -  });
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
    -var TreeSitterQuery = class _TreeSitterQuery {
    -  constructor(treeSitter, query, patternPredicates) {
    -    this.treeSitter = treeSitter;
    -    this.query = query;
    -    this.patternPredicates = patternPredicates;
    -  }
    -  static create(languageId, treeSitter, query) {
    -    const { errors: errors2, predicates } = parsePredicates(query.predicates);
    -    if (errors2.length > 0) {
    -      for (const error of errors2) {
    -        const context = [
    -          `language ${languageId}`,
    -          `pattern ${error.patternIdx}`,
    -          `predicate \`${predicateToString(
    -            query.predicates[error.patternIdx][error.predicateIdx]
    -          )}\``
    -        ].join(", ");
    -        showError(
    -          ide().messages,
    -          "TreeSitterQuery.parsePredicates",
    -          `Error parsing predicate for ${context}: ${error.error}`
    -        );
    -      }
    -      if (ide().runMode === "test") {
    -        throw new Error("Invalid predicates");
    -      }
    -    }
    -    return new _TreeSitterQuery(treeSitter, query, predicates);
    -  }
    -  matches(document, start, end) {
    -    return this.query.matches(
    -      this.treeSitter.getTree(document).rootNode,
    -      start == null ? void 0 : positionToPoint(start),
    -      end == null ? void 0 : positionToPoint(end)
    -    ).map(
    -      ({ pattern, captures }) => ({
    -        patternIdx: pattern,
    -        captures: captures.map(({ name, node }) => ({
    -          name,
    -          node,
    -          document,
    -          range: getNodeRange(node),
    -          insertionDelimiter: void 0,
    -          allowMultiple: false
    -        }))
    -      })
    -    ).filter(
    -      (match2) => this.patternPredicates[match2.patternIdx].every(
    -        (predicate) => predicate(match2)
    -      )
    -    ).map((match2) => {
    -      const captures = Object.entries(
    -        (0, import_lodash26.groupBy)(match2.captures, ({ name }) => normalizeCaptureName(name))
    -      ).map(([name, captures2]) => {
    -        captures2 = rewriteStartOfEndOf(captures2);
    -        const capturesAreValid = checkCaptureStartEnd(
    -          captures2,
    -          ide().messages
    -        );
    -        if (!capturesAreValid && ide().runMode === "test") {
    -          throw new Error("Invalid captures");
    -        }
    -        return {
    -          name,
    -          range: captures2.map(({ range: range4 }) => range4).reduce((accumulator, range4) => range4.union(accumulator)),
    -          allowMultiple: captures2.some((capture) => capture.allowMultiple),
    -          insertionDelimiter: captures2.find(
    -            (capture) => capture.insertionDelimiter != null
    -          )?.insertionDelimiter
    -        };
    -      });
    -      return { ...match2, captures };
    -    });
    -  }
    -  get captureNames() {
    -    return (0, import_lodash26.uniq)(this.query.captureNames.map(normalizeCaptureName));
    -  }
    -};
    -function normalizeCaptureName(name) {
    -  return name.replace(/(\.(start|end))?(\.(startOf|endOf))?$/, "");
    -}
    -function positionToPoint(start) {
    -  return { row: start.line, column: start.character };
    -}
    -
    -// ../cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
    -var wildcard = "_";
    -var textFragment = "textFragment";
    -var captureNames = [wildcard, ...simpleScopeTypeTypes];
    -var positionRelationships = ["prefix", "leading", "trailing"];
    -var positionSuffixes = ["startOf", "endOf"];
    -var rangeRelationships = [
    -  "domain",
    -  "removal",
    -  "interior",
    -  "iteration",
    -  "iteration.domain"
    -];
    -var rangeSuffixes = [
    -  "start",
    -  "end",
    -  "start.startOf",
    -  "start.endOf",
    -  "end.startOf",
    -  "end.endOf"
    -];
    -var allowedCaptures = /* @__PURE__ */ new Set();
    -allowedCaptures.add(textFragment);
    -for (const suffix of rangeSuffixes) {
    -  allowedCaptures.add(`${textFragment}.${suffix}`);
    -}
    -for (const captureName of captureNames) {
    -  if (captureName !== wildcard) {
    -    allowedCaptures.add(captureName);
    -    for (const suffix of rangeSuffixes) {
    -      allowedCaptures.add(`${captureName}.${suffix}`);
    -    }
    -  }
    -  for (const relationship of positionRelationships) {
    -    allowedCaptures.add(`${captureName}.${relationship}`);
    -    for (const suffix of positionSuffixes) {
    -      allowedCaptures.add(`${captureName}.${relationship}.${suffix}`);
    -    }
    -  }
    -  for (const relationship of rangeRelationships) {
    -    allowedCaptures.add(`${captureName}.${relationship}`);
    -    for (const suffix of rangeSuffixes) {
    -      allowedCaptures.add(`${captureName}.${relationship}.${suffix}`);
    -    }
    -  }
    -}
    -var capturePattern = new RegExp(`^(?!;;).*@([\\w.]*)`, "gm");
    -function validateQueryCaptures(file, rawQuery) {
    -  const matches = rawQuery.matchAll(capturePattern);
    -  const errors2 = [];
    -  for (const match2 of matches) {
    -    const captureName = match2[1];
    -    if (captureName.length > 1 && !captureName.includes(".") && captureName.startsWith("_")) {
    -      continue;
    -    }
    -    if (!allowedCaptures.has(captureName)) {
    -      const lineNumber = match2.input.slice(0, match2.index).split("\n").length;
    -      errors2.push(`${file}(${lineNumber}) invalid capture '@${captureName}'.`);
    -    }
    -  }
    -  if (errors2.length === 0) {
    -    return;
    -  }
    -  const message = errors2.join("\n");
    -  showError(
    -    ide().messages,
    -    "validateQueryCaptures.invalidCaptureName",
    -    message
    -  );
    -  if (ide().runMode === "test") {
    -    throw new Error(message);
    -  }
    -}
    -
    -// ../cursorless-engine/src/languages/LanguageDefinition.ts
    -var LanguageDefinition = class _LanguageDefinition {
    -  constructor(query) {
    -    this.query = query;
    -  }
    -  /**
    -   * Construct a language definition for the given language id, if the language
    -   * has a new-style query definition, or return undefined if the language doesn't
    -   *
    -   * @param treeSitter The tree-sitter instance to use for parsing
    -   * @param languageId The language id for which to create a language definition
    -   * @returns A language definition for the given language id, or undefined if the given language
    -   * id doesn't have a new-style query definition
    -   */
    -  static async create(treeSitter, fileSystem, queryDir, languageId) {
    -    const languageQueryPath = (0, import_path2.join)(queryDir, `${languageId}.scm`);
    -    const rawLanguageQueryString = await readQueryFileAndImports(
    -      fileSystem,
    -      languageQueryPath
    -    );
    -    if (rawLanguageQueryString == null) {
    -      return void 0;
    -    }
    -    const rawQuery = treeSitter.getLanguage(languageId).query(rawLanguageQueryString);
    -    const query = TreeSitterQuery.create(languageId, treeSitter, rawQuery);
    -    return new _LanguageDefinition(query);
    -  }
    -  /**
    -   * @param scopeType The scope type for which to get a scope handler
    -   * @returns A scope handler for the given scope type and language id, or
    -   * undefined if the given scope type / language id combination is still using
    -   * legacy pathways
    -   */
    -  getScopeHandler(scopeType) {
    -    if (!this.query.captureNames.includes(scopeType.type)) {
    -      return void 0;
    -    }
    -    return new TreeSitterScopeHandler(this.query, scopeType);
    -  }
    -  getTextFragmentScopeHandler() {
    -    if (!this.query.captureNames.includes(TEXT_FRAGMENT_CAPTURE_NAME)) {
    -      return void 0;
    -    }
    -    return new TreeSitterTextFragmentScopeHandler(this.query);
    -  }
    -};
    -async function readQueryFileAndImports(fileSystem, languageQueryPath) {
    -  const rawQueryStrings = {
    -    [languageQueryPath]: null
    -  };
    -  const doValidation = ide().runMode !== "production";
    -  while (Object.values(rawQueryStrings).some((v) => v == null)) {
    -    for (const [queryPath, rawQueryString] of Object.entries(rawQueryStrings)) {
    -      if (rawQueryString != null) {
    -        continue;
    -      }
    -      const fileName = (0, import_path2.basename)(queryPath);
    -      let rawQuery = await fileSystem.readBundledFile(queryPath);
    -      if (rawQuery == null) {
    -        if (queryPath === languageQueryPath) {
    -          return void 0;
    -        }
    -        showError(
    -          ide().messages,
    -          "LanguageDefinition.readQueryFileAndImports.queryNotFound",
    -          `Could not find imported query file ${queryPath}`
    -        );
    -        if (ide().runMode === "test") {
    -          throw new Error("Invalid import statement");
    -        }
    -        rawQuery = "";
    -      }
    -      if (doValidation) {
    -        validateQueryCaptures(fileName, rawQuery);
    -      }
    -      rawQueryStrings[queryPath] = rawQuery;
    -      matchAll(
    -        rawQuery,
    -        // Matches lines like:
    -        //
    -        // ;; import path/to/query.scm
    -        //
    -        // but is very lenient about whitespace and quotes, and also allows
    -        // include instead of import, so that we can throw a nice error message
    -        // if the developer uses the wrong syntax
    -        /^[^\S\r\n]*;;?[^\S\r\n]*(?:import|include)[^\S\r\n]+['"]?([\w|/.]+)['"]?[^\S\r\n]*$/gm,
    -        (match2) => {
    -          const relativeImportPath = match2[1];
    -          if (doValidation) {
    -            validateImportSyntax(fileName, relativeImportPath, match2[0]);
    -          }
    -          const importQueryPath = (0, import_path2.join)((0, import_path2.dirname)(queryPath), relativeImportPath);
    -          rawQueryStrings[importQueryPath] = rawQueryStrings[importQueryPath] ?? null;
    -        }
    -      );
    -    }
    -  }
    -  return Object.values(rawQueryStrings).join("\n");
    -}
    -function validateImportSyntax(file, relativeImportPath, actual) {
    -  const canonicalSyntax = `;; import ${relativeImportPath}`;
    -  if (actual !== canonicalSyntax) {
    -    showError(
    -      ide().messages,
    -      "LanguageDefinition.readQueryFileAndImports.malformedImport",
    -      `Malformed import statement in ${file}: "${actual}". Import statements must be of the form "${canonicalSyntax}"`
    -    );
    -    if (ide().runMode === "test") {
    -      throw new Error("Invalid import statement");
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/languages/LanguageDefinitions.ts
    -var LANGUAGE_UNDEFINED = Symbol("LANGUAGE_UNDEFINED");
    -var LanguageDefinitions = class {
    -  constructor(fileSystem, treeSitter) {
    -    this.fileSystem = fileSystem;
    -    this.treeSitter = treeSitter;
    -    this.notifier = new Notifier();
    -    /**
    -     * Maps from language id to {@link LanguageDefinition} or
    -     * {@link LANGUAGE_UNDEFINED} if language doesn't have new-style definitions.
    -     * We use a sentinel value instead of undefined so that we can distinguish
    -     * between a situation where we haven't yet checked whether a language has a
    -     * new-style query definition and a situation where we've checked and found
    -     * that it doesn't.  The former case is represented by `undefined` (due to the
    -     * semantics of {@link Map.get}), while the latter is represented by the
    -     * sentinel value.
    -     */
    -    this.languageDefinitions = /* @__PURE__ */ new Map();
    -    this.disposables = [];
    -    this.onDidChangeDefinition = this.notifier.registerListener;
    -    ide().onDidOpenTextDocument((document) => {
    -      this.loadLanguage(document.languageId);
    -    });
    -    ide().onDidChangeVisibleTextEditors((editors) => {
    -      editors.forEach(({ document }) => this.loadLanguage(document.languageId));
    -    });
    -    this.queryDir = ide().runMode === "development" ? (0, import_path3.join)(getCursorlessRepoRoot(), "queries") : "queries";
    -    if (ide().runMode === "development") {
    -      this.disposables.push(
    -        fileSystem.watchDir(this.queryDir, () => {
    -          this.reloadLanguageDefinitions();
    -        })
    -      );
    -    }
    -  }
    -  async init() {
    -    await this.loadAllLanguages();
    -  }
    -  async loadAllLanguages() {
    -    const languageIds = ide().visibleTextEditors.map(
    -      ({ document }) => document.languageId
    -    );
    -    await Promise.all(
    -      languageIds.map((languageId) => this.loadLanguage(languageId))
    -    );
    -  }
    -  async loadLanguage(languageId) {
    -    if (this.languageDefinitions.has(languageId)) {
    -      return;
    -    }
    -    const definition = await LanguageDefinition.create(
    -      this.treeSitter,
    -      this.fileSystem,
    -      this.queryDir,
    -      languageId
    -    ) ?? LANGUAGE_UNDEFINED;
    -    this.languageDefinitions.set(languageId, definition);
    -  }
    -  async reloadLanguageDefinitions() {
    -    const languageIds = Array.from(this.languageDefinitions.keys());
    -    this.languageDefinitions.clear();
    -    await Promise.all(
    -      languageIds.map((languageId) => this.loadLanguage(languageId))
    -    );
    -    this.notifier.notifyListeners();
    -  }
    -  /**
    -   * Get a language definition for the given language id, if the language
    -   * has a new-style query definition, or return undefined if the language doesn't
    -   *
    -   * @param languageId The language id for which to get a language definition
    -   * @returns A language definition for the given language id, or undefined if
    -   * the given language id doesn't have a new-style query definition
    -   */
    -  get(languageId) {
    -    const definition = this.languageDefinitions.get(languageId);
    -    if (definition == null) {
    -      throw new Error(
    -        "Expected language definition entry is missing for languageId " + languageId
    -      );
    -    }
    -    return definition === LANGUAGE_UNDEFINED ? void 0 : definition;
    -  }
    -  /**
    -   * @deprecated Only for use in legacy containing scope stage
    -   */
    -  getNodeAtLocation(document, range4) {
    -    return this.treeSitter.getNodeAtLocation(document, range4);
    -  }
    -  dispose() {
    -    this.disposables.forEach((disposable) => disposable.dispose());
    -  }
    -};
    -
    -// ../cursorless-engine/src/nodeCommon/TalonSpokenFormsJsonReader.ts
    -var import_promises3 = require("fs/promises");
    -var path3 = __toESM(require("path"), 1);
    -var LATEST_SPOKEN_FORMS_JSON_VERSION = 0;
    -var TalonSpokenFormsJsonReader = class {
    -  constructor(fileSystem) {
    -    this.fileSystem = fileSystem;
    -    this.notifier = new Notifier();
    -    /**
    -     * Registers a callback to be run when the spoken forms change.
    -     * @param callback The callback to run when the scope ranges change
    -     * @returns A {@link Disposable} which will stop the callback from running
    -     */
    -    this.onDidChange = this.notifier.registerListener;
    -    this.disposable = this.fileSystem.watchDir(
    -      path3.dirname(this.fileSystem.cursorlessTalonStateJsonPath),
    -      () => this.notifier.notifyListeners()
    -    );
    -  }
    -  async getSpokenFormEntries() {
    -    let payload;
    -    try {
    -      payload = JSON.parse(
    -        await (0, import_promises3.readFile)(this.fileSystem.cursorlessTalonStateJsonPath, "utf-8")
    -      );
    -    } catch (err) {
    -      if (isErrnoException(err) && err.code === "ENOENT") {
    -        throw new NeedsInitialTalonUpdateError(
    -          `Custom spoken forms file not found at ${this.fileSystem.cursorlessTalonStateJsonPath}. Using default spoken forms.`
    -        );
    -      }
    -      throw err;
    -    }
    -    if (payload.version !== LATEST_SPOKEN_FORMS_JSON_VERSION) {
    -      throw new Error(
    -        `Invalid spoken forms version. Expected ${LATEST_SPOKEN_FORMS_JSON_VERSION} but got ${payload.version}`
    -      );
    -    }
    -    return payload.spokenForms;
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -function isErrnoException(error) {
    -  return error instanceof Error && "code" in error;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/CascadingStage.ts
    -var CascadingStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  get nestedStages() {
    -    if (this.nestedStages_ == null) {
    -      this.nestedStages_ = this.modifier.modifiers.map(
    -        this.modifierStageFactory.create
    -      );
    -    }
    -    return this.nestedStages_;
    -  }
    -  run(target) {
    -    for (const nestedStage of this.nestedStages) {
    -      try {
    -        return nestedStage.run(target);
    -      } catch (error) {
    -        continue;
    -      }
    -    }
    -    throw new Error("No modifier could be applied");
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
    -var ConditionalModifierBaseStage = class {
    -  constructor(modifierStageFactory, nestedModifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.nestedModifier = nestedModifier;
    -    this.suppressErrors = false;
    -  }
    -  run(target) {
    -    if (this.shouldModify(target)) {
    -      try {
    -        return this.nestedStage.run(target).map((newTarget) => newTarget.withThatTarget(target));
    -      } catch (ex) {
    -        if (!this.suppressErrors) {
    -          throw ex;
    -        }
    -      }
    -    }
    -    return [target];
    -  }
    -  get nestedStage() {
    -    if (this.nestedStage_ == null) {
    -      this.nestedStage_ = this.modifierStageFactory.create(this.nestedModifier);
    -    }
    -    return this.nestedStage_;
    -  }
    -};
    -var ModifyIfUntypedStage = class extends ConditionalModifierBaseStage {
    -  constructor(modifierStageFactory, modifier) {
    -    super(modifierStageFactory, modifier.modifier);
    -  }
    -  shouldModify(target) {
    -    return !target.hasExplicitScopeType;
    -  }
    -};
    -var ModifyIfUntypedExplicitStage = class extends ConditionalModifierBaseStage {
    -  shouldModify(target) {
    -    return !target.hasExplicitScopeType && !target.isImplicit;
    -  }
    -};
    -var ContainingTokenIfUntypedEmptyStage = class extends ConditionalModifierBaseStage {
    -  constructor(modifierStageFactory) {
    -    super(modifierStageFactory, {
    -      type: "containingScope",
    -      scopeType: { type: "token" }
    -    });
    -    this.suppressErrors = true;
    -  }
    -  shouldModify(target) {
    -    return !target.hasExplicitScopeType && !target.hasExplicitRange && target.contentRange.isEmpty;
    -  }
    -};
    -
    -// ../cursorless-engine/src/util/typeUtils.ts
    -function isSameType(a, b) {
    -  return Object.getPrototypeOf(a).constructor === Object.getPrototypeOf(b).constructor;
    -}
    -
    -// ../cursorless-engine/src/processTargets/createContinuousRangeTarget.ts
    -function createContinuousRangeTarget(isReversed, startTarget, endTarget, includeStart, includeEnd) {
    -  if (includeStart && includeEnd && isSameType(startTarget, endTarget)) {
    -    const richTarget = startTarget.maybeCreateRichRangeTarget(
    -      isReversed,
    -      endTarget
    -    );
    -    if (richTarget != null) {
    -      return richTarget;
    -    }
    -  }
    -  if (startTarget.isLine && endTarget.isLine) {
    -    return new LineTarget({
    -      editor: startTarget.editor,
    -      isReversed,
    -      contentRange: createContinuousLineRange(
    -        startTarget,
    -        endTarget,
    -        includeStart,
    -        includeEnd
    -      )
    -    });
    -  }
    -  return new UntypedTarget({
    -    editor: startTarget.editor,
    -    isReversed,
    -    hasExplicitRange: true,
    -    contentRange: createContinuousRange(
    -      startTarget,
    -      endTarget,
    -      includeStart,
    -      includeEnd
    -    ),
    -    isToken: includeStart && includeEnd && startTarget.isToken && endTarget.isToken
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts
    -function constructScopeRangeTarget(isReversed, scope1, scope2) {
    -  if (scope1 === scope2) {
    -    return scope1.getTargets(isReversed);
    -  }
    -  const targets1 = scope1.getTargets(isReversed);
    -  const targets2 = scope2.getTargets(isReversed);
    -  if (targets1.length !== 1 || targets2.length !== 1) {
    -    throw Error("Scope range targets must be single-target");
    -  }
    -  const [target1] = targets1;
    -  const [target2] = targets2;
    -  const isScope2After = target2.contentRange.start.isAfterOrEqual(
    -    target1.contentRange.start
    -  );
    -  const [startTarget, endTarget] = isScope2After ? [target1, target2] : [target2, target1];
    -  return [
    -    createContinuousRangeTarget(isReversed, startTarget, endTarget, true, true)
    -  ];
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
    -function getPreferredScopeTouchingPosition(scopeHandler, editor, position, forceDirection) {
    -  const candidates = Array.from(
    -    scopeHandler.generateScopes(editor, position, "forward", {
    -      containment: "required",
    -      allowAdjacentScopes: true,
    -      skipAncestorScopes: true
    -    })
    -  );
    -  switch (candidates.length) {
    -    case 0:
    -      return void 0;
    -    case 1:
    -      return candidates[0];
    -    case 2: {
    -      const [backwardScope, forwardScope] = candidates;
    -      if (forceDirection === "forward") {
    -        return forwardScope;
    -      }
    -      if (forceDirection === "backward") {
    -        return backwardScope;
    -      }
    -      if (scopeHandler.isPreferredOver?.(backwardScope, forwardScope) ?? false) {
    -        return backwardScope;
    -      }
    -      return forwardScope;
    -    }
    -    default:
    -      throw new Error("Expected no more than 2 scope candidates");
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
    -function getContainingScopeTarget(target, scopeHandler, ancestorIndex = 0) {
    -  const {
    -    isReversed,
    -    editor,
    -    contentRange: { start, end }
    -  } = target;
    -  if (end.isEqual(start)) {
    -    let scope = getPreferredScopeTouchingPosition(scopeHandler, editor, start);
    -    if (scope == null) {
    -      return void 0;
    -    }
    -    if (ancestorIndex > 0) {
    -      scope = expandFromPosition(
    -        scopeHandler,
    -        editor,
    -        scope.domain.end,
    -        "forward",
    -        ancestorIndex,
    -        true
    -      );
    -    }
    -    if (scope == null) {
    -      return void 0;
    -    }
    -    return scope.getTargets(isReversed);
    -  }
    -  const startScope = expandFromPosition(
    -    scopeHandler,
    -    editor,
    -    start,
    -    "forward",
    -    ancestorIndex
    -  );
    -  if (startScope == null) {
    -    return void 0;
    -  }
    -  if (startScope.domain.contains(end)) {
    -    return startScope.getTargets(isReversed);
    -  }
    -  const endScope = expandFromPosition(
    -    scopeHandler,
    -    editor,
    -    end,
    -    "backward",
    -    ancestorIndex
    -  );
    -  if (endScope == null) {
    -    return void 0;
    -  }
    -  return constructScopeRangeTarget(isReversed, startScope, endScope);
    -}
    -function expandFromPosition(scopeHandler, editor, position, direction, ancestorIndex, allowAdjacentScopes = false) {
    -  let nextAncestorIndex = 0;
    -  for (const scope of scopeHandler.generateScopes(editor, position, direction, {
    -    containment: "required",
    -    allowAdjacentScopes
    -  })) {
    -    if (nextAncestorIndex === ancestorIndex) {
    -      return scope;
    -    }
    -    nextAncestorIndex += 1;
    -  }
    -  return void 0;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/ContainingScopeStage.ts
    -var ContainingScopeStage = class {
    -  constructor(modifierStageFactory, scopeHandlerFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const { scopeType, ancestorIndex = 0 } = this.modifier;
    -    const scopeHandler = this.scopeHandlerFactory.create(
    -      scopeType,
    -      target.editor.document.languageId
    -    );
    -    if (scopeHandler == null) {
    -      return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target);
    -    }
    -    const containingScope = getContainingScopeTarget(
    -      target,
    -      scopeHandler,
    -      ancestorIndex
    -    );
    -    if (containingScope == null) {
    -      if (scopeType.type === "collectionItem") {
    -        return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target);
    -      }
    -      throw new NoContainingScopeError(this.modifier.scopeType.type);
    -    }
    -    return containingScope;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts
    -var EveryScopeStage = class {
    -  constructor(modifierStageFactory, scopeHandlerFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const { scopeType } = this.modifier;
    -    const { editor, isReversed } = target;
    -    const scopeHandler = this.scopeHandlerFactory.create(
    -      scopeType,
    -      editor.document.languageId
    -    );
    -    if (scopeHandler == null) {
    -      return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target);
    -    }
    -    let scopes;
    -    if (target.hasExplicitRange) {
    -      scopes = getScopesOverlappingRange(
    -        scopeHandler,
    -        editor,
    -        target.contentRange
    -      );
    -      if (scopes.length === 1 && scopes[0].domain.contains(target.contentRange)) {
    -        scopes = void 0;
    -      }
    -    }
    -    if (scopes == null) {
    -      try {
    -        scopes = this.getDefaultIterationRange(
    -          scopeHandler,
    -          this.scopeHandlerFactory,
    -          target
    -        ).flatMap(
    -          (iterationRange) => getScopesOverlappingRange(scopeHandler, editor, iterationRange)
    -        );
    -      } catch (error) {
    -        if (!(error instanceof NoContainingScopeError)) {
    -          throw error;
    -        }
    -        scopes = [];
    -      }
    -    }
    -    if (scopes.length === 0) {
    -      if (scopeType.type === "collectionItem") {
    -        return this.modifierStageFactory.getLegacyScopeStage(this.modifier).run(target);
    -      }
    -      throw new NoContainingScopeError(scopeType.type);
    -    }
    -    return scopes.flatMap((scope) => scope.getTargets(isReversed));
    -  }
    -  getDefaultIterationRange(scopeHandler, scopeHandlerFactory, target) {
    -    const iterationScopeHandler = scopeHandlerFactory.create(
    -      scopeHandler.iterationScopeType,
    -      target.editor.document.languageId
    -    );
    -    if (iterationScopeHandler == null) {
    -      throw Error("Could not find iteration scope handler");
    -    }
    -    const iterationScopeTarget = getContainingScopeTarget(
    -      target,
    -      iterationScopeHandler
    -    );
    -    if (iterationScopeTarget == null) {
    -      throw new NoContainingScopeError(
    -        `iteration scope for ${scopeHandler.scopeType.type}`
    -      );
    -    }
    -    return iterationScopeTarget.map((target2) => target2.contentRange);
    -  }
    -};
    -function getScopesOverlappingRange(scopeHandler, editor, { start, end }) {
    -  return Array.from(
    -    scopeHandler.generateScopes(editor, start, "forward", {
    -      distalPosition: end,
    -      skipAncestorScopes: true,
    -      allowAdjacentScopes: scopeHandler.includeAdjacentInEvery
    -    })
    -  );
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/FilterStages.ts
    -var KeepContentFilterStage = class {
    -  constructor(modifier) {
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return target.contentText.trim() !== "" ? [target] : [];
    -  }
    -};
    -var KeepEmptyFilterStage = class {
    -  constructor(modifier) {
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return target.contentText.trim() === "" ? [target] : [];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/TargetPipelineRunner.ts
    -var import_lodash27 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/processTargets/marks/getActiveSelections.ts
    -function getActiveSelections(ide2) {
    -  return ide2.activeTextEditor?.selections.map((selection) => ({
    -    selection,
    -    editor: ide2.activeTextEditor
    -  })) ?? [];
    -}
    -
    -// ../cursorless-engine/src/processTargets/marks/ImplicitStage.ts
    -var ImplicitStage = class {
    -  run() {
    -    return getActiveSelections(ide()).map(
    -      (selection) => new ImplicitTarget({
    -        editor: selection.editor,
    -        isReversed: selection.selection.isReversed,
    -        contentRange: selection.selection
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/TargetPipelineRunner.ts
    -var TargetPipelineRunner = class {
    -  constructor(modifierStageFactory, markStageFactory) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.markStageFactory = markStageFactory;
    -  }
    -  /**
    -   * Converts the abstract target descriptions provided by the user to a
    -   * concrete representation usable by actions. Conceptually, the input will be
    -   * something like "the function call argument containing the cursor" and the
    -   * output will be something like "line 3, characters 5 through 10".
    -   * @param target The abstract target representations provided by the user
    -   * @param actionFinalStages Modifier stages contributed by the action that
    -   * should run at the end of the modifier pipeline
    -   * @returns A list of lists of typed selections, one list per input target.
    -   * Each typed selection includes the selection, as well the uri of the
    -   * document containing it, and potentially rich context information such as
    -   * how to remove the target
    -   */
    -  run(target, {
    -    actionFinalStages = [],
    -    noAutomaticTokenExpansion = false
    -  } = {}) {
    -    return new TargetPipeline(
    -      this.modifierStageFactory,
    -      this.markStageFactory,
    -      target,
    -      { actionFinalStages, noAutomaticTokenExpansion }
    -    ).run();
    -  }
    -};
    -var TargetPipeline = class {
    -  constructor(modifierStageFactory, markStageFactory, target, opts) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.markStageFactory = markStageFactory;
    -    this.target = target;
    -    this.opts = opts;
    -  }
    -  /**
    -   * Converts the abstract target descriptions provided by the user to a concrete
    -   * representation usable by actions. Conceptually, the input will be something
    -   * like "the function call argument containing the cursor" and the output will be something
    -   * like "line 3, characters 5 through 10".
    -   * @param context Captures the environment needed to convert the abstract target
    -   *    description given by the user to a concrete representation usable by
    -   *    actions
    -   * @param targets The abstract target representations provided by the user
    -   * @returns A list of lists of typed selections, one list per input target. Each
    -   * typed selection includes the selection, as well the uri of the document
    -   * containing it, and potentially rich context information such as how to remove
    -   * the target
    -   */
    -  run() {
    -    return uniqTargets(this.processTarget(this.target));
    -  }
    -  processTarget(target) {
    -    switch (target.type) {
    -      case "list":
    -        return target.elements.flatMap(
    -          (element) => this.processTarget(element)
    -        );
    -      case "range":
    -        return this.processRangeTarget(target);
    -      case "primitive":
    -      case "implicit":
    -        return this.processPrimitiveTarget(target);
    -    }
    -  }
    -  processRangeTarget(targetDesc) {
    -    const anchorTargets = this.processPrimitiveTarget(targetDesc.anchor);
    -    const activeTargets = this.processPrimitiveTarget(targetDesc.active);
    -    return (0, import_lodash27.zip)(anchorTargets, activeTargets).flatMap(
    -      ([anchorTarget, activeTarget]) => {
    -        if (anchorTarget == null || activeTarget == null) {
    -          throw new Error(
    -            "AnchorTargets and activeTargets lengths don't match"
    -          );
    -        }
    -        switch (targetDesc.rangeType) {
    -          case "continuous":
    -            return this.processContinuousRangeTarget(
    -              anchorTarget,
    -              activeTarget,
    -              targetDesc
    -            );
    -          case "vertical":
    -            return targetsToVerticalTarget(
    -              anchorTarget,
    -              activeTarget,
    -              targetDesc.excludeAnchor,
    -              targetDesc.excludeActive
    -            );
    -        }
    -      }
    -    );
    -  }
    -  processContinuousRangeTarget(anchorTarget, activeTarget, { excludeAnchor, excludeActive, exclusionScopeType }) {
    -    if (exclusionScopeType == null) {
    -      return [
    -        targetsToContinuousTarget(
    -          anchorTarget,
    -          activeTarget,
    -          excludeAnchor,
    -          excludeActive
    -        )
    -      ];
    -    }
    -    const isReversed = calcIsReversed(anchorTarget, activeTarget);
    -    return [
    -      targetsToContinuousTarget(
    -        excludeAnchor ? getExcludedScope(
    -          this.modifierStageFactory,
    -          anchorTarget,
    -          exclusionScopeType,
    -          isReversed ? "backward" : "forward"
    -        ) : anchorTarget,
    -        excludeActive ? getExcludedScope(
    -          this.modifierStageFactory,
    -          activeTarget,
    -          exclusionScopeType,
    -          isReversed ? "forward" : "backward"
    -        ) : activeTarget,
    -        false,
    -        false
    -      )
    -    ];
    -  }
    -  /**
    -   * This function implements the modifier pipeline that is at the core of Cursorless target processing.
    -   * It proceeds as follows:
    -   *
    -   * 1. It begins by getting the output from the {@link markStage} (eg "air", "this", etc).
    -   * This output is a list of zero or more targets.
    -   * 2. It then constructs a pipeline from the modifiers on the {@link targetDescriptor}
    -   * 3. It then runs each pipeline stage in turn, feeding the first stage with
    -   * the list of targets output from the {@link markStage}.  For each pipeline
    -   * stage, it passes the targets from the previous stage to the pipeline stage
    -   * one by one.  For each target, the stage will output a list of zero or more output
    -   * targets.  It then concatenates all of these lists into the list of targets
    -   * that will be passed to the next pipeline stage.  This process is similar to
    -   * the way that [jq](https://stedolan.github.io/jq/) processes its inputs.
    -   *
    -   * @param targetDescriptor The description of the target, consisting of a mark
    -   * and zero or more modifiers
    -   * @returns The output of running the modifier pipeline on the output from the mark
    -   */
    -  processPrimitiveTarget(targetDescriptor) {
    -    let markStage;
    -    let targetModifierStages;
    -    if (targetDescriptor.type === "implicit") {
    -      markStage = new ImplicitStage();
    -      targetModifierStages = [];
    -    } else {
    -      markStage = this.markStageFactory.create(targetDescriptor.mark);
    -      targetModifierStages = getModifierStagesFromTargetModifiers(
    -        this.modifierStageFactory,
    -        targetDescriptor.modifiers
    -      );
    -    }
    -    const markOutputTargets = markStage.run();
    -    const modifierStages = [
    -      ...targetModifierStages,
    -      ...this.opts.actionFinalStages,
    -      // This performs auto-expansion to token when you say eg "take this" with an
    -      // empty selection
    -      ...this.opts.noAutomaticTokenExpansion ? [] : [new ContainingTokenIfUntypedEmptyStage(this.modifierStageFactory)]
    -    ];
    -    return processModifierStages(modifierStages, markOutputTargets);
    -  }
    -};
    -function getModifierStagesFromTargetModifiers(modifierStageFactory, targetModifiers) {
    -  return targetModifiers.map(modifierStageFactory.create).reverse();
    -}
    -function processModifierStages(modifierStages, targets) {
    -  modifierStages.forEach((stage) => {
    -    targets = targets.flatMap((target) => stage.run(target));
    -  });
    -  return targets;
    -}
    -function getExcludedScope(modifierStageFactory, target, scopeType, direction) {
    -  return modifierStageFactory.create({
    -    type: "relativeScope",
    -    scopeType,
    -    direction,
    -    length: 1,
    -    offset: 1
    -  }).run(target)[0];
    -}
    -function calcIsReversed(anchor, active) {
    -  if (anchor.contentRange.start.isAfter(active.contentRange.start)) {
    -    return true;
    -  }
    -  if (anchor.contentRange.start.isBefore(active.contentRange.start)) {
    -    return false;
    -  }
    -  return anchor.contentRange.end.isAfter(active.contentRange.end);
    -}
    -function uniqTargets(array) {
    -  return uniqWithHash(
    -    array,
    -    (a, b) => a.isEqual(b),
    -    (a) => a.contentRange.concise()
    -  );
    -}
    -function ensureSingleEditor(anchorTarget, activeTarget) {
    -  if (anchorTarget.editor !== activeTarget.editor) {
    -    throw new Error("Cannot form range between targets in different editors");
    -  }
    -}
    -function targetsToContinuousTarget(anchorTarget, activeTarget, excludeAnchor = false, excludeActive = false) {
    -  ensureSingleEditor(anchorTarget, activeTarget);
    -  const isReversed = calcIsReversed(anchorTarget, activeTarget);
    -  const startTarget = isReversed ? activeTarget : anchorTarget;
    -  const endTarget = isReversed ? anchorTarget : activeTarget;
    -  const excludeStart = isReversed ? excludeActive : excludeAnchor;
    -  const excludeEnd = isReversed ? excludeAnchor : excludeActive;
    -  return createContinuousRangeTarget(
    -    isReversed,
    -    startTarget,
    -    endTarget,
    -    !excludeStart,
    -    !excludeEnd
    -  );
    -}
    -function targetsToVerticalTarget(anchorTarget, activeTarget, excludeAnchor, excludeActive) {
    -  ensureSingleEditor(anchorTarget, activeTarget);
    -  const isReversed = calcIsReversed(anchorTarget, activeTarget);
    -  const delta = isReversed ? -1 : 1;
    -  const anchorPosition = isReversed ? anchorTarget.contentRange.start : anchorTarget.contentRange.end;
    -  const anchorLine = anchorPosition.line + (excludeAnchor ? delta : 0);
    -  const activePosition = isReversed ? activeTarget.contentRange.start : activeTarget.contentRange.end;
    -  const activeLine = activePosition.line - (excludeActive ? delta : 0);
    -  const results = [];
    -  for (let i = anchorLine; true; i += delta) {
    -    const contentRange = new Range(
    -      i,
    -      anchorTarget.contentRange.start.character,
    -      i,
    -      anchorTarget.contentRange.end.character
    -    );
    -    results.push(
    -      new PlainTarget({
    -        editor: anchorTarget.editor,
    -        isReversed: anchorTarget.isReversed,
    -        contentRange,
    -        insertionDelimiter: anchorTarget.insertionDelimiter
    -      })
    -    );
    -    if (i === activeLine) {
    -      return results;
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/HeadTailStage.ts
    -var HeadTailStage = class {
    -  constructor(modifierStageFactory, isReversed, modifiers) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.isReversed = isReversed;
    -    this.modifiers = modifiers;
    -  }
    -  run(target) {
    -    const modifiers = this.modifiers ?? [
    -      {
    -        type: "containingScope",
    -        scopeType: { type: "line" }
    -      }
    -    ];
    -    const modifierStages = getModifierStagesFromTargetModifiers(
    -      this.modifierStageFactory,
    -      modifiers
    -    );
    -    const modifiedTargets = processModifierStages(modifierStages, [target]);
    -    return modifiedTargets.map((modifiedTarget) => {
    -      const contentRange = this.constructContentRange(
    -        target.contentRange,
    -        modifiedTarget.contentRange
    -      );
    -      return new TokenTarget({
    -        editor: target.editor,
    -        isReversed: this.isReversed,
    -        contentRange
    -      });
    -    });
    -  }
    -};
    -var HeadStage = class extends HeadTailStage {
    -  constructor(modifierStageFactory, modifier) {
    -    super(modifierStageFactory, true, modifier.modifiers);
    -  }
    -  constructContentRange(originalRange, modifiedRange) {
    -    return new Range(modifiedRange.start, originalRange.end);
    -  }
    -};
    -var TailStage = class extends HeadTailStage {
    -  constructor(modifierStageFactory, modifier) {
    -    super(modifierStageFactory, false, modifier.modifiers);
    -  }
    -  constructContentRange(originalRange, modifiedRange) {
    -    return new Range(originalRange.start, modifiedRange.end);
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/InstanceStage.ts
    -var import_lodash28 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/processTargets/modifiers/listUtils.ts
    -var OutOfRangeError = class extends Error {
    -  constructor() {
    -    super("Scope index out of range");
    -    this.name = "OutOfRangeError";
    -  }
    -};
    -function sliceStrict(targets, startIndex, endIndex) {
    -  assertIndices(targets, startIndex, endIndex);
    -  return targets.slice(startIndex, endIndex + 1);
    -}
    -function assertIndices(targets, startIndex, endIndex) {
    -  if (startIndex < 0 || endIndex >= targets.length) {
    -    throw new OutOfRangeError();
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/InstanceStage.ts
    -var InstanceStage = class {
    -  constructor(modifierStageFactory, storedTargets, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.storedTargets = storedTargets;
    -    this.modifier = modifier;
    -  }
    -  run(inputTarget) {
    -    const target = new ContainingTokenIfUntypedEmptyStage(
    -      this.modifierStageFactory
    -    ).run(inputTarget)[0];
    -    switch (this.modifier.type) {
    -      case "everyScope":
    -        return this.handleEveryScope(target);
    -      case "ordinalScope":
    -        return this.handleOrdinalScope(target, this.modifier);
    -      case "relativeScope":
    -        return this.handleRelativeScope(target, this.modifier);
    -      default:
    -        throw Error(`${this.modifier.type} instance scope not supported`);
    -    }
    -  }
    -  handleEveryScope(target) {
    -    return Array.from(
    -      flatmap(
    -        this.getEveryRanges(target),
    -        ([editor, searchRange]) => this.getTargetIterable(target, editor, searchRange, "forward")
    -      )
    -    );
    -  }
    -  handleOrdinalScope(target, { start, length }) {
    -    return this.getEveryRanges(target).flatMap(
    -      ([editor, searchRange]) => takeFromOffset(
    -        this.getTargetIterable(
    -          target,
    -          editor,
    -          searchRange,
    -          start >= 0 ? "forward" : "backward"
    -        ),
    -        start >= 0 ? start : -(length + start),
    -        length
    -      )
    -    );
    -  }
    -  handleRelativeScope(target, { direction, offset, length }) {
    -    const referenceTargets = this.storedTargets.get("instanceReference") ?? [
    -      target
    -    ];
    -    return referenceTargets.flatMap((referenceTarget) => {
    -      const { editor } = referenceTarget;
    -      const iterationRange = direction === "forward" ? new Range(
    -        offset === 0 ? referenceTarget.contentRange.start : referenceTarget.contentRange.end,
    -        editor.document.range.end
    -      ) : new Range(
    -        editor.document.range.start,
    -        offset === 0 ? referenceTarget.contentRange.end : referenceTarget.contentRange.start
    -      );
    -      return takeFromOffset(
    -        this.getTargetIterable(target, editor, iterationRange, direction),
    -        offset === 0 ? 0 : offset - 1,
    -        length
    -      );
    -    });
    -  }
    -  getEveryRanges({
    -    editor: targetEditor
    -  }) {
    -    return this.storedTargets.get("instanceReference")?.map(({ editor, contentRange }) => [editor, contentRange]) ?? [[targetEditor, targetEditor.document.range]];
    -  }
    -  getTargetIterable(target, editor, searchRange, direction) {
    -    const iterable = imap(
    -      generateMatchesInRange(
    -        new RegExp((0, import_lodash28.escapeRegExp)(target.contentText), "g"),
    -        editor,
    -        searchRange,
    -        direction
    -      ),
    -      (range4) => new PlainTarget({
    -        contentRange: range4,
    -        editor,
    -        isReversed: false,
    -        isToken: false
    -      })
    -    );
    -    const filterScopeType = getFilterScopeType(target);
    -    if (filterScopeType != null) {
    -      const containingScopeModifier = this.modifierStageFactory.create({
    -        type: "containingScope",
    -        scopeType: filterScopeType
    -      });
    -      return ifilter(
    -        imap(iterable, (target2) => {
    -          try {
    -            const containingScope = containingScopeModifier.run(target2);
    -            if (containingScope.length === 1 && containingScope[0].contentRange.isRangeEqual(target2.contentRange)) {
    -              return containingScope[0];
    -            }
    -            return null;
    -          } catch (err) {
    -            return null;
    -          }
    -        }),
    -        (target2) => target2 != null
    -      );
    -    }
    -    return iterable;
    -  }
    -};
    -function getFilterScopeType(target) {
    -  if (target.isLine) {
    -    return { type: "line" };
    -  }
    -  if (target.isToken) {
    -    return { type: "token" };
    -  }
    -  if (target.isWord) {
    -    return { type: "word" };
    -  }
    -  return null;
    -}
    -function takeFromOffset(iterable, offset, count2) {
    -  Array.from(itake(offset, iterable));
    -  const items = Array.from(itake(count2, iterable));
    -  if (items.length < count2) {
    -    throw new OutOfRangeError();
    -  }
    -  return items;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
    -var containingSurroundingPairIfUntypedModifier = {
    -  type: "modifyIfUntyped",
    -  modifier: {
    -    type: "containingScope",
    -    scopeType: { type: "surroundingPair", delimiter: "any" }
    -  }
    -};
    -var containingLineIfUntypedModifier = {
    -  type: "modifyIfUntyped",
    -  modifier: {
    -    type: "containingScope",
    -    scopeType: { type: "line" }
    -  }
    -};
    -var containingTokenIfUntypedModifier = {
    -  type: "modifyIfUntyped",
    -  modifier: {
    -    type: "containingScope",
    -    scopeType: { type: "token" }
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/InteriorStage.ts
    -var InteriorOnlyStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return this.modifierStageFactory.create(containingSurroundingPairIfUntypedModifier).run(target).flatMap((target2) => target2.getInteriorStrict());
    -  }
    -};
    -var ExcludeInteriorStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return this.modifierStageFactory.create(containingSurroundingPairIfUntypedModifier).run(target).flatMap((target2) => target2.getBoundaryStrict());
    -  }
    -};
    -
    -// ../cursorless-engine/src/util/nodeFinders.ts
    -var nodeFinder = (isTargetNode) => {
    -  return (node) => {
    -    return isTargetNode(node) ? node : null;
    -  };
    -};
    -function leadingSiblingNodeFinder(nodeFinder2) {
    -  return (node) => {
    -    let currentNode = node;
    -    while (currentNode != null) {
    -      const returnNode = nodeFinder2(currentNode);
    -      if (returnNode != null) {
    -        return returnNode;
    -      }
    -      currentNode = currentNode.previousSibling;
    -    }
    -    return null;
    -  };
    -}
    -function chainedNodeFinder(...nodeFinders) {
    -  return (node) => {
    -    let currentNode = node;
    -    for (const nodeFinder2 of nodeFinders) {
    -      currentNode = nodeFinder2(currentNode);
    -      if (currentNode == null) {
    -        return null;
    -      }
    -    }
    -    return currentNode;
    -  };
    -}
    -function ancestorChainNodeFinder(nodeToReturn, ...nodeFinders) {
    -  return (node) => {
    -    let currentNode = node;
    -    const nodeList = [];
    -    const nodeFindersReversed = [...nodeFinders].reverse();
    -    for (const nodeFinder2 of nodeFindersReversed) {
    -      if (currentNode == null) {
    -        return null;
    -      }
    -      currentNode = nodeFinder2(currentNode);
    -      if (currentNode == null) {
    -        return null;
    -      }
    -      nodeList.push(currentNode);
    -      currentNode = currentNode.parent ?? null;
    -    }
    -    return nodeList.reverse()[nodeToReturn];
    -  };
    -}
    -var typedNodeFinder = (...typeNames) => {
    -  return nodeFinder((node) => typeNames.includes(node.type));
    -};
    -var toPosition = (point) => new Position(point.row, point.column);
    -var argumentNodeFinder = (...parentTypes) => {
    -  const left = ["(", "{", "[", "<"];
    -  const right = [")", "}", "]", ">"];
    -  const delimiters = left.concat(right);
    -  const isType = (node, typeNames) => node != null && typeNames.includes(node.type);
    -  const isOk = (node) => node != null && !isType(node, delimiters);
    -  return (node, selection) => {
    -    let resultNode;
    -    const { start, end } = selection;
    -    if (isType(node.parent, parentTypes)) {
    -      if (isType(node, left)) {
    -        resultNode = node.nextNamedSibling;
    -      } else if (isType(node, right)) {
    -        resultNode = node.previousNamedSibling;
    -      } else if (node.type === ",") {
    -        resultNode = end.isBeforeOrEqual(toPosition(node.startPosition)) ? node.previousNamedSibling : node.nextNamedSibling;
    -      } else {
    -        resultNode = node;
    -      }
    -      return isOk(resultNode) ? resultNode : null;
    -    } else if (isType(node, parentTypes)) {
    -      const children = [...node.children];
    -      const childRight = children.find(
    -        ({ startPosition }) => toPosition(startPosition).isAfterOrEqual(end)
    -      ) ?? null;
    -      if (isOk(childRight)) {
    -        return childRight;
    -      }
    -      children.reverse();
    -      const childLeft = children.find(
    -        ({ endPosition }) => toPosition(endPosition).isBeforeOrEqual(start)
    -      ) ?? null;
    -      if (isOk(childLeft)) {
    -        return childLeft;
    -      }
    -    }
    -    return null;
    -  };
    -};
    -function patternFinder(...patterns) {
    -  const parsedPatterns = parsePatternStrings(patterns);
    -  return (node) => {
    -    for (const pattern of parsedPatterns) {
    -      const match2 = tryPatternMatch(node, pattern);
    -      if (match2 != null) {
    -        return match2;
    -      }
    -    }
    -    return null;
    -  };
    -}
    -function parsePatternStrings(patternStrings) {
    -  return patternStrings.map(
    -    (patternString) => patternString.split(".").map((pattern) => new Pattern(pattern))
    -  );
    -}
    -function tryPatternMatch(node, patterns) {
    -  let result = searchNodeAscending(node, patterns);
    -  if (!result && patterns.length > 1) {
    -    result = searchNodeDescending(node, patterns);
    -  }
    -  let resultNode = null;
    -  let resultPattern;
    -  if (result != null) {
    -    [resultNode, resultPattern] = result;
    -  }
    -  if (resultNode != null && resultPattern != null && resultPattern.fields != null) {
    -    resultPattern.fields.forEach((field) => {
    -      resultNode = (field.isIndex ? resultNode?.namedChild(field.value) : resultNode?.childForFieldName(field.value)) ?? null;
    -    });
    -  }
    -  return resultNode;
    -}
    -function searchNodeAscending(node, patterns) {
    -  let result = null;
    -  let currentNode = node;
    -  for (let i = patterns.length - 1; i > -1; --i) {
    -    const pattern = patterns[i];
    -    if (currentNode == null || !pattern.typeEquals(currentNode)) {
    -      if (pattern.isOptional) {
    -        continue;
    -      }
    -      return null;
    -    }
    -    if (!result || !result[1].isImportant) {
    -      result = [currentNode, pattern];
    -    }
    -    currentNode = currentNode.parent;
    -  }
    -  return result;
    -}
    -function searchNodeDescending(node, patterns) {
    -  let result = null;
    -  let currentNode = node;
    -  for (let i = 0; i < patterns.length; ++i) {
    -    const pattern = patterns[i];
    -    if (currentNode == null || !pattern.typeEquals(currentNode)) {
    -      if (pattern.isOptional) {
    -        continue;
    -      }
    -      return null;
    -    }
    -    if (!result || pattern.isImportant) {
    -      result = [currentNode, pattern];
    -    }
    -    if (i + 1 < patterns.length) {
    -      const children = currentNode.namedChildren.filter(
    -        (node2) => patterns[i + 1].typeEquals(node2)
    -      );
    -      currentNode = children.length === 1 ? children[0] : null;
    -    }
    -  }
    -  return result;
    -}
    -var Pattern = class {
    -  constructor(pattern) {
    -    this.anyType = false;
    -    this.notType = false;
    -    this.type = pattern.match(/^[\w*~]+/)[0];
    -    if (this.type === "*") {
    -      this.anyType = true;
    -    } else if (this.type.startsWith("~")) {
    -      this.type = this.type.slice(1);
    -      this.notType = true;
    -    }
    -    this.isImportant = pattern.indexOf("!") > -1;
    -    this.isOptional = pattern.indexOf("?") > -1;
    -    this.fields = [...pattern.matchAll(/(?<=\[).+?(?=\])/g)].map((m) => m[0]).map((field) => {
    -      if (/\d+/.test(field)) {
    -        return {
    -          isIndex: true,
    -          value: Number(field)
    -        };
    -      }
    -      return {
    -        isIndex: false,
    -        value: field
    -      };
    -    });
    -  }
    -  typeEquals(node) {
    -    if (this.anyType) {
    -      return true;
    -    }
    -    if (this.notType) {
    -      return this.type !== node.type;
    -    }
    -    return this.type === node.type;
    -  }
    -};
    -
    -// ../cursorless-engine/src/util/nodeMatchers.ts
    -function matcher(finder, selector = simpleSelectionExtractor) {
    -  return function(selection, node) {
    -    const targetNode = finder(node, selection.selection);
    -    return targetNode != null ? [
    -      {
    -        node: targetNode,
    -        selection: selector(selection.editor, targetNode)
    -      }
    -    ] : null;
    -  };
    -}
    -function chainedMatcher(finders, selector = simpleSelectionExtractor) {
    -  const nodeFinder2 = chainedNodeFinder(...finders);
    -  return function(selection, initialNode) {
    -    const returnNode = nodeFinder2(initialNode);
    -    if (returnNode == null) {
    -      return null;
    -    }
    -    return [
    -      {
    -        node: returnNode,
    -        selection: selector(selection.editor, returnNode)
    -      }
    -    ];
    -  };
    -}
    -function ancestorChainNodeMatcher(nodeFinders, nodeToReturn = 0, selector = simpleSelectionExtractor) {
    -  return matcher(
    -    ancestorChainNodeFinder(nodeToReturn, ...nodeFinders),
    -    selector
    -  );
    -}
    -function typeMatcher(...typeNames) {
    -  return matcher(typedNodeFinder(...typeNames));
    -}
    -function patternMatcher(...patterns) {
    -  return matcher(patternFinder(...patterns));
    -}
    -function argumentMatcher(...parentTypes) {
    -  return matcher(
    -    argumentNodeFinder(...parentTypes),
    -    argumentSelectionExtractor()
    -  );
    -}
    -function conditionMatcher(...patterns) {
    -  return matcher(patternFinder(...patterns), unwrapSelectionExtractor);
    -}
    -function leadingMatcher(patterns, delimiters = []) {
    -  return matcher(
    -    patternFinder(...patterns),
    -    selectWithLeadingDelimiter(...delimiters)
    -  );
    -}
    -function trailingMatcher(patterns, delimiters = []) {
    -  return matcher(
    -    patternFinder(...patterns),
    -    selectWithTrailingDelimiter(...delimiters)
    -  );
    -}
    -function cascadingMatcher(...matchers2) {
    -  return (selection, node) => {
    -    for (const matcher2 of matchers2) {
    -      const match2 = matcher2(selection, node);
    -      if (match2 != null) {
    -        return match2;
    -      }
    -    }
    -    return null;
    -  };
    -}
    -var notSupported = (_selection, _node) => {
    -  throw new Error("Node type not supported");
    -};
    -function createPatternMatchers(nodeMatchers14) {
    -  return Object.freeze(
    -    Object.fromEntries(
    -      unsafeKeys(nodeMatchers14).map((scopeType) => {
    -        const matcher2 = nodeMatchers14[scopeType];
    -        if (Array.isArray(matcher2)) {
    -          return [scopeType, patternMatcher(...matcher2)];
    -        } else if (typeof matcher2 === "string") {
    -          return [scopeType, patternMatcher(matcher2)];
    -        } else {
    -          return [scopeType, matcher2];
    -        }
    -      })
    -    )
    -  );
    -}
    -
    -// ../cursorless-engine/src/languages/clojure.ts
    -var import_lodash29 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/treeSitterUtils.ts
    -function getChildNodesForFieldName(node, fieldName) {
    -  const treeCursor = node.walk();
    -  treeCursor.gotoFirstChild();
    -  const ret = [];
    -  let hasNext = true;
    -  while (hasNext) {
    -    if (treeCursor.currentFieldName() === fieldName) {
    -      ret.push(treeCursor.currentNode());
    -    }
    -    hasNext = treeCursor.gotoNextSibling();
    -  }
    -  return ret;
    -}
    -function getAncestors(node, includeNode = true) {
    -  const ancestors = includeNode ? [node] : [];
    -  for (let currentNode = node.parent; currentNode != null; currentNode = currentNode.parent) {
    -    ancestors.push(currentNode);
    -  }
    -  return ancestors;
    -}
    -function isContainedInErrorNode(node) {
    -  return getAncestors(node).some((ancestor) => ancestor.type === "ERROR");
    -}
    -
    -// ../cursorless-engine/src/languages/clojure.ts
    -function parityNodeFinder(parentFinder, parity) {
    -  return indexNodeFinder(
    -    parentFinder,
    -    (nodeIndex) => Math.floor(nodeIndex / 2) * 2 + parity
    -  );
    -}
    -function mapParityNodeFinder(parity) {
    -  return parityNodeFinder(patternFinder("map_lit"), parity);
    -}
    -function indexNodeFinder(parentFinder, indexTransform) {
    -  return (node) => {
    -    const parent = node.parent;
    -    if (parent == null || parentFinder(parent) == null) {
    -      return null;
    -    }
    -    const valueNodes = getValueNodes(parent);
    -    const nodeIndex = valueNodes.findIndex(({ id }) => id === node.id);
    -    if (nodeIndex === -1) {
    -      return null;
    -    }
    -    const desiredIndex = indexTransform(nodeIndex);
    -    if (desiredIndex === -1) {
    -      return null;
    -    }
    -    return valueNodes[desiredIndex];
    -  };
    -}
    -function itemFinder() {
    -  return indexNodeFinder(
    -    (node) => node,
    -    (nodeIndex) => nodeIndex
    -  );
    -}
    -var getValueNodes = (node) => getChildNodesForFieldName(node, "value");
    -var functionCallPattern = "~quoting_lit.list_lit!";
    -var functionCallFinder = patternFinder(functionCallPattern);
    -function functionNameBasedFinder(...names) {
    -  return (node) => {
    -    const functionCallNode = functionCallFinder(node);
    -    if (functionCallNode == null) {
    -      return null;
    -    }
    -    const functionNode = getValueNodes(functionCallNode)[0];
    -    return names.includes(functionNode?.text) ? functionCallNode : null;
    -  };
    -}
    -function functionNameBasedMatcher(...names) {
    -  return matcher(functionNameBasedFinder(...names));
    -}
    -var functionFinder = functionNameBasedFinder("defn", "defmacro");
    -var functionNameMatcher = chainedMatcher([
    -  functionFinder,
    -  (functionNode) => getValueNodes(functionNode)[1]
    -]);
    -var ifStatementFinder = functionNameBasedFinder(
    -  "if",
    -  "if-let",
    -  "when",
    -  "when-let"
    -);
    -var ifStatementMatcher = matcher(ifStatementFinder);
    -var nodeMatchers = {
    -  map: "map_lit",
    -  collectionKey: matcher(mapParityNodeFinder(0)),
    -  collectionItem: cascadingMatcher(
    -    // Treat each key value pair as a single item if we're in a map
    -    matcher(
    -      mapParityNodeFinder(0),
    -      delimitedSelector(
    -        (node) => node.type === "{" || node.type === "}",
    -        ", ",
    -        import_lodash29.identity,
    -        mapParityNodeFinder(1)
    -      )
    -    ),
    -    // Otherwise just treat every item within a list as an item
    -    matcher(itemFinder())
    -  ),
    -  value: matcher(mapParityNodeFinder(1)),
    -  // FIXME: Handle formal parameters
    -  argumentOrParameter: matcher(
    -    indexNodeFinder(
    -      patternFinder(functionCallPattern),
    -      (nodeIndex) => nodeIndex !== 0 ? nodeIndex : -1
    -    )
    -  ),
    -  // A list is either a vector literal or a quoted list literal
    -  list: ["vec_lit", "quoting_lit.list_lit"],
    -  functionCall: functionCallPattern,
    -  functionCallee: chainedMatcher([
    -    functionCallFinder,
    -    (functionNode) => getValueNodes(functionNode)[0]
    -  ]),
    -  namedFunction: matcher(functionFinder),
    -  functionName: functionNameMatcher,
    -  // FIXME: Handle `let` declarations, defs, etc
    -  name: functionNameMatcher,
    -  anonymousFunction: cascadingMatcher(
    -    functionNameBasedMatcher("fn"),
    -    patternMatcher("anon_fn_lit")
    -  ),
    -  ifStatement: ifStatementMatcher,
    -  condition: chainedMatcher([
    -    ifStatementFinder,
    -    (node) => getValueNodes(node)[1]
    -  ])
    -};
    -var clojure_default = createPatternMatchers(nodeMatchers);
    -
    -// ../cursorless-engine/src/languages/cpp.ts
    -var STATEMENT_TYPES = [
    -  "_statement",
    -  "_type_specifier",
    -  "alias_declaration",
    -  "declaration",
    -  "function_definition",
    -  "linkage_specification",
    -  "namespace_definition",
    -  "preproc_call",
    -  "preproc_def",
    -  "preproc_function_def",
    -  "preproc_if",
    -  "preproc_ifdef",
    -  "preproc_include",
    -  "static_assert_declaration",
    -  "template_declaration",
    -  "template_instantiation",
    -  "type_definition",
    -  "using_declaration",
    -  "break_statement",
    -  "case_statement",
    -  "compound_statement",
    -  "continue_statement",
    -  "do_statement",
    -  "expression_statement",
    -  "for_range_loop",
    -  "for_statement",
    -  "goto_statement",
    -  "if_statement",
    -  "labeled_statement",
    -  "return_statement",
    -  "switch_statement",
    -  "throw_statement",
    -  "try_statement",
    -  "while_statement"
    -];
    -var TYPE_TYPES = [
    -  "auto",
    -  "class_specifier",
    -  "decltype",
    -  "dependent_type",
    -  "enum_specifier",
    -  "primitive_type",
    -  "scoped_type_identifier",
    -  "sized_type_specifier",
    -  "struct_specifier",
    -  "template_type",
    -  "type_identifier",
    -  "union_specifier"
    -];
    -var nodeMatchers2 = {
    -  statement: STATEMENT_TYPES,
    -  class: [
    -    "class_specifier",
    -    "struct_specifier",
    -    "enum_specifier",
    -    "union_specifier"
    -  ],
    -  className: [
    -    "class_specifier[name]",
    -    "struct_specifier[name]",
    -    "enum_specifier[name]",
    -    "union_specifier[name]",
    -    "function_definition[declarator][declarator][namespace]"
    -    // void ClassName::method() {}
    -  ],
    -  ["private.switchStatementSubject"]: "switch_statement[condition][value]",
    -  anonymousFunction: "lambda_expression",
    -  list: "initializer_list",
    -  functionCall: ["call_expression", "declaration.init_declarator!"],
    -  functionCallee: [
    -    "call_expression[function]",
    -    "declaration.init_declarator[declarator]!"
    -  ],
    -  name: [
    -    "*[declarator][declarator][name]",
    -    "*[declarator][name]",
    -    "*[declarator][declarator]",
    -    "*[declarator]",
    -    "assignment_expression[left]",
    -    "*[name]"
    -  ],
    -  namedFunction: ["function_definition", "declaration.function_declarator"],
    -  type: trailingMatcher(TYPE_TYPES.concat(["*[type]"])),
    -  functionName: [
    -    "function_definition[declarator][declarator][name]",
    -    // void C::funcName() {}
    -    "function_definition[declarator][declarator]",
    -    // void funcName() {}
    -    "declaration.function_declarator![declarator]"
    -    // void funcName();
    -  ],
    -  value: leadingMatcher(
    -    [
    -      "*[declarator][value]",
    -      "*[value]",
    -      "assignment_expression[right]",
    -      "optional_parameter_declaration[default_value]"
    -    ],
    -    [":", "=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>="]
    -  ),
    -  argumentOrParameter: argumentMatcher("parameter_list", "argument_list"),
    -  attribute: "attribute"
    -};
    -var cpp_default = createPatternMatchers(nodeMatchers2);
    -
    -// ../cursorless-engine/src/languages/csharp.ts
    -var STATEMENT_TYPES2 = [
    -  "class_declaration",
    -  "constructor_declaration",
    -  "conversion_operator_declaration",
    -  "delegate_declaration",
    -  "destructor_declaration",
    -  "enum_declaration",
    -  "event_declaration",
    -  "event_field_declaration",
    -  "field_declaration",
    -  "indexer_declaration",
    -  "interface_declaration",
    -  "method_declaration",
    -  "namespace_declaration",
    -  "operator_declaration",
    -  "property_declaration",
    -  "record_declaration",
    -  "struct_declaration",
    -  "using_directive",
    -  "block",
    -  "break_statement",
    -  "checked_statement",
    -  "continue_statement",
    -  "do_statement",
    -  "empty_statement",
    -  "expression_statement",
    -  "fixed_statement",
    -  "for_each_statement",
    -  "for_statement",
    -  "goto_statement",
    -  "if_statement",
    -  "labeled_statement",
    -  "local_declaration_statement",
    -  "local_function_statement",
    -  "lock_statement",
    -  "return_statement",
    -  "switch_statement",
    -  "throw_statement",
    -  "try_statement",
    -  "unsafe_statement",
    -  "using_statement",
    -  "while_statement",
    -  "yield_statement"
    -];
    -var NAMED_FUNCTION_TYPES = [
    -  "delegate_declaration",
    -  "local_function_statement",
    -  "method_declaration"
    -];
    -var LIST_TYPES_WITH_INITIALIZERS_AS_CHILDREN = [
    -  "array_creation_expression",
    -  "implicit_array_creation_expression",
    -  "implicit_stack_alloc_array_creation_expression",
    -  "stack_alloc_array_creation_expression"
    -];
    -var OBJECT_TYPES_WITH_INITIALIZERS_AS_CHILDREN = [
    -  "implicit_object_creation_expression"
    -];
    -var getChildInitializerNode = (node) => node.children.find((child) => child.type === "initializer_expression") ?? null;
    -var getInitializerNode = (node) => node.childForFieldName("initializer");
    -var makeDelimitedSelector = (leftType, rightType) => delimitedSelector(
    -  (node) => node.type === "," || node.type === leftType || node.type === rightType,
    -  ", "
    -);
    -var getMapMatchers = {
    -  map: cascadingMatcher(
    -    chainedMatcher([
    -      typedNodeFinder(...OBJECT_TYPES_WITH_INITIALIZERS_AS_CHILDREN),
    -      getChildInitializerNode
    -    ]),
    -    chainedMatcher([
    -      typedNodeFinder("object_creation_expression"),
    -      getInitializerNode
    -    ])
    -  ),
    -  collectionKey: chainedMatcher([
    -    typedNodeFinder("assignment_expression"),
    -    (node) => node.childForFieldName("left")
    -  ]),
    -  value: leadingMatcher(
    -    [
    -      "variable_declaration?.variable_declarator[1][0]!",
    -      "assignment_expression[right]"
    -    ],
    -    ["assignment_operator"]
    -  ),
    -  list: cascadingMatcher(
    -    chainedMatcher([
    -      typedNodeFinder(...LIST_TYPES_WITH_INITIALIZERS_AS_CHILDREN),
    -      getChildInitializerNode
    -    ]),
    -    chainedMatcher([
    -      typedNodeFinder("object_creation_expression"),
    -      (node) => node.childForFieldName("initializer")
    -    ])
    -  ),
    -  string: typeMatcher("string_literal")
    -};
    -var nodeMatchers3 = {
    -  ...getMapMatchers,
    -  className: "class_declaration[name]",
    -  condition: cascadingMatcher(
    -    conditionMatcher("*[condition]"),
    -    patternMatcher("while_statement[0]")
    -  ),
    -  ["private.switchStatementSubject"]: [
    -    "switch_statement.tuple_expression!",
    -    "switch_statement[value]"
    -  ],
    -  statement: STATEMENT_TYPES2,
    -  anonymousFunction: "lambda_expression",
    -  functionCall: ["invocation_expression", "object_creation_expression"],
    -  functionCallee: cascadingMatcher(
    -    patternMatcher("invocation_expression[function]"),
    -    matcher(
    -      patternFinder("object_creation_expression"),
    -      childRangeSelector(["argument_list"], [])
    -    )
    -  ),
    -  argumentOrParameter: matcher(
    -    nodeFinder(
    -      (node) => node.parent?.type === "argument_list" || node.type === "parameter"
    -    ),
    -    makeDelimitedSelector("(", ")")
    -  ),
    -  namedFunction: NAMED_FUNCTION_TYPES,
    -  functionName: NAMED_FUNCTION_TYPES.map((t) => t + "[name]"),
    -  comment: "comment",
    -  regularExpression: "regex",
    -  type: trailingMatcher(["*[type]"]),
    -  name: [
    -    "variable_declaration?.variable_declarator.identifier!",
    -    "assignment_expression[left]",
    -    "*[name]"
    -  ]
    -};
    -var csharp_default = createPatternMatchers(nodeMatchers3);
    -
    -// ../cursorless-engine/src/languages/go.ts
    -var nodeMatchers4 = {
    -  ifStatement: "if_statement",
    -  functionCall: ["call_expression", "composite_literal"],
    -  functionCallee: ["call_expression[function]", "composite_literal[type]"],
    -  type: [
    -    "pointer_type",
    -    "qualified_type",
    -    "type_identifier",
    -    "function_declaration[result]",
    -    "method_declaration[result]"
    -  ],
    -  condition: conditionMatcher("*[condition]"),
    -  argumentOrParameter: cascadingMatcher(
    -    argumentMatcher("argument_list", "parameter_list"),
    -    patternMatcher("parameter_declaration"),
    -    patternMatcher("argument_declaration")
    -  ),
    -  collectionKey: "keyed_element[0]",
    -  value: cascadingMatcher(
    -    patternMatcher("keyed_element[1]"),
    -    patternMatcher("return_statement.expression_list!")
    -  )
    -};
    -var go_default = createPatternMatchers(nodeMatchers4);
    -
    -// ../cursorless-engine/src/languages/java.ts
    -var nodeMatchers5 = {
    -  argumentOrParameter: argumentMatcher("formal_parameters", "argument_list")
    -};
    -var java_default = createPatternMatchers(nodeMatchers5);
    -
    -// ../cursorless-engine/src/languages/latex.ts
    -var COMMANDS = [
    -  "command",
    -  "displayed_equation",
    -  "inline_formula",
    -  "math_set",
    -  "block_comment",
    -  "package_include",
    -  "class_include",
    -  "latex_include",
    -  "biblatex_include",
    -  "bibtex_include",
    -  "graphics_include",
    -  "svg_include",
    -  "inkscape_include",
    -  "verbatim_include",
    -  "import_include",
    -  "caption",
    -  "citation",
    -  "label_definition",
    -  "label_reference",
    -  "label_reference_range",
    -  "label_number",
    -  "new_command_definition",
    -  "old_command_definition",
    -  "let_command_definition",
    -  "environment_definition",
    -  "glossary_entry_definition",
    -  "glossary_entry_reference",
    -  "acronym_definition",
    -  "acronym_reference",
    -  "theorem_definition",
    -  "color_definition",
    -  "color_set_definition",
    -  "color_reference",
    -  "tikz_library_import"
    -];
    -var GROUPS = [
    -  "curly_group",
    -  "curly_group_text",
    -  "curly_group_text_list",
    -  "curly_group_path",
    -  "curly_group_path_list",
    -  "curly_group_command_name",
    -  "curly_group_key_value",
    -  "curly_group_glob_pattern",
    -  "curly_group_impl",
    -  "brack_group",
    -  "brack_group_text",
    -  "brack_group_argc",
    -  "brack_group_key_value",
    -  "mixed_group"
    -];
    -var SECTIONING = [
    -  "subparagraph",
    -  "paragraph",
    -  "subsubsection",
    -  "subsection",
    -  "section",
    -  "chapter",
    -  "part"
    -];
    -var ENVIRONMENTS = [
    -  "generic_environment",
    -  "comment_environment",
    -  "verbatim_environment",
    -  "listing_environment",
    -  "minted_environment",
    -  "pycode_environment"
    -];
    -var sectioningText = SECTIONING.map((s) => `${s}[text]`);
    -var sectioningCommand = SECTIONING.map((s) => `${s}[command]`);
    -function unwrapGroupParens(editor, node) {
    -  return {
    -    selection: new Selection(
    -      editor.document.positionAt(node.startIndex + 1),
    -      editor.document.positionAt(node.endIndex - 1)
    -    ),
    -    context: {
    -      removalRange: new Selection(
    -        editor.document.positionAt(node.startIndex),
    -        editor.document.positionAt(node.endIndex)
    -      )
    -    }
    -  };
    -}
    -function extendToNamedSiblingIfExists(editor, node) {
    -  const startIndex = node.startIndex;
    -  let endIndex = node.endIndex;
    -  const sibling = node.nextNamedSibling;
    -  if (sibling != null && sibling.isNamed()) {
    -    endIndex = sibling.endIndex;
    -  }
    -  return {
    -    selection: new Selection(
    -      editor.document.positionAt(startIndex),
    -      editor.document.positionAt(endIndex)
    -    ),
    -    context: {}
    -  };
    -}
    -function extractItemContent(editor, node) {
    -  let contentStartIndex = node.startIndex;
    -  const label = node.childForFieldName("label");
    -  if (label == null) {
    -    const command = node.childForFieldName("command");
    -    if (command != null) {
    -      contentStartIndex = command.endIndex + 1;
    -    }
    -  } else {
    -    contentStartIndex = label.endIndex + 1;
    -  }
    -  return {
    -    selection: new Selection(
    -      editor.document.positionAt(contentStartIndex),
    -      editor.document.positionAt(node.endIndex)
    -    ),
    -    context: {
    -      leadingDelimiterRange: new Range(
    -        editor.document.positionAt(node.startIndex),
    -        editor.document.positionAt(contentStartIndex - 1)
    -      )
    -    }
    -  };
    -}
    -var getStartTag = patternMatcher(`*.begin!`);
    -var getEndTag = patternMatcher(`*.end!`);
    -var getTags = (selection, node) => {
    -  const startTag = getStartTag(selection, node);
    -  const endTag = getEndTag(selection, node);
    -  return startTag != null && endTag != null ? startTag.concat(endTag) : null;
    -};
    -var nodeMatchers6 = {
    -  argumentOrParameter: cascadingMatcher(
    -    ancestorChainNodeMatcher(
    -      [patternFinder(...COMMANDS), patternFinder(...GROUPS)],
    -      1,
    -      unwrapGroupParens
    -    ),
    -    matcher(
    -      patternFinder("begin[name]", "end[name]", ...sectioningText),
    -      unwrapGroupParens
    -    )
    -  ),
    -  functionCall: cascadingMatcher(
    -    matcher(patternFinder(...COMMANDS, "begin", "end")),
    -    matcher(patternFinder(...sectioningCommand), extendToNamedSiblingIfExists)
    -  ),
    -  name: cascadingMatcher(
    -    matcher(patternFinder(...sectioningText), unwrapGroupParens),
    -    patternMatcher("begin[name][text]", "end[name][text]")
    -  ),
    -  functionCallee: "command_name",
    -  collectionItem: matcher(patternFinder("enum_item"), extractItemContent),
    -  part: "part",
    -  chapter: "chapter",
    -  section: "section",
    -  subSection: "subsection",
    -  subSubSection: "subsubsection",
    -  namedParagraph: "paragraph",
    -  subParagraph: "subparagraph",
    -  environment: ENVIRONMENTS,
    -  xmlElement: ENVIRONMENTS,
    -  xmlBothTags: getTags,
    -  xmlStartTag: getStartTag,
    -  xmlEndTag: getEndTag
    -};
    -var latex_default = createPatternMatchers(nodeMatchers6);
    -
    -// ../cursorless-engine/src/languages/markdown.ts
    -var HEADING_MARKER_TYPES = [
    -  "atx_h1_marker",
    -  "atx_h2_marker",
    -  "atx_h3_marker",
    -  "atx_h4_marker",
    -  "atx_h5_marker",
    -  "atx_h6_marker"
    -];
    -function makeMinimumHeadingLevelFinder(headingType) {
    -  const markerIndex = HEADING_MARKER_TYPES.indexOf(headingType);
    -  return (node) => {
    -    return node.type === "atx_heading" && HEADING_MARKER_TYPES.indexOf(
    -      node.firstNamedChild?.type
    -    ) <= markerIndex ? node : null;
    -  };
    -}
    -function sectionExtractor(editor, node) {
    -  const finder = makeMinimumHeadingLevelFinder(
    -    node.firstNamedChild?.type
    -  );
    -  const { context, selection } = extendUntilNextMatchingSiblingOrLast(
    -    editor,
    -    node,
    -    finder
    -  );
    -  return {
    -    context,
    -    selection: shrinkRangeToFitContent(editor, selection).toSelection(
    -      selection.isReversed
    -    )
    -  };
    -}
    -function sectionMatcher(...patterns) {
    -  const finder = patternFinder(...patterns);
    -  return matcher(leadingSiblingNodeFinder(finder), sectionExtractor);
    -}
    -var nodeMatchers7 = {
    -  section: sectionMatcher("atx_heading"),
    -  sectionLevelOne: sectionMatcher("atx_heading.atx_h1_marker"),
    -  sectionLevelTwo: sectionMatcher("atx_heading.atx_h2_marker"),
    -  sectionLevelThree: sectionMatcher("atx_heading.atx_h3_marker"),
    -  sectionLevelFour: sectionMatcher("atx_heading.atx_h4_marker"),
    -  sectionLevelFive: sectionMatcher("atx_heading.atx_h5_marker"),
    -  sectionLevelSix: sectionMatcher("atx_heading.atx_h6_marker")
    -};
    -var markdown_default = createPatternMatchers(nodeMatchers7);
    -
    -// ../cursorless-engine/src/languages/php.ts
    -var assignmentOperators = [
    -  "=",
    -  // Arithmetic
    -  "+=",
    -  "-=",
    -  "*=",
    -  "/=",
    -  "%=",
    -  "**=",
    -  // Bitwise
    -  "&=",
    -  "|=",
    -  "^=",
    -  "<<=",
    -  ">>=",
    -  // Other
    -  ".=",
    -  "??="
    -];
    -function castTypeExtractor(editor, node) {
    -  const range4 = getNodeRange(node);
    -  const contentRange = range4;
    -  const leftParenRange = getNodeRange(node.previousSibling);
    -  const rightParenRange = getNodeRange(node.nextSibling.nextSibling);
    -  const removalRange = range4.with(leftParenRange.start, rightParenRange.start);
    -  return {
    -    selection: new Selection(contentRange.start, contentRange.end),
    -    context: {
    -      removalRange
    -    }
    -  };
    -}
    -var nodeMatchers8 = {
    -  name: [
    -    "assignment_expression[left]",
    -    "class_declaration[name]",
    -    "function_definition[name]",
    -    "method_declaration[name]"
    -  ],
    -  type: cascadingMatcher(
    -    trailingMatcher(["~cast_expression[type]"]),
    -    matcher(patternFinder("cast_expression[type]"), castTypeExtractor)
    -  ),
    -  value: leadingMatcher(
    -    [
    -      "array_element_initializer[1]",
    -      "assignment_expression[right]",
    -      "augmented_assignment_expression[right]",
    -      "return_statement[0]",
    -      "yield_expression[0]"
    -    ],
    -    assignmentOperators.concat(["=>"])
    -  ),
    -  collectionKey: trailingMatcher(["array_element_initializer[0]"], ["=>"]),
    -  argumentOrParameter: argumentMatcher("arguments", "formal_parameters")
    -};
    -var php_default = createPatternMatchers(nodeMatchers8);
    -
    -// ../cursorless-engine/src/languages/python.ts
    -function itemNodeFinder(parentType, childType, excludeFirstChild = false) {
    -  const finder = argumentNodeFinder(parentType);
    -  return (node, selection) => {
    -    const childNode = finder(node, selection);
    -    if (childNode?.type === childType && (!excludeFirstChild || childNode.id !== childNode.parent?.firstNamedChild?.id)) {
    -      return childNode;
    -    }
    -    return null;
    -  };
    -}
    -var nodeMatchers9 = {
    -  collectionItem: cascadingMatcher(
    -    matcher(
    -      itemNodeFinder("import_from_statement", "dotted_name", true),
    -      argumentSelectionExtractor()
    -    ),
    -    matcher(
    -      itemNodeFinder("import_statement", "dotted_name", false),
    -      argumentSelectionExtractor()
    -    ),
    -    matcher(
    -      itemNodeFinder("global_statement", "identifier"),
    -      argumentSelectionExtractor()
    -    )
    -  ),
    -  argumentOrParameter: cascadingMatcher(
    -    argumentMatcher("parameters", "argument_list"),
    -    matcher(patternFinder("call.generator_expression!"), childRangeSelector())
    -  )
    -};
    -var python_default = createPatternMatchers(nodeMatchers9);
    -
    -// ../cursorless-engine/src/languages/ruby.ts
    -var STATEMENT_TYPES3 = [
    -  "alias",
    -  "begin_block",
    -  "end_block",
    -  "if_modifier",
    -  "rescue_modifier",
    -  "undef",
    -  "unless_modifier",
    -  "until_modifier",
    -  "while_modifier"
    -];
    -var EXPRESSION_TYPES = [
    -  "array",
    -  "assignment",
    -  "begin",
    -  "binary",
    -  "break",
    -  "call",
    -  "case",
    -  "case_match",
    -  "chained_string",
    -  "character",
    -  "class",
    -  "class_variable",
    -  "complex",
    -  "conditional",
    -  "constant",
    -  "delimited_symbol",
    -  "element_reference",
    -  "false",
    -  "float",
    -  "for",
    -  "global_variable",
    -  "hash",
    -  "heredoc_beginning",
    -  "identifier",
    -  "if",
    -  "instance_variable",
    -  "integer",
    -  "lambda",
    -  "method",
    -  "module",
    -  "next",
    -  "nil",
    -  "operator_assignment",
    -  "parenthesized_statements",
    -  "range",
    -  "rational",
    -  "redo",
    -  "regex",
    -  "retry",
    -  "return",
    -  "scope_resolution",
    -  "self",
    -  "simple_symbol",
    -  "singleton_class",
    -  "singleton_method",
    -  "string",
    -  "string_array",
    -  "subshell",
    -  "super",
    -  "symbol_array",
    -  "true",
    -  "unary",
    -  "unless",
    -  "until",
    -  "while",
    -  "yield"
    -];
    -var EXPRESSION_STATEMENT_PARENT_TYPES = [
    -  "begin",
    -  "block",
    -  "do",
    -  "do_block",
    -  "else",
    -  "ensure",
    -  "heredoc_beginning",
    -  "lambda",
    -  "method",
    -  "program",
    -  "singleton_class",
    -  "singleton_method",
    -  "then"
    -];
    -var mapTypes = ["hash"];
    -var listTypes = ["array", "string_array", "symbol_array"];
    -var assignmentOperators2 = [
    -  "=",
    -  "+=",
    -  "-=",
    -  "*=",
    -  "**=",
    -  "/=",
    -  "||=",
    -  "|=",
    -  "&&=",
    -  "&=",
    -  "%=",
    -  ">>=",
    -  "<<=",
    -  "^="
    -];
    -var mapKeyValueSeparators = [":", "=>"];
    -function blockFinder(node) {
    -  if (node.type !== "call") {
    -    return null;
    -  }
    -  const receiver = node.childForFieldName("receiver");
    -  const method = node.childForFieldName("method");
    -  const block = node.childForFieldName("block");
    -  if (receiver?.text === "Proc" && method?.text === "new" || receiver == null && method?.text === "lambda") {
    -    return node;
    -  }
    -  return block;
    -}
    -var nodeMatchers10 = {
    -  statement: cascadingMatcher(
    -    patternMatcher(...STATEMENT_TYPES3),
    -    ancestorChainNodeMatcher(
    -      [
    -        patternFinder(...EXPRESSION_STATEMENT_PARENT_TYPES),
    -        patternFinder(...EXPRESSION_TYPES)
    -      ],
    -      1
    -    )
    -  ),
    -  string: "string",
    -  functionName: ["method[name]", "singleton_method[name]"],
    -  anonymousFunction: cascadingMatcher(
    -    patternMatcher("lambda", "do_block"),
    -    matcher(blockFinder)
    -  ),
    -  condition: conditionMatcher("*[condition]"),
    -  argumentOrParameter: argumentMatcher(
    -    "lambda_parameters",
    -    "method_parameters",
    -    "block_parameters",
    -    "argument_list"
    -  ),
    -  collectionKey: trailingMatcher(["pair[key]"], [":"]),
    -  name: [
    -    "assignment[left]",
    -    "operator_assignment[left]",
    -    "class[name]",
    -    "method[name]",
    -    "singleton_method[name]"
    -  ],
    -  value: leadingMatcher(
    -    [
    -      "pair[value]",
    -      "assignment[right]",
    -      "operator_assignment[right]",
    -      "return.argument_list!"
    -    ],
    -    assignmentOperators2.concat(mapKeyValueSeparators)
    -  ),
    -  collectionItem: argumentMatcher(...mapTypes, ...listTypes)
    -};
    -var patternMatchers = createPatternMatchers(nodeMatchers10);
    -function stringTextFragmentExtractor(node, _selection) {
    -  if (node.type === "string_content" || node.type === "heredoc_content") {
    -    return getNodeRange(node);
    -  }
    -  return null;
    -}
    -
    -// ../cursorless-engine/src/languages/elseIfExtractor.ts
    -function elseIfExtractor() {
    -  const contentRangeExtractor = childRangeSelector(["else_clause"], [], {
    -    includeUnnamedChildren: true
    -  });
    -  return function(editor, node) {
    -    const contentRange = contentRangeExtractor(editor, node);
    -    const parent = node.parent;
    -    if (parent?.type !== "else_clause") {
    -      const alternative = node.childForFieldName("alternative");
    -      if (alternative == null) {
    -        return contentRange;
    -      }
    -      const { selection: selection2 } = contentRange;
    -      return {
    -        selection: selection2,
    -        context: {
    -          removalRange: new Selection(
    -            selection2.start,
    -            positionFromPoint(alternative.namedChild(0).startPosition)
    -          )
    -        }
    -      };
    -    }
    -    const { selection } = contentRange;
    -    return {
    -      selection: new Selection(
    -        positionFromPoint(parent.child(0).startPosition),
    -        selection.end
    -      ),
    -      context: {}
    -    };
    -  };
    -}
    -function elseExtractor(ifNodeType) {
    -  const nestedElseIfExtractor = elseIfExtractor();
    -  return function(editor, node) {
    -    return node.namedChild(0).type === ifNodeType ? nestedElseIfExtractor(editor, node.namedChild(0)) : simpleSelectionExtractor(editor, node);
    -  };
    -}
    -
    -// ../cursorless-engine/src/languages/rust.ts
    -var STATEMENT_TYPES4 = [
    -  "associated_type",
    -  "attribute_item",
    -  "const_item",
    -  "empty_statement",
    -  "enum_item",
    -  "extern_crate_declaration",
    -  "foreign_mod_item",
    -  "impl_item",
    -  "inner_attribute_item",
    -  "let_declaration",
    -  "macro_definition",
    -  "macro_invocation",
    -  "function_item",
    -  "function_signature_item",
    -  "mod_item",
    -  "static_item",
    -  "struct_item",
    -  "trait_item",
    -  "type_item",
    -  "union_item",
    -  "use_declaration",
    -  "expression_statement"
    -];
    -var STATEMENT_PARENT_TYPES = ["source_file", "block", "declaration_list"];
    -function implItemTypeFinder(node) {
    -  if (node.parent?.type === "impl_item" && node.parent?.childForFieldName("type")?.equals(node)) {
    -    return node;
    -  }
    -  return null;
    -}
    -function traitBoundExtractor(editor, node) {
    -  return {
    -    selection: makeNodePairSelection(node.children[1], node.lastNamedChild),
    -    context: {
    -      leadingDelimiterRange: makeRangeFromPositions(
    -        node.children[0].startPosition,
    -        node.children[1].startPosition
    -      )
    -    }
    -  };
    -}
    -function returnValueFinder(node) {
    -  if (node.type !== "block") {
    -    return null;
    -  }
    -  const { lastNamedChild } = node;
    -  if (lastNamedChild == null) {
    -    return null;
    -  }
    -  if (lastNamedChild.type === "expression_statement") {
    -    const expression = lastNamedChild.child(0);
    -    if (expression.type === "return_expression") {
    -      return expression.child(1);
    -    }
    -    return null;
    -  }
    -  if (STATEMENT_TYPES4.includes(lastNamedChild.type)) {
    -    return null;
    -  }
    -  if (lastNamedChild.type === "return_expression") {
    -    return lastNamedChild.child(1);
    -  }
    -  return lastNamedChild;
    -}
    -var nodeMatchers11 = {
    -  statement: ancestorChainNodeMatcher(
    -    [
    -      patternFinder(...STATEMENT_PARENT_TYPES),
    -      patternFinder(...STATEMENT_TYPES4)
    -    ],
    -    1
    -  ),
    -  string: ["raw_string_literal", "string_literal"],
    -  condition: cascadingMatcher(
    -    patternMatcher("while_expression[condition]", "if_expression[condition]"),
    -    matcher(
    -      patternFinder("while_let_expression", "if_let_expression"),
    -      childRangeSelector(["while", "if", "block"], [], {
    -        includeUnnamedChildren: true
    -      })
    -    ),
    -    leadingMatcher(["*.match_pattern![condition]"], ["if"])
    -  ),
    -  functionCall: ["call_expression", "macro_invocation", "struct_expression"],
    -  functionCallee: "call_expression[function]",
    -  comment: ["line_comment", "block_comment"],
    -  list: ["array_expression", "tuple_expression"],
    -  collectionItem: argumentMatcher(
    -    "array_expression",
    -    "tuple_expression",
    -    "tuple_type"
    -  ),
    -  namedFunction: "function_item",
    -  type: cascadingMatcher(
    -    leadingMatcher(
    -      [
    -        "let_declaration[type]",
    -        "parameter[type]",
    -        "field_declaration[type]",
    -        "const_item[type]"
    -      ],
    -      [":"]
    -    ),
    -    matcher(
    -      patternFinder(
    -        "constrained_type_parameter[bounds]",
    -        "where_predicate[bounds]"
    -      ),
    -      traitBoundExtractor
    -    ),
    -    leadingMatcher(["function_item[return_type]"], ["->"]),
    -    matcher(implItemTypeFinder),
    -    patternMatcher(
    -      "struct_item",
    -      "trait_item",
    -      "impl_item",
    -      "array_type[element]"
    -    )
    -  ),
    -  functionName: ["function_item[name]"],
    -  anonymousFunction: "closure_expression",
    -  argumentOrParameter: argumentMatcher(
    -    "arguments",
    -    "parameters",
    -    "meta_arguments",
    -    "type_parameters",
    -    "ordered_field_declaration_list"
    -  ),
    -  collectionKey: cascadingMatcher(
    -    trailingMatcher(["field_initializer[name]", "field_pattern[name]"], [":"])
    -  ),
    -  name: cascadingMatcher(
    -    patternMatcher(
    -      "let_declaration.identifier!",
    -      "parameter.identifier!",
    -      "function_item[name]",
    -      "struct_item[name]",
    -      "enum_item[name]",
    -      "enum_variant[name]",
    -      "trait_item[name]",
    -      "const_item[name]",
    -      "meta_item.identifier!",
    -      "let_declaration[pattern]",
    -      "constrained_type_parameter[left]",
    -      "where_predicate[left]",
    -      "field_declaration[name]"
    -    ),
    -    trailingMatcher(["field_initializer[name]", "field_pattern[name]"], [":"])
    -  ),
    -  class: ["struct_item", "struct_expression", "enum_item"],
    -  className: ["struct_item[name]", "enum_item[name]", "trait_item[name]"],
    -  value: cascadingMatcher(
    -    leadingMatcher(["let_declaration[value]"], ["="]),
    -    leadingMatcher(
    -      ["field_initializer[value]", "field_pattern[pattern]"],
    -      [":"]
    -    ),
    -    patternMatcher("meta_item[value]", "const_item[value]"),
    -    matcher(returnValueFinder)
    -  ),
    -  attribute: trailingMatcher(["mutable_specifier", "attribute_item"]),
    -  branch: cascadingMatcher(
    -    patternMatcher("match_arm"),
    -    matcher(patternFinder("else_clause"), elseExtractor("if_expression")),
    -    matcher(patternFinder("if_expression"), elseIfExtractor())
    -  ),
    -  ["private.switchStatementSubject"]: "match_expression[value]"
    -};
    -var rust_default = createPatternMatchers(nodeMatchers11);
    -
    -// ../cursorless-engine/src/languages/scala.ts
    -var nodeMatchers12 = {
    -  // treating classes = classlike
    -  class: ["class_definition", "object_definition", "trait_definition"],
    -  className: [
    -    "class_definition[name]",
    -    "object_definition[name]",
    -    "trait_definition[name]"
    -  ],
    -  string: ["interpolated_string_expression", "string"],
    -  comment: "comment",
    -  // list.size(), does not count foo.size (field_expression), or foo size (postfix_expression)
    -  functionCall: "call_expression",
    -  namedFunction: "function_definition",
    -  anonymousFunction: "lambda_expression",
    -  argumentOrParameter: argumentMatcher(
    -    "arguments",
    -    "parameters",
    -    "class_parameters",
    -    "bindings"
    -  ),
    -  branch: matcher(
    -    patternFinder("case_clause"),
    -    childRangeSelector([], [], {
    -      includeUnnamedChildren: true
    -    })
    -  ),
    -  ["private.switchStatementSubject"]: "match_expression[value]",
    -  name: ["*[name]", "*[pattern]"],
    -  functionName: "function_definition[name]",
    -  // *[type] does not work here because while we want most of these we don't want "compound" types,
    -  // eg `generic_type[type]`, because that will grab just the inner generic (the String of List[String])
    -  // and as a rule we want to grab entire type definitions.
    -  type: leadingMatcher(
    -    [
    -      "upper_bound[type]",
    -      "lower_bound[type]",
    -      "view_bound[type]",
    -      "context_bound[type]",
    -      "val_definition[type]",
    -      "val_declaration[type]",
    -      "var_definition[type]",
    -      "var_declaration[type]",
    -      "type_definition",
    -      "extends_clause[type]",
    -      "class_parameter[type]",
    -      "parameter[type]",
    -      "function_definition[return_type]",
    -      "typed_pattern[type]",
    -      "binding[type]"
    -    ],
    -    [":"]
    -  ),
    -  value: leadingMatcher(
    -    ["*[value]", "*[default_value]", "type_definition[type]"],
    -    ["="]
    -  ),
    -  condition: conditionMatcher("*[condition]")
    -  // Scala features unsupported in Cursorless terminology
    -  //  - Pattern matching
    -  // Cursorless terminology not yet supported in this Scala implementation
    -  /*
    -    lists and maps basic definition are just function calls to constructors, eg List(1,2,3,4)
    -    These types are also basically arbitrary, so we can't really hard-code them
    -    There is also fancy list style: val foo = 1 :: (2 :: (3 :: Nil)) // List(1,2,3)
    -  */
    -  // list: 'call_expression',
    -  // map: 'call_expression',
    -  /* infix_expression, key on left, item on right, operator = "->"
    -    // collectionItem: "???"
    -    // collectionKey: "???",
    -  
    -    /* "foo".r <-, value of type field_expression, value of type string, field of type identifier = "r",
    -    // regularExpression: "???",
    -  
    -    /*
    -      none of this stuff is defined well in the tree sitter (it's all just infix expressions etc),
    -      and native XML/HTML is deprecated in Scala 3
    -    */
    -  // attribute: "???",
    -  // xmlElement: "???",
    -  // xmlStartTag: "???",
    -  // xmlEndTag: "???",
    -  // xmlBothTags: "???",
    -};
    -var scala_default = createPatternMatchers(nodeMatchers12);
    -
    -// ../cursorless-engine/src/languages/scss.ts
    -var STATEMENT_TYPES5 = [
    -  "apply_statement",
    -  "at_rule",
    -  "charset_statement",
    -  "debug_statement",
    -  "each_statement",
    -  "error_statement",
    -  "for_statement",
    -  "forward_statement",
    -  "function_statement",
    -  "if_statement",
    -  "import_statement",
    -  "include_statement",
    -  "keyframes_statement",
    -  "media_statement",
    -  "mixin_statement",
    -  "namespace_statement",
    -  "placeholder",
    -  "rule_set",
    -  "supports_statement",
    -  "use_statement",
    -  "warn_statement",
    -  "while_statement"
    -];
    -function isArgumentListDelimiter(node) {
    -  return [",", "(", ")"].includes(node.type) || isAtDelimiter(node);
    -}
    -function isAtDelimiter(node) {
    -  return node.type === "plain_value" && node.text === "at";
    -}
    -function findAdjacentArgValues(siblingFunc) {
    -  return (node) => {
    -    if (isAtDelimiter(node) || node.type === ",") {
    -      node = node.previousSibling;
    -    }
    -    let nextPossibleRange = siblingFunc(node);
    -    while (nextPossibleRange && !isArgumentListDelimiter(nextPossibleRange)) {
    -      node = nextPossibleRange;
    -      nextPossibleRange = siblingFunc(nextPossibleRange);
    -    }
    -    return node;
    -  };
    -}
    -function unitMatcher(selection, node) {
    -  if (node.type !== "declaration") {
    -    return null;
    -  }
    -  return node.descendantsOfType("unit").map((n) => ({
    -    node: n,
    -    selection: simpleSelectionExtractor(selection.editor, n)
    -  }));
    -}
    -var nodeMatchers13 = {
    -  ifStatement: "if_statement",
    -  condition: conditionMatcher("condition"),
    -  statement: cascadingMatcher(
    -    patternMatcher(...STATEMENT_TYPES5),
    -    matcher(
    -      patternFinder("attribute_selector"),
    -      childRangeSelector([], ["attribute_name", "string_value"])
    -    )
    -  ),
    -  functionCall: "call_expression",
    -  functionCallee: "call_expression.function_name!",
    -  namedFunction: ["mixin_statement", "function_statement"],
    -  functionName: ["mixin_statement.name!", "function_statement.name!"],
    -  argumentOrParameter: cascadingMatcher(
    -    matcher(
    -      patternFinder("arguments.*!", "parameters.*!"),
    -      delimitedSelector(
    -        (node) => isArgumentListDelimiter(node),
    -        ", ",
    -        findAdjacentArgValues((node) => node.previousSibling),
    -        findAdjacentArgValues((node) => node.nextSibling)
    -      )
    -    )
    -  ),
    -  name: [
    -    "function_statement.name!",
    -    "declaration.property_name!",
    -    "declaration.variable_name!",
    -    "mixin_statement.name!",
    -    "attribute_selector.attribute_name!",
    -    "parameter.variable_name!"
    -  ],
    -  selector: ["rule_set.selectors!"],
    -  collectionKey: trailingMatcher(["declaration.property_name!"], [":"]),
    -  value: cascadingMatcher(
    -    matcher(
    -      patternFinder("declaration"),
    -      childRangeSelector(["property_name", "variable_name"])
    -    ),
    -    matcher(
    -      patternFinder("include_statement", "namespace_statement"),
    -      childRangeSelector()
    -    ),
    -    patternMatcher(
    -      "return_statement.*!",
    -      "import_statement.*!",
    -      "attribute_selector.plain_value!",
    -      "attribute_selector.string_value!",
    -      "parameter.default_value!"
    -    )
    -  ),
    -  unit: cascadingMatcher(patternMatcher("integer_value.unit!"), unitMatcher),
    -  collectionItem: "declaration"
    -};
    -var patternMatchers2 = createPatternMatchers(nodeMatchers13);
    -
    -// ../cursorless-engine/src/languages/getNodeMatcher.ts
    -function getNodeMatcher(languageId, scopeTypeType, includeSiblings) {
    -  const matchers2 = languageMatchers[languageId];
    -  if (matchers2 == null) {
    -    throw new UnsupportedLanguageError(languageId);
    -  }
    -  const matcher2 = matchers2[scopeTypeType];
    -  if (matcher2 == null) {
    -    return notSupported;
    -  }
    -  if (includeSiblings) {
    -    return matcherIncludeSiblings(matcher2);
    -  }
    -  return matcher2;
    -}
    -var languageMatchers = {
    -  c: cpp_default,
    -  clojure: clojure_default,
    -  cpp: cpp_default,
    -  csharp: csharp_default,
    -  css: patternMatchers2,
    -  go: go_default,
    -  java: java_default,
    -  latex: latex_default,
    -  markdown: markdown_default,
    -  php: php_default,
    -  python: python_default,
    -  ruby: patternMatchers,
    -  rust: rust_default,
    -  scala: scala_default,
    -  scss: patternMatchers2
    -};
    -function matcherIncludeSiblings(matcher2) {
    -  return (selection, node) => {
    -    let matches = matcher2(selection, node);
    -    if (matches == null) {
    -      return null;
    -    }
    -    matches = matches.flatMap(
    -      (match2) => iterateNearestIterableAncestor(
    -        match2.node,
    -        selectionWithEditorFromRange(selection, match2.selection.selection),
    -        matcher2
    -      )
    -    );
    -    if (matches.length > 0) {
    -      return matches;
    -    }
    -    return null;
    -  };
    -}
    -function iterateNearestIterableAncestor(node, selection, nodeMatcher) {
    -  let parent = node.parent;
    -  while (parent != null) {
    -    const matches = parent.namedChildren.flatMap((sibling) => nodeMatcher(selection, sibling)).filter((match2) => match2 != null);
    -    if (matches.length > 0) {
    -      return matches;
    -    }
    -    parent = parent.parent;
    -  }
    -  return [];
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/LegacyContainingSyntaxScopeStage.ts
    -var LegacyContainingSyntaxScopeStage = class {
    -  constructor(languageDefinitions, modifier) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const nodeMatcher = getNodeMatcher(
    -      target.editor.document.languageId,
    -      this.modifier.scopeType.type,
    -      this.modifier.type === "everyScope"
    -    );
    -    const node = this.languageDefinitions.getNodeAtLocation(
    -      target.editor.document,
    -      target.contentRange
    -    );
    -    const scopeNodes = findNearestContainingAncestorNode(node, nodeMatcher, {
    -      editor: target.editor,
    -      selection: new Selection(
    -        target.contentRange.start,
    -        target.contentRange.end
    -      )
    -    });
    -    if (scopeNodes == null) {
    -      throw new NoContainingScopeError(this.modifier.scopeType.type);
    -    }
    -    return scopeNodes.map((scope) => {
    -      const {
    -        containingListDelimiter,
    -        leadingDelimiterRange,
    -        trailingDelimiterRange,
    -        removalRange,
    -        interiorRange
    -      } = scope.context;
    -      if (removalRange != null && (leadingDelimiterRange != null || trailingDelimiterRange != null)) {
    -        throw Error(
    -          "Removal range is mutually exclusive with leading or trailing delimiter range"
    -        );
    -      }
    -      const { editor, selection: contentSelection } = scope.selection;
    -      return new ScopeTypeTarget({
    -        scopeTypeType: this.modifier.scopeType.type,
    -        editor,
    -        isReversed: target.isReversed,
    -        contentRange: contentSelection,
    -        removalRange,
    -        interiorRange,
    -        insertionDelimiter: containingListDelimiter,
    -        leadingDelimiterRange,
    -        trailingDelimiterRange
    -      });
    -    });
    -  }
    -};
    -function findNearestContainingAncestorNode(startNode, nodeMatcher, selection) {
    -  let node = startNode;
    -  while (node != null) {
    -    const matches = nodeMatcher(selection, node);
    -    if (matches != null) {
    -      return matches.map((match2) => match2.selection).map((matchedSelection) => ({
    -        selection: selectionWithEditorFromRange(
    -          selection,
    -          matchedSelection.selection
    -        ),
    -        context: matchedSelection.context
    -      }));
    -    }
    -    node = node.parent;
    -  }
    -  return null;
    -}
    -
    -// ../cursorless-engine/src/languages/getTextFragmentExtractor.ts
    -function constructDefaultTextFragmentExtractor(languageId, stringTextFragmentExtractor2) {
    -  const commentNodeMatcher = getNodeMatcher(languageId, "comment", false);
    -  stringTextFragmentExtractor2 = stringTextFragmentExtractor2 ?? constructDefaultStringTextFragmentExtractor(languageId);
    -  return (node, selection) => {
    -    const stringTextFragment = stringTextFragmentExtractor2(node, selection);
    -    if (stringTextFragment != null) {
    -      return stringTextFragment;
    -    }
    -    if (commentNodeMatcher !== notSupported && commentNodeMatcher(selection, node) != null) {
    -      return getNodeRange(node);
    -    }
    -    if (node.type === "ERROR") {
    -      return getNodeRange(node);
    -    }
    -    return null;
    -  };
    -}
    -function constructDefaultStringTextFragmentExtractor(languageId) {
    -  const stringNodeMatcher = getNodeMatcher(languageId, "string", false);
    -  return (node, selection) => {
    -    if (stringNodeMatcher(selection, node) != null) {
    -      return getNodeInternalRange(node);
    -    }
    -    return null;
    -  };
    -}
    -function constructHackedStringTextFragmentExtractor(languageId) {
    -  const stringNodeMatcher = getNodeMatcher(languageId, "string", false);
    -  return (node, selection) => {
    -    if (stringNodeMatcher(selection, node) != null) {
    -      return getNodeRange(node);
    -    }
    -    return null;
    -  };
    -}
    -function getTextFragmentExtractor(languageId) {
    -  return textFragmentExtractors[languageId];
    -}
    -var textFragmentExtractors = {
    -  ruby: constructDefaultTextFragmentExtractor(
    -    "ruby",
    -    stringTextFragmentExtractor
    -  ),
    -  scala: constructDefaultTextFragmentExtractor(
    -    "scala",
    -    constructHackedStringTextFragmentExtractor("scala")
    -  ),
    -  rust: constructDefaultTextFragmentExtractor("rust")
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/delimiterMaps.ts
    -var delimiterToText = Object.freeze({
    -  angleBrackets: [
    -    ["", "/>"]
    -  ],
    -  backtickQuotes: ["`", "`"],
    -  curlyBrackets: [["{", "${"], "}"],
    -  doubleQuotes: ['"', '"'],
    -  escapedDoubleQuotes: ['\\"', '\\"'],
    -  escapedParentheses: ["\\(", "\\)"],
    -  escapedSquareBrackets: ["\\[", "\\]"],
    -  escapedSingleQuotes: ["\\'", "\\'"],
    -  parentheses: [["(", "$("], ")"],
    -  singleQuotes: ["'", "'"],
    -  squareBrackets: ["[", "]"]
    -});
    -var leftToRightMap = Object.fromEntries(
    -  Object.values(delimiterToText)
    -);
    -var complexDelimiterMap = {
    -  any: unsafeKeys(delimiterToText),
    -  string: ["singleQuotes", "doubleQuotes", "backtickQuotes"],
    -  collectionBoundary: [
    -    "parentheses",
    -    "squareBrackets",
    -    "curlyBrackets",
    -    "angleBrackets"
    -  ]
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts
    -function extractSelectionFromSurroundingPairOffsets(document, baseOffset, surroundingPairOffsets) {
    -  const interior = new Range(
    -    document.positionAt(baseOffset + surroundingPairOffsets.leftDelimiter.end),
    -    document.positionAt(
    -      baseOffset + surroundingPairOffsets.rightDelimiter.start
    -    )
    -  );
    -  const boundary = [
    -    new Range(
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.leftDelimiter.start
    -      ),
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.leftDelimiter.end
    -      )
    -    ),
    -    new Range(
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.rightDelimiter.start
    -      ),
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.rightDelimiter.end
    -      )
    -    )
    -  ];
    -  return {
    -    contentRange: new Selection(
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.leftDelimiter.start
    -      ),
    -      document.positionAt(
    -        baseOffset + surroundingPairOffsets.rightDelimiter.end
    -      )
    -    ),
    -    boundary,
    -    interiorRange: interior
    -  };
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts
    -var import_lodash31 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts
    -var import_lodash30 = __toESM(require_lodash(), 1);
    -function findUnmatchedDelimiter(delimiterOccurrences, initialIndex, acceptableDelimiters, lookForward) {
    -  const generatorResult = generateUnmatchedDelimiters(
    -    delimiterOccurrences,
    -    initialIndex,
    -    () => acceptableDelimiters,
    -    lookForward
    -  ).next();
    -  return generatorResult.done ? null : generatorResult.value;
    -}
    -function* generateUnmatchedDelimiters(delimiterOccurrences, initialIndex, getCurrentAcceptableDelimiters, lookForward) {
    -  const delimiterIncrements = lookForward ? {
    -    left: 1,
    -    right: -1,
    -    unknown: -1
    -  } : {
    -    left: -1,
    -    right: 1,
    -    unknown: -1
    -  };
    -  const delimiterBalances = {};
    -  let currentAcceptableDelimiters = getCurrentAcceptableDelimiters();
    -  const indices = lookForward ? (0, import_lodash30.range)(initialIndex, delimiterOccurrences.length, 1) : (0, import_lodash30.range)(initialIndex, -1, -1);
    -  for (const index of indices) {
    -    const delimiterOccurrence = delimiterOccurrences[index];
    -    const { delimiterInfo } = delimiterOccurrence;
    -    const delimiterName = delimiterInfo?.delimiter;
    -    if (delimiterName == null || !currentAcceptableDelimiters.includes(delimiterName)) {
    -      continue;
    -    }
    -    const increment = delimiterIncrements[delimiterInfo.side];
    -    const newDelimiterBalance = (delimiterBalances[delimiterName] ?? 0) + increment;
    -    if (newDelimiterBalance === -1) {
    -      yield delimiterOccurrence;
    -      currentAcceptableDelimiters = getCurrentAcceptableDelimiters();
    -      delimiterBalances[delimiterName] = 0;
    -    } else {
    -      delimiterBalances[delimiterName] = newDelimiterBalance;
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts
    -function findOppositeDelimiter(delimiterOccurrences, index, delimiterInfo, forceDirection) {
    -  const { side, delimiter } = delimiterInfo;
    -  for (const direction of getDirections(side, forceDirection)) {
    -    const unmatchedDelimiter = findUnmatchedDelimiter(
    -      delimiterOccurrences,
    -      direction === "right" ? index + 1 : index - 1,
    -      [delimiter],
    -      direction === "right"
    -    );
    -    if (unmatchedDelimiter != null) {
    -      return unmatchedDelimiter;
    -    }
    -  }
    -  return null;
    -}
    -function getDirections(side, forceDirection) {
    -  if (forceDirection != null) {
    -    return [forceDirection];
    -  }
    -  switch (side) {
    -    case "left":
    -      return ["right"];
    -    case "right":
    -      return ["left"];
    -    case "unknown":
    -      return ["right", "left"];
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts
    -function getSurroundingPairOffsets(delimiter1, delimiter2) {
    -  const isDelimiter1First = delimiter1.offsets.start < delimiter2.offsets.start;
    -  const leftDelimiter = isDelimiter1First ? delimiter1 : delimiter2;
    -  const rightDelimiter = isDelimiter1First ? delimiter2 : delimiter1;
    -  return {
    -    leftDelimiter: leftDelimiter.offsets,
    -    rightDelimiter: rightDelimiter.offsets
    -  };
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/weaklyContains.ts
    -function weaklyContains(offsets1, offsets2) {
    -  return offsets1.start <= offsets2.start && offsets1.end >= offsets2.end;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts
    -function findDelimiterPairAdjacentToSelection(initialIndex, delimiterOccurrences, selectionOffsets, scopeType, bailOnUnmatchedAdjacent = false) {
    -  const indicesToTry = [initialIndex + 1, initialIndex];
    -  for (const index of indicesToTry) {
    -    const delimiterOccurrence = delimiterOccurrences[index];
    -    if (delimiterOccurrence != null && weaklyContains(delimiterOccurrence.offsets, selectionOffsets)) {
    -      const { delimiterInfo } = delimiterOccurrence;
    -      if (delimiterInfo != null) {
    -        const possibleMatch = findOppositeDelimiter(
    -          delimiterOccurrences,
    -          index,
    -          delimiterInfo,
    -          scopeType.forceDirection
    -        );
    -        if (possibleMatch != null) {
    -          const surroundingPairOffsets = getSurroundingPairOffsets(
    -            delimiterOccurrence,
    -            possibleMatch
    -          );
    -          if (!scopeType.requireStrongContainment || surroundingPairOffsets.leftDelimiter.start < selectionOffsets.start && surroundingPairOffsets.rightDelimiter.end > selectionOffsets.end) {
    -            return surroundingPairOffsets;
    -          }
    -        } else if (bailOnUnmatchedAdjacent) {
    -          return null;
    -        }
    -      }
    -    }
    -  }
    -  return null;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts
    -function findDelimiterPairContainingSelection(initialIndex, delimiterOccurrences, acceptableDelimiters, selectionOffsets, scopeType) {
    -  const acceptableRightDelimiters = acceptableDelimiters;
    -  let acceptableLeftDelimiters = [];
    -  const rightDelimiterGenerator = generateUnmatchedDelimiters(
    -    delimiterOccurrences,
    -    initialIndex,
    -    () => acceptableRightDelimiters,
    -    true
    -  );
    -  const leftDelimiterGenerator = generateUnmatchedDelimiters(
    -    delimiterOccurrences,
    -    initialIndex - 1,
    -    () => acceptableLeftDelimiters,
    -    false
    -  );
    -  while (true) {
    -    const rightNext = rightDelimiterGenerator.next();
    -    if (rightNext.done) {
    -      return null;
    -    }
    -    const rightDelimiterOccurrence = rightNext.value;
    -    acceptableLeftDelimiters = [
    -      rightDelimiterOccurrence.delimiterInfo.delimiter
    -    ];
    -    const leftNext = leftDelimiterGenerator.next();
    -    if (leftNext.done) {
    -      return null;
    -    }
    -    const leftDelimiterOccurrence = leftNext.value;
    -    if (leftDelimiterOccurrence.offsets.start <= selectionOffsets.start) {
    -      if (scopeType.requireStrongContainment && !(leftDelimiterOccurrence.offsets.end <= selectionOffsets.start && rightDelimiterOccurrence.offsets.start >= selectionOffsets.end)) {
    -        continue;
    -      }
    -      return getSurroundingPairOffsets(
    -        leftDelimiterOccurrence,
    -        rightDelimiterOccurrence
    -      );
    -    }
    -  }
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts
    -function findSurroundingPairCore(scopeType, delimiterOccurrences, acceptableDelimiters, selectionOffsets, bailOnUnmatchedAdjacent = false) {
    -  const initialIndex = (0, import_lodash31.sortedIndexBy)(
    -    delimiterOccurrences,
    -    {
    -      offsets: selectionOffsets
    -    },
    -    "offsets.end"
    -  );
    -  const delimiterPairAdjacentToSelection = findDelimiterPairAdjacentToSelection(
    -    initialIndex,
    -    delimiterOccurrences,
    -    selectionOffsets,
    -    scopeType,
    -    bailOnUnmatchedAdjacent
    -  );
    -  if (delimiterPairAdjacentToSelection != null) {
    -    return delimiterPairAdjacentToSelection;
    -  }
    -  return findDelimiterPairContainingSelection(
    -    initialIndex,
    -    delimiterOccurrences,
    -    acceptableDelimiters,
    -    selectionOffsets,
    -    scopeType
    -  );
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts
    -var import_lodash32 = __toESM(require_lodash(), 1);
    -function getIndividualDelimiters(delimiters) {
    -  return delimiters.flatMap((delimiter) => {
    -    const [leftDelimiter, rightDelimiter] = delimiterToText[delimiter];
    -    const leftDelimiters = isString(leftDelimiter) ? [leftDelimiter] : leftDelimiter;
    -    const rightDelimiters = isString(rightDelimiter) ? [rightDelimiter] : rightDelimiter;
    -    const allDelimiterTexts = (0, import_lodash32.uniq)((0, import_lodash32.concat)(leftDelimiters, rightDelimiters));
    -    return allDelimiterTexts.map((text) => {
    -      const isLeft = leftDelimiters.includes(text);
    -      const isRight = rightDelimiters.includes(text);
    -      return {
    -        text,
    -        // If delimiter text is the same for left and right, we say it's side
    -        // is "unknown", so must be determined from context.
    -        side: isLeft && !isRight ? "left" : isRight && !isLeft ? "right" : "unknown",
    -        delimiter
    -      };
    -    });
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts
    -function findSurroundingPairParseTreeBased(editor, selection, node, delimiters, scopeType) {
    -  const document = editor.document;
    -  const individualDelimiters = getIndividualDelimiters(delimiters);
    -  const delimiterTextToDelimiterInfoMap = Object.fromEntries(
    -    individualDelimiters.map((individualDelimiter) => [
    -      individualDelimiter.text,
    -      individualDelimiter
    -    ])
    -  );
    -  const selectionOffsets = {
    -    start: document.offsetAt(selection.start),
    -    end: document.offsetAt(selection.end)
    -  };
    -  const context = {
    -    delimiterTextToDelimiterInfoMap,
    -    individualDelimiters,
    -    delimiters,
    -    selectionOffsets,
    -    scopeType
    -  };
    -  for (let currentNode = node; currentNode != null; currentNode = currentNode.parent) {
    -    if (!getNodeRange(currentNode).contains(selection)) {
    -      continue;
    -    }
    -    const pairOffsets = findSurroundingPairContainedInNode(
    -      context,
    -      currentNode
    -    );
    -    if (pairOffsets != null) {
    -      return extractSelectionFromSurroundingPairOffsets(
    -        document,
    -        0,
    -        pairOffsets
    -      );
    -    }
    -  }
    -  return null;
    -}
    -function findSurroundingPairContainedInNode(context, node) {
    -  const {
    -    delimiterTextToDelimiterInfoMap,
    -    individualDelimiters,
    -    delimiters,
    -    selectionOffsets,
    -    scopeType
    -  } = context;
    -  const possibleDelimiterNodes = node.descendantsOfType(individualDelimiters.map(({ text }) => text)).filter((node2) => !(node2.text === "" && node2.hasError()));
    -  const delimiterOccurrences = possibleDelimiterNodes.map((delimiterNode) => {
    -    return {
    -      offsets: {
    -        start: delimiterNode.startIndex,
    -        end: delimiterNode.endIndex
    -      },
    -      get delimiterInfo() {
    -        const delimiterInfo = delimiterTextToDelimiterInfoMap[delimiterNode.type];
    -        if (delimiterInfo.delimiter === "angleBrackets" && inferDelimiterSide(delimiterNode) !== delimiterInfo.side && !isContainedInErrorNode(delimiterNode)) {
    -          return void 0;
    -        }
    -        const side = delimiterInfo.side === "unknown" && scopeType.forceDirection == null ? inferDelimiterSide(delimiterNode) : delimiterInfo.side;
    -        return {
    -          ...delimiterInfo,
    -          side
    -        };
    -      }
    -    };
    -  });
    -  return findSurroundingPairCore(
    -    scopeType,
    -    delimiterOccurrences,
    -    delimiters,
    -    selectionOffsets,
    -    // If we're not the root node of the parse tree (ie `node.parent !=
    -    // null`), we tell `findSurroundingPairCore` to bail if it finds a
    -    // delimiter adjacent to our selection, but doesn't find its opposite
    -    // delimiter within our list. We do so because it's possible that the
    -    // adjacent delimiter's opposite might be found when we run again on a
    -    // parent node later.
    -    node.parent != null
    -  );
    -}
    -function inferDelimiterSide(delimiterNode) {
    -  return delimiterNode.parent?.firstChild?.equals(delimiterNode) ? "left" : delimiterNode.parent?.lastChild?.equals(delimiterNode) ? "right" : "unknown";
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts
    -var import_lodash33 = __toESM(require_lodash(), 1);
    -var INITIAL_SCAN_LENGTH = 200;
    -var MAX_SCAN_LENGTH = 5e4;
    -var SCAN_EXPANSION_FACTOR = 3;
    -function findSurroundingPairTextBased(editor, range4, allowableRange, delimiters, scopeType) {
    -  const document = editor.document;
    -  const fullRange = allowableRange ?? document.range;
    -  const individualDelimiters = getIndividualDelimiters(delimiters);
    -  const delimiterTextToDelimiterInfoMap = Object.fromEntries(
    -    individualDelimiters.map((individualDelimiter) => [
    -      individualDelimiter.text,
    -      individualDelimiter
    -    ])
    -  );
    -  const delimiterRegex = getDelimiterRegex(individualDelimiters);
    -  const fullRangeOffsets = {
    -    start: document.offsetAt(fullRange.start),
    -    end: document.offsetAt(fullRange.end)
    -  };
    -  const selectionOffsets = {
    -    start: document.offsetAt(range4.start),
    -    end: document.offsetAt(range4.end)
    -  };
    -  const context = {
    -    scopeType,
    -    delimiterRegex,
    -    delimiters,
    -    delimiterTextToDelimiterInfoMap
    -  };
    -  for (let scanLength = INITIAL_SCAN_LENGTH; scanLength < MAX_SCAN_LENGTH; scanLength *= SCAN_EXPANSION_FACTOR) {
    -    const currentRangeOffsets = {
    -      start: Math.max(
    -        fullRangeOffsets.start,
    -        selectionOffsets.end - scanLength / 2
    -      ),
    -      end: Math.min(
    -        fullRangeOffsets.end,
    -        selectionOffsets.end + scanLength / 2
    -      )
    -    };
    -    const currentRange = new Range(
    -      document.positionAt(currentRangeOffsets.start),
    -      document.positionAt(currentRangeOffsets.end)
    -    );
    -    if (!currentRange.contains(range4)) {
    -      continue;
    -    }
    -    const adjustedSelectionOffsets = {
    -      start: selectionOffsets.start - currentRangeOffsets.start,
    -      end: selectionOffsets.end - currentRangeOffsets.start
    -    };
    -    const pairOffsets = getDelimiterPairOffsets(
    -      context,
    -      document.getText(currentRange),
    -      adjustedSelectionOffsets,
    -      currentRangeOffsets.start === fullRangeOffsets.start,
    -      currentRangeOffsets.end === fullRangeOffsets.end
    -    );
    -    if (pairOffsets != null) {
    -      return extractSelectionFromSurroundingPairOffsets(
    -        document,
    -        currentRangeOffsets.start,
    -        pairOffsets
    -      );
    -    }
    -    if (currentRange.contains(fullRange)) {
    -      break;
    -    }
    -  }
    -  return null;
    -}
    -function getDelimiterRegex(individualDelimiters) {
    -  const individualDelimiterDisjunct = (0, import_lodash33.uniq)(
    -    individualDelimiters.map(({ text }) => text)
    -  ).map(import_lodash33.escapeRegExp).join("|");
    -  return new RegExp(`(? {
    -      const startOffset = match2.index;
    -      const matchText2 = match2[0];
    -      let hasCachedDelimiterInfo = false;
    -      let cachedDelimiterInfo = void 0;
    -      return {
    -        offsets: {
    -          start: startOffset,
    -          end: startOffset + matchText2.length
    -        },
    -        get delimiterInfo() {
    -          if (hasCachedDelimiterInfo) {
    -            return cachedDelimiterInfo;
    -          }
    -          const rawDelimiterInfo = delimiterTextToDelimiterInfoMap[matchText2];
    -          const side = rawDelimiterInfo.side === "unknown" && forceDirection == null ? inferDelimiterSide2(
    -            text,
    -            delimiterOccurrences,
    -            index,
    -            rawDelimiterInfo?.delimiter,
    -            startOffset
    -          ) : rawDelimiterInfo.side;
    -          const delimiterInfo = { ...rawDelimiterInfo, side };
    -          hasCachedDelimiterInfo = true;
    -          cachedDelimiterInfo = delimiterInfo;
    -          return delimiterInfo;
    -        }
    -      };
    -    }
    -  );
    -  const surroundingPair = findSurroundingPairCore(
    -    scopeType,
    -    delimiterOccurrences,
    -    delimiters,
    -    selectionOffsets,
    -    !isAtStartOfFullRange || !isAtEndOfFullRange
    -  );
    -  if (surroundingPair == null || !isAtStartOfFullRange && surroundingPair.leftDelimiter.start === 0 || !isAtEndOfFullRange && surroundingPair.rightDelimiter.end === text.length - 1) {
    -    return null;
    -  }
    -  return surroundingPair;
    -}
    -function inferDelimiterSide2(fullText, delimiterOccurrences, index, delimiter, occurrenceStartOffset) {
    -  const previousOccurrence = index === 0 ? null : (0, import_lodash33.findLast)(
    -    delimiterOccurrences,
    -    (delimiterOccurrence) => delimiterOccurrence.delimiterInfo?.delimiter === delimiter,
    -    index - 1
    -  );
    -  if (previousOccurrence == null || fullText.substring(previousOccurrence.offsets.end, occurrenceStartOffset).includes("\n")) {
    -    return "left";
    -  }
    -  return previousOccurrence.delimiterInfo.side === "left" ? "right" : "left";
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/surroundingPair/index.ts
    -function processSurroundingPair(languageDefinitions, target, scopeType) {
    -  const pairInfo = processSurroundingPairCore(
    -    languageDefinitions,
    -    target,
    -    scopeType
    -  );
    -  if (pairInfo == null) {
    -    return null;
    -  }
    -  return new SurroundingPairTarget({
    -    ...pairInfo,
    -    editor: target.editor,
    -    isReversed: target.isReversed
    -  });
    -}
    -function processSurroundingPairCore(languageDefinitions, target, scopeType) {
    -  const { editor, contentRange: range4 } = target;
    -  const languageDefinition = languageDefinitions.get(
    -    target.editor.document.languageId
    -  );
    -  const document = editor.document;
    -  const delimiters = complexDelimiterMap[scopeType.delimiter] ?? [scopeType.delimiter];
    -  let node;
    -  try {
    -    node = languageDefinitions.getNodeAtLocation(document, range4);
    -    if (nodeHasError(node)) {
    -      return findSurroundingPairTextBased(
    -        editor,
    -        range4,
    -        null,
    -        delimiters,
    -        scopeType
    -      );
    -    }
    -  } catch (err) {
    -    if (err.name === "UnsupportedLanguageError") {
    -      return findSurroundingPairTextBased(
    -        editor,
    -        range4,
    -        null,
    -        delimiters,
    -        scopeType
    -      );
    -    } else {
    -      throw err;
    -    }
    -  }
    -  const textFragmentRange = (() => {
    -    const textFragmentScopeHandler = languageDefinition?.getTextFragmentScopeHandler();
    -    if (textFragmentScopeHandler != null) {
    -      const containingScope = getContainingScopeTarget(
    -        target,
    -        textFragmentScopeHandler,
    -        0
    -      );
    -      return containingScope?.[0].contentRange;
    -    }
    -    const textFragmentExtractor = getTextFragmentExtractor(document.languageId);
    -    if (textFragmentExtractor == null) {
    -      return document.range;
    -    }
    -    const selectionWithEditor = {
    -      editor,
    -      selection: new Selection(range4.start, range4.end)
    -    };
    -    return textFragmentExtractor(node, selectionWithEditor);
    -  })();
    -  if (textFragmentRange != null) {
    -    const surroundingRange = findSurroundingPairTextBased(
    -      editor,
    -      range4,
    -      textFragmentRange,
    -      delimiters,
    -      scopeType
    -    );
    -    if (surroundingRange != null) {
    -      return surroundingRange;
    -    }
    -  }
    -  return findSurroundingPairParseTreeBased(
    -    editor,
    -    range4,
    -    node,
    -    delimiters,
    -    scopeType
    -  );
    -}
    -function nodeHasError(node, includeChildren = false) {
    -  if (nodeIsError(node)) {
    -    return true;
    -  }
    -  if (includeChildren) {
    -    if (node.children.some(nodeIsError)) {
    -      return true;
    -    }
    -  }
    -  if (node.parent != null) {
    -    return nodeHasError(node.parent, true);
    -  }
    -  return false;
    -}
    -function nodeIsError(node) {
    -  return node.type === "ERROR";
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/ItemStage/getIterationScope.ts
    -function getIterationScope(languageDefinitions, target) {
    -  let surroundingTarget = getSurroundingPair(languageDefinitions, target);
    -  while (surroundingTarget != null) {
    -    if (useInteriorOfSurroundingTarget(
    -      languageDefinitions,
    -      target,
    -      surroundingTarget
    -    )) {
    -      return {
    -        range: surroundingTarget.getInteriorStrict()[0].contentRange,
    -        boundary: getBoundary(surroundingTarget)
    -      };
    -    }
    -    surroundingTarget = getParentSurroundingPair(
    -      languageDefinitions,
    -      target.editor,
    -      surroundingTarget
    -    );
    -  }
    -  return {
    -    range: fitRangeToLineContent(target.editor, target.contentRange)
    -  };
    -}
    -function useInteriorOfSurroundingTarget(languageDefinitions, target, surroundingTarget) {
    -  const { contentRange } = target;
    -  if (contentRange.isEmpty) {
    -    const [left, right] = getBoundary(surroundingTarget);
    -    const pos = contentRange.start;
    -    if (pos.isEqual(left.start) || pos.isEqual(right.end)) {
    -      return false;
    -    }
    -    const line = target.editor.document.lineAt(pos);
    -    if (pos.isEqual(left.end) && characterIsWhitespaceOrMissing(line, pos.character)) {
    -      return false;
    -    }
    -    if (pos.isEqual(right.start) && characterIsWhitespaceOrMissing(line, pos.character - 1)) {
    -      return false;
    -    }
    -  } else {
    -    if (contentRange.isRangeEqual(surroundingTarget.contentRange)) {
    -      return false;
    -    }
    -    const [left, right] = getBoundary(surroundingTarget);
    -    if (contentRange.isRangeEqual(left) || contentRange.isRangeEqual(right)) {
    -      return false;
    -    }
    -  }
    -  const surroundingStringTarget = getStringSurroundingPair(
    -    languageDefinitions,
    -    surroundingTarget
    -  );
    -  if (surroundingStringTarget != null && surroundingTarget.contentRange.start.isBeforeOrEqual(
    -    surroundingStringTarget.contentRange.start
    -  )) {
    -    return false;
    -  }
    -  return true;
    -}
    -function getBoundary(surroundingTarget) {
    -  return surroundingTarget.getBoundaryStrict().map((t) => t.contentRange);
    -}
    -function characterIsWhitespaceOrMissing(line, index) {
    -  return index < line.range.start.character || index >= line.range.end.character || line.text[index].trim() === "";
    -}
    -function getParentSurroundingPair(languageDefinitions, editor, target) {
    -  const startOffset = editor.document.offsetAt(target.contentRange.start);
    -  if (startOffset === 0) {
    -    return null;
    -  }
    -  const position = editor.document.positionAt(startOffset - 1);
    -  return getSurroundingPair(
    -    languageDefinitions,
    -    new PlainTarget({
    -      editor,
    -      contentRange: new Range(position, position),
    -      isReversed: false
    -    })
    -  );
    -}
    -function getSurroundingPair(languageDefinitions, target) {
    -  return processSurroundingPair(languageDefinitions, target, {
    -    type: "surroundingPair",
    -    delimiter: "collectionBoundary",
    -    requireStrongContainment: true
    -  });
    -}
    -function getStringSurroundingPair(languageDefinitions, target) {
    -  return processSurroundingPair(languageDefinitions, target, {
    -    type: "surroundingPair",
    -    delimiter: "string",
    -    requireStrongContainment: true
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/ItemStage/tokenizeRange.ts
    -function tokenizeRange(editor, interior, boundary) {
    -  const { document } = editor;
    -  const text = document.getText(interior);
    -  const lexemes = text.split(/([,(){}<>[\]"'`])|(? lexeme != null && lexeme.length > 0);
    -  const joinedLexemes = joinLexemesBySkippingMatchingPairs(lexemes);
    -  const tokens = [];
    -  let offset = document.offsetAt(interior.start);
    -  joinedLexemes.forEach((lexeme) => {
    -    if (lexeme.trim().length === 0) {
    -      offset += lexeme.length;
    -      return;
    -    }
    -    if (lexeme === separator) {
    -      tokens.push({
    -        type: "separator",
    -        range: new Range(
    -          document.positionAt(offset),
    -          document.positionAt(offset + lexeme.length)
    -        )
    -      });
    -    } else {
    -      const offsetStart = offset + (lexeme.length - lexeme.trimStart().length);
    -      tokens.push({
    -        type: "item",
    -        range: new Range(
    -          document.positionAt(offsetStart),
    -          document.positionAt(offsetStart + lexeme.trim().length)
    -        )
    -      });
    -    }
    -    offset += lexeme.length;
    -  });
    -  if (boundary != null) {
    -    return [
    -      { type: "boundary", range: boundary[0] },
    -      ...tokens,
    -      { type: "boundary", range: boundary[1] }
    -    ];
    -  }
    -  return tokens;
    -}
    -function joinLexemesBySkippingMatchingPairs(lexemes) {
    -  const result = [];
    -  let delimiterBalance = 0;
    -  let openingDelimiter = null;
    -  let closingDelimiter = null;
    -  let startIndex = -1;
    -  lexemes.forEach((lexeme, index) => {
    -    if (delimiterBalance > 0) {
    -      if (lexeme === closingDelimiter) {
    -        --delimiterBalance;
    -      } else if (lexeme === openingDelimiter) {
    -        ++delimiterBalance;
    -      }
    -    } else if (leftToRightMap2[lexeme] != null && lexemes.indexOf(leftToRightMap2[lexeme], index + 1) > -1) {
    -      openingDelimiter = lexeme;
    -      closingDelimiter = leftToRightMap2[lexeme];
    -      delimiterBalance = 1;
    -      if (startIndex < 0) {
    -        startIndex = index;
    -      }
    -    } else if (startIndex < 0) {
    -      startIndex = index;
    -    }
    -    const isSeparator = lexeme === separator && delimiterBalance === 0;
    -    if (isSeparator || index === lexemes.length - 1) {
    -      const endIndex = isSeparator ? index : index + 1;
    -      result.push(lexemes.slice(startIndex, endIndex).join(""));
    -      startIndex = -1;
    -      if (isSeparator) {
    -        result.push(lexeme);
    -      }
    -    }
    -  });
    -  return result;
    -}
    -var separator = ",";
    -var leftToRightMap2 = {
    -  "(": ")",
    -  "{": "}",
    -  "<": ">",
    -  "[": "]",
    -  '"': '"',
    -  "'": "'",
    -  "`": "`"
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/ItemStage/ItemStage.ts
    -var ItemStage = class {
    -  constructor(languageDefinitions, modifier) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    try {
    -      return new LegacyContainingSyntaxScopeStage(
    -        this.languageDefinitions,
    -        this.modifier
    -      ).run(target);
    -    } catch (_error) {
    -    }
    -    if (this.modifier.type === "everyScope") {
    -      return this.getEveryTarget(this.languageDefinitions, target);
    -    }
    -    return [this.getSingleTarget(this.languageDefinitions, target)];
    -  }
    -  getEveryTarget(languageDefinitions, target) {
    -    const itemInfos = getItemInfosForIterationScope(
    -      languageDefinitions,
    -      target
    -    );
    -    const filteredItemInfos = target.hasExplicitRange ? filterItemInfos(target, itemInfos) : itemInfos;
    -    if (filteredItemInfos.length === 0) {
    -      throw new NoContainingScopeError(this.modifier.scopeType.type);
    -    }
    -    return filteredItemInfos.map(
    -      (itemInfo) => this.itemInfoToTarget(target, itemInfo)
    -    );
    -  }
    -  getSingleTarget(languageDefinitions, target) {
    -    const itemInfos = getItemInfosForIterationScope(
    -      languageDefinitions,
    -      target
    -    );
    -    const filteredItemInfos = filterItemInfos(target, itemInfos);
    -    if (filteredItemInfos.length === 0) {
    -      throw new NoContainingScopeError(this.modifier.scopeType.type);
    -    }
    -    const first = filteredItemInfos[0];
    -    const last2 = filteredItemInfos[filteredItemInfos.length - 1];
    -    const itemInfo = {
    -      contentRange: first.contentRange.union(last2.contentRange),
    -      domain: first.domain.union(last2.domain),
    -      leadingDelimiterRange: first.leadingDelimiterRange,
    -      trailingDelimiterRange: last2.trailingDelimiterRange
    -    };
    -    const removalRange = itemInfo.leadingDelimiterRange != null && itemInfo.trailingDelimiterRange != null && getRangeLength(target.editor, itemInfo.leadingDelimiterRange) > getRangeLength(target.editor, itemInfo.trailingDelimiterRange) ? itemInfo.contentRange.union(itemInfo.leadingDelimiterRange) : void 0;
    -    return this.itemInfoToTarget(target, itemInfo, removalRange);
    -  }
    -  itemInfoToTarget(target, itemInfo, removalRange) {
    -    const insertionDelimiter = getInsertionDelimiter3(
    -      itemInfo.leadingDelimiterRange,
    -      itemInfo.trailingDelimiterRange
    -    );
    -    return new ScopeTypeTarget({
    -      scopeTypeType: this.modifier.scopeType.type,
    -      editor: target.editor,
    -      isReversed: target.isReversed,
    -      contentRange: itemInfo.contentRange,
    -      insertionDelimiter,
    -      leadingDelimiterRange: itemInfo.leadingDelimiterRange,
    -      trailingDelimiterRange: itemInfo.trailingDelimiterRange,
    -      removalRange
    -    });
    -  }
    -};
    -function getInsertionDelimiter3(leadingDelimiterRange, trailingDelimiterRange) {
    -  return leadingDelimiterRange != null && !leadingDelimiterRange.isSingleLine || trailingDelimiterRange != null && !trailingDelimiterRange.isSingleLine ? ",\n" : ", ";
    -}
    -function filterItemInfos(target, itemInfos) {
    -  return itemInfos.filter(
    -    (itemInfo) => itemInfo.domain.intersection(target.contentRange) != null
    -  );
    -}
    -function getItemInfosForIterationScope(languageDefinitions, target) {
    -  const { range: range4, boundary } = getIterationScope(languageDefinitions, target);
    -  return getItemsInRange(target.editor, range4, boundary);
    -}
    -function getItemsInRange(editor, interior, boundary) {
    -  const tokens = tokenizeRange(editor, interior, boundary);
    -  const itemInfos = [];
    -  tokens.forEach((token, i) => {
    -    if (token.type === "separator" || token.type === "boundary") {
    -      return;
    -    }
    -    const leadingDelimiterRange = (() => {
    -      if (tokens[i - 2]?.type === "item") {
    -        return new Range(tokens[i - 2].range.end, token.range.start);
    -      }
    -      if (tokens[i - 1]?.type === "separator") {
    -        return new Range(tokens[i - 1].range.start, token.range.start);
    -      }
    -      return void 0;
    -    })();
    -    const trailingDelimiterRange = (() => {
    -      if (tokens[i + 2]?.type === "item") {
    -        return new Range(token.range.end, tokens[i + 2].range.start);
    -      }
    -      if (tokens[i + 1]?.type === "separator") {
    -        return new Range(token.range.end, tokens[i + 1].range.end);
    -      }
    -      return void 0;
    -    })();
    -    const domainStart = tokens[i - 1]?.type === "boundary" || tokens[i - 1]?.type === "separator" ? tokens[i - 1].range.end : token.range.start;
    -    const domainEnd = tokens[i + 1]?.type === "boundary" || tokens[i + 1]?.type === "separator" ? tokens[i + 1].range.start : token.range.end;
    -    itemInfos.push({
    -      contentRange: token.range,
    -      leadingDelimiterRange,
    -      trailingDelimiterRange,
    -      domain: new Range(domainStart, domainEnd)
    -    });
    -  });
    -  return itemInfos;
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
    -var NoDelimiterError = class extends Error {
    -  constructor(type2) {
    -    super(`Target has no ${type2} delimiter.`);
    -    this.name = "NoDelimiterError";
    -  }
    -};
    -var LeadingStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return this.modifierStageFactory.create(containingTokenIfUntypedModifier).run(target).map((target2) => {
    -      const leading = target2.getLeadingDelimiterTarget();
    -      if (leading == null) {
    -        throw new NoDelimiterError("leading");
    -      }
    -      return leading;
    -    });
    -  }
    -};
    -var TrailingStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return this.modifierStageFactory.create(containingTokenIfUntypedModifier).run(target).map((target2) => {
    -      const trailing = target2.getTrailingDelimiterTarget();
    -      if (trailing == null) {
    -        throw new NoDelimiterError("trailing");
    -      }
    -      return trailing;
    -    });
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/targetSequenceUtils.ts
    -function createRangeTargetFromIndices(isReversed, targets, startIndex, endIndex) {
    -  assertIndices(targets, startIndex, endIndex);
    -  if (startIndex === endIndex) {
    -    return targets[startIndex];
    -  }
    -  return createContinuousRangeTarget(
    -    isReversed,
    -    targets[startIndex],
    -    targets[endIndex],
    -    true,
    -    true
    -  );
    -}
    -function getEveryScopeTargets(modifierStageFactory, target, scopeType) {
    -  const containingStage = modifierStageFactory.create({
    -    type: "everyScope",
    -    scopeType
    -  });
    -  return containingStage.run(target);
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
    -var OrdinalScopeStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const targets = getEveryScopeTargets(
    -      this.modifierStageFactory,
    -      target,
    -      this.modifier.scopeType
    -    );
    -    const startIndex = this.modifier.start + (this.modifier.start < 0 ? targets.length : 0);
    -    const endIndex = startIndex + this.modifier.length - 1;
    -    if (this.modifier.isEvery) {
    -      return sliceStrict(targets, startIndex, endIndex);
    -    }
    -    return [
    -      createRangeTargetFromIndices(
    -        target.isReversed,
    -        targets,
    -        startIndex,
    -        endIndex
    -      )
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/PositionStage.ts
    -var PositionStage = class {
    -  run(target) {
    -    const parameters = {
    -      editor: target.editor,
    -      isReversed: target.isReversed,
    -      contentRange: this.getContentRange(target.contentRange)
    -    };
    -    return [
    -      target.isRaw ? new RawSelectionTarget(parameters) : new PlainTarget({ ...parameters, isToken: false })
    -    ];
    -  }
    -};
    -var StartOfStage = class extends PositionStage {
    -  getContentRange(contentRange) {
    -    return contentRange.start.toEmptyRange();
    -  }
    -};
    -var EndOfStage = class extends PositionStage {
    -  getContentRange(contentRange) {
    -    return contentRange.end.toEmptyRange();
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/RangeModifierStage.ts
    -var RangeModifierStage = class {
    -  constructor(modifierStageFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const anchorStage = this.modifierStageFactory.create(this.modifier.anchor);
    -    const activeStage = this.modifierStageFactory.create(this.modifier.active);
    -    const anchorTargets = anchorStage.run(target);
    -    const activeTargets = activeStage.run(target);
    -    if (anchorTargets.length !== 1 || activeTargets.length !== 1) {
    -      throw new Error("Expected single anchor and active target");
    -    }
    -    return [
    -      targetsToContinuousTarget(
    -        anchorTargets[0],
    -        activeTargets[0],
    -        this.modifier.excludeAnchor,
    -        this.modifier.excludeActive
    -      )
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/RawSelectionStage.ts
    -var RawSelectionStage = class {
    -  constructor(modifier) {
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return [
    -      new RawSelectionTarget({
    -        editor: target.editor,
    -        contentRange: target.contentRange,
    -        isReversed: target.isReversed
    -      })
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/relativeScopeLegacy.ts
    -var import_lodash34 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/processTargets/modifiers/TooFewScopesError.ts
    -var TooFewScopesError = class extends Error {
    -  constructor(requestedLength, currentLength, scopeType) {
    -    super(
    -      `Requested ${requestedLength} ${scopeType}s, but ${currentLength} are already selected.`
    -    );
    -    this.name = "TooFewScopesError";
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/relativeScopeLegacy.ts
    -function runLegacy(modifierStageFactory, modifier, target) {
    -  const targets = getEveryScopeTargets(
    -    modifierStageFactory,
    -    createTargetWithoutExplicitRange(target),
    -    modifier.scopeType
    -  );
    -  const containingIndices = getContainingIndices(target.contentRange, targets);
    -  return calculateIndicesAndCreateTarget(
    -    modifier,
    -    target,
    -    targets,
    -    containingIndices
    -  );
    -}
    -function calculateIndicesAndCreateTarget(modifier, target, targets, containingIndices) {
    -  const isForward = modifier.direction === "forward";
    -  const proximalIndex = computeProximalIndex(
    -    modifier,
    -    target.contentRange,
    -    targets,
    -    isForward,
    -    containingIndices
    -  );
    -  const distalIndex = isForward ? proximalIndex + modifier.length - 1 : proximalIndex - modifier.length + 1;
    -  const startIndex = Math.min(proximalIndex, distalIndex);
    -  const endIndex = Math.max(proximalIndex, distalIndex);
    -  return [
    -    createRangeTargetFromIndices(
    -      target.isReversed,
    -      targets,
    -      startIndex,
    -      endIndex
    -    )
    -  ];
    -}
    -function computeProximalIndex(modifier, inputTargetRange, targets, isForward, containingIndices) {
    -  const includeIntersectingScopes = modifier.offset === 0;
    -  if (containingIndices == null) {
    -    const adjacentTargetIndex = isForward ? targets.findIndex(
    -      (t) => t.contentRange.start.isAfter(inputTargetRange.start)
    -    ) : (0, import_lodash34.findLastIndex)(
    -      targets,
    -      (t) => t.contentRange.start.isBefore(inputTargetRange.start)
    -    );
    -    if (adjacentTargetIndex === -1) {
    -      throw new OutOfRangeError();
    -    }
    -    if (includeIntersectingScopes) {
    -      return adjacentTargetIndex;
    -    }
    -    return isForward ? adjacentTargetIndex + modifier.offset - 1 : adjacentTargetIndex - modifier.offset + 1;
    -  }
    -  const intersectingStartIndex = containingIndices.start;
    -  const intersectingEndIndex = containingIndices.end;
    -  if (includeIntersectingScopes) {
    -    const intersectingLength = intersectingEndIndex - intersectingStartIndex + 1;
    -    if (intersectingLength > modifier.length) {
    -      throw new TooFewScopesError(
    -        modifier.length,
    -        intersectingLength,
    -        modifier.scopeType.type
    -      );
    -    }
    -    return isForward ? intersectingStartIndex : intersectingEndIndex;
    -  }
    -  return isForward ? intersectingEndIndex + modifier.offset : intersectingStartIndex - modifier.offset;
    -}
    -function getContainingIndices(inputTargetRange, targets) {
    -  const targetsWithIntersection = targets.map((t, i) => ({
    -    index: i,
    -    intersection: t.contentRange.intersection(inputTargetRange)
    -  })).filter((t) => t.intersection != null);
    -  if (inputTargetRange.isEmpty) {
    -    if (targetsWithIntersection.length === 0) {
    -      return void 0;
    -    }
    -    const index = targetsWithIntersection.at(-1).index;
    -    return { start: index, end: index };
    -  }
    -  const targetsWithNonEmptyIntersection = targetsWithIntersection.filter((t) => !t.intersection.isEmpty).map((t) => t.index);
    -  if (targetsWithNonEmptyIntersection.length === 0) {
    -    return void 0;
    -  }
    -  return {
    -    start: targetsWithNonEmptyIntersection[0],
    -    end: targetsWithNonEmptyIntersection.at(-1)
    -  };
    -}
    -function createTargetWithoutExplicitRange(target) {
    -  return new UntypedTarget({
    -    editor: target.editor,
    -    isReversed: target.isReversed,
    -    contentRange: target.contentRange,
    -    hasExplicitRange: false
    -  });
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/RelativeScopeStage.ts
    -var RelativeScopeStage = class {
    -  constructor(modifierStageFactory, scopeHandlerFactory, modifier) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const scopeHandler = this.scopeHandlerFactory.create(
    -      this.modifier.scopeType,
    -      target.editor.document.languageId
    -    );
    -    if (scopeHandler == null) {
    -      return runLegacy(this.modifierStageFactory, this.modifier, target);
    -    }
    -    const scopes = Array.from(
    -      this.modifier.offset === 0 ? generateScopesInclusive(scopeHandler, target, this.modifier) : generateScopesExclusive(scopeHandler, target, this.modifier)
    -    );
    -    if (scopes.length < this.modifier.length) {
    -      throw new OutOfRangeError();
    -    }
    -    const { isReversed } = target;
    -    if (this.modifier.isEvery) {
    -      return scopes.flatMap((scope) => scope.getTargets(isReversed));
    -    }
    -    return constructScopeRangeTarget(
    -      isReversed,
    -      scopes[0],
    -      scopes[scopes.length - 1]
    -    );
    -  }
    -};
    -function generateScopesInclusive(scopeHandler, target, modifier) {
    -  const { editor, contentRange } = target;
    -  const { length: desiredScopeCount, direction } = modifier;
    -  const initialRange = getPreferredScopeTouchingPosition(
    -    scopeHandler,
    -    editor,
    -    direction === "forward" ? contentRange.start : contentRange.end,
    -    direction
    -  )?.domain;
    -  if (initialRange == null) {
    -    throw new NoContainingScopeError(modifier.scopeType.type);
    -  }
    -  return itake(
    -    desiredScopeCount,
    -    scopeHandler.generateScopes(
    -      editor,
    -      direction === "forward" ? initialRange.start : initialRange.end,
    -      direction,
    -      {
    -        skipAncestorScopes: true
    -      }
    -    )
    -  );
    -}
    -function generateScopesExclusive(scopeHandler, target, modifier) {
    -  const { editor, contentRange: inputRange } = target;
    -  const { length: desiredScopeCount, direction, offset } = modifier;
    -  const initialPosition = direction === "forward" ? inputRange.end : inputRange.start;
    -  const containment = inputRange.isEmpty ? "disallowed" : "disallowedIfStrict";
    -  return islice(
    -    scopeHandler.generateScopes(editor, initialPosition, direction, {
    -      containment,
    -      skipAncestorScopes: true
    -    }),
    -    offset - 1,
    -    offset + desiredScopeCount - 1
    -  );
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/SurroundingPairStage.ts
    -var SurroundingPairStage = class {
    -  constructor(languageDefinitions, modifier) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    if (this.modifier.type === "everyScope") {
    -      throw Error(`Unsupported every scope ${this.modifier.scopeType.type}`);
    -    }
    -    return processedSurroundingPairTarget(
    -      this.languageDefinitions,
    -      this.modifier,
    -      target
    -    );
    -  }
    -};
    -function processedSurroundingPairTarget(languageDefinitions, modifier, target) {
    -  const outputTarget = processSurroundingPair(
    -    languageDefinitions,
    -    target,
    -    modifier.scopeType
    -  );
    -  if (outputTarget == null) {
    -    throw new Error("Couldn't find containing pair");
    -  }
    -  return [outputTarget];
    -}
    -
    -// ../cursorless-engine/src/processTargets/modifiers/VisibleStage.ts
    -var VisibleStage = class {
    -  constructor(modifier) {
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    return target.editor.visibleRanges.map(
    -      (range4) => new PlainTarget({
    -        editor: target.editor,
    -        isReversed: target.isReversed,
    -        contentRange: range4
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts
    -var BoundedNonWhitespaceSequenceStage = class {
    -  constructor(languageDefinitions, modifierStageFactory, modifier) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    const paintStage = this.modifierStageFactory.create({
    -      type: this.modifier.type,
    -      scopeType: { type: "nonWhitespaceSequence" }
    -    });
    -    const paintTargets = paintStage.run(target);
    -    const pairInfo = processSurroundingPair(this.languageDefinitions, target, {
    -      type: "surroundingPair",
    -      delimiter: "any",
    -      requireStrongContainment: true
    -    });
    -    if (pairInfo == null) {
    -      return paintTargets;
    -    }
    -    const targets = paintTargets.flatMap((paintTarget) => {
    -      const contentRange = paintTarget.contentRange.intersection(
    -        pairInfo.getInteriorStrict()[0].contentRange
    -      );
    -      if (contentRange == null || contentRange.isEmpty) {
    -        return [];
    -      }
    -      return [
    -        new TokenTarget({
    -          editor: target.editor,
    -          isReversed: target.isReversed,
    -          contentRange
    -        })
    -      ];
    -    });
    -    if (targets.length === 0) {
    -      throw new NoContainingScopeError(this.modifier.scopeType.type);
    -    }
    -    return targets;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts
    -var NotebookCellStage = class {
    -  constructor(modifier) {
    -    this.modifier = modifier;
    -  }
    -  run(target) {
    -    if (this.modifier.type === "everyScope") {
    -      throw new Error(`Every ${this.modifier.type} not yet implemented`);
    -    }
    -    return [
    -      new NotebookCellTarget({
    -        editor: target.editor,
    -        isReversed: target.isReversed,
    -        contentRange: target.contentRange
    -      })
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/ModifierStageFactoryImpl.ts
    -var ModifierStageFactoryImpl = class {
    -  constructor(languageDefinitions, storedTargets, scopeHandlerFactory) {
    -    this.languageDefinitions = languageDefinitions;
    -    this.storedTargets = storedTargets;
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.create = this.create.bind(this);
    -  }
    -  create(modifier) {
    -    switch (modifier.type) {
    -      case "startOf":
    -        return new StartOfStage();
    -      case "endOf":
    -        return new EndOfStage();
    -      case "extendThroughStartOf":
    -        return new HeadStage(this, modifier);
    -      case "extendThroughEndOf":
    -        return new TailStage(this, modifier);
    -      case "toRawSelection":
    -        return new RawSelectionStage(modifier);
    -      case "interiorOnly":
    -        return new InteriorOnlyStage(this, modifier);
    -      case "excludeInterior":
    -        return new ExcludeInteriorStage(this, modifier);
    -      case "leading":
    -        return new LeadingStage(this, modifier);
    -      case "trailing":
    -        return new TrailingStage(this, modifier);
    -      case "visible":
    -        return new VisibleStage(modifier);
    -      case "containingScope":
    -        return new ContainingScopeStage(
    -          this,
    -          this.scopeHandlerFactory,
    -          modifier
    -        );
    -      case "everyScope":
    -        if (modifier.scopeType.type === "instance") {
    -          return new InstanceStage(this, this.storedTargets, modifier);
    -        }
    -        return new EveryScopeStage(this, this.scopeHandlerFactory, modifier);
    -      case "ordinalScope":
    -        if (modifier.scopeType.type === "instance") {
    -          return new InstanceStage(this, this.storedTargets, modifier);
    -        }
    -        return new OrdinalScopeStage(this, modifier);
    -      case "relativeScope":
    -        if (modifier.scopeType.type === "instance") {
    -          return new InstanceStage(this, this.storedTargets, modifier);
    -        }
    -        return new RelativeScopeStage(this, this.scopeHandlerFactory, modifier);
    -      case "keepContentFilter":
    -        return new KeepContentFilterStage(modifier);
    -      case "keepEmptyFilter":
    -        return new KeepEmptyFilterStage(modifier);
    -      case "cascading":
    -        return new CascadingStage(this, modifier);
    -      case "modifyIfUntyped":
    -        return new ModifyIfUntypedStage(this, modifier);
    -      case "range":
    -        return new RangeModifierStage(this, modifier);
    -      case "inferPreviousMark":
    -        throw Error(
    -          `Unexpected modifier '${modifier.type}'; it should have been removed during inference`
    -        );
    -    }
    -  }
    -  /**
    -   * Any scope type that has not been fully migrated to the new
    -   * {@link ScopeHandler} setup should have a branch in this `switch` statement.
    -   * Once the scope type is fully migrated, remove the branch and the legacy
    -   * modifier stage.
    -   *
    -   * Note that it is possible for a scope type to be partially migrated.  For
    -   * example, we could support modern scope handlers for a certain scope type in
    -   * Ruby, but not yet in Python.
    -   *
    -   * @param modifier The modifier for which to get the modifier stage
    -   * @returns A scope stage implementing the modifier for the given scope type
    -   */
    -  getLegacyScopeStage(modifier) {
    -    switch (modifier.scopeType.type) {
    -      case "notebookCell":
    -        return new NotebookCellStage(modifier);
    -      case "boundedNonWhitespaceSequence":
    -        return new BoundedNonWhitespaceSequenceStage(
    -          this.languageDefinitions,
    -          this,
    -          modifier
    -        );
    -      case "collectionItem":
    -        return new ItemStage(this.languageDefinitions, modifier);
    -      case "surroundingPair":
    -        return new SurroundingPairStage(
    -          this.languageDefinitions,
    -          modifier
    -        );
    -      default:
    -        return new LegacyContainingSyntaxScopeStage(
    -          this.languageDefinitions,
    -          modifier
    -        );
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/BreakLine.ts
    -var import_lodash37 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/core/updateSelections/updateSelections.ts
    -var import_lodash35 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/performDocumentEdits.ts
    -async function performDocumentEdits(rangeUpdater, editor, edits) {
    -  const deregister = rangeUpdater.registerReplaceEditList(
    -    editor.document,
    -    edits.filter((edit) => edit.isReplace)
    -  );
    -  const wereEditsApplied = await editor.edit(edits);
    -  deregister();
    -  return wereEditsApplied;
    -}
    -
    -// ../cursorless-engine/src/core/updateSelections/updateSelections.ts
    -function getSelectionInfo(document, selection, rangeBehavior) {
    -  return getSelectionInfoInternal(
    -    document,
    -    selection,
    -    !selection.isReversed,
    -    rangeBehavior
    -  );
    -}
    -function getSelectionInfoInternal(document, range4, isForward, rangeBehavior) {
    -  return {
    -    range: range4,
    -    isForward,
    -    expansionBehavior: {
    -      start: {
    -        type: rangeBehavior === 1 /* closedClosed */ || rangeBehavior === 3 /* closedOpen */ ? "closed" : "open"
    -      },
    -      end: {
    -        type: rangeBehavior === 1 /* closedClosed */ || rangeBehavior === 2 /* openClosed */ ? "closed" : "open"
    -      }
    -    },
    -    offsets: {
    -      start: document.offsetAt(range4.start),
    -      end: document.offsetAt(range4.end)
    -    },
    -    text: document.getText(range4)
    -  };
    -}
    -function selectionsToSelectionInfos(document, selectionMatrix, rangeBehavior = 1 /* closedClosed */) {
    -  return selectionMatrix.map(
    -    (selections) => selections.map(
    -      (selection) => getSelectionInfo(document, selection, rangeBehavior)
    -    )
    -  );
    -}
    -function rangesToSelectionInfos(document, rangeMatrix, rangeBehavior = 1 /* closedClosed */) {
    -  return rangeMatrix.map(
    -    (ranges) => ranges.map(
    -      (range4) => getSelectionInfoInternal(document, range4, false, rangeBehavior)
    -    )
    -  );
    -}
    -function selectionInfosToSelections(selectionInfoMatrix) {
    -  return selectionInfoMatrix.map(
    -    (selectionInfos) => selectionInfos.map(
    -      ({ range: { start, end }, isForward }) => isForward ? new Selection(start, end) : new Selection(end, start)
    -    )
    -  );
    -}
    -async function callFunctionAndUpdateSelections(rangeUpdater, func, document, selectionMatrix) {
    -  const selectionInfoMatrix = selectionsToSelectionInfos(
    -    document,
    -    selectionMatrix
    -  );
    -  return await callFunctionAndUpdateSelectionInfos(
    -    rangeUpdater,
    -    func,
    -    document,
    -    selectionInfoMatrix
    -  );
    -}
    -async function callFunctionAndUpdateRanges(rangeUpdater, func, document, rangeMatrix) {
    -  const selectionInfoMatrix = rangesToSelectionInfos(document, rangeMatrix);
    -  return await callFunctionAndUpdateSelectionInfos(
    -    rangeUpdater,
    -    func,
    -    document,
    -    selectionInfoMatrix
    -  );
    -}
    -async function callFunctionAndUpdateSelectionInfos(rangeUpdater, func, document, selectionInfoMatrix) {
    -  const unsubscribe = rangeUpdater.registerRangeInfoList(
    -    document,
    -    (0, import_lodash35.flatten)(selectionInfoMatrix)
    -  );
    -  await func();
    -  unsubscribe();
    -  return selectionInfosToSelections(selectionInfoMatrix);
    -}
    -function callFunctionAndUpdateSelectionsWithBehavior(rangeUpdater, func, document, originalSelections) {
    -  return callFunctionAndUpdateSelectionInfos(
    -    rangeUpdater,
    -    func,
    -    document,
    -    originalSelections.map(
    -      (selectionsWithBehavior) => selectionsWithBehavior.selections.map(
    -        (selection) => getSelectionInfo(
    -          document,
    -          selection,
    -          selectionsWithBehavior.rangeBehavior ?? 1 /* closedClosed */
    -        )
    -      )
    -    )
    -  );
    -}
    -async function performEditsAndUpdateSelections(rangeUpdater, editor, edits, originalSelections) {
    -  const document = editor.document;
    -  const selectionInfoMatrix = selectionsToSelectionInfos(
    -    document,
    -    originalSelections
    -  );
    -  return performEditsAndUpdateFullSelectionInfos(
    -    rangeUpdater,
    -    editor,
    -    edits,
    -    selectionInfoMatrix
    -  );
    -}
    -function performEditsAndUpdateSelectionsWithBehavior(rangeUpdater, editor, edits, originalSelections) {
    -  return performEditsAndUpdateFullSelectionInfos(
    -    rangeUpdater,
    -    editor,
    -    edits,
    -    originalSelections.map(
    -      (selectionsWithBehavior) => selectionsWithBehavior.selections.map(
    -        (selection) => getSelectionInfo(
    -          editor.document,
    -          selection,
    -          selectionsWithBehavior.rangeBehavior ?? 1 /* closedClosed */
    -        )
    -      )
    -    )
    -  );
    -}
    -async function performEditsAndUpdateRanges(rangeUpdater, editor, edits, originalRanges) {
    -  const document = editor.document;
    -  const selectionInfoMatrix = rangesToSelectionInfos(document, originalRanges);
    -  return performEditsAndUpdateFullSelectionInfos(
    -    rangeUpdater,
    -    editor,
    -    edits,
    -    selectionInfoMatrix
    -  );
    -}
    -async function performEditsAndUpdateFullSelectionInfos(rangeUpdater, editor, edits, originalSelectionInfos) {
    -  const func = async () => {
    -    const wereEditsApplied = await performDocumentEdits(
    -      rangeUpdater,
    -      editor,
    -      edits
    -    );
    -    if (!wereEditsApplied) {
    -      throw new Error("Could not apply edits");
    -    }
    -  };
    -  return await callFunctionAndUpdateSelectionInfos(
    -    rangeUpdater,
    -    func,
    -    editor.document,
    -    originalSelectionInfos
    -  );
    -}
    -
    -// ../cursorless-engine/src/util/targetUtils.ts
    -var import_lodash36 = __toESM(require_lodash(), 1);
    -function ensureSingleEditor2(targets) {
    -  if (targets.length === 0) {
    -    throw new Error("Require at least one target with this action");
    -  }
    -  const editors = targets.map((target) => target.editor);
    -  if (new Set(editors).size > 1) {
    -    throw new Error("Can only have one editor with this action");
    -  }
    -  return editors[0];
    -}
    -function ensureSingleTarget(targets) {
    -  if (targets.length !== 1) {
    -    throw new Error("Can only have one target with this action");
    -  }
    -  return targets[0];
    -}
    -async function runForEachEditor(targets, getEditor, func) {
    -  return Promise.all(
    -    groupForEachEditor(targets, getEditor).map(
    -      ([editor, editorTargets]) => func(editor, editorTargets)
    -    )
    -  );
    -}
    -async function runOnTargetsForEachEditor(targets, func) {
    -  return runForEachEditor(targets, (target) => target.editor, func);
    -}
    -async function runOnTargetsForEachEditorSequentially(targets, func) {
    -  const editorGroups = groupForEachEditor(targets, (target) => target.editor);
    -  const result = [];
    -  for (const [editor, targets2] of editorGroups) {
    -    result.push(await func(editor, targets2));
    -  }
    -  return result;
    -}
    -function groupTargetsForEachEditor(targets) {
    -  return groupForEachEditor(targets, (target) => target.editor);
    -}
    -function groupForEachEditor(targets, getEditor) {
    -  const getDocumentUri = (target) => getEditor(target).document.uri;
    -  const editorMap = groupBy(targets, getDocumentUri);
    -  return Array.from(editorMap.values(), (editorTargets) => {
    -    const editor = getEditor(editorTargets[0]);
    -    return [editor, editorTargets];
    -  });
    -}
    -function getContentRange2(target) {
    -  return target.contentRange;
    -}
    -function createThatMark(targets, ranges) {
    -  const thatMark = ranges != null ? (0, import_lodash36.zip)(targets, ranges).map(([target, range4]) => ({
    -    editor: target.editor,
    -    selection: target?.isReversed ? new Selection(range4.end, range4.start) : new Selection(range4.start, range4.end)
    -  })) : targets.map((target) => ({
    -    editor: target.editor,
    -    selection: target.contentSelection
    -  }));
    -  return thatMark;
    -}
    -function toGeneralizedRange(target) {
    -  const range4 = target.contentRange;
    -  return target.isLine ? toLineRange(range4) : toCharacterRange(range4);
    -}
    -function flashTargets(ide2, targets, style, getRange = getContentRange2) {
    -  return ide2.flashRanges(
    -    targets.map((target) => {
    -      const range4 = getRange(target);
    -      if (range4 == null) {
    -        return null;
    -      }
    -      return {
    -        editor: target.editor,
    -        range: target.isLine ? toLineRange(range4) : toCharacterRange(range4),
    -        style
    -      };
    -    }).filter((flash) => flash != null)
    -  );
    -}
    -
    -// ../cursorless-engine/src/actions/BreakLine.ts
    -var BreakLine = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */);
    -    const thatSelections = (0, import_lodash37.flatten)(
    -      await runOnTargetsForEachEditor(targets, async (editor, targets2) => {
    -        const contentRanges = targets2.map(({ contentRange }) => contentRange);
    -        const edits = getEdits(editor, contentRanges);
    -        const [updatedRanges] = await performEditsAndUpdateRanges(
    -          this.rangeUpdater,
    -          ide().getEditableTextEditor(editor),
    -          edits,
    -          [contentRanges]
    -        );
    -        return (0, import_lodash37.zip)(targets2, updatedRanges).map(([target, range4]) => ({
    -          editor: target.editor,
    -          selection: range4.toSelection(target.isReversed)
    -        }));
    -      })
    -    );
    -    return { thatSelections };
    -  }
    -};
    -function getEdits(editor, contentRanges) {
    -  const { document } = editor;
    -  const edits = [];
    -  for (const range4 of contentRanges) {
    -    const position = range4.start;
    -    const line = document.lineAt(position);
    -    const indentation = line.text.slice(
    -      0,
    -      line.firstNonWhitespaceCharacterIndex
    -    );
    -    const characterTrailingWhitespace = line.text.slice(0, position.character).search(/\s+$/);
    -    const replacementRange = characterTrailingWhitespace > -1 ? new Range(
    -      new Position(line.lineNumber, characterTrailingWhitespace),
    -      position
    -    ) : position.toEmptyRange();
    -    edits.push({
    -      range: replacementRange,
    -      text: "\n" + indentation,
    -      isReplace: !replacementRange.isEmpty
    -    });
    -  }
    -  return edits;
    -}
    -
    -// ../cursorless-engine/src/actions/BringMoveSwap.ts
    -var import_lodash38 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/util/setSelectionsAndFocusEditor.ts
    -async function setSelectionsAndFocusEditor(editor, selections, revealRange = true) {
    -  await setSelectionsWithoutFocusingEditor(editor, selections);
    -  if (revealRange) {
    -    await editor.revealRange(editor.selections[0]);
    -  }
    -  await editor.focus();
    -}
    -async function setSelectionsWithoutFocusingEditor(editor, selections) {
    -  await editor.setSelections(
    -    uniqWithHash(
    -      selections,
    -      (a, b) => a.isEqual(b),
    -      (s) => s.concise()
    -    )
    -  );
    -}
    -
    -// ../cursorless-engine/src/util/unifyRanges.ts
    -function unifyRemovalTargets(targets) {
    -  if (targets.length < 2) {
    -    return targets;
    -  }
    -  return groupTargetsForEachEditor(targets).flatMap(([_editor, targets2]) => {
    -    if (targets2.length < 2) {
    -      return targets2;
    -    }
    -    let results = [...targets2];
    -    results.sort(
    -      (a, b) => a.contentRange.start.compareTo(b.contentRange.start)
    -    );
    -    let run = true;
    -    while (run) {
    -      [results, run] = unifyTargetsOnePass(results);
    -    }
    -    return results;
    -  });
    -}
    -function unifyTargetsOnePass(targets) {
    -  if (targets.length < 2) {
    -    return [targets, false];
    -  }
    -  const results = [];
    -  let currentGroup = [];
    -  targets.forEach((target) => {
    -    if (currentGroup.length && !intersects(currentGroup[currentGroup.length - 1], target)) {
    -      results.push(mergeTargets(currentGroup));
    -      currentGroup = [target];
    -    } else {
    -      currentGroup.push(target);
    -    }
    -  });
    -  results.push(mergeTargets(currentGroup));
    -  return [results, results.length !== targets.length];
    -}
    -function mergeTargets(targets) {
    -  if (targets.length === 1) {
    -    return targets[0];
    -  }
    -  const first = targets[0];
    -  const last2 = targets[targets.length - 1];
    -  return targetsToContinuousTarget(first, last2);
    -}
    -function intersects(targetA, targetB) {
    -  return !!targetA.getRemovalRange().intersection(targetB.getRemovalRange());
    -}
    -
    -// ../cursorless-engine/src/actions/BringMoveSwap.ts
    -var BringMoveSwap = class {
    -  constructor(rangeUpdater, type2) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.type = type2;
    -  }
    -  async decorateTargets(sources, destinations) {
    -    await Promise.all([
    -      flashTargets(
    -        ide(),
    -        sources,
    -        this.decoration.sourceStyle,
    -        this.decoration.getSourceRangeCallback
    -      ),
    -      flashTargets(ide(), destinations, this.decoration.destinationStyle)
    -    ]);
    -  }
    -  getEditsBringMove(sources, destinations) {
    -    const usedSources = [];
    -    const results = [];
    -    const shouldJoinSources = sources.length !== destinations.length && destinations.length === 1;
    -    sources.forEach((source, i) => {
    -      let destination = destinations[i];
    -      if ((source == null || destination == null) && !shouldJoinSources) {
    -        throw new Error("Targets must have same number of args");
    -      }
    -      if (destination != null) {
    -        let text;
    -        if (shouldJoinSources) {
    -          text = sources.map((source2, i2) => {
    -            const text2 = source2.contentText;
    -            const delimiter = (destination.isRaw ? null : destination.insertionDelimiter) ?? (source2.isRaw ? null : source2.insertionDelimiter);
    -            return i2 > 0 && delimiter != null ? delimiter + text2 : text2;
    -          }).join("");
    -        } else {
    -          text = source.contentText;
    -        }
    -        results.push({
    -          edit: destination.constructChangeEdit(text),
    -          editor: destination.editor,
    -          originalTarget: destination.target,
    -          isSource: false
    -        });
    -      } else {
    -        destination = destinations[0];
    -      }
    -      if (!usedSources.includes(source)) {
    -        usedSources.push(source);
    -        if (this.type === "bring") {
    -          results.push({
    -            edit: source.toDestination("to").constructChangeEdit(destination.target.contentText),
    -            editor: source.editor,
    -            originalTarget: source,
    -            isSource: true
    -          });
    -        }
    -      }
    -    });
    -    if (this.type === "move") {
    -      unifyRemovalTargets(usedSources).forEach((source) => {
    -        results.push({
    -          edit: source.constructRemovalEdit(),
    -          editor: source.editor,
    -          originalTarget: source,
    -          isSource: true
    -        });
    -      });
    -    }
    -    return results;
    -  }
    -  async performEditsAndComputeThatMark(edits) {
    -    return (0, import_lodash38.flatten)(
    -      await runForEachEditor(
    -        edits,
    -        (edit) => edit.editor,
    -        async (editor, edits2) => {
    -          const filteredEdits = this.type !== "bring" ? edits2 : edits2.filter(({ isSource }) => !isSource);
    -          const sourceEdits = this.type === "swap" ? [] : edits2.filter(({ isSource }) => isSource);
    -          const destinationEdits = this.type === "swap" ? edits2 : edits2.filter(({ isSource }) => !isSource);
    -          const sourceEditSelectionInfos = sourceEdits.map(
    -            ({ edit: { range: range4 }, originalTarget }) => getSelectionInfo(
    -              editor.document,
    -              range4.toSelection(originalTarget.isReversed),
    -              1 /* closedClosed */
    -            )
    -          );
    -          const destinationEditSelectionInfos = destinationEdits.map(
    -            ({ edit: { range: range4 }, originalTarget }) => getSelectionInfo(
    -              editor.document,
    -              range4.toSelection(originalTarget.isReversed),
    -              0 /* openOpen */
    -            )
    -          );
    -          const cursorSelectionInfos = editor.selections.map(
    -            (selection) => getSelectionInfo(
    -              editor.document,
    -              selection,
    -              1 /* closedClosed */
    -            )
    -          );
    -          const editableEditor = ide().getEditableTextEditor(editor);
    -          const [
    -            updatedSourceEditSelections,
    -            updatedDestinationEditSelections,
    -            cursorSelections
    -          ] = await performEditsAndUpdateFullSelectionInfos(
    -            this.rangeUpdater,
    -            editableEditor,
    -            filteredEdits.map(({ edit }) => edit),
    -            [
    -              sourceEditSelectionInfos,
    -              destinationEditSelectionInfos,
    -              cursorSelectionInfos
    -            ]
    -          );
    -          await setSelectionsWithoutFocusingEditor(
    -            editableEditor,
    -            cursorSelections
    -          );
    -          const marks2 = [
    -            ...this.getMarks(sourceEdits, updatedSourceEditSelections),
    -            ...this.getMarks(
    -              destinationEdits,
    -              updatedDestinationEditSelections
    -            )
    -          ];
    -          marks2.sort(
    -            (a, b) => edits2.findIndex((e) => e.originalTarget === a.target) - edits2.findIndex((e) => e.originalTarget === b.target)
    -          );
    -          return marks2;
    -        }
    -      )
    -    );
    -  }
    -  getMarks(edits, selections) {
    -    return edits.map((edit, index) => {
    -      const selection = selections[index];
    -      const range4 = edit.edit.updateRange(selection);
    -      const target = edit.originalTarget;
    -      return {
    -        editor: edit.editor,
    -        selection: range4.toSelection(target.isReversed),
    -        isSource: edit.isSource,
    -        target
    -      };
    -    });
    -  }
    -  async decorateThatMark(thatMark) {
    -    const getRange = (target) => thatMark.find((t) => t.target === target).selection;
    -    return Promise.all([
    -      flashTargets(
    -        ide(),
    -        thatMark.filter(({ isSource }) => isSource).map(({ target }) => target),
    -        this.decoration.sourceStyle,
    -        getRange
    -      ),
    -      flashTargets(
    -        ide(),
    -        thatMark.filter(({ isSource }) => !isSource).map(({ target }) => target),
    -        this.decoration.destinationStyle,
    -        getRange
    -      )
    -    ]);
    -  }
    -  calculateMarksBringMove(markEntries) {
    -    return {
    -      thatMark: markEntries.filter(({ isSource }) => !isSource),
    -      sourceMark: markEntries.filter(({ isSource }) => isSource)
    -    };
    -  }
    -};
    -function broadcastSource(sources, destinations) {
    -  if (sources.length === 1) {
    -    return Array(destinations.length).fill(sources[0]);
    -  }
    -  return sources;
    -}
    -var Bring = class extends BringMoveSwap {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, "bring");
    -    this.decoration = {
    -      sourceStyle: "referenced" /* referenced */,
    -      destinationStyle: "pendingModification0" /* pendingModification0 */,
    -      getSourceRangeCallback: getContentRange2
    -    };
    -    this.run = this.run.bind(this);
    -  }
    -  async run(sources, destinations) {
    -    sources = broadcastSource(sources, destinations);
    -    await this.decorateTargets(
    -      sources,
    -      destinations.map((d) => d.target)
    -    );
    -    const edits = this.getEditsBringMove(sources, destinations);
    -    const markEntries = await this.performEditsAndComputeThatMark(edits);
    -    const { thatMark, sourceMark } = this.calculateMarksBringMove(markEntries);
    -    await this.decorateThatMark(thatMark);
    -    return { thatSelections: thatMark, sourceSelections: sourceMark };
    -  }
    -};
    -var Move = class extends BringMoveSwap {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, "move");
    -    this.decoration = {
    -      sourceStyle: "pendingDelete" /* pendingDelete */,
    -      destinationStyle: "pendingModification0" /* pendingModification0 */,
    -      getSourceRangeCallback: getRemovalHighlightRange
    -    };
    -    this.run = this.run.bind(this);
    -  }
    -  async run(sources, destinations) {
    -    sources = broadcastSource(sources, destinations);
    -    await this.decorateTargets(
    -      sources,
    -      destinations.map((d) => d.target)
    -    );
    -    const edits = this.getEditsBringMove(sources, destinations);
    -    const markEntries = await this.performEditsAndComputeThatMark(edits);
    -    const { thatMark, sourceMark } = this.calculateMarksBringMove(markEntries);
    -    await this.decorateThatMark(thatMark);
    -    return { thatSelections: thatMark, sourceSelections: sourceMark };
    -  }
    -};
    -var Swap = class extends BringMoveSwap {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, "swap");
    -    this.decoration = {
    -      sourceStyle: "pendingModification1" /* pendingModification1 */,
    -      destinationStyle: "pendingModification0" /* pendingModification0 */,
    -      getSourceRangeCallback: getContentRange2
    -    };
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets1, targets2) {
    -    await this.decorateTargets(targets1, targets2);
    -    const edits = this.getEditsSwap(targets1, targets2);
    -    const markEntries = await this.performEditsAndComputeThatMark(edits);
    -    await this.decorateThatMark(markEntries);
    -    return { thatSelections: markEntries, sourceSelections: [] };
    -  }
    -  getEditsSwap(targets1, targets2) {
    -    const results = [];
    -    targets1.forEach((target1, i) => {
    -      const target2 = targets2[i];
    -      if (target1 == null || target2 == null) {
    -        throw new Error("Targets must have same number of args");
    -      }
    -      results.push({
    -        edit: target2.toDestination("to").constructChangeEdit(target1.contentText),
    -        editor: target2.editor,
    -        originalTarget: target2,
    -        isSource: false
    -      });
    -      results.push({
    -        edit: target1.toDestination("to").constructChangeEdit(target2.contentText),
    -        editor: target1.editor,
    -        originalTarget: target1,
    -        isSource: true
    -      });
    -    });
    -    return results;
    -  }
    -};
    -function getRemovalHighlightRange(target) {
    -  return target.getRemovalHighlightRange();
    -}
    -
    -// ../cursorless-engine/src/actions/Call.ts
    -var Call = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(callees, args) {
    -    ensureSingleTarget(callees);
    -    const { returnValue: texts } = await this.actions.getText.run(callees, {
    -      showDecorations: false
    -    });
    -    const { thatSelections: thatMark } = await this.actions.wrapWithPairedDelimiter.run(args, texts[0] + "(", ")");
    -    return { thatSelections: thatMark };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Clear.ts
    -var Clear = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    const editor = ensureSingleEditor2(targets);
    -    const plainTargets = targets.map(
    -      (target) => new PlainTarget({
    -        editor: target.editor,
    -        isReversed: target.isReversed,
    -        contentRange: target.contentRange
    -      })
    -    );
    -    const { thatTargets } = await this.actions.remove.run(plainTargets);
    -    if (thatTargets != null) {
    -      await setSelectionsAndFocusEditor(
    -        ide().getEditableTextEditor(editor),
    -        thatTargets.map(({ contentSelection }) => contentSelection)
    -      );
    -    }
    -    return { thatTargets };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/CutToClipboard.ts
    -var CutToClipboard = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    await ide().flashRanges(
    -      targets.flatMap((target) => {
    -        const { editor, contentRange } = target;
    -        const removalHighlightRange = target.getRemovalHighlightRange();
    -        if (target.isLine) {
    -          return [
    -            {
    -              editor,
    -              range: toCharacterRange(contentRange),
    -              style: "referenced" /* referenced */
    -            },
    -            {
    -              editor,
    -              range: toLineRange(removalHighlightRange),
    -              style: "pendingDelete" /* pendingDelete */
    -            }
    -          ];
    -        }
    -        return [
    -          {
    -            editor,
    -            range: toCharacterRange(contentRange),
    -            style: "referenced" /* referenced */
    -          },
    -          ...getOutsideOverflow(contentRange, removalHighlightRange).map(
    -            (overflow) => ({
    -              editor,
    -              range: toCharacterRange(overflow),
    -              style: "pendingDelete" /* pendingDelete */
    -            })
    -          )
    -        ];
    -      })
    -    );
    -    const options2 = { showDecorations: false };
    -    await this.actions.copyToClipboard.run(targets, options2);
    -    const { thatTargets } = await this.actions.remove.run(targets, options2);
    -    return { thatTargets };
    -  }
    -};
    -function getOutsideOverflow(insideRange, outsideRange) {
    -  const { start: insideStart, end: insideEnd } = insideRange;
    -  const { start: outsideStart, end: outsideEnd } = outsideRange;
    -  const result = [];
    -  if (outsideStart.isBefore(insideStart)) {
    -    result.push(new Range(outsideStart, insideStart));
    -  }
    -  if (outsideEnd.isAfter(insideEnd)) {
    -    result.push(new Range(insideEnd, outsideEnd));
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/actions/Deselect.ts
    -var Deselect = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    await runOnTargetsForEachEditor(targets, async (editor, targets2) => {
    -      const newSelections = editor.selections.filter(
    -        (selection) => !targets2.some((target) => {
    -          const intersection = target.contentRange.intersection(selection);
    -          return intersection && (!intersection.isEmpty || selection.isEmpty);
    -        })
    -      );
    -      if (newSelections.length === 0) {
    -        throw new SelectionRequiredError();
    -      }
    -      await setSelectionsWithoutFocusingEditor(
    -        ide().getEditableTextEditor(editor),
    -        newSelections
    -      );
    -    });
    -    return {
    -      thatTargets: targets
    -    };
    -  }
    -};
    -var SelectionRequiredError = class extends Error {
    -  constructor() {
    -    super("Can't deselect every selection. At least one is required");
    -    this.name = "SelectionRequiredError";
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/EditNew/runEditTargets.ts
    -var import_lodash39 = __toESM(require_lodash(), 1);
    -async function runEditTargets(rangeUpdater, editor, state) {
    -  const destinations = state.destinations.map((destination, index) => {
    -    const actionType = destination.getEditNewActionType();
    -    if (actionType === "edit") {
    -      return {
    -        destination,
    -        index
    -      };
    -    }
    -  }).filter((destination) => !!destination);
    -  if (destinations.length === 0) {
    -    return state;
    -  }
    -  const edits = destinations.map(
    -    (destination) => destination.destination.constructChangeEdit("")
    -  );
    -  const thatSelections = {
    -    selections: state.thatRanges.map((r) => r.toSelection(false))
    -  };
    -  const cursorInfos = state.cursorRanges.map((range4, index) => ({ range: range4, index })).filter(({ range: range4 }) => range4 != null);
    -  const cursorIndices = cursorInfos.map(({ index }) => index);
    -  const cursorSelections = {
    -    selections: cursorInfos.map(({ range: range4 }) => range4.toSelection(false))
    -  };
    -  const editSelections = {
    -    selections: edits.map((edit) => edit.range.toSelection(false)),
    -    rangeBehavior: 0 /* openOpen */
    -  };
    -  const [
    -    updatedThatSelections,
    -    updatedCursorSelections,
    -    updatedEditSelections
    -  ] = await performEditsAndUpdateSelectionsWithBehavior(
    -    rangeUpdater,
    -    editor,
    -    edits,
    -    [thatSelections, cursorSelections, editSelections]
    -  );
    -  const updatedCursorRanges = [...state.cursorRanges];
    -  (0, import_lodash39.zip)(cursorIndices, updatedCursorSelections).forEach(([index, selection]) => {
    -    updatedCursorRanges[index] = selection;
    -  });
    -  destinations.forEach((delimiterTarget, index) => {
    -    const edit = edits[index];
    -    const range4 = edit.updateRange(updatedEditSelections[index]);
    -    updatedCursorRanges[delimiterTarget.index] = range4;
    -  });
    -  return {
    -    destinations: state.destinations,
    -    thatRanges: updatedThatSelections,
    -    cursorRanges: updatedCursorRanges
    -  };
    -}
    -
    -// ../cursorless-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
    -async function runInsertLineAfterTargets(rangeUpdater, editor, state) {
    -  const destinations = state.destinations.map((destination, index) => {
    -    const actionType = destination.getEditNewActionType();
    -    if (actionType === "insertLineAfter") {
    -      return {
    -        destination,
    -        index
    -      };
    -    }
    -  }).filter((destination) => !!destination);
    -  if (destinations.length === 0) {
    -    return state;
    -  }
    -  const contentRanges = destinations.map(
    -    ({ destination }) => destination.contentRange
    -  );
    -  const [updatedTargetRanges, updatedThatRanges] = await callFunctionAndUpdateRanges(
    -    rangeUpdater,
    -    () => editor.insertLineAfter(contentRanges),
    -    editor.document,
    -    [
    -      state.destinations.map(({ contentRange }) => contentRange),
    -      state.thatRanges
    -    ]
    -  );
    -  const cursorRanges = [...state.cursorRanges];
    -  destinations.forEach((commandTarget, index) => {
    -    cursorRanges[commandTarget.index] = editor.selections[index];
    -  });
    -  return {
    -    destinations: state.destinations.map(
    -      (destination, index) => destination.withTarget(
    -        destination.target.withContentRange(updatedTargetRanges[index])
    -      )
    -    ),
    -    thatRanges: updatedThatRanges,
    -    cursorRanges
    -  };
    -}
    -
    -// ../cursorless-engine/src/actions/EditNew/runNotebookCellTargets.ts
    -async function runEditNewNotebookCellTargets(actions2, destinations) {
    -  const destination = ensureSingleTarget(destinations);
    -  const editor = ide().getEditableTextEditor(destination.editor);
    -  const isAbove = destination.insertionMode === "before";
    -  if (destination.insertionMode === "to") {
    -    throw Error(
    -      `Unsupported insertion mode '${destination.insertionMode}' for notebookcapell`
    -    );
    -  }
    -  await actions2.setSelection.run([destination.target]);
    -  let modifyThatMark = (selection) => selection;
    -  if (isAbove) {
    -    modifyThatMark = await editor.editNewNotebookCellAbove();
    -  } else {
    -    await editor.editNewNotebookCellBelow();
    -  }
    -  const thatMark = createThatMark([destination.target.thatTarget]);
    -  thatMark[0].selection = modifyThatMark(thatMark[0].selection);
    -  return { thatSelections: thatMark };
    -}
    -
    -// ../cursorless-engine/src/actions/EditNew/EditNew.ts
    -var EditNew = class {
    -  constructor(rangeUpdater, actions2) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(destinations) {
    -    if (destinations.some(({ target }) => target.isNotebookCell)) {
    -      return runEditNewNotebookCellTargets(this.actions, destinations);
    -    }
    -    const editableEditor = ide().getEditableTextEditor(
    -      ensureSingleEditor2(destinations)
    -    );
    -    let state = {
    -      destinations,
    -      thatRanges: destinations.map(
    -        ({ target }) => target.thatTarget.contentRange
    -      ),
    -      cursorRanges: new Array(destinations.length).fill(
    -        void 0
    -      )
    -    };
    -    state = await runInsertLineAfterTargets(
    -      this.rangeUpdater,
    -      editableEditor,
    -      state
    -    );
    -    state = await runEditTargets(this.rangeUpdater, editableEditor, state);
    -    const newSelections = state.destinations.map(
    -      (destination, index) => state.cursorRanges[index].toSelection(destination.target.isReversed)
    -    );
    -    await setSelectionsAndFocusEditor(editableEditor, newSelections);
    -    return {
    -      thatSelections: createThatMark(
    -        state.destinations.map((d) => d.target),
    -        state.thatRanges
    -      )
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/EditNewLineAction.ts
    -var EditNewLineAction = class {
    -  constructor(actions2, modifierStageFactory) {
    -    this.actions = actions2;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.run = this.run.bind(this);
    -  }
    -  getFinalStages() {
    -    return [this.modifierStageFactory.create(containingLineIfUntypedModifier)];
    -  }
    -  run(targets) {
    -    return this.actions.editNew.run(
    -      targets.map((target) => target.toDestination(this.insertionMode))
    -    );
    -  }
    -};
    -var EditNewBefore = class extends EditNewLineAction {
    -  constructor() {
    -    super(...arguments);
    -    this.insertionMode = "before";
    -  }
    -};
    -var EditNewAfter = class extends EditNewLineAction {
    -  constructor() {
    -    super(...arguments);
    -    this.insertionMode = "after";
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/CallbackAction.ts
    -var import_lodash40 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
    -var selectionToStoredTarget = (selection) => new UntypedTarget({
    -  editor: selection.editor,
    -  isReversed: selection.selection.isReversed,
    -  contentRange: selection.selection,
    -  hasExplicitRange: true
    -});
    -
    -// ../cursorless-engine/src/actions/CallbackAction.ts
    -var CallbackAction = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, options2) {
    -    if (options2.showDecorations) {
    -      await flashTargets(ide(), targets, "referenced" /* referenced */);
    -    }
    -    if (options2.ensureSingleEditor) {
    -      ensureSingleEditor2(targets);
    -    }
    -    if (options2.ensureSingleTarget) {
    -      ensureSingleTarget(targets);
    -    }
    -    const originalEditor = ide().activeEditableTextEditor;
    -    const runOnTargets = options2.setSelection ? runOnTargetsForEachEditorSequentially : runOnTargetsForEachEditor;
    -    const thatTargets = (0, import_lodash40.flatten)(
    -      await runOnTargets(
    -        targets,
    -        (editor, targets2) => this.runForEditor(options2, editor, targets2)
    -      )
    -    );
    -    if (options2.setSelection && options2.restoreSelection && originalEditor != null && !originalEditor.isActive) {
    -      await originalEditor.focus();
    -    }
    -    return { thatTargets };
    -  }
    -  async runForEditor(options2, editor, targets) {
    -    const editableEditor = ide().getEditableTextEditor(editor);
    -    const originalSelections = editor.selections;
    -    const originalEditorVersion = editor.document.version;
    -    const targetSelections = targets.map((target) => target.contentSelection);
    -    if (options2.setSelection) {
    -      await setSelectionsAndFocusEditor(
    -        editableEditor,
    -        targetSelections,
    -        false
    -      );
    -    }
    -    const [updatedOriginalSelections, updatedTargetSelections] = await callFunctionAndUpdateSelections(
    -      this.rangeUpdater,
    -      () => options2.callback(editableEditor, targets),
    -      editor.document,
    -      [originalSelections, targetSelections]
    -    );
    -    if (options2.setSelection && options2.restoreSelection) {
    -      await setSelectionsWithoutFocusingEditor(
    -        editableEditor,
    -        updatedOriginalSelections
    -      );
    -    }
    -    return editor.document.version === originalEditorVersion ? targets : updatedTargetSelections.map(
    -      (selection) => selectionToStoredTarget({
    -        editor,
    -        selection
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/ExecuteCommand.ts
    -var ExecuteCommand = class {
    -  constructor(rangeUpdater) {
    -    this.callbackAction = new CallbackAction(rangeUpdater);
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, commandId, {
    -    commandArgs,
    -    ensureSingleEditor: ensureSingleEditor3,
    -    ensureSingleTarget: ensureSingleTarget2,
    -    restoreSelection,
    -    showDecorations
    -  } = {}) {
    -    const args = commandArgs ?? [];
    -    return this.callbackAction.run(targets, {
    -      callback: () => ide().executeCommand(commandId, ...args),
    -      setSelection: true,
    -      ensureSingleEditor: ensureSingleEditor3 ?? false,
    -      ensureSingleTarget: ensureSingleTarget2 ?? false,
    -      restoreSelection: restoreSelection ?? true,
    -      showDecorations: showDecorations ?? true
    -    });
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Find.ts
    -var Find = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    ensureSingleTarget(targets);
    -    const { returnValue, thatTargets } = await this.actions.getText.run(targets);
    -    const [text] = returnValue;
    -    let query;
    -    if (text.length > 200) {
    -      query = text.substring(0, 200);
    -      showWarning(
    -        ide().messages,
    -        "truncatedSearchText",
    -        "Search text is longer than 200 characters; truncating"
    -      );
    -    } else {
    -      query = text;
    -    }
    -    await this.find(query);
    -    return { thatTargets };
    -  }
    -};
    -var FindInDocument = class extends Find {
    -  find(query) {
    -    return ide().findInDocument(query);
    -  }
    -};
    -var FindInWorkspace = class extends Find {
    -  find(query) {
    -    return ide().findInWorkspace(query);
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/FollowLink.ts
    -var FollowLink = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    const target = ensureSingleTarget(targets);
    -    await flashTargets(ide(), targets, "referenced" /* referenced */);
    -    const openedLink = await ide().getEditableTextEditor(target.editor).openLink(target.contentRange);
    -    if (!openedLink) {
    -      await this.actions.executeCommand.run(
    -        targets,
    -        "editor.action.revealDefinition",
    -        { restoreSelection: false }
    -      );
    -    }
    -    return {
    -      thatSelections: createThatMark(targets)
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/GenerateSnippet/constructSnippetBody.ts
    -var import_lodash41 = __toESM(require_lodash(), 1);
    -function constructSnippetBody(text, linePrefix) {
    -  const outputLines = [];
    -  let currentTabCount = 0;
    -  let currentIndentationString = null;
    -  const [firstLine, ...remainingLines] = text.split(/\r?\n/);
    -  const lines = [
    -    {
    -      text: linePrefix + firstLine,
    -      startIndex: linePrefix.length
    -    },
    -    ...remainingLines.map((line) => ({ text: line, startIndex: 0 }))
    -  ];
    -  lines.forEach(({ text: text2, startIndex }) => {
    -    const newIndentationString = text2.match(/^\s*/)?.[0] ?? "";
    -    const firstNonWhitespaceCharacterIndex = newIndentationString.length;
    -    if (currentIndentationString != null) {
    -      if (newIndentationString.length > currentIndentationString.length) {
    -        currentTabCount++;
    -      } else if (newIndentationString.length < currentIndentationString.length) {
    -        currentTabCount--;
    -      }
    -    }
    -    currentIndentationString = newIndentationString;
    -    const lineContentStart = Math.max(
    -      firstNonWhitespaceCharacterIndex,
    -      startIndex
    -    );
    -    const snippetIndentationString = (0, import_lodash41.repeat)("	", currentTabCount);
    -    const lineContent = text2.slice(lineContentStart);
    -    outputLines.push(snippetIndentationString + lineContent);
    -  });
    -  return outputLines;
    -}
    -
    -// ../cursorless-engine/src/actions/GenerateSnippet/editText.ts
    -var import_lodash42 = __toESM(require_lodash(), 1);
    -function editText(text, edits) {
    -  const sortedEdits = (0, import_lodash42.sortBy)(edits, (edit) => edit.offsets.start);
    -  let output = "";
    -  let currentOffset = 0;
    -  for (const edit of sortedEdits) {
    -    output += text.slice(currentOffset, edit.offsets.start) + edit.text;
    -    currentOffset = edit.offsets.end;
    -  }
    -  output += text.slice(currentOffset);
    -  return output;
    -}
    -
    -// ../cursorless-engine/src/actions/GenerateSnippet/openNewSnippetFile.ts
    -var import_promises4 = require("fs/promises");
    -var import_path4 = require("path");
    -async function openNewSnippetFile(snippetName) {
    -  const userSnippetsDir = ide().configuration.getOwnConfiguration(
    -    "experimental.snippetsDir"
    -  );
    -  if (!userSnippetsDir) {
    -    throw new Error("User snippets dir not configured.");
    -  }
    -  const path8 = (0, import_path4.join)(userSnippetsDir, `${snippetName}.cursorless-snippets`);
    -  await touch(path8);
    -  await ide().openTextDocument(path8);
    -}
    -async function touch(path8) {
    -  const file = await (0, import_promises4.open)(path8, "w");
    -  await file.close();
    -}
    -
    -// ../cursorless-engine/src/actions/GenerateSnippet/Substituter.ts
    -var Substituter = class {
    -  constructor() {
    -    this.substitutions = [];
    -  }
    -  /**
    -   * Get a random id that can be put into your text body that will then be
    -   * replaced by {@link to} when you call {@link makeSubstitutions}.
    -   * @param to The string that you'd like to end up in the final document after
    -   * replacements
    -   * @param isQuoted Use this variable to indicate that in the final text the
    -   * variable will end up quoted. This occurs if you use the replacement string
    -   * as a stand alone string in a json document and then you serialize it
    -   * @returns A unique random id that can be put into the document that will
    -   * then be substituted later
    -   */
    -  addSubstitution(to, isQuoted = false) {
    -    const randomId = makeid(10);
    -    this.substitutions.push({
    -      to,
    -      randomId,
    -      isQuoted
    -    });
    -    return randomId;
    -  }
    -  /**
    -   * Performs substitutions on {@link text}, replacing the random ids generated
    -   * by {@link addSubstitution} with the values passed in for `to`.
    -   * @param text The text to perform substitutions on
    -   * @returns The text with variable substituted for the original values you
    -   * desired
    -   */
    -  makeSubstitutions(text) {
    -    this.substitutions.forEach(({ to, randomId, isQuoted }) => {
    -      const from = isQuoted ? `"${randomId}"` : randomId;
    -      text = text.split(from).join(to);
    -    });
    -    return text;
    -  }
    -};
    -function makeid(length) {
    -  let result = "";
    -  const characters2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    -  const charactersLength = characters2.length;
    -  for (let i = 0; i < length; i++) {
    -    result += characters2.charAt(Math.floor(Math.random() * charactersLength));
    -  }
    -  return result;
    -}
    -
    -// ../cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
    -var GenerateSnippet = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, snippetName) {
    -    const target = ensureSingleTarget(targets);
    -    const editor = target.editor;
    -    flashTargets(ide(), targets, "referenced" /* referenced */);
    -    if (snippetName == null) {
    -      snippetName = await ide().showInputBox({
    -        prompt: "Name of snippet",
    -        placeHolder: "helloWorld"
    -      });
    -    }
    -    if (snippetName == null) {
    -      return {};
    -    }
    -    let currentPlaceholderIndex = 1;
    -    const baseOffset = editor.document.offsetAt(target.contentRange.start);
    -    const variables = editor.selections.filter((selection) => target.contentRange.contains(selection)).map((selection, index) => ({
    -      offsets: {
    -        start: editor.document.offsetAt(selection.start) - baseOffset,
    -        end: editor.document.offsetAt(selection.end) - baseOffset
    -      },
    -      defaultName: `variable${index + 1}`,
    -      placeholderIndex: currentPlaceholderIndex++
    -    }));
    -    const substituter = new Substituter();
    -    const linePrefix = editor.document.getText(
    -      new Range(
    -        target.contentRange.start.with(void 0, 0),
    -        target.contentRange.start
    -      )
    -    );
    -    const originalText = editor.document.getText(target.contentRange);
    -    const snippetBodyText = editText(originalText, [
    -      ...matchAll(originalText, /\$|\\/g, (match2) => ({
    -        offsets: {
    -          start: match2.index,
    -          end: match2.index + match2[0].length
    -        },
    -        text: match2[0] === "\\" ? `\\${match2[0]}` : `\\\\${match2[0]}`
    -      })),
    -      ...variables.map(({ offsets, defaultName, placeholderIndex }) => ({
    -        offsets,
    -        // Note that the reason we use the substituter here is primarily so
    -        // that the `\` below doesn't get escaped upon conversion to json.
    -        text: substituter.addSubstitution(
    -          [
    -            // This `\$` will end up being a `$` in the final document.  It
    -            // indicates the start of a variable in the user snippet.  We need
    -            // the `\` so that the meta-snippet doesn't see it as one of its
    -            // placeholders.
    -            "\\$",
    -            // The remaining text here is a placeholder in the meta-snippet
    -            // that the user can use to name their snippet variable that will
    -            // be in the user snippet.
    -            "${",
    -            placeholderIndex,
    -            ":",
    -            defaultName,
    -            "}"
    -          ].join("")
    -        )
    -      }))
    -    ]);
    -    const snippetLines = constructSnippetBody(snippetBodyText, linePrefix);
    -    const constructVariableDescriptionEntry = ({
    -      placeholderIndex
    -    }) => {
    -      const key = "$" + placeholderIndex;
    -      const value = substituter.addSubstitution(
    -        "{$" + currentPlaceholderIndex++ + "}",
    -        true
    -      );
    -      return [key, value];
    -    };
    -    const snippet2 = {
    -      [snippetName]: {
    -        definitions: [
    -          {
    -            scope: {
    -              langIds: [editor.document.languageId]
    -            },
    -            body: snippetLines
    -          }
    -        ],
    -        description: "$" + currentPlaceholderIndex++,
    -        variables: variables.length === 0 ? void 0 : Object.fromEntries(
    -          variables.map(constructVariableDescriptionEntry)
    -        )
    -      }
    -    };
    -    const snippetText = substituter.makeSubstitutions(
    -      JSON.stringify(snippet2, null, 2)
    -    );
    -    const editableEditor = ide().getEditableTextEditor(editor);
    -    if (isTesting()) {
    -      await editableEditor.setSelections([
    -        editor.document.range.toSelection(false)
    -      ]);
    -    } else {
    -      await openNewSnippetFile(snippetName);
    -    }
    -    await editableEditor.insertSnippet(snippetText);
    -    return {
    -      thatSelections: targets.map(({ editor: editor2, contentSelection }) => ({
    -        editor: editor2,
    -        selection: contentSelection
    -      }))
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/GetTargets.ts
    -var GetTargets = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    return {
    -      returnValue: targets.map(({ contentRange }) => ({
    -        contentRange
    -      })),
    -      thatTargets: targets
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/GetText.ts
    -var GetText = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, {
    -    showDecorations = true,
    -    ensureSingleTarget: doEnsureSingleTarget = false
    -  } = {}) {
    -    if (showDecorations) {
    -      await flashTargets(ide(), targets, "referenced" /* referenced */);
    -    }
    -    if (doEnsureSingleTarget) {
    -      ensureSingleTarget(targets);
    -    }
    -    return {
    -      returnValue: targets.map((target) => target.contentText),
    -      thatTargets: targets
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Highlight.ts
    -var Highlight = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, highlightId) {
    -    if (ide().capabilities.commands["highlight"] == null) {
    -      throw Error(`The highlight action is not supported by your ide`);
    -    }
    -    if (targets.length === 0) {
    -      await Promise.all(
    -        ide().visibleTextEditors.map(
    -          (editor) => ide().setHighlightRanges(highlightId, editor, [])
    -        )
    -      );
    -    } else {
    -      await runOnTargetsForEachEditor(
    -        targets,
    -        (editor, targets2) => ide().setHighlightRanges(
    -          highlightId,
    -          editor,
    -          targets2.map(toGeneralizedRange)
    -        )
    -      );
    -    }
    -    return {
    -      thatTargets: targets
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/InsertCopy.ts
    -var import_lodash43 = __toESM(require_lodash(), 1);
    -var InsertCopy = class {
    -  constructor(rangeUpdater, modifierStageFactory, isBefore) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.isBefore = isBefore;
    -    this.getFinalStages = () => [
    -      this.modifierStageFactory.create(containingLineIfUntypedModifier)
    -    ];
    -    this.run = this.run.bind(this);
    -    this.runForEditor = this.runForEditor.bind(this);
    -  }
    -  async run(targets) {
    -    const results = (0, import_lodash43.flatten)(
    -      await runOnTargetsForEachEditor(targets, this.runForEditor)
    -    );
    -    await ide().flashRanges(
    -      results.flatMap(
    -        (result) => result.thatMark.map((that) => ({
    -          editor: that.editor,
    -          range: toCharacterRange(that.selection),
    -          style: "justAdded" /* justAdded */
    -        }))
    -      )
    -    );
    -    return {
    -      sourceSelections: results.flatMap(({ sourceMark }) => sourceMark),
    -      thatSelections: results.flatMap(({ thatMark }) => thatMark)
    -    };
    -  }
    -  async runForEditor(editor, targets) {
    -    const position = this.isBefore ? "after" : "before";
    -    const edits = targets.flatMap(
    -      (target) => target.toDestination(position).constructChangeEdit(target.contentText)
    -    );
    -    const cursorSelections = { selections: editor.selections };
    -    const contentSelections = {
    -      selections: targets.map(({ contentSelection }) => contentSelection)
    -    };
    -    const editSelections = {
    -      selections: edits.map(
    -        ({ range: range4 }) => new Selection(range4.start, range4.end)
    -      ),
    -      rangeBehavior: 0 /* openOpen */
    -    };
    -    const editableEditor = ide().getEditableTextEditor(editor);
    -    const [
    -      updatedCursorSelections,
    -      updatedContentSelections,
    -      updatedEditSelections
    -    ] = await performEditsAndUpdateSelectionsWithBehavior(
    -      this.rangeUpdater,
    -      editableEditor,
    -      edits,
    -      [cursorSelections, contentSelections, editSelections]
    -    );
    -    const insertionRanges = (0, import_lodash43.zip)(edits, updatedEditSelections).map(
    -      ([edit, selection]) => edit.updateRange(selection)
    -    );
    -    await setSelectionsWithoutFocusingEditor(
    -      editableEditor,
    -      updatedCursorSelections
    -    );
    -    const primarySelection = editor.selections[0];
    -    if (updatedContentSelections.some(
    -      (selection) => selection.intersection(primarySelection) != null
    -    )) {
    -      await editableEditor.revealRange(primarySelection);
    -    }
    -    return {
    -      sourceMark: createThatMark(targets, insertionRanges),
    -      thatMark: createThatMark(targets, updatedContentSelections)
    -    };
    -  }
    -};
    -var CopyContentBefore = class extends InsertCopy {
    -  constructor(rangeUpdater, modifierStageFactory) {
    -    super(rangeUpdater, modifierStageFactory, true);
    -  }
    -};
    -var CopyContentAfter = class extends InsertCopy {
    -  constructor(rangeUpdater, modifierStageFactory) {
    -    super(rangeUpdater, modifierStageFactory, false);
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/InsertEmptyLines.ts
    -var import_lodash44 = __toESM(require_lodash(), 1);
    -var InsertEmptyLines = class {
    -  constructor(rangeUpdater, insertAbove, insertBelow) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.insertAbove = insertAbove;
    -    this.insertBelow = insertBelow;
    -    this.run = this.run.bind(this);
    -  }
    -  getRanges(targets) {
    -    let lines = targets.flatMap((target) => {
    -      const lines2 = [];
    -      if (this.insertAbove) {
    -        lines2.push(target.contentRange.start.line);
    -      }
    -      if (this.insertBelow) {
    -        lines2.push(target.contentRange.end.line + 1);
    -      }
    -      return lines2;
    -    });
    -    lines = [...new Set(lines)];
    -    return lines.map((line) => new Range(line, 0, line, 0));
    -  }
    -  getEdits(ranges) {
    -    return ranges.map((range4) => ({
    -      range: range4,
    -      text: "\n"
    -    }));
    -  }
    -  async run(targets) {
    -    const results = (0, import_lodash44.flatten)(
    -      await runOnTargetsForEachEditor(targets, async (editor, targets2) => {
    -        const ranges = this.getRanges(targets2);
    -        const edits = this.getEdits(ranges);
    -        const editableEditor = ide().getEditableTextEditor(editor);
    -        const [updatedThatSelections, lineSelections, updatedCursorSelections] = await performEditsAndUpdateSelections(
    -          this.rangeUpdater,
    -          editableEditor,
    -          edits,
    -          [
    -            targets2.map((target) => target.thatTarget.contentSelection),
    -            ranges.map((range4) => new Selection(range4.start, range4.end)),
    -            editor.selections
    -          ]
    -        );
    -        await setSelectionsWithoutFocusingEditor(
    -          editableEditor,
    -          updatedCursorSelections
    -        );
    -        return {
    -          thatMark: updatedThatSelections.map((selection) => ({
    -            editor,
    -            selection
    -          })),
    -          lineSelections: lineSelections.map((selection, index) => ({
    -            editor,
    -            range: ranges[index].start.line < editor.document.lineCount - 1 ? new Range(
    -              selection.start.translate(-1, void 0),
    -              selection.end.translate(-1, void 0)
    -            ) : selection
    -          }))
    -        };
    -      })
    -    );
    -    await ide().flashRanges(
    -      results.flatMap(
    -        (result) => result.lineSelections.map(({ editor, range: range4 }) => ({
    -          editor,
    -          range: toLineRange(range4),
    -          style: "justAdded" /* justAdded */
    -        }))
    -      )
    -    );
    -    const thatMark = results.flatMap((result) => result.thatMark);
    -    return { thatSelections: thatMark };
    -  }
    -};
    -var InsertEmptyLinesAround = class extends InsertEmptyLines {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, true, true);
    -  }
    -};
    -var InsertEmptyLineAbove = class extends InsertEmptyLines {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, true, false);
    -  }
    -};
    -var InsertEmptyLineBelow = class extends InsertEmptyLines {
    -  constructor(rangeUpdater) {
    -    super(rangeUpdater, false, true);
    -  }
    -};
    -
    -// ../cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts
    -var Scanner = class _Scanner {
    -  constructor() {
    -    this.value = "";
    -    this.pos = 0;
    -  }
    -  static {
    -    this._table = {
    -      [36 /* DollarSign */]: 0 /* Dollar */,
    -      [58 /* Colon */]: 1 /* Colon */,
    -      [44 /* Comma */]: 2 /* Comma */,
    -      [123 /* OpenCurlyBrace */]: 3 /* CurlyOpen */,
    -      [125 /* CloseCurlyBrace */]: 4 /* CurlyClose */,
    -      [92 /* Backslash */]: 5 /* Backslash */,
    -      [47 /* Slash */]: 6 /* Forwardslash */,
    -      [124 /* Pipe */]: 7 /* Pipe */,
    -      [43 /* Plus */]: 11 /* Plus */,
    -      [45 /* Dash */]: 12 /* Dash */,
    -      [63 /* QuestionMark */]: 13 /* QuestionMark */
    -    };
    -  }
    -  static isDigitCharacter(ch) {
    -    return ch >= 48 /* Digit0 */ && ch <= 57 /* Digit9 */;
    -  }
    -  static isVariableCharacter(ch) {
    -    return ch === 95 /* Underline */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 65 /* A */ && ch <= 90 /* Z */;
    -  }
    -  text(value) {
    -    this.value = value;
    -    this.pos = 0;
    -  }
    -  tokenText(token) {
    -    return this.value.substr(token.pos, token.len);
    -  }
    -  next() {
    -    if (this.pos >= this.value.length) {
    -      return { type: 14 /* EOF */, pos: this.pos, len: 0 };
    -    }
    -    let pos = this.pos;
    -    let len = 0;
    -    let ch = this.value.charCodeAt(pos);
    -    let type2;
    -    type2 = _Scanner._table[ch];
    -    if (typeof type2 === "number") {
    -      this.pos += 1;
    -      return { type: type2, pos, len: 1 };
    -    }
    -    if (_Scanner.isDigitCharacter(ch)) {
    -      type2 = 8 /* Int */;
    -      do {
    -        len += 1;
    -        ch = this.value.charCodeAt(pos + len);
    -      } while (_Scanner.isDigitCharacter(ch));
    -      this.pos += len;
    -      return { type: type2, pos, len };
    -    }
    -    if (_Scanner.isVariableCharacter(ch)) {
    -      type2 = 9 /* VariableName */;
    -      do {
    -        ch = this.value.charCodeAt(pos + ++len);
    -      } while (_Scanner.isVariableCharacter(ch) || _Scanner.isDigitCharacter(ch));
    -      this.pos += len;
    -      return { type: type2, pos, len };
    -    }
    -    type2 = 10 /* Format */;
    -    do {
    -      len += 1;
    -      ch = this.value.charCodeAt(pos + len);
    -    } while (!isNaN(ch) && typeof _Scanner._table[ch] === "undefined" && !_Scanner.isDigitCharacter(ch) && !_Scanner.isVariableCharacter(ch));
    -    this.pos += len;
    -    return { type: type2, pos, len };
    -  }
    -};
    -var Marker = class {
    -  constructor() {
    -    this._children = [];
    -  }
    -  appendChild(child) {
    -    if (child instanceof Text && this._children[this._children.length - 1] instanceof Text) {
    -      this._children[this._children.length - 1].value += child.value;
    -    } else {
    -      child.parent = this;
    -      this._children.push(child);
    -    }
    -    return this;
    -  }
    -  replace(child, others) {
    -    const { parent } = child;
    -    const idx = parent.children.indexOf(child);
    -    const newChildren = parent.children.slice(0);
    -    newChildren.splice(idx, 1, ...others);
    -    parent._children = newChildren;
    -    (function _fixParent(children, parent2) {
    -      for (const child2 of children) {
    -        child2.parent = parent2;
    -        _fixParent(child2.children, child2);
    -      }
    -    })(others, parent);
    -  }
    -  get children() {
    -    return this._children;
    -  }
    -  get snippet() {
    -    let candidate = this;
    -    while (true) {
    -      if (!candidate) {
    -        return void 0;
    -      }
    -      if (candidate instanceof TextmateSnippet) {
    -        return candidate;
    -      }
    -      candidate = candidate.parent;
    -    }
    -  }
    -  toString() {
    -    return this.children.reduce((prev, cur) => prev + cur.toString(), "");
    -  }
    -  len() {
    -    return 0;
    -  }
    -};
    -var Text = class _Text extends Marker {
    -  constructor(value) {
    -    super();
    -    this.value = value;
    -  }
    -  static escape(value) {
    -    return value.replace(/\$|}|\\/g, "\\$&");
    -  }
    -  toString() {
    -    return this.value;
    -  }
    -  toTextmateString() {
    -    return _Text.escape(this.value);
    -  }
    -  len() {
    -    return this.value.length;
    -  }
    -  clone() {
    -    return new _Text(this.value);
    -  }
    -};
    -var TransformableMarker = class extends Marker {
    -};
    -var Placeholder = class _Placeholder extends TransformableMarker {
    -  constructor(index) {
    -    super();
    -    this.index = index;
    -  }
    -  static compareByIndex(a, b) {
    -    if (a.index === b.index) {
    -      return 0;
    -    } else if (a.isFinalTabstop) {
    -      return 1;
    -    } else if (b.isFinalTabstop) {
    -      return -1;
    -    } else if (a.index < b.index) {
    -      return -1;
    -    } else if (a.index > b.index) {
    -      return 1;
    -    } else {
    -      return 0;
    -    }
    -  }
    -  get isFinalTabstop() {
    -    return this.index === 0;
    -  }
    -  get choice() {
    -    return this._children.length === 1 && this._children[0] instanceof Choice ? this._children[0] : void 0;
    -  }
    -  toTextmateString() {
    -    let transformString = "";
    -    if (this.transform) {
    -      transformString = this.transform.toTextmateString();
    -    }
    -    if (this.children.length === 0 && !this.transform) {
    -      return `$${this.index}`;
    -    } else if (this.children.length === 0) {
    -      return `\${${this.index}${transformString}}`;
    -    } else if (this.choice) {
    -      return `\${${this.index}|${this.choice.toTextmateString()}|${transformString}}`;
    -    } else {
    -      return `\${${this.index}:${this.children.map((child) => child.toTextmateString()).join("")}${transformString}}`;
    -    }
    -  }
    -  clone() {
    -    let ret = new _Placeholder(this.index);
    -    if (this.transform) {
    -      ret.transform = this.transform.clone();
    -    }
    -    ret._children = this.children.map((child) => child.clone());
    -    return ret;
    -  }
    -};
    -var Choice = class _Choice extends Marker {
    -  constructor() {
    -    super(...arguments);
    -    this.options = [];
    -  }
    -  appendChild(marker) {
    -    if (marker instanceof Text) {
    -      marker.parent = this;
    -      this.options.push(marker);
    -    }
    -    return this;
    -  }
    -  toString() {
    -    return this.options[0].value;
    -  }
    -  toTextmateString() {
    -    return this.options.map((option) => option.value.replace(/\||,|\\/g, "\\$&")).join(",");
    -  }
    -  len() {
    -    return this.options[0].len();
    -  }
    -  clone() {
    -    let ret = new _Choice();
    -    this.options.forEach(ret.appendChild, ret);
    -    return ret;
    -  }
    -};
    -var Transform = class _Transform extends Marker {
    -  constructor() {
    -    super(...arguments);
    -    this.regexp = new RegExp("");
    -  }
    -  resolve(value) {
    -    const _this = this;
    -    let didMatch = false;
    -    let ret = value.replace(this.regexp, function() {
    -      didMatch = true;
    -      return _this._replace(Array.prototype.slice.call(arguments, 0, -2));
    -    });
    -    if (!didMatch && this._children.some((child) => child instanceof FormatString && Boolean(child.elseValue))) {
    -      ret = this._replace([]);
    -    }
    -    return ret;
    -  }
    -  _replace(groups) {
    -    let ret = "";
    -    for (const marker of this._children) {
    -      if (marker instanceof FormatString) {
    -        let value = groups[marker.index] || "";
    -        value = marker.resolve(value);
    -        ret += value;
    -      } else {
    -        ret += marker.toString();
    -      }
    -    }
    -    return ret;
    -  }
    -  toString() {
    -    return "";
    -  }
    -  toTextmateString() {
    -    return `/${this.regexp.source}/${this.children.map((c) => c.toTextmateString())}/${(this.regexp.ignoreCase ? "i" : "") + (this.regexp.global ? "g" : "")}`;
    -  }
    -  clone() {
    -    let ret = new _Transform();
    -    ret.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? "i" : "") + (this.regexp.global ? "g" : ""));
    -    ret._children = this.children.map((child) => child.clone());
    -    return ret;
    -  }
    -};
    -var FormatString = class _FormatString extends Marker {
    -  constructor(index, shorthandName, ifValue, elseValue) {
    -    super();
    -    this.index = index;
    -    this.shorthandName = shorthandName;
    -    this.ifValue = ifValue;
    -    this.elseValue = elseValue;
    -  }
    -  resolve(value) {
    -    if (this.shorthandName === "upcase") {
    -      return !value ? "" : value.toLocaleUpperCase();
    -    } else if (this.shorthandName === "downcase") {
    -      return !value ? "" : value.toLocaleLowerCase();
    -    } else if (this.shorthandName === "capitalize") {
    -      return !value ? "" : value[0].toLocaleUpperCase() + value.substr(1);
    -    } else if (this.shorthandName === "pascalcase") {
    -      return !value ? "" : this._toPascalCase(value);
    -    } else if (this.shorthandName === "camelcase") {
    -      return !value ? "" : this._toCamelCase(value);
    -    } else if (Boolean(value) && typeof this.ifValue === "string") {
    -      return this.ifValue;
    -    } else if (!Boolean(value) && typeof this.elseValue === "string") {
    -      return this.elseValue;
    -    } else {
    -      return value || "";
    -    }
    -  }
    -  _toPascalCase(value) {
    -    const match2 = value.match(/[a-z0-9]+/gi);
    -    if (!match2) {
    -      return value;
    -    }
    -    return match2.map((word) => {
    -      return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
    -    }).join("");
    -  }
    -  _toCamelCase(value) {
    -    const match2 = value.match(/[a-z0-9]+/gi);
    -    if (!match2) {
    -      return value;
    -    }
    -    return match2.map((word, index) => {
    -      if (index === 0) {
    -        return word.toLowerCase();
    -      } else {
    -        return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
    -      }
    -    }).join("");
    -  }
    -  toTextmateString() {
    -    let value = "${";
    -    value += this.index;
    -    if (this.shorthandName) {
    -      value += `:/${this.shorthandName}`;
    -    } else if (this.ifValue && this.elseValue) {
    -      value += `:?${this.ifValue}:${this.elseValue}`;
    -    } else if (this.ifValue) {
    -      value += `:+${this.ifValue}`;
    -    } else if (this.elseValue) {
    -      value += `:-${this.elseValue}`;
    -    }
    -    value += "}";
    -    return value;
    -  }
    -  clone() {
    -    let ret = new _FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue);
    -    return ret;
    -  }
    -};
    -var Variable = class _Variable extends TransformableMarker {
    -  constructor(name) {
    -    super();
    -    this.name = name;
    -  }
    -  resolve(resolver) {
    -    let value = resolver.resolve(this);
    -    if (this.transform) {
    -      value = this.transform.resolve(value || "");
    -    }
    -    if (value !== void 0) {
    -      this._children = [new Text(value)];
    -      return true;
    -    }
    -    return false;
    -  }
    -  toTextmateString() {
    -    let transformString = "";
    -    if (this.transform) {
    -      transformString = this.transform.toTextmateString();
    -    }
    -    if (this.children.length === 0) {
    -      return `\${${this.name}${transformString}}`;
    -    } else {
    -      return `\${${this.name}:${this.children.map((child) => child.toTextmateString()).join("")}${transformString}}`;
    -    }
    -  }
    -  clone() {
    -    const ret = new _Variable(this.name);
    -    if (this.transform) {
    -      ret.transform = this.transform.clone();
    -    }
    -    ret._children = this.children.map((child) => child.clone());
    -    return ret;
    -  }
    -};
    -function walk(marker, visitor) {
    -  const stack = [...marker];
    -  while (stack.length > 0) {
    -    const marker2 = stack.shift();
    -    const recurse = visitor(marker2);
    -    if (!recurse) {
    -      break;
    -    }
    -    stack.unshift(...marker2.children);
    -  }
    -}
    -var TextmateSnippet = class _TextmateSnippet extends Marker {
    -  get placeholderInfo() {
    -    if (!this._placeholders) {
    -      let all = [];
    -      let last2;
    -      this.walk(function(candidate) {
    -        if (candidate instanceof Placeholder) {
    -          all.push(candidate);
    -          last2 = !last2 || last2.index < candidate.index ? candidate : last2;
    -        }
    -        return true;
    -      });
    -      this._placeholders = { all, last: last2 };
    -    }
    -    return this._placeholders;
    -  }
    -  get placeholders() {
    -    const { all } = this.placeholderInfo;
    -    return all;
    -  }
    -  offset(marker) {
    -    let pos = 0;
    -    let found = false;
    -    this.walk((candidate) => {
    -      if (candidate === marker) {
    -        found = true;
    -        return false;
    -      }
    -      pos += candidate.len();
    -      return true;
    -    });
    -    if (!found) {
    -      return -1;
    -    }
    -    return pos;
    -  }
    -  fullLen(marker) {
    -    let ret = 0;
    -    walk([marker], (marker2) => {
    -      ret += marker2.len();
    -      return true;
    -    });
    -    return ret;
    -  }
    -  enclosingPlaceholders(placeholder) {
    -    let ret = [];
    -    let { parent } = placeholder;
    -    while (parent) {
    -      if (parent instanceof Placeholder) {
    -        ret.push(parent);
    -      }
    -      parent = parent.parent;
    -    }
    -    return ret;
    -  }
    -  resolveVariables(resolver) {
    -    this.walk((candidate) => {
    -      if (candidate instanceof Variable) {
    -        if (candidate.resolve(resolver)) {
    -          this._placeholders = void 0;
    -        }
    -      }
    -      return true;
    -    });
    -    return this;
    -  }
    -  appendChild(child) {
    -    this._placeholders = void 0;
    -    return super.appendChild(child);
    -  }
    -  replace(child, others) {
    -    this._placeholders = void 0;
    -    return super.replace(child, others);
    -  }
    -  toTextmateString() {
    -    return this.children.reduce((prev, cur) => prev + cur.toTextmateString(), "");
    -  }
    -  clone() {
    -    let ret = new _TextmateSnippet();
    -    this._children = this.children.map((child) => child.clone());
    -    return ret;
    -  }
    -  walk(visitor) {
    -    walk(this.children, visitor);
    -  }
    -};
    -var SnippetParser = class {
    -  constructor() {
    -    this._scanner = new Scanner();
    -    this._token = { type: 14 /* EOF */, pos: 0, len: 0 };
    -  }
    -  static escape(value) {
    -    return value.replace(/\$|}|\\/g, "\\$&");
    -  }
    -  static guessNeedsClipboard(template) {
    -    return /\${?CLIPBOARD/.test(template);
    -  }
    -  text(value) {
    -    return this.parse(value).toString();
    -  }
    -  parse(value, insertFinalTabstop, enforceFinalTabstop) {
    -    this._scanner.text(value);
    -    this._token = this._scanner.next();
    -    const snippet2 = new TextmateSnippet();
    -    while (this._parse(snippet2)) {
    -    }
    -    const placeholderDefaultValues = /* @__PURE__ */ new Map();
    -    const incompletePlaceholders = [];
    -    let placeholderCount = 0;
    -    snippet2.walk((marker) => {
    -      if (marker instanceof Placeholder) {
    -        placeholderCount += 1;
    -        if (marker.isFinalTabstop) {
    -          placeholderDefaultValues.set(0, void 0);
    -        } else if (!placeholderDefaultValues.has(marker.index) && marker.children.length > 0) {
    -          placeholderDefaultValues.set(marker.index, marker.children);
    -        } else {
    -          incompletePlaceholders.push(marker);
    -        }
    -      }
    -      return true;
    -    });
    -    for (const placeholder of incompletePlaceholders) {
    -      const defaultValues = placeholderDefaultValues.get(placeholder.index);
    -      if (defaultValues) {
    -        const clone = new Placeholder(placeholder.index);
    -        clone.transform = placeholder.transform;
    -        for (const child of defaultValues) {
    -          clone.appendChild(child.clone());
    -        }
    -        snippet2.replace(placeholder, [clone]);
    -      }
    -    }
    -    if (!enforceFinalTabstop) {
    -      enforceFinalTabstop = placeholderCount > 0 && insertFinalTabstop;
    -    }
    -    if (!placeholderDefaultValues.has(0) && enforceFinalTabstop) {
    -      snippet2.appendChild(new Placeholder(0));
    -    }
    -    return snippet2;
    -  }
    -  _accept(type2, value) {
    -    if (type2 === void 0 || this._token.type === type2) {
    -      let ret = !value ? true : this._scanner.tokenText(this._token);
    -      this._token = this._scanner.next();
    -      return ret;
    -    }
    -    return false;
    -  }
    -  _backTo(token) {
    -    this._scanner.pos = token.pos + token.len;
    -    this._token = token;
    -    return false;
    -  }
    -  _until(type2) {
    -    const start = this._token;
    -    while (this._token.type !== type2) {
    -      if (this._token.type === 14 /* EOF */) {
    -        return false;
    -      } else if (this._token.type === 5 /* Backslash */) {
    -        const nextToken = this._scanner.next();
    -        if (nextToken.type !== 0 /* Dollar */ && nextToken.type !== 4 /* CurlyClose */ && nextToken.type !== 5 /* Backslash */) {
    -          return false;
    -        }
    -      }
    -      this._token = this._scanner.next();
    -    }
    -    const value = this._scanner.value.substring(start.pos, this._token.pos).replace(/\\(\$|}|\\)/g, "$1");
    -    this._token = this._scanner.next();
    -    return value;
    -  }
    -  _parse(marker) {
    -    return this._parseEscaped(marker) || this._parseTabstopOrVariableName(marker) || this._parseComplexPlaceholder(marker) || this._parseComplexVariable(marker) || this._parseAnything(marker);
    -  }
    -  // \$, \\, \} -> just text
    -  _parseEscaped(marker) {
    -    let value;
    -    if (value = this._accept(5 /* Backslash */, true)) {
    -      value = this._accept(0 /* Dollar */, true) || this._accept(4 /* CurlyClose */, true) || this._accept(5 /* Backslash */, true) || value;
    -      marker.appendChild(new Text(value));
    -      return true;
    -    }
    -    return false;
    -  }
    -  // $foo -> variable, $1 -> tabstop
    -  _parseTabstopOrVariableName(parent) {
    -    let value;
    -    const token = this._token;
    -    const match2 = this._accept(0 /* Dollar */) && (value = this._accept(9 /* VariableName */, true) || this._accept(8 /* Int */, true));
    -    if (!match2) {
    -      return this._backTo(token);
    -    }
    -    parent.appendChild(
    -      /^\d+$/.test(value) ? new Placeholder(Number(value)) : new Variable(value)
    -    );
    -    return true;
    -  }
    -  // ${1:}, ${1} -> placeholder
    -  _parseComplexPlaceholder(parent) {
    -    let index;
    -    const token = this._token;
    -    const match2 = this._accept(0 /* Dollar */) && this._accept(3 /* CurlyOpen */) && (index = this._accept(8 /* Int */, true));
    -    if (!match2) {
    -      return this._backTo(token);
    -    }
    -    const placeholder = new Placeholder(Number(index));
    -    if (this._accept(1 /* Colon */)) {
    -      while (true) {
    -        if (this._accept(4 /* CurlyClose */)) {
    -          parent.appendChild(placeholder);
    -          return true;
    -        }
    -        if (this._parse(placeholder)) {
    -          continue;
    -        }
    -        parent.appendChild(new Text("${" + index + ":"));
    -        placeholder.children.forEach(parent.appendChild, parent);
    -        return true;
    -      }
    -    } else if (placeholder.index > 0 && this._accept(7 /* Pipe */)) {
    -      const choice = new Choice();
    -      while (true) {
    -        if (this._parseChoiceElement(choice)) {
    -          if (this._accept(2 /* Comma */)) {
    -            continue;
    -          }
    -          if (this._accept(7 /* Pipe */)) {
    -            placeholder.appendChild(choice);
    -            if (this._accept(4 /* CurlyClose */)) {
    -              parent.appendChild(placeholder);
    -              return true;
    -            }
    -          }
    -        }
    -        this._backTo(token);
    -        return false;
    -      }
    -    } else if (this._accept(6 /* Forwardslash */)) {
    -      if (this._parseTransform(placeholder)) {
    -        parent.appendChild(placeholder);
    -        return true;
    -      }
    -      this._backTo(token);
    -      return false;
    -    } else if (this._accept(4 /* CurlyClose */)) {
    -      parent.appendChild(placeholder);
    -      return true;
    -    } else {
    -      return this._backTo(token);
    -    }
    -  }
    -  _parseChoiceElement(parent) {
    -    const token = this._token;
    -    const values2 = [];
    -    while (true) {
    -      if (this._token.type === 2 /* Comma */ || this._token.type === 7 /* Pipe */) {
    -        break;
    -      }
    -      let value;
    -      if (value = this._accept(5 /* Backslash */, true)) {
    -        value = this._accept(2 /* Comma */, true) || this._accept(7 /* Pipe */, true) || this._accept(5 /* Backslash */, true) || value;
    -      } else {
    -        value = this._accept(void 0, true);
    -      }
    -      if (!value) {
    -        this._backTo(token);
    -        return false;
    -      }
    -      values2.push(value);
    -    }
    -    if (values2.length === 0) {
    -      this._backTo(token);
    -      return false;
    -    }
    -    parent.appendChild(new Text(values2.join("")));
    -    return true;
    -  }
    -  // ${foo:}, ${foo} -> variable
    -  _parseComplexVariable(parent) {
    -    let name;
    -    const token = this._token;
    -    const match2 = this._accept(0 /* Dollar */) && this._accept(3 /* CurlyOpen */) && (name = this._accept(9 /* VariableName */, true));
    -    if (!match2) {
    -      return this._backTo(token);
    -    }
    -    const variable = new Variable(name);
    -    if (this._accept(1 /* Colon */)) {
    -      while (true) {
    -        if (this._accept(4 /* CurlyClose */)) {
    -          parent.appendChild(variable);
    -          return true;
    -        }
    -        if (this._parse(variable)) {
    -          continue;
    -        }
    -        parent.appendChild(new Text("${" + name + ":"));
    -        variable.children.forEach(parent.appendChild, parent);
    -        return true;
    -      }
    -    } else if (this._accept(6 /* Forwardslash */)) {
    -      if (this._parseTransform(variable)) {
    -        parent.appendChild(variable);
    -        return true;
    -      }
    -      this._backTo(token);
    -      return false;
    -    } else if (this._accept(4 /* CurlyClose */)) {
    -      parent.appendChild(variable);
    -      return true;
    -    } else {
    -      return this._backTo(token);
    -    }
    -  }
    -  _parseTransform(parent) {
    -    let transform = new Transform();
    -    let regexValue = "";
    -    let regexOptions = "";
    -    while (true) {
    -      if (this._accept(6 /* Forwardslash */)) {
    -        break;
    -      }
    -      let escaped;
    -      if (escaped = this._accept(5 /* Backslash */, true)) {
    -        escaped = this._accept(6 /* Forwardslash */, true) || escaped;
    -        regexValue += escaped;
    -        continue;
    -      }
    -      if (this._token.type !== 14 /* EOF */) {
    -        regexValue += this._accept(void 0, true);
    -        continue;
    -      }
    -      return false;
    -    }
    -    while (true) {
    -      if (this._accept(6 /* Forwardslash */)) {
    -        break;
    -      }
    -      let escaped;
    -      if (escaped = this._accept(5 /* Backslash */, true)) {
    -        escaped = this._accept(5 /* Backslash */, true) || this._accept(6 /* Forwardslash */, true) || escaped;
    -        transform.appendChild(new Text(escaped));
    -        continue;
    -      }
    -      if (this._parseFormatString(transform) || this._parseAnything(transform)) {
    -        continue;
    -      }
    -      return false;
    -    }
    -    while (true) {
    -      if (this._accept(4 /* CurlyClose */)) {
    -        break;
    -      }
    -      if (this._token.type !== 14 /* EOF */) {
    -        regexOptions += this._accept(void 0, true);
    -        continue;
    -      }
    -      return false;
    -    }
    -    try {
    -      transform.regexp = new RegExp(regexValue, regexOptions);
    -    } catch (e) {
    -      return false;
    -    }
    -    parent.transform = transform;
    -    return true;
    -  }
    -  _parseFormatString(parent) {
    -    const token = this._token;
    -    if (!this._accept(0 /* Dollar */)) {
    -      return false;
    -    }
    -    let complex = false;
    -    if (this._accept(3 /* CurlyOpen */)) {
    -      complex = true;
    -    }
    -    let index = this._accept(8 /* Int */, true);
    -    if (!index) {
    -      this._backTo(token);
    -      return false;
    -    } else if (!complex) {
    -      parent.appendChild(new FormatString(Number(index)));
    -      return true;
    -    } else if (this._accept(4 /* CurlyClose */)) {
    -      parent.appendChild(new FormatString(Number(index)));
    -      return true;
    -    } else if (!this._accept(1 /* Colon */)) {
    -      this._backTo(token);
    -      return false;
    -    }
    -    if (this._accept(6 /* Forwardslash */)) {
    -      let shorthand = this._accept(9 /* VariableName */, true);
    -      if (!shorthand || !this._accept(4 /* CurlyClose */)) {
    -        this._backTo(token);
    -        return false;
    -      } else {
    -        parent.appendChild(new FormatString(Number(index), shorthand));
    -        return true;
    -      }
    -    } else if (this._accept(11 /* Plus */)) {
    -      let ifValue = this._until(4 /* CurlyClose */);
    -      if (ifValue) {
    -        parent.appendChild(new FormatString(Number(index), void 0, ifValue, void 0));
    -        return true;
    -      }
    -    } else if (this._accept(12 /* Dash */)) {
    -      let elseValue = this._until(4 /* CurlyClose */);
    -      if (elseValue) {
    -        parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue));
    -        return true;
    -      }
    -    } else if (this._accept(13 /* QuestionMark */)) {
    -      let ifValue = this._until(1 /* Colon */);
    -      if (ifValue) {
    -        let elseValue = this._until(4 /* CurlyClose */);
    -        if (elseValue) {
    -          parent.appendChild(new FormatString(Number(index), void 0, ifValue, elseValue));
    -          return true;
    -        }
    -      }
    -    } else {
    -      let elseValue = this._until(4 /* CurlyClose */);
    -      if (elseValue) {
    -        parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue));
    -        return true;
    -      }
    -    }
    -    this._backTo(token);
    -    return false;
    -  }
    -  _parseAnything(marker) {
    -    if (this._token.type !== 14 /* EOF */) {
    -      marker.appendChild(new Text(this._scanner.tokenText(this._token)));
    -      this._accept(void 0);
    -      return true;
    -    }
    -    return false;
    -  }
    -};
    -
    -// ../cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts
    -var KnownSnippetVariableNames = Object.freeze({
    -  "CURRENT_YEAR": true,
    -  "CURRENT_YEAR_SHORT": true,
    -  "CURRENT_MONTH": true,
    -  "CURRENT_DATE": true,
    -  "CURRENT_HOUR": true,
    -  "CURRENT_MINUTE": true,
    -  "CURRENT_SECOND": true,
    -  "CURRENT_DAY_NAME": true,
    -  "CURRENT_DAY_NAME_SHORT": true,
    -  "CURRENT_MONTH_NAME": true,
    -  "CURRENT_MONTH_NAME_SHORT": true,
    -  "CURRENT_SECONDS_UNIX": true,
    -  "SELECTION": true,
    -  "CLIPBOARD": true,
    -  "TM_SELECTED_TEXT": true,
    -  "TM_CURRENT_LINE": true,
    -  "TM_CURRENT_WORD": true,
    -  "TM_LINE_INDEX": true,
    -  "TM_LINE_NUMBER": true,
    -  "TM_FILENAME": true,
    -  "TM_FILENAME_BASE": true,
    -  "TM_DIRECTORY": true,
    -  "TM_FILEPATH": true,
    -  "RELATIVE_FILEPATH": true,
    -  "BLOCK_COMMENT_START": true,
    -  "BLOCK_COMMENT_END": true,
    -  "LINE_COMMENT": true,
    -  "WORKSPACE_NAME": true,
    -  "WORKSPACE_FOLDER": true,
    -  "RANDOM": true,
    -  "RANDOM_HEX": true,
    -  "UUID": true
    -});
    -
    -// ../cursorless-engine/src/snippets/snippet.ts
    -function transformSnippetVariables(parsedSnippet, placeholderName, substitutions) {
    -  let nextPlaceholderIndex = getMaxPlaceholderIndex(parsedSnippet) + 1;
    -  const placeholderIndexMap = {};
    -  parsedSnippet.walk((candidate) => {
    -    if (candidate instanceof Variable) {
    -      if (candidate.name === placeholderName) {
    -        candidate.name = "TM_SELECTED_TEXT";
    -      } else if (substitutions != null && Object.prototype.hasOwnProperty.call(substitutions, candidate.name)) {
    -        candidate.parent.replace(candidate, [
    -          new Text(substitutions[candidate.name])
    -        ]);
    -      } else if (!KnownSnippetVariableNames[candidate.name]) {
    -        let placeholderIndex;
    -        if (candidate.name in placeholderIndexMap) {
    -          placeholderIndex = placeholderIndexMap[candidate.name];
    -        } else {
    -          placeholderIndex = nextPlaceholderIndex++;
    -          placeholderIndexMap[candidate.name] = placeholderIndex;
    -        }
    -        const placeholder = new Placeholder(placeholderIndex);
    -        candidate.children.forEach((child) => placeholder.appendChild(child));
    -        candidate.parent.replace(candidate, [placeholder]);
    -      }
    -    } else if (candidate instanceof Placeholder) {
    -      if (candidate.index.toString() === placeholderName) {
    -        candidate.parent.replace(candidate, [new Variable("TM_SELECTED_TEXT")]);
    -      }
    -    }
    -    return true;
    -  });
    -}
    -function getMaxPlaceholderIndex(parsedSnippet) {
    -  let placeholderIndex = 0;
    -  parsedSnippet.walk((candidate) => {
    -    if (candidate instanceof Placeholder) {
    -      placeholderIndex = Math.max(placeholderIndex, candidate.index);
    -    }
    -    return true;
    -  });
    -  return placeholderIndex;
    -}
    -function findMatchingSnippetDefinitionStrict(modifierStageFactory, targets, definitions) {
    -  const definitionIndices = targets.map(
    -    (target) => findMatchingSnippetDefinitionForSingleTarget(
    -      modifierStageFactory,
    -      target,
    -      definitions
    -    )
    -  );
    -  const definitionIndex = definitionIndices[0];
    -  if (!definitionIndices.every((index) => index === definitionIndex)) {
    -    throw new Error("Multiple snippet definitions match the given context");
    -  }
    -  if (definitionIndex === -1) {
    -    throw new Error("Couldn't find matching snippet definition");
    -  }
    -  return definitions[definitionIndex];
    -}
    -function findMatchingSnippetDefinitionForSingleTarget(modifierStageFactory, target, definitions) {
    -  const languageId = target.editor.document.languageId;
    -  return definitions.findIndex(({ scope }) => {
    -    if (scope == null) {
    -      return true;
    -    }
    -    const { langIds, scopeTypes, excludeDescendantScopeTypes } = scope;
    -    if (langIds != null && !langIds.includes(languageId)) {
    -      return false;
    -    }
    -    if (scopeTypes != null) {
    -      const allScopeTypes = scopeTypes.concat(
    -        excludeDescendantScopeTypes ?? []
    -      );
    -      let matchingTarget = void 0;
    -      let matchingScopeType = void 0;
    -      for (const scopeTypeType of allScopeTypes) {
    -        try {
    -          let containingTarget = modifierStageFactory.create({
    -            type: "containingScope",
    -            scopeType: { type: scopeTypeType }
    -          }).run(target)[0];
    -          if (target.contentRange.isRangeEqual(containingTarget.contentRange)) {
    -            containingTarget = modifierStageFactory.create({
    -              type: "containingScope",
    -              scopeType: { type: scopeTypeType },
    -              ancestorIndex: 1
    -            }).run(target)[0];
    -          }
    -          if (matchingTarget == null || matchingTarget.contentRange.contains(containingTarget.contentRange)) {
    -            matchingTarget = containingTarget;
    -            matchingScopeType = scopeTypeType;
    -          }
    -        } catch (e) {
    -          continue;
    -        }
    -      }
    -      return matchingTarget != null && !(excludeDescendantScopeTypes ?? []).includes(matchingScopeType);
    -    }
    -    return true;
    -  });
    -}
    -
    -// ../cursorless-engine/src/actions/InsertSnippet.ts
    -var InsertSnippet = class {
    -  constructor(rangeUpdater, snippets, actions2, modifierStageFactory) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.snippets = snippets;
    -    this.actions = actions2;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.snippetParser = new SnippetParser();
    -    this.run = this.run.bind(this);
    -  }
    -  getFinalStages(snippetDescription) {
    -    const defaultScopeTypes = this.getScopeTypes(snippetDescription);
    -    return defaultScopeTypes.length === 0 ? [] : [
    -      new ModifyIfUntypedExplicitStage(this.modifierStageFactory, {
    -        type: "cascading",
    -        modifiers: defaultScopeTypes.map((scopeType) => ({
    -          type: "containingScope",
    -          scopeType
    -        }))
    -      })
    -    ];
    -  }
    -  getScopeTypes(snippetDescription) {
    -    if (snippetDescription.type === "named") {
    -      const { name } = snippetDescription;
    -      const snippet2 = this.snippets.getSnippetStrict(name);
    -      const scopeTypeTypes = snippet2.insertionScopeTypes;
    -      return scopeTypeTypes == null ? [] : scopeTypeTypes.map((scopeTypeType) => ({
    -        type: scopeTypeType
    -      }));
    -    } else {
    -      return snippetDescription.scopeTypes ?? [];
    -    }
    -  }
    -  getSnippetInfo(snippetDescription, targets) {
    -    if (snippetDescription.type === "named") {
    -      const { name } = snippetDescription;
    -      const snippet2 = this.snippets.getSnippetStrict(name);
    -      const definition = findMatchingSnippetDefinitionStrict(
    -        this.modifierStageFactory,
    -        targets,
    -        snippet2.definitions
    -      );
    -      return {
    -        body: definition.body.join("\n"),
    -        formatSubstitutions(substitutions) {
    -          return substitutions == null ? void 0 : formatSubstitutions(snippet2, definition, substitutions);
    -        }
    -      };
    -    } else {
    -      return {
    -        body: snippetDescription.body,
    -        formatSubstitutions(substitutions) {
    -          return substitutions;
    -        }
    -      };
    -    }
    -  }
    -  async run(destinations, snippetDescription) {
    -    const editor = ide().getEditableTextEditor(
    -      ensureSingleEditor2(destinations)
    -    );
    -    await this.actions.editNew.run(destinations);
    -    const targetSelectionInfos = editor.selections.map(
    -      (selection) => getSelectionInfo(
    -        editor.document,
    -        selection,
    -        0 /* openOpen */
    -      )
    -    );
    -    const { body, formatSubstitutions: formatSubstitutions2 } = this.getSnippetInfo(
    -      snippetDescription,
    -      // Use new selection locations instead of original targets because
    -      // that's where we'll be doing the snippet insertion
    -      editor.selections.map(
    -        (selection) => new UntypedTarget({
    -          editor,
    -          contentRange: selection,
    -          isReversed: false,
    -          hasExplicitRange: true
    -        })
    -      )
    -    );
    -    const parsedSnippet = this.snippetParser.parse(body);
    -    transformSnippetVariables(
    -      parsedSnippet,
    -      null,
    -      formatSubstitutions2(snippetDescription.substitutions)
    -    );
    -    const snippetString = parsedSnippet.toTextmateString();
    -    const [updatedTargetSelections] = await callFunctionAndUpdateSelectionInfos(
    -      this.rangeUpdater,
    -      () => editor.insertSnippet(snippetString),
    -      editor.document,
    -      [targetSelectionInfos]
    -    );
    -    return {
    -      thatSelections: updatedTargetSelections.map((selection) => ({
    -        editor,
    -        selection
    -      }))
    -    };
    -  }
    -};
    -function formatSubstitutions(snippet2, definition, substitutions) {
    -  return Object.fromEntries(
    -    Object.entries(substitutions).map(([variableName, value]) => {
    -      const formatterName = (definition.variables ?? {})[variableName]?.formatter ?? (snippet2.variables ?? {})[variableName]?.formatter;
    -      if (formatterName == null) {
    -        return [variableName, value];
    -      }
    -      const formatter = textFormatters[formatterName];
    -      if (formatter == null) {
    -        throw new Error(
    -          `Couldn't find formatter ${formatterName} for variable ${variableName}`
    -        );
    -      }
    -      return [variableName, formatter(value.split(" "))];
    -    })
    -  );
    -}
    -
    -// ../cursorless-engine/src/actions/JoinLines.ts
    -var import_lodash45 = __toESM(require_lodash(), 1);
    -var JoinLines = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */);
    -    const thatSelections = (0, import_lodash45.flatten)(
    -      await runOnTargetsForEachEditor(targets, async (editor, targets2) => {
    -        const contentRanges = targets2.map(({ contentRange }) => contentRange);
    -        const edits = getEdits2(editor, contentRanges);
    -        const [updatedRanges] = await performEditsAndUpdateRanges(
    -          this.rangeUpdater,
    -          ide().getEditableTextEditor(editor),
    -          edits,
    -          [contentRanges]
    -        );
    -        return (0, import_lodash45.zip)(targets2, updatedRanges).map(([target, range4]) => ({
    -          editor: target.editor,
    -          selection: range4.toSelection(target.isReversed)
    -        }));
    -      })
    -    );
    -    return { thatSelections };
    -  }
    -};
    -function getEdits2(editor, contentRanges) {
    -  const { document } = editor;
    -  const edits = [];
    -  for (const range4 of contentRanges) {
    -    const startLine = range4.start.line;
    -    const endLine = range4.isSingleLine ? startLine + 1 : range4.end.line;
    -    const lineIter = map2(
    -      range2(startLine, endLine + 1),
    -      (i) => document.lineAt(i)
    -    );
    -    for (const [line1, line2] of pairwise(lineIter)) {
    -      edits.push({
    -        range: new Range(
    -          line1.range.end.line,
    -          line1.lastNonWhitespaceCharacterIndex,
    -          line2.range.start.line,
    -          line2.firstNonWhitespaceCharacterIndex
    -        ),
    -        text: line2.isEmptyOrWhitespace ? "" : " ",
    -        isReplace: true
    -      });
    -    }
    -  }
    -  return edits;
    -}
    -
    -// ../cursorless-engine/src/actions/PasteFromClipboard.ts
    -var PasteFromClipboard = class {
    -  constructor(rangeUpdater, actions2) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.actions = actions2;
    -  }
    -  async run(destinations) {
    -    const editor = ide().getEditableTextEditor(
    -      ensureSingleEditor2(destinations)
    -    );
    -    const originalEditor = ide().activeEditableTextEditor;
    -    const [originalCursorSelections] = await callFunctionAndUpdateSelections(
    -      this.rangeUpdater,
    -      async () => {
    -        await this.actions.editNew.run(destinations);
    -      },
    -      editor.document,
    -      [editor.selections]
    -    );
    -    const [updatedCursorSelections, updatedTargetSelections] = await callFunctionAndUpdateSelectionsWithBehavior(
    -      this.rangeUpdater,
    -      () => editor.clipboardPaste(),
    -      editor.document,
    -      [
    -        {
    -          selections: originalCursorSelections
    -        },
    -        {
    -          selections: editor.selections,
    -          rangeBehavior: 0 /* openOpen */
    -        }
    -      ]
    -    );
    -    await setSelectionsWithoutFocusingEditor(editor, updatedCursorSelections);
    -    if (originalEditor != null && !originalEditor.isActive) {
    -      await originalEditor.focus();
    -    }
    -    await ide().flashRanges(
    -      updatedTargetSelections.map((selection) => ({
    -        editor,
    -        range: toCharacterRange(selection),
    -        style: "justAdded" /* justAdded */
    -      }))
    -    );
    -    return {
    -      thatSelections: updatedTargetSelections.map((selection) => ({
    -        editor,
    -        selection
    -      }))
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Remove.ts
    -var import_lodash46 = __toESM(require_lodash(), 1);
    -var Delete = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -    this.runForEditor = this.runForEditor.bind(this);
    -  }
    -  async run(targets, { showDecorations = true } = {}) {
    -    targets = unifyRemovalTargets(targets);
    -    if (showDecorations) {
    -      await flashTargets(
    -        ide(),
    -        targets,
    -        "pendingDelete" /* pendingDelete */,
    -        (target) => target.getRemovalHighlightRange()
    -      );
    -    }
    -    const thatTargets = (0, import_lodash46.flatten)(
    -      await runOnTargetsForEachEditor(targets, this.runForEditor)
    -    );
    -    return { thatTargets };
    -  }
    -  async runForEditor(editor, targets) {
    -    const edits = targets.map((target) => target.constructRemovalEdit());
    -    const cursorSelections = editor.selections;
    -    const editSelections = edits.map(({ range: range4 }) => range4.toSelection(false));
    -    const editableEditor = ide().getEditableTextEditor(editor);
    -    const [updatedCursorSelections, updatedEditSelections] = await performEditsAndUpdateSelections(
    -      this.rangeUpdater,
    -      editableEditor,
    -      edits,
    -      [cursorSelections, editSelections]
    -    );
    -    await setSelectionsWithoutFocusingEditor(
    -      editableEditor,
    -      updatedCursorSelections
    -    );
    -    return (0, import_lodash46.zip)(targets, updatedEditSelections).map(
    -      ([target, range4]) => new RawSelectionTarget({
    -        editor: target.editor,
    -        isReversed: target.isReversed,
    -        contentRange: range4
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Replace.ts
    -var import_lodash47 = __toESM(require_lodash(), 1);
    -var Replace = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -  }
    -  getTexts(destinations, replaceWith) {
    -    if (Array.isArray(replaceWith)) {
    -      if (replaceWith.length === 1) {
    -        return Array(destinations.length).fill(replaceWith[0]);
    -      }
    -      return replaceWith;
    -    }
    -    const numbers2 = [];
    -    for (let i = 0; i < destinations.length; ++i) {
    -      numbers2[i] = (replaceWith.start + i).toString();
    -    }
    -    return numbers2;
    -  }
    -  async run(destinations, replaceWith) {
    -    await flashTargets(
    -      ide(),
    -      destinations.map((d) => d.target),
    -      "pendingModification0" /* pendingModification0 */
    -    );
    -    const texts = this.getTexts(destinations, replaceWith);
    -    if (destinations.length !== texts.length) {
    -      throw new Error("Targets and texts must have same length");
    -    }
    -    const edits = (0, import_lodash47.zip)(destinations, texts).map(([destination, text]) => ({
    -      editor: destination.editor,
    -      target: destination.target,
    -      edit: destination.constructChangeEdit(text)
    -    }));
    -    const sourceTargets = [];
    -    const thatSelections = [];
    -    await runForEachEditor(
    -      edits,
    -      (edit) => edit.editor,
    -      async (editor, edits2) => {
    -        const contentSelections = {
    -          selections: edits2.map(({ target }) => target.contentSelection)
    -        };
    -        const editSelections = {
    -          selections: edits2.map(({ edit }) => edit.range.toSelection(false)),
    -          rangeBehavior: 0 /* openOpen */
    -        };
    -        const [updatedContentSelections, updatedEditSelections] = await performEditsAndUpdateSelectionsWithBehavior(
    -          this.rangeUpdater,
    -          ide().getEditableTextEditor(editor),
    -          edits2.map(({ edit }) => edit),
    -          [contentSelections, editSelections]
    -        );
    -        for (const [edit, selection] of (0, import_lodash47.zip)(edits2, updatedContentSelections)) {
    -          sourceTargets.push(edit.target.withContentRange(selection));
    -        }
    -        for (const [edit, selection] of (0, import_lodash47.zip)(edits2, updatedEditSelections)) {
    -          thatSelections.push({
    -            editor,
    -            selection: edit.edit.updateRange(selection).toSelection(selection.isReversed)
    -          });
    -        }
    -      }
    -    );
    -    return { sourceTargets, thatSelections };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Rewrap.ts
    -var Rewrap = class {
    -  constructor(rangeUpdater, modifierStageFactory) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.getFinalStages = () => [
    -      this.modifierStageFactory.create(
    -        containingSurroundingPairIfUntypedModifier
    -      )
    -    ];
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, left, right) {
    -    const boundaryTargets = targets.flatMap((target) => {
    -      const boundary = target.getBoundaryStrict();
    -      if (boundary.length !== 2) {
    -        throw Error("Target must have an opening and closing delimiter");
    -      }
    -      return boundary;
    -    });
    -    await flashTargets(ide(), boundaryTargets, "pendingModification0" /* pendingModification0 */);
    -    const results = await runOnTargetsForEachEditor(
    -      boundaryTargets,
    -      async (editor, boundaryTargets2) => {
    -        const edits = boundaryTargets2.map((target, i) => ({
    -          editor,
    -          range: target.contentRange,
    -          text: i % 2 === 0 ? left : right
    -        }));
    -        const [updatedSourceRanges, updatedThatRanges] = await performEditsAndUpdateRanges(
    -          this.rangeUpdater,
    -          ide().getEditableTextEditor(editor),
    -          edits,
    -          [
    -            targets.map((target) => target.thatTarget.contentRange),
    -            targets.map((target) => target.contentRange)
    -          ]
    -        );
    -        return {
    -          sourceMark: createThatMark(targets, updatedSourceRanges),
    -          thatMark: createThatMark(targets, updatedThatRanges)
    -        };
    -      }
    -    );
    -    return {
    -      sourceSelections: results.flatMap(({ sourceMark }) => sourceMark),
    -      thatSelections: results.flatMap(({ thatMark }) => thatMark)
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Scroll.ts
    -var Scroll = class {
    -  constructor(at) {
    -    this.at = at;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    const selectionGroups = groupBy(targets, (t) => t.editor);
    -    const lines = Array.from(selectionGroups, ([editor, targets2]) => {
    -      return { lineNumber: getLineNumber(targets2, this.at), editor };
    -    });
    -    const originalEditor = ide().activeEditableTextEditor;
    -    for (const lineWithEditor of lines) {
    -      await ide().getEditableTextEditor(lineWithEditor.editor).revealLine(lineWithEditor.lineNumber, this.at);
    -    }
    -    if (originalEditor != null && !originalEditor.isActive) {
    -      await originalEditor.focus();
    -    }
    -    const decorationTargets = targets.filter((target) => {
    -      const visibleRanges = target.editor.visibleRanges;
    -      const startLine = visibleRanges[0].start.line;
    -      const endLine = visibleRanges[visibleRanges.length - 1].end.line;
    -      return target.contentRange.start.line > startLine || target.contentRange.end.line < endLine || target.contentRange.start.line === startLine && target.contentRange.end.line === endLine;
    -    });
    -    await ide().flashRanges(
    -      decorationTargets.map((target) => ({
    -        editor: target.editor,
    -        range: toLineRange(target.contentRange),
    -        style: "referenced" /* referenced */
    -      }))
    -    );
    -    return {
    -      thatTargets: targets
    -    };
    -  }
    -};
    -var ScrollToTop = class extends Scroll {
    -  constructor() {
    -    super("top" /* top */);
    -  }
    -};
    -var ScrollToCenter = class extends Scroll {
    -  constructor() {
    -    super("center" /* center */);
    -  }
    -};
    -var ScrollToBottom = class extends Scroll {
    -  constructor() {
    -    super("bottom" /* bottom */);
    -  }
    -};
    -function getLineNumber(targets, at) {
    -  let startLine = Number.MAX_SAFE_INTEGER;
    -  let endLine = 0;
    -  targets.forEach((target) => {
    -    startLine = Math.min(startLine, target.contentRange.start.line);
    -    endLine = Math.max(endLine, target.contentRange.end.line);
    -  });
    -  if (at === "top" /* top */) {
    -    return startLine;
    -  }
    -  if (at === "bottom" /* bottom */) {
    -    return endLine;
    -  }
    -  return Math.floor((startLine + endLine) / 2);
    -}
    -
    -// ../cursorless-engine/src/actions/SetSelection.ts
    -var SetSelection = class {
    -  constructor() {
    -    this.run = this.run.bind(this);
    -  }
    -  getSelection(target) {
    -    return target.contentSelection;
    -  }
    -  async run(targets) {
    -    const editor = ensureSingleEditor2(targets);
    -    const selections = targets.map(this.getSelection);
    -    await setSelectionsAndFocusEditor(
    -      ide().getEditableTextEditor(editor),
    -      selections
    -    );
    -    return {
    -      thatTargets: targets
    -    };
    -  }
    -};
    -var SetSelectionBefore = class extends SetSelection {
    -  getSelection(target) {
    -    return new Selection(target.contentRange.start, target.contentRange.start);
    -  }
    -};
    -var SetSelectionAfter = class extends SetSelection {
    -  getSelection(target) {
    -    return new Selection(target.contentRange.end, target.contentRange.end);
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/SetSpecialTarget.ts
    -var SetSpecialTarget = class {
    -  constructor(key) {
    -    this.key = key;
    -    this.noAutomaticTokenExpansion = true;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    return {
    -      thatTargets: targets,
    -      [`${this.key}Targets`]: targets
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/ShowParseTree.ts
    -var path4 = __toESM(require("node:path"), 1);
    -var ShowParseTree = class {
    -  constructor(treeSitter) {
    -    this.treeSitter = treeSitter;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    await flashTargets(ide(), targets, "referenced" /* referenced */);
    -    const results = ["# Cursorless parse tree"];
    -    for (const target of targets) {
    -      const { editor, contentRange } = target;
    -      const tree = this.treeSitter.getTree(editor.document);
    -      results.push(parseTree(editor.document, tree, contentRange));
    -    }
    -    ide().openUntitledTextDocument({
    -      language: "markdown",
    -      content: results.join("\n\n")
    -    });
    -    return { thatTargets: targets };
    -  }
    -};
    -function parseTree(document, tree, contentRange) {
    -  const resultPlayground = [];
    -  const resultQuery = [];
    -  parseCursor(resultPlayground, resultQuery, contentRange, tree.walk(), 0);
    -  return [
    -    `## ${path4.basename(document.uri.path)} [${contentRange}]
    -`,
    -    `\`\`\`${document.languageId}`,
    -    document.getText(contentRange),
    -    "```",
    -    "",
    -    "```scm",
    -    ...resultQuery,
    -    "```",
    -    "",
    -    "```js",
    -    ...resultPlayground,
    -    "```",
    -    ""
    -  ].join("\n");
    -}
    -function parseCursor(resultPlayground, resultQuery, contentRange, cursor, numIndents) {
    -  while (true) {
    -    const nodeRange = new Range(
    -      cursor.startPosition.row,
    -      cursor.startPosition.column,
    -      cursor.endPosition.row,
    -      cursor.endPosition.column
    -    );
    -    if (contentRange.intersection(nodeRange) != null) {
    -      const indentation = "  ".repeat(numIndents);
    -      const fieldName = getFieldName(cursor);
    -      const prefix = indentation + fieldName;
    -      if (cursor.nodeIsNamed) {
    -        resultPlayground.push(`${prefix}${cursor.nodeType} [${nodeRange}]`);
    -        resultQuery.push(`${prefix}(${cursor.nodeType}`);
    -        if (cursor.gotoFirstChild()) {
    -          parseCursor(
    -            resultPlayground,
    -            resultQuery,
    -            contentRange,
    -            cursor,
    -            numIndents + 1
    -          );
    -          cursor.gotoParent();
    -          resultQuery.push(`${indentation})`);
    -        } else {
    -          resultQuery[resultQuery.length - 1] += ")";
    -        }
    -      } else {
    -        const type2 = `"${cursor.nodeType}"`;
    -        resultPlayground.push(`${prefix}${type2} [${nodeRange}]`);
    -        resultQuery.push(`${prefix}${type2}`);
    -      }
    -    }
    -    if (!cursor.gotoNextSibling()) {
    -      return;
    -    }
    -  }
    -}
    -function getFieldName(cursor) {
    -  const field = cursor.currentFieldName();
    -  return field != null ? `${field}: ` : "";
    -}
    -
    -// ../cursorless-engine/src/actions/SimpleIdeCommandActions.ts
    -var SimpleIdeCommandAction = class {
    -  constructor(rangeUpdater) {
    -    this.ensureSingleEditor = false;
    -    this.ensureSingleTarget = false;
    -    this.restoreSelection = true;
    -    this.showDecorations = true;
    -    this.callbackAction = new CallbackAction(rangeUpdater);
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, { showDecorations } = {}) {
    -    const capabilities = ide().capabilities.commands[this.command];
    -    if (capabilities == null) {
    -      throw Error(`Action ${this.command} is not supported by your ide`);
    -    }
    -    const { acceptsLocation } = capabilities;
    -    return this.callbackAction.run(targets, {
    -      callback: (editor, targets2) => callback(
    -        editor,
    -        acceptsLocation ? targets2.map((t) => t.contentRange) : void 0,
    -        this.command
    -      ),
    -      setSelection: !acceptsLocation,
    -      ensureSingleEditor: this.ensureSingleEditor,
    -      ensureSingleTarget: this.ensureSingleTarget,
    -      restoreSelection: this.restoreSelection,
    -      showDecorations: showDecorations ?? this.showDecorations
    -    });
    -  }
    -};
    -var CopyToClipboard = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "clipboardCopy";
    -    this.ensureSingleEditor = true;
    -  }
    -};
    -var ToggleLineComment = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "toggleLineComment";
    -  }
    -};
    -var IndentLine = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "indentLine";
    -  }
    -};
    -var OutdentLine = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "outdentLine";
    -  }
    -};
    -var Fold = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "fold";
    -  }
    -};
    -var Unfold = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "unfold";
    -  }
    -};
    -var Rename = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "rename";
    -    this.ensureSingleTarget = true;
    -  }
    -};
    -var ShowReferences = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "showReferences";
    -    this.ensureSingleTarget = true;
    -  }
    -};
    -var ShowQuickFix = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "quickFix";
    -    this.ensureSingleTarget = true;
    -  }
    -};
    -var RevealDefinition = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "revealDefinition";
    -    this.ensureSingleTarget = true;
    -    this.restoreSelection = false;
    -  }
    -};
    -var RevealTypeDefinition = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "revealTypeDefinition";
    -    this.ensureSingleTarget = true;
    -    this.restoreSelection = false;
    -  }
    -};
    -var ShowHover = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "showHover";
    -    this.ensureSingleTarget = true;
    -    this.restoreSelection = false;
    -  }
    -};
    -var ShowDebugHover = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "showDebugHover";
    -    this.ensureSingleTarget = true;
    -    this.restoreSelection = false;
    -  }
    -};
    -var ExtractVariable = class extends SimpleIdeCommandAction {
    -  constructor() {
    -    super(...arguments);
    -    this.command = "extractVariable";
    -    this.ensureSingleTarget = true;
    -    this.restoreSelection = false;
    -  }
    -};
    -function callback(editor, ranges, command) {
    -  switch (command) {
    -    case "toggleLineComment":
    -      return editor.toggleLineComment(ranges);
    -    case "indentLine":
    -      return editor.indentLine(ranges);
    -    case "outdentLine":
    -      return editor.outdentLine(ranges);
    -    case "clipboardCopy":
    -      return editor.clipboardCopy(ranges);
    -    case "fold":
    -      return editor.fold(ranges);
    -    case "unfold":
    -      return editor.unfold(ranges);
    -    case "rename":
    -      return editor.rename(ranges?.[0]);
    -    case "showReferences":
    -      return editor.showReferences(ranges?.[0]);
    -    case "quickFix":
    -      return editor.quickFix(ranges?.[0]);
    -    case "revealDefinition":
    -      return editor.revealDefinition(ranges?.[0]);
    -    case "revealTypeDefinition":
    -      return editor.revealTypeDefinition(ranges?.[0]);
    -    case "showHover":
    -      return editor.showHover(ranges?.[0]);
    -    case "showDebugHover":
    -      return editor.showDebugHover(ranges?.[0]);
    -    case "extractVariable":
    -      return editor.extractVariable(ranges?.[0]);
    -    case "highlight":
    -      throw Error("Highlight command not supported as simple action");
    -  }
    -}
    -
    -// ../cursorless-engine/src/actions/Sort.ts
    -var import_lodash48 = __toESM(require_lodash(), 1);
    -var SortBase = class {
    -  constructor(actions2) {
    -    this.actions = actions2;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    if (targets.length < 2) {
    -      showWarning(
    -        ide().messages,
    -        "tooFewTargets",
    -        'This action works on multiple targets, e.g. "sort every line block" instead of "sort block".'
    -      );
    -    }
    -    const sortedTargets = targets.slice().sort((a, b) => a.contentRange.start.compareTo(b.contentRange.start));
    -    const { returnValue: unsortedTexts } = await this.actions.getText.run(
    -      sortedTargets,
    -      {
    -        showDecorations: false
    -      }
    -    );
    -    const sortedTexts = this.sortTexts(unsortedTexts);
    -    const { thatSelections } = await this.actions.replace.run(
    -      sortedTargets.map((target) => target.toDestination("to")),
    -      sortedTexts
    -    );
    -    return { thatSelections };
    -  }
    -};
    -var Sort = class extends SortBase {
    -  constructor() {
    -    super(...arguments);
    -    this.collator = new Intl.Collator(void 0, {
    -      numeric: true,
    -      caseFirst: "upper"
    -    });
    -  }
    -  sortTexts(texts) {
    -    return texts.sort(this.collator.compare);
    -  }
    -};
    -var Reverse = class extends SortBase {
    -  sortTexts(texts) {
    -    return texts.reverse();
    -  }
    -};
    -var Random = class extends SortBase {
    -  sortTexts(texts) {
    -    return (0, import_lodash48.shuffle)(texts);
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/ToggleBreakpoint.ts
    -var ToggleBreakpoint = class {
    -  constructor(modifierStageFactory) {
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.getFinalStages = () => [
    -      this.modifierStageFactory.create(containingLineIfUntypedModifier)
    -    ];
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    const thatTargets = targets.map(({ thatTarget }) => thatTarget);
    -    await flashTargets(ide(), thatTargets, "referenced" /* referenced */);
    -    await runOnTargetsForEachEditor(targets, async (editor, targets2) => {
    -      const breakpointDescriptors = targets2.map(
    -        (target) => {
    -          const range4 = target.contentRange;
    -          return target.isLine ? {
    -            type: "line",
    -            startLine: range4.start.line,
    -            endLine: range4.end.line
    -          } : {
    -            type: "inline",
    -            range: range4
    -          };
    -        }
    -      );
    -      await ide().getEditableTextEditor(editor).toggleBreakpoint(breakpointDescriptors);
    -    });
    -    return {
    -      thatTargets: targets
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/Wrap.ts
    -var Wrap = class {
    -  constructor(rangeUpdater) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets, left, right) {
    -    const results = await runOnTargetsForEachEditor(
    -      targets,
    -      async (editor, targets2) => {
    -        const { document } = editor;
    -        const boundaries = targets2.map((target) => ({
    -          start: new Selection(
    -            target.contentRange.start,
    -            target.contentRange.start
    -          ),
    -          end: new Selection(target.contentRange.end, target.contentRange.end)
    -        }));
    -        const edits = boundaries.flatMap(({ start, end }) => [
    -          {
    -            text: left,
    -            range: start
    -          },
    -          {
    -            text: right,
    -            range: end,
    -            isReplace: true
    -          }
    -        ]);
    -        const delimiterSelectionInfos = boundaries.flatMap(
    -          ({ start, end }) => {
    -            return [
    -              getSelectionInfo(
    -                document,
    -                start,
    -                2 /* openClosed */
    -              ),
    -              getSelectionInfo(
    -                document,
    -                end,
    -                3 /* closedOpen */
    -              )
    -            ];
    -          }
    -        );
    -        const cursorSelectionInfos = editor.selections.map(
    -          (selection) => getSelectionInfo(
    -            document,
    -            selection,
    -            1 /* closedClosed */
    -          )
    -        );
    -        const sourceMarkSelectionInfos = targets2.map(
    -          (target) => getSelectionInfo(
    -            document,
    -            target.contentSelection,
    -            1 /* closedClosed */
    -          )
    -        );
    -        const thatMarkSelectionInfos = targets2.map(
    -          (target) => getSelectionInfo(
    -            document,
    -            target.contentSelection,
    -            0 /* openOpen */
    -          )
    -        );
    -        const editableEditor = ide().getEditableTextEditor(editor);
    -        const [
    -          delimiterSelections,
    -          cursorSelections,
    -          sourceMarkSelections,
    -          thatMarkSelections
    -        ] = await performEditsAndUpdateFullSelectionInfos(
    -          this.rangeUpdater,
    -          editableEditor,
    -          edits,
    -          [
    -            delimiterSelectionInfos,
    -            cursorSelectionInfos,
    -            sourceMarkSelectionInfos,
    -            thatMarkSelectionInfos
    -          ]
    -        );
    -        await setSelectionsWithoutFocusingEditor(
    -          editableEditor,
    -          cursorSelections
    -        );
    -        await ide().flashRanges(
    -          delimiterSelections.map((selection) => ({
    -            editor,
    -            range: toCharacterRange(selection),
    -            style: "justAdded" /* justAdded */
    -          }))
    -        );
    -        return {
    -          sourceMark: sourceMarkSelections.map((selection) => ({
    -            editor,
    -            selection
    -          })),
    -          thatMark: thatMarkSelections.map((selection) => ({
    -            editor,
    -            selection
    -          }))
    -        };
    -      }
    -    );
    -    return {
    -      sourceSelections: results.flatMap(({ sourceMark }) => sourceMark),
    -      thatSelections: results.flatMap(({ thatMark }) => thatMark)
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/WrapWithSnippet.ts
    -var WrapWithSnippet = class {
    -  constructor(rangeUpdater, snippets, modifierStageFactory) {
    -    this.rangeUpdater = rangeUpdater;
    -    this.snippets = snippets;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.snippetParser = new SnippetParser();
    -    this.run = this.run.bind(this);
    -  }
    -  getFinalStages(snippet2) {
    -    const defaultScopeType = this.getScopeType(snippet2);
    -    if (defaultScopeType == null) {
    -      return [];
    -    }
    -    return [
    -      new ModifyIfUntypedStage(this.modifierStageFactory, {
    -        type: "modifyIfUntyped",
    -        modifier: {
    -          type: "containingScope",
    -          scopeType: defaultScopeType
    -        }
    -      })
    -    ];
    -  }
    -  getScopeType(snippetDescription) {
    -    if (snippetDescription.type === "named") {
    -      const { name, variableName } = snippetDescription;
    -      const snippet2 = this.snippets.getSnippetStrict(name);
    -      const variables = snippet2.variables ?? {};
    -      const scopeTypeType = variables[variableName]?.wrapperScopeType;
    -      return scopeTypeType == null ? void 0 : {
    -        type: scopeTypeType
    -      };
    -    } else {
    -      return snippetDescription.scopeType;
    -    }
    -  }
    -  getBody(snippetDescription, targets) {
    -    if (snippetDescription.type === "named") {
    -      const { name } = snippetDescription;
    -      const snippet2 = this.snippets.getSnippetStrict(name);
    -      const definition = findMatchingSnippetDefinitionStrict(
    -        this.modifierStageFactory,
    -        targets,
    -        snippet2.definitions
    -      );
    -      return definition.body.join("\n");
    -    } else {
    -      return snippetDescription.body;
    -    }
    -  }
    -  async run(targets, snippetDescription) {
    -    const editor = ide().getEditableTextEditor(ensureSingleEditor2(targets));
    -    const body = this.getBody(snippetDescription, targets);
    -    const parsedSnippet = this.snippetParser.parse(body);
    -    transformSnippetVariables(parsedSnippet, snippetDescription.variableName);
    -    const snippetString = parsedSnippet.toTextmateString();
    -    await flashTargets(ide(), targets, "pendingModification0" /* pendingModification0 */);
    -    const targetSelections = targets.map((target) => target.contentSelection);
    -    const [updatedTargetSelections] = await callFunctionAndUpdateSelections(
    -      this.rangeUpdater,
    -      () => editor.insertSnippet(snippetString, targetSelections),
    -      editor.document,
    -      [targetSelections]
    -    );
    -    return {
    -      thatSelections: updatedTargetSelections.map((selection) => ({
    -        editor,
    -        selection
    -      }))
    -    };
    -  }
    -};
    -
    -// ../cursorless-engine/src/actions/incrementDecrement.ts
    -var REGEX = /-?\d+(\.\d+)?/g;
    -var IncrementDecrement = class {
    -  constructor(actions2, isIncrement) {
    -    this.actions = actions2;
    -    this.isIncrement = isIncrement;
    -    this.run = this.run.bind(this);
    -  }
    -  async run(targets) {
    -    const thatSelections = [];
    -    await runForEachEditor(
    -      targets,
    -      (target) => target.editor,
    -      async (editor, targets2) => {
    -        const selections = await this.runOnEditor(editor, targets2);
    -        thatSelections.push(...selections);
    -      }
    -    );
    -    return { thatSelections };
    -  }
    -  async runOnEditor(editor, targets) {
    -    const { document } = editor;
    -    const destinations = [];
    -    const replaceWith = [];
    -    for (const target of targets) {
    -      const offset = document.offsetAt(target.contentRange.start);
    -      const text = target.contentText;
    -      const matches = matchText(text, REGEX);
    -      for (const match2 of matches) {
    -        destinations.push(createDestination(editor, offset, match2));
    -        replaceWith.push(updateNumber(this.isIncrement, match2.text));
    -      }
    -    }
    -    const { thatSelections } = await this.actions.replace.run(
    -      destinations,
    -      replaceWith
    -    );
    -    return thatSelections;
    -  }
    -};
    -var Increment = class extends IncrementDecrement {
    -  constructor(actions2) {
    -    super(actions2, true);
    -  }
    -};
    -var Decrement = class extends IncrementDecrement {
    -  constructor(actions2) {
    -    super(actions2, false);
    -  }
    -};
    -function createDestination(editor, offset, match2) {
    -  const target = new PlainTarget({
    -    editor,
    -    isReversed: false,
    -    contentRange: new Range(
    -      editor.document.positionAt(offset + match2.index),
    -      editor.document.positionAt(offset + match2.index + match2.text.length)
    -    )
    -  });
    -  return target.toDestination("to");
    -}
    -function updateNumber(isIncrement, text) {
    -  return text.includes(".") ? updateFloat(isIncrement, text).toString() : updateInteger(isIncrement, text).toString();
    -}
    -function updateInteger(isIncrement, text) {
    -  const original = parseInt(text);
    -  const diff = 1;
    -  return original + (isIncrement ? diff : -diff);
    -}
    -function updateFloat(isIncrement, text) {
    -  const original = parseFloat(text);
    -  const isPercentage = Math.abs(original) <= 1;
    -  const diff = isPercentage ? 0.1 : 1;
    -  const updated = original + (isIncrement ? diff : -diff);
    -  return parseFloat(updated.toPrecision(15)) / 1;
    -}
    -
    -// ../cursorless-engine/src/actions/Actions.ts
    -var Actions = class {
    -  constructor(treeSitter, snippets, rangeUpdater, modifierStageFactory) {
    -    this.treeSitter = treeSitter;
    -    this.snippets = snippets;
    -    this.rangeUpdater = rangeUpdater;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.callAsFunction = new Call(this);
    -    this.clearAndSetSelection = new Clear(this);
    -    this.copyToClipboard = new CopyToClipboard(this.rangeUpdater);
    -    this.cutToClipboard = new CutToClipboard(this);
    -    this.decrement = new Decrement(this);
    -    this.deselect = new Deselect();
    -    this.editNew = new EditNew(this.rangeUpdater, this);
    -    this.editNewLineAfter = new EditNewAfter(
    -      this,
    -      this.modifierStageFactory
    -    );
    -    this.editNewLineBefore = new EditNewBefore(
    -      this,
    -      this.modifierStageFactory
    -    );
    -    this.executeCommand = new ExecuteCommand(this.rangeUpdater);
    -    this.extractVariable = new ExtractVariable(this.rangeUpdater);
    -    this.findInDocument = new FindInDocument(this);
    -    this.findInWorkspace = new FindInWorkspace(this);
    -    this.foldRegion = new Fold(this.rangeUpdater);
    -    this.followLink = new FollowLink(this);
    -    this.generateSnippet = new GenerateSnippet();
    -    this.getText = new GetText();
    -    this.highlight = new Highlight();
    -    this.increment = new Increment(this);
    -    this.indentLine = new IndentLine(this.rangeUpdater);
    -    this.insertCopyAfter = new CopyContentAfter(
    -      this.rangeUpdater,
    -      this.modifierStageFactory
    -    );
    -    this.insertCopyBefore = new CopyContentBefore(
    -      this.rangeUpdater,
    -      this.modifierStageFactory
    -    );
    -    this.insertEmptyLineAfter = new InsertEmptyLineBelow(this.rangeUpdater);
    -    this.insertEmptyLineBefore = new InsertEmptyLineAbove(this.rangeUpdater);
    -    this.insertEmptyLinesAround = new InsertEmptyLinesAround(this.rangeUpdater);
    -    this.insertSnippet = new InsertSnippet(
    -      this.rangeUpdater,
    -      this.snippets,
    -      this,
    -      this.modifierStageFactory
    -    );
    -    this.joinLines = new JoinLines(this.rangeUpdater);
    -    this.breakLine = new BreakLine(this.rangeUpdater);
    -    this.moveToTarget = new Move(this.rangeUpdater);
    -    this.outdentLine = new OutdentLine(this.rangeUpdater);
    -    this.pasteFromClipboard = new PasteFromClipboard(this.rangeUpdater, this);
    -    this.randomizeTargets = new Random(this);
    -    this.remove = new Delete(this.rangeUpdater);
    -    this.rename = new Rename(this.rangeUpdater);
    -    this.replace = new Replace(this.rangeUpdater);
    -    this.replaceWithTarget = new Bring(this.rangeUpdater);
    -    this.revealDefinition = new RevealDefinition(this.rangeUpdater);
    -    this.revealTypeDefinition = new RevealTypeDefinition(this.rangeUpdater);
    -    this.reverseTargets = new Reverse(this);
    -    this.rewrapWithPairedDelimiter = new Rewrap(
    -      this.rangeUpdater,
    -      this.modifierStageFactory
    -    );
    -    this.scrollToBottom = new ScrollToBottom();
    -    this.scrollToCenter = new ScrollToCenter();
    -    this.scrollToTop = new ScrollToTop();
    -    this["private.setKeyboardTarget"] = new SetSpecialTarget("keyboard");
    -    this["experimental.setInstanceReference"] = new SetSpecialTarget(
    -      "instanceReference"
    -    );
    -    this.setSelection = new SetSelection();
    -    this.setSelectionAfter = new SetSelectionAfter();
    -    this.setSelectionBefore = new SetSelectionBefore();
    -    this.showDebugHover = new ShowDebugHover(this.rangeUpdater);
    -    this.showHover = new ShowHover(this.rangeUpdater);
    -    this.showQuickFix = new ShowQuickFix(this.rangeUpdater);
    -    this.showReferences = new ShowReferences(this.rangeUpdater);
    -    this.sortTargets = new Sort(this);
    -    this.swapTargets = new Swap(this.rangeUpdater);
    -    this.toggleLineBreakpoint = new ToggleBreakpoint(this.modifierStageFactory);
    -    this.toggleLineComment = new ToggleLineComment(this.rangeUpdater);
    -    this.unfoldRegion = new Unfold(this.rangeUpdater);
    -    this.wrapWithPairedDelimiter = new Wrap(this.rangeUpdater);
    -    this.wrapWithSnippet = new WrapWithSnippet(
    -      this.rangeUpdater,
    -      this.snippets,
    -      this.modifierStageFactory
    -    );
    -    this["private.showParseTree"] = new ShowParseTree(this.treeSitter);
    -    this["private.getTargets"] = new GetTargets();
    -  }
    -};
    -
    -// ../cursorless-engine/src/core/getCommandFallback.ts
    -async function getCommandFallback(commandServerApi, runAction, command) {
    -  const focusedElementType = await commandServerApi?.getFocusedElementType();
    -  if (focusedElementType == null || focusedElementType === "textEditor") {
    -    return null;
    -  }
    -  const action = command.action;
    -  switch (action.name) {
    -    case "replace":
    -      return destinationIsSelection(action.destination) && Array.isArray(action.replaceWith) ? {
    -        action: "insert",
    -        modifiers: getModifiersFromDestination(action.destination),
    -        text: action.replaceWith.join("\n")
    -      } : null;
    -    case "replaceWithTarget":
    -      if (destinationIsSelection(action.destination)) {
    -        return {
    -          action: "insert",
    -          modifiers: getModifiersFromDestination(action.destination),
    -          text: await getText(runAction, action.source)
    -        };
    -      }
    -      return null;
    -    case "moveToTarget":
    -      if (destinationIsSelection(action.destination)) {
    -        const text = await getText(runAction, action.source);
    -        await remove(runAction, action.source);
    -        return {
    -          action: "insert",
    -          modifiers: getModifiersFromDestination(action.destination),
    -          text
    -        };
    -      }
    -      return null;
    -    case "callAsFunction":
    -      if (targetIsSelection(action.argument)) {
    -        return {
    -          action: action.name,
    -          modifiers: getModifiersFromTarget(action.argument),
    -          callee: await getText(runAction, action.callee)
    -        };
    -      }
    -      return null;
    -    case "wrapWithPairedDelimiter":
    -    case "rewrapWithPairedDelimiter":
    -      return targetIsSelection(action.target) ? {
    -        action: action.name,
    -        modifiers: getModifiersFromTarget(action.target),
    -        left: action.left,
    -        right: action.right
    -      } : null;
    -    case "pasteFromClipboard":
    -      return destinationIsSelection(action.destination) ? {
    -        action: action.name,
    -        modifiers: getModifiersFromDestination(action.destination)
    -      } : null;
    -    case "swapTargets":
    -    case "editNew":
    -    case "insertSnippet":
    -    case "generateSnippet":
    -    case "wrapWithSnippet":
    -      return null;
    -    default:
    -      return targetIsSelection(action.target) ? {
    -        action: action.name,
    -        modifiers: getModifiersFromTarget(action.target)
    -      } : null;
    -  }
    -}
    -function destinationIsSelection(destination) {
    -  if (destination.type === "implicit") {
    -    return true;
    -  }
    -  if (destination.type === "primitive") {
    -    return destination.insertionMode === "to" && targetIsSelection(destination.target);
    -  }
    -  return false;
    -}
    -function targetIsSelection(target) {
    -  if (target.type === "implicit") {
    -    return true;
    -  }
    -  if (target.type === "primitive") {
    -    return target.mark == null || target.mark.type === "cursor";
    -  }
    -  return false;
    -}
    -function getModifiersFromDestination(destination) {
    -  if (destination.type === "primitive") {
    -    return getModifiersFromTarget(destination.target);
    -  }
    -  return [];
    -}
    -function getModifiersFromTarget(target) {
    -  if (target.type === "primitive") {
    -    if (target.modifiers != null && target.modifiers.length > 0) {
    -      return target.modifiers;
    -    }
    -    if (target.mark?.type === "cursor") {
    -      return [{ type: "containingTokenIfEmpty" }];
    -    }
    -  }
    -  return [];
    -}
    -async function getText(runAction, target) {
    -  const response = await runAction({ name: "getText", target });
    -  const texts = response.returnValue;
    -  return texts.join("\n");
    -}
    -async function remove(runAction, target) {
    -  await runAction({ name: "remove", target });
    -}
    -
    -// ../cursorless-engine/src/core/handleHoistedModifiers.ts
    -var import_lodash49 = __toESM(require_lodash(), 1);
    -function handleHoistedModifiers(targetDescriptor, isAnchorMarkImplicit) {
    -  const { anchor, rangeType, active } = targetDescriptor;
    -  if (anchor.type !== "primitive" || rangeType !== "continuous") {
    -    return targetDescriptor;
    -  }
    -  const indexedModifiers = anchor.modifiers.map((v, i) => [v, i]);
    -  for (const [modifier, idx] of indexedModifiers.reverse()) {
    -    for (const hoistedModifierType of hoistedModifierTypes) {
    -      const acceptanceInfo = hoistedModifierType.accept(modifier);
    -      if (acceptanceInfo.accepted) {
    -        const [hoistedModifiers, unhoistedModifiers] = [
    -          anchor.modifiers.slice(0, idx + 1),
    -          anchor.modifiers.slice(idx + 1)
    -        ];
    -        let pipelineInputDescriptor = {
    -          ...targetDescriptor,
    -          anchor: (
    -            // If they say "every line past bat", the anchor is implicit, even though
    -            // it comes across the wire as a primitive target due to the "every line",
    -            // which we've now removed
    -            unhoistedModifiers.length === 0 && isAnchorMarkImplicit ? { type: "implicit" } : {
    -              type: "primitive",
    -              mark: anchor.mark,
    -              modifiers: unhoistedModifiers
    -            }
    -          ),
    -          // Remove the hoisted modifier (and everything before it) from the
    -          // active if it ended up there from inference
    -          active: produce(active, (draft) => {
    -            draft.modifiers = draft.modifiers.slice(
    -              (0, import_lodash49.findLastIndex)(
    -                draft.modifiers,
    -                (modifier2) => hoistedModifierType.accept(modifier2).accepted
    -              ) + 1
    -            );
    -          })
    -        };
    -        pipelineInputDescriptor = acceptanceInfo.transformTarget?.(pipelineInputDescriptor) ?? pipelineInputDescriptor;
    -        return {
    -          type: "primitive",
    -          mark: {
    -            type: "target",
    -            target: pipelineInputDescriptor
    -          },
    -          modifiers: hoistedModifiers
    -        };
    -      }
    -    }
    -  }
    -  return targetDescriptor;
    -}
    -var hoistedModifierTypes = [
    -  // "every" ranges, eg "every line air past bat"
    -  {
    -    accept(modifier) {
    -      return modifier.type === "everyScope" && modifier.scopeType.type !== "instance" ? {
    -        accepted: true,
    -        transformTarget(target) {
    -          return {
    -            ...target,
    -            exclusionScopeType: modifier.scopeType
    -          };
    -        }
    -      } : { accepted: false };
    -    }
    -  },
    -  // "instance" modifiers treat the range as the instance to search for, eg
    -  // "every instance air past bat" searches for instances of the text of the
    -  // range "air past bat".
    -  {
    -    accept(modifier) {
    -      return {
    -        accepted: (modifier.type === "everyScope" || modifier.type === "relativeScope" || modifier.type === "ordinalScope") && modifier.scopeType.type === "instance"
    -      };
    -    }
    -  }
    -];
    -
    -// ../cursorless-engine/src/core/inferFullTargetDescriptor.ts
    -function inferFullTargetDescriptor(target, previousTargets) {
    -  switch (target.type) {
    -    case "list":
    -      return inferListTarget(target, previousTargets);
    -    case "range":
    -      return inferRangeTargetWithHoist(target, previousTargets);
    -    case "primitive":
    -      return inferPrimitiveTarget(target, previousTargets);
    -    case "implicit":
    -      return target;
    -  }
    -}
    -function inferListTarget(target, previousTargets) {
    -  return {
    -    ...target,
    -    elements: target.elements.map((element, index) => {
    -      const elementPreviousTargets = previousTargets.concat(
    -        target.elements.slice(0, index)
    -      );
    -      switch (element.type) {
    -        case "range":
    -          return inferRangeTargetWithHoist(element, elementPreviousTargets);
    -        case "primitive":
    -          return inferPrimitiveTarget(element, elementPreviousTargets);
    -      }
    -    })
    -  };
    -}
    -function inferRangeTargetWithHoist(target, previousTargets) {
    -  const fullTarget = inferRangeTarget(target, previousTargets);
    -  const isAnchorMarkImplicit = target.anchor.type === "implicit" || target.anchor.mark == null;
    -  return handleHoistedModifiers(fullTarget, isAnchorMarkImplicit);
    -}
    -function inferRangeTarget(target, previousTargets) {
    -  return {
    -    type: "range",
    -    rangeType: target.rangeType ?? "continuous",
    -    excludeAnchor: target.excludeAnchor ?? false,
    -    excludeActive: target.excludeActive ?? false,
    -    anchor: target.anchor.type === "implicit" ? target.anchor : inferPrimitiveTarget(target.anchor, previousTargets),
    -    active: inferPrimitiveTarget(
    -      target.active,
    -      previousTargets.concat(target.anchor)
    -    )
    -  };
    -}
    -function inferPrimitiveTarget(target, previousTargets) {
    -  const mark = target.mark ?? (shouldInferPreviousMark(target) ? getPreviousMark(previousTargets) : null) ?? {
    -    type: "cursor"
    -  };
    -  const modifiers = getPreservedModifiers(target) ?? getPreviousPreservedModifiers(previousTargets) ?? getPreviousLineNumberMarkModifiers(previousTargets) ?? [];
    -  return {
    -    type: target.type,
    -    mark,
    -    modifiers
    -  };
    -}
    -function shouldInferPreviousMark(target) {
    -  return target.modifiers?.some((m) => m.type === "inferPreviousMark") ?? false;
    -}
    -function getPreservedModifiers(target) {
    -  const preservedModifiers = target.modifiers?.filter(
    -    (modifier) => modifier.type !== "inferPreviousMark"
    -  ) ?? [];
    -  return preservedModifiers.length !== 0 ? preservedModifiers : void 0;
    -}
    -function getLineNumberMarkModifiers(target) {
    -  if (isLineNumberMark(target)) {
    -    return [
    -      {
    -        type: "containingScope",
    -        scopeType: {
    -          type: "line"
    -        }
    -      }
    -    ];
    -  }
    -  return void 0;
    -}
    -function isLineNumberMark(target) {
    -  const isLineNumber = (mark) => mark?.type === "lineNumber";
    -  if (isLineNumber(target.mark)) {
    -    return true;
    -  }
    -  if (target.mark?.type === "range") {
    -    return isLineNumber(target.mark.anchor) && isLineNumber(target.mark.active);
    -  }
    -  return false;
    -}
    -function getPreviousMark(previousTargets) {
    -  return getPreviousTargetAttribute(
    -    previousTargets,
    -    (target) => target.mark
    -  );
    -}
    -function getPreviousPreservedModifiers(previousTargets) {
    -  return getPreviousTargetAttribute(previousTargets, getPreservedModifiers);
    -}
    -function getPreviousLineNumberMarkModifiers(previousTargets) {
    -  return getPreviousTargetAttribute(
    -    previousTargets,
    -    getLineNumberMarkModifiers
    -  );
    -}
    -function getPreviousTargetAttribute(previousTargets, getAttribute) {
    -  for (let i = previousTargets.length - 1; i > -1; --i) {
    -    const target = previousTargets[i];
    -    switch (target.type) {
    -      case "primitive": {
    -        const attributeValue = getAttribute(target);
    -        if (attributeValue != null) {
    -          return attributeValue;
    -        }
    -        break;
    -      }
    -      case "range": {
    -        const attributeValue = getPreviousTargetAttribute(
    -          [target.anchor],
    -          getAttribute
    -        );
    -        if (attributeValue != null) {
    -          return attributeValue;
    -        }
    -        break;
    -      }
    -      case "list": {
    -        const attributeValue = getPreviousTargetAttribute(
    -          target.elements,
    -          getAttribute
    -        );
    -        if (attributeValue != null) {
    -          return attributeValue;
    -        }
    -        break;
    -      }
    -    }
    -  }
    -  return void 0;
    -}
    -
    -// ../cursorless-engine/src/core/commandRunner/CommandRunnerImpl.ts
    -var CommandRunnerImpl = class {
    -  constructor(commandServerApi, debug, storedTargets, pipelineRunner, actions2) {
    -    this.commandServerApi = commandServerApi;
    -    this.debug = debug;
    -    this.storedTargets = storedTargets;
    -    this.pipelineRunner = pipelineRunner;
    -    this.actions = actions2;
    -    this.finalStages = [];
    -    this.runAction = this.runAction.bind(this);
    -    this.inferenceContext = new InferenceContext(this.debug);
    -  }
    -  /**
    -   * Runs a Cursorless command. We proceed as follows:
    -   *
    -   * 1. Perform inference on targets to fill in details left out using things
    -   *    like previous targets. For example we would automatically infer that
    -   *    `"take funk air and bat"` is equivalent to `"take funk air and funk
    -   *    bat"`. See {@link inferFullTargetDescriptors} for details of how this is done.
    -   * 2. Call {@link processTargets} to map each abstract {@link Target} object
    -   *    to a concrete list of {@link Target} objects.
    -   * 3. Run the requested action on the given selections. The mapping from
    -   *    action id (eg `remove`) to implementation is defined in {@link Actions}.
    -   *    To understand how actions work, see some examples, such as `"take"`
    -   *    {@link SetSelection} and `"chuck"` {@link Delete}. See
    -   * 4. Update `source` and `that` marks, if they have been returned from the
    -   *    action, and returns the desired return value indicated by the action, if
    -   *    it has one.
    -   */
    -  async run(command) {
    -    if (clientSupportsFallback(command)) {
    -      const fallback = await getCommandFallback(
    -        this.commandServerApi,
    -        this.runAction,
    -        command
    -      );
    -      if (fallback != null) {
    -        return { fallback };
    -      }
    -    }
    -    const {
    -      returnValue,
    -      thatSelections: newThatSelections,
    -      thatTargets: newThatTargets,
    -      sourceSelections: newSourceSelections,
    -      sourceTargets: newSourceTargets,
    -      instanceReferenceTargets: newInstanceReferenceTargets,
    -      keyboardTargets: newKeyboardTargets
    -    } = await this.runAction(command.action);
    -    this.storedTargets.set(
    -      "that",
    -      constructStoredTarget(newThatTargets, newThatSelections)
    -    );
    -    this.storedTargets.set(
    -      "source",
    -      constructStoredTarget(newSourceTargets, newSourceSelections)
    -    );
    -    this.storedTargets.set("instanceReference", newInstanceReferenceTargets);
    -    this.storedTargets.set("keyboard", newKeyboardTargets);
    -    return { returnValue };
    -  }
    -  runAction(actionDescriptor) {
    -    this.inferenceContext.reset();
    -    this.finalStages = [];
    -    switch (actionDescriptor.name) {
    -      case "replaceWithTarget":
    -        return this.actions.replaceWithTarget.run(
    -          this.getTargets(actionDescriptor.source),
    -          this.getDestinations(actionDescriptor.destination)
    -        );
    -      case "moveToTarget":
    -        return this.actions.moveToTarget.run(
    -          this.getTargets(actionDescriptor.source),
    -          this.getDestinations(actionDescriptor.destination)
    -        );
    -      case "swapTargets":
    -        return this.actions.swapTargets.run(
    -          this.getTargets(actionDescriptor.target1),
    -          this.getTargets(actionDescriptor.target2)
    -        );
    -      case "callAsFunction":
    -        return this.actions.callAsFunction.run(
    -          this.getTargets(actionDescriptor.callee),
    -          this.getTargets(actionDescriptor.argument)
    -        );
    -      case "wrapWithPairedDelimiter":
    -        return this.actions.wrapWithPairedDelimiter.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.left,
    -          actionDescriptor.right
    -        );
    -      case "rewrapWithPairedDelimiter":
    -        this.finalStages = this.actions.rewrapWithPairedDelimiter.getFinalStages();
    -        return this.actions.rewrapWithPairedDelimiter.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.left,
    -          actionDescriptor.right
    -        );
    -      case "pasteFromClipboard":
    -        return this.actions.pasteFromClipboard.run(
    -          this.getDestinations(actionDescriptor.destination)
    -        );
    -      case "executeCommand":
    -        return this.actions.executeCommand.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.commandId,
    -          actionDescriptor.options
    -        );
    -      case "replace":
    -        return this.actions.replace.run(
    -          this.getDestinations(actionDescriptor.destination),
    -          actionDescriptor.replaceWith
    -        );
    -      case "highlight":
    -        return this.actions.highlight.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.highlightId
    -        );
    -      case "generateSnippet":
    -        return this.actions.generateSnippet.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.snippetName
    -        );
    -      case "insertSnippet":
    -        this.finalStages = this.actions.insertSnippet.getFinalStages(
    -          actionDescriptor.snippetDescription
    -        );
    -        return this.actions.insertSnippet.run(
    -          this.getDestinations(actionDescriptor.destination),
    -          actionDescriptor.snippetDescription
    -        );
    -      case "wrapWithSnippet":
    -        this.finalStages = this.actions.wrapWithSnippet.getFinalStages(
    -          actionDescriptor.snippetDescription
    -        );
    -        return this.actions.wrapWithSnippet.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.snippetDescription
    -        );
    -      case "editNew":
    -        return this.actions.editNew.run(
    -          this.getDestinations(actionDescriptor.destination)
    -        );
    -      case "getText":
    -        return this.actions.getText.run(
    -          this.getTargets(actionDescriptor.target),
    -          actionDescriptor.options
    -        );
    -      default: {
    -        const action = this.actions[actionDescriptor.name];
    -        this.finalStages = action.getFinalStages?.() ?? [];
    -        this.noAutomaticTokenExpansion = action.noAutomaticTokenExpansion ?? false;
    -        return action.run(this.getTargets(actionDescriptor.target));
    -      }
    -    }
    -  }
    -  getTargets(partialTargetsDescriptor) {
    -    const targetDescriptor = this.inferenceContext.run(
    -      partialTargetsDescriptor
    -    );
    -    return this.pipelineRunner.run(targetDescriptor, {
    -      actionFinalStages: this.finalStages,
    -      noAutomaticTokenExpansion: this.noAutomaticTokenExpansion
    -    });
    -  }
    -  getDestinations(destinationDescriptor) {
    -    switch (destinationDescriptor.type) {
    -      case "list":
    -        return destinationDescriptor.destinations.flatMap(
    -          (destination) => this.getDestinations(destination)
    -        );
    -      case "primitive":
    -        return this.getTargets(destinationDescriptor.target).map(
    -          (target) => target.toDestination(destinationDescriptor.insertionMode)
    -        );
    -      case "implicit":
    -        return this.getTargets({ type: "implicit" }).map(
    -          (target) => target.toDestination("to")
    -        );
    -    }
    -  }
    -};
    -var InferenceContext = class {
    -  constructor(debug) {
    -    this.debug = debug;
    -    this.previousTargets = [];
    -  }
    -  run(target) {
    -    const ret = inferFullTargetDescriptor(target, this.previousTargets);
    -    if (this.debug.active) {
    -      this.debug.log("Full target:");
    -      this.debug.log(JSON.stringify(ret, null, 2));
    -    }
    -    this.previousTargets.push(target);
    -    return ret;
    -  }
    -  reset() {
    -    this.previousTargets = [];
    -  }
    -};
    -function constructStoredTarget(targets, selections) {
    -  if (targets != null && selections != null) {
    -    throw Error(
    -      "Actions may only return full targets or selections for that mark"
    -    );
    -  }
    -  if (selections != null) {
    -    return selections.map(selectionToStoredTarget);
    -  } else {
    -    return targets;
    -  }
    -}
    -
    -// ../cursorless-engine/src/util/getPrimitiveTargets.ts
    -function getPartialPrimitiveTargets(targets) {
    -  return targets.flatMap(getPartialPrimitiveTargetsHelper);
    -}
    -function getPartialPrimitiveTargetsHelper(target) {
    -  switch (target.type) {
    -    case "primitive":
    -      return [target];
    -    case "list":
    -      return target.elements.flatMap(getPartialPrimitiveTargetsHelper);
    -    case "range":
    -      return [target.anchor, target.active].flatMap(
    -        getPartialPrimitiveTargetsHelper
    -      );
    -    case "implicit":
    -      return [];
    -  }
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
    -var SCOPE_TYPE_CANONICALIZATION_MAPPING = {
    -  arrowFunction: "anonymousFunction",
    -  dictionary: "map",
    -  regex: "regularExpression"
    -};
    -var COLOR_CANONICALIZATION_MAPPING = {
    -  purple: "pink"
    -};
    -function canonicalizeScopeTypesInPlace(target) {
    -  target.modifiers?.forEach((mod) => {
    -    if (mod.type === "containingScope" || mod.type === "everyScope") {
    -      mod.scopeType.type = SCOPE_TYPE_CANONICALIZATION_MAPPING[mod.scopeType.type] ?? mod.scopeType.type;
    -    }
    -  });
    -}
    -function canonicalizeColorsInPlace(target) {
    -  if (target.mark?.type === "decoratedSymbol") {
    -    target.mark.symbolColor = COLOR_CANONICALIZATION_MAPPING[target.mark.symbolColor] ?? target.mark.symbolColor;
    -  }
    -}
    -function canonicalizeTargetsInPlace(partialTargets) {
    -  getPartialPrimitiveTargets(partialTargets).forEach((target) => {
    -    canonicalizeScopeTypesInPlace(target);
    -    canonicalizeColorsInPlace(target);
    -  });
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
    -function upgradeV0ToV1(command) {
    -  return { ...command, version: 1 };
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
    -var import_lodash50 = __toESM(require_lodash(), 1);
    -var STRICT_HERE = {
    -  type: "primitive",
    -  mark: { type: "cursor" },
    -  selectionType: "token",
    -  position: "contents",
    -  modifier: { type: "identity" },
    -  insideOutsideType: "inside"
    -};
    -var IMPLICIT_TARGET = {
    -  type: "primitive",
    -  isImplicit: true
    -};
    -var upgradeStrictHere = (target) => (0, import_lodash50.isEqual)(target, STRICT_HERE) ? IMPLICIT_TARGET : target;
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
    -function upgradeV1ToV2(command) {
    -  const actionName = command.action;
    -  return {
    -    spokenForm: command.spokenForm,
    -    action: {
    -      name: actionName,
    -      args: command.extraArgs
    -    },
    -    targets: upgradeTargets(command.targets, actionName),
    -    usePrePhraseSnapshot: command.usePrePhraseSnapshot ?? false,
    -    version: 2
    -  };
    -}
    -function upgradeModifier(modifier) {
    -  switch (modifier.type) {
    -    case "identity":
    -      return [];
    -    case "containingScope": {
    -      const { includeSiblings, scopeType, type: type2, ...rest } = modifier;
    -      return [
    -        {
    -          type: includeSiblings ? "everyScope" : "containingScope",
    -          scopeType: {
    -            type: scopeType
    -          },
    -          ...rest
    -        }
    -      ];
    -    }
    -    case "surroundingPair": {
    -      const { delimiterInclusion, ...rest } = modifier;
    -      const surroundingPairModifier = {
    -        type: "containingScope",
    -        scopeType: rest
    -      };
    -      if (delimiterInclusion === "interiorOnly" || delimiterInclusion === "excludeInterior") {
    -        if (surroundingPairModifier.scopeType.delimiter === "any") {
    -          return [{ type: delimiterInclusion }];
    -        }
    -        return [{ type: delimiterInclusion }, surroundingPairModifier];
    -      }
    -      return [surroundingPairModifier];
    -    }
    -    case "subpiece": {
    -      const { type: type2, pieceType, ...rest } = modifier;
    -      return [
    -        {
    -          type: "ordinalRange",
    -          scopeType: { type: pieceType },
    -          ...rest
    -        }
    -      ];
    -    }
    -    case "head":
    -      return [{ type: "extendThroughStartOf" }];
    -    case "tail":
    -      return [{ type: "extendThroughEndOf" }];
    -    default:
    -      return [modifier];
    -  }
    -}
    -function upgradePrimitiveTarget(target, action) {
    -  const {
    -    type: type2,
    -    isImplicit,
    -    mark,
    -    insideOutsideType,
    -    modifier,
    -    selectionType,
    -    position
    -  } = target;
    -  const modifiers = [];
    -  if (position && position !== "contents") {
    -    if (position === "before") {
    -      if (insideOutsideType === "inside") {
    -        modifiers.push({ type: "position", position: "start" });
    -      } else if (action === "remove") {
    -        modifiers.push({ type: "leading" });
    -      } else {
    -        modifiers.push({ type: "position", position: "before" });
    -      }
    -    } else {
    -      if (insideOutsideType === "inside") {
    -        modifiers.push({ type: "position", position: "end" });
    -      } else if (action === "remove") {
    -        modifiers.push({ type: "trailing" });
    -      } else {
    -        modifiers.push({ type: "position", position: "after" });
    -      }
    -    }
    -  }
    -  if (selectionType) {
    -    switch (selectionType) {
    -      case "token":
    -        if (modifier?.type === "subpiece") {
    -          break;
    -        }
    -      case "line":
    -        if (mark?.type === "lineNumber") {
    -          break;
    -        }
    -      default:
    -        modifiers.push({
    -          type: "containingScope",
    -          scopeType: { type: selectionType }
    -        });
    -    }
    -  }
    -  if (modifier) {
    -    modifiers.push(...upgradeModifier(modifier));
    -  }
    -  return {
    -    type: type2,
    -    isImplicit,
    -    // Empty array of modifiers is not allowed
    -    modifiers: modifiers.length > 0 ? modifiers : void 0,
    -    // Cursor token is just cursor position but treated as a token. This is done in the pipeline for normal cursor now
    -    mark: mark?.type === "cursorToken" ? void 0 : mark
    -  };
    -}
    -function upgradeTarget(target, action) {
    -  switch (target.type) {
    -    case "list":
    -      return {
    -        ...target,
    -        elements: target.elements.map(
    -          (target2) => upgradeTarget(target2, action)
    -        )
    -      };
    -    case "range": {
    -      const { type: type2, rangeType, start, end, excludeStart, excludeEnd } = target;
    -      return {
    -        type: type2,
    -        rangeType,
    -        anchor: upgradePrimitiveTarget(start, action),
    -        active: upgradePrimitiveTarget(end, action),
    -        excludeAnchor: excludeStart ?? false,
    -        excludeActive: excludeEnd ?? false
    -      };
    -    }
    -    case "primitive":
    -      return upgradePrimitiveTarget(target, action);
    -  }
    -}
    -function upgradeTargets(partialTargets, action) {
    -  return partialTargets.map((target) => upgradeTarget(target, action)).map(
    -    (target) => target.type === "primitive" ? upgradeStrictHere(target) : target
    -  );
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
    -var import_lodash51 = __toESM(require_lodash(), 1);
    -function upgradeV2ToV3(command) {
    -  return {
    -    ...command,
    -    version: 3,
    -    targets: command.targets.map(upgradeTarget2)
    -  };
    -}
    -function upgradeTarget2(target) {
    -  switch (target.type) {
    -    case "list":
    -      return {
    -        ...target,
    -        elements: target.elements.map(
    -          (target2) => upgradeTarget2(target2)
    -        )
    -      };
    -    case "range": {
    -      const { anchor, active, ...rest } = target;
    -      return {
    -        anchor: upgradePrimitiveTarget2(
    -          anchor
    -        ),
    -        active: upgradePrimitiveTarget2(
    -          active
    -        ),
    -        ...rest
    -      };
    -    }
    -    case "primitive":
    -      return upgradePrimitiveTarget2(target);
    -  }
    -}
    -function upgradePrimitiveTarget2(target) {
    -  const modifiers = target.modifiers != null ? target.modifiers.map(updateModifier) : void 0;
    -  if (target.mark?.type === "lineNumber") {
    -    const { anchor, active } = target.mark;
    -    if (anchor.type !== active.type || anchor.lineNumber < 0 !== active.lineNumber < 0) {
    -      return {
    -        type: "range",
    -        anchor: {
    -          type: "primitive",
    -          mark: createLineNumberMarkFromPos(anchor),
    -          modifiers
    -        },
    -        active: {
    -          type: "primitive",
    -          mark: createLineNumberMarkFromPos(active)
    -        },
    -        excludeAnchor: false,
    -        excludeActive: false
    -      };
    -    }
    -  }
    -  return {
    -    ...target,
    -    mark: target.mark != null ? updateMark(target.mark) : void 0,
    -    modifiers
    -  };
    -}
    -function updateMark(mark) {
    -  switch (mark.type) {
    -    case "lineNumber":
    -      return createLineNumberMark(mark);
    -    default:
    -      return mark;
    -  }
    -}
    -function updateModifier(modifier) {
    -  switch (modifier.type) {
    -    case "ordinalRange":
    -      return createOrdinalModifier(modifier);
    -    default:
    -      return modifier;
    -  }
    -}
    -function createLineNumberMark(mark) {
    -  if ((0, import_lodash51.isEqual)(mark.anchor, mark.active)) {
    -    return createLineNumberMarkFromPos(mark.anchor);
    -  }
    -  return {
    -    type: "range",
    -    anchor: createLineNumberMarkFromPos(mark.anchor),
    -    active: createLineNumberMarkFromPos(mark.active)
    -  };
    -}
    -function createOrdinalModifier(modifier) {
    -  if (modifier.anchor === modifier.active) {
    -    return createAbsoluteOrdinalModifier(modifier.scopeType, modifier.anchor);
    -  }
    -  if (modifier.anchor === 0 && modifier.active > modifier.anchor) {
    -    return createAbsoluteOrdinalModifier(
    -      modifier.scopeType,
    -      modifier.anchor,
    -      modifier.active - modifier.anchor + 1
    -    );
    -  }
    -  if (modifier.anchor < 0 && modifier.active === -1) {
    -    return createAbsoluteOrdinalModifier(
    -      modifier.scopeType,
    -      modifier.anchor,
    -      -modifier.anchor
    -    );
    -  }
    -  return {
    -    type: "range",
    -    anchor: createAbsoluteOrdinalModifier(modifier.scopeType, modifier.anchor),
    -    active: createAbsoluteOrdinalModifier(modifier.scopeType, modifier.active),
    -    excludeAnchor: modifier.excludeAnchor,
    -    excludeActive: modifier.excludeActive
    -  };
    -}
    -function createLineNumberMarkFromPos(position) {
    -  return {
    -    type: "lineNumber",
    -    lineNumberType: position.type,
    -    lineNumber: position.lineNumber
    -  };
    -}
    -function createAbsoluteOrdinalModifier(scopeType, start, length = 1) {
    -  return {
    -    type: "ordinalScope",
    -    scopeType,
    -    start,
    -    length
    -  };
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
    -function upgradeV3ToV4(command) {
    -  return {
    -    ...command,
    -    version: 4,
    -    targets: command.targets.map(upgradeTarget3)
    -  };
    -}
    -function upgradeTarget3(target) {
    -  switch (target.type) {
    -    case "primitive":
    -      return upgradePrimitiveTarget3(target);
    -    case "range": {
    -      const { anchor, ...rest } = target;
    -      return {
    -        ...rest,
    -        anchor: upgradePrimitiveTarget3(anchor)
    -      };
    -    }
    -    case "list": {
    -      const { elements, ...rest } = target;
    -      return {
    -        ...rest,
    -        elements: elements.map(upgradeTarget3)
    -      };
    -    }
    -  }
    -}
    -function upgradePrimitiveTarget3(target) {
    -  if (target.mark == null && target.modifiers == null || target.isImplicit) {
    -    return { type: "implicit" };
    -  }
    -  return target;
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
    -function upgradeV4ToV5(command) {
    -  return {
    -    ...command,
    -    version: 5,
    -    action: upgradeAction(command.action),
    -    targets: command.targets.map(upgradeTarget4)
    -  };
    -}
    -function upgradeAction(action) {
    -  switch (action.name) {
    -    case "wrapWithSnippet": {
    -      const [name, variableName] = parseSnippetLocation(
    -        action.args[0]
    -      );
    -      return {
    -        name: "wrapWithSnippet",
    -        args: [
    -          {
    -            type: "named",
    -            name,
    -            variableName
    -          }
    -        ]
    -      };
    -    }
    -    case "insertSnippet": {
    -      const [name, substitutions] = action.args;
    -      const snippetDescription = {
    -        type: "named",
    -        name
    -      };
    -      if (substitutions != null) {
    -        snippetDescription.substitutions = substitutions;
    -      }
    -      return {
    -        name: "insertSnippet",
    -        args: [snippetDescription]
    -      };
    -    }
    -    default:
    -      return action;
    -  }
    -}
    -function parseSnippetLocation(snippetLocation) {
    -  const [snippetName, placeholderName] = snippetLocation.split(".");
    -  if (snippetName == null || placeholderName == null) {
    -    throw new Error("Snippet location missing '.'");
    -  }
    -  return [snippetName, placeholderName];
    -}
    -function upgradeTarget4(target) {
    -  switch (target.type) {
    -    case "implicit":
    -      return target;
    -    case "list":
    -      return {
    -        ...target,
    -        elements: target.elements.map(
    -          upgradeTarget4
    -        )
    -      };
    -    case "range":
    -      return {
    -        ...target,
    -        anchor: upgradeTarget4(
    -          target.anchor
    -        ),
    -        active: upgradeTarget4(
    -          target.active
    -        )
    -      };
    -    case "primitive":
    -      return {
    -        ...target,
    -        mark: target.mark != null ? upgradeMark(target.mark) : void 0,
    -        modifiers: target.modifiers != null && target.modifiers.length > 0 ? target.modifiers.map(upgradeModifier2) : void 0
    -      };
    -  }
    -}
    -function upgradeMark(mark) {
    -  if (mark.type === "range") {
    -    return {
    -      ...mark,
    -      anchor: upgradeMark(mark.anchor),
    -      active: upgradeMark(mark.active),
    -      excludeAnchor: mark.excludeAnchor ?? false,
    -      excludeActive: mark.excludeActive ?? false
    -    };
    -  }
    -  return mark;
    -}
    -function upgradeModifier2(modifier) {
    -  if (modifier.type === "range") {
    -    return {
    -      ...modifier,
    -      anchor: upgradeModifier2(modifier.anchor),
    -      active: upgradeModifier2(modifier.active),
    -      excludeAnchor: modifier.excludeAnchor ?? false,
    -      excludeActive: modifier.excludeActive ?? false
    -    };
    -  }
    -  return modifier;
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
    -var actionAliasToCanonicalName = {
    -  bring: "replaceWithTarget",
    -  call: "callAsFunction",
    -  clear: "clearAndSetSelection",
    -  commentLines: "toggleLineComment",
    -  copy: "copyToClipboard",
    -  cut: "cutToClipboard",
    -  delete: "remove",
    -  editNewLineAbove: "editNewLineBefore",
    -  editNewLineBelow: "editNewLineAfter",
    -  findInFiles: "findInWorkspace",
    -  fold: "foldRegion",
    -  indentLines: "indentLine",
    -  insertEmptyLineAbove: "insertEmptyLineBefore",
    -  insertEmptyLineBelow: "insertEmptyLineAfter",
    -  insertLineAfter: "editNewLineAfter",
    -  insertLineBefore: "editNewLineBefore",
    -  move: "moveToTarget",
    -  outdentLines: "outdentLine",
    -  paste: "pasteFromClipboard",
    -  reverse: "reverseTargets",
    -  setBreakpoint: "toggleLineBreakpoint",
    -  sort: "sortTargets",
    -  swap: "swapTargets",
    -  unfold: "unfoldRegion",
    -  use: "replaceWithTarget",
    -  wrap: "wrapWithPairedDelimiter"
    -};
    -function canonicalizeActionName(actionName) {
    -  const canonicalName = actionAliasToCanonicalName[actionName] ?? actionName;
    -  if (!actionNames.includes(canonicalName)) {
    -    throw new Error(`Unknown action name: ${canonicalName}`);
    -  }
    -  return canonicalName;
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
    -function upgradeV5ToV6(command) {
    -  return {
    -    version: 6,
    -    spokenForm: command.spokenForm,
    -    usePrePhraseSnapshot: command.usePrePhraseSnapshot,
    -    action: upgradeAction2(command.action, command.targets)
    -  };
    -}
    -function upgradeAction2(action, targets) {
    -  const name = canonicalizeActionName(action.name);
    -  switch (name) {
    -    case "replaceWithTarget":
    -    case "moveToTarget":
    -      return {
    -        name,
    -        source: upgradeTarget5(targets[0]),
    -        destination: targetToDestination(targets[1])
    -      };
    -    case "swapTargets":
    -      return {
    -        name,
    -        target1: upgradeTarget5(targets[0]),
    -        target2: upgradeTarget5(targets[1])
    -      };
    -    case "callAsFunction":
    -      return {
    -        name,
    -        callee: upgradeTarget5(targets[0]),
    -        argument: upgradeTarget5(targets[1])
    -      };
    -    case "pasteFromClipboard":
    -      return {
    -        name,
    -        destination: targetToDestination(targets[0])
    -      };
    -    case "wrapWithPairedDelimiter":
    -    case "rewrapWithPairedDelimiter":
    -      return {
    -        name,
    -        left: action.args[0],
    -        right: action.args[1],
    -        target: upgradeTarget5(targets[0])
    -      };
    -    case "generateSnippet":
    -      return {
    -        name,
    -        snippetName: action.args?.[0],
    -        target: upgradeTarget5(targets[0])
    -      };
    -    case "insertSnippet":
    -      return {
    -        name,
    -        snippetDescription: action.args[0],
    -        destination: targetToDestination(targets[0])
    -      };
    -    case "wrapWithSnippet":
    -      return {
    -        name,
    -        snippetDescription: action.args[0],
    -        target: upgradeTarget5(targets[0])
    -      };
    -    case "executeCommand":
    -      return {
    -        name,
    -        commandId: action.args[0],
    -        options: action.args?.[1],
    -        target: upgradeTarget5(targets[0])
    -      };
    -    case "replace":
    -      return {
    -        name,
    -        replaceWith: action.args[0],
    -        destination: targetToDestination(targets[0])
    -      };
    -    case "highlight": {
    -      const result = {
    -        name,
    -        target: upgradeTarget5(targets[0])
    -      };
    -      if (action.args?.[0] != null) {
    -        result.highlightId = action.args?.[0];
    -      }
    -      return result;
    -    }
    -    case "editNew":
    -      return {
    -        name,
    -        destination: targetToDestination(targets[0])
    -      };
    -    case "getText":
    -      return {
    -        name,
    -        options: action.args?.[0],
    -        target: upgradeTarget5(targets[0])
    -      };
    -    default:
    -      return {
    -        name,
    -        target: upgradeTarget5(targets[0])
    -      };
    -  }
    -}
    -function upgradeTarget5(target) {
    -  switch (target.type) {
    -    case "list":
    -    case "range":
    -    case "primitive":
    -      return upgradeNonImplicitTarget(target);
    -    case "implicit":
    -      return target;
    -  }
    -}
    -function upgradeNonImplicitTarget(target) {
    -  switch (target.type) {
    -    case "list":
    -      return upgradeListTarget(target);
    -    case "range":
    -    case "primitive":
    -      return upgradeRangeOrPrimitiveTarget(target);
    -  }
    -}
    -function upgradeListTarget(target) {
    -  return {
    -    ...target,
    -    elements: target.elements.map(upgradeRangeOrPrimitiveTarget)
    -  };
    -}
    -function upgradeRangeOrPrimitiveTarget(target) {
    -  switch (target.type) {
    -    case "range":
    -      return upgradeRangeTarget(target);
    -    case "primitive":
    -      return upgradePrimitiveTarget4(target);
    -  }
    -}
    -function upgradeRangeTarget(target) {
    -  const { anchor, active } = target;
    -  const result = {
    -    type: "range",
    -    anchor: anchor.type === "implicit" ? anchor : upgradePrimitiveTarget4(anchor),
    -    active: upgradePrimitiveTarget4(active),
    -    excludeAnchor: target.excludeAnchor,
    -    excludeActive: target.excludeActive
    -  };
    -  if (target.rangeType != null) {
    -    result.rangeType = target.rangeType;
    -  }
    -  return result;
    -}
    -function upgradePrimitiveTarget4(target) {
    -  const result = {
    -    type: "primitive"
    -  };
    -  const modifiers = upgradeModifiers(target.modifiers);
    -  if (modifiers != null) {
    -    result.modifiers = modifiers;
    -  }
    -  if (target.mark != null) {
    -    result.mark = target.mark;
    -  }
    -  return result;
    -}
    -function targetToDestination(target) {
    -  switch (target.type) {
    -    case "list":
    -      return listTargetToDestination(target);
    -    case "range":
    -      return rangeTargetToDestination(target);
    -    case "primitive":
    -      return primitiveTargetToDestination(target);
    -    case "implicit":
    -      return implicitTargetToDestination();
    -  }
    -}
    -function listTargetToDestination(target) {
    -  const destinations = [];
    -  let currentElements = [];
    -  let currentInsertionMode = void 0;
    -  const potentiallyAddDestination = () => {
    -    if (currentElements.length > 0) {
    -      destinations.push({
    -        type: "primitive",
    -        insertionMode: currentInsertionMode ?? "to",
    -        target: currentElements.length === 1 ? currentElements[0] : {
    -          type: "list",
    -          elements: currentElements
    -        }
    -      });
    -    }
    -  };
    -  target.elements.forEach((element) => {
    -    const insertionMode = getInsertionMode(element);
    -    if (insertionMode != null) {
    -      potentiallyAddDestination();
    -      currentElements = [upgradeRangeOrPrimitiveTarget(element)];
    -      currentInsertionMode = insertionMode;
    -    } else {
    -      currentElements.push(upgradeRangeOrPrimitiveTarget(element));
    -    }
    -  });
    -  potentiallyAddDestination();
    -  if (destinations.length > 1) {
    -    return {
    -      type: "list",
    -      destinations
    -    };
    -  }
    -  return destinations[0];
    -}
    -function rangeTargetToDestination(target) {
    -  return {
    -    type: "primitive",
    -    insertionMode: getInsertionMode(target.anchor) ?? "to",
    -    target: upgradeRangeTarget(target)
    -  };
    -}
    -function primitiveTargetToDestination(target) {
    -  return {
    -    type: "primitive",
    -    insertionMode: getInsertionMode(target) ?? "to",
    -    target: upgradePrimitiveTarget4(target)
    -  };
    -}
    -function implicitTargetToDestination() {
    -  return { type: "implicit" };
    -}
    -function getInsertionMode(target) {
    -  switch (target.type) {
    -    case "implicit":
    -      return "to";
    -    case "primitive":
    -      return getInsertionModeFromPrimitive(target);
    -    case "range":
    -      return getInsertionMode(target.anchor);
    -  }
    -}
    -function getInsertionModeFromPrimitive(target) {
    -  const positionModifier = target.modifiers?.find(
    -    (m) => m.type === "position"
    -  );
    -  if (positionModifier != null) {
    -    if (target.modifiers.indexOf(positionModifier) !== 0) {
    -      throw Error("Position modifier has to be at first index");
    -    }
    -    if (positionModifier?.position === "before" || positionModifier?.position === "after") {
    -      return positionModifier.position;
    -    }
    -  }
    -  return void 0;
    -}
    -function upgradeModifiers(modifiers) {
    -  const result = [];
    -  if (modifiers != null) {
    -    for (const modifier of modifiers) {
    -      if (modifier.type === "position") {
    -        if (modifier.position === "start") {
    -          result.push({ type: "startOf" });
    -        } else if (modifier.position === "end") {
    -          result.push({ type: "endOf" });
    -        }
    -      } else {
    -        result.push(modifier);
    -      }
    -    }
    -  }
    -  return result.length > 0 ? result : void 0;
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
    -function upgradeV6ToV7(command) {
    -  return { ...command, version: 7 };
    -}
    -
    -// ../cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
    -function canonicalizeAndValidateCommand(command) {
    -  const commandUpgraded = upgradeCommand(command);
    -  const { action, usePrePhraseSnapshot = false, spokenForm } = commandUpgraded;
    -  return {
    -    version: LATEST_VERSION,
    -    spokenForm,
    -    action: produce(action, (draft) => {
    -      const partialTargets = getPartialTargetDescriptors(draft);
    -      canonicalizeTargetsInPlace(partialTargets);
    -      validateCommand(action.name, partialTargets);
    -    }),
    -    usePrePhraseSnapshot
    -  };
    -}
    -function upgradeCommand(command) {
    -  if (command.version > LATEST_VERSION) {
    -    throw new OutdatedExtensionError();
    -  }
    -  while (command.version < LATEST_VERSION) {
    -    switch (command.version) {
    -      case 0:
    -        command = upgradeV0ToV1(command);
    -        break;
    -      case 1:
    -        command = upgradeV1ToV2(command);
    -        break;
    -      case 2:
    -        command = upgradeV2ToV3(command);
    -        break;
    -      case 3:
    -        command = upgradeV3ToV4(command);
    -        break;
    -      case 4:
    -        command = upgradeV4ToV5(command);
    -        break;
    -      case 5:
    -        command = upgradeV5ToV6(command);
    -        break;
    -      case 6:
    -        command = upgradeV6ToV7(command);
    -        break;
    -      default:
    -        throw new Error(
    -          `Can't upgrade from unknown version ${command.version}`
    -        );
    -    }
    -  }
    -  if (command.version !== LATEST_VERSION) {
    -    throw new Error("Command is not latest version");
    -  }
    -  return command;
    -}
    -function validateCommand(actionName, partialTargets) {
    -  if (usesScopeType("notebookCell", partialTargets) && !["editNewLineBefore", "editNewLineAfter"].includes(actionName)) {
    -    throw new Error(
    -      "The notebookCell scope type is currently only supported with the actions editNewLineAbove and editNewLineBelow"
    -    );
    -  }
    -}
    -function usesScopeType(scopeTypeType, partialTargets) {
    -  return getPartialPrimitiveTargets(partialTargets).some(
    -    (partialTarget) => partialTarget.modifiers?.find(
    -      (mod) => (mod.type === "containingScope" || mod.type === "everyScope") && mod.scopeType.type === scopeTypeType
    -    )
    -  );
    -}
    -
    -// ../cursorless-engine/src/processTargets/marks/CursorStage.ts
    -var CursorStage = class {
    -  constructor(mark) {
    -    this.mark = mark;
    -  }
    -  run() {
    -    return getActiveSelections(ide()).map(
    -      (selection) => new UntypedTarget({
    -        editor: selection.editor,
    -        isReversed: selection.selection.isReversed,
    -        contentRange: selection.selection,
    -        hasExplicitRange: !selection.selection.isEmpty,
    -        isToken: false
    -      })
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/DecoratedSymbolStage.ts
    -var DecoratedSymbolStage = class {
    -  constructor(readableHatMap, mark) {
    -    this.readableHatMap = readableHatMap;
    -    this.mark = mark;
    -  }
    -  run() {
    -    const token = this.readableHatMap.getToken(
    -      this.mark.symbolColor,
    -      this.mark.character
    -    );
    -    if (token == null) {
    -      throw new Error(
    -        `Couldn't find mark ${this.mark.symbolColor} '${this.mark.character}'`
    -      );
    -    }
    -    return [
    -      new UntypedTarget({
    -        editor: token.editor,
    -        contentRange: token.range,
    -        isReversed: false,
    -        hasExplicitRange: false
    -      })
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/ExplicitMarkStage.ts
    -var ExplicitMarkStage = class {
    -  constructor(mark) {
    -    this.mark = mark;
    -  }
    -  run() {
    -    const {
    -      editorId,
    -      range: { start, end }
    -    } = this.mark;
    -    const editor = ide().visibleTextEditors.find((e) => e.id === editorId);
    -    if (editor == null) {
    -      throw new Error(`Couldn't find editor '${editorId}'`);
    -    }
    -    const contentRange = new Range(
    -      start.line,
    -      start.character,
    -      end.line,
    -      end.character
    -    );
    -    return [
    -      new UntypedTarget({
    -        editor,
    -        contentRange,
    -        isReversed: false,
    -        hasExplicitRange: false
    -      })
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/LineNumberStage.ts
    -var LineNumberStage = class {
    -  constructor(mark) {
    -    this.mark = mark;
    -  }
    -  run() {
    -    const editor = ide().activeTextEditor;
    -    if (editor == null) {
    -      return [];
    -    }
    -    const lineNumber = getLineNumber2(
    -      editor,
    -      this.mark.lineNumberType,
    -      this.mark.lineNumber
    -    );
    -    const contentRange = editor.document.lineAt(lineNumber).range;
    -    return [createLineTarget(editor, false, contentRange)];
    -  }
    -};
    -var getLineNumber2 = (editor, lineNumberType, lineNumber) => {
    -  switch (lineNumberType) {
    -    case "absolute":
    -      return lineNumber;
    -    case "relative":
    -      return editor.selections[0].active.line + lineNumber;
    -    case "modulo100": {
    -      const stepSize = 100;
    -      const startLine = editor.visibleRanges[0].start.line;
    -      const endLine = editor.visibleRanges[editor.visibleRanges.length - 1].end.line;
    -      const base = Math.floor(startLine / stepSize) * stepSize;
    -      const visibleLines = [];
    -      const invisibleLines = [];
    -      let currentLineNumber = base + lineNumber;
    -      while (currentLineNumber <= endLine) {
    -        if (currentLineNumber >= startLine) {
    -          const visible = editor.visibleRanges.find(
    -            (r) => currentLineNumber >= r.start.line && currentLineNumber <= r.end.line
    -          );
    -          if (visible) {
    -            visibleLines.push(currentLineNumber);
    -          } else {
    -            invisibleLines.push(currentLineNumber);
    -          }
    -        }
    -        currentLineNumber += stepSize;
    -      }
    -      if (visibleLines.length === 1) {
    -        return visibleLines[0];
    -      }
    -      if (visibleLines.length + invisibleLines.length > 1) {
    -        throw new Error("Multiple lines matching");
    -      }
    -      if (invisibleLines.length === 1) {
    -        return invisibleLines[0];
    -      }
    -      throw new Error("Line is not in viewport");
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/NothingStage.ts
    -var NothingStage = class {
    -  constructor(mark) {
    -    this.mark = mark;
    -  }
    -  run() {
    -    return [];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/RangeMarkStage.ts
    -var RangeMarkStage = class {
    -  constructor(markStageFactory, mark) {
    -    this.markStageFactory = markStageFactory;
    -    this.mark = mark;
    -  }
    -  run() {
    -    const anchorStage = this.markStageFactory.create(this.mark.anchor);
    -    const activeStage = this.markStageFactory.create(this.mark.active);
    -    const anchorTargets = anchorStage.run();
    -    const activeTargets = activeStage.run();
    -    if (anchorTargets.length !== 1 || activeTargets.length !== 1) {
    -      throw new Error("Expected single anchor and active target");
    -    }
    -    return [
    -      targetsToContinuousTarget(
    -        anchorTargets[0],
    -        activeTargets[0],
    -        this.mark.excludeAnchor,
    -        this.mark.excludeActive
    -      )
    -    ];
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/StoredTargetStage.ts
    -var StoredTargetStage = class {
    -  constructor(storedTargets, key) {
    -    this.storedTargets = storedTargets;
    -    this.key = key;
    -  }
    -  run() {
    -    const targets = this.storedTargets.get(this.key);
    -    if (targets == null || targets.length === 0) {
    -      throw Error(`No available ${this.key} marks`);
    -    }
    -    return targets;
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/marks/TargetMarkStage.ts
    -var TargetMarkStage = class {
    -  constructor(targetPipelineRunner, mark) {
    -    this.targetPipelineRunner = targetPipelineRunner;
    -    this.mark = mark;
    -  }
    -  run() {
    -    return this.targetPipelineRunner.run(this.mark.target);
    -  }
    -};
    -
    -// ../cursorless-engine/src/processTargets/MarkStageFactoryImpl.ts
    -var MarkStageFactoryImpl = class {
    -  constructor(readableHatMap, storedTargets) {
    -    this.readableHatMap = readableHatMap;
    -    this.storedTargets = storedTargets;
    -    this.create = this.create.bind(this);
    -  }
    -  setPipelineRunner(targetPipelineRunner) {
    -    this.targetPipelineRunner = targetPipelineRunner;
    -  }
    -  create(mark) {
    -    switch (mark.type) {
    -      case "cursor":
    -        return new CursorStage(mark);
    -      case "that":
    -      case "source":
    -      case "keyboard":
    -        return new StoredTargetStage(this.storedTargets, mark.type);
    -      case "decoratedSymbol":
    -        return new DecoratedSymbolStage(this.readableHatMap, mark);
    -      case "lineNumber":
    -        return new LineNumberStage(mark);
    -      case "range":
    -        return new RangeMarkStage(this, mark);
    -      case "nothing":
    -        return new NothingStage(mark);
    -      case "target":
    -        return new TargetMarkStage(this.targetPipelineRunner, mark);
    -      case "explicit":
    -        return new ExplicitMarkStage(mark);
    -    }
    -  }
    -};
    -
    -// ../cursorless-engine/src/runCommand.ts
    -async function runCommand(treeSitter, commandServerApi, debug, hatTokenMap, snippets, storedTargets, languageDefinitions, rangeUpdater, commandRunnerDecorators, command) {
    -  if (debug.active) {
    -    debug.log(`command:`);
    -    debug.log(JSON.stringify(command, null, 2));
    -  }
    -  const commandComplete = canonicalizeAndValidateCommand(command);
    -  const readableHatMap = await hatTokenMap.getReadableMap(
    -    commandComplete.usePrePhraseSnapshot
    -  );
    -  let commandRunner = createCommandRunner(
    -    treeSitter,
    -    commandServerApi,
    -    languageDefinitions,
    -    debug,
    -    storedTargets,
    -    readableHatMap,
    -    snippets,
    -    rangeUpdater
    -  );
    -  for (const decorator of commandRunnerDecorators) {
    -    commandRunner = decorator.wrapCommandRunner(readableHatMap, commandRunner);
    -  }
    -  const response = await commandRunner.run(commandComplete);
    -  return await unwrapLegacyCommandResponse(command, response);
    -}
    -async function unwrapLegacyCommandResponse(command, response) {
    -  if (clientSupportsFallback(command)) {
    -    return response;
    -  }
    -  if ("returnValue" in response) {
    -    return response.returnValue;
    -  }
    -  return void 0;
    -}
    -function createCommandRunner(treeSitter, commandServerApi, languageDefinitions, debug, storedTargets, readableHatMap, snippets, rangeUpdater) {
    -  const modifierStageFactory = new ModifierStageFactoryImpl(
    -    languageDefinitions,
    -    storedTargets,
    -    new ScopeHandlerFactoryImpl(languageDefinitions)
    -  );
    -  const markStageFactory = new MarkStageFactoryImpl(
    -    readableHatMap,
    -    storedTargets
    -  );
    -  const targetPipelineRunner = new TargetPipelineRunner(
    -    modifierStageFactory,
    -    markStageFactory
    -  );
    -  markStageFactory.setPipelineRunner(targetPipelineRunner);
    -  return new CommandRunnerImpl(
    -    commandServerApi,
    -    debug,
    -    storedTargets,
    -    targetPipelineRunner,
    -    new Actions(treeSitter, snippets, rangeUpdater, modifierStageFactory)
    -  );
    -}
    -
    -// ../cursorless-engine/src/languages/LegacyLanguageId.ts
    -var legacyLanguageIds = [
    -  "c",
    -  "clojure",
    -  "cpp",
    -  "csharp",
    -  "css",
    -  "go",
    -  "html",
    -  "java",
    -  "javascript",
    -  "javascriptreact",
    -  "json",
    -  "jsonc",
    -  "latex",
    -  "markdown",
    -  "php",
    -  "python",
    -  "ruby",
    -  "rust",
    -  "scala",
    -  "scss",
    -  "typescript",
    -  "typescriptreact",
    -  "xml"
    -];
    -
    -// ../cursorless-engine/src/runIntegrationTests.ts
    -var import_assert = __toESM(require("assert"), 1);
    -async function runIntegrationTests(treeSitter, languageDefinitions) {
    -  await assertNoScopesBothLegacyAndNew(treeSitter, languageDefinitions);
    -}
    -async function assertNoScopesBothLegacyAndNew(treeSitter, languageDefinitions) {
    -  const errors2 = [];
    -  for (const languageId of legacyLanguageIds) {
    -    await treeSitter.loadLanguage(languageId);
    -    await languageDefinitions.loadLanguage(languageId);
    -    unsafeKeys(languageMatchers[languageId] ?? {}).map((scopeTypeType) => {
    -      if (languageDefinitions.get(languageId)?.getScopeHandler({
    -        type: scopeTypeType
    -      }) != null) {
    -        errors2.push(
    -          `Scope '${scopeTypeType}' defined as both legacy and new for language ${languageId}`
    -        );
    -      }
    -    });
    -  }
    -  import_assert.default.deepStrictEqual(errors2, []);
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts
    -var import_lodash52 = __toESM(require_lodash(), 1);
    -
    -// ../cursorless-engine/src/scopeProviders/scopeTypeToString.ts
    -function scopeTypeToString(scopeType) {
    -  if (isSimpleScopeType(scopeType)) {
    -    return camelCaseToAllDown(scopeType.type).replace(".", " ");
    -  }
    -  if (scopeType.type === "surroundingPair") {
    -    return `Matching pair of ${camelCaseToAllDown(scopeType.delimiter)}`;
    -  }
    -  if (scopeType.type === "customRegex") {
    -    return `Regex \`${scopeType.regex}\``;
    -  }
    -  return "Unknown scope type";
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts
    -var ScopeInfoProvider = class {
    -  constructor(customSpokenFormGenerator) {
    -    this.customSpokenFormGenerator = customSpokenFormGenerator;
    -    this.listeners = [];
    -    this.disposable = customSpokenFormGenerator.onDidChangeCustomSpokenForms(
    -      () => this.onChange()
    -    );
    -    this.onDidChangeScopeInfo = this.onDidChangeScopeInfo.bind(this);
    -    this.getScopeTypeInfo = this.getScopeTypeInfo.bind(this);
    -    this.updateScopeTypeInfos();
    -  }
    -  /**
    -   * Registers a callback to be run when the scope info changes.  The callback
    -   * will be run immediately once with the current scope info.
    -   *
    -   * Includes information about the available scopes, including their custom
    -   * spoken forms, if available. Note that even custom regex scopes will be
    -   * available, as reported to the engine by Talon.
    -   * @param callback The callback to run when the scope support changes
    -   * @returns A {@link Disposable} which will stop the callback from running
    -   */
    -  onDidChangeScopeInfo(callback2) {
    -    callback2(this.getScopeTypeInfos());
    -    this.listeners.push(callback2);
    -    return {
    -      dispose: () => {
    -        (0, import_lodash52.pull)(this.listeners, callback2);
    -      }
    -    };
    -  }
    -  async onChange() {
    -    this.updateScopeTypeInfos();
    -    this.listeners.forEach((listener) => listener(this.scopeInfos));
    -  }
    -  updateScopeTypeInfos() {
    -    const scopeTypes = [
    -      ...simpleScopeTypeTypes.filter((scopeTypeType) => scopeTypeType !== "instance").map((scopeTypeType) => ({
    -        type: scopeTypeType
    -      })),
    -      ...surroundingPairNames.map(
    -        (surroundingPairName) => ({
    -          type: "surroundingPair",
    -          delimiter: surroundingPairName
    -        })
    -      ),
    -      ...this.customSpokenFormGenerator.getCustomRegexScopeTypes()
    -    ];
    -    this.scopeInfos = scopeTypes.map(
    -      (scopeType) => this.getScopeTypeInfo(scopeType)
    -    );
    -  }
    -  getScopeTypeInfos() {
    -    return this.scopeInfos;
    -  }
    -  getScopeTypeInfo(scopeType) {
    -    return {
    -      scopeType,
    -      spokenForm: this.customSpokenFormGenerator.scopeTypeToSpokenForm(scopeType),
    -      humanReadableName: scopeTypeToString(scopeType),
    -      isLanguageSpecific: isLanguageSpecific(scopeType)
    -    };
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -function isLanguageSpecific(scopeType) {
    -  switch (scopeType.type) {
    -    case "string":
    -    case "argumentOrParameter":
    -    case "anonymousFunction":
    -    case "attribute":
    -    case "branch":
    -    case "class":
    -    case "className":
    -    case "collectionItem":
    -    case "collectionKey":
    -    case "command":
    -    case "comment":
    -    case "private.fieldAccess":
    -    case "functionCall":
    -    case "functionCallee":
    -    case "functionName":
    -    case "ifStatement":
    -    case "instance":
    -    case "list":
    -    case "map":
    -    case "name":
    -    case "namedFunction":
    -    case "regularExpression":
    -    case "statement":
    -    case "type":
    -    case "value":
    -    case "condition":
    -    case "section":
    -    case "sectionLevelOne":
    -    case "sectionLevelTwo":
    -    case "sectionLevelThree":
    -    case "sectionLevelFour":
    -    case "sectionLevelFive":
    -    case "sectionLevelSix":
    -    case "selector":
    -    case "private.switchStatementSubject":
    -    case "unit":
    -    case "xmlBothTags":
    -    case "xmlElement":
    -    case "xmlEndTag":
    -    case "xmlStartTag":
    -    case "part":
    -    case "chapter":
    -    case "subSection":
    -    case "subSubSection":
    -    case "namedParagraph":
    -    case "subParagraph":
    -    case "environment":
    -      return true;
    -    case "character":
    -    case "word":
    -    case "token":
    -    case "identifier":
    -    case "line":
    -    case "sentence":
    -    case "paragraph":
    -    case "document":
    -    case "nonWhitespaceSequence":
    -    case "boundedNonWhitespaceSequence":
    -    case "url":
    -    case "notebookCell":
    -    case "surroundingPair":
    -    case "customRegex":
    -    case "glyph":
    -      return false;
    -    case "oneOf":
    -      throw Error(
    -        `Can't decide whether scope type ${JSON.stringify(
    -          scopeType,
    -          void 0,
    -          3
    -        )} is language-specific`
    -      );
    -  }
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/getIterationRange.ts
    -var import_lodash53 = __toESM(require_lodash(), 1);
    -function getIterationRange(editor, scopeHandler, visibleOnly) {
    -  if (!visibleOnly) {
    -    return editor.document.range;
    -  }
    -  let visibleRange = editor.visibleRanges.reduce(
    -    (acc, range4) => acc.union(range4)
    -  );
    -  visibleRange = editor.document.range.intersection(
    -    visibleRange.with(
    -      visibleRange.start.translate(-10),
    -      visibleRange.end.translate(10)
    -    )
    -  );
    -  const expandedStart = (0, import_lodash53.last)(
    -    Array.from(
    -      scopeHandler.generateScopes(editor, visibleRange.start, "forward", {
    -        containment: "required"
    -      })
    -    )
    -  )?.domain ?? visibleRange;
    -  const expandedEnd = (0, import_lodash53.last)(
    -    Array.from(
    -      scopeHandler.generateScopes(editor, visibleRange.end, "forward", {
    -        containment: "required"
    -      })
    -    )
    -  )?.domain ?? visibleRange;
    -  return expandedStart.union(expandedEnd);
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/getTargetRanges.ts
    -function getTargetRanges(target) {
    -  const interior = (() => {
    -    try {
    -      return target.getInteriorStrict().map(getTargetRanges);
    -    } catch (error) {
    -      if (error instanceof NoContainingScopeError) {
    -        return void 0;
    -      }
    -      throw error;
    -    }
    -  })();
    -  const boundary = (() => {
    -    try {
    -      return target.getBoundaryStrict().map(getTargetRanges);
    -    } catch (error) {
    -      if (error instanceof NoContainingScopeError) {
    -        return void 0;
    -      }
    -      throw error;
    -    }
    -  })();
    -  return {
    -    contentRange: target.contentRange,
    -    removalRange: target.getRemovalRange(),
    -    removalHighlightRange: target.isLine ? toLineRange(target.getRemovalHighlightRange()) : toCharacterRange(target.getRemovalHighlightRange()),
    -    leadingDelimiter: getOptionalTarget(target.getLeadingDelimiterTarget()),
    -    trailingDelimiter: getOptionalTarget(target.getTrailingDelimiterTarget()),
    -    interior,
    -    boundary,
    -    insertionDelimiter: target.insertionDelimiter
    -  };
    -}
    -function getOptionalTarget(target) {
    -  return target != null ? getTargetRanges(target) : void 0;
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/getIterationScopeRanges.ts
    -function getIterationScopeRanges(editor, iterationScopeHandler, everyStage, iterationRange, includeIterationNestedTargets) {
    -  return map2(
    -    iterationScopeHandler.generateScopes(
    -      editor,
    -      iterationRange.start,
    -      "forward",
    -      {
    -        includeDescendantScopes: true,
    -        distalPosition: iterationRange.end
    -      }
    -    ),
    -    (scope) => {
    -      return {
    -        domain: scope.domain,
    -        ranges: scope.getTargets(false).map((target) => ({
    -          range: target.contentRange,
    -          targets: includeIterationNestedTargets ? getEveryScopeLenient(everyStage, target).map(getTargetRanges) : void 0
    -        }))
    -      };
    -    }
    -  );
    -}
    -function getEveryScopeLenient(everyStage, target) {
    -  try {
    -    return everyStage.run(target);
    -  } catch (err) {
    -    if (err.name === "NoContainingScopeError") {
    -      return [];
    -    }
    -    throw err;
    -  }
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/getScopeRanges.ts
    -function getScopeRanges(editor, scopeHandler, iterationRange) {
    -  return map2(
    -    scopeHandler.generateScopes(editor, iterationRange.start, "forward", {
    -      includeDescendantScopes: true,
    -      distalPosition: iterationRange.end
    -    }),
    -    (scope) => ({
    -      domain: scope.domain,
    -      targets: scope.getTargets(false).map(getTargetRanges)
    -    })
    -  );
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeRangeProvider.ts
    -var ScopeRangeProvider = class {
    -  constructor(scopeHandlerFactory, modifierStageFactory) {
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.modifierStageFactory = modifierStageFactory;
    -    this.provideScopeRanges = this.provideScopeRanges.bind(this);
    -    this.provideIterationScopeRanges = this.provideIterationScopeRanges.bind(this);
    -  }
    -  provideScopeRanges(editor, { scopeType, visibleOnly }) {
    -    const scopeHandler = this.scopeHandlerFactory.create(
    -      scopeType,
    -      editor.document.languageId
    -    );
    -    if (scopeHandler == null) {
    -      return [];
    -    }
    -    return getScopeRanges(
    -      editor,
    -      scopeHandler,
    -      getIterationRange(editor, scopeHandler, visibleOnly)
    -    );
    -  }
    -  provideIterationScopeRanges(editor, { scopeType, visibleOnly, includeNestedTargets }) {
    -    const { languageId } = editor.document;
    -    const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId);
    -    if (scopeHandler == null) {
    -      return [];
    -    }
    -    const iterationScopeHandler = this.scopeHandlerFactory.create(
    -      scopeHandler.iterationScopeType,
    -      languageId
    -    );
    -    if (iterationScopeHandler == null) {
    -      return [];
    -    }
    -    return getIterationScopeRanges(
    -      editor,
    -      iterationScopeHandler,
    -      this.modifierStageFactory.create({
    -        type: "everyScope",
    -        scopeType
    -      }),
    -      getIterationRange(editor, scopeHandler, visibleOnly),
    -      includeNestedTargets
    -    );
    -  }
    -};
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeRangeWatcher.ts
    -var import_lodash54 = __toESM(require_lodash(), 1);
    -var ScopeRangeWatcher = class {
    -  constructor(languageDefinitions, scopeRangeProvider) {
    -    this.scopeRangeProvider = scopeRangeProvider;
    -    this.disposables = [];
    -    this.debouncer = new Debouncer(() => this.onChange());
    -    this.listeners = [];
    -    this.onChange = this.onChange.bind(this);
    -    this.onDidChangeScopeRanges = this.onDidChangeScopeRanges.bind(this);
    -    this.onDidChangeIterationScopeRanges = this.onDidChangeIterationScopeRanges.bind(this);
    -    this.disposables.push(
    -      // An Event which fires when the array of visible editors has changed.
    -      ide().onDidChangeVisibleTextEditors(this.debouncer.run),
    -      // An event that fires when a text document opens
    -      ide().onDidOpenTextDocument(this.debouncer.run),
    -      // An Event that fires when a text document closes
    -      ide().onDidCloseTextDocument(this.debouncer.run),
    -      // An event that is emitted when a text document is changed. This usually
    -      // happens when the contents changes but also when other things like the
    -      // dirty-state changes.
    -      ide().onDidChangeTextDocument(this.debouncer.run),
    -      ide().onDidChangeTextEditorVisibleRanges(this.debouncer.run),
    -      languageDefinitions.onDidChangeDefinition(this.onChange),
    -      this.debouncer
    -    );
    -  }
    -  /**
    -   * Registers a callback to be run when the scope ranges change for any visible
    -   * editor.  The callback will be run immediately once for each visible editor
    -   * with the current scope ranges.
    -   * @param callback The callback to run when the scope ranges change
    -   * @param config The configuration for the scope ranges
    -   * @returns A {@link Disposable} which will stop the callback from running
    -   */
    -  onDidChangeScopeRanges(callback2, config) {
    -    const fn = () => {
    -      ide().visibleTextEditors.forEach((editor) => {
    -        let scopeRanges;
    -        try {
    -          scopeRanges = this.scopeRangeProvider.provideScopeRanges(
    -            editor,
    -            config
    -          );
    -        } catch (err) {
    -          showError(
    -            ide().messages,
    -            "ScopeRangeWatcher.provide",
    -            err.message
    -          );
    -          scopeRanges = [];
    -          if (ide().runMode === "test") {
    -            throw err;
    -          }
    -        }
    -        callback2(editor, scopeRanges);
    -      });
    -    };
    -    this.listeners.push(fn);
    -    fn();
    -    return {
    -      dispose: () => {
    -        (0, import_lodash54.pull)(this.listeners, fn);
    -      }
    -    };
    -  }
    -  /**
    -   * Registers a callback to be run when the iteration scope ranges change for
    -   * any visible editor.  The callback will be run immediately once for each
    -   * visible editor with the current iteration scope ranges.
    -   * @param callback The callback to run when the scope ranges change
    -   * @param config The configuration for the scope ranges
    -   * @returns A {@link Disposable} which will stop the callback from running
    -   */
    -  onDidChangeIterationScopeRanges(callback2, config) {
    -    const fn = () => {
    -      ide().visibleTextEditors.forEach((editor) => {
    -        callback2(
    -          editor,
    -          this.scopeRangeProvider.provideIterationScopeRanges(editor, config)
    -        );
    -      });
    -    };
    -    this.listeners.push(fn);
    -    fn();
    -    return {
    -      dispose: () => {
    -        (0, import_lodash54.pull)(this.listeners, fn);
    -      }
    -    };
    -  }
    -  onChange() {
    -    this.listeners.forEach((listener) => listener());
    -  }
    -  dispose() {
    -    this.disposables.forEach(({ dispose }) => {
    -      try {
    -        dispose();
    -      } catch (e) {
    -      }
    -    });
    -  }
    -};
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeSupportChecker.ts
    -var ScopeSupportChecker = class {
    -  constructor(scopeHandlerFactory) {
    -    this.scopeHandlerFactory = scopeHandlerFactory;
    -    this.getScopeSupport = this.getScopeSupport.bind(this);
    -    this.getIterationScopeSupport = this.getIterationScopeSupport.bind(this);
    -  }
    -  /**
    -   * Determine the level of support for {@link scopeType} in {@link editor}, as
    -   * determined by its language id.
    -   * @param editor The editor to check
    -   * @param scopeType The scope type to check
    -   * @returns The level of support for {@link scopeType} in {@link editor}
    -   */
    -  getScopeSupport(editor, scopeType) {
    -    const { languageId } = editor.document;
    -    const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId);
    -    if (scopeHandler == null) {
    -      return getLegacyScopeSupport(languageId, scopeType);
    -    }
    -    return editorContainsScope(editor, scopeHandler) ? 0 /* supportedAndPresentInEditor */ : 1 /* supportedButNotPresentInEditor */;
    -  }
    -  /**
    -   * Determine the level of support for the iteration scope of {@link scopeType}
    -   * in {@link editor}, as determined by its language id.
    -   * @param editor The editor to check
    -   * @param scopeType The scope type to check
    -   * @returns The level of support for the iteration scope of {@link scopeType}
    -   * in {@link editor}
    -   */
    -  getIterationScopeSupport(editor, scopeType) {
    -    const { languageId } = editor.document;
    -    const scopeHandler = this.scopeHandlerFactory.create(scopeType, languageId);
    -    if (scopeHandler == null) {
    -      return getLegacyScopeSupport(languageId, scopeType);
    -    }
    -    const iterationScopeHandler = this.scopeHandlerFactory.create(
    -      scopeHandler.iterationScopeType,
    -      languageId
    -    );
    -    if (iterationScopeHandler == null) {
    -      return 3 /* unsupported */;
    -    }
    -    return editorContainsScope(editor, iterationScopeHandler) ? 0 /* supportedAndPresentInEditor */ : 1 /* supportedButNotPresentInEditor */;
    -  }
    -};
    -function editorContainsScope(editor, scopeHandler) {
    -  return !isEmptyIterable(
    -    scopeHandler.generateScopes(editor, new Position(0, 0), "forward")
    -  );
    -}
    -function getLegacyScopeSupport(languageId, scopeType) {
    -  switch (scopeType.type) {
    -    case "boundedNonWhitespaceSequence":
    -    case "surroundingPair":
    -      return 2 /* supportedLegacy */;
    -    case "notebookCell":
    -      return 3 /* unsupported */;
    -    default:
    -      if (languageMatchers[languageId]?.[scopeType.type] != null) {
    -        return 2 /* supportedLegacy */;
    -      }
    -      return 3 /* unsupported */;
    -  }
    -}
    -
    -// ../cursorless-engine/src/scopeProviders/ScopeSupportWatcher.ts
    -var import_lodash55 = __toESM(require_lodash(), 1);
    -var ScopeSupportWatcher = class {
    -  constructor(languageDefinitions, scopeSupportChecker, scopeInfoProvider) {
    -    this.scopeSupportChecker = scopeSupportChecker;
    -    this.scopeInfoProvider = scopeInfoProvider;
    -    this.debouncer = new Debouncer(() => this.onChange());
    -    this.listeners = [];
    -    this.onChange = this.onChange.bind(this);
    -    this.onDidChangeScopeSupport = this.onDidChangeScopeSupport.bind(this);
    -    this.disposable = disposableFrom(
    -      // An event that fires when a text document opens
    -      ide().onDidOpenTextDocument(this.debouncer.run),
    -      // An Event that fires when a text document closes
    -      ide().onDidCloseTextDocument(this.debouncer.run),
    -      // An Event which fires when the active editor has changed. Note that the event also fires when the active editor changes to undefined.
    -      ide().onDidChangeActiveTextEditor(this.debouncer.run),
    -      // An event that is emitted when a text document is changed. This usually
    -      // happens when the contents changes but also when other things like the
    -      // dirty-state changes.
    -      ide().onDidChangeTextDocument(this.debouncer.run),
    -      languageDefinitions.onDidChangeDefinition(this.debouncer.run),
    -      this.scopeInfoProvider.onDidChangeScopeInfo(this.onChange),
    -      this.debouncer
    -    );
    -  }
    -  /**
    -   * Registers a callback to be run when the scope support changes for the active
    -   * editor.  The callback will be run immediately once with the current support
    -   * levels for the active editor.
    -   *
    -   * Note that this watcher could be expensive, because it runs all the scope
    -   * handlers for the active editor every time the content of the active editor
    -   * changes. If you only need info about the available scopes, including their
    -   * spoken forms, you should use {@link onDidChangeScopeInfo} instead.
    -   * @param callback The callback to run when the scope support changes
    -   * @returns A {@link Disposable} which will stop the callback from running
    -   */
    -  onDidChangeScopeSupport(callback2) {
    -    callback2(this.getSupportLevels());
    -    this.listeners.push(callback2);
    -    return {
    -      dispose: () => {
    -        (0, import_lodash55.pull)(this.listeners, callback2);
    -      }
    -    };
    -  }
    -  onChange() {
    -    if (this.listeners.length === 0) {
    -      return;
    -    }
    -    const supportLevels = this.getSupportLevels();
    -    this.listeners.forEach((listener) => listener(supportLevels));
    -  }
    -  getSupportLevels() {
    -    const activeTextEditor = ide().activeTextEditor;
    -    const getScopeTypeSupport = activeTextEditor == null ? () => 3 /* unsupported */ : (scopeType) => this.scopeSupportChecker.getScopeSupport(
    -      activeTextEditor,
    -      scopeType
    -    );
    -    const getIterationScopeTypeSupport = activeTextEditor == null ? () => 3 /* unsupported */ : (scopeType) => this.scopeSupportChecker.getIterationScopeSupport(
    -      activeTextEditor,
    -      scopeType
    -    );
    -    const scopeTypeInfos = this.scopeInfoProvider.getScopeTypeInfos();
    -    return scopeTypeInfos.map((scopeTypeInfo) => ({
    -      ...scopeTypeInfo,
    -      support: getScopeTypeSupport(scopeTypeInfo.scopeType),
    -      iterationScopeSupport: getIterationScopeTypeSupport(
    -        scopeTypeInfo.scopeType
    -      )
    -    }));
    -  }
    -  dispose() {
    -    this.disposable.dispose();
    -  }
    -};
    -
    -// ../cursorless-engine/src/cursorlessEngine.ts
    -async function createCursorlessEngine(treeSitter, ide2, hats, commandServerApi, fileSystem) {
    -  injectIde(ide2);
    -  const debug = new Debug(treeSitter);
    -  const rangeUpdater = new RangeUpdater();
    -  const snippets = new Snippets();
    -  snippets.init();
    -  const hatTokenMap = new HatTokenMapImpl(
    -    rangeUpdater,
    -    debug,
    -    hats,
    -    commandServerApi
    -  );
    -  hatTokenMap.allocateHats();
    -  const storedTargets = new StoredTargetMap();
    -  const languageDefinitions = new LanguageDefinitions(fileSystem, treeSitter);
    -  await languageDefinitions.init();
    -  const talonSpokenForms = new TalonSpokenFormsJsonReader(fileSystem);
    -  const customSpokenFormGenerator = new CustomSpokenFormGeneratorImpl(
    -    talonSpokenForms
    -  );
    -  ide2.disposeOnExit(rangeUpdater, languageDefinitions, hatTokenMap, debug);
    -  const commandRunnerDecorators = [];
    -  return {
    -    commandApi: {
    -      runCommand(command) {
    -        return runCommand(
    -          treeSitter,
    -          commandServerApi,
    -          debug,
    -          hatTokenMap,
    -          snippets,
    -          storedTargets,
    -          languageDefinitions,
    -          rangeUpdater,
    -          commandRunnerDecorators,
    -          command
    -        );
    -      },
    -      async runCommandSafe(...args) {
    -        return runCommand(
    -          treeSitter,
    -          commandServerApi,
    -          debug,
    -          hatTokenMap,
    -          snippets,
    -          storedTargets,
    -          languageDefinitions,
    -          rangeUpdater,
    -          commandRunnerDecorators,
    -          ensureCommandShape(args)
    -        );
    -      }
    -    },
    -    scopeProvider: createScopeProvider(
    -      languageDefinitions,
    -      storedTargets,
    -      customSpokenFormGenerator
    -    ),
    -    customSpokenFormGenerator,
    -    storedTargets,
    -    hatTokenMap,
    -    snippets,
    -    injectIde,
    -    runIntegrationTests: () => runIntegrationTests(treeSitter, languageDefinitions),
    -    addCommandRunnerDecorator: (decorator) => {
    -      commandRunnerDecorators.push(decorator);
    -    }
    -  };
    -}
    -function createScopeProvider(languageDefinitions, storedTargets, customSpokenFormGenerator) {
    -  const scopeHandlerFactory = new ScopeHandlerFactoryImpl(languageDefinitions);
    -  const rangeProvider = new ScopeRangeProvider(
    -    scopeHandlerFactory,
    -    new ModifierStageFactoryImpl(
    -      languageDefinitions,
    -      storedTargets,
    -      scopeHandlerFactory
    -    )
    -  );
    -  const rangeWatcher = new ScopeRangeWatcher(
    -    languageDefinitions,
    -    rangeProvider
    -  );
    -  const supportChecker = new ScopeSupportChecker(scopeHandlerFactory);
    -  const infoProvider = new ScopeInfoProvider(customSpokenFormGenerator);
    -  const supportWatcher = new ScopeSupportWatcher(
    -    languageDefinitions,
    -    supportChecker,
    -    infoProvider
    -  );
    -  return {
    -    provideScopeRanges: rangeProvider.provideScopeRanges,
    -    provideIterationScopeRanges: rangeProvider.provideIterationScopeRanges,
    -    onDidChangeScopeRanges: rangeWatcher.onDidChangeScopeRanges,
    -    onDidChangeIterationScopeRanges: rangeWatcher.onDidChangeIterationScopeRanges,
    -    getScopeSupport: supportChecker.getScopeSupport,
    -    getIterationScopeSupport: supportChecker.getIterationScopeSupport,
    -    onDidChangeScopeSupport: supportWatcher.onDidChangeScopeSupport,
    -    getScopeInfo: infoProvider.getScopeTypeInfo,
    -    onDidChangeScopeInfo: infoProvider.onDidChangeScopeInfo
    -  };
    -}
    -
    -// ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/wrapper.mjs
    -var import_dist = __toESM(require_dist(), 1);
    -var v1 = import_dist.default.v1;
    -var v3 = import_dist.default.v3;
    -var v4 = import_dist.default.v4;
    -var v5 = import_dist.default.v5;
    -var NIL = import_dist.default.NIL;
    -var version = import_dist.default.version;
    -var validate = import_dist.default.validate;
    -var stringify = import_dist.default.stringify;
    -var parse = import_dist.default.parse;
    -
    -// ../cursorless-engine/src/CommandHistoryAnalyzer.ts
    -var import_lodash56 = __toESM(require_lodash(), 1);
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js
    -var import_brace_expansion = __toESM(require_brace_expansion(), 1);
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/assert-valid-pattern.js
    -var MAX_PATTERN_LENGTH = 1024 * 64;
    -var assertValidPattern = (pattern) => {
    -  if (typeof pattern !== "string") {
    -    throw new TypeError("invalid pattern");
    -  }
    -  if (pattern.length > MAX_PATTERN_LENGTH) {
    -    throw new TypeError("pattern is too long");
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/brace-expressions.js
    -var posixClasses = {
    -  "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true],
    -  "[:alpha:]": ["\\p{L}\\p{Nl}", true],
    -  "[:ascii:]": ["\\x00-\\x7f", false],
    -  "[:blank:]": ["\\p{Zs}\\t", true],
    -  "[:cntrl:]": ["\\p{Cc}", true],
    -  "[:digit:]": ["\\p{Nd}", true],
    -  "[:graph:]": ["\\p{Z}\\p{C}", true, true],
    -  "[:lower:]": ["\\p{Ll}", true],
    -  "[:print:]": ["\\p{C}", true],
    -  "[:punct:]": ["\\p{P}", true],
    -  "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true],
    -  "[:upper:]": ["\\p{Lu}", true],
    -  "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true],
    -  "[:xdigit:]": ["A-Fa-f0-9", false]
    -};
    -var braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&");
    -var regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    -var rangesToString = (ranges) => ranges.join("");
    -var parseClass = (glob2, position) => {
    -  const pos = position;
    -  if (glob2.charAt(pos) !== "[") {
    -    throw new Error("not in a brace expression");
    -  }
    -  const ranges = [];
    -  const negs = [];
    -  let i = pos + 1;
    -  let sawStart = false;
    -  let uflag = false;
    -  let escaping = false;
    -  let negate = false;
    -  let endPos = pos;
    -  let rangeStart = "";
    -  WHILE:
    -    while (i < glob2.length) {
    -      const c = glob2.charAt(i);
    -      if ((c === "!" || c === "^") && i === pos + 1) {
    -        negate = true;
    -        i++;
    -        continue;
    -      }
    -      if (c === "]" && sawStart && !escaping) {
    -        endPos = i + 1;
    -        break;
    -      }
    -      sawStart = true;
    -      if (c === "\\") {
    -        if (!escaping) {
    -          escaping = true;
    -          i++;
    -          continue;
    -        }
    -      }
    -      if (c === "[" && !escaping) {
    -        for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {
    -          if (glob2.startsWith(cls, i)) {
    -            if (rangeStart) {
    -              return ["$.", false, glob2.length - pos, true];
    -            }
    -            i += cls.length;
    -            if (neg)
    -              negs.push(unip);
    -            else
    -              ranges.push(unip);
    -            uflag = uflag || u;
    -            continue WHILE;
    -          }
    -        }
    -      }
    -      escaping = false;
    -      if (rangeStart) {
    -        if (c > rangeStart) {
    -          ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c));
    -        } else if (c === rangeStart) {
    -          ranges.push(braceEscape(c));
    -        }
    -        rangeStart = "";
    -        i++;
    -        continue;
    -      }
    -      if (glob2.startsWith("-]", i + 1)) {
    -        ranges.push(braceEscape(c + "-"));
    -        i += 2;
    -        continue;
    -      }
    -      if (glob2.startsWith("-", i + 1)) {
    -        rangeStart = c;
    -        i += 2;
    -        continue;
    -      }
    -      ranges.push(braceEscape(c));
    -      i++;
    -    }
    -  if (endPos < i) {
    -    return ["", false, 0, false];
    -  }
    -  if (!ranges.length && !negs.length) {
    -    return ["$.", false, glob2.length - pos, true];
    -  }
    -  if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) {
    -    const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];
    -    return [regexpEscape(r), false, endPos - pos, false];
    -  }
    -  const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]";
    -  const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]";
    -  const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs;
    -  return [comb, uflag, endPos - pos, true];
    -};
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/unescape.js
    -var unescape2 = (s, { windowsPathsNoEscape = false } = {}) => {
    -  return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
    -};
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/ast.js
    -var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
    -var isExtglobType = (c) => types.has(c);
    -var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
    -var startNoDot = "(?!\\.)";
    -var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
    -var justDots = /* @__PURE__ */ new Set(["..", "."]);
    -var reSpecials = new Set("().*{}+?[]^$\\!");
    -var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    -var qmark = "[^/]";
    -var star = qmark + "*?";
    -var starNoEmpty = qmark + "+?";
    -var AST = class _AST {
    -  type;
    -  #root;
    -  #hasMagic;
    -  #uflag = false;
    -  #parts = [];
    -  #parent;
    -  #parentIndex;
    -  #negs;
    -  #filledNegs = false;
    -  #options;
    -  #toString;
    -  // set to true if it's an extglob with no children
    -  // (which really means one child of '')
    -  #emptyExt = false;
    -  constructor(type2, parent, options2 = {}) {
    -    this.type = type2;
    -    if (type2)
    -      this.#hasMagic = true;
    -    this.#parent = parent;
    -    this.#root = this.#parent ? this.#parent.#root : this;
    -    this.#options = this.#root === this ? options2 : this.#root.#options;
    -    this.#negs = this.#root === this ? [] : this.#root.#negs;
    -    if (type2 === "!" && !this.#root.#filledNegs)
    -      this.#negs.push(this);
    -    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;
    -  }
    -  get hasMagic() {
    -    if (this.#hasMagic !== void 0)
    -      return this.#hasMagic;
    -    for (const p of this.#parts) {
    -      if (typeof p === "string")
    -        continue;
    -      if (p.type || p.hasMagic)
    -        return this.#hasMagic = true;
    -    }
    -    return this.#hasMagic;
    -  }
    -  // reconstructs the pattern
    -  toString() {
    -    if (this.#toString !== void 0)
    -      return this.#toString;
    -    if (!this.type) {
    -      return this.#toString = this.#parts.map((p) => String(p)).join("");
    -    } else {
    -      return this.#toString = this.type + "(" + this.#parts.map((p) => String(p)).join("|") + ")";
    -    }
    -  }
    -  #fillNegs() {
    -    if (this !== this.#root)
    -      throw new Error("should only call on root");
    -    if (this.#filledNegs)
    -      return this;
    -    this.toString();
    -    this.#filledNegs = true;
    -    let n;
    -    while (n = this.#negs.pop()) {
    -      if (n.type !== "!")
    -        continue;
    -      let p = n;
    -      let pp = p.#parent;
    -      while (pp) {
    -        for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {
    -          for (const part of n.#parts) {
    -            if (typeof part === "string") {
    -              throw new Error("string part in extglob AST??");
    -            }
    -            part.copyIn(pp.#parts[i]);
    -          }
    -        }
    -        p = pp;
    -        pp = p.#parent;
    -      }
    -    }
    -    return this;
    -  }
    -  push(...parts) {
    -    for (const p of parts) {
    -      if (p === "")
    -        continue;
    -      if (typeof p !== "string" && !(p instanceof _AST && p.#parent === this)) {
    -        throw new Error("invalid part: " + p);
    -      }
    -      this.#parts.push(p);
    -    }
    -  }
    -  toJSON() {
    -    const ret = this.type === null ? this.#parts.slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...this.#parts.map((p) => p.toJSON())];
    -    if (this.isStart() && !this.type)
    -      ret.unshift([]);
    -    if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) {
    -      ret.push({});
    -    }
    -    return ret;
    -  }
    -  isStart() {
    -    if (this.#root === this)
    -      return true;
    -    if (!this.#parent?.isStart())
    -      return false;
    -    if (this.#parentIndex === 0)
    -      return true;
    -    const p = this.#parent;
    -    for (let i = 0; i < this.#parentIndex; i++) {
    -      const pp = p.#parts[i];
    -      if (!(pp instanceof _AST && pp.type === "!")) {
    -        return false;
    -      }
    -    }
    -    return true;
    -  }
    -  isEnd() {
    -    if (this.#root === this)
    -      return true;
    -    if (this.#parent?.type === "!")
    -      return true;
    -    if (!this.#parent?.isEnd())
    -      return false;
    -    if (!this.type)
    -      return this.#parent?.isEnd();
    -    const pl = this.#parent ? this.#parent.#parts.length : 0;
    -    return this.#parentIndex === pl - 1;
    -  }
    -  copyIn(part) {
    -    if (typeof part === "string")
    -      this.push(part);
    -    else
    -      this.push(part.clone(this));
    -  }
    -  clone(parent) {
    -    const c = new _AST(this.type, parent);
    -    for (const p of this.#parts) {
    -      c.copyIn(p);
    -    }
    -    return c;
    -  }
    -  static #parseAST(str2, ast, pos, opt) {
    -    let escaping = false;
    -    let inBrace = false;
    -    let braceStart = -1;
    -    let braceNeg = false;
    -    if (ast.type === null) {
    -      let i2 = pos;
    -      let acc2 = "";
    -      while (i2 < str2.length) {
    -        const c = str2.charAt(i2++);
    -        if (escaping || c === "\\") {
    -          escaping = !escaping;
    -          acc2 += c;
    -          continue;
    -        }
    -        if (inBrace) {
    -          if (i2 === braceStart + 1) {
    -            if (c === "^" || c === "!") {
    -              braceNeg = true;
    -            }
    -          } else if (c === "]" && !(i2 === braceStart + 2 && braceNeg)) {
    -            inBrace = false;
    -          }
    -          acc2 += c;
    -          continue;
    -        } else if (c === "[") {
    -          inBrace = true;
    -          braceStart = i2;
    -          braceNeg = false;
    -          acc2 += c;
    -          continue;
    -        }
    -        if (!opt.noext && isExtglobType(c) && str2.charAt(i2) === "(") {
    -          ast.push(acc2);
    -          acc2 = "";
    -          const ext2 = new _AST(c, ast);
    -          i2 = _AST.#parseAST(str2, ext2, i2, opt);
    -          ast.push(ext2);
    -          continue;
    -        }
    -        acc2 += c;
    -      }
    -      ast.push(acc2);
    -      return i2;
    -    }
    -    let i = pos + 1;
    -    let part = new _AST(null, ast);
    -    const parts = [];
    -    let acc = "";
    -    while (i < str2.length) {
    -      const c = str2.charAt(i++);
    -      if (escaping || c === "\\") {
    -        escaping = !escaping;
    -        acc += c;
    -        continue;
    -      }
    -      if (inBrace) {
    -        if (i === braceStart + 1) {
    -          if (c === "^" || c === "!") {
    -            braceNeg = true;
    -          }
    -        } else if (c === "]" && !(i === braceStart + 2 && braceNeg)) {
    -          inBrace = false;
    -        }
    -        acc += c;
    -        continue;
    -      } else if (c === "[") {
    -        inBrace = true;
    -        braceStart = i;
    -        braceNeg = false;
    -        acc += c;
    -        continue;
    -      }
    -      if (isExtglobType(c) && str2.charAt(i) === "(") {
    -        part.push(acc);
    -        acc = "";
    -        const ext2 = new _AST(c, part);
    -        part.push(ext2);
    -        i = _AST.#parseAST(str2, ext2, i, opt);
    -        continue;
    -      }
    -      if (c === "|") {
    -        part.push(acc);
    -        acc = "";
    -        parts.push(part);
    -        part = new _AST(null, ast);
    -        continue;
    -      }
    -      if (c === ")") {
    -        if (acc === "" && ast.#parts.length === 0) {
    -          ast.#emptyExt = true;
    -        }
    -        part.push(acc);
    -        acc = "";
    -        ast.push(...parts, part);
    -        return i;
    -      }
    -      acc += c;
    -    }
    -    ast.type = null;
    -    ast.#hasMagic = void 0;
    -    ast.#parts = [str2.substring(pos - 1)];
    -    return i;
    -  }
    -  static fromGlob(pattern, options2 = {}) {
    -    const ast = new _AST(null, void 0, options2);
    -    _AST.#parseAST(pattern, ast, 0, options2);
    -    return ast;
    -  }
    -  // returns the regular expression if there's magic, or the unescaped
    -  // string if not.
    -  toMMPattern() {
    -    if (this !== this.#root)
    -      return this.#root.toMMPattern();
    -    const glob2 = this.toString();
    -    const [re, body, hasMagic2, uflag] = this.toRegExpSource();
    -    const anyMagic = hasMagic2 || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob2.toUpperCase() !== glob2.toLowerCase();
    -    if (!anyMagic) {
    -      return body;
    -    }
    -    const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : "");
    -    return Object.assign(new RegExp(`^${re}$`, flags), {
    -      _src: re,
    -      _glob: glob2
    -    });
    -  }
    -  // returns the string match, the regexp source, whether there's magic
    -  // in the regexp (so a regular expression is required) and whether or
    -  // not the uflag is needed for the regular expression (for posix classes)
    -  // TODO: instead of injecting the start/end at this point, just return
    -  // the BODY of the regexp, along with the start/end portions suitable
    -  // for binding the start/end in either a joined full-path makeRe context
    -  // (where we bind to (^|/), or a standalone matchPart context (where
    -  // we bind to ^, and not /).  Otherwise slashes get duped!
    -  //
    -  // In part-matching mode, the start is:
    -  // - if not isStart: nothing
    -  // - if traversal possible, but not allowed: ^(?!\.\.?$)
    -  // - if dots allowed or not possible: ^
    -  // - if dots possible and not allowed: ^(?!\.)
    -  // end is:
    -  // - if not isEnd(): nothing
    -  // - else: $
    -  //
    -  // In full-path matching mode, we put the slash at the START of the
    -  // pattern, so start is:
    -  // - if first pattern: same as part-matching mode
    -  // - if not isStart(): nothing
    -  // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/))
    -  // - if dots allowed or not possible: /
    -  // - if dots possible and not allowed: /(?!\.)
    -  // end is:
    -  // - if last pattern, same as part-matching mode
    -  // - else nothing
    -  //
    -  // Always put the (?:$|/) on negated tails, though, because that has to be
    -  // there to bind the end of the negated pattern portion, and it's easier to
    -  // just stick it in now rather than try to inject it later in the middle of
    -  // the pattern.
    -  //
    -  // We can just always return the same end, and leave it up to the caller
    -  // to know whether it's going to be used joined or in parts.
    -  // And, if the start is adjusted slightly, can do the same there:
    -  // - if not isStart: nothing
    -  // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$)
    -  // - if dots allowed or not possible: (?:/|^)
    -  // - if dots possible and not allowed: (?:/|^)(?!\.)
    -  //
    -  // But it's better to have a simpler binding without a conditional, for
    -  // performance, so probably better to return both start options.
    -  //
    -  // Then the caller just ignores the end if it's not the first pattern,
    -  // and the start always gets applied.
    -  //
    -  // But that's always going to be $ if it's the ending pattern, or nothing,
    -  // so the caller can just attach $ at the end of the pattern when building.
    -  //
    -  // So the todo is:
    -  // - better detect what kind of start is needed
    -  // - return both flavors of starting pattern
    -  // - attach $ at the end of the pattern when creating the actual RegExp
    -  //
    -  // Ah, but wait, no, that all only applies to the root when the first pattern
    -  // is not an extglob. If the first pattern IS an extglob, then we need all
    -  // that dot prevention biz to live in the extglob portions, because eg
    -  // +(*|.x*) can match .xy but not .yx.
    -  //
    -  // So, return the two flavors if it's #root and the first child is not an
    -  // AST, otherwise leave it to the child AST to handle it, and there,
    -  // use the (?:^|/) style of start binding.
    -  //
    -  // Even simplified further:
    -  // - Since the start for a join is eg /(?!\.) and the start for a part
    -  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
    -  // or start or whatever) and prepend ^ or / at the Regexp construction.
    -  toRegExpSource(allowDot) {
    -    const dot = allowDot ?? !!this.#options.dot;
    -    if (this.#root === this)
    -      this.#fillNegs();
    -    if (!this.type) {
    -      const noEmpty = this.isStart() && this.isEnd();
    -      const src = this.#parts.map((p) => {
    -        const [re, _, hasMagic2, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot);
    -        this.#hasMagic = this.#hasMagic || hasMagic2;
    -        this.#uflag = this.#uflag || uflag;
    -        return re;
    -      }).join("");
    -      let start2 = "";
    -      if (this.isStart()) {
    -        if (typeof this.#parts[0] === "string") {
    -          const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);
    -          if (!dotTravAllowed) {
    -            const aps = addPatternStart;
    -            const needNoTrav = (
    -              // dots are allowed, and the pattern starts with [ or .
    -              dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or .
    -              src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or .
    -              src.startsWith("\\.\\.") && aps.has(src.charAt(4))
    -            );
    -            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));
    -            start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : "";
    -          }
    -        }
    -      }
    -      let end = "";
    -      if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") {
    -        end = "(?:$|\\/)";
    -      }
    -      const final2 = start2 + src + end;
    -      return [
    -        final2,
    -        unescape2(src),
    -        this.#hasMagic = !!this.#hasMagic,
    -        this.#uflag
    -      ];
    -    }
    -    const repeated = this.type === "*" || this.type === "+";
    -    const start = this.type === "!" ? "(?:(?!(?:" : "(?:";
    -    let body = this.#partsToRegExp(dot);
    -    if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
    -      const s = this.toString();
    -      this.#parts = [s];
    -      this.type = null;
    -      this.#hasMagic = void 0;
    -      return [s, unescape2(this.toString()), false, false];
    -    }
    -    let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true);
    -    if (bodyDotAllowed === body) {
    -      bodyDotAllowed = "";
    -    }
    -    if (bodyDotAllowed) {
    -      body = `(?:${body})(?:${bodyDotAllowed})*?`;
    -    }
    -    let final = "";
    -    if (this.type === "!" && this.#emptyExt) {
    -      final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty;
    -    } else {
    -      const close = this.type === "!" ? (
    -        // !() must match something,but !(x) can match ''
    -        "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")"
    -      ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`;
    -      final = start + body + close;
    -    }
    -    return [
    -      final,
    -      unescape2(body),
    -      this.#hasMagic = !!this.#hasMagic,
    -      this.#uflag
    -    ];
    -  }
    -  #partsToRegExp(dot) {
    -    return this.#parts.map((p) => {
    -      if (typeof p === "string") {
    -        throw new Error("string type in extglob ast??");
    -      }
    -      const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);
    -      this.#uflag = this.#uflag || uflag;
    -      return re;
    -    }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|");
    -  }
    -  static #parseGlob(glob2, hasMagic2, noEmpty = false) {
    -    let escaping = false;
    -    let re = "";
    -    let uflag = false;
    -    for (let i = 0; i < glob2.length; i++) {
    -      const c = glob2.charAt(i);
    -      if (escaping) {
    -        escaping = false;
    -        re += (reSpecials.has(c) ? "\\" : "") + c;
    -        continue;
    -      }
    -      if (c === "\\") {
    -        if (i === glob2.length - 1) {
    -          re += "\\\\";
    -        } else {
    -          escaping = true;
    -        }
    -        continue;
    -      }
    -      if (c === "[") {
    -        const [src, needUflag, consumed, magic] = parseClass(glob2, i);
    -        if (consumed) {
    -          re += src;
    -          uflag = uflag || needUflag;
    -          i += consumed - 1;
    -          hasMagic2 = hasMagic2 || magic;
    -          continue;
    -        }
    -      }
    -      if (c === "*") {
    -        if (noEmpty && glob2 === "*")
    -          re += starNoEmpty;
    -        else
    -          re += star;
    -        hasMagic2 = true;
    -        continue;
    -      }
    -      if (c === "?") {
    -        re += qmark;
    -        hasMagic2 = true;
    -        continue;
    -      }
    -      re += regExpEscape(c);
    -    }
    -    return [re, unescape2(glob2), !!hasMagic2, uflag];
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/escape.js
    -var escape = (s, { windowsPathsNoEscape = false } = {}) => {
    -  return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&");
    -};
    -
    -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js
    -var minimatch = (p, pattern, options2 = {}) => {
    -  assertValidPattern(pattern);
    -  if (!options2.nocomment && pattern.charAt(0) === "#") {
    -    return false;
    -  }
    -  return new Minimatch(pattern, options2).match(p);
    -};
    -var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
    -var starDotExtTest = (ext2) => (f) => !f.startsWith(".") && f.endsWith(ext2);
    -var starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2);
    -var starDotExtTestNocase = (ext2) => {
    -  ext2 = ext2.toLowerCase();
    -  return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext2);
    -};
    -var starDotExtTestNocaseDot = (ext2) => {
    -  ext2 = ext2.toLowerCase();
    -  return (f) => f.toLowerCase().endsWith(ext2);
    -};
    -var starDotStarRE = /^\*+\.\*+$/;
    -var starDotStarTest = (f) => !f.startsWith(".") && f.includes(".");
    -var starDotStarTestDot = (f) => f !== "." && f !== ".." && f.includes(".");
    -var dotStarRE = /^\.\*+$/;
    -var dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith(".");
    -var starRE = /^\*+$/;
    -var starTest = (f) => f.length !== 0 && !f.startsWith(".");
    -var starTestDot = (f) => f.length !== 0 && f !== "." && f !== "..";
    -var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
    -var qmarksTestNocase = ([$0, ext2 = ""]) => {
    -  const noext = qmarksTestNoExt([$0]);
    -  if (!ext2)
    -    return noext;
    -  ext2 = ext2.toLowerCase();
    -  return (f) => noext(f) && f.toLowerCase().endsWith(ext2);
    -};
    -var qmarksTestNocaseDot = ([$0, ext2 = ""]) => {
    -  const noext = qmarksTestNoExtDot([$0]);
    -  if (!ext2)
    -    return noext;
    -  ext2 = ext2.toLowerCase();
    -  return (f) => noext(f) && f.toLowerCase().endsWith(ext2);
    -};
    -var qmarksTestDot = ([$0, ext2 = ""]) => {
    -  const noext = qmarksTestNoExtDot([$0]);
    -  return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);
    -};
    -var qmarksTest = ([$0, ext2 = ""]) => {
    -  const noext = qmarksTestNoExt([$0]);
    -  return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);
    -};
    -var qmarksTestNoExt = ([$0]) => {
    -  const len = $0.length;
    -  return (f) => f.length === len && !f.startsWith(".");
    -};
    -var qmarksTestNoExtDot = ([$0]) => {
    -  const len = $0.length;
    -  return (f) => f.length === len && f !== "." && f !== "..";
    -};
    -var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix";
    -var path5 = {
    -  win32: { sep: "\\" },
    -  posix: { sep: "/" }
    -};
    -var sep2 = defaultPlatform === "win32" ? path5.win32.sep : path5.posix.sep;
    -minimatch.sep = sep2;
    -var GLOBSTAR = Symbol("globstar **");
    -minimatch.GLOBSTAR = GLOBSTAR;
    -var qmark2 = "[^/]";
    -var star2 = qmark2 + "*?";
    -var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";
    -var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?";
    -var filter = (pattern, options2 = {}) => (p) => minimatch(p, pattern, options2);
    -minimatch.filter = filter;
    -var ext = (a, b = {}) => Object.assign({}, a, b);
    -var defaults = (def) => {
    -  if (!def || typeof def !== "object" || !Object.keys(def).length) {
    -    return minimatch;
    -  }
    -  const orig = minimatch;
    -  const m = (p, pattern, options2 = {}) => orig(p, pattern, ext(def, options2));
    -  return Object.assign(m, {
    -    Minimatch: class Minimatch extends orig.Minimatch {
    -      constructor(pattern, options2 = {}) {
    -        super(pattern, ext(def, options2));
    -      }
    -      static defaults(options2) {
    -        return orig.defaults(ext(def, options2)).Minimatch;
    -      }
    -    },
    -    AST: class AST extends orig.AST {
    -      /* c8 ignore start */
    -      constructor(type2, parent, options2 = {}) {
    -        super(type2, parent, ext(def, options2));
    -      }
    -      /* c8 ignore stop */
    -      static fromGlob(pattern, options2 = {}) {
    -        return orig.AST.fromGlob(pattern, ext(def, options2));
    -      }
    -    },
    -    unescape: (s, options2 = {}) => orig.unescape(s, ext(def, options2)),
    -    escape: (s, options2 = {}) => orig.escape(s, ext(def, options2)),
    -    filter: (pattern, options2 = {}) => orig.filter(pattern, ext(def, options2)),
    -    defaults: (options2) => orig.defaults(ext(def, options2)),
    -    makeRe: (pattern, options2 = {}) => orig.makeRe(pattern, ext(def, options2)),
    -    braceExpand: (pattern, options2 = {}) => orig.braceExpand(pattern, ext(def, options2)),
    -    match: (list, pattern, options2 = {}) => orig.match(list, pattern, ext(def, options2)),
    -    sep: orig.sep,
    -    GLOBSTAR
    -  });
    -};
    -minimatch.defaults = defaults;
    -var braceExpand = (pattern, options2 = {}) => {
    -  assertValidPattern(pattern);
    -  if (options2.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
    -    return [pattern];
    -  }
    -  return (0, import_brace_expansion.default)(pattern);
    -};
    -minimatch.braceExpand = braceExpand;
    -var makeRe = (pattern, options2 = {}) => new Minimatch(pattern, options2).makeRe();
    -minimatch.makeRe = makeRe;
    -var match = (list, pattern, options2 = {}) => {
    -  const mm = new Minimatch(pattern, options2);
    -  list = list.filter((f) => mm.match(f));
    -  if (mm.options.nonull && !list.length) {
    -    list.push(pattern);
    -  }
    -  return list;
    -};
    -minimatch.match = match;
    -var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
    -var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    -var Minimatch = class {
    -  options;
    -  set;
    -  pattern;
    -  windowsPathsNoEscape;
    -  nonegate;
    -  negate;
    -  comment;
    -  empty;
    -  preserveMultipleSlashes;
    -  partial;
    -  globSet;
    -  globParts;
    -  nocase;
    -  isWindows;
    -  platform;
    -  windowsNoMagicRoot;
    -  regexp;
    -  constructor(pattern, options2 = {}) {
    -    assertValidPattern(pattern);
    -    options2 = options2 || {};
    -    this.options = options2;
    -    this.pattern = pattern;
    -    this.platform = options2.platform || defaultPlatform;
    -    this.isWindows = this.platform === "win32";
    -    this.windowsPathsNoEscape = !!options2.windowsPathsNoEscape || options2.allowWindowsEscape === false;
    -    if (this.windowsPathsNoEscape) {
    -      this.pattern = this.pattern.replace(/\\/g, "/");
    -    }
    -    this.preserveMultipleSlashes = !!options2.preserveMultipleSlashes;
    -    this.regexp = null;
    -    this.negate = false;
    -    this.nonegate = !!options2.nonegate;
    -    this.comment = false;
    -    this.empty = false;
    -    this.partial = !!options2.partial;
    -    this.nocase = !!this.options.nocase;
    -    this.windowsNoMagicRoot = options2.windowsNoMagicRoot !== void 0 ? options2.windowsNoMagicRoot : !!(this.isWindows && this.nocase);
    -    this.globSet = [];
    -    this.globParts = [];
    -    this.set = [];
    -    this.make();
    -  }
    -  hasMagic() {
    -    if (this.options.magicalBraces && this.set.length > 1) {
    -      return true;
    -    }
    -    for (const pattern of this.set) {
    -      for (const part of pattern) {
    -        if (typeof part !== "string")
    -          return true;
    -      }
    -    }
    -    return false;
    -  }
    -  debug(..._) {
    -  }
    -  make() {
    -    const pattern = this.pattern;
    -    const options2 = this.options;
    -    if (!options2.nocomment && pattern.charAt(0) === "#") {
    -      this.comment = true;
    -      return;
    -    }
    -    if (!pattern) {
    -      this.empty = true;
    -      return;
    -    }
    -    this.parseNegate();
    -    this.globSet = [...new Set(this.braceExpand())];
    -    if (options2.debug) {
    -      this.debug = (...args) => console.error(...args);
    -    }
    -    this.debug(this.pattern, this.globSet);
    -    const rawGlobParts = this.globSet.map((s) => this.slashSplit(s));
    -    this.globParts = this.preprocess(rawGlobParts);
    -    this.debug(this.pattern, this.globParts);
    -    let set3 = this.globParts.map((s, _, __) => {
    -      if (this.isWindows && this.windowsNoMagicRoot) {
    -        const isUNC = s[0] === "" && s[1] === "" && (s[2] === "?" || !globMagic.test(s[2])) && !globMagic.test(s[3]);
    -        const isDrive = /^[a-z]:/i.test(s[0]);
    -        if (isUNC) {
    -          return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))];
    -        } else if (isDrive) {
    -          return [s[0], ...s.slice(1).map((ss) => this.parse(ss))];
    -        }
    -      }
    -      return s.map((ss) => this.parse(ss));
    -    });
    -    this.debug(this.pattern, set3);
    -    this.set = set3.filter((s) => s.indexOf(false) === -1);
    -    if (this.isWindows) {
    -      for (let i = 0; i < this.set.length; i++) {
    -        const p = this.set[i];
    -        if (p[0] === "" && p[1] === "" && this.globParts[i][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) {
    -          p[2] = "?";
    -        }
    -      }
    -    }
    -    this.debug(this.pattern, this.set);
    -  }
    -  // various transforms to equivalent pattern sets that are
    -  // faster to process in a filesystem walk.  The goal is to
    -  // eliminate what we can, and push all ** patterns as far
    -  // to the right as possible, even if it increases the number
    -  // of patterns that we have to process.
    -  preprocess(globParts) {
    -    if (this.options.noglobstar) {
    -      for (let i = 0; i < globParts.length; i++) {
    -        for (let j = 0; j < globParts[i].length; j++) {
    -          if (globParts[i][j] === "**") {
    -            globParts[i][j] = "*";
    -          }
    -        }
    -      }
    -    }
    -    const { optimizationLevel = 1 } = this.options;
    -    if (optimizationLevel >= 2) {
    -      globParts = this.firstPhasePreProcess(globParts);
    -      globParts = this.secondPhasePreProcess(globParts);
    -    } else if (optimizationLevel >= 1) {
    -      globParts = this.levelOneOptimize(globParts);
    -    } else {
    -      globParts = this.adjascentGlobstarOptimize(globParts);
    -    }
    -    return globParts;
    -  }
    -  // just get rid of adjascent ** portions
    -  adjascentGlobstarOptimize(globParts) {
    -    return globParts.map((parts) => {
    -      let gs = -1;
    -      while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
    -        let i = gs;
    -        while (parts[i + 1] === "**") {
    -          i++;
    -        }
    -        if (i !== gs) {
    -          parts.splice(gs, i - gs);
    -        }
    -      }
    -      return parts;
    -    });
    -  }
    -  // get rid of adjascent ** and resolve .. portions
    -  levelOneOptimize(globParts) {
    -    return globParts.map((parts) => {
    -      parts = parts.reduce((set3, part) => {
    -        const prev = set3[set3.length - 1];
    -        if (part === "**" && prev === "**") {
    -          return set3;
    -        }
    -        if (part === "..") {
    -          if (prev && prev !== ".." && prev !== "." && prev !== "**") {
    -            set3.pop();
    -            return set3;
    -          }
    -        }
    -        set3.push(part);
    -        return set3;
    -      }, []);
    -      return parts.length === 0 ? [""] : parts;
    -    });
    -  }
    -  levelTwoFileOptimize(parts) {
    -    if (!Array.isArray(parts)) {
    -      parts = this.slashSplit(parts);
    -    }
    -    let didSomething = false;
    -    do {
    -      didSomething = false;
    -      if (!this.preserveMultipleSlashes) {
    -        for (let i = 1; i < parts.length - 1; i++) {
    -          const p = parts[i];
    -          if (i === 1 && p === "" && parts[0] === "")
    -            continue;
    -          if (p === "." || p === "") {
    -            didSomething = true;
    -            parts.splice(i, 1);
    -            i--;
    -          }
    -        }
    -        if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
    -          didSomething = true;
    -          parts.pop();
    -        }
    -      }
    -      let dd = 0;
    -      while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
    -        const p = parts[dd - 1];
    -        if (p && p !== "." && p !== ".." && p !== "**") {
    -          didSomething = true;
    -          parts.splice(dd - 1, 2);
    -          dd -= 2;
    -        }
    -      }
    -    } while (didSomething);
    -    return parts.length === 0 ? [""] : parts;
    -  }
    -  // First phase: single-pattern processing
    -  // 
     is 1 or more portions
    -  //  is 1 or more portions
    -  // 

    is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

    /**/../

    /

    / -> {

    /../

    /

    /,

    /**/

    /

    /} - //

    // -> 
    /
    -  // 
    /

    /../ ->

    /
    -  // **/**/ -> **/
    -  //
    -  // **/*/ -> */**/ <== not valid because ** doesn't follow
    -  // this WOULD be allowed if ** did follow symlinks, or * didn't
    -  firstPhasePreProcess(globParts) {
    -    let didSomething = false;
    -    do {
    -      didSomething = false;
    -      for (let parts of globParts) {
    -        let gs = -1;
    -        while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
    -          let gss = gs;
    -          while (parts[gss + 1] === "**") {
    -            gss++;
    -          }
    -          if (gss > gs) {
    -            parts.splice(gs + 1, gss - gs);
    -          }
    -          let next = parts[gs + 1];
    -          const p = parts[gs + 2];
    -          const p2 = parts[gs + 3];
    -          if (next !== "..")
    -            continue;
    -          if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
    -            continue;
    -          }
    -          didSomething = true;
    -          parts.splice(gs, 1);
    -          const other = parts.slice(0);
    -          other[gs] = "**";
    -          globParts.push(other);
    -          gs--;
    -        }
    -        if (!this.preserveMultipleSlashes) {
    -          for (let i = 1; i < parts.length - 1; i++) {
    -            const p = parts[i];
    -            if (i === 1 && p === "" && parts[0] === "")
    -              continue;
    -            if (p === "." || p === "") {
    -              didSomething = true;
    -              parts.splice(i, 1);
    -              i--;
    -            }
    -          }
    -          if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
    -            didSomething = true;
    -            parts.pop();
    -          }
    -        }
    -        let dd = 0;
    -        while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
    -          const p = parts[dd - 1];
    -          if (p && p !== "." && p !== ".." && p !== "**") {
    -            didSomething = true;
    -            const needDot = dd === 1 && parts[dd + 1] === "**";
    -            const splin = needDot ? ["."] : [];
    -            parts.splice(dd - 1, 2, ...splin);
    -            if (parts.length === 0)
    -              parts.push("");
    -            dd -= 2;
    -          }
    -        }
    -      }
    -    } while (didSomething);
    -    return globParts;
    -  }
    -  // second phase: multi-pattern dedupes
    -  // {
    /*/,
    /

    /} ->

    /*/
    -  // {
    /,
    /} -> 
    /
    -  // {
    /**/,
    /} -> 
    /**/
    -  //
    -  // {
    /**/,
    /**/

    /} ->

    /**/
    -  // ^-- not valid because ** doens't follow symlinks
    -  secondPhasePreProcess(globParts) {
    -    for (let i = 0; i < globParts.length - 1; i++) {
    -      for (let j = i + 1; j < globParts.length; j++) {
    -        const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
    -        if (!matched)
    -          continue;
    -        globParts[i] = matched;
    -        globParts[j] = [];
    -      }
    -    }
    -    return globParts.filter((gs) => gs.length);
    -  }
    -  partsMatch(a, b, emptyGSMatch = false) {
    -    let ai = 0;
    -    let bi = 0;
    -    let result = [];
    -    let which = "";
    -    while (ai < a.length && bi < b.length) {
    -      if (a[ai] === b[bi]) {
    -        result.push(which === "b" ? b[bi] : a[ai]);
    -        ai++;
    -        bi++;
    -      } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
    -        result.push(a[ai]);
    -        ai++;
    -      } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
    -        result.push(b[bi]);
    -        bi++;
    -      } else if (a[ai] === "*" && b[bi] && (this.options.dot || !b[bi].startsWith(".")) && b[bi] !== "**") {
    -        if (which === "b")
    -          return false;
    -        which = "a";
    -        result.push(a[ai]);
    -        ai++;
    -        bi++;
    -      } else if (b[bi] === "*" && a[ai] && (this.options.dot || !a[ai].startsWith(".")) && a[ai] !== "**") {
    -        if (which === "a")
    -          return false;
    -        which = "b";
    -        result.push(b[bi]);
    -        ai++;
    -        bi++;
    -      } else {
    -        return false;
    -      }
    -    }
    -    return a.length === b.length && result;
    -  }
    -  parseNegate() {
    -    if (this.nonegate)
    -      return;
    -    const pattern = this.pattern;
    -    let negate = false;
    -    let negateOffset = 0;
    -    for (let i = 0; i < pattern.length && pattern.charAt(i) === "!"; i++) {
    -      negate = !negate;
    -      negateOffset++;
    -    }
    -    if (negateOffset)
    -      this.pattern = pattern.slice(negateOffset);
    -    this.negate = negate;
    -  }
    -  // set partial to true to test if, for example,
    -  // "/a/b" matches the start of "/*/b/*/d"
    -  // Partial means, if you run out of file before you run
    -  // out of pattern, then that's fine, as long as all
    -  // the parts match.
    -  matchOne(file, pattern, partial = false) {
    -    const options2 = this.options;
    -    if (this.isWindows) {
    -      const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
    -      const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
    -      const patternDrive = typeof pattern[0] === "string" && /^[a-z]:$/i.test(pattern[0]);
    -      const patternUNC = !patternDrive && pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
    -      const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
    -      const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
    -      if (typeof fdi === "number" && typeof pdi === "number") {
    -        const [fd, pd] = [file[fdi], pattern[pdi]];
    -        if (fd.toLowerCase() === pd.toLowerCase()) {
    -          pattern[pdi] = fd;
    -          if (pdi > fdi) {
    -            pattern = pattern.slice(pdi);
    -          } else if (fdi > pdi) {
    -            file = file.slice(fdi);
    -          }
    -        }
    -      }
    -    }
    -    const { optimizationLevel = 1 } = this.options;
    -    if (optimizationLevel >= 2) {
    -      file = this.levelTwoFileOptimize(file);
    -    }
    -    this.debug("matchOne", this, { file, pattern });
    -    this.debug("matchOne", file.length, pattern.length);
    -    for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
    -      this.debug("matchOne loop");
    -      var p = pattern[pi];
    -      var f = file[fi];
    -      this.debug(pattern, p, f);
    -      if (p === false) {
    -        return false;
    -      }
    -      if (p === GLOBSTAR) {
    -        this.debug("GLOBSTAR", [pattern, p, f]);
    -        var fr = fi;
    -        var pr = pi + 1;
    -        if (pr === pl) {
    -          this.debug("** at the end");
    -          for (; fi < fl; fi++) {
    -            if (file[fi] === "." || file[fi] === ".." || !options2.dot && file[fi].charAt(0) === ".")
    -              return false;
    -          }
    -          return true;
    -        }
    -        while (fr < fl) {
    -          var swallowee = file[fr];
    -          this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
    -          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
    -            this.debug("globstar found match!", fr, fl, swallowee);
    -            return true;
    -          } else {
    -            if (swallowee === "." || swallowee === ".." || !options2.dot && swallowee.charAt(0) === ".") {
    -              this.debug("dot detected!", file, fr, pattern, pr);
    -              break;
    -            }
    -            this.debug("globstar swallow a segment, and continue");
    -            fr++;
    -          }
    -        }
    -        if (partial) {
    -          this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
    -          if (fr === fl) {
    -            return true;
    -          }
    -        }
    -        return false;
    -      }
    -      let hit;
    -      if (typeof p === "string") {
    -        hit = f === p;
    -        this.debug("string match", p, f, hit);
    -      } else {
    -        hit = p.test(f);
    -        this.debug("pattern match", p, f, hit);
    -      }
    -      if (!hit)
    -        return false;
    -    }
    -    if (fi === fl && pi === pl) {
    -      return true;
    -    } else if (fi === fl) {
    -      return partial;
    -    } else if (pi === pl) {
    -      return fi === fl - 1 && file[fi] === "";
    -    } else {
    -      throw new Error("wtf?");
    -    }
    -  }
    -  braceExpand() {
    -    return braceExpand(this.pattern, this.options);
    -  }
    -  parse(pattern) {
    -    assertValidPattern(pattern);
    -    const options2 = this.options;
    -    if (pattern === "**")
    -      return GLOBSTAR;
    -    if (pattern === "")
    -      return "";
    -    let m;
    -    let fastTest = null;
    -    if (m = pattern.match(starRE)) {
    -      fastTest = options2.dot ? starTestDot : starTest;
    -    } else if (m = pattern.match(starDotExtRE)) {
    -      fastTest = (options2.nocase ? options2.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options2.dot ? starDotExtTestDot : starDotExtTest)(m[1]);
    -    } else if (m = pattern.match(qmarksRE)) {
    -      fastTest = (options2.nocase ? options2.dot ? qmarksTestNocaseDot : qmarksTestNocase : options2.dot ? qmarksTestDot : qmarksTest)(m);
    -    } else if (m = pattern.match(starDotStarRE)) {
    -      fastTest = options2.dot ? starDotStarTestDot : starDotStarTest;
    -    } else if (m = pattern.match(dotStarRE)) {
    -      fastTest = dotStarTest;
    -    }
    -    const re = AST.fromGlob(pattern, this.options).toMMPattern();
    -    return fastTest ? Object.assign(re, { test: fastTest }) : re;
    -  }
    -  makeRe() {
    -    if (this.regexp || this.regexp === false)
    -      return this.regexp;
    -    const set3 = this.set;
    -    if (!set3.length) {
    -      this.regexp = false;
    -      return this.regexp;
    -    }
    -    const options2 = this.options;
    -    const twoStar = options2.noglobstar ? star2 : options2.dot ? twoStarDot : twoStarNoDot;
    -    const flags = new Set(options2.nocase ? ["i"] : []);
    -    let re = set3.map((pattern) => {
    -      const pp = pattern.map((p) => {
    -        if (p instanceof RegExp) {
    -          for (const f of p.flags.split(""))
    -            flags.add(f);
    -        }
    -        return typeof p === "string" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;
    -      });
    -      pp.forEach((p, i) => {
    -        const next = pp[i + 1];
    -        const prev = pp[i - 1];
    -        if (p !== GLOBSTAR || prev === GLOBSTAR) {
    -          return;
    -        }
    -        if (prev === void 0) {
    -          if (next !== void 0 && next !== GLOBSTAR) {
    -            pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
    -          } else {
    -            pp[i] = twoStar;
    -          }
    -        } else if (next === void 0) {
    -          pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
    -        } else if (next !== GLOBSTAR) {
    -          pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
    -          pp[i + 1] = GLOBSTAR;
    -        }
    -      });
    -      return pp.filter((p) => p !== GLOBSTAR).join("/");
    -    }).join("|");
    -    const [open2, close] = set3.length > 1 ? ["(?:", ")"] : ["", ""];
    -    re = "^" + open2 + re + close + "$";
    -    if (this.negate)
    -      re = "^(?!" + re + ").+$";
    -    try {
    -      this.regexp = new RegExp(re, [...flags].join(""));
    -    } catch (ex) {
    -      this.regexp = false;
    -    }
    -    return this.regexp;
    -  }
    -  slashSplit(p) {
    -    if (this.preserveMultipleSlashes) {
    -      return p.split("/");
    -    } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
    -      return ["", ...p.split(/\/+/)];
    -    } else {
    -      return p.split(/\/+/);
    -    }
    -  }
    -  match(f, partial = this.partial) {
    -    this.debug("match", f, this.pattern);
    -    if (this.comment) {
    -      return false;
    -    }
    -    if (this.empty) {
    -      return f === "";
    -    }
    -    if (f === "/" && partial) {
    -      return true;
    -    }
    -    const options2 = this.options;
    -    if (this.isWindows) {
    -      f = f.split("\\").join("/");
    -    }
    -    const ff = this.slashSplit(f);
    -    this.debug(this.pattern, "split", ff);
    -    const set3 = this.set;
    -    this.debug(this.pattern, "set", set3);
    -    let filename = ff[ff.length - 1];
    -    if (!filename) {
    -      for (let i = ff.length - 2; !filename && i >= 0; i--) {
    -        filename = ff[i];
    -      }
    -    }
    -    for (let i = 0; i < set3.length; i++) {
    -      const pattern = set3[i];
    -      let file = ff;
    -      if (options2.matchBase && pattern.length === 1) {
    -        file = [filename];
    -      }
    -      const hit = this.matchOne(file, pattern, partial);
    -      if (hit) {
    -        if (options2.flipNegate) {
    -          return true;
    -        }
    -        return !this.negate;
    -      }
    -    }
    -    if (options2.flipNegate) {
    -      return false;
    -    }
    -    return this.negate;
    -  }
    -  static defaults(def) {
    -    return minimatch.defaults(def).Minimatch;
    -  }
    -};
    -minimatch.AST = AST;
    -minimatch.Minimatch = Minimatch;
    -minimatch.escape = escape;
    -minimatch.unescape = unescape2;
    -
    -// ../../node_modules/.pnpm/lru-cache@10.2.0/node_modules/lru-cache/dist/esm/index.js
    -var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
    -var warned = /* @__PURE__ */ new Set();
    -var PROCESS = typeof process === "object" && !!process ? process : {};
    -var emitWarning = (msg, type2, code, fn) => {
    -  typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type2, code, fn) : console.error(`[${code}] ${type2}: ${msg}`);
    -};
    -var AC = globalThis.AbortController;
    -var AS = globalThis.AbortSignal;
    -if (typeof AC === "undefined") {
    -  AS = class AbortSignal {
    -    onabort;
    -    _onabort = [];
    -    reason;
    -    aborted = false;
    -    addEventListener(_, fn) {
    -      this._onabort.push(fn);
    -    }
    -  };
    -  AC = class AbortController {
    -    constructor() {
    -      warnACPolyfill();
    -    }
    -    signal = new AS();
    -    abort(reason) {
    -      if (this.signal.aborted)
    -        return;
    -      this.signal.reason = reason;
    -      this.signal.aborted = true;
    -      for (const fn of this.signal._onabort) {
    -        fn(reason);
    -      }
    -      this.signal.onabort?.(reason);
    -    }
    -  };
    -  let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
    -  const warnACPolyfill = () => {
    -    if (!printACPolyfillWarning)
    -      return;
    -    printACPolyfillWarning = false;
    -    emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
    -  };
    -}
    -var shouldWarn = (code) => !warned.has(code);
    -var TYPE = Symbol("type");
    -var isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
    -var getUintArray = (max2) => !isPosInt(max2) ? null : max2 <= Math.pow(2, 8) ? Uint8Array : max2 <= Math.pow(2, 16) ? Uint16Array : max2 <= Math.pow(2, 32) ? Uint32Array : max2 <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
    -var ZeroArray = class extends Array {
    -  constructor(size) {
    -    super(size);
    -    this.fill(0);
    -  }
    -};
    -var Stack = class _Stack {
    -  heap;
    -  length;
    -  // private constructor
    -  static #constructing = false;
    -  static create(max2) {
    -    const HeapCls = getUintArray(max2);
    -    if (!HeapCls)
    -      return [];
    -    _Stack.#constructing = true;
    -    const s = new _Stack(max2, HeapCls);
    -    _Stack.#constructing = false;
    -    return s;
    -  }
    -  constructor(max2, HeapCls) {
    -    if (!_Stack.#constructing) {
    -      throw new TypeError("instantiate Stack using Stack.create(n)");
    -    }
    -    this.heap = new HeapCls(max2);
    -    this.length = 0;
    -  }
    -  push(n) {
    -    this.heap[this.length++] = n;
    -  }
    -  pop() {
    -    return this.heap[--this.length];
    -  }
    -};
    -var LRUCache = class _LRUCache {
    -  // properties coming in from the options of these, only max and maxSize
    -  // really *need* to be protected. The rest can be modified, as they just
    -  // set defaults for various methods.
    -  #max;
    -  #maxSize;
    -  #dispose;
    -  #disposeAfter;
    -  #fetchMethod;
    -  /**
    -   * {@link LRUCache.OptionsBase.ttl}
    -   */
    -  ttl;
    -  /**
    -   * {@link LRUCache.OptionsBase.ttlResolution}
    -   */
    -  ttlResolution;
    -  /**
    -   * {@link LRUCache.OptionsBase.ttlAutopurge}
    -   */
    -  ttlAutopurge;
    -  /**
    -   * {@link LRUCache.OptionsBase.updateAgeOnGet}
    -   */
    -  updateAgeOnGet;
    -  /**
    -   * {@link LRUCache.OptionsBase.updateAgeOnHas}
    -   */
    -  updateAgeOnHas;
    -  /**
    -   * {@link LRUCache.OptionsBase.allowStale}
    -   */
    -  allowStale;
    -  /**
    -   * {@link LRUCache.OptionsBase.noDisposeOnSet}
    -   */
    -  noDisposeOnSet;
    -  /**
    -   * {@link LRUCache.OptionsBase.noUpdateTTL}
    -   */
    -  noUpdateTTL;
    -  /**
    -   * {@link LRUCache.OptionsBase.maxEntrySize}
    -   */
    -  maxEntrySize;
    -  /**
    -   * {@link LRUCache.OptionsBase.sizeCalculation}
    -   */
    -  sizeCalculation;
    -  /**
    -   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
    -   */
    -  noDeleteOnFetchRejection;
    -  /**
    -   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
    -   */
    -  noDeleteOnStaleGet;
    -  /**
    -   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
    -   */
    -  allowStaleOnFetchAbort;
    -  /**
    -   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
    -   */
    -  allowStaleOnFetchRejection;
    -  /**
    -   * {@link LRUCache.OptionsBase.ignoreFetchAbort}
    -   */
    -  ignoreFetchAbort;
    -  // computed properties
    -  #size;
    -  #calculatedSize;
    -  #keyMap;
    -  #keyList;
    -  #valList;
    -  #next;
    -  #prev;
    -  #head;
    -  #tail;
    -  #free;
    -  #disposed;
    -  #sizes;
    -  #starts;
    -  #ttls;
    -  #hasDispose;
    -  #hasFetchMethod;
    -  #hasDisposeAfter;
    -  /**
    -   * Do not call this method unless you need to inspect the
    -   * inner workings of the cache.  If anything returned by this
    -   * object is modified in any way, strange breakage may occur.
    -   *
    -   * These fields are private for a reason!
    -   *
    -   * @internal
    -   */
    -  static unsafeExposeInternals(c) {
    -    return {
    -      // properties
    -      starts: c.#starts,
    -      ttls: c.#ttls,
    -      sizes: c.#sizes,
    -      keyMap: c.#keyMap,
    -      keyList: c.#keyList,
    -      valList: c.#valList,
    -      next: c.#next,
    -      prev: c.#prev,
    -      get head() {
    -        return c.#head;
    -      },
    -      get tail() {
    -        return c.#tail;
    -      },
    -      free: c.#free,
    -      // methods
    -      isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
    -      backgroundFetch: (k, index, options2, context) => c.#backgroundFetch(k, index, options2, context),
    -      moveToTail: (index) => c.#moveToTail(index),
    -      indexes: (options2) => c.#indexes(options2),
    -      rindexes: (options2) => c.#rindexes(options2),
    -      isStale: (index) => c.#isStale(index)
    -    };
    -  }
    -  // Protected read-only members
    -  /**
    -   * {@link LRUCache.OptionsBase.max} (read-only)
    -   */
    -  get max() {
    -    return this.#max;
    -  }
    -  /**
    -   * {@link LRUCache.OptionsBase.maxSize} (read-only)
    -   */
    -  get maxSize() {
    -    return this.#maxSize;
    -  }
    -  /**
    -   * The total computed size of items in the cache (read-only)
    -   */
    -  get calculatedSize() {
    -    return this.#calculatedSize;
    -  }
    -  /**
    -   * The number of items stored in the cache (read-only)
    -   */
    -  get size() {
    -    return this.#size;
    -  }
    -  /**
    -   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
    -   */
    -  get fetchMethod() {
    -    return this.#fetchMethod;
    -  }
    -  /**
    -   * {@link LRUCache.OptionsBase.dispose} (read-only)
    -   */
    -  get dispose() {
    -    return this.#dispose;
    -  }
    -  /**
    -   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
    -   */
    -  get disposeAfter() {
    -    return this.#disposeAfter;
    -  }
    -  constructor(options2) {
    -    const { max: max2 = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options2;
    -    if (max2 !== 0 && !isPosInt(max2)) {
    -      throw new TypeError("max option must be a nonnegative integer");
    -    }
    -    const UintArray = max2 ? getUintArray(max2) : Array;
    -    if (!UintArray) {
    -      throw new Error("invalid max value: " + max2);
    -    }
    -    this.#max = max2;
    -    this.#maxSize = maxSize;
    -    this.maxEntrySize = maxEntrySize || this.#maxSize;
    -    this.sizeCalculation = sizeCalculation;
    -    if (this.sizeCalculation) {
    -      if (!this.#maxSize && !this.maxEntrySize) {
    -        throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
    -      }
    -      if (typeof this.sizeCalculation !== "function") {
    -        throw new TypeError("sizeCalculation set to non-function");
    -      }
    -    }
    -    if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
    -      throw new TypeError("fetchMethod must be a function if specified");
    -    }
    -    this.#fetchMethod = fetchMethod;
    -    this.#hasFetchMethod = !!fetchMethod;
    -    this.#keyMap = /* @__PURE__ */ new Map();
    -    this.#keyList = new Array(max2).fill(void 0);
    -    this.#valList = new Array(max2).fill(void 0);
    -    this.#next = new UintArray(max2);
    -    this.#prev = new UintArray(max2);
    -    this.#head = 0;
    -    this.#tail = 0;
    -    this.#free = Stack.create(max2);
    -    this.#size = 0;
    -    this.#calculatedSize = 0;
    -    if (typeof dispose === "function") {
    -      this.#dispose = dispose;
    -    }
    -    if (typeof disposeAfter === "function") {
    -      this.#disposeAfter = disposeAfter;
    -      this.#disposed = [];
    -    } else {
    -      this.#disposeAfter = void 0;
    -      this.#disposed = void 0;
    -    }
    -    this.#hasDispose = !!this.#dispose;
    -    this.#hasDisposeAfter = !!this.#disposeAfter;
    -    this.noDisposeOnSet = !!noDisposeOnSet;
    -    this.noUpdateTTL = !!noUpdateTTL;
    -    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
    -    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
    -    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
    -    this.ignoreFetchAbort = !!ignoreFetchAbort;
    -    if (this.maxEntrySize !== 0) {
    -      if (this.#maxSize !== 0) {
    -        if (!isPosInt(this.#maxSize)) {
    -          throw new TypeError("maxSize must be a positive integer if specified");
    -        }
    -      }
    -      if (!isPosInt(this.maxEntrySize)) {
    -        throw new TypeError("maxEntrySize must be a positive integer if specified");
    -      }
    -      this.#initializeSizeTracking();
    -    }
    -    this.allowStale = !!allowStale;
    -    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
    -    this.updateAgeOnGet = !!updateAgeOnGet;
    -    this.updateAgeOnHas = !!updateAgeOnHas;
    -    this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
    -    this.ttlAutopurge = !!ttlAutopurge;
    -    this.ttl = ttl || 0;
    -    if (this.ttl) {
    -      if (!isPosInt(this.ttl)) {
    -        throw new TypeError("ttl must be a positive integer if specified");
    -      }
    -      this.#initializeTTLTracking();
    -    }
    -    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
    -      throw new TypeError("At least one of max, maxSize, or ttl is required");
    -    }
    -    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
    -      const code = "LRU_CACHE_UNBOUNDED";
    -      if (shouldWarn(code)) {
    -        warned.add(code);
    -        const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
    -        emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
    -      }
    -    }
    -  }
    -  /**
    -   * Return the remaining TTL time for a given entry key
    -   */
    -  getRemainingTTL(key) {
    -    return this.#keyMap.has(key) ? Infinity : 0;
    -  }
    -  #initializeTTLTracking() {
    -    const ttls = new ZeroArray(this.#max);
    -    const starts = new ZeroArray(this.#max);
    -    this.#ttls = ttls;
    -    this.#starts = starts;
    -    this.#setItemTTL = (index, ttl, start = perf.now()) => {
    -      starts[index] = ttl !== 0 ? start : 0;
    -      ttls[index] = ttl;
    -      if (ttl !== 0 && this.ttlAutopurge) {
    -        const t = setTimeout(() => {
    -          if (this.#isStale(index)) {
    -            this.delete(this.#keyList[index]);
    -          }
    -        }, ttl + 1);
    -        if (t.unref) {
    -          t.unref();
    -        }
    -      }
    -    };
    -    this.#updateItemAge = (index) => {
    -      starts[index] = ttls[index] !== 0 ? perf.now() : 0;
    -    };
    -    this.#statusTTL = (status, index) => {
    -      if (ttls[index]) {
    -        const ttl = ttls[index];
    -        const start = starts[index];
    -        if (!ttl || !start)
    -          return;
    -        status.ttl = ttl;
    -        status.start = start;
    -        status.now = cachedNow || getNow();
    -        const age = status.now - start;
    -        status.remainingTTL = ttl - age;
    -      }
    -    };
    -    let cachedNow = 0;
    -    const getNow = () => {
    -      const n = perf.now();
    -      if (this.ttlResolution > 0) {
    -        cachedNow = n;
    -        const t = setTimeout(() => cachedNow = 0, this.ttlResolution);
    -        if (t.unref) {
    -          t.unref();
    -        }
    -      }
    -      return n;
    -    };
    -    this.getRemainingTTL = (key) => {
    -      const index = this.#keyMap.get(key);
    -      if (index === void 0) {
    -        return 0;
    -      }
    -      const ttl = ttls[index];
    -      const start = starts[index];
    -      if (!ttl || !start) {
    -        return Infinity;
    -      }
    -      const age = (cachedNow || getNow()) - start;
    -      return ttl - age;
    -    };
    -    this.#isStale = (index) => {
    -      const s = starts[index];
    -      const t = ttls[index];
    -      return !!t && !!s && (cachedNow || getNow()) - s > t;
    -    };
    -  }
    -  // conditionally set private methods related to TTL
    -  #updateItemAge = () => {
    -  };
    -  #statusTTL = () => {
    -  };
    -  #setItemTTL = () => {
    -  };
    -  /* c8 ignore stop */
    -  #isStale = () => false;
    -  #initializeSizeTracking() {
    -    const sizes = new ZeroArray(this.#max);
    -    this.#calculatedSize = 0;
    -    this.#sizes = sizes;
    -    this.#removeItemSize = (index) => {
    -      this.#calculatedSize -= sizes[index];
    -      sizes[index] = 0;
    -    };
    -    this.#requireSize = (k, v, size, sizeCalculation) => {
    -      if (this.#isBackgroundFetch(v)) {
    -        return 0;
    -      }
    -      if (!isPosInt(size)) {
    -        if (sizeCalculation) {
    -          if (typeof sizeCalculation !== "function") {
    -            throw new TypeError("sizeCalculation must be a function");
    -          }
    -          size = sizeCalculation(v, k);
    -          if (!isPosInt(size)) {
    -            throw new TypeError("sizeCalculation return invalid (expect positive integer)");
    -          }
    -        } else {
    -          throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
    -        }
    -      }
    -      return size;
    -    };
    -    this.#addItemSize = (index, size, status) => {
    -      sizes[index] = size;
    -      if (this.#maxSize) {
    -        const maxSize = this.#maxSize - sizes[index];
    -        while (this.#calculatedSize > maxSize) {
    -          this.#evict(true);
    -        }
    -      }
    -      this.#calculatedSize += sizes[index];
    -      if (status) {
    -        status.entrySize = size;
    -        status.totalCalculatedSize = this.#calculatedSize;
    -      }
    -    };
    -  }
    -  #removeItemSize = (_i) => {
    -  };
    -  #addItemSize = (_i, _s, _st) => {
    -  };
    -  #requireSize = (_k, _v, size, sizeCalculation) => {
    -    if (size || sizeCalculation) {
    -      throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
    -    }
    -    return 0;
    -  };
    -  *#indexes({ allowStale = this.allowStale } = {}) {
    -    if (this.#size) {
    -      for (let i = this.#tail; true; ) {
    -        if (!this.#isValidIndex(i)) {
    -          break;
    -        }
    -        if (allowStale || !this.#isStale(i)) {
    -          yield i;
    -        }
    -        if (i === this.#head) {
    -          break;
    -        } else {
    -          i = this.#prev[i];
    -        }
    -      }
    -    }
    -  }
    -  *#rindexes({ allowStale = this.allowStale } = {}) {
    -    if (this.#size) {
    -      for (let i = this.#head; true; ) {
    -        if (!this.#isValidIndex(i)) {
    -          break;
    -        }
    -        if (allowStale || !this.#isStale(i)) {
    -          yield i;
    -        }
    -        if (i === this.#tail) {
    -          break;
    -        } else {
    -          i = this.#next[i];
    -        }
    -      }
    -    }
    -  }
    -  #isValidIndex(index) {
    -    return index !== void 0 && this.#keyMap.get(this.#keyList[index]) === index;
    -  }
    -  /**
    -   * Return a generator yielding `[key, value]` pairs,
    -   * in order from most recently used to least recently used.
    -   */
    -  *entries() {
    -    for (const i of this.#indexes()) {
    -      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield [this.#keyList[i], this.#valList[i]];
    -      }
    -    }
    -  }
    -  /**
    -   * Inverse order version of {@link LRUCache.entries}
    -   *
    -   * Return a generator yielding `[key, value]` pairs,
    -   * in order from least recently used to most recently used.
    -   */
    -  *rentries() {
    -    for (const i of this.#rindexes()) {
    -      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield [this.#keyList[i], this.#valList[i]];
    -      }
    -    }
    -  }
    -  /**
    -   * Return a generator yielding the keys in the cache,
    -   * in order from most recently used to least recently used.
    -   */
    -  *keys() {
    -    for (const i of this.#indexes()) {
    -      const k = this.#keyList[i];
    -      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield k;
    -      }
    -    }
    -  }
    -  /**
    -   * Inverse order version of {@link LRUCache.keys}
    -   *
    -   * Return a generator yielding the keys in the cache,
    -   * in order from least recently used to most recently used.
    -   */
    -  *rkeys() {
    -    for (const i of this.#rindexes()) {
    -      const k = this.#keyList[i];
    -      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield k;
    -      }
    -    }
    -  }
    -  /**
    -   * Return a generator yielding the values in the cache,
    -   * in order from most recently used to least recently used.
    -   */
    -  *values() {
    -    for (const i of this.#indexes()) {
    -      const v = this.#valList[i];
    -      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield this.#valList[i];
    -      }
    -    }
    -  }
    -  /**
    -   * Inverse order version of {@link LRUCache.values}
    -   *
    -   * Return a generator yielding the values in the cache,
    -   * in order from least recently used to most recently used.
    -   */
    -  *rvalues() {
    -    for (const i of this.#rindexes()) {
    -      const v = this.#valList[i];
    -      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
    -        yield this.#valList[i];
    -      }
    -    }
    -  }
    -  /**
    -   * Iterating over the cache itself yields the same results as
    -   * {@link LRUCache.entries}
    -   */
    -  [Symbol.iterator]() {
    -    return this.entries();
    -  }
    -  /**
    -   * A String value that is used in the creation of the default string description of an object.
    -   * Called by the built-in method Object.prototype.toString.
    -   */
    -  [Symbol.toStringTag] = "LRUCache";
    -  /**
    -   * Find a value for which the supplied fn method returns a truthy value,
    -   * similar to Array.find().  fn is called as fn(value, key, cache).
    -   */
    -  find(fn, getOptions = {}) {
    -    for (const i of this.#indexes()) {
    -      const v = this.#valList[i];
    -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -      if (value === void 0)
    -        continue;
    -      if (fn(value, this.#keyList[i], this)) {
    -        return this.get(this.#keyList[i], getOptions);
    -      }
    -    }
    -  }
    -  /**
    -   * Call the supplied function on each item in the cache, in order from
    -   * most recently used to least recently used.  fn is called as
    -   * fn(value, key, cache).  Does not update age or recenty of use.
    -   * Does not iterate over stale values.
    -   */
    -  forEach(fn, thisp = this) {
    -    for (const i of this.#indexes()) {
    -      const v = this.#valList[i];
    -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -      if (value === void 0)
    -        continue;
    -      fn.call(thisp, value, this.#keyList[i], this);
    -    }
    -  }
    -  /**
    -   * The same as {@link LRUCache.forEach} but items are iterated over in
    -   * reverse order.  (ie, less recently used items are iterated over first.)
    -   */
    -  rforEach(fn, thisp = this) {
    -    for (const i of this.#rindexes()) {
    -      const v = this.#valList[i];
    -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -      if (value === void 0)
    -        continue;
    -      fn.call(thisp, value, this.#keyList[i], this);
    -    }
    -  }
    -  /**
    -   * Delete any stale entries. Returns true if anything was removed,
    -   * false otherwise.
    -   */
    -  purgeStale() {
    -    let deleted = false;
    -    for (const i of this.#rindexes({ allowStale: true })) {
    -      if (this.#isStale(i)) {
    -        this.delete(this.#keyList[i]);
    -        deleted = true;
    -      }
    -    }
    -    return deleted;
    -  }
    -  /**
    -   * Get the extended info about a given entry, to get its value, size, and
    -   * TTL info simultaneously. Like {@link LRUCache#dump}, but just for a
    -   * single key. Always returns stale values, if their info is found in the
    -   * cache, so be sure to check for expired TTLs if relevant.
    -   */
    -  info(key) {
    -    const i = this.#keyMap.get(key);
    -    if (i === void 0)
    -      return void 0;
    -    const v = this.#valList[i];
    -    const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -    if (value === void 0)
    -      return void 0;
    -    const entry2 = { value };
    -    if (this.#ttls && this.#starts) {
    -      const ttl = this.#ttls[i];
    -      const start = this.#starts[i];
    -      if (ttl && start) {
    -        const remain = ttl - (perf.now() - start);
    -        entry2.ttl = remain;
    -        entry2.start = Date.now();
    -      }
    -    }
    -    if (this.#sizes) {
    -      entry2.size = this.#sizes[i];
    -    }
    -    return entry2;
    -  }
    -  /**
    -   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
    -   * passed to cache.load()
    -   */
    -  dump() {
    -    const arr = [];
    -    for (const i of this.#indexes({ allowStale: true })) {
    -      const key = this.#keyList[i];
    -      const v = this.#valList[i];
    -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -      if (value === void 0 || key === void 0)
    -        continue;
    -      const entry2 = { value };
    -      if (this.#ttls && this.#starts) {
    -        entry2.ttl = this.#ttls[i];
    -        const age = perf.now() - this.#starts[i];
    -        entry2.start = Math.floor(Date.now() - age);
    -      }
    -      if (this.#sizes) {
    -        entry2.size = this.#sizes[i];
    -      }
    -      arr.unshift([key, entry2]);
    -    }
    -    return arr;
    -  }
    -  /**
    -   * Reset the cache and load in the items in entries in the order listed.
    -   * Note that the shape of the resulting cache may be different if the
    -   * same options are not used in both caches.
    -   */
    -  load(arr) {
    -    this.clear();
    -    for (const [key, entry2] of arr) {
    -      if (entry2.start) {
    -        const age = Date.now() - entry2.start;
    -        entry2.start = perf.now() - age;
    -      }
    -      this.set(key, entry2.value, entry2);
    -    }
    -  }
    -  /**
    -   * Add a value to the cache.
    -   *
    -   * Note: if `undefined` is specified as a value, this is an alias for
    -   * {@link LRUCache#delete}
    -   */
    -  set(k, v, setOptions = {}) {
    -    if (v === void 0) {
    -      this.delete(k);
    -      return this;
    -    }
    -    const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions;
    -    let { noUpdateTTL = this.noUpdateTTL } = setOptions;
    -    const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
    -    if (this.maxEntrySize && size > this.maxEntrySize) {
    -      if (status) {
    -        status.set = "miss";
    -        status.maxEntrySizeExceeded = true;
    -      }
    -      this.delete(k);
    -      return this;
    -    }
    -    let index = this.#size === 0 ? void 0 : this.#keyMap.get(k);
    -    if (index === void 0) {
    -      index = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size;
    -      this.#keyList[index] = k;
    -      this.#valList[index] = v;
    -      this.#keyMap.set(k, index);
    -      this.#next[this.#tail] = index;
    -      this.#prev[index] = this.#tail;
    -      this.#tail = index;
    -      this.#size++;
    -      this.#addItemSize(index, size, status);
    -      if (status)
    -        status.set = "add";
    -      noUpdateTTL = false;
    -    } else {
    -      this.#moveToTail(index);
    -      const oldVal = this.#valList[index];
    -      if (v !== oldVal) {
    -        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
    -          oldVal.__abortController.abort(new Error("replaced"));
    -          const { __staleWhileFetching: s } = oldVal;
    -          if (s !== void 0 && !noDisposeOnSet) {
    -            if (this.#hasDispose) {
    -              this.#dispose?.(s, k, "set");
    -            }
    -            if (this.#hasDisposeAfter) {
    -              this.#disposed?.push([s, k, "set"]);
    -            }
    -          }
    -        } else if (!noDisposeOnSet) {
    -          if (this.#hasDispose) {
    -            this.#dispose?.(oldVal, k, "set");
    -          }
    -          if (this.#hasDisposeAfter) {
    -            this.#disposed?.push([oldVal, k, "set"]);
    -          }
    -        }
    -        this.#removeItemSize(index);
    -        this.#addItemSize(index, size, status);
    -        this.#valList[index] = v;
    -        if (status) {
    -          status.set = "replace";
    -          const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal;
    -          if (oldValue !== void 0)
    -            status.oldValue = oldValue;
    -        }
    -      } else if (status) {
    -        status.set = "update";
    -      }
    -    }
    -    if (ttl !== 0 && !this.#ttls) {
    -      this.#initializeTTLTracking();
    -    }
    -    if (this.#ttls) {
    -      if (!noUpdateTTL) {
    -        this.#setItemTTL(index, ttl, start);
    -      }
    -      if (status)
    -        this.#statusTTL(status, index);
    -    }
    -    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
    -      const dt = this.#disposed;
    -      let task;
    -      while (task = dt?.shift()) {
    -        this.#disposeAfter?.(...task);
    -      }
    -    }
    -    return this;
    -  }
    -  /**
    -   * Evict the least recently used item, returning its value or
    -   * `undefined` if cache is empty.
    -   */
    -  pop() {
    -    try {
    -      while (this.#size) {
    -        const val = this.#valList[this.#head];
    -        this.#evict(true);
    -        if (this.#isBackgroundFetch(val)) {
    -          if (val.__staleWhileFetching) {
    -            return val.__staleWhileFetching;
    -          }
    -        } else if (val !== void 0) {
    -          return val;
    -        }
    -      }
    -    } finally {
    -      if (this.#hasDisposeAfter && this.#disposed) {
    -        const dt = this.#disposed;
    -        let task;
    -        while (task = dt?.shift()) {
    -          this.#disposeAfter?.(...task);
    -        }
    -      }
    -    }
    -  }
    -  #evict(free) {
    -    const head = this.#head;
    -    const k = this.#keyList[head];
    -    const v = this.#valList[head];
    -    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
    -      v.__abortController.abort(new Error("evicted"));
    -    } else if (this.#hasDispose || this.#hasDisposeAfter) {
    -      if (this.#hasDispose) {
    -        this.#dispose?.(v, k, "evict");
    -      }
    -      if (this.#hasDisposeAfter) {
    -        this.#disposed?.push([v, k, "evict"]);
    -      }
    -    }
    -    this.#removeItemSize(head);
    -    if (free) {
    -      this.#keyList[head] = void 0;
    -      this.#valList[head] = void 0;
    -      this.#free.push(head);
    -    }
    -    if (this.#size === 1) {
    -      this.#head = this.#tail = 0;
    -      this.#free.length = 0;
    -    } else {
    -      this.#head = this.#next[head];
    -    }
    -    this.#keyMap.delete(k);
    -    this.#size--;
    -    return head;
    -  }
    -  /**
    -   * Check if a key is in the cache, without updating the recency of use.
    -   * Will return false if the item is stale, even though it is technically
    -   * in the cache.
    -   *
    -   * Will not update item age unless
    -   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
    -   */
    -  has(k, hasOptions = {}) {
    -    const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
    -    const index = this.#keyMap.get(k);
    -    if (index !== void 0) {
    -      const v = this.#valList[index];
    -      if (this.#isBackgroundFetch(v) && v.__staleWhileFetching === void 0) {
    -        return false;
    -      }
    -      if (!this.#isStale(index)) {
    -        if (updateAgeOnHas) {
    -          this.#updateItemAge(index);
    -        }
    -        if (status) {
    -          status.has = "hit";
    -          this.#statusTTL(status, index);
    -        }
    -        return true;
    -      } else if (status) {
    -        status.has = "stale";
    -        this.#statusTTL(status, index);
    -      }
    -    } else if (status) {
    -      status.has = "miss";
    -    }
    -    return false;
    -  }
    -  /**
    -   * Like {@link LRUCache#get} but doesn't update recency or delete stale
    -   * items.
    -   *
    -   * Returns `undefined` if the item is stale, unless
    -   * {@link LRUCache.OptionsBase.allowStale} is set.
    -   */
    -  peek(k, peekOptions = {}) {
    -    const { allowStale = this.allowStale } = peekOptions;
    -    const index = this.#keyMap.get(k);
    -    if (index === void 0 || !allowStale && this.#isStale(index)) {
    -      return;
    -    }
    -    const v = this.#valList[index];
    -    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
    -  }
    -  #backgroundFetch(k, index, options2, context) {
    -    const v = index === void 0 ? void 0 : this.#valList[index];
    -    if (this.#isBackgroundFetch(v)) {
    -      return v;
    -    }
    -    const ac = new AC();
    -    const { signal } = options2;
    -    signal?.addEventListener("abort", () => ac.abort(signal.reason), {
    -      signal: ac.signal
    -    });
    -    const fetchOpts = {
    -      signal: ac.signal,
    -      options: options2,
    -      context
    -    };
    -    const cb = (v2, updateCache = false) => {
    -      const { aborted } = ac.signal;
    -      const ignoreAbort = options2.ignoreFetchAbort && v2 !== void 0;
    -      if (options2.status) {
    -        if (aborted && !updateCache) {
    -          options2.status.fetchAborted = true;
    -          options2.status.fetchError = ac.signal.reason;
    -          if (ignoreAbort)
    -            options2.status.fetchAbortIgnored = true;
    -        } else {
    -          options2.status.fetchResolved = true;
    -        }
    -      }
    -      if (aborted && !ignoreAbort && !updateCache) {
    -        return fetchFail(ac.signal.reason);
    -      }
    -      const bf2 = p;
    -      if (this.#valList[index] === p) {
    -        if (v2 === void 0) {
    -          if (bf2.__staleWhileFetching) {
    -            this.#valList[index] = bf2.__staleWhileFetching;
    -          } else {
    -            this.delete(k);
    -          }
    -        } else {
    -          if (options2.status)
    -            options2.status.fetchUpdated = true;
    -          this.set(k, v2, fetchOpts.options);
    -        }
    -      }
    -      return v2;
    -    };
    -    const eb = (er) => {
    -      if (options2.status) {
    -        options2.status.fetchRejected = true;
    -        options2.status.fetchError = er;
    -      }
    -      return fetchFail(er);
    -    };
    -    const fetchFail = (er) => {
    -      const { aborted } = ac.signal;
    -      const allowStaleAborted = aborted && options2.allowStaleOnFetchAbort;
    -      const allowStale = allowStaleAborted || options2.allowStaleOnFetchRejection;
    -      const noDelete = allowStale || options2.noDeleteOnFetchRejection;
    -      const bf2 = p;
    -      if (this.#valList[index] === p) {
    -        const del = !noDelete || bf2.__staleWhileFetching === void 0;
    -        if (del) {
    -          this.delete(k);
    -        } else if (!allowStaleAborted) {
    -          this.#valList[index] = bf2.__staleWhileFetching;
    -        }
    -      }
    -      if (allowStale) {
    -        if (options2.status && bf2.__staleWhileFetching !== void 0) {
    -          options2.status.returnedStale = true;
    -        }
    -        return bf2.__staleWhileFetching;
    -      } else if (bf2.__returned === bf2) {
    -        throw er;
    -      }
    -    };
    -    const pcall = (res, rej) => {
    -      const fmp = this.#fetchMethod?.(k, v, fetchOpts);
    -      if (fmp && fmp instanceof Promise) {
    -        fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej);
    -      }
    -      ac.signal.addEventListener("abort", () => {
    -        if (!options2.ignoreFetchAbort || options2.allowStaleOnFetchAbort) {
    -          res(void 0);
    -          if (options2.allowStaleOnFetchAbort) {
    -            res = (v2) => cb(v2, true);
    -          }
    -        }
    -      });
    -    };
    -    if (options2.status)
    -      options2.status.fetchDispatched = true;
    -    const p = new Promise(pcall).then(cb, eb);
    -    const bf = Object.assign(p, {
    -      __abortController: ac,
    -      __staleWhileFetching: v,
    -      __returned: void 0
    -    });
    -    if (index === void 0) {
    -      this.set(k, bf, { ...fetchOpts.options, status: void 0 });
    -      index = this.#keyMap.get(k);
    -    } else {
    -      this.#valList[index] = bf;
    -    }
    -    return bf;
    -  }
    -  #isBackgroundFetch(p) {
    -    if (!this.#hasFetchMethod)
    -      return false;
    -    const b = p;
    -    return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC;
    -  }
    -  async fetch(k, fetchOptions = {}) {
    -    const {
    -      // get options
    -      allowStale = this.allowStale,
    -      updateAgeOnGet = this.updateAgeOnGet,
    -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
    -      // set options
    -      ttl = this.ttl,
    -      noDisposeOnSet = this.noDisposeOnSet,
    -      size = 0,
    -      sizeCalculation = this.sizeCalculation,
    -      noUpdateTTL = this.noUpdateTTL,
    -      // fetch exclusive options
    -      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
    -      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
    -      ignoreFetchAbort = this.ignoreFetchAbort,
    -      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
    -      context,
    -      forceRefresh = false,
    -      status,
    -      signal
    -    } = fetchOptions;
    -    if (!this.#hasFetchMethod) {
    -      if (status)
    -        status.fetch = "get";
    -      return this.get(k, {
    -        allowStale,
    -        updateAgeOnGet,
    -        noDeleteOnStaleGet,
    -        status
    -      });
    -    }
    -    const options2 = {
    -      allowStale,
    -      updateAgeOnGet,
    -      noDeleteOnStaleGet,
    -      ttl,
    -      noDisposeOnSet,
    -      size,
    -      sizeCalculation,
    -      noUpdateTTL,
    -      noDeleteOnFetchRejection,
    -      allowStaleOnFetchRejection,
    -      allowStaleOnFetchAbort,
    -      ignoreFetchAbort,
    -      status,
    -      signal
    -    };
    -    let index = this.#keyMap.get(k);
    -    if (index === void 0) {
    -      if (status)
    -        status.fetch = "miss";
    -      const p = this.#backgroundFetch(k, index, options2, context);
    -      return p.__returned = p;
    -    } else {
    -      const v = this.#valList[index];
    -      if (this.#isBackgroundFetch(v)) {
    -        const stale = allowStale && v.__staleWhileFetching !== void 0;
    -        if (status) {
    -          status.fetch = "inflight";
    -          if (stale)
    -            status.returnedStale = true;
    -        }
    -        return stale ? v.__staleWhileFetching : v.__returned = v;
    -      }
    -      const isStale = this.#isStale(index);
    -      if (!forceRefresh && !isStale) {
    -        if (status)
    -          status.fetch = "hit";
    -        this.#moveToTail(index);
    -        if (updateAgeOnGet) {
    -          this.#updateItemAge(index);
    -        }
    -        if (status)
    -          this.#statusTTL(status, index);
    -        return v;
    -      }
    -      const p = this.#backgroundFetch(k, index, options2, context);
    -      const hasStale = p.__staleWhileFetching !== void 0;
    -      const staleVal = hasStale && allowStale;
    -      if (status) {
    -        status.fetch = isStale ? "stale" : "refresh";
    -        if (staleVal && isStale)
    -          status.returnedStale = true;
    -      }
    -      return staleVal ? p.__staleWhileFetching : p.__returned = p;
    -    }
    -  }
    -  /**
    -   * Return a value from the cache. Will update the recency of the cache
    -   * entry found.
    -   *
    -   * If the key is not found, get() will return `undefined`.
    -   */
    -  get(k, getOptions = {}) {
    -    const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions;
    -    const index = this.#keyMap.get(k);
    -    if (index !== void 0) {
    -      const value = this.#valList[index];
    -      const fetching = this.#isBackgroundFetch(value);
    -      if (status)
    -        this.#statusTTL(status, index);
    -      if (this.#isStale(index)) {
    -        if (status)
    -          status.get = "stale";
    -        if (!fetching) {
    -          if (!noDeleteOnStaleGet) {
    -            this.delete(k);
    -          }
    -          if (status && allowStale)
    -            status.returnedStale = true;
    -          return allowStale ? value : void 0;
    -        } else {
    -          if (status && allowStale && value.__staleWhileFetching !== void 0) {
    -            status.returnedStale = true;
    -          }
    -          return allowStale ? value.__staleWhileFetching : void 0;
    -        }
    -      } else {
    -        if (status)
    -          status.get = "hit";
    -        if (fetching) {
    -          return value.__staleWhileFetching;
    -        }
    -        this.#moveToTail(index);
    -        if (updateAgeOnGet) {
    -          this.#updateItemAge(index);
    -        }
    -        return value;
    -      }
    -    } else if (status) {
    -      status.get = "miss";
    -    }
    -  }
    -  #connect(p, n) {
    -    this.#prev[n] = p;
    -    this.#next[p] = n;
    -  }
    -  #moveToTail(index) {
    -    if (index !== this.#tail) {
    -      if (index === this.#head) {
    -        this.#head = this.#next[index];
    -      } else {
    -        this.#connect(this.#prev[index], this.#next[index]);
    -      }
    -      this.#connect(this.#tail, index);
    -      this.#tail = index;
    -    }
    -  }
    -  /**
    -   * Deletes a key out of the cache.
    -   * Returns true if the key was deleted, false otherwise.
    -   */
    -  delete(k) {
    -    let deleted = false;
    -    if (this.#size !== 0) {
    -      const index = this.#keyMap.get(k);
    -      if (index !== void 0) {
    -        deleted = true;
    -        if (this.#size === 1) {
    -          this.clear();
    -        } else {
    -          this.#removeItemSize(index);
    -          const v = this.#valList[index];
    -          if (this.#isBackgroundFetch(v)) {
    -            v.__abortController.abort(new Error("deleted"));
    -          } else if (this.#hasDispose || this.#hasDisposeAfter) {
    -            if (this.#hasDispose) {
    -              this.#dispose?.(v, k, "delete");
    -            }
    -            if (this.#hasDisposeAfter) {
    -              this.#disposed?.push([v, k, "delete"]);
    -            }
    -          }
    -          this.#keyMap.delete(k);
    -          this.#keyList[index] = void 0;
    -          this.#valList[index] = void 0;
    -          if (index === this.#tail) {
    -            this.#tail = this.#prev[index];
    -          } else if (index === this.#head) {
    -            this.#head = this.#next[index];
    -          } else {
    -            const pi = this.#prev[index];
    -            this.#next[pi] = this.#next[index];
    -            const ni = this.#next[index];
    -            this.#prev[ni] = this.#prev[index];
    -          }
    -          this.#size--;
    -          this.#free.push(index);
    -        }
    -      }
    -    }
    -    if (this.#hasDisposeAfter && this.#disposed?.length) {
    -      const dt = this.#disposed;
    -      let task;
    -      while (task = dt?.shift()) {
    -        this.#disposeAfter?.(...task);
    -      }
    -    }
    -    return deleted;
    -  }
    -  /**
    -   * Clear the cache entirely, throwing away all values.
    -   */
    -  clear() {
    -    for (const index of this.#rindexes({ allowStale: true })) {
    -      const v = this.#valList[index];
    -      if (this.#isBackgroundFetch(v)) {
    -        v.__abortController.abort(new Error("deleted"));
    -      } else {
    -        const k = this.#keyList[index];
    -        if (this.#hasDispose) {
    -          this.#dispose?.(v, k, "delete");
    -        }
    -        if (this.#hasDisposeAfter) {
    -          this.#disposed?.push([v, k, "delete"]);
    -        }
    -      }
    -    }
    -    this.#keyMap.clear();
    -    this.#valList.fill(void 0);
    -    this.#keyList.fill(void 0);
    -    if (this.#ttls && this.#starts) {
    -      this.#ttls.fill(0);
    -      this.#starts.fill(0);
    -    }
    -    if (this.#sizes) {
    -      this.#sizes.fill(0);
    -    }
    -    this.#head = 0;
    -    this.#tail = 0;
    -    this.#free.length = 0;
    -    this.#calculatedSize = 0;
    -    this.#size = 0;
    -    if (this.#hasDisposeAfter && this.#disposed) {
    -      const dt = this.#disposed;
    -      let task;
    -      while (task = dt?.shift()) {
    -        this.#disposeAfter?.(...task);
    -      }
    -    }
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
    -var import_path5 = require("path");
    -var import_url = require("url");
    -var actualFS = __toESM(require("fs"), 1);
    -var import_fs = require("fs");
    -var import_promises5 = require("fs/promises");
    -
    -// ../../node_modules/.pnpm/minipass@7.0.4/node_modules/minipass/dist/esm/index.js
    -var import_events = require("events");
    -var import_stream = __toESM(require("stream"), 1);
    -var import_string_decoder = require("string_decoder");
    -var proc = typeof process === "object" && process ? process : {
    -  stdout: null,
    -  stderr: null
    -};
    -var isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof import_stream.default || isReadable(s) || isWritable(s));
    -var isReadable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
    -s.pipe !== import_stream.default.Writable.prototype.pipe;
    -var isWritable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.write === "function" && typeof s.end === "function";
    -var EOF = Symbol("EOF");
    -var MAYBE_EMIT_END = Symbol("maybeEmitEnd");
    -var EMITTED_END = Symbol("emittedEnd");
    -var EMITTING_END = Symbol("emittingEnd");
    -var EMITTED_ERROR = Symbol("emittedError");
    -var CLOSED = Symbol("closed");
    -var READ = Symbol("read");
    -var FLUSH = Symbol("flush");
    -var FLUSHCHUNK = Symbol("flushChunk");
    -var ENCODING = Symbol("encoding");
    -var DECODER = Symbol("decoder");
    -var FLOWING = Symbol("flowing");
    -var PAUSED = Symbol("paused");
    -var RESUME = Symbol("resume");
    -var BUFFER = Symbol("buffer");
    -var PIPES = Symbol("pipes");
    -var BUFFERLENGTH = Symbol("bufferLength");
    -var BUFFERPUSH = Symbol("bufferPush");
    -var BUFFERSHIFT = Symbol("bufferShift");
    -var OBJECTMODE = Symbol("objectMode");
    -var DESTROYED = Symbol("destroyed");
    -var ERROR = Symbol("error");
    -var EMITDATA = Symbol("emitData");
    -var EMITEND = Symbol("emitEnd");
    -var EMITEND2 = Symbol("emitEnd2");
    -var ASYNC = Symbol("async");
    -var ABORT = Symbol("abort");
    -var ABORTED = Symbol("aborted");
    -var SIGNAL = Symbol("signal");
    -var DATALISTENERS = Symbol("dataListeners");
    -var DISCARDED = Symbol("discarded");
    -var defer = (fn) => Promise.resolve().then(fn);
    -var nodefer = (fn) => fn();
    -var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
    -var isArrayBufferLike = (b) => b instanceof ArrayBuffer || !!b && typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
    -var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
    -var Pipe = class {
    -  src;
    -  dest;
    -  opts;
    -  ondrain;
    -  constructor(src, dest, opts) {
    -    this.src = src;
    -    this.dest = dest;
    -    this.opts = opts;
    -    this.ondrain = () => src[RESUME]();
    -    this.dest.on("drain", this.ondrain);
    -  }
    -  unpipe() {
    -    this.dest.removeListener("drain", this.ondrain);
    -  }
    -  // only here for the prototype
    -  /* c8 ignore start */
    -  proxyErrors(_er) {
    -  }
    -  /* c8 ignore stop */
    -  end() {
    -    this.unpipe();
    -    if (this.opts.end)
    -      this.dest.end();
    -  }
    -};
    -var PipeProxyErrors = class extends Pipe {
    -  unpipe() {
    -    this.src.removeListener("error", this.proxyErrors);
    -    super.unpipe();
    -  }
    -  constructor(src, dest, opts) {
    -    super(src, dest, opts);
    -    this.proxyErrors = (er) => dest.emit("error", er);
    -    src.on("error", this.proxyErrors);
    -  }
    -};
    -var isObjectModeOptions = (o) => !!o.objectMode;
    -var isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== "buffer";
    -var Minipass = class extends import_events.EventEmitter {
    -  [FLOWING] = false;
    -  [PAUSED] = false;
    -  [PIPES] = [];
    -  [BUFFER] = [];
    -  [OBJECTMODE];
    -  [ENCODING];
    -  [ASYNC];
    -  [DECODER];
    -  [EOF] = false;
    -  [EMITTED_END] = false;
    -  [EMITTING_END] = false;
    -  [CLOSED] = false;
    -  [EMITTED_ERROR] = null;
    -  [BUFFERLENGTH] = 0;
    -  [DESTROYED] = false;
    -  [SIGNAL];
    -  [ABORTED] = false;
    -  [DATALISTENERS] = 0;
    -  [DISCARDED] = false;
    -  /**
    -   * true if the stream can be written
    -   */
    -  writable = true;
    -  /**
    -   * true if the stream can be read
    -   */
    -  readable = true;
    -  /**
    -   * If `RType` is Buffer, then options do not need to be provided.
    -   * Otherwise, an options object must be provided to specify either
    -   * {@link Minipass.SharedOptions.objectMode} or
    -   * {@link Minipass.SharedOptions.encoding}, as appropriate.
    -   */
    -  constructor(...args) {
    -    const options2 = args[0] || {};
    -    super();
    -    if (options2.objectMode && typeof options2.encoding === "string") {
    -      throw new TypeError("Encoding and objectMode may not be used together");
    -    }
    -    if (isObjectModeOptions(options2)) {
    -      this[OBJECTMODE] = true;
    -      this[ENCODING] = null;
    -    } else if (isEncodingOptions(options2)) {
    -      this[ENCODING] = options2.encoding;
    -      this[OBJECTMODE] = false;
    -    } else {
    -      this[OBJECTMODE] = false;
    -      this[ENCODING] = null;
    -    }
    -    this[ASYNC] = !!options2.async;
    -    this[DECODER] = this[ENCODING] ? new import_string_decoder.StringDecoder(this[ENCODING]) : null;
    -    if (options2 && options2.debugExposeBuffer === true) {
    -      Object.defineProperty(this, "buffer", { get: () => this[BUFFER] });
    -    }
    -    if (options2 && options2.debugExposePipes === true) {
    -      Object.defineProperty(this, "pipes", { get: () => this[PIPES] });
    -    }
    -    const { signal } = options2;
    -    if (signal) {
    -      this[SIGNAL] = signal;
    -      if (signal.aborted) {
    -        this[ABORT]();
    -      } else {
    -        signal.addEventListener("abort", () => this[ABORT]());
    -      }
    -    }
    -  }
    -  /**
    -   * The amount of data stored in the buffer waiting to be read.
    -   *
    -   * For Buffer strings, this will be the total byte length.
    -   * For string encoding streams, this will be the string character length,
    -   * according to JavaScript's `string.length` logic.
    -   * For objectMode streams, this is a count of the items waiting to be
    -   * emitted.
    -   */
    -  get bufferLength() {
    -    return this[BUFFERLENGTH];
    -  }
    -  /**
    -   * The `BufferEncoding` currently in use, or `null`
    -   */
    -  get encoding() {
    -    return this[ENCODING];
    -  }
    -  /**
    -   * @deprecated - This is a read only property
    -   */
    -  set encoding(_enc) {
    -    throw new Error("Encoding must be set at instantiation time");
    -  }
    -  /**
    -   * @deprecated - Encoding may only be set at instantiation time
    -   */
    -  setEncoding(_enc) {
    -    throw new Error("Encoding must be set at instantiation time");
    -  }
    -  /**
    -   * True if this is an objectMode stream
    -   */
    -  get objectMode() {
    -    return this[OBJECTMODE];
    -  }
    -  /**
    -   * @deprecated - This is a read-only property
    -   */
    -  set objectMode(_om) {
    -    throw new Error("objectMode must be set at instantiation time");
    -  }
    -  /**
    -   * true if this is an async stream
    -   */
    -  get ["async"]() {
    -    return this[ASYNC];
    -  }
    -  /**
    -   * Set to true to make this stream async.
    -   *
    -   * Once set, it cannot be unset, as this would potentially cause incorrect
    -   * behavior.  Ie, a sync stream can be made async, but an async stream
    -   * cannot be safely made sync.
    -   */
    -  set ["async"](a) {
    -    this[ASYNC] = this[ASYNC] || !!a;
    -  }
    -  // drop everything and get out of the flow completely
    -  [ABORT]() {
    -    this[ABORTED] = true;
    -    this.emit("abort", this[SIGNAL]?.reason);
    -    this.destroy(this[SIGNAL]?.reason);
    -  }
    -  /**
    -   * True if the stream has been aborted.
    -   */
    -  get aborted() {
    -    return this[ABORTED];
    -  }
    -  /**
    -   * No-op setter. Stream aborted status is set via the AbortSignal provided
    -   * in the constructor options.
    -   */
    -  set aborted(_) {
    -  }
    -  write(chunk, encoding, cb) {
    -    if (this[ABORTED])
    -      return false;
    -    if (this[EOF])
    -      throw new Error("write after end");
    -    if (this[DESTROYED]) {
    -      this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" }));
    -      return true;
    -    }
    -    if (typeof encoding === "function") {
    -      cb = encoding;
    -      encoding = "utf8";
    -    }
    -    if (!encoding)
    -      encoding = "utf8";
    -    const fn = this[ASYNC] ? defer : nodefer;
    -    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
    -      if (isArrayBufferView(chunk)) {
    -        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
    -      } else if (isArrayBufferLike(chunk)) {
    -        chunk = Buffer.from(chunk);
    -      } else if (typeof chunk !== "string") {
    -        throw new Error("Non-contiguous data written to non-objectMode stream");
    -      }
    -    }
    -    if (this[OBJECTMODE]) {
    -      if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
    -        this[FLUSH](true);
    -      if (this[FLOWING])
    -        this.emit("data", chunk);
    -      else
    -        this[BUFFERPUSH](chunk);
    -      if (this[BUFFERLENGTH] !== 0)
    -        this.emit("readable");
    -      if (cb)
    -        fn(cb);
    -      return this[FLOWING];
    -    }
    -    if (!chunk.length) {
    -      if (this[BUFFERLENGTH] !== 0)
    -        this.emit("readable");
    -      if (cb)
    -        fn(cb);
    -      return this[FLOWING];
    -    }
    -    if (typeof chunk === "string" && // unless it is a string already ready for us to use
    -    !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
    -      chunk = Buffer.from(chunk, encoding);
    -    }
    -    if (Buffer.isBuffer(chunk) && this[ENCODING]) {
    -      chunk = this[DECODER].write(chunk);
    -    }
    -    if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
    -      this[FLUSH](true);
    -    if (this[FLOWING])
    -      this.emit("data", chunk);
    -    else
    -      this[BUFFERPUSH](chunk);
    -    if (this[BUFFERLENGTH] !== 0)
    -      this.emit("readable");
    -    if (cb)
    -      fn(cb);
    -    return this[FLOWING];
    -  }
    -  /**
    -   * Low-level explicit read method.
    -   *
    -   * In objectMode, the argument is ignored, and one item is returned if
    -   * available.
    -   *
    -   * `n` is the number of bytes (or in the case of encoding streams,
    -   * characters) to consume. If `n` is not provided, then the entire buffer
    -   * is returned, or `null` is returned if no data is available.
    -   *
    -   * If `n` is greater that the amount of data in the internal buffer,
    -   * then `null` is returned.
    -   */
    -  read(n) {
    -    if (this[DESTROYED])
    -      return null;
    -    this[DISCARDED] = false;
    -    if (this[BUFFERLENGTH] === 0 || n === 0 || n && n > this[BUFFERLENGTH]) {
    -      this[MAYBE_EMIT_END]();
    -      return null;
    -    }
    -    if (this[OBJECTMODE])
    -      n = null;
    -    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
    -      this[BUFFER] = [
    -        this[ENCODING] ? this[BUFFER].join("") : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])
    -      ];
    -    }
    -    const ret = this[READ](n || null, this[BUFFER][0]);
    -    this[MAYBE_EMIT_END]();
    -    return ret;
    -  }
    -  [READ](n, chunk) {
    -    if (this[OBJECTMODE])
    -      this[BUFFERSHIFT]();
    -    else {
    -      const c = chunk;
    -      if (n === c.length || n === null)
    -        this[BUFFERSHIFT]();
    -      else if (typeof c === "string") {
    -        this[BUFFER][0] = c.slice(n);
    -        chunk = c.slice(0, n);
    -        this[BUFFERLENGTH] -= n;
    -      } else {
    -        this[BUFFER][0] = c.subarray(n);
    -        chunk = c.subarray(0, n);
    -        this[BUFFERLENGTH] -= n;
    -      }
    -    }
    -    this.emit("data", chunk);
    -    if (!this[BUFFER].length && !this[EOF])
    -      this.emit("drain");
    -    return chunk;
    -  }
    -  end(chunk, encoding, cb) {
    -    if (typeof chunk === "function") {
    -      cb = chunk;
    -      chunk = void 0;
    -    }
    -    if (typeof encoding === "function") {
    -      cb = encoding;
    -      encoding = "utf8";
    -    }
    -    if (chunk !== void 0)
    -      this.write(chunk, encoding);
    -    if (cb)
    -      this.once("end", cb);
    -    this[EOF] = true;
    -    this.writable = false;
    -    if (this[FLOWING] || !this[PAUSED])
    -      this[MAYBE_EMIT_END]();
    -    return this;
    -  }
    -  // don't let the internal resume be overwritten
    -  [RESUME]() {
    -    if (this[DESTROYED])
    -      return;
    -    if (!this[DATALISTENERS] && !this[PIPES].length) {
    -      this[DISCARDED] = true;
    -    }
    -    this[PAUSED] = false;
    -    this[FLOWING] = true;
    -    this.emit("resume");
    -    if (this[BUFFER].length)
    -      this[FLUSH]();
    -    else if (this[EOF])
    -      this[MAYBE_EMIT_END]();
    -    else
    -      this.emit("drain");
    -  }
    -  /**
    -   * Resume the stream if it is currently in a paused state
    -   *
    -   * If called when there are no pipe destinations or `data` event listeners,
    -   * this will place the stream in a "discarded" state, where all data will
    -   * be thrown away. The discarded state is removed if a pipe destination or
    -   * data handler is added, if pause() is called, or if any synchronous or
    -   * asynchronous iteration is started.
    -   */
    -  resume() {
    -    return this[RESUME]();
    -  }
    -  /**
    -   * Pause the stream
    -   */
    -  pause() {
    -    this[FLOWING] = false;
    -    this[PAUSED] = true;
    -    this[DISCARDED] = false;
    -  }
    -  /**
    -   * true if the stream has been forcibly destroyed
    -   */
    -  get destroyed() {
    -    return this[DESTROYED];
    -  }
    -  /**
    -   * true if the stream is currently in a flowing state, meaning that
    -   * any writes will be immediately emitted.
    -   */
    -  get flowing() {
    -    return this[FLOWING];
    -  }
    -  /**
    -   * true if the stream is currently in a paused state
    -   */
    -  get paused() {
    -    return this[PAUSED];
    -  }
    -  [BUFFERPUSH](chunk) {
    -    if (this[OBJECTMODE])
    -      this[BUFFERLENGTH] += 1;
    -    else
    -      this[BUFFERLENGTH] += chunk.length;
    -    this[BUFFER].push(chunk);
    -  }
    -  [BUFFERSHIFT]() {
    -    if (this[OBJECTMODE])
    -      this[BUFFERLENGTH] -= 1;
    -    else
    -      this[BUFFERLENGTH] -= this[BUFFER][0].length;
    -    return this[BUFFER].shift();
    -  }
    -  [FLUSH](noDrain = false) {
    -    do {
    -    } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length);
    -    if (!noDrain && !this[BUFFER].length && !this[EOF])
    -      this.emit("drain");
    -  }
    -  [FLUSHCHUNK](chunk) {
    -    this.emit("data", chunk);
    -    return this[FLOWING];
    -  }
    -  /**
    -   * Pipe all data emitted by this stream into the destination provided.
    -   *
    -   * Triggers the flow of data.
    -   */
    -  pipe(dest, opts) {
    -    if (this[DESTROYED])
    -      return dest;
    -    this[DISCARDED] = false;
    -    const ended = this[EMITTED_END];
    -    opts = opts || {};
    -    if (dest === proc.stdout || dest === proc.stderr)
    -      opts.end = false;
    -    else
    -      opts.end = opts.end !== false;
    -    opts.proxyErrors = !!opts.proxyErrors;
    -    if (ended) {
    -      if (opts.end)
    -        dest.end();
    -    } else {
    -      this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
    -      if (this[ASYNC])
    -        defer(() => this[RESUME]());
    -      else
    -        this[RESUME]();
    -    }
    -    return dest;
    -  }
    -  /**
    -   * Fully unhook a piped destination stream.
    -   *
    -   * If the destination stream was the only consumer of this stream (ie,
    -   * there are no other piped destinations or `'data'` event listeners)
    -   * then the flow of data will stop until there is another consumer or
    -   * {@link Minipass#resume} is explicitly called.
    -   */
    -  unpipe(dest) {
    -    const p = this[PIPES].find((p2) => p2.dest === dest);
    -    if (p) {
    -      if (this[PIPES].length === 1) {
    -        if (this[FLOWING] && this[DATALISTENERS] === 0) {
    -          this[FLOWING] = false;
    -        }
    -        this[PIPES] = [];
    -      } else
    -        this[PIPES].splice(this[PIPES].indexOf(p), 1);
    -      p.unpipe();
    -    }
    -  }
    -  /**
    -   * Alias for {@link Minipass#on}
    -   */
    -  addListener(ev, handler) {
    -    return this.on(ev, handler);
    -  }
    -  /**
    -   * Mostly identical to `EventEmitter.on`, with the following
    -   * behavior differences to prevent data loss and unnecessary hangs:
    -   *
    -   * - Adding a 'data' event handler will trigger the flow of data
    -   *
    -   * - Adding a 'readable' event handler when there is data waiting to be read
    -   *   will cause 'readable' to be emitted immediately.
    -   *
    -   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
    -   *   already passed will cause the event to be emitted immediately and all
    -   *   handlers removed.
    -   *
    -   * - Adding an 'error' event handler after an error has been emitted will
    -   *   cause the event to be re-emitted immediately with the error previously
    -   *   raised.
    -   */
    -  on(ev, handler) {
    -    const ret = super.on(ev, handler);
    -    if (ev === "data") {
    -      this[DISCARDED] = false;
    -      this[DATALISTENERS]++;
    -      if (!this[PIPES].length && !this[FLOWING]) {
    -        this[RESUME]();
    -      }
    -    } else if (ev === "readable" && this[BUFFERLENGTH] !== 0) {
    -      super.emit("readable");
    -    } else if (isEndish(ev) && this[EMITTED_END]) {
    -      super.emit(ev);
    -      this.removeAllListeners(ev);
    -    } else if (ev === "error" && this[EMITTED_ERROR]) {
    -      const h = handler;
    -      if (this[ASYNC])
    -        defer(() => h.call(this, this[EMITTED_ERROR]));
    -      else
    -        h.call(this, this[EMITTED_ERROR]);
    -    }
    -    return ret;
    -  }
    -  /**
    -   * Alias for {@link Minipass#off}
    -   */
    -  removeListener(ev, handler) {
    -    return this.off(ev, handler);
    -  }
    -  /**
    -   * Mostly identical to `EventEmitter.off`
    -   *
    -   * If a 'data' event handler is removed, and it was the last consumer
    -   * (ie, there are no pipe destinations or other 'data' event listeners),
    -   * then the flow of data will stop until there is another consumer or
    -   * {@link Minipass#resume} is explicitly called.
    -   */
    -  off(ev, handler) {
    -    const ret = super.off(ev, handler);
    -    if (ev === "data") {
    -      this[DATALISTENERS] = this.listeners("data").length;
    -      if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) {
    -        this[FLOWING] = false;
    -      }
    -    }
    -    return ret;
    -  }
    -  /**
    -   * Mostly identical to `EventEmitter.removeAllListeners`
    -   *
    -   * If all 'data' event handlers are removed, and they were the last consumer
    -   * (ie, there are no pipe destinations), then the flow of data will stop
    -   * until there is another consumer or {@link Minipass#resume} is explicitly
    -   * called.
    -   */
    -  removeAllListeners(ev) {
    -    const ret = super.removeAllListeners(ev);
    -    if (ev === "data" || ev === void 0) {
    -      this[DATALISTENERS] = 0;
    -      if (!this[DISCARDED] && !this[PIPES].length) {
    -        this[FLOWING] = false;
    -      }
    -    }
    -    return ret;
    -  }
    -  /**
    -   * true if the 'end' event has been emitted
    -   */
    -  get emittedEnd() {
    -    return this[EMITTED_END];
    -  }
    -  [MAYBE_EMIT_END]() {
    -    if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
    -      this[EMITTING_END] = true;
    -      this.emit("end");
    -      this.emit("prefinish");
    -      this.emit("finish");
    -      if (this[CLOSED])
    -        this.emit("close");
    -      this[EMITTING_END] = false;
    -    }
    -  }
    -  /**
    -   * Mostly identical to `EventEmitter.emit`, with the following
    -   * behavior differences to prevent data loss and unnecessary hangs:
    -   *
    -   * If the stream has been destroyed, and the event is something other
    -   * than 'close' or 'error', then `false` is returned and no handlers
    -   * are called.
    -   *
    -   * If the event is 'end', and has already been emitted, then the event
    -   * is ignored. If the stream is in a paused or non-flowing state, then
    -   * the event will be deferred until data flow resumes. If the stream is
    -   * async, then handlers will be called on the next tick rather than
    -   * immediately.
    -   *
    -   * If the event is 'close', and 'end' has not yet been emitted, then
    -   * the event will be deferred until after 'end' is emitted.
    -   *
    -   * If the event is 'error', and an AbortSignal was provided for the stream,
    -   * and there are no listeners, then the event is ignored, matching the
    -   * behavior of node core streams in the presense of an AbortSignal.
    -   *
    -   * If the event is 'finish' or 'prefinish', then all listeners will be
    -   * removed after emitting the event, to prevent double-firing.
    -   */
    -  emit(ev, ...args) {
    -    const data = args[0];
    -    if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) {
    -      return false;
    -    } else if (ev === "data") {
    -      return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? (defer(() => this[EMITDATA](data)), true) : this[EMITDATA](data);
    -    } else if (ev === "end") {
    -      return this[EMITEND]();
    -    } else if (ev === "close") {
    -      this[CLOSED] = true;
    -      if (!this[EMITTED_END] && !this[DESTROYED])
    -        return false;
    -      const ret2 = super.emit("close");
    -      this.removeAllListeners("close");
    -      return ret2;
    -    } else if (ev === "error") {
    -      this[EMITTED_ERROR] = data;
    -      super.emit(ERROR, data);
    -      const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false;
    -      this[MAYBE_EMIT_END]();
    -      return ret2;
    -    } else if (ev === "resume") {
    -      const ret2 = super.emit("resume");
    -      this[MAYBE_EMIT_END]();
    -      return ret2;
    -    } else if (ev === "finish" || ev === "prefinish") {
    -      const ret2 = super.emit(ev);
    -      this.removeAllListeners(ev);
    -      return ret2;
    -    }
    -    const ret = super.emit(ev, ...args);
    -    this[MAYBE_EMIT_END]();
    -    return ret;
    -  }
    -  [EMITDATA](data) {
    -    for (const p of this[PIPES]) {
    -      if (p.dest.write(data) === false)
    -        this.pause();
    -    }
    -    const ret = this[DISCARDED] ? false : super.emit("data", data);
    -    this[MAYBE_EMIT_END]();
    -    return ret;
    -  }
    -  [EMITEND]() {
    -    if (this[EMITTED_END])
    -      return false;
    -    this[EMITTED_END] = true;
    -    this.readable = false;
    -    return this[ASYNC] ? (defer(() => this[EMITEND2]()), true) : this[EMITEND2]();
    -  }
    -  [EMITEND2]() {
    -    if (this[DECODER]) {
    -      const data = this[DECODER].end();
    -      if (data) {
    -        for (const p of this[PIPES]) {
    -          p.dest.write(data);
    -        }
    -        if (!this[DISCARDED])
    -          super.emit("data", data);
    -      }
    -    }
    -    for (const p of this[PIPES]) {
    -      p.end();
    -    }
    -    const ret = super.emit("end");
    -    this.removeAllListeners("end");
    -    return ret;
    -  }
    -  /**
    -   * Return a Promise that resolves to an array of all emitted data once
    -   * the stream ends.
    -   */
    -  async collect() {
    -    const buf = Object.assign([], {
    -      dataLength: 0
    -    });
    -    if (!this[OBJECTMODE])
    -      buf.dataLength = 0;
    -    const p = this.promise();
    -    this.on("data", (c) => {
    -      buf.push(c);
    -      if (!this[OBJECTMODE])
    -        buf.dataLength += c.length;
    -    });
    -    await p;
    -    return buf;
    -  }
    -  /**
    -   * Return a Promise that resolves to the concatenation of all emitted data
    -   * once the stream ends.
    -   *
    -   * Not allowed on objectMode streams.
    -   */
    -  async concat() {
    -    if (this[OBJECTMODE]) {
    -      throw new Error("cannot concat in objectMode");
    -    }
    -    const buf = await this.collect();
    -    return this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength);
    -  }
    -  /**
    -   * Return a void Promise that resolves once the stream ends.
    -   */
    -  async promise() {
    -    return new Promise((resolve, reject) => {
    -      this.on(DESTROYED, () => reject(new Error("stream destroyed")));
    -      this.on("error", (er) => reject(er));
    -      this.on("end", () => resolve());
    -    });
    -  }
    -  /**
    -   * Asynchronous `for await of` iteration.
    -   *
    -   * This will continue emitting all chunks until the stream terminates.
    -   */
    -  [Symbol.asyncIterator]() {
    -    this[DISCARDED] = false;
    -    let stopped = false;
    -    const stop = async () => {
    -      this.pause();
    -      stopped = true;
    -      return { value: void 0, done: true };
    -    };
    -    const next = () => {
    -      if (stopped)
    -        return stop();
    -      const res = this.read();
    -      if (res !== null)
    -        return Promise.resolve({ done: false, value: res });
    -      if (this[EOF])
    -        return stop();
    -      let resolve;
    -      let reject;
    -      const onerr = (er) => {
    -        this.off("data", ondata);
    -        this.off("end", onend);
    -        this.off(DESTROYED, ondestroy);
    -        stop();
    -        reject(er);
    -      };
    -      const ondata = (value) => {
    -        this.off("error", onerr);
    -        this.off("end", onend);
    -        this.off(DESTROYED, ondestroy);
    -        this.pause();
    -        resolve({ value, done: !!this[EOF] });
    -      };
    -      const onend = () => {
    -        this.off("error", onerr);
    -        this.off("data", ondata);
    -        this.off(DESTROYED, ondestroy);
    -        stop();
    -        resolve({ done: true, value: void 0 });
    -      };
    -      const ondestroy = () => onerr(new Error("stream destroyed"));
    -      return new Promise((res2, rej) => {
    -        reject = rej;
    -        resolve = res2;
    -        this.once(DESTROYED, ondestroy);
    -        this.once("error", onerr);
    -        this.once("end", onend);
    -        this.once("data", ondata);
    -      });
    -    };
    -    return {
    -      next,
    -      throw: stop,
    -      return: stop,
    -      [Symbol.asyncIterator]() {
    -        return this;
    -      }
    -    };
    -  }
    -  /**
    -   * Synchronous `for of` iteration.
    -   *
    -   * The iteration will terminate when the internal buffer runs out, even
    -   * if the stream has not yet terminated.
    -   */
    -  [Symbol.iterator]() {
    -    this[DISCARDED] = false;
    -    let stopped = false;
    -    const stop = () => {
    -      this.pause();
    -      this.off(ERROR, stop);
    -      this.off(DESTROYED, stop);
    -      this.off("end", stop);
    -      stopped = true;
    -      return { done: true, value: void 0 };
    -    };
    -    const next = () => {
    -      if (stopped)
    -        return stop();
    -      const value = this.read();
    -      return value === null ? stop() : { done: false, value };
    -    };
    -    this.once("end", stop);
    -    this.once(ERROR, stop);
    -    this.once(DESTROYED, stop);
    -    return {
    -      next,
    -      throw: stop,
    -      return: stop,
    -      [Symbol.iterator]() {
    -        return this;
    -      }
    -    };
    -  }
    -  /**
    -   * Destroy a stream, preventing it from being used for any further purpose.
    -   *
    -   * If the stream has a `close()` method, then it will be called on
    -   * destruction.
    -   *
    -   * After destruction, any attempt to write data, read data, or emit most
    -   * events will be ignored.
    -   *
    -   * If an error argument is provided, then it will be emitted in an
    -   * 'error' event.
    -   */
    -  destroy(er) {
    -    if (this[DESTROYED]) {
    -      if (er)
    -        this.emit("error", er);
    -      else
    -        this.emit(DESTROYED);
    -      return this;
    -    }
    -    this[DESTROYED] = true;
    -    this[DISCARDED] = true;
    -    this[BUFFER].length = 0;
    -    this[BUFFERLENGTH] = 0;
    -    const wc = this;
    -    if (typeof wc.close === "function" && !this[CLOSED])
    -      wc.close();
    -    if (er)
    -      this.emit("error", er);
    -    else
    -      this.emit(DESTROYED);
    -    return this;
    -  }
    -  /**
    -   * Alias for {@link isStream}
    -   *
    -   * Former export location, maintained for backwards compatibility.
    -   *
    -   * @deprecated
    -   */
    -  static get isStream() {
    -    return isStream;
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
    -var realpathSync = import_fs.realpathSync.native;
    -var defaultFS = {
    -  lstatSync: import_fs.lstatSync,
    -  readdir: import_fs.readdir,
    -  readdirSync: import_fs.readdirSync,
    -  readlinkSync: import_fs.readlinkSync,
    -  realpathSync,
    -  promises: {
    -    lstat: import_promises5.lstat,
    -    readdir: import_promises5.readdir,
    -    readlink: import_promises5.readlink,
    -    realpath: import_promises5.realpath
    -  }
    -};
    -var fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ? defaultFS : {
    -  ...defaultFS,
    -  ...fsOption,
    -  promises: {
    -    ...defaultFS.promises,
    -    ...fsOption.promises || {}
    -  }
    -};
    -var uncDriveRegexp = /^\\\\\?\\([a-z]:)\\?$/i;
    -var uncToDrive = (rootPath) => rootPath.replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
    -var eitherSep = /[\\\/]/;
    -var UNKNOWN2 = 0;
    -var IFIFO = 1;
    -var IFCHR = 2;
    -var IFDIR = 4;
    -var IFBLK = 6;
    -var IFREG = 8;
    -var IFLNK = 10;
    -var IFSOCK = 12;
    -var IFMT = 15;
    -var IFMT_UNKNOWN = ~IFMT;
    -var READDIR_CALLED = 16;
    -var LSTAT_CALLED = 32;
    -var ENOTDIR = 64;
    -var ENOENT = 128;
    -var ENOREADLINK = 256;
    -var ENOREALPATH = 512;
    -var ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
    -var TYPEMASK = 1023;
    -var entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN2;
    -var normalizeCache = /* @__PURE__ */ new Map();
    -var normalize = (s) => {
    -  const c = normalizeCache.get(s);
    -  if (c)
    -    return c;
    -  const n = s.normalize("NFKD");
    -  normalizeCache.set(s, n);
    -  return n;
    -};
    -var normalizeNocaseCache = /* @__PURE__ */ new Map();
    -var normalizeNocase = (s) => {
    -  const c = normalizeNocaseCache.get(s);
    -  if (c)
    -    return c;
    -  const n = normalize(s.toLowerCase());
    -  normalizeNocaseCache.set(s, n);
    -  return n;
    -};
    -var ResolveCache = class extends LRUCache {
    -  constructor() {
    -    super({ max: 256 });
    -  }
    -};
    -var ChildrenCache = class extends LRUCache {
    -  constructor(maxSize = 16 * 1024) {
    -    super({
    -      maxSize,
    -      // parent + children
    -      sizeCalculation: (a) => a.length + 1
    -    });
    -  }
    -};
    -var setAsCwd = Symbol("PathScurry setAsCwd");
    -var PathBase = class {
    -  /**
    -   * the basename of this path
    -   *
    -   * **Important**: *always* test the path name against any test string
    -   * usingthe {@link isNamed} method, and not by directly comparing this
    -   * string. Otherwise, unicode path strings that the system sees as identical
    -   * will not be properly treated as the same path, leading to incorrect
    -   * behavior and possible security issues.
    -   */
    -  name;
    -  /**
    -   * the Path entry corresponding to the path root.
    -   *
    -   * @internal
    -   */
    -  root;
    -  /**
    -   * All roots found within the current PathScurry family
    -   *
    -   * @internal
    -   */
    -  roots;
    -  /**
    -   * a reference to the parent path, or undefined in the case of root entries
    -   *
    -   * @internal
    -   */
    -  parent;
    -  /**
    -   * boolean indicating whether paths are compared case-insensitively
    -   * @internal
    -   */
    -  nocase;
    -  // potential default fs override
    -  #fs;
    -  // Stats fields
    -  #dev;
    -  get dev() {
    -    return this.#dev;
    -  }
    -  #mode;
    -  get mode() {
    -    return this.#mode;
    -  }
    -  #nlink;
    -  get nlink() {
    -    return this.#nlink;
    -  }
    -  #uid;
    -  get uid() {
    -    return this.#uid;
    -  }
    -  #gid;
    -  get gid() {
    -    return this.#gid;
    -  }
    -  #rdev;
    -  get rdev() {
    -    return this.#rdev;
    -  }
    -  #blksize;
    -  get blksize() {
    -    return this.#blksize;
    -  }
    -  #ino;
    -  get ino() {
    -    return this.#ino;
    -  }
    -  #size;
    -  get size() {
    -    return this.#size;
    -  }
    -  #blocks;
    -  get blocks() {
    -    return this.#blocks;
    -  }
    -  #atimeMs;
    -  get atimeMs() {
    -    return this.#atimeMs;
    -  }
    -  #mtimeMs;
    -  get mtimeMs() {
    -    return this.#mtimeMs;
    -  }
    -  #ctimeMs;
    -  get ctimeMs() {
    -    return this.#ctimeMs;
    -  }
    -  #birthtimeMs;
    -  get birthtimeMs() {
    -    return this.#birthtimeMs;
    -  }
    -  #atime;
    -  get atime() {
    -    return this.#atime;
    -  }
    -  #mtime;
    -  get mtime() {
    -    return this.#mtime;
    -  }
    -  #ctime;
    -  get ctime() {
    -    return this.#ctime;
    -  }
    -  #birthtime;
    -  get birthtime() {
    -    return this.#birthtime;
    -  }
    -  #matchName;
    -  #depth;
    -  #fullpath;
    -  #fullpathPosix;
    -  #relative;
    -  #relativePosix;
    -  #type;
    -  #children;
    -  #linkTarget;
    -  #realpath;
    -  /**
    -   * This property is for compatibility with the Dirent class as of
    -   * Node v20, where Dirent['path'] refers to the path of the directory
    -   * that was passed to readdir.  So, somewhat counterintuitively, this
    -   * property refers to the *parent* path, not the path object itself.
    -   * For root entries, it's the path to the entry itself.
    -   */
    -  get path() {
    -    return (this.parent || this).fullpath();
    -  }
    -  /**
    -   * Do not create new Path objects directly.  They should always be accessed
    -   * via the PathScurry class or other methods on the Path class.
    -   *
    -   * @internal
    -   */
    -  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
    -    this.name = name;
    -    this.#matchName = nocase ? normalizeNocase(name) : normalize(name);
    -    this.#type = type2 & TYPEMASK;
    -    this.nocase = nocase;
    -    this.roots = roots;
    -    this.root = root || this;
    -    this.#children = children;
    -    this.#fullpath = opts.fullpath;
    -    this.#relative = opts.relative;
    -    this.#relativePosix = opts.relativePosix;
    -    this.parent = opts.parent;
    -    if (this.parent) {
    -      this.#fs = this.parent.#fs;
    -    } else {
    -      this.#fs = fsFromOption(opts.fs);
    -    }
    -  }
    -  /**
    -   * Returns the depth of the Path object from its root.
    -   *
    -   * For example, a path at `/foo/bar` would have a depth of 2.
    -   */
    -  depth() {
    -    if (this.#depth !== void 0)
    -      return this.#depth;
    -    if (!this.parent)
    -      return this.#depth = 0;
    -    return this.#depth = this.parent.depth() + 1;
    -  }
    -  /**
    -   * @internal
    -   */
    -  childrenCache() {
    -    return this.#children;
    -  }
    -  /**
    -   * Get the Path object referenced by the string path, resolved from this Path
    -   */
    -  resolve(path8) {
    -    if (!path8) {
    -      return this;
    -    }
    -    const rootPath = this.getRootString(path8);
    -    const dir = path8.substring(rootPath.length);
    -    const dirParts = dir.split(this.splitSep);
    -    const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts);
    -    return result;
    -  }
    -  #resolveParts(dirParts) {
    -    let p = this;
    -    for (const part of dirParts) {
    -      p = p.child(part);
    -    }
    -    return p;
    -  }
    -  /**
    -   * Returns the cached children Path objects, if still available.  If they
    -   * have fallen out of the cache, then returns an empty array, and resets the
    -   * READDIR_CALLED bit, so that future calls to readdir() will require an fs
    -   * lookup.
    -   *
    -   * @internal
    -   */
    -  children() {
    -    const cached = this.#children.get(this);
    -    if (cached) {
    -      return cached;
    -    }
    -    const children = Object.assign([], { provisional: 0 });
    -    this.#children.set(this, children);
    -    this.#type &= ~READDIR_CALLED;
    -    return children;
    -  }
    -  /**
    -   * Resolves a path portion and returns or creates the child Path.
    -   *
    -   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is
    -   * `'..'`.
    -   *
    -   * This should not be called directly.  If `pathPart` contains any path
    -   * separators, it will lead to unsafe undefined behavior.
    -   *
    -   * Use `Path.resolve()` instead.
    -   *
    -   * @internal
    -   */
    -  child(pathPart, opts) {
    -    if (pathPart === "" || pathPart === ".") {
    -      return this;
    -    }
    -    if (pathPart === "..") {
    -      return this.parent || this;
    -    }
    -    const children = this.children();
    -    const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
    -    for (const p of children) {
    -      if (p.#matchName === name) {
    -        return p;
    -      }
    -    }
    -    const s = this.parent ? this.sep : "";
    -    const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0;
    -    const pchild = this.newChild(pathPart, UNKNOWN2, {
    -      ...opts,
    -      parent: this,
    -      fullpath
    -    });
    -    if (!this.canReaddir()) {
    -      pchild.#type |= ENOENT;
    -    }
    -    children.push(pchild);
    -    return pchild;
    -  }
    -  /**
    -   * The relative path from the cwd. If it does not share an ancestor with
    -   * the cwd, then this ends up being equivalent to the fullpath()
    -   */
    -  relative() {
    -    if (this.#relative !== void 0) {
    -      return this.#relative;
    -    }
    -    const name = this.name;
    -    const p = this.parent;
    -    if (!p) {
    -      return this.#relative = this.name;
    -    }
    -    const pv = p.relative();
    -    return pv + (!pv || !p.parent ? "" : this.sep) + name;
    -  }
    -  /**
    -   * The relative path from the cwd, using / as the path separator.
    -   * If it does not share an ancestor with
    -   * the cwd, then this ends up being equivalent to the fullpathPosix()
    -   * On posix systems, this is identical to relative().
    -   */
    -  relativePosix() {
    -    if (this.sep === "/")
    -      return this.relative();
    -    if (this.#relativePosix !== void 0)
    -      return this.#relativePosix;
    -    const name = this.name;
    -    const p = this.parent;
    -    if (!p) {
    -      return this.#relativePosix = this.fullpathPosix();
    -    }
    -    const pv = p.relativePosix();
    -    return pv + (!pv || !p.parent ? "" : "/") + name;
    -  }
    -  /**
    -   * The fully resolved path string for this Path entry
    -   */
    -  fullpath() {
    -    if (this.#fullpath !== void 0) {
    -      return this.#fullpath;
    -    }
    -    const name = this.name;
    -    const p = this.parent;
    -    if (!p) {
    -      return this.#fullpath = this.name;
    -    }
    -    const pv = p.fullpath();
    -    const fp = pv + (!p.parent ? "" : this.sep) + name;
    -    return this.#fullpath = fp;
    -  }
    -  /**
    -   * On platforms other than windows, this is identical to fullpath.
    -   *
    -   * On windows, this is overridden to return the forward-slash form of the
    -   * full UNC path.
    -   */
    -  fullpathPosix() {
    -    if (this.#fullpathPosix !== void 0)
    -      return this.#fullpathPosix;
    -    if (this.sep === "/")
    -      return this.#fullpathPosix = this.fullpath();
    -    if (!this.parent) {
    -      const p2 = this.fullpath().replace(/\\/g, "/");
    -      if (/^[a-z]:\//i.test(p2)) {
    -        return this.#fullpathPosix = `//?/${p2}`;
    -      } else {
    -        return this.#fullpathPosix = p2;
    -      }
    -    }
    -    const p = this.parent;
    -    const pfpp = p.fullpathPosix();
    -    const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name;
    -    return this.#fullpathPosix = fpp;
    -  }
    -  /**
    -   * Is the Path of an unknown type?
    -   *
    -   * Note that we might know *something* about it if there has been a previous
    -   * filesystem operation, for example that it does not exist, or is not a
    -   * link, or whether it has child entries.
    -   */
    -  isUnknown() {
    -    return (this.#type & IFMT) === UNKNOWN2;
    -  }
    -  isType(type2) {
    -    return this[`is${type2}`]();
    -  }
    -  getType() {
    -    return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : (
    -      /* c8 ignore start */
    -      this.isSocket() ? "Socket" : "Unknown"
    -    );
    -  }
    -  /**
    -   * Is the Path a regular file?
    -   */
    -  isFile() {
    -    return (this.#type & IFMT) === IFREG;
    -  }
    -  /**
    -   * Is the Path a directory?
    -   */
    -  isDirectory() {
    -    return (this.#type & IFMT) === IFDIR;
    -  }
    -  /**
    -   * Is the path a character device?
    -   */
    -  isCharacterDevice() {
    -    return (this.#type & IFMT) === IFCHR;
    -  }
    -  /**
    -   * Is the path a block device?
    -   */
    -  isBlockDevice() {
    -    return (this.#type & IFMT) === IFBLK;
    -  }
    -  /**
    -   * Is the path a FIFO pipe?
    -   */
    -  isFIFO() {
    -    return (this.#type & IFMT) === IFIFO;
    -  }
    -  /**
    -   * Is the path a socket?
    -   */
    -  isSocket() {
    -    return (this.#type & IFMT) === IFSOCK;
    -  }
    -  /**
    -   * Is the path a symbolic link?
    -   */
    -  isSymbolicLink() {
    -    return (this.#type & IFLNK) === IFLNK;
    -  }
    -  /**
    -   * Return the entry if it has been subject of a successful lstat, or
    -   * undefined otherwise.
    -   *
    -   * Does not read the filesystem, so an undefined result *could* simply
    -   * mean that we haven't called lstat on it.
    -   */
    -  lstatCached() {
    -    return this.#type & LSTAT_CALLED ? this : void 0;
    -  }
    -  /**
    -   * Return the cached link target if the entry has been the subject of a
    -   * successful readlink, or undefined otherwise.
    -   *
    -   * Does not read the filesystem, so an undefined result *could* just mean we
    -   * don't have any cached data. Only use it if you are very sure that a
    -   * readlink() has been called at some point.
    -   */
    -  readlinkCached() {
    -    return this.#linkTarget;
    -  }
    -  /**
    -   * Returns the cached realpath target if the entry has been the subject
    -   * of a successful realpath, or undefined otherwise.
    -   *
    -   * Does not read the filesystem, so an undefined result *could* just mean we
    -   * don't have any cached data. Only use it if you are very sure that a
    -   * realpath() has been called at some point.
    -   */
    -  realpathCached() {
    -    return this.#realpath;
    -  }
    -  /**
    -   * Returns the cached child Path entries array if the entry has been the
    -   * subject of a successful readdir(), or [] otherwise.
    -   *
    -   * Does not read the filesystem, so an empty array *could* just mean we
    -   * don't have any cached data. Only use it if you are very sure that a
    -   * readdir() has been called recently enough to still be valid.
    -   */
    -  readdirCached() {
    -    const children = this.children();
    -    return children.slice(0, children.provisional);
    -  }
    -  /**
    -   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have
    -   * any indication that readlink will definitely fail.
    -   *
    -   * Returns false if the path is known to not be a symlink, if a previous
    -   * readlink failed, or if the entry does not exist.
    -   */
    -  canReadlink() {
    -    if (this.#linkTarget)
    -      return true;
    -    if (!this.parent)
    -      return false;
    -    const ifmt = this.#type & IFMT;
    -    return !(ifmt !== UNKNOWN2 && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT);
    -  }
    -  /**
    -   * Return true if readdir has previously been successfully called on this
    -   * path, indicating that cachedReaddir() is likely valid.
    -   */
    -  calledReaddir() {
    -    return !!(this.#type & READDIR_CALLED);
    -  }
    -  /**
    -   * Returns true if the path is known to not exist. That is, a previous lstat
    -   * or readdir failed to verify its existence when that would have been
    -   * expected, or a parent entry was marked either enoent or enotdir.
    -   */
    -  isENOENT() {
    -    return !!(this.#type & ENOENT);
    -  }
    -  /**
    -   * Return true if the path is a match for the given path name.  This handles
    -   * case sensitivity and unicode normalization.
    -   *
    -   * Note: even on case-sensitive systems, it is **not** safe to test the
    -   * equality of the `.name` property to determine whether a given pathname
    -   * matches, due to unicode normalization mismatches.
    -   *
    -   * Always use this method instead of testing the `path.name` property
    -   * directly.
    -   */
    -  isNamed(n) {
    -    return !this.nocase ? this.#matchName === normalize(n) : this.#matchName === normalizeNocase(n);
    -  }
    -  /**
    -   * Return the Path object corresponding to the target of a symbolic link.
    -   *
    -   * If the Path is not a symbolic link, or if the readlink call fails for any
    -   * reason, `undefined` is returned.
    -   *
    -   * Result is cached, and thus may be outdated if the filesystem is mutated.
    -   */
    -  async readlink() {
    -    const target = this.#linkTarget;
    -    if (target) {
    -      return target;
    -    }
    -    if (!this.canReadlink()) {
    -      return void 0;
    -    }
    -    if (!this.parent) {
    -      return void 0;
    -    }
    -    try {
    -      const read = await this.#fs.promises.readlink(this.fullpath());
    -      const linkTarget = this.parent.resolve(read);
    -      if (linkTarget) {
    -        return this.#linkTarget = linkTarget;
    -      }
    -    } catch (er) {
    -      this.#readlinkFail(er.code);
    -      return void 0;
    -    }
    -  }
    -  /**
    -   * Synchronous {@link PathBase.readlink}
    -   */
    -  readlinkSync() {
    -    const target = this.#linkTarget;
    -    if (target) {
    -      return target;
    -    }
    -    if (!this.canReadlink()) {
    -      return void 0;
    -    }
    -    if (!this.parent) {
    -      return void 0;
    -    }
    -    try {
    -      const read = this.#fs.readlinkSync(this.fullpath());
    -      const linkTarget = this.parent.resolve(read);
    -      if (linkTarget) {
    -        return this.#linkTarget = linkTarget;
    -      }
    -    } catch (er) {
    -      this.#readlinkFail(er.code);
    -      return void 0;
    -    }
    -  }
    -  #readdirSuccess(children) {
    -    this.#type |= READDIR_CALLED;
    -    for (let p = children.provisional; p < children.length; p++) {
    -      children[p].#markENOENT();
    -    }
    -  }
    -  #markENOENT() {
    -    if (this.#type & ENOENT)
    -      return;
    -    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;
    -    this.#markChildrenENOENT();
    -  }
    -  #markChildrenENOENT() {
    -    const children = this.children();
    -    children.provisional = 0;
    -    for (const p of children) {
    -      p.#markENOENT();
    -    }
    -  }
    -  #markENOREALPATH() {
    -    this.#type |= ENOREALPATH;
    -    this.#markENOTDIR();
    -  }
    -  // save the information when we know the entry is not a dir
    -  #markENOTDIR() {
    -    if (this.#type & ENOTDIR)
    -      return;
    -    let t = this.#type;
    -    if ((t & IFMT) === IFDIR)
    -      t &= IFMT_UNKNOWN;
    -    this.#type = t | ENOTDIR;
    -    this.#markChildrenENOENT();
    -  }
    -  #readdirFail(code = "") {
    -    if (code === "ENOTDIR" || code === "EPERM") {
    -      this.#markENOTDIR();
    -    } else if (code === "ENOENT") {
    -      this.#markENOENT();
    -    } else {
    -      this.children().provisional = 0;
    -    }
    -  }
    -  #lstatFail(code = "") {
    -    if (code === "ENOTDIR") {
    -      const p = this.parent;
    -      p.#markENOTDIR();
    -    } else if (code === "ENOENT") {
    -      this.#markENOENT();
    -    }
    -  }
    -  #readlinkFail(code = "") {
    -    let ter = this.#type;
    -    ter |= ENOREADLINK;
    -    if (code === "ENOENT")
    -      ter |= ENOENT;
    -    if (code === "EINVAL" || code === "UNKNOWN") {
    -      ter &= IFMT_UNKNOWN;
    -    }
    -    this.#type = ter;
    -    if (code === "ENOTDIR" && this.parent) {
    -      this.parent.#markENOTDIR();
    -    }
    -  }
    -  #readdirAddChild(e, c) {
    -    return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c);
    -  }
    -  #readdirAddNewChild(e, c) {
    -    const type2 = entToType(e);
    -    const child = this.newChild(e.name, type2, { parent: this });
    -    const ifmt = child.#type & IFMT;
    -    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN2) {
    -      child.#type |= ENOTDIR;
    -    }
    -    c.unshift(child);
    -    c.provisional++;
    -    return child;
    -  }
    -  #readdirMaybePromoteChild(e, c) {
    -    for (let p = c.provisional; p < c.length; p++) {
    -      const pchild = c[p];
    -      const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);
    -      if (name !== pchild.#matchName) {
    -        continue;
    -      }
    -      return this.#readdirPromoteChild(e, pchild, p, c);
    -    }
    -  }
    -  #readdirPromoteChild(e, p, index, c) {
    -    const v = p.name;
    -    p.#type = p.#type & IFMT_UNKNOWN | entToType(e);
    -    if (v !== e.name)
    -      p.name = e.name;
    -    if (index !== c.provisional) {
    -      if (index === c.length - 1)
    -        c.pop();
    -      else
    -        c.splice(index, 1);
    -      c.unshift(p);
    -    }
    -    c.provisional++;
    -    return p;
    -  }
    -  /**
    -   * Call lstat() on this Path, and update all known information that can be
    -   * determined.
    -   *
    -   * Note that unlike `fs.lstat()`, the returned value does not contain some
    -   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
    -   * information is required, you will need to call `fs.lstat` yourself.
    -   *
    -   * If the Path refers to a nonexistent file, or if the lstat call fails for
    -   * any reason, `undefined` is returned.  Otherwise the updated Path object is
    -   * returned.
    -   *
    -   * Results are cached, and thus may be out of date if the filesystem is
    -   * mutated.
    -   */
    -  async lstat() {
    -    if ((this.#type & ENOENT) === 0) {
    -      try {
    -        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));
    -        return this;
    -      } catch (er) {
    -        this.#lstatFail(er.code);
    -      }
    -    }
    -  }
    -  /**
    -   * synchronous {@link PathBase.lstat}
    -   */
    -  lstatSync() {
    -    if ((this.#type & ENOENT) === 0) {
    -      try {
    -        this.#applyStat(this.#fs.lstatSync(this.fullpath()));
    -        return this;
    -      } catch (er) {
    -        this.#lstatFail(er.code);
    -      }
    -    }
    -  }
    -  #applyStat(st) {
    -    const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st;
    -    this.#atime = atime;
    -    this.#atimeMs = atimeMs;
    -    this.#birthtime = birthtime;
    -    this.#birthtimeMs = birthtimeMs;
    -    this.#blksize = blksize;
    -    this.#blocks = blocks;
    -    this.#ctime = ctime;
    -    this.#ctimeMs = ctimeMs;
    -    this.#dev = dev;
    -    this.#gid = gid;
    -    this.#ino = ino;
    -    this.#mode = mode;
    -    this.#mtime = mtime;
    -    this.#mtimeMs = mtimeMs;
    -    this.#nlink = nlink;
    -    this.#rdev = rdev;
    -    this.#size = size;
    -    this.#uid = uid;
    -    const ifmt = entToType(st);
    -    this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED;
    -    if (ifmt !== UNKNOWN2 && ifmt !== IFDIR && ifmt !== IFLNK) {
    -      this.#type |= ENOTDIR;
    -    }
    -  }
    -  #onReaddirCB = [];
    -  #readdirCBInFlight = false;
    -  #callOnReaddirCB(children) {
    -    this.#readdirCBInFlight = false;
    -    const cbs = this.#onReaddirCB.slice();
    -    this.#onReaddirCB.length = 0;
    -    cbs.forEach((cb) => cb(null, children));
    -  }
    -  /**
    -   * Standard node-style callback interface to get list of directory entries.
    -   *
    -   * If the Path cannot or does not contain any children, then an empty array
    -   * is returned.
    -   *
    -   * Results are cached, and thus may be out of date if the filesystem is
    -   * mutated.
    -   *
    -   * @param cb The callback called with (er, entries).  Note that the `er`
    -   * param is somewhat extraneous, as all readdir() errors are handled and
    -   * simply result in an empty set of entries being returned.
    -   * @param allowZalgo Boolean indicating that immediately known results should
    -   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release
    -   * zalgo at your peril, the dark pony lord is devious and unforgiving.
    -   */
    -  readdirCB(cb, allowZalgo = false) {
    -    if (!this.canReaddir()) {
    -      if (allowZalgo)
    -        cb(null, []);
    -      else
    -        queueMicrotask(() => cb(null, []));
    -      return;
    -    }
    -    const children = this.children();
    -    if (this.calledReaddir()) {
    -      const c = children.slice(0, children.provisional);
    -      if (allowZalgo)
    -        cb(null, c);
    -      else
    -        queueMicrotask(() => cb(null, c));
    -      return;
    -    }
    -    this.#onReaddirCB.push(cb);
    -    if (this.#readdirCBInFlight) {
    -      return;
    -    }
    -    this.#readdirCBInFlight = true;
    -    const fullpath = this.fullpath();
    -    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {
    -      if (er) {
    -        this.#readdirFail(er.code);
    -        children.provisional = 0;
    -      } else {
    -        for (const e of entries) {
    -          this.#readdirAddChild(e, children);
    -        }
    -        this.#readdirSuccess(children);
    -      }
    -      this.#callOnReaddirCB(children.slice(0, children.provisional));
    -      return;
    -    });
    -  }
    -  #asyncReaddirInFlight;
    -  /**
    -   * Return an array of known child entries.
    -   *
    -   * If the Path cannot or does not contain any children, then an empty array
    -   * is returned.
    -   *
    -   * Results are cached, and thus may be out of date if the filesystem is
    -   * mutated.
    -   */
    -  async readdir() {
    -    if (!this.canReaddir()) {
    -      return [];
    -    }
    -    const children = this.children();
    -    if (this.calledReaddir()) {
    -      return children.slice(0, children.provisional);
    -    }
    -    const fullpath = this.fullpath();
    -    if (this.#asyncReaddirInFlight) {
    -      await this.#asyncReaddirInFlight;
    -    } else {
    -      let resolve = () => {
    -      };
    -      this.#asyncReaddirInFlight = new Promise((res) => resolve = res);
    -      try {
    -        for (const e of await this.#fs.promises.readdir(fullpath, {
    -          withFileTypes: true
    -        })) {
    -          this.#readdirAddChild(e, children);
    -        }
    -        this.#readdirSuccess(children);
    -      } catch (er) {
    -        this.#readdirFail(er.code);
    -        children.provisional = 0;
    -      }
    -      this.#asyncReaddirInFlight = void 0;
    -      resolve();
    -    }
    -    return children.slice(0, children.provisional);
    -  }
    -  /**
    -   * synchronous {@link PathBase.readdir}
    -   */
    -  readdirSync() {
    -    if (!this.canReaddir()) {
    -      return [];
    -    }
    -    const children = this.children();
    -    if (this.calledReaddir()) {
    -      return children.slice(0, children.provisional);
    -    }
    -    const fullpath = this.fullpath();
    -    try {
    -      for (const e of this.#fs.readdirSync(fullpath, {
    -        withFileTypes: true
    -      })) {
    -        this.#readdirAddChild(e, children);
    -      }
    -      this.#readdirSuccess(children);
    -    } catch (er) {
    -      this.#readdirFail(er.code);
    -      children.provisional = 0;
    -    }
    -    return children.slice(0, children.provisional);
    -  }
    -  canReaddir() {
    -    if (this.#type & ENOCHILD)
    -      return false;
    -    const ifmt = IFMT & this.#type;
    -    if (!(ifmt === UNKNOWN2 || ifmt === IFDIR || ifmt === IFLNK)) {
    -      return false;
    -    }
    -    return true;
    -  }
    -  shouldWalk(dirs, walkFilter) {
    -    return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this));
    -  }
    -  /**
    -   * Return the Path object corresponding to path as resolved
    -   * by realpath(3).
    -   *
    -   * If the realpath call fails for any reason, `undefined` is returned.
    -   *
    -   * Result is cached, and thus may be outdated if the filesystem is mutated.
    -   * On success, returns a Path object.
    -   */
    -  async realpath() {
    -    if (this.#realpath)
    -      return this.#realpath;
    -    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
    -      return void 0;
    -    try {
    -      const rp = await this.#fs.promises.realpath(this.fullpath());
    -      return this.#realpath = this.resolve(rp);
    -    } catch (_) {
    -      this.#markENOREALPATH();
    -    }
    -  }
    -  /**
    -   * Synchronous {@link realpath}
    -   */
    -  realpathSync() {
    -    if (this.#realpath)
    -      return this.#realpath;
    -    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
    -      return void 0;
    -    try {
    -      const rp = this.#fs.realpathSync(this.fullpath());
    -      return this.#realpath = this.resolve(rp);
    -    } catch (_) {
    -      this.#markENOREALPATH();
    -    }
    -  }
    -  /**
    -   * Internal method to mark this Path object as the scurry cwd,
    -   * called by {@link PathScurry#chdir}
    -   *
    -   * @internal
    -   */
    -  [setAsCwd](oldCwd) {
    -    if (oldCwd === this)
    -      return;
    -    const changed = /* @__PURE__ */ new Set([]);
    -    let rp = [];
    -    let p = this;
    -    while (p && p.parent) {
    -      changed.add(p);
    -      p.#relative = rp.join(this.sep);
    -      p.#relativePosix = rp.join("/");
    -      p = p.parent;
    -      rp.push("..");
    -    }
    -    p = oldCwd;
    -    while (p && p.parent && !changed.has(p)) {
    -      p.#relative = void 0;
    -      p.#relativePosix = void 0;
    -      p = p.parent;
    -    }
    -  }
    -};
    -var PathWin32 = class _PathWin32 extends PathBase {
    -  /**
    -   * Separator for generating path strings.
    -   */
    -  sep = "\\";
    -  /**
    -   * Separator for parsing path strings.
    -   */
    -  splitSep = eitherSep;
    -  /**
    -   * Do not create new Path objects directly.  They should always be accessed
    -   * via the PathScurry class or other methods on the Path class.
    -   *
    -   * @internal
    -   */
    -  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
    -    super(name, type2, root, roots, nocase, children, opts);
    -  }
    -  /**
    -   * @internal
    -   */
    -  newChild(name, type2 = UNKNOWN2, opts = {}) {
    -    return new _PathWin32(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
    -  }
    -  /**
    -   * @internal
    -   */
    -  getRootString(path8) {
    -    return import_path5.win32.parse(path8).root;
    -  }
    -  /**
    -   * @internal
    -   */
    -  getRoot(rootPath) {
    -    rootPath = uncToDrive(rootPath.toUpperCase());
    -    if (rootPath === this.root.name) {
    -      return this.root;
    -    }
    -    for (const [compare, root] of Object.entries(this.roots)) {
    -      if (this.sameRoot(rootPath, compare)) {
    -        return this.roots[rootPath] = root;
    -      }
    -    }
    -    return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root;
    -  }
    -  /**
    -   * @internal
    -   */
    -  sameRoot(rootPath, compare = this.root.name) {
    -    rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
    -    return rootPath === compare;
    -  }
    -};
    -var PathPosix = class _PathPosix extends PathBase {
    -  /**
    -   * separator for parsing path strings
    -   */
    -  splitSep = "/";
    -  /**
    -   * separator for generating path strings
    -   */
    -  sep = "/";
    -  /**
    -   * Do not create new Path objects directly.  They should always be accessed
    -   * via the PathScurry class or other methods on the Path class.
    -   *
    -   * @internal
    -   */
    -  constructor(name, type2 = UNKNOWN2, root, roots, nocase, children, opts) {
    -    super(name, type2, root, roots, nocase, children, opts);
    -  }
    -  /**
    -   * @internal
    -   */
    -  getRootString(path8) {
    -    return path8.startsWith("/") ? "/" : "";
    -  }
    -  /**
    -   * @internal
    -   */
    -  getRoot(_rootPath) {
    -    return this.root;
    -  }
    -  /**
    -   * @internal
    -   */
    -  newChild(name, type2 = UNKNOWN2, opts = {}) {
    -    return new _PathPosix(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
    -  }
    -};
    -var PathScurryBase = class {
    -  /**
    -   * The root Path entry for the current working directory of this Scurry
    -   */
    -  root;
    -  /**
    -   * The string path for the root of this Scurry's current working directory
    -   */
    -  rootPath;
    -  /**
    -   * A collection of all roots encountered, referenced by rootPath
    -   */
    -  roots;
    -  /**
    -   * The Path entry corresponding to this PathScurry's current working directory.
    -   */
    -  cwd;
    -  #resolveCache;
    -  #resolvePosixCache;
    -  #children;
    -  /**
    -   * Perform path comparisons case-insensitively.
    -   *
    -   * Defaults true on Darwin and Windows systems, false elsewhere.
    -   */
    -  nocase;
    -  #fs;
    -  /**
    -   * This class should not be instantiated directly.
    -   *
    -   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry
    -   *
    -   * @internal
    -   */
    -  constructor(cwd = process.cwd(), pathImpl, sep3, { nocase, childrenCacheSize = 16 * 1024, fs: fs2 = defaultFS } = {}) {
    -    this.#fs = fsFromOption(fs2);
    -    if (cwd instanceof URL || cwd.startsWith("file://")) {
    -      cwd = (0, import_url.fileURLToPath)(cwd);
    -    }
    -    const cwdPath = pathImpl.resolve(cwd);
    -    this.roots = /* @__PURE__ */ Object.create(null);
    -    this.rootPath = this.parseRootPath(cwdPath);
    -    this.#resolveCache = new ResolveCache();
    -    this.#resolvePosixCache = new ResolveCache();
    -    this.#children = new ChildrenCache(childrenCacheSize);
    -    const split = cwdPath.substring(this.rootPath.length).split(sep3);
    -    if (split.length === 1 && !split[0]) {
    -      split.pop();
    -    }
    -    if (nocase === void 0) {
    -      throw new TypeError("must provide nocase setting to PathScurryBase ctor");
    -    }
    -    this.nocase = nocase;
    -    this.root = this.newRoot(this.#fs);
    -    this.roots[this.rootPath] = this.root;
    -    let prev = this.root;
    -    let len = split.length - 1;
    -    const joinSep = pathImpl.sep;
    -    let abs2 = this.rootPath;
    -    let sawFirst = false;
    -    for (const part of split) {
    -      const l = len--;
    -      prev = prev.child(part, {
    -        relative: new Array(l).fill("..").join(joinSep),
    -        relativePosix: new Array(l).fill("..").join("/"),
    -        fullpath: abs2 += (sawFirst ? "" : joinSep) + part
    -      });
    -      sawFirst = true;
    -    }
    -    this.cwd = prev;
    -  }
    -  /**
    -   * Get the depth of a provided path, string, or the cwd
    -   */
    -  depth(path8 = this.cwd) {
    -    if (typeof path8 === "string") {
    -      path8 = this.cwd.resolve(path8);
    -    }
    -    return path8.depth();
    -  }
    -  /**
    -   * Return the cache of child entries.  Exposed so subclasses can create
    -   * child Path objects in a platform-specific way.
    -   *
    -   * @internal
    -   */
    -  childrenCache() {
    -    return this.#children;
    -  }
    -  /**
    -   * Resolve one or more path strings to a resolved string
    -   *
    -   * Same interface as require('path').resolve.
    -   *
    -   * Much faster than path.resolve() when called multiple times for the same
    -   * path, because the resolved Path objects are cached.  Much slower
    -   * otherwise.
    -   */
    -  resolve(...paths) {
    -    let r = "";
    -    for (let i = paths.length - 1; i >= 0; i--) {
    -      const p = paths[i];
    -      if (!p || p === ".")
    -        continue;
    -      r = r ? `${p}/${r}` : p;
    -      if (this.isAbsolute(p)) {
    -        break;
    -      }
    -    }
    -    const cached = this.#resolveCache.get(r);
    -    if (cached !== void 0) {
    -      return cached;
    -    }
    -    const result = this.cwd.resolve(r).fullpath();
    -    this.#resolveCache.set(r, result);
    -    return result;
    -  }
    -  /**
    -   * Resolve one or more path strings to a resolved string, returning
    -   * the posix path.  Identical to .resolve() on posix systems, but on
    -   * windows will return a forward-slash separated UNC path.
    -   *
    -   * Same interface as require('path').resolve.
    -   *
    -   * Much faster than path.resolve() when called multiple times for the same
    -   * path, because the resolved Path objects are cached.  Much slower
    -   * otherwise.
    -   */
    -  resolvePosix(...paths) {
    -    let r = "";
    -    for (let i = paths.length - 1; i >= 0; i--) {
    -      const p = paths[i];
    -      if (!p || p === ".")
    -        continue;
    -      r = r ? `${p}/${r}` : p;
    -      if (this.isAbsolute(p)) {
    -        break;
    -      }
    -    }
    -    const cached = this.#resolvePosixCache.get(r);
    -    if (cached !== void 0) {
    -      return cached;
    -    }
    -    const result = this.cwd.resolve(r).fullpathPosix();
    -    this.#resolvePosixCache.set(r, result);
    -    return result;
    -  }
    -  /**
    -   * find the relative path from the cwd to the supplied path string or entry
    -   */
    -  relative(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return entry2.relative();
    -  }
    -  /**
    -   * find the relative path from the cwd to the supplied path string or
    -   * entry, using / as the path delimiter, even on Windows.
    -   */
    -  relativePosix(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return entry2.relativePosix();
    -  }
    -  /**
    -   * Return the basename for the provided string or Path object
    -   */
    -  basename(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return entry2.name;
    -  }
    -  /**
    -   * Return the dirname for the provided string or Path object
    -   */
    -  dirname(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return (entry2.parent || entry2).fullpath();
    -  }
    -  async readdir(entry2 = this.cwd, opts = {
    -    withFileTypes: true
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes } = opts;
    -    if (!entry2.canReaddir()) {
    -      return [];
    -    } else {
    -      const p = await entry2.readdir();
    -      return withFileTypes ? p : p.map((e) => e.name);
    -    }
    -  }
    -  readdirSync(entry2 = this.cwd, opts = {
    -    withFileTypes: true
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true } = opts;
    -    if (!entry2.canReaddir()) {
    -      return [];
    -    } else if (withFileTypes) {
    -      return entry2.readdirSync();
    -    } else {
    -      return entry2.readdirSync().map((e) => e.name);
    -    }
    -  }
    -  /**
    -   * Call lstat() on the string or Path object, and update all known
    -   * information that can be determined.
    -   *
    -   * Note that unlike `fs.lstat()`, the returned value does not contain some
    -   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
    -   * information is required, you will need to call `fs.lstat` yourself.
    -   *
    -   * If the Path refers to a nonexistent file, or if the lstat call fails for
    -   * any reason, `undefined` is returned.  Otherwise the updated Path object is
    -   * returned.
    -   *
    -   * Results are cached, and thus may be out of date if the filesystem is
    -   * mutated.
    -   */
    -  async lstat(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return entry2.lstat();
    -  }
    -  /**
    -   * synchronous {@link PathScurryBase.lstat}
    -   */
    -  lstatSync(entry2 = this.cwd) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    }
    -    return entry2.lstatSync();
    -  }
    -  async readlink(entry2 = this.cwd, { withFileTypes } = {
    -    withFileTypes: false
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      withFileTypes = entry2.withFileTypes;
    -      entry2 = this.cwd;
    -    }
    -    const e = await entry2.readlink();
    -    return withFileTypes ? e : e?.fullpath();
    -  }
    -  readlinkSync(entry2 = this.cwd, { withFileTypes } = {
    -    withFileTypes: false
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      withFileTypes = entry2.withFileTypes;
    -      entry2 = this.cwd;
    -    }
    -    const e = entry2.readlinkSync();
    -    return withFileTypes ? e : e?.fullpath();
    -  }
    -  async realpath(entry2 = this.cwd, { withFileTypes } = {
    -    withFileTypes: false
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      withFileTypes = entry2.withFileTypes;
    -      entry2 = this.cwd;
    -    }
    -    const e = await entry2.realpath();
    -    return withFileTypes ? e : e?.fullpath();
    -  }
    -  realpathSync(entry2 = this.cwd, { withFileTypes } = {
    -    withFileTypes: false
    -  }) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      withFileTypes = entry2.withFileTypes;
    -      entry2 = this.cwd;
    -    }
    -    const e = entry2.realpathSync();
    -    return withFileTypes ? e : e?.fullpath();
    -  }
    -  async walk(entry2 = this.cwd, opts = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    -    const results = [];
    -    if (!filter2 || filter2(entry2)) {
    -      results.push(withFileTypes ? entry2 : entry2.fullpath());
    -    }
    -    const dirs = /* @__PURE__ */ new Set();
    -    const walk2 = (dir, cb) => {
    -      dirs.add(dir);
    -      dir.readdirCB((er, entries) => {
    -        if (er) {
    -          return cb(er);
    -        }
    -        let len = entries.length;
    -        if (!len)
    -          return cb();
    -        const next = () => {
    -          if (--len === 0) {
    -            cb();
    -          }
    -        };
    -        for (const e of entries) {
    -          if (!filter2 || filter2(e)) {
    -            results.push(withFileTypes ? e : e.fullpath());
    -          }
    -          if (follow && e.isSymbolicLink()) {
    -            e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk2(r, next) : next());
    -          } else {
    -            if (e.shouldWalk(dirs, walkFilter)) {
    -              walk2(e, next);
    -            } else {
    -              next();
    -            }
    -          }
    -        }
    -      }, true);
    -    };
    -    const start = entry2;
    -    return new Promise((res, rej) => {
    -      walk2(start, (er) => {
    -        if (er)
    -          return rej(er);
    -        res(results);
    -      });
    -    });
    -  }
    -  walkSync(entry2 = this.cwd, opts = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    -    const results = [];
    -    if (!filter2 || filter2(entry2)) {
    -      results.push(withFileTypes ? entry2 : entry2.fullpath());
    -    }
    -    const dirs = /* @__PURE__ */ new Set([entry2]);
    -    for (const dir of dirs) {
    -      const entries = dir.readdirSync();
    -      for (const e of entries) {
    -        if (!filter2 || filter2(e)) {
    -          results.push(withFileTypes ? e : e.fullpath());
    -        }
    -        let r = e;
    -        if (e.isSymbolicLink()) {
    -          if (!(follow && (r = e.realpathSync())))
    -            continue;
    -          if (r.isUnknown())
    -            r.lstatSync();
    -        }
    -        if (r.shouldWalk(dirs, walkFilter)) {
    -          dirs.add(r);
    -        }
    -      }
    -    }
    -    return results;
    -  }
    -  /**
    -   * Support for `for await`
    -   *
    -   * Alias for {@link PathScurryBase.iterate}
    -   *
    -   * Note: As of Node 19, this is very slow, compared to other methods of
    -   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead
    -   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.
    -   */
    -  [Symbol.asyncIterator]() {
    -    return this.iterate();
    -  }
    -  iterate(entry2 = this.cwd, options2 = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      options2 = entry2;
    -      entry2 = this.cwd;
    -    }
    -    return this.stream(entry2, options2)[Symbol.asyncIterator]();
    -  }
    -  /**
    -   * Iterating over a PathScurry performs a synchronous walk.
    -   *
    -   * Alias for {@link PathScurryBase.iterateSync}
    -   */
    -  [Symbol.iterator]() {
    -    return this.iterateSync();
    -  }
    -  *iterateSync(entry2 = this.cwd, opts = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    -    if (!filter2 || filter2(entry2)) {
    -      yield withFileTypes ? entry2 : entry2.fullpath();
    -    }
    -    const dirs = /* @__PURE__ */ new Set([entry2]);
    -    for (const dir of dirs) {
    -      const entries = dir.readdirSync();
    -      for (const e of entries) {
    -        if (!filter2 || filter2(e)) {
    -          yield withFileTypes ? e : e.fullpath();
    -        }
    -        let r = e;
    -        if (e.isSymbolicLink()) {
    -          if (!(follow && (r = e.realpathSync())))
    -            continue;
    -          if (r.isUnknown())
    -            r.lstatSync();
    -        }
    -        if (r.shouldWalk(dirs, walkFilter)) {
    -          dirs.add(r);
    -        }
    -      }
    -    }
    -  }
    -  stream(entry2 = this.cwd, opts = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    -    const results = new Minipass({ objectMode: true });
    -    if (!filter2 || filter2(entry2)) {
    -      results.write(withFileTypes ? entry2 : entry2.fullpath());
    -    }
    -    const dirs = /* @__PURE__ */ new Set();
    -    const queue = [entry2];
    -    let processing = 0;
    -    const process2 = () => {
    -      let paused = false;
    -      while (!paused) {
    -        const dir = queue.shift();
    -        if (!dir) {
    -          if (processing === 0)
    -            results.end();
    -          return;
    -        }
    -        processing++;
    -        dirs.add(dir);
    -        const onReaddir = (er, entries, didRealpaths = false) => {
    -          if (er)
    -            return results.emit("error", er);
    -          if (follow && !didRealpaths) {
    -            const promises = [];
    -            for (const e of entries) {
    -              if (e.isSymbolicLink()) {
    -                promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r));
    -              }
    -            }
    -            if (promises.length) {
    -              Promise.all(promises).then(() => onReaddir(null, entries, true));
    -              return;
    -            }
    -          }
    -          for (const e of entries) {
    -            if (e && (!filter2 || filter2(e))) {
    -              if (!results.write(withFileTypes ? e : e.fullpath())) {
    -                paused = true;
    -              }
    -            }
    -          }
    -          processing--;
    -          for (const e of entries) {
    -            const r = e.realpathCached() || e;
    -            if (r.shouldWalk(dirs, walkFilter)) {
    -              queue.push(r);
    -            }
    -          }
    -          if (paused && !results.flowing) {
    -            results.once("drain", process2);
    -          } else if (!sync2) {
    -            process2();
    -          }
    -        };
    -        let sync2 = true;
    -        dir.readdirCB(onReaddir, true);
    -        sync2 = false;
    -      }
    -    };
    -    process2();
    -    return results;
    -  }
    -  streamSync(entry2 = this.cwd, opts = {}) {
    -    if (typeof entry2 === "string") {
    -      entry2 = this.cwd.resolve(entry2);
    -    } else if (!(entry2 instanceof PathBase)) {
    -      opts = entry2;
    -      entry2 = this.cwd;
    -    }
    -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
    -    const results = new Minipass({ objectMode: true });
    -    const dirs = /* @__PURE__ */ new Set();
    -    if (!filter2 || filter2(entry2)) {
    -      results.write(withFileTypes ? entry2 : entry2.fullpath());
    -    }
    -    const queue = [entry2];
    -    let processing = 0;
    -    const process2 = () => {
    -      let paused = false;
    -      while (!paused) {
    -        const dir = queue.shift();
    -        if (!dir) {
    -          if (processing === 0)
    -            results.end();
    -          return;
    -        }
    -        processing++;
    -        dirs.add(dir);
    -        const entries = dir.readdirSync();
    -        for (const e of entries) {
    -          if (!filter2 || filter2(e)) {
    -            if (!results.write(withFileTypes ? e : e.fullpath())) {
    -              paused = true;
    -            }
    -          }
    -        }
    -        processing--;
    -        for (const e of entries) {
    -          let r = e;
    -          if (e.isSymbolicLink()) {
    -            if (!(follow && (r = e.realpathSync())))
    -              continue;
    -            if (r.isUnknown())
    -              r.lstatSync();
    -          }
    -          if (r.shouldWalk(dirs, walkFilter)) {
    -            queue.push(r);
    -          }
    -        }
    -      }
    -      if (paused && !results.flowing)
    -        results.once("drain", process2);
    -    };
    -    process2();
    -    return results;
    -  }
    -  chdir(path8 = this.cwd) {
    -    const oldCwd = this.cwd;
    -    this.cwd = typeof path8 === "string" ? this.cwd.resolve(path8) : path8;
    -    this.cwd[setAsCwd](oldCwd);
    -  }
    -};
    -var PathScurryWin32 = class extends PathScurryBase {
    -  /**
    -   * separator for generating path strings
    -   */
    -  sep = "\\";
    -  constructor(cwd = process.cwd(), opts = {}) {
    -    const { nocase = true } = opts;
    -    super(cwd, import_path5.win32, "\\", { ...opts, nocase });
    -    this.nocase = nocase;
    -    for (let p = this.cwd; p; p = p.parent) {
    -      p.nocase = this.nocase;
    -    }
    -  }
    -  /**
    -   * @internal
    -   */
    -  parseRootPath(dir) {
    -    return import_path5.win32.parse(dir).root.toUpperCase();
    -  }
    -  /**
    -   * @internal
    -   */
    -  newRoot(fs2) {
    -    return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
    -  }
    -  /**
    -   * Return true if the provided path string is an absolute path
    -   */
    -  isAbsolute(p) {
    -    return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p);
    -  }
    -};
    -var PathScurryPosix = class extends PathScurryBase {
    -  /**
    -   * separator for generating path strings
    -   */
    -  sep = "/";
    -  constructor(cwd = process.cwd(), opts = {}) {
    -    const { nocase = false } = opts;
    -    super(cwd, import_path5.posix, "/", { ...opts, nocase });
    -    this.nocase = nocase;
    -  }
    -  /**
    -   * @internal
    -   */
    -  parseRootPath(_dir) {
    -    return "/";
    -  }
    -  /**
    -   * @internal
    -   */
    -  newRoot(fs2) {
    -    return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
    -  }
    -  /**
    -   * Return true if the provided path string is an absolute path
    -   */
    -  isAbsolute(p) {
    -    return p.startsWith("/");
    -  }
    -};
    -var PathScurryDarwin = class extends PathScurryPosix {
    -  constructor(cwd = process.cwd(), opts = {}) {
    -    const { nocase = true } = opts;
    -    super(cwd, { ...opts, nocase });
    -  }
    -};
    -var Path = process.platform === "win32" ? PathWin32 : PathPosix;
    -var PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix;
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
    -var import_url2 = require("url");
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/pattern.js
    -var isPatternList = (pl) => pl.length >= 1;
    -var isGlobList = (gl) => gl.length >= 1;
    -var Pattern2 = class _Pattern {
    -  #patternList;
    -  #globList;
    -  #index;
    -  length;
    -  #platform;
    -  #rest;
    -  #globString;
    -  #isDrive;
    -  #isUNC;
    -  #isAbsolute;
    -  #followGlobstar = true;
    -  constructor(patternList, globList, index, platform) {
    -    if (!isPatternList(patternList)) {
    -      throw new TypeError("empty pattern list");
    -    }
    -    if (!isGlobList(globList)) {
    -      throw new TypeError("empty glob list");
    -    }
    -    if (globList.length !== patternList.length) {
    -      throw new TypeError("mismatched pattern list and glob list lengths");
    -    }
    -    this.length = patternList.length;
    -    if (index < 0 || index >= this.length) {
    -      throw new TypeError("index out of range");
    -    }
    -    this.#patternList = patternList;
    -    this.#globList = globList;
    -    this.#index = index;
    -    this.#platform = platform;
    -    if (this.#index === 0) {
    -      if (this.isUNC()) {
    -        const [p0, p1, p2, p3, ...prest] = this.#patternList;
    -        const [g0, g1, g2, g3, ...grest] = this.#globList;
    -        if (prest[0] === "") {
    -          prest.shift();
    -          grest.shift();
    -        }
    -        const p = [p0, p1, p2, p3, ""].join("/");
    -        const g = [g0, g1, g2, g3, ""].join("/");
    -        this.#patternList = [p, ...prest];
    -        this.#globList = [g, ...grest];
    -        this.length = this.#patternList.length;
    -      } else if (this.isDrive() || this.isAbsolute()) {
    -        const [p1, ...prest] = this.#patternList;
    -        const [g1, ...grest] = this.#globList;
    -        if (prest[0] === "") {
    -          prest.shift();
    -          grest.shift();
    -        }
    -        const p = p1 + "/";
    -        const g = g1 + "/";
    -        this.#patternList = [p, ...prest];
    -        this.#globList = [g, ...grest];
    -        this.length = this.#patternList.length;
    -      }
    -    }
    -  }
    -  /**
    -   * The first entry in the parsed list of patterns
    -   */
    -  pattern() {
    -    return this.#patternList[this.#index];
    -  }
    -  /**
    -   * true of if pattern() returns a string
    -   */
    -  isString() {
    -    return typeof this.#patternList[this.#index] === "string";
    -  }
    -  /**
    -   * true of if pattern() returns GLOBSTAR
    -   */
    -  isGlobstar() {
    -    return this.#patternList[this.#index] === GLOBSTAR;
    -  }
    -  /**
    -   * true if pattern() returns a regexp
    -   */
    -  isRegExp() {
    -    return this.#patternList[this.#index] instanceof RegExp;
    -  }
    -  /**
    -   * The /-joined set of glob parts that make up this pattern
    -   */
    -  globString() {
    -    return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/"));
    -  }
    -  /**
    -   * true if there are more pattern parts after this one
    -   */
    -  hasMore() {
    -    return this.length > this.#index + 1;
    -  }
    -  /**
    -   * The rest of the pattern after this part, or null if this is the end
    -   */
    -  rest() {
    -    if (this.#rest !== void 0)
    -      return this.#rest;
    -    if (!this.hasMore())
    -      return this.#rest = null;
    -    this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
    -    this.#rest.#isAbsolute = this.#isAbsolute;
    -    this.#rest.#isUNC = this.#isUNC;
    -    this.#rest.#isDrive = this.#isDrive;
    -    return this.#rest;
    -  }
    -  /**
    -   * true if the pattern represents a //unc/path/ on windows
    -   */
    -  isUNC() {
    -    const pl = this.#patternList;
    -    return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3];
    -  }
    -  // pattern like C:/...
    -  // split = ['C:', ...]
    -  // XXX: would be nice to handle patterns like `c:*` to test the cwd
    -  // in c: for *, but I don't know of a way to even figure out what that
    -  // cwd is without actually chdir'ing into it?
    -  /**
    -   * True if the pattern starts with a drive letter on Windows
    -   */
    -  isDrive() {
    -    const pl = this.#patternList;
    -    return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]);
    -  }
    -  // pattern = '/' or '/...' or '/x/...'
    -  // split = ['', ''] or ['', ...] or ['', 'x', ...]
    -  // Drive and UNC both considered absolute on windows
    -  /**
    -   * True if the pattern is rooted on an absolute path
    -   */
    -  isAbsolute() {
    -    const pl = this.#patternList;
    -    return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC();
    -  }
    -  /**
    -   * consume the root of the pattern, and return it
    -   */
    -  root() {
    -    const p = this.#patternList[0];
    -    return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : "";
    -  }
    -  /**
    -   * Check to see if the current globstar pattern is allowed to follow
    -   * a symbolic link.
    -   */
    -  checkFollowGlobstar() {
    -    return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar);
    -  }
    -  /**
    -   * Mark that the current globstar pattern is following a symbolic link
    -   */
    -  markFollowGlobstar() {
    -    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
    -      return false;
    -    this.#followGlobstar = false;
    -    return true;
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/ignore.js
    -var defaultPlatform2 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
    -var Ignore = class {
    -  relative;
    -  relativeChildren;
    -  absolute;
    -  absoluteChildren;
    -  constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform2 }) {
    -    this.relative = [];
    -    this.absolute = [];
    -    this.relativeChildren = [];
    -    this.absoluteChildren = [];
    -    const mmopts = {
    -      dot: true,
    -      nobrace,
    -      nocase,
    -      noext,
    -      noglobstar,
    -      optimizationLevel: 2,
    -      platform,
    -      nocomment: true,
    -      nonegate: true
    -    };
    -    for (const ign of ignored) {
    -      const mm = new Minimatch(ign, mmopts);
    -      for (let i = 0; i < mm.set.length; i++) {
    -        const parsed = mm.set[i];
    -        const globParts = mm.globParts[i];
    -        if (!parsed || !globParts) {
    -          throw new Error("invalid pattern object");
    -        }
    -        const p = new Pattern2(parsed, globParts, 0, platform);
    -        const m = new Minimatch(p.globString(), mmopts);
    -        const children = globParts[globParts.length - 1] === "**";
    -        const absolute = p.isAbsolute();
    -        if (absolute)
    -          this.absolute.push(m);
    -        else
    -          this.relative.push(m);
    -        if (children) {
    -          if (absolute)
    -            this.absoluteChildren.push(m);
    -          else
    -            this.relativeChildren.push(m);
    -        }
    -      }
    -    }
    -  }
    -  ignored(p) {
    -    const fullpath = p.fullpath();
    -    const fullpaths = `${fullpath}/`;
    -    const relative2 = p.relative() || ".";
    -    const relatives = `${relative2}/`;
    -    for (const m of this.relative) {
    -      if (m.match(relative2) || m.match(relatives))
    -        return true;
    -    }
    -    for (const m of this.absolute) {
    -      if (m.match(fullpath) || m.match(fullpaths))
    -        return true;
    -    }
    -    return false;
    -  }
    -  childrenIgnored(p) {
    -    const fullpath = p.fullpath() + "/";
    -    const relative2 = (p.relative() || ".") + "/";
    -    for (const m of this.relativeChildren) {
    -      if (m.match(relative2))
    -        return true;
    -    }
    -    for (const m of this.absoluteChildren) {
    -      if (m.match(fullpath))
    -        return true;
    -    }
    -    return false;
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/processor.js
    -var HasWalkedCache = class _HasWalkedCache {
    -  store;
    -  constructor(store = /* @__PURE__ */ new Map()) {
    -    this.store = store;
    -  }
    -  copy() {
    -    return new _HasWalkedCache(new Map(this.store));
    -  }
    -  hasWalked(target, pattern) {
    -    return this.store.get(target.fullpath())?.has(pattern.globString());
    -  }
    -  storeWalked(target, pattern) {
    -    const fullpath = target.fullpath();
    -    const cached = this.store.get(fullpath);
    -    if (cached)
    -      cached.add(pattern.globString());
    -    else
    -      this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()]));
    -  }
    -};
    -var MatchRecord = class {
    -  store = /* @__PURE__ */ new Map();
    -  add(target, absolute, ifDir) {
    -    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
    -    const current2 = this.store.get(target);
    -    this.store.set(target, current2 === void 0 ? n : n & current2);
    -  }
    -  // match, absolute, ifdir
    -  entries() {
    -    return [...this.store.entries()].map(([path8, n]) => [
    -      path8,
    -      !!(n & 2),
    -      !!(n & 1)
    -    ]);
    -  }
    -};
    -var SubWalks = class {
    -  store = /* @__PURE__ */ new Map();
    -  add(target, pattern) {
    -    if (!target.canReaddir()) {
    -      return;
    -    }
    -    const subs = this.store.get(target);
    -    if (subs) {
    -      if (!subs.find((p) => p.globString() === pattern.globString())) {
    -        subs.push(pattern);
    -      }
    -    } else
    -      this.store.set(target, [pattern]);
    -  }
    -  get(target) {
    -    const subs = this.store.get(target);
    -    if (!subs) {
    -      throw new Error("attempting to walk unknown path");
    -    }
    -    return subs;
    -  }
    -  entries() {
    -    return this.keys().map((k) => [k, this.store.get(k)]);
    -  }
    -  keys() {
    -    return [...this.store.keys()].filter((t) => t.canReaddir());
    -  }
    -};
    -var Processor = class _Processor {
    -  hasWalkedCache;
    -  matches = new MatchRecord();
    -  subwalks = new SubWalks();
    -  patterns;
    -  follow;
    -  dot;
    -  opts;
    -  constructor(opts, hasWalkedCache) {
    -    this.opts = opts;
    -    this.follow = !!opts.follow;
    -    this.dot = !!opts.dot;
    -    this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();
    -  }
    -  processPatterns(target, patterns) {
    -    this.patterns = patterns;
    -    const processingSet = patterns.map((p) => [target, p]);
    -    for (let [t, pattern] of processingSet) {
    -      this.hasWalkedCache.storeWalked(t, pattern);
    -      const root = pattern.root();
    -      const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
    -      if (root) {
    -        t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root);
    -        const rest2 = pattern.rest();
    -        if (!rest2) {
    -          this.matches.add(t, true, false);
    -          continue;
    -        } else {
    -          pattern = rest2;
    -        }
    -      }
    -      if (t.isENOENT())
    -        continue;
    -      let p;
    -      let rest;
    -      let changed = false;
    -      while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) {
    -        const c = t.resolve(p);
    -        t = c;
    -        pattern = rest;
    -        changed = true;
    -      }
    -      p = pattern.pattern();
    -      rest = pattern.rest();
    -      if (changed) {
    -        if (this.hasWalkedCache.hasWalked(t, pattern))
    -          continue;
    -        this.hasWalkedCache.storeWalked(t, pattern);
    -      }
    -      if (typeof p === "string") {
    -        const ifDir = p === ".." || p === "" || p === ".";
    -        this.matches.add(t.resolve(p), absolute, ifDir);
    -        continue;
    -      } else if (p === GLOBSTAR) {
    -        if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) {
    -          this.subwalks.add(t, pattern);
    -        }
    -        const rp = rest?.pattern();
    -        const rrest = rest?.rest();
    -        if (!rest || (rp === "" || rp === ".") && !rrest) {
    -          this.matches.add(t, absolute, rp === "" || rp === ".");
    -        } else {
    -          if (rp === "..") {
    -            const tp = t.parent || t;
    -            if (!rrest)
    -              this.matches.add(tp, absolute, true);
    -            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
    -              this.subwalks.add(tp, rrest);
    -            }
    -          }
    -        }
    -      } else if (p instanceof RegExp) {
    -        this.subwalks.add(t, pattern);
    -      }
    -    }
    -    return this;
    -  }
    -  subwalkTargets() {
    -    return this.subwalks.keys();
    -  }
    -  child() {
    -    return new _Processor(this.opts, this.hasWalkedCache);
    -  }
    -  // return a new Processor containing the subwalks for each
    -  // child entry, and a set of matches, and
    -  // a hasWalkedCache that's a copy of this one
    -  // then we're going to call
    -  filterEntries(parent, entries) {
    -    const patterns = this.subwalks.get(parent);
    -    const results = this.child();
    -    for (const e of entries) {
    -      for (const pattern of patterns) {
    -        const absolute = pattern.isAbsolute();
    -        const p = pattern.pattern();
    -        const rest = pattern.rest();
    -        if (p === GLOBSTAR) {
    -          results.testGlobstar(e, pattern, rest, absolute);
    -        } else if (p instanceof RegExp) {
    -          results.testRegExp(e, p, rest, absolute);
    -        } else {
    -          results.testString(e, p, rest, absolute);
    -        }
    -      }
    -    }
    -    return results;
    -  }
    -  testGlobstar(e, pattern, rest, absolute) {
    -    if (this.dot || !e.name.startsWith(".")) {
    -      if (!pattern.hasMore()) {
    -        this.matches.add(e, absolute, false);
    -      }
    -      if (e.canReaddir()) {
    -        if (this.follow || !e.isSymbolicLink()) {
    -          this.subwalks.add(e, pattern);
    -        } else if (e.isSymbolicLink()) {
    -          if (rest && pattern.checkFollowGlobstar()) {
    -            this.subwalks.add(e, rest);
    -          } else if (pattern.markFollowGlobstar()) {
    -            this.subwalks.add(e, pattern);
    -          }
    -        }
    -      }
    -    }
    -    if (rest) {
    -      const rp = rest.pattern();
    -      if (typeof rp === "string" && // dots and empty were handled already
    -      rp !== ".." && rp !== "" && rp !== ".") {
    -        this.testString(e, rp, rest.rest(), absolute);
    -      } else if (rp === "..") {
    -        const ep = e.parent || e;
    -        this.subwalks.add(ep, rest);
    -      } else if (rp instanceof RegExp) {
    -        this.testRegExp(e, rp, rest.rest(), absolute);
    -      }
    -    }
    -  }
    -  testRegExp(e, p, rest, absolute) {
    -    if (!p.test(e.name))
    -      return;
    -    if (!rest) {
    -      this.matches.add(e, absolute, false);
    -    } else {
    -      this.subwalks.add(e, rest);
    -    }
    -  }
    -  testString(e, p, rest, absolute) {
    -    if (!e.isNamed(p))
    -      return;
    -    if (!rest) {
    -      this.matches.add(e, absolute, false);
    -    } else {
    -      this.subwalks.add(e, rest);
    -    }
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/walker.js
    -var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new Ignore([ignore], opts) : Array.isArray(ignore) ? new Ignore(ignore, opts) : ignore;
    -var GlobUtil = class {
    -  path;
    -  patterns;
    -  opts;
    -  seen = /* @__PURE__ */ new Set();
    -  paused = false;
    -  aborted = false;
    -  #onResume = [];
    -  #ignore;
    -  #sep;
    -  signal;
    -  maxDepth;
    -  constructor(patterns, path8, opts) {
    -    this.patterns = patterns;
    -    this.path = path8;
    -    this.opts = opts;
    -    this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/";
    -    if (opts.ignore) {
    -      this.#ignore = makeIgnore(opts.ignore, opts);
    -    }
    -    this.maxDepth = opts.maxDepth || Infinity;
    -    if (opts.signal) {
    -      this.signal = opts.signal;
    -      this.signal.addEventListener("abort", () => {
    -        this.#onResume.length = 0;
    -      });
    -    }
    -  }
    -  #ignored(path8) {
    -    return this.seen.has(path8) || !!this.#ignore?.ignored?.(path8);
    -  }
    -  #childrenIgnored(path8) {
    -    return !!this.#ignore?.childrenIgnored?.(path8);
    -  }
    -  // backpressure mechanism
    -  pause() {
    -    this.paused = true;
    -  }
    -  resume() {
    -    if (this.signal?.aborted)
    -      return;
    -    this.paused = false;
    -    let fn = void 0;
    -    while (!this.paused && (fn = this.#onResume.shift())) {
    -      fn();
    -    }
    -  }
    -  onResume(fn) {
    -    if (this.signal?.aborted)
    -      return;
    -    if (!this.paused) {
    -      fn();
    -    } else {
    -      this.#onResume.push(fn);
    -    }
    -  }
    -  // do the requisite realpath/stat checking, and return the path
    -  // to add or undefined to filter it out.
    -  async matchCheck(e, ifDir) {
    -    if (ifDir && this.opts.nodir)
    -      return void 0;
    -    let rpc;
    -    if (this.opts.realpath) {
    -      rpc = e.realpathCached() || await e.realpath();
    -      if (!rpc)
    -        return void 0;
    -      e = rpc;
    -    }
    -    const needStat = e.isUnknown() || this.opts.stat;
    -    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
    -  }
    -  matchCheckTest(e, ifDir) {
    -    return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0;
    -  }
    -  matchCheckSync(e, ifDir) {
    -    if (ifDir && this.opts.nodir)
    -      return void 0;
    -    let rpc;
    -    if (this.opts.realpath) {
    -      rpc = e.realpathCached() || e.realpathSync();
    -      if (!rpc)
    -        return void 0;
    -      e = rpc;
    -    }
    -    const needStat = e.isUnknown() || this.opts.stat;
    -    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
    -  }
    -  matchFinish(e, absolute) {
    -    if (this.#ignored(e))
    -      return;
    -    const abs2 = this.opts.absolute === void 0 ? absolute : this.opts.absolute;
    -    this.seen.add(e);
    -    const mark = this.opts.mark && e.isDirectory() ? this.#sep : "";
    -    if (this.opts.withFileTypes) {
    -      this.matchEmit(e);
    -    } else if (abs2) {
    -      const abs3 = this.opts.posix ? e.fullpathPosix() : e.fullpath();
    -      this.matchEmit(abs3 + mark);
    -    } else {
    -      const rel = this.opts.posix ? e.relativePosix() : e.relative();
    -      const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : "";
    -      this.matchEmit(!rel ? "." + mark : pre + rel + mark);
    -    }
    -  }
    -  async match(e, absolute, ifDir) {
    -    const p = await this.matchCheck(e, ifDir);
    -    if (p)
    -      this.matchFinish(p, absolute);
    -  }
    -  matchSync(e, absolute, ifDir) {
    -    const p = this.matchCheckSync(e, ifDir);
    -    if (p)
    -      this.matchFinish(p, absolute);
    -  }
    -  walkCB(target, patterns, cb) {
    -    if (this.signal?.aborted)
    -      cb();
    -    this.walkCB2(target, patterns, new Processor(this.opts), cb);
    -  }
    -  walkCB2(target, patterns, processor, cb) {
    -    if (this.#childrenIgnored(target))
    -      return cb();
    -    if (this.signal?.aborted)
    -      cb();
    -    if (this.paused) {
    -      this.onResume(() => this.walkCB2(target, patterns, processor, cb));
    -      return;
    -    }
    -    processor.processPatterns(target, patterns);
    -    let tasks = 1;
    -    const next = () => {
    -      if (--tasks === 0)
    -        cb();
    -    };
    -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    -      if (this.#ignored(m))
    -        continue;
    -      tasks++;
    -      this.match(m, absolute, ifDir).then(() => next());
    -    }
    -    for (const t of processor.subwalkTargets()) {
    -      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
    -        continue;
    -      }
    -      tasks++;
    -      const childrenCached = t.readdirCached();
    -      if (t.calledReaddir())
    -        this.walkCB3(t, childrenCached, processor, next);
    -      else {
    -        t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
    -      }
    -    }
    -    next();
    -  }
    -  walkCB3(target, entries, processor, cb) {
    -    processor = processor.filterEntries(target, entries);
    -    let tasks = 1;
    -    const next = () => {
    -      if (--tasks === 0)
    -        cb();
    -    };
    -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    -      if (this.#ignored(m))
    -        continue;
    -      tasks++;
    -      this.match(m, absolute, ifDir).then(() => next());
    -    }
    -    for (const [target2, patterns] of processor.subwalks.entries()) {
    -      tasks++;
    -      this.walkCB2(target2, patterns, processor.child(), next);
    -    }
    -    next();
    -  }
    -  walkCBSync(target, patterns, cb) {
    -    if (this.signal?.aborted)
    -      cb();
    -    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
    -  }
    -  walkCB2Sync(target, patterns, processor, cb) {
    -    if (this.#childrenIgnored(target))
    -      return cb();
    -    if (this.signal?.aborted)
    -      cb();
    -    if (this.paused) {
    -      this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
    -      return;
    -    }
    -    processor.processPatterns(target, patterns);
    -    let tasks = 1;
    -    const next = () => {
    -      if (--tasks === 0)
    -        cb();
    -    };
    -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    -      if (this.#ignored(m))
    -        continue;
    -      this.matchSync(m, absolute, ifDir);
    -    }
    -    for (const t of processor.subwalkTargets()) {
    -      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
    -        continue;
    -      }
    -      tasks++;
    -      const children = t.readdirSync();
    -      this.walkCB3Sync(t, children, processor, next);
    -    }
    -    next();
    -  }
    -  walkCB3Sync(target, entries, processor, cb) {
    -    processor = processor.filterEntries(target, entries);
    -    let tasks = 1;
    -    const next = () => {
    -      if (--tasks === 0)
    -        cb();
    -    };
    -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
    -      if (this.#ignored(m))
    -        continue;
    -      this.matchSync(m, absolute, ifDir);
    -    }
    -    for (const [target2, patterns] of processor.subwalks.entries()) {
    -      tasks++;
    -      this.walkCB2Sync(target2, patterns, processor.child(), next);
    -    }
    -    next();
    -  }
    -};
    -var GlobWalker = class extends GlobUtil {
    -  matches;
    -  constructor(patterns, path8, opts) {
    -    super(patterns, path8, opts);
    -    this.matches = /* @__PURE__ */ new Set();
    -  }
    -  matchEmit(e) {
    -    this.matches.add(e);
    -  }
    -  async walk() {
    -    if (this.signal?.aborted)
    -      throw this.signal.reason;
    -    if (this.path.isUnknown()) {
    -      await this.path.lstat();
    -    }
    -    await new Promise((res, rej) => {
    -      this.walkCB(this.path, this.patterns, () => {
    -        if (this.signal?.aborted) {
    -          rej(this.signal.reason);
    -        } else {
    -          res(this.matches);
    -        }
    -      });
    -    });
    -    return this.matches;
    -  }
    -  walkSync() {
    -    if (this.signal?.aborted)
    -      throw this.signal.reason;
    -    if (this.path.isUnknown()) {
    -      this.path.lstatSync();
    -    }
    -    this.walkCBSync(this.path, this.patterns, () => {
    -      if (this.signal?.aborted)
    -        throw this.signal.reason;
    -    });
    -    return this.matches;
    -  }
    -};
    -var GlobStream = class extends GlobUtil {
    -  results;
    -  constructor(patterns, path8, opts) {
    -    super(patterns, path8, opts);
    -    this.results = new Minipass({
    -      signal: this.signal,
    -      objectMode: true
    -    });
    -    this.results.on("drain", () => this.resume());
    -    this.results.on("resume", () => this.resume());
    -  }
    -  matchEmit(e) {
    -    this.results.write(e);
    -    if (!this.results.flowing)
    -      this.pause();
    -  }
    -  stream() {
    -    const target = this.path;
    -    if (target.isUnknown()) {
    -      target.lstat().then(() => {
    -        this.walkCB(target, this.patterns, () => this.results.end());
    -      });
    -    } else {
    -      this.walkCB(target, this.patterns, () => this.results.end());
    -    }
    -    return this.results;
    -  }
    -  streamSync() {
    -    if (this.path.isUnknown()) {
    -      this.path.lstatSync();
    -    }
    -    this.walkCBSync(this.path, this.patterns, () => this.results.end());
    -    return this.results;
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
    -var defaultPlatform3 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
    -var Glob = class {
    -  absolute;
    -  cwd;
    -  root;
    -  dot;
    -  dotRelative;
    -  follow;
    -  ignore;
    -  magicalBraces;
    -  mark;
    -  matchBase;
    -  maxDepth;
    -  nobrace;
    -  nocase;
    -  nodir;
    -  noext;
    -  noglobstar;
    -  pattern;
    -  platform;
    -  realpath;
    -  scurry;
    -  stat;
    -  signal;
    -  windowsPathsNoEscape;
    -  withFileTypes;
    -  /**
    -   * The options provided to the constructor.
    -   */
    -  opts;
    -  /**
    -   * An array of parsed immutable {@link Pattern} objects.
    -   */
    -  patterns;
    -  /**
    -   * All options are stored as properties on the `Glob` object.
    -   *
    -   * See {@link GlobOptions} for full options descriptions.
    -   *
    -   * Note that a previous `Glob` object can be passed as the
    -   * `GlobOptions` to another `Glob` instantiation to re-use settings
    -   * and caches with a new pattern.
    -   *
    -   * Traversal functions can be called multiple times to run the walk
    -   * again.
    -   */
    -  constructor(pattern, opts) {
    -    if (!opts)
    -      throw new TypeError("glob options required");
    -    this.withFileTypes = !!opts.withFileTypes;
    -    this.signal = opts.signal;
    -    this.follow = !!opts.follow;
    -    this.dot = !!opts.dot;
    -    this.dotRelative = !!opts.dotRelative;
    -    this.nodir = !!opts.nodir;
    -    this.mark = !!opts.mark;
    -    if (!opts.cwd) {
    -      this.cwd = "";
    -    } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
    -      opts.cwd = (0, import_url2.fileURLToPath)(opts.cwd);
    -    }
    -    this.cwd = opts.cwd || "";
    -    this.root = opts.root;
    -    this.magicalBraces = !!opts.magicalBraces;
    -    this.nobrace = !!opts.nobrace;
    -    this.noext = !!opts.noext;
    -    this.realpath = !!opts.realpath;
    -    this.absolute = opts.absolute;
    -    this.noglobstar = !!opts.noglobstar;
    -    this.matchBase = !!opts.matchBase;
    -    this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity;
    -    this.stat = !!opts.stat;
    -    this.ignore = opts.ignore;
    -    if (this.withFileTypes && this.absolute !== void 0) {
    -      throw new Error("cannot set absolute and withFileTypes:true");
    -    }
    -    if (typeof pattern === "string") {
    -      pattern = [pattern];
    -    }
    -    this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false;
    -    if (this.windowsPathsNoEscape) {
    -      pattern = pattern.map((p) => p.replace(/\\/g, "/"));
    -    }
    -    if (this.matchBase) {
    -      if (opts.noglobstar) {
    -        throw new TypeError("base matching requires globstar");
    -      }
    -      pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`);
    -    }
    -    this.pattern = pattern;
    -    this.platform = opts.platform || defaultPlatform3;
    -    this.opts = { ...opts, platform: this.platform };
    -    if (opts.scurry) {
    -      this.scurry = opts.scurry;
    -      if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) {
    -        throw new Error("nocase option contradicts provided scurry option");
    -      }
    -    } else {
    -      const Scurry = opts.platform === "win32" ? PathScurryWin32 : opts.platform === "darwin" ? PathScurryDarwin : opts.platform ? PathScurryPosix : PathScurry;
    -      this.scurry = new Scurry(this.cwd, {
    -        nocase: opts.nocase,
    -        fs: opts.fs
    -      });
    -    }
    -    this.nocase = this.scurry.nocase;
    -    const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32";
    -    const mmo = {
    -      // default nocase based on platform
    -      ...opts,
    -      dot: this.dot,
    -      matchBase: this.matchBase,
    -      nobrace: this.nobrace,
    -      nocase: this.nocase,
    -      nocaseMagicOnly,
    -      nocomment: true,
    -      noext: this.noext,
    -      nonegate: true,
    -      optimizationLevel: 2,
    -      platform: this.platform,
    -      windowsPathsNoEscape: this.windowsPathsNoEscape,
    -      debug: !!this.opts.debug
    -    };
    -    const mms = this.pattern.map((p) => new Minimatch(p, mmo));
    -    const [matchSet, globParts] = mms.reduce((set3, m) => {
    -      set3[0].push(...m.set);
    -      set3[1].push(...m.globParts);
    -      return set3;
    -    }, [[], []]);
    -    this.patterns = matchSet.map((set3, i) => {
    -      const g = globParts[i];
    -      if (!g)
    -        throw new Error("invalid pattern object");
    -      return new Pattern2(set3, g, 0, this.platform);
    -    });
    -  }
    -  async walk() {
    -    return [
    -      ...await new GlobWalker(this.patterns, this.scurry.cwd, {
    -        ...this.opts,
    -        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    -        platform: this.platform,
    -        nocase: this.nocase
    -      }).walk()
    -    ];
    -  }
    -  walkSync() {
    -    return [
    -      ...new GlobWalker(this.patterns, this.scurry.cwd, {
    -        ...this.opts,
    -        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    -        platform: this.platform,
    -        nocase: this.nocase
    -      }).walkSync()
    -    ];
    -  }
    -  stream() {
    -    return new GlobStream(this.patterns, this.scurry.cwd, {
    -      ...this.opts,
    -      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    -      platform: this.platform,
    -      nocase: this.nocase
    -    }).stream();
    -  }
    -  streamSync() {
    -    return new GlobStream(this.patterns, this.scurry.cwd, {
    -      ...this.opts,
    -      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
    -      platform: this.platform,
    -      nocase: this.nocase
    -    }).streamSync();
    -  }
    -  /**
    -   * Default sync iteration function. Returns a Generator that
    -   * iterates over the results.
    -   */
    -  iterateSync() {
    -    return this.streamSync()[Symbol.iterator]();
    -  }
    -  [Symbol.iterator]() {
    -    return this.iterateSync();
    -  }
    -  /**
    -   * Default async iteration function. Returns an AsyncGenerator that
    -   * iterates over the results.
    -   */
    -  iterate() {
    -    return this.stream()[Symbol.asyncIterator]();
    -  }
    -  [Symbol.asyncIterator]() {
    -    return this.iterate();
    -  }
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/has-magic.js
    -var hasMagic = (pattern, options2 = {}) => {
    -  if (!Array.isArray(pattern)) {
    -    pattern = [pattern];
    -  }
    -  for (const p of pattern) {
    -    if (new Minimatch(p, options2).hasMagic())
    -      return true;
    -  }
    -  return false;
    -};
    -
    -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/index.js
    -function globStreamSync(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).streamSync();
    -}
    -function globStream(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).stream();
    -}
    -function globSync(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).walkSync();
    -}
    -async function glob_(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).walk();
    -}
    -function globIterateSync(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).iterateSync();
    -}
    -function globIterate(pattern, options2 = {}) {
    -  return new Glob(pattern, options2).iterate();
    -}
    -var streamSync = globStreamSync;
    -var stream = Object.assign(globStream, { sync: globStreamSync });
    -var iterateSync = globIterateSync;
    -var iterate = Object.assign(globIterate, {
    -  sync: globIterateSync
    -});
    -var sync = Object.assign(globSync, {
    -  stream: globStreamSync,
    -  iterate: globIterateSync
    -});
    -var glob = Object.assign(glob_, {
    -  glob: glob_,
    -  globSync,
    -  sync,
    -  globStream,
    -  stream,
    -  globStreamSync,
    -  streamSync,
    -  globIterate,
    -  iterate,
    -  globIterateSync,
    -  iterateSync,
    -  Glob,
    -  hasMagic,
    -  escape,
    -  unescape: unescape2
    -});
    -glob.glob = glob;
    -
    -// ../cursorless-engine/src/util/grammarHelpers.ts
    -var import_lodash57 = __toESM(require_lodash(), 1);
    -var UNUSED = Symbol("unused");
    -var ArgPosition = class {
    -  constructor(position) {
    -    this.position = position;
    -  }
    -};
    -var argPositions = {
    -  $0: new ArgPosition(0),
    -  $1: new ArgPosition(1),
    -  $2: new ArgPosition(2)
    -};
    -
    -// ../neovim-registry/src/NeovimRegistry.ts
    -var import_node_events = require("node:events");
    -var NeovimRegistry = class {
    -  constructor() {
    -    this.apis = /* @__PURE__ */ new Map();
    -    this.commands = /* @__PURE__ */ new Map();
    -    this.eventEmitter = new import_node_events.EventEmitter();
    -  }
    -  registerExtensionApi(extensionId, api) {
    -    this.apis.set(extensionId, api);
    -  }
    -  getExtensionApi(extensionId) {
    -    return this.apis.get(extensionId);
    -  }
    -  registerCommand(commandId, callback2) {
    -    this.commands.set(commandId, callback2);
    -  }
    -  async executeCommand(commandId, ...rest) {
    -    return await this.commands.get(commandId)(...rest);
    -  }
    -  onEvent(eventName, listener) {
    -    return this.eventEmitter.on(eventName, listener);
    -  }
    -  emitEvent(eventName, ...args) {
    -    return this.eventEmitter.emit(eventName, ...args);
    -  }
    -};
    -
    -// ../neovim-registry/src/index.ts
    -function getNeovimRegistry() {
    -  if (global._neovimRegistry == null) {
    -    global._neovimRegistry = new NeovimRegistry();
    -  }
    -  return global._neovimRegistry;
    -}
    -
    -// ../neovim-common/src/getExtensionApi.ts
    -var EXTENSION_ID = "pokey.cursorless";
    -
    -// ../neovim-common/src/neovimApi.ts
    -async function bufferGetSelections(window2, client) {
    -  const luaCode = `return require("cursorless.cursorless").buffer_get_selection()`;
    -  const [startLine, startCol, endLine, endCol, reverse] = await client.executeLua(luaCode, []);
    -  let selections;
    -  if (reverse === true) {
    -    selections = [
    -      new Selection(
    -        new Position(endLine - 1, endCol - 1),
    -        new Position(startLine - 1, startCol - 1)
    -      )
    -    ];
    -  } else {
    -    selections = [
    -      new Selection(
    -        new Position(startLine - 1, startCol - 1),
    -        new Position(endLine - 1, endCol - 1)
    -      )
    -    ];
    -  }
    -  console.debug(
    -    `bufferGetSelections(): selections=(${selections[0].start.line}, ${selections[0].start.character}), (${selections[0].end.line}, ${selections[0].end.character}) neovim=(${startLine},${startCol}),(${endLine},${endCol}),reverse=${reverse}`
    -  );
    -  return selections;
    -}
    -async function bufferSetSelections(client, selections) {
    -  if (selections.length !== 1) {
    -    throw new Error("bufferSetSelections() only supports one selection");
    -  }
    -  const luaCode = `return require("cursorless.cursorless").select_range(${selections[0].start.line + 1}, ${selections[0].start.character}, ${selections[0].end.line + 1}, ${selections[0].end.character})`;
    -  console.debug(
    -    `bufferSetSelections() selections=(${selections[0].start.line},${selections[0].start.character}),(${selections[0].end.line},${selections[0].end.character}) luaCode="${luaCode}"`
    -  );
    -  await client.executeLua(luaCode, []);
    -}
    -async function windowGetVisibleRanges(window2, client, lines) {
    -  const luaCode = `return require("cursorless.cursorless").window_get_visible_lines()`;
    -  const [firstLine, lastLine] = await client.executeLua(luaCode, []);
    -  const range4 = new Range(
    -    new Position(firstLine - 1, 0),
    -    // subtract -1 to the line.length to get the correct 0-based column number
    -    new Position(lastLine - 1, lines[lastLine - 1].length - 1)
    -  );
    -  console.debug(
    -    `windowGetVisibleRanges(): range=(${range4.start.line}, ${range4.start.character}), (${range4.end.line}, ${range4.end.character})`
    -  );
    -  return [range4];
    -}
    -async function getCursorlessNvimPath(client) {
    -  const luaCode = `return require("cursorless.utils").cursorless_nvim_path()`;
    -  const data = await client.executeLua(luaCode, []);
    -  return data;
    -}
    -async function putToClipboard(data, client) {
    -  await client.callFunction("setreg", ["*", data]);
    -}
    -async function getFromClipboard(client) {
    -  return await client.callFunction("getreg", ["*"]);
    -}
    -async function pasteFromClipboard(client) {
    -  const luaCode = `return require("cursorless.utils").paste()`;
    -  await client.executeLua(luaCode, []);
    -}
    -async function modeSwitchNormalTerminal(client) {
    -  const luaCode = `return require("cursorless.utils").mode_switch_nt()`;
    -  await client.executeLua(luaCode, []);
    -}
    -async function modeSwitchTerminal(client) {
    -  const luaCode = `return require("cursorless.utils").mode_switch_t()`;
    -  await client.executeLua(luaCode, []);
    -}
    -async function showErrorMessage(client, message) {
    -  const luaCode = `vim.notify("${message}")`;
    -  await client.executeLua(luaCode, []);
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimCapabilities.ts
    -var COMMAND_CAPABILITIES = {
    -  clipboardCopy: { acceptsLocation: false },
    -  toggleLineComment: void 0,
    -  indentLine: void 0,
    -  outdentLine: void 0,
    -  rename: void 0,
    -  quickFix: void 0,
    -  revealDefinition: void 0,
    -  revealTypeDefinition: void 0,
    -  showHover: void 0,
    -  showDebugHover: void 0,
    -  extractVariable: void 0,
    -  fold: void 0,
    -  highlight: { acceptsLocation: true },
    -  unfold: void 0,
    -  showReferences: void 0
    -};
    -var NeovimCapabilities = class {
    -  constructor() {
    -    this.commands = COMMAND_CAPABILITIES;
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimClipboard.ts
    -var NeovimClipboard = class {
    -  constructor(client) {
    -    this.client = client;
    -  }
    -  async readText() {
    -    return await getFromClipboard(this.client);
    -  }
    -  async writeText(value) {
    -    return await putToClipboard(value, this.client);
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimConfiguration.ts
    -var import_lodash58 = __toESM(require_lodash(), 1);
    -var NeovimConfiguration = class {
    -  constructor() {
    -    this.notifier = new Notifier();
    -    this.mocks = {
    -      ...CONFIGURATION_DEFAULTS
    -    };
    -    this.scopes = [];
    -    this.onDidChangeConfiguration = this.notifier.registerListener;
    -    this.onDidChangeConfiguration = this.onDidChangeConfiguration.bind(this);
    -  }
    -  getOwnConfiguration(path8, scope) {
    -    if (scope != null) {
    -      for (const { scope: candidateScope, values: values2 } of this.scopes) {
    -        if (scopeMatches2(candidateScope, scope)) {
    -          return (0, import_lodash58.get)(values2, path8) ?? (0, import_lodash58.get)(this.mocks, path8);
    -        }
    -      }
    -    }
    -    return (0, import_lodash58.get)(this.mocks, path8);
    -  }
    -  mockConfiguration(key, value) {
    -    this.mocks[key] = value;
    -    this.notifier.notifyListeners();
    -  }
    -  mockConfigurationScope(scope, values2, noNotification = false) {
    -    this.scopes.push({ scope, values: values2 });
    -    if (!noNotification) {
    -      this.notifier.notifyListeners();
    -    }
    -  }
    -};
    -function scopeMatches2(candidateScope, scope) {
    -  return candidateScope.languageId === scope.languageId;
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimEdit.ts
    -async function neovimEdit(client, neovimIDE, window2, edits) {
    -  console.debug("neovimEdit() [unsorted]:");
    -  for (const edit of edits) {
    -    console.debug(
    -      `	range=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`
    -    );
    -  }
    -  edits.sort((a, b) => {
    -    if ((isInsert(a) || isReplace2(a)) && (isInsert(b) || isReplace2(b))) {
    -      return 1;
    -    }
    -    if (a.range.start.line === b.range.start.line) {
    -      return b.range.start.character - a.range.start.character;
    -    }
    -    return b.range.start.line - a.range.start.line;
    -  });
    -  console.debug("neovimEdit() [sorted]:");
    -  for (const edit of edits) {
    -    console.debug(
    -      `	range=${JSON.stringify(edit.range)}, text='${edit.text}', isReplace=${edit.isReplace}`
    -    );
    -  }
    -  const document = neovimIDE.getTextDocument(
    -    await client.window.buffer
    -  );
    -  const changes = [];
    -  for (const edit of edits) {
    -    changes.push({
    -      range: edit.range,
    -      rangeOffset: document.offsetAt(edit.range.start),
    -      rangeLength: document.offsetAt(edit.range.end) - document.offsetAt(edit.range.start),
    -      text: edit.text
    -    });
    -  }
    -  getNeovimRegistry().emitEvent("onDidChangeTextDocument", {
    -    document,
    -    contentChanges: changes
    -  });
    -  for (const edit of edits) {
    -    const { range: range4, text, isReplace: isReplace3 } = edit;
    -    if (text === "") {
    -      await neovimDelete(client, range4);
    -    } else if (range4.isEmpty && !isReplace3) {
    -      await neovimInsert(client, range4.start, text);
    -    } else {
    -      await neovimReplace(client, range4, text);
    -    }
    -  }
    -  await neovimIDE.updateTextEditor();
    -  return true;
    -}
    -async function neovimDelete(client, range4) {
    -  console.debug(`neovimDelete(): range=${JSON.stringify(range4)}`);
    -  const buffer = await client.window.buffer;
    -  const lastLine = (await buffer.getLines({
    -    start: range4.end.line,
    -    end: range4.end.line + 1,
    -    strictIndexing: true
    -  }))[0];
    -  const endOfLastLine = lastLine.slice(range4.end.character);
    -  if (range4.start.line === range4.end.line) {
    -    const singleLine = lastLine.slice(0, range4.start.character) + endOfLastLine;
    -    await buffer.setLines(singleLine, {
    -      start: range4.start.line,
    -      end: range4.start.line + 1,
    -      strictIndexing: true
    -    });
    -    return;
    -  }
    -  if (range4.start.character === 0) {
    -    await buffer.setLines(endOfLastLine, {
    -      start: range4.start.line,
    -      end: range4.end.line + 1,
    -      strictIndexing: true
    -    });
    -    return;
    -  }
    -  const firstLine = (await buffer.getLines({
    -    start: range4.start.line,
    -    end: range4.start.line + 1,
    -    strictIndexing: true
    -  }))[0];
    -  const startOfFirstLine = firstLine.slice(0, range4.start.character);
    -  if (range4.start.character <= firstLine.length) {
    -    await buffer.setLines(startOfFirstLine + endOfLastLine, {
    -      start: range4.start.line,
    -      end: range4.end.line + 1,
    -      strictIndexing: true
    -    });
    -    return;
    -  }
    -  await buffer.setLines([startOfFirstLine, endOfLastLine], {
    -    start: range4.start.line,
    -    end: range4.end.line + 1,
    -    strictIndexing: true
    -  });
    -}
    -async function neovimInsert(client, position, text) {
    -  console.debug(
    -    `neovimInsert(): position=${JSON.stringify(position)}, text='${text}'`
    -  );
    -  const newLines = text.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n");
    -  const buffer = await client.window.buffer;
    -  const lineWhereInsertion = (await buffer.getLines({
    -    start: position.line,
    -    end: position.line + 1,
    -    strictIndexing: true
    -  }))[0];
    -  const startOfFirstLine = lineWhereInsertion.slice(0, position.character);
    -  const endOfLastLine = lineWhereInsertion.slice(position.character);
    -  if (newLines.length == 1) {
    -    const singleLine = startOfFirstLine + newLines[0] + endOfLastLine;
    -    await buffer.setLines(singleLine, {
    -      start: position.line,
    -      end: position.line + 1,
    -      strictIndexing: true
    -    });
    -    return;
    -  }
    -  const firstLine = startOfFirstLine + newLines[0];
    -  const lastLine = newLines[newLines.length - 1] + endOfLastLine;
    -  await buffer.setLines(
    -    [firstLine, ...newLines.slice(1, newLines.length - 1), lastLine],
    -    {
    -      start: position.line,
    -      end: position.line + 1,
    -      strictIndexing: true
    -    }
    -  );
    -}
    -async function neovimReplace(client, range4, text) {
    -  console.debug(
    -    `neovimReplace(): range=${JSON.stringify(range4)}, text='${text}'`
    -  );
    -  await neovimDelete(client, range4);
    -  await neovimInsert(client, range4.start, text);
    -}
    -function isInsert(edit) {
    -  return edit.range.isEmpty && !edit.isReplace;
    -}
    -function isReplace2(edit) {
    -  return edit.text !== "" && (!edit.range.isEmpty || edit.isReplace ? true : false);
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimEvents.ts
    -function neovimOnDidChangeTextDocument(listener) {
    -  getNeovimRegistry().onEvent("onDidChangeTextDocument", listener);
    -  return dummyEvent2();
    -}
    -function neovimOnDidOpenTextDocument(listener, thisArgs, disposables) {
    -  getNeovimRegistry().onEvent("onDidOpenTextDocument", listener);
    -  return dummyEvent2();
    -}
    -function dummyEvent2() {
    -  return {
    -    dispose() {
    -    }
    -  };
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimFileSystem.ts
    -var import_path6 = require("path");
    -var fs = __toESM(require("fs"), 1);
    -var NeovimFileSystem = class {
    -  constructor(runMode, cursorlessDir) {
    -    this.runMode = runMode;
    -    this.cursorlessDir = cursorlessDir;
    -    this.cursorlessTalonStateJsonPath = (0, import_path6.join)(this.cursorlessDir, "state.json");
    -    this.cursorlessCommandHistoryDirPath = (0, import_path6.join)(
    -      this.cursorlessDir,
    -      "commandHistory"
    -    );
    -  }
    -  async initialize() {
    -    if (!fs.existsSync(this.cursorlessDir)) {
    -      try {
    -        fs.mkdirSync(this.cursorlessDir);
    -      } catch (err) {
    -        console.debug("Cannot create cursorlessDir", this.cursorlessDir, err);
    -      }
    -    }
    -  }
    -  /**
    -   * Reads a file that comes bundled with Cursorless, with the utf-8 encoding.
    -   * {@link path} is expected to be relative to the root of the extension
    -   * bundle. If the file doesn't exist, returns `undefined`.
    -   *
    -   * Note that in development mode, it is possible to supply an absolute path to
    -   * a file on the local filesystem, for things like hot-reloading.
    -   *
    -   * @param path The path of the file to read
    -   * @returns The contents of path, decoded as UTF-8
    -   */
    -  async readBundledFile(path8) {
    -    console.debug("readBundledFile() Not implemented");
    -    return void 0;
    -  }
    -  resolveBundledPath(path8) {
    -    throw Error("resolveBundledPath() Not implemented");
    -  }
    -  watchDir(path8, onDidChange) {
    -    return dummyEvent3();
    -  }
    -};
    -function dummyEvent3() {
    -  return {
    -    dispose() {
    -    }
    -  };
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimGlobalState.ts
    -var NeovimGlobalState = class {
    -  constructor() {
    -    this.data = { ...STATE_DEFAULTS };
    -  }
    -  get(key) {
    -    return this.data[key];
    -  }
    -  set(key, value) {
    -    this.data[key] = value;
    -    return Promise.resolve();
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimIDE.ts
    -var import_lodash59 = __toESM(require_lodash(), 1);
    -
    -// ../neovim-common/src/ide/neovim/NeovimMessages.ts
    -var NeovimMessages = class {
    -  async showMessage(_type, _id, _message, ..._options) {
    -    return void 0;
    -  }
    -};
    -
    -// ../neovim-common/src/neovimHelpers.ts
    -async function neovimClipboardCopy(client, ide2) {
    -  const editor = ide2.activeTextEditor;
    -  const window2 = await client.window;
    -  const selections = await bufferGetSelections(window2, client);
    -  const data = editor.document.getText(selections[0]);
    -  await putToClipboard(data, client);
    -}
    -async function neovimClipboardPaste(client, ide2) {
    -  await pasteFromClipboard(client);
    -}
    -
    -// ../neovim-common/src/ide/neovim/NeovimTextEditorImpl.ts
    -var NeovimTextEditorImpl = class {
    -  constructor(id, client, neovimIDE, window2, doc, visibleRanges, selections) {
    -    this.id = id;
    -    this.client = client;
    -    this.neovimIDE = neovimIDE;
    -    this.window = window2;
    -    this._document = doc;
    -    this._selections = selections;
    -    this._visibleRanges = visibleRanges;
    -  }
    -  get document() {
    -    return this._document;
    -  }
    -  updateDocument(visibleRanges, selections, doc, lines) {
    -    if (doc) {
    -      this._document = doc;
    -    } else if (lines) {
    -      this._document.update(lines);
    -    } else {
    -      throw Error("updateDocument(): invalid arguments");
    -    }
    -    this._selections = selections;
    -    this._visibleRanges = visibleRanges;
    -    return this._document;
    -  }
    -  get selections() {
    -    return this._selections;
    -  }
    -  async setSelections(selections) {
    -    this._selections = selections;
    -    await bufferSetSelections(this.client, selections);
    -  }
    -  get visibleRanges() {
    -    return this._visibleRanges;
    -  }
    -  get options() {
    -    throw Error("get options Not implemented");
    -  }
    -  set options(options2) {
    -    throw Error("set options Not implemented");
    -  }
    -  get isActive() {
    -    return true;
    -  }
    -  isEqual(other) {
    -    return this.id === other.id;
    -  }
    -  async revealRange(range4) {
    -  }
    -  revealLine(lineNumber, at) {
    -    throw Error("revealLine Not implemented");
    -  }
    -  async edit(edits) {
    -    return await neovimEdit(this.client, this.neovimIDE, this.window, edits);
    -  }
    -  focus() {
    -    return Promise.resolve();
    -  }
    -  editNewNotebookCellAbove() {
    -    throw Error("editNewNotebookCellAbove Not implemented");
    -  }
    -  editNewNotebookCellBelow() {
    -    throw Error("editNewNotebookCellBelow Not implemented");
    -  }
    -  openLink(location) {
    -    throw Error("openLink Not implemented");
    -  }
    -  fold(ranges) {
    -    throw Error("fold Not implemented");
    -  }
    -  unfold(ranges) {
    -    throw Error("unfold Not implemented");
    -  }
    -  toggleBreakpoint(descriptors) {
    -    throw Error("toggleBreakpoint Not implemented");
    -  }
    -  async toggleLineComment(_ranges) {
    -    throw Error("toggleLineComment Not implemented");
    -  }
    -  async clipboardCopy(_ranges) {
    -    await neovimClipboardCopy(this.client, this.neovimIDE);
    -  }
    -  async clipboardPaste(_ranges) {
    -    await neovimClipboardPaste(this.client, this.neovimIDE);
    -  }
    -  async indentLine(_ranges) {
    -    throw Error("indentLine Not implemented");
    -  }
    -  async outdentLine(_ranges) {
    -    throw Error("outdentLine Not implemented");
    -  }
    -  async insertLineAfter(ranges) {
    -    throw Error("insertLineAfter Not implemented");
    -  }
    -  insertSnippet(snippet2, ranges) {
    -    throw Error("insertSnippet Not implemented");
    -  }
    -  async rename(_range) {
    -    throw Error("rename Not implemented");
    -  }
    -  async showReferences(_range) {
    -    throw Error("showReferences Not implemented");
    -  }
    -  async quickFix(_range) {
    -    throw Error("quickFix Not implemented");
    -  }
    -  async revealDefinition(_range) {
    -    throw Error("revealDefinition Not implemented");
    -  }
    -  async revealTypeDefinition(_range) {
    -    throw Error("revealTypeDefinition Not implemented");
    -  }
    -  async showHover(_range) {
    -    throw Error("showHover Not implemented");
    -  }
    -  async showDebugHover(_range) {
    -    throw Error("showDebugHover Not implemented");
    -  }
    -  async extractVariable(_range) {
    -    throw Error("extractVariable Not implemented");
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimIDE.ts
    -var import_path7 = __toESM(require("path"), 1);
    -
    -// ../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/esm/index.mjs
    -var LIB;
    -(() => {
    -  "use strict";
    -  var t = { 470: (t2) => {
    -    function e2(t3) {
    -      if ("string" != typeof t3)
    -        throw new TypeError("Path must be a string. Received " + JSON.stringify(t3));
    -    }
    -    function r2(t3, e3) {
    -      for (var r3, n3 = "", i = 0, o = -1, s = 0, h = 0; h <= t3.length; ++h) {
    -        if (h < t3.length)
    -          r3 = t3.charCodeAt(h);
    -        else {
    -          if (47 === r3)
    -            break;
    -          r3 = 47;
    -        }
    -        if (47 === r3) {
    -          if (o === h - 1 || 1 === s)
    -            ;
    -          else if (o !== h - 1 && 2 === s) {
    -            if (n3.length < 2 || 2 !== i || 46 !== n3.charCodeAt(n3.length - 1) || 46 !== n3.charCodeAt(n3.length - 2)) {
    -              if (n3.length > 2) {
    -                var a = n3.lastIndexOf("/");
    -                if (a !== n3.length - 1) {
    -                  -1 === a ? (n3 = "", i = 0) : i = (n3 = n3.slice(0, a)).length - 1 - n3.lastIndexOf("/"), o = h, s = 0;
    -                  continue;
    -                }
    -              } else if (2 === n3.length || 1 === n3.length) {
    -                n3 = "", i = 0, o = h, s = 0;
    -                continue;
    -              }
    -            }
    -            e3 && (n3.length > 0 ? n3 += "/.." : n3 = "..", i = 2);
    -          } else
    -            n3.length > 0 ? n3 += "/" + t3.slice(o + 1, h) : n3 = t3.slice(o + 1, h), i = h - o - 1;
    -          o = h, s = 0;
    -        } else
    -          46 === r3 && -1 !== s ? ++s : s = -1;
    -      }
    -      return n3;
    -    }
    -    var n2 = { resolve: function() {
    -      for (var t3, n3 = "", i = false, o = arguments.length - 1; o >= -1 && !i; o--) {
    -        var s;
    -        o >= 0 ? s = arguments[o] : (void 0 === t3 && (t3 = process.cwd()), s = t3), e2(s), 0 !== s.length && (n3 = s + "/" + n3, i = 47 === s.charCodeAt(0));
    -      }
    -      return n3 = r2(n3, !i), i ? n3.length > 0 ? "/" + n3 : "/" : n3.length > 0 ? n3 : ".";
    -    }, normalize: function(t3) {
    -      if (e2(t3), 0 === t3.length)
    -        return ".";
    -      var n3 = 47 === t3.charCodeAt(0), i = 47 === t3.charCodeAt(t3.length - 1);
    -      return 0 !== (t3 = r2(t3, !n3)).length || n3 || (t3 = "."), t3.length > 0 && i && (t3 += "/"), n3 ? "/" + t3 : t3;
    -    }, isAbsolute: function(t3) {
    -      return e2(t3), t3.length > 0 && 47 === t3.charCodeAt(0);
    -    }, join: function() {
    -      if (0 === arguments.length)
    -        return ".";
    -      for (var t3, r3 = 0; r3 < arguments.length; ++r3) {
    -        var i = arguments[r3];
    -        e2(i), i.length > 0 && (void 0 === t3 ? t3 = i : t3 += "/" + i);
    -      }
    -      return void 0 === t3 ? "." : n2.normalize(t3);
    -    }, relative: function(t3, r3) {
    -      if (e2(t3), e2(r3), t3 === r3)
    -        return "";
    -      if ((t3 = n2.resolve(t3)) === (r3 = n2.resolve(r3)))
    -        return "";
    -      for (var i = 1; i < t3.length && 47 === t3.charCodeAt(i); ++i)
    -        ;
    -      for (var o = t3.length, s = o - i, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h)
    -        ;
    -      for (var a = r3.length - h, c = s < a ? s : a, f = -1, u = 0; u <= c; ++u) {
    -        if (u === c) {
    -          if (a > c) {
    -            if (47 === r3.charCodeAt(h + u))
    -              return r3.slice(h + u + 1);
    -            if (0 === u)
    -              return r3.slice(h + u);
    -          } else
    -            s > c && (47 === t3.charCodeAt(i + u) ? f = u : 0 === u && (f = 0));
    -          break;
    -        }
    -        var l = t3.charCodeAt(i + u);
    -        if (l !== r3.charCodeAt(h + u))
    -          break;
    -        47 === l && (f = u);
    -      }
    -      var g = "";
    -      for (u = i + f + 1; u <= o; ++u)
    -        u !== o && 47 !== t3.charCodeAt(u) || (0 === g.length ? g += ".." : g += "/..");
    -      return g.length > 0 ? g + r3.slice(h + f) : (h += f, 47 === r3.charCodeAt(h) && ++h, r3.slice(h));
    -    }, _makeLong: function(t3) {
    -      return t3;
    -    }, dirname: function(t3) {
    -      if (e2(t3), 0 === t3.length)
    -        return ".";
    -      for (var r3 = t3.charCodeAt(0), n3 = 47 === r3, i = -1, o = true, s = t3.length - 1; s >= 1; --s)
    -        if (47 === (r3 = t3.charCodeAt(s))) {
    -          if (!o) {
    -            i = s;
    -            break;
    -          }
    -        } else
    -          o = false;
    -      return -1 === i ? n3 ? "/" : "." : n3 && 1 === i ? "//" : t3.slice(0, i);
    -    }, basename: function(t3, r3) {
    -      if (void 0 !== r3 && "string" != typeof r3)
    -        throw new TypeError('"ext" argument must be a string');
    -      e2(t3);
    -      var n3, i = 0, o = -1, s = true;
    -      if (void 0 !== r3 && r3.length > 0 && r3.length <= t3.length) {
    -        if (r3.length === t3.length && r3 === t3)
    -          return "";
    -        var h = r3.length - 1, a = -1;
    -        for (n3 = t3.length - 1; n3 >= 0; --n3) {
    -          var c = t3.charCodeAt(n3);
    -          if (47 === c) {
    -            if (!s) {
    -              i = n3 + 1;
    -              break;
    -            }
    -          } else
    -            -1 === a && (s = false, a = n3 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (o = n3) : (h = -1, o = a));
    -        }
    -        return i === o ? o = a : -1 === o && (o = t3.length), t3.slice(i, o);
    -      }
    -      for (n3 = t3.length - 1; n3 >= 0; --n3)
    -        if (47 === t3.charCodeAt(n3)) {
    -          if (!s) {
    -            i = n3 + 1;
    -            break;
    -          }
    -        } else
    -          -1 === o && (s = false, o = n3 + 1);
    -      return -1 === o ? "" : t3.slice(i, o);
    -    }, extname: function(t3) {
    -      e2(t3);
    -      for (var r3 = -1, n3 = 0, i = -1, o = true, s = 0, h = t3.length - 1; h >= 0; --h) {
    -        var a = t3.charCodeAt(h);
    -        if (47 !== a)
    -          -1 === i && (o = false, i = h + 1), 46 === a ? -1 === r3 ? r3 = h : 1 !== s && (s = 1) : -1 !== r3 && (s = -1);
    -        else if (!o) {
    -          n3 = h + 1;
    -          break;
    -        }
    -      }
    -      return -1 === r3 || -1 === i || 0 === s || 1 === s && r3 === i - 1 && r3 === n3 + 1 ? "" : t3.slice(r3, i);
    -    }, format: function(t3) {
    -      if (null === t3 || "object" != typeof t3)
    -        throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t3);
    -      return function(t4, e3) {
    -        var r3 = e3.dir || e3.root, n3 = e3.base || (e3.name || "") + (e3.ext || "");
    -        return r3 ? r3 === e3.root ? r3 + n3 : r3 + "/" + n3 : n3;
    -      }(0, t3);
    -    }, parse: function(t3) {
    -      e2(t3);
    -      var r3 = { root: "", dir: "", base: "", ext: "", name: "" };
    -      if (0 === t3.length)
    -        return r3;
    -      var n3, i = t3.charCodeAt(0), o = 47 === i;
    -      o ? (r3.root = "/", n3 = 1) : n3 = 0;
    -      for (var s = -1, h = 0, a = -1, c = true, f = t3.length - 1, u = 0; f >= n3; --f)
    -        if (47 !== (i = t3.charCodeAt(f)))
    -          -1 === a && (c = false, a = f + 1), 46 === i ? -1 === s ? s = f : 1 !== u && (u = 1) : -1 !== s && (u = -1);
    -        else if (!c) {
    -          h = f + 1;
    -          break;
    -        }
    -      return -1 === s || -1 === a || 0 === u || 1 === u && s === a - 1 && s === h + 1 ? -1 !== a && (r3.base = r3.name = 0 === h && o ? t3.slice(1, a) : t3.slice(h, a)) : (0 === h && o ? (r3.name = t3.slice(1, s), r3.base = t3.slice(1, a)) : (r3.name = t3.slice(h, s), r3.base = t3.slice(h, a)), r3.ext = t3.slice(s, a)), h > 0 ? r3.dir = t3.slice(0, h - 1) : o && (r3.dir = "/"), r3;
    -    }, sep: "/", delimiter: ":", win32: null, posix: null };
    -    n2.posix = n2, t2.exports = n2;
    -  } }, e = {};
    -  function r(n2) {
    -    var i = e[n2];
    -    if (void 0 !== i)
    -      return i.exports;
    -    var o = e[n2] = { exports: {} };
    -    return t[n2](o, o.exports, r), o.exports;
    -  }
    -  r.d = (t2, e2) => {
    -    for (var n2 in e2)
    -      r.o(e2, n2) && !r.o(t2, n2) && Object.defineProperty(t2, n2, { enumerable: true, get: e2[n2] });
    -  }, r.o = (t2, e2) => Object.prototype.hasOwnProperty.call(t2, e2), r.r = (t2) => {
    -    "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t2, "__esModule", { value: true });
    -  };
    -  var n = {};
    -  (() => {
    -    let t2;
    -    if (r.r(n), r.d(n, { URI: () => f, Utils: () => P }), "object" == typeof process)
    -      t2 = "win32" === process.platform;
    -    else if ("object" == typeof navigator) {
    -      let e3 = navigator.userAgent;
    -      t2 = e3.indexOf("Windows") >= 0;
    -    }
    -    const e2 = /^\w[\w\d+.-]*$/, i = /^\//, o = /^\/\//;
    -    function s(t3, r2) {
    -      if (!t3.scheme && r2)
    -        throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t3.authority}", path: "${t3.path}", query: "${t3.query}", fragment: "${t3.fragment}"}`);
    -      if (t3.scheme && !e2.test(t3.scheme))
    -        throw new Error("[UriError]: Scheme contains illegal characters.");
    -      if (t3.path) {
    -        if (t3.authority) {
    -          if (!i.test(t3.path))
    -            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
    -        } else if (o.test(t3.path))
    -          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
    -      }
    -    }
    -    const h = "", a = "/", c = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
    -    class f {
    -      static isUri(t3) {
    -        return t3 instanceof f || !!t3 && "string" == typeof t3.authority && "string" == typeof t3.fragment && "string" == typeof t3.path && "string" == typeof t3.query && "string" == typeof t3.scheme && "string" == typeof t3.fsPath && "function" == typeof t3.with && "function" == typeof t3.toString;
    -      }
    -      scheme;
    -      authority;
    -      path;
    -      query;
    -      fragment;
    -      constructor(t3, e3, r2, n2, i2, o2 = false) {
    -        "object" == typeof t3 ? (this.scheme = t3.scheme || h, this.authority = t3.authority || h, this.path = t3.path || h, this.query = t3.query || h, this.fragment = t3.fragment || h) : (this.scheme = /* @__PURE__ */ function(t4, e4) {
    -          return t4 || e4 ? t4 : "file";
    -        }(t3, o2), this.authority = e3 || h, this.path = function(t4, e4) {
    -          switch (t4) {
    -            case "https":
    -            case "http":
    -            case "file":
    -              e4 ? e4[0] !== a && (e4 = a + e4) : e4 = a;
    -          }
    -          return e4;
    -        }(this.scheme, r2 || h), this.query = n2 || h, this.fragment = i2 || h, s(this, o2));
    -      }
    -      get fsPath() {
    -        return m(this, false);
    -      }
    -      with(t3) {
    -        if (!t3)
    -          return this;
    -        let { scheme: e3, authority: r2, path: n2, query: i2, fragment: o2 } = t3;
    -        return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = h), void 0 === r2 ? r2 = this.authority : null === r2 && (r2 = h), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = h), void 0 === i2 ? i2 = this.query : null === i2 && (i2 = h), void 0 === o2 ? o2 = this.fragment : null === o2 && (o2 = h), e3 === this.scheme && r2 === this.authority && n2 === this.path && i2 === this.query && o2 === this.fragment ? this : new l(e3, r2, n2, i2, o2);
    -      }
    -      static parse(t3, e3 = false) {
    -        const r2 = c.exec(t3);
    -        return r2 ? new l(r2[2] || h, C(r2[4] || h), C(r2[5] || h), C(r2[7] || h), C(r2[9] || h), e3) : new l(h, h, h, h, h);
    -      }
    -      static file(e3) {
    -        let r2 = h;
    -        if (t2 && (e3 = e3.replace(/\\/g, a)), e3[0] === a && e3[1] === a) {
    -          const t3 = e3.indexOf(a, 2);
    -          -1 === t3 ? (r2 = e3.substring(2), e3 = a) : (r2 = e3.substring(2, t3), e3 = e3.substring(t3) || a);
    -        }
    -        return new l("file", r2, e3, h, h);
    -      }
    -      static from(t3) {
    -        const e3 = new l(t3.scheme, t3.authority, t3.path, t3.query, t3.fragment);
    -        return s(e3, true), e3;
    -      }
    -      toString(t3 = false) {
    -        return y(this, t3);
    -      }
    -      toJSON() {
    -        return this;
    -      }
    -      static revive(t3) {
    -        if (t3) {
    -          if (t3 instanceof f)
    -            return t3;
    -          {
    -            const e3 = new l(t3);
    -            return e3._formatted = t3.external, e3._fsPath = t3._sep === u ? t3.fsPath : null, e3;
    -          }
    -        }
    -        return t3;
    -      }
    -    }
    -    const u = t2 ? 1 : void 0;
    -    class l extends f {
    -      _formatted = null;
    -      _fsPath = null;
    -      get fsPath() {
    -        return this._fsPath || (this._fsPath = m(this, false)), this._fsPath;
    -      }
    -      toString(t3 = false) {
    -        return t3 ? y(this, true) : (this._formatted || (this._formatted = y(this, false)), this._formatted);
    -      }
    -      toJSON() {
    -        const t3 = { $mid: 1 };
    -        return this._fsPath && (t3.fsPath = this._fsPath, t3._sep = u), this._formatted && (t3.external = this._formatted), this.path && (t3.path = this.path), this.scheme && (t3.scheme = this.scheme), this.authority && (t3.authority = this.authority), this.query && (t3.query = this.query), this.fragment && (t3.fragment = this.fragment), t3;
    -      }
    -    }
    -    const g = { 58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20" };
    -    function d(t3, e3, r2) {
    -      let n2, i2 = -1;
    -      for (let o2 = 0; o2 < t3.length; o2++) {
    -        const s2 = t3.charCodeAt(o2);
    -        if (s2 >= 97 && s2 <= 122 || s2 >= 65 && s2 <= 90 || s2 >= 48 && s2 <= 57 || 45 === s2 || 46 === s2 || 95 === s2 || 126 === s2 || e3 && 47 === s2 || r2 && 91 === s2 || r2 && 93 === s2 || r2 && 58 === s2)
    -          -1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += t3.charAt(o2));
    -        else {
    -          void 0 === n2 && (n2 = t3.substr(0, o2));
    -          const e4 = g[s2];
    -          void 0 !== e4 ? (-1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2, o2)), i2 = -1), n2 += e4) : -1 === i2 && (i2 = o2);
    -        }
    -      }
    -      return -1 !== i2 && (n2 += encodeURIComponent(t3.substring(i2))), void 0 !== n2 ? n2 : t3;
    -    }
    -    function p(t3) {
    -      let e3;
    -      for (let r2 = 0; r2 < t3.length; r2++) {
    -        const n2 = t3.charCodeAt(r2);
    -        35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t3.substr(0, r2)), e3 += g[n2]) : void 0 !== e3 && (e3 += t3[r2]);
    -      }
    -      return void 0 !== e3 ? e3 : t3;
    -    }
    -    function m(e3, r2) {
    -      let n2;
    -      return n2 = e3.authority && e3.path.length > 1 && "file" === e3.scheme ? `//${e3.authority}${e3.path}` : 47 === e3.path.charCodeAt(0) && (e3.path.charCodeAt(1) >= 65 && e3.path.charCodeAt(1) <= 90 || e3.path.charCodeAt(1) >= 97 && e3.path.charCodeAt(1) <= 122) && 58 === e3.path.charCodeAt(2) ? r2 ? e3.path.substr(1) : e3.path[1].toLowerCase() + e3.path.substr(2) : e3.path, t2 && (n2 = n2.replace(/\//g, "\\")), n2;
    -    }
    -    function y(t3, e3) {
    -      const r2 = e3 ? p : d;
    -      let n2 = "", { scheme: i2, authority: o2, path: s2, query: h2, fragment: c2 } = t3;
    -      if (i2 && (n2 += i2, n2 += ":"), (o2 || "file" === i2) && (n2 += a, n2 += a), o2) {
    -        let t4 = o2.indexOf("@");
    -        if (-1 !== t4) {
    -          const e4 = o2.substr(0, t4);
    -          o2 = o2.substr(t4 + 1), t4 = e4.lastIndexOf(":"), -1 === t4 ? n2 += r2(e4, false, false) : (n2 += r2(e4.substr(0, t4), false, false), n2 += ":", n2 += r2(e4.substr(t4 + 1), false, true)), n2 += "@";
    -        }
    -        o2 = o2.toLowerCase(), t4 = o2.lastIndexOf(":"), -1 === t4 ? n2 += r2(o2, false, true) : (n2 += r2(o2.substr(0, t4), false, true), n2 += o2.substr(t4));
    -      }
    -      if (s2) {
    -        if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {
    -          const t4 = s2.charCodeAt(1);
    -          t4 >= 65 && t4 <= 90 && (s2 = `/${String.fromCharCode(t4 + 32)}:${s2.substr(3)}`);
    -        } else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {
    -          const t4 = s2.charCodeAt(0);
    -          t4 >= 65 && t4 <= 90 && (s2 = `${String.fromCharCode(t4 + 32)}:${s2.substr(2)}`);
    -        }
    -        n2 += r2(s2, true, false);
    -      }
    -      return h2 && (n2 += "?", n2 += r2(h2, false, false)), c2 && (n2 += "#", n2 += e3 ? c2 : d(c2, false, false)), n2;
    -    }
    -    function v(t3) {
    -      try {
    -        return decodeURIComponent(t3);
    -      } catch {
    -        return t3.length > 3 ? t3.substr(0, 3) + v(t3.substr(3)) : t3;
    -      }
    -    }
    -    const b = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
    -    function C(t3) {
    -      return t3.match(b) ? t3.replace(b, (t4) => v(t4)) : t3;
    -    }
    -    var A = r(470);
    -    const w = A.posix || A, x = "/";
    -    var P;
    -    !function(t3) {
    -      t3.joinPath = function(t4, ...e3) {
    -        return t4.with({ path: w.join(t4.path, ...e3) });
    -      }, t3.resolvePath = function(t4, ...e3) {
    -        let r2 = t4.path, n2 = false;
    -        r2[0] !== x && (r2 = x + r2, n2 = true);
    -        let i2 = w.resolve(r2, ...e3);
    -        return n2 && i2[0] === x && !t4.authority && (i2 = i2.substring(1)), t4.with({ path: i2 });
    -      }, t3.dirname = function(t4) {
    -        if (0 === t4.path.length || t4.path === x)
    -          return t4;
    -        let e3 = w.dirname(t4.path);
    -        return 1 === e3.length && 46 === e3.charCodeAt(0) && (e3 = ""), t4.with({ path: e3 });
    -      }, t3.basename = function(t4) {
    -        return w.basename(t4.path);
    -      }, t3.extname = function(t4) {
    -        return w.extname(t4.path);
    -      };
    -    }(P || (P = {}));
    -  })(), LIB = n;
    -})();
    -var { URI, Utils } = LIB;
    -
    -// ../neovim-common/src/ide/neovim/NeovimTextLineImpl.ts
    -var NeovimTextLineImpl = class {
    -  constructor(lineNumber, text, isLastLine) {
    -    this._lineNumber = lineNumber;
    -    this._text = text;
    -    this._isLastLine = isLastLine;
    -  }
    -  get lineNumber() {
    -    return this._lineNumber;
    -  }
    -  get text() {
    -    return this._text;
    -  }
    -  get range() {
    -    return new Range(this._lineNumber, 0, this._lineNumber, this._text.length);
    -  }
    -  get rangeIncludingLineBreak() {
    -    if (this._isLastLine) {
    -      return this.range;
    -    }
    -    return new Range(this._lineNumber, 0, this._lineNumber + 1, 0);
    -  }
    -  get firstNonWhitespaceCharacterIndex() {
    -    const index = /^(\s*)/.exec(this._text)[1].length;
    -    return index;
    -  }
    -  get lastNonWhitespaceCharacterIndex() {
    -    const index = this.text.trimEnd().length;
    -    return index;
    -  }
    -  get isEmptyOrWhitespace() {
    -    return this.firstNonWhitespaceCharacterIndex === this._text.length;
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimTextDocumentImpl.ts
    -var NeovimTextDocumentImpl = class {
    -  get uri() {
    -    return this._uri;
    -  }
    -  get languageId() {
    -    return this._languageId;
    -  }
    -  get version() {
    -    return this._version;
    -  }
    -  get lineCount() {
    -    return this._lineCount;
    -  }
    -  get range() {
    -    const { end } = this.lineAt(this.lineCount - 1).range;
    -    const range4 = new Range(0, 0, end.line, end.character);
    -    return range4;
    -  }
    -  get eol() {
    -    return this._eol === "\n" ? "LF" : "CRLF";
    -  }
    -  constructor(uri, languageId, version2, eol, lines) {
    -    this._uri = uri;
    -    this._languageId = languageId;
    -    this._version = version2;
    -    this._eol = eol;
    -    this._lines = lines;
    -    this._lineCount = lines.length;
    -    this._lineStarts = null;
    -    this._cachedTextValue = null;
    -  }
    -  update(lines) {
    -    this._lines = lines;
    -    this._lineCount = lines.length;
    -    this._lineStarts = null;
    -    this._cachedTextValue = null;
    -  }
    -  lineAt(lineOrPosition) {
    -    let line;
    -    if (lineOrPosition instanceof Position) {
    -      line = lineOrPosition.line;
    -    } else if (typeof lineOrPosition === "number") {
    -      line = lineOrPosition;
    -    }
    -    if (typeof line !== "number" || line < 0 || line >= this._lines.length || Math.floor(line) !== line) {
    -      throw new Error("Illegal value for `line`");
    -    }
    -    return new NeovimTextLineImpl(
    -      line,
    -      this._lines[line],
    -      line === this._lines.length - 1
    -    );
    -  }
    -  offsetAt(position) {
    -    position = this._validatePosition(position);
    -    this._ensureLineStarts();
    -    return this._lineStarts.getPrefixSum(position.line - 1) + position.character;
    -  }
    -  positionAt(offset) {
    -    offset = Math.floor(offset);
    -    offset = Math.max(0, offset);
    -    this._ensureLineStarts();
    -    const out = this._lineStarts.getIndexOf(offset);
    -    const lineLength = this._lines[out.index].length;
    -    return new Position(out.index, Math.min(out.remainder, lineLength));
    -  }
    -  getText(range4) {
    -    if (range4 === void 0) {
    -      if (this._cachedTextValue == null) {
    -        this._cachedTextValue = this._lines.join(this._eol);
    -      }
    -      return this._cachedTextValue;
    -    } else {
    -    }
    -    range4 = this._validateRange(range4);
    -    if (range4.isEmpty) {
    -      return "";
    -    }
    -    if (range4.isSingleLine) {
    -      return this._lines[range4.start.line].substring(
    -        range4.start.character,
    -        range4.end.character
    -      );
    -    }
    -    const lineEnding = this._eol, startLineIndex = range4.start.line, endLineIndex = range4.end.line, resultLines = [];
    -    resultLines.push(
    -      this._lines[startLineIndex].substring(range4.start.character)
    -    );
    -    for (let i = startLineIndex + 1; i < endLineIndex; i++) {
    -      resultLines.push(this._lines[i]);
    -    }
    -    resultLines.push(
    -      this._lines[endLineIndex].substring(0, range4.end.character)
    -    );
    -    return resultLines.join(lineEnding);
    -  }
    -  // ---- range math
    -  _validateRange(range4) {
    -    if (!(range4 instanceof Range)) {
    -      throw new Error("Invalid argument");
    -    }
    -    const start = this._validatePosition(range4.start);
    -    const end = this._validatePosition(range4.end);
    -    if (start === range4.start && end === range4.end) {
    -      return range4;
    -    }
    -    return new Range(start.line, start.character, end.line, end.character);
    -  }
    -  _validatePosition(position) {
    -    if (!(position instanceof Position)) {
    -      throw new Error("Invalid argument");
    -    }
    -    if (this._lines.length === 0) {
    -      return position.with(0, 0);
    -    }
    -    let { line, character } = position;
    -    let hasChanged = false;
    -    if (line < 0) {
    -      line = 0;
    -      character = 0;
    -      hasChanged = true;
    -    } else if (line >= this._lines.length) {
    -      line = this._lines.length - 1;
    -      character = this._lines[line].length;
    -      hasChanged = true;
    -    } else {
    -      const maxCharacter = this._lines[line].length;
    -      if (character < 0) {
    -        character = 0;
    -        hasChanged = true;
    -      } else if (character > maxCharacter) {
    -        character = maxCharacter;
    -        hasChanged = true;
    -      }
    -    }
    -    if (!hasChanged) {
    -      return position;
    -    }
    -    return new Position(line, character);
    -  }
    -  _ensureLineStarts() {
    -    if (!this._lineStarts) {
    -      const eolLength = this._eol.length;
    -      const linesLength = this._lines.length;
    -      const lineStartValues = new Uint32Array(linesLength);
    -      for (let i = 0; i < linesLength; i++) {
    -        lineStartValues[i] = this._lines[i].length + eolLength;
    -      }
    -      this._lineStarts = new PrefixSumComputer(lineStartValues);
    -    }
    -  }
    -};
    -function toUint32(v) {
    -  if (v < 0) {
    -    return 0;
    -  }
    -  const maxUint32 = 4294967295;
    -  if (v > maxUint32) {
    -    return maxUint32;
    -  }
    -  return v | 0;
    -}
    -var PrefixSumComputer = class {
    -  constructor(values2) {
    -    this.values = values2;
    -    this.prefixSum = new Uint32Array(values2.length);
    -    this.prefixSumValidIndex = new Int32Array(1);
    -    this.prefixSumValidIndex[0] = -1;
    -  }
    -  getCount() {
    -    return this.values.length;
    -  }
    -  getTotalSum() {
    -    if (this.values.length === 0) {
    -      return 0;
    -    }
    -    return this._getPrefixSum(this.values.length - 1);
    -  }
    -  /**
    -   * Returns the sum of the first `index + 1` many items.
    -   * @returns `SUM(0 <= j <= index, values[j])`.
    -   */
    -  getPrefixSum(index) {
    -    if (index < 0) {
    -      return 0;
    -    }
    -    index = toUint32(index);
    -    return this._getPrefixSum(index);
    -  }
    -  _getPrefixSum(index) {
    -    if (index <= this.prefixSumValidIndex[0]) {
    -      return this.prefixSum[index];
    -    }
    -    let startIndex = this.prefixSumValidIndex[0] + 1;
    -    if (startIndex === 0) {
    -      this.prefixSum[0] = this.values[0];
    -      startIndex++;
    -    }
    -    if (index >= this.values.length) {
    -      index = this.values.length - 1;
    -    }
    -    for (let i = startIndex; i <= index; i++) {
    -      this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];
    -    }
    -    this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);
    -    return this.prefixSum[index];
    -  }
    -  getIndexOf(sum2) {
    -    sum2 = Math.floor(sum2);
    -    this.getTotalSum();
    -    let low = 0;
    -    let high = this.values.length - 1;
    -    let mid = 0;
    -    let midStop = 0;
    -    let midStart = 0;
    -    while (low <= high) {
    -      mid = low + (high - low) / 2 | 0;
    -      midStop = this.prefixSum[mid];
    -      midStart = midStop - this.values[mid];
    -      if (sum2 < midStart) {
    -        high = mid - 1;
    -      } else if (sum2 >= midStop) {
    -        low = mid + 1;
    -      } else {
    -        break;
    -      }
    -    }
    -    return new PrefixSumIndexOfResult(mid, sum2 - midStart);
    -  }
    -};
    -var PrefixSumIndexOfResult = class {
    -  constructor(index, remainder) {
    -    this.index = index;
    -    this.remainder = remainder;
    -    this._prefixSumIndexOfResultBrand = void 0;
    -    this.index = index;
    -    this.remainder = remainder;
    -  }
    -};
    -
    -// ../neovim-common/src/ide/neovim/NeovimIDE.ts
    -var NeovimIDE = class {
    -  constructor(client) {
    -    this.client = client;
    -    this.cursorlessVersion = "0.0.0";
    -    this.workspaceFolders = void 0;
    -    this.disposables = [];
    -    this.quickPickReturnValue = void 0;
    -    this.onDidCloseTextDocument = dummyEvent4;
    -    this.onDidChangeActiveTextEditor = dummyEvent4;
    -    this.onDidChangeVisibleTextEditors = dummyEvent4;
    -    this.onDidChangeTextEditorSelection = dummyEvent4;
    -    this.onDidChangeTextEditorVisibleRanges = dummyEvent4;
    -    this.configuration = new NeovimConfiguration();
    -    this.globalState = new NeovimGlobalState();
    -    this.messages = new NeovimMessages();
    -    this.clipboard = new NeovimClipboard(this.client);
    -    this.capabilities = new NeovimCapabilities();
    -    this.editorMap = /* @__PURE__ */ new Map();
    -    this.documentMap = /* @__PURE__ */ new Map();
    -    this.activeWindow = void 0;
    -    this.activeBuffer = void 0;
    -  }
    -  async init() {
    -    const rootPath = await getCursorlessNvimPath(this.client);
    -    this.assetsRoot_ = import_path7.default.join(rootPath, "assets");
    -    this.cursorlessNeovimPath = import_path7.default.join(
    -      rootPath,
    -      "node",
    -      "cursorless-neovim"
    -    );
    -  }
    -  async showQuickPick(_items, _options) {
    -    throw Error("showQuickPick Not implemented");
    -  }
    -  async setHighlightRanges(_highlightId, _editor, _ranges) {
    -    throw Error("setHighlightRanges Not implemented");
    -  }
    -  async flashRanges(_flashDescriptors) {
    -    console.debug("flashRanges Not implemented");
    -  }
    -  get assetsRoot() {
    -    if (this.assetsRoot_ == null) {
    -      throw Error("Field `assetsRoot` has not yet been mocked");
    -    }
    -    return this.assetsRoot_;
    -  }
    -  // See https://code.visualstudio.com/api/references/vscode-api#ExtensionMode
    -  get runMode() {
    -    const runMode = process.env.CURSORLESS_MODE;
    -    const ret = runMode == null ? "production" : runMode === "test" ? "test" : runMode == "development" ? "development" : "unknown";
    -    if (ret === "unknown") {
    -      throw Error("Invalid runMode");
    -    }
    -    return ret;
    -  }
    -  get activeTextEditor() {
    -    return this.getActiveTextEditor();
    -  }
    -  get activeEditableTextEditor() {
    -    return this.getActiveTextEditor();
    -  }
    -  getActiveTextEditor() {
    -    const editor = this.activeWindow ? this.getTextEditor(this.activeWindow) : void 0;
    -    if (editor === void 0) {
    -      console.debug("getActiveTextEditor: editor is undefined");
    -    }
    -    return editor;
    -  }
    -  getTextEditor(w) {
    -    for (const [window2, textEditor] of this.editorMap) {
    -      if (window2.id === w.id) {
    -        return textEditor;
    -      }
    -    }
    -    return void 0;
    -  }
    -  getTextDocument(b) {
    -    for (const [buffer, textDocument] of this.documentMap) {
    -      if (buffer.id === b.id) {
    -        return textDocument;
    -      }
    -    }
    -    return void 0;
    -  }
    -  get visibleTextEditors() {
    -    return Array.from(this.editorMap.values());
    -  }
    -  getEditableTextEditor(editor) {
    -    return editor;
    -  }
    -  async findInDocument(_query, _editor) {
    -    throw Error("findInDocument Not implemented");
    -  }
    -  async findInWorkspace(_query) {
    -    throw Error("findInWorkspace Not implemented");
    -  }
    -  async openTextDocument(_path) {
    -    throw Error("openTextDocument Not implemented");
    -  }
    -  async openUntitledTextDocument(_options) {
    -    throw Error("openUntitledTextDocument Not implemented");
    -  }
    -  async showInputBox(_options) {
    -    throw Error("TextDocumentChangeEvent Not implemented");
    -  }
    -  async executeCommand(_command, ..._args) {
    -    throw new Error("executeCommand Method not implemented.");
    -  }
    -  onDidChangeTextDocument(listener) {
    -    return neovimOnDidChangeTextDocument(listener);
    -  }
    -  onDidOpenTextDocument(listener, thisArgs, disposables) {
    -    return neovimOnDidOpenTextDocument(listener, thisArgs, disposables);
    -  }
    -  /**
    -   * Initialize the current editor (and current document).
    -   * If the current editor already exists, it will only update the current document of that editor.
    -   *
    -   * when we receive our first cursorless command, we will initialize an editor an document for it.
    -   * for the following commands, we will only update the document.
    -   *
    -   * Atm, we only initialize one editor(current window) with one document(current buffer)
    -   */
    -  async updateTextEditor(minimal = false) {
    -    const window2 = await this.client.window;
    -    const buffer = await window2.buffer;
    -    const lines = await buffer.lines;
    -    let linesShown = lines;
    -    if (lines.length >= 30) {
    -      linesShown = lines.slice(0, 15).concat(["..."]).concat(lines.slice(-15));
    -    }
    -    console.debug(
    -      `updateTextEditor(): window:${window2.id}, buffer:${buffer.id}, lines=${JSON.stringify(linesShown)}`
    -    );
    -    let selections;
    -    let visibleRanges;
    -    if (!minimal) {
    -      selections = await bufferGetSelections(window2, this.client);
    -      visibleRanges = await windowGetVisibleRanges(window2, this.client, lines);
    -    } else {
    -      selections = [];
    -      visibleRanges = [];
    -    }
    -    const editor = this.toNeovimEditor(
    -      window2,
    -      buffer,
    -      lines,
    -      visibleRanges,
    -      selections
    -    );
    -    getNeovimRegistry().emitEvent("onDidOpenTextDocument", editor.document);
    -    return editor;
    -  }
    -  toNeovimEditor(window2, buffer, lines, visibleRanges, selections) {
    -    let document = this.getTextDocument(buffer);
    -    let editor = this.getTextEditor(window2);
    -    if (!document) {
    -      console.debug(
    -        `toNeovimEditor(): creating new document: buffer=${buffer.id}`
    -      );
    -      document = new NeovimTextDocumentImpl(
    -        URI.parse(`neovim://${buffer.id}`),
    -        // URI.parse(`file://${buffer.id}`),
    -        "plaintext",
    -        1,
    -        "\n",
    -        // "\r\n",
    -        lines
    -      );
    -      this.documentMap.set(buffer, document);
    -    } else {
    -      console.debug(`toNeovimEditor(): updating document: buffer=${buffer.id}`);
    -      document.update(lines);
    -    }
    -    if (!editor) {
    -      console.debug(
    -        `toNeovimEditor(): creating new editor: window=${window2.id}`
    -      );
    -      editor = new NeovimTextEditorImpl(
    -        v4(),
    -        this.client,
    -        this,
    -        window2,
    -        document,
    -        visibleRanges,
    -        selections
    -      );
    -      this.editorMap.set(window2, editor);
    -    } else {
    -      console.debug(`toNeovimEditor(): updating editor: window=${window2.id}`);
    -      editor.updateDocument(visibleRanges, selections, document);
    -    }
    -    this.activeBuffer = buffer;
    -    this.activeWindow = window2;
    -    return this.activeTextEditor;
    -  }
    -  handleCommandError(err) {
    -    showErrorMessage(this.client, err.message);
    -  }
    -  disposeOnExit(...disposables) {
    -    this.disposables.push(...disposables);
    -    return () => (0, import_lodash59.pull)(this.disposables, ...disposables);
    -  }
    -};
    -function dummyEvent4() {
    -  return {
    -    dispose() {
    -    }
    -  };
    -}
    -
    -// ../neovim-common/src/ide/neovim/hats/NeovimHats.ts
    -var NeovimHats = class {
    -  constructor(ide2) {
    -    this.ide = ide2;
    -    this.enabledHatStyleNotifier = new Notifier();
    -    this.isEnabledNotifier = new Notifier();
    -    this.enabledHatStyles = {};
    -    this.isEnabled = false;
    -  }
    -  async init() {
    -  }
    -  async setHatRanges(hatRanges) {
    -  }
    -  onDidChangeEnabledHatStyles(listener) {
    -    return this.enabledHatStyleNotifier.registerListener(listener);
    -  }
    -  onDidChangeIsEnabled(listener) {
    -    return this.isEnabledNotifier.registerListener(listener);
    -  }
    -};
    -
    -// src/extension.ts
    -var crypto = __toESM(require("crypto"));
    -var os = __toESM(require("os"));
    -var path7 = __toESM(require("path"));
    -
    -// src/NeovimCommandServerApi.ts
    -var NeovimCommandServerApi = class {
    -  constructor(client) {
    -    this.client = client;
    -    this.signals = { prePhrase: { getVersion: async () => null } };
    -  }
    -  // for vscode, it is actually stored into the command-server
    -  // but for neovim, it is stored in cursorless
    -  // https://github.com/pokey/command-server/blob/main/src/extension.ts#L32
    -  async getFocusedElementType() {
    -    const currentMode = await this.client.mode;
    -    if (currentMode.mode === "t" || currentMode.mode === "nt") {
    -      return "terminal";
    -    } else {
    -      return "textEditor";
    -    }
    -  }
    -};
    -
    -// src/constructTestHelpers.ts
    -function constructTestHelpers(commandServerApi, storedTargets, hatTokenMap, neovimIDE, normalizedIde, fileSystem, scopeProvider, injectIde2, runIntegrationTests2) {
    -  return {
    -    commandServerApi,
    -    ide: normalizedIde,
    -    neovimIDE,
    -    injectIde: injectIde2,
    -    scopeProvider,
    -    // FIXME: Remove this once we have a better way to get this function
    -    // accessible from our tests
    -    takeSnapshot(excludeFields, extraFields, editor, ide2, marks2, forceRealClipboard) {
    -      return takeSnapshot(
    -        storedTargets,
    -        excludeFields,
    -        extraFields,
    -        editor,
    -        ide2,
    -        marks2,
    -        void 0,
    -        void 0,
    -        forceRealClipboard ? neovimIDE.clipboard : void 0
    -      );
    -    },
    -    cursorlessTalonStateJsonPath: fileSystem.cursorlessTalonStateJsonPath,
    -    cursorlessCommandHistoryDirPath: fileSystem.cursorlessCommandHistoryDirPath,
    -    setStoredTarget(editor, key, targets) {
    -      storedTargets.set(
    -        key,
    -        targets?.map((target) => plainObjectToTarget(editor, target))
    -      );
    -    },
    -    hatTokenMap,
    -    runIntegrationTests: runIntegrationTests2
    -  };
    -}
    -
    -// src/registerCommands.ts
    -async function registerCommands(client, neovimIDE, commandApi, commandServerApi) {
    -  const commands = {
    -    // The core Cursorless command
    -    [CURSORLESS_COMMAND_ID]: async (...args) => {
    -      const originalMode = await client.mode;
    -      if (originalMode.mode === "t") {
    -        modeSwitchNormalTerminal(client);
    -      }
    -      try {
    -        await neovimIDE.updateTextEditor();
    -        const result = await commandApi.runCommandSafe(...args);
    -        const command = ensureCommandShape(args);
    -        const focusedElementType = await commandServerApi.getFocusedElementType();
    -        if (focusedElementType === "terminal" && clientSupportsFallback(command)) {
    -          const commandResponse = result;
    -          if ("fallback" in commandResponse && commandResponse.fallback.action === "insert") {
    -            modeSwitchTerminal(client);
    -          }
    -        }
    -        return result;
    -      } catch (e) {
    -        if (neovimIDE.runMode !== "test") {
    -          const err = e;
    -          console.error(err.stack);
    -          neovimIDE.handleCommandError(err);
    -        }
    -        throw e;
    -      }
    -    },
    -    // Cheatsheet commands
    -    ["cursorless.showCheatsheet"]: dummyCommandHandler,
    -    ["cursorless.internal.updateCheatsheetDefaults"]: dummyCommandHandler,
    -    // Testcase recorder commands
    -    ["cursorless.recordTestCase"]: dummyCommandHandler,
    -    ["cursorless.recordOneTestCaseThenPause"]: dummyCommandHandler,
    -    ["cursorless.pauseRecording"]: dummyCommandHandler,
    -    ["cursorless.resumeRecording"]: dummyCommandHandler,
    -    ["cursorless.takeSnapshot"]: dummyCommandHandler,
    -    // Other commands
    -    ["cursorless.showQuickPick"]: dummyCommandHandler,
    -    ["cursorless.showDocumentation"]: dummyCommandHandler,
    -    ["cursorless.private.logQuickActions"]: dummyCommandHandler,
    -    // Hats
    -    ["cursorless.toggleDecorations"]: dummyCommandHandler,
    -    ["cursorless.recomputeDecorationStyles"]: dummyCommandHandler,
    -    // Scope visualizer
    -    ["cursorless.showScopeVisualizer"]: dummyCommandHandler,
    -    ["cursorless.hideScopeVisualizer"]: dummyCommandHandler,
    -    // Command history
    -    ["cursorless.analyzeCommandHistory"]: dummyCommandHandler,
    -    // General keyboard commands
    -    ["cursorless.keyboard.escape"]: dummyCommandHandler,
    -    // Targeted keyboard commands
    -    ["cursorless.keyboard.targeted.targetHat"]: dummyCommandHandler,
    -    ["cursorless.keyboard.targeted.targetScope"]: dummyCommandHandler,
    -    ["cursorless.keyboard.targeted.targetSelection"]: dummyCommandHandler,
    -    ["cursorless.keyboard.targeted.clearTarget"]: dummyCommandHandler,
    -    ["cursorless.keyboard.targeted.runActionOnTarget"]: dummyCommandHandler,
    -    // Modal keyboard commands
    -    ["cursorless.keyboard.modal.modeOn"]: dummyCommandHandler,
    -    ["cursorless.keyboard.modal.modeOff"]: dummyCommandHandler,
    -    ["cursorless.keyboard.modal.modeToggle"]: dummyCommandHandler
    -  };
    -  Object.entries(commands).map(
    -    ([commandId, callback2]) => getNeovimRegistry().registerCommand(commandId, callback2)
    -  );
    -}
    -async function dummyCommandHandler(...args) {
    -  console.debug(`dummyCommandHandler(): args=${args}`);
    -}
    -
    -// src/extension.ts
    -async function activate(plugin) {
    -  const client = plugin.nvim;
    -  const { neovimIDE, hats, fileSystem } = await createNeovimIde(client);
    -  const normalizedIde = neovimIDE.runMode === "production" ? neovimIDE : new NormalizedIDE(
    -    neovimIDE,
    -    new FakeIDE(),
    -    neovimIDE.runMode === "test"
    -  );
    -  const fakeCommandServerApi = new FakeCommandServerApi();
    -  const neovimCommandServerApi = new NeovimCommandServerApi(client);
    -  const commandServerApi = neovimIDE.runMode === "test" ? fakeCommandServerApi : neovimCommandServerApi;
    -  const treeSitter = createTreeSitter();
    -  const {
    -    commandApi,
    -    storedTargets,
    -    hatTokenMap,
    -    scopeProvider,
    -    snippets,
    -    injectIde: injectIde2,
    -    runIntegrationTests: runIntegrationTests2,
    -    addCommandRunnerDecorator,
    -    customSpokenFormGenerator
    -  } = await createCursorlessEngine(
    -    treeSitter,
    -    normalizedIde,
    -    hats,
    -    commandServerApi,
    -    fileSystem
    -  );
    -  await registerCommands(client, neovimIDE, commandApi, commandServerApi);
    -  const cursorlessApi = {
    -    testHelpers: neovimIDE.runMode === "test" ? constructTestHelpers(
    -      fakeCommandServerApi,
    -      storedTargets,
    -      hatTokenMap,
    -      neovimIDE,
    -      normalizedIde,
    -      fileSystem,
    -      scopeProvider,
    -      injectIde2,
    -      runIntegrationTests2
    -    ) : void 0,
    -    experimental: {
    -      registerThirdPartySnippets: snippets.registerThirdPartySnippets
    -    }
    -  };
    -  getNeovimRegistry().registerExtensionApi(EXTENSION_ID, cursorlessApi);
    -  console.log("activate(): Cursorless extension loaded");
    -}
    -async function createNeovimIde(client) {
    -  const neovimIDE = new NeovimIDE(client);
    -  await neovimIDE.init();
    -  const hats = new NeovimHats(neovimIDE);
    -  await hats.init();
    -  const cursorlessDir = neovimIDE.runMode === "test" ? path7.join(os.tmpdir(), crypto.randomBytes(16).toString("hex")) : path7.join(os.homedir(), ".cursorless");
    -  const fileSystem = new NeovimFileSystem(neovimIDE.runMode, cursorlessDir);
    -  await fileSystem.initialize();
    -  return { neovimIDE, hats, fileSystem };
    -}
    -function createTreeSitter() {
    -  return {
    -    getNodeAtLocation(document, range4) {
    -      throw new UnsupportedLanguageError2(document.languageId);
    -    },
    -    getTree(document) {
    -      return null;
    -    },
    -    loadLanguage(languageId) {
    -      return Promise.resolve(false);
    -    },
    -    getLanguage(languageId) {
    -      return void 0;
    -    }
    -  };
    -}
    -var UnsupportedLanguageError2 = class extends Error {
    -  constructor(language) {
    -    super(
    -      `Language '${language}' not supported by parse tree extension.  See https://github.com/pokey/vscode-parse-tree#adding-a-new-language`
    -    );
    -    this.name = "UnsupportedLanguageError";
    -  }
    -};
    -
    -// src/index.ts
    -function entry(plugin) {
    -  plugin.setOptions({ dev: false });
    -  plugin.registerFunction(
    -    "CursorlessLoadExtension",
    -    async () => await loadExtension(plugin),
    -    { sync: false }
    -  );
    -}
    -async function loadExtension(plugin) {
    -  console.log(
    -    "==============================================================================================="
    -  );
    -  console.log("loadExtension(cursorless-neovim): start");
    -  await activate(plugin);
    -  console.log("loadExtension(cursorless-neovim): done");
    -}
    -/*! Bundled license information:
    -
    -lodash/lodash.js:
    -  (**
    -   * @license
    -   * Lodash 
    -   * Copyright OpenJS Foundation and other contributors 
    -   * Released under MIT license 
    -   * Based on Underscore.js 1.8.3 
    -   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
    -   *)
    -
    -is-plain-object/dist/is-plain-object.js:
    -  (*!
    -   * is-plain-object 
    -   *
    -   * Copyright (c) 2014-2017, Jon Schlinkert.
    -   * Released under the MIT License.
    -   *)
    -
    -js-yaml/dist/js-yaml.mjs:
    -  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
    -
    -itertools/dist/index.js:
    -  (* istanbul ignore else -- @preserve *)
    -  (* istanbul ignore if -- @preserve *)
    -*/
    -//# sourceMappingURL=index.cjs.map
    diff --git a/dist/cursorless.nvim/node/cursorless-neovim/package.json b/dist/cursorless.nvim/node/cursorless-neovim/package.json
    deleted file mode 100644
    index b6f7d76fb2..0000000000
    --- a/dist/cursorless.nvim/node/cursorless-neovim/package.json
    +++ /dev/null
    @@ -1,42 +0,0 @@
    -{
    -  "name": "@cursorless/cursorless-neovim",
    -  "version": "1.0.0",
    -  "description": "cursorless in neovim",
    -  "main": "./out/index.cjs",
    -  "private": true,
    -  "scripts": {
    -    "compile:tsc": "tsc --build",
    -    "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node",
    -    "compile": "pnpm compile:tsc && pnpm compile:esbuild && pnpm populate-cursorless-nvim",
    -    "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh",
    -    "watch:tsc": "pnpm compile:tsc --watch",
    -    "watch:esbuild": "pnpm compile:esbuild --watch",
    -    "watch": "pnpm run --filter @cursorless/cursorless-neovim --parallel '/^watch:.*/'",
    -    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist"
    -  },
    -  "keywords": [],
    -  "author": "",
    -  "license": "MIT",
    -  "types": "./out/index.d.ts",
    -  "exports": {
    -    ".": {
    -      "cursorless:bundler": "./src/index.ts",
    -      "default": "./out/index.cjs"
    -    }
    -  },
    -  "dependencies": {
    -    "@cursorless/common": "workspace:*",
    -    "@cursorless/cursorless-engine": "workspace:*",
    -    "@cursorless/neovim-common": "workspace:*",
    -    "@cursorless/neovim-registry": "workspace:*"
    -  },
    -  "devDependencies": {
    -    "@types/chai": "^4.3.14",
    -    "@types/js-yaml": "^4.0.9",
    -    "@types/lodash": "4.17.0",
    -    "@types/uuid": "^9.0.8",
    -    "lodash": "^4.17.21",
    -    "neovim": "5.1.0",
    -    "vscode-uri": "^3.0.8"
    -  }
    -}
    diff --git a/dist/cursorless.nvim/node/test-harness/out/index.cjs b/dist/cursorless.nvim/node/test-harness/out/index.cjs
    deleted file mode 100644
    index 7e0e706635..0000000000
    --- a/dist/cursorless.nvim/node/test-harness/out/index.cjs
    +++ /dev/null
    @@ -1,26716 +0,0 @@
    -"use strict";
    -var __create = Object.create;
    -var __defProp = Object.defineProperty;
    -var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
    -var __getOwnPropNames = Object.getOwnPropertyNames;
    -var __getProtoOf = Object.getPrototypeOf;
    -var __hasOwnProp = Object.prototype.hasOwnProperty;
    -var __commonJS = (cb, mod) => function __require() {
    -  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
    -};
    -var __export = (target, all) => {
    -  for (var name in all)
    -    __defProp(target, name, { get: all[name], enumerable: true });
    -};
    -var __copyProps = (to, from, except, desc) => {
    -  if (from && typeof from === "object" || typeof from === "function") {
    -    for (let key of __getOwnPropNames(from))
    -      if (!__hasOwnProp.call(to, key) && key !== except)
    -        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
    -  }
    -  return to;
    -};
    -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
    -  // If the importer is in node compatibility mode or this is not an ESM
    -  // file that has been converted to a CommonJS file using a Babel-
    -  // compatible transform (i.e. "__esModule" has not been set), then set
    -  // "default" to the CommonJS "module.exports" for node compatibility.
    -  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
    -  mod
    -));
    -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
    -
    -// ../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js
    -var require_escape_string_regexp = __commonJS({
    -  "../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = (string) => {
    -      if (typeof string !== "string") {
    -        throw new TypeError("Expected a string");
    -      }
    -      return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/base.js
    -var require_base = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/base.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2["default"] = Diff;
    -    function Diff() {
    -    }
    -    Diff.prototype = {
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      diff: function diff(oldString, newString) {
    -        var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    -        var callback = options.callback;
    -        if (typeof options === "function") {
    -          callback = options;
    -          options = {};
    -        }
    -        this.options = options;
    -        var self2 = this;
    -        function done(value) {
    -          if (callback) {
    -            setTimeout(function() {
    -              callback(void 0, value);
    -            }, 0);
    -            return true;
    -          } else {
    -            return value;
    -          }
    -        }
    -        oldString = this.castInput(oldString);
    -        newString = this.castInput(newString);
    -        oldString = this.removeEmpty(this.tokenize(oldString));
    -        newString = this.removeEmpty(this.tokenize(newString));
    -        var newLen = newString.length, oldLen = oldString.length;
    -        var editLength = 1;
    -        var maxEditLength = newLen + oldLen;
    -        var bestPath = [{
    -          newPos: -1,
    -          components: []
    -        }];
    -        var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
    -        if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
    -          return done([{
    -            value: this.join(newString),
    -            count: newString.length
    -          }]);
    -        }
    -        function execEditLength() {
    -          for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
    -            var basePath = (
    -              /*istanbul ignore start*/
    -              void 0
    -            );
    -            var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
    -            if (addPath) {
    -              bestPath[diagonalPath - 1] = void 0;
    -            }
    -            var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
    -            if (!canAdd && !canRemove) {
    -              bestPath[diagonalPath] = void 0;
    -              continue;
    -            }
    -            if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
    -              basePath = clonePath(removePath);
    -              self2.pushComponent(basePath.components, void 0, true);
    -            } else {
    -              basePath = addPath;
    -              basePath.newPos++;
    -              self2.pushComponent(basePath.components, true, void 0);
    -            }
    -            _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath);
    -            if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
    -              return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken));
    -            } else {
    -              bestPath[diagonalPath] = basePath;
    -            }
    -          }
    -          editLength++;
    -        }
    -        if (callback) {
    -          (function exec() {
    -            setTimeout(function() {
    -              if (editLength > maxEditLength) {
    -                return callback();
    -              }
    -              if (!execEditLength()) {
    -                exec();
    -              }
    -            }, 0);
    -          })();
    -        } else {
    -          while (editLength <= maxEditLength) {
    -            var ret = execEditLength();
    -            if (ret) {
    -              return ret;
    -            }
    -          }
    -        }
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      pushComponent: function pushComponent(components, added, removed) {
    -        var last = components[components.length - 1];
    -        if (last && last.added === added && last.removed === removed) {
    -          components[components.length - 1] = {
    -            count: last.count + 1,
    -            added,
    -            removed
    -          };
    -        } else {
    -          components.push({
    -            count: 1,
    -            added,
    -            removed
    -          });
    -        }
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
    -        var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0;
    -        while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
    -          newPos++;
    -          oldPos++;
    -          commonCount++;
    -        }
    -        if (commonCount) {
    -          basePath.components.push({
    -            count: commonCount
    -          });
    -        }
    -        basePath.newPos = newPos;
    -        return oldPos;
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      equals: function equals(left, right) {
    -        if (this.options.comparator) {
    -          return this.options.comparator(left, right);
    -        } else {
    -          return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
    -        }
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      removeEmpty: function removeEmpty(array) {
    -        var ret = [];
    -        for (var i = 0; i < array.length; i++) {
    -          if (array[i]) {
    -            ret.push(array[i]);
    -          }
    -        }
    -        return ret;
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      castInput: function castInput(value) {
    -        return value;
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      tokenize: function tokenize(value) {
    -        return value.split("");
    -      },
    -      /*istanbul ignore start*/
    -      /*istanbul ignore end*/
    -      join: function join3(chars) {
    -        return chars.join("");
    -      }
    -    };
    -    function buildValues(diff, components, newString, oldString, useLongestToken) {
    -      var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0;
    -      for (; componentPos < componentLen; componentPos++) {
    -        var component = components[componentPos];
    -        if (!component.removed) {
    -          if (!component.added && useLongestToken) {
    -            var value = newString.slice(newPos, newPos + component.count);
    -            value = value.map(function(value2, i) {
    -              var oldValue = oldString[oldPos + i];
    -              return oldValue.length > value2.length ? oldValue : value2;
    -            });
    -            component.value = diff.join(value);
    -          } else {
    -            component.value = diff.join(newString.slice(newPos, newPos + component.count));
    -          }
    -          newPos += component.count;
    -          if (!component.added) {
    -            oldPos += component.count;
    -          }
    -        } else {
    -          component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
    -          oldPos += component.count;
    -          if (componentPos && components[componentPos - 1].added) {
    -            var tmp = components[componentPos - 1];
    -            components[componentPos - 1] = components[componentPos];
    -            components[componentPos] = tmp;
    -          }
    -        }
    -      }
    -      var lastComponent = components[componentLen - 1];
    -      if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) {
    -        components[componentLen - 2].value += lastComponent.value;
    -        components.pop();
    -      }
    -      return components;
    -    }
    -    function clonePath(path4) {
    -      return {
    -        newPos: path4.newPos,
    -        components: path4.components.slice(0)
    -      };
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/character.js
    -var require_character = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/character.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffChars = diffChars;
    -    exports2.characterDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var characterDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.characterDiff = characterDiff;
    -    function diffChars(oldStr, newStr, options) {
    -      return characterDiff.diff(oldStr, newStr, options);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/params.js
    -var require_params = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/params.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.generateOptions = generateOptions;
    -    function generateOptions(options, defaults2) {
    -      if (typeof options === "function") {
    -        defaults2.callback = options;
    -      } else if (options) {
    -        for (var name in options) {
    -          if (options.hasOwnProperty(name)) {
    -            defaults2[name] = options[name];
    -          }
    -        }
    -      }
    -      return defaults2;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/word.js
    -var require_word = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/word.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffWords = diffWords;
    -    exports2.diffWordsWithSpace = diffWordsWithSpace;
    -    exports2.wordDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    var _params = require_params();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
    -    var reWhitespace = /\S/;
    -    var wordDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.wordDiff = wordDiff;
    -    wordDiff.equals = function(left, right) {
    -      if (this.options.ignoreCase) {
    -        left = left.toLowerCase();
    -        right = right.toLowerCase();
    -      }
    -      return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
    -    };
    -    wordDiff.tokenize = function(value) {
    -      var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/);
    -      for (var i = 0; i < tokens.length - 1; i++) {
    -        if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
    -          tokens[i] += tokens[i + 2];
    -          tokens.splice(i + 1, 2);
    -          i--;
    -        }
    -      }
    -      return tokens;
    -    };
    -    function diffWords(oldStr, newStr, options) {
    -      options = /*istanbul ignore start*/
    -      (0, /*istanbul ignore end*/
    -      /*istanbul ignore start*/
    -      _params.generateOptions)(options, {
    -        ignoreWhitespace: true
    -      });
    -      return wordDiff.diff(oldStr, newStr, options);
    -    }
    -    function diffWordsWithSpace(oldStr, newStr, options) {
    -      return wordDiff.diff(oldStr, newStr, options);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/line.js
    -var require_line = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/line.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffLines = diffLines;
    -    exports2.diffTrimmedLines = diffTrimmedLines;
    -    exports2.lineDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    var _params = require_params();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var lineDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.lineDiff = lineDiff;
    -    lineDiff.tokenize = function(value) {
    -      var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
    -      if (!linesAndNewlines[linesAndNewlines.length - 1]) {
    -        linesAndNewlines.pop();
    -      }
    -      for (var i = 0; i < linesAndNewlines.length; i++) {
    -        var line = linesAndNewlines[i];
    -        if (i % 2 && !this.options.newlineIsToken) {
    -          retLines[retLines.length - 1] += line;
    -        } else {
    -          if (this.options.ignoreWhitespace) {
    -            line = line.trim();
    -          }
    -          retLines.push(line);
    -        }
    -      }
    -      return retLines;
    -    };
    -    function diffLines(oldStr, newStr, callback) {
    -      return lineDiff.diff(oldStr, newStr, callback);
    -    }
    -    function diffTrimmedLines(oldStr, newStr, callback) {
    -      var options = (
    -        /*istanbul ignore start*/
    -        (0, /*istanbul ignore end*/
    -        /*istanbul ignore start*/
    -        _params.generateOptions)(callback, {
    -          ignoreWhitespace: true
    -        })
    -      );
    -      return lineDiff.diff(oldStr, newStr, options);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/sentence.js
    -var require_sentence = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/sentence.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffSentences = diffSentences;
    -    exports2.sentenceDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var sentenceDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.sentenceDiff = sentenceDiff;
    -    sentenceDiff.tokenize = function(value) {
    -      return value.split(/(\S.+?[.!?])(?=\s+|$)/);
    -    };
    -    function diffSentences(oldStr, newStr, callback) {
    -      return sentenceDiff.diff(oldStr, newStr, callback);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/css.js
    -var require_css = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/css.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffCss = diffCss;
    -    exports2.cssDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var cssDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.cssDiff = cssDiff;
    -    cssDiff.tokenize = function(value) {
    -      return value.split(/([{}:;,]|\s+)/);
    -    };
    -    function diffCss(oldStr, newStr, callback) {
    -      return cssDiff.diff(oldStr, newStr, callback);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/json.js
    -var require_json = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/json.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffJson = diffJson;
    -    exports2.canonicalize = canonicalize;
    -    exports2.jsonDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    var _line = require_line();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    function _typeof(obj) {
    -      "@babel/helpers - typeof";
    -      if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    -        _typeof = function _typeof2(obj2) {
    -          return typeof obj2;
    -        };
    -      } else {
    -        _typeof = function _typeof2(obj2) {
    -          return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
    -        };
    -      }
    -      return _typeof(obj);
    -    }
    -    var objectPrototypeToString = Object.prototype.toString;
    -    var jsonDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.jsonDiff = jsonDiff;
    -    jsonDiff.useLongestToken = true;
    -    jsonDiff.tokenize = /*istanbul ignore start*/
    -    _line.lineDiff.tokenize;
    -    jsonDiff.castInput = function(value) {
    -      var _this$options = (
    -        /*istanbul ignore end*/
    -        this.options
    -      ), undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) {
    -        return (
    -          /*istanbul ignore end*/
    -          typeof v === "undefined" ? undefinedReplacement : v
    -        );
    -      } : _this$options$stringi;
    -      return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, "  ");
    -    };
    -    jsonDiff.equals = function(left, right) {
    -      return (
    -        /*istanbul ignore start*/
    -        _base[
    -          /*istanbul ignore start*/
    -          "default"
    -          /*istanbul ignore end*/
    -        ].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"))
    -      );
    -    };
    -    function diffJson(oldObj, newObj, options) {
    -      return jsonDiff.diff(oldObj, newObj, options);
    -    }
    -    function canonicalize(obj, stack, replacementStack, replacer2, key) {
    -      stack = stack || [];
    -      replacementStack = replacementStack || [];
    -      if (replacer2) {
    -        obj = replacer2(key, obj);
    -      }
    -      var i;
    -      for (i = 0; i < stack.length; i += 1) {
    -        if (stack[i] === obj) {
    -          return replacementStack[i];
    -        }
    -      }
    -      var canonicalizedObj;
    -      if ("[object Array]" === objectPrototypeToString.call(obj)) {
    -        stack.push(obj);
    -        canonicalizedObj = new Array(obj.length);
    -        replacementStack.push(canonicalizedObj);
    -        for (i = 0; i < obj.length; i += 1) {
    -          canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer2, key);
    -        }
    -        stack.pop();
    -        replacementStack.pop();
    -        return canonicalizedObj;
    -      }
    -      if (obj && obj.toJSON) {
    -        obj = obj.toJSON();
    -      }
    -      if (
    -        /*istanbul ignore start*/
    -        _typeof(
    -          /*istanbul ignore end*/
    -          obj
    -        ) === "object" && obj !== null
    -      ) {
    -        stack.push(obj);
    -        canonicalizedObj = {};
    -        replacementStack.push(canonicalizedObj);
    -        var sortedKeys = [], _key;
    -        for (_key in obj) {
    -          if (obj.hasOwnProperty(_key)) {
    -            sortedKeys.push(_key);
    -          }
    -        }
    -        sortedKeys.sort();
    -        for (i = 0; i < sortedKeys.length; i += 1) {
    -          _key = sortedKeys[i];
    -          canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer2, _key);
    -        }
    -        stack.pop();
    -        replacementStack.pop();
    -      } else {
    -        canonicalizedObj = obj;
    -      }
    -      return canonicalizedObj;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/array.js
    -var require_array = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/diff/array.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.diffArrays = diffArrays;
    -    exports2.arrayDiff = void 0;
    -    var _base = _interopRequireDefault(require_base());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    var arrayDiff = new /*istanbul ignore start*/
    -    _base[
    -      /*istanbul ignore start*/
    -      "default"
    -      /*istanbul ignore end*/
    -    ]();
    -    exports2.arrayDiff = arrayDiff;
    -    arrayDiff.tokenize = function(value) {
    -      return value.slice();
    -    };
    -    arrayDiff.join = arrayDiff.removeEmpty = function(value) {
    -      return value;
    -    };
    -    function diffArrays(oldArr, newArr, callback) {
    -      return arrayDiff.diff(oldArr, newArr, callback);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/parse.js
    -var require_parse = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/parse.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.parsePatch = parsePatch;
    -    function parsePatch(uniDiff) {
    -      var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    -      var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], list = [], i = 0;
    -      function parseIndex() {
    -        var index = {};
    -        list.push(index);
    -        while (i < diffstr.length) {
    -          var line = diffstr[i];
    -          if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
    -            break;
    -          }
    -          var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
    -          if (header) {
    -            index.index = header[1];
    -          }
    -          i++;
    -        }
    -        parseFileHeader(index);
    -        parseFileHeader(index);
    -        index.hunks = [];
    -        while (i < diffstr.length) {
    -          var _line = diffstr[i];
    -          if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
    -            break;
    -          } else if (/^@@/.test(_line)) {
    -            index.hunks.push(parseHunk());
    -          } else if (_line && options.strict) {
    -            throw new Error("Unknown line " + (i + 1) + " " + JSON.stringify(_line));
    -          } else {
    -            i++;
    -          }
    -        }
    -      }
    -      function parseFileHeader(index) {
    -        var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
    -        if (fileHeader) {
    -          var keyPrefix = fileHeader[1] === "---" ? "old" : "new";
    -          var data = fileHeader[2].split("	", 2);
    -          var fileName = data[0].replace(/\\\\/g, "\\");
    -          if (/^".*"$/.test(fileName)) {
    -            fileName = fileName.substr(1, fileName.length - 2);
    -          }
    -          index[keyPrefix + "FileName"] = fileName;
    -          index[keyPrefix + "Header"] = (data[1] || "").trim();
    -          i++;
    -        }
    -      }
    -      function parseHunk() {
    -        var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
    -        var hunk = {
    -          oldStart: +chunkHeader[1],
    -          oldLines: typeof chunkHeader[2] === "undefined" ? 1 : +chunkHeader[2],
    -          newStart: +chunkHeader[3],
    -          newLines: typeof chunkHeader[4] === "undefined" ? 1 : +chunkHeader[4],
    -          lines: [],
    -          linedelimiters: []
    -        };
    -        if (hunk.oldLines === 0) {
    -          hunk.oldStart += 1;
    -        }
    -        if (hunk.newLines === 0) {
    -          hunk.newStart += 1;
    -        }
    -        var addCount = 0, removeCount = 0;
    -        for (; i < diffstr.length; i++) {
    -          if (diffstr[i].indexOf("--- ") === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf("+++ ") === 0 && diffstr[i + 2].indexOf("@@") === 0) {
    -            break;
    -          }
    -          var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? " " : diffstr[i][0];
    -          if (operation === "+" || operation === "-" || operation === " " || operation === "\\") {
    -            hunk.lines.push(diffstr[i]);
    -            hunk.linedelimiters.push(delimiters[i] || "\n");
    -            if (operation === "+") {
    -              addCount++;
    -            } else if (operation === "-") {
    -              removeCount++;
    -            } else if (operation === " ") {
    -              addCount++;
    -              removeCount++;
    -            }
    -          } else {
    -            break;
    -          }
    -        }
    -        if (!addCount && hunk.newLines === 1) {
    -          hunk.newLines = 0;
    -        }
    -        if (!removeCount && hunk.oldLines === 1) {
    -          hunk.oldLines = 0;
    -        }
    -        if (options.strict) {
    -          if (addCount !== hunk.newLines) {
    -            throw new Error("Added line count did not match for hunk at line " + (chunkHeaderIndex + 1));
    -          }
    -          if (removeCount !== hunk.oldLines) {
    -            throw new Error("Removed line count did not match for hunk at line " + (chunkHeaderIndex + 1));
    -          }
    -        }
    -        return hunk;
    -      }
    -      while (i < diffstr.length) {
    -        parseIndex();
    -      }
    -      return list;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/distance-iterator.js
    -var require_distance_iterator = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/distance-iterator.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2["default"] = _default2;
    -    function _default2(start, minLine, maxLine) {
    -      var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;
    -      return function iterator() {
    -        if (wantForward && !forwardExhausted) {
    -          if (backwardExhausted) {
    -            localOffset++;
    -          } else {
    -            wantForward = false;
    -          }
    -          if (start + localOffset <= maxLine) {
    -            return localOffset;
    -          }
    -          forwardExhausted = true;
    -        }
    -        if (!backwardExhausted) {
    -          if (!forwardExhausted) {
    -            wantForward = true;
    -          }
    -          if (minLine <= start - localOffset) {
    -            return -localOffset++;
    -          }
    -          backwardExhausted = true;
    -          return iterator();
    -        }
    -      };
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/apply.js
    -var require_apply = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/apply.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.applyPatch = applyPatch;
    -    exports2.applyPatches = applyPatches;
    -    var _parse = require_parse();
    -    var _distanceIterator = _interopRequireDefault(require_distance_iterator());
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -    function applyPatch(source, uniDiff) {
    -      var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    -      if (typeof uniDiff === "string") {
    -        uniDiff = /*istanbul ignore start*/
    -        (0, /*istanbul ignore end*/
    -        /*istanbul ignore start*/
    -        _parse.parsePatch)(uniDiff);
    -      }
    -      if (Array.isArray(uniDiff)) {
    -        if (uniDiff.length > 1) {
    -          throw new Error("applyPatch only works with a single input.");
    -        }
    -        uniDiff = uniDiff[0];
    -      }
    -      var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, compareLine = options.compareLine || function(lineNumber, line2, operation2, patchContent) {
    -        return (
    -          /*istanbul ignore end*/
    -          line2 === patchContent
    -        );
    -      }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, minLine = 0, offset = 0, removeEOFNL, addEOFNL;
    -      function hunkFits(hunk2, toPos2) {
    -        for (var j2 = 0; j2 < hunk2.lines.length; j2++) {
    -          var line2 = hunk2.lines[j2], operation2 = line2.length > 0 ? line2[0] : " ", content2 = line2.length > 0 ? line2.substr(1) : line2;
    -          if (operation2 === " " || operation2 === "-") {
    -            if (!compareLine(toPos2 + 1, lines[toPos2], operation2, content2)) {
    -              errorCount++;
    -              if (errorCount > fuzzFactor) {
    -                return false;
    -              }
    -            }
    -            toPos2++;
    -          }
    -        }
    -        return true;
    -      }
    -      for (var i = 0; i < hunks.length; i++) {
    -        var hunk = hunks[i], maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1;
    -        var iterator = (
    -          /*istanbul ignore start*/
    -          (0, /*istanbul ignore end*/
    -          /*istanbul ignore start*/
    -          _distanceIterator[
    -            /*istanbul ignore start*/
    -            "default"
    -            /*istanbul ignore end*/
    -          ])(toPos, minLine, maxLine)
    -        );
    -        for (; localOffset !== void 0; localOffset = iterator()) {
    -          if (hunkFits(hunk, toPos + localOffset)) {
    -            hunk.offset = offset += localOffset;
    -            break;
    -          }
    -        }
    -        if (localOffset === void 0) {
    -          return false;
    -        }
    -        minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
    -      }
    -      var diffOffset = 0;
    -      for (var _i = 0; _i < hunks.length; _i++) {
    -        var _hunk = hunks[_i], _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
    -        diffOffset += _hunk.newLines - _hunk.oldLines;
    -        for (var j = 0; j < _hunk.lines.length; j++) {
    -          var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : " ", content = line.length > 0 ? line.substr(1) : line, delimiter = _hunk.linedelimiters[j];
    -          if (operation === " ") {
    -            _toPos++;
    -          } else if (operation === "-") {
    -            lines.splice(_toPos, 1);
    -            delimiters.splice(_toPos, 1);
    -          } else if (operation === "+") {
    -            lines.splice(_toPos, 0, content);
    -            delimiters.splice(_toPos, 0, delimiter);
    -            _toPos++;
    -          } else if (operation === "\\") {
    -            var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
    -            if (previousOperation === "+") {
    -              removeEOFNL = true;
    -            } else if (previousOperation === "-") {
    -              addEOFNL = true;
    -            }
    -          }
    -        }
    -      }
    -      if (removeEOFNL) {
    -        while (!lines[lines.length - 1]) {
    -          lines.pop();
    -          delimiters.pop();
    -        }
    -      } else if (addEOFNL) {
    -        lines.push("");
    -        delimiters.push("\n");
    -      }
    -      for (var _k = 0; _k < lines.length - 1; _k++) {
    -        lines[_k] = lines[_k] + delimiters[_k];
    -      }
    -      return lines.join("");
    -    }
    -    function applyPatches(uniDiff, options) {
    -      if (typeof uniDiff === "string") {
    -        uniDiff = /*istanbul ignore start*/
    -        (0, /*istanbul ignore end*/
    -        /*istanbul ignore start*/
    -        _parse.parsePatch)(uniDiff);
    -      }
    -      var currentIndex = 0;
    -      function processIndex() {
    -        var index = uniDiff[currentIndex++];
    -        if (!index) {
    -          return options.complete();
    -        }
    -        options.loadFile(index, function(err, data) {
    -          if (err) {
    -            return options.complete(err);
    -          }
    -          var updatedContent = applyPatch(data, index, options);
    -          options.patched(index, updatedContent, function(err2) {
    -            if (err2) {
    -              return options.complete(err2);
    -            }
    -            processIndex();
    -          });
    -        });
    -      }
    -      processIndex();
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/create.js
    -var require_create = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/create.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.structuredPatch = structuredPatch;
    -    exports2.formatPatch = formatPatch;
    -    exports2.createTwoFilesPatch = createTwoFilesPatch;
    -    exports2.createPatch = createPatch;
    -    var _line = require_line();
    -    function _toConsumableArray(arr) {
    -      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
    -    }
    -    function _nonIterableSpread() {
    -      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    -    }
    -    function _unsupportedIterableToArray(o, minLen) {
    -      if (!o)
    -        return;
    -      if (typeof o === "string")
    -        return _arrayLikeToArray(o, minLen);
    -      var n = Object.prototype.toString.call(o).slice(8, -1);
    -      if (n === "Object" && o.constructor)
    -        n = o.constructor.name;
    -      if (n === "Map" || n === "Set")
    -        return Array.from(o);
    -      if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
    -        return _arrayLikeToArray(o, minLen);
    -    }
    -    function _iterableToArray(iter) {
    -      if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
    -        return Array.from(iter);
    -    }
    -    function _arrayWithoutHoles(arr) {
    -      if (Array.isArray(arr))
    -        return _arrayLikeToArray(arr);
    -    }
    -    function _arrayLikeToArray(arr, len) {
    -      if (len == null || len > arr.length)
    -        len = arr.length;
    -      for (var i = 0, arr2 = new Array(len); i < len; i++) {
    -        arr2[i] = arr[i];
    -      }
    -      return arr2;
    -    }
    -    function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
    -      if (!options) {
    -        options = {};
    -      }
    -      if (typeof options.context === "undefined") {
    -        options.context = 4;
    -      }
    -      var diff = (
    -        /*istanbul ignore start*/
    -        (0, /*istanbul ignore end*/
    -        /*istanbul ignore start*/
    -        _line.diffLines)(oldStr, newStr, options)
    -      );
    -      diff.push({
    -        value: "",
    -        lines: []
    -      });
    -      function contextLines(lines) {
    -        return lines.map(function(entry2) {
    -          return " " + entry2;
    -        });
    -      }
    -      var hunks = [];
    -      var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
    -      var _loop = function _loop2(i2) {
    -        var current = diff[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n");
    -        current.lines = lines;
    -        if (current.added || current.removed) {
    -          var _curRange;
    -          if (!oldRangeStart) {
    -            var prev = diff[i2 - 1];
    -            oldRangeStart = oldLine;
    -            newRangeStart = newLine;
    -            if (prev) {
    -              curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
    -              oldRangeStart -= curRange.length;
    -              newRangeStart -= curRange.length;
    -            }
    -          }
    -          (_curRange = /*istanbul ignore end*/
    -          curRange).push.apply(
    -            /*istanbul ignore start*/
    -            _curRange,
    -            /*istanbul ignore start*/
    -            _toConsumableArray(
    -              /*istanbul ignore end*/
    -              lines.map(function(entry2) {
    -                return (current.added ? "+" : "-") + entry2;
    -              })
    -            )
    -          );
    -          if (current.added) {
    -            newLine += lines.length;
    -          } else {
    -            oldLine += lines.length;
    -          }
    -        } else {
    -          if (oldRangeStart) {
    -            if (lines.length <= options.context * 2 && i2 < diff.length - 2) {
    -              var _curRange2;
    -              (_curRange2 = /*istanbul ignore end*/
    -              curRange).push.apply(
    -                /*istanbul ignore start*/
    -                _curRange2,
    -                /*istanbul ignore start*/
    -                _toConsumableArray(
    -                  /*istanbul ignore end*/
    -                  contextLines(lines)
    -                )
    -              );
    -            } else {
    -              var _curRange3;
    -              var contextSize = Math.min(lines.length, options.context);
    -              (_curRange3 = /*istanbul ignore end*/
    -              curRange).push.apply(
    -                /*istanbul ignore start*/
    -                _curRange3,
    -                /*istanbul ignore start*/
    -                _toConsumableArray(
    -                  /*istanbul ignore end*/
    -                  contextLines(lines.slice(0, contextSize))
    -                )
    -              );
    -              var hunk = {
    -                oldStart: oldRangeStart,
    -                oldLines: oldLine - oldRangeStart + contextSize,
    -                newStart: newRangeStart,
    -                newLines: newLine - newRangeStart + contextSize,
    -                lines: curRange
    -              };
    -              if (i2 >= diff.length - 2 && lines.length <= options.context) {
    -                var oldEOFNewline = /\n$/.test(oldStr);
    -                var newEOFNewline = /\n$/.test(newStr);
    -                var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
    -                if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
    -                  curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file");
    -                }
    -                if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
    -                  curRange.push("\\ No newline at end of file");
    -                }
    -              }
    -              hunks.push(hunk);
    -              oldRangeStart = 0;
    -              newRangeStart = 0;
    -              curRange = [];
    -            }
    -          }
    -          oldLine += lines.length;
    -          newLine += lines.length;
    -        }
    -      };
    -      for (var i = 0; i < diff.length; i++) {
    -        _loop(
    -          /*istanbul ignore end*/
    -          i
    -        );
    -      }
    -      return {
    -        oldFileName,
    -        newFileName,
    -        oldHeader,
    -        newHeader,
    -        hunks
    -      };
    -    }
    -    function formatPatch(diff) {
    -      var ret = [];
    -      if (diff.oldFileName == diff.newFileName) {
    -        ret.push("Index: " + diff.oldFileName);
    -      }
    -      ret.push("===================================================================");
    -      ret.push("--- " + diff.oldFileName + (typeof diff.oldHeader === "undefined" ? "" : "	" + diff.oldHeader));
    -      ret.push("+++ " + diff.newFileName + (typeof diff.newHeader === "undefined" ? "" : "	" + diff.newHeader));
    -      for (var i = 0; i < diff.hunks.length; i++) {
    -        var hunk = diff.hunks[i];
    -        if (hunk.oldLines === 0) {
    -          hunk.oldStart -= 1;
    -        }
    -        if (hunk.newLines === 0) {
    -          hunk.newStart -= 1;
    -        }
    -        ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@");
    -        ret.push.apply(ret, hunk.lines);
    -      }
    -      return ret.join("\n") + "\n";
    -    }
    -    function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
    -      return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
    -    }
    -    function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
    -      return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/array.js
    -var require_array2 = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/util/array.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.arrayEqual = arrayEqual;
    -    exports2.arrayStartsWith = arrayStartsWith;
    -    function arrayEqual(a, b) {
    -      if (a.length !== b.length) {
    -        return false;
    -      }
    -      return arrayStartsWith(a, b);
    -    }
    -    function arrayStartsWith(array, start) {
    -      if (start.length > array.length) {
    -        return false;
    -      }
    -      for (var i = 0; i < start.length; i++) {
    -        if (start[i] !== array[i]) {
    -          return false;
    -        }
    -      }
    -      return true;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/merge.js
    -var require_merge = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/patch/merge.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.calcLineCount = calcLineCount;
    -    exports2.merge = merge2;
    -    var _create = require_create();
    -    var _parse = require_parse();
    -    var _array = require_array2();
    -    function _toConsumableArray(arr) {
    -      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
    -    }
    -    function _nonIterableSpread() {
    -      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    -    }
    -    function _unsupportedIterableToArray(o, minLen) {
    -      if (!o)
    -        return;
    -      if (typeof o === "string")
    -        return _arrayLikeToArray(o, minLen);
    -      var n = Object.prototype.toString.call(o).slice(8, -1);
    -      if (n === "Object" && o.constructor)
    -        n = o.constructor.name;
    -      if (n === "Map" || n === "Set")
    -        return Array.from(o);
    -      if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
    -        return _arrayLikeToArray(o, minLen);
    -    }
    -    function _iterableToArray(iter) {
    -      if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
    -        return Array.from(iter);
    -    }
    -    function _arrayWithoutHoles(arr) {
    -      if (Array.isArray(arr))
    -        return _arrayLikeToArray(arr);
    -    }
    -    function _arrayLikeToArray(arr, len) {
    -      if (len == null || len > arr.length)
    -        len = arr.length;
    -      for (var i = 0, arr2 = new Array(len); i < len; i++) {
    -        arr2[i] = arr[i];
    -      }
    -      return arr2;
    -    }
    -    function calcLineCount(hunk) {
    -      var _calcOldNewLineCount = (
    -        /*istanbul ignore end*/
    -        calcOldNewLineCount(hunk.lines)
    -      ), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines;
    -      if (oldLines !== void 0) {
    -        hunk.oldLines = oldLines;
    -      } else {
    -        delete hunk.oldLines;
    -      }
    -      if (newLines !== void 0) {
    -        hunk.newLines = newLines;
    -      } else {
    -        delete hunk.newLines;
    -      }
    -    }
    -    function merge2(mine, theirs, base) {
    -      mine = loadPatch(mine, base);
    -      theirs = loadPatch(theirs, base);
    -      var ret = {};
    -      if (mine.index || theirs.index) {
    -        ret.index = mine.index || theirs.index;
    -      }
    -      if (mine.newFileName || theirs.newFileName) {
    -        if (!fileNameChanged(mine)) {
    -          ret.oldFileName = theirs.oldFileName || mine.oldFileName;
    -          ret.newFileName = theirs.newFileName || mine.newFileName;
    -          ret.oldHeader = theirs.oldHeader || mine.oldHeader;
    -          ret.newHeader = theirs.newHeader || mine.newHeader;
    -        } else if (!fileNameChanged(theirs)) {
    -          ret.oldFileName = mine.oldFileName;
    -          ret.newFileName = mine.newFileName;
    -          ret.oldHeader = mine.oldHeader;
    -          ret.newHeader = mine.newHeader;
    -        } else {
    -          ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
    -          ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
    -          ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
    -          ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
    -        }
    -      }
    -      ret.hunks = [];
    -      var mineIndex = 0, theirsIndex = 0, mineOffset = 0, theirsOffset = 0;
    -      while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
    -        var mineCurrent = mine.hunks[mineIndex] || {
    -          oldStart: Infinity
    -        }, theirsCurrent = theirs.hunks[theirsIndex] || {
    -          oldStart: Infinity
    -        };
    -        if (hunkBefore(mineCurrent, theirsCurrent)) {
    -          ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
    -          mineIndex++;
    -          theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
    -        } else if (hunkBefore(theirsCurrent, mineCurrent)) {
    -          ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
    -          theirsIndex++;
    -          mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
    -        } else {
    -          var mergedHunk = {
    -            oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
    -            oldLines: 0,
    -            newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
    -            newLines: 0,
    -            lines: []
    -          };
    -          mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
    -          theirsIndex++;
    -          mineIndex++;
    -          ret.hunks.push(mergedHunk);
    -        }
    -      }
    -      return ret;
    -    }
    -    function loadPatch(param, base) {
    -      if (typeof param === "string") {
    -        if (/^@@/m.test(param) || /^Index:/m.test(param)) {
    -          return (
    -            /*istanbul ignore start*/
    -            (0, /*istanbul ignore end*/
    -            /*istanbul ignore start*/
    -            _parse.parsePatch)(param)[0]
    -          );
    -        }
    -        if (!base) {
    -          throw new Error("Must provide a base reference or pass in a patch");
    -        }
    -        return (
    -          /*istanbul ignore start*/
    -          (0, /*istanbul ignore end*/
    -          /*istanbul ignore start*/
    -          _create.structuredPatch)(void 0, void 0, base, param)
    -        );
    -      }
    -      return param;
    -    }
    -    function fileNameChanged(patch) {
    -      return patch.newFileName && patch.newFileName !== patch.oldFileName;
    -    }
    -    function selectField(index, mine, theirs) {
    -      if (mine === theirs) {
    -        return mine;
    -      } else {
    -        index.conflict = true;
    -        return {
    -          mine,
    -          theirs
    -        };
    -      }
    -    }
    -    function hunkBefore(test, check) {
    -      return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
    -    }
    -    function cloneHunk(hunk, offset) {
    -      return {
    -        oldStart: hunk.oldStart,
    -        oldLines: hunk.oldLines,
    -        newStart: hunk.newStart + offset,
    -        newLines: hunk.newLines,
    -        lines: hunk.lines
    -      };
    -    }
    -    function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
    -      var mine = {
    -        offset: mineOffset,
    -        lines: mineLines,
    -        index: 0
    -      }, their = {
    -        offset: theirOffset,
    -        lines: theirLines,
    -        index: 0
    -      };
    -      insertLeading(hunk, mine, their);
    -      insertLeading(hunk, their, mine);
    -      while (mine.index < mine.lines.length && their.index < their.lines.length) {
    -        var mineCurrent = mine.lines[mine.index], theirCurrent = their.lines[their.index];
    -        if ((mineCurrent[0] === "-" || mineCurrent[0] === "+") && (theirCurrent[0] === "-" || theirCurrent[0] === "+")) {
    -          mutualChange(hunk, mine, their);
    -        } else if (mineCurrent[0] === "+" && theirCurrent[0] === " ") {
    -          var _hunk$lines;
    -          (_hunk$lines = /*istanbul ignore end*/
    -          hunk.lines).push.apply(
    -            /*istanbul ignore start*/
    -            _hunk$lines,
    -            /*istanbul ignore start*/
    -            _toConsumableArray(
    -              /*istanbul ignore end*/
    -              collectChange(mine)
    -            )
    -          );
    -        } else if (theirCurrent[0] === "+" && mineCurrent[0] === " ") {
    -          var _hunk$lines2;
    -          (_hunk$lines2 = /*istanbul ignore end*/
    -          hunk.lines).push.apply(
    -            /*istanbul ignore start*/
    -            _hunk$lines2,
    -            /*istanbul ignore start*/
    -            _toConsumableArray(
    -              /*istanbul ignore end*/
    -              collectChange(their)
    -            )
    -          );
    -        } else if (mineCurrent[0] === "-" && theirCurrent[0] === " ") {
    -          removal(hunk, mine, their);
    -        } else if (theirCurrent[0] === "-" && mineCurrent[0] === " ") {
    -          removal(hunk, their, mine, true);
    -        } else if (mineCurrent === theirCurrent) {
    -          hunk.lines.push(mineCurrent);
    -          mine.index++;
    -          their.index++;
    -        } else {
    -          conflict(hunk, collectChange(mine), collectChange(their));
    -        }
    -      }
    -      insertTrailing(hunk, mine);
    -      insertTrailing(hunk, their);
    -      calcLineCount(hunk);
    -    }
    -    function mutualChange(hunk, mine, their) {
    -      var myChanges = collectChange(mine), theirChanges = collectChange(their);
    -      if (allRemoves(myChanges) && allRemoves(theirChanges)) {
    -        if (
    -          /*istanbul ignore start*/
    -          (0, /*istanbul ignore end*/
    -          /*istanbul ignore start*/
    -          _array.arrayStartsWith)(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)
    -        ) {
    -          var _hunk$lines3;
    -          (_hunk$lines3 = /*istanbul ignore end*/
    -          hunk.lines).push.apply(
    -            /*istanbul ignore start*/
    -            _hunk$lines3,
    -            /*istanbul ignore start*/
    -            _toConsumableArray(
    -              /*istanbul ignore end*/
    -              myChanges
    -            )
    -          );
    -          return;
    -        } else if (
    -          /*istanbul ignore start*/
    -          (0, /*istanbul ignore end*/
    -          /*istanbul ignore start*/
    -          _array.arrayStartsWith)(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)
    -        ) {
    -          var _hunk$lines4;
    -          (_hunk$lines4 = /*istanbul ignore end*/
    -          hunk.lines).push.apply(
    -            /*istanbul ignore start*/
    -            _hunk$lines4,
    -            /*istanbul ignore start*/
    -            _toConsumableArray(
    -              /*istanbul ignore end*/
    -              theirChanges
    -            )
    -          );
    -          return;
    -        }
    -      } else if (
    -        /*istanbul ignore start*/
    -        (0, /*istanbul ignore end*/
    -        /*istanbul ignore start*/
    -        _array.arrayEqual)(myChanges, theirChanges)
    -      ) {
    -        var _hunk$lines5;
    -        (_hunk$lines5 = /*istanbul ignore end*/
    -        hunk.lines).push.apply(
    -          /*istanbul ignore start*/
    -          _hunk$lines5,
    -          /*istanbul ignore start*/
    -          _toConsumableArray(
    -            /*istanbul ignore end*/
    -            myChanges
    -          )
    -        );
    -        return;
    -      }
    -      conflict(hunk, myChanges, theirChanges);
    -    }
    -    function removal(hunk, mine, their, swap) {
    -      var myChanges = collectChange(mine), theirChanges = collectContext(their, myChanges);
    -      if (theirChanges.merged) {
    -        var _hunk$lines6;
    -        (_hunk$lines6 = /*istanbul ignore end*/
    -        hunk.lines).push.apply(
    -          /*istanbul ignore start*/
    -          _hunk$lines6,
    -          /*istanbul ignore start*/
    -          _toConsumableArray(
    -            /*istanbul ignore end*/
    -            theirChanges.merged
    -          )
    -        );
    -      } else {
    -        conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
    -      }
    -    }
    -    function conflict(hunk, mine, their) {
    -      hunk.conflict = true;
    -      hunk.lines.push({
    -        conflict: true,
    -        mine,
    -        theirs: their
    -      });
    -    }
    -    function insertLeading(hunk, insert, their) {
    -      while (insert.offset < their.offset && insert.index < insert.lines.length) {
    -        var line = insert.lines[insert.index++];
    -        hunk.lines.push(line);
    -        insert.offset++;
    -      }
    -    }
    -    function insertTrailing(hunk, insert) {
    -      while (insert.index < insert.lines.length) {
    -        var line = insert.lines[insert.index++];
    -        hunk.lines.push(line);
    -      }
    -    }
    -    function collectChange(state) {
    -      var ret = [], operation = state.lines[state.index][0];
    -      while (state.index < state.lines.length) {
    -        var line = state.lines[state.index];
    -        if (operation === "-" && line[0] === "+") {
    -          operation = "+";
    -        }
    -        if (operation === line[0]) {
    -          ret.push(line);
    -          state.index++;
    -        } else {
    -          break;
    -        }
    -      }
    -      return ret;
    -    }
    -    function collectContext(state, matchChanges) {
    -      var changes = [], merged = [], matchIndex = 0, contextChanges = false, conflicted = false;
    -      while (matchIndex < matchChanges.length && state.index < state.lines.length) {
    -        var change = state.lines[state.index], match2 = matchChanges[matchIndex];
    -        if (match2[0] === "+") {
    -          break;
    -        }
    -        contextChanges = contextChanges || change[0] !== " ";
    -        merged.push(match2);
    -        matchIndex++;
    -        if (change[0] === "+") {
    -          conflicted = true;
    -          while (change[0] === "+") {
    -            changes.push(change);
    -            change = state.lines[++state.index];
    -          }
    -        }
    -        if (match2.substr(1) === change.substr(1)) {
    -          changes.push(change);
    -          state.index++;
    -        } else {
    -          conflicted = true;
    -        }
    -      }
    -      if ((matchChanges[matchIndex] || "")[0] === "+" && contextChanges) {
    -        conflicted = true;
    -      }
    -      if (conflicted) {
    -        return changes;
    -      }
    -      while (matchIndex < matchChanges.length) {
    -        merged.push(matchChanges[matchIndex++]);
    -      }
    -      return {
    -        merged,
    -        changes
    -      };
    -    }
    -    function allRemoves(changes) {
    -      return changes.reduce(function(prev, change) {
    -        return prev && change[0] === "-";
    -      }, true);
    -    }
    -    function skipRemoveSuperset(state, removeChanges, delta) {
    -      for (var i = 0; i < delta; i++) {
    -        var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
    -        if (state.lines[state.index + i] !== " " + changeContent) {
    -          return false;
    -        }
    -      }
    -      state.index += delta;
    -      return true;
    -    }
    -    function calcOldNewLineCount(lines) {
    -      var oldLines = 0;
    -      var newLines = 0;
    -      lines.forEach(function(line) {
    -        if (typeof line !== "string") {
    -          var myCount = calcOldNewLineCount(line.mine);
    -          var theirCount = calcOldNewLineCount(line.theirs);
    -          if (oldLines !== void 0) {
    -            if (myCount.oldLines === theirCount.oldLines) {
    -              oldLines += myCount.oldLines;
    -            } else {
    -              oldLines = void 0;
    -            }
    -          }
    -          if (newLines !== void 0) {
    -            if (myCount.newLines === theirCount.newLines) {
    -              newLines += myCount.newLines;
    -            } else {
    -              newLines = void 0;
    -            }
    -          }
    -        } else {
    -          if (newLines !== void 0 && (line[0] === "+" || line[0] === " ")) {
    -            newLines++;
    -          }
    -          if (oldLines !== void 0 && (line[0] === "-" || line[0] === " ")) {
    -            oldLines++;
    -          }
    -        }
    -      });
    -      return {
    -        oldLines,
    -        newLines
    -      };
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/dmp.js
    -var require_dmp = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/dmp.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.convertChangesToDMP = convertChangesToDMP;
    -    function convertChangesToDMP(changes) {
    -      var ret = [], change, operation;
    -      for (var i = 0; i < changes.length; i++) {
    -        change = changes[i];
    -        if (change.added) {
    -          operation = 1;
    -        } else if (change.removed) {
    -          operation = -1;
    -        } else {
    -          operation = 0;
    -        }
    -        ret.push([operation, change.value]);
    -      }
    -      return ret;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/xml.js
    -var require_xml = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/convert/xml.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    exports2.convertChangesToXML = convertChangesToXML;
    -    function convertChangesToXML(changes) {
    -      var ret = [];
    -      for (var i = 0; i < changes.length; i++) {
    -        var change = changes[i];
    -        if (change.added) {
    -          ret.push("");
    -        } else if (change.removed) {
    -          ret.push("");
    -        }
    -        ret.push(escapeHTML(change.value));
    -        if (change.added) {
    -          ret.push("");
    -        } else if (change.removed) {
    -          ret.push("");
    -        }
    -      }
    -      return ret.join("");
    -    }
    -    function escapeHTML(s) {
    -      var n = s;
    -      n = n.replace(/&/g, "&");
    -      n = n.replace(//g, ">");
    -      n = n.replace(/"/g, """);
    -      return n;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/index.js
    -var require_lib = __commonJS({
    -  "../../node_modules/.pnpm/diff@5.0.0/node_modules/diff/lib/index.js"(exports2) {
    -    "use strict";
    -    Object.defineProperty(exports2, "__esModule", {
    -      value: true
    -    });
    -    Object.defineProperty(exports2, "Diff", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _base["default"];
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffChars", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _character.diffChars;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffWords", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _word.diffWords;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffWordsWithSpace", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _word.diffWordsWithSpace;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffLines", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _line.diffLines;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffTrimmedLines", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _line.diffTrimmedLines;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffSentences", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _sentence.diffSentences;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffCss", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _css.diffCss;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffJson", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _json.diffJson;
    -      }
    -    });
    -    Object.defineProperty(exports2, "canonicalize", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _json.canonicalize;
    -      }
    -    });
    -    Object.defineProperty(exports2, "diffArrays", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _array.diffArrays;
    -      }
    -    });
    -    Object.defineProperty(exports2, "applyPatch", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _apply.applyPatch;
    -      }
    -    });
    -    Object.defineProperty(exports2, "applyPatches", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _apply.applyPatches;
    -      }
    -    });
    -    Object.defineProperty(exports2, "parsePatch", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _parse.parsePatch;
    -      }
    -    });
    -    Object.defineProperty(exports2, "merge", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _merge.merge;
    -      }
    -    });
    -    Object.defineProperty(exports2, "structuredPatch", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _create.structuredPatch;
    -      }
    -    });
    -    Object.defineProperty(exports2, "createTwoFilesPatch", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _create.createTwoFilesPatch;
    -      }
    -    });
    -    Object.defineProperty(exports2, "createPatch", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _create.createPatch;
    -      }
    -    });
    -    Object.defineProperty(exports2, "convertChangesToDMP", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _dmp.convertChangesToDMP;
    -      }
    -    });
    -    Object.defineProperty(exports2, "convertChangesToXML", {
    -      enumerable: true,
    -      get: function get2() {
    -        return _xml.convertChangesToXML;
    -      }
    -    });
    -    var _base = _interopRequireDefault(require_base());
    -    var _character = require_character();
    -    var _word = require_word();
    -    var _line = require_line();
    -    var _sentence = require_sentence();
    -    var _css = require_css();
    -    var _json = require_json();
    -    var _array = require_array();
    -    var _apply = require_apply();
    -    var _parse = require_parse();
    -    var _merge = require_merge();
    -    var _create = require_create();
    -    var _dmp = require_dmp();
    -    var _xml = require_xml();
    -    function _interopRequireDefault(obj) {
    -      return obj && obj.__esModule ? obj : { "default": obj };
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
    -var require_ms = __commonJS({
    -  "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"(exports2, module2) {
    -    var s = 1e3;
    -    var m = s * 60;
    -    var h = m * 60;
    -    var d = h * 24;
    -    var w = d * 7;
    -    var y = d * 365.25;
    -    module2.exports = function(val, options) {
    -      options = options || {};
    -      var type2 = typeof val;
    -      if (type2 === "string" && val.length > 0) {
    -        return parse(val);
    -      } else if (type2 === "number" && isFinite(val)) {
    -        return options.long ? fmtLong(val) : fmtShort(val);
    -      }
    -      throw new Error(
    -        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
    -      );
    -    };
    -    function parse(str2) {
    -      str2 = String(str2);
    -      if (str2.length > 100) {
    -        return;
    -      }
    -      var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
    -        str2
    -      );
    -      if (!match2) {
    -        return;
    -      }
    -      var n = parseFloat(match2[1]);
    -      var type2 = (match2[2] || "ms").toLowerCase();
    -      switch (type2) {
    -        case "years":
    -        case "year":
    -        case "yrs":
    -        case "yr":
    -        case "y":
    -          return n * y;
    -        case "weeks":
    -        case "week":
    -        case "w":
    -          return n * w;
    -        case "days":
    -        case "day":
    -        case "d":
    -          return n * d;
    -        case "hours":
    -        case "hour":
    -        case "hrs":
    -        case "hr":
    -        case "h":
    -          return n * h;
    -        case "minutes":
    -        case "minute":
    -        case "mins":
    -        case "min":
    -        case "m":
    -          return n * m;
    -        case "seconds":
    -        case "second":
    -        case "secs":
    -        case "sec":
    -        case "s":
    -          return n * s;
    -        case "milliseconds":
    -        case "millisecond":
    -        case "msecs":
    -        case "msec":
    -        case "ms":
    -          return n;
    -        default:
    -          return void 0;
    -      }
    -    }
    -    function fmtShort(ms) {
    -      var msAbs = Math.abs(ms);
    -      if (msAbs >= d) {
    -        return Math.round(ms / d) + "d";
    -      }
    -      if (msAbs >= h) {
    -        return Math.round(ms / h) + "h";
    -      }
    -      if (msAbs >= m) {
    -        return Math.round(ms / m) + "m";
    -      }
    -      if (msAbs >= s) {
    -        return Math.round(ms / s) + "s";
    -      }
    -      return ms + "ms";
    -    }
    -    function fmtLong(ms) {
    -      var msAbs = Math.abs(ms);
    -      if (msAbs >= d) {
    -        return plural(ms, msAbs, d, "day");
    -      }
    -      if (msAbs >= h) {
    -        return plural(ms, msAbs, h, "hour");
    -      }
    -      if (msAbs >= m) {
    -        return plural(ms, msAbs, m, "minute");
    -      }
    -      if (msAbs >= s) {
    -        return plural(ms, msAbs, s, "second");
    -      }
    -      return ms + " ms";
    -    }
    -    function plural(ms, msAbs, n, name) {
    -      var isPlural = msAbs >= n * 1.5;
    -      return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js
    -var require_he = __commonJS({
    -  "../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js"(exports2, module2) {
    -    (function(root) {
    -      var freeExports = typeof exports2 == "object" && exports2;
    -      var freeModule = typeof module2 == "object" && module2 && module2.exports == freeExports && module2;
    -      var freeGlobal = typeof global == "object" && global;
    -      if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
    -        root = freeGlobal;
    -      }
    -      var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
    -      var regexAsciiWhitelist = /[\x01-\x7F]/g;
    -      var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
    -      var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
    -      var encodeMap = { "\xAD": "shy", "\u200C": "zwnj", "\u200D": "zwj", "\u200E": "lrm", "\u2063": "ic", "\u2062": "it", "\u2061": "af", "\u200F": "rlm", "\u200B": "ZeroWidthSpace", "\u2060": "NoBreak", "\u0311": "DownBreve", "\u20DB": "tdot", "\u20DC": "DotDot", "	": "Tab", "\n": "NewLine", "\u2008": "puncsp", "\u205F": "MediumSpace", "\u2009": "thinsp", "\u200A": "hairsp", "\u2004": "emsp13", "\u2002": "ensp", "\u2005": "emsp14", "\u2003": "emsp", "\u2007": "numsp", "\xA0": "nbsp", "\u205F\u200A": "ThickSpace", "\u203E": "oline", "_": "lowbar", "\u2010": "dash", "\u2013": "ndash", "\u2014": "mdash", "\u2015": "horbar", ",": "comma", ";": "semi", "\u204F": "bsemi", ":": "colon", "\u2A74": "Colone", "!": "excl", "\xA1": "iexcl", "?": "quest", "\xBF": "iquest", ".": "period", "\u2025": "nldr", "\u2026": "mldr", "\xB7": "middot", "'": "apos", "\u2018": "lsquo", "\u2019": "rsquo", "\u201A": "sbquo", "\u2039": "lsaquo", "\u203A": "rsaquo", '"': "quot", "\u201C": "ldquo", "\u201D": "rdquo", "\u201E": "bdquo", "\xAB": "laquo", "\xBB": "raquo", "(": "lpar", ")": "rpar", "[": "lsqb", "]": "rsqb", "{": "lcub", "}": "rcub", "\u2308": "lceil", "\u2309": "rceil", "\u230A": "lfloor", "\u230B": "rfloor", "\u2985": "lopar", "\u2986": "ropar", "\u298B": "lbrke", "\u298C": "rbrke", "\u298D": "lbrkslu", "\u298E": "rbrksld", "\u298F": "lbrksld", "\u2990": "rbrkslu", "\u2991": "langd", "\u2992": "rangd", "\u2993": "lparlt", "\u2994": "rpargt", "\u2995": "gtlPar", "\u2996": "ltrPar", "\u27E6": "lobrk", "\u27E7": "robrk", "\u27E8": "lang", "\u27E9": "rang", "\u27EA": "Lang", "\u27EB": "Rang", "\u27EC": "loang", "\u27ED": "roang", "\u2772": "lbbrk", "\u2773": "rbbrk", "\u2016": "Vert", "\xA7": "sect", "\xB6": "para", "@": "commat", "*": "ast", "/": "sol", "undefined": null, "&": "amp", "#": "num", "%": "percnt", "\u2030": "permil", "\u2031": "pertenk", "\u2020": "dagger", "\u2021": "Dagger", "\u2022": "bull", "\u2043": "hybull", "\u2032": "prime", "\u2033": "Prime", "\u2034": "tprime", "\u2057": "qprime", "\u2035": "bprime", "\u2041": "caret", "`": "grave", "\xB4": "acute", "\u02DC": "tilde", "^": "Hat", "\xAF": "macr", "\u02D8": "breve", "\u02D9": "dot", "\xA8": "die", "\u02DA": "ring", "\u02DD": "dblac", "\xB8": "cedil", "\u02DB": "ogon", "\u02C6": "circ", "\u02C7": "caron", "\xB0": "deg", "\xA9": "copy", "\xAE": "reg", "\u2117": "copysr", "\u2118": "wp", "\u211E": "rx", "\u2127": "mho", "\u2129": "iiota", "\u2190": "larr", "\u219A": "nlarr", "\u2192": "rarr", "\u219B": "nrarr", "\u2191": "uarr", "\u2193": "darr", "\u2194": "harr", "\u21AE": "nharr", "\u2195": "varr", "\u2196": "nwarr", "\u2197": "nearr", "\u2198": "searr", "\u2199": "swarr", "\u219D": "rarrw", "\u219D\u0338": "nrarrw", "\u219E": "Larr", "\u219F": "Uarr", "\u21A0": "Rarr", "\u21A1": "Darr", "\u21A2": "larrtl", "\u21A3": "rarrtl", "\u21A4": "mapstoleft", "\u21A5": "mapstoup", "\u21A6": "map", "\u21A7": "mapstodown", "\u21A9": "larrhk", "\u21AA": "rarrhk", "\u21AB": "larrlp", "\u21AC": "rarrlp", "\u21AD": "harrw", "\u21B0": "lsh", "\u21B1": "rsh", "\u21B2": "ldsh", "\u21B3": "rdsh", "\u21B5": "crarr", "\u21B6": "cularr", "\u21B7": "curarr", "\u21BA": "olarr", "\u21BB": "orarr", "\u21BC": "lharu", "\u21BD": "lhard", "\u21BE": "uharr", "\u21BF": "uharl", "\u21C0": "rharu", "\u21C1": "rhard", "\u21C2": "dharr", "\u21C3": "dharl", "\u21C4": "rlarr", "\u21C5": "udarr", "\u21C6": "lrarr", "\u21C7": "llarr", "\u21C8": "uuarr", "\u21C9": "rrarr", "\u21CA": "ddarr", "\u21CB": "lrhar", "\u21CC": "rlhar", "\u21D0": "lArr", "\u21CD": "nlArr", "\u21D1": "uArr", "\u21D2": "rArr", "\u21CF": "nrArr", "\u21D3": "dArr", "\u21D4": "iff", "\u21CE": "nhArr", "\u21D5": "vArr", "\u21D6": "nwArr", "\u21D7": "neArr", "\u21D8": "seArr", "\u21D9": "swArr", "\u21DA": "lAarr", "\u21DB": "rAarr", "\u21DD": "zigrarr", "\u21E4": "larrb", "\u21E5": "rarrb", "\u21F5": "duarr", "\u21FD": "loarr", "\u21FE": "roarr", "\u21FF": "hoarr", "\u2200": "forall", "\u2201": "comp", "\u2202": "part", "\u2202\u0338": "npart", "\u2203": "exist", "\u2204": "nexist", "\u2205": "empty", "\u2207": "Del", "\u2208": "in", "\u2209": "notin", "\u220B": "ni", "\u220C": "notni", "\u03F6": "bepsi", "\u220F": "prod", "\u2210": "coprod", "\u2211": "sum", "+": "plus", "\xB1": "pm", "\xF7": "div", "\xD7": "times", "<": "lt", "\u226E": "nlt", "<\u20D2": "nvlt", "=": "equals", "\u2260": "ne", "=\u20E5": "bne", "\u2A75": "Equal", ">": "gt", "\u226F": "ngt", ">\u20D2": "nvgt", "\xAC": "not", "|": "vert", "\xA6": "brvbar", "\u2212": "minus", "\u2213": "mp", "\u2214": "plusdo", "\u2044": "frasl", "\u2216": "setmn", "\u2217": "lowast", "\u2218": "compfn", "\u221A": "Sqrt", "\u221D": "prop", "\u221E": "infin", "\u221F": "angrt", "\u2220": "ang", "\u2220\u20D2": "nang", "\u2221": "angmsd", "\u2222": "angsph", "\u2223": "mid", "\u2224": "nmid", "\u2225": "par", "\u2226": "npar", "\u2227": "and", "\u2228": "or", "\u2229": "cap", "\u2229\uFE00": "caps", "\u222A": "cup", "\u222A\uFE00": "cups", "\u222B": "int", "\u222C": "Int", "\u222D": "tint", "\u2A0C": "qint", "\u222E": "oint", "\u222F": "Conint", "\u2230": "Cconint", "\u2231": "cwint", "\u2232": "cwconint", "\u2233": "awconint", "\u2234": "there4", "\u2235": "becaus", "\u2236": "ratio", "\u2237": "Colon", "\u2238": "minusd", "\u223A": "mDDot", "\u223B": "homtht", "\u223C": "sim", "\u2241": "nsim", "\u223C\u20D2": "nvsim", "\u223D": "bsim", "\u223D\u0331": "race", "\u223E": "ac", "\u223E\u0333": "acE", "\u223F": "acd", "\u2240": "wr", "\u2242": "esim", "\u2242\u0338": "nesim", "\u2243": "sime", "\u2244": "nsime", "\u2245": "cong", "\u2247": "ncong", "\u2246": "simne", "\u2248": "ap", "\u2249": "nap", "\u224A": "ape", "\u224B": "apid", "\u224B\u0338": "napid", "\u224C": "bcong", "\u224D": "CupCap", "\u226D": "NotCupCap", "\u224D\u20D2": "nvap", "\u224E": "bump", "\u224E\u0338": "nbump", "\u224F": "bumpe", "\u224F\u0338": "nbumpe", "\u2250": "doteq", "\u2250\u0338": "nedot", "\u2251": "eDot", "\u2252": "efDot", "\u2253": "erDot", "\u2254": "colone", "\u2255": "ecolon", "\u2256": "ecir", "\u2257": "cire", "\u2259": "wedgeq", "\u225A": "veeeq", "\u225C": "trie", "\u225F": "equest", "\u2261": "equiv", "\u2262": "nequiv", "\u2261\u20E5": "bnequiv", "\u2264": "le", "\u2270": "nle", "\u2264\u20D2": "nvle", "\u2265": "ge", "\u2271": "nge", "\u2265\u20D2": "nvge", "\u2266": "lE", "\u2266\u0338": "nlE", "\u2267": "gE", "\u2267\u0338": "ngE", "\u2268\uFE00": "lvnE", "\u2268": "lnE", "\u2269": "gnE", "\u2269\uFE00": "gvnE", "\u226A": "ll", "\u226A\u0338": "nLtv", "\u226A\u20D2": "nLt", "\u226B": "gg", "\u226B\u0338": "nGtv", "\u226B\u20D2": "nGt", "\u226C": "twixt", "\u2272": "lsim", "\u2274": "nlsim", "\u2273": "gsim", "\u2275": "ngsim", "\u2276": "lg", "\u2278": "ntlg", "\u2277": "gl", "\u2279": "ntgl", "\u227A": "pr", "\u2280": "npr", "\u227B": "sc", "\u2281": "nsc", "\u227C": "prcue", "\u22E0": "nprcue", "\u227D": "sccue", "\u22E1": "nsccue", "\u227E": "prsim", "\u227F": "scsim", "\u227F\u0338": "NotSucceedsTilde", "\u2282": "sub", "\u2284": "nsub", "\u2282\u20D2": "vnsub", "\u2283": "sup", "\u2285": "nsup", "\u2283\u20D2": "vnsup", "\u2286": "sube", "\u2288": "nsube", "\u2287": "supe", "\u2289": "nsupe", "\u228A\uFE00": "vsubne", "\u228A": "subne", "\u228B\uFE00": "vsupne", "\u228B": "supne", "\u228D": "cupdot", "\u228E": "uplus", "\u228F": "sqsub", "\u228F\u0338": "NotSquareSubset", "\u2290": "sqsup", "\u2290\u0338": "NotSquareSuperset", "\u2291": "sqsube", "\u22E2": "nsqsube", "\u2292": "sqsupe", "\u22E3": "nsqsupe", "\u2293": "sqcap", "\u2293\uFE00": "sqcaps", "\u2294": "sqcup", "\u2294\uFE00": "sqcups", "\u2295": "oplus", "\u2296": "ominus", "\u2297": "otimes", "\u2298": "osol", "\u2299": "odot", "\u229A": "ocir", "\u229B": "oast", "\u229D": "odash", "\u229E": "plusb", "\u229F": "minusb", "\u22A0": "timesb", "\u22A1": "sdotb", "\u22A2": "vdash", "\u22AC": "nvdash", "\u22A3": "dashv", "\u22A4": "top", "\u22A5": "bot", "\u22A7": "models", "\u22A8": "vDash", "\u22AD": "nvDash", "\u22A9": "Vdash", "\u22AE": "nVdash", "\u22AA": "Vvdash", "\u22AB": "VDash", "\u22AF": "nVDash", "\u22B0": "prurel", "\u22B2": "vltri", "\u22EA": "nltri", "\u22B3": "vrtri", "\u22EB": "nrtri", "\u22B4": "ltrie", "\u22EC": "nltrie", "\u22B4\u20D2": "nvltrie", "\u22B5": "rtrie", "\u22ED": "nrtrie", "\u22B5\u20D2": "nvrtrie", "\u22B6": "origof", "\u22B7": "imof", "\u22B8": "mumap", "\u22B9": "hercon", "\u22BA": "intcal", "\u22BB": "veebar", "\u22BD": "barvee", "\u22BE": "angrtvb", "\u22BF": "lrtri", "\u22C0": "Wedge", "\u22C1": "Vee", "\u22C2": "xcap", "\u22C3": "xcup", "\u22C4": "diam", "\u22C5": "sdot", "\u22C6": "Star", "\u22C7": "divonx", "\u22C8": "bowtie", "\u22C9": "ltimes", "\u22CA": "rtimes", "\u22CB": "lthree", "\u22CC": "rthree", "\u22CD": "bsime", "\u22CE": "cuvee", "\u22CF": "cuwed", "\u22D0": "Sub", "\u22D1": "Sup", "\u22D2": "Cap", "\u22D3": "Cup", "\u22D4": "fork", "\u22D5": "epar", "\u22D6": "ltdot", "\u22D7": "gtdot", "\u22D8": "Ll", "\u22D8\u0338": "nLl", "\u22D9": "Gg", "\u22D9\u0338": "nGg", "\u22DA\uFE00": "lesg", "\u22DA": "leg", "\u22DB": "gel", "\u22DB\uFE00": "gesl", "\u22DE": "cuepr", "\u22DF": "cuesc", "\u22E6": "lnsim", "\u22E7": "gnsim", "\u22E8": "prnsim", "\u22E9": "scnsim", "\u22EE": "vellip", "\u22EF": "ctdot", "\u22F0": "utdot", "\u22F1": "dtdot", "\u22F2": "disin", "\u22F3": "isinsv", "\u22F4": "isins", "\u22F5": "isindot", "\u22F5\u0338": "notindot", "\u22F6": "notinvc", "\u22F7": "notinvb", "\u22F9": "isinE", "\u22F9\u0338": "notinE", "\u22FA": "nisd", "\u22FB": "xnis", "\u22FC": "nis", "\u22FD": "notnivc", "\u22FE": "notnivb", "\u2305": "barwed", "\u2306": "Barwed", "\u230C": "drcrop", "\u230D": "dlcrop", "\u230E": "urcrop", "\u230F": "ulcrop", "\u2310": "bnot", "\u2312": "profline", "\u2313": "profsurf", "\u2315": "telrec", "\u2316": "target", "\u231C": "ulcorn", "\u231D": "urcorn", "\u231E": "dlcorn", "\u231F": "drcorn", "\u2322": "frown", "\u2323": "smile", "\u232D": "cylcty", "\u232E": "profalar", "\u2336": "topbot", "\u233D": "ovbar", "\u233F": "solbar", "\u237C": "angzarr", "\u23B0": "lmoust", "\u23B1": "rmoust", "\u23B4": "tbrk", "\u23B5": "bbrk", "\u23B6": "bbrktbrk", "\u23DC": "OverParenthesis", "\u23DD": "UnderParenthesis", "\u23DE": "OverBrace", "\u23DF": "UnderBrace", "\u23E2": "trpezium", "\u23E7": "elinters", "\u2423": "blank", "\u2500": "boxh", "\u2502": "boxv", "\u250C": "boxdr", "\u2510": "boxdl", "\u2514": "boxur", "\u2518": "boxul", "\u251C": "boxvr", "\u2524": "boxvl", "\u252C": "boxhd", "\u2534": "boxhu", "\u253C": "boxvh", "\u2550": "boxH", "\u2551": "boxV", "\u2552": "boxdR", "\u2553": "boxDr", "\u2554": "boxDR", "\u2555": "boxdL", "\u2556": "boxDl", "\u2557": "boxDL", "\u2558": "boxuR", "\u2559": "boxUr", "\u255A": "boxUR", "\u255B": "boxuL", "\u255C": "boxUl", "\u255D": "boxUL", "\u255E": "boxvR", "\u255F": "boxVr", "\u2560": "boxVR", "\u2561": "boxvL", "\u2562": "boxVl", "\u2563": "boxVL", "\u2564": "boxHd", "\u2565": "boxhD", "\u2566": "boxHD", "\u2567": "boxHu", "\u2568": "boxhU", "\u2569": "boxHU", "\u256A": "boxvH", "\u256B": "boxVh", "\u256C": "boxVH", "\u2580": "uhblk", "\u2584": "lhblk", "\u2588": "block", "\u2591": "blk14", "\u2592": "blk12", "\u2593": "blk34", "\u25A1": "squ", "\u25AA": "squf", "\u25AB": "EmptyVerySmallSquare", "\u25AD": "rect", "\u25AE": "marker", "\u25B1": "fltns", "\u25B3": "xutri", "\u25B4": "utrif", "\u25B5": "utri", "\u25B8": "rtrif", "\u25B9": "rtri", "\u25BD": "xdtri", "\u25BE": "dtrif", "\u25BF": "dtri", "\u25C2": "ltrif", "\u25C3": "ltri", "\u25CA": "loz", "\u25CB": "cir", "\u25EC": "tridot", "\u25EF": "xcirc", "\u25F8": "ultri", "\u25F9": "urtri", "\u25FA": "lltri", "\u25FB": "EmptySmallSquare", "\u25FC": "FilledSmallSquare", "\u2605": "starf", "\u2606": "star", "\u260E": "phone", "\u2640": "female", "\u2642": "male", "\u2660": "spades", "\u2663": "clubs", "\u2665": "hearts", "\u2666": "diams", "\u266A": "sung", "\u2713": "check", "\u2717": "cross", "\u2720": "malt", "\u2736": "sext", "\u2758": "VerticalSeparator", "\u27C8": "bsolhsub", "\u27C9": "suphsol", "\u27F5": "xlarr", "\u27F6": "xrarr", "\u27F7": "xharr", "\u27F8": "xlArr", "\u27F9": "xrArr", "\u27FA": "xhArr", "\u27FC": "xmap", "\u27FF": "dzigrarr", "\u2902": "nvlArr", "\u2903": "nvrArr", "\u2904": "nvHarr", "\u2905": "Map", "\u290C": "lbarr", "\u290D": "rbarr", "\u290E": "lBarr", "\u290F": "rBarr", "\u2910": "RBarr", "\u2911": "DDotrahd", "\u2912": "UpArrowBar", "\u2913": "DownArrowBar", "\u2916": "Rarrtl", "\u2919": "latail", "\u291A": "ratail", "\u291B": "lAtail", "\u291C": "rAtail", "\u291D": "larrfs", "\u291E": "rarrfs", "\u291F": "larrbfs", "\u2920": "rarrbfs", "\u2923": "nwarhk", "\u2924": "nearhk", "\u2925": "searhk", "\u2926": "swarhk", "\u2927": "nwnear", "\u2928": "toea", "\u2929": "tosa", "\u292A": "swnwar", "\u2933": "rarrc", "\u2933\u0338": "nrarrc", "\u2935": "cudarrr", "\u2936": "ldca", "\u2937": "rdca", "\u2938": "cudarrl", "\u2939": "larrpl", "\u293C": "curarrm", "\u293D": "cularrp", "\u2945": "rarrpl", "\u2948": "harrcir", "\u2949": "Uarrocir", "\u294A": "lurdshar", "\u294B": "ldrushar", "\u294E": "LeftRightVector", "\u294F": "RightUpDownVector", "\u2950": "DownLeftRightVector", "\u2951": "LeftUpDownVector", "\u2952": "LeftVectorBar", "\u2953": "RightVectorBar", "\u2954": "RightUpVectorBar", "\u2955": "RightDownVectorBar", "\u2956": "DownLeftVectorBar", "\u2957": "DownRightVectorBar", "\u2958": "LeftUpVectorBar", "\u2959": "LeftDownVectorBar", "\u295A": "LeftTeeVector", "\u295B": "RightTeeVector", "\u295C": "RightUpTeeVector", "\u295D": "RightDownTeeVector", "\u295E": "DownLeftTeeVector", "\u295F": "DownRightTeeVector", "\u2960": "LeftUpTeeVector", "\u2961": "LeftDownTeeVector", "\u2962": "lHar", "\u2963": "uHar", "\u2964": "rHar", "\u2965": "dHar", "\u2966": "luruhar", "\u2967": "ldrdhar", "\u2968": "ruluhar", "\u2969": "rdldhar", "\u296A": "lharul", "\u296B": "llhard", "\u296C": "rharul", "\u296D": "lrhard", "\u296E": "udhar", "\u296F": "duhar", "\u2970": "RoundImplies", "\u2971": "erarr", "\u2972": "simrarr", "\u2973": "larrsim", "\u2974": "rarrsim", "\u2975": "rarrap", "\u2976": "ltlarr", "\u2978": "gtrarr", "\u2979": "subrarr", "\u297B": "suplarr", "\u297C": "lfisht", "\u297D": "rfisht", "\u297E": "ufisht", "\u297F": "dfisht", "\u299A": "vzigzag", "\u299C": "vangrt", "\u299D": "angrtvbd", "\u29A4": "ange", "\u29A5": "range", "\u29A6": "dwangle", "\u29A7": "uwangle", "\u29A8": "angmsdaa", "\u29A9": "angmsdab", "\u29AA": "angmsdac", "\u29AB": "angmsdad", "\u29AC": "angmsdae", "\u29AD": "angmsdaf", "\u29AE": "angmsdag", "\u29AF": "angmsdah", "\u29B0": "bemptyv", "\u29B1": "demptyv", "\u29B2": "cemptyv", "\u29B3": "raemptyv", "\u29B4": "laemptyv", "\u29B5": "ohbar", "\u29B6": "omid", "\u29B7": "opar", "\u29B9": "operp", "\u29BB": "olcross", "\u29BC": "odsold", "\u29BE": "olcir", "\u29BF": "ofcir", "\u29C0": "olt", "\u29C1": "ogt", "\u29C2": "cirscir", "\u29C3": "cirE", "\u29C4": "solb", "\u29C5": "bsolb", "\u29C9": "boxbox", "\u29CD": "trisb", "\u29CE": "rtriltri", "\u29CF": "LeftTriangleBar", "\u29CF\u0338": "NotLeftTriangleBar", "\u29D0": "RightTriangleBar", "\u29D0\u0338": "NotRightTriangleBar", "\u29DC": "iinfin", "\u29DD": "infintie", "\u29DE": "nvinfin", "\u29E3": "eparsl", "\u29E4": "smeparsl", "\u29E5": "eqvparsl", "\u29EB": "lozf", "\u29F4": "RuleDelayed", "\u29F6": "dsol", "\u2A00": "xodot", "\u2A01": "xoplus", "\u2A02": "xotime", "\u2A04": "xuplus", "\u2A06": "xsqcup", "\u2A0D": "fpartint", "\u2A10": "cirfnint", "\u2A11": "awint", "\u2A12": "rppolint", "\u2A13": "scpolint", "\u2A14": "npolint", "\u2A15": "pointint", "\u2A16": "quatint", "\u2A17": "intlarhk", "\u2A22": "pluscir", "\u2A23": "plusacir", "\u2A24": "simplus", "\u2A25": "plusdu", "\u2A26": "plussim", "\u2A27": "plustwo", "\u2A29": "mcomma", "\u2A2A": "minusdu", "\u2A2D": "loplus", "\u2A2E": "roplus", "\u2A2F": "Cross", "\u2A30": "timesd", "\u2A31": "timesbar", "\u2A33": "smashp", "\u2A34": "lotimes", "\u2A35": "rotimes", "\u2A36": "otimesas", "\u2A37": "Otimes", "\u2A38": "odiv", "\u2A39": "triplus", "\u2A3A": "triminus", "\u2A3B": "tritime", "\u2A3C": "iprod", "\u2A3F": "amalg", "\u2A40": "capdot", "\u2A42": "ncup", "\u2A43": "ncap", "\u2A44": "capand", "\u2A45": "cupor", "\u2A46": "cupcap", "\u2A47": "capcup", "\u2A48": "cupbrcap", "\u2A49": "capbrcup", "\u2A4A": "cupcup", "\u2A4B": "capcap", "\u2A4C": "ccups", "\u2A4D": "ccaps", "\u2A50": "ccupssm", "\u2A53": "And", "\u2A54": "Or", "\u2A55": "andand", "\u2A56": "oror", "\u2A57": "orslope", "\u2A58": "andslope", "\u2A5A": "andv", "\u2A5B": "orv", "\u2A5C": "andd", "\u2A5D": "ord", "\u2A5F": "wedbar", "\u2A66": "sdote", "\u2A6A": "simdot", "\u2A6D": "congdot", "\u2A6D\u0338": "ncongdot", "\u2A6E": "easter", "\u2A6F": "apacir", "\u2A70": "apE", "\u2A70\u0338": "napE", "\u2A71": "eplus", "\u2A72": "pluse", "\u2A73": "Esim", "\u2A77": "eDDot", "\u2A78": "equivDD", "\u2A79": "ltcir", "\u2A7A": "gtcir", "\u2A7B": "ltquest", "\u2A7C": "gtquest", "\u2A7D": "les", "\u2A7D\u0338": "nles", "\u2A7E": "ges", "\u2A7E\u0338": "nges", "\u2A7F": "lesdot", "\u2A80": "gesdot", "\u2A81": "lesdoto", "\u2A82": "gesdoto", "\u2A83": "lesdotor", "\u2A84": "gesdotol", "\u2A85": "lap", "\u2A86": "gap", "\u2A87": "lne", "\u2A88": "gne", "\u2A89": "lnap", "\u2A8A": "gnap", "\u2A8B": "lEg", "\u2A8C": "gEl", "\u2A8D": "lsime", "\u2A8E": "gsime", "\u2A8F": "lsimg", "\u2A90": "gsiml", "\u2A91": "lgE", "\u2A92": "glE", "\u2A93": "lesges", "\u2A94": "gesles", "\u2A95": "els", "\u2A96": "egs", "\u2A97": "elsdot", "\u2A98": "egsdot", "\u2A99": "el", "\u2A9A": "eg", "\u2A9D": "siml", "\u2A9E": "simg", "\u2A9F": "simlE", "\u2AA0": "simgE", "\u2AA1": "LessLess", "\u2AA1\u0338": "NotNestedLessLess", "\u2AA2": "GreaterGreater", "\u2AA2\u0338": "NotNestedGreaterGreater", "\u2AA4": "glj", "\u2AA5": "gla", "\u2AA6": "ltcc", "\u2AA7": "gtcc", "\u2AA8": "lescc", "\u2AA9": "gescc", "\u2AAA": "smt", "\u2AAB": "lat", "\u2AAC": "smte", "\u2AAC\uFE00": "smtes", "\u2AAD": "late", "\u2AAD\uFE00": "lates", "\u2AAE": "bumpE", "\u2AAF": "pre", "\u2AAF\u0338": "npre", "\u2AB0": "sce", "\u2AB0\u0338": "nsce", "\u2AB3": "prE", "\u2AB4": "scE", "\u2AB5": "prnE", "\u2AB6": "scnE", "\u2AB7": "prap", "\u2AB8": "scap", "\u2AB9": "prnap", "\u2ABA": "scnap", "\u2ABB": "Pr", "\u2ABC": "Sc", "\u2ABD": "subdot", "\u2ABE": "supdot", "\u2ABF": "subplus", "\u2AC0": "supplus", "\u2AC1": "submult", "\u2AC2": "supmult", "\u2AC3": "subedot", "\u2AC4": "supedot", "\u2AC5": "subE", "\u2AC5\u0338": "nsubE", "\u2AC6": "supE", "\u2AC6\u0338": "nsupE", "\u2AC7": "subsim", "\u2AC8": "supsim", "\u2ACB\uFE00": "vsubnE", "\u2ACB": "subnE", "\u2ACC\uFE00": "vsupnE", "\u2ACC": "supnE", "\u2ACF": "csub", "\u2AD0": "csup", "\u2AD1": "csube", "\u2AD2": "csupe", "\u2AD3": "subsup", "\u2AD4": "supsub", "\u2AD5": "subsub", "\u2AD6": "supsup", "\u2AD7": "suphsub", "\u2AD8": "supdsub", "\u2AD9": "forkv", "\u2ADA": "topfork", "\u2ADB": "mlcp", "\u2AE4": "Dashv", "\u2AE6": "Vdashl", "\u2AE7": "Barv", "\u2AE8": "vBar", "\u2AE9": "vBarv", "\u2AEB": "Vbar", "\u2AEC": "Not", "\u2AED": "bNot", "\u2AEE": "rnmid", "\u2AEF": "cirmid", "\u2AF0": "midcir", "\u2AF1": "topcir", "\u2AF2": "nhpar", "\u2AF3": "parsim", "\u2AFD": "parsl", "\u2AFD\u20E5": "nparsl", "\u266D": "flat", "\u266E": "natur", "\u266F": "sharp", "\xA4": "curren", "\xA2": "cent", "$": "dollar", "\xA3": "pound", "\xA5": "yen", "\u20AC": "euro", "\xB9": "sup1", "\xBD": "half", "\u2153": "frac13", "\xBC": "frac14", "\u2155": "frac15", "\u2159": "frac16", "\u215B": "frac18", "\xB2": "sup2", "\u2154": "frac23", "\u2156": "frac25", "\xB3": "sup3", "\xBE": "frac34", "\u2157": "frac35", "\u215C": "frac38", "\u2158": "frac45", "\u215A": "frac56", "\u215D": "frac58", "\u215E": "frac78", "\u{1D4B6}": "ascr", "\u{1D552}": "aopf", "\u{1D51E}": "afr", "\u{1D538}": "Aopf", "\u{1D504}": "Afr", "\u{1D49C}": "Ascr", "\xAA": "ordf", "\xE1": "aacute", "\xC1": "Aacute", "\xE0": "agrave", "\xC0": "Agrave", "\u0103": "abreve", "\u0102": "Abreve", "\xE2": "acirc", "\xC2": "Acirc", "\xE5": "aring", "\xC5": "angst", "\xE4": "auml", "\xC4": "Auml", "\xE3": "atilde", "\xC3": "Atilde", "\u0105": "aogon", "\u0104": "Aogon", "\u0101": "amacr", "\u0100": "Amacr", "\xE6": "aelig", "\xC6": "AElig", "\u{1D4B7}": "bscr", "\u{1D553}": "bopf", "\u{1D51F}": "bfr", "\u{1D539}": "Bopf", "\u212C": "Bscr", "\u{1D505}": "Bfr", "\u{1D520}": "cfr", "\u{1D4B8}": "cscr", "\u{1D554}": "copf", "\u212D": "Cfr", "\u{1D49E}": "Cscr", "\u2102": "Copf", "\u0107": "cacute", "\u0106": "Cacute", "\u0109": "ccirc", "\u0108": "Ccirc", "\u010D": "ccaron", "\u010C": "Ccaron", "\u010B": "cdot", "\u010A": "Cdot", "\xE7": "ccedil", "\xC7": "Ccedil", "\u2105": "incare", "\u{1D521}": "dfr", "\u2146": "dd", "\u{1D555}": "dopf", "\u{1D4B9}": "dscr", "\u{1D49F}": "Dscr", "\u{1D507}": "Dfr", "\u2145": "DD", "\u{1D53B}": "Dopf", "\u010F": "dcaron", "\u010E": "Dcaron", "\u0111": "dstrok", "\u0110": "Dstrok", "\xF0": "eth", "\xD0": "ETH", "\u2147": "ee", "\u212F": "escr", "\u{1D522}": "efr", "\u{1D556}": "eopf", "\u2130": "Escr", "\u{1D508}": "Efr", "\u{1D53C}": "Eopf", "\xE9": "eacute", "\xC9": "Eacute", "\xE8": "egrave", "\xC8": "Egrave", "\xEA": "ecirc", "\xCA": "Ecirc", "\u011B": "ecaron", "\u011A": "Ecaron", "\xEB": "euml", "\xCB": "Euml", "\u0117": "edot", "\u0116": "Edot", "\u0119": "eogon", "\u0118": "Eogon", "\u0113": "emacr", "\u0112": "Emacr", "\u{1D523}": "ffr", "\u{1D557}": "fopf", "\u{1D4BB}": "fscr", "\u{1D509}": "Ffr", "\u{1D53D}": "Fopf", "\u2131": "Fscr", "\uFB00": "fflig", "\uFB03": "ffilig", "\uFB04": "ffllig", "\uFB01": "filig", "fj": "fjlig", "\uFB02": "fllig", "\u0192": "fnof", "\u210A": "gscr", "\u{1D558}": "gopf", "\u{1D524}": "gfr", "\u{1D4A2}": "Gscr", "\u{1D53E}": "Gopf", "\u{1D50A}": "Gfr", "\u01F5": "gacute", "\u011F": "gbreve", "\u011E": "Gbreve", "\u011D": "gcirc", "\u011C": "Gcirc", "\u0121": "gdot", "\u0120": "Gdot", "\u0122": "Gcedil", "\u{1D525}": "hfr", "\u210E": "planckh", "\u{1D4BD}": "hscr", "\u{1D559}": "hopf", "\u210B": "Hscr", "\u210C": "Hfr", "\u210D": "Hopf", "\u0125": "hcirc", "\u0124": "Hcirc", "\u210F": "hbar", "\u0127": "hstrok", "\u0126": "Hstrok", "\u{1D55A}": "iopf", "\u{1D526}": "ifr", "\u{1D4BE}": "iscr", "\u2148": "ii", "\u{1D540}": "Iopf", "\u2110": "Iscr", "\u2111": "Im", "\xED": "iacute", "\xCD": "Iacute", "\xEC": "igrave", "\xCC": "Igrave", "\xEE": "icirc", "\xCE": "Icirc", "\xEF": "iuml", "\xCF": "Iuml", "\u0129": "itilde", "\u0128": "Itilde", "\u0130": "Idot", "\u012F": "iogon", "\u012E": "Iogon", "\u012B": "imacr", "\u012A": "Imacr", "\u0133": "ijlig", "\u0132": "IJlig", "\u0131": "imath", "\u{1D4BF}": "jscr", "\u{1D55B}": "jopf", "\u{1D527}": "jfr", "\u{1D4A5}": "Jscr", "\u{1D50D}": "Jfr", "\u{1D541}": "Jopf", "\u0135": "jcirc", "\u0134": "Jcirc", "\u0237": "jmath", "\u{1D55C}": "kopf", "\u{1D4C0}": "kscr", "\u{1D528}": "kfr", "\u{1D4A6}": "Kscr", "\u{1D542}": "Kopf", "\u{1D50E}": "Kfr", "\u0137": "kcedil", "\u0136": "Kcedil", "\u{1D529}": "lfr", "\u{1D4C1}": "lscr", "\u2113": "ell", "\u{1D55D}": "lopf", "\u2112": "Lscr", "\u{1D50F}": "Lfr", "\u{1D543}": "Lopf", "\u013A": "lacute", "\u0139": "Lacute", "\u013E": "lcaron", "\u013D": "Lcaron", "\u013C": "lcedil", "\u013B": "Lcedil", "\u0142": "lstrok", "\u0141": "Lstrok", "\u0140": "lmidot", "\u013F": "Lmidot", "\u{1D52A}": "mfr", "\u{1D55E}": "mopf", "\u{1D4C2}": "mscr", "\u{1D510}": "Mfr", "\u{1D544}": "Mopf", "\u2133": "Mscr", "\u{1D52B}": "nfr", "\u{1D55F}": "nopf", "\u{1D4C3}": "nscr", "\u2115": "Nopf", "\u{1D4A9}": "Nscr", "\u{1D511}": "Nfr", "\u0144": "nacute", "\u0143": "Nacute", "\u0148": "ncaron", "\u0147": "Ncaron", "\xF1": "ntilde", "\xD1": "Ntilde", "\u0146": "ncedil", "\u0145": "Ncedil", "\u2116": "numero", "\u014B": "eng", "\u014A": "ENG", "\u{1D560}": "oopf", "\u{1D52C}": "ofr", "\u2134": "oscr", "\u{1D4AA}": "Oscr", "\u{1D512}": "Ofr", "\u{1D546}": "Oopf", "\xBA": "ordm", "\xF3": "oacute", "\xD3": "Oacute", "\xF2": "ograve", "\xD2": "Ograve", "\xF4": "ocirc", "\xD4": "Ocirc", "\xF6": "ouml", "\xD6": "Ouml", "\u0151": "odblac", "\u0150": "Odblac", "\xF5": "otilde", "\xD5": "Otilde", "\xF8": "oslash", "\xD8": "Oslash", "\u014D": "omacr", "\u014C": "Omacr", "\u0153": "oelig", "\u0152": "OElig", "\u{1D52D}": "pfr", "\u{1D4C5}": "pscr", "\u{1D561}": "popf", "\u2119": "Popf", "\u{1D513}": "Pfr", "\u{1D4AB}": "Pscr", "\u{1D562}": "qopf", "\u{1D52E}": "qfr", "\u{1D4C6}": "qscr", "\u{1D4AC}": "Qscr", "\u{1D514}": "Qfr", "\u211A": "Qopf", "\u0138": "kgreen", "\u{1D52F}": "rfr", "\u{1D563}": "ropf", "\u{1D4C7}": "rscr", "\u211B": "Rscr", "\u211C": "Re", "\u211D": "Ropf", "\u0155": "racute", "\u0154": "Racute", "\u0159": "rcaron", "\u0158": "Rcaron", "\u0157": "rcedil", "\u0156": "Rcedil", "\u{1D564}": "sopf", "\u{1D4C8}": "sscr", "\u{1D530}": "sfr", "\u{1D54A}": "Sopf", "\u{1D516}": "Sfr", "\u{1D4AE}": "Sscr", "\u24C8": "oS", "\u015B": "sacute", "\u015A": "Sacute", "\u015D": "scirc", "\u015C": "Scirc", "\u0161": "scaron", "\u0160": "Scaron", "\u015F": "scedil", "\u015E": "Scedil", "\xDF": "szlig", "\u{1D531}": "tfr", "\u{1D4C9}": "tscr", "\u{1D565}": "topf", "\u{1D4AF}": "Tscr", "\u{1D517}": "Tfr", "\u{1D54B}": "Topf", "\u0165": "tcaron", "\u0164": "Tcaron", "\u0163": "tcedil", "\u0162": "Tcedil", "\u2122": "trade", "\u0167": "tstrok", "\u0166": "Tstrok", "\u{1D4CA}": "uscr", "\u{1D566}": "uopf", "\u{1D532}": "ufr", "\u{1D54C}": "Uopf", "\u{1D518}": "Ufr", "\u{1D4B0}": "Uscr", "\xFA": "uacute", "\xDA": "Uacute", "\xF9": "ugrave", "\xD9": "Ugrave", "\u016D": "ubreve", "\u016C": "Ubreve", "\xFB": "ucirc", "\xDB": "Ucirc", "\u016F": "uring", "\u016E": "Uring", "\xFC": "uuml", "\xDC": "Uuml", "\u0171": "udblac", "\u0170": "Udblac", "\u0169": "utilde", "\u0168": "Utilde", "\u0173": "uogon", "\u0172": "Uogon", "\u016B": "umacr", "\u016A": "Umacr", "\u{1D533}": "vfr", "\u{1D567}": "vopf", "\u{1D4CB}": "vscr", "\u{1D519}": "Vfr", "\u{1D54D}": "Vopf", "\u{1D4B1}": "Vscr", "\u{1D568}": "wopf", "\u{1D4CC}": "wscr", "\u{1D534}": "wfr", "\u{1D4B2}": "Wscr", "\u{1D54E}": "Wopf", "\u{1D51A}": "Wfr", "\u0175": "wcirc", "\u0174": "Wcirc", "\u{1D535}": "xfr", "\u{1D4CD}": "xscr", "\u{1D569}": "xopf", "\u{1D54F}": "Xopf", "\u{1D51B}": "Xfr", "\u{1D4B3}": "Xscr", "\u{1D536}": "yfr", "\u{1D4CE}": "yscr", "\u{1D56A}": "yopf", "\u{1D4B4}": "Yscr", "\u{1D51C}": "Yfr", "\u{1D550}": "Yopf", "\xFD": "yacute", "\xDD": "Yacute", "\u0177": "ycirc", "\u0176": "Ycirc", "\xFF": "yuml", "\u0178": "Yuml", "\u{1D4CF}": "zscr", "\u{1D537}": "zfr", "\u{1D56B}": "zopf", "\u2128": "Zfr", "\u2124": "Zopf", "\u{1D4B5}": "Zscr", "\u017A": "zacute", "\u0179": "Zacute", "\u017E": "zcaron", "\u017D": "Zcaron", "\u017C": "zdot", "\u017B": "Zdot", "\u01B5": "imped", "\xFE": "thorn", "\xDE": "THORN", "\u0149": "napos", "\u03B1": "alpha", "\u0391": "Alpha", "\u03B2": "beta", "\u0392": "Beta", "\u03B3": "gamma", "\u0393": "Gamma", "\u03B4": "delta", "\u0394": "Delta", "\u03B5": "epsi", "\u03F5": "epsiv", "\u0395": "Epsilon", "\u03DD": "gammad", "\u03DC": "Gammad", "\u03B6": "zeta", "\u0396": "Zeta", "\u03B7": "eta", "\u0397": "Eta", "\u03B8": "theta", "\u03D1": "thetav", "\u0398": "Theta", "\u03B9": "iota", "\u0399": "Iota", "\u03BA": "kappa", "\u03F0": "kappav", "\u039A": "Kappa", "\u03BB": "lambda", "\u039B": "Lambda", "\u03BC": "mu", "\xB5": "micro", "\u039C": "Mu", "\u03BD": "nu", "\u039D": "Nu", "\u03BE": "xi", "\u039E": "Xi", "\u03BF": "omicron", "\u039F": "Omicron", "\u03C0": "pi", "\u03D6": "piv", "\u03A0": "Pi", "\u03C1": "rho", "\u03F1": "rhov", "\u03A1": "Rho", "\u03C3": "sigma", "\u03A3": "Sigma", "\u03C2": "sigmaf", "\u03C4": "tau", "\u03A4": "Tau", "\u03C5": "upsi", "\u03A5": "Upsilon", "\u03D2": "Upsi", "\u03C6": "phi", "\u03D5": "phiv", "\u03A6": "Phi", "\u03C7": "chi", "\u03A7": "Chi", "\u03C8": "psi", "\u03A8": "Psi", "\u03C9": "omega", "\u03A9": "ohm", "\u0430": "acy", "\u0410": "Acy", "\u0431": "bcy", "\u0411": "Bcy", "\u0432": "vcy", "\u0412": "Vcy", "\u0433": "gcy", "\u0413": "Gcy", "\u0453": "gjcy", "\u0403": "GJcy", "\u0434": "dcy", "\u0414": "Dcy", "\u0452": "djcy", "\u0402": "DJcy", "\u0435": "iecy", "\u0415": "IEcy", "\u0451": "iocy", "\u0401": "IOcy", "\u0454": "jukcy", "\u0404": "Jukcy", "\u0436": "zhcy", "\u0416": "ZHcy", "\u0437": "zcy", "\u0417": "Zcy", "\u0455": "dscy", "\u0405": "DScy", "\u0438": "icy", "\u0418": "Icy", "\u0456": "iukcy", "\u0406": "Iukcy", "\u0457": "yicy", "\u0407": "YIcy", "\u0439": "jcy", "\u0419": "Jcy", "\u0458": "jsercy", "\u0408": "Jsercy", "\u043A": "kcy", "\u041A": "Kcy", "\u045C": "kjcy", "\u040C": "KJcy", "\u043B": "lcy", "\u041B": "Lcy", "\u0459": "ljcy", "\u0409": "LJcy", "\u043C": "mcy", "\u041C": "Mcy", "\u043D": "ncy", "\u041D": "Ncy", "\u045A": "njcy", "\u040A": "NJcy", "\u043E": "ocy", "\u041E": "Ocy", "\u043F": "pcy", "\u041F": "Pcy", "\u0440": "rcy", "\u0420": "Rcy", "\u0441": "scy", "\u0421": "Scy", "\u0442": "tcy", "\u0422": "Tcy", "\u045B": "tshcy", "\u040B": "TSHcy", "\u0443": "ucy", "\u0423": "Ucy", "\u045E": "ubrcy", "\u040E": "Ubrcy", "\u0444": "fcy", "\u0424": "Fcy", "\u0445": "khcy", "\u0425": "KHcy", "\u0446": "tscy", "\u0426": "TScy", "\u0447": "chcy", "\u0427": "CHcy", "\u045F": "dzcy", "\u040F": "DZcy", "\u0448": "shcy", "\u0428": "SHcy", "\u0449": "shchcy", "\u0429": "SHCHcy", "\u044A": "hardcy", "\u042A": "HARDcy", "\u044B": "ycy", "\u042B": "Ycy", "\u044C": "softcy", "\u042C": "SOFTcy", "\u044D": "ecy", "\u042D": "Ecy", "\u044E": "yucy", "\u042E": "YUcy", "\u044F": "yacy", "\u042F": "YAcy", "\u2135": "aleph", "\u2136": "beth", "\u2137": "gimel", "\u2138": "daleth" };
    -      var regexEscape = /["&'<>`]/g;
    -      var escapeMap = {
    -        '"': """,
    -        "&": "&",
    -        "'": "'",
    -        "<": "<",
    -        // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
    -        // following is not strictly necessary unless it’s part of a tag or an
    -        // unquoted attribute value. We’re only escaping it to support those
    -        // situations, and for XML support.
    -        ">": ">",
    -        // In Internet Explorer ≤ 8, the backtick character can be used
    -        // to break out of (un)quoted attribute values or HTML comments.
    -        // See http://html5sec.org/#102, http://html5sec.org/#108, and
    -        // http://html5sec.org/#133.
    -        "`": "`"
    -      };
    -      var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
    -      var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
    -      var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
    -      var decodeMap = { "aacute": "\xE1", "Aacute": "\xC1", "abreve": "\u0103", "Abreve": "\u0102", "ac": "\u223E", "acd": "\u223F", "acE": "\u223E\u0333", "acirc": "\xE2", "Acirc": "\xC2", "acute": "\xB4", "acy": "\u0430", "Acy": "\u0410", "aelig": "\xE6", "AElig": "\xC6", "af": "\u2061", "afr": "\u{1D51E}", "Afr": "\u{1D504}", "agrave": "\xE0", "Agrave": "\xC0", "alefsym": "\u2135", "aleph": "\u2135", "alpha": "\u03B1", "Alpha": "\u0391", "amacr": "\u0101", "Amacr": "\u0100", "amalg": "\u2A3F", "amp": "&", "AMP": "&", "and": "\u2227", "And": "\u2A53", "andand": "\u2A55", "andd": "\u2A5C", "andslope": "\u2A58", "andv": "\u2A5A", "ang": "\u2220", "ange": "\u29A4", "angle": "\u2220", "angmsd": "\u2221", "angmsdaa": "\u29A8", "angmsdab": "\u29A9", "angmsdac": "\u29AA", "angmsdad": "\u29AB", "angmsdae": "\u29AC", "angmsdaf": "\u29AD", "angmsdag": "\u29AE", "angmsdah": "\u29AF", "angrt": "\u221F", "angrtvb": "\u22BE", "angrtvbd": "\u299D", "angsph": "\u2222", "angst": "\xC5", "angzarr": "\u237C", "aogon": "\u0105", "Aogon": "\u0104", "aopf": "\u{1D552}", "Aopf": "\u{1D538}", "ap": "\u2248", "apacir": "\u2A6F", "ape": "\u224A", "apE": "\u2A70", "apid": "\u224B", "apos": "'", "ApplyFunction": "\u2061", "approx": "\u2248", "approxeq": "\u224A", "aring": "\xE5", "Aring": "\xC5", "ascr": "\u{1D4B6}", "Ascr": "\u{1D49C}", "Assign": "\u2254", "ast": "*", "asymp": "\u2248", "asympeq": "\u224D", "atilde": "\xE3", "Atilde": "\xC3", "auml": "\xE4", "Auml": "\xC4", "awconint": "\u2233", "awint": "\u2A11", "backcong": "\u224C", "backepsilon": "\u03F6", "backprime": "\u2035", "backsim": "\u223D", "backsimeq": "\u22CD", "Backslash": "\u2216", "Barv": "\u2AE7", "barvee": "\u22BD", "barwed": "\u2305", "Barwed": "\u2306", "barwedge": "\u2305", "bbrk": "\u23B5", "bbrktbrk": "\u23B6", "bcong": "\u224C", "bcy": "\u0431", "Bcy": "\u0411", "bdquo": "\u201E", "becaus": "\u2235", "because": "\u2235", "Because": "\u2235", "bemptyv": "\u29B0", "bepsi": "\u03F6", "bernou": "\u212C", "Bernoullis": "\u212C", "beta": "\u03B2", "Beta": "\u0392", "beth": "\u2136", "between": "\u226C", "bfr": "\u{1D51F}", "Bfr": "\u{1D505}", "bigcap": "\u22C2", "bigcirc": "\u25EF", "bigcup": "\u22C3", "bigodot": "\u2A00", "bigoplus": "\u2A01", "bigotimes": "\u2A02", "bigsqcup": "\u2A06", "bigstar": "\u2605", "bigtriangledown": "\u25BD", "bigtriangleup": "\u25B3", "biguplus": "\u2A04", "bigvee": "\u22C1", "bigwedge": "\u22C0", "bkarow": "\u290D", "blacklozenge": "\u29EB", "blacksquare": "\u25AA", "blacktriangle": "\u25B4", "blacktriangledown": "\u25BE", "blacktriangleleft": "\u25C2", "blacktriangleright": "\u25B8", "blank": "\u2423", "blk12": "\u2592", "blk14": "\u2591", "blk34": "\u2593", "block": "\u2588", "bne": "=\u20E5", "bnequiv": "\u2261\u20E5", "bnot": "\u2310", "bNot": "\u2AED", "bopf": "\u{1D553}", "Bopf": "\u{1D539}", "bot": "\u22A5", "bottom": "\u22A5", "bowtie": "\u22C8", "boxbox": "\u29C9", "boxdl": "\u2510", "boxdL": "\u2555", "boxDl": "\u2556", "boxDL": "\u2557", "boxdr": "\u250C", "boxdR": "\u2552", "boxDr": "\u2553", "boxDR": "\u2554", "boxh": "\u2500", "boxH": "\u2550", "boxhd": "\u252C", "boxhD": "\u2565", "boxHd": "\u2564", "boxHD": "\u2566", "boxhu": "\u2534", "boxhU": "\u2568", "boxHu": "\u2567", "boxHU": "\u2569", "boxminus": "\u229F", "boxplus": "\u229E", "boxtimes": "\u22A0", "boxul": "\u2518", "boxuL": "\u255B", "boxUl": "\u255C", "boxUL": "\u255D", "boxur": "\u2514", "boxuR": "\u2558", "boxUr": "\u2559", "boxUR": "\u255A", "boxv": "\u2502", "boxV": "\u2551", "boxvh": "\u253C", "boxvH": "\u256A", "boxVh": "\u256B", "boxVH": "\u256C", "boxvl": "\u2524", "boxvL": "\u2561", "boxVl": "\u2562", "boxVL": "\u2563", "boxvr": "\u251C", "boxvR": "\u255E", "boxVr": "\u255F", "boxVR": "\u2560", "bprime": "\u2035", "breve": "\u02D8", "Breve": "\u02D8", "brvbar": "\xA6", "bscr": "\u{1D4B7}", "Bscr": "\u212C", "bsemi": "\u204F", "bsim": "\u223D", "bsime": "\u22CD", "bsol": "\\", "bsolb": "\u29C5", "bsolhsub": "\u27C8", "bull": "\u2022", "bullet": "\u2022", "bump": "\u224E", "bumpe": "\u224F", "bumpE": "\u2AAE", "bumpeq": "\u224F", "Bumpeq": "\u224E", "cacute": "\u0107", "Cacute": "\u0106", "cap": "\u2229", "Cap": "\u22D2", "capand": "\u2A44", "capbrcup": "\u2A49", "capcap": "\u2A4B", "capcup": "\u2A47", "capdot": "\u2A40", "CapitalDifferentialD": "\u2145", "caps": "\u2229\uFE00", "caret": "\u2041", "caron": "\u02C7", "Cayleys": "\u212D", "ccaps": "\u2A4D", "ccaron": "\u010D", "Ccaron": "\u010C", "ccedil": "\xE7", "Ccedil": "\xC7", "ccirc": "\u0109", "Ccirc": "\u0108", "Cconint": "\u2230", "ccups": "\u2A4C", "ccupssm": "\u2A50", "cdot": "\u010B", "Cdot": "\u010A", "cedil": "\xB8", "Cedilla": "\xB8", "cemptyv": "\u29B2", "cent": "\xA2", "centerdot": "\xB7", "CenterDot": "\xB7", "cfr": "\u{1D520}", "Cfr": "\u212D", "chcy": "\u0447", "CHcy": "\u0427", "check": "\u2713", "checkmark": "\u2713", "chi": "\u03C7", "Chi": "\u03A7", "cir": "\u25CB", "circ": "\u02C6", "circeq": "\u2257", "circlearrowleft": "\u21BA", "circlearrowright": "\u21BB", "circledast": "\u229B", "circledcirc": "\u229A", "circleddash": "\u229D", "CircleDot": "\u2299", "circledR": "\xAE", "circledS": "\u24C8", "CircleMinus": "\u2296", "CirclePlus": "\u2295", "CircleTimes": "\u2297", "cire": "\u2257", "cirE": "\u29C3", "cirfnint": "\u2A10", "cirmid": "\u2AEF", "cirscir": "\u29C2", "ClockwiseContourIntegral": "\u2232", "CloseCurlyDoubleQuote": "\u201D", "CloseCurlyQuote": "\u2019", "clubs": "\u2663", "clubsuit": "\u2663", "colon": ":", "Colon": "\u2237", "colone": "\u2254", "Colone": "\u2A74", "coloneq": "\u2254", "comma": ",", "commat": "@", "comp": "\u2201", "compfn": "\u2218", "complement": "\u2201", "complexes": "\u2102", "cong": "\u2245", "congdot": "\u2A6D", "Congruent": "\u2261", "conint": "\u222E", "Conint": "\u222F", "ContourIntegral": "\u222E", "copf": "\u{1D554}", "Copf": "\u2102", "coprod": "\u2210", "Coproduct": "\u2210", "copy": "\xA9", "COPY": "\xA9", "copysr": "\u2117", "CounterClockwiseContourIntegral": "\u2233", "crarr": "\u21B5", "cross": "\u2717", "Cross": "\u2A2F", "cscr": "\u{1D4B8}", "Cscr": "\u{1D49E}", "csub": "\u2ACF", "csube": "\u2AD1", "csup": "\u2AD0", "csupe": "\u2AD2", "ctdot": "\u22EF", "cudarrl": "\u2938", "cudarrr": "\u2935", "cuepr": "\u22DE", "cuesc": "\u22DF", "cularr": "\u21B6", "cularrp": "\u293D", "cup": "\u222A", "Cup": "\u22D3", "cupbrcap": "\u2A48", "cupcap": "\u2A46", "CupCap": "\u224D", "cupcup": "\u2A4A", "cupdot": "\u228D", "cupor": "\u2A45", "cups": "\u222A\uFE00", "curarr": "\u21B7", "curarrm": "\u293C", "curlyeqprec": "\u22DE", "curlyeqsucc": "\u22DF", "curlyvee": "\u22CE", "curlywedge": "\u22CF", "curren": "\xA4", "curvearrowleft": "\u21B6", "curvearrowright": "\u21B7", "cuvee": "\u22CE", "cuwed": "\u22CF", "cwconint": "\u2232", "cwint": "\u2231", "cylcty": "\u232D", "dagger": "\u2020", "Dagger": "\u2021", "daleth": "\u2138", "darr": "\u2193", "dArr": "\u21D3", "Darr": "\u21A1", "dash": "\u2010", "dashv": "\u22A3", "Dashv": "\u2AE4", "dbkarow": "\u290F", "dblac": "\u02DD", "dcaron": "\u010F", "Dcaron": "\u010E", "dcy": "\u0434", "Dcy": "\u0414", "dd": "\u2146", "DD": "\u2145", "ddagger": "\u2021", "ddarr": "\u21CA", "DDotrahd": "\u2911", "ddotseq": "\u2A77", "deg": "\xB0", "Del": "\u2207", "delta": "\u03B4", "Delta": "\u0394", "demptyv": "\u29B1", "dfisht": "\u297F", "dfr": "\u{1D521}", "Dfr": "\u{1D507}", "dHar": "\u2965", "dharl": "\u21C3", "dharr": "\u21C2", "DiacriticalAcute": "\xB4", "DiacriticalDot": "\u02D9", "DiacriticalDoubleAcute": "\u02DD", "DiacriticalGrave": "`", "DiacriticalTilde": "\u02DC", "diam": "\u22C4", "diamond": "\u22C4", "Diamond": "\u22C4", "diamondsuit": "\u2666", "diams": "\u2666", "die": "\xA8", "DifferentialD": "\u2146", "digamma": "\u03DD", "disin": "\u22F2", "div": "\xF7", "divide": "\xF7", "divideontimes": "\u22C7", "divonx": "\u22C7", "djcy": "\u0452", "DJcy": "\u0402", "dlcorn": "\u231E", "dlcrop": "\u230D", "dollar": "$", "dopf": "\u{1D555}", "Dopf": "\u{1D53B}", "dot": "\u02D9", "Dot": "\xA8", "DotDot": "\u20DC", "doteq": "\u2250", "doteqdot": "\u2251", "DotEqual": "\u2250", "dotminus": "\u2238", "dotplus": "\u2214", "dotsquare": "\u22A1", "doublebarwedge": "\u2306", "DoubleContourIntegral": "\u222F", "DoubleDot": "\xA8", "DoubleDownArrow": "\u21D3", "DoubleLeftArrow": "\u21D0", "DoubleLeftRightArrow": "\u21D4", "DoubleLeftTee": "\u2AE4", "DoubleLongLeftArrow": "\u27F8", "DoubleLongLeftRightArrow": "\u27FA", "DoubleLongRightArrow": "\u27F9", "DoubleRightArrow": "\u21D2", "DoubleRightTee": "\u22A8", "DoubleUpArrow": "\u21D1", "DoubleUpDownArrow": "\u21D5", "DoubleVerticalBar": "\u2225", "downarrow": "\u2193", "Downarrow": "\u21D3", "DownArrow": "\u2193", "DownArrowBar": "\u2913", "DownArrowUpArrow": "\u21F5", "DownBreve": "\u0311", "downdownarrows": "\u21CA", "downharpoonleft": "\u21C3", "downharpoonright": "\u21C2", "DownLeftRightVector": "\u2950", "DownLeftTeeVector": "\u295E", "DownLeftVector": "\u21BD", "DownLeftVectorBar": "\u2956", "DownRightTeeVector": "\u295F", "DownRightVector": "\u21C1", "DownRightVectorBar": "\u2957", "DownTee": "\u22A4", "DownTeeArrow": "\u21A7", "drbkarow": "\u2910", "drcorn": "\u231F", "drcrop": "\u230C", "dscr": "\u{1D4B9}", "Dscr": "\u{1D49F}", "dscy": "\u0455", "DScy": "\u0405", "dsol": "\u29F6", "dstrok": "\u0111", "Dstrok": "\u0110", "dtdot": "\u22F1", "dtri": "\u25BF", "dtrif": "\u25BE", "duarr": "\u21F5", "duhar": "\u296F", "dwangle": "\u29A6", "dzcy": "\u045F", "DZcy": "\u040F", "dzigrarr": "\u27FF", "eacute": "\xE9", "Eacute": "\xC9", "easter": "\u2A6E", "ecaron": "\u011B", "Ecaron": "\u011A", "ecir": "\u2256", "ecirc": "\xEA", "Ecirc": "\xCA", "ecolon": "\u2255", "ecy": "\u044D", "Ecy": "\u042D", "eDDot": "\u2A77", "edot": "\u0117", "eDot": "\u2251", "Edot": "\u0116", "ee": "\u2147", "efDot": "\u2252", "efr": "\u{1D522}", "Efr": "\u{1D508}", "eg": "\u2A9A", "egrave": "\xE8", "Egrave": "\xC8", "egs": "\u2A96", "egsdot": "\u2A98", "el": "\u2A99", "Element": "\u2208", "elinters": "\u23E7", "ell": "\u2113", "els": "\u2A95", "elsdot": "\u2A97", "emacr": "\u0113", "Emacr": "\u0112", "empty": "\u2205", "emptyset": "\u2205", "EmptySmallSquare": "\u25FB", "emptyv": "\u2205", "EmptyVerySmallSquare": "\u25AB", "emsp": "\u2003", "emsp13": "\u2004", "emsp14": "\u2005", "eng": "\u014B", "ENG": "\u014A", "ensp": "\u2002", "eogon": "\u0119", "Eogon": "\u0118", "eopf": "\u{1D556}", "Eopf": "\u{1D53C}", "epar": "\u22D5", "eparsl": "\u29E3", "eplus": "\u2A71", "epsi": "\u03B5", "epsilon": "\u03B5", "Epsilon": "\u0395", "epsiv": "\u03F5", "eqcirc": "\u2256", "eqcolon": "\u2255", "eqsim": "\u2242", "eqslantgtr": "\u2A96", "eqslantless": "\u2A95", "Equal": "\u2A75", "equals": "=", "EqualTilde": "\u2242", "equest": "\u225F", "Equilibrium": "\u21CC", "equiv": "\u2261", "equivDD": "\u2A78", "eqvparsl": "\u29E5", "erarr": "\u2971", "erDot": "\u2253", "escr": "\u212F", "Escr": "\u2130", "esdot": "\u2250", "esim": "\u2242", "Esim": "\u2A73", "eta": "\u03B7", "Eta": "\u0397", "eth": "\xF0", "ETH": "\xD0", "euml": "\xEB", "Euml": "\xCB", "euro": "\u20AC", "excl": "!", "exist": "\u2203", "Exists": "\u2203", "expectation": "\u2130", "exponentiale": "\u2147", "ExponentialE": "\u2147", "fallingdotseq": "\u2252", "fcy": "\u0444", "Fcy": "\u0424", "female": "\u2640", "ffilig": "\uFB03", "fflig": "\uFB00", "ffllig": "\uFB04", "ffr": "\u{1D523}", "Ffr": "\u{1D509}", "filig": "\uFB01", "FilledSmallSquare": "\u25FC", "FilledVerySmallSquare": "\u25AA", "fjlig": "fj", "flat": "\u266D", "fllig": "\uFB02", "fltns": "\u25B1", "fnof": "\u0192", "fopf": "\u{1D557}", "Fopf": "\u{1D53D}", "forall": "\u2200", "ForAll": "\u2200", "fork": "\u22D4", "forkv": "\u2AD9", "Fouriertrf": "\u2131", "fpartint": "\u2A0D", "frac12": "\xBD", "frac13": "\u2153", "frac14": "\xBC", "frac15": "\u2155", "frac16": "\u2159", "frac18": "\u215B", "frac23": "\u2154", "frac25": "\u2156", "frac34": "\xBE", "frac35": "\u2157", "frac38": "\u215C", "frac45": "\u2158", "frac56": "\u215A", "frac58": "\u215D", "frac78": "\u215E", "frasl": "\u2044", "frown": "\u2322", "fscr": "\u{1D4BB}", "Fscr": "\u2131", "gacute": "\u01F5", "gamma": "\u03B3", "Gamma": "\u0393", "gammad": "\u03DD", "Gammad": "\u03DC", "gap": "\u2A86", "gbreve": "\u011F", "Gbreve": "\u011E", "Gcedil": "\u0122", "gcirc": "\u011D", "Gcirc": "\u011C", "gcy": "\u0433", "Gcy": "\u0413", "gdot": "\u0121", "Gdot": "\u0120", "ge": "\u2265", "gE": "\u2267", "gel": "\u22DB", "gEl": "\u2A8C", "geq": "\u2265", "geqq": "\u2267", "geqslant": "\u2A7E", "ges": "\u2A7E", "gescc": "\u2AA9", "gesdot": "\u2A80", "gesdoto": "\u2A82", "gesdotol": "\u2A84", "gesl": "\u22DB\uFE00", "gesles": "\u2A94", "gfr": "\u{1D524}", "Gfr": "\u{1D50A}", "gg": "\u226B", "Gg": "\u22D9", "ggg": "\u22D9", "gimel": "\u2137", "gjcy": "\u0453", "GJcy": "\u0403", "gl": "\u2277", "gla": "\u2AA5", "glE": "\u2A92", "glj": "\u2AA4", "gnap": "\u2A8A", "gnapprox": "\u2A8A", "gne": "\u2A88", "gnE": "\u2269", "gneq": "\u2A88", "gneqq": "\u2269", "gnsim": "\u22E7", "gopf": "\u{1D558}", "Gopf": "\u{1D53E}", "grave": "`", "GreaterEqual": "\u2265", "GreaterEqualLess": "\u22DB", "GreaterFullEqual": "\u2267", "GreaterGreater": "\u2AA2", "GreaterLess": "\u2277", "GreaterSlantEqual": "\u2A7E", "GreaterTilde": "\u2273", "gscr": "\u210A", "Gscr": "\u{1D4A2}", "gsim": "\u2273", "gsime": "\u2A8E", "gsiml": "\u2A90", "gt": ">", "Gt": "\u226B", "GT": ">", "gtcc": "\u2AA7", "gtcir": "\u2A7A", "gtdot": "\u22D7", "gtlPar": "\u2995", "gtquest": "\u2A7C", "gtrapprox": "\u2A86", "gtrarr": "\u2978", "gtrdot": "\u22D7", "gtreqless": "\u22DB", "gtreqqless": "\u2A8C", "gtrless": "\u2277", "gtrsim": "\u2273", "gvertneqq": "\u2269\uFE00", "gvnE": "\u2269\uFE00", "Hacek": "\u02C7", "hairsp": "\u200A", "half": "\xBD", "hamilt": "\u210B", "hardcy": "\u044A", "HARDcy": "\u042A", "harr": "\u2194", "hArr": "\u21D4", "harrcir": "\u2948", "harrw": "\u21AD", "Hat": "^", "hbar": "\u210F", "hcirc": "\u0125", "Hcirc": "\u0124", "hearts": "\u2665", "heartsuit": "\u2665", "hellip": "\u2026", "hercon": "\u22B9", "hfr": "\u{1D525}", "Hfr": "\u210C", "HilbertSpace": "\u210B", "hksearow": "\u2925", "hkswarow": "\u2926", "hoarr": "\u21FF", "homtht": "\u223B", "hookleftarrow": "\u21A9", "hookrightarrow": "\u21AA", "hopf": "\u{1D559}", "Hopf": "\u210D", "horbar": "\u2015", "HorizontalLine": "\u2500", "hscr": "\u{1D4BD}", "Hscr": "\u210B", "hslash": "\u210F", "hstrok": "\u0127", "Hstrok": "\u0126", "HumpDownHump": "\u224E", "HumpEqual": "\u224F", "hybull": "\u2043", "hyphen": "\u2010", "iacute": "\xED", "Iacute": "\xCD", "ic": "\u2063", "icirc": "\xEE", "Icirc": "\xCE", "icy": "\u0438", "Icy": "\u0418", "Idot": "\u0130", "iecy": "\u0435", "IEcy": "\u0415", "iexcl": "\xA1", "iff": "\u21D4", "ifr": "\u{1D526}", "Ifr": "\u2111", "igrave": "\xEC", "Igrave": "\xCC", "ii": "\u2148", "iiiint": "\u2A0C", "iiint": "\u222D", "iinfin": "\u29DC", "iiota": "\u2129", "ijlig": "\u0133", "IJlig": "\u0132", "Im": "\u2111", "imacr": "\u012B", "Imacr": "\u012A", "image": "\u2111", "ImaginaryI": "\u2148", "imagline": "\u2110", "imagpart": "\u2111", "imath": "\u0131", "imof": "\u22B7", "imped": "\u01B5", "Implies": "\u21D2", "in": "\u2208", "incare": "\u2105", "infin": "\u221E", "infintie": "\u29DD", "inodot": "\u0131", "int": "\u222B", "Int": "\u222C", "intcal": "\u22BA", "integers": "\u2124", "Integral": "\u222B", "intercal": "\u22BA", "Intersection": "\u22C2", "intlarhk": "\u2A17", "intprod": "\u2A3C", "InvisibleComma": "\u2063", "InvisibleTimes": "\u2062", "iocy": "\u0451", "IOcy": "\u0401", "iogon": "\u012F", "Iogon": "\u012E", "iopf": "\u{1D55A}", "Iopf": "\u{1D540}", "iota": "\u03B9", "Iota": "\u0399", "iprod": "\u2A3C", "iquest": "\xBF", "iscr": "\u{1D4BE}", "Iscr": "\u2110", "isin": "\u2208", "isindot": "\u22F5", "isinE": "\u22F9", "isins": "\u22F4", "isinsv": "\u22F3", "isinv": "\u2208", "it": "\u2062", "itilde": "\u0129", "Itilde": "\u0128", "iukcy": "\u0456", "Iukcy": "\u0406", "iuml": "\xEF", "Iuml": "\xCF", "jcirc": "\u0135", "Jcirc": "\u0134", "jcy": "\u0439", "Jcy": "\u0419", "jfr": "\u{1D527}", "Jfr": "\u{1D50D}", "jmath": "\u0237", "jopf": "\u{1D55B}", "Jopf": "\u{1D541}", "jscr": "\u{1D4BF}", "Jscr": "\u{1D4A5}", "jsercy": "\u0458", "Jsercy": "\u0408", "jukcy": "\u0454", "Jukcy": "\u0404", "kappa": "\u03BA", "Kappa": "\u039A", "kappav": "\u03F0", "kcedil": "\u0137", "Kcedil": "\u0136", "kcy": "\u043A", "Kcy": "\u041A", "kfr": "\u{1D528}", "Kfr": "\u{1D50E}", "kgreen": "\u0138", "khcy": "\u0445", "KHcy": "\u0425", "kjcy": "\u045C", "KJcy": "\u040C", "kopf": "\u{1D55C}", "Kopf": "\u{1D542}", "kscr": "\u{1D4C0}", "Kscr": "\u{1D4A6}", "lAarr": "\u21DA", "lacute": "\u013A", "Lacute": "\u0139", "laemptyv": "\u29B4", "lagran": "\u2112", "lambda": "\u03BB", "Lambda": "\u039B", "lang": "\u27E8", "Lang": "\u27EA", "langd": "\u2991", "langle": "\u27E8", "lap": "\u2A85", "Laplacetrf": "\u2112", "laquo": "\xAB", "larr": "\u2190", "lArr": "\u21D0", "Larr": "\u219E", "larrb": "\u21E4", "larrbfs": "\u291F", "larrfs": "\u291D", "larrhk": "\u21A9", "larrlp": "\u21AB", "larrpl": "\u2939", "larrsim": "\u2973", "larrtl": "\u21A2", "lat": "\u2AAB", "latail": "\u2919", "lAtail": "\u291B", "late": "\u2AAD", "lates": "\u2AAD\uFE00", "lbarr": "\u290C", "lBarr": "\u290E", "lbbrk": "\u2772", "lbrace": "{", "lbrack": "[", "lbrke": "\u298B", "lbrksld": "\u298F", "lbrkslu": "\u298D", "lcaron": "\u013E", "Lcaron": "\u013D", "lcedil": "\u013C", "Lcedil": "\u013B", "lceil": "\u2308", "lcub": "{", "lcy": "\u043B", "Lcy": "\u041B", "ldca": "\u2936", "ldquo": "\u201C", "ldquor": "\u201E", "ldrdhar": "\u2967", "ldrushar": "\u294B", "ldsh": "\u21B2", "le": "\u2264", "lE": "\u2266", "LeftAngleBracket": "\u27E8", "leftarrow": "\u2190", "Leftarrow": "\u21D0", "LeftArrow": "\u2190", "LeftArrowBar": "\u21E4", "LeftArrowRightArrow": "\u21C6", "leftarrowtail": "\u21A2", "LeftCeiling": "\u2308", "LeftDoubleBracket": "\u27E6", "LeftDownTeeVector": "\u2961", "LeftDownVector": "\u21C3", "LeftDownVectorBar": "\u2959", "LeftFloor": "\u230A", "leftharpoondown": "\u21BD", "leftharpoonup": "\u21BC", "leftleftarrows": "\u21C7", "leftrightarrow": "\u2194", "Leftrightarrow": "\u21D4", "LeftRightArrow": "\u2194", "leftrightarrows": "\u21C6", "leftrightharpoons": "\u21CB", "leftrightsquigarrow": "\u21AD", "LeftRightVector": "\u294E", "LeftTee": "\u22A3", "LeftTeeArrow": "\u21A4", "LeftTeeVector": "\u295A", "leftthreetimes": "\u22CB", "LeftTriangle": "\u22B2", "LeftTriangleBar": "\u29CF", "LeftTriangleEqual": "\u22B4", "LeftUpDownVector": "\u2951", "LeftUpTeeVector": "\u2960", "LeftUpVector": "\u21BF", "LeftUpVectorBar": "\u2958", "LeftVector": "\u21BC", "LeftVectorBar": "\u2952", "leg": "\u22DA", "lEg": "\u2A8B", "leq": "\u2264", "leqq": "\u2266", "leqslant": "\u2A7D", "les": "\u2A7D", "lescc": "\u2AA8", "lesdot": "\u2A7F", "lesdoto": "\u2A81", "lesdotor": "\u2A83", "lesg": "\u22DA\uFE00", "lesges": "\u2A93", "lessapprox": "\u2A85", "lessdot": "\u22D6", "lesseqgtr": "\u22DA", "lesseqqgtr": "\u2A8B", "LessEqualGreater": "\u22DA", "LessFullEqual": "\u2266", "LessGreater": "\u2276", "lessgtr": "\u2276", "LessLess": "\u2AA1", "lesssim": "\u2272", "LessSlantEqual": "\u2A7D", "LessTilde": "\u2272", "lfisht": "\u297C", "lfloor": "\u230A", "lfr": "\u{1D529}", "Lfr": "\u{1D50F}", "lg": "\u2276", "lgE": "\u2A91", "lHar": "\u2962", "lhard": "\u21BD", "lharu": "\u21BC", "lharul": "\u296A", "lhblk": "\u2584", "ljcy": "\u0459", "LJcy": "\u0409", "ll": "\u226A", "Ll": "\u22D8", "llarr": "\u21C7", "llcorner": "\u231E", "Lleftarrow": "\u21DA", "llhard": "\u296B", "lltri": "\u25FA", "lmidot": "\u0140", "Lmidot": "\u013F", "lmoust": "\u23B0", "lmoustache": "\u23B0", "lnap": "\u2A89", "lnapprox": "\u2A89", "lne": "\u2A87", "lnE": "\u2268", "lneq": "\u2A87", "lneqq": "\u2268", "lnsim": "\u22E6", "loang": "\u27EC", "loarr": "\u21FD", "lobrk": "\u27E6", "longleftarrow": "\u27F5", "Longleftarrow": "\u27F8", "LongLeftArrow": "\u27F5", "longleftrightarrow": "\u27F7", "Longleftrightarrow": "\u27FA", "LongLeftRightArrow": "\u27F7", "longmapsto": "\u27FC", "longrightarrow": "\u27F6", "Longrightarrow": "\u27F9", "LongRightArrow": "\u27F6", "looparrowleft": "\u21AB", "looparrowright": "\u21AC", "lopar": "\u2985", "lopf": "\u{1D55D}", "Lopf": "\u{1D543}", "loplus": "\u2A2D", "lotimes": "\u2A34", "lowast": "\u2217", "lowbar": "_", "LowerLeftArrow": "\u2199", "LowerRightArrow": "\u2198", "loz": "\u25CA", "lozenge": "\u25CA", "lozf": "\u29EB", "lpar": "(", "lparlt": "\u2993", "lrarr": "\u21C6", "lrcorner": "\u231F", "lrhar": "\u21CB", "lrhard": "\u296D", "lrm": "\u200E", "lrtri": "\u22BF", "lsaquo": "\u2039", "lscr": "\u{1D4C1}", "Lscr": "\u2112", "lsh": "\u21B0", "Lsh": "\u21B0", "lsim": "\u2272", "lsime": "\u2A8D", "lsimg": "\u2A8F", "lsqb": "[", "lsquo": "\u2018", "lsquor": "\u201A", "lstrok": "\u0142", "Lstrok": "\u0141", "lt": "<", "Lt": "\u226A", "LT": "<", "ltcc": "\u2AA6", "ltcir": "\u2A79", "ltdot": "\u22D6", "lthree": "\u22CB", "ltimes": "\u22C9", "ltlarr": "\u2976", "ltquest": "\u2A7B", "ltri": "\u25C3", "ltrie": "\u22B4", "ltrif": "\u25C2", "ltrPar": "\u2996", "lurdshar": "\u294A", "luruhar": "\u2966", "lvertneqq": "\u2268\uFE00", "lvnE": "\u2268\uFE00", "macr": "\xAF", "male": "\u2642", "malt": "\u2720", "maltese": "\u2720", "map": "\u21A6", "Map": "\u2905", "mapsto": "\u21A6", "mapstodown": "\u21A7", "mapstoleft": "\u21A4", "mapstoup": "\u21A5", "marker": "\u25AE", "mcomma": "\u2A29", "mcy": "\u043C", "Mcy": "\u041C", "mdash": "\u2014", "mDDot": "\u223A", "measuredangle": "\u2221", "MediumSpace": "\u205F", "Mellintrf": "\u2133", "mfr": "\u{1D52A}", "Mfr": "\u{1D510}", "mho": "\u2127", "micro": "\xB5", "mid": "\u2223", "midast": "*", "midcir": "\u2AF0", "middot": "\xB7", "minus": "\u2212", "minusb": "\u229F", "minusd": "\u2238", "minusdu": "\u2A2A", "MinusPlus": "\u2213", "mlcp": "\u2ADB", "mldr": "\u2026", "mnplus": "\u2213", "models": "\u22A7", "mopf": "\u{1D55E}", "Mopf": "\u{1D544}", "mp": "\u2213", "mscr": "\u{1D4C2}", "Mscr": "\u2133", "mstpos": "\u223E", "mu": "\u03BC", "Mu": "\u039C", "multimap": "\u22B8", "mumap": "\u22B8", "nabla": "\u2207", "nacute": "\u0144", "Nacute": "\u0143", "nang": "\u2220\u20D2", "nap": "\u2249", "napE": "\u2A70\u0338", "napid": "\u224B\u0338", "napos": "\u0149", "napprox": "\u2249", "natur": "\u266E", "natural": "\u266E", "naturals": "\u2115", "nbsp": "\xA0", "nbump": "\u224E\u0338", "nbumpe": "\u224F\u0338", "ncap": "\u2A43", "ncaron": "\u0148", "Ncaron": "\u0147", "ncedil": "\u0146", "Ncedil": "\u0145", "ncong": "\u2247", "ncongdot": "\u2A6D\u0338", "ncup": "\u2A42", "ncy": "\u043D", "Ncy": "\u041D", "ndash": "\u2013", "ne": "\u2260", "nearhk": "\u2924", "nearr": "\u2197", "neArr": "\u21D7", "nearrow": "\u2197", "nedot": "\u2250\u0338", "NegativeMediumSpace": "\u200B", "NegativeThickSpace": "\u200B", "NegativeThinSpace": "\u200B", "NegativeVeryThinSpace": "\u200B", "nequiv": "\u2262", "nesear": "\u2928", "nesim": "\u2242\u0338", "NestedGreaterGreater": "\u226B", "NestedLessLess": "\u226A", "NewLine": "\n", "nexist": "\u2204", "nexists": "\u2204", "nfr": "\u{1D52B}", "Nfr": "\u{1D511}", "nge": "\u2271", "ngE": "\u2267\u0338", "ngeq": "\u2271", "ngeqq": "\u2267\u0338", "ngeqslant": "\u2A7E\u0338", "nges": "\u2A7E\u0338", "nGg": "\u22D9\u0338", "ngsim": "\u2275", "ngt": "\u226F", "nGt": "\u226B\u20D2", "ngtr": "\u226F", "nGtv": "\u226B\u0338", "nharr": "\u21AE", "nhArr": "\u21CE", "nhpar": "\u2AF2", "ni": "\u220B", "nis": "\u22FC", "nisd": "\u22FA", "niv": "\u220B", "njcy": "\u045A", "NJcy": "\u040A", "nlarr": "\u219A", "nlArr": "\u21CD", "nldr": "\u2025", "nle": "\u2270", "nlE": "\u2266\u0338", "nleftarrow": "\u219A", "nLeftarrow": "\u21CD", "nleftrightarrow": "\u21AE", "nLeftrightarrow": "\u21CE", "nleq": "\u2270", "nleqq": "\u2266\u0338", "nleqslant": "\u2A7D\u0338", "nles": "\u2A7D\u0338", "nless": "\u226E", "nLl": "\u22D8\u0338", "nlsim": "\u2274", "nlt": "\u226E", "nLt": "\u226A\u20D2", "nltri": "\u22EA", "nltrie": "\u22EC", "nLtv": "\u226A\u0338", "nmid": "\u2224", "NoBreak": "\u2060", "NonBreakingSpace": "\xA0", "nopf": "\u{1D55F}", "Nopf": "\u2115", "not": "\xAC", "Not": "\u2AEC", "NotCongruent": "\u2262", "NotCupCap": "\u226D", "NotDoubleVerticalBar": "\u2226", "NotElement": "\u2209", "NotEqual": "\u2260", "NotEqualTilde": "\u2242\u0338", "NotExists": "\u2204", "NotGreater": "\u226F", "NotGreaterEqual": "\u2271", "NotGreaterFullEqual": "\u2267\u0338", "NotGreaterGreater": "\u226B\u0338", "NotGreaterLess": "\u2279", "NotGreaterSlantEqual": "\u2A7E\u0338", "NotGreaterTilde": "\u2275", "NotHumpDownHump": "\u224E\u0338", "NotHumpEqual": "\u224F\u0338", "notin": "\u2209", "notindot": "\u22F5\u0338", "notinE": "\u22F9\u0338", "notinva": "\u2209", "notinvb": "\u22F7", "notinvc": "\u22F6", "NotLeftTriangle": "\u22EA", "NotLeftTriangleBar": "\u29CF\u0338", "NotLeftTriangleEqual": "\u22EC", "NotLess": "\u226E", "NotLessEqual": "\u2270", "NotLessGreater": "\u2278", "NotLessLess": "\u226A\u0338", "NotLessSlantEqual": "\u2A7D\u0338", "NotLessTilde": "\u2274", "NotNestedGreaterGreater": "\u2AA2\u0338", "NotNestedLessLess": "\u2AA1\u0338", "notni": "\u220C", "notniva": "\u220C", "notnivb": "\u22FE", "notnivc": "\u22FD", "NotPrecedes": "\u2280", "NotPrecedesEqual": "\u2AAF\u0338", "NotPrecedesSlantEqual": "\u22E0", "NotReverseElement": "\u220C", "NotRightTriangle": "\u22EB", "NotRightTriangleBar": "\u29D0\u0338", "NotRightTriangleEqual": "\u22ED", "NotSquareSubset": "\u228F\u0338", "NotSquareSubsetEqual": "\u22E2", "NotSquareSuperset": "\u2290\u0338", "NotSquareSupersetEqual": "\u22E3", "NotSubset": "\u2282\u20D2", "NotSubsetEqual": "\u2288", "NotSucceeds": "\u2281", "NotSucceedsEqual": "\u2AB0\u0338", "NotSucceedsSlantEqual": "\u22E1", "NotSucceedsTilde": "\u227F\u0338", "NotSuperset": "\u2283\u20D2", "NotSupersetEqual": "\u2289", "NotTilde": "\u2241", "NotTildeEqual": "\u2244", "NotTildeFullEqual": "\u2247", "NotTildeTilde": "\u2249", "NotVerticalBar": "\u2224", "npar": "\u2226", "nparallel": "\u2226", "nparsl": "\u2AFD\u20E5", "npart": "\u2202\u0338", "npolint": "\u2A14", "npr": "\u2280", "nprcue": "\u22E0", "npre": "\u2AAF\u0338", "nprec": "\u2280", "npreceq": "\u2AAF\u0338", "nrarr": "\u219B", "nrArr": "\u21CF", "nrarrc": "\u2933\u0338", "nrarrw": "\u219D\u0338", "nrightarrow": "\u219B", "nRightarrow": "\u21CF", "nrtri": "\u22EB", "nrtrie": "\u22ED", "nsc": "\u2281", "nsccue": "\u22E1", "nsce": "\u2AB0\u0338", "nscr": "\u{1D4C3}", "Nscr": "\u{1D4A9}", "nshortmid": "\u2224", "nshortparallel": "\u2226", "nsim": "\u2241", "nsime": "\u2244", "nsimeq": "\u2244", "nsmid": "\u2224", "nspar": "\u2226", "nsqsube": "\u22E2", "nsqsupe": "\u22E3", "nsub": "\u2284", "nsube": "\u2288", "nsubE": "\u2AC5\u0338", "nsubset": "\u2282\u20D2", "nsubseteq": "\u2288", "nsubseteqq": "\u2AC5\u0338", "nsucc": "\u2281", "nsucceq": "\u2AB0\u0338", "nsup": "\u2285", "nsupe": "\u2289", "nsupE": "\u2AC6\u0338", "nsupset": "\u2283\u20D2", "nsupseteq": "\u2289", "nsupseteqq": "\u2AC6\u0338", "ntgl": "\u2279", "ntilde": "\xF1", "Ntilde": "\xD1", "ntlg": "\u2278", "ntriangleleft": "\u22EA", "ntrianglelefteq": "\u22EC", "ntriangleright": "\u22EB", "ntrianglerighteq": "\u22ED", "nu": "\u03BD", "Nu": "\u039D", "num": "#", "numero": "\u2116", "numsp": "\u2007", "nvap": "\u224D\u20D2", "nvdash": "\u22AC", "nvDash": "\u22AD", "nVdash": "\u22AE", "nVDash": "\u22AF", "nvge": "\u2265\u20D2", "nvgt": ">\u20D2", "nvHarr": "\u2904", "nvinfin": "\u29DE", "nvlArr": "\u2902", "nvle": "\u2264\u20D2", "nvlt": "<\u20D2", "nvltrie": "\u22B4\u20D2", "nvrArr": "\u2903", "nvrtrie": "\u22B5\u20D2", "nvsim": "\u223C\u20D2", "nwarhk": "\u2923", "nwarr": "\u2196", "nwArr": "\u21D6", "nwarrow": "\u2196", "nwnear": "\u2927", "oacute": "\xF3", "Oacute": "\xD3", "oast": "\u229B", "ocir": "\u229A", "ocirc": "\xF4", "Ocirc": "\xD4", "ocy": "\u043E", "Ocy": "\u041E", "odash": "\u229D", "odblac": "\u0151", "Odblac": "\u0150", "odiv": "\u2A38", "odot": "\u2299", "odsold": "\u29BC", "oelig": "\u0153", "OElig": "\u0152", "ofcir": "\u29BF", "ofr": "\u{1D52C}", "Ofr": "\u{1D512}", "ogon": "\u02DB", "ograve": "\xF2", "Ograve": "\xD2", "ogt": "\u29C1", "ohbar": "\u29B5", "ohm": "\u03A9", "oint": "\u222E", "olarr": "\u21BA", "olcir": "\u29BE", "olcross": "\u29BB", "oline": "\u203E", "olt": "\u29C0", "omacr": "\u014D", "Omacr": "\u014C", "omega": "\u03C9", "Omega": "\u03A9", "omicron": "\u03BF", "Omicron": "\u039F", "omid": "\u29B6", "ominus": "\u2296", "oopf": "\u{1D560}", "Oopf": "\u{1D546}", "opar": "\u29B7", "OpenCurlyDoubleQuote": "\u201C", "OpenCurlyQuote": "\u2018", "operp": "\u29B9", "oplus": "\u2295", "or": "\u2228", "Or": "\u2A54", "orarr": "\u21BB", "ord": "\u2A5D", "order": "\u2134", "orderof": "\u2134", "ordf": "\xAA", "ordm": "\xBA", "origof": "\u22B6", "oror": "\u2A56", "orslope": "\u2A57", "orv": "\u2A5B", "oS": "\u24C8", "oscr": "\u2134", "Oscr": "\u{1D4AA}", "oslash": "\xF8", "Oslash": "\xD8", "osol": "\u2298", "otilde": "\xF5", "Otilde": "\xD5", "otimes": "\u2297", "Otimes": "\u2A37", "otimesas": "\u2A36", "ouml": "\xF6", "Ouml": "\xD6", "ovbar": "\u233D", "OverBar": "\u203E", "OverBrace": "\u23DE", "OverBracket": "\u23B4", "OverParenthesis": "\u23DC", "par": "\u2225", "para": "\xB6", "parallel": "\u2225", "parsim": "\u2AF3", "parsl": "\u2AFD", "part": "\u2202", "PartialD": "\u2202", "pcy": "\u043F", "Pcy": "\u041F", "percnt": "%", "period": ".", "permil": "\u2030", "perp": "\u22A5", "pertenk": "\u2031", "pfr": "\u{1D52D}", "Pfr": "\u{1D513}", "phi": "\u03C6", "Phi": "\u03A6", "phiv": "\u03D5", "phmmat": "\u2133", "phone": "\u260E", "pi": "\u03C0", "Pi": "\u03A0", "pitchfork": "\u22D4", "piv": "\u03D6", "planck": "\u210F", "planckh": "\u210E", "plankv": "\u210F", "plus": "+", "plusacir": "\u2A23", "plusb": "\u229E", "pluscir": "\u2A22", "plusdo": "\u2214", "plusdu": "\u2A25", "pluse": "\u2A72", "PlusMinus": "\xB1", "plusmn": "\xB1", "plussim": "\u2A26", "plustwo": "\u2A27", "pm": "\xB1", "Poincareplane": "\u210C", "pointint": "\u2A15", "popf": "\u{1D561}", "Popf": "\u2119", "pound": "\xA3", "pr": "\u227A", "Pr": "\u2ABB", "prap": "\u2AB7", "prcue": "\u227C", "pre": "\u2AAF", "prE": "\u2AB3", "prec": "\u227A", "precapprox": "\u2AB7", "preccurlyeq": "\u227C", "Precedes": "\u227A", "PrecedesEqual": "\u2AAF", "PrecedesSlantEqual": "\u227C", "PrecedesTilde": "\u227E", "preceq": "\u2AAF", "precnapprox": "\u2AB9", "precneqq": "\u2AB5", "precnsim": "\u22E8", "precsim": "\u227E", "prime": "\u2032", "Prime": "\u2033", "primes": "\u2119", "prnap": "\u2AB9", "prnE": "\u2AB5", "prnsim": "\u22E8", "prod": "\u220F", "Product": "\u220F", "profalar": "\u232E", "profline": "\u2312", "profsurf": "\u2313", "prop": "\u221D", "Proportion": "\u2237", "Proportional": "\u221D", "propto": "\u221D", "prsim": "\u227E", "prurel": "\u22B0", "pscr": "\u{1D4C5}", "Pscr": "\u{1D4AB}", "psi": "\u03C8", "Psi": "\u03A8", "puncsp": "\u2008", "qfr": "\u{1D52E}", "Qfr": "\u{1D514}", "qint": "\u2A0C", "qopf": "\u{1D562}", "Qopf": "\u211A", "qprime": "\u2057", "qscr": "\u{1D4C6}", "Qscr": "\u{1D4AC}", "quaternions": "\u210D", "quatint": "\u2A16", "quest": "?", "questeq": "\u225F", "quot": '"', "QUOT": '"', "rAarr": "\u21DB", "race": "\u223D\u0331", "racute": "\u0155", "Racute": "\u0154", "radic": "\u221A", "raemptyv": "\u29B3", "rang": "\u27E9", "Rang": "\u27EB", "rangd": "\u2992", "range": "\u29A5", "rangle": "\u27E9", "raquo": "\xBB", "rarr": "\u2192", "rArr": "\u21D2", "Rarr": "\u21A0", "rarrap": "\u2975", "rarrb": "\u21E5", "rarrbfs": "\u2920", "rarrc": "\u2933", "rarrfs": "\u291E", "rarrhk": "\u21AA", "rarrlp": "\u21AC", "rarrpl": "\u2945", "rarrsim": "\u2974", "rarrtl": "\u21A3", "Rarrtl": "\u2916", "rarrw": "\u219D", "ratail": "\u291A", "rAtail": "\u291C", "ratio": "\u2236", "rationals": "\u211A", "rbarr": "\u290D", "rBarr": "\u290F", "RBarr": "\u2910", "rbbrk": "\u2773", "rbrace": "}", "rbrack": "]", "rbrke": "\u298C", "rbrksld": "\u298E", "rbrkslu": "\u2990", "rcaron": "\u0159", "Rcaron": "\u0158", "rcedil": "\u0157", "Rcedil": "\u0156", "rceil": "\u2309", "rcub": "}", "rcy": "\u0440", "Rcy": "\u0420", "rdca": "\u2937", "rdldhar": "\u2969", "rdquo": "\u201D", "rdquor": "\u201D", "rdsh": "\u21B3", "Re": "\u211C", "real": "\u211C", "realine": "\u211B", "realpart": "\u211C", "reals": "\u211D", "rect": "\u25AD", "reg": "\xAE", "REG": "\xAE", "ReverseElement": "\u220B", "ReverseEquilibrium": "\u21CB", "ReverseUpEquilibrium": "\u296F", "rfisht": "\u297D", "rfloor": "\u230B", "rfr": "\u{1D52F}", "Rfr": "\u211C", "rHar": "\u2964", "rhard": "\u21C1", "rharu": "\u21C0", "rharul": "\u296C", "rho": "\u03C1", "Rho": "\u03A1", "rhov": "\u03F1", "RightAngleBracket": "\u27E9", "rightarrow": "\u2192", "Rightarrow": "\u21D2", "RightArrow": "\u2192", "RightArrowBar": "\u21E5", "RightArrowLeftArrow": "\u21C4", "rightarrowtail": "\u21A3", "RightCeiling": "\u2309", "RightDoubleBracket": "\u27E7", "RightDownTeeVector": "\u295D", "RightDownVector": "\u21C2", "RightDownVectorBar": "\u2955", "RightFloor": "\u230B", "rightharpoondown": "\u21C1", "rightharpoonup": "\u21C0", "rightleftarrows": "\u21C4", "rightleftharpoons": "\u21CC", "rightrightarrows": "\u21C9", "rightsquigarrow": "\u219D", "RightTee": "\u22A2", "RightTeeArrow": "\u21A6", "RightTeeVector": "\u295B", "rightthreetimes": "\u22CC", "RightTriangle": "\u22B3", "RightTriangleBar": "\u29D0", "RightTriangleEqual": "\u22B5", "RightUpDownVector": "\u294F", "RightUpTeeVector": "\u295C", "RightUpVector": "\u21BE", "RightUpVectorBar": "\u2954", "RightVector": "\u21C0", "RightVectorBar": "\u2953", "ring": "\u02DA", "risingdotseq": "\u2253", "rlarr": "\u21C4", "rlhar": "\u21CC", "rlm": "\u200F", "rmoust": "\u23B1", "rmoustache": "\u23B1", "rnmid": "\u2AEE", "roang": "\u27ED", "roarr": "\u21FE", "robrk": "\u27E7", "ropar": "\u2986", "ropf": "\u{1D563}", "Ropf": "\u211D", "roplus": "\u2A2E", "rotimes": "\u2A35", "RoundImplies": "\u2970", "rpar": ")", "rpargt": "\u2994", "rppolint": "\u2A12", "rrarr": "\u21C9", "Rrightarrow": "\u21DB", "rsaquo": "\u203A", "rscr": "\u{1D4C7}", "Rscr": "\u211B", "rsh": "\u21B1", "Rsh": "\u21B1", "rsqb": "]", "rsquo": "\u2019", "rsquor": "\u2019", "rthree": "\u22CC", "rtimes": "\u22CA", "rtri": "\u25B9", "rtrie": "\u22B5", "rtrif": "\u25B8", "rtriltri": "\u29CE", "RuleDelayed": "\u29F4", "ruluhar": "\u2968", "rx": "\u211E", "sacute": "\u015B", "Sacute": "\u015A", "sbquo": "\u201A", "sc": "\u227B", "Sc": "\u2ABC", "scap": "\u2AB8", "scaron": "\u0161", "Scaron": "\u0160", "sccue": "\u227D", "sce": "\u2AB0", "scE": "\u2AB4", "scedil": "\u015F", "Scedil": "\u015E", "scirc": "\u015D", "Scirc": "\u015C", "scnap": "\u2ABA", "scnE": "\u2AB6", "scnsim": "\u22E9", "scpolint": "\u2A13", "scsim": "\u227F", "scy": "\u0441", "Scy": "\u0421", "sdot": "\u22C5", "sdotb": "\u22A1", "sdote": "\u2A66", "searhk": "\u2925", "searr": "\u2198", "seArr": "\u21D8", "searrow": "\u2198", "sect": "\xA7", "semi": ";", "seswar": "\u2929", "setminus": "\u2216", "setmn": "\u2216", "sext": "\u2736", "sfr": "\u{1D530}", "Sfr": "\u{1D516}", "sfrown": "\u2322", "sharp": "\u266F", "shchcy": "\u0449", "SHCHcy": "\u0429", "shcy": "\u0448", "SHcy": "\u0428", "ShortDownArrow": "\u2193", "ShortLeftArrow": "\u2190", "shortmid": "\u2223", "shortparallel": "\u2225", "ShortRightArrow": "\u2192", "ShortUpArrow": "\u2191", "shy": "\xAD", "sigma": "\u03C3", "Sigma": "\u03A3", "sigmaf": "\u03C2", "sigmav": "\u03C2", "sim": "\u223C", "simdot": "\u2A6A", "sime": "\u2243", "simeq": "\u2243", "simg": "\u2A9E", "simgE": "\u2AA0", "siml": "\u2A9D", "simlE": "\u2A9F", "simne": "\u2246", "simplus": "\u2A24", "simrarr": "\u2972", "slarr": "\u2190", "SmallCircle": "\u2218", "smallsetminus": "\u2216", "smashp": "\u2A33", "smeparsl": "\u29E4", "smid": "\u2223", "smile": "\u2323", "smt": "\u2AAA", "smte": "\u2AAC", "smtes": "\u2AAC\uFE00", "softcy": "\u044C", "SOFTcy": "\u042C", "sol": "/", "solb": "\u29C4", "solbar": "\u233F", "sopf": "\u{1D564}", "Sopf": "\u{1D54A}", "spades": "\u2660", "spadesuit": "\u2660", "spar": "\u2225", "sqcap": "\u2293", "sqcaps": "\u2293\uFE00", "sqcup": "\u2294", "sqcups": "\u2294\uFE00", "Sqrt": "\u221A", "sqsub": "\u228F", "sqsube": "\u2291", "sqsubset": "\u228F", "sqsubseteq": "\u2291", "sqsup": "\u2290", "sqsupe": "\u2292", "sqsupset": "\u2290", "sqsupseteq": "\u2292", "squ": "\u25A1", "square": "\u25A1", "Square": "\u25A1", "SquareIntersection": "\u2293", "SquareSubset": "\u228F", "SquareSubsetEqual": "\u2291", "SquareSuperset": "\u2290", "SquareSupersetEqual": "\u2292", "SquareUnion": "\u2294", "squarf": "\u25AA", "squf": "\u25AA", "srarr": "\u2192", "sscr": "\u{1D4C8}", "Sscr": "\u{1D4AE}", "ssetmn": "\u2216", "ssmile": "\u2323", "sstarf": "\u22C6", "star": "\u2606", "Star": "\u22C6", "starf": "\u2605", "straightepsilon": "\u03F5", "straightphi": "\u03D5", "strns": "\xAF", "sub": "\u2282", "Sub": "\u22D0", "subdot": "\u2ABD", "sube": "\u2286", "subE": "\u2AC5", "subedot": "\u2AC3", "submult": "\u2AC1", "subne": "\u228A", "subnE": "\u2ACB", "subplus": "\u2ABF", "subrarr": "\u2979", "subset": "\u2282", "Subset": "\u22D0", "subseteq": "\u2286", "subseteqq": "\u2AC5", "SubsetEqual": "\u2286", "subsetneq": "\u228A", "subsetneqq": "\u2ACB", "subsim": "\u2AC7", "subsub": "\u2AD5", "subsup": "\u2AD3", "succ": "\u227B", "succapprox": "\u2AB8", "succcurlyeq": "\u227D", "Succeeds": "\u227B", "SucceedsEqual": "\u2AB0", "SucceedsSlantEqual": "\u227D", "SucceedsTilde": "\u227F", "succeq": "\u2AB0", "succnapprox": "\u2ABA", "succneqq": "\u2AB6", "succnsim": "\u22E9", "succsim": "\u227F", "SuchThat": "\u220B", "sum": "\u2211", "Sum": "\u2211", "sung": "\u266A", "sup": "\u2283", "Sup": "\u22D1", "sup1": "\xB9", "sup2": "\xB2", "sup3": "\xB3", "supdot": "\u2ABE", "supdsub": "\u2AD8", "supe": "\u2287", "supE": "\u2AC6", "supedot": "\u2AC4", "Superset": "\u2283", "SupersetEqual": "\u2287", "suphsol": "\u27C9", "suphsub": "\u2AD7", "suplarr": "\u297B", "supmult": "\u2AC2", "supne": "\u228B", "supnE": "\u2ACC", "supplus": "\u2AC0", "supset": "\u2283", "Supset": "\u22D1", "supseteq": "\u2287", "supseteqq": "\u2AC6", "supsetneq": "\u228B", "supsetneqq": "\u2ACC", "supsim": "\u2AC8", "supsub": "\u2AD4", "supsup": "\u2AD6", "swarhk": "\u2926", "swarr": "\u2199", "swArr": "\u21D9", "swarrow": "\u2199", "swnwar": "\u292A", "szlig": "\xDF", "Tab": "	", "target": "\u2316", "tau": "\u03C4", "Tau": "\u03A4", "tbrk": "\u23B4", "tcaron": "\u0165", "Tcaron": "\u0164", "tcedil": "\u0163", "Tcedil": "\u0162", "tcy": "\u0442", "Tcy": "\u0422", "tdot": "\u20DB", "telrec": "\u2315", "tfr": "\u{1D531}", "Tfr": "\u{1D517}", "there4": "\u2234", "therefore": "\u2234", "Therefore": "\u2234", "theta": "\u03B8", "Theta": "\u0398", "thetasym": "\u03D1", "thetav": "\u03D1", "thickapprox": "\u2248", "thicksim": "\u223C", "ThickSpace": "\u205F\u200A", "thinsp": "\u2009", "ThinSpace": "\u2009", "thkap": "\u2248", "thksim": "\u223C", "thorn": "\xFE", "THORN": "\xDE", "tilde": "\u02DC", "Tilde": "\u223C", "TildeEqual": "\u2243", "TildeFullEqual": "\u2245", "TildeTilde": "\u2248", "times": "\xD7", "timesb": "\u22A0", "timesbar": "\u2A31", "timesd": "\u2A30", "tint": "\u222D", "toea": "\u2928", "top": "\u22A4", "topbot": "\u2336", "topcir": "\u2AF1", "topf": "\u{1D565}", "Topf": "\u{1D54B}", "topfork": "\u2ADA", "tosa": "\u2929", "tprime": "\u2034", "trade": "\u2122", "TRADE": "\u2122", "triangle": "\u25B5", "triangledown": "\u25BF", "triangleleft": "\u25C3", "trianglelefteq": "\u22B4", "triangleq": "\u225C", "triangleright": "\u25B9", "trianglerighteq": "\u22B5", "tridot": "\u25EC", "trie": "\u225C", "triminus": "\u2A3A", "TripleDot": "\u20DB", "triplus": "\u2A39", "trisb": "\u29CD", "tritime": "\u2A3B", "trpezium": "\u23E2", "tscr": "\u{1D4C9}", "Tscr": "\u{1D4AF}", "tscy": "\u0446", "TScy": "\u0426", "tshcy": "\u045B", "TSHcy": "\u040B", "tstrok": "\u0167", "Tstrok": "\u0166", "twixt": "\u226C", "twoheadleftarrow": "\u219E", "twoheadrightarrow": "\u21A0", "uacute": "\xFA", "Uacute": "\xDA", "uarr": "\u2191", "uArr": "\u21D1", "Uarr": "\u219F", "Uarrocir": "\u2949", "ubrcy": "\u045E", "Ubrcy": "\u040E", "ubreve": "\u016D", "Ubreve": "\u016C", "ucirc": "\xFB", "Ucirc": "\xDB", "ucy": "\u0443", "Ucy": "\u0423", "udarr": "\u21C5", "udblac": "\u0171", "Udblac": "\u0170", "udhar": "\u296E", "ufisht": "\u297E", "ufr": "\u{1D532}", "Ufr": "\u{1D518}", "ugrave": "\xF9", "Ugrave": "\xD9", "uHar": "\u2963", "uharl": "\u21BF", "uharr": "\u21BE", "uhblk": "\u2580", "ulcorn": "\u231C", "ulcorner": "\u231C", "ulcrop": "\u230F", "ultri": "\u25F8", "umacr": "\u016B", "Umacr": "\u016A", "uml": "\xA8", "UnderBar": "_", "UnderBrace": "\u23DF", "UnderBracket": "\u23B5", "UnderParenthesis": "\u23DD", "Union": "\u22C3", "UnionPlus": "\u228E", "uogon": "\u0173", "Uogon": "\u0172", "uopf": "\u{1D566}", "Uopf": "\u{1D54C}", "uparrow": "\u2191", "Uparrow": "\u21D1", "UpArrow": "\u2191", "UpArrowBar": "\u2912", "UpArrowDownArrow": "\u21C5", "updownarrow": "\u2195", "Updownarrow": "\u21D5", "UpDownArrow": "\u2195", "UpEquilibrium": "\u296E", "upharpoonleft": "\u21BF", "upharpoonright": "\u21BE", "uplus": "\u228E", "UpperLeftArrow": "\u2196", "UpperRightArrow": "\u2197", "upsi": "\u03C5", "Upsi": "\u03D2", "upsih": "\u03D2", "upsilon": "\u03C5", "Upsilon": "\u03A5", "UpTee": "\u22A5", "UpTeeArrow": "\u21A5", "upuparrows": "\u21C8", "urcorn": "\u231D", "urcorner": "\u231D", "urcrop": "\u230E", "uring": "\u016F", "Uring": "\u016E", "urtri": "\u25F9", "uscr": "\u{1D4CA}", "Uscr": "\u{1D4B0}", "utdot": "\u22F0", "utilde": "\u0169", "Utilde": "\u0168", "utri": "\u25B5", "utrif": "\u25B4", "uuarr": "\u21C8", "uuml": "\xFC", "Uuml": "\xDC", "uwangle": "\u29A7", "vangrt": "\u299C", "varepsilon": "\u03F5", "varkappa": "\u03F0", "varnothing": "\u2205", "varphi": "\u03D5", "varpi": "\u03D6", "varpropto": "\u221D", "varr": "\u2195", "vArr": "\u21D5", "varrho": "\u03F1", "varsigma": "\u03C2", "varsubsetneq": "\u228A\uFE00", "varsubsetneqq": "\u2ACB\uFE00", "varsupsetneq": "\u228B\uFE00", "varsupsetneqq": "\u2ACC\uFE00", "vartheta": "\u03D1", "vartriangleleft": "\u22B2", "vartriangleright": "\u22B3", "vBar": "\u2AE8", "Vbar": "\u2AEB", "vBarv": "\u2AE9", "vcy": "\u0432", "Vcy": "\u0412", "vdash": "\u22A2", "vDash": "\u22A8", "Vdash": "\u22A9", "VDash": "\u22AB", "Vdashl": "\u2AE6", "vee": "\u2228", "Vee": "\u22C1", "veebar": "\u22BB", "veeeq": "\u225A", "vellip": "\u22EE", "verbar": "|", "Verbar": "\u2016", "vert": "|", "Vert": "\u2016", "VerticalBar": "\u2223", "VerticalLine": "|", "VerticalSeparator": "\u2758", "VerticalTilde": "\u2240", "VeryThinSpace": "\u200A", "vfr": "\u{1D533}", "Vfr": "\u{1D519}", "vltri": "\u22B2", "vnsub": "\u2282\u20D2", "vnsup": "\u2283\u20D2", "vopf": "\u{1D567}", "Vopf": "\u{1D54D}", "vprop": "\u221D", "vrtri": "\u22B3", "vscr": "\u{1D4CB}", "Vscr": "\u{1D4B1}", "vsubne": "\u228A\uFE00", "vsubnE": "\u2ACB\uFE00", "vsupne": "\u228B\uFE00", "vsupnE": "\u2ACC\uFE00", "Vvdash": "\u22AA", "vzigzag": "\u299A", "wcirc": "\u0175", "Wcirc": "\u0174", "wedbar": "\u2A5F", "wedge": "\u2227", "Wedge": "\u22C0", "wedgeq": "\u2259", "weierp": "\u2118", "wfr": "\u{1D534}", "Wfr": "\u{1D51A}", "wopf": "\u{1D568}", "Wopf": "\u{1D54E}", "wp": "\u2118", "wr": "\u2240", "wreath": "\u2240", "wscr": "\u{1D4CC}", "Wscr": "\u{1D4B2}", "xcap": "\u22C2", "xcirc": "\u25EF", "xcup": "\u22C3", "xdtri": "\u25BD", "xfr": "\u{1D535}", "Xfr": "\u{1D51B}", "xharr": "\u27F7", "xhArr": "\u27FA", "xi": "\u03BE", "Xi": "\u039E", "xlarr": "\u27F5", "xlArr": "\u27F8", "xmap": "\u27FC", "xnis": "\u22FB", "xodot": "\u2A00", "xopf": "\u{1D569}", "Xopf": "\u{1D54F}", "xoplus": "\u2A01", "xotime": "\u2A02", "xrarr": "\u27F6", "xrArr": "\u27F9", "xscr": "\u{1D4CD}", "Xscr": "\u{1D4B3}", "xsqcup": "\u2A06", "xuplus": "\u2A04", "xutri": "\u25B3", "xvee": "\u22C1", "xwedge": "\u22C0", "yacute": "\xFD", "Yacute": "\xDD", "yacy": "\u044F", "YAcy": "\u042F", "ycirc": "\u0177", "Ycirc": "\u0176", "ycy": "\u044B", "Ycy": "\u042B", "yen": "\xA5", "yfr": "\u{1D536}", "Yfr": "\u{1D51C}", "yicy": "\u0457", "YIcy": "\u0407", "yopf": "\u{1D56A}", "Yopf": "\u{1D550}", "yscr": "\u{1D4CE}", "Yscr": "\u{1D4B4}", "yucy": "\u044E", "YUcy": "\u042E", "yuml": "\xFF", "Yuml": "\u0178", "zacute": "\u017A", "Zacute": "\u0179", "zcaron": "\u017E", "Zcaron": "\u017D", "zcy": "\u0437", "Zcy": "\u0417", "zdot": "\u017C", "Zdot": "\u017B", "zeetrf": "\u2128", "ZeroWidthSpace": "\u200B", "zeta": "\u03B6", "Zeta": "\u0396", "zfr": "\u{1D537}", "Zfr": "\u2128", "zhcy": "\u0436", "ZHcy": "\u0416", "zigrarr": "\u21DD", "zopf": "\u{1D56B}", "Zopf": "\u2124", "zscr": "\u{1D4CF}", "Zscr": "\u{1D4B5}", "zwj": "\u200D", "zwnj": "\u200C" };
    -      var decodeMapLegacy = { "aacute": "\xE1", "Aacute": "\xC1", "acirc": "\xE2", "Acirc": "\xC2", "acute": "\xB4", "aelig": "\xE6", "AElig": "\xC6", "agrave": "\xE0", "Agrave": "\xC0", "amp": "&", "AMP": "&", "aring": "\xE5", "Aring": "\xC5", "atilde": "\xE3", "Atilde": "\xC3", "auml": "\xE4", "Auml": "\xC4", "brvbar": "\xA6", "ccedil": "\xE7", "Ccedil": "\xC7", "cedil": "\xB8", "cent": "\xA2", "copy": "\xA9", "COPY": "\xA9", "curren": "\xA4", "deg": "\xB0", "divide": "\xF7", "eacute": "\xE9", "Eacute": "\xC9", "ecirc": "\xEA", "Ecirc": "\xCA", "egrave": "\xE8", "Egrave": "\xC8", "eth": "\xF0", "ETH": "\xD0", "euml": "\xEB", "Euml": "\xCB", "frac12": "\xBD", "frac14": "\xBC", "frac34": "\xBE", "gt": ">", "GT": ">", "iacute": "\xED", "Iacute": "\xCD", "icirc": "\xEE", "Icirc": "\xCE", "iexcl": "\xA1", "igrave": "\xEC", "Igrave": "\xCC", "iquest": "\xBF", "iuml": "\xEF", "Iuml": "\xCF", "laquo": "\xAB", "lt": "<", "LT": "<", "macr": "\xAF", "micro": "\xB5", "middot": "\xB7", "nbsp": "\xA0", "not": "\xAC", "ntilde": "\xF1", "Ntilde": "\xD1", "oacute": "\xF3", "Oacute": "\xD3", "ocirc": "\xF4", "Ocirc": "\xD4", "ograve": "\xF2", "Ograve": "\xD2", "ordf": "\xAA", "ordm": "\xBA", "oslash": "\xF8", "Oslash": "\xD8", "otilde": "\xF5", "Otilde": "\xD5", "ouml": "\xF6", "Ouml": "\xD6", "para": "\xB6", "plusmn": "\xB1", "pound": "\xA3", "quot": '"', "QUOT": '"', "raquo": "\xBB", "reg": "\xAE", "REG": "\xAE", "sect": "\xA7", "shy": "\xAD", "sup1": "\xB9", "sup2": "\xB2", "sup3": "\xB3", "szlig": "\xDF", "thorn": "\xFE", "THORN": "\xDE", "times": "\xD7", "uacute": "\xFA", "Uacute": "\xDA", "ucirc": "\xFB", "Ucirc": "\xDB", "ugrave": "\xF9", "Ugrave": "\xD9", "uml": "\xA8", "uuml": "\xFC", "Uuml": "\xDC", "yacute": "\xFD", "Yacute": "\xDD", "yen": "\xA5", "yuml": "\xFF" };
    -      var decodeMapNumeric = { "0": "\uFFFD", "128": "\u20AC", "130": "\u201A", "131": "\u0192", "132": "\u201E", "133": "\u2026", "134": "\u2020", "135": "\u2021", "136": "\u02C6", "137": "\u2030", "138": "\u0160", "139": "\u2039", "140": "\u0152", "142": "\u017D", "145": "\u2018", "146": "\u2019", "147": "\u201C", "148": "\u201D", "149": "\u2022", "150": "\u2013", "151": "\u2014", "152": "\u02DC", "153": "\u2122", "154": "\u0161", "155": "\u203A", "156": "\u0153", "158": "\u017E", "159": "\u0178" };
    -      var invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];
    -      var stringFromCharCode = String.fromCharCode;
    -      var object = {};
    -      var hasOwnProperty = object.hasOwnProperty;
    -      var has = function(object2, propertyName) {
    -        return hasOwnProperty.call(object2, propertyName);
    -      };
    -      var contains = function(array, value) {
    -        var index = -1;
    -        var length = array.length;
    -        while (++index < length) {
    -          if (array[index] == value) {
    -            return true;
    -          }
    -        }
    -        return false;
    -      };
    -      var merge2 = function(options, defaults2) {
    -        if (!options) {
    -          return defaults2;
    -        }
    -        var result = {};
    -        var key2;
    -        for (key2 in defaults2) {
    -          result[key2] = has(options, key2) ? options[key2] : defaults2[key2];
    -        }
    -        return result;
    -      };
    -      var codePointToSymbol = function(codePoint, strict) {
    -        var output = "";
    -        if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
    -          if (strict) {
    -            parseError("character reference outside the permissible Unicode range");
    -          }
    -          return "\uFFFD";
    -        }
    -        if (has(decodeMapNumeric, codePoint)) {
    -          if (strict) {
    -            parseError("disallowed character reference");
    -          }
    -          return decodeMapNumeric[codePoint];
    -        }
    -        if (strict && contains(invalidReferenceCodePoints, codePoint)) {
    -          parseError("disallowed character reference");
    -        }
    -        if (codePoint > 65535) {
    -          codePoint -= 65536;
    -          output += stringFromCharCode(codePoint >>> 10 & 1023 | 55296);
    -          codePoint = 56320 | codePoint & 1023;
    -        }
    -        output += stringFromCharCode(codePoint);
    -        return output;
    -      };
    -      var hexEscape = function(codePoint) {
    -        return "&#x" + codePoint.toString(16).toUpperCase() + ";";
    -      };
    -      var decEscape = function(codePoint) {
    -        return "&#" + codePoint + ";";
    -      };
    -      var parseError = function(message) {
    -        throw Error("Parse error: " + message);
    -      };
    -      var encode = function(string, options) {
    -        options = merge2(options, encode.options);
    -        var strict = options.strict;
    -        if (strict && regexInvalidRawCodePoint.test(string)) {
    -          parseError("forbidden code point");
    -        }
    -        var encodeEverything = options.encodeEverything;
    -        var useNamedReferences = options.useNamedReferences;
    -        var allowUnsafeSymbols = options.allowUnsafeSymbols;
    -        var escapeCodePoint = options.decimal ? decEscape : hexEscape;
    -        var escapeBmpSymbol = function(symbol) {
    -          return escapeCodePoint(symbol.charCodeAt(0));
    -        };
    -        if (encodeEverything) {
    -          string = string.replace(regexAsciiWhitelist, function(symbol) {
    -            if (useNamedReferences && has(encodeMap, symbol)) {
    -              return "&" + encodeMap[symbol] + ";";
    -            }
    -            return escapeBmpSymbol(symbol);
    -          });
    -          if (useNamedReferences) {
    -            string = string.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒").replace(/fj/g, "fj");
    -          }
    -          if (useNamedReferences) {
    -            string = string.replace(regexEncodeNonAscii, function(string2) {
    -              return "&" + encodeMap[string2] + ";";
    -            });
    -          }
    -        } else if (useNamedReferences) {
    -          if (!allowUnsafeSymbols) {
    -            string = string.replace(regexEscape, function(string2) {
    -              return "&" + encodeMap[string2] + ";";
    -            });
    -          }
    -          string = string.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒");
    -          string = string.replace(regexEncodeNonAscii, function(string2) {
    -            return "&" + encodeMap[string2] + ";";
    -          });
    -        } else if (!allowUnsafeSymbols) {
    -          string = string.replace(regexEscape, escapeBmpSymbol);
    -        }
    -        return string.replace(regexAstralSymbols, function($0) {
    -          var high = $0.charCodeAt(0);
    -          var low = $0.charCodeAt(1);
    -          var codePoint = (high - 55296) * 1024 + low - 56320 + 65536;
    -          return escapeCodePoint(codePoint);
    -        }).replace(regexBmpWhitelist, escapeBmpSymbol);
    -      };
    -      encode.options = {
    -        "allowUnsafeSymbols": false,
    -        "encodeEverything": false,
    -        "strict": false,
    -        "useNamedReferences": false,
    -        "decimal": false
    -      };
    -      var decode = function(html, options) {
    -        options = merge2(options, decode.options);
    -        var strict = options.strict;
    -        if (strict && regexInvalidEntity.test(html)) {
    -          parseError("malformed character reference");
    -        }
    -        return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {
    -          var codePoint;
    -          var semicolon;
    -          var decDigits;
    -          var hexDigits;
    -          var reference;
    -          var next;
    -          if ($1) {
    -            reference = $1;
    -            return decodeMap[reference];
    -          }
    -          if ($2) {
    -            reference = $2;
    -            next = $3;
    -            if (next && options.isAttributeValue) {
    -              if (strict && next == "=") {
    -                parseError("`&` did not start a character reference");
    -              }
    -              return $0;
    -            } else {
    -              if (strict) {
    -                parseError(
    -                  "named character reference was not terminated by a semicolon"
    -                );
    -              }
    -              return decodeMapLegacy[reference] + (next || "");
    -            }
    -          }
    -          if ($4) {
    -            decDigits = $4;
    -            semicolon = $5;
    -            if (strict && !semicolon) {
    -              parseError("character reference was not terminated by a semicolon");
    -            }
    -            codePoint = parseInt(decDigits, 10);
    -            return codePointToSymbol(codePoint, strict);
    -          }
    -          if ($6) {
    -            hexDigits = $6;
    -            semicolon = $7;
    -            if (strict && !semicolon) {
    -              parseError("character reference was not terminated by a semicolon");
    -            }
    -            codePoint = parseInt(hexDigits, 16);
    -            return codePointToSymbol(codePoint, strict);
    -          }
    -          if (strict) {
    -            parseError(
    -              "named character reference was not terminated by a semicolon"
    -            );
    -          }
    -          return $0;
    -        });
    -      };
    -      decode.options = {
    -        "isAttributeValue": false,
    -        "strict": false
    -      };
    -      var escape2 = function(string) {
    -        return string.replace(regexEscape, function($0) {
    -          return escapeMap[$0];
    -        });
    -      };
    -      var he = {
    -        "version": "1.2.0",
    -        "encode": encode,
    -        "decode": decode,
    -        "escape": escape2,
    -        "unescape": decode
    -      };
    -      if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
    -        define(function() {
    -          return he;
    -        });
    -      } else if (freeExports && !freeExports.nodeType) {
    -        if (freeModule) {
    -          freeModule.exports = he;
    -        } else {
    -          for (var key in he) {
    -            has(he, key) && (freeExports[key] = he[key]);
    -          }
    -        }
    -      } else {
    -        root.he = he;
    -      }
    -    })(exports2);
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/utils.js
    -var require_utils = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/utils.js"(exports2) {
    -    "use strict";
    -    var path4 = require("path");
    -    var util = require("util");
    -    var he = require_he();
    -    var MOCHA_ID_PROP_NAME = "__mocha_id__";
    -    exports2.inherits = util.inherits;
    -    exports2.escape = function(html) {
    -      return he.encode(String(html), { useNamedReferences: false });
    -    };
    -    exports2.isString = function(obj) {
    -      return typeof obj === "string";
    -    };
    -    exports2.slug = function(str2) {
    -      return str2.toLowerCase().replace(/\s+/g, "-").replace(/[^-\w]/g, "").replace(/-{2,}/g, "-");
    -    };
    -    exports2.clean = function(str2) {
    -      str2 = str2.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/, "").replace(
    -        /^function(?:\s*|\s[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\}|((?:.|\n)*))$/,
    -        "$1$2$3"
    -      );
    -      var spaces = str2.match(/^\n?( *)/)[1].length;
    -      var tabs = str2.match(/^\n?(\t*)/)[1].length;
    -      var re = new RegExp(
    -        "^\n?" + (tabs ? "	" : " ") + "{" + (tabs || spaces) + "}",
    -        "gm"
    -      );
    -      str2 = str2.replace(re, "");
    -      return str2.trim();
    -    };
    -    function emptyRepresentation(value, typeHint) {
    -      switch (typeHint) {
    -        case "function":
    -          return "[Function]";
    -        case "object":
    -          return "{}";
    -        case "array":
    -          return "[]";
    -        default:
    -          return value.toString();
    -      }
    -    }
    -    var canonicalType = exports2.canonicalType = function canonicalType2(value) {
    -      if (value === void 0) {
    -        return "undefined";
    -      } else if (value === null) {
    -        return "null";
    -      } else if (Buffer.isBuffer(value)) {
    -        return "buffer";
    -      }
    -      return Object.prototype.toString.call(value).replace(/^\[.+\s(.+?)]$/, "$1").toLowerCase();
    -    };
    -    exports2.type = function type2(value) {
    -      if (value === null)
    -        return "null";
    -      const primitives = /* @__PURE__ */ new Set([
    -        "undefined",
    -        "boolean",
    -        "number",
    -        "string",
    -        "bigint",
    -        "symbol"
    -      ]);
    -      const _type = typeof value;
    -      if (_type === "function")
    -        return _type;
    -      if (primitives.has(_type))
    -        return _type;
    -      if (value instanceof String)
    -        return "string";
    -      if (value instanceof Error)
    -        return "error";
    -      if (Array.isArray(value))
    -        return "array";
    -      return _type;
    -    };
    -    exports2.stringify = function(value) {
    -      var typeHint = canonicalType(value);
    -      if (!~["object", "array", "function"].indexOf(typeHint)) {
    -        if (typeHint === "buffer") {
    -          var json2 = Buffer.prototype.toJSON.call(value);
    -          return jsonStringify(
    -            json2.data && json2.type ? json2.data : json2,
    -            2
    -          ).replace(/,(\n|$)/g, "$1");
    -        }
    -        if (typeHint === "string" && typeof value === "object") {
    -          value = value.split("").reduce(function(acc, char, idx) {
    -            acc[idx] = char;
    -            return acc;
    -          }, {});
    -          typeHint = "object";
    -        } else {
    -          return jsonStringify(value);
    -        }
    -      }
    -      for (var prop in value) {
    -        if (Object.prototype.hasOwnProperty.call(value, prop)) {
    -          return jsonStringify(
    -            exports2.canonicalize(value, null, typeHint),
    -            2
    -          ).replace(/,(\n|$)/g, "$1");
    -        }
    -      }
    -      return emptyRepresentation(value, typeHint);
    -    };
    -    function jsonStringify(object, spaces, depth) {
    -      if (typeof spaces === "undefined") {
    -        return _stringify(object);
    -      }
    -      depth = depth || 1;
    -      var space = spaces * depth;
    -      var str2 = Array.isArray(object) ? "[" : "{";
    -      var end = Array.isArray(object) ? "]" : "}";
    -      var length = typeof object.length === "number" ? object.length : Object.keys(object).length;
    -      function repeat2(s, n) {
    -        return new Array(n).join(s);
    -      }
    -      function _stringify(val) {
    -        switch (canonicalType(val)) {
    -          case "null":
    -          case "undefined":
    -            val = "[" + val + "]";
    -            break;
    -          case "array":
    -          case "object":
    -            val = jsonStringify(val, spaces, depth + 1);
    -            break;
    -          case "boolean":
    -          case "regexp":
    -          case "symbol":
    -          case "number":
    -            val = val === 0 && 1 / val === -Infinity ? "-0" : val.toString();
    -            break;
    -          case "bigint":
    -            val = val.toString() + "n";
    -            break;
    -          case "date":
    -            var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();
    -            val = "[Date: " + sDate + "]";
    -            break;
    -          case "buffer":
    -            var json2 = val.toJSON();
    -            json2 = json2.data && json2.type ? json2.data : json2;
    -            val = "[Buffer: " + jsonStringify(json2, 2, depth + 1) + "]";
    -            break;
    -          default:
    -            val = val === "[Function]" || val === "[Circular]" ? val : JSON.stringify(val);
    -        }
    -        return val;
    -      }
    -      for (var i in object) {
    -        if (!Object.prototype.hasOwnProperty.call(object, i)) {
    -          continue;
    -        }
    -        --length;
    -        str2 += "\n " + repeat2(" ", space) + (Array.isArray(object) ? "" : '"' + i + '": ') + // key
    -        _stringify(object[i]) + // value
    -        (length ? "," : "");
    -      }
    -      return str2 + // [], {}
    -      (str2.length !== 1 ? "\n" + repeat2(" ", --space) + end : end);
    -    }
    -    exports2.canonicalize = function canonicalize(value, stack, typeHint) {
    -      var canonicalizedObj;
    -      var prop;
    -      typeHint = typeHint || canonicalType(value);
    -      function withStack(value2, fn) {
    -        stack.push(value2);
    -        fn();
    -        stack.pop();
    -      }
    -      stack = stack || [];
    -      if (stack.indexOf(value) !== -1) {
    -        return "[Circular]";
    -      }
    -      switch (typeHint) {
    -        case "undefined":
    -        case "buffer":
    -        case "null":
    -          canonicalizedObj = value;
    -          break;
    -        case "array":
    -          withStack(value, function() {
    -            canonicalizedObj = value.map(function(item) {
    -              return exports2.canonicalize(item, stack);
    -            });
    -          });
    -          break;
    -        case "function":
    -          for (prop in value) {
    -            canonicalizedObj = {};
    -            break;
    -          }
    -          if (!canonicalizedObj) {
    -            canonicalizedObj = emptyRepresentation(value, typeHint);
    -            break;
    -          }
    -        case "object":
    -          canonicalizedObj = canonicalizedObj || {};
    -          withStack(value, function() {
    -            Object.keys(value).sort().forEach(function(key) {
    -              canonicalizedObj[key] = exports2.canonicalize(value[key], stack);
    -            });
    -          });
    -          break;
    -        case "date":
    -        case "number":
    -        case "regexp":
    -        case "boolean":
    -        case "symbol":
    -          canonicalizedObj = value;
    -          break;
    -        default:
    -          canonicalizedObj = value + "";
    -      }
    -      return canonicalizedObj;
    -    };
    -    exports2.stackTraceFilter = function() {
    -      var is = typeof document === "undefined" ? { node: true } : { browser: true };
    -      var slash = path4.sep;
    -      var cwd;
    -      if (is.node) {
    -        cwd = exports2.cwd() + slash;
    -      } else {
    -        cwd = (typeof location === "undefined" ? window.location : location).href.replace(/\/[^/]*$/, "/");
    -        slash = "/";
    -      }
    -      function isMochaInternal(line) {
    -        return ~line.indexOf("node_modules" + slash + "mocha" + slash) || ~line.indexOf(slash + "mocha.js") || ~line.indexOf(slash + "mocha.min.js");
    -      }
    -      function isNodeInternal(line) {
    -        return ~line.indexOf("(timers.js:") || ~line.indexOf("(events.js:") || ~line.indexOf("(node.js:") || ~line.indexOf("(module.js:") || ~line.indexOf("GeneratorFunctionPrototype.next (native)") || false;
    -      }
    -      return function(stack) {
    -        stack = stack.split("\n");
    -        stack = stack.reduce(function(list, line) {
    -          if (isMochaInternal(line)) {
    -            return list;
    -          }
    -          if (is.node && isNodeInternal(line)) {
    -            return list;
    -          }
    -          if (/:\d+:\d+\)?$/.test(line)) {
    -            line = line.replace("(" + cwd, "(");
    -          }
    -          list.push(line);
    -          return list;
    -        }, []);
    -        return stack.join("\n");
    -      };
    -    };
    -    exports2.isPromise = function isPromise2(value) {
    -      return typeof value === "object" && value !== null && typeof value.then === "function";
    -    };
    -    exports2.clamp = function clamp(value, range) {
    -      return Math.min(Math.max(value, range[0]), range[1]);
    -    };
    -    exports2.noop = function() {
    -    };
    -    exports2.createMap = function(obj) {
    -      return Object.assign.apply(
    -        null,
    -        [/* @__PURE__ */ Object.create(null)].concat(Array.prototype.slice.call(arguments))
    -      );
    -    };
    -    exports2.defineConstants = function(obj) {
    -      if (canonicalType(obj) !== "object" || !Object.keys(obj).length) {
    -        throw new TypeError("Invalid argument; expected a non-empty object");
    -      }
    -      return Object.freeze(exports2.createMap(obj));
    -    };
    -    exports2.cwd = function cwd() {
    -      return process.cwd();
    -    };
    -    exports2.isBrowser = function isBrowser() {
    -      return Boolean(process.browser);
    -    };
    -    exports2.castArray = function castArray(value) {
    -      if (value === void 0) {
    -        return [];
    -      }
    -      if (value === null) {
    -        return [null];
    -      }
    -      if (typeof value === "object" && (typeof value[Symbol.iterator] === "function" || value.length !== void 0)) {
    -        return Array.from(value);
    -      }
    -      return [value];
    -    };
    -    exports2.constants = exports2.defineConstants({
    -      MOCHA_ID_PROP_NAME
    -    });
    -    var uniqueIDBase = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
    -    exports2.uniqueID = () => {
    -      let id = "";
    -      for (let i = 0; i < 21; i++) {
    -        id += uniqueIDBase[Math.random() * 64 | 0];
    -      }
    -      return id;
    -    };
    -    exports2.assignNewMochaID = (obj) => {
    -      const id = exports2.uniqueID();
    -      Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {
    -        get() {
    -          return id;
    -        }
    -      });
    -      return obj;
    -    };
    -    exports2.getMochaID = (obj) => obj && typeof obj === "object" ? obj[MOCHA_ID_PROP_NAME] : void 0;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
    -var require_has_flag = __commonJS({
    -  "../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = (flag, argv = process.argv) => {
    -      const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
    -      const position = argv.indexOf(prefix + flag);
    -      const terminatorPosition = argv.indexOf("--");
    -      return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js
    -var require_supports_color = __commonJS({
    -  "../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js"(exports2, module2) {
    -    "use strict";
    -    var os = require("os");
    -    var tty = require("tty");
    -    var hasFlag = require_has_flag();
    -    var { env } = process;
    -    var flagForceColor;
    -    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
    -      flagForceColor = 0;
    -    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
    -      flagForceColor = 1;
    -    }
    -    function envForceColor() {
    -      if ("FORCE_COLOR" in env) {
    -        if (env.FORCE_COLOR === "true") {
    -          return 1;
    -        }
    -        if (env.FORCE_COLOR === "false") {
    -          return 0;
    -        }
    -        return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
    -      }
    -    }
    -    function translateLevel(level) {
    -      if (level === 0) {
    -        return false;
    -      }
    -      return {
    -        level,
    -        hasBasic: true,
    -        has256: level >= 2,
    -        has16m: level >= 3
    -      };
    -    }
    -    function supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
    -      const noFlagForceColor = envForceColor();
    -      if (noFlagForceColor !== void 0) {
    -        flagForceColor = noFlagForceColor;
    -      }
    -      const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
    -      if (forceColor === 0) {
    -        return 0;
    -      }
    -      if (sniffFlags) {
    -        if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
    -          return 3;
    -        }
    -        if (hasFlag("color=256")) {
    -          return 2;
    -        }
    -      }
    -      if (haveStream && !streamIsTTY && forceColor === void 0) {
    -        return 0;
    -      }
    -      const min = forceColor || 0;
    -      if (env.TERM === "dumb") {
    -        return min;
    -      }
    -      if (process.platform === "win32") {
    -        const osRelease = os.release().split(".");
    -        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
    -          return Number(osRelease[2]) >= 14931 ? 3 : 2;
    -        }
    -        return 1;
    -      }
    -      if ("CI" in env) {
    -        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
    -          return 1;
    -        }
    -        return min;
    -      }
    -      if ("TEAMCITY_VERSION" in env) {
    -        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
    -      }
    -      if (env.COLORTERM === "truecolor") {
    -        return 3;
    -      }
    -      if ("TERM_PROGRAM" in env) {
    -        const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
    -        switch (env.TERM_PROGRAM) {
    -          case "iTerm.app":
    -            return version >= 3 ? 3 : 2;
    -          case "Apple_Terminal":
    -            return 2;
    -        }
    -      }
    -      if (/-256(color)?$/i.test(env.TERM)) {
    -        return 2;
    -      }
    -      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
    -        return 1;
    -      }
    -      if ("COLORTERM" in env) {
    -        return 1;
    -      }
    -      return min;
    -    }
    -    function getSupportLevel(stream2, options = {}) {
    -      const level = supportsColor(stream2, {
    -        streamIsTTY: stream2 && stream2.isTTY,
    -        ...options
    -      });
    -      return translateLevel(level);
    -    }
    -    module2.exports = {
    -      supportsColor: getSupportLevel,
    -      stdout: getSupportLevel({ isTTY: tty.isatty(1) }),
    -      stderr: getSupportLevel({ isTTY: tty.isatty(2) })
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js
    -var require_color_name = __commonJS({
    -  "../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = {
    -      "aliceblue": [240, 248, 255],
    -      "antiquewhite": [250, 235, 215],
    -      "aqua": [0, 255, 255],
    -      "aquamarine": [127, 255, 212],
    -      "azure": [240, 255, 255],
    -      "beige": [245, 245, 220],
    -      "bisque": [255, 228, 196],
    -      "black": [0, 0, 0],
    -      "blanchedalmond": [255, 235, 205],
    -      "blue": [0, 0, 255],
    -      "blueviolet": [138, 43, 226],
    -      "brown": [165, 42, 42],
    -      "burlywood": [222, 184, 135],
    -      "cadetblue": [95, 158, 160],
    -      "chartreuse": [127, 255, 0],
    -      "chocolate": [210, 105, 30],
    -      "coral": [255, 127, 80],
    -      "cornflowerblue": [100, 149, 237],
    -      "cornsilk": [255, 248, 220],
    -      "crimson": [220, 20, 60],
    -      "cyan": [0, 255, 255],
    -      "darkblue": [0, 0, 139],
    -      "darkcyan": [0, 139, 139],
    -      "darkgoldenrod": [184, 134, 11],
    -      "darkgray": [169, 169, 169],
    -      "darkgreen": [0, 100, 0],
    -      "darkgrey": [169, 169, 169],
    -      "darkkhaki": [189, 183, 107],
    -      "darkmagenta": [139, 0, 139],
    -      "darkolivegreen": [85, 107, 47],
    -      "darkorange": [255, 140, 0],
    -      "darkorchid": [153, 50, 204],
    -      "darkred": [139, 0, 0],
    -      "darksalmon": [233, 150, 122],
    -      "darkseagreen": [143, 188, 143],
    -      "darkslateblue": [72, 61, 139],
    -      "darkslategray": [47, 79, 79],
    -      "darkslategrey": [47, 79, 79],
    -      "darkturquoise": [0, 206, 209],
    -      "darkviolet": [148, 0, 211],
    -      "deeppink": [255, 20, 147],
    -      "deepskyblue": [0, 191, 255],
    -      "dimgray": [105, 105, 105],
    -      "dimgrey": [105, 105, 105],
    -      "dodgerblue": [30, 144, 255],
    -      "firebrick": [178, 34, 34],
    -      "floralwhite": [255, 250, 240],
    -      "forestgreen": [34, 139, 34],
    -      "fuchsia": [255, 0, 255],
    -      "gainsboro": [220, 220, 220],
    -      "ghostwhite": [248, 248, 255],
    -      "gold": [255, 215, 0],
    -      "goldenrod": [218, 165, 32],
    -      "gray": [128, 128, 128],
    -      "green": [0, 128, 0],
    -      "greenyellow": [173, 255, 47],
    -      "grey": [128, 128, 128],
    -      "honeydew": [240, 255, 240],
    -      "hotpink": [255, 105, 180],
    -      "indianred": [205, 92, 92],
    -      "indigo": [75, 0, 130],
    -      "ivory": [255, 255, 240],
    -      "khaki": [240, 230, 140],
    -      "lavender": [230, 230, 250],
    -      "lavenderblush": [255, 240, 245],
    -      "lawngreen": [124, 252, 0],
    -      "lemonchiffon": [255, 250, 205],
    -      "lightblue": [173, 216, 230],
    -      "lightcoral": [240, 128, 128],
    -      "lightcyan": [224, 255, 255],
    -      "lightgoldenrodyellow": [250, 250, 210],
    -      "lightgray": [211, 211, 211],
    -      "lightgreen": [144, 238, 144],
    -      "lightgrey": [211, 211, 211],
    -      "lightpink": [255, 182, 193],
    -      "lightsalmon": [255, 160, 122],
    -      "lightseagreen": [32, 178, 170],
    -      "lightskyblue": [135, 206, 250],
    -      "lightslategray": [119, 136, 153],
    -      "lightslategrey": [119, 136, 153],
    -      "lightsteelblue": [176, 196, 222],
    -      "lightyellow": [255, 255, 224],
    -      "lime": [0, 255, 0],
    -      "limegreen": [50, 205, 50],
    -      "linen": [250, 240, 230],
    -      "magenta": [255, 0, 255],
    -      "maroon": [128, 0, 0],
    -      "mediumaquamarine": [102, 205, 170],
    -      "mediumblue": [0, 0, 205],
    -      "mediumorchid": [186, 85, 211],
    -      "mediumpurple": [147, 112, 219],
    -      "mediumseagreen": [60, 179, 113],
    -      "mediumslateblue": [123, 104, 238],
    -      "mediumspringgreen": [0, 250, 154],
    -      "mediumturquoise": [72, 209, 204],
    -      "mediumvioletred": [199, 21, 133],
    -      "midnightblue": [25, 25, 112],
    -      "mintcream": [245, 255, 250],
    -      "mistyrose": [255, 228, 225],
    -      "moccasin": [255, 228, 181],
    -      "navajowhite": [255, 222, 173],
    -      "navy": [0, 0, 128],
    -      "oldlace": [253, 245, 230],
    -      "olive": [128, 128, 0],
    -      "olivedrab": [107, 142, 35],
    -      "orange": [255, 165, 0],
    -      "orangered": [255, 69, 0],
    -      "orchid": [218, 112, 214],
    -      "palegoldenrod": [238, 232, 170],
    -      "palegreen": [152, 251, 152],
    -      "paleturquoise": [175, 238, 238],
    -      "palevioletred": [219, 112, 147],
    -      "papayawhip": [255, 239, 213],
    -      "peachpuff": [255, 218, 185],
    -      "peru": [205, 133, 63],
    -      "pink": [255, 192, 203],
    -      "plum": [221, 160, 221],
    -      "powderblue": [176, 224, 230],
    -      "purple": [128, 0, 128],
    -      "rebeccapurple": [102, 51, 153],
    -      "red": [255, 0, 0],
    -      "rosybrown": [188, 143, 143],
    -      "royalblue": [65, 105, 225],
    -      "saddlebrown": [139, 69, 19],
    -      "salmon": [250, 128, 114],
    -      "sandybrown": [244, 164, 96],
    -      "seagreen": [46, 139, 87],
    -      "seashell": [255, 245, 238],
    -      "sienna": [160, 82, 45],
    -      "silver": [192, 192, 192],
    -      "skyblue": [135, 206, 235],
    -      "slateblue": [106, 90, 205],
    -      "slategray": [112, 128, 144],
    -      "slategrey": [112, 128, 144],
    -      "snow": [255, 250, 250],
    -      "springgreen": [0, 255, 127],
    -      "steelblue": [70, 130, 180],
    -      "tan": [210, 180, 140],
    -      "teal": [0, 128, 128],
    -      "thistle": [216, 191, 216],
    -      "tomato": [255, 99, 71],
    -      "turquoise": [64, 224, 208],
    -      "violet": [238, 130, 238],
    -      "wheat": [245, 222, 179],
    -      "white": [255, 255, 255],
    -      "whitesmoke": [245, 245, 245],
    -      "yellow": [255, 255, 0],
    -      "yellowgreen": [154, 205, 50]
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js
    -var require_conversions = __commonJS({
    -  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js"(exports2, module2) {
    -    var cssKeywords = require_color_name();
    -    var reverseKeywords = {};
    -    for (const key of Object.keys(cssKeywords)) {
    -      reverseKeywords[cssKeywords[key]] = key;
    -    }
    -    var convert = {
    -      rgb: { channels: 3, labels: "rgb" },
    -      hsl: { channels: 3, labels: "hsl" },
    -      hsv: { channels: 3, labels: "hsv" },
    -      hwb: { channels: 3, labels: "hwb" },
    -      cmyk: { channels: 4, labels: "cmyk" },
    -      xyz: { channels: 3, labels: "xyz" },
    -      lab: { channels: 3, labels: "lab" },
    -      lch: { channels: 3, labels: "lch" },
    -      hex: { channels: 1, labels: ["hex"] },
    -      keyword: { channels: 1, labels: ["keyword"] },
    -      ansi16: { channels: 1, labels: ["ansi16"] },
    -      ansi256: { channels: 1, labels: ["ansi256"] },
    -      hcg: { channels: 3, labels: ["h", "c", "g"] },
    -      apple: { channels: 3, labels: ["r16", "g16", "b16"] },
    -      gray: { channels: 1, labels: ["gray"] }
    -    };
    -    module2.exports = convert;
    -    for (const model of Object.keys(convert)) {
    -      if (!("channels" in convert[model])) {
    -        throw new Error("missing channels property: " + model);
    -      }
    -      if (!("labels" in convert[model])) {
    -        throw new Error("missing channel labels property: " + model);
    -      }
    -      if (convert[model].labels.length !== convert[model].channels) {
    -        throw new Error("channel and label counts mismatch: " + model);
    -      }
    -      const { channels, labels } = convert[model];
    -      delete convert[model].channels;
    -      delete convert[model].labels;
    -      Object.defineProperty(convert[model], "channels", { value: channels });
    -      Object.defineProperty(convert[model], "labels", { value: labels });
    -    }
    -    convert.rgb.hsl = function(rgb) {
    -      const r = rgb[0] / 255;
    -      const g = rgb[1] / 255;
    -      const b = rgb[2] / 255;
    -      const min = Math.min(r, g, b);
    -      const max = Math.max(r, g, b);
    -      const delta = max - min;
    -      let h;
    -      let s;
    -      if (max === min) {
    -        h = 0;
    -      } else if (r === max) {
    -        h = (g - b) / delta;
    -      } else if (g === max) {
    -        h = 2 + (b - r) / delta;
    -      } else if (b === max) {
    -        h = 4 + (r - g) / delta;
    -      }
    -      h = Math.min(h * 60, 360);
    -      if (h < 0) {
    -        h += 360;
    -      }
    -      const l = (min + max) / 2;
    -      if (max === min) {
    -        s = 0;
    -      } else if (l <= 0.5) {
    -        s = delta / (max + min);
    -      } else {
    -        s = delta / (2 - max - min);
    -      }
    -      return [h, s * 100, l * 100];
    -    };
    -    convert.rgb.hsv = function(rgb) {
    -      let rdif;
    -      let gdif;
    -      let bdif;
    -      let h;
    -      let s;
    -      const r = rgb[0] / 255;
    -      const g = rgb[1] / 255;
    -      const b = rgb[2] / 255;
    -      const v = Math.max(r, g, b);
    -      const diff = v - Math.min(r, g, b);
    -      const diffc = function(c) {
    -        return (v - c) / 6 / diff + 1 / 2;
    -      };
    -      if (diff === 0) {
    -        h = 0;
    -        s = 0;
    -      } else {
    -        s = diff / v;
    -        rdif = diffc(r);
    -        gdif = diffc(g);
    -        bdif = diffc(b);
    -        if (r === v) {
    -          h = bdif - gdif;
    -        } else if (g === v) {
    -          h = 1 / 3 + rdif - bdif;
    -        } else if (b === v) {
    -          h = 2 / 3 + gdif - rdif;
    -        }
    -        if (h < 0) {
    -          h += 1;
    -        } else if (h > 1) {
    -          h -= 1;
    -        }
    -      }
    -      return [
    -        h * 360,
    -        s * 100,
    -        v * 100
    -      ];
    -    };
    -    convert.rgb.hwb = function(rgb) {
    -      const r = rgb[0];
    -      const g = rgb[1];
    -      let b = rgb[2];
    -      const h = convert.rgb.hsl(rgb)[0];
    -      const w = 1 / 255 * Math.min(r, Math.min(g, b));
    -      b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
    -      return [h, w * 100, b * 100];
    -    };
    -    convert.rgb.cmyk = function(rgb) {
    -      const r = rgb[0] / 255;
    -      const g = rgb[1] / 255;
    -      const b = rgb[2] / 255;
    -      const k = Math.min(1 - r, 1 - g, 1 - b);
    -      const c = (1 - r - k) / (1 - k) || 0;
    -      const m = (1 - g - k) / (1 - k) || 0;
    -      const y = (1 - b - k) / (1 - k) || 0;
    -      return [c * 100, m * 100, y * 100, k * 100];
    -    };
    -    function comparativeDistance(x, y) {
    -      return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
    -    }
    -    convert.rgb.keyword = function(rgb) {
    -      const reversed = reverseKeywords[rgb];
    -      if (reversed) {
    -        return reversed;
    -      }
    -      let currentClosestDistance = Infinity;
    -      let currentClosestKeyword;
    -      for (const keyword of Object.keys(cssKeywords)) {
    -        const value = cssKeywords[keyword];
    -        const distance = comparativeDistance(rgb, value);
    -        if (distance < currentClosestDistance) {
    -          currentClosestDistance = distance;
    -          currentClosestKeyword = keyword;
    -        }
    -      }
    -      return currentClosestKeyword;
    -    };
    -    convert.keyword.rgb = function(keyword) {
    -      return cssKeywords[keyword];
    -    };
    -    convert.rgb.xyz = function(rgb) {
    -      let r = rgb[0] / 255;
    -      let g = rgb[1] / 255;
    -      let b = rgb[2] / 255;
    -      r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;
    -      g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;
    -      b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;
    -      const x = r * 0.4124 + g * 0.3576 + b * 0.1805;
    -      const y = r * 0.2126 + g * 0.7152 + b * 0.0722;
    -      const z = r * 0.0193 + g * 0.1192 + b * 0.9505;
    -      return [x * 100, y * 100, z * 100];
    -    };
    -    convert.rgb.lab = function(rgb) {
    -      const xyz = convert.rgb.xyz(rgb);
    -      let x = xyz[0];
    -      let y = xyz[1];
    -      let z = xyz[2];
    -      x /= 95.047;
    -      y /= 100;
    -      z /= 108.883;
    -      x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
    -      y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
    -      z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
    -      const l = 116 * y - 16;
    -      const a = 500 * (x - y);
    -      const b = 200 * (y - z);
    -      return [l, a, b];
    -    };
    -    convert.hsl.rgb = function(hsl) {
    -      const h = hsl[0] / 360;
    -      const s = hsl[1] / 100;
    -      const l = hsl[2] / 100;
    -      let t2;
    -      let t3;
    -      let val;
    -      if (s === 0) {
    -        val = l * 255;
    -        return [val, val, val];
    -      }
    -      if (l < 0.5) {
    -        t2 = l * (1 + s);
    -      } else {
    -        t2 = l + s - l * s;
    -      }
    -      const t1 = 2 * l - t2;
    -      const rgb = [0, 0, 0];
    -      for (let i = 0; i < 3; i++) {
    -        t3 = h + 1 / 3 * -(i - 1);
    -        if (t3 < 0) {
    -          t3++;
    -        }
    -        if (t3 > 1) {
    -          t3--;
    -        }
    -        if (6 * t3 < 1) {
    -          val = t1 + (t2 - t1) * 6 * t3;
    -        } else if (2 * t3 < 1) {
    -          val = t2;
    -        } else if (3 * t3 < 2) {
    -          val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
    -        } else {
    -          val = t1;
    -        }
    -        rgb[i] = val * 255;
    -      }
    -      return rgb;
    -    };
    -    convert.hsl.hsv = function(hsl) {
    -      const h = hsl[0];
    -      let s = hsl[1] / 100;
    -      let l = hsl[2] / 100;
    -      let smin = s;
    -      const lmin = Math.max(l, 0.01);
    -      l *= 2;
    -      s *= l <= 1 ? l : 2 - l;
    -      smin *= lmin <= 1 ? lmin : 2 - lmin;
    -      const v = (l + s) / 2;
    -      const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
    -      return [h, sv * 100, v * 100];
    -    };
    -    convert.hsv.rgb = function(hsv) {
    -      const h = hsv[0] / 60;
    -      const s = hsv[1] / 100;
    -      let v = hsv[2] / 100;
    -      const hi = Math.floor(h) % 6;
    -      const f = h - Math.floor(h);
    -      const p = 255 * v * (1 - s);
    -      const q = 255 * v * (1 - s * f);
    -      const t = 255 * v * (1 - s * (1 - f));
    -      v *= 255;
    -      switch (hi) {
    -        case 0:
    -          return [v, t, p];
    -        case 1:
    -          return [q, v, p];
    -        case 2:
    -          return [p, v, t];
    -        case 3:
    -          return [p, q, v];
    -        case 4:
    -          return [t, p, v];
    -        case 5:
    -          return [v, p, q];
    -      }
    -    };
    -    convert.hsv.hsl = function(hsv) {
    -      const h = hsv[0];
    -      const s = hsv[1] / 100;
    -      const v = hsv[2] / 100;
    -      const vmin = Math.max(v, 0.01);
    -      let sl;
    -      let l;
    -      l = (2 - s) * v;
    -      const lmin = (2 - s) * vmin;
    -      sl = s * vmin;
    -      sl /= lmin <= 1 ? lmin : 2 - lmin;
    -      sl = sl || 0;
    -      l /= 2;
    -      return [h, sl * 100, l * 100];
    -    };
    -    convert.hwb.rgb = function(hwb) {
    -      const h = hwb[0] / 360;
    -      let wh = hwb[1] / 100;
    -      let bl = hwb[2] / 100;
    -      const ratio = wh + bl;
    -      let f;
    -      if (ratio > 1) {
    -        wh /= ratio;
    -        bl /= ratio;
    -      }
    -      const i = Math.floor(6 * h);
    -      const v = 1 - bl;
    -      f = 6 * h - i;
    -      if ((i & 1) !== 0) {
    -        f = 1 - f;
    -      }
    -      const n = wh + f * (v - wh);
    -      let r;
    -      let g;
    -      let b;
    -      switch (i) {
    -        default:
    -        case 6:
    -        case 0:
    -          r = v;
    -          g = n;
    -          b = wh;
    -          break;
    -        case 1:
    -          r = n;
    -          g = v;
    -          b = wh;
    -          break;
    -        case 2:
    -          r = wh;
    -          g = v;
    -          b = n;
    -          break;
    -        case 3:
    -          r = wh;
    -          g = n;
    -          b = v;
    -          break;
    -        case 4:
    -          r = n;
    -          g = wh;
    -          b = v;
    -          break;
    -        case 5:
    -          r = v;
    -          g = wh;
    -          b = n;
    -          break;
    -      }
    -      return [r * 255, g * 255, b * 255];
    -    };
    -    convert.cmyk.rgb = function(cmyk) {
    -      const c = cmyk[0] / 100;
    -      const m = cmyk[1] / 100;
    -      const y = cmyk[2] / 100;
    -      const k = cmyk[3] / 100;
    -      const r = 1 - Math.min(1, c * (1 - k) + k);
    -      const g = 1 - Math.min(1, m * (1 - k) + k);
    -      const b = 1 - Math.min(1, y * (1 - k) + k);
    -      return [r * 255, g * 255, b * 255];
    -    };
    -    convert.xyz.rgb = function(xyz) {
    -      const x = xyz[0] / 100;
    -      const y = xyz[1] / 100;
    -      const z = xyz[2] / 100;
    -      let r;
    -      let g;
    -      let b;
    -      r = x * 3.2406 + y * -1.5372 + z * -0.4986;
    -      g = x * -0.9689 + y * 1.8758 + z * 0.0415;
    -      b = x * 0.0557 + y * -0.204 + z * 1.057;
    -      r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92;
    -      g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92;
    -      b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92;
    -      r = Math.min(Math.max(0, r), 1);
    -      g = Math.min(Math.max(0, g), 1);
    -      b = Math.min(Math.max(0, b), 1);
    -      return [r * 255, g * 255, b * 255];
    -    };
    -    convert.xyz.lab = function(xyz) {
    -      let x = xyz[0];
    -      let y = xyz[1];
    -      let z = xyz[2];
    -      x /= 95.047;
    -      y /= 100;
    -      z /= 108.883;
    -      x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
    -      y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
    -      z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
    -      const l = 116 * y - 16;
    -      const a = 500 * (x - y);
    -      const b = 200 * (y - z);
    -      return [l, a, b];
    -    };
    -    convert.lab.xyz = function(lab) {
    -      const l = lab[0];
    -      const a = lab[1];
    -      const b = lab[2];
    -      let x;
    -      let y;
    -      let z;
    -      y = (l + 16) / 116;
    -      x = a / 500 + y;
    -      z = y - b / 200;
    -      const y2 = y ** 3;
    -      const x2 = x ** 3;
    -      const z2 = z ** 3;
    -      y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;
    -      x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;
    -      z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;
    -      x *= 95.047;
    -      y *= 100;
    -      z *= 108.883;
    -      return [x, y, z];
    -    };
    -    convert.lab.lch = function(lab) {
    -      const l = lab[0];
    -      const a = lab[1];
    -      const b = lab[2];
    -      let h;
    -      const hr = Math.atan2(b, a);
    -      h = hr * 360 / 2 / Math.PI;
    -      if (h < 0) {
    -        h += 360;
    -      }
    -      const c = Math.sqrt(a * a + b * b);
    -      return [l, c, h];
    -    };
    -    convert.lch.lab = function(lch) {
    -      const l = lch[0];
    -      const c = lch[1];
    -      const h = lch[2];
    -      const hr = h / 360 * 2 * Math.PI;
    -      const a = c * Math.cos(hr);
    -      const b = c * Math.sin(hr);
    -      return [l, a, b];
    -    };
    -    convert.rgb.ansi16 = function(args, saturation = null) {
    -      const [r, g, b] = args;
    -      let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;
    -      value = Math.round(value / 50);
    -      if (value === 0) {
    -        return 30;
    -      }
    -      let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
    -      if (value === 2) {
    -        ansi += 60;
    -      }
    -      return ansi;
    -    };
    -    convert.hsv.ansi16 = function(args) {
    -      return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
    -    };
    -    convert.rgb.ansi256 = function(args) {
    -      const r = args[0];
    -      const g = args[1];
    -      const b = args[2];
    -      if (r === g && g === b) {
    -        if (r < 8) {
    -          return 16;
    -        }
    -        if (r > 248) {
    -          return 231;
    -        }
    -        return Math.round((r - 8) / 247 * 24) + 232;
    -      }
    -      const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
    -      return ansi;
    -    };
    -    convert.ansi16.rgb = function(args) {
    -      let color = args % 10;
    -      if (color === 0 || color === 7) {
    -        if (args > 50) {
    -          color += 3.5;
    -        }
    -        color = color / 10.5 * 255;
    -        return [color, color, color];
    -      }
    -      const mult = (~~(args > 50) + 1) * 0.5;
    -      const r = (color & 1) * mult * 255;
    -      const g = (color >> 1 & 1) * mult * 255;
    -      const b = (color >> 2 & 1) * mult * 255;
    -      return [r, g, b];
    -    };
    -    convert.ansi256.rgb = function(args) {
    -      if (args >= 232) {
    -        const c = (args - 232) * 10 + 8;
    -        return [c, c, c];
    -      }
    -      args -= 16;
    -      let rem;
    -      const r = Math.floor(args / 36) / 5 * 255;
    -      const g = Math.floor((rem = args % 36) / 6) / 5 * 255;
    -      const b = rem % 6 / 5 * 255;
    -      return [r, g, b];
    -    };
    -    convert.rgb.hex = function(args) {
    -      const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
    -      const string = integer.toString(16).toUpperCase();
    -      return "000000".substring(string.length) + string;
    -    };
    -    convert.hex.rgb = function(args) {
    -      const match2 = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
    -      if (!match2) {
    -        return [0, 0, 0];
    -      }
    -      let colorString = match2[0];
    -      if (match2[0].length === 3) {
    -        colorString = colorString.split("").map((char) => {
    -          return char + char;
    -        }).join("");
    -      }
    -      const integer = parseInt(colorString, 16);
    -      const r = integer >> 16 & 255;
    -      const g = integer >> 8 & 255;
    -      const b = integer & 255;
    -      return [r, g, b];
    -    };
    -    convert.rgb.hcg = function(rgb) {
    -      const r = rgb[0] / 255;
    -      const g = rgb[1] / 255;
    -      const b = rgb[2] / 255;
    -      const max = Math.max(Math.max(r, g), b);
    -      const min = Math.min(Math.min(r, g), b);
    -      const chroma = max - min;
    -      let grayscale;
    -      let hue;
    -      if (chroma < 1) {
    -        grayscale = min / (1 - chroma);
    -      } else {
    -        grayscale = 0;
    -      }
    -      if (chroma <= 0) {
    -        hue = 0;
    -      } else if (max === r) {
    -        hue = (g - b) / chroma % 6;
    -      } else if (max === g) {
    -        hue = 2 + (b - r) / chroma;
    -      } else {
    -        hue = 4 + (r - g) / chroma;
    -      }
    -      hue /= 6;
    -      hue %= 1;
    -      return [hue * 360, chroma * 100, grayscale * 100];
    -    };
    -    convert.hsl.hcg = function(hsl) {
    -      const s = hsl[1] / 100;
    -      const l = hsl[2] / 100;
    -      const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);
    -      let f = 0;
    -      if (c < 1) {
    -        f = (l - 0.5 * c) / (1 - c);
    -      }
    -      return [hsl[0], c * 100, f * 100];
    -    };
    -    convert.hsv.hcg = function(hsv) {
    -      const s = hsv[1] / 100;
    -      const v = hsv[2] / 100;
    -      const c = s * v;
    -      let f = 0;
    -      if (c < 1) {
    -        f = (v - c) / (1 - c);
    -      }
    -      return [hsv[0], c * 100, f * 100];
    -    };
    -    convert.hcg.rgb = function(hcg) {
    -      const h = hcg[0] / 360;
    -      const c = hcg[1] / 100;
    -      const g = hcg[2] / 100;
    -      if (c === 0) {
    -        return [g * 255, g * 255, g * 255];
    -      }
    -      const pure = [0, 0, 0];
    -      const hi = h % 1 * 6;
    -      const v = hi % 1;
    -      const w = 1 - v;
    -      let mg = 0;
    -      switch (Math.floor(hi)) {
    -        case 0:
    -          pure[0] = 1;
    -          pure[1] = v;
    -          pure[2] = 0;
    -          break;
    -        case 1:
    -          pure[0] = w;
    -          pure[1] = 1;
    -          pure[2] = 0;
    -          break;
    -        case 2:
    -          pure[0] = 0;
    -          pure[1] = 1;
    -          pure[2] = v;
    -          break;
    -        case 3:
    -          pure[0] = 0;
    -          pure[1] = w;
    -          pure[2] = 1;
    -          break;
    -        case 4:
    -          pure[0] = v;
    -          pure[1] = 0;
    -          pure[2] = 1;
    -          break;
    -        default:
    -          pure[0] = 1;
    -          pure[1] = 0;
    -          pure[2] = w;
    -      }
    -      mg = (1 - c) * g;
    -      return [
    -        (c * pure[0] + mg) * 255,
    -        (c * pure[1] + mg) * 255,
    -        (c * pure[2] + mg) * 255
    -      ];
    -    };
    -    convert.hcg.hsv = function(hcg) {
    -      const c = hcg[1] / 100;
    -      const g = hcg[2] / 100;
    -      const v = c + g * (1 - c);
    -      let f = 0;
    -      if (v > 0) {
    -        f = c / v;
    -      }
    -      return [hcg[0], f * 100, v * 100];
    -    };
    -    convert.hcg.hsl = function(hcg) {
    -      const c = hcg[1] / 100;
    -      const g = hcg[2] / 100;
    -      const l = g * (1 - c) + 0.5 * c;
    -      let s = 0;
    -      if (l > 0 && l < 0.5) {
    -        s = c / (2 * l);
    -      } else if (l >= 0.5 && l < 1) {
    -        s = c / (2 * (1 - l));
    -      }
    -      return [hcg[0], s * 100, l * 100];
    -    };
    -    convert.hcg.hwb = function(hcg) {
    -      const c = hcg[1] / 100;
    -      const g = hcg[2] / 100;
    -      const v = c + g * (1 - c);
    -      return [hcg[0], (v - c) * 100, (1 - v) * 100];
    -    };
    -    convert.hwb.hcg = function(hwb) {
    -      const w = hwb[1] / 100;
    -      const b = hwb[2] / 100;
    -      const v = 1 - b;
    -      const c = v - w;
    -      let g = 0;
    -      if (c < 1) {
    -        g = (v - c) / (1 - c);
    -      }
    -      return [hwb[0], c * 100, g * 100];
    -    };
    -    convert.apple.rgb = function(apple) {
    -      return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
    -    };
    -    convert.rgb.apple = function(rgb) {
    -      return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
    -    };
    -    convert.gray.rgb = function(args) {
    -      return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
    -    };
    -    convert.gray.hsl = function(args) {
    -      return [0, 0, args[0]];
    -    };
    -    convert.gray.hsv = convert.gray.hsl;
    -    convert.gray.hwb = function(gray) {
    -      return [0, 100, gray[0]];
    -    };
    -    convert.gray.cmyk = function(gray) {
    -      return [0, 0, 0, gray[0]];
    -    };
    -    convert.gray.lab = function(gray) {
    -      return [gray[0], 0, 0];
    -    };
    -    convert.gray.hex = function(gray) {
    -      const val = Math.round(gray[0] / 100 * 255) & 255;
    -      const integer = (val << 16) + (val << 8) + val;
    -      const string = integer.toString(16).toUpperCase();
    -      return "000000".substring(string.length) + string;
    -    };
    -    convert.rgb.gray = function(rgb) {
    -      const val = (rgb[0] + rgb[1] + rgb[2]) / 3;
    -      return [val / 255 * 100];
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js
    -var require_route = __commonJS({
    -  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js"(exports2, module2) {
    -    var conversions = require_conversions();
    -    function buildGraph() {
    -      const graph = {};
    -      const models = Object.keys(conversions);
    -      for (let len = models.length, i = 0; i < len; i++) {
    -        graph[models[i]] = {
    -          // http://jsperf.com/1-vs-infinity
    -          // micro-opt, but this is simple.
    -          distance: -1,
    -          parent: null
    -        };
    -      }
    -      return graph;
    -    }
    -    function deriveBFS(fromModel) {
    -      const graph = buildGraph();
    -      const queue = [fromModel];
    -      graph[fromModel].distance = 0;
    -      while (queue.length) {
    -        const current = queue.pop();
    -        const adjacents = Object.keys(conversions[current]);
    -        for (let len = adjacents.length, i = 0; i < len; i++) {
    -          const adjacent = adjacents[i];
    -          const node = graph[adjacent];
    -          if (node.distance === -1) {
    -            node.distance = graph[current].distance + 1;
    -            node.parent = current;
    -            queue.unshift(adjacent);
    -          }
    -        }
    -      }
    -      return graph;
    -    }
    -    function link(from, to) {
    -      return function(args) {
    -        return to(from(args));
    -      };
    -    }
    -    function wrapConversion(toModel, graph) {
    -      const path4 = [graph[toModel].parent, toModel];
    -      let fn = conversions[graph[toModel].parent][toModel];
    -      let cur = graph[toModel].parent;
    -      while (graph[cur].parent) {
    -        path4.unshift(graph[cur].parent);
    -        fn = link(conversions[graph[cur].parent][cur], fn);
    -        cur = graph[cur].parent;
    -      }
    -      fn.conversion = path4;
    -      return fn;
    -    }
    -    module2.exports = function(fromModel) {
    -      const graph = deriveBFS(fromModel);
    -      const conversion = {};
    -      const models = Object.keys(graph);
    -      for (let len = models.length, i = 0; i < len; i++) {
    -        const toModel = models[i];
    -        const node = graph[toModel];
    -        if (node.parent === null) {
    -          continue;
    -        }
    -        conversion[toModel] = wrapConversion(toModel, graph);
    -      }
    -      return conversion;
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js
    -var require_color_convert = __commonJS({
    -  "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js"(exports2, module2) {
    -    var conversions = require_conversions();
    -    var route = require_route();
    -    var convert = {};
    -    var models = Object.keys(conversions);
    -    function wrapRaw(fn) {
    -      const wrappedFn = function(...args) {
    -        const arg0 = args[0];
    -        if (arg0 === void 0 || arg0 === null) {
    -          return arg0;
    -        }
    -        if (arg0.length > 1) {
    -          args = arg0;
    -        }
    -        return fn(args);
    -      };
    -      if ("conversion" in fn) {
    -        wrappedFn.conversion = fn.conversion;
    -      }
    -      return wrappedFn;
    -    }
    -    function wrapRounded(fn) {
    -      const wrappedFn = function(...args) {
    -        const arg0 = args[0];
    -        if (arg0 === void 0 || arg0 === null) {
    -          return arg0;
    -        }
    -        if (arg0.length > 1) {
    -          args = arg0;
    -        }
    -        const result = fn(args);
    -        if (typeof result === "object") {
    -          for (let len = result.length, i = 0; i < len; i++) {
    -            result[i] = Math.round(result[i]);
    -          }
    -        }
    -        return result;
    -      };
    -      if ("conversion" in fn) {
    -        wrappedFn.conversion = fn.conversion;
    -      }
    -      return wrappedFn;
    -    }
    -    models.forEach((fromModel) => {
    -      convert[fromModel] = {};
    -      Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels });
    -      Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels });
    -      const routes = route(fromModel);
    -      const routeModels = Object.keys(routes);
    -      routeModels.forEach((toModel) => {
    -        const fn = routes[toModel];
    -        convert[fromModel][toModel] = wrapRounded(fn);
    -        convert[fromModel][toModel].raw = wrapRaw(fn);
    -      });
    -    });
    -    module2.exports = convert;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js
    -var require_ansi_styles = __commonJS({
    -  "../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js"(exports2, module2) {
    -    "use strict";
    -    var wrapAnsi16 = (fn, offset) => (...args) => {
    -      const code = fn(...args);
    -      return `\x1B[${code + offset}m`;
    -    };
    -    var wrapAnsi256 = (fn, offset) => (...args) => {
    -      const code = fn(...args);
    -      return `\x1B[${38 + offset};5;${code}m`;
    -    };
    -    var wrapAnsi16m = (fn, offset) => (...args) => {
    -      const rgb = fn(...args);
    -      return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
    -    };
    -    var ansi2ansi = (n) => n;
    -    var rgb2rgb = (r, g, b) => [r, g, b];
    -    var setLazyProperty = (object, property, get2) => {
    -      Object.defineProperty(object, property, {
    -        get: () => {
    -          const value = get2();
    -          Object.defineProperty(object, property, {
    -            value,
    -            enumerable: true,
    -            configurable: true
    -          });
    -          return value;
    -        },
    -        enumerable: true,
    -        configurable: true
    -      });
    -    };
    -    var colorConvert;
    -    var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {
    -      if (colorConvert === void 0) {
    -        colorConvert = require_color_convert();
    -      }
    -      const offset = isBackground ? 10 : 0;
    -      const styles = {};
    -      for (const [sourceSpace, suite] of Object.entries(colorConvert)) {
    -        const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace;
    -        if (sourceSpace === targetSpace) {
    -          styles[name] = wrap(identity, offset);
    -        } else if (typeof suite === "object") {
    -          styles[name] = wrap(suite[targetSpace], offset);
    -        }
    -      }
    -      return styles;
    -    };
    -    function assembleStyles() {
    -      const codes = /* @__PURE__ */ new Map();
    -      const styles = {
    -        modifier: {
    -          reset: [0, 0],
    -          // 21 isn't widely supported and 22 does the same thing
    -          bold: [1, 22],
    -          dim: [2, 22],
    -          italic: [3, 23],
    -          underline: [4, 24],
    -          inverse: [7, 27],
    -          hidden: [8, 28],
    -          strikethrough: [9, 29]
    -        },
    -        color: {
    -          black: [30, 39],
    -          red: [31, 39],
    -          green: [32, 39],
    -          yellow: [33, 39],
    -          blue: [34, 39],
    -          magenta: [35, 39],
    -          cyan: [36, 39],
    -          white: [37, 39],
    -          // Bright color
    -          blackBright: [90, 39],
    -          redBright: [91, 39],
    -          greenBright: [92, 39],
    -          yellowBright: [93, 39],
    -          blueBright: [94, 39],
    -          magentaBright: [95, 39],
    -          cyanBright: [96, 39],
    -          whiteBright: [97, 39]
    -        },
    -        bgColor: {
    -          bgBlack: [40, 49],
    -          bgRed: [41, 49],
    -          bgGreen: [42, 49],
    -          bgYellow: [43, 49],
    -          bgBlue: [44, 49],
    -          bgMagenta: [45, 49],
    -          bgCyan: [46, 49],
    -          bgWhite: [47, 49],
    -          // Bright color
    -          bgBlackBright: [100, 49],
    -          bgRedBright: [101, 49],
    -          bgGreenBright: [102, 49],
    -          bgYellowBright: [103, 49],
    -          bgBlueBright: [104, 49],
    -          bgMagentaBright: [105, 49],
    -          bgCyanBright: [106, 49],
    -          bgWhiteBright: [107, 49]
    -        }
    -      };
    -      styles.color.gray = styles.color.blackBright;
    -      styles.bgColor.bgGray = styles.bgColor.bgBlackBright;
    -      styles.color.grey = styles.color.blackBright;
    -      styles.bgColor.bgGrey = styles.bgColor.bgBlackBright;
    -      for (const [groupName, group] of Object.entries(styles)) {
    -        for (const [styleName, style] of Object.entries(group)) {
    -          styles[styleName] = {
    -            open: `\x1B[${style[0]}m`,
    -            close: `\x1B[${style[1]}m`
    -          };
    -          group[styleName] = styles[styleName];
    -          codes.set(style[0], style[1]);
    -        }
    -        Object.defineProperty(styles, groupName, {
    -          value: group,
    -          enumerable: false
    -        });
    -      }
    -      Object.defineProperty(styles, "codes", {
    -        value: codes,
    -        enumerable: false
    -      });
    -      styles.color.close = "\x1B[39m";
    -      styles.bgColor.close = "\x1B[49m";
    -      setLazyProperty(styles.color, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, false));
    -      setLazyProperty(styles.color, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, false));
    -      setLazyProperty(styles.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, false));
    -      setLazyProperty(styles.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, true));
    -      setLazyProperty(styles.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, true));
    -      setLazyProperty(styles.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, true));
    -      return styles;
    -    }
    -    Object.defineProperty(module2, "exports", {
    -      enumerable: true,
    -      get: assembleStyles
    -    });
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
    -var require_supports_color2 = __commonJS({
    -  "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports2, module2) {
    -    "use strict";
    -    var os = require("os");
    -    var tty = require("tty");
    -    var hasFlag = require_has_flag();
    -    var { env } = process;
    -    var forceColor;
    -    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
    -      forceColor = 0;
    -    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
    -      forceColor = 1;
    -    }
    -    if ("FORCE_COLOR" in env) {
    -      if (env.FORCE_COLOR === "true") {
    -        forceColor = 1;
    -      } else if (env.FORCE_COLOR === "false") {
    -        forceColor = 0;
    -      } else {
    -        forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
    -      }
    -    }
    -    function translateLevel(level) {
    -      if (level === 0) {
    -        return false;
    -      }
    -      return {
    -        level,
    -        hasBasic: true,
    -        has256: level >= 2,
    -        has16m: level >= 3
    -      };
    -    }
    -    function supportsColor(haveStream, streamIsTTY) {
    -      if (forceColor === 0) {
    -        return 0;
    -      }
    -      if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
    -        return 3;
    -      }
    -      if (hasFlag("color=256")) {
    -        return 2;
    -      }
    -      if (haveStream && !streamIsTTY && forceColor === void 0) {
    -        return 0;
    -      }
    -      const min = forceColor || 0;
    -      if (env.TERM === "dumb") {
    -        return min;
    -      }
    -      if (process.platform === "win32") {
    -        const osRelease = os.release().split(".");
    -        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
    -          return Number(osRelease[2]) >= 14931 ? 3 : 2;
    -        }
    -        return 1;
    -      }
    -      if ("CI" in env) {
    -        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
    -          return 1;
    -        }
    -        return min;
    -      }
    -      if ("TEAMCITY_VERSION" in env) {
    -        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
    -      }
    -      if (env.COLORTERM === "truecolor") {
    -        return 3;
    -      }
    -      if ("TERM_PROGRAM" in env) {
    -        const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
    -        switch (env.TERM_PROGRAM) {
    -          case "iTerm.app":
    -            return version >= 3 ? 3 : 2;
    -          case "Apple_Terminal":
    -            return 2;
    -        }
    -      }
    -      if (/-256(color)?$/i.test(env.TERM)) {
    -        return 2;
    -      }
    -      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
    -        return 1;
    -      }
    -      if ("COLORTERM" in env) {
    -        return 1;
    -      }
    -      return min;
    -    }
    -    function getSupportLevel(stream2) {
    -      const level = supportsColor(stream2, stream2 && stream2.isTTY);
    -      return translateLevel(level);
    -    }
    -    module2.exports = {
    -      supportsColor: getSupportLevel,
    -      stdout: translateLevel(supportsColor(true, tty.isatty(1))),
    -      stderr: translateLevel(supportsColor(true, tty.isatty(2)))
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js
    -var require_util = __commonJS({
    -  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js"(exports2, module2) {
    -    "use strict";
    -    var stringReplaceAll = (string, substring, replacer2) => {
    -      let index = string.indexOf(substring);
    -      if (index === -1) {
    -        return string;
    -      }
    -      const substringLength = substring.length;
    -      let endIndex = 0;
    -      let returnValue = "";
    -      do {
    -        returnValue += string.substr(endIndex, index - endIndex) + substring + replacer2;
    -        endIndex = index + substringLength;
    -        index = string.indexOf(substring, endIndex);
    -      } while (index !== -1);
    -      returnValue += string.substr(endIndex);
    -      return returnValue;
    -    };
    -    var stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
    -      let endIndex = 0;
    -      let returnValue = "";
    -      do {
    -        const gotCR = string[index - 1] === "\r";
    -        returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
    -        endIndex = index + 1;
    -        index = string.indexOf("\n", endIndex);
    -      } while (index !== -1);
    -      returnValue += string.substr(endIndex);
    -      return returnValue;
    -    };
    -    module2.exports = {
    -      stringReplaceAll,
    -      stringEncaseCRLFWithFirstIndex
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js
    -var require_templates = __commonJS({
    -  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js"(exports2, module2) {
    -    "use strict";
    -    var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
    -    var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
    -    var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
    -    var ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi;
    -    var ESCAPES = /* @__PURE__ */ new Map([
    -      ["n", "\n"],
    -      ["r", "\r"],
    -      ["t", "	"],
    -      ["b", "\b"],
    -      ["f", "\f"],
    -      ["v", "\v"],
    -      ["0", "\0"],
    -      ["\\", "\\"],
    -      ["e", "\x1B"],
    -      ["a", "\x07"]
    -    ]);
    -    function unescape2(c) {
    -      const u = c[0] === "u";
    -      const bracket = c[1] === "{";
    -      if (u && !bracket && c.length === 5 || c[0] === "x" && c.length === 3) {
    -        return String.fromCharCode(parseInt(c.slice(1), 16));
    -      }
    -      if (u && bracket) {
    -        return String.fromCodePoint(parseInt(c.slice(2, -1), 16));
    -      }
    -      return ESCAPES.get(c) || c;
    -    }
    -    function parseArguments(name, arguments_) {
    -      const results = [];
    -      const chunks = arguments_.trim().split(/\s*,\s*/g);
    -      let matches;
    -      for (const chunk of chunks) {
    -        const number = Number(chunk);
    -        if (!Number.isNaN(number)) {
    -          results.push(number);
    -        } else if (matches = chunk.match(STRING_REGEX)) {
    -          results.push(matches[2].replace(ESCAPE_REGEX, (m, escape2, character) => escape2 ? unescape2(escape2) : character));
    -        } else {
    -          throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
    -        }
    -      }
    -      return results;
    -    }
    -    function parseStyle(style) {
    -      STYLE_REGEX.lastIndex = 0;
    -      const results = [];
    -      let matches;
    -      while ((matches = STYLE_REGEX.exec(style)) !== null) {
    -        const name = matches[1];
    -        if (matches[2]) {
    -          const args = parseArguments(name, matches[2]);
    -          results.push([name].concat(args));
    -        } else {
    -          results.push([name]);
    -        }
    -      }
    -      return results;
    -    }
    -    function buildStyle(chalk, styles) {
    -      const enabled = {};
    -      for (const layer of styles) {
    -        for (const style of layer.styles) {
    -          enabled[style[0]] = layer.inverse ? null : style.slice(1);
    -        }
    -      }
    -      let current = chalk;
    -      for (const [styleName, styles2] of Object.entries(enabled)) {
    -        if (!Array.isArray(styles2)) {
    -          continue;
    -        }
    -        if (!(styleName in current)) {
    -          throw new Error(`Unknown Chalk style: ${styleName}`);
    -        }
    -        current = styles2.length > 0 ? current[styleName](...styles2) : current[styleName];
    -      }
    -      return current;
    -    }
    -    module2.exports = (chalk, temporary) => {
    -      const styles = [];
    -      const chunks = [];
    -      let chunk = [];
    -      temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {
    -        if (escapeCharacter) {
    -          chunk.push(unescape2(escapeCharacter));
    -        } else if (style) {
    -          const string = chunk.join("");
    -          chunk = [];
    -          chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));
    -          styles.push({ inverse, styles: parseStyle(style) });
    -        } else if (close) {
    -          if (styles.length === 0) {
    -            throw new Error("Found extraneous } in Chalk template literal");
    -          }
    -          chunks.push(buildStyle(chalk, styles)(chunk.join("")));
    -          chunk = [];
    -          styles.pop();
    -        } else {
    -          chunk.push(character);
    -        }
    -      });
    -      chunks.push(chunk.join(""));
    -      if (styles.length > 0) {
    -        const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`;
    -        throw new Error(errMessage);
    -      }
    -      return chunks.join("");
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js
    -var require_source = __commonJS({
    -  "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js"(exports2, module2) {
    -    "use strict";
    -    var ansiStyles = require_ansi_styles();
    -    var { stdout: stdoutColor, stderr: stderrColor } = require_supports_color2();
    -    var {
    -      stringReplaceAll,
    -      stringEncaseCRLFWithFirstIndex
    -    } = require_util();
    -    var { isArray } = Array;
    -    var levelMapping = [
    -      "ansi",
    -      "ansi",
    -      "ansi256",
    -      "ansi16m"
    -    ];
    -    var styles = /* @__PURE__ */ Object.create(null);
    -    var applyOptions = (object, options = {}) => {
    -      if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
    -        throw new Error("The `level` option should be an integer from 0 to 3");
    -      }
    -      const colorLevel = stdoutColor ? stdoutColor.level : 0;
    -      object.level = options.level === void 0 ? colorLevel : options.level;
    -    };
    -    var ChalkClass = class {
    -      constructor(options) {
    -        return chalkFactory(options);
    -      }
    -    };
    -    var chalkFactory = (options) => {
    -      const chalk2 = {};
    -      applyOptions(chalk2, options);
    -      chalk2.template = (...arguments_) => chalkTag(chalk2.template, ...arguments_);
    -      Object.setPrototypeOf(chalk2, Chalk.prototype);
    -      Object.setPrototypeOf(chalk2.template, chalk2);
    -      chalk2.template.constructor = () => {
    -        throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.");
    -      };
    -      chalk2.template.Instance = ChalkClass;
    -      return chalk2.template;
    -    };
    -    function Chalk(options) {
    -      return chalkFactory(options);
    -    }
    -    for (const [styleName, style] of Object.entries(ansiStyles)) {
    -      styles[styleName] = {
    -        get() {
    -          const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);
    -          Object.defineProperty(this, styleName, { value: builder });
    -          return builder;
    -        }
    -      };
    -    }
    -    styles.visible = {
    -      get() {
    -        const builder = createBuilder(this, this._styler, true);
    -        Object.defineProperty(this, "visible", { value: builder });
    -        return builder;
    -      }
    -    };
    -    var usedModels = ["rgb", "hex", "keyword", "hsl", "hsv", "hwb", "ansi", "ansi256"];
    -    for (const model of usedModels) {
    -      styles[model] = {
    -        get() {
    -          const { level } = this;
    -          return function(...arguments_) {
    -            const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);
    -            return createBuilder(this, styler, this._isEmpty);
    -          };
    -        }
    -      };
    -    }
    -    for (const model of usedModels) {
    -      const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
    -      styles[bgModel] = {
    -        get() {
    -          const { level } = this;
    -          return function(...arguments_) {
    -            const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);
    -            return createBuilder(this, styler, this._isEmpty);
    -          };
    -        }
    -      };
    -    }
    -    var proto = Object.defineProperties(() => {
    -    }, {
    -      ...styles,
    -      level: {
    -        enumerable: true,
    -        get() {
    -          return this._generator.level;
    -        },
    -        set(level) {
    -          this._generator.level = level;
    -        }
    -      }
    -    });
    -    var createStyler = (open, close, parent) => {
    -      let openAll;
    -      let closeAll;
    -      if (parent === void 0) {
    -        openAll = open;
    -        closeAll = close;
    -      } else {
    -        openAll = parent.openAll + open;
    -        closeAll = close + parent.closeAll;
    -      }
    -      return {
    -        open,
    -        close,
    -        openAll,
    -        closeAll,
    -        parent
    -      };
    -    };
    -    var createBuilder = (self2, _styler, _isEmpty) => {
    -      const builder = (...arguments_) => {
    -        if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {
    -          return applyStyle(builder, chalkTag(builder, ...arguments_));
    -        }
    -        return applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
    -      };
    -      Object.setPrototypeOf(builder, proto);
    -      builder._generator = self2;
    -      builder._styler = _styler;
    -      builder._isEmpty = _isEmpty;
    -      return builder;
    -    };
    -    var applyStyle = (self2, string) => {
    -      if (self2.level <= 0 || !string) {
    -        return self2._isEmpty ? "" : string;
    -      }
    -      let styler = self2._styler;
    -      if (styler === void 0) {
    -        return string;
    -      }
    -      const { openAll, closeAll } = styler;
    -      if (string.indexOf("\x1B") !== -1) {
    -        while (styler !== void 0) {
    -          string = stringReplaceAll(string, styler.close, styler.open);
    -          styler = styler.parent;
    -        }
    -      }
    -      const lfIndex = string.indexOf("\n");
    -      if (lfIndex !== -1) {
    -        string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
    -      }
    -      return openAll + string + closeAll;
    -    };
    -    var template;
    -    var chalkTag = (chalk2, ...strings) => {
    -      const [firstString] = strings;
    -      if (!isArray(firstString) || !isArray(firstString.raw)) {
    -        return strings.join(" ");
    -      }
    -      const arguments_ = strings.slice(1);
    -      const parts = [firstString.raw[0]];
    -      for (let i = 1; i < firstString.length; i++) {
    -        parts.push(
    -          String(arguments_[i - 1]).replace(/[{}\\]/g, "\\$&"),
    -          String(firstString.raw[i])
    -        );
    -      }
    -      if (template === void 0) {
    -        template = require_templates();
    -      }
    -      return template(chalk2, parts.join(""));
    -    };
    -    Object.defineProperties(Chalk.prototype, styles);
    -    var chalk = Chalk();
    -    chalk.supportsColor = stdoutColor;
    -    chalk.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });
    -    chalk.stderr.supportsColor = stderrColor;
    -    module2.exports = chalk;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js
    -var require_is_unicode_supported = __commonJS({
    -  "../../node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = () => {
    -      if (process.platform !== "win32") {
    -        return true;
    -      }
    -      return Boolean(process.env.CI) || Boolean(process.env.WT_SESSION) || // Windows Terminal
    -      process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty";
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js
    -var require_log_symbols = __commonJS({
    -  "../../node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js"(exports2, module2) {
    -    "use strict";
    -    var chalk = require_source();
    -    var isUnicodeSupported = require_is_unicode_supported();
    -    var main = {
    -      info: chalk.blue("\u2139"),
    -      success: chalk.green("\u2714"),
    -      warning: chalk.yellow("\u26A0"),
    -      error: chalk.red("\u2716")
    -    };
    -    var fallback = {
    -      info: chalk.blue("i"),
    -      success: chalk.green("\u221A"),
    -      warning: chalk.yellow("\u203C"),
    -      error: chalk.red("\xD7")
    -    };
    -    module2.exports = isUnicodeSupported() ? main : fallback;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/pending.js
    -var require_pending = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/pending.js"(exports2, module2) {
    -    "use strict";
    -    module2.exports = Pending;
    -    function Pending(message) {
    -      this.message = message;
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js
    -var require_ms2 = __commonJS({
    -  "../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports2, module2) {
    -    var s = 1e3;
    -    var m = s * 60;
    -    var h = m * 60;
    -    var d = h * 24;
    -    var w = d * 7;
    -    var y = d * 365.25;
    -    module2.exports = function(val, options) {
    -      options = options || {};
    -      var type2 = typeof val;
    -      if (type2 === "string" && val.length > 0) {
    -        return parse(val);
    -      } else if (type2 === "number" && isFinite(val)) {
    -        return options.long ? fmtLong(val) : fmtShort(val);
    -      }
    -      throw new Error(
    -        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
    -      );
    -    };
    -    function parse(str2) {
    -      str2 = String(str2);
    -      if (str2.length > 100) {
    -        return;
    -      }
    -      var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
    -        str2
    -      );
    -      if (!match2) {
    -        return;
    -      }
    -      var n = parseFloat(match2[1]);
    -      var type2 = (match2[2] || "ms").toLowerCase();
    -      switch (type2) {
    -        case "years":
    -        case "year":
    -        case "yrs":
    -        case "yr":
    -        case "y":
    -          return n * y;
    -        case "weeks":
    -        case "week":
    -        case "w":
    -          return n * w;
    -        case "days":
    -        case "day":
    -        case "d":
    -          return n * d;
    -        case "hours":
    -        case "hour":
    -        case "hrs":
    -        case "hr":
    -        case "h":
    -          return n * h;
    -        case "minutes":
    -        case "minute":
    -        case "mins":
    -        case "min":
    -        case "m":
    -          return n * m;
    -        case "seconds":
    -        case "second":
    -        case "secs":
    -        case "sec":
    -        case "s":
    -          return n * s;
    -        case "milliseconds":
    -        case "millisecond":
    -        case "msecs":
    -        case "msec":
    -        case "ms":
    -          return n;
    -        default:
    -          return void 0;
    -      }
    -    }
    -    function fmtShort(ms) {
    -      var msAbs = Math.abs(ms);
    -      if (msAbs >= d) {
    -        return Math.round(ms / d) + "d";
    -      }
    -      if (msAbs >= h) {
    -        return Math.round(ms / h) + "h";
    -      }
    -      if (msAbs >= m) {
    -        return Math.round(ms / m) + "m";
    -      }
    -      if (msAbs >= s) {
    -        return Math.round(ms / s) + "s";
    -      }
    -      return ms + "ms";
    -    }
    -    function fmtLong(ms) {
    -      var msAbs = Math.abs(ms);
    -      if (msAbs >= d) {
    -        return plural(ms, msAbs, d, "day");
    -      }
    -      if (msAbs >= h) {
    -        return plural(ms, msAbs, h, "hour");
    -      }
    -      if (msAbs >= m) {
    -        return plural(ms, msAbs, m, "minute");
    -      }
    -      if (msAbs >= s) {
    -        return plural(ms, msAbs, s, "second");
    -      }
    -      return ms + " ms";
    -    }
    -    function plural(ms, msAbs, n, name) {
    -      var isPlural = msAbs >= n * 1.5;
    -      return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/common.js
    -var require_common = __commonJS({
    -  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/common.js"(exports2, module2) {
    -    function setup(env) {
    -      createDebug.debug = createDebug;
    -      createDebug.default = createDebug;
    -      createDebug.coerce = coerce;
    -      createDebug.disable = disable;
    -      createDebug.enable = enable;
    -      createDebug.enabled = enabled;
    -      createDebug.humanize = require_ms2();
    -      createDebug.destroy = destroy;
    -      Object.keys(env).forEach((key) => {
    -        createDebug[key] = env[key];
    -      });
    -      createDebug.names = [];
    -      createDebug.skips = [];
    -      createDebug.formatters = {};
    -      function selectColor(namespace) {
    -        let hash = 0;
    -        for (let i = 0; i < namespace.length; i++) {
    -          hash = (hash << 5) - hash + namespace.charCodeAt(i);
    -          hash |= 0;
    -        }
    -        return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
    -      }
    -      createDebug.selectColor = selectColor;
    -      function createDebug(namespace) {
    -        let prevTime;
    -        let enableOverride = null;
    -        let namespacesCache;
    -        let enabledCache;
    -        function debug(...args) {
    -          if (!debug.enabled) {
    -            return;
    -          }
    -          const self2 = debug;
    -          const curr = Number(/* @__PURE__ */ new Date());
    -          const ms = curr - (prevTime || curr);
    -          self2.diff = ms;
    -          self2.prev = prevTime;
    -          self2.curr = curr;
    -          prevTime = curr;
    -          args[0] = createDebug.coerce(args[0]);
    -          if (typeof args[0] !== "string") {
    -            args.unshift("%O");
    -          }
    -          let index = 0;
    -          args[0] = args[0].replace(/%([a-zA-Z%])/g, (match2, format) => {
    -            if (match2 === "%%") {
    -              return "%";
    -            }
    -            index++;
    -            const formatter = createDebug.formatters[format];
    -            if (typeof formatter === "function") {
    -              const val = args[index];
    -              match2 = formatter.call(self2, val);
    -              args.splice(index, 1);
    -              index--;
    -            }
    -            return match2;
    -          });
    -          createDebug.formatArgs.call(self2, args);
    -          const logFn = self2.log || createDebug.log;
    -          logFn.apply(self2, args);
    -        }
    -        debug.namespace = namespace;
    -        debug.useColors = createDebug.useColors();
    -        debug.color = createDebug.selectColor(namespace);
    -        debug.extend = extend3;
    -        debug.destroy = createDebug.destroy;
    -        Object.defineProperty(debug, "enabled", {
    -          enumerable: true,
    -          configurable: false,
    -          get: () => {
    -            if (enableOverride !== null) {
    -              return enableOverride;
    -            }
    -            if (namespacesCache !== createDebug.namespaces) {
    -              namespacesCache = createDebug.namespaces;
    -              enabledCache = createDebug.enabled(namespace);
    -            }
    -            return enabledCache;
    -          },
    -          set: (v) => {
    -            enableOverride = v;
    -          }
    -        });
    -        if (typeof createDebug.init === "function") {
    -          createDebug.init(debug);
    -        }
    -        return debug;
    -      }
    -      function extend3(namespace, delimiter) {
    -        const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
    -        newDebug.log = this.log;
    -        return newDebug;
    -      }
    -      function enable(namespaces) {
    -        createDebug.save(namespaces);
    -        createDebug.namespaces = namespaces;
    -        createDebug.names = [];
    -        createDebug.skips = [];
    -        let i;
    -        const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
    -        const len = split.length;
    -        for (i = 0; i < len; i++) {
    -          if (!split[i]) {
    -            continue;
    -          }
    -          namespaces = split[i].replace(/\*/g, ".*?");
    -          if (namespaces[0] === "-") {
    -            createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
    -          } else {
    -            createDebug.names.push(new RegExp("^" + namespaces + "$"));
    -          }
    -        }
    -      }
    -      function disable() {
    -        const namespaces = [
    -          ...createDebug.names.map(toNamespace),
    -          ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
    -        ].join(",");
    -        createDebug.enable("");
    -        return namespaces;
    -      }
    -      function enabled(name) {
    -        if (name[name.length - 1] === "*") {
    -          return true;
    -        }
    -        let i;
    -        let len;
    -        for (i = 0, len = createDebug.skips.length; i < len; i++) {
    -          if (createDebug.skips[i].test(name)) {
    -            return false;
    -          }
    -        }
    -        for (i = 0, len = createDebug.names.length; i < len; i++) {
    -          if (createDebug.names[i].test(name)) {
    -            return true;
    -          }
    -        }
    -        return false;
    -      }
    -      function toNamespace(regexp) {
    -        return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
    -      }
    -      function coerce(val) {
    -        if (val instanceof Error) {
    -          return val.stack || val.message;
    -        }
    -        return val;
    -      }
    -      function destroy() {
    -        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
    -      }
    -      createDebug.enable(createDebug.load());
    -      return createDebug;
    -    }
    -    module2.exports = setup;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/browser.js
    -var require_browser = __commonJS({
    -  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/browser.js"(exports2, module2) {
    -    exports2.formatArgs = formatArgs;
    -    exports2.save = save;
    -    exports2.load = load2;
    -    exports2.useColors = useColors;
    -    exports2.storage = localstorage();
    -    exports2.destroy = /* @__PURE__ */ (() => {
    -      let warned2 = false;
    -      return () => {
    -        if (!warned2) {
    -          warned2 = true;
    -          console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
    -        }
    -      };
    -    })();
    -    exports2.colors = [
    -      "#0000CC",
    -      "#0000FF",
    -      "#0033CC",
    -      "#0033FF",
    -      "#0066CC",
    -      "#0066FF",
    -      "#0099CC",
    -      "#0099FF",
    -      "#00CC00",
    -      "#00CC33",
    -      "#00CC66",
    -      "#00CC99",
    -      "#00CCCC",
    -      "#00CCFF",
    -      "#3300CC",
    -      "#3300FF",
    -      "#3333CC",
    -      "#3333FF",
    -      "#3366CC",
    -      "#3366FF",
    -      "#3399CC",
    -      "#3399FF",
    -      "#33CC00",
    -      "#33CC33",
    -      "#33CC66",
    -      "#33CC99",
    -      "#33CCCC",
    -      "#33CCFF",
    -      "#6600CC",
    -      "#6600FF",
    -      "#6633CC",
    -      "#6633FF",
    -      "#66CC00",
    -      "#66CC33",
    -      "#9900CC",
    -      "#9900FF",
    -      "#9933CC",
    -      "#9933FF",
    -      "#99CC00",
    -      "#99CC33",
    -      "#CC0000",
    -      "#CC0033",
    -      "#CC0066",
    -      "#CC0099",
    -      "#CC00CC",
    -      "#CC00FF",
    -      "#CC3300",
    -      "#CC3333",
    -      "#CC3366",
    -      "#CC3399",
    -      "#CC33CC",
    -      "#CC33FF",
    -      "#CC6600",
    -      "#CC6633",
    -      "#CC9900",
    -      "#CC9933",
    -      "#CCCC00",
    -      "#CCCC33",
    -      "#FF0000",
    -      "#FF0033",
    -      "#FF0066",
    -      "#FF0099",
    -      "#FF00CC",
    -      "#FF00FF",
    -      "#FF3300",
    -      "#FF3333",
    -      "#FF3366",
    -      "#FF3399",
    -      "#FF33CC",
    -      "#FF33FF",
    -      "#FF6600",
    -      "#FF6633",
    -      "#FF9900",
    -      "#FF9933",
    -      "#FFCC00",
    -      "#FFCC33"
    -    ];
    -    function useColors() {
    -      if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
    -        return true;
    -      }
    -      if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
    -        return false;
    -      }
    -      return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
    -      typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
    -      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
    -      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
    -      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
    -    }
    -    function formatArgs(args) {
    -      args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
    -      if (!this.useColors) {
    -        return;
    -      }
    -      const c = "color: " + this.color;
    -      args.splice(1, 0, c, "color: inherit");
    -      let index = 0;
    -      let lastC = 0;
    -      args[0].replace(/%[a-zA-Z%]/g, (match2) => {
    -        if (match2 === "%%") {
    -          return;
    -        }
    -        index++;
    -        if (match2 === "%c") {
    -          lastC = index;
    -        }
    -      });
    -      args.splice(lastC, 0, c);
    -    }
    -    exports2.log = console.debug || console.log || (() => {
    -    });
    -    function save(namespaces) {
    -      try {
    -        if (namespaces) {
    -          exports2.storage.setItem("debug", namespaces);
    -        } else {
    -          exports2.storage.removeItem("debug");
    -        }
    -      } catch (error) {
    -      }
    -    }
    -    function load2() {
    -      let r;
    -      try {
    -        r = exports2.storage.getItem("debug");
    -      } catch (error) {
    -      }
    -      if (!r && typeof process !== "undefined" && "env" in process) {
    -        r = process.env.DEBUG;
    -      }
    -      return r;
    -    }
    -    function localstorage() {
    -      try {
    -        return localStorage;
    -      } catch (error) {
    -      }
    -    }
    -    module2.exports = require_common()(exports2);
    -    var { formatters } = module2.exports;
    -    formatters.j = function(v) {
    -      try {
    -        return JSON.stringify(v);
    -      } catch (error) {
    -        return "[UnexpectedJSONParseError]: " + error.message;
    -      }
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/node.js
    -var require_node = __commonJS({
    -  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/node.js"(exports2, module2) {
    -    var tty = require("tty");
    -    var util = require("util");
    -    exports2.init = init;
    -    exports2.log = log;
    -    exports2.formatArgs = formatArgs;
    -    exports2.save = save;
    -    exports2.load = load2;
    -    exports2.useColors = useColors;
    -    exports2.destroy = util.deprecate(
    -      () => {
    -      },
    -      "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
    -    );
    -    exports2.colors = [6, 2, 3, 4, 5, 1];
    -    try {
    -      const supportsColor = require_supports_color();
    -      if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
    -        exports2.colors = [
    -          20,
    -          21,
    -          26,
    -          27,
    -          32,
    -          33,
    -          38,
    -          39,
    -          40,
    -          41,
    -          42,
    -          43,
    -          44,
    -          45,
    -          56,
    -          57,
    -          62,
    -          63,
    -          68,
    -          69,
    -          74,
    -          75,
    -          76,
    -          77,
    -          78,
    -          79,
    -          80,
    -          81,
    -          92,
    -          93,
    -          98,
    -          99,
    -          112,
    -          113,
    -          128,
    -          129,
    -          134,
    -          135,
    -          148,
    -          149,
    -          160,
    -          161,
    -          162,
    -          163,
    -          164,
    -          165,
    -          166,
    -          167,
    -          168,
    -          169,
    -          170,
    -          171,
    -          172,
    -          173,
    -          178,
    -          179,
    -          184,
    -          185,
    -          196,
    -          197,
    -          198,
    -          199,
    -          200,
    -          201,
    -          202,
    -          203,
    -          204,
    -          205,
    -          206,
    -          207,
    -          208,
    -          209,
    -          214,
    -          215,
    -          220,
    -          221
    -        ];
    -      }
    -    } catch (error) {
    -    }
    -    exports2.inspectOpts = Object.keys(process.env).filter((key) => {
    -      return /^debug_/i.test(key);
    -    }).reduce((obj, key) => {
    -      const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
    -        return k.toUpperCase();
    -      });
    -      let val = process.env[key];
    -      if (/^(yes|on|true|enabled)$/i.test(val)) {
    -        val = true;
    -      } else if (/^(no|off|false|disabled)$/i.test(val)) {
    -        val = false;
    -      } else if (val === "null") {
    -        val = null;
    -      } else {
    -        val = Number(val);
    -      }
    -      obj[prop] = val;
    -      return obj;
    -    }, {});
    -    function useColors() {
    -      return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
    -    }
    -    function formatArgs(args) {
    -      const { namespace: name, useColors: useColors2 } = this;
    -      if (useColors2) {
    -        const c = this.color;
    -        const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
    -        const prefix = `  ${colorCode};1m${name} \x1B[0m`;
    -        args[0] = prefix + args[0].split("\n").join("\n" + prefix);
    -        args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
    -      } else {
    -        args[0] = getDate() + name + " " + args[0];
    -      }
    -    }
    -    function getDate() {
    -      if (exports2.inspectOpts.hideDate) {
    -        return "";
    -      }
    -      return (/* @__PURE__ */ new Date()).toISOString() + " ";
    -    }
    -    function log(...args) {
    -      return process.stderr.write(util.format(...args) + "\n");
    -    }
    -    function save(namespaces) {
    -      if (namespaces) {
    -        process.env.DEBUG = namespaces;
    -      } else {
    -        delete process.env.DEBUG;
    -      }
    -    }
    -    function load2() {
    -      return process.env.DEBUG;
    -    }
    -    function init(debug) {
    -      debug.inspectOpts = {};
    -      const keys = Object.keys(exports2.inspectOpts);
    -      for (let i = 0; i < keys.length; i++) {
    -        debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
    -      }
    -    }
    -    module2.exports = require_common()(exports2);
    -    var { formatters } = module2.exports;
    -    formatters.o = function(v) {
    -      this.inspectOpts.colors = this.useColors;
    -      return util.inspect(v, this.inspectOpts).split("\n").map((str2) => str2.trim()).join(" ");
    -    };
    -    formatters.O = function(v) {
    -      this.inspectOpts.colors = this.useColors;
    -      return util.inspect(v, this.inspectOpts);
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/index.js
    -var require_src = __commonJS({
    -  "../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/node_modules/debug/src/index.js"(exports2, module2) {
    -    if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
    -      module2.exports = require_browser();
    -    } else {
    -      module2.exports = require_node();
    -    }
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/errors.js
    -var require_errors = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/errors.js"(exports2, module2) {
    -    "use strict";
    -    var { format } = require("util");
    -    var emitWarning2 = (msg, type2) => {
    -      if (process.emitWarning) {
    -        process.emitWarning(msg, type2);
    -      } else {
    -        process.nextTick(function() {
    -          console.warn(type2 + ": " + msg);
    -        });
    -      }
    -    };
    -    var deprecate = (msg) => {
    -      msg = String(msg);
    -      if (msg && !deprecate.cache[msg]) {
    -        deprecate.cache[msg] = true;
    -        emitWarning2(msg, "DeprecationWarning");
    -      }
    -    };
    -    deprecate.cache = {};
    -    var warn = (msg) => {
    -      if (msg) {
    -        emitWarning2(msg);
    -      }
    -    };
    -    var constants = {
    -      /**
    -       * An unrecoverable error.
    -       * @constant
    -       * @default
    -       */
    -      FATAL: "ERR_MOCHA_FATAL",
    -      /**
    -       * The type of an argument to a function call is invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_ARG_TYPE: "ERR_MOCHA_INVALID_ARG_TYPE",
    -      /**
    -       * The value of an argument to a function call is invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_ARG_VALUE: "ERR_MOCHA_INVALID_ARG_VALUE",
    -      /**
    -       * Something was thrown, but it wasn't an `Error`
    -       * @constant
    -       * @default
    -       */
    -      INVALID_EXCEPTION: "ERR_MOCHA_INVALID_EXCEPTION",
    -      /**
    -       * An interface (e.g., `Mocha.interfaces`) is unknown or invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_INTERFACE: "ERR_MOCHA_INVALID_INTERFACE",
    -      /**
    -       * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_REPORTER: "ERR_MOCHA_INVALID_REPORTER",
    -      /**
    -       * `done()` was called twice in a `Test` or `Hook` callback
    -       * @constant
    -       * @default
    -       */
    -      MULTIPLE_DONE: "ERR_MOCHA_MULTIPLE_DONE",
    -      /**
    -       * No files matched the pattern provided by the user
    -       * @constant
    -       * @default
    -       */
    -      NO_FILES_MATCH_PATTERN: "ERR_MOCHA_NO_FILES_MATCH_PATTERN",
    -      /**
    -       * Known, but unsupported behavior of some kind
    -       * @constant
    -       * @default
    -       */
    -      UNSUPPORTED: "ERR_MOCHA_UNSUPPORTED",
    -      /**
    -       * Invalid state transition occurring in `Mocha` instance
    -       * @constant
    -       * @default
    -       */
    -      INSTANCE_ALREADY_RUNNING: "ERR_MOCHA_INSTANCE_ALREADY_RUNNING",
    -      /**
    -       * Invalid state transition occurring in `Mocha` instance
    -       * @constant
    -       * @default
    -       */
    -      INSTANCE_ALREADY_DISPOSED: "ERR_MOCHA_INSTANCE_ALREADY_DISPOSED",
    -      /**
    -       * Use of `only()` w/ `--forbid-only` results in this error.
    -       * @constant
    -       * @default
    -       */
    -      FORBIDDEN_EXCLUSIVITY: "ERR_MOCHA_FORBIDDEN_EXCLUSIVITY",
    -      /**
    -       * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_PLUGIN_IMPLEMENTATION: "ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION",
    -      /**
    -       * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid
    -       * @constant
    -       * @default
    -       */
    -      INVALID_PLUGIN_DEFINITION: "ERR_MOCHA_INVALID_PLUGIN_DEFINITION",
    -      /**
    -       * When a runnable exceeds its allowed run time.
    -       * @constant
    -       * @default
    -       */
    -      TIMEOUT: "ERR_MOCHA_TIMEOUT",
    -      /**
    -       * Input file is not able to be parsed
    -       * @constant
    -       * @default
    -       */
    -      UNPARSABLE_FILE: "ERR_MOCHA_UNPARSABLE_FILE"
    -    };
    -    var MOCHA_ERRORS = new Set(Object.values(constants));
    -    function createNoFilesMatchPatternError(message, pattern) {
    -      var err = new Error(message);
    -      err.code = constants.NO_FILES_MATCH_PATTERN;
    -      err.pattern = pattern;
    -      return err;
    -    }
    -    function createInvalidReporterError(message, reporter) {
    -      var err = new TypeError(message);
    -      err.code = constants.INVALID_REPORTER;
    -      err.reporter = reporter;
    -      return err;
    -    }
    -    function createInvalidInterfaceError(message, ui) {
    -      var err = new Error(message);
    -      err.code = constants.INVALID_INTERFACE;
    -      err.interface = ui;
    -      return err;
    -    }
    -    function createUnsupportedError(message) {
    -      var err = new Error(message);
    -      err.code = constants.UNSUPPORTED;
    -      return err;
    -    }
    -    function createMissingArgumentError(message, argument, expected) {
    -      return createInvalidArgumentTypeError(message, argument, expected);
    -    }
    -    function createInvalidArgumentTypeError(message, argument, expected) {
    -      var err = new TypeError(message);
    -      err.code = constants.INVALID_ARG_TYPE;
    -      err.argument = argument;
    -      err.expected = expected;
    -      err.actual = typeof argument;
    -      return err;
    -    }
    -    function createInvalidArgumentValueError(message, argument, value, reason) {
    -      var err = new TypeError(message);
    -      err.code = constants.INVALID_ARG_VALUE;
    -      err.argument = argument;
    -      err.value = value;
    -      err.reason = typeof reason !== "undefined" ? reason : "is invalid";
    -      return err;
    -    }
    -    function createInvalidExceptionError(message, value) {
    -      var err = new Error(message);
    -      err.code = constants.INVALID_EXCEPTION;
    -      err.valueType = typeof value;
    -      err.value = value;
    -      return err;
    -    }
    -    function createFatalError(message, value) {
    -      var err = new Error(message);
    -      err.code = constants.FATAL;
    -      err.valueType = typeof value;
    -      err.value = value;
    -      return err;
    -    }
    -    function createInvalidLegacyPluginError(message, pluginType, pluginId) {
    -      switch (pluginType) {
    -        case "reporter":
    -          return createInvalidReporterError(message, pluginId);
    -        case "ui":
    -          return createInvalidInterfaceError(message, pluginId);
    -        default:
    -          throw new Error('unknown pluginType "' + pluginType + '"');
    -      }
    -    }
    -    function createInvalidPluginError(...args) {
    -      deprecate("Use createInvalidLegacyPluginError() instead");
    -      return createInvalidLegacyPluginError(...args);
    -    }
    -    function createMochaInstanceAlreadyDisposedError(message, cleanReferencesAfterRun, instance) {
    -      var err = new Error(message);
    -      err.code = constants.INSTANCE_ALREADY_DISPOSED;
    -      err.cleanReferencesAfterRun = cleanReferencesAfterRun;
    -      err.instance = instance;
    -      return err;
    -    }
    -    function createMochaInstanceAlreadyRunningError(message, instance) {
    -      var err = new Error(message);
    -      err.code = constants.INSTANCE_ALREADY_RUNNING;
    -      err.instance = instance;
    -      return err;
    -    }
    -    function createMultipleDoneError(runnable, originalErr) {
    -      var title;
    -      try {
    -        title = format("<%s>", runnable.fullTitle());
    -        if (runnable.parent.root) {
    -          title += " (of root suite)";
    -        }
    -      } catch (ignored) {
    -        title = format("<%s> (of unknown suite)", runnable.title);
    -      }
    -      var message = format(
    -        "done() called multiple times in %s %s",
    -        runnable.type ? runnable.type : "unknown runnable",
    -        title
    -      );
    -      if (runnable.file) {
    -        message += format(" of file %s", runnable.file);
    -      }
    -      if (originalErr) {
    -        message += format("; in addition, done() received error: %s", originalErr);
    -      }
    -      var err = new Error(message);
    -      err.code = constants.MULTIPLE_DONE;
    -      err.valueType = typeof originalErr;
    -      err.value = originalErr;
    -      return err;
    -    }
    -    function createForbiddenExclusivityError(mocha) {
    -      var err = new Error(
    -        mocha.isWorker ? "`.only` is not supported in parallel mode" : "`.only` forbidden by --forbid-only"
    -      );
    -      err.code = constants.FORBIDDEN_EXCLUSIVITY;
    -      return err;
    -    }
    -    function createInvalidPluginDefinitionError(msg, pluginDef) {
    -      const err = new Error(msg);
    -      err.code = constants.INVALID_PLUGIN_DEFINITION;
    -      err.pluginDef = pluginDef;
    -      return err;
    -    }
    -    function createInvalidPluginImplementationError(msg, { pluginDef, pluginImpl } = {}) {
    -      const err = new Error(msg);
    -      err.code = constants.INVALID_PLUGIN_IMPLEMENTATION;
    -      err.pluginDef = pluginDef;
    -      err.pluginImpl = pluginImpl;
    -      return err;
    -    }
    -    function createTimeoutError(msg, timeout, file) {
    -      const err = new Error(msg);
    -      err.code = constants.TIMEOUT;
    -      err.timeout = timeout;
    -      err.file = file;
    -      return err;
    -    }
    -    function createUnparsableFileError(message, filename) {
    -      var err = new Error(message);
    -      err.code = constants.UNPARSABLE_FILE;
    -      return err;
    -    }
    -    var isMochaError = (err) => Boolean(err && typeof err === "object" && MOCHA_ERRORS.has(err.code));
    -    module2.exports = {
    -      constants,
    -      createFatalError,
    -      createForbiddenExclusivityError,
    -      createInvalidArgumentTypeError,
    -      createInvalidArgumentValueError,
    -      createInvalidExceptionError,
    -      createInvalidInterfaceError,
    -      createInvalidLegacyPluginError,
    -      createInvalidPluginDefinitionError,
    -      createInvalidPluginError,
    -      createInvalidPluginImplementationError,
    -      createInvalidReporterError,
    -      createMissingArgumentError,
    -      createMochaInstanceAlreadyDisposedError,
    -      createMochaInstanceAlreadyRunningError,
    -      createMultipleDoneError,
    -      createNoFilesMatchPatternError,
    -      createTimeoutError,
    -      createUnparsableFileError,
    -      createUnsupportedError,
    -      deprecate,
    -      isMochaError,
    -      warn
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runnable.js
    -var require_runnable = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runnable.js"(exports2, module2) {
    -    "use strict";
    -    var EventEmitter2 = require("events").EventEmitter;
    -    var Pending = require_pending();
    -    var debug = require_src()("mocha:runnable");
    -    var milliseconds = require_ms();
    -    var utils = require_utils();
    -    var {
    -      createInvalidExceptionError,
    -      createMultipleDoneError,
    -      createTimeoutError
    -    } = require_errors();
    -    var Date2 = global.Date;
    -    var setTimeout2 = global.setTimeout;
    -    var clearTimeout2 = global.clearTimeout;
    -    var toString2 = Object.prototype.toString;
    -    module2.exports = Runnable;
    -    function Runnable(title, fn) {
    -      this.title = title;
    -      this.fn = fn;
    -      this.body = (fn || "").toString();
    -      this.async = fn && fn.length;
    -      this.sync = !this.async;
    -      this._timeout = 2e3;
    -      this._slow = 75;
    -      this._retries = -1;
    -      utils.assignNewMochaID(this);
    -      Object.defineProperty(this, "id", {
    -        get() {
    -          return utils.getMochaID(this);
    -        }
    -      });
    -      this.reset();
    -    }
    -    utils.inherits(Runnable, EventEmitter2);
    -    Runnable.prototype.reset = function() {
    -      this.timedOut = false;
    -      this._currentRetry = 0;
    -      this.pending = false;
    -      delete this.state;
    -      delete this.err;
    -    };
    -    Runnable.prototype.timeout = function(ms) {
    -      if (!arguments.length) {
    -        return this._timeout;
    -      }
    -      if (typeof ms === "string") {
    -        ms = milliseconds(ms);
    -      }
    -      var INT_MAX = Math.pow(2, 31) - 1;
    -      var range = [0, INT_MAX];
    -      ms = utils.clamp(ms, range);
    -      if (ms === range[0] || ms === range[1]) {
    -        this._timeout = 0;
    -      } else {
    -        this._timeout = ms;
    -      }
    -      debug("timeout %d", this._timeout);
    -      if (this.timer) {
    -        this.resetTimeout();
    -      }
    -      return this;
    -    };
    -    Runnable.prototype.slow = function(ms) {
    -      if (!arguments.length || typeof ms === "undefined") {
    -        return this._slow;
    -      }
    -      if (typeof ms === "string") {
    -        ms = milliseconds(ms);
    -      }
    -      debug("slow %d", ms);
    -      this._slow = ms;
    -      return this;
    -    };
    -    Runnable.prototype.skip = function() {
    -      this.pending = true;
    -      throw new Pending("sync skip; aborting execution");
    -    };
    -    Runnable.prototype.isPending = function() {
    -      return this.pending || this.parent && this.parent.isPending();
    -    };
    -    Runnable.prototype.isFailed = function() {
    -      return !this.isPending() && this.state === constants.STATE_FAILED;
    -    };
    -    Runnable.prototype.isPassed = function() {
    -      return !this.isPending() && this.state === constants.STATE_PASSED;
    -    };
    -    Runnable.prototype.retries = function(n) {
    -      if (!arguments.length) {
    -        return this._retries;
    -      }
    -      this._retries = n;
    -    };
    -    Runnable.prototype.currentRetry = function(n) {
    -      if (!arguments.length) {
    -        return this._currentRetry;
    -      }
    -      this._currentRetry = n;
    -    };
    -    Runnable.prototype.fullTitle = function() {
    -      return this.titlePath().join(" ");
    -    };
    -    Runnable.prototype.titlePath = function() {
    -      return this.parent.titlePath().concat([this.title]);
    -    };
    -    Runnable.prototype.clearTimeout = function() {
    -      clearTimeout2(this.timer);
    -    };
    -    Runnable.prototype.resetTimeout = function() {
    -      var self2 = this;
    -      var ms = this.timeout();
    -      if (ms === 0) {
    -        return;
    -      }
    -      this.clearTimeout();
    -      this.timer = setTimeout2(function() {
    -        if (self2.timeout() === 0) {
    -          return;
    -        }
    -        self2.callback(self2._timeoutError(ms));
    -        self2.timedOut = true;
    -      }, ms);
    -    };
    -    Runnable.prototype.globals = function(globals) {
    -      if (!arguments.length) {
    -        return this._allowedGlobals;
    -      }
    -      this._allowedGlobals = globals;
    -    };
    -    Runnable.prototype.run = function(fn) {
    -      var self2 = this;
    -      var start = new Date2();
    -      var ctx = this.ctx;
    -      var finished;
    -      var errorWasHandled = false;
    -      if (this.isPending())
    -        return fn();
    -      if (ctx && ctx.runnable) {
    -        ctx.runnable(this);
    -      }
    -      function multiple(err) {
    -        if (errorWasHandled) {
    -          return;
    -        }
    -        errorWasHandled = true;
    -        self2.emit("error", createMultipleDoneError(self2, err));
    -      }
    -      function done(err) {
    -        var ms = self2.timeout();
    -        if (self2.timedOut) {
    -          return;
    -        }
    -        if (finished) {
    -          return multiple(err);
    -        }
    -        self2.clearTimeout();
    -        self2.duration = new Date2() - start;
    -        finished = true;
    -        if (!err && self2.duration > ms && ms > 0) {
    -          err = self2._timeoutError(ms);
    -        }
    -        fn(err);
    -      }
    -      this.callback = done;
    -      if (this.fn && typeof this.fn.call !== "function") {
    -        done(
    -          new TypeError(
    -            "A runnable must be passed a function as its second argument."
    -          )
    -        );
    -        return;
    -      }
    -      if (this.async) {
    -        this.resetTimeout();
    -        this.skip = function asyncSkip() {
    -          this.pending = true;
    -          done();
    -          throw new Pending("async skip; aborting execution");
    -        };
    -        try {
    -          callFnAsync(this.fn);
    -        } catch (err) {
    -          errorWasHandled = true;
    -          if (err instanceof Pending) {
    -            return;
    -          } else if (this.allowUncaught) {
    -            throw err;
    -          }
    -          done(Runnable.toValueOrError(err));
    -        }
    -        return;
    -      }
    -      try {
    -        callFn(this.fn);
    -      } catch (err) {
    -        errorWasHandled = true;
    -        if (err instanceof Pending) {
    -          return done();
    -        } else if (this.allowUncaught) {
    -          throw err;
    -        }
    -        done(Runnable.toValueOrError(err));
    -      }
    -      function callFn(fn2) {
    -        var result = fn2.call(ctx);
    -        if (result && typeof result.then === "function") {
    -          self2.resetTimeout();
    -          result.then(
    -            function() {
    -              done();
    -              return null;
    -            },
    -            function(reason) {
    -              done(reason || new Error("Promise rejected with no or falsy reason"));
    -            }
    -          );
    -        } else {
    -          if (self2.asyncOnly) {
    -            return done(
    -              new Error(
    -                "--async-only option in use without declaring `done()` or returning a promise"
    -              )
    -            );
    -          }
    -          done();
    -        }
    -      }
    -      function callFnAsync(fn2) {
    -        var result = fn2.call(ctx, function(err) {
    -          if (err instanceof Error || toString2.call(err) === "[object Error]") {
    -            return done(err);
    -          }
    -          if (err) {
    -            if (Object.prototype.toString.call(err) === "[object Object]") {
    -              return done(
    -                new Error("done() invoked with non-Error: " + JSON.stringify(err))
    -              );
    -            }
    -            return done(new Error("done() invoked with non-Error: " + err));
    -          }
    -          if (result && utils.isPromise(result)) {
    -            return done(
    -              new Error(
    -                "Resolution method is overspecified. Specify a callback *or* return a Promise; not both."
    -              )
    -            );
    -          }
    -          done();
    -        });
    -      }
    -    };
    -    Runnable.prototype._timeoutError = function(ms) {
    -      let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.`;
    -      if (this.file) {
    -        msg += " (" + this.file + ")";
    -      }
    -      return createTimeoutError(msg, ms, this.file);
    -    };
    -    var constants = utils.defineConstants(
    -      /**
    -       * {@link Runnable}-related constants.
    -       * @public
    -       * @memberof Runnable
    -       * @readonly
    -       * @static
    -       * @alias constants
    -       * @enum {string}
    -       */
    -      {
    -        /**
    -         * Value of `state` prop when a `Runnable` has failed
    -         */
    -        STATE_FAILED: "failed",
    -        /**
    -         * Value of `state` prop when a `Runnable` has passed
    -         */
    -        STATE_PASSED: "passed",
    -        /**
    -         * Value of `state` prop when a `Runnable` has been skipped by user
    -         */
    -        STATE_PENDING: "pending"
    -      }
    -    );
    -    Runnable.toValueOrError = function(value) {
    -      return value || createInvalidExceptionError(
    -        "Runnable failed with falsy or undefined exception. Please throw an Error instead.",
    -        value
    -      );
    -    };
    -    Runnable.constants = constants;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/hook.js
    -var require_hook = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/hook.js"(exports2, module2) {
    -    "use strict";
    -    var Runnable = require_runnable();
    -    var { inherits, constants } = require_utils();
    -    var { MOCHA_ID_PROP_NAME } = constants;
    -    module2.exports = Hook;
    -    function Hook(title, fn) {
    -      Runnable.call(this, title, fn);
    -      this.type = "hook";
    -    }
    -    inherits(Hook, Runnable);
    -    Hook.prototype.reset = function() {
    -      Runnable.prototype.reset.call(this);
    -      delete this._error;
    -    };
    -    Hook.prototype.error = function(err) {
    -      if (!arguments.length) {
    -        err = this._error;
    -        this._error = null;
    -        return err;
    -      }
    -      this._error = err;
    -    };
    -    Hook.prototype.serialize = function serialize2() {
    -      return {
    -        $$currentRetry: this.currentRetry(),
    -        $$fullTitle: this.fullTitle(),
    -        $$isPending: Boolean(this.isPending()),
    -        $$titlePath: this.titlePath(),
    -        ctx: this.ctx && this.ctx.currentTest ? {
    -          currentTest: {
    -            title: this.ctx.currentTest.title,
    -            [MOCHA_ID_PROP_NAME]: this.ctx.currentTest.id
    -          }
    -        } : {},
    -        duration: this.duration,
    -        file: this.file,
    -        parent: {
    -          $$fullTitle: this.parent.fullTitle(),
    -          [MOCHA_ID_PROP_NAME]: this.parent.id
    -        },
    -        state: this.state,
    -        title: this.title,
    -        type: this.type,
    -        [MOCHA_ID_PROP_NAME]: this.id
    -      };
    -    };
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/suite.js
    -var require_suite = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/suite.js"(exports2, module2) {
    -    "use strict";
    -    var { EventEmitter: EventEmitter2 } = require("events");
    -    var Hook = require_hook();
    -    var {
    -      assignNewMochaID,
    -      clamp,
    -      constants: utilsConstants,
    -      defineConstants,
    -      getMochaID,
    -      inherits,
    -      isString: isString2
    -    } = require_utils();
    -    var debug = require_src()("mocha:suite");
    -    var milliseconds = require_ms();
    -    var errors = require_errors();
    -    var { MOCHA_ID_PROP_NAME } = utilsConstants;
    -    exports2 = module2.exports = Suite;
    -    Suite.create = function(parent, title) {
    -      var suite = new Suite(title, parent.ctx);
    -      suite.parent = parent;
    -      title = suite.fullTitle();
    -      parent.addSuite(suite);
    -      return suite;
    -    };
    -    function Suite(title, parentContext, isRoot) {
    -      if (!isString2(title)) {
    -        throw errors.createInvalidArgumentTypeError(
    -          'Suite argument "title" must be a string. Received type "' + typeof title + '"',
    -          "title",
    -          "string"
    -        );
    -      }
    -      this.title = title;
    -      function Context() {
    -      }
    -      Context.prototype = parentContext;
    -      this.ctx = new Context();
    -      this.suites = [];
    -      this.tests = [];
    -      this.root = isRoot === true;
    -      this.pending = false;
    -      this._retries = -1;
    -      this._beforeEach = [];
    -      this._beforeAll = [];
    -      this._afterEach = [];
    -      this._afterAll = [];
    -      this._timeout = 2e3;
    -      this._slow = 75;
    -      this._bail = false;
    -      this._onlyTests = [];
    -      this._onlySuites = [];
    -      assignNewMochaID(this);
    -      Object.defineProperty(this, "id", {
    -        get() {
    -          return getMochaID(this);
    -        }
    -      });
    -      this.reset();
    -    }
    -    inherits(Suite, EventEmitter2);
    -    Suite.prototype.reset = function() {
    -      this.delayed = false;
    -      function doReset(thingToReset) {
    -        thingToReset.reset();
    -      }
    -      this.suites.forEach(doReset);
    -      this.tests.forEach(doReset);
    -      this._beforeEach.forEach(doReset);
    -      this._afterEach.forEach(doReset);
    -      this._beforeAll.forEach(doReset);
    -      this._afterAll.forEach(doReset);
    -    };
    -    Suite.prototype.clone = function() {
    -      var suite = new Suite(this.title);
    -      debug("clone");
    -      suite.ctx = this.ctx;
    -      suite.root = this.root;
    -      suite.timeout(this.timeout());
    -      suite.retries(this.retries());
    -      suite.slow(this.slow());
    -      suite.bail(this.bail());
    -      return suite;
    -    };
    -    Suite.prototype.timeout = function(ms) {
    -      if (!arguments.length) {
    -        return this._timeout;
    -      }
    -      if (typeof ms === "string") {
    -        ms = milliseconds(ms);
    -      }
    -      var INT_MAX = Math.pow(2, 31) - 1;
    -      var range = [0, INT_MAX];
    -      ms = clamp(ms, range);
    -      debug("timeout %d", ms);
    -      this._timeout = parseInt(ms, 10);
    -      return this;
    -    };
    -    Suite.prototype.retries = function(n) {
    -      if (!arguments.length) {
    -        return this._retries;
    -      }
    -      debug("retries %d", n);
    -      this._retries = parseInt(n, 10) || 0;
    -      return this;
    -    };
    -    Suite.prototype.slow = function(ms) {
    -      if (!arguments.length) {
    -        return this._slow;
    -      }
    -      if (typeof ms === "string") {
    -        ms = milliseconds(ms);
    -      }
    -      debug("slow %d", ms);
    -      this._slow = ms;
    -      return this;
    -    };
    -    Suite.prototype.bail = function(bail) {
    -      if (!arguments.length) {
    -        return this._bail;
    -      }
    -      debug("bail %s", bail);
    -      this._bail = bail;
    -      return this;
    -    };
    -    Suite.prototype.isPending = function() {
    -      return this.pending || this.parent && this.parent.isPending();
    -    };
    -    Suite.prototype._createHook = function(title, fn) {
    -      var hook = new Hook(title, fn);
    -      hook.parent = this;
    -      hook.timeout(this.timeout());
    -      hook.retries(this.retries());
    -      hook.slow(this.slow());
    -      hook.ctx = this.ctx;
    -      hook.file = this.file;
    -      return hook;
    -    };
    -    Suite.prototype.beforeAll = function(title, fn) {
    -      if (this.isPending()) {
    -        return this;
    -      }
    -      if (typeof title === "function") {
    -        fn = title;
    -        title = fn.name;
    -      }
    -      title = '"before all" hook' + (title ? ": " + title : "");
    -      var hook = this._createHook(title, fn);
    -      this._beforeAll.push(hook);
    -      this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);
    -      return this;
    -    };
    -    Suite.prototype.afterAll = function(title, fn) {
    -      if (this.isPending()) {
    -        return this;
    -      }
    -      if (typeof title === "function") {
    -        fn = title;
    -        title = fn.name;
    -      }
    -      title = '"after all" hook' + (title ? ": " + title : "");
    -      var hook = this._createHook(title, fn);
    -      this._afterAll.push(hook);
    -      this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);
    -      return this;
    -    };
    -    Suite.prototype.beforeEach = function(title, fn) {
    -      if (this.isPending()) {
    -        return this;
    -      }
    -      if (typeof title === "function") {
    -        fn = title;
    -        title = fn.name;
    -      }
    -      title = '"before each" hook' + (title ? ": " + title : "");
    -      var hook = this._createHook(title, fn);
    -      this._beforeEach.push(hook);
    -      this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);
    -      return this;
    -    };
    -    Suite.prototype.afterEach = function(title, fn) {
    -      if (this.isPending()) {
    -        return this;
    -      }
    -      if (typeof title === "function") {
    -        fn = title;
    -        title = fn.name;
    -      }
    -      title = '"after each" hook' + (title ? ": " + title : "");
    -      var hook = this._createHook(title, fn);
    -      this._afterEach.push(hook);
    -      this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);
    -      return this;
    -    };
    -    Suite.prototype.addSuite = function(suite) {
    -      suite.parent = this;
    -      suite.root = false;
    -      suite.timeout(this.timeout());
    -      suite.retries(this.retries());
    -      suite.slow(this.slow());
    -      suite.bail(this.bail());
    -      this.suites.push(suite);
    -      this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);
    -      return this;
    -    };
    -    Suite.prototype.addTest = function(test) {
    -      test.parent = this;
    -      test.timeout(this.timeout());
    -      test.retries(this.retries());
    -      test.slow(this.slow());
    -      test.ctx = this.ctx;
    -      this.tests.push(test);
    -      this.emit(constants.EVENT_SUITE_ADD_TEST, test);
    -      return this;
    -    };
    -    Suite.prototype.fullTitle = function() {
    -      return this.titlePath().join(" ");
    -    };
    -    Suite.prototype.titlePath = function() {
    -      var result = [];
    -      if (this.parent) {
    -        result = result.concat(this.parent.titlePath());
    -      }
    -      if (!this.root) {
    -        result.push(this.title);
    -      }
    -      return result;
    -    };
    -    Suite.prototype.total = function() {
    -      return this.suites.reduce(function(sum, suite) {
    -        return sum + suite.total();
    -      }, 0) + this.tests.length;
    -    };
    -    Suite.prototype.eachTest = function(fn) {
    -      this.tests.forEach(fn);
    -      this.suites.forEach(function(suite) {
    -        suite.eachTest(fn);
    -      });
    -      return this;
    -    };
    -    Suite.prototype.run = function run2() {
    -      if (this.root) {
    -        this.emit(constants.EVENT_ROOT_SUITE_RUN);
    -      }
    -    };
    -    Suite.prototype.hasOnly = function hasOnly() {
    -      return this._onlyTests.length > 0 || this._onlySuites.length > 0 || this.suites.some(function(suite) {
    -        return suite.hasOnly();
    -      });
    -    };
    -    Suite.prototype.filterOnly = function filterOnly() {
    -      if (this._onlyTests.length) {
    -        this.tests = this._onlyTests;
    -        this.suites = [];
    -      } else {
    -        this.tests = [];
    -        this._onlySuites.forEach(function(onlySuite) {
    -          if (onlySuite.hasOnly()) {
    -            onlySuite.filterOnly();
    -          }
    -        });
    -        var onlySuites = this._onlySuites;
    -        this.suites = this.suites.filter(function(childSuite) {
    -          return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();
    -        });
    -      }
    -      return this.tests.length > 0 || this.suites.length > 0;
    -    };
    -    Suite.prototype.appendOnlySuite = function(suite) {
    -      this._onlySuites.push(suite);
    -    };
    -    Suite.prototype.markOnly = function() {
    -      this.parent && this.parent.appendOnlySuite(this);
    -    };
    -    Suite.prototype.appendOnlyTest = function(test) {
    -      this._onlyTests.push(test);
    -    };
    -    Suite.prototype.getHooks = function getHooks(name) {
    -      return this["_" + name];
    -    };
    -    Suite.prototype.dispose = function() {
    -      this.suites.forEach(function(suite) {
    -        suite.dispose();
    -      });
    -      this.cleanReferences();
    -    };
    -    Suite.prototype.cleanReferences = function cleanReferences() {
    -      function cleanArrReferences(arr) {
    -        for (var i2 = 0; i2 < arr.length; i2++) {
    -          delete arr[i2].fn;
    -        }
    -      }
    -      if (Array.isArray(this._beforeAll)) {
    -        cleanArrReferences(this._beforeAll);
    -      }
    -      if (Array.isArray(this._beforeEach)) {
    -        cleanArrReferences(this._beforeEach);
    -      }
    -      if (Array.isArray(this._afterAll)) {
    -        cleanArrReferences(this._afterAll);
    -      }
    -      if (Array.isArray(this._afterEach)) {
    -        cleanArrReferences(this._afterEach);
    -      }
    -      for (var i = 0; i < this.tests.length; i++) {
    -        delete this.tests[i].fn;
    -      }
    -    };
    -    Suite.prototype.serialize = function serialize2() {
    -      return {
    -        _bail: this._bail,
    -        $$fullTitle: this.fullTitle(),
    -        $$isPending: Boolean(this.isPending()),
    -        root: this.root,
    -        title: this.title,
    -        [MOCHA_ID_PROP_NAME]: this.id,
    -        parent: this.parent ? { [MOCHA_ID_PROP_NAME]: this.parent.id } : null
    -      };
    -    };
    -    var constants = defineConstants(
    -      /**
    -       * {@link Suite}-related constants.
    -       * @public
    -       * @memberof Suite
    -       * @alias constants
    -       * @readonly
    -       * @static
    -       * @enum {string}
    -       */
    -      {
    -        /**
    -         * Event emitted after a test file has been loaded. Not emitted in browser.
    -         */
    -        EVENT_FILE_POST_REQUIRE: "post-require",
    -        /**
    -         * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.
    -         */
    -        EVENT_FILE_PRE_REQUIRE: "pre-require",
    -        /**
    -         * Event emitted immediately after a test file has been loaded. Not emitted in browser.
    -         */
    -        EVENT_FILE_REQUIRE: "require",
    -        /**
    -         * Event emitted when `global.run()` is called (use with `delay` option).
    -         */
    -        EVENT_ROOT_SUITE_RUN: "run",
    -        /**
    -         * Namespace for collection of a `Suite`'s "after all" hooks.
    -         */
    -        HOOK_TYPE_AFTER_ALL: "afterAll",
    -        /**
    -         * Namespace for collection of a `Suite`'s "after each" hooks.
    -         */
    -        HOOK_TYPE_AFTER_EACH: "afterEach",
    -        /**
    -         * Namespace for collection of a `Suite`'s "before all" hooks.
    -         */
    -        HOOK_TYPE_BEFORE_ALL: "beforeAll",
    -        /**
    -         * Namespace for collection of a `Suite`'s "before each" hooks.
    -         */
    -        HOOK_TYPE_BEFORE_EACH: "beforeEach",
    -        /**
    -         * Emitted after a child `Suite` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_SUITE: "suite",
    -        /**
    -         * Emitted after an "after all" `Hook` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_HOOK_AFTER_ALL: "afterAll",
    -        /**
    -         * Emitted after an "after each" `Hook` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_HOOK_AFTER_EACH: "afterEach",
    -        /**
    -         * Emitted after an "before all" `Hook` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_HOOK_BEFORE_ALL: "beforeAll",
    -        /**
    -         * Emitted after an "before each" `Hook` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_HOOK_BEFORE_EACH: "beforeEach",
    -        /**
    -         * Emitted after a `Test` has been added to a `Suite`.
    -         */
    -        EVENT_SUITE_ADD_TEST: "test"
    -      }
    -    );
    -    Suite.constants = constants;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runner.js
    -var require_runner = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/runner.js"(exports2, module2) {
    -    "use strict";
    -    var EventEmitter2 = require("events").EventEmitter;
    -    var Pending = require_pending();
    -    var utils = require_utils();
    -    var debug = require_src()("mocha:runner");
    -    var Runnable = require_runnable();
    -    var Suite = require_suite();
    -    var HOOK_TYPE_BEFORE_EACH = Suite.constants.HOOK_TYPE_BEFORE_EACH;
    -    var HOOK_TYPE_AFTER_EACH = Suite.constants.HOOK_TYPE_AFTER_EACH;
    -    var HOOK_TYPE_AFTER_ALL = Suite.constants.HOOK_TYPE_AFTER_ALL;
    -    var HOOK_TYPE_BEFORE_ALL = Suite.constants.HOOK_TYPE_BEFORE_ALL;
    -    var EVENT_ROOT_SUITE_RUN = Suite.constants.EVENT_ROOT_SUITE_RUN;
    -    var STATE_FAILED = Runnable.constants.STATE_FAILED;
    -    var STATE_PASSED = Runnable.constants.STATE_PASSED;
    -    var STATE_PENDING = Runnable.constants.STATE_PENDING;
    -    var stackFilter = utils.stackTraceFilter();
    -    var stringify = utils.stringify;
    -    var {
    -      createInvalidExceptionError,
    -      createUnsupportedError,
    -      createFatalError,
    -      isMochaError,
    -      constants: errorConstants
    -    } = require_errors();
    -    var globals = [
    -      "setTimeout",
    -      "clearTimeout",
    -      "setInterval",
    -      "clearInterval",
    -      "XMLHttpRequest",
    -      "Date",
    -      "setImmediate",
    -      "clearImmediate"
    -    ];
    -    var constants = utils.defineConstants(
    -      /**
    -       * {@link Runner}-related constants.
    -       * @public
    -       * @memberof Runner
    -       * @readonly
    -       * @alias constants
    -       * @static
    -       * @enum {string}
    -       */
    -      {
    -        /**
    -         * Emitted when {@link Hook} execution begins
    -         */
    -        EVENT_HOOK_BEGIN: "hook",
    -        /**
    -         * Emitted when {@link Hook} execution ends
    -         */
    -        EVENT_HOOK_END: "hook end",
    -        /**
    -         * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)
    -         */
    -        EVENT_RUN_BEGIN: "start",
    -        /**
    -         * Emitted when Root {@link Suite} execution has been delayed via `delay` option
    -         */
    -        EVENT_DELAY_BEGIN: "waiting",
    -        /**
    -         * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`
    -         */
    -        EVENT_DELAY_END: "ready",
    -        /**
    -         * Emitted when Root {@link Suite} execution ends
    -         */
    -        EVENT_RUN_END: "end",
    -        /**
    -         * Emitted when {@link Suite} execution begins
    -         */
    -        EVENT_SUITE_BEGIN: "suite",
    -        /**
    -         * Emitted when {@link Suite} execution ends
    -         */
    -        EVENT_SUITE_END: "suite end",
    -        /**
    -         * Emitted when {@link Test} execution begins
    -         */
    -        EVENT_TEST_BEGIN: "test",
    -        /**
    -         * Emitted when {@link Test} execution ends
    -         */
    -        EVENT_TEST_END: "test end",
    -        /**
    -         * Emitted when {@link Test} execution fails
    -         */
    -        EVENT_TEST_FAIL: "fail",
    -        /**
    -         * Emitted when {@link Test} execution succeeds
    -         */
    -        EVENT_TEST_PASS: "pass",
    -        /**
    -         * Emitted when {@link Test} becomes pending
    -         */
    -        EVENT_TEST_PENDING: "pending",
    -        /**
    -         * Emitted when {@link Test} execution has failed, but will retry
    -         */
    -        EVENT_TEST_RETRY: "retry",
    -        /**
    -         * Initial state of Runner
    -         */
    -        STATE_IDLE: "idle",
    -        /**
    -         * State set to this value when the Runner has started running
    -         */
    -        STATE_RUNNING: "running",
    -        /**
    -         * State set to this value when the Runner has stopped
    -         */
    -        STATE_STOPPED: "stopped"
    -      }
    -    );
    -    var Runner = class extends EventEmitter2 {
    -      /**
    -       * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.
    -       *
    -       * @extends external:EventEmitter
    -       * @public
    -       * @class
    -       * @param {Suite} suite - Root suite
    -       * @param {Object} [opts] - Settings object
    -       * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
    -       * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.
    -       * @param {boolean} [opts.dryRun] - Whether to report tests without running them.
    -       * @param {boolean} [opts.failZero] - Whether to fail test run if zero tests encountered.
    -       */
    -      constructor(suite, opts = {}) {
    -        super();
    -        var self2 = this;
    -        this._globals = [];
    -        this._abort = false;
    -        this.suite = suite;
    -        this._opts = opts;
    -        this.state = constants.STATE_IDLE;
    -        this.total = suite.total();
    -        this.failures = 0;
    -        this._eventListeners = /* @__PURE__ */ new Map();
    -        this.on(constants.EVENT_TEST_END, function(test) {
    -          if (test.type === "test" && test.retriedTest() && test.parent) {
    -            var idx = test.parent.tests && test.parent.tests.indexOf(test.retriedTest());
    -            if (idx > -1)
    -              test.parent.tests[idx] = test;
    -          }
    -          self2.checkGlobals(test);
    -        });
    -        this.on(constants.EVENT_HOOK_END, function(hook) {
    -          self2.checkGlobals(hook);
    -        });
    -        this._defaultGrep = /.*/;
    -        this.grep(this._defaultGrep);
    -        this.globals(this.globalProps());
    -        this.uncaught = this._uncaught.bind(this);
    -        this.unhandled = (reason, promise) => {
    -          if (isMochaError(reason)) {
    -            debug(
    -              "trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:",
    -              reason
    -            );
    -            this.uncaught(reason);
    -          } else {
    -            debug(
    -              "trapped unhandled rejection from (probably) user code; re-emitting on process"
    -            );
    -            this._removeEventListener(
    -              process,
    -              "unhandledRejection",
    -              this.unhandled
    -            );
    -            try {
    -              process.emit("unhandledRejection", reason, promise);
    -            } finally {
    -              this._addEventListener(process, "unhandledRejection", this.unhandled);
    -            }
    -          }
    -        };
    -      }
    -    };
    -    Runner.immediately = global.setImmediate || process.nextTick;
    -    Runner.prototype._addEventListener = function(target, eventName, listener) {
    -      debug(
    -        "_addEventListener(): adding for event %s; %d current listeners",
    -        eventName,
    -        target.listenerCount(eventName)
    -      );
    -      if (this._eventListeners.has(target) && this._eventListeners.get(target).has(eventName) && this._eventListeners.get(target).get(eventName).has(listener)) {
    -        debug(
    -          "warning: tried to attach duplicate event listener for %s",
    -          eventName
    -        );
    -        return;
    -      }
    -      target.on(eventName, listener);
    -      const targetListeners = this._eventListeners.has(target) ? this._eventListeners.get(target) : /* @__PURE__ */ new Map();
    -      const targetEventListeners = targetListeners.has(eventName) ? targetListeners.get(eventName) : /* @__PURE__ */ new Set();
    -      targetEventListeners.add(listener);
    -      targetListeners.set(eventName, targetEventListeners);
    -      this._eventListeners.set(target, targetListeners);
    -    };
    -    Runner.prototype._removeEventListener = function(target, eventName, listener) {
    -      target.removeListener(eventName, listener);
    -      if (this._eventListeners.has(target)) {
    -        const targetListeners = this._eventListeners.get(target);
    -        if (targetListeners.has(eventName)) {
    -          const targetEventListeners = targetListeners.get(eventName);
    -          targetEventListeners.delete(listener);
    -          if (!targetEventListeners.size) {
    -            targetListeners.delete(eventName);
    -          }
    -        }
    -        if (!targetListeners.size) {
    -          this._eventListeners.delete(target);
    -        }
    -      } else {
    -        debug("trying to remove listener for untracked object %s", target);
    -      }
    -    };
    -    Runner.prototype.dispose = function() {
    -      this.removeAllListeners();
    -      this._eventListeners.forEach((targetListeners, target) => {
    -        targetListeners.forEach((targetEventListeners, eventName) => {
    -          targetEventListeners.forEach((listener) => {
    -            target.removeListener(eventName, listener);
    -          });
    -        });
    -      });
    -      this._eventListeners.clear();
    -    };
    -    Runner.prototype.grep = function(re, invert) {
    -      debug("grep(): setting to %s", re);
    -      this._grep = re;
    -      this._invert = invert;
    -      this.total = this.grepTotal(this.suite);
    -      return this;
    -    };
    -    Runner.prototype.grepTotal = function(suite) {
    -      var self2 = this;
    -      var total = 0;
    -      suite.eachTest(function(test) {
    -        var match2 = self2._grep.test(test.fullTitle());
    -        if (self2._invert) {
    -          match2 = !match2;
    -        }
    -        if (match2) {
    -          total++;
    -        }
    -      });
    -      return total;
    -    };
    -    Runner.prototype.globalProps = function() {
    -      var props = Object.keys(global);
    -      for (var i = 0; i < globals.length; ++i) {
    -        if (~props.indexOf(globals[i])) {
    -          continue;
    -        }
    -        props.push(globals[i]);
    -      }
    -      return props;
    -    };
    -    Runner.prototype.globals = function(arr) {
    -      if (!arguments.length) {
    -        return this._globals;
    -      }
    -      debug("globals(): setting to %O", arr);
    -      this._globals = this._globals.concat(arr);
    -      return this;
    -    };
    -    Runner.prototype.checkGlobals = function(test) {
    -      if (!this.checkLeaks) {
    -        return;
    -      }
    -      var ok = this._globals;
    -      var globals2 = this.globalProps();
    -      var leaks;
    -      if (test) {
    -        ok = ok.concat(test._allowedGlobals || []);
    -      }
    -      if (this.prevGlobalsLength === globals2.length) {
    -        return;
    -      }
    -      this.prevGlobalsLength = globals2.length;
    -      leaks = filterLeaks(ok, globals2);
    -      this._globals = this._globals.concat(leaks);
    -      if (leaks.length) {
    -        var msg = `global leak(s) detected: ${leaks.map((e) => `'${e}'`).join(", ")}`;
    -        this.fail(test, new Error(msg));
    -      }
    -    };
    -    Runner.prototype.fail = function(test, err, force) {
    -      force = force === true;
    -      if (test.isPending() && !force) {
    -        return;
    -      }
    -      if (this.state === constants.STATE_STOPPED) {
    -        if (err.code === errorConstants.MULTIPLE_DONE) {
    -          throw err;
    -        }
    -        throw createFatalError(
    -          "Test failed after root suite execution completed!",
    -          err
    -        );
    -      }
    -      ++this.failures;
    -      debug("total number of failures: %d", this.failures);
    -      test.state = STATE_FAILED;
    -      if (!isError(err)) {
    -        err = thrown2Error(err);
    -      }
    -      try {
    -        err.stack = this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);
    -      } catch (ignore) {
    -      }
    -      this.emit(constants.EVENT_TEST_FAIL, test, err);
    -    };
    -    Runner.prototype.hook = function(name, fn) {
    -      if (this._opts.dryRun)
    -        return fn();
    -      var suite = this.suite;
    -      var hooks = suite.getHooks(name);
    -      var self2 = this;
    -      function next(i) {
    -        var hook = hooks[i];
    -        if (!hook) {
    -          return fn();
    -        }
    -        self2.currentRunnable = hook;
    -        if (name === HOOK_TYPE_BEFORE_ALL) {
    -          hook.ctx.currentTest = hook.parent.tests[0];
    -        } else if (name === HOOK_TYPE_AFTER_ALL) {
    -          hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];
    -        } else {
    -          hook.ctx.currentTest = self2.test;
    -        }
    -        setHookTitle(hook);
    -        hook.allowUncaught = self2.allowUncaught;
    -        self2.emit(constants.EVENT_HOOK_BEGIN, hook);
    -        if (!hook.listeners("error").length) {
    -          self2._addEventListener(hook, "error", function(err) {
    -            self2.fail(hook, err);
    -          });
    -        }
    -        hook.run(function cbHookRun(err) {
    -          var testError = hook.error();
    -          if (testError) {
    -            self2.fail(self2.test, testError);
    -          }
    -          if (hook.pending) {
    -            if (name === HOOK_TYPE_AFTER_EACH) {
    -              if (self2.test) {
    -                self2.test.pending = true;
    -              }
    -            } else if (name === HOOK_TYPE_BEFORE_EACH) {
    -              if (self2.test) {
    -                self2.test.pending = true;
    -              }
    -              self2.emit(constants.EVENT_HOOK_END, hook);
    -              hook.pending = false;
    -              return fn(new Error("abort hookDown"));
    -            } else if (name === HOOK_TYPE_BEFORE_ALL) {
    -              suite.tests.forEach(function(test) {
    -                test.pending = true;
    -              });
    -              suite.suites.forEach(function(suite2) {
    -                suite2.pending = true;
    -              });
    -              hooks = [];
    -            } else {
    -              hook.pending = false;
    -              var errForbid = createUnsupportedError("`this.skip` forbidden");
    -              self2.fail(hook, errForbid);
    -              return fn(errForbid);
    -            }
    -          } else if (err) {
    -            self2.fail(hook, err);
    -            return fn(err);
    -          }
    -          self2.emit(constants.EVENT_HOOK_END, hook);
    -          delete hook.ctx.currentTest;
    -          setHookTitle(hook);
    -          next(++i);
    -        });
    -        function setHookTitle(hook2) {
    -          hook2.originalTitle = hook2.originalTitle || hook2.title;
    -          if (hook2.ctx && hook2.ctx.currentTest) {
    -            hook2.title = `${hook2.originalTitle} for "${hook2.ctx.currentTest.title}"`;
    -          } else {
    -            var parentTitle;
    -            if (hook2.parent.title) {
    -              parentTitle = hook2.parent.title;
    -            } else {
    -              parentTitle = hook2.parent.root ? "{root}" : "";
    -            }
    -            hook2.title = `${hook2.originalTitle} in "${parentTitle}"`;
    -          }
    -        }
    -      }
    -      Runner.immediately(function() {
    -        next(0);
    -      });
    -    };
    -    Runner.prototype.hooks = function(name, suites, fn) {
    -      var self2 = this;
    -      var orig = this.suite;
    -      function next(suite) {
    -        self2.suite = suite;
    -        if (!suite) {
    -          self2.suite = orig;
    -          return fn();
    -        }
    -        self2.hook(name, function(err) {
    -          if (err) {
    -            var errSuite = self2.suite;
    -            self2.suite = orig;
    -            return fn(err, errSuite);
    -          }
    -          next(suites.pop());
    -        });
    -      }
    -      next(suites.pop());
    -    };
    -    Runner.prototype.hookUp = function(name, fn) {
    -      var suites = [this.suite].concat(this.parents()).reverse();
    -      this.hooks(name, suites, fn);
    -    };
    -    Runner.prototype.hookDown = function(name, fn) {
    -      var suites = [this.suite].concat(this.parents());
    -      this.hooks(name, suites, fn);
    -    };
    -    Runner.prototype.parents = function() {
    -      var suite = this.suite;
    -      var suites = [];
    -      while (suite.parent) {
    -        suite = suite.parent;
    -        suites.push(suite);
    -      }
    -      return suites;
    -    };
    -    Runner.prototype.runTest = function(fn) {
    -      if (this._opts.dryRun)
    -        return Runner.immediately(fn);
    -      var self2 = this;
    -      var test = this.test;
    -      if (!test) {
    -        return;
    -      }
    -      if (this.asyncOnly) {
    -        test.asyncOnly = true;
    -      }
    -      this._addEventListener(test, "error", function(err) {
    -        self2.fail(test, err);
    -      });
    -      if (this.allowUncaught) {
    -        test.allowUncaught = true;
    -        return test.run(fn);
    -      }
    -      try {
    -        test.run(fn);
    -      } catch (err) {
    -        fn(err);
    -      }
    -    };
    -    Runner.prototype.runTests = function(suite, fn) {
    -      var self2 = this;
    -      var tests = suite.tests.slice();
    -      var test;
    -      function hookErr(_, errSuite, after) {
    -        var orig = self2.suite;
    -        self2.suite = after ? errSuite.parent : errSuite;
    -        if (self2.suite) {
    -          self2.hookUp(HOOK_TYPE_AFTER_EACH, function(err2, errSuite2) {
    -            self2.suite = orig;
    -            if (err2) {
    -              return hookErr(err2, errSuite2, true);
    -            }
    -            fn(errSuite);
    -          });
    -        } else {
    -          self2.suite = orig;
    -          fn(errSuite);
    -        }
    -      }
    -      function next(err, errSuite) {
    -        if (self2.failures && suite._bail) {
    -          tests = [];
    -        }
    -        if (self2._abort) {
    -          return fn();
    -        }
    -        if (err) {
    -          return hookErr(err, errSuite, true);
    -        }
    -        test = tests.shift();
    -        if (!test) {
    -          return fn();
    -        }
    -        var match2 = self2._grep.test(test.fullTitle());
    -        if (self2._invert) {
    -          match2 = !match2;
    -        }
    -        if (!match2) {
    -          if (self2._grep !== self2._defaultGrep) {
    -            Runner.immediately(next);
    -          } else {
    -            next();
    -          }
    -          return;
    -        }
    -        if (test.isPending()) {
    -          if (self2.forbidPending) {
    -            self2.fail(test, new Error("Pending test forbidden"), true);
    -          } else {
    -            test.state = STATE_PENDING;
    -            self2.emit(constants.EVENT_TEST_PENDING, test);
    -          }
    -          self2.emit(constants.EVENT_TEST_END, test);
    -          return next();
    -        }
    -        self2.emit(constants.EVENT_TEST_BEGIN, self2.test = test);
    -        self2.hookDown(HOOK_TYPE_BEFORE_EACH, function(err2, errSuite2) {
    -          if (test.isPending()) {
    -            if (self2.forbidPending) {
    -              self2.fail(test, new Error("Pending test forbidden"), true);
    -            } else {
    -              test.state = STATE_PENDING;
    -              self2.emit(constants.EVENT_TEST_PENDING, test);
    -            }
    -            self2.emit(constants.EVENT_TEST_END, test);
    -            var origSuite = self2.suite;
    -            self2.suite = errSuite2 || self2.suite;
    -            return self2.hookUp(HOOK_TYPE_AFTER_EACH, function(e, eSuite) {
    -              self2.suite = origSuite;
    -              next(e, eSuite);
    -            });
    -          }
    -          if (err2) {
    -            return hookErr(err2, errSuite2, false);
    -          }
    -          self2.currentRunnable = self2.test;
    -          self2.runTest(function(err3) {
    -            test = self2.test;
    -            if (test.pending) {
    -              if (self2.forbidPending) {
    -                self2.fail(test, new Error("Pending test forbidden"), true);
    -              } else {
    -                test.state = STATE_PENDING;
    -                self2.emit(constants.EVENT_TEST_PENDING, test);
    -              }
    -              self2.emit(constants.EVENT_TEST_END, test);
    -              return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
    -            } else if (err3) {
    -              var retry = test.currentRetry();
    -              if (retry < test.retries()) {
    -                var clonedTest = test.clone();
    -                clonedTest.currentRetry(retry + 1);
    -                tests.unshift(clonedTest);
    -                self2.emit(constants.EVENT_TEST_RETRY, test, err3);
    -                return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
    -              } else {
    -                self2.fail(test, err3);
    -              }
    -              self2.emit(constants.EVENT_TEST_END, test);
    -              return self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
    -            }
    -            test.state = STATE_PASSED;
    -            self2.emit(constants.EVENT_TEST_PASS, test);
    -            self2.emit(constants.EVENT_TEST_END, test);
    -            self2.hookUp(HOOK_TYPE_AFTER_EACH, next);
    -          });
    -        });
    -      }
    -      this.next = next;
    -      this.hookErr = hookErr;
    -      next();
    -    };
    -    Runner.prototype.runSuite = function(suite, fn) {
    -      var i = 0;
    -      var self2 = this;
    -      var total = this.grepTotal(suite);
    -      debug("runSuite(): running %s", suite.fullTitle());
    -      if (!total || self2.failures && suite._bail) {
    -        debug("runSuite(): bailing");
    -        return fn();
    -      }
    -      this.emit(constants.EVENT_SUITE_BEGIN, this.suite = suite);
    -      function next(errSuite) {
    -        if (errSuite) {
    -          if (errSuite === suite) {
    -            return done();
    -          }
    -          return done(errSuite);
    -        }
    -        if (self2._abort) {
    -          return done();
    -        }
    -        var curr = suite.suites[i++];
    -        if (!curr) {
    -          return done();
    -        }
    -        if (self2._grep !== self2._defaultGrep) {
    -          Runner.immediately(function() {
    -            self2.runSuite(curr, next);
    -          });
    -        } else {
    -          self2.runSuite(curr, next);
    -        }
    -      }
    -      function done(errSuite) {
    -        self2.suite = suite;
    -        self2.nextSuite = next;
    -        delete self2.test;
    -        self2.hook(HOOK_TYPE_AFTER_ALL, function() {
    -          self2.emit(constants.EVENT_SUITE_END, suite);
    -          fn(errSuite);
    -        });
    -      }
    -      this.nextSuite = next;
    -      this.hook(HOOK_TYPE_BEFORE_ALL, function(err) {
    -        if (err) {
    -          return done();
    -        }
    -        self2.runTests(suite, next);
    -      });
    -    };
    -    Runner.prototype._uncaught = function(err) {
    -      if (!(this instanceof Runner)) {
    -        throw createFatalError(
    -          "Runner#uncaught() called with invalid context",
    -          this
    -        );
    -      }
    -      if (err instanceof Pending) {
    -        debug("uncaught(): caught a Pending");
    -        return;
    -      }
    -      if (this.allowUncaught && !utils.isBrowser()) {
    -        debug("uncaught(): bubbling exception due to --allow-uncaught");
    -        throw err;
    -      }
    -      if (this.state === constants.STATE_STOPPED) {
    -        debug("uncaught(): throwing after run has completed!");
    -        throw err;
    -      }
    -      if (err) {
    -        debug("uncaught(): got truthy exception %O", err);
    -      } else {
    -        debug("uncaught(): undefined/falsy exception");
    -        err = createInvalidExceptionError(
    -          "Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger",
    -          err
    -        );
    -      }
    -      if (!isError(err)) {
    -        err = thrown2Error(err);
    -        debug('uncaught(): converted "error" %o to Error', err);
    -      }
    -      err.uncaught = true;
    -      var runnable = this.currentRunnable;
    -      if (!runnable) {
    -        runnable = new Runnable("Uncaught error outside test suite");
    -        debug("uncaught(): no current Runnable; created a phony one");
    -        runnable.parent = this.suite;
    -        if (this.state === constants.STATE_RUNNING) {
    -          debug("uncaught(): failing gracefully");
    -          this.fail(runnable, err);
    -        } else {
    -          debug("uncaught(): test run has not yet started; unrecoverable");
    -          this.emit(constants.EVENT_RUN_BEGIN);
    -          this.fail(runnable, err);
    -          this.emit(constants.EVENT_RUN_END);
    -        }
    -        return;
    -      }
    -      runnable.clearTimeout();
    -      if (runnable.isFailed()) {
    -        debug("uncaught(): Runnable has already failed");
    -        return;
    -      } else if (runnable.isPending()) {
    -        debug("uncaught(): pending Runnable wound up failing!");
    -        this.fail(runnable, err, true);
    -        return;
    -      }
    -      if (runnable.isPassed()) {
    -        debug("uncaught(): Runnable has already passed; bailing gracefully");
    -        this.fail(runnable, err);
    -        this.abort();
    -      } else {
    -        debug("uncaught(): forcing Runnable to complete with Error");
    -        return runnable.callback(err);
    -      }
    -    };
    -    Runner.prototype.run = function(fn, opts = {}) {
    -      var rootSuite = this.suite;
    -      var options = opts.options || {};
    -      debug("run(): got options: %O", options);
    -      fn = fn || function() {
    -      };
    -      const end = () => {
    -        if (!this.total && this._opts.failZero)
    -          this.failures = 1;
    -        debug("run(): root suite completed; emitting %s", constants.EVENT_RUN_END);
    -        this.emit(constants.EVENT_RUN_END);
    -      };
    -      const begin = () => {
    -        debug("run(): emitting %s", constants.EVENT_RUN_BEGIN);
    -        this.emit(constants.EVENT_RUN_BEGIN);
    -        debug("run(): emitted %s", constants.EVENT_RUN_BEGIN);
    -        this.runSuite(rootSuite, end);
    -      };
    -      const prepare = () => {
    -        debug("run(): starting");
    -        if (rootSuite.hasOnly()) {
    -          rootSuite.filterOnly();
    -          debug("run(): filtered exclusive Runnables");
    -        }
    -        this.state = constants.STATE_RUNNING;
    -        if (this._opts.delay) {
    -          this.emit(constants.EVENT_DELAY_END);
    -          debug('run(): "delay" ended');
    -        }
    -        return begin();
    -      };
    -      if (this._opts.cleanReferencesAfterRun) {
    -        this.on(constants.EVENT_SUITE_END, (suite) => {
    -          suite.cleanReferences();
    -        });
    -      }
    -      this.on(constants.EVENT_RUN_END, function() {
    -        this.state = constants.STATE_STOPPED;
    -        debug("run(): emitted %s", constants.EVENT_RUN_END);
    -        fn(this.failures);
    -      });
    -      this._removeEventListener(process, "uncaughtException", this.uncaught);
    -      this._removeEventListener(process, "unhandledRejection", this.unhandled);
    -      this._addEventListener(process, "uncaughtException", this.uncaught);
    -      this._addEventListener(process, "unhandledRejection", this.unhandled);
    -      if (this._opts.delay) {
    -        this.emit(constants.EVENT_DELAY_BEGIN, rootSuite);
    -        rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);
    -        debug("run(): waiting for green light due to --delay");
    -      } else {
    -        Runner.immediately(prepare);
    -      }
    -      return this;
    -    };
    -    Runner.prototype.linkPartialObjects = function(value) {
    -      return this;
    -    };
    -    Runner.prototype.runAsync = async function runAsync(opts = {}) {
    -      return new Promise((resolve2) => {
    -        this.run(resolve2, opts);
    -      });
    -    };
    -    Runner.prototype.abort = function() {
    -      debug("abort(): aborting");
    -      this._abort = true;
    -      return this;
    -    };
    -    Runner.prototype.isParallelMode = function isParallelMode() {
    -      return false;
    -    };
    -    Runner.prototype.workerReporter = function() {
    -      throw createUnsupportedError("workerReporter() not supported in serial mode");
    -    };
    -    function filterLeaks(ok, globals2) {
    -      return globals2.filter(function(key) {
    -        if (/^\d+/.test(key)) {
    -          return false;
    -        }
    -        if (global.navigator && /^getInterface/.test(key)) {
    -          return false;
    -        }
    -        if (global.navigator && /^\d+/.test(key)) {
    -          return false;
    -        }
    -        if (/^mocha-/.test(key)) {
    -          return false;
    -        }
    -        var matched = ok.filter(function(ok2) {
    -          if (~ok2.indexOf("*")) {
    -            return key.indexOf(ok2.split("*")[0]) === 0;
    -          }
    -          return key === ok2;
    -        });
    -        return !matched.length && (!global.navigator || key !== "onerror");
    -      });
    -    }
    -    function isError(err) {
    -      return err instanceof Error || err && typeof err.message === "string";
    -    }
    -    function thrown2Error(err) {
    -      return new Error(
    -        `the ${utils.canonicalType(err)} ${stringify(
    -          err
    -        )} was thrown, throw an Error :)`
    -      );
    -    }
    -    Runner.constants = constants;
    -    module2.exports = Runner;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/base.js
    -var require_base2 = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/base.js"(exports2, module2) {
    -    "use strict";
    -    var diff = require_lib();
    -    var milliseconds = require_ms();
    -    var utils = require_utils();
    -    var supportsColor = require_supports_color();
    -    var symbols = require_log_symbols();
    -    var constants = require_runner().constants;
    -    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
    -    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
    -    var isBrowser = utils.isBrowser();
    -    function getBrowserWindowSize() {
    -      if ("innerHeight" in global) {
    -        return [global.innerHeight, global.innerWidth];
    -      }
    -      return [640, 480];
    -    }
    -    exports2 = module2.exports = Base;
    -    var isatty = isBrowser || process.stdout.isTTY && process.stderr.isTTY;
    -    var consoleLog = console.log;
    -    exports2.useColors = !isBrowser && (supportsColor.stdout || process.env.MOCHA_COLORS !== void 0);
    -    exports2.inlineDiffs = false;
    -    exports2.maxDiffSize = 8192;
    -    exports2.colors = {
    -      pass: 90,
    -      fail: 31,
    -      "bright pass": 92,
    -      "bright fail": 91,
    -      "bright yellow": 93,
    -      pending: 36,
    -      suite: 0,
    -      "error title": 0,
    -      "error message": 31,
    -      "error stack": 90,
    -      checkmark: 32,
    -      fast: 90,
    -      medium: 33,
    -      slow: 31,
    -      green: 32,
    -      light: 90,
    -      "diff gutter": 90,
    -      "diff added": 32,
    -      "diff removed": 31,
    -      "diff added inline": "30;42",
    -      "diff removed inline": "30;41"
    -    };
    -    exports2.symbols = {
    -      ok: symbols.success,
    -      err: symbols.error,
    -      dot: ".",
    -      comma: ",",
    -      bang: "!"
    -    };
    -    var color = exports2.color = function(type2, str2) {
    -      if (!exports2.useColors) {
    -        return String(str2);
    -      }
    -      return "\x1B[" + exports2.colors[type2] + "m" + str2 + "\x1B[0m";
    -    };
    -    exports2.window = {
    -      width: 75
    -    };
    -    if (isatty) {
    -      if (isBrowser) {
    -        exports2.window.width = getBrowserWindowSize()[1];
    -      } else {
    -        exports2.window.width = process.stdout.getWindowSize(1)[0];
    -      }
    -    }
    -    exports2.cursor = {
    -      hide: function() {
    -        isatty && process.stdout.write("\x1B[?25l");
    -      },
    -      show: function() {
    -        isatty && process.stdout.write("\x1B[?25h");
    -      },
    -      deleteLine: function() {
    -        isatty && process.stdout.write("\x1B[2K");
    -      },
    -      beginningOfLine: function() {
    -        isatty && process.stdout.write("\x1B[0G");
    -      },
    -      CR: function() {
    -        if (isatty) {
    -          exports2.cursor.deleteLine();
    -          exports2.cursor.beginningOfLine();
    -        } else {
    -          process.stdout.write("\r");
    -        }
    -      }
    -    };
    -    var showDiff = exports2.showDiff = function(err) {
    -      return err && err.showDiff !== false && sameType(err.actual, err.expected) && err.expected !== void 0;
    -    };
    -    function stringifyDiffObjs(err) {
    -      if (!utils.isString(err.actual) || !utils.isString(err.expected)) {
    -        err.actual = utils.stringify(err.actual);
    -        err.expected = utils.stringify(err.expected);
    -      }
    -    }
    -    var generateDiff = exports2.generateDiff = function(actual, expected) {
    -      try {
    -        var maxLen = exports2.maxDiffSize;
    -        var skipped = 0;
    -        if (maxLen > 0) {
    -          skipped = Math.max(actual.length - maxLen, expected.length - maxLen);
    -          actual = actual.slice(0, maxLen);
    -          expected = expected.slice(0, maxLen);
    -        }
    -        let result = exports2.inlineDiffs ? inlineDiff(actual, expected) : unifiedDiff(actual, expected);
    -        if (skipped > 0) {
    -          result = `${result}
    -      [mocha] output truncated to ${maxLen} characters, see "maxDiffSize" reporter-option
    -`;
    -        }
    -        return result;
    -      } catch (err) {
    -        var msg = "\n      " + color("diff added", "+ expected") + " " + color("diff removed", "- actual:  failed to generate Mocha diff") + "\n";
    -        return msg;
    -      }
    -    };
    -    exports2.list = function(failures) {
    -      var multipleErr, multipleTest;
    -      Base.consoleLog();
    -      failures.forEach(function(test, i) {
    -        var fmt = color("error title", "  %s) %s:\n") + color("error message", "     %s") + color("error stack", "\n%s\n");
    -        var msg;
    -        var err;
    -        if (test.err && test.err.multiple) {
    -          if (multipleTest !== test) {
    -            multipleTest = test;
    -            multipleErr = [test.err].concat(test.err.multiple);
    -          }
    -          err = multipleErr.shift();
    -        } else {
    -          err = test.err;
    -        }
    -        var message;
    -        if (typeof err.inspect === "function") {
    -          message = err.inspect() + "";
    -        } else if (err.message && typeof err.message.toString === "function") {
    -          message = err.message + "";
    -        } else {
    -          message = "";
    -        }
    -        var stack = err.stack || message;
    -        var index = message ? stack.indexOf(message) : -1;
    -        if (index === -1) {
    -          msg = message;
    -        } else {
    -          index += message.length;
    -          msg = stack.slice(0, index);
    -          stack = stack.slice(index + 1);
    -        }
    -        if (err.uncaught) {
    -          msg = "Uncaught " + msg;
    -        }
    -        if (!exports2.hideDiff && showDiff(err)) {
    -          stringifyDiffObjs(err);
    -          fmt = color("error title", "  %s) %s:\n%s") + color("error stack", "\n%s\n");
    -          var match2 = message.match(/^([^:]+): expected/);
    -          msg = "\n      " + color("error message", match2 ? match2[1] : msg);
    -          msg += generateDiff(err.actual, err.expected);
    -        }
    -        stack = stack.replace(/^/gm, "  ");
    -        var testTitle = "";
    -        test.titlePath().forEach(function(str2, index2) {
    -          if (index2 !== 0) {
    -            testTitle += "\n     ";
    -          }
    -          for (var i2 = 0; i2 < index2; i2++) {
    -            testTitle += "  ";
    -          }
    -          testTitle += str2;
    -        });
    -        Base.consoleLog(fmt, i + 1, testTitle, msg, stack);
    -      });
    -    };
    -    function Base(runner, options) {
    -      var failures = this.failures = [];
    -      if (!runner) {
    -        throw new TypeError("Missing runner argument");
    -      }
    -      this.options = options || {};
    -      this.runner = runner;
    -      this.stats = runner.stats;
    -      var maxDiffSizeOpt = this.options.reporterOption && this.options.reporterOption.maxDiffSize;
    -      if (maxDiffSizeOpt !== void 0 && !isNaN(Number(maxDiffSizeOpt))) {
    -        exports2.maxDiffSize = Number(maxDiffSizeOpt);
    -      }
    -      runner.on(EVENT_TEST_PASS, function(test) {
    -        if (test.duration > test.slow()) {
    -          test.speed = "slow";
    -        } else if (test.duration > test.slow() / 2) {
    -          test.speed = "medium";
    -        } else {
    -          test.speed = "fast";
    -        }
    -      });
    -      runner.on(EVENT_TEST_FAIL, function(test, err) {
    -        if (showDiff(err)) {
    -          stringifyDiffObjs(err);
    -        }
    -        if (test.err && err instanceof Error) {
    -          test.err.multiple = (test.err.multiple || []).concat(err);
    -        } else {
    -          test.err = err;
    -        }
    -        failures.push(test);
    -      });
    -    }
    -    Base.prototype.epilogue = function() {
    -      var stats = this.stats;
    -      var fmt;
    -      Base.consoleLog();
    -      fmt = color("bright pass", " ") + color("green", " %d passing") + color("light", " (%s)");
    -      Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));
    -      if (stats.pending) {
    -        fmt = color("pending", " ") + color("pending", " %d pending");
    -        Base.consoleLog(fmt, stats.pending);
    -      }
    -      if (stats.failures) {
    -        fmt = color("fail", "  %d failing");
    -        Base.consoleLog(fmt, stats.failures);
    -        Base.list(this.failures);
    -        Base.consoleLog();
    -      }
    -      Base.consoleLog();
    -    };
    -    function pad(str2, len) {
    -      str2 = String(str2);
    -      return Array(len - str2.length + 1).join(" ") + str2;
    -    }
    -    function inlineDiff(actual, expected) {
    -      var msg = errorDiff(actual, expected);
    -      var lines = msg.split("\n");
    -      if (lines.length > 4) {
    -        var width = String(lines.length).length;
    -        msg = lines.map(function(str2, i) {
    -          return pad(++i, width) + " | " + str2;
    -        }).join("\n");
    -      }
    -      msg = "\n" + color("diff removed inline", "actual") + " " + color("diff added inline", "expected") + "\n\n" + msg + "\n";
    -      msg = msg.replace(/^/gm, "      ");
    -      return msg;
    -    }
    -    function unifiedDiff(actual, expected) {
    -      var indent = "      ";
    -      function cleanUp(line) {
    -        if (line[0] === "+") {
    -          return indent + colorLines("diff added", line);
    -        }
    -        if (line[0] === "-") {
    -          return indent + colorLines("diff removed", line);
    -        }
    -        if (line.match(/@@/)) {
    -          return "--";
    -        }
    -        if (line.match(/\\ No newline/)) {
    -          return null;
    -        }
    -        return indent + line;
    -      }
    -      function notBlank(line) {
    -        return typeof line !== "undefined" && line !== null;
    -      }
    -      var msg = diff.createPatch("string", actual, expected);
    -      var lines = msg.split("\n").splice(5);
    -      return "\n      " + colorLines("diff added", "+ expected") + " " + colorLines("diff removed", "- actual") + "\n\n" + lines.map(cleanUp).filter(notBlank).join("\n");
    -    }
    -    function errorDiff(actual, expected) {
    -      return diff.diffWordsWithSpace(actual, expected).map(function(str2) {
    -        if (str2.added) {
    -          return colorLines("diff added inline", str2.value);
    -        }
    -        if (str2.removed) {
    -          return colorLines("diff removed inline", str2.value);
    -        }
    -        return str2.value;
    -      }).join("");
    -    }
    -    function colorLines(name, str2) {
    -      return str2.split("\n").map(function(str3) {
    -        return color(name, str3);
    -      }).join("\n");
    -    }
    -    var objToString = Object.prototype.toString;
    -    function sameType(a, b) {
    -      return objToString.call(a) === objToString.call(b);
    -    }
    -    Base.consoleLog = consoleLog;
    -    Base.abstract = true;
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/dot.js
    -var require_dot = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/dot.js"(exports2, module2) {
    -    "use strict";
    -    var Base = require_base2();
    -    var inherits = require_utils().inherits;
    -    var constants = require_runner().constants;
    -    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
    -    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
    -    var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
    -    var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
    -    var EVENT_RUN_END = constants.EVENT_RUN_END;
    -    exports2 = module2.exports = Dot;
    -    function Dot(runner, options) {
    -      Base.call(this, runner, options);
    -      var self2 = this;
    -      var width = Base.window.width * 0.75 | 0;
    -      var n = -1;
    -      runner.on(EVENT_RUN_BEGIN, function() {
    -        process.stdout.write("\n");
    -      });
    -      runner.on(EVENT_TEST_PENDING, function() {
    -        if (++n % width === 0) {
    -          process.stdout.write("\n  ");
    -        }
    -        process.stdout.write(Base.color("pending", Base.symbols.comma));
    -      });
    -      runner.on(EVENT_TEST_PASS, function(test) {
    -        if (++n % width === 0) {
    -          process.stdout.write("\n  ");
    -        }
    -        if (test.speed === "slow") {
    -          process.stdout.write(Base.color("bright yellow", Base.symbols.dot));
    -        } else {
    -          process.stdout.write(Base.color(test.speed, Base.symbols.dot));
    -        }
    -      });
    -      runner.on(EVENT_TEST_FAIL, function() {
    -        if (++n % width === 0) {
    -          process.stdout.write("\n  ");
    -        }
    -        process.stdout.write(Base.color("fail", Base.symbols.bang));
    -      });
    -      runner.once(EVENT_RUN_END, function() {
    -        process.stdout.write("\n");
    -        self2.epilogue();
    -      });
    -    }
    -    inherits(Dot, Base);
    -    Dot.description = "dot matrix representation";
    -  }
    -});
    -
    -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/doc.js
    -var require_doc = __commonJS({
    -  "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/doc.js"(exports2, module2) {
    -    "use strict";
    -    var Base = require_base2();
    -    var utils = require_utils();
    -    var constants = require_runner().constants;
    -    var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
    -    var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
    -    var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
    -    var EVENT_SUITE_END = constants.EVENT_SUITE_END;
    -    exports2 = module2.exports = Doc;
    -    function Doc(runner, options) {
    -      Base.call(this, runner, options);
    -      var indents = 2;
    -      function indent() {
    -        return Array(indents).join("  ");
    -      }
    -      runner.on(EVENT_SUITE_BEGIN, function(suite) {
    -        if (suite.root) {
    -          return;
    -        }
    -        ++indents;
    -        Base.consoleLog('%s
    ', indent()); - ++indents; - Base.consoleLog("%s

    %s

    ", indent(), utils.escape(suite.title)); - Base.consoleLog("%s
    ", indent()); - }); - runner.on(EVENT_SUITE_END, function(suite) { - if (suite.root) { - return; - } - Base.consoleLog("%s
    ", indent()); - --indents; - Base.consoleLog("%s
    ", indent()); - --indents; - }); - runner.on(EVENT_TEST_PASS, function(test) { - Base.consoleLog("%s
    %s
    ", indent(), utils.escape(test.title)); - Base.consoleLog("%s
    %s
    ", indent(), utils.escape(test.file)); - var code = utils.escape(utils.clean(test.body)); - Base.consoleLog("%s
    %s
    ", indent(), code); - }); - runner.on(EVENT_TEST_FAIL, function(test, err) { - Base.consoleLog( - '%s
    %s
    ', - indent(), - utils.escape(test.title) - ); - Base.consoleLog( - '%s
    %s
    ', - indent(), - utils.escape(test.file) - ); - var code = utils.escape(utils.clean(test.body)); - Base.consoleLog( - '%s
    %s
    ', - indent(), - code - ); - Base.consoleLog( - '%s
    %s
    ', - indent(), - utils.escape(err) - ); - }); - } - Doc.description = "HTML documentation"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/tap.js -var require_tap = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/tap.js"(exports2, module2) { - "use strict"; - var util = require("util"); - var Base = require_base2(); - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var inherits = require_utils().inherits; - var sprintf = util.format; - exports2 = module2.exports = TAP; - function TAP(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var n = 1; - var tapVersion = "12"; - if (options && options.reporterOptions) { - if (options.reporterOptions.tapVersion) { - tapVersion = options.reporterOptions.tapVersion.toString(); - } - } - this._producer = createProducer(tapVersion); - runner.once(EVENT_RUN_BEGIN, function() { - self2._producer.writeVersion(); - }); - runner.on(EVENT_TEST_END, function() { - ++n; - }); - runner.on(EVENT_TEST_PENDING, function(test) { - self2._producer.writePending(n, test); - }); - runner.on(EVENT_TEST_PASS, function(test) { - self2._producer.writePass(n, test); - }); - runner.on(EVENT_TEST_FAIL, function(test, err) { - self2._producer.writeFail(n, test, err); - }); - runner.once(EVENT_RUN_END, function() { - self2._producer.writeEpilogue(runner.stats); - }); - } - inherits(TAP, Base); - function title(test) { - return test.fullTitle().replace(/#/g, ""); - } - function println(format, varArgs) { - var vargs = Array.from(arguments); - vargs[0] += "\n"; - process.stdout.write(sprintf.apply(null, vargs)); - } - function createProducer(tapVersion) { - var producers = { - 12: new TAP12Producer(), - 13: new TAP13Producer() - }; - var producer = producers[tapVersion]; - if (!producer) { - throw new Error( - "invalid or unsupported TAP version: " + JSON.stringify(tapVersion) - ); - } - return producer; - } - function TAPProducer() { - } - TAPProducer.prototype.writeVersion = function() { - }; - TAPProducer.prototype.writePlan = function(ntests) { - println("%d..%d", 1, ntests); - }; - TAPProducer.prototype.writePass = function(n, test) { - println("ok %d %s", n, title(test)); - }; - TAPProducer.prototype.writePending = function(n, test) { - println("ok %d %s # SKIP -", n, title(test)); - }; - TAPProducer.prototype.writeFail = function(n, test, err) { - println("not ok %d %s", n, title(test)); - }; - TAPProducer.prototype.writeEpilogue = function(stats) { - println("# tests " + (stats.passes + stats.failures)); - println("# pass " + stats.passes); - println("# fail " + stats.failures); - this.writePlan(stats.passes + stats.failures + stats.pending); - }; - function TAP12Producer() { - this.writeFail = function(n, test, err) { - TAPProducer.prototype.writeFail.call(this, n, test, err); - if (err.message) { - println(err.message.replace(/^/gm, " ")); - } - if (err.stack) { - println(err.stack.replace(/^/gm, " ")); - } - }; - } - inherits(TAP12Producer, TAPProducer); - function TAP13Producer() { - this.writeVersion = function() { - println("TAP version 13"); - }; - this.writeFail = function(n, test, err) { - TAPProducer.prototype.writeFail.call(this, n, test, err); - var emitYamlBlock = err.message != null || err.stack != null; - if (emitYamlBlock) { - println(indent(1) + "---"); - if (err.message) { - println(indent(2) + "message: |-"); - println(err.message.replace(/^/gm, indent(3))); - } - if (err.stack) { - println(indent(2) + "stack: |-"); - println(err.stack.replace(/^/gm, indent(3))); - } - println(indent(1) + "..."); - } - }; - function indent(level) { - return Array(level + 1).join(" "); - } - } - inherits(TAP13Producer, TAPProducer); - TAP.description = "TAP-compatible output"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json.js -var require_json2 = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var fs2 = require("fs"); - var path4 = require("path"); - var createUnsupportedError = require_errors().createUnsupportedError; - var utils = require_utils(); - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var EVENT_RUN_END = constants.EVENT_RUN_END; - exports2 = module2.exports = JSONReporter; - function JSONReporter(runner, options = {}) { - Base.call(this, runner, options); - var self2 = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - var output; - if (options.reporterOption && options.reporterOption.output) { - if (utils.isBrowser()) { - throw createUnsupportedError("file output not supported in browser"); - } - output = options.reporterOption.output; - } - runner.on(EVENT_TEST_END, function(test) { - tests.push(test); - }); - runner.on(EVENT_TEST_PASS, function(test) { - passes.push(test); - }); - runner.on(EVENT_TEST_FAIL, function(test) { - failures.push(test); - }); - runner.on(EVENT_TEST_PENDING, function(test) { - pending.push(test); - }); - runner.once(EVENT_RUN_END, function() { - var obj = { - stats: self2.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - runner.testResults = obj; - var json2 = JSON.stringify(obj, null, 2); - if (output) { - try { - fs2.mkdirSync(path4.dirname(output), { recursive: true }); - fs2.writeFileSync(output, json2); - } catch (err) { - console.error( - `${Base.symbols.err} [mocha] writing output to "${output}" failed: ${err.message} -` - ); - process.stdout.write(json2); - } - } else { - process.stdout.write(json2); - } - }); - } - function clean(test) { - var err = test.err || {}; - if (err instanceof Error) { - err = errorJSON(err); - } - return { - title: test.title, - fullTitle: test.fullTitle(), - file: test.file, - duration: test.duration, - currentRetry: test.currentRetry(), - speed: test.speed, - err: cleanCycles(err) - }; - } - function cleanCycles(obj) { - var cache = []; - return JSON.parse( - JSON.stringify(obj, function(key, value) { - if (typeof value === "object" && value !== null) { - if (cache.indexOf(value) !== -1) { - return "" + value; - } - cache.push(value); - } - return value; - }) - ); - } - function errorJSON(err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function(key) { - res[key] = err[key]; - }, err); - return res; - } - JSONReporter.description = "single JSON object"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/browser/progress.js -var require_progress = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/browser/progress.js"(exports2, module2) { - "use strict"; - module2.exports = Progress; - function Progress() { - this.percent = 0; - this.size(0); - this.fontSize(11); - this.font("helvetica, arial, sans-serif"); - } - Progress.prototype.size = function(size) { - this._size = size; - return this; - }; - Progress.prototype.text = function(text) { - this._text = text; - return this; - }; - Progress.prototype.fontSize = function(size) { - this._fontSize = size; - return this; - }; - Progress.prototype.font = function(family) { - this._font = family; - return this; - }; - Progress.prototype.update = function(n) { - this.percent = n; - return this; - }; - Progress.prototype.draw = function(ctx) { - try { - var darkMatcher = window.matchMedia("(prefers-color-scheme: dark)"); - var isDarkMode = !!darkMatcher.matches; - var lightColors = { - outerCircle: "#9f9f9f", - innerCircle: "#eee", - text: "#000" - }; - var darkColors = { - outerCircle: "#888", - innerCircle: "#444", - text: "#fff" - }; - var colors = isDarkMode ? darkColors : lightColors; - var percent = Math.min(this.percent, 100); - var size = this._size; - var half = size / 2; - var x = half; - var y = half; - var rad = half - 1; - var fontSize = this._fontSize; - ctx.font = fontSize + "px " + this._font; - var angle = Math.PI * 2 * (percent / 100); - ctx.clearRect(0, 0, size, size); - ctx.strokeStyle = colors.outerCircle; - ctx.beginPath(); - ctx.arc(x, y, rad, 0, angle, false); - ctx.stroke(); - ctx.strokeStyle = colors.innerCircle; - ctx.beginPath(); - ctx.arc(x, y, rad - 1, 0, angle, true); - ctx.stroke(); - var text = this._text || (percent | 0) + "%"; - var w = ctx.measureText(text).width; - ctx.fillStyle = colors.text; - ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1); - } catch (ignore) { - } - return this; - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/html.js -var require_html = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/html.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var utils = require_utils(); - var Progress = require_progress(); - var escapeRe = require_escape_string_regexp(); - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_SUITE_END = constants.EVENT_SUITE_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var escape2 = utils.escape; - var Date2 = global.Date; - exports2 = module2.exports = HTML; - var statsTemplate = ''; - var playIcon = "‣"; - function HTML(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName("li"); - var passes = items[1].getElementsByTagName("em")[0]; - var passesLink = items[1].getElementsByTagName("a")[0]; - var failures = items[2].getElementsByTagName("em")[0]; - var failuresLink = items[2].getElementsByTagName("a")[0]; - var duration = items[3].getElementsByTagName("em")[0]; - var canvas = stat.getElementsByTagName("canvas")[0]; - var report = fragment('
      '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById("mocha"); - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext("2d"); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - if (!root) { - return error("#mocha div missing, add it to your document"); - } - on(passesLink, "click", function(evt) { - evt.preventDefault(); - unhide(); - var name = /pass/.test(report.className) ? "" : " pass"; - report.className = report.className.replace(/fail|pass/g, "") + name; - if (report.className.trim()) { - hideSuitesWithout("test pass"); - } - }); - on(failuresLink, "click", function(evt) { - evt.preventDefault(); - unhide(); - var name = /fail/.test(report.className) ? "" : " fail"; - report.className = report.className.replace(/fail|pass/g, "") + name; - if (report.className.trim()) { - hideSuitesWithout("test fail"); - } - }); - root.appendChild(stat); - root.appendChild(report); - if (progress) { - progress.size(40); - } - runner.on(EVENT_SUITE_BEGIN, function(suite) { - if (suite.root) { - return; - } - var url = self2.suiteURL(suite); - var el = fragment( - '
    • %s

    • ', - url, - escape2(suite.title) - ); - stack[0].appendChild(el); - stack.unshift(document.createElement("ul")); - el.appendChild(stack[0]); - }); - runner.on(EVENT_SUITE_END, function(suite) { - if (suite.root) { - updateStats(); - return; - } - stack.shift(); - }); - runner.on(EVENT_TEST_PASS, function(test) { - var url = self2.testURL(test); - var markup = '
    • %e%ems ' + playIcon + "

    • "; - var el = fragment(markup, test.speed, test.title, test.duration, url); - self2.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - runner.on(EVENT_TEST_FAIL, function(test) { - var el = fragment( - '
    • %e ' + playIcon + "

    • ", - test.title, - self2.testURL(test) - ); - var stackString; - var message = test.err.toString(); - if (message === "[object Error]") { - message = test.err.message; - } - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.slice( - test.err.message.length + indexOfMessage - ); - } - } else if (test.err.sourceURL && test.err.line !== void 0) { - stackString = "\n(" + test.err.sourceURL + ":" + test.err.line + ")"; - } - stackString = stackString || ""; - if (test.err.htmlMessage && stackString) { - el.appendChild( - fragment( - '
      %s\n
      %e
      ', - test.err.htmlMessage, - stackString - ) - ); - } else if (test.err.htmlMessage) { - el.appendChild( - fragment('
      %s
      ', test.err.htmlMessage) - ); - } else { - el.appendChild( - fragment('
      %e%e
      ', message, stackString) - ); - } - self2.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - runner.on(EVENT_TEST_PENDING, function(test) { - var el = fragment( - '
    • %e

    • ', - test.title - ); - appendToStack(el); - updateStats(); - }); - function appendToStack(el) { - if (stack[0]) { - stack[0].appendChild(el); - } - } - function updateStats() { - var percent = stats.tests / runner.total * 100 | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - var ms = new Date2() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1e3).toFixed(2)); - } - } - function makeUrl(s) { - var search = window.location.search; - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, "").replace(/^&/, "?"); - } - return window.location.pathname + (search ? search + "&" : "?") + "grep=" + encodeURIComponent(escapeRe(s)); - } - HTML.prototype.suiteURL = function(suite) { - return makeUrl(suite.fullTitle()); - }; - HTML.prototype.testURL = function(test) { - return makeUrl(test.fullTitle()); - }; - HTML.prototype.addCodeToggle = function(el, contents) { - var h2 = el.getElementsByTagName("h2")[0]; - on(h2, "click", function() { - pre.style.display = pre.style.display === "none" ? "block" : "none"; - }); - var pre = fragment("
      %e
      ", utils.clean(contents)); - el.appendChild(pre); - pre.style.display = "none"; - }; - function error(msg) { - document.body.appendChild(fragment('
      %s
      ', msg)); - } - function fragment(html) { - var args = arguments; - var div = document.createElement("div"); - var i = 1; - div.innerHTML = html.replace(/%([se])/g, function(_, type2) { - switch (type2) { - case "s": - return String(args[i++]); - case "e": - return escape2(args[i++]); - } - }); - return div.firstChild; - } - function hideSuitesWithout(classname) { - var suites = document.getElementsByClassName("suite"); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += " hidden"; - } - } - } - function unhide() { - var els = document.getElementsByClassName("suite hidden"); - while (els.length > 0) { - els[0].className = els[0].className.replace("suite hidden", "suite"); - } - } - function text(el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } - } - function on(el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent("on" + event, fn); - } - } - HTML.browserOnly = true; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/list.js -var require_list = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/list.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var inherits = require_utils().inherits; - var constants = require_runner().constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var color = Base.color; - var cursor = Base.cursor; - exports2 = module2.exports = List; - function List(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var n = 0; - runner.on(EVENT_RUN_BEGIN, function() { - Base.consoleLog(); - }); - runner.on(EVENT_TEST_BEGIN, function(test) { - process.stdout.write(color("pass", " " + test.fullTitle() + ": ")); - }); - runner.on(EVENT_TEST_PENDING, function(test) { - var fmt = color("checkmark", " -") + color("pending", " %s"); - Base.consoleLog(fmt, test.fullTitle()); - }); - runner.on(EVENT_TEST_PASS, function(test) { - var fmt = color("checkmark", " " + Base.symbols.ok) + color("pass", " %s: ") + color(test.speed, "%dms"); - cursor.CR(); - Base.consoleLog(fmt, test.fullTitle(), test.duration); - }); - runner.on(EVENT_TEST_FAIL, function(test) { - cursor.CR(); - Base.consoleLog(color("fail", " %d) %s"), ++n, test.fullTitle()); - }); - runner.once(EVENT_RUN_END, self2.epilogue.bind(self2)); - } - inherits(List, Base); - List.description = 'like "spec" reporter but flat'; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/min.js -var require_min = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/min.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var inherits = require_utils().inherits; - var constants = require_runner().constants; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - exports2 = module2.exports = Min; - function Min(runner, options) { - Base.call(this, runner, options); - runner.on(EVENT_RUN_BEGIN, function() { - process.stdout.write("\x1B[2J"); - process.stdout.write("\x1B[1;3H"); - }); - runner.once(EVENT_RUN_END, this.epilogue.bind(this)); - } - inherits(Min, Base); - Min.description = "essentially just a summary"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/spec.js -var require_spec = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/spec.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var constants = require_runner().constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_SUITE_END = constants.EVENT_SUITE_END; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var inherits = require_utils().inherits; - var color = Base.color; - exports2 = module2.exports = Spec; - function Spec(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var indents = 0; - var n = 0; - function indent() { - return Array(indents).join(" "); - } - runner.on(EVENT_RUN_BEGIN, function() { - Base.consoleLog(); - }); - runner.on(EVENT_SUITE_BEGIN, function(suite) { - ++indents; - Base.consoleLog(color("suite", "%s%s"), indent(), suite.title); - }); - runner.on(EVENT_SUITE_END, function() { - --indents; - if (indents === 1) { - Base.consoleLog(); - } - }); - runner.on(EVENT_TEST_PENDING, function(test) { - var fmt = indent() + color("pending", " - %s"); - Base.consoleLog(fmt, test.title); - }); - runner.on(EVENT_TEST_PASS, function(test) { - var fmt; - if (test.speed === "fast") { - fmt = indent() + color("checkmark", " " + Base.symbols.ok) + color("pass", " %s"); - Base.consoleLog(fmt, test.title); - } else { - fmt = indent() + color("checkmark", " " + Base.symbols.ok) + color("pass", " %s") + color(test.speed, " (%dms)"); - Base.consoleLog(fmt, test.title, test.duration); - } - }); - runner.on(EVENT_TEST_FAIL, function(test) { - Base.consoleLog(indent() + color("fail", " %d) %s"), ++n, test.title); - }); - runner.once(EVENT_RUN_END, self2.epilogue.bind(self2)); - } - inherits(Spec, Base); - Spec.description = "hierarchical & verbose [default]"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/nyan.js -var require_nyan = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/nyan.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var constants = require_runner().constants; - var inherits = require_utils().inherits; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - exports2 = module2.exports = NyanCat; - function NyanCat(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var width = Base.window.width * 0.75 | 0; - var nyanCatWidth = this.nyanCatWidth = 11; - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self2.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = width - nyanCatWidth; - runner.on(EVENT_RUN_BEGIN, function() { - Base.cursor.hide(); - self2.draw(); - }); - runner.on(EVENT_TEST_PENDING, function() { - self2.draw(); - }); - runner.on(EVENT_TEST_PASS, function() { - self2.draw(); - }); - runner.on(EVENT_TEST_FAIL, function() { - self2.draw(); - }); - runner.once(EVENT_RUN_END, function() { - Base.cursor.show(); - for (var i = 0; i < self2.numberOfLines; i++) { - process.stdout.write("\n"); - } - self2.epilogue(); - }); - } - inherits(NyanCat, Base); - NyanCat.prototype.draw = function() { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; - }; - NyanCat.prototype.drawScoreboard = function() { - var stats = this.stats; - function draw(type2, n) { - process.stdout.write(" "); - process.stdout.write(Base.color(type2, n)); - process.stdout.write("\n"); - } - draw("green", stats.passes); - draw("fail", stats.failures); - draw("pending", stats.pending); - process.stdout.write("\n"); - this.cursorUp(this.numberOfLines); - }; - NyanCat.prototype.appendRainbow = function() { - var segment = this.tick ? "_" : "-"; - var rainbowified = this.rainbowify(segment); - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } - }; - NyanCat.prototype.drawRainbow = function() { - var self2 = this; - this.trajectories.forEach(function(line) { - process.stdout.write("\x1B[" + self2.scoreboardWidth + "C"); - process.stdout.write(line.join("")); - process.stdout.write("\n"); - }); - this.cursorUp(this.numberOfLines); - }; - NyanCat.prototype.drawNyanCat = function() { - var self2 = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = "\x1B[" + startWidth + "C"; - var padding = ""; - process.stdout.write(dist); - process.stdout.write("_,------,"); - process.stdout.write("\n"); - process.stdout.write(dist); - padding = self2.tick ? " " : " "; - process.stdout.write("_|" + padding + "/\\_/\\ "); - process.stdout.write("\n"); - process.stdout.write(dist); - padding = self2.tick ? "_" : "__"; - var tail = self2.tick ? "~" : "^"; - process.stdout.write(tail + "|" + padding + this.face() + " "); - process.stdout.write("\n"); - process.stdout.write(dist); - padding = self2.tick ? " " : " "; - process.stdout.write(padding + '"" "" '); - process.stdout.write("\n"); - this.cursorUp(this.numberOfLines); - }; - NyanCat.prototype.face = function() { - var stats = this.stats; - if (stats.failures) { - return "( x .x)"; - } else if (stats.pending) { - return "( o .o)"; - } else if (stats.passes) { - return "( ^ .^)"; - } - return "( - .-)"; - }; - NyanCat.prototype.cursorUp = function(n) { - process.stdout.write("\x1B[" + n + "A"); - }; - NyanCat.prototype.cursorDown = function(n) { - process.stdout.write("\x1B[" + n + "B"); - }; - NyanCat.prototype.generateColors = function() { - var colors = []; - for (var i = 0; i < 6 * 7; i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = i * (1 / 6); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - return colors; - }; - NyanCat.prototype.rainbowify = function(str2) { - if (!Base.useColors) { - return str2; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return "\x1B[38;5;" + color + "m" + str2 + "\x1B[0m"; - }; - NyanCat.description = '"nyan cat"'; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/xunit.js -var require_xunit = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/xunit.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var utils = require_utils(); - var fs2 = require("fs"); - var path4 = require("path"); - var errors = require_errors(); - var createUnsupportedError = errors.createUnsupportedError; - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var STATE_FAILED = require_runnable().constants.STATE_FAILED; - var inherits = utils.inherits; - var escape2 = utils.escape; - var Date2 = global.Date; - exports2 = module2.exports = XUnit; - function XUnit(runner, options) { - Base.call(this, runner, options); - var stats = this.stats; - var tests = []; - var self2 = this; - var suiteName; - var DEFAULT_SUITE_NAME = "Mocha Tests"; - if (options && options.reporterOptions) { - if (options.reporterOptions.output) { - if (!fs2.createWriteStream) { - throw createUnsupportedError("file output not supported in browser"); - } - fs2.mkdirSync(path4.dirname(options.reporterOptions.output), { - recursive: true - }); - self2.fileStream = fs2.createWriteStream(options.reporterOptions.output); - } - suiteName = options.reporterOptions.suiteName; - } - suiteName = suiteName || DEFAULT_SUITE_NAME; - runner.on(EVENT_TEST_PENDING, function(test) { - tests.push(test); - }); - runner.on(EVENT_TEST_PASS, function(test) { - tests.push(test); - }); - runner.on(EVENT_TEST_FAIL, function(test) { - tests.push(test); - }); - runner.once(EVENT_RUN_END, function() { - self2.write( - tag( - "testsuite", - { - name: suiteName, - tests: stats.tests, - failures: 0, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: new Date2().toUTCString(), - time: stats.duration / 1e3 || 0 - }, - false - ) - ); - tests.forEach(function(t) { - self2.test(t); - }); - self2.write(""); - }); - } - inherits(XUnit, Base); - XUnit.prototype.done = function(failures, fn) { - if (this.fileStream) { - this.fileStream.end(function() { - fn(failures); - }); - } else { - fn(failures); - } - }; - XUnit.prototype.write = function(line) { - if (this.fileStream) { - this.fileStream.write(line + "\n"); - } else if (typeof process === "object" && process.stdout) { - process.stdout.write(line + "\n"); - } else { - Base.consoleLog(line); - } - }; - XUnit.prototype.test = function(test) { - Base.useColors = false; - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: test.duration / 1e3 || 0 - }; - if (test.state === STATE_FAILED) { - var err = test.err; - var diff = !Base.hideDiff && Base.showDiff(err) ? "\n" + Base.generateDiff(err.actual, err.expected) : ""; - this.write( - tag( - "testcase", - attrs, - false, - tag( - "failure", - {}, - false, - escape2(err.message) + escape2(diff) + "\n" + escape2(err.stack) - ) - ) - ); - } else if (test.isPending()) { - this.write(tag("testcase", attrs, false, tag("skipped", {}, true))); - } else { - this.write(tag("testcase", attrs, true)); - } - }; - function tag(name, attrs, close, content) { - var end = close ? "/>" : ">"; - var pairs2 = []; - var tag2; - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs2.push(key + '="' + escape2(attrs[key]) + '"'); - } - } - tag2 = "<" + name + (pairs2.length ? " " + pairs2.join(" ") : "") + end; - if (content) { - tag2 += content + "\n'; - buf += title(suite.title) + "\n"; - }); - runner.on(EVENT_SUITE_END, function() { - --level; - }); - runner.on(EVENT_TEST_PASS, function(test) { - var code = utils.clean(test.body); - buf += test.title + ".\n"; - buf += "\n```js\n"; - buf += code + "\n"; - buf += "```\n\n"; - }); - runner.once(EVENT_RUN_END, function() { - process.stdout.write("# TOC\n"); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); - } - Markdown.description = "GitHub Flavored Markdown"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/progress.js -var require_progress2 = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/progress.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var constants = require_runner().constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var inherits = require_utils().inherits; - var color = Base.color; - var cursor = Base.cursor; - exports2 = module2.exports = Progress; - Base.colors.progress = 90; - function Progress(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var width = Base.window.width * 0.5 | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - options = options || {}; - var reporterOptions = options.reporterOptions || {}; - options.open = reporterOptions.open || "["; - options.complete = reporterOptions.complete || "\u25AC"; - options.incomplete = reporterOptions.incomplete || Base.symbols.dot; - options.close = reporterOptions.close || "]"; - options.verbose = reporterOptions.verbose || false; - runner.on(EVENT_RUN_BEGIN, function() { - process.stdout.write("\n"); - cursor.hide(); - }); - runner.on(EVENT_TEST_END, function() { - complete++; - var percent = complete / total; - var n = width * percent | 0; - var i = width - n; - if (n === lastN && !options.verbose) { - return; - } - lastN = n; - cursor.CR(); - process.stdout.write("\x1B[J"); - process.stdout.write(color("progress", " " + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color("progress", options.close)); - if (options.verbose) { - process.stdout.write(color("progress", " " + complete + " of " + total)); - } - }); - runner.once(EVENT_RUN_END, function() { - cursor.show(); - process.stdout.write("\n"); - self2.epilogue(); - }); - } - inherits(Progress, Base); - Progress.description = "a progress bar"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/landing.js -var require_landing = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/landing.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var inherits = require_utils().inherits; - var constants = require_runner().constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var STATE_FAILED = require_runnable().constants.STATE_FAILED; - var cursor = Base.cursor; - var color = Base.color; - exports2 = module2.exports = Landing; - Base.colors.plane = 0; - Base.colors["plane crash"] = 31; - Base.colors.runway = 90; - function Landing(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var width = Base.window.width * 0.75 | 0; - var stream2 = process.stdout; - var plane = color("plane", "\u2708"); - var crashed = -1; - var n = 0; - var total = 0; - function runway() { - var buf = Array(width).join("-"); - return " " + color("runway", buf); - } - runner.on(EVENT_RUN_BEGIN, function() { - stream2.write("\n\n\n "); - cursor.hide(); - }); - runner.on(EVENT_TEST_END, function(test) { - var col = crashed === -1 ? width * ++n / ++total | 0 : crashed; - if (test.state === STATE_FAILED) { - plane = color("plane crash", "\u2708"); - crashed = col; - } - stream2.write("\x1B[" + (width + 1) + "D\x1B[2A"); - stream2.write(runway()); - stream2.write("\n "); - stream2.write(color("runway", Array(col).join("\u22C5"))); - stream2.write(plane); - stream2.write(color("runway", Array(width - col).join("\u22C5") + "\n")); - stream2.write(runway()); - stream2.write("\x1B[0m"); - }); - runner.once(EVENT_RUN_END, function() { - cursor.show(); - process.stdout.write("\n"); - self2.epilogue(); - }); - process.once("SIGINT", function() { - cursor.show(); - process.nextTick(function() { - process.kill(process.pid, "SIGINT"); - }); - }); - } - inherits(Landing, Base); - Landing.description = "Unicode landing strip"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json-stream.js -var require_json_stream = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/json-stream.js"(exports2, module2) { - "use strict"; - var Base = require_base2(); - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - exports2 = module2.exports = JSONStream; - function JSONStream(runner, options) { - Base.call(this, runner, options); - var self2 = this; - var total = runner.total; - runner.once(EVENT_RUN_BEGIN, function() { - writeEvent(["start", { total }]); - }); - runner.on(EVENT_TEST_PASS, function(test) { - writeEvent(["pass", clean(test)]); - }); - runner.on(EVENT_TEST_FAIL, function(test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - writeEvent(["fail", test]); - }); - runner.once(EVENT_RUN_END, function() { - writeEvent(["end", self2.stats]); - }); - } - function writeEvent(event) { - process.stdout.write(JSON.stringify(event) + "\n"); - } - function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - file: test.file, - duration: test.duration, - currentRetry: test.currentRetry(), - speed: test.speed - }; - } - JSONStream.description = "newline delimited JSON events"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/index.js -var require_reporters = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/reporters/index.js"(exports2) { - "use strict"; - exports2.Base = exports2.base = require_base2(); - exports2.Dot = exports2.dot = require_dot(); - exports2.Doc = exports2.doc = require_doc(); - exports2.TAP = exports2.tap = require_tap(); - exports2.JSON = exports2.json = require_json2(); - exports2.HTML = exports2.html = require_html(); - exports2.List = exports2.list = require_list(); - exports2.Min = exports2.min = require_min(); - exports2.Spec = exports2.spec = require_spec(); - exports2.Nyan = exports2.nyan = require_nyan(); - exports2.XUnit = exports2.xunit = require_xunit(); - exports2.Markdown = exports2.markdown = require_markdown(); - exports2.Progress = exports2.progress = require_progress2(); - exports2.Landing = exports2.landing = require_landing(); - exports2.JSONStream = exports2["json-stream"] = require_json_stream(); - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocharc.json -var require_mocharc = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocharc.json"(exports2, module2) { - module2.exports = { - diff: true, - extension: ["js", "cjs", "mjs"], - package: "./package.json", - reporter: "spec", - slow: 75, - timeout: 2e3, - ui: "bdd", - "watch-ignore": ["node_modules", ".git"] - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/esm-utils.js -var require_esm_utils = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/esm-utils.js"(exports2) { - var path4 = require("path"); - var url = require("url"); - var forward = (x) => x; - var formattedImport = async (file, esmDecorator = forward) => { - if (path4.isAbsolute(file)) { - try { - return await exports2.doImport(esmDecorator(url.pathToFileURL(file))); - } catch (err) { - if (err instanceof SyntaxError && err.message && err.stack && !err.stack.includes(file)) { - const newErrorWithFilename = new SyntaxError(err.message); - newErrorWithFilename.stack = err.stack.replace( - /^SyntaxError/, - `SyntaxError[ @${file} ]` - ); - throw newErrorWithFilename; - } - throw err; - } - } - return exports2.doImport(esmDecorator(file)); - }; - exports2.doImport = async (file) => import(file); - exports2.requireOrImport = async (file, esmDecorator) => { - if (path4.extname(file) === ".mjs") { - return formattedImport(file, esmDecorator); - } - try { - return dealWithExports(await formattedImport(file, esmDecorator)); - } catch (err) { - if (err.code === "ERR_MODULE_NOT_FOUND" || err.code === "ERR_UNKNOWN_FILE_EXTENSION" || err.code === "ERR_UNSUPPORTED_DIR_IMPORT") { - try { - return require(file); - } catch (requireErr) { - if (requireErr.code === "ERR_REQUIRE_ESM" || requireErr instanceof SyntaxError && requireErr.toString().includes("Cannot use import statement outside a module")) { - throw err; - } else { - throw requireErr; - } - } - } else { - throw err; - } - } - }; - function dealWithExports(module3) { - if (module3.default) { - return module3.default; - } else { - return { ...module3, default: void 0 }; - } - } - exports2.loadFilesAsync = async (files, preLoadFunc, postLoadFunc, esmDecorator) => { - for (const file of files) { - preLoadFunc(file); - const result = await exports2.requireOrImport( - path4.resolve(file), - esmDecorator - ); - postLoadFunc(file, result); - } - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/stats-collector.js -var require_stats_collector = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/stats-collector.js"(exports2, module2) { - "use strict"; - var constants = require_runner().constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var Date2 = global.Date; - function createStatsCollector(runner) { - var stats = { - suites: 0, - tests: 0, - passes: 0, - pending: 0, - failures: 0 - }; - if (!runner) { - throw new TypeError("Missing runner argument"); - } - runner.stats = stats; - runner.once(EVENT_RUN_BEGIN, function() { - stats.start = new Date2(); - }); - runner.on(EVENT_SUITE_BEGIN, function(suite) { - suite.root || stats.suites++; - }); - runner.on(EVENT_TEST_PASS, function() { - stats.passes++; - }); - runner.on(EVENT_TEST_FAIL, function() { - stats.failures++; - }); - runner.on(EVENT_TEST_PENDING, function() { - stats.pending++; - }); - runner.on(EVENT_TEST_END, function() { - stats.tests++; - }); - runner.once(EVENT_RUN_END, function() { - stats.end = new Date2(); - stats.duration = stats.end - stats.start; - }); - } - module2.exports = createStatsCollector; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/test.js -var require_test = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/test.js"(exports2, module2) { - "use strict"; - var Runnable = require_runnable(); - var utils = require_utils(); - var errors = require_errors(); - var createInvalidArgumentTypeError = errors.createInvalidArgumentTypeError; - var isString2 = utils.isString; - var { MOCHA_ID_PROP_NAME } = utils.constants; - module2.exports = Test; - function Test(title, fn) { - if (!isString2(title)) { - throw createInvalidArgumentTypeError( - 'Test argument "title" should be a string. Received type "' + typeof title + '"', - "title", - "string" - ); - } - this.type = "test"; - Runnable.call(this, title, fn); - this.reset(); - } - utils.inherits(Test, Runnable); - Test.prototype.reset = function() { - Runnable.prototype.reset.call(this); - this.pending = !this.fn; - delete this.state; - }; - Test.prototype.retriedTest = function(n) { - if (!arguments.length) { - return this._retriedTest; - } - this._retriedTest = n; - }; - Test.prototype.markOnly = function() { - this.parent.appendOnlyTest(this); - }; - Test.prototype.clone = function() { - var test = new Test(this.title, this.fn); - test.timeout(this.timeout()); - test.slow(this.slow()); - test.retries(this.retries()); - test.currentRetry(this.currentRetry()); - test.retriedTest(this.retriedTest() || this); - test.globals(this.globals()); - test.parent = this.parent; - test.file = this.file; - test.ctx = this.ctx; - return test; - }; - Test.prototype.serialize = function serialize2() { - return { - $$currentRetry: this._currentRetry, - $$fullTitle: this.fullTitle(), - $$isPending: Boolean(this.pending), - $$retriedTest: this._retriedTest || null, - $$slow: this._slow, - $$titlePath: this.titlePath(), - body: this.body, - duration: this.duration, - err: this.err, - parent: { - $$fullTitle: this.parent.fullTitle(), - [MOCHA_ID_PROP_NAME]: this.parent.id - }, - speed: this.speed, - state: this.state, - title: this.title, - type: this.type, - file: this.file, - [MOCHA_ID_PROP_NAME]: this.id - }; - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/common.js -var require_common2 = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/common.js"(exports2, module2) { - "use strict"; - var Suite = require_suite(); - var errors = require_errors(); - var createMissingArgumentError = errors.createMissingArgumentError; - var createUnsupportedError = errors.createUnsupportedError; - var createForbiddenExclusivityError = errors.createForbiddenExclusivityError; - module2.exports = function(suites, context, mocha) { - function shouldBeTested(suite) { - return !mocha.options.grep || mocha.options.grep && mocha.options.grep.test(suite.fullTitle()) && !mocha.options.invert; - } - return { - /** - * This is only present if flag --delay is passed into Mocha. It triggers - * root suite execution. - * - * @param {Suite} suite The root suite. - * @return {Function} A function which runs the root suite - */ - runWithSuite: function runWithSuite(suite) { - return function run2() { - suite.run(); - }; - }, - /** - * Execute before running tests. - * - * @param {string} name - * @param {Function} fn - */ - before: function(name, fn) { - suites[0].beforeAll(name, fn); - }, - /** - * Execute after running tests. - * - * @param {string} name - * @param {Function} fn - */ - after: function(name, fn) { - suites[0].afterAll(name, fn); - }, - /** - * Execute before each test case. - * - * @param {string} name - * @param {Function} fn - */ - beforeEach: function(name, fn) { - suites[0].beforeEach(name, fn); - }, - /** - * Execute after each test case. - * - * @param {string} name - * @param {Function} fn - */ - afterEach: function(name, fn) { - suites[0].afterEach(name, fn); - }, - suite: { - /** - * Create an exclusive Suite; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - only: function only(opts) { - if (mocha.options.forbidOnly) { - throw createForbiddenExclusivityError(mocha); - } - opts.isOnly = true; - return this.create(opts); - }, - /** - * Create a Suite, but skip it; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - skip: function skip(opts) { - opts.pending = true; - return this.create(opts); - }, - /** - * Creates a suite. - * - * @param {Object} opts Options - * @param {string} opts.title Title of Suite - * @param {Function} [opts.fn] Suite Function (not always applicable) - * @param {boolean} [opts.pending] Is Suite pending? - * @param {string} [opts.file] Filepath where this Suite resides - * @param {boolean} [opts.isOnly] Is Suite exclusive? - * @returns {Suite} - */ - create: function create(opts) { - var suite = Suite.create(suites[0], opts.title); - suite.pending = Boolean(opts.pending); - suite.file = opts.file; - suites.unshift(suite); - if (opts.isOnly) { - suite.markOnly(); - } - if (suite.pending && mocha.options.forbidPending && shouldBeTested(suite)) { - throw createUnsupportedError("Pending test forbidden"); - } - if (typeof opts.fn === "function") { - opts.fn.call(suite); - suites.shift(); - } else if (typeof opts.fn === "undefined" && !suite.pending) { - throw createMissingArgumentError( - 'Suite "' + suite.fullTitle() + '" was defined but no callback was supplied. Supply a callback or explicitly skip the suite.', - "callback", - "function" - ); - } else if (!opts.fn && suite.pending) { - suites.shift(); - } - return suite; - } - }, - test: { - /** - * Exclusive test-case. - * - * @param {Object} mocha - * @param {Function} test - * @returns {*} - */ - only: function(mocha2, test) { - if (mocha2.options.forbidOnly) { - throw createForbiddenExclusivityError(mocha2); - } - test.markOnly(); - return test; - }, - /** - * Pending test case. - * - * @param {string} title - */ - skip: function(title) { - context.test(title); - } - } - }; - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/bdd.js -var require_bdd = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/bdd.js"(exports2, module2) { - "use strict"; - var Test = require_test(); - var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; - module2.exports = function bddInterface(suite) { - var suites = [suite]; - suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { - var common2 = require_common2()(suites, context, mocha); - context.before = common2.before; - context.after = common2.after; - context.beforeEach = common2.beforeEach; - context.afterEach = common2.afterEach; - context.run = mocha.options.delay && common2.runWithSuite(suite); - context.describe = context.context = function(title, fn) { - return common2.suite.create({ - title, - file, - fn - }); - }; - context.xdescribe = context.xcontext = context.describe.skip = function(title, fn) { - return common2.suite.skip({ - title, - file, - fn - }); - }; - context.describe.only = function(title, fn) { - return common2.suite.only({ - title, - file, - fn - }); - }; - context.it = context.specify = function(title, fn) { - var suite2 = suites[0]; - if (suite2.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite2.addTest(test); - return test; - }; - context.it.only = function(title, fn) { - return common2.test.only(mocha, context.it(title, fn)); - }; - context.xit = context.xspecify = context.it.skip = function(title) { - return context.it(title); - }; - }); - }; - module2.exports.description = "BDD or RSpec style [default]"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/tdd.js -var require_tdd = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/tdd.js"(exports2, module2) { - "use strict"; - var Test = require_test(); - var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; - module2.exports = function(suite) { - var suites = [suite]; - suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { - var common2 = require_common2()(suites, context, mocha); - context.setup = common2.beforeEach; - context.teardown = common2.afterEach; - context.suiteSetup = common2.before; - context.suiteTeardown = common2.after; - context.run = mocha.options.delay && common2.runWithSuite(suite); - context.suite = function(title, fn) { - return common2.suite.create({ - title, - file, - fn - }); - }; - context.suite.skip = function(title, fn) { - return common2.suite.skip({ - title, - file, - fn - }); - }; - context.suite.only = function(title, fn) { - return common2.suite.only({ - title, - file, - fn - }); - }; - context.test = function(title, fn) { - var suite2 = suites[0]; - if (suite2.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite2.addTest(test); - return test; - }; - context.test.only = function(title, fn) { - return common2.test.only(mocha, context.test(title, fn)); - }; - context.test.skip = common2.test.skip; - }); - }; - module2.exports.description = `traditional "suite"/"test" instead of BDD's "describe"/"it"`; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/qunit.js -var require_qunit = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/qunit.js"(exports2, module2) { - "use strict"; - var Test = require_test(); - var EVENT_FILE_PRE_REQUIRE = require_suite().constants.EVENT_FILE_PRE_REQUIRE; - module2.exports = function qUnitInterface(suite) { - var suites = [suite]; - suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) { - var common2 = require_common2()(suites, context, mocha); - context.before = common2.before; - context.after = common2.after; - context.beforeEach = common2.beforeEach; - context.afterEach = common2.afterEach; - context.run = mocha.options.delay && common2.runWithSuite(suite); - context.suite = function(title) { - if (suites.length > 1) { - suites.shift(); - } - return common2.suite.create({ - title, - file, - fn: false - }); - }; - context.suite.only = function(title) { - if (suites.length > 1) { - suites.shift(); - } - return common2.suite.only({ - title, - file, - fn: false - }); - }; - context.test = function(title, fn) { - var test = new Test(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - context.test.only = function(title, fn) { - return common2.test.only(mocha, context.test(title, fn)); - }; - context.test.skip = common2.test.skip; - }); - }; - module2.exports.description = "QUnit style"; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/exports.js -var require_exports = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/exports.js"(exports2, module2) { - "use strict"; - var Suite = require_suite(); - var Test = require_test(); - module2.exports = function(suite) { - var suites = [suite]; - suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit); - function visit(obj, file) { - var suite2; - for (var key in obj) { - if (typeof obj[key] === "function") { - var fn = obj[key]; - switch (key) { - case "before": - suites[0].beforeAll(fn); - break; - case "after": - suites[0].afterAll(fn); - break; - case "beforeEach": - suites[0].beforeEach(fn); - break; - case "afterEach": - suites[0].afterEach(fn); - break; - default: - var test = new Test(key, fn); - test.file = file; - suites[0].addTest(test); - } - } else { - suite2 = Suite.create(suites[0], key); - suites.unshift(suite2); - visit(obj[key], file); - suites.shift(); - } - } - } - }; - module2.exports.description = 'Node.js module ("exports") style'; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/index.js -var require_interfaces = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/interfaces/index.js"(exports2) { - "use strict"; - exports2.bdd = require_bdd(); - exports2.tdd = require_tdd(); - exports2.qunit = require_qunit(); - exports2.exports = require_exports(); - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/context.js -var require_context = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/context.js"(exports2, module2) { - "use strict"; - module2.exports = Context; - function Context() { - } - Context.prototype.runnable = function(runnable) { - if (!arguments.length) { - return this._runnable; - } - this.test = this._runnable = runnable; - return this; - }; - Context.prototype.timeout = function(ms) { - if (!arguments.length) { - return this.runnable().timeout(); - } - this.runnable().timeout(ms); - return this; - }; - Context.prototype.slow = function(ms) { - if (!arguments.length) { - return this.runnable().slow(); - } - this.runnable().slow(ms); - return this; - }; - Context.prototype.skip = function() { - this.runnable().skip(); - }; - Context.prototype.retries = function(n) { - if (!arguments.length) { - return this.runnable().retries(); - } - this.runnable().retries(n); - return this; - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/file-unloader.js -var require_file_unloader = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/file-unloader.js"(exports2) { - "use strict"; - exports2.unloadFile = (file) => { - delete require.cache[require.resolve(file)]; - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/package.json -var require_package = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/package.json"(exports2, module2) { - module2.exports = { - name: "mocha", - version: "10.3.0", - type: "commonjs", - description: "simple, flexible, fun test framework", - keywords: [ - "mocha", - "test", - "bdd", - "tdd", - "tap", - "testing", - "chai", - "assertion", - "ava", - "jest", - "tape", - "jasmine", - "karma" - ], - author: "TJ Holowaychuk ", - license: "MIT", - repository: { - type: "git", - url: "https://github.com/mochajs/mocha.git" - }, - bugs: { - url: "https://github.com/mochajs/mocha/issues/" - }, - discord: "https://discord.gg/KeDn2uXhER", - homepage: "https://mochajs.org/", - logo: "https://cldup.com/S9uQ-cOLYz.svg", - notifyLogo: "https://ibin.co/4QuRuGjXvl36.png", - bin: { - mocha: "./bin/mocha.js", - _mocha: "./bin/_mocha" - }, - directories: { - lib: "./lib", - test: "./test" - }, - engines: { - node: ">= 14.0.0" - }, - scripts: { - prepublishOnly: "nps test clean build", - start: "nps", - test: "nps test", - version: "nps version", - "test:smoke": "node ./bin/mocha --no-config test/smoke/smoke.spec.js" - }, - dependencies: { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - chokidar: "3.5.3", - debug: "4.3.4", - diff: "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - glob: "8.1.0", - he: "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - minimatch: "5.0.1", - ms: "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - workerpool: "6.2.1", - yargs: "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - devDependencies: { - "@11ty/eleventy": "^1.0.0", - "@11ty/eleventy-plugin-inclusive-language": "^1.0.3", - "@babel/eslint-parser": "^7.19.1", - "@mocha/docdash": "^4.0.1", - "@rollup/plugin-commonjs": "^21.0.2", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-multi-entry": "^4.0.1", - "@rollup/plugin-node-resolve": "^13.1.3", - autoprefixer: "^9.8.6", - chai: "^4.3.4", - coffeescript: "^2.6.1", - coveralls: "^3.1.1", - "cross-env": "^7.0.2", - eslint: "^8.24.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-semistandard": "^17.0.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.0.1", - "fail-on-errors-webpack-plugin": "^3.0.0", - "fs-extra": "^10.0.0", - husky: "^4.2.5", - hyperlink: "^5.0.4", - jsdoc: "^3.6.7", - "jsdoc-ts-utils": "^2.0.1", - karma: "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-mocha-reporter": "^2.2.5", - "karma-sauce-launcher": "^4.3.6", - "lint-staged": "^10.2.11", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "markdown-it-attrs": "^4.1.3", - "markdown-it-emoji": "^2.0.0", - "markdown-it-prism": "^2.2.2", - "markdown-toc": "^1.2.0", - "markdownlint-cli": "^0.30.0", - needle: "^2.5.0", - nps: "^5.10.0", - nyc: "^15.1.0", - pidtree: "^0.5.0", - prettier: "^2.4.1", - remark: "^14.0.2", - "remark-github": "^11.2.2", - "remark-inline-links": "^6.0.1", - rewiremock: "^3.14.3", - rimraf: "^3.0.2", - rollup: "^2.70.1", - "rollup-plugin-node-globals": "^1.4.0", - "rollup-plugin-polyfill-node": "^0.8.0", - "rollup-plugin-visualizer": "^5.6.0", - sinon: "^9.0.3", - "strip-ansi": "^6.0.0", - svgo: "^1.3.2", - unexpected: "^11.14.0", - "unexpected-eventemitter": "^2.2.0", - "unexpected-map": "^2.0.0", - "unexpected-set": "^3.0.0", - "unexpected-sinon": "^10.11.2", - "update-notifier": "^4.1.0", - uslug: "^1.0.4", - webpack: "^5.67.0", - "webpack-cli": "^4.9.1" - }, - files: [ - "bin/*mocha*", - "lib/**/*.{js,html,json}", - "index.js", - "mocha.css", - "mocha.js", - "mocha.js.map", - "browser-entry.js" - ], - browser: { - "./index.js": "./browser-entry.js", - fs: false, - path: false, - "supports-color": false, - "./lib/nodejs/buffered-worker-pool.js": false, - "./lib/nodejs/esm-utils.js": false, - "./lib/nodejs/file-unloader.js": false, - "./lib/nodejs/parallel-buffered-runner.js": false, - "./lib/nodejs/serializer.js": false, - "./lib/nodejs/worker.js": false, - "./lib/nodejs/reporters/parallel-buffered.js": false, - "./lib/cli/index.js": false - }, - prettier: { - arrowParens: "avoid", - bracketSpacing: false, - endOfLine: "auto", - singleQuote: true, - trailingComma: "none" - }, - overrides: { - webdriverio: "^7.33.0" - }, - husky: { - hooks: { - "pre-commit": "lint-staged" - } - } - }; - } -}); - -// ../../node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js -var require_randombytes = __commonJS({ - "../../node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js"(exports2, module2) { - module2.exports = require("crypto").randomBytes; - } -}); - -// ../../node_modules/.pnpm/serialize-javascript@6.0.0/node_modules/serialize-javascript/index.js -var require_serialize_javascript = __commonJS({ - "../../node_modules/.pnpm/serialize-javascript@6.0.0/node_modules/serialize-javascript/index.js"(exports2, module2) { - "use strict"; - var randomBytes = require_randombytes(); - var UID_LENGTH = 16; - var UID = generateUID(); - var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\d+)__@"', "g"); - var IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g; - var IS_PURE_FUNCTION = /function.*?\(/; - var IS_ARROW_FUNCTION = /.*?=>.*?/; - var UNSAFE_CHARS_REGEXP = /[<>\/\u2028\u2029]/g; - var RESERVED_SYMBOLS = ["*", "async"]; - var ESCAPED_CHARS = { - "<": "\\u003C", - ">": "\\u003E", - "/": "\\u002F", - "\u2028": "\\u2028", - "\u2029": "\\u2029" - }; - function escapeUnsafeChars(unsafeChar) { - return ESCAPED_CHARS[unsafeChar]; - } - function generateUID() { - var bytes = randomBytes(UID_LENGTH); - var result = ""; - for (var i = 0; i < UID_LENGTH; ++i) { - result += bytes[i].toString(16); - } - return result; - } - function deleteFunctions(obj) { - var functionKeys = []; - for (var key in obj) { - if (typeof obj[key] === "function") { - functionKeys.push(key); - } - } - for (var i = 0; i < functionKeys.length; i++) { - delete obj[functionKeys[i]]; - } - } - module2.exports = function serialize2(obj, options) { - options || (options = {}); - if (typeof options === "number" || typeof options === "string") { - options = { space: options }; - } - var functions = []; - var regexps = []; - var dates = []; - var maps = []; - var sets = []; - var arrays = []; - var undefs = []; - var infinities = []; - var bigInts = []; - var urls = []; - function replacer2(key, value) { - if (options.ignoreFunction) { - deleteFunctions(value); - } - if (!value && value !== void 0) { - return value; - } - var origValue = this[key]; - var type2 = typeof origValue; - if (type2 === "object") { - if (origValue instanceof RegExp) { - return "@__R-" + UID + "-" + (regexps.push(origValue) - 1) + "__@"; - } - if (origValue instanceof Date) { - return "@__D-" + UID + "-" + (dates.push(origValue) - 1) + "__@"; - } - if (origValue instanceof Map) { - return "@__M-" + UID + "-" + (maps.push(origValue) - 1) + "__@"; - } - if (origValue instanceof Set) { - return "@__S-" + UID + "-" + (sets.push(origValue) - 1) + "__@"; - } - if (origValue instanceof Array) { - var isSparse = origValue.filter(function() { - return true; - }).length !== origValue.length; - if (isSparse) { - return "@__A-" + UID + "-" + (arrays.push(origValue) - 1) + "__@"; - } - } - if (origValue instanceof URL) { - return "@__L-" + UID + "-" + (urls.push(origValue) - 1) + "__@"; - } - } - if (type2 === "function") { - return "@__F-" + UID + "-" + (functions.push(origValue) - 1) + "__@"; - } - if (type2 === "undefined") { - return "@__U-" + UID + "-" + (undefs.push(origValue) - 1) + "__@"; - } - if (type2 === "number" && !isNaN(origValue) && !isFinite(origValue)) { - return "@__I-" + UID + "-" + (infinities.push(origValue) - 1) + "__@"; - } - if (type2 === "bigint") { - return "@__B-" + UID + "-" + (bigInts.push(origValue) - 1) + "__@"; - } - return value; - } - function serializeFunc(fn) { - var serializedFn = fn.toString(); - if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) { - throw new TypeError("Serializing native function: " + fn.name); - } - if (IS_PURE_FUNCTION.test(serializedFn)) { - return serializedFn; - } - if (IS_ARROW_FUNCTION.test(serializedFn)) { - return serializedFn; - } - var argsStartsAt = serializedFn.indexOf("("); - var def = serializedFn.substr(0, argsStartsAt).trim().split(" ").filter(function(val) { - return val.length > 0; - }); - var nonReservedSymbols = def.filter(function(val) { - return RESERVED_SYMBOLS.indexOf(val) === -1; - }); - if (nonReservedSymbols.length > 0) { - return (def.indexOf("async") > -1 ? "async " : "") + "function" + (def.join("").indexOf("*") > -1 ? "*" : "") + serializedFn.substr(argsStartsAt); - } - return serializedFn; - } - if (options.ignoreFunction && typeof obj === "function") { - obj = void 0; - } - if (obj === void 0) { - return String(obj); - } - var str2; - if (options.isJSON && !options.space) { - str2 = JSON.stringify(obj); - } else { - str2 = JSON.stringify(obj, options.isJSON ? null : replacer2, options.space); - } - if (typeof str2 !== "string") { - return String(str2); - } - if (options.unsafe !== true) { - str2 = str2.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars); - } - if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) { - return str2; - } - return str2.replace(PLACE_HOLDER_REGEXP, function(match2, backSlash, type2, valueIndex) { - if (backSlash) { - return match2; - } - if (type2 === "D") { - return 'new Date("' + dates[valueIndex].toISOString() + '")'; - } - if (type2 === "R") { - return "new RegExp(" + serialize2(regexps[valueIndex].source) + ', "' + regexps[valueIndex].flags + '")'; - } - if (type2 === "M") { - return "new Map(" + serialize2(Array.from(maps[valueIndex].entries()), options) + ")"; - } - if (type2 === "S") { - return "new Set(" + serialize2(Array.from(sets[valueIndex].values()), options) + ")"; - } - if (type2 === "A") { - return "Array.prototype.slice.call(" + serialize2(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), options) + ")"; - } - if (type2 === "U") { - return "undefined"; - } - if (type2 === "I") { - return infinities[valueIndex]; - } - if (type2 === "B") { - return 'BigInt("' + bigInts[valueIndex] + '")'; - } - if (type2 === "L") { - return 'new URL("' + urls[valueIndex].toString() + '")'; - } - var fn = functions[valueIndex]; - return serializeFunc(fn); - }); - }; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/requireFoolWebpack.js -var require_requireFoolWebpack = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/requireFoolWebpack.js"(exports, module) { - var requireFoolWebpack = eval( - `typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }` - ); - module.exports = requireFoolWebpack; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/environment.js -var require_environment = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/environment.js"(exports2, module2) { - var requireFoolWebpack2 = require_requireFoolWebpack(); - var isNode = function(nodeProcess) { - return typeof nodeProcess !== "undefined" && nodeProcess.versions != null && nodeProcess.versions.node != null; - }; - module2.exports.isNode = isNode; - module2.exports.platform = typeof process !== "undefined" && isNode(process) ? "node" : "browser"; - var worker_threads = tryRequireFoolWebpack("worker_threads"); - module2.exports.isMainThread = module2.exports.platform === "node" ? (!worker_threads || worker_threads.isMainThread) && !process.connected : typeof Window !== "undefined"; - module2.exports.cpus = module2.exports.platform === "browser" ? self.navigator.hardwareConcurrency : requireFoolWebpack2("os").cpus().length; - function tryRequireFoolWebpack(module3) { - try { - return requireFoolWebpack2(module3); - } catch (err) { - return null; - } - } - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Promise.js -var require_Promise = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Promise.js"(exports2, module2) { - "use strict"; - function Promise2(handler, parent) { - var me = this; - if (!(this instanceof Promise2)) { - throw new SyntaxError("Constructor must be called with the new operator"); - } - if (typeof handler !== "function") { - throw new SyntaxError("Function parameter handler(resolve, reject) missing"); - } - var _onSuccess = []; - var _onFail = []; - this.resolved = false; - this.rejected = false; - this.pending = true; - var _process = function(onSuccess, onFail) { - _onSuccess.push(onSuccess); - _onFail.push(onFail); - }; - this.then = function(onSuccess, onFail) { - return new Promise2(function(resolve2, reject) { - var s = onSuccess ? _then(onSuccess, resolve2, reject) : resolve2; - var f = onFail ? _then(onFail, resolve2, reject) : reject; - _process(s, f); - }, me); - }; - var _resolve = function(result) { - me.resolved = true; - me.rejected = false; - me.pending = false; - _onSuccess.forEach(function(fn) { - fn(result); - }); - _process = function(onSuccess, onFail) { - onSuccess(result); - }; - _resolve = _reject = function() { - }; - return me; - }; - var _reject = function(error) { - me.resolved = false; - me.rejected = true; - me.pending = false; - _onFail.forEach(function(fn) { - fn(error); - }); - _process = function(onSuccess, onFail) { - onFail(error); - }; - _resolve = _reject = function() { - }; - return me; - }; - this.cancel = function() { - if (parent) { - parent.cancel(); - } else { - _reject(new CancellationError()); - } - return me; - }; - this.timeout = function(delay) { - if (parent) { - parent.timeout(delay); - } else { - var timer = setTimeout(function() { - _reject(new TimeoutError("Promise timed out after " + delay + " ms")); - }, delay); - me.always(function() { - clearTimeout(timer); - }); - } - return me; - }; - handler(function(result) { - _resolve(result); - }, function(error) { - _reject(error); - }); - } - function _then(callback, resolve2, reject) { - return function(result) { - try { - var res = callback(result); - if (res && typeof res.then === "function" && typeof res["catch"] === "function") { - res.then(resolve2, reject); - } else { - resolve2(res); - } - } catch (error) { - reject(error); - } - }; - } - Promise2.prototype["catch"] = function(onFail) { - return this.then(null, onFail); - }; - Promise2.prototype.always = function(fn) { - return this.then(fn, fn); - }; - Promise2.all = function(promises) { - return new Promise2(function(resolve2, reject) { - var remaining = promises.length, results = []; - if (remaining) { - promises.forEach(function(p, i) { - p.then(function(result) { - results[i] = result; - remaining--; - if (remaining == 0) { - resolve2(results); - } - }, function(error) { - remaining = 0; - reject(error); - }); - }); - } else { - resolve2(results); - } - }); - }; - Promise2.defer = function() { - var resolver = {}; - resolver.promise = new Promise2(function(resolve2, reject) { - resolver.resolve = resolve2; - resolver.reject = reject; - }); - return resolver; - }; - function CancellationError(message) { - this.message = message || "promise cancelled"; - this.stack = new Error().stack; - } - CancellationError.prototype = new Error(); - CancellationError.prototype.constructor = Error; - CancellationError.prototype.name = "CancellationError"; - Promise2.CancellationError = CancellationError; - function TimeoutError(message) { - this.message = message || "timeout exceeded"; - this.stack = new Error().stack; - } - TimeoutError.prototype = new Error(); - TimeoutError.prototype.constructor = Error; - TimeoutError.prototype.name = "TimeoutError"; - Promise2.TimeoutError = TimeoutError; - module2.exports = Promise2; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/generated/embeddedWorker.js -var require_embeddedWorker = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/generated/embeddedWorker.js"(exports2, module2) { - module2.exports = `!function(){var __webpack_exports__={};!function(){var exports=__webpack_exports__,__webpack_unused_export__;function _typeof(r){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var requireFoolWebpack=eval("typeof require !== 'undefined' ? require : function (module) { throw new Error('Module \\" + module + \\" not found.') }"),TERMINATE_METHOD_ID="__workerpool-terminate__",worker={exit:function(){}},WorkerThreads,parentPort;if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");try{WorkerThreads=requireFoolWebpack("worker_threads")}catch(error){if("object"!==_typeof(error)||null===error||"MODULE_NOT_FOUND"!==error.code)throw error}WorkerThreads&&null!==WorkerThreads.parentPort?(parentPort=WorkerThreads.parentPort,worker.send=parentPort.postMessage.bind(parentPort),worker.on=parentPort.on.bind(parentPort)):(worker.on=process.on.bind(process),worker.send=process.send.bind(process),worker.on("disconnect",function(){process.exit(1)}),worker.exit=process.exit.bind(process))}function convertError(o){return Object.getOwnPropertyNames(o).reduce(function(r,e){return Object.defineProperty(r,e,{value:o[e],enumerable:!0})},{})}function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r.catch}worker.methods={},worker.methods.run=function(r,e){r=new Function("return ("+r+").apply(null, arguments);");return r.apply(r,e)},worker.methods.methods=function(){return Object.keys(worker.methods)};var currentRequestId=null;worker.on("message",function(e){if(e===TERMINATE_METHOD_ID)return worker.exit(0);try{var r=worker.methods[e.method];if(!r)throw new Error('Unknown method "'+e.method+'"');currentRequestId=e.id;var o=r.apply(r,e.params);isPromise(o)?o.then(function(r){worker.send({id:e.id,result:r,error:null}),currentRequestId=null}).catch(function(r){worker.send({id:e.id,result:null,error:convertError(r)}),currentRequestId=null}):(worker.send({id:e.id,result:o,error:null}),currentRequestId=null)}catch(r){worker.send({id:e.id,result:null,error:convertError(r)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e]);worker.send("ready")},worker.emit=function(r){currentRequestId&&worker.send({id:currentRequestId,isEvent:!0,payload:r})},__webpack_unused_export__=worker.register,worker.emit}()}();`; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/WorkerHandler.js -var require_WorkerHandler = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/WorkerHandler.js"(exports2, module2) { - "use strict"; - var Promise2 = require_Promise(); - var environment = require_environment(); - var requireFoolWebpack2 = require_requireFoolWebpack(); - var TERMINATE_METHOD_ID2 = "__workerpool-terminate__"; - var CHILD_PROCESS_EXIT_TIMEOUT = 1e3; - function ensureWorkerThreads() { - var WorkerThreads2 = tryRequireWorkerThreads(); - if (!WorkerThreads2) { - throw new Error("WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required"); - } - return WorkerThreads2; - } - function ensureWebWorker() { - if (typeof Worker !== "function" && (typeof Worker !== "object" || typeof Worker.prototype.constructor !== "function")) { - throw new Error("WorkerPool: Web Workers not supported"); - } - } - function tryRequireWorkerThreads() { - try { - return requireFoolWebpack2("worker_threads"); - } catch (error) { - if (typeof error === "object" && error !== null && error.code === "MODULE_NOT_FOUND") { - return null; - } else { - throw error; - } - } - } - function getDefaultWorker() { - if (environment.platform === "browser") { - if (typeof Blob === "undefined") { - throw new Error("Blob not supported by the browser"); - } - if (!window.URL || typeof window.URL.createObjectURL !== "function") { - throw new Error("URL.createObjectURL not supported by the browser"); - } - var blob = new Blob([require_embeddedWorker()], { type: "text/javascript" }); - return window.URL.createObjectURL(blob); - } else { - return __dirname + "/worker.js"; - } - } - function setupWorker(script, options) { - if (options.workerType === "web") { - ensureWebWorker(); - return setupBrowserWorker(script, Worker); - } else if (options.workerType === "thread") { - WorkerThreads2 = ensureWorkerThreads(); - return setupWorkerThreadWorker(script, WorkerThreads2); - } else if (options.workerType === "process" || !options.workerType) { - return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process")); - } else { - if (environment.platform === "browser") { - ensureWebWorker(); - return setupBrowserWorker(script, Worker); - } else { - var WorkerThreads2 = tryRequireWorkerThreads(); - if (WorkerThreads2) { - return setupWorkerThreadWorker(script, WorkerThreads2); - } else { - return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process")); - } - } - } - } - function setupBrowserWorker(script, Worker2) { - var worker2 = new Worker2(script); - worker2.isBrowserWorker = true; - worker2.on = function(event, callback) { - this.addEventListener(event, function(message) { - callback(message.data); - }); - }; - worker2.send = function(message) { - this.postMessage(message); - }; - return worker2; - } - function setupWorkerThreadWorker(script, WorkerThreads2) { - var worker2 = new WorkerThreads2.Worker(script, { - stdout: false, - // automatically pipe worker.STDOUT to process.STDOUT - stderr: false - // automatically pipe worker.STDERR to process.STDERR - }); - worker2.isWorkerThread = true; - worker2.send = function(message) { - this.postMessage(message); - }; - worker2.kill = function() { - this.terminate(); - return true; - }; - worker2.disconnect = function() { - this.terminate(); - }; - return worker2; - } - function setupProcessWorker(script, options, child_process) { - var worker2 = child_process.fork( - script, - options.forkArgs, - options.forkOpts - ); - worker2.isChildProcess = true; - return worker2; - } - function resolveForkOptions(opts) { - opts = opts || {}; - var processExecArgv = process.execArgv.join(" "); - var inspectorActive = processExecArgv.indexOf("--inspect") !== -1; - var debugBrk = processExecArgv.indexOf("--debug-brk") !== -1; - var execArgv = []; - if (inspectorActive) { - execArgv.push("--inspect=" + opts.debugPort); - if (debugBrk) { - execArgv.push("--debug-brk"); - } - } - process.execArgv.forEach(function(arg) { - if (arg.indexOf("--max-old-space-size") > -1) { - execArgv.push(arg); - } - }); - return Object.assign({}, opts, { - forkArgs: opts.forkArgs, - forkOpts: Object.assign({}, opts.forkOpts, { - execArgv: (opts.forkOpts && opts.forkOpts.execArgv || []).concat(execArgv) - }) - }); - } - function objectToError(obj) { - var temp = new Error(""); - var props = Object.keys(obj); - for (var i = 0; i < props.length; i++) { - temp[props[i]] = obj[props[i]]; - } - return temp; - } - function WorkerHandler(script, _options) { - var me = this; - var options = _options || {}; - this.script = script || getDefaultWorker(); - this.worker = setupWorker(this.script, options); - this.debugPort = options.debugPort; - this.forkOpts = options.forkOpts; - this.forkArgs = options.forkArgs; - if (!script) { - this.worker.ready = true; - } - this.requestQueue = []; - this.worker.on("message", function(response) { - if (me.terminated) { - return; - } - if (typeof response === "string" && response === "ready") { - me.worker.ready = true; - dispatchQueuedRequests(); - } else { - var id = response.id; - var task = me.processing[id]; - if (task !== void 0) { - if (response.isEvent) { - if (task.options && typeof task.options.on === "function") { - task.options.on(response.payload); - } - } else { - delete me.processing[id]; - if (me.terminating === true) { - me.terminate(); - } - if (response.error) { - task.resolver.reject(objectToError(response.error)); - } else { - task.resolver.resolve(response.result); - } - } - } - } - }); - function onError(error) { - me.terminated = true; - for (var id in me.processing) { - if (me.processing[id] !== void 0) { - me.processing[id].resolver.reject(error); - } - } - me.processing = /* @__PURE__ */ Object.create(null); - } - function dispatchQueuedRequests() { - for (const request of me.requestQueue.splice(0)) { - me.worker.send(request); - } - } - var worker2 = this.worker; - this.worker.on("error", onError); - this.worker.on("exit", function(exitCode, signalCode) { - var message = "Workerpool Worker terminated Unexpectedly\n"; - message += " exitCode: `" + exitCode + "`\n"; - message += " signalCode: `" + signalCode + "`\n"; - message += " workerpool.script: `" + me.script + "`\n"; - message += " spawnArgs: `" + worker2.spawnargs + "`\n"; - message += " spawnfile: `" + worker2.spawnfile + "`\n"; - message += " stdout: `" + worker2.stdout + "`\n"; - message += " stderr: `" + worker2.stderr + "`\n"; - onError(new Error(message)); - }); - this.processing = /* @__PURE__ */ Object.create(null); - this.terminating = false; - this.terminated = false; - this.terminationHandler = null; - this.lastId = 0; - } - WorkerHandler.prototype.methods = function() { - return this.exec("methods"); - }; - WorkerHandler.prototype.exec = function(method, params, resolver, options) { - if (!resolver) { - resolver = Promise2.defer(); - } - var id = ++this.lastId; - this.processing[id] = { - id, - resolver, - options - }; - var request = { - id, - method, - params - }; - if (this.terminated) { - resolver.reject(new Error("Worker is terminated")); - } else if (this.worker.ready) { - this.worker.send(request); - } else { - this.requestQueue.push(request); - } - var me = this; - return resolver.promise.catch(function(error) { - if (error instanceof Promise2.CancellationError || error instanceof Promise2.TimeoutError) { - delete me.processing[id]; - return me.terminateAndNotify(true).then(function() { - throw error; - }, function(err) { - throw err; - }); - } else { - throw error; - } - }); - }; - WorkerHandler.prototype.busy = function() { - return Object.keys(this.processing).length > 0; - }; - WorkerHandler.prototype.terminate = function(force, callback) { - var me = this; - if (force) { - for (var id in this.processing) { - if (this.processing[id] !== void 0) { - this.processing[id].resolver.reject(new Error("Worker terminated")); - } - } - this.processing = /* @__PURE__ */ Object.create(null); - } - if (typeof callback === "function") { - this.terminationHandler = callback; - } - if (!this.busy()) { - var cleanup = function(err) { - me.terminated = true; - if (me.worker != null && me.worker.removeAllListeners) { - me.worker.removeAllListeners("message"); - } - me.worker = null; - me.terminating = false; - if (me.terminationHandler) { - me.terminationHandler(err, me); - } else if (err) { - throw err; - } - }; - if (this.worker) { - if (typeof this.worker.kill === "function") { - if (this.worker.killed) { - cleanup(new Error("worker already killed!")); - return; - } - if (this.worker.isChildProcess) { - var cleanExitTimeout = setTimeout(function() { - if (me.worker) { - me.worker.kill(); - } - }, CHILD_PROCESS_EXIT_TIMEOUT); - this.worker.once("exit", function() { - clearTimeout(cleanExitTimeout); - if (me.worker) { - me.worker.killed = true; - } - cleanup(); - }); - if (this.worker.ready) { - this.worker.send(TERMINATE_METHOD_ID2); - } else { - this.requestQueue.push(TERMINATE_METHOD_ID2); - } - } else { - this.worker.kill(); - this.worker.killed = true; - cleanup(); - } - return; - } else if (typeof this.worker.terminate === "function") { - this.worker.terminate(); - this.worker.killed = true; - } else { - throw new Error("Failed to terminate worker"); - } - } - cleanup(); - } else { - this.terminating = true; - } - }; - WorkerHandler.prototype.terminateAndNotify = function(force, timeout) { - var resolver = Promise2.defer(); - if (timeout) { - resolver.promise.timeout = timeout; - } - this.terminate(force, function(err, worker2) { - if (err) { - resolver.reject(err); - } else { - resolver.resolve(worker2); - } - }); - return resolver.promise; - }; - module2.exports = WorkerHandler; - module2.exports._tryRequireWorkerThreads = tryRequireWorkerThreads; - module2.exports._setupProcessWorker = setupProcessWorker; - module2.exports._setupBrowserWorker = setupBrowserWorker; - module2.exports._setupWorkerThreadWorker = setupWorkerThreadWorker; - module2.exports.ensureWorkerThreads = ensureWorkerThreads; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/debug-port-allocator.js -var require_debug_port_allocator = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/debug-port-allocator.js"(exports2, module2) { - "use strict"; - var MAX_PORTS = 65535; - module2.exports = DebugPortAllocator; - function DebugPortAllocator() { - this.ports = /* @__PURE__ */ Object.create(null); - this.length = 0; - } - DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) { - while (this.ports[starting] === true) { - starting++; - } - if (starting >= MAX_PORTS) { - throw new Error("WorkerPool debug port limit reached: " + starting + ">= " + MAX_PORTS); - } - this.ports[starting] = true; - this.length++; - return starting; - }; - DebugPortAllocator.prototype.releasePort = function(port) { - delete this.ports[port]; - this.length--; - }; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Pool.js -var require_Pool = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/Pool.js"(exports2, module2) { - var Promise2 = require_Promise(); - var WorkerHandler = require_WorkerHandler(); - var environment = require_environment(); - var DebugPortAllocator = require_debug_port_allocator(); - var DEBUG_PORT_ALLOCATOR = new DebugPortAllocator(); - function Pool(script, options) { - if (typeof script === "string") { - this.script = script || null; - } else { - this.script = null; - options = script; - } - this.workers = []; - this.tasks = []; - options = options || {}; - this.forkArgs = Object.freeze(options.forkArgs || []); - this.forkOpts = Object.freeze(options.forkOpts || {}); - this.debugPortStart = options.debugPortStart || 43210; - this.nodeWorker = options.nodeWorker; - this.workerType = options.workerType || options.nodeWorker || "auto"; - this.maxQueueSize = options.maxQueueSize || Infinity; - this.onCreateWorker = options.onCreateWorker || (() => null); - this.onTerminateWorker = options.onTerminateWorker || (() => null); - if (options && "maxWorkers" in options) { - validateMaxWorkers(options.maxWorkers); - this.maxWorkers = options.maxWorkers; - } else { - this.maxWorkers = Math.max((environment.cpus || 4) - 1, 1); - } - if (options && "minWorkers" in options) { - if (options.minWorkers === "max") { - this.minWorkers = this.maxWorkers; - } else { - validateMinWorkers(options.minWorkers); - this.minWorkers = options.minWorkers; - this.maxWorkers = Math.max(this.minWorkers, this.maxWorkers); - } - this._ensureMinWorkers(); - } - this._boundNext = this._next.bind(this); - if (this.workerType === "thread") { - WorkerHandler.ensureWorkerThreads(); - } - } - Pool.prototype.exec = function(method, params, options) { - if (params && !Array.isArray(params)) { - throw new TypeError('Array expected as argument "params"'); - } - if (typeof method === "string") { - var resolver = Promise2.defer(); - if (this.tasks.length >= this.maxQueueSize) { - throw new Error("Max queue size of " + this.maxQueueSize + " reached"); - } - var tasks = this.tasks; - var task = { - method, - params, - resolver, - timeout: null, - options - }; - tasks.push(task); - var originalTimeout = resolver.promise.timeout; - resolver.promise.timeout = function timeout(delay) { - if (tasks.indexOf(task) !== -1) { - task.timeout = delay; - return resolver.promise; - } else { - return originalTimeout.call(resolver.promise, delay); - } - }; - this._next(); - return resolver.promise; - } else if (typeof method === "function") { - return this.exec("run", [String(method), params]); - } else { - throw new TypeError('Function or string expected as argument "method"'); - } - }; - Pool.prototype.proxy = function() { - if (arguments.length > 0) { - throw new Error("No arguments expected"); - } - var pool = this; - return this.exec("methods").then(function(methods) { - var proxy = {}; - methods.forEach(function(method) { - proxy[method] = function() { - return pool.exec(method, Array.prototype.slice.call(arguments)); - }; - }); - return proxy; - }); - }; - Pool.prototype._next = function() { - if (this.tasks.length > 0) { - var worker2 = this._getWorker(); - if (worker2) { - var me = this; - var task = this.tasks.shift(); - if (task.resolver.promise.pending) { - var promise = worker2.exec(task.method, task.params, task.resolver, task.options).then(me._boundNext).catch(function() { - if (worker2.terminated) { - return me._removeWorker(worker2); - } - }).then(function() { - me._next(); - }); - if (typeof task.timeout === "number") { - promise.timeout(task.timeout); - } - } else { - me._next(); - } - } - } - }; - Pool.prototype._getWorker = function() { - var workers = this.workers; - for (var i = 0; i < workers.length; i++) { - var worker2 = workers[i]; - if (worker2.busy() === false) { - return worker2; - } - } - if (workers.length < this.maxWorkers) { - worker2 = this._createWorkerHandler(); - workers.push(worker2); - return worker2; - } - return null; - }; - Pool.prototype._removeWorker = function(worker2) { - var me = this; - DEBUG_PORT_ALLOCATOR.releasePort(worker2.debugPort); - this._removeWorkerFromList(worker2); - this._ensureMinWorkers(); - return new Promise2(function(resolve2, reject) { - worker2.terminate(false, function(err) { - me.onTerminateWorker({ - forkArgs: worker2.forkArgs, - forkOpts: worker2.forkOpts, - script: worker2.script - }); - if (err) { - reject(err); - } else { - resolve2(worker2); - } - }); - }); - }; - Pool.prototype._removeWorkerFromList = function(worker2) { - var index = this.workers.indexOf(worker2); - if (index !== -1) { - this.workers.splice(index, 1); - } - }; - Pool.prototype.terminate = function(force, timeout) { - var me = this; - this.tasks.forEach(function(task) { - task.resolver.reject(new Error("Pool terminated")); - }); - this.tasks.length = 0; - var f = function(worker2) { - this._removeWorkerFromList(worker2); - }; - var removeWorker = f.bind(this); - var promises = []; - var workers = this.workers.slice(); - workers.forEach(function(worker2) { - var termPromise = worker2.terminateAndNotify(force, timeout).then(removeWorker).always(function() { - me.onTerminateWorker({ - forkArgs: worker2.forkArgs, - forkOpts: worker2.forkOpts, - script: worker2.script - }); - }); - promises.push(termPromise); - }); - return Promise2.all(promises); - }; - Pool.prototype.stats = function() { - var totalWorkers = this.workers.length; - var busyWorkers = this.workers.filter(function(worker2) { - return worker2.busy(); - }).length; - return { - totalWorkers, - busyWorkers, - idleWorkers: totalWorkers - busyWorkers, - pendingTasks: this.tasks.length, - activeTasks: busyWorkers - }; - }; - Pool.prototype._ensureMinWorkers = function() { - if (this.minWorkers) { - for (var i = this.workers.length; i < this.minWorkers; i++) { - this.workers.push(this._createWorkerHandler()); - } - } - }; - Pool.prototype._createWorkerHandler = function() { - const overridenParams = this.onCreateWorker({ - forkArgs: this.forkArgs, - forkOpts: this.forkOpts, - script: this.script - }) || {}; - return new WorkerHandler(overridenParams.script || this.script, { - forkArgs: overridenParams.forkArgs || this.forkArgs, - forkOpts: overridenParams.forkOpts || this.forkOpts, - debugPort: DEBUG_PORT_ALLOCATOR.nextAvailableStartingAt(this.debugPortStart), - workerType: this.workerType - }); - }; - function validateMaxWorkers(maxWorkers) { - if (!isNumber(maxWorkers) || !isInteger2(maxWorkers) || maxWorkers < 1) { - throw new TypeError("Option maxWorkers must be an integer number >= 1"); - } - } - function validateMinWorkers(minWorkers) { - if (!isNumber(minWorkers) || !isInteger2(minWorkers) || minWorkers < 0) { - throw new TypeError("Option minWorkers must be an integer number >= 0"); - } - } - function isNumber(value) { - return typeof value === "number"; - } - function isInteger2(value) { - return Math.round(value) == value; - } - module2.exports = Pool; - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/worker.js -var require_worker = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/worker.js"(exports, module) { - var requireFoolWebpack = eval( - `typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }` - ); - var TERMINATE_METHOD_ID = "__workerpool-terminate__"; - var worker = { - exit: function() { - } - }; - if (typeof self !== "undefined" && typeof postMessage === "function" && typeof addEventListener === "function") { - worker.on = function(event, callback) { - addEventListener(event, function(message) { - callback(message.data); - }); - }; - worker.send = function(message) { - postMessage(message); - }; - } else if (typeof process !== "undefined") { - try { - WorkerThreads = requireFoolWebpack("worker_threads"); - } catch (error) { - if (typeof error === "object" && error !== null && error.code === "MODULE_NOT_FOUND") { - } else { - throw error; - } - } - if (WorkerThreads && /* if there is a parentPort, we are in a WorkerThread */ - WorkerThreads.parentPort !== null) { - parentPort = WorkerThreads.parentPort; - worker.send = parentPort.postMessage.bind(parentPort); - worker.on = parentPort.on.bind(parentPort); - } else { - worker.on = process.on.bind(process); - worker.send = process.send.bind(process); - worker.on("disconnect", function() { - process.exit(1); - }); - worker.exit = process.exit.bind(process); - } - } else { - throw new Error("Script must be executed as a worker"); - } - var WorkerThreads; - var parentPort; - function convertError(error) { - return Object.getOwnPropertyNames(error).reduce(function(product, name) { - return Object.defineProperty(product, name, { - value: error[name], - enumerable: true - }); - }, {}); - } - function isPromise(value) { - return value && typeof value.then === "function" && typeof value.catch === "function"; - } - worker.methods = {}; - worker.methods.run = function run2(fn, args) { - var f = new Function("return (" + fn + ").apply(null, arguments);"); - return f.apply(f, args); - }; - worker.methods.methods = function methods() { - return Object.keys(worker.methods); - }; - var currentRequestId = null; - worker.on("message", function(request) { - if (request === TERMINATE_METHOD_ID) { - return worker.exit(0); - } - try { - var method = worker.methods[request.method]; - if (method) { - currentRequestId = request.id; - var result = method.apply(method, request.params); - if (isPromise(result)) { - result.then(function(result2) { - worker.send({ - id: request.id, - result: result2, - error: null - }); - currentRequestId = null; - }).catch(function(err) { - worker.send({ - id: request.id, - result: null, - error: convertError(err) - }); - currentRequestId = null; - }); - } else { - worker.send({ - id: request.id, - result, - error: null - }); - currentRequestId = null; - } - } else { - throw new Error('Unknown method "' + request.method + '"'); - } - } catch (err) { - worker.send({ - id: request.id, - result: null, - error: convertError(err) - }); - } - }); - worker.register = function(methods) { - if (methods) { - for (var name in methods) { - if (methods.hasOwnProperty(name)) { - worker.methods[name] = methods[name]; - } - } - } - worker.send("ready"); - }; - worker.emit = function(payload) { - if (currentRequestId) { - worker.send({ - id: currentRequestId, - isEvent: true, - payload - }); - } - }; - if (typeof exports !== "undefined") { - exports.add = worker.register; - exports.emit = worker.emit; - } - } -}); - -// ../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/index.js -var require_src2 = __commonJS({ - "../../node_modules/.pnpm/workerpool@6.2.1/node_modules/workerpool/src/index.js"(exports2) { - var environment = require_environment(); - exports2.pool = function pool(script, options) { - var Pool = require_Pool(); - return new Pool(script, options); - }; - exports2.worker = function worker2(methods) { - var worker3 = require_worker(); - worker3.add(methods); - }; - exports2.workerEmit = function workerEmit(payload) { - var worker2 = require_worker(); - worker2.emit(payload); - }; - exports2.Promise = require_Promise(); - exports2.platform = environment.platform; - exports2.isMainThread = environment.isMainThread; - exports2.cpus = environment.cpus; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/serializer.js -var require_serializer = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/serializer.js"(exports2) { - "use strict"; - var { type: type2 } = require_utils(); - var { createInvalidArgumentTypeError } = require_errors(); - var debug = require_src()("mocha:serializer"); - var SERIALIZABLE_RESULT_NAME = "SerializableWorkerResult"; - var SERIALIZABLE_TYPES = /* @__PURE__ */ new Set(["object", "array", "function", "error"]); - var SerializableWorkerResult = class _SerializableWorkerResult { - /** - * Creates instance props; of note, the `__type` prop. - * - * Note that the failure count is _redundant_ and could be derived from the - * list of events; but since we're already doing the work, might as well use - * it. - * @param {SerializableEvent[]} [events=[]] - Events to eventually serialize - * @param {number} [failureCount=0] - Failure count - */ - constructor(events = [], failureCount = 0) { - this.failureCount = failureCount; - this.events = events; - Object.defineProperty(this, "__type", { - value: SERIALIZABLE_RESULT_NAME, - enumerable: true, - writable: false - }); - } - /** - * Instantiates a new {@link SerializableWorkerResult}. - * @param {...any} args - Args to constructor - * @returns {SerializableWorkerResult} - */ - static create(...args) { - return new _SerializableWorkerResult(...args); - } - /** - * Serializes each {@link SerializableEvent} in our `events` prop; - * makes this object read-only. - * @returns {Readonly} - */ - serialize() { - this.events.forEach((event) => { - event.serialize(); - }); - return Object.freeze(this); - } - /** - * Deserializes a {@link SerializedWorkerResult} into something reporters can - * use; calls {@link SerializableEvent.deserialize} on each item in its - * `events` prop. - * @param {SerializedWorkerResult} obj - * @returns {SerializedWorkerResult} - */ - static deserialize(obj) { - obj.events.forEach((event) => { - SerializableEvent.deserialize(event); - }); - return obj; - } - /** - * Returns `true` if this is a {@link SerializedWorkerResult} or a - * {@link SerializableWorkerResult}. - * @param {*} value - A value to check - * @returns {boolean} If true, it's deserializable - */ - static isSerializedWorkerResult(value) { - return value instanceof _SerializableWorkerResult || type2(value) === "object" && value.__type === SERIALIZABLE_RESULT_NAME; - } - }; - var SerializableEvent = class _SerializableEvent { - /** - * Constructs a `SerializableEvent`, throwing if we receive unexpected data. - * - * Practically, events emitted from `Runner` have a minumum of zero (0) - * arguments-- (for example, {@link Runnable.constants.EVENT_RUN_BEGIN}) and a - * maximum of two (2) (for example, - * {@link Runnable.constants.EVENT_TEST_FAIL}, where the second argument is an - * `Error`). The first argument, if present, is a {@link Runnable}. This - * constructor's arguments adhere to this convention. - * @param {string} eventName - A non-empty event name. - * @param {any} [originalValue] - Some data. Corresponds to extra arguments - * passed to `EventEmitter#emit`. - * @param {Error} [originalError] - An error, if there's an error. - * @throws If `eventName` is empty, or `originalValue` is a non-object. - */ - constructor(eventName, originalValue, originalError) { - if (!eventName) { - throw createInvalidArgumentTypeError( - "Empty `eventName` string argument", - "eventName", - "string" - ); - } - this.eventName = eventName; - const originalValueType = type2(originalValue); - if (originalValueType !== "object" && originalValueType !== "undefined") { - throw createInvalidArgumentTypeError( - `Expected object but received ${originalValueType}`, - "originalValue", - "object" - ); - } - Object.defineProperty(this, "originalError", { - value: originalError, - enumerable: false - }); - Object.defineProperty(this, "originalValue", { - value: originalValue, - enumerable: false - }); - } - /** - * In case you hated using `new` (I do). - * - * @param {...any} args - Args for {@link SerializableEvent#constructor}. - * @returns {SerializableEvent} A new `SerializableEvent` - */ - static create(...args) { - return new _SerializableEvent(...args); - } - /** - * Used internally by {@link SerializableEvent#serialize}. - * @ignore - * @param {Array} pairs - List of parent/key tuples to process; modified in-place. This JSDoc type is an approximation - * @param {object} parent - Some parent object - * @param {string} key - Key to inspect - * @param {WeakSet} seenObjects - For avoiding circular references - */ - static _serialize(pairs2, parent, key, seenObjects) { - let value = parent[key]; - if (seenObjects.has(value)) { - parent[key] = /* @__PURE__ */ Object.create(null); - return; - } - let _type = type2(value); - if (_type === "error") { - value = Object.assign(/* @__PURE__ */ Object.create(null), value, { - stack: value.stack, - message: value.message, - __type: "Error" - }); - parent[key] = value; - _type = "object"; - } - switch (_type) { - case "object": - if (type2(value.serialize) === "function") { - parent[key] = value.serialize(); - } else { - pairs2.push( - ...Object.keys(value).filter((key2) => SERIALIZABLE_TYPES.has(type2(value[key2]))).map((key2) => [value, key2]) - ); - } - break; - case "function": - delete parent[key]; - break; - case "array": - pairs2.push( - ...value.filter((value2) => SERIALIZABLE_TYPES.has(type2(value2))).map((value2, index) => [value2, index]) - ); - break; - } - } - /** - * Modifies this object *in place* (for theoretical memory consumption & - * performance reasons); serializes `SerializableEvent#originalValue` (placing - * the result in `SerializableEvent#data`) and `SerializableEvent#error`. - * Freezes this object. The result is an object that can be transmitted over - * IPC. - * If this quickly becomes unmaintainable, we will want to move towards immutable - * objects post-haste. - */ - serialize() { - const originalValue = this.originalValue; - const result = Object.assign(/* @__PURE__ */ Object.create(null), { - data: type2(originalValue) === "object" && type2(originalValue.serialize) === "function" ? originalValue.serialize() : originalValue, - error: this.originalError - }); - const pairs2 = Object.keys(result).map((key) => [result, key]); - const seenObjects = /* @__PURE__ */ new WeakSet(); - let pair; - while (pair = pairs2.shift()) { - _SerializableEvent._serialize(pairs2, ...pair, seenObjects); - seenObjects.add(pair[0]); - } - this.data = result.data; - this.error = result.error; - return Object.freeze(this); - } - /** - * Used internally by {@link SerializableEvent.deserialize}; creates an `Error` - * from an `Error`-like (serialized) object - * @ignore - * @param {Object} value - An Error-like value - * @returns {Error} Real error - */ - static _deserializeError(value) { - const error = new Error(value.message); - error.stack = value.stack; - Object.assign(error, value); - delete error.__type; - return error; - } - /** - * Used internally by {@link SerializableEvent.deserialize}; recursively - * deserializes an object in-place. - * @param {object|Array} parent - Some object or array - * @param {string|number} key - Some prop name or array index within `parent` - */ - static _deserializeObject(parent, key) { - if (key === "__proto__") { - delete parent[key]; - return; - } - const value = parent[key]; - if (type2(key) === "string" && key.startsWith("$$")) { - const newKey = key.slice(2); - parent[newKey] = () => value; - delete parent[key]; - key = newKey; - } - if (type2(value) === "array") { - value.forEach((_, idx) => { - _SerializableEvent._deserializeObject(value, idx); - }); - } else if (type2(value) === "object") { - if (value.__type === "Error") { - parent[key] = _SerializableEvent._deserializeError(value); - } else { - Object.keys(value).forEach((key2) => { - _SerializableEvent._deserializeObject(value, key2); - }); - } - } - } - /** - * Deserialize value returned from a worker into something more useful. - * Does not return the same object. - * @todo do this in a loop instead of with recursion (if necessary) - * @param {SerializedEvent} obj - Object returned from worker - * @returns {SerializedEvent} Deserialized result - */ - static deserialize(obj) { - if (!obj) { - throw createInvalidArgumentTypeError("Expected value", obj); - } - obj = Object.assign(/* @__PURE__ */ Object.create(null), obj); - if (obj.data) { - Object.keys(obj.data).forEach((key) => { - _SerializableEvent._deserializeObject(obj.data, key); - }); - } - if (obj.error) { - obj.error = _SerializableEvent._deserializeError(obj.error); - } - return obj; - } - }; - exports2.serialize = function serialize2(value) { - const result = type2(value) === "object" && type2(value.serialize) === "function" ? value.serialize() : value; - debug("serialized: %O", result); - return result; - }; - exports2.deserialize = function deserialize(value) { - const result = SerializableWorkerResult.isSerializedWorkerResult(value) ? SerializableWorkerResult.deserialize(value) : value; - debug("deserialized: %O", result); - return result; - }; - exports2.SerializableEvent = SerializableEvent; - exports2.SerializableWorkerResult = SerializableWorkerResult; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/buffered-worker-pool.js -var require_buffered_worker_pool = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/buffered-worker-pool.js"(exports2) { - "use strict"; - var serializeJavascript = require_serialize_javascript(); - var workerpool = require_src2(); - var { deserialize } = require_serializer(); - var debug = require_src()("mocha:parallel:buffered-worker-pool"); - var { createInvalidArgumentTypeError } = require_errors(); - var WORKER_PATH = require.resolve("./worker.js"); - var optionsCache = /* @__PURE__ */ new WeakMap(); - var WORKER_POOL_DEFAULT_OPTS = { - // use child processes, not worker threads! - workerType: "process", - // ensure the same flags sent to `node` for this `mocha` invocation are passed - // along to children - forkOpts: { execArgv: process.execArgv }, - maxWorkers: workerpool.cpus - 1 - }; - var BufferedWorkerPool = class _BufferedWorkerPool { - /** - * Creates an underlying worker pool instance; determines max worker count - * @param {Partial} [opts] - Options - */ - constructor(opts = {}) { - const maxWorkers = Math.max( - 1, - typeof opts.maxWorkers === "undefined" ? WORKER_POOL_DEFAULT_OPTS.maxWorkers : opts.maxWorkers - ); - if (workerpool.cpus < 2) { - debug( - "not enough CPU cores available to run multiple jobs; avoid --parallel on this machine" - ); - } else if (maxWorkers >= workerpool.cpus) { - debug( - "%d concurrent job(s) requested, but only %d core(s) available", - maxWorkers, - workerpool.cpus - ); - } - debug( - "run(): starting worker pool of max size %d, using node args: %s", - maxWorkers, - process.execArgv.join(" ") - ); - let counter = 0; - const onCreateWorker = ({ forkOpts }) => { - return { - forkOpts: { - ...forkOpts, - // adds an incremental id to all workers, which can be useful to allocate resources for each process - env: { ...process.env, MOCHA_WORKER_ID: counter++ } - } - }; - }; - this.options = { - ...WORKER_POOL_DEFAULT_OPTS, - ...opts, - maxWorkers, - onCreateWorker - }; - this._pool = workerpool.pool(WORKER_PATH, this.options); - } - /** - * Terminates all workers in the pool. - * @param {boolean} [force] - Whether to force-kill workers. By default, lets workers finish their current task before termination. - * @private - * @returns {Promise} - */ - async terminate(force = false) { - debug("terminate(): terminating with force = %s", force); - return this._pool.terminate(force); - } - /** - * Adds a test file run to the worker pool queue for execution by a worker process. - * - * Handles serialization/deserialization. - * - * @param {string} filepath - Filepath of test - * @param {Options} [options] - Options for Mocha instance - * @private - * @returns {Promise} - */ - async run(filepath, options = {}) { - if (!filepath || typeof filepath !== "string") { - throw createInvalidArgumentTypeError( - "Expected a non-empty filepath", - "filepath", - "string" - ); - } - const serializedOptions = _BufferedWorkerPool.serializeOptions(options); - const result = await this._pool.exec("run", [filepath, serializedOptions]); - return deserialize(result); - } - /** - * Returns stats about the state of the worker processes in the pool. - * - * Used for debugging. - * - * @private - */ - stats() { - return this._pool.stats(); - } - /** - * Instantiates a {@link WorkerPool}. - * @private - */ - static create(...args) { - return new _BufferedWorkerPool(...args); - } - /** - * Given Mocha options object `opts`, serialize into a format suitable for - * transmission over IPC. - * - * @param {Options} [opts] - Mocha options - * @private - * @returns {string} Serialized options - */ - static serializeOptions(opts = {}) { - if (!optionsCache.has(opts)) { - const serialized = serializeJavascript(opts, { - unsafe: true, - // this means we don't care about XSS - ignoreFunction: true - // do not serialize functions - }); - optionsCache.set(opts, serialized); - debug( - "serializeOptions(): serialized options %O to: %s", - opts, - serialized - ); - } - return optionsCache.get(opts); - } - /** - * Resets internal cache of serialized options objects. - * - * For testing/debugging - * @private - */ - static resetOptionsCache() { - optionsCache = /* @__PURE__ */ new WeakMap(); - } - }; - exports2.BufferedWorkerPool = BufferedWorkerPool; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js -var require_parallel_buffered_runner = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js"(exports2, module2) { - "use strict"; - var Runner = require_runner(); - var { EVENT_RUN_BEGIN, EVENT_RUN_END } = Runner.constants; - var debug = require_src()("mocha:parallel:parallel-buffered-runner"); - var { BufferedWorkerPool } = require_buffered_worker_pool(); - var { setInterval, clearInterval } = global; - var { createMap, constants } = require_utils(); - var { MOCHA_ID_PROP_NAME } = constants; - var { createFatalError } = require_errors(); - var DEFAULT_WORKER_REPORTER = require.resolve("./reporters/parallel-buffered"); - var DENY_OPTIONS = [ - "globalSetup", - "globalTeardown", - "parallel", - "p", - "jobs", - "j" - ]; - var debugStats = (pool) => { - const { totalWorkers, busyWorkers, idleWorkers, pendingTasks } = pool.stats(); - debug( - "%d/%d busy workers; %d idle; %d tasks queued", - busyWorkers, - totalWorkers, - idleWorkers, - pendingTasks - ); - }; - var DEBUG_STATS_INTERVAL = 5e3; - var ABORTED2 = "ABORTED"; - var IDLE = "IDLE"; - var ABORTING = "ABORTING"; - var RUNNING = "RUNNING"; - var BAILING = "BAILING"; - var BAILED = "BAILED"; - var COMPLETE = "COMPLETE"; - var states = createMap({ - [IDLE]: /* @__PURE__ */ new Set([RUNNING, ABORTING]), - [RUNNING]: /* @__PURE__ */ new Set([COMPLETE, BAILING, ABORTING]), - [COMPLETE]: /* @__PURE__ */ new Set(), - [ABORTED2]: /* @__PURE__ */ new Set(), - [ABORTING]: /* @__PURE__ */ new Set([ABORTED2]), - [BAILING]: /* @__PURE__ */ new Set([BAILED, ABORTING]), - [BAILED]: /* @__PURE__ */ new Set([COMPLETE, ABORTING]) - }); - var ParallelBufferedRunner = class extends Runner { - constructor(...args) { - super(...args); - let state = IDLE; - Object.defineProperty(this, "_state", { - get() { - return state; - }, - set(newState) { - if (states[state].has(newState)) { - state = newState; - } else { - throw new Error(`invalid state transition: ${state} => ${newState}`); - } - } - }); - this._workerReporter = DEFAULT_WORKER_REPORTER; - this._linkPartialObjects = false; - this._linkedObjectMap = /* @__PURE__ */ new Map(); - this.once(Runner.constants.EVENT_RUN_END, () => { - this._state = COMPLETE; - }); - } - /** - * Returns a mapping function to enqueue a file in the worker pool and return results of its execution. - * @param {BufferedWorkerPool} pool - Worker pool - * @param {Options} options - Mocha options - * @returns {FileRunner} Mapping function - * @private - */ - _createFileRunner(pool, options) { - const emitEvent = (event, failureCount) => { - this.emit(event.eventName, event.data, event.error); - if (this._state !== BAILING && event.data && event.data._bail && (failureCount || event.error)) { - debug("run(): nonzero failure count & found bail flag"); - this._state = BAILING; - } - }; - const linkEvent = (event) => { - const stack = [{ parent: event, prop: "data" }]; - while (stack.length) { - const { parent, prop } = stack.pop(); - const obj = parent[prop]; - let newObj; - if (obj && typeof obj === "object") { - if (obj[MOCHA_ID_PROP_NAME]) { - const id = obj[MOCHA_ID_PROP_NAME]; - newObj = this._linkedObjectMap.has(id) ? Object.assign(this._linkedObjectMap.get(id), obj) : obj; - this._linkedObjectMap.set(id, newObj); - parent[prop] = newObj; - } else { - throw createFatalError( - "Object missing ID received in event data", - obj - ); - } - } - Object.keys(newObj).forEach((key) => { - const value = obj[key]; - if (value && typeof value === "object" && value[MOCHA_ID_PROP_NAME]) { - stack.push({ obj: value, parent: newObj, prop: key }); - } - }); - } - }; - return async (file) => { - debug("run(): enqueueing test file %s", file); - try { - const { failureCount, events } = await pool.run(file, options); - if (this._state === BAILED) { - return; - } - debug( - "run(): completed run of file %s; %d failures / %d events", - file, - failureCount, - events.length - ); - this.failures += failureCount; - let event = events.shift(); - if (this._linkPartialObjects) { - while (event) { - linkEvent(event); - emitEvent(event, failureCount); - event = events.shift(); - } - } else { - while (event) { - emitEvent(event, failureCount); - event = events.shift(); - } - } - if (this._state === BAILING) { - debug('run(): terminating pool due to "bail" flag'); - this._state = BAILED; - await pool.terminate(); - } - } catch (err) { - if (this._state === BAILED || this._state === ABORTING) { - debug( - "run(): worker pool terminated with intent; skipping file %s", - file - ); - } else { - debug("run(): encountered uncaught exception: %O", err); - if (this.allowUncaught) { - this._state = ABORTING; - await pool.terminate(true); - } - throw err; - } - } finally { - debug("run(): done running file %s", file); - } - }; - } - /** - * Listen on `Process.SIGINT`; terminate pool if caught. - * Returns the listener for later call to `process.removeListener()`. - * @param {BufferedWorkerPool} pool - Worker pool - * @returns {SigIntListener} Listener - * @private - */ - _bindSigIntListener(pool) { - const sigIntListener = async () => { - debug("run(): caught a SIGINT"); - this._state = ABORTING; - try { - debug("run(): force-terminating worker pool"); - await pool.terminate(true); - } catch (err) { - console.error( - `Error while attempting to force-terminate worker pool: ${err}` - ); - process.exitCode = 1; - } finally { - process.nextTick(() => { - debug("run(): imminent death"); - this._state = ABORTED2; - process.kill(process.pid, "SIGINT"); - }); - } - }; - process.once("SIGINT", sigIntListener); - return sigIntListener; - } - /** - * Runs Mocha tests by creating a thread pool, then delegating work to the - * worker threads. - * - * Each worker receives one file, and as workers become available, they take a - * file from the queue and run it. The worker thread execution is treated like - * an RPC--it returns a `Promise` containing serialized information about the - * run. The information is processed as it's received, and emitted to a - * {@link Reporter}, which is likely listening for these events. - * - * @param {Function} callback - Called with an exit code corresponding to - * number of test failures. - * @param {Object} [opts] - options - * @param {string[]} opts.files - Files to run - * @param {Options} opts.options - command-line options - */ - run(callback, { files, options = {} } = {}) { - let sigIntListener; - options = { ...options, reporter: this._workerReporter }; - (async () => { - let debugInterval; - let pool; - try { - pool = BufferedWorkerPool.create({ maxWorkers: options.jobs }); - sigIntListener = this._bindSigIntListener(pool); - debugInterval = setInterval( - () => debugStats(pool), - DEBUG_STATS_INTERVAL - ).unref(); - this.started = true; - this._state = RUNNING; - this.emit(EVENT_RUN_BEGIN); - options = { ...options }; - DENY_OPTIONS.forEach((opt) => { - delete options[opt]; - }); - const results = await Promise.allSettled( - files.map(this._createFileRunner(pool, options)) - ); - await pool.terminate(); - results.filter(({ status }) => status === "rejected").forEach(({ reason }) => { - if (this.allowUncaught) { - throw reason; - } - this.uncaught(reason); - }); - if (this._state === ABORTING) { - return; - } - this.emit(EVENT_RUN_END); - debug("run(): completing with failure count %d", this.failures); - callback(this.failures); - } catch (err) { - process.nextTick(() => { - debug("run(): re-throwing uncaught exception"); - throw err; - }); - } finally { - clearInterval(debugInterval); - process.removeListener("SIGINT", sigIntListener); - } - })(); - return this; - } - /** - * Toggle partial object linking behavior; used for building object references from - * unique ID's. - * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable - * @returns {Runner} - * @chainable - * @public - * @example - * // this reporter needs proper object references when run in parallel mode - * class MyReporter() { - * constructor(runner) { - * this.runner.linkPartialObjects(true) - * .on(EVENT_SUITE_BEGIN, suite => { - // this Suite may be the same object... - * }) - * .on(EVENT_TEST_BEGIN, test => { - * // ...as the `test.parent` property - * }); - * } - * } - */ - linkPartialObjects(value) { - this._linkPartialObjects = Boolean(value); - return super.linkPartialObjects(value); - } - /** - * If this class is the `Runner` in use, then this is going to return `true`. - * - * For use by reporters. - * @returns {true} - * @public - */ - isParallelMode() { - return true; - } - /** - * Configures an alternate reporter for worker processes to use. Subclasses - * using worker processes should implement this. - * @public - * @param {string} path - Absolute path to alternate reporter for worker processes to use - * @returns {Runner} - * @throws When in serial mode - * @chainable - */ - workerReporter(reporter) { - this._workerReporter = reporter; - return this; - } - }; - module2.exports = ParallelBufferedRunner; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocha.js -var require_mocha = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/lib/mocha.js"(exports2, module2) { - "use strict"; - var escapeRe = require_escape_string_regexp(); - var path4 = require("path"); - var builtinReporters = require_reporters(); - var utils = require_utils(); - var mocharc = require_mocharc(); - var Suite = require_suite(); - var esmUtils = require_esm_utils(); - var createStatsCollector = require_stats_collector(); - var { - createInvalidReporterError, - createInvalidInterfaceError, - createMochaInstanceAlreadyDisposedError, - createMochaInstanceAlreadyRunningError, - createUnsupportedError - } = require_errors(); - var { EVENT_FILE_PRE_REQUIRE, EVENT_FILE_POST_REQUIRE, EVENT_FILE_REQUIRE } = Suite.constants; - var debug = require_src()("mocha:mocha"); - exports2 = module2.exports = Mocha2; - var mochaStates = utils.defineConstants({ - /** - * Initial state of the mocha instance - * @private - */ - INIT: "init", - /** - * Mocha instance is running tests - * @private - */ - RUNNING: "running", - /** - * Mocha instance is done running tests and references to test functions and hooks are cleaned. - * You can reset this state by unloading the test files. - * @private - */ - REFERENCES_CLEANED: "referencesCleaned", - /** - * Mocha instance is disposed and can no longer be used. - * @private - */ - DISPOSED: "disposed" - }); - if (!utils.isBrowser() && typeof module2.paths !== "undefined") { - cwd = utils.cwd(); - module2.paths.push(cwd, path4.join(cwd, "node_modules")); - } - var cwd; - exports2.utils = utils; - exports2.interfaces = require_interfaces(); - exports2.reporters = builtinReporters; - exports2.Runnable = require_runnable(); - exports2.Context = require_context(); - exports2.Runner = require_runner(); - exports2.Suite = Suite; - exports2.Hook = require_hook(); - exports2.Test = require_test(); - var currentContext; - exports2.afterEach = function(...args) { - return (currentContext.afterEach || currentContext.teardown).apply( - this, - args - ); - }; - exports2.after = function(...args) { - return (currentContext.after || currentContext.suiteTeardown).apply( - this, - args - ); - }; - exports2.beforeEach = function(...args) { - return (currentContext.beforeEach || currentContext.setup).apply(this, args); - }; - exports2.before = function(...args) { - return (currentContext.before || currentContext.suiteSetup).apply(this, args); - }; - exports2.describe = function(...args) { - return (currentContext.describe || currentContext.suite).apply(this, args); - }; - exports2.describe.only = function(...args) { - return (currentContext.describe || currentContext.suite).only.apply( - this, - args - ); - }; - exports2.describe.skip = function(...args) { - return (currentContext.describe || currentContext.suite).skip.apply( - this, - args - ); - }; - exports2.it = function(...args) { - return (currentContext.it || currentContext.test).apply(this, args); - }; - exports2.it.only = function(...args) { - return (currentContext.it || currentContext.test).only.apply(this, args); - }; - exports2.it.skip = function(...args) { - return (currentContext.it || currentContext.test).skip.apply(this, args); - }; - exports2.xdescribe = exports2.describe.skip; - exports2.xit = exports2.it.skip; - exports2.setup = exports2.beforeEach; - exports2.suiteSetup = exports2.before; - exports2.suiteTeardown = exports2.after; - exports2.suite = exports2.describe; - exports2.teardown = exports2.afterEach; - exports2.test = exports2.it; - exports2.run = function(...args) { - return currentContext.run.apply(this, args); - }; - function Mocha2(options = {}) { - options = { ...mocharc, ...options }; - this.files = []; - this.options = options; - this.suite = new exports2.Suite("", new exports2.Context(), true); - this._cleanReferencesAfterRun = true; - this._state = mochaStates.INIT; - this.grep(options.grep).fgrep(options.fgrep).ui(options.ui).reporter( - options.reporter, - options.reporterOption || options.reporterOptions - // for backwards compatibility - ).slow(options.slow).global(options.global); - if (typeof options.timeout !== "undefined") { - this.timeout(options.timeout === false ? 0 : options.timeout); - } - if ("retries" in options) { - this.retries(options.retries); - } - [ - "allowUncaught", - "asyncOnly", - "bail", - "checkLeaks", - "color", - "delay", - "diff", - "dryRun", - "failZero", - "forbidOnly", - "forbidPending", - "fullTrace", - "inlineDiffs", - "invert" - ].forEach(function(opt) { - if (options[opt]) { - this[opt](); - } - }, this); - if (options.rootHooks) { - this.rootHooks(options.rootHooks); - } - this._runnerClass = exports2.Runner; - this._lazyLoadFiles = false; - this.isWorker = Boolean(options.isWorker); - this.globalSetup(options.globalSetup).globalTeardown(options.globalTeardown).enableGlobalSetup(options.enableGlobalSetup).enableGlobalTeardown(options.enableGlobalTeardown); - if (options.parallel && (typeof options.jobs === "undefined" || options.jobs > 1)) { - debug("attempting to enable parallel mode"); - this.parallelMode(true); - } - } - Mocha2.prototype.bail = function(bail) { - this.suite.bail(bail !== false); - return this; - }; - Mocha2.prototype.addFile = function(file) { - this.files.push(file); - return this; - }; - Mocha2.prototype.reporter = function(reporterName, reporterOptions) { - if (typeof reporterName === "function") { - this._reporter = reporterName; - } else { - reporterName = reporterName || "spec"; - var reporter; - if (builtinReporters[reporterName]) { - reporter = builtinReporters[reporterName]; - } - if (!reporter) { - let foundReporter; - try { - foundReporter = require.resolve(reporterName); - reporter = require(foundReporter); - } catch (err) { - if (foundReporter) { - throw createInvalidReporterError(err.message, foundReporter); - } - try { - reporter = require(path4.resolve(reporterName)); - } catch (e) { - throw createInvalidReporterError(e.message, reporterName); - } - } - } - this._reporter = reporter; - } - this.options.reporterOption = reporterOptions; - this.options.reporterOptions = reporterOptions; - return this; - }; - Mocha2.prototype.ui = function(ui) { - var bindInterface; - if (typeof ui === "function") { - bindInterface = ui; - } else { - ui = ui || "bdd"; - bindInterface = exports2.interfaces[ui]; - if (!bindInterface) { - try { - bindInterface = require(ui); - } catch (err) { - throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui); - } - } - } - bindInterface(this.suite); - this.suite.on(EVENT_FILE_PRE_REQUIRE, function(context) { - currentContext = context; - }); - return this; - }; - Mocha2.prototype.loadFiles = function(fn) { - var self2 = this; - var suite = this.suite; - this.files.forEach(function(file) { - file = path4.resolve(file); - suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self2); - suite.emit(EVENT_FILE_REQUIRE, require(file), file, self2); - suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self2); - }); - fn && fn(); - }; - Mocha2.prototype.loadFilesAsync = function({ esmDecorator } = {}) { - var self2 = this; - var suite = this.suite; - this.lazyLoadFiles(true); - return esmUtils.loadFilesAsync( - this.files, - function(file) { - suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self2); - }, - function(file, resultModule) { - suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self2); - suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self2); - }, - esmDecorator - ); - }; - Mocha2.unloadFile = function(file) { - if (utils.isBrowser()) { - throw createUnsupportedError( - "unloadFile() is only supported in a Node.js environment" - ); - } - return require_file_unloader().unloadFile(file); - }; - Mocha2.prototype.unloadFiles = function() { - if (this._state === mochaStates.DISPOSED) { - throw createMochaInstanceAlreadyDisposedError( - "Mocha instance is already disposed, it cannot be used again.", - this._cleanReferencesAfterRun, - this - ); - } - this.files.forEach(function(file) { - Mocha2.unloadFile(file); - }); - this._state = mochaStates.INIT; - return this; - }; - Mocha2.prototype.fgrep = function(str2) { - if (!str2) { - return this; - } - return this.grep(new RegExp(escapeRe(str2))); - }; - Mocha2.prototype.grep = function(re) { - if (utils.isString(re)) { - var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/); - this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); - } else { - this.options.grep = re; - } - return this; - }; - Mocha2.prototype.invert = function() { - this.options.invert = true; - return this; - }; - Mocha2.prototype.checkLeaks = function(checkLeaks) { - this.options.checkLeaks = checkLeaks !== false; - return this; - }; - Mocha2.prototype.cleanReferencesAfterRun = function(cleanReferencesAfterRun) { - this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false; - return this; - }; - Mocha2.prototype.dispose = function() { - if (this._state === mochaStates.RUNNING) { - throw createMochaInstanceAlreadyRunningError( - "Cannot dispose while the mocha instance is still running tests." - ); - } - this.unloadFiles(); - this._previousRunner && this._previousRunner.dispose(); - this.suite.dispose(); - this._state = mochaStates.DISPOSED; - }; - Mocha2.prototype.fullTrace = function(fullTrace) { - this.options.fullTrace = fullTrace !== false; - return this; - }; - Mocha2.prototype.global = function(global2) { - this.options.global = (this.options.global || []).concat(global2).filter(Boolean).filter(function(elt, idx, arr) { - return arr.indexOf(elt) === idx; - }); - return this; - }; - Mocha2.prototype.globals = Mocha2.prototype.global; - Mocha2.prototype.color = function(color) { - this.options.color = color !== false; - return this; - }; - Mocha2.prototype.inlineDiffs = function(inlineDiffs) { - this.options.inlineDiffs = inlineDiffs !== false; - return this; - }; - Mocha2.prototype.diff = function(diff) { - this.options.diff = diff !== false; - return this; - }; - Mocha2.prototype.timeout = function(msecs) { - this.suite.timeout(msecs); - return this; - }; - Mocha2.prototype.retries = function(retry) { - this.suite.retries(retry); - return this; - }; - Mocha2.prototype.slow = function(msecs) { - this.suite.slow(msecs); - return this; - }; - Mocha2.prototype.asyncOnly = function(asyncOnly) { - this.options.asyncOnly = asyncOnly !== false; - return this; - }; - Mocha2.prototype.noHighlighting = function() { - this.options.noHighlighting = true; - return this; - }; - Mocha2.prototype.allowUncaught = function(allowUncaught) { - this.options.allowUncaught = allowUncaught !== false; - return this; - }; - Mocha2.prototype.delay = function delay() { - this.options.delay = true; - return this; - }; - Mocha2.prototype.dryRun = function(dryRun) { - this.options.dryRun = dryRun !== false; - return this; - }; - Mocha2.prototype.failZero = function(failZero) { - this.options.failZero = failZero !== false; - return this; - }; - Mocha2.prototype.forbidOnly = function(forbidOnly) { - this.options.forbidOnly = forbidOnly !== false; - return this; - }; - Mocha2.prototype.forbidPending = function(forbidPending) { - this.options.forbidPending = forbidPending !== false; - return this; - }; - Mocha2.prototype._guardRunningStateTransition = function() { - if (this._state === mochaStates.RUNNING) { - throw createMochaInstanceAlreadyRunningError( - "Mocha instance is currently running tests, cannot start a next test run until this one is done", - this - ); - } - if (this._state === mochaStates.DISPOSED || this._state === mochaStates.REFERENCES_CLEANED) { - throw createMochaInstanceAlreadyDisposedError( - "Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.", - this._cleanReferencesAfterRun, - this - ); - } - }; - Object.defineProperty(Mocha2.prototype, "version", { - value: require_package().version, - configurable: false, - enumerable: true, - writable: false - }); - Mocha2.prototype.run = function(fn) { - this._guardRunningStateTransition(); - this._state = mochaStates.RUNNING; - if (this._previousRunner) { - this._previousRunner.dispose(); - this.suite.reset(); - } - if (this.files.length && !this._lazyLoadFiles) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - const runner = new this._runnerClass(suite, { - cleanReferencesAfterRun: this._cleanReferencesAfterRun, - delay: options.delay, - dryRun: options.dryRun, - failZero: options.failZero - }); - createStatsCollector(runner); - var reporter = new this._reporter(runner, options); - runner.checkLeaks = options.checkLeaks === true; - runner.fullStackTrace = options.fullTrace; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - runner.forbidOnly = options.forbidOnly; - runner.forbidPending = options.forbidPending; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.global) { - runner.globals(options.global); - } - if (options.color !== void 0) { - exports2.reporters.Base.useColors = options.color; - } - exports2.reporters.Base.inlineDiffs = options.inlineDiffs; - exports2.reporters.Base.hideDiff = !options.diff; - const done = (failures) => { - this._previousRunner = runner; - this._state = this._cleanReferencesAfterRun ? mochaStates.REFERENCES_CLEANED : mochaStates.INIT; - fn = fn || utils.noop; - if (typeof reporter.done === "function") { - reporter.done(failures, fn); - } else { - fn(failures); - } - }; - const runAsync = async (runner2) => { - const context = this.options.enableGlobalSetup && this.hasGlobalSetupFixtures() ? await this.runGlobalSetup(runner2) : {}; - const failureCount = await runner2.runAsync({ - files: this.files, - options - }); - if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) { - await this.runGlobalTeardown(runner2, { context }); - } - return failureCount; - }; - runAsync(runner).then(done); - return runner; - }; - Mocha2.prototype.rootHooks = function rootHooks({ - beforeAll = [], - beforeEach = [], - afterAll = [], - afterEach = [] - } = {}) { - beforeAll = utils.castArray(beforeAll); - beforeEach = utils.castArray(beforeEach); - afterAll = utils.castArray(afterAll); - afterEach = utils.castArray(afterEach); - beforeAll.forEach((hook) => { - this.suite.beforeAll(hook); - }); - beforeEach.forEach((hook) => { - this.suite.beforeEach(hook); - }); - afterAll.forEach((hook) => { - this.suite.afterAll(hook); - }); - afterEach.forEach((hook) => { - this.suite.afterEach(hook); - }); - return this; - }; - Mocha2.prototype.parallelMode = function parallelMode(enable = true) { - if (utils.isBrowser()) { - throw createUnsupportedError("parallel mode is only supported in Node.js"); - } - const parallel = Boolean(enable); - if (parallel === this.options.parallel && this._lazyLoadFiles && this._runnerClass !== exports2.Runner) { - return this; - } - if (this._state !== mochaStates.INIT) { - throw createUnsupportedError( - "cannot change parallel mode after having called run()" - ); - } - this.options.parallel = parallel; - this._runnerClass = parallel ? require_parallel_buffered_runner() : exports2.Runner; - return this.lazyLoadFiles(this._lazyLoadFiles || parallel); - }; - Mocha2.prototype.lazyLoadFiles = function lazyLoadFiles(enable) { - this._lazyLoadFiles = enable === true; - debug("set lazy load to %s", enable); - return this; - }; - Mocha2.prototype.globalSetup = function globalSetup(setupFns = []) { - setupFns = utils.castArray(setupFns); - this.options.globalSetup = setupFns; - debug("configured %d global setup functions", setupFns.length); - return this; - }; - Mocha2.prototype.globalTeardown = function globalTeardown(teardownFns = []) { - teardownFns = utils.castArray(teardownFns); - this.options.globalTeardown = teardownFns; - debug("configured %d global teardown functions", teardownFns.length); - return this; - }; - Mocha2.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) { - const { globalSetup } = this.options; - if (globalSetup && globalSetup.length) { - debug("run(): global setup starting"); - await this._runGlobalFixtures(globalSetup, context); - debug("run(): global setup complete"); - } - return context; - }; - Mocha2.prototype.runGlobalTeardown = async function runGlobalTeardown(context = {}) { - const { globalTeardown } = this.options; - if (globalTeardown && globalTeardown.length) { - debug("run(): global teardown starting"); - await this._runGlobalFixtures(globalTeardown, context); - } - debug("run(): global teardown complete"); - return context; - }; - Mocha2.prototype._runGlobalFixtures = async function _runGlobalFixtures(fixtureFns = [], context = {}) { - for await (const fixtureFn of fixtureFns) { - await fixtureFn.call(context); - } - return context; - }; - Mocha2.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) { - this.options.enableGlobalSetup = Boolean(enabled); - return this; - }; - Mocha2.prototype.enableGlobalTeardown = function enableGlobalTeardown(enabled = true) { - this.options.enableGlobalTeardown = Boolean(enabled); - return this; - }; - Mocha2.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() { - return Boolean(this.options.globalSetup.length); - }; - Mocha2.prototype.hasGlobalTeardownFixtures = function hasGlobalTeardownFixtures() { - return Boolean(this.options.globalTeardown.length); - }; - } -}); - -// ../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/index.js -var require_mocha2 = __commonJS({ - "../../node_modules/.pnpm/mocha@10.3.0/node_modules/mocha/index.js"(exports2, module2) { - "use strict"; - module2.exports = require_mocha(); - } -}); - -// ../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js -var require_lodash = __commonJS({ - "../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"(exports2, module2) { - (function() { - var undefined2; - var VERSION = "4.17.21"; - var LARGE_ARRAY_SIZE = 200; - var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - var MAX_MEMOIZE_SIZE = 500; - var PLACEHOLDER = "__lodash_placeholder__"; - var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; - var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; - var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; - var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; - var HOT_COUNT = 800, HOT_SPAN = 16; - var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; - var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; - var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - var wrapFlags = [ - ["ary", WRAP_ARY_FLAG], - ["bind", WRAP_BIND_FLAG], - ["bindKey", WRAP_BIND_KEY_FLAG], - ["curry", WRAP_CURRY_FLAG], - ["curryRight", WRAP_CURRY_RIGHT_FLAG], - ["flip", WRAP_FLIP_FLAG], - ["partial", WRAP_PARTIAL_FLAG], - ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], - ["rearg", WRAP_REARG_FLAG] - ]; - var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; - var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; - var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); - var reTrimStart = /^\s+/; - var reWhitespace = /\s/; - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - var reEscapeChar = /\\(\\)?/g; - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - var reFlags = /\w*$/; - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - var reIsBinary = /^0b[01]+$/i; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var reIsOctal = /^0o[0-7]+$/i; - var reIsUint = /^(?:0|[1-9]\d*)$/; - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - var reNoMatch = /($^)/; - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; - var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; - var reApos = RegExp(rsApos, "g"); - var reComboMark = RegExp(rsCombo, "g"); - var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); - var reUnicodeWord = RegExp([ - rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", - rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", - rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, - rsUpper + "+" + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join("|"), "g"); - var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - var contextProps = [ - "Array", - "Buffer", - "DataView", - "Date", - "Error", - "Float32Array", - "Float64Array", - "Function", - "Int8Array", - "Int16Array", - "Int32Array", - "Map", - "Math", - "Object", - "Promise", - "RegExp", - "Set", - "String", - "Symbol", - "TypeError", - "Uint8Array", - "Uint8ClampedArray", - "Uint16Array", - "Uint32Array", - "WeakMap", - "_", - "clearTimeout", - "isFinite", - "parseInt", - "setTimeout" - ]; - var templateCounter = -1; - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; - var deburredLetters = { - // Latin-1 Supplement block. - "\xC0": "A", - "\xC1": "A", - "\xC2": "A", - "\xC3": "A", - "\xC4": "A", - "\xC5": "A", - "\xE0": "a", - "\xE1": "a", - "\xE2": "a", - "\xE3": "a", - "\xE4": "a", - "\xE5": "a", - "\xC7": "C", - "\xE7": "c", - "\xD0": "D", - "\xF0": "d", - "\xC8": "E", - "\xC9": "E", - "\xCA": "E", - "\xCB": "E", - "\xE8": "e", - "\xE9": "e", - "\xEA": "e", - "\xEB": "e", - "\xCC": "I", - "\xCD": "I", - "\xCE": "I", - "\xCF": "I", - "\xEC": "i", - "\xED": "i", - "\xEE": "i", - "\xEF": "i", - "\xD1": "N", - "\xF1": "n", - "\xD2": "O", - "\xD3": "O", - "\xD4": "O", - "\xD5": "O", - "\xD6": "O", - "\xD8": "O", - "\xF2": "o", - "\xF3": "o", - "\xF4": "o", - "\xF5": "o", - "\xF6": "o", - "\xF8": "o", - "\xD9": "U", - "\xDA": "U", - "\xDB": "U", - "\xDC": "U", - "\xF9": "u", - "\xFA": "u", - "\xFB": "u", - "\xFC": "u", - "\xDD": "Y", - "\xFD": "y", - "\xFF": "y", - "\xC6": "Ae", - "\xE6": "ae", - "\xDE": "Th", - "\xFE": "th", - "\xDF": "ss", - // Latin Extended-A block. - "\u0100": "A", - "\u0102": "A", - "\u0104": "A", - "\u0101": "a", - "\u0103": "a", - "\u0105": "a", - "\u0106": "C", - "\u0108": "C", - "\u010A": "C", - "\u010C": "C", - "\u0107": "c", - "\u0109": "c", - "\u010B": "c", - "\u010D": "c", - "\u010E": "D", - "\u0110": "D", - "\u010F": "d", - "\u0111": "d", - "\u0112": "E", - "\u0114": "E", - "\u0116": "E", - "\u0118": "E", - "\u011A": "E", - "\u0113": "e", - "\u0115": "e", - "\u0117": "e", - "\u0119": "e", - "\u011B": "e", - "\u011C": "G", - "\u011E": "G", - "\u0120": "G", - "\u0122": "G", - "\u011D": "g", - "\u011F": "g", - "\u0121": "g", - "\u0123": "g", - "\u0124": "H", - "\u0126": "H", - "\u0125": "h", - "\u0127": "h", - "\u0128": "I", - "\u012A": "I", - "\u012C": "I", - "\u012E": "I", - "\u0130": "I", - "\u0129": "i", - "\u012B": "i", - "\u012D": "i", - "\u012F": "i", - "\u0131": "i", - "\u0134": "J", - "\u0135": "j", - "\u0136": "K", - "\u0137": "k", - "\u0138": "k", - "\u0139": "L", - "\u013B": "L", - "\u013D": "L", - "\u013F": "L", - "\u0141": "L", - "\u013A": "l", - "\u013C": "l", - "\u013E": "l", - "\u0140": "l", - "\u0142": "l", - "\u0143": "N", - "\u0145": "N", - "\u0147": "N", - "\u014A": "N", - "\u0144": "n", - "\u0146": "n", - "\u0148": "n", - "\u014B": "n", - "\u014C": "O", - "\u014E": "O", - "\u0150": "O", - "\u014D": "o", - "\u014F": "o", - "\u0151": "o", - "\u0154": "R", - "\u0156": "R", - "\u0158": "R", - "\u0155": "r", - "\u0157": "r", - "\u0159": "r", - "\u015A": "S", - "\u015C": "S", - "\u015E": "S", - "\u0160": "S", - "\u015B": "s", - "\u015D": "s", - "\u015F": "s", - "\u0161": "s", - "\u0162": "T", - "\u0164": "T", - "\u0166": "T", - "\u0163": "t", - "\u0165": "t", - "\u0167": "t", - "\u0168": "U", - "\u016A": "U", - "\u016C": "U", - "\u016E": "U", - "\u0170": "U", - "\u0172": "U", - "\u0169": "u", - "\u016B": "u", - "\u016D": "u", - "\u016F": "u", - "\u0171": "u", - "\u0173": "u", - "\u0174": "W", - "\u0175": "w", - "\u0176": "Y", - "\u0177": "y", - "\u0178": "Y", - "\u0179": "Z", - "\u017B": "Z", - "\u017D": "Z", - "\u017A": "z", - "\u017C": "z", - "\u017E": "z", - "\u0132": "IJ", - "\u0133": "ij", - "\u0152": "Oe", - "\u0153": "oe", - "\u0149": "'n", - "\u017F": "s" - }; - var htmlEscapes = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" - }; - var htmlUnescapes = { - "&": "&", - "<": "<", - ">": ">", - """: '"', - "'": "'" - }; - var stringEscapes = { - "\\": "\\", - "'": "'", - "\n": "n", - "\r": "r", - "\u2028": "u2028", - "\u2029": "u2029" - }; - var freeParseFloat = parseFloat, freeParseInt = parseInt; - var freeGlobal = typeof global == "object" && global && global.Object === Object && global; - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root = freeGlobal || freeSelf || Function("return this")(); - var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2; - var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; - var moduleExports = freeModule && freeModule.exports === freeExports; - var freeProcess = moduleExports && freeGlobal.process; - var nodeUtil = function() { - try { - var types2 = freeModule && freeModule.require && freeModule.require("util").types; - if (types2) { - return types2; - } - return freeProcess && freeProcess.binding && freeProcess.binding("util"); - } catch (e) { - } - }(); - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - function apply(func, thisArg, args) { - switch (args.length) { - case 0: - return func.call(thisArg); - case 1: - return func.call(thisArg, args[0]); - case 2: - return func.call(thisArg, args[0], args[1]); - case 3: - return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - function arrayEach(array, iteratee) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - function arrayEvery(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - function arrayFilter(array, predicate) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - function arrayIncludesWith(array, value, comparator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - function arrayMap(array, iteratee) { - var index = -1, length = array == null ? 0 : array.length, result = Array(length); - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - function arrayPush(array, values2) { - var index = -1, length = values2.length, offset = array.length; - while (++index < length) { - array[offset + index] = values2[index]; - } - return array; - } - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - function arraySome(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - var asciiSize = baseProperty("length"); - function asciiToArray(string) { - return string.split(""); - } - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection2) { - if (predicate(value, key, collection2)) { - result = key; - return false; - } - }); - return result; - } - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - function baseIndexOf(array, value, fromIndex) { - return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); - } - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - function baseIsNaN(value) { - return value !== value; - } - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? baseSum(array, iteratee) / length : NAN; - } - function baseProperty(key) { - return function(object) { - return object == null ? undefined2 : object[key]; - }; - } - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined2 : object[key]; - }; - } - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection2) { - accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); - }); - return accumulator; - } - function baseSortBy(array, comparer) { - var length = array.length; - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - function baseSum(array, iteratee) { - var result, index = -1, length = array.length; - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined2) { - result = result === undefined2 ? current : result + current; - } - } - return result; - } - function baseTimes(n, iteratee) { - var index = -1, result = Array(n); - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; - } - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - function cacheHas(cache, key) { - return cache.has(key); - } - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, length = strSymbols.length; - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; - } - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; - } - function countHolders(array, placeholder) { - var length = array.length, result = 0; - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - var deburrLetter = basePropertyOf(deburredLetters); - var escapeHtmlChar = basePropertyOf(htmlEscapes); - function escapeStringChar(chr) { - return "\\" + stringEscapes[chr]; - } - function getValue(object, key) { - return object == null ? undefined2 : object[key]; - } - function hasUnicode(string) { - return reHasUnicode.test(string); - } - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - function iteratorToArray(iterator) { - var data, result = []; - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - function mapToArray(map2) { - var index = -1, result = Array(map2.size); - map2.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - function replaceHolders(array, placeholder) { - var index = -1, length = array.length, resIndex = 0, result = []; - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - function setToArray(set2) { - var index = -1, result = Array(set2.size); - set2.forEach(function(value) { - result[++index] = value; - }); - return result; - } - function setToPairs(set2) { - var index = -1, result = Array(set2.size); - set2.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - function stringSize(string) { - return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); - } - function stringToArray(string) { - return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); - } - function trimmedEndIndex(string) { - var index = string.length; - while (index-- && reWhitespace.test(string.charAt(index))) { - } - return index; - } - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - var runInContext = function runInContext2(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; - var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; - var coreJsData = context["__core-js_shared__"]; - var funcToString = funcProto.toString; - var hasOwnProperty = objectProto.hasOwnProperty; - var idCounter = 0; - var maskSrcKey = function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); - return uid ? "Symbol(src)_1." + uid : ""; - }(); - var nativeObjectToString = objectProto.toString; - var objectCtorString = funcToString.call(Object2); - var oldDash = root._; - var reIsNative = RegExp2( - "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" - ); - var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; - var defineProperty = function() { - try { - var func = getNative(Object2, "defineProperty"); - func({}, "", {}); - return func; - } catch (e) { - } - }(); - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; - var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); - var metaMap = WeakMap2 && new WeakMap2(); - var realNames = {}; - var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); - var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, "__wrapped__")) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - var baseCreate = /* @__PURE__ */ function() { - function object() { - } - return function(proto) { - if (!isObject3(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result2 = new object(); - object.prototype = undefined2; - return result2; - }; - }(); - function baseLodash() { - } - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined2; - } - lodash.templateSettings = { - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "escape": reEscape, - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "evaluate": reEvaluate, - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "interpolate": reInterpolate, - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - "variable": "", - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - "imports": { - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - "_": lodash - } - }; - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - function lazyClone() { - var result2 = new LazyWrapper(this.__wrapped__); - result2.__actions__ = copyArray(this.__actions__); - result2.__dir__ = this.__dir__; - result2.__filtered__ = this.__filtered__; - result2.__iteratees__ = copyArray(this.__iteratees__); - result2.__takeCount__ = this.__takeCount__; - result2.__views__ = copyArray(this.__views__); - return result2; - } - function lazyReverse() { - if (this.__filtered__) { - var result2 = new LazyWrapper(this); - result2.__dir__ = -1; - result2.__filtered__ = true; - } else { - result2 = this.clone(); - result2.__dir__ *= -1; - } - return result2; - } - function lazyValue() { - var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); - if (!isArr || !isRight && arrLength == length && takeCount == length) { - return baseWrapperValue(array, this.__actions__); - } - var result2 = []; - outer: - while (length-- && resIndex < takeCount) { - index += dir; - var iterIndex = -1, value = array[index]; - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value); - if (type2 == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type2 == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result2[resIndex++] = value; - } - return result2; - } - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - function Hash(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry2 = entries[index]; - this.set(entry2[0], entry2[1]); - } - } - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - function hashDelete(key) { - var result2 = this.has(key) && delete this.__data__[key]; - this.size -= result2 ? 1 : 0; - return result2; - } - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result2 = data[key]; - return result2 === HASH_UNDEFINED ? undefined2 : result2; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined2; - } - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); - } - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; - return this; - } - Hash.prototype.clear = hashClear; - Hash.prototype["delete"] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - function ListCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry2 = entries[index]; - this.set(entry2[0], entry2[1]); - } - } - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - function listCacheDelete(key) { - var data = this.__data__, index = assocIndexOf(data, key); - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - function listCacheGet(key) { - var data = this.__data__, index = assocIndexOf(data, key); - return index < 0 ? undefined2 : data[index][1]; - } - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - function listCacheSet(key, value) { - var data = this.__data__, index = assocIndexOf(data, key); - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - ListCache.prototype.clear = listCacheClear; - ListCache.prototype["delete"] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - function MapCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry2 = entries[index]; - this.set(entry2[0], entry2[1]); - } - } - function mapCacheClear() { - this.size = 0; - this.__data__ = { - "hash": new Hash(), - "map": new (Map2 || ListCache)(), - "string": new Hash() - }; - } - function mapCacheDelete(key) { - var result2 = getMapData(this, key)["delete"](key); - this.size -= result2 ? 1 : 0; - return result2; - } - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - function mapCacheSet(key, value) { - var data = getMapData(this, key), size2 = data.size; - data.set(key, value); - this.size += data.size == size2 ? 0 : 1; - return this; - } - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype["delete"] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - function SetCache(values3) { - var index = -1, length = values3 == null ? 0 : values3.length; - this.__data__ = new MapCache(); - while (++index < length) { - this.add(values3[index]); - } - } - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - function setCacheHas(value) { - return this.__data__.has(value); - } - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - function Stack2(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - function stackClear() { - this.__data__ = new ListCache(); - this.size = 0; - } - function stackDelete(key) { - var data = this.__data__, result2 = data["delete"](key); - this.size = data.size; - return result2; - } - function stackGet(key) { - return this.__data__.get(key); - } - function stackHas(key) { - return this.__data__.has(key); - } - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs2 = data.__data__; - if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { - pairs2.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs2); - } - data.set(key, value); - this.size = data.size; - return this; - } - Stack2.prototype.clear = stackClear; - Stack2.prototype["delete"] = stackDelete; - Stack2.prototype.get = stackGet; - Stack2.prototype.has = stackHas; - Stack2.prototype.set = stackSet; - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. - (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. - isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. - isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. - isIndex(key, length)))) { - result2.push(key); - } - } - return result2; - } - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined2; - } - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - function assignMergeValue(object, key, value) { - if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { - baseAssignValue(object, key, value); - } - } - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { - baseAssignValue(object, key, value); - } - } - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - function baseAggregator(collection, setter, iteratee2, accumulator) { - baseEach(collection, function(value, key, collection2) { - setter(accumulator, value, iteratee2(value), collection2); - }); - return accumulator; - } - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - function baseAssignValue(object, key, value) { - if (key == "__proto__" && defineProperty) { - defineProperty(object, key, { - "configurable": true, - "enumerable": true, - "value": value, - "writable": true - }); - } else { - object[key] = value; - } - } - function baseAt(object, paths) { - var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; - while (++index < length) { - result2[index] = skip ? undefined2 : get2(object, paths[index]); - } - return result2; - } - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined2) { - number = number <= upper ? number : upper; - } - if (lower !== undefined2) { - number = number >= lower ? number : lower; - } - } - return number; - } - function baseClone(value, bitmask, customizer, key, object, stack) { - var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; - if (customizer) { - result2 = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result2 !== undefined2) { - return result2; - } - if (!isObject3(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result2 = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result2); - } - } else { - var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || isFunc && !object) { - result2 = isFlat || isFunc ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result2 = initCloneByTag(value, tag, isDeep); - } - } - stack || (stack = new Stack2()); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result2); - if (isSet(value)) { - value.forEach(function(subValue) { - result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function(subValue, key2) { - result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - } - var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; - var props = isArr ? undefined2 : keysFunc(value); - arrayEach(props || value, function(subValue, key2) { - if (props) { - key2 = subValue; - subValue = value[key2]; - } - assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - return result2; - } - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object2(object); - while (length--) { - var key = props[length], predicate = source[key], value = object[key]; - if (value === undefined2 && !(key in object) || !predicate(value)) { - return false; - } - } - return true; - } - function baseDelay(func, wait, args) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return setTimeout2(function() { - func.apply(undefined2, args); - }, wait); - } - function baseDifference(array, values3, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values3.length; - if (!length) { - return result2; - } - if (iteratee2) { - values3 = arrayMap(values3, baseUnary(iteratee2)); - } - if (comparator) { - includes2 = arrayIncludesWith; - isCommon = false; - } else if (values3.length >= LARGE_ARRAY_SIZE) { - includes2 = cacheHas; - isCommon = false; - values3 = new SetCache(values3); - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values3[valuesIndex] === computed) { - continue outer; - } - } - result2.push(value); - } else if (!includes2(values3, computed, comparator)) { - result2.push(value); - } - } - return result2; - } - var baseEach = createBaseEach(baseForOwn); - var baseEachRight = createBaseEach(baseForOwnRight, true); - function baseEvery(collection, predicate) { - var result2 = true; - baseEach(collection, function(value, index, collection2) { - result2 = !!predicate(value, index, collection2); - return result2; - }); - return result2; - } - function baseExtremum(array, iteratee2, comparator) { - var index = -1, length = array.length; - while (++index < length) { - var value = array[index], current = iteratee2(value); - if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { - var computed = current, result2 = value; - } - } - return result2; - } - function baseFill(array, value, start, end) { - var length = array.length; - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end === undefined2 || end > length ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - function baseFilter(collection, predicate) { - var result2 = []; - baseEach(collection, function(value, index, collection2) { - if (predicate(value, index, collection2)) { - result2.push(value); - } - }); - return result2; - } - function baseFlatten(array, depth, predicate, isStrict, result2) { - var index = -1, length = array.length; - predicate || (predicate = isFlattenable); - result2 || (result2 = []); - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - baseFlatten(value, depth - 1, predicate, isStrict, result2); - } else { - arrayPush(result2, value); - } - } else if (!isStrict) { - result2[result2.length] = value; - } - } - return result2; - } - var baseFor = createBaseFor(); - var baseForRight = createBaseFor(true); - function baseForOwn(object, iteratee2) { - return object && baseFor(object, iteratee2, keys); - } - function baseForOwnRight(object, iteratee2) { - return object && baseForRight(object, iteratee2, keys); - } - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - function baseGet(object, path4) { - path4 = castPath(path4, object); - var index = 0, length = path4.length; - while (object != null && index < length) { - object = object[toKey(path4[index++])]; - } - return index && index == length ? object : undefined2; - } - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result2 = keysFunc(object); - return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); - } - function baseGetTag(value) { - if (value == null) { - return value === undefined2 ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); - } - function baseGt(value, other) { - return value > other; - } - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - function baseHasIn(object, key) { - return object != null && key in Object2(object); - } - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - function baseIntersection(arrays, iteratee2, comparator) { - var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee2) { - array = arrayMap(array, baseUnary(iteratee2)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; - } - array = arrays[0]; - var index = -1, seen = caches[0]; - outer: - while (++index < length && result2.length < maxLength) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; - } - function baseInverter(object, setter, iteratee2, accumulator) { - baseForOwn(object, function(value, key, object2) { - setter(accumulator, iteratee2(value), key, object2); - }); - return accumulator; - } - function baseInvoke(object, path4, args) { - path4 = castPath(path4, object); - object = parent(object, path4); - var func = object == null ? object : object[toKey(last(path4))]; - return func == null ? undefined2 : apply(func, object, args); - } - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack2()); - return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new Stack2()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack2()); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, length = index, noCustomizer = !customizer; - if (object == null) { - return !length; - } - object = Object2(object); - while (index--) { - var data = matchData[index]; - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], objValue = object[key], srcValue = data[1]; - if (noCustomizer && data[2]) { - if (objValue === undefined2 && !(key in object)) { - return false; - } - } else { - var stack = new Stack2(); - if (customizer) { - var result2 = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { - return false; - } - } - } - return true; - } - function baseIsNative(value) { - if (!isObject3(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - function baseIsTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - function baseIteratee(value) { - if (typeof value == "function") { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == "object") { - return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); - } - return property(value); - } - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result2 = []; - for (var key in Object2(object)) { - if (hasOwnProperty.call(object, key) && key != "constructor") { - result2.push(key); - } - } - return result2; - } - function baseKeysIn(object) { - if (!isObject3(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), result2 = []; - for (var key in object) { - if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { - result2.push(key); - } - } - return result2; - } - function baseLt(value, other) { - return value < other; - } - function baseMap(collection, iteratee2) { - var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value, key, collection2) { - result2[++index] = iteratee2(value, key, collection2); - }); - return result2; - } - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - function baseMatchesProperty(path4, srcValue) { - if (isKey(path4) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path4), srcValue); - } - return function(object) { - var objValue = get2(object, path4); - return objValue === undefined2 && objValue === srcValue ? hasIn(object, path4) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack2()); - if (isObject3(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } else { - var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; - if (newValue === undefined2) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; - var isCommon = newValue === undefined2; - if (isCommon) { - var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } else { - newValue = []; - } - } else if (isPlainObject2(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } else if (!isObject3(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } else { - isCommon = false; - } - } - if (isCommon) { - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack["delete"](srcValue); - } - assignMergeValue(object, key, newValue); - } - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined2; - } - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee2) { - if (isArray(iteratee2)) { - return function(value) { - return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); - }; - } - return iteratee2; - }); - } else { - iteratees = [identity]; - } - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - var result2 = baseMap(collection, function(value, key, collection2) { - var criteria = arrayMap(iteratees, function(iteratee2) { - return iteratee2(value); - }); - return { "criteria": criteria, "index": ++index, "value": value }; - }); - return baseSortBy(result2, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path4) { - return hasIn(object, path4); - }); - } - function basePickBy(object, paths, predicate) { - var index = -1, length = paths.length, result2 = {}; - while (++index < length) { - var path4 = paths[index], value = baseGet(object, path4); - if (predicate(value, path4)) { - baseSet(result2, castPath(path4, object), value); - } - } - return result2; - } - function basePropertyDeep(path4) { - return function(object) { - return baseGet(object, path4); - }; - } - function basePullAll(array, values3, iteratee2, comparator) { - var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values3.length, seen = array; - if (array === values3) { - values3 = copyArray(values3); - } - if (iteratee2) { - seen = arrayMap(array, baseUnary(iteratee2)); - } - while (++index < length) { - var fromIndex = 0, value = values3[index], computed = iteratee2 ? iteratee2(value) : value; - while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, lastIndex = length - 1; - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - function baseRange(start, end, step, fromRight) { - var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); - while (length--) { - result2[fromRight ? length : ++index] = start; - start += step; - } - return result2; - } - function baseRepeat(string, n) { - var result2 = ""; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result2; - } - do { - if (n % 2) { - result2 += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - return result2; - } - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ""); - } - function baseSample(collection) { - return arraySample(values2(collection)); - } - function baseSampleSize(collection, n) { - var array = values2(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - function baseSet(object, path4, value, customizer) { - if (!isObject3(object)) { - return object; - } - path4 = castPath(path4, object); - var index = -1, length = path4.length, lastIndex = length - 1, nested = object; - while (nested != null && ++index < length) { - var key = toKey(path4[index]), newValue = value; - if (key === "__proto__" || key === "constructor" || key === "prototype") { - return object; - } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined2; - if (newValue === undefined2) { - newValue = isObject3(objValue) ? objValue : isIndex(path4[index + 1]) ? [] : {}; - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, "toString", { - "configurable": true, - "enumerable": false, - "value": constant(string), - "writable": true - }); - }; - function baseShuffle(collection) { - return shuffleSelf(values2(collection)); - } - function baseSlice(array, start, end) { - var index = -1, length = array.length; - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : end - start >>> 0; - start >>>= 0; - var result2 = Array2(length); - while (++index < length) { - result2[index] = array[index + start]; - } - return result2; - } - function baseSome(collection, predicate) { - var result2; - baseEach(collection, function(value, index, collection2) { - result2 = predicate(value, index, collection2); - return !result2; - }); - return !!result2; - } - function baseSortedIndex(array, value, retHighest) { - var low = 0, high = array == null ? low : array.length; - if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = low + high >>> 1, computed = array[mid]; - if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - function baseSortedIndexBy(array, value, iteratee2, retHighest) { - var low = 0, high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - value = iteratee2(value); - var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; - while (low < high) { - var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? computed <= value : computed < value; - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - function baseSortedUniq(array, iteratee2) { - var index = -1, length = array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - if (!index || !eq(computed, seen)) { - var seen = computed; - result2[resIndex++] = value === 0 ? 0 : value; - } - } - return result2; - } - function baseToNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - function baseToString(value) { - if (typeof value == "string") { - return value; - } - if (isArray(value)) { - return arrayMap(value, baseToString) + ""; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ""; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; - } - function baseUniq(array, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; - if (comparator) { - isCommon = false; - includes2 = arrayIncludesWith; - } else if (length >= LARGE_ARRAY_SIZE) { - var set3 = iteratee2 ? null : createSet(array); - if (set3) { - return setToArray(set3); - } - isCommon = false; - includes2 = cacheHas; - seen = new SetCache(); - } else { - seen = iteratee2 ? [] : result2; - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee2) { - seen.push(computed); - } - result2.push(value); - } else if (!includes2(seen, computed, comparator)) { - if (seen !== result2) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; - } - function baseUnset(object, path4) { - path4 = castPath(path4, object); - object = parent(object, path4); - return object == null || delete object[toKey(last(path4))]; - } - function baseUpdate(object, path4, updater, customizer) { - return baseSet(object, path4, updater(baseGet(object, path4)), customizer); - } - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, index = fromRight ? length : -1; - while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { - } - return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); - } - function baseWrapperValue(value, actions) { - var result2 = value; - if (result2 instanceof LazyWrapper) { - result2 = result2.value(); - } - return arrayReduce(actions, function(result3, action) { - return action.func.apply(action.thisArg, arrayPush([result3], action.args)); - }, result2); - } - function baseXor(arrays, iteratee2, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, result2 = Array2(length); - while (++index < length) { - var array = arrays[index], othIndex = -1; - while (++othIndex < length) { - if (othIndex != index) { - result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); - } - } - } - return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); - } - function baseZipObject(props, values3, assignFunc) { - var index = -1, length = props.length, valsLength = values3.length, result2 = {}; - while (++index < length) { - var value = index < valsLength ? values3[index] : undefined2; - assignFunc(result2, props[index], value); - } - return result2; - } - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - function castFunction(value) { - return typeof value == "function" ? value : identity; - } - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString2(value)); - } - var castRest = baseRest; - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined2 ? length : end; - return !start && end >= length ? array : baseSlice(array, start, end); - } - var clearTimeout2 = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - buffer.copy(result2); - return result2; - } - function cloneArrayBuffer(arrayBuffer) { - var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); - return result2; - } - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - function cloneRegExp(regexp) { - var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result2.lastIndex = regexp.lastIndex; - return result2; - } - function cloneSymbol(symbol) { - return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; - } - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); - var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); - if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { - return 1; - } - if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { - return -1; - } - } - return 0; - } - function compareMultiple(object, other, orders) { - var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; - while (++index < length) { - var result2 = compareAscending(objCriteria[index], othCriteria[index]); - if (result2) { - if (index >= ordersLength) { - return result2; - } - var order = orders[index]; - return result2 * (order == "desc" ? -1 : 1); - } - } - return object.index - other.index; - } - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; - while (++leftIndex < leftLength) { - result2[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result2[leftIndex++] = args[argsIndex++]; - } - return result2; - } - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; - while (++argsIndex < rangeLength) { - result2[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result2[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result2; - } - function copyArray(source, array) { - var index = -1, length = source.length; - array || (array = Array2(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - var index = -1, length = props.length; - while (++index < length) { - var key = props[index]; - var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; - if (newValue === undefined2) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - function createAggregator(setter, initializer) { - return function(collection, iteratee2) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; - return func(collection, setter, getIteratee(iteratee2, 2), accumulator); - }; - } - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; - customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined2 : customizer; - length = 1; - } - object = Object2(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee2) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee2); - } - var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); - while (fromRight ? index-- : ++index < length) { - if (iteratee2(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - function createBaseFor(fromRight) { - return function(object, iteratee2, keysFunc) { - var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee2(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - function createCaseFirst(methodName) { - return function(string) { - string = toString2(string); - var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; - var chr = strSymbols ? strSymbols[0] : string.charAt(0); - var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); - return chr[methodName]() + trailing; - }; - } - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); - }; - } - function createCtor(Ctor) { - return function() { - var args = arguments; - switch (args.length) { - case 0: - return new Ctor(); - case 1: - return new Ctor(args[0]); - case 2: - return new Ctor(args[0], args[1]); - case 3: - return new Ctor(args[0], args[1], args[2]); - case 4: - return new Ctor(args[0], args[1], args[2], args[3]); - case 5: - return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); - return isObject3(result2) ? result2 : thisBinding; - }; - } - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - function wrapper() { - var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); - while (index--) { - args[index] = arguments[index]; - } - var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); - length -= holders.length; - if (length < arity) { - return createRecurry( - func, - bitmask, - createHybrid, - wrapper.placeholder, - undefined2, - args, - holders, - undefined2, - undefined2, - arity - length - ); - } - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object2(collection); - if (!isArrayLike(collection)) { - var iteratee2 = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { - return iteratee2(iterable[key], key, iterable); - }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; - }; - } - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == "wrapper") { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; - if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function() { - var args = arguments, value = args[0]; - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; - while (++index2 < length) { - result2 = funcs[index2].call(this, result2); - } - return result2; - }; - }); - } - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); - function wrapper() { - var length = arguments.length, args = Array2(length), index = length; - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, - bitmask, - createHybrid, - wrapper.placeholder, - thisArg, - args, - newHolders, - argPos, - ary2, - arity - length - ); - } - var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary2 < length) { - args.length = ary2; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - function createInverter(setter, toIteratee) { - return function(object, iteratee2) { - return baseInverter(object, setter, toIteratee(iteratee2), {}); - }; - } - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result2; - if (value === undefined2 && other === undefined2) { - return defaultValue; - } - if (value !== undefined2) { - result2 = value; - } - if (other !== undefined2) { - if (result2 === undefined2) { - return other; - } - if (typeof value == "string" || typeof other == "string") { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result2 = operator(value, other); - } - return result2; - }; - } - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee2) { - return apply(iteratee2, thisArg, args); - }); - }); - }); - } - function createPadding(length, chars) { - chars = chars === undefined2 ? " " : baseToString(chars); - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); - } - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != "number" && isIterateeCall(start, end, step)) { - end = step = undefined2; - } - start = toFinite(start); - if (end === undefined2) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == "string" && typeof other == "string")) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; - bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, - bitmask, - thisArg, - newPartials, - newHolders, - newPartialsRight, - newHoldersRight, - argPos, - ary2, - arity - ]; - var result2 = wrapFunc.apply(undefined2, newData); - if (isLaziable(func)) { - setData(result2, newData); - } - result2.placeholder = placeholder; - return setWrapToString(result2, func, bitmask); - } - function createRound(methodName) { - var func = Math2[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - var pair = (toString2(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); - pair = (toString2(value) + "e").split("e"); - return +(pair[0] + "e" + (+pair[1] - precision)); - } - return func(number); - }; - } - var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values3) { - return new Set2(values3); - }; - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined2; - } - ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); - arity = arity === undefined2 ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, holdersRight = holders; - partials = holders = undefined2; - } - var data = isBindKey ? undefined2 : getData(func); - var newData = [ - func, - bitmask, - thisArg, - partials, - holders, - partialsRight, - holdersRight, - argPos, - ary2, - arity - ]; - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result2 = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result2 = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result2 = createPartial(func, bitmask, thisArg, partials); - } else { - result2 = createHybrid.apply(undefined2, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result2, newData), func, bitmask); - } - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { - return srcValue; - } - return objValue; - } - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject3(objValue) && isObject3(srcValue)) { - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); - stack["delete"](srcValue); - } - return objValue; - } - function customOmitClone(value) { - return isPlainObject2(value) ? undefined2 : value; - } - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; - stack.set(array, other); - stack.set(other, array); - while (++index < arrLength) { - var arrValue = array[index], othValue = other[index]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined2) { - if (compared) { - continue; - } - result2 = false; - break; - } - if (seen) { - if (!arraySome(other, function(othValue2, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result2 = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result2 = false; - break; - } - } - stack["delete"](array); - stack["delete"](other); - return result2; - } - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } - object = object.buffer; - other = other.buffer; - case arrayBufferTag: - if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { - return false; - } - return true; - case boolTag: - case dateTag: - case numberTag: - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - return object == other + ""; - case mapTag: - var convert = mapToArray; - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - if (object.size != other.size && !isPartial) { - return false; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - stack.set(object, other); - var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack["delete"](object); - return result2; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result2 = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], othValue = other[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } - if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result2 = false; - break; - } - skipCtor || (skipCtor = key == "constructor"); - } - if (result2 && !skipCtor) { - var objCtor = object.constructor, othCtor = other.constructor; - if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { - result2 = false; - } - } - stack["delete"](object); - stack["delete"](other); - return result2; - } - function flatRest(func) { - return setToString(overRest(func, undefined2, flatten2), func + ""); - } - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - function getFuncName(func) { - var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; - while (length--) { - var data = array[length], otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result2; - } - function getHolder(func) { - var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; - return object.placeholder; - } - function getIteratee() { - var result2 = lodash.iteratee || iteratee; - result2 = result2 === iteratee ? baseIteratee : result2; - return arguments.length ? result2(arguments[0], arguments[1]) : result2; - } - function getMapData(map3, key) { - var data = map3.__data__; - return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; - } - function getMatchData(object) { - var result2 = keys(object), length = result2.length; - while (length--) { - var key = result2[length], value = object[key]; - result2[length] = [key, value, isStrictComparable(value)]; - } - return result2; - } - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined2; - } - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; - try { - value[symToStringTag] = undefined2; - var unmasked = true; - } catch (e) { - } - var result2 = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result2; - } - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object2(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result2 = []; - while (object) { - arrayPush(result2, getSymbols(object)); - object = getPrototype(object); - } - return result2; - }; - var getTag = baseGetTag; - if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { - getTag = function(value) { - var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag; - case mapCtorString: - return mapTag; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag; - case weakMapCtorString: - return weakMapTag; - } - } - return result2; - }; - } - function getView(start, end, transforms) { - var index = -1, length = transforms.length; - while (++index < length) { - var data = transforms[index], size2 = data.size; - switch (data.type) { - case "drop": - start += size2; - break; - case "dropRight": - end -= size2; - break; - case "take": - end = nativeMin(end, start + size2); - break; - case "takeRight": - start = nativeMax(start, end - size2); - break; - } - } - return { "start": start, "end": end }; - } - function getWrapDetails(source) { - var match2 = source.match(reWrapDetails); - return match2 ? match2[1].split(reSplitDetails) : []; - } - function hasPath(object, path4, hasFunc) { - path4 = castPath(path4, object); - var index = -1, length = path4.length, result2 = false; - while (++index < length) { - var key = toKey(path4[index]); - if (!(result2 = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result2 || ++index != length) { - return result2; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); - } - function initCloneArray(array) { - var length = array.length, result2 = new array.constructor(length); - if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { - result2.index = array.index; - result2.input = array.input; - } - return result2; - } - function initCloneObject(object) { - return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; - } - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - case boolTag: - case dateTag: - return new Ctor(+object); - case dataViewTag: - return cloneDataView(object, isDeep); - case float32Tag: - case float64Tag: - case int8Tag: - case int16Tag: - case int32Tag: - case uint8Tag: - case uint8ClampedTag: - case uint16Tag: - case uint32Tag: - return cloneTypedArray(object, isDeep); - case mapTag: - return new Ctor(); - case numberTag: - case stringTag: - return new Ctor(object); - case regexpTag: - return cloneRegExp(object); - case setTag: - return new Ctor(); - case symbolTag: - return cloneSymbol(object); - } - } - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; - details = details.join(length > 2 ? ", " : " "); - return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); - } - function isFlattenable(value) { - return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); - } - function isIndex(value, length) { - var type2 = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); - } - function isIterateeCall(value, index, object) { - if (!isObject3(object)) { - return false; - } - var type2 = typeof index; - if (type2 == "number" ? isArrayLike(object) && isIndex(index, object.length) : type2 == "string" && index in object) { - return eq(object[index], value); - } - return false; - } - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type2 = typeof value; - if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); - } - function isKeyable(value) { - var type2 = typeof value; - return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null; - } - function isLaziable(func) { - var funcName = getFuncName(func), other = lodash[funcName]; - if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - var isMaskable = coreJsData ? isFunction : stubFalse; - function isPrototype(value) { - var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; - return value === proto; - } - function isStrictComparable(value) { - return value === value && !isObject3(value); - } - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); - }; - } - function memoizeCapped(func) { - var result2 = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result2.cache; - return result2; - } - function mergeData(data, source) { - var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; - if (!(isCommon || isCombo)) { - return data; - } - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - value = source[7]; - if (value) { - data[7] = value; - } - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - if (data[9] == null) { - data[9] = source[9]; - } - data[0] = source[0]; - data[1] = newBitmask; - return data; - } - function nativeKeysIn(object) { - var result2 = []; - if (object != null) { - for (var key in Object2(object)) { - result2.push(key); - } - } - return result2; - } - function objectToString(value) { - return nativeObjectToString.call(value); - } - function overRest(func, start, transform2) { - start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); - return function() { - var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array2(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform2(array); - return apply(func, this, otherArgs); - }; - } - function parent(object, path4) { - return path4.length < 2 ? object : baseGet(object, baseSlice(path4, 0, -1)); - } - function reorder(array, indexes) { - var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; - } - return array; - } - function safeGet(object, key) { - if (key === "constructor" && typeof object[key] === "function") { - return; - } - if (key == "__proto__") { - return; - } - return object[key]; - } - var setData = shortOut(baseSetData); - var setTimeout2 = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - var setToString = shortOut(baseSetToString); - function setWrapToString(wrapper, reference, bitmask) { - var source = reference + ""; - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - function shortOut(func) { - var count = 0, lastCalled = 0; - return function() { - var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined2, arguments); - }; - } - function shuffleSelf(array, size2) { - var index = -1, length = array.length, lastIndex = length - 1; - size2 = size2 === undefined2 ? length : size2; - while (++index < size2) { - var rand = baseRandom(index, lastIndex), value = array[rand]; - array[rand] = array[index]; - array[index] = value; - } - array.length = size2; - return array; - } - var stringToPath = memoizeCapped(function(string) { - var result2 = []; - if (string.charCodeAt(0) === 46) { - result2.push(""); - } - string.replace(rePropName, function(match2, number, quote, subString) { - result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match2); - }); - return result2; - }); - function toKey(value) { - if (typeof value == "string" || isSymbol(value)) { - return value; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; - } - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) { - } - try { - return func + ""; - } catch (e) { - } - } - return ""; - } - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = "_." + pair[0]; - if (bitmask & pair[1] && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result2.__actions__ = copyArray(wrapper.__actions__); - result2.__index__ = wrapper.__index__; - result2.__values__ = wrapper.__values__; - return result2; - } - function chunk(array, size2, guard) { - if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { - size2 = 1; - } else { - size2 = nativeMax(toInteger(size2), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size2 < 1) { - return []; - } - var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); - while (index < length) { - result2[resIndex++] = baseSlice(array, index, index += size2); - } - return result2; - } - function compact(array) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index]; - if (value) { - result2[resIndex++] = value; - } - } - return result2; - } - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array2(length - 1), array = arguments[0], index = length; - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - var difference = baseRest(function(array, values3) { - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true)) : []; - }); - var differenceBy = baseRest(function(array, values3) { - var iteratee2 = last(values3); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; - }); - var differenceWith = baseRest(function(array, values3) { - var comparator = last(values3); - if (isArrayLikeObject(comparator)) { - comparator = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), undefined2, comparator) : []; - }); - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - function dropRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; - } - function dropWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; - } - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != "number" && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined2) { - index = toInteger(fromIndex); - index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - function flatten2(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - function fromPairs(pairs2) { - var index = -1, length = pairs2 == null ? 0 : pairs2.length, result2 = {}; - while (++index < length) { - var pair = pairs2[index]; - result2[pair[0]] = pair[1]; - } - return result2; - } - function head(array) { - return array && array.length ? array[0] : undefined2; - } - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; - }); - var intersectionBy = baseRest(function(arrays) { - var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - if (iteratee2 === last(mapped)) { - iteratee2 = undefined2; - } else { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; - }); - var intersectionWith = baseRest(function(arrays) { - var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - comparator = typeof comparator == "function" ? comparator : undefined2; - if (comparator) { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; - }); - function join3(array, separator) { - return array == null ? "" : nativeJoin.call(array, separator); - } - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined2; - } - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined2) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); - } - function nth(array, n) { - return array && array.length ? baseNth(array, toInteger(n)) : undefined2; - } - var pull3 = baseRest(pullAll); - function pullAll(array, values3) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3) : array; - } - function pullAllBy(array, values3, iteratee2) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3, getIteratee(iteratee2, 2)) : array; - } - function pullAllWith(array, values3, comparator) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3, undefined2, comparator) : array; - } - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - return result2; - }); - function remove(array, predicate) { - var result2 = []; - if (!(array && array.length)) { - return result2; - } - var index = -1, indexes = [], length = array.length; - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result2.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result2; - } - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != "number" && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } else { - start = start == null ? 0 : toInteger(start); - end = end === undefined2 ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - function sortedIndexBy(array, value, iteratee2) { - return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); - } - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - function sortedLastIndexBy(array, value, iteratee2) { - return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); - } - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - function sortedUniq(array) { - return array && array.length ? baseSortedUniq(array) : []; - } - function sortedUniqBy(array, iteratee2) { - return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; - } - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - function takeRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; - } - function takeWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; - } - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - var unionBy = baseRest(function(arrays) { - var iteratee2 = last(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); - }); - var unionWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); - }); - function uniq(array) { - return array && array.length ? baseUniq(array) : []; - } - function uniqBy(array, iteratee2) { - return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; - } - function uniqWith2(array, comparator) { - comparator = typeof comparator == "function" ? comparator : undefined2; - return array && array.length ? baseUniq(array, undefined2, comparator) : []; - } - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - function unzipWith(array, iteratee2) { - if (!(array && array.length)) { - return []; - } - var result2 = unzip(array); - if (iteratee2 == null) { - return result2; - } - return arrayMap(result2, function(group) { - return apply(iteratee2, undefined2, group); - }); - } - var without = baseRest(function(array, values3) { - return isArrayLikeObject(array) ? baseDifference(array, values3) : []; - }); - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - var xorBy = baseRest(function(arrays) { - var iteratee2 = last(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); - }); - var xorWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); - }); - var zip = baseRest(unzip); - function zipObject(props, values3) { - return baseZipObject(props || [], values3 || [], assignValue); - } - function zipObjectDeep(props, values3) { - return baseZipObject(props || [], values3 || [], baseSet); - } - var zipWith = baseRest(function(arrays) { - var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; - iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; - return unzipWith(arrays, iteratee2); - }); - function chain(value) { - var result2 = lodash(value); - result2.__chain__ = true; - return result2; - } - function tap(value, interceptor) { - interceptor(value); - return value; - } - function thru(value, interceptor) { - return interceptor(value); - } - var wrapperAt = flatRest(function(paths) { - var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { - return baseAt(object, paths); - }; - if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - "func": thru, - "args": [interceptor], - "thisArg": undefined2 - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined2); - } - return array; - }); - }); - function wrapperChain() { - return chain(this); - } - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - function wrapperNext() { - if (this.__values__ === undefined2) { - this.__values__ = toArray2(this.value()); - } - var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; - return { "done": done, "value": value }; - } - function wrapperToIterator() { - return this; - } - function wrapperPlant(value) { - var result2, parent2 = this; - while (parent2 instanceof baseLodash) { - var clone2 = wrapperClone(parent2); - clone2.__index__ = 0; - clone2.__values__ = undefined2; - if (result2) { - previous.__wrapped__ = clone2; - } else { - result2 = clone2; - } - var previous = clone2; - parent2 = parent2.__wrapped__; - } - previous.__wrapped__ = value; - return result2; - } - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - "func": thru, - "args": [reverse], - "thisArg": undefined2 - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - var countBy = createAggregator(function(result2, value, key) { - if (hasOwnProperty.call(result2, key)) { - ++result2[key]; - } else { - baseAssignValue(result2, key, 1); - } - }); - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - function filter2(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - var find = createFind(findIndex); - var findLast = createFind(findLastIndex); - function flatMap(collection, iteratee2) { - return baseFlatten(map2(collection, iteratee2), 1); - } - function flatMapDeep(collection, iteratee2) { - return baseFlatten(map2(collection, iteratee2), INFINITY); - } - function flatMapDepth(collection, iteratee2, depth) { - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(map2(collection, iteratee2), depth); - } - function forEach(collection, iteratee2) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee2, 3)); - } - function forEachRight(collection, iteratee2) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee2, 3)); - } - var groupBy = createAggregator(function(result2, value, key) { - if (hasOwnProperty.call(result2, key)) { - result2[key].push(value); - } else { - baseAssignValue(result2, key, [value]); - } - }); - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values2(collection); - fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; - } - var invokeMap = baseRest(function(collection, path4, args) { - var index = -1, isFunc = typeof path4 == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value) { - result2[++index] = isFunc ? apply(path4, value, args) : baseInvoke(value, path4, args); - }); - return result2; - }); - var keyBy = createAggregator(function(result2, value, key) { - baseAssignValue(result2, key, value); - }); - function map2(collection, iteratee2) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee2, 3)); - } - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined2 : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - var partition = createAggregator(function(result2, value, key) { - result2[key ? 0 : 1].push(value); - }, function() { - return [[], []]; - }); - function reduce(collection, iteratee2, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); - } - function reduceRight(collection, iteratee2, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); - } - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - function sampleSize(collection, n, guard) { - if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString2(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - var now = ctxNow || function() { - return root.Date.now(); - }; - function after(n, func) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - function ary(func, n, guard) { - n = guard ? undefined2 : n; - n = func && n == null ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); - } - function before(n, func) { - var result2; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result2 = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined2; - } - return result2; - }; - } - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - function curry(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curry.placeholder; - return result2; - } - function curryRight(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curryRight.placeholder; - return result2; - } - function debounce(func, wait, options) { - var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject3(options)) { - leading = !!options.leading; - maxing = "maxWait" in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - function invokeFunc(time) { - var args = lastArgs, thisArg = lastThis; - lastArgs = lastThis = undefined2; - lastInvokeTime = time; - result2 = func.apply(thisArg, args); - return result2; - } - function leadingEdge(time) { - lastInvokeTime = time; - timerId = setTimeout2(timerExpired, wait); - return leading ? invokeFunc(time) : result2; - } - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; - return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - timerId = setTimeout2(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = undefined2; - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined2; - return result2; - } - function cancel() { - if (timerId !== undefined2) { - clearTimeout2(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined2; - } - function flush() { - return timerId === undefined2 ? result2 : trailingEdge(now()); - } - function debounced() { - var time = now(), isInvoking = shouldInvoke(time); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === undefined2) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout2(timerId); - timerId = setTimeout2(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined2) { - timerId = setTimeout2(timerExpired, wait); - } - return result2; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - var defer2 = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - function memoize(func, resolver) { - if (typeof func != "function" || resolver != null && typeof resolver != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; - if (cache.has(key)) { - return cache.get(key); - } - var result2 = func.apply(this, args); - memoized.cache = cache.set(key, result2) || cache; - return result2; - }; - memoized.cache = new (memoize.Cache || MapCache)(); - return memoized; - } - memoize.Cache = MapCache; - function negate(predicate) { - if (typeof predicate != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: - return !predicate.call(this); - case 1: - return !predicate.call(this, args[0]); - case 2: - return !predicate.call(this, args[0], args[1]); - case 3: - return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - function once(func) { - return before(2, func); - } - var overArgs = castRest(function(func, transforms) { - transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, length = nativeMin(args.length, funcsLength); - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); - }); - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); - }); - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); - }); - function rest(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start === undefined2 ? start : toInteger(start); - return baseRest(func, start); - } - function spread(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], otherArgs = castSlice(args, 0, start); - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - function throttle(func, wait, options) { - var leading = true, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (isObject3(options)) { - leading = "leading" in options ? !!options.leading : leading; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - "leading": leading, - "maxWait": wait, - "trailing": trailing - }); - } - function unary(func) { - return ary(func, 1); - } - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - function cloneWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - function eq(value, other) { - return value === other || value !== value && other !== other; - } - var gt = createRelationalOperation(baseGt); - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - var isArguments = baseIsArguments(/* @__PURE__ */ function() { - return arguments; - }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); - }; - var isArray = Array2.isArray; - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - function isBoolean2(value) { - return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; - } - var isBuffer = nativeIsBuffer || stubFalse; - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject2(value); - } - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - function isEqual(value, other) { - return baseIsEqual(value, other); - } - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - var result2 = customizer ? customizer(value, other) : undefined2; - return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; - } - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject2(value); - } - function isFinite2(value) { - return typeof value == "number" && nativeIsFinite(value); - } - function isFunction(value) { - if (!isObject3(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - function isInteger2(value) { - return typeof value == "number" && value == toInteger(value); - } - function isLength(value) { - return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - function isObject3(value) { - var type2 = typeof value; - return value != null && (type2 == "object" || type2 == "function"); - } - function isObjectLike(value) { - return value != null && typeof value == "object"; - } - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - function isNaN2(value) { - return isNumber(value) && value != +value; - } - function isNative(value) { - if (isMaskable(value)) { - throw new Error2(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - function isNull2(value) { - return value === null; - } - function isNil(value) { - return value == null; - } - function isNumber(value) { - return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; - } - function isPlainObject2(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; - } - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - function isSafeInteger(value) { - return isInteger2(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - function isString2(value) { - return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; - } - function isSymbol(value) { - return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; - } - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - function isUndefined(value) { - return value === undefined2; - } - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - var lt = createRelationalOperation(baseLt); - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - function toArray2(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString2(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values2; - return func(value); - } - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = value < 0 ? -1 : 1; - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - function toInteger(value) { - var result2 = toFinite(value), remainder = result2 % 1; - return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; - } - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - function toNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject3(value)) { - var other = typeof value.valueOf == "function" ? value.valueOf() : value; - value = isObject3(other) ? other + "" : other; - } - if (typeof value != "string") { - return value === 0 ? value : +value; - } - value = baseTrim(value); - var isBinary2 = reIsBinary.test(value); - return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; - } - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - function toSafeInteger(value) { - return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; - } - function toString2(value) { - return value == null ? "" : baseToString(value); - } - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - var at = flatRest(baseAt); - function create(prototype, properties) { - var result2 = baseCreate(prototype); - return properties == null ? result2 : baseAssign(result2, properties); - } - var defaults2 = baseRest(function(object, sources) { - object = Object2(object); - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { - object[key] = source[key]; - } - } - } - return object; - }); - var defaultsDeep = baseRest(function(args) { - args.push(undefined2, customDefaultsMerge); - return apply(mergeWith, undefined2, args); - }); - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - function forIn(object, iteratee2) { - return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); - } - function forInRight(object, iteratee2) { - return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); - } - function forOwn(object, iteratee2) { - return object && baseForOwn(object, getIteratee(iteratee2, 3)); - } - function forOwnRight(object, iteratee2) { - return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); - } - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - function get2(object, path4, defaultValue) { - var result2 = object == null ? undefined2 : baseGet(object, path4); - return result2 === undefined2 ? defaultValue : result2; - } - function has(object, path4) { - return object != null && hasPath(object, path4, baseHas); - } - function hasIn(object, path4) { - return object != null && hasPath(object, path4, baseHasIn); - } - var invert = createInverter(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString.call(value); - } - result2[value] = key; - }, constant(identity)); - var invertBy = createInverter(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString.call(value); - } - if (hasOwnProperty.call(result2, value)) { - result2[value].push(key); - } else { - result2[value] = [key]; - } - }, getIteratee); - var invoke = baseRest(baseInvoke); - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - function mapKeys(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value, key, object2) { - baseAssignValue(result2, iteratee2(value, key, object2), value); - }); - return result2; - } - function mapValues(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value, key, object2) { - baseAssignValue(result2, key, iteratee2(value, key, object2)); - }); - return result2; - } - var merge2 = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - var omit = flatRest(function(object, paths) { - var result2 = {}; - if (object == null) { - return result2; - } - var isDeep = false; - paths = arrayMap(paths, function(path4) { - path4 = castPath(path4, object); - isDeep || (isDeep = path4.length > 1); - return path4; - }); - copyObject(object, getAllKeysIn(object), result2); - if (isDeep) { - result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result2, paths[length]); - } - return result2; - }); - function omitBy(object, predicate) { - return pickBy2(object, negate(getIteratee(predicate))); - } - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - function pickBy2(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path4) { - return predicate(value, path4[0]); - }); - } - function result(object, path4, defaultValue) { - path4 = castPath(path4, object); - var index = -1, length = path4.length; - if (!length) { - length = 1; - object = undefined2; - } - while (++index < length) { - var value = object == null ? undefined2 : object[toKey(path4[index])]; - if (value === undefined2) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - function set2(object, path4, value) { - return object == null ? object : baseSet(object, path4, value); - } - function setWith(object, path4, value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseSet(object, path4, value, customizer); - } - var toPairs = createToPairs(keys); - var toPairsIn = createToPairs(keysIn); - function transform(object, iteratee2, accumulator) { - var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); - iteratee2 = getIteratee(iteratee2, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor() : []; - } else if (isObject3(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { - return iteratee2(accumulator, value, index, object2); - }); - return accumulator; - } - function unset(object, path4) { - return object == null ? true : baseUnset(object, path4); - } - function update(object, path4, updater) { - return object == null ? object : baseUpdate(object, path4, castFunction(updater)); - } - function updateWith(object, path4, updater, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseUpdate(object, path4, castFunction(updater), customizer); - } - function values2(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - function clamp(number, lower, upper) { - if (upper === undefined2) { - upper = lower; - lower = undefined2; - } - if (upper !== undefined2) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined2) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined2) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - function random(lower, upper, floating) { - if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined2; - } - if (floating === undefined2) { - if (typeof upper == "boolean") { - floating = upper; - upper = undefined2; - } else if (typeof lower == "boolean") { - floating = lower; - lower = undefined2; - } - } - if (lower === undefined2 && upper === undefined2) { - lower = 0; - upper = 1; - } else { - lower = toFinite(lower); - if (upper === undefined2) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); - } - return baseRandom(lower, upper); - } - var camelCase = createCompounder(function(result2, word, index) { - word = word.toLowerCase(); - return result2 + (index ? capitalize(word) : word); - }); - function capitalize(string) { - return upperFirst(toString2(string).toLowerCase()); - } - function deburr(string) { - string = toString2(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); - } - function endsWith(string, target, position) { - string = toString2(string); - target = baseToString(target); - var length = string.length; - position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - function escape2(string) { - string = toString2(string); - return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; - } - function escapeRegExp(string) { - string = toString2(string); - return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; - } - var kebabCase = createCompounder(function(result2, word, index) { - return result2 + (index ? "-" : "") + word.toLowerCase(); - }); - var lowerCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toLowerCase(); - }); - var lowerFirst = createCaseFirst("toLowerCase"); - function pad(string, length, chars) { - string = toString2(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); - } - function padEnd(string, length, chars) { - string = toString2(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? string + createPadding(length - strLength, chars) : string; - } - function padStart2(string, length, chars) { - string = toString2(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? createPadding(length - strLength, chars) + string : string; - } - function parseInt2(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString2(string).replace(reTrimStart, ""), radix || 0); - } - function repeat2(string, n, guard) { - if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString2(string), n); - } - function replace() { - var args = arguments, string = toString2(args[0]); - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - var snakeCase = createCompounder(function(result2, word, index) { - return result2 + (index ? "_" : "") + word.toLowerCase(); - }); - function split(string, separator, limit) { - if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { - separator = limit = undefined2; - } - limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString2(string); - if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - var startCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + upperFirst(word); - }); - function startsWith(string, target, position) { - string = toString2(string); - position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - function template(string, options, guard) { - var settings = lodash.templateSettings; - if (guard && isIterateeCall(string, options, guard)) { - options = undefined2; - } - string = toString2(string); - options = assignInWith({}, options, settings, customDefaultsAssignIn); - var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); - var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; - var reDelimiters = RegExp2( - (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", - "g" - ); - var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; - string.replace(reDelimiters, function(match2, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { - interpolateValue || (interpolateValue = esTemplateValue); - source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); - if (escapeValue) { - isEscaping = true; - source += "' +\n__e(" + escapeValue + ") +\n'"; - } - if (evaluateValue) { - isEvaluating = true; - source += "';\n" + evaluateValue + ";\n__p += '"; - } - if (interpolateValue) { - source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; - } - index = offset + match2.length; - return match2; - }); - source += "';\n"; - var variable = hasOwnProperty.call(options, "variable") && options.variable; - if (!variable) { - source = "with (obj) {\n" + source + "\n}\n"; - } else if (reForbiddenIdentifierChars.test(variable)) { - throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); - } - source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); - source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; - var result2 = attempt(function() { - return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); - }); - result2.source = source; - if (isError(result2)) { - throw result2; - } - return result2; - } - function toLower(value) { - return toString2(value).toLowerCase(); - } - function toUpper(value) { - return toString2(value).toUpperCase(); - } - function trim(string, chars, guard) { - string = toString2(string); - if (string && (guard || chars === undefined2)) { - return baseTrim(string); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; - return castSlice(strSymbols, start, end).join(""); - } - function trimEnd(string, chars, guard) { - string = toString2(string); - if (string && (guard || chars === undefined2)) { - return string.slice(0, trimmedEndIndex(string) + 1); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; - return castSlice(strSymbols, 0, end).join(""); - } - function trimStart(string, chars, guard) { - string = toString2(string); - if (string && (guard || chars === undefined2)) { - return string.replace(reTrimStart, ""); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); - return castSlice(strSymbols, start).join(""); - } - function truncate(string, options) { - var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; - if (isObject3(options)) { - var separator = "separator" in options ? options.separator : separator; - length = "length" in options ? toInteger(options.length) : length; - omission = "omission" in options ? baseToString(options.omission) : omission; - } - string = toString2(string); - var strLength = string.length; - if (hasUnicode(string)) { - var strSymbols = stringToArray(string); - strLength = strSymbols.length; - } - if (length >= strLength) { - return string; - } - var end = length - stringSize(omission); - if (end < 1) { - return omission; - } - var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end); - if (separator === undefined2) { - return result2 + omission; - } - if (strSymbols) { - end += result2.length - end; - } - if (isRegExp(separator)) { - if (string.slice(end).search(separator)) { - var match2, substring = result2; - if (!separator.global) { - separator = RegExp2(separator.source, toString2(reFlags.exec(separator)) + "g"); - } - separator.lastIndex = 0; - while (match2 = separator.exec(substring)) { - var newEnd = match2.index; - } - result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); - } - } else if (string.indexOf(baseToString(separator), end) != end) { - var index = result2.lastIndexOf(separator); - if (index > -1) { - result2 = result2.slice(0, index); - } - } - return result2 + omission; - } - function unescape2(string) { - string = toString2(string); - return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; - } - var upperCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toUpperCase(); - }); - var upperFirst = createCaseFirst("toUpperCase"); - function words(string, pattern, guard) { - string = toString2(string); - pattern = guard ? undefined2 : pattern; - if (pattern === undefined2) { - return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); - } - return string.match(pattern) || []; - } - var attempt = baseRest(function(func, args) { - try { - return apply(func, undefined2, args); - } catch (e) { - return isError(e) ? e : new Error2(e); - } - }); - var bindAll = flatRest(function(object, methodNames) { - arrayEach(methodNames, function(key) { - key = toKey(key); - baseAssignValue(object, key, bind(object[key], object)); - }); - return object; - }); - function cond(pairs2) { - var length = pairs2 == null ? 0 : pairs2.length, toIteratee = getIteratee(); - pairs2 = !length ? [] : arrayMap(pairs2, function(pair) { - if (typeof pair[1] != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return [toIteratee(pair[0]), pair[1]]; - }); - return baseRest(function(args) { - var index = -1; - while (++index < length) { - var pair = pairs2[index]; - if (apply(pair[0], this, args)) { - return apply(pair[1], this, args); - } - } - }); - } - function conforms(source) { - return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); - } - function constant(value) { - return function() { - return value; - }; - } - function defaultTo(value, defaultValue) { - return value == null || value !== value ? defaultValue : value; - } - var flow = createFlow(); - var flowRight = createFlow(true); - function identity(value) { - return value; - } - function iteratee(func) { - return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); - } - function matches(source) { - return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); - } - function matchesProperty(path4, srcValue) { - return baseMatchesProperty(path4, baseClone(srcValue, CLONE_DEEP_FLAG)); - } - var method = baseRest(function(path4, args) { - return function(object) { - return baseInvoke(object, path4, args); - }; - }); - var methodOf = baseRest(function(object, args) { - return function(path4) { - return baseInvoke(object, path4, args); - }; - }); - function mixin(object, source, options) { - var props = keys(source), methodNames = baseFunctions(source, props); - if (options == null && !(isObject3(source) && (methodNames.length || !props.length))) { - options = source; - source = object; - object = this; - methodNames = baseFunctions(source, keys(source)); - } - var chain2 = !(isObject3(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object); - arrayEach(methodNames, function(methodName) { - var func = source[methodName]; - object[methodName] = func; - if (isFunc) { - object.prototype[methodName] = function() { - var chainAll = this.__chain__; - if (chain2 || chainAll) { - var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); - actions.push({ "func": func, "args": arguments, "thisArg": object }); - result2.__chain__ = chainAll; - return result2; - } - return func.apply(object, arrayPush([this.value()], arguments)); - }; - } - }); - return object; - } - function noConflict() { - if (root._ === this) { - root._ = oldDash; - } - return this; - } - function noop() { - } - function nthArg(n) { - n = toInteger(n); - return baseRest(function(args) { - return baseNth(args, n); - }); - } - var over = createOver(arrayMap); - var overEvery = createOver(arrayEvery); - var overSome = createOver(arraySome); - function property(path4) { - return isKey(path4) ? baseProperty(toKey(path4)) : basePropertyDeep(path4); - } - function propertyOf(object) { - return function(path4) { - return object == null ? undefined2 : baseGet(object, path4); - }; - } - var range = createRange(); - var rangeRight = createRange(true); - function stubArray() { - return []; - } - function stubFalse() { - return false; - } - function stubObject() { - return {}; - } - function stubString() { - return ""; - } - function stubTrue() { - return true; - } - function times(n, iteratee2) { - n = toInteger(n); - if (n < 1 || n > MAX_SAFE_INTEGER) { - return []; - } - var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); - iteratee2 = getIteratee(iteratee2); - n -= MAX_ARRAY_LENGTH; - var result2 = baseTimes(length, iteratee2); - while (++index < n) { - iteratee2(index); - } - return result2; - } - function toPath(value) { - if (isArray(value)) { - return arrayMap(value, toKey); - } - return isSymbol(value) ? [value] : copyArray(stringToPath(toString2(value))); - } - function uniqueId(prefix) { - var id = ++idCounter; - return toString2(prefix) + id; - } - var add = createMathOperation(function(augend, addend) { - return augend + addend; - }, 0); - var ceil = createRound("ceil"); - var divide = createMathOperation(function(dividend, divisor) { - return dividend / divisor; - }, 1); - var floor = createRound("floor"); - function max(array) { - return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; - } - function maxBy(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; - } - function mean(array) { - return baseMean(array, identity); - } - function meanBy(array, iteratee2) { - return baseMean(array, getIteratee(iteratee2, 2)); - } - function min(array) { - return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; - } - function minBy(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; - } - var multiply = createMathOperation(function(multiplier, multiplicand) { - return multiplier * multiplicand; - }, 1); - var round = createRound("round"); - var subtract = createMathOperation(function(minuend, subtrahend) { - return minuend - subtrahend; - }, 0); - function sum(array) { - return array && array.length ? baseSum(array, identity) : 0; - } - function sumBy(array, iteratee2) { - return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; - } - lodash.after = after; - lodash.ary = ary; - lodash.assign = assign; - lodash.assignIn = assignIn; - lodash.assignInWith = assignInWith; - lodash.assignWith = assignWith; - lodash.at = at; - lodash.before = before; - lodash.bind = bind; - lodash.bindAll = bindAll; - lodash.bindKey = bindKey; - lodash.castArray = castArray; - lodash.chain = chain; - lodash.chunk = chunk; - lodash.compact = compact; - lodash.concat = concat; - lodash.cond = cond; - lodash.conforms = conforms; - lodash.constant = constant; - lodash.countBy = countBy; - lodash.create = create; - lodash.curry = curry; - lodash.curryRight = curryRight; - lodash.debounce = debounce; - lodash.defaults = defaults2; - lodash.defaultsDeep = defaultsDeep; - lodash.defer = defer2; - lodash.delay = delay; - lodash.difference = difference; - lodash.differenceBy = differenceBy; - lodash.differenceWith = differenceWith; - lodash.drop = drop; - lodash.dropRight = dropRight; - lodash.dropRightWhile = dropRightWhile; - lodash.dropWhile = dropWhile; - lodash.fill = fill; - lodash.filter = filter2; - lodash.flatMap = flatMap; - lodash.flatMapDeep = flatMapDeep; - lodash.flatMapDepth = flatMapDepth; - lodash.flatten = flatten2; - lodash.flattenDeep = flattenDeep; - lodash.flattenDepth = flattenDepth; - lodash.flip = flip; - lodash.flow = flow; - lodash.flowRight = flowRight; - lodash.fromPairs = fromPairs; - lodash.functions = functions; - lodash.functionsIn = functionsIn; - lodash.groupBy = groupBy; - lodash.initial = initial; - lodash.intersection = intersection; - lodash.intersectionBy = intersectionBy; - lodash.intersectionWith = intersectionWith; - lodash.invert = invert; - lodash.invertBy = invertBy; - lodash.invokeMap = invokeMap; - lodash.iteratee = iteratee; - lodash.keyBy = keyBy; - lodash.keys = keys; - lodash.keysIn = keysIn; - lodash.map = map2; - lodash.mapKeys = mapKeys; - lodash.mapValues = mapValues; - lodash.matches = matches; - lodash.matchesProperty = matchesProperty; - lodash.memoize = memoize; - lodash.merge = merge2; - lodash.mergeWith = mergeWith; - lodash.method = method; - lodash.methodOf = methodOf; - lodash.mixin = mixin; - lodash.negate = negate; - lodash.nthArg = nthArg; - lodash.omit = omit; - lodash.omitBy = omitBy; - lodash.once = once; - lodash.orderBy = orderBy; - lodash.over = over; - lodash.overArgs = overArgs; - lodash.overEvery = overEvery; - lodash.overSome = overSome; - lodash.partial = partial; - lodash.partialRight = partialRight; - lodash.partition = partition; - lodash.pick = pick; - lodash.pickBy = pickBy2; - lodash.property = property; - lodash.propertyOf = propertyOf; - lodash.pull = pull3; - lodash.pullAll = pullAll; - lodash.pullAllBy = pullAllBy; - lodash.pullAllWith = pullAllWith; - lodash.pullAt = pullAt; - lodash.range = range; - lodash.rangeRight = rangeRight; - lodash.rearg = rearg; - lodash.reject = reject; - lodash.remove = remove; - lodash.rest = rest; - lodash.reverse = reverse; - lodash.sampleSize = sampleSize; - lodash.set = set2; - lodash.setWith = setWith; - lodash.shuffle = shuffle; - lodash.slice = slice; - lodash.sortBy = sortBy; - lodash.sortedUniq = sortedUniq; - lodash.sortedUniqBy = sortedUniqBy; - lodash.split = split; - lodash.spread = spread; - lodash.tail = tail; - lodash.take = take; - lodash.takeRight = takeRight; - lodash.takeRightWhile = takeRightWhile; - lodash.takeWhile = takeWhile; - lodash.tap = tap; - lodash.throttle = throttle; - lodash.thru = thru; - lodash.toArray = toArray2; - lodash.toPairs = toPairs; - lodash.toPairsIn = toPairsIn; - lodash.toPath = toPath; - lodash.toPlainObject = toPlainObject; - lodash.transform = transform; - lodash.unary = unary; - lodash.union = union; - lodash.unionBy = unionBy; - lodash.unionWith = unionWith; - lodash.uniq = uniq; - lodash.uniqBy = uniqBy; - lodash.uniqWith = uniqWith2; - lodash.unset = unset; - lodash.unzip = unzip; - lodash.unzipWith = unzipWith; - lodash.update = update; - lodash.updateWith = updateWith; - lodash.values = values2; - lodash.valuesIn = valuesIn; - lodash.without = without; - lodash.words = words; - lodash.wrap = wrap; - lodash.xor = xor; - lodash.xorBy = xorBy; - lodash.xorWith = xorWith; - lodash.zip = zip; - lodash.zipObject = zipObject; - lodash.zipObjectDeep = zipObjectDeep; - lodash.zipWith = zipWith; - lodash.entries = toPairs; - lodash.entriesIn = toPairsIn; - lodash.extend = assignIn; - lodash.extendWith = assignInWith; - mixin(lodash, lodash); - lodash.add = add; - lodash.attempt = attempt; - lodash.camelCase = camelCase; - lodash.capitalize = capitalize; - lodash.ceil = ceil; - lodash.clamp = clamp; - lodash.clone = clone; - lodash.cloneDeep = cloneDeep; - lodash.cloneDeepWith = cloneDeepWith; - lodash.cloneWith = cloneWith; - lodash.conformsTo = conformsTo; - lodash.deburr = deburr; - lodash.defaultTo = defaultTo; - lodash.divide = divide; - lodash.endsWith = endsWith; - lodash.eq = eq; - lodash.escape = escape2; - lodash.escapeRegExp = escapeRegExp; - lodash.every = every; - lodash.find = find; - lodash.findIndex = findIndex; - lodash.findKey = findKey; - lodash.findLast = findLast; - lodash.findLastIndex = findLastIndex; - lodash.findLastKey = findLastKey; - lodash.floor = floor; - lodash.forEach = forEach; - lodash.forEachRight = forEachRight; - lodash.forIn = forIn; - lodash.forInRight = forInRight; - lodash.forOwn = forOwn; - lodash.forOwnRight = forOwnRight; - lodash.get = get2; - lodash.gt = gt; - lodash.gte = gte; - lodash.has = has; - lodash.hasIn = hasIn; - lodash.head = head; - lodash.identity = identity; - lodash.includes = includes; - lodash.indexOf = indexOf; - lodash.inRange = inRange; - lodash.invoke = invoke; - lodash.isArguments = isArguments; - lodash.isArray = isArray; - lodash.isArrayBuffer = isArrayBuffer; - lodash.isArrayLike = isArrayLike; - lodash.isArrayLikeObject = isArrayLikeObject; - lodash.isBoolean = isBoolean2; - lodash.isBuffer = isBuffer; - lodash.isDate = isDate; - lodash.isElement = isElement; - lodash.isEmpty = isEmpty; - lodash.isEqual = isEqual; - lodash.isEqualWith = isEqualWith; - lodash.isError = isError; - lodash.isFinite = isFinite2; - lodash.isFunction = isFunction; - lodash.isInteger = isInteger2; - lodash.isLength = isLength; - lodash.isMap = isMap; - lodash.isMatch = isMatch; - lodash.isMatchWith = isMatchWith; - lodash.isNaN = isNaN2; - lodash.isNative = isNative; - lodash.isNil = isNil; - lodash.isNull = isNull2; - lodash.isNumber = isNumber; - lodash.isObject = isObject3; - lodash.isObjectLike = isObjectLike; - lodash.isPlainObject = isPlainObject2; - lodash.isRegExp = isRegExp; - lodash.isSafeInteger = isSafeInteger; - lodash.isSet = isSet; - lodash.isString = isString2; - lodash.isSymbol = isSymbol; - lodash.isTypedArray = isTypedArray; - lodash.isUndefined = isUndefined; - lodash.isWeakMap = isWeakMap; - lodash.isWeakSet = isWeakSet; - lodash.join = join3; - lodash.kebabCase = kebabCase; - lodash.last = last; - lodash.lastIndexOf = lastIndexOf; - lodash.lowerCase = lowerCase; - lodash.lowerFirst = lowerFirst; - lodash.lt = lt; - lodash.lte = lte; - lodash.max = max; - lodash.maxBy = maxBy; - lodash.mean = mean; - lodash.meanBy = meanBy; - lodash.min = min; - lodash.minBy = minBy; - lodash.stubArray = stubArray; - lodash.stubFalse = stubFalse; - lodash.stubObject = stubObject; - lodash.stubString = stubString; - lodash.stubTrue = stubTrue; - lodash.multiply = multiply; - lodash.nth = nth; - lodash.noConflict = noConflict; - lodash.noop = noop; - lodash.now = now; - lodash.pad = pad; - lodash.padEnd = padEnd; - lodash.padStart = padStart2; - lodash.parseInt = parseInt2; - lodash.random = random; - lodash.reduce = reduce; - lodash.reduceRight = reduceRight; - lodash.repeat = repeat2; - lodash.replace = replace; - lodash.result = result; - lodash.round = round; - lodash.runInContext = runInContext2; - lodash.sample = sample; - lodash.size = size; - lodash.snakeCase = snakeCase; - lodash.some = some; - lodash.sortedIndex = sortedIndex; - lodash.sortedIndexBy = sortedIndexBy; - lodash.sortedIndexOf = sortedIndexOf; - lodash.sortedLastIndex = sortedLastIndex; - lodash.sortedLastIndexBy = sortedLastIndexBy; - lodash.sortedLastIndexOf = sortedLastIndexOf; - lodash.startCase = startCase; - lodash.startsWith = startsWith; - lodash.subtract = subtract; - lodash.sum = sum; - lodash.sumBy = sumBy; - lodash.template = template; - lodash.times = times; - lodash.toFinite = toFinite; - lodash.toInteger = toInteger; - lodash.toLength = toLength; - lodash.toLower = toLower; - lodash.toNumber = toNumber; - lodash.toSafeInteger = toSafeInteger; - lodash.toString = toString2; - lodash.toUpper = toUpper; - lodash.trim = trim; - lodash.trimEnd = trimEnd; - lodash.trimStart = trimStart; - lodash.truncate = truncate; - lodash.unescape = unescape2; - lodash.uniqueId = uniqueId; - lodash.upperCase = upperCase; - lodash.upperFirst = upperFirst; - lodash.each = forEach; - lodash.eachRight = forEachRight; - lodash.first = head; - mixin(lodash, function() { - var source = {}; - baseForOwn(lodash, function(func, methodName) { - if (!hasOwnProperty.call(lodash.prototype, methodName)) { - source[methodName] = func; - } - }); - return source; - }(), { "chain": false }); - lodash.VERSION = VERSION; - arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { - lodash[methodName].placeholder = lodash; - }); - arrayEach(["drop", "take"], function(methodName, index) { - LazyWrapper.prototype[methodName] = function(n) { - n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); - var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); - if (result2.__filtered__) { - result2.__takeCount__ = nativeMin(n, result2.__takeCount__); - } else { - result2.__views__.push({ - "size": nativeMin(n, MAX_ARRAY_LENGTH), - "type": methodName + (result2.__dir__ < 0 ? "Right" : "") - }); - } - return result2; - }; - LazyWrapper.prototype[methodName + "Right"] = function(n) { - return this.reverse()[methodName](n).reverse(); - }; - }); - arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { - var type2 = index + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG; - LazyWrapper.prototype[methodName] = function(iteratee2) { - var result2 = this.clone(); - result2.__iteratees__.push({ - "iteratee": getIteratee(iteratee2, 3), - "type": type2 - }); - result2.__filtered__ = result2.__filtered__ || isFilter; - return result2; - }; - }); - arrayEach(["head", "last"], function(methodName, index) { - var takeName = "take" + (index ? "Right" : ""); - LazyWrapper.prototype[methodName] = function() { - return this[takeName](1).value()[0]; - }; - }); - arrayEach(["initial", "tail"], function(methodName, index) { - var dropName = "drop" + (index ? "" : "Right"); - LazyWrapper.prototype[methodName] = function() { - return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); - }; - }); - LazyWrapper.prototype.compact = function() { - return this.filter(identity); - }; - LazyWrapper.prototype.find = function(predicate) { - return this.filter(predicate).head(); - }; - LazyWrapper.prototype.findLast = function(predicate) { - return this.reverse().find(predicate); - }; - LazyWrapper.prototype.invokeMap = baseRest(function(path4, args) { - if (typeof path4 == "function") { - return new LazyWrapper(this); - } - return this.map(function(value) { - return baseInvoke(value, path4, args); - }); - }); - LazyWrapper.prototype.reject = function(predicate) { - return this.filter(negate(getIteratee(predicate))); - }; - LazyWrapper.prototype.slice = function(start, end) { - start = toInteger(start); - var result2 = this; - if (result2.__filtered__ && (start > 0 || end < 0)) { - return new LazyWrapper(result2); - } - if (start < 0) { - result2 = result2.takeRight(-start); - } else if (start) { - result2 = result2.drop(start); - } - if (end !== undefined2) { - end = toInteger(end); - result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); - } - return result2; - }; - LazyWrapper.prototype.takeRightWhile = function(predicate) { - return this.reverse().takeWhile(predicate).reverse(); - }; - LazyWrapper.prototype.toArray = function() { - return this.take(MAX_ARRAY_LENGTH); - }; - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); - if (!lodashFunc) { - return; - } - lodash.prototype[methodName] = function() { - var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); - var interceptor = function(value2) { - var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); - return isTaker && chainAll ? result3[0] : result3; - }; - if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { - isLazy = useLazy = false; - } - var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; - if (!retUnwrapped && useLazy) { - value = onlyLazy ? value : new LazyWrapper(this); - var result2 = func.apply(value, args); - result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); - return new LodashWrapper(result2, chainAll); - } - if (isUnwrapped && onlyLazy) { - return func.apply(this, args); - } - result2 = this.thru(interceptor); - return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; - }; - }); - arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { - var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); - lodash.prototype[methodName] = function() { - var args = arguments; - if (retUnwrapped && !this.__chain__) { - var value = this.value(); - return func.apply(isArray(value) ? value : [], args); - } - return this[chainName](function(value2) { - return func.apply(isArray(value2) ? value2 : [], args); - }); - }; - }); - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var lodashFunc = lodash[methodName]; - if (lodashFunc) { - var key = lodashFunc.name + ""; - if (!hasOwnProperty.call(realNames, key)) { - realNames[key] = []; - } - realNames[key].push({ "name": methodName, "func": lodashFunc }); - } - }); - realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ - "name": "wrapper", - "func": undefined2 - }]; - LazyWrapper.prototype.clone = lazyClone; - LazyWrapper.prototype.reverse = lazyReverse; - LazyWrapper.prototype.value = lazyValue; - lodash.prototype.at = wrapperAt; - lodash.prototype.chain = wrapperChain; - lodash.prototype.commit = wrapperCommit; - lodash.prototype.next = wrapperNext; - lodash.prototype.plant = wrapperPlant; - lodash.prototype.reverse = wrapperReverse; - lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; - lodash.prototype.first = lodash.prototype.head; - if (symIterator) { - lodash.prototype[symIterator] = wrapperToIterator; - } - return lodash; - }; - var _ = runInContext(); - if (typeof define == "function" && typeof define.amd == "object" && define.amd) { - root._ = _; - define(function() { - return _; - }); - } else if (freeModule) { - (freeModule.exports = _)._ = _; - freeExports._ = _; - } else { - root._ = _; - } - }).call(exports2); - } -}); - -// ../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js -var require_balanced_match = __commonJS({ - "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) { - "use strict"; - module2.exports = balanced; - function balanced(a, b, str2) { - if (a instanceof RegExp) - a = maybeMatch(a, str2); - if (b instanceof RegExp) - b = maybeMatch(b, str2); - var r = range(a, b, str2); - return r && { - start: r[0], - end: r[1], - pre: str2.slice(0, r[0]), - body: str2.slice(r[0] + a.length, r[1]), - post: str2.slice(r[1] + b.length) - }; - } - function maybeMatch(reg, str2) { - var m = str2.match(reg); - return m ? m[0] : null; - } - balanced.range = range; - function range(a, b, str2) { - var begs, beg, left, right, result; - var ai = str2.indexOf(a); - var bi = str2.indexOf(b, ai + 1); - var i = ai; - if (ai >= 0 && bi > 0) { - if (a === b) { - return [ai, bi]; - } - begs = []; - left = str2.length; - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str2.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [begs.pop(), bi]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - bi = str2.indexOf(b, i + 1); - } - i = ai < bi && ai >= 0 ? ai : bi; - } - if (begs.length) { - result = [left, right]; - } - } - return result; - } - } -}); - -// ../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js -var require_brace_expansion = __commonJS({ - "../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports2, module2) { - var balanced = require_balanced_match(); - module2.exports = expandTop; - var escSlash = "\0SLASH" + Math.random() + "\0"; - var escOpen = "\0OPEN" + Math.random() + "\0"; - var escClose = "\0CLOSE" + Math.random() + "\0"; - var escComma = "\0COMMA" + Math.random() + "\0"; - var escPeriod = "\0PERIOD" + Math.random() + "\0"; - function numeric(str2) { - return parseInt(str2, 10) == str2 ? parseInt(str2, 10) : str2.charCodeAt(0); - } - function escapeBraces(str2) { - return str2.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); - } - function unescapeBraces(str2) { - return str2.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); - } - function parseCommaParts(str2) { - if (!str2) - return [""]; - var parts = []; - var m = balanced("{", "}", str2); - if (!m) - return str2.split(","); - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(","); - p[p.length - 1] += "{" + body + "}"; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length - 1] += postParts.shift(); - p.push.apply(p, postParts); - } - parts.push.apply(parts, p); - return parts; - } - function expandTop(str2) { - if (!str2) - return []; - if (str2.substr(0, 2) === "{}") { - str2 = "\\{\\}" + str2.substr(2); - } - return expand2(escapeBraces(str2), true).map(unescapeBraces); - } - function embrace(str2) { - return "{" + str2 + "}"; - } - function isPadded(el) { - return /^-?0\d/.test(el); - } - function lte(i, y) { - return i <= y; - } - function gte(i, y) { - return i >= y; - } - function expand2(str2, isTop) { - var expansions = []; - var m = balanced("{", "}", str2); - if (!m) - return [str2]; - var pre = m.pre; - var post = m.post.length ? expand2(m.post, false) : [""]; - if (/\$$/.test(m.pre)) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + "{" + m.body + "}" + post[k]; - expansions.push(expansion); - } - } else { - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(",") >= 0; - if (!isSequence && !isOptions) { - if (m.post.match(/,.*\}/)) { - str2 = m.pre + "{" + m.body + escClose + m.post; - return expand2(str2); - } - return [str2]; - } - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - n = expand2(n[0], false).map(embrace); - if (n.length === 1) { - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - var N; - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length); - var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - N = []; - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === "\\") - c = ""; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join("0"); - if (i < 0) - c = "-" + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = []; - for (var j = 0; j < n.length; j++) { - N.push.apply(N, expand2(n[j], false)); - } - } - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - } - return expansions; - } - } -}); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - default: () => entry, - run: () => run -}); -module.exports = __toCommonJS(src_exports); - -// src/runAllTests.ts -var import_mocha = __toESM(require_mocha2(), 1); -var path3 = __toESM(require("path"), 1); - -// ../common/src/cursorlessCommandIds.ts -var Command = class { - constructor(baseTitle) { - this.baseTitle = baseTitle; - } - get title() { - return `Cursorless: ${this.baseTitle}`; - } -}; -var HiddenCommand = class extends Command { - constructor() { - super(...arguments); - this.isVisible = false; - } -}; -var VisibleCommand = class extends Command { - constructor() { - super(...arguments); - this.isVisible = true; - } -}; -var cursorlessCommandDescriptions = { - ["cursorless.toggleDecorations"]: new VisibleCommand("Toggle decorations"), - ["cursorless.recomputeDecorationStyles"]: new VisibleCommand( - "Recompute decoration styles" - ), - ["cursorless.recordTestCase"]: new VisibleCommand("Record test case"), - ["cursorless.recordOneTestCaseThenPause"]: new VisibleCommand( - "Record one test case, then pause" - ), - ["cursorless.pauseRecording"]: new VisibleCommand( - "Pause test case recording" - ), - ["cursorless.resumeRecording"]: new VisibleCommand( - "Resume test case recording" - ), - ["cursorless.showDocumentation"]: new VisibleCommand("Show documentation"), - ["cursorless.showScopeVisualizer"]: new VisibleCommand( - "Show the scope visualizer" - ), - ["cursorless.hideScopeVisualizer"]: new VisibleCommand( - "Hide the scope visualizer" - ), - ["cursorless.analyzeCommandHistory"]: new VisibleCommand( - "Analyze collected command history" - ), - ["cursorless.command"]: new HiddenCommand("The core cursorless command"), - ["cursorless.showQuickPick"]: new HiddenCommand( - "Pop up a quick pick of all cursorless commands" - ), - ["cursorless.showCheatsheet"]: new HiddenCommand( - "Display the cursorless cheatsheet" - ), - ["cursorless.internal.updateCheatsheetDefaults"]: new HiddenCommand( - "Update the default values of the cheatsheet payload used on the website and for local development. Be sure to run this on stock community and cursorless." - ), - ["cursorless.private.logQuickActions"]: new HiddenCommand( - "Log the quick actions available at the current cursor position" - ), - ["cursorless.takeSnapshot"]: new HiddenCommand( - "Take a snapshot of the current editor state" - ), - ["cursorless.keyboard.escape"]: new HiddenCommand( - "Should be mapped to the escape key when using cursorless keyboard. By default, exits modal keyboard mode, but changes behaviour when Cursorless is expecting a continuation keystroke. For example, when you type a color and Cursorless is waiting for a character, it cancels the color and switches back to modal mode." - ), - ["cursorless.keyboard.targeted.targetHat"]: new HiddenCommand( - "Sets the keyboard target to the given hat" - ), - ["cursorless.keyboard.targeted.targetScope"]: new HiddenCommand( - "Sets the keyboard target to the scope containing the current target" - ), - ["cursorless.keyboard.targeted.targetSelection"]: new HiddenCommand( - "Sets the keyboard target to the current selection" - ), - ["cursorless.keyboard.targeted.clearTarget"]: new HiddenCommand( - "Clears the current keyboard target" - ), - ["cursorless.keyboard.targeted.runActionOnTarget"]: new HiddenCommand( - "Run the given action on the current keyboard target" - ), - ["cursorless.keyboard.modal.modeOn"]: new HiddenCommand( - "Turn on the cursorless modal mode" - ), - ["cursorless.keyboard.modal.modeOff"]: new HiddenCommand( - "Turn off the cursorless modal mode" - ), - ["cursorless.keyboard.modal.modeToggle"]: new HiddenCommand( - "Toggle the cursorless modal mode" - ) -}; - -// ../common/src/ide/fake/FakeIDE.ts -var import_lodash3 = __toESM(require_lodash(), 1); - -// ../common/src/ide/fake/FakeConfiguration.ts -var import_lodash2 = __toESM(require_lodash(), 1); - -// ../common/src/util/Notifier.ts -var import_lodash = __toESM(require_lodash(), 1); - -// ../common/src/ide/types/Configuration.ts -var CONFIGURATION_DEFAULTS = { - tokenHatSplittingMode: { - preserveCase: false, - lettersToPreserve: [], - symbolsToPreserve: [] - }, - wordSeparators: ["_"], - decorationDebounceDelayMs: 50, - experimental: { - snippetsDir: void 0, - hatStability: "balanced" /* balanced */ - }, - commandHistory: false, - debug: false -}; - -// ../common/src/ide/spy/SpyIDE.ts -var import_lodash4 = __toESM(require_lodash(), 1); - -// ../common/src/util/sleep.ts -var import_util = require("util"); -var sleep = (0, import_util.promisify)(setTimeout); - -// ../common/src/util/timeUtils.ts -var nanosecondsPerSecond = BigInt(1e9); - -// ../common/src/util/walkAsync.ts -var import_lodash5 = __toESM(require_lodash(), 1); - -// ../common/src/util/omitByDeep.ts -var import_lodash6 = __toESM(require_lodash(), 1); - -// ../common/src/util/range.ts -var import_lodash7 = __toESM(require_lodash(), 1); - -// ../common/src/util/uniqWithHash.ts -var import_lodash8 = __toESM(require_lodash(), 1); - -// ../common/src/testUtil/getCursorlessRepoRoot.ts -function getCursorlessRepoRoot() { - const root = process.env["CURSORLESS_REPO_ROOT"]; - if (root == null) { - throw new Error( - "CURSORLESS_REPO_ROOT environment variable must be set to run this script" - ); - } - return root; -} - -// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs -function isNothing(subject) { - return typeof subject === "undefined" || subject === null; -} -function isObject(subject) { - return typeof subject === "object" && subject !== null; -} -function toArray(sequence) { - if (Array.isArray(sequence)) - return sequence; - else if (isNothing(sequence)) - return []; - return [sequence]; -} -function extend(target, source) { - var index, length, key, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } - return target; -} -function repeat(string, count) { - var result = "", cycle; - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } - return result; -} -function isNegativeZero(number) { - return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; -} -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; -function formatError(exception2, compact) { - var where = "", message = exception2.reason || "(unknown reason)"; - if (!exception2.mark) - return message; - if (exception2.mark.name) { - where += 'in "' + exception2.mark.name + '" '; - } - where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; - if (!compact && exception2.mark.snippet) { - where += "\n\n" + exception2.mark.snippet; - } - return message + " " + where; -} -function YAMLException$1(reason, mark) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark; - this.message = formatError(this, false); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } -} -YAMLException$1.prototype = Object.create(Error.prototype); -YAMLException$1.prototype.constructor = YAMLException$1; -YAMLException$1.prototype.toString = function toString(compact) { - return this.name + ": " + formatError(this, compact); -}; -var exception = YAMLException$1; -function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { - var head = ""; - var tail = ""; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position - lineStart > maxHalfLength) { - head = " ... "; - lineStart = position - maxHalfLength + head.length; - } - if (lineEnd - position > maxHalfLength) { - tail = " ..."; - lineEnd = position + maxHalfLength - tail.length; - } - return { - str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, - pos: position - lineStart + head.length - // relative position - }; -} -function padStart(string, max) { - return common.repeat(" ", max - string.length) + string; -} -function makeSnippet(mark, options) { - options = Object.create(options || null); - if (!mark.buffer) - return null; - if (!options.maxLength) - options.maxLength = 79; - if (typeof options.indent !== "number") - options.indent = 1; - if (typeof options.linesBefore !== "number") - options.linesBefore = 3; - if (typeof options.linesAfter !== "number") - options.linesAfter = 2; - var re = /\r?\n|\r|\0/g; - var lineStarts = [0]; - var lineEnds = []; - var match2; - var foundLineNo = -1; - while (match2 = re.exec(mark.buffer)) { - lineEnds.push(match2.index); - lineStarts.push(match2.index + match2[0].length); - if (mark.position <= match2.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } - if (foundLineNo < 0) - foundLineNo = lineStarts.length - 1; - var result = "", i, line; - var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); - for (i = 1; i <= options.linesBefore; i++) { - if (foundLineNo - i < 0) - break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo - i], - lineEnds[foundLineNo - i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), - maxLineLength - ); - result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result; - } - line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n"; - result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n"; - for (i = 1; i <= options.linesAfter; i++) { - if (foundLineNo + i >= lineEnds.length) - break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo + i], - lineEnds[foundLineNo + i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), - maxLineLength - ); - result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n"; - } - return result.replace(/\n$/, ""); -} -var snippet = makeSnippet; -var TYPE_CONSTRUCTOR_OPTIONS = [ - "kind", - "multi", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "representName", - "defaultStyle", - "styleAliases" -]; -var YAML_NODE_KINDS = [ - "scalar", - "sequence", - "mapping" -]; -function compileStyleAliases(map2) { - var result = {}; - if (map2 !== null) { - Object.keys(map2).forEach(function(style) { - map2[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; -} -function Type$1(tag, options) { - options = options || {}; - Object.keys(options).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.options = options; - this.tag = tag; - this.kind = options["kind"] || null; - this.resolve = options["resolve"] || function() { - return true; - }; - this.construct = options["construct"] || function(data) { - return data; - }; - this.instanceOf = options["instanceOf"] || null; - this.predicate = options["predicate"] || null; - this.represent = options["represent"] || null; - this.representName = options["representName"] || null; - this.defaultStyle = options["defaultStyle"] || null; - this.multi = options["multi"] || false; - this.styleAliases = compileStyleAliases(options["styleAliases"] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} -var type = Type$1; -function compileList(schema3, name) { - var result = []; - schema3[name].forEach(function(currentType) { - var newIndex = result.length; - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; - } - }); - result[newIndex] = currentType; - }); - return result; -} -function compileMap() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] - } - }, index, length; - function collectType(type2) { - if (type2.multi) { - result.multi[type2.kind].push(type2); - result.multi["fallback"].push(type2); - } else { - result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; - } - } - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} -function Schema$1(definition) { - return this.extend(definition); -} -Schema$1.prototype.extend = function extend2(definition) { - var implicit = []; - var explicit = []; - if (definition instanceof type) { - explicit.push(definition); - } else if (Array.isArray(definition)) { - explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - if (definition.implicit) - implicit = implicit.concat(definition.implicit); - if (definition.explicit) - explicit = explicit.concat(definition.explicit); - } else { - throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); - } - implicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - if (type$1.loadKind && type$1.loadKind !== "scalar") { - throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - if (type$1.multi) { - throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); - } - }); - explicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - }); - var result = Object.create(Schema$1.prototype); - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList(result, "implicit"); - result.compiledExplicit = compileList(result, "explicit"); - result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); - return result; -}; -var schema = Schema$1; -var str = new type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data) { - return data !== null ? data : ""; - } -}); -var seq = new type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data) { - return data !== null ? data : []; - } -}); -var map = new type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data) { - return data !== null ? data : {}; - } -}); -var failsafe = new schema({ - explicit: [ - str, - seq, - map - ] -}); -function resolveYamlNull(data) { - if (data === null) - return true; - var max = data.length; - return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); -} -function constructYamlNull() { - return null; -} -function isNull(object) { - return object === null; -} -var _null = new type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - }, - empty: function() { - return ""; - } - }, - defaultStyle: "lowercase" -}); -function resolveYamlBoolean(data) { - if (data === null) - return false; - var max = data.length; - return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); -} -function constructYamlBoolean(data) { - return data === "true" || data === "True" || data === "TRUE"; -} -function isBoolean(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; -} -var bool = new type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" -}); -function isHexCode(c) { - return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; -} -function isOctCode(c) { - return 48 <= c && c <= 55; -} -function isDecCode(c) { - return 48 <= c && c <= 57; -} -function resolveYamlInteger(data) { - if (data === null) - return false; - var max = data.length, index = 0, hasDigits = false, ch; - if (!max) - return false; - ch = data[index]; - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - if (ch === "0") { - if (index + 1 === max) - return true; - ch = data[++index]; - if (ch === "b") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (ch !== "0" && ch !== "1") - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "x") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isHexCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "o") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isOctCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - } - if (ch === "_") - return false; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch === "_") - return false; - return true; -} -function constructYamlInteger(data) { - var value = data, sign = 1, ch; - if (value.indexOf("_") !== -1) { - value = value.replace(/_/g, ""); - } - ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") - sign = -1; - value = value.slice(1); - ch = value[0]; - } - if (value === "0") - return 0; - if (ch === "0") { - if (value[1] === "b") - return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") - return sign * parseInt(value.slice(2), 16); - if (value[1] === "o") - return sign * parseInt(value.slice(2), 8); - } - return sign * parseInt(value, 10); -} -function isInteger(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); -} -var int = new type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - /* eslint-disable max-len */ - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } -}); -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" -); -function resolveYamlFloat(data) { - if (data === null) - return false; - if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_") { - return false; - } - return true; -} -function constructYamlFloat(data) { - var value, sign; - value = data.replace(/_/g, "").toLowerCase(); - sign = value[0] === "-" ? -1 : 1; - if ("+-".indexOf(value[0]) >= 0) { - value = value.slice(1); - } - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value === ".nan") { - return NaN; - } - return sign * parseFloat(value, 10); -} -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; -function representYamlFloat(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} -function isFloat(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); -} -var float = new type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: "lowercase" -}); -var json = failsafe.extend({ - implicit: [ - _null, - bool, - int, - float - ] -}); -var core = json; -var YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" -); -var YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" -); -function resolveYamlTimestamp(data) { - if (data === null) - return false; - if (YAML_DATE_REGEXP.exec(data) !== null) - return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) - return true; - return false; -} -function constructYamlTimestamp(data) { - var match2, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match2 = YAML_DATE_REGEXP.exec(data); - if (match2 === null) - match2 = YAML_TIMESTAMP_REGEXP.exec(data); - if (match2 === null) - throw new Error("Date resolve error"); - year = +match2[1]; - month = +match2[2] - 1; - day = +match2[3]; - if (!match2[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match2[4]; - minute = +match2[5]; - second = +match2[6]; - if (match2[7]) { - fraction = match2[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match2[9]) { - tz_hour = +match2[10]; - tz_minute = +(match2[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match2[9] === "-") - delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) - date.setTime(date.getTime() - delta); - return date; -} -function representYamlTimestamp(object) { - return object.toISOString(); -} -var timestamp = new type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); -function resolveYamlMerge(data) { - return data === "<<" || data === null; -} -var merge = new type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge -}); -var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; -function resolveYamlBinary(data) { - if (data === null) - return false; - var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - code = map2.indexOf(data.charAt(idx)); - if (code > 64) - continue; - if (code < 0) - return false; - bitlen += 6; - } - return bitlen % 8 === 0; -} -function constructYamlBinary(data) { - var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = []; - for (idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map2.indexOf(input.charAt(idx)); - } - tailbits = max % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - return new Uint8Array(result); -} -function representYamlBinary(object) { - var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max % 3; - if (tail === 0) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } else if (tail === 2) { - result += map2[bits >> 10 & 63]; - result += map2[bits >> 4 & 63]; - result += map2[bits << 2 & 63]; - result += map2[64]; - } else if (tail === 1) { - result += map2[bits >> 2 & 63]; - result += map2[bits << 4 & 63]; - result += map2[64]; - result += map2[64]; - } - return result; -} -function isBinary(obj) { - return Object.prototype.toString.call(obj) === "[object Uint8Array]"; -} -var binary = new type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; -var _toString$2 = Object.prototype.toString; -function resolveYamlOmap(data) { - if (data === null) - return true; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - if (_toString$2.call(pair) !== "[object Object]") - return false; - for (pairKey in pair) { - if (_hasOwnProperty$3.call(pair, pairKey)) { - if (!pairHasKey) - pairHasKey = true; - else - return false; - } - } - if (!pairHasKey) - return false; - if (objectKeys.indexOf(pairKey) === -1) - objectKeys.push(pairKey); - else - return false; - } - return true; -} -function constructYamlOmap(data) { - return data !== null ? data : []; -} -var omap = new type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); -var _toString$1 = Object.prototype.toString; -function resolveYamlPairs(data) { - if (data === null) - return true; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - if (_toString$1.call(pair) !== "[object Object]") - return false; - keys = Object.keys(pair); - if (keys.length !== 1) - return false; - result[index] = [keys[0], pair[keys[0]]]; - } - return true; -} -function constructYamlPairs(data) { - if (data === null) - return []; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - keys = Object.keys(pair); - result[index] = [keys[0], pair[keys[0]]]; - } - return result; -} -var pairs = new type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function resolveYamlSet(data) { - if (data === null) - return true; - var key, object = data; - for (key in object) { - if (_hasOwnProperty$2.call(object, key)) { - if (object[key] !== null) - return false; - } - } - return true; -} -function constructYamlSet(data) { - return data !== null ? data : {}; -} -var set = new type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet, - construct: constructYamlSet -}); -var _default = core.extend({ - implicit: [ - timestamp, - merge - ], - explicit: [ - binary, - omap, - pairs, - set - ] -}); -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class(obj) { - return Object.prototype.toString.call(obj); -} -function is_EOL(c) { - return c === 10 || c === 13; -} -function is_WHITE_SPACE(c) { - return c === 9 || c === 32; -} -function is_WS_OR_EOL(c) { - return c === 9 || c === 32 || c === 10 || c === 13; -} -function is_FLOW_INDICATOR(c) { - return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; -} -function fromHexCode(c) { - var lc; - if (48 <= c && c <= 57) { - return c - 48; - } - lc = c | 32; - if (97 <= lc && lc <= 102) { - return lc - 97 + 10; - } - return -1; -} -function escapedHexLen(c) { - if (c === 120) { - return 2; - } - if (c === 117) { - return 4; - } - if (c === 85) { - return 8; - } - return 0; -} -function fromDecimalCode(c) { - if (48 <= c && c <= 57) { - return c - 48; - } - return -1; -} -function simpleEscapeSequence(c) { - return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; -} -function charFromCodepoint(c) { - if (c <= 65535) { - return String.fromCharCode(c); - } - return String.fromCharCode( - (c - 65536 >> 10) + 55296, - (c - 65536 & 1023) + 56320 - ); -} -var simpleEscapeCheck = new Array(256); -var simpleEscapeMap = new Array(256); -for (i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} -var i; -function State$1(input, options) { - this.input = input; - this.filename = options["filename"] || null; - this.schema = options["schema"] || _default; - this.onWarning = options["onWarning"] || null; - this.legacy = options["legacy"] || false; - this.json = options["json"] || false; - this.listener = options["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.firstTabInLine = -1; - this.documents = []; -} -function generateError(state, message) { - var mark = { - name: state.filename, - buffer: state.input.slice(0, -1), - // omit trailing \0 - position: state.position, - line: state.line, - column: state.position - state.lineStart - }; - mark.snippet = snippet(mark); - return new exception(message, mark); -} -function throwError(state, message) { - throw generateError(state, message); -} -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} -var directiveHandlers = { - YAML: function handleYamlDirective(state, name, args) { - var match2, major, minor; - if (state.version !== null) { - throwError(state, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError(state, "YAML directive accepts exactly one argument"); - } - match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match2 === null) { - throwError(state, "ill-formed argument of the YAML directive"); - } - major = parseInt(match2[1], 10); - minor = parseInt(match2[2], 10); - if (major !== 1) { - throwError(state, "unacceptable YAML version of the document"); - } - state.version = args[0]; - state.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning(state, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective(state, name, args) { - var handle, prefix; - if (args.length !== 2) { - throwError(state, "TAG directive accepts exactly two arguments"); - } - handle = args[0]; - prefix = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty$1.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, "ill-formed tag prefix (second argument) of the TAG directive"); - } - try { - prefix = decodeURIComponent(prefix); - } catch (err) { - throwError(state, "tag prefix is malformed: " + prefix); - } - state.tagMap[handle] = prefix; - } -}; -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - if (start < end) { - _result = state.input.slice(start, end); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError(state, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, "the stream contains non-printable characters"); - } - state.result += _result; - } -} -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - if (!common.isObject(source)) { - throwError(state, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - if (!_hasOwnProperty$1.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { - keyNode[index] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { - state.line = startLine || state.line; - state.lineStart = startLineStart || state.lineStart; - state.position = startPos || state.position; - throwError(state, "duplicated mapping key"); - } - if (keyNode === "__proto__") { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } - return _result; -} -function readLineBreak(state) { - var ch; - ch = state.input.charCodeAt(state.position); - if (ch === 10) { - state.position++; - } else if (ch === 13) { - state.position++; - if (state.input.charCodeAt(state.position) === 10) { - state.position++; - } - } else { - throwError(state, "a line break is expected"); - } - state.line += 1; - state.lineStart = state.position; - state.firstTabInLine = -1; -} -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - if (ch === 9 && state.firstTabInLine === -1) { - state.firstTabInLine = state.position; - } - ch = state.input.charCodeAt(++state.position); - } - if (allowComments && ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 10 && ch !== 13 && ch !== 0); - } - if (is_EOL(ch)) { - readLineBreak(state); - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - while (ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, "deficient indentation"); - } - return lineBreaks; -} -function testDocumentSeparator(state) { - var _position = state.position, ch; - ch = state.input.charCodeAt(_position); - if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - return false; -} -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += " "; - } else if (count > 1) { - state.result += common.repeat("\n", count - 1); - } -} -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; - ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { - return false; - } - if (ch === 63 || ch === 45) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - state.kind = "scalar"; - state.result = ""; - captureStart = captureEnd = state.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 58) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - } else if (ch === 35) { - preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL(preceding)) { - break; - } - } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, captureEnd, false); - if (state.result) { - return true; - } - state.kind = _kind; - state.result = _result; - return false; -} -function readSingleQuotedScalar(state, nodeIndent) { - var ch, captureStart, captureEnd; - ch = state.input.charCodeAt(state.position); - if (ch !== 39) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 39) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (ch === 39) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, "unexpected end of the document within a single quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError(state, "unexpected end of the stream within a single quoted scalar"); -} -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 34) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 34) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - } else if (ch === 92) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError(state, "expected hexadecimal character"); - } - } - state.result += charFromCodepoint(hexResult); - state.position++; - } else { - throwError(state, "unknown escape sequence"); - } - captureStart = captureEnd = state.position; - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, "unexpected end of the document within a double quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError(state, "unexpected end of the stream within a double quoted scalar"); -} -function readFlowCollection(state, nodeIndent) { - var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(++state.position); - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? "mapping" : "sequence"; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, "missed comma between flow collection entries"); - } else if (ch === 44) { - throwError(state, "expected the node content, but found ','"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch === 63) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - _line = state.line; - _lineStart = state.lineStart; - _pos = state.position; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if ((isExplicitPair || state.line === _line) && ch === 58) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === 44) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - throwError(state, "unexpected end of the stream within a flow collection"); -} -function readBlockScalar(state, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 124) { - folding = false; - } else if (ch === 62) { - folding = true; - } else { - return false; - } - state.kind = "scalar"; - state.result = ""; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - if (ch === 43 || ch === 45) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE(ch)) { - do { - ch = state.input.charCodeAt(++state.position); - } while (is_WHITE_SPACE(ch)); - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (!is_EOL(ch) && ch !== 0); - } - } - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - ch = state.input.charCodeAt(state.position); - while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - if (is_EOL(ch)) { - emptyLines++; - continue; - } - if (state.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - state.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state.result += " "; - } - } else { - state.result += common.repeat("\n", emptyLines); - } - } else { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - while (!is_EOL(ch) && ch !== 0) { - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, state.position, false); - } - return true; -} -function readBlockSequence(state, nodeIndent) { - var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, "tab characters must not be used in indentation"); - } - if (ch !== 45) { - break; - } - following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL(following)) { - break; - } - detected = true; - state.position++; - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError(state, "bad indentation of a sequence entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "sequence"; - state.result = _result; - return true; - } - return false; -} -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (!atExplicitKey && state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, "tab characters must not be used in indentation"); - } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; - if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { - if (ch === 63) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state.position += 1; - ch = following; - } else { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - break; - } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 58) { - ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL(ch)) { - throwError(state, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - } else if (detected) { - throwError(state, "can not read an implicit mapping pair; a colon is missed"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } else if (detected) { - throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } - if (state.line === _line || state.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - } - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError(state, "bad indentation of a mapping entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "mapping"; - state.result = _result; - } - return detected; -} -function readTagProperty(state) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 33) - return false; - if (state.tag !== null) { - throwError(state, "duplication of a tag property"); - } - ch = state.input.charCodeAt(++state.position); - if (ch === 60) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 33) { - isNamed = true; - tagHandle = "!!"; - ch = state.input.charCodeAt(++state.position); - } else { - tagHandle = "!"; - } - _position = state.position; - if (isVerbatim) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && ch !== 62); - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - if (ch === 33) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, "tag suffix cannot contain exclamation marks"); - } - } - ch = state.input.charCodeAt(++state.position); - } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, "tag name cannot contain such characters: " + tagName); - } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError(state, "tag name is malformed: " + tagName); - } - if (isVerbatim) { - state.tag = tagName; - } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; -} -function readAnchorProperty(state) { - var _position, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 38) - return false; - if (state.anchor !== null) { - throwError(state, "duplication of an anchor property"); - } - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError(state, "name of an anchor node must contain at least one character"); - } - state.anchor = state.input.slice(_position, state.position); - return true; -} -function readAlias(state) { - var _position, alias, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 42) - return false; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError(state, "name of an alias node must contain at least one character"); - } - alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; - if (state.listener !== null) { - state.listener("open", state); - } - state.tag = null; - state.anchor = null; - state.kind = null; - state.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state.position - state.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - } else if (readAlias(state)) { - hasContent = true; - if (state.tag !== null || state.anchor !== null) { - throwError(state, "alias node should not have any properties"); - } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - if (state.tag === null) { - state.tag = "?"; - } - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - if (state.tag === null) { - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } else if (state.tag === "?") { - if (state.result !== null && state.kind !== "scalar") { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type2 = state.implicitTypes[typeIndex]; - if (type2.resolve(state.result)) { - state.result = type2.construct(state.result); - state.tag = type2.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (state.tag !== "!") { - if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) { - type2 = state.typeMap[state.kind || "fallback"][state.tag]; - } else { - type2 = null; - typeList = state.typeMap.multi[state.kind || "fallback"]; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type2 = typeList[typeIndex]; - break; - } - } - } - if (!type2) { - throwError(state, "unknown tag !<" + state.tag + ">"); - } - if (state.result !== null && type2.kind !== state.kind) { - throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"'); - } - if (!type2.resolve(state.result, state.tag)) { - throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); - } else { - state.result = type2.construct(state.result, state.tag); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } - if (state.listener !== null) { - state.listener("close", state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} -function readDocument(state) { - var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = /* @__PURE__ */ Object.create(null); - state.anchorMap = /* @__PURE__ */ Object.create(null); - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if (state.lineIndent > 0 || ch !== 37) { - break; - } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError(state, "directive name must not be less than one character in length"); - } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && !is_EOL(ch)); - break; - } - if (is_EOL(ch)) - break; - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveArgs.push(state.input.slice(_position, state.position)); - } - if (ch !== 0) - readLineBreak(state); - if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace(state, true, -1); - if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { - throwError(state, "directives end mark is expected"); - } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, "non-ASCII line breaks are interpreted as content"); - } - state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator(state)) { - if (state.input.charCodeAt(state.position) === 46) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - if (state.position < state.length - 1) { - throwError(state, "end of the stream or a document separator is expected"); - } else { - return; - } -} -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state = new State$1(input, options); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, "null byte is not allowed in input"); - } - state.input += "\0"; - while (state.input.charCodeAt(state.position) === 32) { - state.lineIndent += 1; - state.position += 1; - } - while (state.position < state.length - 1) { - readDocument(state); - } - return state.documents; -} -function loadAll$1(input, iterator, options) { - if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { - options = iterator; - iterator = null; - } - var documents = loadDocuments(input, options); - if (typeof iterator !== "function") { - return documents; - } - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} -function load$1(input, options) { - var documents = loadDocuments(input, options); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception("expected a single document in the stream, but found more"); -} -var loadAll_1 = loadAll$1; -var load_1 = load$1; -var loader = { - loadAll: loadAll_1, - load: load_1 -}; -var _toString = Object.prototype.toString; -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var CHAR_BOM = 65279; -var CHAR_TAB = 9; -var CHAR_LINE_FEED = 10; -var CHAR_CARRIAGE_RETURN = 13; -var CHAR_SPACE = 32; -var CHAR_EXCLAMATION = 33; -var CHAR_DOUBLE_QUOTE = 34; -var CHAR_SHARP = 35; -var CHAR_PERCENT = 37; -var CHAR_AMPERSAND = 38; -var CHAR_SINGLE_QUOTE = 39; -var CHAR_ASTERISK = 42; -var CHAR_COMMA = 44; -var CHAR_MINUS = 45; -var CHAR_COLON = 58; -var CHAR_EQUALS = 61; -var CHAR_GREATER_THAN = 62; -var CHAR_QUESTION = 63; -var CHAR_COMMERCIAL_AT = 64; -var CHAR_LEFT_SQUARE_BRACKET = 91; -var CHAR_RIGHT_SQUARE_BRACKET = 93; -var CHAR_GRAVE_ACCENT = 96; -var CHAR_LEFT_CURLY_BRACKET = 123; -var CHAR_VERTICAL_LINE = 124; -var CHAR_RIGHT_CURLY_BRACKET = 125; -var ESCAPE_SEQUENCES = {}; -ESCAPE_SEQUENCES[0] = "\\0"; -ESCAPE_SEQUENCES[7] = "\\a"; -ESCAPE_SEQUENCES[8] = "\\b"; -ESCAPE_SEQUENCES[9] = "\\t"; -ESCAPE_SEQUENCES[10] = "\\n"; -ESCAPE_SEQUENCES[11] = "\\v"; -ESCAPE_SEQUENCES[12] = "\\f"; -ESCAPE_SEQUENCES[13] = "\\r"; -ESCAPE_SEQUENCES[27] = "\\e"; -ESCAPE_SEQUENCES[34] = '\\"'; -ESCAPE_SEQUENCES[92] = "\\\\"; -ESCAPE_SEQUENCES[133] = "\\N"; -ESCAPE_SEQUENCES[160] = "\\_"; -ESCAPE_SEQUENCES[8232] = "\\L"; -ESCAPE_SEQUENCES[8233] = "\\P"; -var DEPRECATED_BOOLEANS_SYNTAX = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF" -]; -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; -function compileStyleMap(schema3, map2) { - var result, keys, index, length, tag, style, type2; - if (map2 === null) - return {}; - result = {}; - keys = Object.keys(map2); - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map2[tag]); - if (tag.slice(0, 2) === "!!") { - tag = "tag:yaml.org,2002:" + tag.slice(2); - } - type2 = schema3.compiledTypeMap["fallback"][tag]; - if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) { - style = type2.styleAliases[style]; - } - result[tag] = style; - } - return result; -} -function encodeHex(character) { - var string, handle, length; - string = character.toString(16).toUpperCase(); - if (character <= 255) { - handle = "x"; - length = 2; - } else if (character <= 65535) { - handle = "u"; - length = 4; - } else if (character <= 4294967295) { - handle = "U"; - length = 8; - } else { - throw new exception("code point within a string may not be greater than 0xFFFFFFFF"); - } - return "\\" + handle + common.repeat("0", length - string.length) + string; -} -var QUOTING_TYPE_SINGLE = 1; -var QUOTING_TYPE_DOUBLE = 2; -function State(options) { - this.schema = options["schema"] || _default; - this.indent = Math.max(1, options["indent"] || 2); - this.noArrayIndent = options["noArrayIndent"] || false; - this.skipInvalid = options["skipInvalid"] || false; - this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"]; - this.styleMap = compileStyleMap(this.schema, options["styles"] || null); - this.sortKeys = options["sortKeys"] || false; - this.lineWidth = options["lineWidth"] || 80; - this.noRefs = options["noRefs"] || false; - this.noCompatMode = options["noCompatMode"] || false; - this.condenseFlow = options["condenseFlow"] || false; - this.quotingType = options["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; - this.forceQuotes = options["forceQuotes"] || false; - this.replacer = typeof options["replacer"] === "function" ? options["replacer"] : null; - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; - this.result = ""; - this.duplicates = []; - this.usedDuplicates = null; -} -function indentString(string, spaces) { - var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string.length; - while (position < length) { - next = string.indexOf("\n", position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } - if (line.length && line !== "\n") - result += ind; - result += line; - } - return result; -} -function generateNextLine(state, level) { - return "\n" + common.repeat(" ", state.indent * level); -} -function testImplicitResolving(state, str2) { - var index, length, type2; - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type2 = state.implicitTypes[index]; - if (type2.resolve(str2)) { - return true; - } - } - return false; -} -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} -function isPrintable(c) { - return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111; -} -function isNsCharOrWhitespace(c) { - return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; -} -function isPlainSafe(c, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); - return ( - // ns-plain-safe - (inblock ? ( - // c = flow-in - cIsNsCharOrWhitespace - ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar - ); -} -function isPlainSafeFirst(c) { - return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; -} -function isPlainSafeLast(c) { - return !isWhitespace(c) && c !== CHAR_COLON; -} -function codePointAt(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 56320 && second <= 57343) { - return (first - 55296) * 1024 + second - 56320 + 65536; - } - } - return first; -} -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} -var STYLE_PLAIN = 1; -var STYLE_SINGLE = 2; -var STYLE_LITERAL = 3; -var STYLE_FOLDED = 4; -var STYLE_DOUBLE = 5; -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { - var i; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; - var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1)); - if (singleLineOnly || forceQuotes) { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - } else { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. - i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "); - } - if (!hasLineBreak && !hasFoldableLine) { - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; - } - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; -} -function writeScalar(state, string, level, iskey, inblock) { - state.dump = function() { - if (string.length === 0) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; - } - if (!state.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'"; - } - } - var indent = state.indent * Math.max(1, level); - var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; - function testAmbiguity(string2) { - return testImplicitResolving(state, string2); - } - switch (chooseScalarStyle( - string, - singleLineOnly, - state.indent, - lineWidth, - testAmbiguity, - state.quotingType, - state.forceQuotes && !iskey, - inblock - )) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return "|" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return ">" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string) + '"'; - default: - throw new exception("impossible error: invalid scalar style"); - } - }(); -} -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ""; - var clip = string[string.length - 1] === "\n"; - var keep = clip && (string[string.length - 2] === "\n" || string === "\n"); - var chomp = keep ? "+" : clip ? "" : "-"; - return indentIndicator + chomp + "\n"; -} -function dropEndingNewline(string) { - return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; -} -function foldString(string, width) { - var lineRe = /(\n+)([^\n]*)/g; - var result = function() { - var nextLF = string.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }(); - var prevMoreIndented = string[0] === "\n" || string[0] === " "; - var moreIndented; - var match2; - while (match2 = lineRe.exec(string)) { - var prefix = match2[1], line = match2[2]; - moreIndented = line[0] === " "; - result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width); - prevMoreIndented = moreIndented; - } - return result; -} -function foldLine(line, width) { - if (line === "" || line[0] === " ") - return line; - var breakRe = / [^ ]/g; - var match2; - var start = 0, end, curr = 0, next = 0; - var result = ""; - while (match2 = breakRe.exec(line)) { - next = match2.index; - if (next - start > width) { - end = curr > start ? curr : next; - result += "\n" + line.slice(start, end); - start = end + 1; - } - curr = next; - } - result += "\n"; - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + "\n" + line.slice(curr + 1); - } else { - result += line.slice(start); - } - return result.slice(1); -} -function escapeString(string) { - var result = ""; - var char = 0; - var escapeSeq; - for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - escapeSeq = ESCAPE_SEQUENCES[char]; - if (!escapeSeq && isPrintable(char)) { - result += string[i]; - if (char >= 65536) - result += string[i + 1]; - } else { - result += escapeSeq || encodeHex(char); - } - } - return result; -} -function writeFlowSequence(state, level, object) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) { - if (_result !== "") - _result += "," + (!state.condenseFlow ? " " : ""); - _result += state.dump; - } - } - state.tag = _tag; - state.dump = "[" + _result + "]"; -} -function writeBlockSequence(state, level, object, compact) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) { - if (!compact || _result !== "") { - _result += generateNextLine(state, level); - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - _result += state.dump; - } - } - state.tag = _tag; - state.dump = _result || "[]"; -} -function writeFlowMapping(state, level, object) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer; - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (_result !== "") - pairBuffer += ", "; - if (state.condenseFlow) - pairBuffer += '"'; - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state, level, objectKey, false, false)) { - continue; - } - if (state.dump.length > 1024) - pairBuffer += "? "; - pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); - if (!writeNode(state, level, objectValue, false, false)) { - continue; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = "{" + _result + "}"; -} -function writeBlockMapping(state, level, object, compact) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer; - if (state.sortKeys === true) { - objectKeyList.sort(); - } else if (typeof state.sortKeys === "function") { - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - throw new exception("sortKeys must be a boolean or a function"); - } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (!compact || _result !== "") { - pairBuffer += generateNextLine(state, level); - } - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; - } - explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - pairBuffer += state.dump; - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = _result || "{}"; -} -function detectType(state, object, explicit) { - var _result, typeList, index, length, type2, style; - typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (index = 0, length = typeList.length; index < length; index += 1) { - type2 = typeList[index]; - if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { - if (explicit) { - if (type2.multi && type2.representName) { - state.tag = type2.representName(object); - } else { - state.tag = type2.tag; - } - } else { - state.tag = "?"; - } - if (type2.represent) { - style = state.styleMap[type2.tag] || type2.defaultStyle; - if (_toString.call(type2.represent) === "[object Function]") { - _result = type2.represent(object, style); - } else if (_hasOwnProperty.call(type2.represent, style)) { - _result = type2.represent[style](object, style); - } else { - throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); - } - state.dump = _result; - } - return true; - } - } - return false; -} -function writeNode(state, level, object, block, compact, iskey, isblockseq) { - state.tag = null; - state.dump = object; - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - var type2 = _toString.call(state.dump); - var inblock = block; - var tagStr; - if (block) { - block = state.flowLevel < 0 || state.flowLevel > level; - } - var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { - compact = false; - } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = "*ref_" + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type2 === "[object Object]") { - if (block && Object.keys(state.dump).length !== 0) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object Array]") { - if (block && state.dump.length !== 0) { - if (state.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence(state, level - 1, state.dump, compact); - } else { - writeBlockSequence(state, level, state.dump, compact); - } - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object String]") { - if (state.tag !== "?") { - writeScalar(state, state.dump, level, iskey, inblock); - } - } else if (type2 === "[object Undefined]") { - return false; - } else { - if (state.skipInvalid) - return false; - throw new exception("unacceptable kind of an object to dump " + type2); - } - if (state.tag !== null && state.tag !== "?") { - tagStr = encodeURI( - state.tag[0] === "!" ? state.tag.slice(1) : state.tag - ).replace(/!/g, "%21"); - if (state.tag[0] === "!") { - tagStr = "!" + tagStr; - } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { - tagStr = "!!" + tagStr.slice(18); - } else { - tagStr = "!<" + tagStr + ">"; - } - state.dump = tagStr + " " + state.dump; - } - } - return true; -} -function getDuplicateReferences(object, state) { - var objects = [], duplicatesIndexes = [], index, length; - inspectNode(object, objects, duplicatesIndexes); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, index, length; - if (object !== null && typeof object === "object") { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} -function dump$1(input, options) { - options = options || {}; - var state = new State(options); - if (!state.noRefs) - getDuplicateReferences(input, state); - var value = input; - if (state.replacer) { - value = state.replacer.call({ "": value }, "", value); - } - if (writeNode(state, 0, value, true, true)) - return state.dump + "\n"; - return ""; -} -var dump_1 = dump$1; -var dumper = { - dump: dump_1 -}; -function renamed(from, to) { - return function() { - throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default."); - }; -} -var Type = type; -var DEFAULT_SCHEMA = _default; -var load = loader.load; -var loadAll = loader.loadAll; -var dump = dumper.dump; -var safeLoad = renamed("safeLoad", "load"); -var safeLoadAll = renamed("safeLoadAll", "loadAll"); -var safeDump = renamed("safeDump", "dump"); - -// ../common/src/testUtil/serialize.ts -var CustomDump = class { - constructor(data, opts) { - this.data = data; - this.opts = opts; - } - represent() { - let result = dump( - this.data, - Object.assign({ replacer, schema: schema2 }, this.opts) - ); - result = result.trim(); - if (result.includes("\n")) { - result = "\n" + result; - } - return result; - } -}; -var customDumpType = new Type("!format", { - kind: "scalar", - resolve: () => false, - instanceOf: CustomDump, - represent: (d) => d.represent() -}); -var schema2 = DEFAULT_SCHEMA.extend({ implicit: [customDumpType] }); -var isObject2 = (value) => typeof value === "object" && value != null; -function hasSimpleChildren(value) { - if (isObject2(value)) { - return Object.values(value).every( - (value2) => !isObject2(value2) && !Array.isArray(value2) - ); - } - if (Array.isArray(value)) { - return value.every((value2) => !isObject2(value2) && !Array.isArray(value2)); - } -} -function replacer(key, value) { - if (key === "") { - return value; - } - if (hasSimpleChildren(value)) { - return new CustomDump(value, { flowLevel: 0 }); - } - return value; -} - -// ../common/src/types/command/PartialTargetDescriptor.types.ts -var simpleSurroundingPairNames = [ - "angleBrackets", - "backtickQuotes", - "curlyBrackets", - "doubleQuotes", - "escapedDoubleQuotes", - "escapedParentheses", - "escapedSquareBrackets", - "escapedSingleQuotes", - "parentheses", - "singleQuotes", - "squareBrackets" -]; -var complexSurroundingPairNames = [ - "string", - "any", - "collectionBoundary" -]; -var surroundingPairNames = [ - ...simpleSurroundingPairNames, - ...complexSurroundingPairNames -]; - -// ../common/src/types/command/ActionDescriptor.ts -var simpleActionNames = [ - "breakLine", - "clearAndSetSelection", - "copyToClipboard", - "cutToClipboard", - "decrement", - "deselect", - "editNewLineAfter", - "editNewLineBefore", - "experimental.setInstanceReference", - "extractVariable", - "findInDocument", - "findInWorkspace", - "foldRegion", - "followLink", - "increment", - "indentLine", - "insertCopyAfter", - "insertCopyBefore", - "insertEmptyLineAfter", - "insertEmptyLineBefore", - "insertEmptyLinesAround", - "joinLines", - "outdentLine", - "randomizeTargets", - "remove", - "rename", - "revealDefinition", - "revealTypeDefinition", - "reverseTargets", - "scrollToBottom", - "scrollToCenter", - "scrollToTop", - "setSelection", - "setSelectionAfter", - "setSelectionBefore", - "showDebugHover", - "showHover", - "showQuickFix", - "showReferences", - "sortTargets", - "toggleLineBreakpoint", - "toggleLineComment", - "unfoldRegion", - "private.setKeyboardTarget", - "private.showParseTree", - "private.getTargets" -]; -var complexActionNames = [ - "callAsFunction", - "editNew", - "executeCommand", - "generateSnippet", - "getText", - "highlight", - "insertSnippet", - "moveToTarget", - "pasteFromClipboard", - "replace", - "replaceWithTarget", - "rewrapWithPairedDelimiter", - "swapTargets", - "wrapWithPairedDelimiter", - "wrapWithSnippet" -]; -var actionNames = [ - ...simpleActionNames, - ...complexActionNames -]; - -// ../common/src/scopeSupportFacets/scopeSupportFacets.types.ts -var ScopeSupportFacetLevel = /* @__PURE__ */ ((ScopeSupportFacetLevel2) => { - ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supported"] = 0] = "supported"; - ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["supportedLegacy"] = 1] = "supportedLegacy"; - ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["unsupported"] = 2] = "unsupported"; - ScopeSupportFacetLevel2[ScopeSupportFacetLevel2["notApplicable"] = 3] = "notApplicable"; - return ScopeSupportFacetLevel2; -})(ScopeSupportFacetLevel || {}); - -// ../common/src/scopeSupportFacets/c.ts -var { supported, unsupported, notApplicable } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/clojure.ts -var { supported: supported2, unsupported: unsupported2, notApplicable: notApplicable2 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/cpp.ts -var { supported: supported3, unsupported: unsupported3, notApplicable: notApplicable3 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/csharp.ts -var { supported: supported4, unsupported: unsupported4, notApplicable: notApplicable4 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/css.ts -var { supported: supported5, unsupported: unsupported5, notApplicable: notApplicable5 } = ScopeSupportFacetLevel; -var cssScopeSupport = { - "comment.line": supported5, - "comment.block": supported5, - "string.singleLine": supported5 -}; - -// ../common/src/scopeSupportFacets/go.ts -var { supported: supported6, unsupported: unsupported6, notApplicable: notApplicable6 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/html.ts -var { supported: supported7, notApplicable: notApplicable7 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/java.ts -var { supported: supported8, notApplicable: notApplicable8 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/javascript.ts -var { supported: supported9, unsupported: unsupported7, notApplicable: notApplicable9 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/json.ts -var { supported: supported10 } = ScopeSupportFacetLevel; -var jsonScopeSupport = { - "comment.line": supported10, - "comment.block": supported10 -}; - -// ../common/src/scopeSupportFacets/jsonc.ts -var { supported: supported11, unsupported: unsupported8, notApplicable: notApplicable10 } = ScopeSupportFacetLevel; -var jsoncScopeSupport = { - ...jsonScopeSupport -}; - -// ../common/src/scopeSupportFacets/latex.ts -var { supported: supported12, unsupported: unsupported9, notApplicable: notApplicable11 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/lua.ts -var { supported: supported13, notApplicable: notApplicable12 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/markdown.ts -var { supported: supported14, unsupported: unsupported10, notApplicable: notApplicable13 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/python.ts -var { supported: supported15, supportedLegacy, notApplicable: notApplicable14 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/ruby.ts -var { supported: supported16, unsupported: unsupported11, notApplicable: notApplicable15 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/rust.ts -var { supported: supported17, unsupported: unsupported12, notApplicable: notApplicable16 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/scala.ts -var { supported: supported18, unsupported: unsupported13, notApplicable: notApplicable17 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/scss.ts -var { supported: supported19, unsupported: unsupported14, notApplicable: notApplicable18 } = ScopeSupportFacetLevel; -var scssScopeSupport = { - ...cssScopeSupport -}; - -// ../common/src/scopeSupportFacets/talon.ts -var { supported: supported20 } = ScopeSupportFacetLevel; - -// ../common/src/scopeSupportFacets/typescript.ts -var { supported: supported21 } = ScopeSupportFacetLevel; -var typescriptScopeSupport = { - // ...javascriptScopeSupport, - "type.variable": supported21, - "type.formalParameter": supported21, - "type.return": supported21, - "type.field": supported21, - "type.interface": supported21, - "type.alias": supported21, - "name.field": supported21, - "value.field": supported21 -}; - -// ../common/src/scopeSupportFacets/typescriptreact.ts -var { supported: supported22, unsupported: unsupported15, notApplicable: notApplicable19 } = ScopeSupportFacetLevel; -var typescriptreactScopeSupport = { - ...typescriptScopeSupport -}; - -// src/testSubset.ts -var fs = __toESM(require("fs"), 1); -var path = __toESM(require("path"), 1); -function testSubsetGrepString() { - const inFile = testSubsetFilePath(); - return fs.readFileSync(inFile, "utf-8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#")).join("|"); -} -function testSubsetFilePath() { - return path.join( - getCursorlessRepoRoot(), - "packages", - "test-harness", - "testSubsetGrep.properties" - ); -} -function runTestSubset() { - return process.env.CURSORLESS_RUN_TEST_SUBSET === "true"; -} - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js -var import_brace_expansion = __toESM(require_brace_expansion(), 1); - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/assert-valid-pattern.js -var MAX_PATTERN_LENGTH = 1024 * 64; -var assertValidPattern = (pattern) => { - if (typeof pattern !== "string") { - throw new TypeError("invalid pattern"); - } - if (pattern.length > MAX_PATTERN_LENGTH) { - throw new TypeError("pattern is too long"); - } -}; - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/brace-expressions.js -var posixClasses = { - "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], - "[:alpha:]": ["\\p{L}\\p{Nl}", true], - "[:ascii:]": ["\\x00-\\x7f", false], - "[:blank:]": ["\\p{Zs}\\t", true], - "[:cntrl:]": ["\\p{Cc}", true], - "[:digit:]": ["\\p{Nd}", true], - "[:graph:]": ["\\p{Z}\\p{C}", true, true], - "[:lower:]": ["\\p{Ll}", true], - "[:print:]": ["\\p{C}", true], - "[:punct:]": ["\\p{P}", true], - "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], - "[:upper:]": ["\\p{Lu}", true], - "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], - "[:xdigit:]": ["A-Fa-f0-9", false] -}; -var braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&"); -var regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var rangesToString = (ranges) => ranges.join(""); -var parseClass = (glob2, position) => { - const pos = position; - if (glob2.charAt(pos) !== "[") { - throw new Error("not in a brace expression"); - } - const ranges = []; - const negs = []; - let i = pos + 1; - let sawStart = false; - let uflag = false; - let escaping = false; - let negate = false; - let endPos = pos; - let rangeStart = ""; - WHILE: - while (i < glob2.length) { - const c = glob2.charAt(i); - if ((c === "!" || c === "^") && i === pos + 1) { - negate = true; - i++; - continue; - } - if (c === "]" && sawStart && !escaping) { - endPos = i + 1; - break; - } - sawStart = true; - if (c === "\\") { - if (!escaping) { - escaping = true; - i++; - continue; - } - } - if (c === "[" && !escaping) { - for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { - if (glob2.startsWith(cls, i)) { - if (rangeStart) { - return ["$.", false, glob2.length - pos, true]; - } - i += cls.length; - if (neg) - negs.push(unip); - else - ranges.push(unip); - uflag = uflag || u; - continue WHILE; - } - } - } - escaping = false; - if (rangeStart) { - if (c > rangeStart) { - ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c)); - } else if (c === rangeStart) { - ranges.push(braceEscape(c)); - } - rangeStart = ""; - i++; - continue; - } - if (glob2.startsWith("-]", i + 1)) { - ranges.push(braceEscape(c + "-")); - i += 2; - continue; - } - if (glob2.startsWith("-", i + 1)) { - rangeStart = c; - i += 2; - continue; - } - ranges.push(braceEscape(c)); - i++; - } - if (endPos < i) { - return ["", false, 0, false]; - } - if (!ranges.length && !negs.length) { - return ["$.", false, glob2.length - pos, true]; - } - if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) { - const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; - return [regexpEscape(r), false, endPos - pos, false]; - } - const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; - const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; - const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs; - return [comb, uflag, endPos - pos, true]; -}; - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/unescape.js -var unescape = (s, { windowsPathsNoEscape = false } = {}) => { - return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); -}; - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/ast.js -var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]); -var isExtglobType = (c) => types.has(c); -var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))"; -var startNoDot = "(?!\\.)"; -var addPatternStart = /* @__PURE__ */ new Set(["[", "."]); -var justDots = /* @__PURE__ */ new Set(["..", "."]); -var reSpecials = new Set("().*{}+?[]^$\\!"); -var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var qmark = "[^/]"; -var star = qmark + "*?"; -var starNoEmpty = qmark + "+?"; -var AST = class _AST { - type; - #root; - #hasMagic; - #uflag = false; - #parts = []; - #parent; - #parentIndex; - #negs; - #filledNegs = false; - #options; - #toString; - // set to true if it's an extglob with no children - // (which really means one child of '') - #emptyExt = false; - constructor(type2, parent, options = {}) { - this.type = type2; - if (type2) - this.#hasMagic = true; - this.#parent = parent; - this.#root = this.#parent ? this.#parent.#root : this; - this.#options = this.#root === this ? options : this.#root.#options; - this.#negs = this.#root === this ? [] : this.#root.#negs; - if (type2 === "!" && !this.#root.#filledNegs) - this.#negs.push(this); - this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; - } - get hasMagic() { - if (this.#hasMagic !== void 0) - return this.#hasMagic; - for (const p of this.#parts) { - if (typeof p === "string") - continue; - if (p.type || p.hasMagic) - return this.#hasMagic = true; - } - return this.#hasMagic; - } - // reconstructs the pattern - toString() { - if (this.#toString !== void 0) - return this.#toString; - if (!this.type) { - return this.#toString = this.#parts.map((p) => String(p)).join(""); - } else { - return this.#toString = this.type + "(" + this.#parts.map((p) => String(p)).join("|") + ")"; - } - } - #fillNegs() { - if (this !== this.#root) - throw new Error("should only call on root"); - if (this.#filledNegs) - return this; - this.toString(); - this.#filledNegs = true; - let n; - while (n = this.#negs.pop()) { - if (n.type !== "!") - continue; - let p = n; - let pp = p.#parent; - while (pp) { - for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { - for (const part of n.#parts) { - if (typeof part === "string") { - throw new Error("string part in extglob AST??"); - } - part.copyIn(pp.#parts[i]); - } - } - p = pp; - pp = p.#parent; - } - } - return this; - } - push(...parts) { - for (const p of parts) { - if (p === "") - continue; - if (typeof p !== "string" && !(p instanceof _AST && p.#parent === this)) { - throw new Error("invalid part: " + p); - } - this.#parts.push(p); - } - } - toJSON() { - const ret = this.type === null ? this.#parts.slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...this.#parts.map((p) => p.toJSON())]; - if (this.isStart() && !this.type) - ret.unshift([]); - if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) { - ret.push({}); - } - return ret; - } - isStart() { - if (this.#root === this) - return true; - if (!this.#parent?.isStart()) - return false; - if (this.#parentIndex === 0) - return true; - const p = this.#parent; - for (let i = 0; i < this.#parentIndex; i++) { - const pp = p.#parts[i]; - if (!(pp instanceof _AST && pp.type === "!")) { - return false; - } - } - return true; - } - isEnd() { - if (this.#root === this) - return true; - if (this.#parent?.type === "!") - return true; - if (!this.#parent?.isEnd()) - return false; - if (!this.type) - return this.#parent?.isEnd(); - const pl = this.#parent ? this.#parent.#parts.length : 0; - return this.#parentIndex === pl - 1; - } - copyIn(part) { - if (typeof part === "string") - this.push(part); - else - this.push(part.clone(this)); - } - clone(parent) { - const c = new _AST(this.type, parent); - for (const p of this.#parts) { - c.copyIn(p); - } - return c; - } - static #parseAST(str2, ast, pos, opt) { - let escaping = false; - let inBrace = false; - let braceStart = -1; - let braceNeg = false; - if (ast.type === null) { - let i2 = pos; - let acc2 = ""; - while (i2 < str2.length) { - const c = str2.charAt(i2++); - if (escaping || c === "\\") { - escaping = !escaping; - acc2 += c; - continue; - } - if (inBrace) { - if (i2 === braceStart + 1) { - if (c === "^" || c === "!") { - braceNeg = true; - } - } else if (c === "]" && !(i2 === braceStart + 2 && braceNeg)) { - inBrace = false; - } - acc2 += c; - continue; - } else if (c === "[") { - inBrace = true; - braceStart = i2; - braceNeg = false; - acc2 += c; - continue; - } - if (!opt.noext && isExtglobType(c) && str2.charAt(i2) === "(") { - ast.push(acc2); - acc2 = ""; - const ext2 = new _AST(c, ast); - i2 = _AST.#parseAST(str2, ext2, i2, opt); - ast.push(ext2); - continue; - } - acc2 += c; - } - ast.push(acc2); - return i2; - } - let i = pos + 1; - let part = new _AST(null, ast); - const parts = []; - let acc = ""; - while (i < str2.length) { - const c = str2.charAt(i++); - if (escaping || c === "\\") { - escaping = !escaping; - acc += c; - continue; - } - if (inBrace) { - if (i === braceStart + 1) { - if (c === "^" || c === "!") { - braceNeg = true; - } - } else if (c === "]" && !(i === braceStart + 2 && braceNeg)) { - inBrace = false; - } - acc += c; - continue; - } else if (c === "[") { - inBrace = true; - braceStart = i; - braceNeg = false; - acc += c; - continue; - } - if (isExtglobType(c) && str2.charAt(i) === "(") { - part.push(acc); - acc = ""; - const ext2 = new _AST(c, part); - part.push(ext2); - i = _AST.#parseAST(str2, ext2, i, opt); - continue; - } - if (c === "|") { - part.push(acc); - acc = ""; - parts.push(part); - part = new _AST(null, ast); - continue; - } - if (c === ")") { - if (acc === "" && ast.#parts.length === 0) { - ast.#emptyExt = true; - } - part.push(acc); - acc = ""; - ast.push(...parts, part); - return i; - } - acc += c; - } - ast.type = null; - ast.#hasMagic = void 0; - ast.#parts = [str2.substring(pos - 1)]; - return i; - } - static fromGlob(pattern, options = {}) { - const ast = new _AST(null, void 0, options); - _AST.#parseAST(pattern, ast, 0, options); - return ast; - } - // returns the regular expression if there's magic, or the unescaped - // string if not. - toMMPattern() { - if (this !== this.#root) - return this.#root.toMMPattern(); - const glob2 = this.toString(); - const [re, body, hasMagic2, uflag] = this.toRegExpSource(); - const anyMagic = hasMagic2 || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob2.toUpperCase() !== glob2.toLowerCase(); - if (!anyMagic) { - return body; - } - const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : ""); - return Object.assign(new RegExp(`^${re}$`, flags), { - _src: re, - _glob: glob2 - }); - } - // returns the string match, the regexp source, whether there's magic - // in the regexp (so a regular expression is required) and whether or - // not the uflag is needed for the regular expression (for posix classes) - // TODO: instead of injecting the start/end at this point, just return - // the BODY of the regexp, along with the start/end portions suitable - // for binding the start/end in either a joined full-path makeRe context - // (where we bind to (^|/), or a standalone matchPart context (where - // we bind to ^, and not /). Otherwise slashes get duped! - // - // In part-matching mode, the start is: - // - if not isStart: nothing - // - if traversal possible, but not allowed: ^(?!\.\.?$) - // - if dots allowed or not possible: ^ - // - if dots possible and not allowed: ^(?!\.) - // end is: - // - if not isEnd(): nothing - // - else: $ - // - // In full-path matching mode, we put the slash at the START of the - // pattern, so start is: - // - if first pattern: same as part-matching mode - // - if not isStart(): nothing - // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) - // - if dots allowed or not possible: / - // - if dots possible and not allowed: /(?!\.) - // end is: - // - if last pattern, same as part-matching mode - // - else nothing - // - // Always put the (?:$|/) on negated tails, though, because that has to be - // there to bind the end of the negated pattern portion, and it's easier to - // just stick it in now rather than try to inject it later in the middle of - // the pattern. - // - // We can just always return the same end, and leave it up to the caller - // to know whether it's going to be used joined or in parts. - // And, if the start is adjusted slightly, can do the same there: - // - if not isStart: nothing - // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) - // - if dots allowed or not possible: (?:/|^) - // - if dots possible and not allowed: (?:/|^)(?!\.) - // - // But it's better to have a simpler binding without a conditional, for - // performance, so probably better to return both start options. - // - // Then the caller just ignores the end if it's not the first pattern, - // and the start always gets applied. - // - // But that's always going to be $ if it's the ending pattern, or nothing, - // so the caller can just attach $ at the end of the pattern when building. - // - // So the todo is: - // - better detect what kind of start is needed - // - return both flavors of starting pattern - // - attach $ at the end of the pattern when creating the actual RegExp - // - // Ah, but wait, no, that all only applies to the root when the first pattern - // is not an extglob. If the first pattern IS an extglob, then we need all - // that dot prevention biz to live in the extglob portions, because eg - // +(*|.x*) can match .xy but not .yx. - // - // So, return the two flavors if it's #root and the first child is not an - // AST, otherwise leave it to the child AST to handle it, and there, - // use the (?:^|/) style of start binding. - // - // Even simplified further: - // - Since the start for a join is eg /(?!\.) and the start for a part - // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root - // or start or whatever) and prepend ^ or / at the Regexp construction. - toRegExpSource(allowDot) { - const dot = allowDot ?? !!this.#options.dot; - if (this.#root === this) - this.#fillNegs(); - if (!this.type) { - const noEmpty = this.isStart() && this.isEnd(); - const src = this.#parts.map((p) => { - const [re, _, hasMagic2, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot); - this.#hasMagic = this.#hasMagic || hasMagic2; - this.#uflag = this.#uflag || uflag; - return re; - }).join(""); - let start2 = ""; - if (this.isStart()) { - if (typeof this.#parts[0] === "string") { - const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); - if (!dotTravAllowed) { - const aps = addPatternStart; - const needNoTrav = ( - // dots are allowed, and the pattern starts with [ or . - dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or . - src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or . - src.startsWith("\\.\\.") && aps.has(src.charAt(4)) - ); - const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); - start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ""; - } - } - } - let end = ""; - if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") { - end = "(?:$|\\/)"; - } - const final2 = start2 + src + end; - return [ - final2, - unescape(src), - this.#hasMagic = !!this.#hasMagic, - this.#uflag - ]; - } - const repeated = this.type === "*" || this.type === "+"; - const start = this.type === "!" ? "(?:(?!(?:" : "(?:"; - let body = this.#partsToRegExp(dot); - if (this.isStart() && this.isEnd() && !body && this.type !== "!") { - const s = this.toString(); - this.#parts = [s]; - this.type = null; - this.#hasMagic = void 0; - return [s, unescape(this.toString()), false, false]; - } - let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true); - if (bodyDotAllowed === body) { - bodyDotAllowed = ""; - } - if (bodyDotAllowed) { - body = `(?:${body})(?:${bodyDotAllowed})*?`; - } - let final = ""; - if (this.type === "!" && this.#emptyExt) { - final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty; - } else { - const close = this.type === "!" ? ( - // !() must match something,but !(x) can match '' - "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")" - ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`; - final = start + body + close; - } - return [ - final, - unescape(body), - this.#hasMagic = !!this.#hasMagic, - this.#uflag - ]; - } - #partsToRegExp(dot) { - return this.#parts.map((p) => { - if (typeof p === "string") { - throw new Error("string type in extglob ast??"); - } - const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); - this.#uflag = this.#uflag || uflag; - return re; - }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|"); - } - static #parseGlob(glob2, hasMagic2, noEmpty = false) { - let escaping = false; - let re = ""; - let uflag = false; - for (let i = 0; i < glob2.length; i++) { - const c = glob2.charAt(i); - if (escaping) { - escaping = false; - re += (reSpecials.has(c) ? "\\" : "") + c; - continue; - } - if (c === "\\") { - if (i === glob2.length - 1) { - re += "\\\\"; - } else { - escaping = true; - } - continue; - } - if (c === "[") { - const [src, needUflag, consumed, magic] = parseClass(glob2, i); - if (consumed) { - re += src; - uflag = uflag || needUflag; - i += consumed - 1; - hasMagic2 = hasMagic2 || magic; - continue; - } - } - if (c === "*") { - if (noEmpty && glob2 === "*") - re += starNoEmpty; - else - re += star; - hasMagic2 = true; - continue; - } - if (c === "?") { - re += qmark; - hasMagic2 = true; - continue; - } - re += regExpEscape(c); - } - return [re, unescape(glob2), !!hasMagic2, uflag]; - } -}; - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/escape.js -var escape = (s, { windowsPathsNoEscape = false } = {}) => { - return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&"); -}; - -// ../../node_modules/.pnpm/minimatch@9.0.3/node_modules/minimatch/dist/mjs/index.js -var minimatch = (p, pattern, options = {}) => { - assertValidPattern(pattern); - if (!options.nocomment && pattern.charAt(0) === "#") { - return false; - } - return new Minimatch(pattern, options).match(p); -}; -var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; -var starDotExtTest = (ext2) => (f) => !f.startsWith(".") && f.endsWith(ext2); -var starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2); -var starDotExtTestNocase = (ext2) => { - ext2 = ext2.toLowerCase(); - return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext2); -}; -var starDotExtTestNocaseDot = (ext2) => { - ext2 = ext2.toLowerCase(); - return (f) => f.toLowerCase().endsWith(ext2); -}; -var starDotStarRE = /^\*+\.\*+$/; -var starDotStarTest = (f) => !f.startsWith(".") && f.includes("."); -var starDotStarTestDot = (f) => f !== "." && f !== ".." && f.includes("."); -var dotStarRE = /^\.\*+$/; -var dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith("."); -var starRE = /^\*+$/; -var starTest = (f) => f.length !== 0 && !f.startsWith("."); -var starTestDot = (f) => f.length !== 0 && f !== "." && f !== ".."; -var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; -var qmarksTestNocase = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExt([$0]); - if (!ext2) - return noext; - ext2 = ext2.toLowerCase(); - return (f) => noext(f) && f.toLowerCase().endsWith(ext2); -}; -var qmarksTestNocaseDot = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExtDot([$0]); - if (!ext2) - return noext; - ext2 = ext2.toLowerCase(); - return (f) => noext(f) && f.toLowerCase().endsWith(ext2); -}; -var qmarksTestDot = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExtDot([$0]); - return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); -}; -var qmarksTest = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExt([$0]); - return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2); -}; -var qmarksTestNoExt = ([$0]) => { - const len = $0.length; - return (f) => f.length === len && !f.startsWith("."); -}; -var qmarksTestNoExtDot = ([$0]) => { - const len = $0.length; - return (f) => f.length === len && f !== "." && f !== ".."; -}; -var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; -var path2 = { - win32: { sep: "\\" }, - posix: { sep: "/" } -}; -var sep = defaultPlatform === "win32" ? path2.win32.sep : path2.posix.sep; -minimatch.sep = sep; -var GLOBSTAR = Symbol("globstar **"); -minimatch.GLOBSTAR = GLOBSTAR; -var qmark2 = "[^/]"; -var star2 = qmark2 + "*?"; -var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; -var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; -var filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options); -minimatch.filter = filter; -var ext = (a, b = {}) => Object.assign({}, a, b); -var defaults = (def) => { - if (!def || typeof def !== "object" || !Object.keys(def).length) { - return minimatch; - } - const orig = minimatch; - const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options)); - return Object.assign(m, { - Minimatch: class Minimatch extends orig.Minimatch { - constructor(pattern, options = {}) { - super(pattern, ext(def, options)); - } - static defaults(options) { - return orig.defaults(ext(def, options)).Minimatch; - } - }, - AST: class AST extends orig.AST { - /* c8 ignore start */ - constructor(type2, parent, options = {}) { - super(type2, parent, ext(def, options)); - } - /* c8 ignore stop */ - static fromGlob(pattern, options = {}) { - return orig.AST.fromGlob(pattern, ext(def, options)); - } - }, - unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), - escape: (s, options = {}) => orig.escape(s, ext(def, options)), - filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), - defaults: (options) => orig.defaults(ext(def, options)), - makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), - braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), - match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), - sep: orig.sep, - GLOBSTAR - }); -}; -minimatch.defaults = defaults; -var braceExpand = (pattern, options = {}) => { - assertValidPattern(pattern); - if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { - return [pattern]; - } - return (0, import_brace_expansion.default)(pattern); -}; -minimatch.braceExpand = braceExpand; -var makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); -minimatch.makeRe = makeRe; -var match = (list, pattern, options = {}) => { - const mm = new Minimatch(pattern, options); - list = list.filter((f) => mm.match(f)); - if (mm.options.nonull && !list.length) { - list.push(pattern); - } - return list; -}; -minimatch.match = match; -var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; -var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var Minimatch = class { - options; - set; - pattern; - windowsPathsNoEscape; - nonegate; - negate; - comment; - empty; - preserveMultipleSlashes; - partial; - globSet; - globParts; - nocase; - isWindows; - platform; - windowsNoMagicRoot; - regexp; - constructor(pattern, options = {}) { - assertValidPattern(pattern); - options = options || {}; - this.options = options; - this.pattern = pattern; - this.platform = options.platform || defaultPlatform; - this.isWindows = this.platform === "win32"; - this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; - if (this.windowsPathsNoEscape) { - this.pattern = this.pattern.replace(/\\/g, "/"); - } - this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; - this.regexp = null; - this.negate = false; - this.nonegate = !!options.nonegate; - this.comment = false; - this.empty = false; - this.partial = !!options.partial; - this.nocase = !!this.options.nocase; - this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase); - this.globSet = []; - this.globParts = []; - this.set = []; - this.make(); - } - hasMagic() { - if (this.options.magicalBraces && this.set.length > 1) { - return true; - } - for (const pattern of this.set) { - for (const part of pattern) { - if (typeof part !== "string") - return true; - } - } - return false; - } - debug(..._) { - } - make() { - const pattern = this.pattern; - const options = this.options; - if (!options.nocomment && pattern.charAt(0) === "#") { - this.comment = true; - return; - } - if (!pattern) { - this.empty = true; - return; - } - this.parseNegate(); - this.globSet = [...new Set(this.braceExpand())]; - if (options.debug) { - this.debug = (...args) => console.error(...args); - } - this.debug(this.pattern, this.globSet); - const rawGlobParts = this.globSet.map((s) => this.slashSplit(s)); - this.globParts = this.preprocess(rawGlobParts); - this.debug(this.pattern, this.globParts); - let set2 = this.globParts.map((s, _, __) => { - if (this.isWindows && this.windowsNoMagicRoot) { - const isUNC = s[0] === "" && s[1] === "" && (s[2] === "?" || !globMagic.test(s[2])) && !globMagic.test(s[3]); - const isDrive = /^[a-z]:/i.test(s[0]); - if (isUNC) { - return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))]; - } else if (isDrive) { - return [s[0], ...s.slice(1).map((ss) => this.parse(ss))]; - } - } - return s.map((ss) => this.parse(ss)); - }); - this.debug(this.pattern, set2); - this.set = set2.filter((s) => s.indexOf(false) === -1); - if (this.isWindows) { - for (let i = 0; i < this.set.length; i++) { - const p = this.set[i]; - if (p[0] === "" && p[1] === "" && this.globParts[i][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) { - p[2] = "?"; - } - } - } - this.debug(this.pattern, this.set); - } - // various transforms to equivalent pattern sets that are - // faster to process in a filesystem walk. The goal is to - // eliminate what we can, and push all ** patterns as far - // to the right as possible, even if it increases the number - // of patterns that we have to process. - preprocess(globParts) { - if (this.options.noglobstar) { - for (let i = 0; i < globParts.length; i++) { - for (let j = 0; j < globParts[i].length; j++) { - if (globParts[i][j] === "**") { - globParts[i][j] = "*"; - } - } - } - } - const { optimizationLevel = 1 } = this.options; - if (optimizationLevel >= 2) { - globParts = this.firstPhasePreProcess(globParts); - globParts = this.secondPhasePreProcess(globParts); - } else if (optimizationLevel >= 1) { - globParts = this.levelOneOptimize(globParts); - } else { - globParts = this.adjascentGlobstarOptimize(globParts); - } - return globParts; - } - // just get rid of adjascent ** portions - adjascentGlobstarOptimize(globParts) { - return globParts.map((parts) => { - let gs = -1; - while (-1 !== (gs = parts.indexOf("**", gs + 1))) { - let i = gs; - while (parts[i + 1] === "**") { - i++; - } - if (i !== gs) { - parts.splice(gs, i - gs); - } - } - return parts; - }); - } - // get rid of adjascent ** and resolve .. portions - levelOneOptimize(globParts) { - return globParts.map((parts) => { - parts = parts.reduce((set2, part) => { - const prev = set2[set2.length - 1]; - if (part === "**" && prev === "**") { - return set2; - } - if (part === "..") { - if (prev && prev !== ".." && prev !== "." && prev !== "**") { - set2.pop(); - return set2; - } - } - set2.push(part); - return set2; - }, []); - return parts.length === 0 ? [""] : parts; - }); - } - levelTwoFileOptimize(parts) { - if (!Array.isArray(parts)) { - parts = this.slashSplit(parts); - } - let didSomething = false; - do { - didSomething = false; - if (!this.preserveMultipleSlashes) { - for (let i = 1; i < parts.length - 1; i++) { - const p = parts[i]; - if (i === 1 && p === "" && parts[0] === "") - continue; - if (p === "." || p === "") { - didSomething = true; - parts.splice(i, 1); - i--; - } - } - if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) { - didSomething = true; - parts.pop(); - } - } - let dd = 0; - while (-1 !== (dd = parts.indexOf("..", dd + 1))) { - const p = parts[dd - 1]; - if (p && p !== "." && p !== ".." && p !== "**") { - didSomething = true; - parts.splice(dd - 1, 2); - dd -= 2; - } - } - } while (didSomething); - return parts.length === 0 ? [""] : parts; - } - // First phase: single-pattern processing - //
       is 1 or more portions
      -  //  is 1 or more portions
      -  // 

      is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

      /**/../

      /

      / -> {

      /../

      /

      /,

      /**/

      /

      /} - //

      // -> 
      /
      -  // 
      /

      /../ ->

      /
      -  // **/**/ -> **/
      -  //
      -  // **/*/ -> */**/ <== not valid because ** doesn't follow
      -  // this WOULD be allowed if ** did follow symlinks, or * didn't
      -  firstPhasePreProcess(globParts) {
      -    let didSomething = false;
      -    do {
      -      didSomething = false;
      -      for (let parts of globParts) {
      -        let gs = -1;
      -        while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
      -          let gss = gs;
      -          while (parts[gss + 1] === "**") {
      -            gss++;
      -          }
      -          if (gss > gs) {
      -            parts.splice(gs + 1, gss - gs);
      -          }
      -          let next = parts[gs + 1];
      -          const p = parts[gs + 2];
      -          const p2 = parts[gs + 3];
      -          if (next !== "..")
      -            continue;
      -          if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
      -            continue;
      -          }
      -          didSomething = true;
      -          parts.splice(gs, 1);
      -          const other = parts.slice(0);
      -          other[gs] = "**";
      -          globParts.push(other);
      -          gs--;
      -        }
      -        if (!this.preserveMultipleSlashes) {
      -          for (let i = 1; i < parts.length - 1; i++) {
      -            const p = parts[i];
      -            if (i === 1 && p === "" && parts[0] === "")
      -              continue;
      -            if (p === "." || p === "") {
      -              didSomething = true;
      -              parts.splice(i, 1);
      -              i--;
      -            }
      -          }
      -          if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
      -            didSomething = true;
      -            parts.pop();
      -          }
      -        }
      -        let dd = 0;
      -        while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
      -          const p = parts[dd - 1];
      -          if (p && p !== "." && p !== ".." && p !== "**") {
      -            didSomething = true;
      -            const needDot = dd === 1 && parts[dd + 1] === "**";
      -            const splin = needDot ? ["."] : [];
      -            parts.splice(dd - 1, 2, ...splin);
      -            if (parts.length === 0)
      -              parts.push("");
      -            dd -= 2;
      -          }
      -        }
      -      }
      -    } while (didSomething);
      -    return globParts;
      -  }
      -  // second phase: multi-pattern dedupes
      -  // {
      /*/,
      /

      /} ->

      /*/
      -  // {
      /,
      /} -> 
      /
      -  // {
      /**/,
      /} -> 
      /**/
      -  //
      -  // {
      /**/,
      /**/

      /} ->

      /**/
      -  // ^-- not valid because ** doens't follow symlinks
      -  secondPhasePreProcess(globParts) {
      -    for (let i = 0; i < globParts.length - 1; i++) {
      -      for (let j = i + 1; j < globParts.length; j++) {
      -        const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
      -        if (!matched)
      -          continue;
      -        globParts[i] = matched;
      -        globParts[j] = [];
      -      }
      -    }
      -    return globParts.filter((gs) => gs.length);
      -  }
      -  partsMatch(a, b, emptyGSMatch = false) {
      -    let ai = 0;
      -    let bi = 0;
      -    let result = [];
      -    let which = "";
      -    while (ai < a.length && bi < b.length) {
      -      if (a[ai] === b[bi]) {
      -        result.push(which === "b" ? b[bi] : a[ai]);
      -        ai++;
      -        bi++;
      -      } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
      -        result.push(a[ai]);
      -        ai++;
      -      } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
      -        result.push(b[bi]);
      -        bi++;
      -      } else if (a[ai] === "*" && b[bi] && (this.options.dot || !b[bi].startsWith(".")) && b[bi] !== "**") {
      -        if (which === "b")
      -          return false;
      -        which = "a";
      -        result.push(a[ai]);
      -        ai++;
      -        bi++;
      -      } else if (b[bi] === "*" && a[ai] && (this.options.dot || !a[ai].startsWith(".")) && a[ai] !== "**") {
      -        if (which === "a")
      -          return false;
      -        which = "b";
      -        result.push(b[bi]);
      -        ai++;
      -        bi++;
      -      } else {
      -        return false;
      -      }
      -    }
      -    return a.length === b.length && result;
      -  }
      -  parseNegate() {
      -    if (this.nonegate)
      -      return;
      -    const pattern = this.pattern;
      -    let negate = false;
      -    let negateOffset = 0;
      -    for (let i = 0; i < pattern.length && pattern.charAt(i) === "!"; i++) {
      -      negate = !negate;
      -      negateOffset++;
      -    }
      -    if (negateOffset)
      -      this.pattern = pattern.slice(negateOffset);
      -    this.negate = negate;
      -  }
      -  // set partial to true to test if, for example,
      -  // "/a/b" matches the start of "/*/b/*/d"
      -  // Partial means, if you run out of file before you run
      -  // out of pattern, then that's fine, as long as all
      -  // the parts match.
      -  matchOne(file, pattern, partial = false) {
      -    const options = this.options;
      -    if (this.isWindows) {
      -      const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
      -      const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
      -      const patternDrive = typeof pattern[0] === "string" && /^[a-z]:$/i.test(pattern[0]);
      -      const patternUNC = !patternDrive && pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
      -      const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
      -      const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
      -      if (typeof fdi === "number" && typeof pdi === "number") {
      -        const [fd, pd] = [file[fdi], pattern[pdi]];
      -        if (fd.toLowerCase() === pd.toLowerCase()) {
      -          pattern[pdi] = fd;
      -          if (pdi > fdi) {
      -            pattern = pattern.slice(pdi);
      -          } else if (fdi > pdi) {
      -            file = file.slice(fdi);
      -          }
      -        }
      -      }
      -    }
      -    const { optimizationLevel = 1 } = this.options;
      -    if (optimizationLevel >= 2) {
      -      file = this.levelTwoFileOptimize(file);
      -    }
      -    this.debug("matchOne", this, { file, pattern });
      -    this.debug("matchOne", file.length, pattern.length);
      -    for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
      -      this.debug("matchOne loop");
      -      var p = pattern[pi];
      -      var f = file[fi];
      -      this.debug(pattern, p, f);
      -      if (p === false) {
      -        return false;
      -      }
      -      if (p === GLOBSTAR) {
      -        this.debug("GLOBSTAR", [pattern, p, f]);
      -        var fr = fi;
      -        var pr = pi + 1;
      -        if (pr === pl) {
      -          this.debug("** at the end");
      -          for (; fi < fl; fi++) {
      -            if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
      -              return false;
      -          }
      -          return true;
      -        }
      -        while (fr < fl) {
      -          var swallowee = file[fr];
      -          this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
      -          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
      -            this.debug("globstar found match!", fr, fl, swallowee);
      -            return true;
      -          } else {
      -            if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
      -              this.debug("dot detected!", file, fr, pattern, pr);
      -              break;
      -            }
      -            this.debug("globstar swallow a segment, and continue");
      -            fr++;
      -          }
      -        }
      -        if (partial) {
      -          this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
      -          if (fr === fl) {
      -            return true;
      -          }
      -        }
      -        return false;
      -      }
      -      let hit;
      -      if (typeof p === "string") {
      -        hit = f === p;
      -        this.debug("string match", p, f, hit);
      -      } else {
      -        hit = p.test(f);
      -        this.debug("pattern match", p, f, hit);
      -      }
      -      if (!hit)
      -        return false;
      -    }
      -    if (fi === fl && pi === pl) {
      -      return true;
      -    } else if (fi === fl) {
      -      return partial;
      -    } else if (pi === pl) {
      -      return fi === fl - 1 && file[fi] === "";
      -    } else {
      -      throw new Error("wtf?");
      -    }
      -  }
      -  braceExpand() {
      -    return braceExpand(this.pattern, this.options);
      -  }
      -  parse(pattern) {
      -    assertValidPattern(pattern);
      -    const options = this.options;
      -    if (pattern === "**")
      -      return GLOBSTAR;
      -    if (pattern === "")
      -      return "";
      -    let m;
      -    let fastTest = null;
      -    if (m = pattern.match(starRE)) {
      -      fastTest = options.dot ? starTestDot : starTest;
      -    } else if (m = pattern.match(starDotExtRE)) {
      -      fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m[1]);
      -    } else if (m = pattern.match(qmarksRE)) {
      -      fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m);
      -    } else if (m = pattern.match(starDotStarRE)) {
      -      fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
      -    } else if (m = pattern.match(dotStarRE)) {
      -      fastTest = dotStarTest;
      -    }
      -    const re = AST.fromGlob(pattern, this.options).toMMPattern();
      -    return fastTest ? Object.assign(re, { test: fastTest }) : re;
      -  }
      -  makeRe() {
      -    if (this.regexp || this.regexp === false)
      -      return this.regexp;
      -    const set2 = this.set;
      -    if (!set2.length) {
      -      this.regexp = false;
      -      return this.regexp;
      -    }
      -    const options = this.options;
      -    const twoStar = options.noglobstar ? star2 : options.dot ? twoStarDot : twoStarNoDot;
      -    const flags = new Set(options.nocase ? ["i"] : []);
      -    let re = set2.map((pattern) => {
      -      const pp = pattern.map((p) => {
      -        if (p instanceof RegExp) {
      -          for (const f of p.flags.split(""))
      -            flags.add(f);
      -        }
      -        return typeof p === "string" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;
      -      });
      -      pp.forEach((p, i) => {
      -        const next = pp[i + 1];
      -        const prev = pp[i - 1];
      -        if (p !== GLOBSTAR || prev === GLOBSTAR) {
      -          return;
      -        }
      -        if (prev === void 0) {
      -          if (next !== void 0 && next !== GLOBSTAR) {
      -            pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
      -          } else {
      -            pp[i] = twoStar;
      -          }
      -        } else if (next === void 0) {
      -          pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
      -        } else if (next !== GLOBSTAR) {
      -          pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
      -          pp[i + 1] = GLOBSTAR;
      -        }
      -      });
      -      return pp.filter((p) => p !== GLOBSTAR).join("/");
      -    }).join("|");
      -    const [open, close] = set2.length > 1 ? ["(?:", ")"] : ["", ""];
      -    re = "^" + open + re + close + "$";
      -    if (this.negate)
      -      re = "^(?!" + re + ").+$";
      -    try {
      -      this.regexp = new RegExp(re, [...flags].join(""));
      -    } catch (ex) {
      -      this.regexp = false;
      -    }
      -    return this.regexp;
      -  }
      -  slashSplit(p) {
      -    if (this.preserveMultipleSlashes) {
      -      return p.split("/");
      -    } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
      -      return ["", ...p.split(/\/+/)];
      -    } else {
      -      return p.split(/\/+/);
      -    }
      -  }
      -  match(f, partial = this.partial) {
      -    this.debug("match", f, this.pattern);
      -    if (this.comment) {
      -      return false;
      -    }
      -    if (this.empty) {
      -      return f === "";
      -    }
      -    if (f === "/" && partial) {
      -      return true;
      -    }
      -    const options = this.options;
      -    if (this.isWindows) {
      -      f = f.split("\\").join("/");
      -    }
      -    const ff = this.slashSplit(f);
      -    this.debug(this.pattern, "split", ff);
      -    const set2 = this.set;
      -    this.debug(this.pattern, "set", set2);
      -    let filename = ff[ff.length - 1];
      -    if (!filename) {
      -      for (let i = ff.length - 2; !filename && i >= 0; i--) {
      -        filename = ff[i];
      -      }
      -    }
      -    for (let i = 0; i < set2.length; i++) {
      -      const pattern = set2[i];
      -      let file = ff;
      -      if (options.matchBase && pattern.length === 1) {
      -        file = [filename];
      -      }
      -      const hit = this.matchOne(file, pattern, partial);
      -      if (hit) {
      -        if (options.flipNegate) {
      -          return true;
      -        }
      -        return !this.negate;
      -      }
      -    }
      -    if (options.flipNegate) {
      -      return false;
      -    }
      -    return this.negate;
      -  }
      -  static defaults(def) {
      -    return minimatch.defaults(def).Minimatch;
      -  }
      -};
      -minimatch.AST = AST;
      -minimatch.Minimatch = Minimatch;
      -minimatch.escape = escape;
      -minimatch.unescape = unescape;
      -
      -// ../../node_modules/.pnpm/lru-cache@10.2.0/node_modules/lru-cache/dist/esm/index.js
      -var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
      -var warned = /* @__PURE__ */ new Set();
      -var PROCESS = typeof process === "object" && !!process ? process : {};
      -var emitWarning = (msg, type2, code, fn) => {
      -  typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type2, code, fn) : console.error(`[${code}] ${type2}: ${msg}`);
      -};
      -var AC = globalThis.AbortController;
      -var AS = globalThis.AbortSignal;
      -if (typeof AC === "undefined") {
      -  AS = class AbortSignal {
      -    onabort;
      -    _onabort = [];
      -    reason;
      -    aborted = false;
      -    addEventListener(_, fn) {
      -      this._onabort.push(fn);
      -    }
      -  };
      -  AC = class AbortController {
      -    constructor() {
      -      warnACPolyfill();
      -    }
      -    signal = new AS();
      -    abort(reason) {
      -      if (this.signal.aborted)
      -        return;
      -      this.signal.reason = reason;
      -      this.signal.aborted = true;
      -      for (const fn of this.signal._onabort) {
      -        fn(reason);
      -      }
      -      this.signal.onabort?.(reason);
      -    }
      -  };
      -  let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
      -  const warnACPolyfill = () => {
      -    if (!printACPolyfillWarning)
      -      return;
      -    printACPolyfillWarning = false;
      -    emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
      -  };
      -}
      -var shouldWarn = (code) => !warned.has(code);
      -var TYPE = Symbol("type");
      -var isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
      -var getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
      -var ZeroArray = class extends Array {
      -  constructor(size) {
      -    super(size);
      -    this.fill(0);
      -  }
      -};
      -var Stack = class _Stack {
      -  heap;
      -  length;
      -  // private constructor
      -  static #constructing = false;
      -  static create(max) {
      -    const HeapCls = getUintArray(max);
      -    if (!HeapCls)
      -      return [];
      -    _Stack.#constructing = true;
      -    const s = new _Stack(max, HeapCls);
      -    _Stack.#constructing = false;
      -    return s;
      -  }
      -  constructor(max, HeapCls) {
      -    if (!_Stack.#constructing) {
      -      throw new TypeError("instantiate Stack using Stack.create(n)");
      -    }
      -    this.heap = new HeapCls(max);
      -    this.length = 0;
      -  }
      -  push(n) {
      -    this.heap[this.length++] = n;
      -  }
      -  pop() {
      -    return this.heap[--this.length];
      -  }
      -};
      -var LRUCache = class _LRUCache {
      -  // properties coming in from the options of these, only max and maxSize
      -  // really *need* to be protected. The rest can be modified, as they just
      -  // set defaults for various methods.
      -  #max;
      -  #maxSize;
      -  #dispose;
      -  #disposeAfter;
      -  #fetchMethod;
      -  /**
      -   * {@link LRUCache.OptionsBase.ttl}
      -   */
      -  ttl;
      -  /**
      -   * {@link LRUCache.OptionsBase.ttlResolution}
      -   */
      -  ttlResolution;
      -  /**
      -   * {@link LRUCache.OptionsBase.ttlAutopurge}
      -   */
      -  ttlAutopurge;
      -  /**
      -   * {@link LRUCache.OptionsBase.updateAgeOnGet}
      -   */
      -  updateAgeOnGet;
      -  /**
      -   * {@link LRUCache.OptionsBase.updateAgeOnHas}
      -   */
      -  updateAgeOnHas;
      -  /**
      -   * {@link LRUCache.OptionsBase.allowStale}
      -   */
      -  allowStale;
      -  /**
      -   * {@link LRUCache.OptionsBase.noDisposeOnSet}
      -   */
      -  noDisposeOnSet;
      -  /**
      -   * {@link LRUCache.OptionsBase.noUpdateTTL}
      -   */
      -  noUpdateTTL;
      -  /**
      -   * {@link LRUCache.OptionsBase.maxEntrySize}
      -   */
      -  maxEntrySize;
      -  /**
      -   * {@link LRUCache.OptionsBase.sizeCalculation}
      -   */
      -  sizeCalculation;
      -  /**
      -   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
      -   */
      -  noDeleteOnFetchRejection;
      -  /**
      -   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
      -   */
      -  noDeleteOnStaleGet;
      -  /**
      -   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
      -   */
      -  allowStaleOnFetchAbort;
      -  /**
      -   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
      -   */
      -  allowStaleOnFetchRejection;
      -  /**
      -   * {@link LRUCache.OptionsBase.ignoreFetchAbort}
      -   */
      -  ignoreFetchAbort;
      -  // computed properties
      -  #size;
      -  #calculatedSize;
      -  #keyMap;
      -  #keyList;
      -  #valList;
      -  #next;
      -  #prev;
      -  #head;
      -  #tail;
      -  #free;
      -  #disposed;
      -  #sizes;
      -  #starts;
      -  #ttls;
      -  #hasDispose;
      -  #hasFetchMethod;
      -  #hasDisposeAfter;
      -  /**
      -   * Do not call this method unless you need to inspect the
      -   * inner workings of the cache.  If anything returned by this
      -   * object is modified in any way, strange breakage may occur.
      -   *
      -   * These fields are private for a reason!
      -   *
      -   * @internal
      -   */
      -  static unsafeExposeInternals(c) {
      -    return {
      -      // properties
      -      starts: c.#starts,
      -      ttls: c.#ttls,
      -      sizes: c.#sizes,
      -      keyMap: c.#keyMap,
      -      keyList: c.#keyList,
      -      valList: c.#valList,
      -      next: c.#next,
      -      prev: c.#prev,
      -      get head() {
      -        return c.#head;
      -      },
      -      get tail() {
      -        return c.#tail;
      -      },
      -      free: c.#free,
      -      // methods
      -      isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
      -      backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),
      -      moveToTail: (index) => c.#moveToTail(index),
      -      indexes: (options) => c.#indexes(options),
      -      rindexes: (options) => c.#rindexes(options),
      -      isStale: (index) => c.#isStale(index)
      -    };
      -  }
      -  // Protected read-only members
      -  /**
      -   * {@link LRUCache.OptionsBase.max} (read-only)
      -   */
      -  get max() {
      -    return this.#max;
      -  }
      -  /**
      -   * {@link LRUCache.OptionsBase.maxSize} (read-only)
      -   */
      -  get maxSize() {
      -    return this.#maxSize;
      -  }
      -  /**
      -   * The total computed size of items in the cache (read-only)
      -   */
      -  get calculatedSize() {
      -    return this.#calculatedSize;
      -  }
      -  /**
      -   * The number of items stored in the cache (read-only)
      -   */
      -  get size() {
      -    return this.#size;
      -  }
      -  /**
      -   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
      -   */
      -  get fetchMethod() {
      -    return this.#fetchMethod;
      -  }
      -  /**
      -   * {@link LRUCache.OptionsBase.dispose} (read-only)
      -   */
      -  get dispose() {
      -    return this.#dispose;
      -  }
      -  /**
      -   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
      -   */
      -  get disposeAfter() {
      -    return this.#disposeAfter;
      -  }
      -  constructor(options) {
      -    const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options;
      -    if (max !== 0 && !isPosInt(max)) {
      -      throw new TypeError("max option must be a nonnegative integer");
      -    }
      -    const UintArray = max ? getUintArray(max) : Array;
      -    if (!UintArray) {
      -      throw new Error("invalid max value: " + max);
      -    }
      -    this.#max = max;
      -    this.#maxSize = maxSize;
      -    this.maxEntrySize = maxEntrySize || this.#maxSize;
      -    this.sizeCalculation = sizeCalculation;
      -    if (this.sizeCalculation) {
      -      if (!this.#maxSize && !this.maxEntrySize) {
      -        throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
      -      }
      -      if (typeof this.sizeCalculation !== "function") {
      -        throw new TypeError("sizeCalculation set to non-function");
      -      }
      -    }
      -    if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
      -      throw new TypeError("fetchMethod must be a function if specified");
      -    }
      -    this.#fetchMethod = fetchMethod;
      -    this.#hasFetchMethod = !!fetchMethod;
      -    this.#keyMap = /* @__PURE__ */ new Map();
      -    this.#keyList = new Array(max).fill(void 0);
      -    this.#valList = new Array(max).fill(void 0);
      -    this.#next = new UintArray(max);
      -    this.#prev = new UintArray(max);
      -    this.#head = 0;
      -    this.#tail = 0;
      -    this.#free = Stack.create(max);
      -    this.#size = 0;
      -    this.#calculatedSize = 0;
      -    if (typeof dispose === "function") {
      -      this.#dispose = dispose;
      -    }
      -    if (typeof disposeAfter === "function") {
      -      this.#disposeAfter = disposeAfter;
      -      this.#disposed = [];
      -    } else {
      -      this.#disposeAfter = void 0;
      -      this.#disposed = void 0;
      -    }
      -    this.#hasDispose = !!this.#dispose;
      -    this.#hasDisposeAfter = !!this.#disposeAfter;
      -    this.noDisposeOnSet = !!noDisposeOnSet;
      -    this.noUpdateTTL = !!noUpdateTTL;
      -    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
      -    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
      -    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
      -    this.ignoreFetchAbort = !!ignoreFetchAbort;
      -    if (this.maxEntrySize !== 0) {
      -      if (this.#maxSize !== 0) {
      -        if (!isPosInt(this.#maxSize)) {
      -          throw new TypeError("maxSize must be a positive integer if specified");
      -        }
      -      }
      -      if (!isPosInt(this.maxEntrySize)) {
      -        throw new TypeError("maxEntrySize must be a positive integer if specified");
      -      }
      -      this.#initializeSizeTracking();
      -    }
      -    this.allowStale = !!allowStale;
      -    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
      -    this.updateAgeOnGet = !!updateAgeOnGet;
      -    this.updateAgeOnHas = !!updateAgeOnHas;
      -    this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
      -    this.ttlAutopurge = !!ttlAutopurge;
      -    this.ttl = ttl || 0;
      -    if (this.ttl) {
      -      if (!isPosInt(this.ttl)) {
      -        throw new TypeError("ttl must be a positive integer if specified");
      -      }
      -      this.#initializeTTLTracking();
      -    }
      -    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
      -      throw new TypeError("At least one of max, maxSize, or ttl is required");
      -    }
      -    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
      -      const code = "LRU_CACHE_UNBOUNDED";
      -      if (shouldWarn(code)) {
      -        warned.add(code);
      -        const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
      -        emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
      -      }
      -    }
      -  }
      -  /**
      -   * Return the remaining TTL time for a given entry key
      -   */
      -  getRemainingTTL(key) {
      -    return this.#keyMap.has(key) ? Infinity : 0;
      -  }
      -  #initializeTTLTracking() {
      -    const ttls = new ZeroArray(this.#max);
      -    const starts = new ZeroArray(this.#max);
      -    this.#ttls = ttls;
      -    this.#starts = starts;
      -    this.#setItemTTL = (index, ttl, start = perf.now()) => {
      -      starts[index] = ttl !== 0 ? start : 0;
      -      ttls[index] = ttl;
      -      if (ttl !== 0 && this.ttlAutopurge) {
      -        const t = setTimeout(() => {
      -          if (this.#isStale(index)) {
      -            this.delete(this.#keyList[index]);
      -          }
      -        }, ttl + 1);
      -        if (t.unref) {
      -          t.unref();
      -        }
      -      }
      -    };
      -    this.#updateItemAge = (index) => {
      -      starts[index] = ttls[index] !== 0 ? perf.now() : 0;
      -    };
      -    this.#statusTTL = (status, index) => {
      -      if (ttls[index]) {
      -        const ttl = ttls[index];
      -        const start = starts[index];
      -        if (!ttl || !start)
      -          return;
      -        status.ttl = ttl;
      -        status.start = start;
      -        status.now = cachedNow || getNow();
      -        const age = status.now - start;
      -        status.remainingTTL = ttl - age;
      -      }
      -    };
      -    let cachedNow = 0;
      -    const getNow = () => {
      -      const n = perf.now();
      -      if (this.ttlResolution > 0) {
      -        cachedNow = n;
      -        const t = setTimeout(() => cachedNow = 0, this.ttlResolution);
      -        if (t.unref) {
      -          t.unref();
      -        }
      -      }
      -      return n;
      -    };
      -    this.getRemainingTTL = (key) => {
      -      const index = this.#keyMap.get(key);
      -      if (index === void 0) {
      -        return 0;
      -      }
      -      const ttl = ttls[index];
      -      const start = starts[index];
      -      if (!ttl || !start) {
      -        return Infinity;
      -      }
      -      const age = (cachedNow || getNow()) - start;
      -      return ttl - age;
      -    };
      -    this.#isStale = (index) => {
      -      const s = starts[index];
      -      const t = ttls[index];
      -      return !!t && !!s && (cachedNow || getNow()) - s > t;
      -    };
      -  }
      -  // conditionally set private methods related to TTL
      -  #updateItemAge = () => {
      -  };
      -  #statusTTL = () => {
      -  };
      -  #setItemTTL = () => {
      -  };
      -  /* c8 ignore stop */
      -  #isStale = () => false;
      -  #initializeSizeTracking() {
      -    const sizes = new ZeroArray(this.#max);
      -    this.#calculatedSize = 0;
      -    this.#sizes = sizes;
      -    this.#removeItemSize = (index) => {
      -      this.#calculatedSize -= sizes[index];
      -      sizes[index] = 0;
      -    };
      -    this.#requireSize = (k, v, size, sizeCalculation) => {
      -      if (this.#isBackgroundFetch(v)) {
      -        return 0;
      -      }
      -      if (!isPosInt(size)) {
      -        if (sizeCalculation) {
      -          if (typeof sizeCalculation !== "function") {
      -            throw new TypeError("sizeCalculation must be a function");
      -          }
      -          size = sizeCalculation(v, k);
      -          if (!isPosInt(size)) {
      -            throw new TypeError("sizeCalculation return invalid (expect positive integer)");
      -          }
      -        } else {
      -          throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
      -        }
      -      }
      -      return size;
      -    };
      -    this.#addItemSize = (index, size, status) => {
      -      sizes[index] = size;
      -      if (this.#maxSize) {
      -        const maxSize = this.#maxSize - sizes[index];
      -        while (this.#calculatedSize > maxSize) {
      -          this.#evict(true);
      -        }
      -      }
      -      this.#calculatedSize += sizes[index];
      -      if (status) {
      -        status.entrySize = size;
      -        status.totalCalculatedSize = this.#calculatedSize;
      -      }
      -    };
      -  }
      -  #removeItemSize = (_i) => {
      -  };
      -  #addItemSize = (_i, _s, _st) => {
      -  };
      -  #requireSize = (_k, _v, size, sizeCalculation) => {
      -    if (size || sizeCalculation) {
      -      throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
      -    }
      -    return 0;
      -  };
      -  *#indexes({ allowStale = this.allowStale } = {}) {
      -    if (this.#size) {
      -      for (let i = this.#tail; true; ) {
      -        if (!this.#isValidIndex(i)) {
      -          break;
      -        }
      -        if (allowStale || !this.#isStale(i)) {
      -          yield i;
      -        }
      -        if (i === this.#head) {
      -          break;
      -        } else {
      -          i = this.#prev[i];
      -        }
      -      }
      -    }
      -  }
      -  *#rindexes({ allowStale = this.allowStale } = {}) {
      -    if (this.#size) {
      -      for (let i = this.#head; true; ) {
      -        if (!this.#isValidIndex(i)) {
      -          break;
      -        }
      -        if (allowStale || !this.#isStale(i)) {
      -          yield i;
      -        }
      -        if (i === this.#tail) {
      -          break;
      -        } else {
      -          i = this.#next[i];
      -        }
      -      }
      -    }
      -  }
      -  #isValidIndex(index) {
      -    return index !== void 0 && this.#keyMap.get(this.#keyList[index]) === index;
      -  }
      -  /**
      -   * Return a generator yielding `[key, value]` pairs,
      -   * in order from most recently used to least recently used.
      -   */
      -  *entries() {
      -    for (const i of this.#indexes()) {
      -      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield [this.#keyList[i], this.#valList[i]];
      -      }
      -    }
      -  }
      -  /**
      -   * Inverse order version of {@link LRUCache.entries}
      -   *
      -   * Return a generator yielding `[key, value]` pairs,
      -   * in order from least recently used to most recently used.
      -   */
      -  *rentries() {
      -    for (const i of this.#rindexes()) {
      -      if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield [this.#keyList[i], this.#valList[i]];
      -      }
      -    }
      -  }
      -  /**
      -   * Return a generator yielding the keys in the cache,
      -   * in order from most recently used to least recently used.
      -   */
      -  *keys() {
      -    for (const i of this.#indexes()) {
      -      const k = this.#keyList[i];
      -      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield k;
      -      }
      -    }
      -  }
      -  /**
      -   * Inverse order version of {@link LRUCache.keys}
      -   *
      -   * Return a generator yielding the keys in the cache,
      -   * in order from least recently used to most recently used.
      -   */
      -  *rkeys() {
      -    for (const i of this.#rindexes()) {
      -      const k = this.#keyList[i];
      -      if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield k;
      -      }
      -    }
      -  }
      -  /**
      -   * Return a generator yielding the values in the cache,
      -   * in order from most recently used to least recently used.
      -   */
      -  *values() {
      -    for (const i of this.#indexes()) {
      -      const v = this.#valList[i];
      -      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield this.#valList[i];
      -      }
      -    }
      -  }
      -  /**
      -   * Inverse order version of {@link LRUCache.values}
      -   *
      -   * Return a generator yielding the values in the cache,
      -   * in order from least recently used to most recently used.
      -   */
      -  *rvalues() {
      -    for (const i of this.#rindexes()) {
      -      const v = this.#valList[i];
      -      if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) {
      -        yield this.#valList[i];
      -      }
      -    }
      -  }
      -  /**
      -   * Iterating over the cache itself yields the same results as
      -   * {@link LRUCache.entries}
      -   */
      -  [Symbol.iterator]() {
      -    return this.entries();
      -  }
      -  /**
      -   * A String value that is used in the creation of the default string description of an object.
      -   * Called by the built-in method Object.prototype.toString.
      -   */
      -  [Symbol.toStringTag] = "LRUCache";
      -  /**
      -   * Find a value for which the supplied fn method returns a truthy value,
      -   * similar to Array.find().  fn is called as fn(value, key, cache).
      -   */
      -  find(fn, getOptions = {}) {
      -    for (const i of this.#indexes()) {
      -      const v = this.#valList[i];
      -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -      if (value === void 0)
      -        continue;
      -      if (fn(value, this.#keyList[i], this)) {
      -        return this.get(this.#keyList[i], getOptions);
      -      }
      -    }
      -  }
      -  /**
      -   * Call the supplied function on each item in the cache, in order from
      -   * most recently used to least recently used.  fn is called as
      -   * fn(value, key, cache).  Does not update age or recenty of use.
      -   * Does not iterate over stale values.
      -   */
      -  forEach(fn, thisp = this) {
      -    for (const i of this.#indexes()) {
      -      const v = this.#valList[i];
      -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -      if (value === void 0)
      -        continue;
      -      fn.call(thisp, value, this.#keyList[i], this);
      -    }
      -  }
      -  /**
      -   * The same as {@link LRUCache.forEach} but items are iterated over in
      -   * reverse order.  (ie, less recently used items are iterated over first.)
      -   */
      -  rforEach(fn, thisp = this) {
      -    for (const i of this.#rindexes()) {
      -      const v = this.#valList[i];
      -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -      if (value === void 0)
      -        continue;
      -      fn.call(thisp, value, this.#keyList[i], this);
      -    }
      -  }
      -  /**
      -   * Delete any stale entries. Returns true if anything was removed,
      -   * false otherwise.
      -   */
      -  purgeStale() {
      -    let deleted = false;
      -    for (const i of this.#rindexes({ allowStale: true })) {
      -      if (this.#isStale(i)) {
      -        this.delete(this.#keyList[i]);
      -        deleted = true;
      -      }
      -    }
      -    return deleted;
      -  }
      -  /**
      -   * Get the extended info about a given entry, to get its value, size, and
      -   * TTL info simultaneously. Like {@link LRUCache#dump}, but just for a
      -   * single key. Always returns stale values, if their info is found in the
      -   * cache, so be sure to check for expired TTLs if relevant.
      -   */
      -  info(key) {
      -    const i = this.#keyMap.get(key);
      -    if (i === void 0)
      -      return void 0;
      -    const v = this.#valList[i];
      -    const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -    if (value === void 0)
      -      return void 0;
      -    const entry2 = { value };
      -    if (this.#ttls && this.#starts) {
      -      const ttl = this.#ttls[i];
      -      const start = this.#starts[i];
      -      if (ttl && start) {
      -        const remain = ttl - (perf.now() - start);
      -        entry2.ttl = remain;
      -        entry2.start = Date.now();
      -      }
      -    }
      -    if (this.#sizes) {
      -      entry2.size = this.#sizes[i];
      -    }
      -    return entry2;
      -  }
      -  /**
      -   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
      -   * passed to cache.load()
      -   */
      -  dump() {
      -    const arr = [];
      -    for (const i of this.#indexes({ allowStale: true })) {
      -      const key = this.#keyList[i];
      -      const v = this.#valList[i];
      -      const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -      if (value === void 0 || key === void 0)
      -        continue;
      -      const entry2 = { value };
      -      if (this.#ttls && this.#starts) {
      -        entry2.ttl = this.#ttls[i];
      -        const age = perf.now() - this.#starts[i];
      -        entry2.start = Math.floor(Date.now() - age);
      -      }
      -      if (this.#sizes) {
      -        entry2.size = this.#sizes[i];
      -      }
      -      arr.unshift([key, entry2]);
      -    }
      -    return arr;
      -  }
      -  /**
      -   * Reset the cache and load in the items in entries in the order listed.
      -   * Note that the shape of the resulting cache may be different if the
      -   * same options are not used in both caches.
      -   */
      -  load(arr) {
      -    this.clear();
      -    for (const [key, entry2] of arr) {
      -      if (entry2.start) {
      -        const age = Date.now() - entry2.start;
      -        entry2.start = perf.now() - age;
      -      }
      -      this.set(key, entry2.value, entry2);
      -    }
      -  }
      -  /**
      -   * Add a value to the cache.
      -   *
      -   * Note: if `undefined` is specified as a value, this is an alias for
      -   * {@link LRUCache#delete}
      -   */
      -  set(k, v, setOptions = {}) {
      -    if (v === void 0) {
      -      this.delete(k);
      -      return this;
      -    }
      -    const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions;
      -    let { noUpdateTTL = this.noUpdateTTL } = setOptions;
      -    const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
      -    if (this.maxEntrySize && size > this.maxEntrySize) {
      -      if (status) {
      -        status.set = "miss";
      -        status.maxEntrySizeExceeded = true;
      -      }
      -      this.delete(k);
      -      return this;
      -    }
      -    let index = this.#size === 0 ? void 0 : this.#keyMap.get(k);
      -    if (index === void 0) {
      -      index = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size;
      -      this.#keyList[index] = k;
      -      this.#valList[index] = v;
      -      this.#keyMap.set(k, index);
      -      this.#next[this.#tail] = index;
      -      this.#prev[index] = this.#tail;
      -      this.#tail = index;
      -      this.#size++;
      -      this.#addItemSize(index, size, status);
      -      if (status)
      -        status.set = "add";
      -      noUpdateTTL = false;
      -    } else {
      -      this.#moveToTail(index);
      -      const oldVal = this.#valList[index];
      -      if (v !== oldVal) {
      -        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
      -          oldVal.__abortController.abort(new Error("replaced"));
      -          const { __staleWhileFetching: s } = oldVal;
      -          if (s !== void 0 && !noDisposeOnSet) {
      -            if (this.#hasDispose) {
      -              this.#dispose?.(s, k, "set");
      -            }
      -            if (this.#hasDisposeAfter) {
      -              this.#disposed?.push([s, k, "set"]);
      -            }
      -          }
      -        } else if (!noDisposeOnSet) {
      -          if (this.#hasDispose) {
      -            this.#dispose?.(oldVal, k, "set");
      -          }
      -          if (this.#hasDisposeAfter) {
      -            this.#disposed?.push([oldVal, k, "set"]);
      -          }
      -        }
      -        this.#removeItemSize(index);
      -        this.#addItemSize(index, size, status);
      -        this.#valList[index] = v;
      -        if (status) {
      -          status.set = "replace";
      -          const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal;
      -          if (oldValue !== void 0)
      -            status.oldValue = oldValue;
      -        }
      -      } else if (status) {
      -        status.set = "update";
      -      }
      -    }
      -    if (ttl !== 0 && !this.#ttls) {
      -      this.#initializeTTLTracking();
      -    }
      -    if (this.#ttls) {
      -      if (!noUpdateTTL) {
      -        this.#setItemTTL(index, ttl, start);
      -      }
      -      if (status)
      -        this.#statusTTL(status, index);
      -    }
      -    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
      -      const dt = this.#disposed;
      -      let task;
      -      while (task = dt?.shift()) {
      -        this.#disposeAfter?.(...task);
      -      }
      -    }
      -    return this;
      -  }
      -  /**
      -   * Evict the least recently used item, returning its value or
      -   * `undefined` if cache is empty.
      -   */
      -  pop() {
      -    try {
      -      while (this.#size) {
      -        const val = this.#valList[this.#head];
      -        this.#evict(true);
      -        if (this.#isBackgroundFetch(val)) {
      -          if (val.__staleWhileFetching) {
      -            return val.__staleWhileFetching;
      -          }
      -        } else if (val !== void 0) {
      -          return val;
      -        }
      -      }
      -    } finally {
      -      if (this.#hasDisposeAfter && this.#disposed) {
      -        const dt = this.#disposed;
      -        let task;
      -        while (task = dt?.shift()) {
      -          this.#disposeAfter?.(...task);
      -        }
      -      }
      -    }
      -  }
      -  #evict(free) {
      -    const head = this.#head;
      -    const k = this.#keyList[head];
      -    const v = this.#valList[head];
      -    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
      -      v.__abortController.abort(new Error("evicted"));
      -    } else if (this.#hasDispose || this.#hasDisposeAfter) {
      -      if (this.#hasDispose) {
      -        this.#dispose?.(v, k, "evict");
      -      }
      -      if (this.#hasDisposeAfter) {
      -        this.#disposed?.push([v, k, "evict"]);
      -      }
      -    }
      -    this.#removeItemSize(head);
      -    if (free) {
      -      this.#keyList[head] = void 0;
      -      this.#valList[head] = void 0;
      -      this.#free.push(head);
      -    }
      -    if (this.#size === 1) {
      -      this.#head = this.#tail = 0;
      -      this.#free.length = 0;
      -    } else {
      -      this.#head = this.#next[head];
      -    }
      -    this.#keyMap.delete(k);
      -    this.#size--;
      -    return head;
      -  }
      -  /**
      -   * Check if a key is in the cache, without updating the recency of use.
      -   * Will return false if the item is stale, even though it is technically
      -   * in the cache.
      -   *
      -   * Will not update item age unless
      -   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
      -   */
      -  has(k, hasOptions = {}) {
      -    const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
      -    const index = this.#keyMap.get(k);
      -    if (index !== void 0) {
      -      const v = this.#valList[index];
      -      if (this.#isBackgroundFetch(v) && v.__staleWhileFetching === void 0) {
      -        return false;
      -      }
      -      if (!this.#isStale(index)) {
      -        if (updateAgeOnHas) {
      -          this.#updateItemAge(index);
      -        }
      -        if (status) {
      -          status.has = "hit";
      -          this.#statusTTL(status, index);
      -        }
      -        return true;
      -      } else if (status) {
      -        status.has = "stale";
      -        this.#statusTTL(status, index);
      -      }
      -    } else if (status) {
      -      status.has = "miss";
      -    }
      -    return false;
      -  }
      -  /**
      -   * Like {@link LRUCache#get} but doesn't update recency or delete stale
      -   * items.
      -   *
      -   * Returns `undefined` if the item is stale, unless
      -   * {@link LRUCache.OptionsBase.allowStale} is set.
      -   */
      -  peek(k, peekOptions = {}) {
      -    const { allowStale = this.allowStale } = peekOptions;
      -    const index = this.#keyMap.get(k);
      -    if (index === void 0 || !allowStale && this.#isStale(index)) {
      -      return;
      -    }
      -    const v = this.#valList[index];
      -    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
      -  }
      -  #backgroundFetch(k, index, options, context) {
      -    const v = index === void 0 ? void 0 : this.#valList[index];
      -    if (this.#isBackgroundFetch(v)) {
      -      return v;
      -    }
      -    const ac = new AC();
      -    const { signal } = options;
      -    signal?.addEventListener("abort", () => ac.abort(signal.reason), {
      -      signal: ac.signal
      -    });
      -    const fetchOpts = {
      -      signal: ac.signal,
      -      options,
      -      context
      -    };
      -    const cb = (v2, updateCache = false) => {
      -      const { aborted } = ac.signal;
      -      const ignoreAbort = options.ignoreFetchAbort && v2 !== void 0;
      -      if (options.status) {
      -        if (aborted && !updateCache) {
      -          options.status.fetchAborted = true;
      -          options.status.fetchError = ac.signal.reason;
      -          if (ignoreAbort)
      -            options.status.fetchAbortIgnored = true;
      -        } else {
      -          options.status.fetchResolved = true;
      -        }
      -      }
      -      if (aborted && !ignoreAbort && !updateCache) {
      -        return fetchFail(ac.signal.reason);
      -      }
      -      const bf2 = p;
      -      if (this.#valList[index] === p) {
      -        if (v2 === void 0) {
      -          if (bf2.__staleWhileFetching) {
      -            this.#valList[index] = bf2.__staleWhileFetching;
      -          } else {
      -            this.delete(k);
      -          }
      -        } else {
      -          if (options.status)
      -            options.status.fetchUpdated = true;
      -          this.set(k, v2, fetchOpts.options);
      -        }
      -      }
      -      return v2;
      -    };
      -    const eb = (er) => {
      -      if (options.status) {
      -        options.status.fetchRejected = true;
      -        options.status.fetchError = er;
      -      }
      -      return fetchFail(er);
      -    };
      -    const fetchFail = (er) => {
      -      const { aborted } = ac.signal;
      -      const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
      -      const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
      -      const noDelete = allowStale || options.noDeleteOnFetchRejection;
      -      const bf2 = p;
      -      if (this.#valList[index] === p) {
      -        const del = !noDelete || bf2.__staleWhileFetching === void 0;
      -        if (del) {
      -          this.delete(k);
      -        } else if (!allowStaleAborted) {
      -          this.#valList[index] = bf2.__staleWhileFetching;
      -        }
      -      }
      -      if (allowStale) {
      -        if (options.status && bf2.__staleWhileFetching !== void 0) {
      -          options.status.returnedStale = true;
      -        }
      -        return bf2.__staleWhileFetching;
      -      } else if (bf2.__returned === bf2) {
      -        throw er;
      -      }
      -    };
      -    const pcall = (res, rej) => {
      -      const fmp = this.#fetchMethod?.(k, v, fetchOpts);
      -      if (fmp && fmp instanceof Promise) {
      -        fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej);
      -      }
      -      ac.signal.addEventListener("abort", () => {
      -        if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {
      -          res(void 0);
      -          if (options.allowStaleOnFetchAbort) {
      -            res = (v2) => cb(v2, true);
      -          }
      -        }
      -      });
      -    };
      -    if (options.status)
      -      options.status.fetchDispatched = true;
      -    const p = new Promise(pcall).then(cb, eb);
      -    const bf = Object.assign(p, {
      -      __abortController: ac,
      -      __staleWhileFetching: v,
      -      __returned: void 0
      -    });
      -    if (index === void 0) {
      -      this.set(k, bf, { ...fetchOpts.options, status: void 0 });
      -      index = this.#keyMap.get(k);
      -    } else {
      -      this.#valList[index] = bf;
      -    }
      -    return bf;
      -  }
      -  #isBackgroundFetch(p) {
      -    if (!this.#hasFetchMethod)
      -      return false;
      -    const b = p;
      -    return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC;
      -  }
      -  async fetch(k, fetchOptions = {}) {
      -    const {
      -      // get options
      -      allowStale = this.allowStale,
      -      updateAgeOnGet = this.updateAgeOnGet,
      -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
      -      // set options
      -      ttl = this.ttl,
      -      noDisposeOnSet = this.noDisposeOnSet,
      -      size = 0,
      -      sizeCalculation = this.sizeCalculation,
      -      noUpdateTTL = this.noUpdateTTL,
      -      // fetch exclusive options
      -      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
      -      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
      -      ignoreFetchAbort = this.ignoreFetchAbort,
      -      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
      -      context,
      -      forceRefresh = false,
      -      status,
      -      signal
      -    } = fetchOptions;
      -    if (!this.#hasFetchMethod) {
      -      if (status)
      -        status.fetch = "get";
      -      return this.get(k, {
      -        allowStale,
      -        updateAgeOnGet,
      -        noDeleteOnStaleGet,
      -        status
      -      });
      -    }
      -    const options = {
      -      allowStale,
      -      updateAgeOnGet,
      -      noDeleteOnStaleGet,
      -      ttl,
      -      noDisposeOnSet,
      -      size,
      -      sizeCalculation,
      -      noUpdateTTL,
      -      noDeleteOnFetchRejection,
      -      allowStaleOnFetchRejection,
      -      allowStaleOnFetchAbort,
      -      ignoreFetchAbort,
      -      status,
      -      signal
      -    };
      -    let index = this.#keyMap.get(k);
      -    if (index === void 0) {
      -      if (status)
      -        status.fetch = "miss";
      -      const p = this.#backgroundFetch(k, index, options, context);
      -      return p.__returned = p;
      -    } else {
      -      const v = this.#valList[index];
      -      if (this.#isBackgroundFetch(v)) {
      -        const stale = allowStale && v.__staleWhileFetching !== void 0;
      -        if (status) {
      -          status.fetch = "inflight";
      -          if (stale)
      -            status.returnedStale = true;
      -        }
      -        return stale ? v.__staleWhileFetching : v.__returned = v;
      -      }
      -      const isStale = this.#isStale(index);
      -      if (!forceRefresh && !isStale) {
      -        if (status)
      -          status.fetch = "hit";
      -        this.#moveToTail(index);
      -        if (updateAgeOnGet) {
      -          this.#updateItemAge(index);
      -        }
      -        if (status)
      -          this.#statusTTL(status, index);
      -        return v;
      -      }
      -      const p = this.#backgroundFetch(k, index, options, context);
      -      const hasStale = p.__staleWhileFetching !== void 0;
      -      const staleVal = hasStale && allowStale;
      -      if (status) {
      -        status.fetch = isStale ? "stale" : "refresh";
      -        if (staleVal && isStale)
      -          status.returnedStale = true;
      -      }
      -      return staleVal ? p.__staleWhileFetching : p.__returned = p;
      -    }
      -  }
      -  /**
      -   * Return a value from the cache. Will update the recency of the cache
      -   * entry found.
      -   *
      -   * If the key is not found, get() will return `undefined`.
      -   */
      -  get(k, getOptions = {}) {
      -    const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions;
      -    const index = this.#keyMap.get(k);
      -    if (index !== void 0) {
      -      const value = this.#valList[index];
      -      const fetching = this.#isBackgroundFetch(value);
      -      if (status)
      -        this.#statusTTL(status, index);
      -      if (this.#isStale(index)) {
      -        if (status)
      -          status.get = "stale";
      -        if (!fetching) {
      -          if (!noDeleteOnStaleGet) {
      -            this.delete(k);
      -          }
      -          if (status && allowStale)
      -            status.returnedStale = true;
      -          return allowStale ? value : void 0;
      -        } else {
      -          if (status && allowStale && value.__staleWhileFetching !== void 0) {
      -            status.returnedStale = true;
      -          }
      -          return allowStale ? value.__staleWhileFetching : void 0;
      -        }
      -      } else {
      -        if (status)
      -          status.get = "hit";
      -        if (fetching) {
      -          return value.__staleWhileFetching;
      -        }
      -        this.#moveToTail(index);
      -        if (updateAgeOnGet) {
      -          this.#updateItemAge(index);
      -        }
      -        return value;
      -      }
      -    } else if (status) {
      -      status.get = "miss";
      -    }
      -  }
      -  #connect(p, n) {
      -    this.#prev[n] = p;
      -    this.#next[p] = n;
      -  }
      -  #moveToTail(index) {
      -    if (index !== this.#tail) {
      -      if (index === this.#head) {
      -        this.#head = this.#next[index];
      -      } else {
      -        this.#connect(this.#prev[index], this.#next[index]);
      -      }
      -      this.#connect(this.#tail, index);
      -      this.#tail = index;
      -    }
      -  }
      -  /**
      -   * Deletes a key out of the cache.
      -   * Returns true if the key was deleted, false otherwise.
      -   */
      -  delete(k) {
      -    let deleted = false;
      -    if (this.#size !== 0) {
      -      const index = this.#keyMap.get(k);
      -      if (index !== void 0) {
      -        deleted = true;
      -        if (this.#size === 1) {
      -          this.clear();
      -        } else {
      -          this.#removeItemSize(index);
      -          const v = this.#valList[index];
      -          if (this.#isBackgroundFetch(v)) {
      -            v.__abortController.abort(new Error("deleted"));
      -          } else if (this.#hasDispose || this.#hasDisposeAfter) {
      -            if (this.#hasDispose) {
      -              this.#dispose?.(v, k, "delete");
      -            }
      -            if (this.#hasDisposeAfter) {
      -              this.#disposed?.push([v, k, "delete"]);
      -            }
      -          }
      -          this.#keyMap.delete(k);
      -          this.#keyList[index] = void 0;
      -          this.#valList[index] = void 0;
      -          if (index === this.#tail) {
      -            this.#tail = this.#prev[index];
      -          } else if (index === this.#head) {
      -            this.#head = this.#next[index];
      -          } else {
      -            const pi = this.#prev[index];
      -            this.#next[pi] = this.#next[index];
      -            const ni = this.#next[index];
      -            this.#prev[ni] = this.#prev[index];
      -          }
      -          this.#size--;
      -          this.#free.push(index);
      -        }
      -      }
      -    }
      -    if (this.#hasDisposeAfter && this.#disposed?.length) {
      -      const dt = this.#disposed;
      -      let task;
      -      while (task = dt?.shift()) {
      -        this.#disposeAfter?.(...task);
      -      }
      -    }
      -    return deleted;
      -  }
      -  /**
      -   * Clear the cache entirely, throwing away all values.
      -   */
      -  clear() {
      -    for (const index of this.#rindexes({ allowStale: true })) {
      -      const v = this.#valList[index];
      -      if (this.#isBackgroundFetch(v)) {
      -        v.__abortController.abort(new Error("deleted"));
      -      } else {
      -        const k = this.#keyList[index];
      -        if (this.#hasDispose) {
      -          this.#dispose?.(v, k, "delete");
      -        }
      -        if (this.#hasDisposeAfter) {
      -          this.#disposed?.push([v, k, "delete"]);
      -        }
      -      }
      -    }
      -    this.#keyMap.clear();
      -    this.#valList.fill(void 0);
      -    this.#keyList.fill(void 0);
      -    if (this.#ttls && this.#starts) {
      -      this.#ttls.fill(0);
      -      this.#starts.fill(0);
      -    }
      -    if (this.#sizes) {
      -      this.#sizes.fill(0);
      -    }
      -    this.#head = 0;
      -    this.#tail = 0;
      -    this.#free.length = 0;
      -    this.#calculatedSize = 0;
      -    this.#size = 0;
      -    if (this.#hasDisposeAfter && this.#disposed) {
      -      const dt = this.#disposed;
      -      let task;
      -      while (task = dt?.shift()) {
      -        this.#disposeAfter?.(...task);
      -      }
      -    }
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
      -var import_path = require("path");
      -var import_url = require("url");
      -var actualFS = __toESM(require("fs"), 1);
      -var import_fs = require("fs");
      -var import_promises = require("fs/promises");
      -
      -// ../../node_modules/.pnpm/minipass@7.0.4/node_modules/minipass/dist/esm/index.js
      -var import_events = require("events");
      -var import_stream = __toESM(require("stream"), 1);
      -var import_string_decoder = require("string_decoder");
      -var proc = typeof process === "object" && process ? process : {
      -  stdout: null,
      -  stderr: null
      -};
      -var isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof import_stream.default || isReadable(s) || isWritable(s));
      -var isReadable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
      -s.pipe !== import_stream.default.Writable.prototype.pipe;
      -var isWritable = (s) => !!s && typeof s === "object" && s instanceof import_events.EventEmitter && typeof s.write === "function" && typeof s.end === "function";
      -var EOF = Symbol("EOF");
      -var MAYBE_EMIT_END = Symbol("maybeEmitEnd");
      -var EMITTED_END = Symbol("emittedEnd");
      -var EMITTING_END = Symbol("emittingEnd");
      -var EMITTED_ERROR = Symbol("emittedError");
      -var CLOSED = Symbol("closed");
      -var READ = Symbol("read");
      -var FLUSH = Symbol("flush");
      -var FLUSHCHUNK = Symbol("flushChunk");
      -var ENCODING = Symbol("encoding");
      -var DECODER = Symbol("decoder");
      -var FLOWING = Symbol("flowing");
      -var PAUSED = Symbol("paused");
      -var RESUME = Symbol("resume");
      -var BUFFER = Symbol("buffer");
      -var PIPES = Symbol("pipes");
      -var BUFFERLENGTH = Symbol("bufferLength");
      -var BUFFERPUSH = Symbol("bufferPush");
      -var BUFFERSHIFT = Symbol("bufferShift");
      -var OBJECTMODE = Symbol("objectMode");
      -var DESTROYED = Symbol("destroyed");
      -var ERROR = Symbol("error");
      -var EMITDATA = Symbol("emitData");
      -var EMITEND = Symbol("emitEnd");
      -var EMITEND2 = Symbol("emitEnd2");
      -var ASYNC = Symbol("async");
      -var ABORT = Symbol("abort");
      -var ABORTED = Symbol("aborted");
      -var SIGNAL = Symbol("signal");
      -var DATALISTENERS = Symbol("dataListeners");
      -var DISCARDED = Symbol("discarded");
      -var defer = (fn) => Promise.resolve().then(fn);
      -var nodefer = (fn) => fn();
      -var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
      -var isArrayBufferLike = (b) => b instanceof ArrayBuffer || !!b && typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
      -var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
      -var Pipe = class {
      -  src;
      -  dest;
      -  opts;
      -  ondrain;
      -  constructor(src, dest, opts) {
      -    this.src = src;
      -    this.dest = dest;
      -    this.opts = opts;
      -    this.ondrain = () => src[RESUME]();
      -    this.dest.on("drain", this.ondrain);
      -  }
      -  unpipe() {
      -    this.dest.removeListener("drain", this.ondrain);
      -  }
      -  // only here for the prototype
      -  /* c8 ignore start */
      -  proxyErrors(_er) {
      -  }
      -  /* c8 ignore stop */
      -  end() {
      -    this.unpipe();
      -    if (this.opts.end)
      -      this.dest.end();
      -  }
      -};
      -var PipeProxyErrors = class extends Pipe {
      -  unpipe() {
      -    this.src.removeListener("error", this.proxyErrors);
      -    super.unpipe();
      -  }
      -  constructor(src, dest, opts) {
      -    super(src, dest, opts);
      -    this.proxyErrors = (er) => dest.emit("error", er);
      -    src.on("error", this.proxyErrors);
      -  }
      -};
      -var isObjectModeOptions = (o) => !!o.objectMode;
      -var isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== "buffer";
      -var Minipass = class extends import_events.EventEmitter {
      -  [FLOWING] = false;
      -  [PAUSED] = false;
      -  [PIPES] = [];
      -  [BUFFER] = [];
      -  [OBJECTMODE];
      -  [ENCODING];
      -  [ASYNC];
      -  [DECODER];
      -  [EOF] = false;
      -  [EMITTED_END] = false;
      -  [EMITTING_END] = false;
      -  [CLOSED] = false;
      -  [EMITTED_ERROR] = null;
      -  [BUFFERLENGTH] = 0;
      -  [DESTROYED] = false;
      -  [SIGNAL];
      -  [ABORTED] = false;
      -  [DATALISTENERS] = 0;
      -  [DISCARDED] = false;
      -  /**
      -   * true if the stream can be written
      -   */
      -  writable = true;
      -  /**
      -   * true if the stream can be read
      -   */
      -  readable = true;
      -  /**
      -   * If `RType` is Buffer, then options do not need to be provided.
      -   * Otherwise, an options object must be provided to specify either
      -   * {@link Minipass.SharedOptions.objectMode} or
      -   * {@link Minipass.SharedOptions.encoding}, as appropriate.
      -   */
      -  constructor(...args) {
      -    const options = args[0] || {};
      -    super();
      -    if (options.objectMode && typeof options.encoding === "string") {
      -      throw new TypeError("Encoding and objectMode may not be used together");
      -    }
      -    if (isObjectModeOptions(options)) {
      -      this[OBJECTMODE] = true;
      -      this[ENCODING] = null;
      -    } else if (isEncodingOptions(options)) {
      -      this[ENCODING] = options.encoding;
      -      this[OBJECTMODE] = false;
      -    } else {
      -      this[OBJECTMODE] = false;
      -      this[ENCODING] = null;
      -    }
      -    this[ASYNC] = !!options.async;
      -    this[DECODER] = this[ENCODING] ? new import_string_decoder.StringDecoder(this[ENCODING]) : null;
      -    if (options && options.debugExposeBuffer === true) {
      -      Object.defineProperty(this, "buffer", { get: () => this[BUFFER] });
      -    }
      -    if (options && options.debugExposePipes === true) {
      -      Object.defineProperty(this, "pipes", { get: () => this[PIPES] });
      -    }
      -    const { signal } = options;
      -    if (signal) {
      -      this[SIGNAL] = signal;
      -      if (signal.aborted) {
      -        this[ABORT]();
      -      } else {
      -        signal.addEventListener("abort", () => this[ABORT]());
      -      }
      -    }
      -  }
      -  /**
      -   * The amount of data stored in the buffer waiting to be read.
      -   *
      -   * For Buffer strings, this will be the total byte length.
      -   * For string encoding streams, this will be the string character length,
      -   * according to JavaScript's `string.length` logic.
      -   * For objectMode streams, this is a count of the items waiting to be
      -   * emitted.
      -   */
      -  get bufferLength() {
      -    return this[BUFFERLENGTH];
      -  }
      -  /**
      -   * The `BufferEncoding` currently in use, or `null`
      -   */
      -  get encoding() {
      -    return this[ENCODING];
      -  }
      -  /**
      -   * @deprecated - This is a read only property
      -   */
      -  set encoding(_enc) {
      -    throw new Error("Encoding must be set at instantiation time");
      -  }
      -  /**
      -   * @deprecated - Encoding may only be set at instantiation time
      -   */
      -  setEncoding(_enc) {
      -    throw new Error("Encoding must be set at instantiation time");
      -  }
      -  /**
      -   * True if this is an objectMode stream
      -   */
      -  get objectMode() {
      -    return this[OBJECTMODE];
      -  }
      -  /**
      -   * @deprecated - This is a read-only property
      -   */
      -  set objectMode(_om) {
      -    throw new Error("objectMode must be set at instantiation time");
      -  }
      -  /**
      -   * true if this is an async stream
      -   */
      -  get ["async"]() {
      -    return this[ASYNC];
      -  }
      -  /**
      -   * Set to true to make this stream async.
      -   *
      -   * Once set, it cannot be unset, as this would potentially cause incorrect
      -   * behavior.  Ie, a sync stream can be made async, but an async stream
      -   * cannot be safely made sync.
      -   */
      -  set ["async"](a) {
      -    this[ASYNC] = this[ASYNC] || !!a;
      -  }
      -  // drop everything and get out of the flow completely
      -  [ABORT]() {
      -    this[ABORTED] = true;
      -    this.emit("abort", this[SIGNAL]?.reason);
      -    this.destroy(this[SIGNAL]?.reason);
      -  }
      -  /**
      -   * True if the stream has been aborted.
      -   */
      -  get aborted() {
      -    return this[ABORTED];
      -  }
      -  /**
      -   * No-op setter. Stream aborted status is set via the AbortSignal provided
      -   * in the constructor options.
      -   */
      -  set aborted(_) {
      -  }
      -  write(chunk, encoding, cb) {
      -    if (this[ABORTED])
      -      return false;
      -    if (this[EOF])
      -      throw new Error("write after end");
      -    if (this[DESTROYED]) {
      -      this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" }));
      -      return true;
      -    }
      -    if (typeof encoding === "function") {
      -      cb = encoding;
      -      encoding = "utf8";
      -    }
      -    if (!encoding)
      -      encoding = "utf8";
      -    const fn = this[ASYNC] ? defer : nodefer;
      -    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
      -      if (isArrayBufferView(chunk)) {
      -        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
      -      } else if (isArrayBufferLike(chunk)) {
      -        chunk = Buffer.from(chunk);
      -      } else if (typeof chunk !== "string") {
      -        throw new Error("Non-contiguous data written to non-objectMode stream");
      -      }
      -    }
      -    if (this[OBJECTMODE]) {
      -      if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
      -        this[FLUSH](true);
      -      if (this[FLOWING])
      -        this.emit("data", chunk);
      -      else
      -        this[BUFFERPUSH](chunk);
      -      if (this[BUFFERLENGTH] !== 0)
      -        this.emit("readable");
      -      if (cb)
      -        fn(cb);
      -      return this[FLOWING];
      -    }
      -    if (!chunk.length) {
      -      if (this[BUFFERLENGTH] !== 0)
      -        this.emit("readable");
      -      if (cb)
      -        fn(cb);
      -      return this[FLOWING];
      -    }
      -    if (typeof chunk === "string" && // unless it is a string already ready for us to use
      -    !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
      -      chunk = Buffer.from(chunk, encoding);
      -    }
      -    if (Buffer.isBuffer(chunk) && this[ENCODING]) {
      -      chunk = this[DECODER].write(chunk);
      -    }
      -    if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
      -      this[FLUSH](true);
      -    if (this[FLOWING])
      -      this.emit("data", chunk);
      -    else
      -      this[BUFFERPUSH](chunk);
      -    if (this[BUFFERLENGTH] !== 0)
      -      this.emit("readable");
      -    if (cb)
      -      fn(cb);
      -    return this[FLOWING];
      -  }
      -  /**
      -   * Low-level explicit read method.
      -   *
      -   * In objectMode, the argument is ignored, and one item is returned if
      -   * available.
      -   *
      -   * `n` is the number of bytes (or in the case of encoding streams,
      -   * characters) to consume. If `n` is not provided, then the entire buffer
      -   * is returned, or `null` is returned if no data is available.
      -   *
      -   * If `n` is greater that the amount of data in the internal buffer,
      -   * then `null` is returned.
      -   */
      -  read(n) {
      -    if (this[DESTROYED])
      -      return null;
      -    this[DISCARDED] = false;
      -    if (this[BUFFERLENGTH] === 0 || n === 0 || n && n > this[BUFFERLENGTH]) {
      -      this[MAYBE_EMIT_END]();
      -      return null;
      -    }
      -    if (this[OBJECTMODE])
      -      n = null;
      -    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
      -      this[BUFFER] = [
      -        this[ENCODING] ? this[BUFFER].join("") : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])
      -      ];
      -    }
      -    const ret = this[READ](n || null, this[BUFFER][0]);
      -    this[MAYBE_EMIT_END]();
      -    return ret;
      -  }
      -  [READ](n, chunk) {
      -    if (this[OBJECTMODE])
      -      this[BUFFERSHIFT]();
      -    else {
      -      const c = chunk;
      -      if (n === c.length || n === null)
      -        this[BUFFERSHIFT]();
      -      else if (typeof c === "string") {
      -        this[BUFFER][0] = c.slice(n);
      -        chunk = c.slice(0, n);
      -        this[BUFFERLENGTH] -= n;
      -      } else {
      -        this[BUFFER][0] = c.subarray(n);
      -        chunk = c.subarray(0, n);
      -        this[BUFFERLENGTH] -= n;
      -      }
      -    }
      -    this.emit("data", chunk);
      -    if (!this[BUFFER].length && !this[EOF])
      -      this.emit("drain");
      -    return chunk;
      -  }
      -  end(chunk, encoding, cb) {
      -    if (typeof chunk === "function") {
      -      cb = chunk;
      -      chunk = void 0;
      -    }
      -    if (typeof encoding === "function") {
      -      cb = encoding;
      -      encoding = "utf8";
      -    }
      -    if (chunk !== void 0)
      -      this.write(chunk, encoding);
      -    if (cb)
      -      this.once("end", cb);
      -    this[EOF] = true;
      -    this.writable = false;
      -    if (this[FLOWING] || !this[PAUSED])
      -      this[MAYBE_EMIT_END]();
      -    return this;
      -  }
      -  // don't let the internal resume be overwritten
      -  [RESUME]() {
      -    if (this[DESTROYED])
      -      return;
      -    if (!this[DATALISTENERS] && !this[PIPES].length) {
      -      this[DISCARDED] = true;
      -    }
      -    this[PAUSED] = false;
      -    this[FLOWING] = true;
      -    this.emit("resume");
      -    if (this[BUFFER].length)
      -      this[FLUSH]();
      -    else if (this[EOF])
      -      this[MAYBE_EMIT_END]();
      -    else
      -      this.emit("drain");
      -  }
      -  /**
      -   * Resume the stream if it is currently in a paused state
      -   *
      -   * If called when there are no pipe destinations or `data` event listeners,
      -   * this will place the stream in a "discarded" state, where all data will
      -   * be thrown away. The discarded state is removed if a pipe destination or
      -   * data handler is added, if pause() is called, or if any synchronous or
      -   * asynchronous iteration is started.
      -   */
      -  resume() {
      -    return this[RESUME]();
      -  }
      -  /**
      -   * Pause the stream
      -   */
      -  pause() {
      -    this[FLOWING] = false;
      -    this[PAUSED] = true;
      -    this[DISCARDED] = false;
      -  }
      -  /**
      -   * true if the stream has been forcibly destroyed
      -   */
      -  get destroyed() {
      -    return this[DESTROYED];
      -  }
      -  /**
      -   * true if the stream is currently in a flowing state, meaning that
      -   * any writes will be immediately emitted.
      -   */
      -  get flowing() {
      -    return this[FLOWING];
      -  }
      -  /**
      -   * true if the stream is currently in a paused state
      -   */
      -  get paused() {
      -    return this[PAUSED];
      -  }
      -  [BUFFERPUSH](chunk) {
      -    if (this[OBJECTMODE])
      -      this[BUFFERLENGTH] += 1;
      -    else
      -      this[BUFFERLENGTH] += chunk.length;
      -    this[BUFFER].push(chunk);
      -  }
      -  [BUFFERSHIFT]() {
      -    if (this[OBJECTMODE])
      -      this[BUFFERLENGTH] -= 1;
      -    else
      -      this[BUFFERLENGTH] -= this[BUFFER][0].length;
      -    return this[BUFFER].shift();
      -  }
      -  [FLUSH](noDrain = false) {
      -    do {
      -    } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length);
      -    if (!noDrain && !this[BUFFER].length && !this[EOF])
      -      this.emit("drain");
      -  }
      -  [FLUSHCHUNK](chunk) {
      -    this.emit("data", chunk);
      -    return this[FLOWING];
      -  }
      -  /**
      -   * Pipe all data emitted by this stream into the destination provided.
      -   *
      -   * Triggers the flow of data.
      -   */
      -  pipe(dest, opts) {
      -    if (this[DESTROYED])
      -      return dest;
      -    this[DISCARDED] = false;
      -    const ended = this[EMITTED_END];
      -    opts = opts || {};
      -    if (dest === proc.stdout || dest === proc.stderr)
      -      opts.end = false;
      -    else
      -      opts.end = opts.end !== false;
      -    opts.proxyErrors = !!opts.proxyErrors;
      -    if (ended) {
      -      if (opts.end)
      -        dest.end();
      -    } else {
      -      this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
      -      if (this[ASYNC])
      -        defer(() => this[RESUME]());
      -      else
      -        this[RESUME]();
      -    }
      -    return dest;
      -  }
      -  /**
      -   * Fully unhook a piped destination stream.
      -   *
      -   * If the destination stream was the only consumer of this stream (ie,
      -   * there are no other piped destinations or `'data'` event listeners)
      -   * then the flow of data will stop until there is another consumer or
      -   * {@link Minipass#resume} is explicitly called.
      -   */
      -  unpipe(dest) {
      -    const p = this[PIPES].find((p2) => p2.dest === dest);
      -    if (p) {
      -      if (this[PIPES].length === 1) {
      -        if (this[FLOWING] && this[DATALISTENERS] === 0) {
      -          this[FLOWING] = false;
      -        }
      -        this[PIPES] = [];
      -      } else
      -        this[PIPES].splice(this[PIPES].indexOf(p), 1);
      -      p.unpipe();
      -    }
      -  }
      -  /**
      -   * Alias for {@link Minipass#on}
      -   */
      -  addListener(ev, handler) {
      -    return this.on(ev, handler);
      -  }
      -  /**
      -   * Mostly identical to `EventEmitter.on`, with the following
      -   * behavior differences to prevent data loss and unnecessary hangs:
      -   *
      -   * - Adding a 'data' event handler will trigger the flow of data
      -   *
      -   * - Adding a 'readable' event handler when there is data waiting to be read
      -   *   will cause 'readable' to be emitted immediately.
      -   *
      -   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
      -   *   already passed will cause the event to be emitted immediately and all
      -   *   handlers removed.
      -   *
      -   * - Adding an 'error' event handler after an error has been emitted will
      -   *   cause the event to be re-emitted immediately with the error previously
      -   *   raised.
      -   */
      -  on(ev, handler) {
      -    const ret = super.on(ev, handler);
      -    if (ev === "data") {
      -      this[DISCARDED] = false;
      -      this[DATALISTENERS]++;
      -      if (!this[PIPES].length && !this[FLOWING]) {
      -        this[RESUME]();
      -      }
      -    } else if (ev === "readable" && this[BUFFERLENGTH] !== 0) {
      -      super.emit("readable");
      -    } else if (isEndish(ev) && this[EMITTED_END]) {
      -      super.emit(ev);
      -      this.removeAllListeners(ev);
      -    } else if (ev === "error" && this[EMITTED_ERROR]) {
      -      const h = handler;
      -      if (this[ASYNC])
      -        defer(() => h.call(this, this[EMITTED_ERROR]));
      -      else
      -        h.call(this, this[EMITTED_ERROR]);
      -    }
      -    return ret;
      -  }
      -  /**
      -   * Alias for {@link Minipass#off}
      -   */
      -  removeListener(ev, handler) {
      -    return this.off(ev, handler);
      -  }
      -  /**
      -   * Mostly identical to `EventEmitter.off`
      -   *
      -   * If a 'data' event handler is removed, and it was the last consumer
      -   * (ie, there are no pipe destinations or other 'data' event listeners),
      -   * then the flow of data will stop until there is another consumer or
      -   * {@link Minipass#resume} is explicitly called.
      -   */
      -  off(ev, handler) {
      -    const ret = super.off(ev, handler);
      -    if (ev === "data") {
      -      this[DATALISTENERS] = this.listeners("data").length;
      -      if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) {
      -        this[FLOWING] = false;
      -      }
      -    }
      -    return ret;
      -  }
      -  /**
      -   * Mostly identical to `EventEmitter.removeAllListeners`
      -   *
      -   * If all 'data' event handlers are removed, and they were the last consumer
      -   * (ie, there are no pipe destinations), then the flow of data will stop
      -   * until there is another consumer or {@link Minipass#resume} is explicitly
      -   * called.
      -   */
      -  removeAllListeners(ev) {
      -    const ret = super.removeAllListeners(ev);
      -    if (ev === "data" || ev === void 0) {
      -      this[DATALISTENERS] = 0;
      -      if (!this[DISCARDED] && !this[PIPES].length) {
      -        this[FLOWING] = false;
      -      }
      -    }
      -    return ret;
      -  }
      -  /**
      -   * true if the 'end' event has been emitted
      -   */
      -  get emittedEnd() {
      -    return this[EMITTED_END];
      -  }
      -  [MAYBE_EMIT_END]() {
      -    if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
      -      this[EMITTING_END] = true;
      -      this.emit("end");
      -      this.emit("prefinish");
      -      this.emit("finish");
      -      if (this[CLOSED])
      -        this.emit("close");
      -      this[EMITTING_END] = false;
      -    }
      -  }
      -  /**
      -   * Mostly identical to `EventEmitter.emit`, with the following
      -   * behavior differences to prevent data loss and unnecessary hangs:
      -   *
      -   * If the stream has been destroyed, and the event is something other
      -   * than 'close' or 'error', then `false` is returned and no handlers
      -   * are called.
      -   *
      -   * If the event is 'end', and has already been emitted, then the event
      -   * is ignored. If the stream is in a paused or non-flowing state, then
      -   * the event will be deferred until data flow resumes. If the stream is
      -   * async, then handlers will be called on the next tick rather than
      -   * immediately.
      -   *
      -   * If the event is 'close', and 'end' has not yet been emitted, then
      -   * the event will be deferred until after 'end' is emitted.
      -   *
      -   * If the event is 'error', and an AbortSignal was provided for the stream,
      -   * and there are no listeners, then the event is ignored, matching the
      -   * behavior of node core streams in the presense of an AbortSignal.
      -   *
      -   * If the event is 'finish' or 'prefinish', then all listeners will be
      -   * removed after emitting the event, to prevent double-firing.
      -   */
      -  emit(ev, ...args) {
      -    const data = args[0];
      -    if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) {
      -      return false;
      -    } else if (ev === "data") {
      -      return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? (defer(() => this[EMITDATA](data)), true) : this[EMITDATA](data);
      -    } else if (ev === "end") {
      -      return this[EMITEND]();
      -    } else if (ev === "close") {
      -      this[CLOSED] = true;
      -      if (!this[EMITTED_END] && !this[DESTROYED])
      -        return false;
      -      const ret2 = super.emit("close");
      -      this.removeAllListeners("close");
      -      return ret2;
      -    } else if (ev === "error") {
      -      this[EMITTED_ERROR] = data;
      -      super.emit(ERROR, data);
      -      const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false;
      -      this[MAYBE_EMIT_END]();
      -      return ret2;
      -    } else if (ev === "resume") {
      -      const ret2 = super.emit("resume");
      -      this[MAYBE_EMIT_END]();
      -      return ret2;
      -    } else if (ev === "finish" || ev === "prefinish") {
      -      const ret2 = super.emit(ev);
      -      this.removeAllListeners(ev);
      -      return ret2;
      -    }
      -    const ret = super.emit(ev, ...args);
      -    this[MAYBE_EMIT_END]();
      -    return ret;
      -  }
      -  [EMITDATA](data) {
      -    for (const p of this[PIPES]) {
      -      if (p.dest.write(data) === false)
      -        this.pause();
      -    }
      -    const ret = this[DISCARDED] ? false : super.emit("data", data);
      -    this[MAYBE_EMIT_END]();
      -    return ret;
      -  }
      -  [EMITEND]() {
      -    if (this[EMITTED_END])
      -      return false;
      -    this[EMITTED_END] = true;
      -    this.readable = false;
      -    return this[ASYNC] ? (defer(() => this[EMITEND2]()), true) : this[EMITEND2]();
      -  }
      -  [EMITEND2]() {
      -    if (this[DECODER]) {
      -      const data = this[DECODER].end();
      -      if (data) {
      -        for (const p of this[PIPES]) {
      -          p.dest.write(data);
      -        }
      -        if (!this[DISCARDED])
      -          super.emit("data", data);
      -      }
      -    }
      -    for (const p of this[PIPES]) {
      -      p.end();
      -    }
      -    const ret = super.emit("end");
      -    this.removeAllListeners("end");
      -    return ret;
      -  }
      -  /**
      -   * Return a Promise that resolves to an array of all emitted data once
      -   * the stream ends.
      -   */
      -  async collect() {
      -    const buf = Object.assign([], {
      -      dataLength: 0
      -    });
      -    if (!this[OBJECTMODE])
      -      buf.dataLength = 0;
      -    const p = this.promise();
      -    this.on("data", (c) => {
      -      buf.push(c);
      -      if (!this[OBJECTMODE])
      -        buf.dataLength += c.length;
      -    });
      -    await p;
      -    return buf;
      -  }
      -  /**
      -   * Return a Promise that resolves to the concatenation of all emitted data
      -   * once the stream ends.
      -   *
      -   * Not allowed on objectMode streams.
      -   */
      -  async concat() {
      -    if (this[OBJECTMODE]) {
      -      throw new Error("cannot concat in objectMode");
      -    }
      -    const buf = await this.collect();
      -    return this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength);
      -  }
      -  /**
      -   * Return a void Promise that resolves once the stream ends.
      -   */
      -  async promise() {
      -    return new Promise((resolve2, reject) => {
      -      this.on(DESTROYED, () => reject(new Error("stream destroyed")));
      -      this.on("error", (er) => reject(er));
      -      this.on("end", () => resolve2());
      -    });
      -  }
      -  /**
      -   * Asynchronous `for await of` iteration.
      -   *
      -   * This will continue emitting all chunks until the stream terminates.
      -   */
      -  [Symbol.asyncIterator]() {
      -    this[DISCARDED] = false;
      -    let stopped = false;
      -    const stop = async () => {
      -      this.pause();
      -      stopped = true;
      -      return { value: void 0, done: true };
      -    };
      -    const next = () => {
      -      if (stopped)
      -        return stop();
      -      const res = this.read();
      -      if (res !== null)
      -        return Promise.resolve({ done: false, value: res });
      -      if (this[EOF])
      -        return stop();
      -      let resolve2;
      -      let reject;
      -      const onerr = (er) => {
      -        this.off("data", ondata);
      -        this.off("end", onend);
      -        this.off(DESTROYED, ondestroy);
      -        stop();
      -        reject(er);
      -      };
      -      const ondata = (value) => {
      -        this.off("error", onerr);
      -        this.off("end", onend);
      -        this.off(DESTROYED, ondestroy);
      -        this.pause();
      -        resolve2({ value, done: !!this[EOF] });
      -      };
      -      const onend = () => {
      -        this.off("error", onerr);
      -        this.off("data", ondata);
      -        this.off(DESTROYED, ondestroy);
      -        stop();
      -        resolve2({ done: true, value: void 0 });
      -      };
      -      const ondestroy = () => onerr(new Error("stream destroyed"));
      -      return new Promise((res2, rej) => {
      -        reject = rej;
      -        resolve2 = res2;
      -        this.once(DESTROYED, ondestroy);
      -        this.once("error", onerr);
      -        this.once("end", onend);
      -        this.once("data", ondata);
      -      });
      -    };
      -    return {
      -      next,
      -      throw: stop,
      -      return: stop,
      -      [Symbol.asyncIterator]() {
      -        return this;
      -      }
      -    };
      -  }
      -  /**
      -   * Synchronous `for of` iteration.
      -   *
      -   * The iteration will terminate when the internal buffer runs out, even
      -   * if the stream has not yet terminated.
      -   */
      -  [Symbol.iterator]() {
      -    this[DISCARDED] = false;
      -    let stopped = false;
      -    const stop = () => {
      -      this.pause();
      -      this.off(ERROR, stop);
      -      this.off(DESTROYED, stop);
      -      this.off("end", stop);
      -      stopped = true;
      -      return { done: true, value: void 0 };
      -    };
      -    const next = () => {
      -      if (stopped)
      -        return stop();
      -      const value = this.read();
      -      return value === null ? stop() : { done: false, value };
      -    };
      -    this.once("end", stop);
      -    this.once(ERROR, stop);
      -    this.once(DESTROYED, stop);
      -    return {
      -      next,
      -      throw: stop,
      -      return: stop,
      -      [Symbol.iterator]() {
      -        return this;
      -      }
      -    };
      -  }
      -  /**
      -   * Destroy a stream, preventing it from being used for any further purpose.
      -   *
      -   * If the stream has a `close()` method, then it will be called on
      -   * destruction.
      -   *
      -   * After destruction, any attempt to write data, read data, or emit most
      -   * events will be ignored.
      -   *
      -   * If an error argument is provided, then it will be emitted in an
      -   * 'error' event.
      -   */
      -  destroy(er) {
      -    if (this[DESTROYED]) {
      -      if (er)
      -        this.emit("error", er);
      -      else
      -        this.emit(DESTROYED);
      -      return this;
      -    }
      -    this[DESTROYED] = true;
      -    this[DISCARDED] = true;
      -    this[BUFFER].length = 0;
      -    this[BUFFERLENGTH] = 0;
      -    const wc = this;
      -    if (typeof wc.close === "function" && !this[CLOSED])
      -      wc.close();
      -    if (er)
      -      this.emit("error", er);
      -    else
      -      this.emit(DESTROYED);
      -    return this;
      -  }
      -  /**
      -   * Alias for {@link isStream}
      -   *
      -   * Former export location, maintained for backwards compatibility.
      -   *
      -   * @deprecated
      -   */
      -  static get isStream() {
      -    return isStream;
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/path-scurry@1.10.1/node_modules/path-scurry/dist/mjs/index.js
      -var realpathSync = import_fs.realpathSync.native;
      -var defaultFS = {
      -  lstatSync: import_fs.lstatSync,
      -  readdir: import_fs.readdir,
      -  readdirSync: import_fs.readdirSync,
      -  readlinkSync: import_fs.readlinkSync,
      -  realpathSync,
      -  promises: {
      -    lstat: import_promises.lstat,
      -    readdir: import_promises.readdir,
      -    readlink: import_promises.readlink,
      -    realpath: import_promises.realpath
      -  }
      -};
      -var fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ? defaultFS : {
      -  ...defaultFS,
      -  ...fsOption,
      -  promises: {
      -    ...defaultFS.promises,
      -    ...fsOption.promises || {}
      -  }
      -};
      -var uncDriveRegexp = /^\\\\\?\\([a-z]:)\\?$/i;
      -var uncToDrive = (rootPath) => rootPath.replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
      -var eitherSep = /[\\\/]/;
      -var UNKNOWN = 0;
      -var IFIFO = 1;
      -var IFCHR = 2;
      -var IFDIR = 4;
      -var IFBLK = 6;
      -var IFREG = 8;
      -var IFLNK = 10;
      -var IFSOCK = 12;
      -var IFMT = 15;
      -var IFMT_UNKNOWN = ~IFMT;
      -var READDIR_CALLED = 16;
      -var LSTAT_CALLED = 32;
      -var ENOTDIR = 64;
      -var ENOENT = 128;
      -var ENOREADLINK = 256;
      -var ENOREALPATH = 512;
      -var ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
      -var TYPEMASK = 1023;
      -var entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN;
      -var normalizeCache = /* @__PURE__ */ new Map();
      -var normalize = (s) => {
      -  const c = normalizeCache.get(s);
      -  if (c)
      -    return c;
      -  const n = s.normalize("NFKD");
      -  normalizeCache.set(s, n);
      -  return n;
      -};
      -var normalizeNocaseCache = /* @__PURE__ */ new Map();
      -var normalizeNocase = (s) => {
      -  const c = normalizeNocaseCache.get(s);
      -  if (c)
      -    return c;
      -  const n = normalize(s.toLowerCase());
      -  normalizeNocaseCache.set(s, n);
      -  return n;
      -};
      -var ResolveCache = class extends LRUCache {
      -  constructor() {
      -    super({ max: 256 });
      -  }
      -};
      -var ChildrenCache = class extends LRUCache {
      -  constructor(maxSize = 16 * 1024) {
      -    super({
      -      maxSize,
      -      // parent + children
      -      sizeCalculation: (a) => a.length + 1
      -    });
      -  }
      -};
      -var setAsCwd = Symbol("PathScurry setAsCwd");
      -var PathBase = class {
      -  /**
      -   * the basename of this path
      -   *
      -   * **Important**: *always* test the path name against any test string
      -   * usingthe {@link isNamed} method, and not by directly comparing this
      -   * string. Otherwise, unicode path strings that the system sees as identical
      -   * will not be properly treated as the same path, leading to incorrect
      -   * behavior and possible security issues.
      -   */
      -  name;
      -  /**
      -   * the Path entry corresponding to the path root.
      -   *
      -   * @internal
      -   */
      -  root;
      -  /**
      -   * All roots found within the current PathScurry family
      -   *
      -   * @internal
      -   */
      -  roots;
      -  /**
      -   * a reference to the parent path, or undefined in the case of root entries
      -   *
      -   * @internal
      -   */
      -  parent;
      -  /**
      -   * boolean indicating whether paths are compared case-insensitively
      -   * @internal
      -   */
      -  nocase;
      -  // potential default fs override
      -  #fs;
      -  // Stats fields
      -  #dev;
      -  get dev() {
      -    return this.#dev;
      -  }
      -  #mode;
      -  get mode() {
      -    return this.#mode;
      -  }
      -  #nlink;
      -  get nlink() {
      -    return this.#nlink;
      -  }
      -  #uid;
      -  get uid() {
      -    return this.#uid;
      -  }
      -  #gid;
      -  get gid() {
      -    return this.#gid;
      -  }
      -  #rdev;
      -  get rdev() {
      -    return this.#rdev;
      -  }
      -  #blksize;
      -  get blksize() {
      -    return this.#blksize;
      -  }
      -  #ino;
      -  get ino() {
      -    return this.#ino;
      -  }
      -  #size;
      -  get size() {
      -    return this.#size;
      -  }
      -  #blocks;
      -  get blocks() {
      -    return this.#blocks;
      -  }
      -  #atimeMs;
      -  get atimeMs() {
      -    return this.#atimeMs;
      -  }
      -  #mtimeMs;
      -  get mtimeMs() {
      -    return this.#mtimeMs;
      -  }
      -  #ctimeMs;
      -  get ctimeMs() {
      -    return this.#ctimeMs;
      -  }
      -  #birthtimeMs;
      -  get birthtimeMs() {
      -    return this.#birthtimeMs;
      -  }
      -  #atime;
      -  get atime() {
      -    return this.#atime;
      -  }
      -  #mtime;
      -  get mtime() {
      -    return this.#mtime;
      -  }
      -  #ctime;
      -  get ctime() {
      -    return this.#ctime;
      -  }
      -  #birthtime;
      -  get birthtime() {
      -    return this.#birthtime;
      -  }
      -  #matchName;
      -  #depth;
      -  #fullpath;
      -  #fullpathPosix;
      -  #relative;
      -  #relativePosix;
      -  #type;
      -  #children;
      -  #linkTarget;
      -  #realpath;
      -  /**
      -   * This property is for compatibility with the Dirent class as of
      -   * Node v20, where Dirent['path'] refers to the path of the directory
      -   * that was passed to readdir.  So, somewhat counterintuitively, this
      -   * property refers to the *parent* path, not the path object itself.
      -   * For root entries, it's the path to the entry itself.
      -   */
      -  get path() {
      -    return (this.parent || this).fullpath();
      -  }
      -  /**
      -   * Do not create new Path objects directly.  They should always be accessed
      -   * via the PathScurry class or other methods on the Path class.
      -   *
      -   * @internal
      -   */
      -  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
      -    this.name = name;
      -    this.#matchName = nocase ? normalizeNocase(name) : normalize(name);
      -    this.#type = type2 & TYPEMASK;
      -    this.nocase = nocase;
      -    this.roots = roots;
      -    this.root = root || this;
      -    this.#children = children;
      -    this.#fullpath = opts.fullpath;
      -    this.#relative = opts.relative;
      -    this.#relativePosix = opts.relativePosix;
      -    this.parent = opts.parent;
      -    if (this.parent) {
      -      this.#fs = this.parent.#fs;
      -    } else {
      -      this.#fs = fsFromOption(opts.fs);
      -    }
      -  }
      -  /**
      -   * Returns the depth of the Path object from its root.
      -   *
      -   * For example, a path at `/foo/bar` would have a depth of 2.
      -   */
      -  depth() {
      -    if (this.#depth !== void 0)
      -      return this.#depth;
      -    if (!this.parent)
      -      return this.#depth = 0;
      -    return this.#depth = this.parent.depth() + 1;
      -  }
      -  /**
      -   * @internal
      -   */
      -  childrenCache() {
      -    return this.#children;
      -  }
      -  /**
      -   * Get the Path object referenced by the string path, resolved from this Path
      -   */
      -  resolve(path4) {
      -    if (!path4) {
      -      return this;
      -    }
      -    const rootPath = this.getRootString(path4);
      -    const dir = path4.substring(rootPath.length);
      -    const dirParts = dir.split(this.splitSep);
      -    const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts);
      -    return result;
      -  }
      -  #resolveParts(dirParts) {
      -    let p = this;
      -    for (const part of dirParts) {
      -      p = p.child(part);
      -    }
      -    return p;
      -  }
      -  /**
      -   * Returns the cached children Path objects, if still available.  If they
      -   * have fallen out of the cache, then returns an empty array, and resets the
      -   * READDIR_CALLED bit, so that future calls to readdir() will require an fs
      -   * lookup.
      -   *
      -   * @internal
      -   */
      -  children() {
      -    const cached = this.#children.get(this);
      -    if (cached) {
      -      return cached;
      -    }
      -    const children = Object.assign([], { provisional: 0 });
      -    this.#children.set(this, children);
      -    this.#type &= ~READDIR_CALLED;
      -    return children;
      -  }
      -  /**
      -   * Resolves a path portion and returns or creates the child Path.
      -   *
      -   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is
      -   * `'..'`.
      -   *
      -   * This should not be called directly.  If `pathPart` contains any path
      -   * separators, it will lead to unsafe undefined behavior.
      -   *
      -   * Use `Path.resolve()` instead.
      -   *
      -   * @internal
      -   */
      -  child(pathPart, opts) {
      -    if (pathPart === "" || pathPart === ".") {
      -      return this;
      -    }
      -    if (pathPart === "..") {
      -      return this.parent || this;
      -    }
      -    const children = this.children();
      -    const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
      -    for (const p of children) {
      -      if (p.#matchName === name) {
      -        return p;
      -      }
      -    }
      -    const s = this.parent ? this.sep : "";
      -    const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0;
      -    const pchild = this.newChild(pathPart, UNKNOWN, {
      -      ...opts,
      -      parent: this,
      -      fullpath
      -    });
      -    if (!this.canReaddir()) {
      -      pchild.#type |= ENOENT;
      -    }
      -    children.push(pchild);
      -    return pchild;
      -  }
      -  /**
      -   * The relative path from the cwd. If it does not share an ancestor with
      -   * the cwd, then this ends up being equivalent to the fullpath()
      -   */
      -  relative() {
      -    if (this.#relative !== void 0) {
      -      return this.#relative;
      -    }
      -    const name = this.name;
      -    const p = this.parent;
      -    if (!p) {
      -      return this.#relative = this.name;
      -    }
      -    const pv = p.relative();
      -    return pv + (!pv || !p.parent ? "" : this.sep) + name;
      -  }
      -  /**
      -   * The relative path from the cwd, using / as the path separator.
      -   * If it does not share an ancestor with
      -   * the cwd, then this ends up being equivalent to the fullpathPosix()
      -   * On posix systems, this is identical to relative().
      -   */
      -  relativePosix() {
      -    if (this.sep === "/")
      -      return this.relative();
      -    if (this.#relativePosix !== void 0)
      -      return this.#relativePosix;
      -    const name = this.name;
      -    const p = this.parent;
      -    if (!p) {
      -      return this.#relativePosix = this.fullpathPosix();
      -    }
      -    const pv = p.relativePosix();
      -    return pv + (!pv || !p.parent ? "" : "/") + name;
      -  }
      -  /**
      -   * The fully resolved path string for this Path entry
      -   */
      -  fullpath() {
      -    if (this.#fullpath !== void 0) {
      -      return this.#fullpath;
      -    }
      -    const name = this.name;
      -    const p = this.parent;
      -    if (!p) {
      -      return this.#fullpath = this.name;
      -    }
      -    const pv = p.fullpath();
      -    const fp = pv + (!p.parent ? "" : this.sep) + name;
      -    return this.#fullpath = fp;
      -  }
      -  /**
      -   * On platforms other than windows, this is identical to fullpath.
      -   *
      -   * On windows, this is overridden to return the forward-slash form of the
      -   * full UNC path.
      -   */
      -  fullpathPosix() {
      -    if (this.#fullpathPosix !== void 0)
      -      return this.#fullpathPosix;
      -    if (this.sep === "/")
      -      return this.#fullpathPosix = this.fullpath();
      -    if (!this.parent) {
      -      const p2 = this.fullpath().replace(/\\/g, "/");
      -      if (/^[a-z]:\//i.test(p2)) {
      -        return this.#fullpathPosix = `//?/${p2}`;
      -      } else {
      -        return this.#fullpathPosix = p2;
      -      }
      -    }
      -    const p = this.parent;
      -    const pfpp = p.fullpathPosix();
      -    const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name;
      -    return this.#fullpathPosix = fpp;
      -  }
      -  /**
      -   * Is the Path of an unknown type?
      -   *
      -   * Note that we might know *something* about it if there has been a previous
      -   * filesystem operation, for example that it does not exist, or is not a
      -   * link, or whether it has child entries.
      -   */
      -  isUnknown() {
      -    return (this.#type & IFMT) === UNKNOWN;
      -  }
      -  isType(type2) {
      -    return this[`is${type2}`]();
      -  }
      -  getType() {
      -    return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : (
      -      /* c8 ignore start */
      -      this.isSocket() ? "Socket" : "Unknown"
      -    );
      -  }
      -  /**
      -   * Is the Path a regular file?
      -   */
      -  isFile() {
      -    return (this.#type & IFMT) === IFREG;
      -  }
      -  /**
      -   * Is the Path a directory?
      -   */
      -  isDirectory() {
      -    return (this.#type & IFMT) === IFDIR;
      -  }
      -  /**
      -   * Is the path a character device?
      -   */
      -  isCharacterDevice() {
      -    return (this.#type & IFMT) === IFCHR;
      -  }
      -  /**
      -   * Is the path a block device?
      -   */
      -  isBlockDevice() {
      -    return (this.#type & IFMT) === IFBLK;
      -  }
      -  /**
      -   * Is the path a FIFO pipe?
      -   */
      -  isFIFO() {
      -    return (this.#type & IFMT) === IFIFO;
      -  }
      -  /**
      -   * Is the path a socket?
      -   */
      -  isSocket() {
      -    return (this.#type & IFMT) === IFSOCK;
      -  }
      -  /**
      -   * Is the path a symbolic link?
      -   */
      -  isSymbolicLink() {
      -    return (this.#type & IFLNK) === IFLNK;
      -  }
      -  /**
      -   * Return the entry if it has been subject of a successful lstat, or
      -   * undefined otherwise.
      -   *
      -   * Does not read the filesystem, so an undefined result *could* simply
      -   * mean that we haven't called lstat on it.
      -   */
      -  lstatCached() {
      -    return this.#type & LSTAT_CALLED ? this : void 0;
      -  }
      -  /**
      -   * Return the cached link target if the entry has been the subject of a
      -   * successful readlink, or undefined otherwise.
      -   *
      -   * Does not read the filesystem, so an undefined result *could* just mean we
      -   * don't have any cached data. Only use it if you are very sure that a
      -   * readlink() has been called at some point.
      -   */
      -  readlinkCached() {
      -    return this.#linkTarget;
      -  }
      -  /**
      -   * Returns the cached realpath target if the entry has been the subject
      -   * of a successful realpath, or undefined otherwise.
      -   *
      -   * Does not read the filesystem, so an undefined result *could* just mean we
      -   * don't have any cached data. Only use it if you are very sure that a
      -   * realpath() has been called at some point.
      -   */
      -  realpathCached() {
      -    return this.#realpath;
      -  }
      -  /**
      -   * Returns the cached child Path entries array if the entry has been the
      -   * subject of a successful readdir(), or [] otherwise.
      -   *
      -   * Does not read the filesystem, so an empty array *could* just mean we
      -   * don't have any cached data. Only use it if you are very sure that a
      -   * readdir() has been called recently enough to still be valid.
      -   */
      -  readdirCached() {
      -    const children = this.children();
      -    return children.slice(0, children.provisional);
      -  }
      -  /**
      -   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have
      -   * any indication that readlink will definitely fail.
      -   *
      -   * Returns false if the path is known to not be a symlink, if a previous
      -   * readlink failed, or if the entry does not exist.
      -   */
      -  canReadlink() {
      -    if (this.#linkTarget)
      -      return true;
      -    if (!this.parent)
      -      return false;
      -    const ifmt = this.#type & IFMT;
      -    return !(ifmt !== UNKNOWN && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT);
      -  }
      -  /**
      -   * Return true if readdir has previously been successfully called on this
      -   * path, indicating that cachedReaddir() is likely valid.
      -   */
      -  calledReaddir() {
      -    return !!(this.#type & READDIR_CALLED);
      -  }
      -  /**
      -   * Returns true if the path is known to not exist. That is, a previous lstat
      -   * or readdir failed to verify its existence when that would have been
      -   * expected, or a parent entry was marked either enoent or enotdir.
      -   */
      -  isENOENT() {
      -    return !!(this.#type & ENOENT);
      -  }
      -  /**
      -   * Return true if the path is a match for the given path name.  This handles
      -   * case sensitivity and unicode normalization.
      -   *
      -   * Note: even on case-sensitive systems, it is **not** safe to test the
      -   * equality of the `.name` property to determine whether a given pathname
      -   * matches, due to unicode normalization mismatches.
      -   *
      -   * Always use this method instead of testing the `path.name` property
      -   * directly.
      -   */
      -  isNamed(n) {
      -    return !this.nocase ? this.#matchName === normalize(n) : this.#matchName === normalizeNocase(n);
      -  }
      -  /**
      -   * Return the Path object corresponding to the target of a symbolic link.
      -   *
      -   * If the Path is not a symbolic link, or if the readlink call fails for any
      -   * reason, `undefined` is returned.
      -   *
      -   * Result is cached, and thus may be outdated if the filesystem is mutated.
      -   */
      -  async readlink() {
      -    const target = this.#linkTarget;
      -    if (target) {
      -      return target;
      -    }
      -    if (!this.canReadlink()) {
      -      return void 0;
      -    }
      -    if (!this.parent) {
      -      return void 0;
      -    }
      -    try {
      -      const read = await this.#fs.promises.readlink(this.fullpath());
      -      const linkTarget = this.parent.resolve(read);
      -      if (linkTarget) {
      -        return this.#linkTarget = linkTarget;
      -      }
      -    } catch (er) {
      -      this.#readlinkFail(er.code);
      -      return void 0;
      -    }
      -  }
      -  /**
      -   * Synchronous {@link PathBase.readlink}
      -   */
      -  readlinkSync() {
      -    const target = this.#linkTarget;
      -    if (target) {
      -      return target;
      -    }
      -    if (!this.canReadlink()) {
      -      return void 0;
      -    }
      -    if (!this.parent) {
      -      return void 0;
      -    }
      -    try {
      -      const read = this.#fs.readlinkSync(this.fullpath());
      -      const linkTarget = this.parent.resolve(read);
      -      if (linkTarget) {
      -        return this.#linkTarget = linkTarget;
      -      }
      -    } catch (er) {
      -      this.#readlinkFail(er.code);
      -      return void 0;
      -    }
      -  }
      -  #readdirSuccess(children) {
      -    this.#type |= READDIR_CALLED;
      -    for (let p = children.provisional; p < children.length; p++) {
      -      children[p].#markENOENT();
      -    }
      -  }
      -  #markENOENT() {
      -    if (this.#type & ENOENT)
      -      return;
      -    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;
      -    this.#markChildrenENOENT();
      -  }
      -  #markChildrenENOENT() {
      -    const children = this.children();
      -    children.provisional = 0;
      -    for (const p of children) {
      -      p.#markENOENT();
      -    }
      -  }
      -  #markENOREALPATH() {
      -    this.#type |= ENOREALPATH;
      -    this.#markENOTDIR();
      -  }
      -  // save the information when we know the entry is not a dir
      -  #markENOTDIR() {
      -    if (this.#type & ENOTDIR)
      -      return;
      -    let t = this.#type;
      -    if ((t & IFMT) === IFDIR)
      -      t &= IFMT_UNKNOWN;
      -    this.#type = t | ENOTDIR;
      -    this.#markChildrenENOENT();
      -  }
      -  #readdirFail(code = "") {
      -    if (code === "ENOTDIR" || code === "EPERM") {
      -      this.#markENOTDIR();
      -    } else if (code === "ENOENT") {
      -      this.#markENOENT();
      -    } else {
      -      this.children().provisional = 0;
      -    }
      -  }
      -  #lstatFail(code = "") {
      -    if (code === "ENOTDIR") {
      -      const p = this.parent;
      -      p.#markENOTDIR();
      -    } else if (code === "ENOENT") {
      -      this.#markENOENT();
      -    }
      -  }
      -  #readlinkFail(code = "") {
      -    let ter = this.#type;
      -    ter |= ENOREADLINK;
      -    if (code === "ENOENT")
      -      ter |= ENOENT;
      -    if (code === "EINVAL" || code === "UNKNOWN") {
      -      ter &= IFMT_UNKNOWN;
      -    }
      -    this.#type = ter;
      -    if (code === "ENOTDIR" && this.parent) {
      -      this.parent.#markENOTDIR();
      -    }
      -  }
      -  #readdirAddChild(e, c) {
      -    return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c);
      -  }
      -  #readdirAddNewChild(e, c) {
      -    const type2 = entToType(e);
      -    const child = this.newChild(e.name, type2, { parent: this });
      -    const ifmt = child.#type & IFMT;
      -    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {
      -      child.#type |= ENOTDIR;
      -    }
      -    c.unshift(child);
      -    c.provisional++;
      -    return child;
      -  }
      -  #readdirMaybePromoteChild(e, c) {
      -    for (let p = c.provisional; p < c.length; p++) {
      -      const pchild = c[p];
      -      const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);
      -      if (name !== pchild.#matchName) {
      -        continue;
      -      }
      -      return this.#readdirPromoteChild(e, pchild, p, c);
      -    }
      -  }
      -  #readdirPromoteChild(e, p, index, c) {
      -    const v = p.name;
      -    p.#type = p.#type & IFMT_UNKNOWN | entToType(e);
      -    if (v !== e.name)
      -      p.name = e.name;
      -    if (index !== c.provisional) {
      -      if (index === c.length - 1)
      -        c.pop();
      -      else
      -        c.splice(index, 1);
      -      c.unshift(p);
      -    }
      -    c.provisional++;
      -    return p;
      -  }
      -  /**
      -   * Call lstat() on this Path, and update all known information that can be
      -   * determined.
      -   *
      -   * Note that unlike `fs.lstat()`, the returned value does not contain some
      -   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
      -   * information is required, you will need to call `fs.lstat` yourself.
      -   *
      -   * If the Path refers to a nonexistent file, or if the lstat call fails for
      -   * any reason, `undefined` is returned.  Otherwise the updated Path object is
      -   * returned.
      -   *
      -   * Results are cached, and thus may be out of date if the filesystem is
      -   * mutated.
      -   */
      -  async lstat() {
      -    if ((this.#type & ENOENT) === 0) {
      -      try {
      -        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));
      -        return this;
      -      } catch (er) {
      -        this.#lstatFail(er.code);
      -      }
      -    }
      -  }
      -  /**
      -   * synchronous {@link PathBase.lstat}
      -   */
      -  lstatSync() {
      -    if ((this.#type & ENOENT) === 0) {
      -      try {
      -        this.#applyStat(this.#fs.lstatSync(this.fullpath()));
      -        return this;
      -      } catch (er) {
      -        this.#lstatFail(er.code);
      -      }
      -    }
      -  }
      -  #applyStat(st) {
      -    const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st;
      -    this.#atime = atime;
      -    this.#atimeMs = atimeMs;
      -    this.#birthtime = birthtime;
      -    this.#birthtimeMs = birthtimeMs;
      -    this.#blksize = blksize;
      -    this.#blocks = blocks;
      -    this.#ctime = ctime;
      -    this.#ctimeMs = ctimeMs;
      -    this.#dev = dev;
      -    this.#gid = gid;
      -    this.#ino = ino;
      -    this.#mode = mode;
      -    this.#mtime = mtime;
      -    this.#mtimeMs = mtimeMs;
      -    this.#nlink = nlink;
      -    this.#rdev = rdev;
      -    this.#size = size;
      -    this.#uid = uid;
      -    const ifmt = entToType(st);
      -    this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED;
      -    if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {
      -      this.#type |= ENOTDIR;
      -    }
      -  }
      -  #onReaddirCB = [];
      -  #readdirCBInFlight = false;
      -  #callOnReaddirCB(children) {
      -    this.#readdirCBInFlight = false;
      -    const cbs = this.#onReaddirCB.slice();
      -    this.#onReaddirCB.length = 0;
      -    cbs.forEach((cb) => cb(null, children));
      -  }
      -  /**
      -   * Standard node-style callback interface to get list of directory entries.
      -   *
      -   * If the Path cannot or does not contain any children, then an empty array
      -   * is returned.
      -   *
      -   * Results are cached, and thus may be out of date if the filesystem is
      -   * mutated.
      -   *
      -   * @param cb The callback called with (er, entries).  Note that the `er`
      -   * param is somewhat extraneous, as all readdir() errors are handled and
      -   * simply result in an empty set of entries being returned.
      -   * @param allowZalgo Boolean indicating that immediately known results should
      -   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release
      -   * zalgo at your peril, the dark pony lord is devious and unforgiving.
      -   */
      -  readdirCB(cb, allowZalgo = false) {
      -    if (!this.canReaddir()) {
      -      if (allowZalgo)
      -        cb(null, []);
      -      else
      -        queueMicrotask(() => cb(null, []));
      -      return;
      -    }
      -    const children = this.children();
      -    if (this.calledReaddir()) {
      -      const c = children.slice(0, children.provisional);
      -      if (allowZalgo)
      -        cb(null, c);
      -      else
      -        queueMicrotask(() => cb(null, c));
      -      return;
      -    }
      -    this.#onReaddirCB.push(cb);
      -    if (this.#readdirCBInFlight) {
      -      return;
      -    }
      -    this.#readdirCBInFlight = true;
      -    const fullpath = this.fullpath();
      -    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {
      -      if (er) {
      -        this.#readdirFail(er.code);
      -        children.provisional = 0;
      -      } else {
      -        for (const e of entries) {
      -          this.#readdirAddChild(e, children);
      -        }
      -        this.#readdirSuccess(children);
      -      }
      -      this.#callOnReaddirCB(children.slice(0, children.provisional));
      -      return;
      -    });
      -  }
      -  #asyncReaddirInFlight;
      -  /**
      -   * Return an array of known child entries.
      -   *
      -   * If the Path cannot or does not contain any children, then an empty array
      -   * is returned.
      -   *
      -   * Results are cached, and thus may be out of date if the filesystem is
      -   * mutated.
      -   */
      -  async readdir() {
      -    if (!this.canReaddir()) {
      -      return [];
      -    }
      -    const children = this.children();
      -    if (this.calledReaddir()) {
      -      return children.slice(0, children.provisional);
      -    }
      -    const fullpath = this.fullpath();
      -    if (this.#asyncReaddirInFlight) {
      -      await this.#asyncReaddirInFlight;
      -    } else {
      -      let resolve2 = () => {
      -      };
      -      this.#asyncReaddirInFlight = new Promise((res) => resolve2 = res);
      -      try {
      -        for (const e of await this.#fs.promises.readdir(fullpath, {
      -          withFileTypes: true
      -        })) {
      -          this.#readdirAddChild(e, children);
      -        }
      -        this.#readdirSuccess(children);
      -      } catch (er) {
      -        this.#readdirFail(er.code);
      -        children.provisional = 0;
      -      }
      -      this.#asyncReaddirInFlight = void 0;
      -      resolve2();
      -    }
      -    return children.slice(0, children.provisional);
      -  }
      -  /**
      -   * synchronous {@link PathBase.readdir}
      -   */
      -  readdirSync() {
      -    if (!this.canReaddir()) {
      -      return [];
      -    }
      -    const children = this.children();
      -    if (this.calledReaddir()) {
      -      return children.slice(0, children.provisional);
      -    }
      -    const fullpath = this.fullpath();
      -    try {
      -      for (const e of this.#fs.readdirSync(fullpath, {
      -        withFileTypes: true
      -      })) {
      -        this.#readdirAddChild(e, children);
      -      }
      -      this.#readdirSuccess(children);
      -    } catch (er) {
      -      this.#readdirFail(er.code);
      -      children.provisional = 0;
      -    }
      -    return children.slice(0, children.provisional);
      -  }
      -  canReaddir() {
      -    if (this.#type & ENOCHILD)
      -      return false;
      -    const ifmt = IFMT & this.#type;
      -    if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {
      -      return false;
      -    }
      -    return true;
      -  }
      -  shouldWalk(dirs, walkFilter) {
      -    return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this));
      -  }
      -  /**
      -   * Return the Path object corresponding to path as resolved
      -   * by realpath(3).
      -   *
      -   * If the realpath call fails for any reason, `undefined` is returned.
      -   *
      -   * Result is cached, and thus may be outdated if the filesystem is mutated.
      -   * On success, returns a Path object.
      -   */
      -  async realpath() {
      -    if (this.#realpath)
      -      return this.#realpath;
      -    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
      -      return void 0;
      -    try {
      -      const rp = await this.#fs.promises.realpath(this.fullpath());
      -      return this.#realpath = this.resolve(rp);
      -    } catch (_) {
      -      this.#markENOREALPATH();
      -    }
      -  }
      -  /**
      -   * Synchronous {@link realpath}
      -   */
      -  realpathSync() {
      -    if (this.#realpath)
      -      return this.#realpath;
      -    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)
      -      return void 0;
      -    try {
      -      const rp = this.#fs.realpathSync(this.fullpath());
      -      return this.#realpath = this.resolve(rp);
      -    } catch (_) {
      -      this.#markENOREALPATH();
      -    }
      -  }
      -  /**
      -   * Internal method to mark this Path object as the scurry cwd,
      -   * called by {@link PathScurry#chdir}
      -   *
      -   * @internal
      -   */
      -  [setAsCwd](oldCwd) {
      -    if (oldCwd === this)
      -      return;
      -    const changed = /* @__PURE__ */ new Set([]);
      -    let rp = [];
      -    let p = this;
      -    while (p && p.parent) {
      -      changed.add(p);
      -      p.#relative = rp.join(this.sep);
      -      p.#relativePosix = rp.join("/");
      -      p = p.parent;
      -      rp.push("..");
      -    }
      -    p = oldCwd;
      -    while (p && p.parent && !changed.has(p)) {
      -      p.#relative = void 0;
      -      p.#relativePosix = void 0;
      -      p = p.parent;
      -    }
      -  }
      -};
      -var PathWin32 = class _PathWin32 extends PathBase {
      -  /**
      -   * Separator for generating path strings.
      -   */
      -  sep = "\\";
      -  /**
      -   * Separator for parsing path strings.
      -   */
      -  splitSep = eitherSep;
      -  /**
      -   * Do not create new Path objects directly.  They should always be accessed
      -   * via the PathScurry class or other methods on the Path class.
      -   *
      -   * @internal
      -   */
      -  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
      -    super(name, type2, root, roots, nocase, children, opts);
      -  }
      -  /**
      -   * @internal
      -   */
      -  newChild(name, type2 = UNKNOWN, opts = {}) {
      -    return new _PathWin32(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
      -  }
      -  /**
      -   * @internal
      -   */
      -  getRootString(path4) {
      -    return import_path.win32.parse(path4).root;
      -  }
      -  /**
      -   * @internal
      -   */
      -  getRoot(rootPath) {
      -    rootPath = uncToDrive(rootPath.toUpperCase());
      -    if (rootPath === this.root.name) {
      -      return this.root;
      -    }
      -    for (const [compare, root] of Object.entries(this.roots)) {
      -      if (this.sameRoot(rootPath, compare)) {
      -        return this.roots[rootPath] = root;
      -      }
      -    }
      -    return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root;
      -  }
      -  /**
      -   * @internal
      -   */
      -  sameRoot(rootPath, compare = this.root.name) {
      -    rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
      -    return rootPath === compare;
      -  }
      -};
      -var PathPosix = class _PathPosix extends PathBase {
      -  /**
      -   * separator for parsing path strings
      -   */
      -  splitSep = "/";
      -  /**
      -   * separator for generating path strings
      -   */
      -  sep = "/";
      -  /**
      -   * Do not create new Path objects directly.  They should always be accessed
      -   * via the PathScurry class or other methods on the Path class.
      -   *
      -   * @internal
      -   */
      -  constructor(name, type2 = UNKNOWN, root, roots, nocase, children, opts) {
      -    super(name, type2, root, roots, nocase, children, opts);
      -  }
      -  /**
      -   * @internal
      -   */
      -  getRootString(path4) {
      -    return path4.startsWith("/") ? "/" : "";
      -  }
      -  /**
      -   * @internal
      -   */
      -  getRoot(_rootPath) {
      -    return this.root;
      -  }
      -  /**
      -   * @internal
      -   */
      -  newChild(name, type2 = UNKNOWN, opts = {}) {
      -    return new _PathPosix(name, type2, this.root, this.roots, this.nocase, this.childrenCache(), opts);
      -  }
      -};
      -var PathScurryBase = class {
      -  /**
      -   * The root Path entry for the current working directory of this Scurry
      -   */
      -  root;
      -  /**
      -   * The string path for the root of this Scurry's current working directory
      -   */
      -  rootPath;
      -  /**
      -   * A collection of all roots encountered, referenced by rootPath
      -   */
      -  roots;
      -  /**
      -   * The Path entry corresponding to this PathScurry's current working directory.
      -   */
      -  cwd;
      -  #resolveCache;
      -  #resolvePosixCache;
      -  #children;
      -  /**
      -   * Perform path comparisons case-insensitively.
      -   *
      -   * Defaults true on Darwin and Windows systems, false elsewhere.
      -   */
      -  nocase;
      -  #fs;
      -  /**
      -   * This class should not be instantiated directly.
      -   *
      -   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry
      -   *
      -   * @internal
      -   */
      -  constructor(cwd = process.cwd(), pathImpl, sep2, { nocase, childrenCacheSize = 16 * 1024, fs: fs2 = defaultFS } = {}) {
      -    this.#fs = fsFromOption(fs2);
      -    if (cwd instanceof URL || cwd.startsWith("file://")) {
      -      cwd = (0, import_url.fileURLToPath)(cwd);
      -    }
      -    const cwdPath = pathImpl.resolve(cwd);
      -    this.roots = /* @__PURE__ */ Object.create(null);
      -    this.rootPath = this.parseRootPath(cwdPath);
      -    this.#resolveCache = new ResolveCache();
      -    this.#resolvePosixCache = new ResolveCache();
      -    this.#children = new ChildrenCache(childrenCacheSize);
      -    const split = cwdPath.substring(this.rootPath.length).split(sep2);
      -    if (split.length === 1 && !split[0]) {
      -      split.pop();
      -    }
      -    if (nocase === void 0) {
      -      throw new TypeError("must provide nocase setting to PathScurryBase ctor");
      -    }
      -    this.nocase = nocase;
      -    this.root = this.newRoot(this.#fs);
      -    this.roots[this.rootPath] = this.root;
      -    let prev = this.root;
      -    let len = split.length - 1;
      -    const joinSep = pathImpl.sep;
      -    let abs = this.rootPath;
      -    let sawFirst = false;
      -    for (const part of split) {
      -      const l = len--;
      -      prev = prev.child(part, {
      -        relative: new Array(l).fill("..").join(joinSep),
      -        relativePosix: new Array(l).fill("..").join("/"),
      -        fullpath: abs += (sawFirst ? "" : joinSep) + part
      -      });
      -      sawFirst = true;
      -    }
      -    this.cwd = prev;
      -  }
      -  /**
      -   * Get the depth of a provided path, string, or the cwd
      -   */
      -  depth(path4 = this.cwd) {
      -    if (typeof path4 === "string") {
      -      path4 = this.cwd.resolve(path4);
      -    }
      -    return path4.depth();
      -  }
      -  /**
      -   * Return the cache of child entries.  Exposed so subclasses can create
      -   * child Path objects in a platform-specific way.
      -   *
      -   * @internal
      -   */
      -  childrenCache() {
      -    return this.#children;
      -  }
      -  /**
      -   * Resolve one or more path strings to a resolved string
      -   *
      -   * Same interface as require('path').resolve.
      -   *
      -   * Much faster than path.resolve() when called multiple times for the same
      -   * path, because the resolved Path objects are cached.  Much slower
      -   * otherwise.
      -   */
      -  resolve(...paths) {
      -    let r = "";
      -    for (let i = paths.length - 1; i >= 0; i--) {
      -      const p = paths[i];
      -      if (!p || p === ".")
      -        continue;
      -      r = r ? `${p}/${r}` : p;
      -      if (this.isAbsolute(p)) {
      -        break;
      -      }
      -    }
      -    const cached = this.#resolveCache.get(r);
      -    if (cached !== void 0) {
      -      return cached;
      -    }
      -    const result = this.cwd.resolve(r).fullpath();
      -    this.#resolveCache.set(r, result);
      -    return result;
      -  }
      -  /**
      -   * Resolve one or more path strings to a resolved string, returning
      -   * the posix path.  Identical to .resolve() on posix systems, but on
      -   * windows will return a forward-slash separated UNC path.
      -   *
      -   * Same interface as require('path').resolve.
      -   *
      -   * Much faster than path.resolve() when called multiple times for the same
      -   * path, because the resolved Path objects are cached.  Much slower
      -   * otherwise.
      -   */
      -  resolvePosix(...paths) {
      -    let r = "";
      -    for (let i = paths.length - 1; i >= 0; i--) {
      -      const p = paths[i];
      -      if (!p || p === ".")
      -        continue;
      -      r = r ? `${p}/${r}` : p;
      -      if (this.isAbsolute(p)) {
      -        break;
      -      }
      -    }
      -    const cached = this.#resolvePosixCache.get(r);
      -    if (cached !== void 0) {
      -      return cached;
      -    }
      -    const result = this.cwd.resolve(r).fullpathPosix();
      -    this.#resolvePosixCache.set(r, result);
      -    return result;
      -  }
      -  /**
      -   * find the relative path from the cwd to the supplied path string or entry
      -   */
      -  relative(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return entry2.relative();
      -  }
      -  /**
      -   * find the relative path from the cwd to the supplied path string or
      -   * entry, using / as the path delimiter, even on Windows.
      -   */
      -  relativePosix(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return entry2.relativePosix();
      -  }
      -  /**
      -   * Return the basename for the provided string or Path object
      -   */
      -  basename(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return entry2.name;
      -  }
      -  /**
      -   * Return the dirname for the provided string or Path object
      -   */
      -  dirname(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return (entry2.parent || entry2).fullpath();
      -  }
      -  async readdir(entry2 = this.cwd, opts = {
      -    withFileTypes: true
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes } = opts;
      -    if (!entry2.canReaddir()) {
      -      return [];
      -    } else {
      -      const p = await entry2.readdir();
      -      return withFileTypes ? p : p.map((e) => e.name);
      -    }
      -  }
      -  readdirSync(entry2 = this.cwd, opts = {
      -    withFileTypes: true
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true } = opts;
      -    if (!entry2.canReaddir()) {
      -      return [];
      -    } else if (withFileTypes) {
      -      return entry2.readdirSync();
      -    } else {
      -      return entry2.readdirSync().map((e) => e.name);
      -    }
      -  }
      -  /**
      -   * Call lstat() on the string or Path object, and update all known
      -   * information that can be determined.
      -   *
      -   * Note that unlike `fs.lstat()`, the returned value does not contain some
      -   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
      -   * information is required, you will need to call `fs.lstat` yourself.
      -   *
      -   * If the Path refers to a nonexistent file, or if the lstat call fails for
      -   * any reason, `undefined` is returned.  Otherwise the updated Path object is
      -   * returned.
      -   *
      -   * Results are cached, and thus may be out of date if the filesystem is
      -   * mutated.
      -   */
      -  async lstat(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return entry2.lstat();
      -  }
      -  /**
      -   * synchronous {@link PathScurryBase.lstat}
      -   */
      -  lstatSync(entry2 = this.cwd) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    }
      -    return entry2.lstatSync();
      -  }
      -  async readlink(entry2 = this.cwd, { withFileTypes } = {
      -    withFileTypes: false
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      withFileTypes = entry2.withFileTypes;
      -      entry2 = this.cwd;
      -    }
      -    const e = await entry2.readlink();
      -    return withFileTypes ? e : e?.fullpath();
      -  }
      -  readlinkSync(entry2 = this.cwd, { withFileTypes } = {
      -    withFileTypes: false
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      withFileTypes = entry2.withFileTypes;
      -      entry2 = this.cwd;
      -    }
      -    const e = entry2.readlinkSync();
      -    return withFileTypes ? e : e?.fullpath();
      -  }
      -  async realpath(entry2 = this.cwd, { withFileTypes } = {
      -    withFileTypes: false
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      withFileTypes = entry2.withFileTypes;
      -      entry2 = this.cwd;
      -    }
      -    const e = await entry2.realpath();
      -    return withFileTypes ? e : e?.fullpath();
      -  }
      -  realpathSync(entry2 = this.cwd, { withFileTypes } = {
      -    withFileTypes: false
      -  }) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      withFileTypes = entry2.withFileTypes;
      -      entry2 = this.cwd;
      -    }
      -    const e = entry2.realpathSync();
      -    return withFileTypes ? e : e?.fullpath();
      -  }
      -  async walk(entry2 = this.cwd, opts = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
      -    const results = [];
      -    if (!filter2 || filter2(entry2)) {
      -      results.push(withFileTypes ? entry2 : entry2.fullpath());
      -    }
      -    const dirs = /* @__PURE__ */ new Set();
      -    const walk = (dir, cb) => {
      -      dirs.add(dir);
      -      dir.readdirCB((er, entries) => {
      -        if (er) {
      -          return cb(er);
      -        }
      -        let len = entries.length;
      -        if (!len)
      -          return cb();
      -        const next = () => {
      -          if (--len === 0) {
      -            cb();
      -          }
      -        };
      -        for (const e of entries) {
      -          if (!filter2 || filter2(e)) {
      -            results.push(withFileTypes ? e : e.fullpath());
      -          }
      -          if (follow && e.isSymbolicLink()) {
      -            e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());
      -          } else {
      -            if (e.shouldWalk(dirs, walkFilter)) {
      -              walk(e, next);
      -            } else {
      -              next();
      -            }
      -          }
      -        }
      -      }, true);
      -    };
      -    const start = entry2;
      -    return new Promise((res, rej) => {
      -      walk(start, (er) => {
      -        if (er)
      -          return rej(er);
      -        res(results);
      -      });
      -    });
      -  }
      -  walkSync(entry2 = this.cwd, opts = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
      -    const results = [];
      -    if (!filter2 || filter2(entry2)) {
      -      results.push(withFileTypes ? entry2 : entry2.fullpath());
      -    }
      -    const dirs = /* @__PURE__ */ new Set([entry2]);
      -    for (const dir of dirs) {
      -      const entries = dir.readdirSync();
      -      for (const e of entries) {
      -        if (!filter2 || filter2(e)) {
      -          results.push(withFileTypes ? e : e.fullpath());
      -        }
      -        let r = e;
      -        if (e.isSymbolicLink()) {
      -          if (!(follow && (r = e.realpathSync())))
      -            continue;
      -          if (r.isUnknown())
      -            r.lstatSync();
      -        }
      -        if (r.shouldWalk(dirs, walkFilter)) {
      -          dirs.add(r);
      -        }
      -      }
      -    }
      -    return results;
      -  }
      -  /**
      -   * Support for `for await`
      -   *
      -   * Alias for {@link PathScurryBase.iterate}
      -   *
      -   * Note: As of Node 19, this is very slow, compared to other methods of
      -   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead
      -   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.
      -   */
      -  [Symbol.asyncIterator]() {
      -    return this.iterate();
      -  }
      -  iterate(entry2 = this.cwd, options = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      options = entry2;
      -      entry2 = this.cwd;
      -    }
      -    return this.stream(entry2, options)[Symbol.asyncIterator]();
      -  }
      -  /**
      -   * Iterating over a PathScurry performs a synchronous walk.
      -   *
      -   * Alias for {@link PathScurryBase.iterateSync}
      -   */
      -  [Symbol.iterator]() {
      -    return this.iterateSync();
      -  }
      -  *iterateSync(entry2 = this.cwd, opts = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
      -    if (!filter2 || filter2(entry2)) {
      -      yield withFileTypes ? entry2 : entry2.fullpath();
      -    }
      -    const dirs = /* @__PURE__ */ new Set([entry2]);
      -    for (const dir of dirs) {
      -      const entries = dir.readdirSync();
      -      for (const e of entries) {
      -        if (!filter2 || filter2(e)) {
      -          yield withFileTypes ? e : e.fullpath();
      -        }
      -        let r = e;
      -        if (e.isSymbolicLink()) {
      -          if (!(follow && (r = e.realpathSync())))
      -            continue;
      -          if (r.isUnknown())
      -            r.lstatSync();
      -        }
      -        if (r.shouldWalk(dirs, walkFilter)) {
      -          dirs.add(r);
      -        }
      -      }
      -    }
      -  }
      -  stream(entry2 = this.cwd, opts = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
      -    const results = new Minipass({ objectMode: true });
      -    if (!filter2 || filter2(entry2)) {
      -      results.write(withFileTypes ? entry2 : entry2.fullpath());
      -    }
      -    const dirs = /* @__PURE__ */ new Set();
      -    const queue = [entry2];
      -    let processing = 0;
      -    const process2 = () => {
      -      let paused = false;
      -      while (!paused) {
      -        const dir = queue.shift();
      -        if (!dir) {
      -          if (processing === 0)
      -            results.end();
      -          return;
      -        }
      -        processing++;
      -        dirs.add(dir);
      -        const onReaddir = (er, entries, didRealpaths = false) => {
      -          if (er)
      -            return results.emit("error", er);
      -          if (follow && !didRealpaths) {
      -            const promises = [];
      -            for (const e of entries) {
      -              if (e.isSymbolicLink()) {
      -                promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r));
      -              }
      -            }
      -            if (promises.length) {
      -              Promise.all(promises).then(() => onReaddir(null, entries, true));
      -              return;
      -            }
      -          }
      -          for (const e of entries) {
      -            if (e && (!filter2 || filter2(e))) {
      -              if (!results.write(withFileTypes ? e : e.fullpath())) {
      -                paused = true;
      -              }
      -            }
      -          }
      -          processing--;
      -          for (const e of entries) {
      -            const r = e.realpathCached() || e;
      -            if (r.shouldWalk(dirs, walkFilter)) {
      -              queue.push(r);
      -            }
      -          }
      -          if (paused && !results.flowing) {
      -            results.once("drain", process2);
      -          } else if (!sync2) {
      -            process2();
      -          }
      -        };
      -        let sync2 = true;
      -        dir.readdirCB(onReaddir, true);
      -        sync2 = false;
      -      }
      -    };
      -    process2();
      -    return results;
      -  }
      -  streamSync(entry2 = this.cwd, opts = {}) {
      -    if (typeof entry2 === "string") {
      -      entry2 = this.cwd.resolve(entry2);
      -    } else if (!(entry2 instanceof PathBase)) {
      -      opts = entry2;
      -      entry2 = this.cwd;
      -    }
      -    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
      -    const results = new Minipass({ objectMode: true });
      -    const dirs = /* @__PURE__ */ new Set();
      -    if (!filter2 || filter2(entry2)) {
      -      results.write(withFileTypes ? entry2 : entry2.fullpath());
      -    }
      -    const queue = [entry2];
      -    let processing = 0;
      -    const process2 = () => {
      -      let paused = false;
      -      while (!paused) {
      -        const dir = queue.shift();
      -        if (!dir) {
      -          if (processing === 0)
      -            results.end();
      -          return;
      -        }
      -        processing++;
      -        dirs.add(dir);
      -        const entries = dir.readdirSync();
      -        for (const e of entries) {
      -          if (!filter2 || filter2(e)) {
      -            if (!results.write(withFileTypes ? e : e.fullpath())) {
      -              paused = true;
      -            }
      -          }
      -        }
      -        processing--;
      -        for (const e of entries) {
      -          let r = e;
      -          if (e.isSymbolicLink()) {
      -            if (!(follow && (r = e.realpathSync())))
      -              continue;
      -            if (r.isUnknown())
      -              r.lstatSync();
      -          }
      -          if (r.shouldWalk(dirs, walkFilter)) {
      -            queue.push(r);
      -          }
      -        }
      -      }
      -      if (paused && !results.flowing)
      -        results.once("drain", process2);
      -    };
      -    process2();
      -    return results;
      -  }
      -  chdir(path4 = this.cwd) {
      -    const oldCwd = this.cwd;
      -    this.cwd = typeof path4 === "string" ? this.cwd.resolve(path4) : path4;
      -    this.cwd[setAsCwd](oldCwd);
      -  }
      -};
      -var PathScurryWin32 = class extends PathScurryBase {
      -  /**
      -   * separator for generating path strings
      -   */
      -  sep = "\\";
      -  constructor(cwd = process.cwd(), opts = {}) {
      -    const { nocase = true } = opts;
      -    super(cwd, import_path.win32, "\\", { ...opts, nocase });
      -    this.nocase = nocase;
      -    for (let p = this.cwd; p; p = p.parent) {
      -      p.nocase = this.nocase;
      -    }
      -  }
      -  /**
      -   * @internal
      -   */
      -  parseRootPath(dir) {
      -    return import_path.win32.parse(dir).root.toUpperCase();
      -  }
      -  /**
      -   * @internal
      -   */
      -  newRoot(fs2) {
      -    return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
      -  }
      -  /**
      -   * Return true if the provided path string is an absolute path
      -   */
      -  isAbsolute(p) {
      -    return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p);
      -  }
      -};
      -var PathScurryPosix = class extends PathScurryBase {
      -  /**
      -   * separator for generating path strings
      -   */
      -  sep = "/";
      -  constructor(cwd = process.cwd(), opts = {}) {
      -    const { nocase = false } = opts;
      -    super(cwd, import_path.posix, "/", { ...opts, nocase });
      -    this.nocase = nocase;
      -  }
      -  /**
      -   * @internal
      -   */
      -  parseRootPath(_dir) {
      -    return "/";
      -  }
      -  /**
      -   * @internal
      -   */
      -  newRoot(fs2) {
      -    return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
      -  }
      -  /**
      -   * Return true if the provided path string is an absolute path
      -   */
      -  isAbsolute(p) {
      -    return p.startsWith("/");
      -  }
      -};
      -var PathScurryDarwin = class extends PathScurryPosix {
      -  constructor(cwd = process.cwd(), opts = {}) {
      -    const { nocase = true } = opts;
      -    super(cwd, { ...opts, nocase });
      -  }
      -};
      -var Path = process.platform === "win32" ? PathWin32 : PathPosix;
      -var PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix;
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
      -var import_url2 = require("url");
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/pattern.js
      -var isPatternList = (pl) => pl.length >= 1;
      -var isGlobList = (gl) => gl.length >= 1;
      -var Pattern = class _Pattern {
      -  #patternList;
      -  #globList;
      -  #index;
      -  length;
      -  #platform;
      -  #rest;
      -  #globString;
      -  #isDrive;
      -  #isUNC;
      -  #isAbsolute;
      -  #followGlobstar = true;
      -  constructor(patternList, globList, index, platform) {
      -    if (!isPatternList(patternList)) {
      -      throw new TypeError("empty pattern list");
      -    }
      -    if (!isGlobList(globList)) {
      -      throw new TypeError("empty glob list");
      -    }
      -    if (globList.length !== patternList.length) {
      -      throw new TypeError("mismatched pattern list and glob list lengths");
      -    }
      -    this.length = patternList.length;
      -    if (index < 0 || index >= this.length) {
      -      throw new TypeError("index out of range");
      -    }
      -    this.#patternList = patternList;
      -    this.#globList = globList;
      -    this.#index = index;
      -    this.#platform = platform;
      -    if (this.#index === 0) {
      -      if (this.isUNC()) {
      -        const [p0, p1, p2, p3, ...prest] = this.#patternList;
      -        const [g0, g1, g2, g3, ...grest] = this.#globList;
      -        if (prest[0] === "") {
      -          prest.shift();
      -          grest.shift();
      -        }
      -        const p = [p0, p1, p2, p3, ""].join("/");
      -        const g = [g0, g1, g2, g3, ""].join("/");
      -        this.#patternList = [p, ...prest];
      -        this.#globList = [g, ...grest];
      -        this.length = this.#patternList.length;
      -      } else if (this.isDrive() || this.isAbsolute()) {
      -        const [p1, ...prest] = this.#patternList;
      -        const [g1, ...grest] = this.#globList;
      -        if (prest[0] === "") {
      -          prest.shift();
      -          grest.shift();
      -        }
      -        const p = p1 + "/";
      -        const g = g1 + "/";
      -        this.#patternList = [p, ...prest];
      -        this.#globList = [g, ...grest];
      -        this.length = this.#patternList.length;
      -      }
      -    }
      -  }
      -  /**
      -   * The first entry in the parsed list of patterns
      -   */
      -  pattern() {
      -    return this.#patternList[this.#index];
      -  }
      -  /**
      -   * true of if pattern() returns a string
      -   */
      -  isString() {
      -    return typeof this.#patternList[this.#index] === "string";
      -  }
      -  /**
      -   * true of if pattern() returns GLOBSTAR
      -   */
      -  isGlobstar() {
      -    return this.#patternList[this.#index] === GLOBSTAR;
      -  }
      -  /**
      -   * true if pattern() returns a regexp
      -   */
      -  isRegExp() {
      -    return this.#patternList[this.#index] instanceof RegExp;
      -  }
      -  /**
      -   * The /-joined set of glob parts that make up this pattern
      -   */
      -  globString() {
      -    return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/"));
      -  }
      -  /**
      -   * true if there are more pattern parts after this one
      -   */
      -  hasMore() {
      -    return this.length > this.#index + 1;
      -  }
      -  /**
      -   * The rest of the pattern after this part, or null if this is the end
      -   */
      -  rest() {
      -    if (this.#rest !== void 0)
      -      return this.#rest;
      -    if (!this.hasMore())
      -      return this.#rest = null;
      -    this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
      -    this.#rest.#isAbsolute = this.#isAbsolute;
      -    this.#rest.#isUNC = this.#isUNC;
      -    this.#rest.#isDrive = this.#isDrive;
      -    return this.#rest;
      -  }
      -  /**
      -   * true if the pattern represents a //unc/path/ on windows
      -   */
      -  isUNC() {
      -    const pl = this.#patternList;
      -    return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3];
      -  }
      -  // pattern like C:/...
      -  // split = ['C:', ...]
      -  // XXX: would be nice to handle patterns like `c:*` to test the cwd
      -  // in c: for *, but I don't know of a way to even figure out what that
      -  // cwd is without actually chdir'ing into it?
      -  /**
      -   * True if the pattern starts with a drive letter on Windows
      -   */
      -  isDrive() {
      -    const pl = this.#patternList;
      -    return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]);
      -  }
      -  // pattern = '/' or '/...' or '/x/...'
      -  // split = ['', ''] or ['', ...] or ['', 'x', ...]
      -  // Drive and UNC both considered absolute on windows
      -  /**
      -   * True if the pattern is rooted on an absolute path
      -   */
      -  isAbsolute() {
      -    const pl = this.#patternList;
      -    return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC();
      -  }
      -  /**
      -   * consume the root of the pattern, and return it
      -   */
      -  root() {
      -    const p = this.#patternList[0];
      -    return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : "";
      -  }
      -  /**
      -   * Check to see if the current globstar pattern is allowed to follow
      -   * a symbolic link.
      -   */
      -  checkFollowGlobstar() {
      -    return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar);
      -  }
      -  /**
      -   * Mark that the current globstar pattern is following a symbolic link
      -   */
      -  markFollowGlobstar() {
      -    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
      -      return false;
      -    this.#followGlobstar = false;
      -    return true;
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/ignore.js
      -var defaultPlatform2 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
      -var Ignore = class {
      -  relative;
      -  relativeChildren;
      -  absolute;
      -  absoluteChildren;
      -  constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform2 }) {
      -    this.relative = [];
      -    this.absolute = [];
      -    this.relativeChildren = [];
      -    this.absoluteChildren = [];
      -    const mmopts = {
      -      dot: true,
      -      nobrace,
      -      nocase,
      -      noext,
      -      noglobstar,
      -      optimizationLevel: 2,
      -      platform,
      -      nocomment: true,
      -      nonegate: true
      -    };
      -    for (const ign of ignored) {
      -      const mm = new Minimatch(ign, mmopts);
      -      for (let i = 0; i < mm.set.length; i++) {
      -        const parsed = mm.set[i];
      -        const globParts = mm.globParts[i];
      -        if (!parsed || !globParts) {
      -          throw new Error("invalid pattern object");
      -        }
      -        const p = new Pattern(parsed, globParts, 0, platform);
      -        const m = new Minimatch(p.globString(), mmopts);
      -        const children = globParts[globParts.length - 1] === "**";
      -        const absolute = p.isAbsolute();
      -        if (absolute)
      -          this.absolute.push(m);
      -        else
      -          this.relative.push(m);
      -        if (children) {
      -          if (absolute)
      -            this.absoluteChildren.push(m);
      -          else
      -            this.relativeChildren.push(m);
      -        }
      -      }
      -    }
      -  }
      -  ignored(p) {
      -    const fullpath = p.fullpath();
      -    const fullpaths = `${fullpath}/`;
      -    const relative = p.relative() || ".";
      -    const relatives = `${relative}/`;
      -    for (const m of this.relative) {
      -      if (m.match(relative) || m.match(relatives))
      -        return true;
      -    }
      -    for (const m of this.absolute) {
      -      if (m.match(fullpath) || m.match(fullpaths))
      -        return true;
      -    }
      -    return false;
      -  }
      -  childrenIgnored(p) {
      -    const fullpath = p.fullpath() + "/";
      -    const relative = (p.relative() || ".") + "/";
      -    for (const m of this.relativeChildren) {
      -      if (m.match(relative))
      -        return true;
      -    }
      -    for (const m of this.absoluteChildren) {
      -      if (m.match(fullpath))
      -        return true;
      -    }
      -    return false;
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/processor.js
      -var HasWalkedCache = class _HasWalkedCache {
      -  store;
      -  constructor(store = /* @__PURE__ */ new Map()) {
      -    this.store = store;
      -  }
      -  copy() {
      -    return new _HasWalkedCache(new Map(this.store));
      -  }
      -  hasWalked(target, pattern) {
      -    return this.store.get(target.fullpath())?.has(pattern.globString());
      -  }
      -  storeWalked(target, pattern) {
      -    const fullpath = target.fullpath();
      -    const cached = this.store.get(fullpath);
      -    if (cached)
      -      cached.add(pattern.globString());
      -    else
      -      this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()]));
      -  }
      -};
      -var MatchRecord = class {
      -  store = /* @__PURE__ */ new Map();
      -  add(target, absolute, ifDir) {
      -    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
      -    const current = this.store.get(target);
      -    this.store.set(target, current === void 0 ? n : n & current);
      -  }
      -  // match, absolute, ifdir
      -  entries() {
      -    return [...this.store.entries()].map(([path4, n]) => [
      -      path4,
      -      !!(n & 2),
      -      !!(n & 1)
      -    ]);
      -  }
      -};
      -var SubWalks = class {
      -  store = /* @__PURE__ */ new Map();
      -  add(target, pattern) {
      -    if (!target.canReaddir()) {
      -      return;
      -    }
      -    const subs = this.store.get(target);
      -    if (subs) {
      -      if (!subs.find((p) => p.globString() === pattern.globString())) {
      -        subs.push(pattern);
      -      }
      -    } else
      -      this.store.set(target, [pattern]);
      -  }
      -  get(target) {
      -    const subs = this.store.get(target);
      -    if (!subs) {
      -      throw new Error("attempting to walk unknown path");
      -    }
      -    return subs;
      -  }
      -  entries() {
      -    return this.keys().map((k) => [k, this.store.get(k)]);
      -  }
      -  keys() {
      -    return [...this.store.keys()].filter((t) => t.canReaddir());
      -  }
      -};
      -var Processor = class _Processor {
      -  hasWalkedCache;
      -  matches = new MatchRecord();
      -  subwalks = new SubWalks();
      -  patterns;
      -  follow;
      -  dot;
      -  opts;
      -  constructor(opts, hasWalkedCache) {
      -    this.opts = opts;
      -    this.follow = !!opts.follow;
      -    this.dot = !!opts.dot;
      -    this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();
      -  }
      -  processPatterns(target, patterns) {
      -    this.patterns = patterns;
      -    const processingSet = patterns.map((p) => [target, p]);
      -    for (let [t, pattern] of processingSet) {
      -      this.hasWalkedCache.storeWalked(t, pattern);
      -      const root = pattern.root();
      -      const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
      -      if (root) {
      -        t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root);
      -        const rest2 = pattern.rest();
      -        if (!rest2) {
      -          this.matches.add(t, true, false);
      -          continue;
      -        } else {
      -          pattern = rest2;
      -        }
      -      }
      -      if (t.isENOENT())
      -        continue;
      -      let p;
      -      let rest;
      -      let changed = false;
      -      while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) {
      -        const c = t.resolve(p);
      -        t = c;
      -        pattern = rest;
      -        changed = true;
      -      }
      -      p = pattern.pattern();
      -      rest = pattern.rest();
      -      if (changed) {
      -        if (this.hasWalkedCache.hasWalked(t, pattern))
      -          continue;
      -        this.hasWalkedCache.storeWalked(t, pattern);
      -      }
      -      if (typeof p === "string") {
      -        const ifDir = p === ".." || p === "" || p === ".";
      -        this.matches.add(t.resolve(p), absolute, ifDir);
      -        continue;
      -      } else if (p === GLOBSTAR) {
      -        if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) {
      -          this.subwalks.add(t, pattern);
      -        }
      -        const rp = rest?.pattern();
      -        const rrest = rest?.rest();
      -        if (!rest || (rp === "" || rp === ".") && !rrest) {
      -          this.matches.add(t, absolute, rp === "" || rp === ".");
      -        } else {
      -          if (rp === "..") {
      -            const tp = t.parent || t;
      -            if (!rrest)
      -              this.matches.add(tp, absolute, true);
      -            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
      -              this.subwalks.add(tp, rrest);
      -            }
      -          }
      -        }
      -      } else if (p instanceof RegExp) {
      -        this.subwalks.add(t, pattern);
      -      }
      -    }
      -    return this;
      -  }
      -  subwalkTargets() {
      -    return this.subwalks.keys();
      -  }
      -  child() {
      -    return new _Processor(this.opts, this.hasWalkedCache);
      -  }
      -  // return a new Processor containing the subwalks for each
      -  // child entry, and a set of matches, and
      -  // a hasWalkedCache that's a copy of this one
      -  // then we're going to call
      -  filterEntries(parent, entries) {
      -    const patterns = this.subwalks.get(parent);
      -    const results = this.child();
      -    for (const e of entries) {
      -      for (const pattern of patterns) {
      -        const absolute = pattern.isAbsolute();
      -        const p = pattern.pattern();
      -        const rest = pattern.rest();
      -        if (p === GLOBSTAR) {
      -          results.testGlobstar(e, pattern, rest, absolute);
      -        } else if (p instanceof RegExp) {
      -          results.testRegExp(e, p, rest, absolute);
      -        } else {
      -          results.testString(e, p, rest, absolute);
      -        }
      -      }
      -    }
      -    return results;
      -  }
      -  testGlobstar(e, pattern, rest, absolute) {
      -    if (this.dot || !e.name.startsWith(".")) {
      -      if (!pattern.hasMore()) {
      -        this.matches.add(e, absolute, false);
      -      }
      -      if (e.canReaddir()) {
      -        if (this.follow || !e.isSymbolicLink()) {
      -          this.subwalks.add(e, pattern);
      -        } else if (e.isSymbolicLink()) {
      -          if (rest && pattern.checkFollowGlobstar()) {
      -            this.subwalks.add(e, rest);
      -          } else if (pattern.markFollowGlobstar()) {
      -            this.subwalks.add(e, pattern);
      -          }
      -        }
      -      }
      -    }
      -    if (rest) {
      -      const rp = rest.pattern();
      -      if (typeof rp === "string" && // dots and empty were handled already
      -      rp !== ".." && rp !== "" && rp !== ".") {
      -        this.testString(e, rp, rest.rest(), absolute);
      -      } else if (rp === "..") {
      -        const ep = e.parent || e;
      -        this.subwalks.add(ep, rest);
      -      } else if (rp instanceof RegExp) {
      -        this.testRegExp(e, rp, rest.rest(), absolute);
      -      }
      -    }
      -  }
      -  testRegExp(e, p, rest, absolute) {
      -    if (!p.test(e.name))
      -      return;
      -    if (!rest) {
      -      this.matches.add(e, absolute, false);
      -    } else {
      -      this.subwalks.add(e, rest);
      -    }
      -  }
      -  testString(e, p, rest, absolute) {
      -    if (!e.isNamed(p))
      -      return;
      -    if (!rest) {
      -      this.matches.add(e, absolute, false);
      -    } else {
      -      this.subwalks.add(e, rest);
      -    }
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/walker.js
      -var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new Ignore([ignore], opts) : Array.isArray(ignore) ? new Ignore(ignore, opts) : ignore;
      -var GlobUtil = class {
      -  path;
      -  patterns;
      -  opts;
      -  seen = /* @__PURE__ */ new Set();
      -  paused = false;
      -  aborted = false;
      -  #onResume = [];
      -  #ignore;
      -  #sep;
      -  signal;
      -  maxDepth;
      -  constructor(patterns, path4, opts) {
      -    this.patterns = patterns;
      -    this.path = path4;
      -    this.opts = opts;
      -    this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/";
      -    if (opts.ignore) {
      -      this.#ignore = makeIgnore(opts.ignore, opts);
      -    }
      -    this.maxDepth = opts.maxDepth || Infinity;
      -    if (opts.signal) {
      -      this.signal = opts.signal;
      -      this.signal.addEventListener("abort", () => {
      -        this.#onResume.length = 0;
      -      });
      -    }
      -  }
      -  #ignored(path4) {
      -    return this.seen.has(path4) || !!this.#ignore?.ignored?.(path4);
      -  }
      -  #childrenIgnored(path4) {
      -    return !!this.#ignore?.childrenIgnored?.(path4);
      -  }
      -  // backpressure mechanism
      -  pause() {
      -    this.paused = true;
      -  }
      -  resume() {
      -    if (this.signal?.aborted)
      -      return;
      -    this.paused = false;
      -    let fn = void 0;
      -    while (!this.paused && (fn = this.#onResume.shift())) {
      -      fn();
      -    }
      -  }
      -  onResume(fn) {
      -    if (this.signal?.aborted)
      -      return;
      -    if (!this.paused) {
      -      fn();
      -    } else {
      -      this.#onResume.push(fn);
      -    }
      -  }
      -  // do the requisite realpath/stat checking, and return the path
      -  // to add or undefined to filter it out.
      -  async matchCheck(e, ifDir) {
      -    if (ifDir && this.opts.nodir)
      -      return void 0;
      -    let rpc;
      -    if (this.opts.realpath) {
      -      rpc = e.realpathCached() || await e.realpath();
      -      if (!rpc)
      -        return void 0;
      -      e = rpc;
      -    }
      -    const needStat = e.isUnknown() || this.opts.stat;
      -    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
      -  }
      -  matchCheckTest(e, ifDir) {
      -    return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0;
      -  }
      -  matchCheckSync(e, ifDir) {
      -    if (ifDir && this.opts.nodir)
      -      return void 0;
      -    let rpc;
      -    if (this.opts.realpath) {
      -      rpc = e.realpathCached() || e.realpathSync();
      -      if (!rpc)
      -        return void 0;
      -      e = rpc;
      -    }
      -    const needStat = e.isUnknown() || this.opts.stat;
      -    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
      -  }
      -  matchFinish(e, absolute) {
      -    if (this.#ignored(e))
      -      return;
      -    const abs = this.opts.absolute === void 0 ? absolute : this.opts.absolute;
      -    this.seen.add(e);
      -    const mark = this.opts.mark && e.isDirectory() ? this.#sep : "";
      -    if (this.opts.withFileTypes) {
      -      this.matchEmit(e);
      -    } else if (abs) {
      -      const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath();
      -      this.matchEmit(abs2 + mark);
      -    } else {
      -      const rel = this.opts.posix ? e.relativePosix() : e.relative();
      -      const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : "";
      -      this.matchEmit(!rel ? "." + mark : pre + rel + mark);
      -    }
      -  }
      -  async match(e, absolute, ifDir) {
      -    const p = await this.matchCheck(e, ifDir);
      -    if (p)
      -      this.matchFinish(p, absolute);
      -  }
      -  matchSync(e, absolute, ifDir) {
      -    const p = this.matchCheckSync(e, ifDir);
      -    if (p)
      -      this.matchFinish(p, absolute);
      -  }
      -  walkCB(target, patterns, cb) {
      -    if (this.signal?.aborted)
      -      cb();
      -    this.walkCB2(target, patterns, new Processor(this.opts), cb);
      -  }
      -  walkCB2(target, patterns, processor, cb) {
      -    if (this.#childrenIgnored(target))
      -      return cb();
      -    if (this.signal?.aborted)
      -      cb();
      -    if (this.paused) {
      -      this.onResume(() => this.walkCB2(target, patterns, processor, cb));
      -      return;
      -    }
      -    processor.processPatterns(target, patterns);
      -    let tasks = 1;
      -    const next = () => {
      -      if (--tasks === 0)
      -        cb();
      -    };
      -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
      -      if (this.#ignored(m))
      -        continue;
      -      tasks++;
      -      this.match(m, absolute, ifDir).then(() => next());
      -    }
      -    for (const t of processor.subwalkTargets()) {
      -      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
      -        continue;
      -      }
      -      tasks++;
      -      const childrenCached = t.readdirCached();
      -      if (t.calledReaddir())
      -        this.walkCB3(t, childrenCached, processor, next);
      -      else {
      -        t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
      -      }
      -    }
      -    next();
      -  }
      -  walkCB3(target, entries, processor, cb) {
      -    processor = processor.filterEntries(target, entries);
      -    let tasks = 1;
      -    const next = () => {
      -      if (--tasks === 0)
      -        cb();
      -    };
      -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
      -      if (this.#ignored(m))
      -        continue;
      -      tasks++;
      -      this.match(m, absolute, ifDir).then(() => next());
      -    }
      -    for (const [target2, patterns] of processor.subwalks.entries()) {
      -      tasks++;
      -      this.walkCB2(target2, patterns, processor.child(), next);
      -    }
      -    next();
      -  }
      -  walkCBSync(target, patterns, cb) {
      -    if (this.signal?.aborted)
      -      cb();
      -    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
      -  }
      -  walkCB2Sync(target, patterns, processor, cb) {
      -    if (this.#childrenIgnored(target))
      -      return cb();
      -    if (this.signal?.aborted)
      -      cb();
      -    if (this.paused) {
      -      this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
      -      return;
      -    }
      -    processor.processPatterns(target, patterns);
      -    let tasks = 1;
      -    const next = () => {
      -      if (--tasks === 0)
      -        cb();
      -    };
      -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
      -      if (this.#ignored(m))
      -        continue;
      -      this.matchSync(m, absolute, ifDir);
      -    }
      -    for (const t of processor.subwalkTargets()) {
      -      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
      -        continue;
      -      }
      -      tasks++;
      -      const children = t.readdirSync();
      -      this.walkCB3Sync(t, children, processor, next);
      -    }
      -    next();
      -  }
      -  walkCB3Sync(target, entries, processor, cb) {
      -    processor = processor.filterEntries(target, entries);
      -    let tasks = 1;
      -    const next = () => {
      -      if (--tasks === 0)
      -        cb();
      -    };
      -    for (const [m, absolute, ifDir] of processor.matches.entries()) {
      -      if (this.#ignored(m))
      -        continue;
      -      this.matchSync(m, absolute, ifDir);
      -    }
      -    for (const [target2, patterns] of processor.subwalks.entries()) {
      -      tasks++;
      -      this.walkCB2Sync(target2, patterns, processor.child(), next);
      -    }
      -    next();
      -  }
      -};
      -var GlobWalker = class extends GlobUtil {
      -  matches;
      -  constructor(patterns, path4, opts) {
      -    super(patterns, path4, opts);
      -    this.matches = /* @__PURE__ */ new Set();
      -  }
      -  matchEmit(e) {
      -    this.matches.add(e);
      -  }
      -  async walk() {
      -    if (this.signal?.aborted)
      -      throw this.signal.reason;
      -    if (this.path.isUnknown()) {
      -      await this.path.lstat();
      -    }
      -    await new Promise((res, rej) => {
      -      this.walkCB(this.path, this.patterns, () => {
      -        if (this.signal?.aborted) {
      -          rej(this.signal.reason);
      -        } else {
      -          res(this.matches);
      -        }
      -      });
      -    });
      -    return this.matches;
      -  }
      -  walkSync() {
      -    if (this.signal?.aborted)
      -      throw this.signal.reason;
      -    if (this.path.isUnknown()) {
      -      this.path.lstatSync();
      -    }
      -    this.walkCBSync(this.path, this.patterns, () => {
      -      if (this.signal?.aborted)
      -        throw this.signal.reason;
      -    });
      -    return this.matches;
      -  }
      -};
      -var GlobStream = class extends GlobUtil {
      -  results;
      -  constructor(patterns, path4, opts) {
      -    super(patterns, path4, opts);
      -    this.results = new Minipass({
      -      signal: this.signal,
      -      objectMode: true
      -    });
      -    this.results.on("drain", () => this.resume());
      -    this.results.on("resume", () => this.resume());
      -  }
      -  matchEmit(e) {
      -    this.results.write(e);
      -    if (!this.results.flowing)
      -      this.pause();
      -  }
      -  stream() {
      -    const target = this.path;
      -    if (target.isUnknown()) {
      -      target.lstat().then(() => {
      -        this.walkCB(target, this.patterns, () => this.results.end());
      -      });
      -    } else {
      -      this.walkCB(target, this.patterns, () => this.results.end());
      -    }
      -    return this.results;
      -  }
      -  streamSync() {
      -    if (this.path.isUnknown()) {
      -      this.path.lstatSync();
      -    }
      -    this.walkCBSync(this.path, this.patterns, () => this.results.end());
      -    return this.results;
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/glob.js
      -var defaultPlatform3 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
      -var Glob = class {
      -  absolute;
      -  cwd;
      -  root;
      -  dot;
      -  dotRelative;
      -  follow;
      -  ignore;
      -  magicalBraces;
      -  mark;
      -  matchBase;
      -  maxDepth;
      -  nobrace;
      -  nocase;
      -  nodir;
      -  noext;
      -  noglobstar;
      -  pattern;
      -  platform;
      -  realpath;
      -  scurry;
      -  stat;
      -  signal;
      -  windowsPathsNoEscape;
      -  withFileTypes;
      -  /**
      -   * The options provided to the constructor.
      -   */
      -  opts;
      -  /**
      -   * An array of parsed immutable {@link Pattern} objects.
      -   */
      -  patterns;
      -  /**
      -   * All options are stored as properties on the `Glob` object.
      -   *
      -   * See {@link GlobOptions} for full options descriptions.
      -   *
      -   * Note that a previous `Glob` object can be passed as the
      -   * `GlobOptions` to another `Glob` instantiation to re-use settings
      -   * and caches with a new pattern.
      -   *
      -   * Traversal functions can be called multiple times to run the walk
      -   * again.
      -   */
      -  constructor(pattern, opts) {
      -    if (!opts)
      -      throw new TypeError("glob options required");
      -    this.withFileTypes = !!opts.withFileTypes;
      -    this.signal = opts.signal;
      -    this.follow = !!opts.follow;
      -    this.dot = !!opts.dot;
      -    this.dotRelative = !!opts.dotRelative;
      -    this.nodir = !!opts.nodir;
      -    this.mark = !!opts.mark;
      -    if (!opts.cwd) {
      -      this.cwd = "";
      -    } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
      -      opts.cwd = (0, import_url2.fileURLToPath)(opts.cwd);
      -    }
      -    this.cwd = opts.cwd || "";
      -    this.root = opts.root;
      -    this.magicalBraces = !!opts.magicalBraces;
      -    this.nobrace = !!opts.nobrace;
      -    this.noext = !!opts.noext;
      -    this.realpath = !!opts.realpath;
      -    this.absolute = opts.absolute;
      -    this.noglobstar = !!opts.noglobstar;
      -    this.matchBase = !!opts.matchBase;
      -    this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity;
      -    this.stat = !!opts.stat;
      -    this.ignore = opts.ignore;
      -    if (this.withFileTypes && this.absolute !== void 0) {
      -      throw new Error("cannot set absolute and withFileTypes:true");
      -    }
      -    if (typeof pattern === "string") {
      -      pattern = [pattern];
      -    }
      -    this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false;
      -    if (this.windowsPathsNoEscape) {
      -      pattern = pattern.map((p) => p.replace(/\\/g, "/"));
      -    }
      -    if (this.matchBase) {
      -      if (opts.noglobstar) {
      -        throw new TypeError("base matching requires globstar");
      -      }
      -      pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`);
      -    }
      -    this.pattern = pattern;
      -    this.platform = opts.platform || defaultPlatform3;
      -    this.opts = { ...opts, platform: this.platform };
      -    if (opts.scurry) {
      -      this.scurry = opts.scurry;
      -      if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) {
      -        throw new Error("nocase option contradicts provided scurry option");
      -      }
      -    } else {
      -      const Scurry = opts.platform === "win32" ? PathScurryWin32 : opts.platform === "darwin" ? PathScurryDarwin : opts.platform ? PathScurryPosix : PathScurry;
      -      this.scurry = new Scurry(this.cwd, {
      -        nocase: opts.nocase,
      -        fs: opts.fs
      -      });
      -    }
      -    this.nocase = this.scurry.nocase;
      -    const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32";
      -    const mmo = {
      -      // default nocase based on platform
      -      ...opts,
      -      dot: this.dot,
      -      matchBase: this.matchBase,
      -      nobrace: this.nobrace,
      -      nocase: this.nocase,
      -      nocaseMagicOnly,
      -      nocomment: true,
      -      noext: this.noext,
      -      nonegate: true,
      -      optimizationLevel: 2,
      -      platform: this.platform,
      -      windowsPathsNoEscape: this.windowsPathsNoEscape,
      -      debug: !!this.opts.debug
      -    };
      -    const mms = this.pattern.map((p) => new Minimatch(p, mmo));
      -    const [matchSet, globParts] = mms.reduce((set2, m) => {
      -      set2[0].push(...m.set);
      -      set2[1].push(...m.globParts);
      -      return set2;
      -    }, [[], []]);
      -    this.patterns = matchSet.map((set2, i) => {
      -      const g = globParts[i];
      -      if (!g)
      -        throw new Error("invalid pattern object");
      -      return new Pattern(set2, g, 0, this.platform);
      -    });
      -  }
      -  async walk() {
      -    return [
      -      ...await new GlobWalker(this.patterns, this.scurry.cwd, {
      -        ...this.opts,
      -        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
      -        platform: this.platform,
      -        nocase: this.nocase
      -      }).walk()
      -    ];
      -  }
      -  walkSync() {
      -    return [
      -      ...new GlobWalker(this.patterns, this.scurry.cwd, {
      -        ...this.opts,
      -        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
      -        platform: this.platform,
      -        nocase: this.nocase
      -      }).walkSync()
      -    ];
      -  }
      -  stream() {
      -    return new GlobStream(this.patterns, this.scurry.cwd, {
      -      ...this.opts,
      -      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
      -      platform: this.platform,
      -      nocase: this.nocase
      -    }).stream();
      -  }
      -  streamSync() {
      -    return new GlobStream(this.patterns, this.scurry.cwd, {
      -      ...this.opts,
      -      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
      -      platform: this.platform,
      -      nocase: this.nocase
      -    }).streamSync();
      -  }
      -  /**
      -   * Default sync iteration function. Returns a Generator that
      -   * iterates over the results.
      -   */
      -  iterateSync() {
      -    return this.streamSync()[Symbol.iterator]();
      -  }
      -  [Symbol.iterator]() {
      -    return this.iterateSync();
      -  }
      -  /**
      -   * Default async iteration function. Returns an AsyncGenerator that
      -   * iterates over the results.
      -   */
      -  iterate() {
      -    return this.stream()[Symbol.asyncIterator]();
      -  }
      -  [Symbol.asyncIterator]() {
      -    return this.iterate();
      -  }
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/has-magic.js
      -var hasMagic = (pattern, options = {}) => {
      -  if (!Array.isArray(pattern)) {
      -    pattern = [pattern];
      -  }
      -  for (const p of pattern) {
      -    if (new Minimatch(p, options).hasMagic())
      -      return true;
      -  }
      -  return false;
      -};
      -
      -// ../../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/esm/index.js
      -function globStreamSync(pattern, options = {}) {
      -  return new Glob(pattern, options).streamSync();
      -}
      -function globStream(pattern, options = {}) {
      -  return new Glob(pattern, options).stream();
      -}
      -function globSync(pattern, options = {}) {
      -  return new Glob(pattern, options).walkSync();
      -}
      -async function glob_(pattern, options = {}) {
      -  return new Glob(pattern, options).walk();
      -}
      -function globIterateSync(pattern, options = {}) {
      -  return new Glob(pattern, options).iterateSync();
      -}
      -function globIterate(pattern, options = {}) {
      -  return new Glob(pattern, options).iterate();
      -}
      -var streamSync = globStreamSync;
      -var stream = Object.assign(globStream, { sync: globStreamSync });
      -var iterateSync = globIterateSync;
      -var iterate = Object.assign(globIterate, {
      -  sync: globIterateSync
      -});
      -var sync = Object.assign(globSync, {
      -  stream: globStreamSync,
      -  iterate: globIterateSync
      -});
      -var glob = Object.assign(glob_, {
      -  glob: glob_,
      -  globSync,
      -  sync,
      -  globStream,
      -  stream,
      -  globStreamSync,
      -  streamSync,
      -  globIterate,
      -  iterate,
      -  globIterateSync,
      -  iterateSync,
      -  Glob,
      -  hasMagic,
      -  escape,
      -  unescape
      -});
      -glob.glob = glob;
      -
      -// src/runAllTests.ts
      -function runAllTests(...types2) {
      -  return runTestsInDir(
      -    path3.join(getCursorlessRepoRoot(), "packages"),
      -    (files) => files.filter((f) => {
      -      if (f.endsWith("neovim.test.cjs")) {
      -        return types2.includes(3 /* neovim */);
      -      }
      -      if (f.endsWith("vscode.test.cjs")) {
      -        return types2.includes(1 /* vscode */);
      -      }
      -      if (f.endsWith("talon.test.cjs")) {
      -        return types2.includes(2 /* talon */);
      -      }
      -      return types2.includes(0 /* unit */);
      -    })
      -  );
      -}
      -async function runTestsInDir(testRoot, filterFiles) {
      -  const mocha = new import_mocha.default({
      -    ui: "tdd",
      -    color: true,
      -    grep: runTestSubset() ? testSubsetGrepString() : void 0
      -    // Only run a subset of tests
      -  });
      -  const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
      -  files.forEach((f) => mocha.addFile(path3.resolve(testRoot, f)));
      -  try {
      -    await new Promise((c, e) => {
      -      mocha.run((failures) => {
      -        if (failures > 0) {
      -          e(new Error(`${failures} tests failed.`));
      -        } else {
      -          c();
      -        }
      -      });
      -    });
      -  } catch (err) {
      -    console.error(err);
      -    throw err;
      -  }
      -}
      -
      -// src/index.ts
      -async function run(plugin) {
      -  global.additionalParameters = {
      -    client: plugin.nvim
      -  };
      -  try {
      -    await runAllTests(3 /* neovim */, 0 /* unit */);
      -  } catch (error) {
      -    console.error("runAllTests failed");
      -    console.error(error);
      -    return;
      -  }
      -  console.log("runAllTests succeeded");
      -}
      -function entry(plugin) {
      -  plugin.registerFunction("TestHarnessRun", async () => await run(plugin), {
      -    sync: false
      -  });
      -}
      -// Annotate the CommonJS export names for ESM import in node:
      -0 && (module.exports = {
      -  run
      -});
      -/*! Bundled license information:
      -
      -he/he.js:
      -  (*! https://mths.be/he v1.2.0 by @mathias | MIT license *)
      -
      -mocha/lib/mocha.js:
      -  (*!
      -   * mocha
      -   * Copyright(c) 2011 TJ Holowaychuk 
      -   * MIT Licensed
      -   *)
      -
      -lodash/lodash.js:
      -  (**
      -   * @license
      -   * Lodash 
      -   * Copyright OpenJS Foundation and other contributors 
      -   * Released under MIT license 
      -   * Based on Underscore.js 1.8.3 
      -   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
      -   *)
      -
      -js-yaml/dist/js-yaml.mjs:
      -  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
      -*/
      -//# sourceMappingURL=index.cjs.map
      diff --git a/dist/cursorless.nvim/node/test-harness/package.json b/dist/cursorless.nvim/node/test-harness/package.json
      deleted file mode 100644
      index 8d32bcd9af..0000000000
      --- a/dist/cursorless.nvim/node/test-harness/package.json
      +++ /dev/null
      @@ -1,48 +0,0 @@
      -{
      -  "name": "@cursorless/test-harness",
      -  "version": "0.1.0",
      -  "description": "Contains scripts and runners for testing Cursorless",
      -  "private": true,
      -  "main": "./out/index.cjs",
      -  "scripts": {
      -    "test": "env CURSORLESS_TEST=true my-ts-node src/scripts/runVscodeTestsCI.ts",
      -    "testNeovim": "env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts",
      -    "build:base": "esbuild --sourcemap --conditions=cursorless:bundler --bundle --external:vscode --format=cjs --platform=node",
      -    "build": "pnpm run build:runner && pnpm run build:main && pnpm run build:tests && pnpm run build:unit && pnpm run build:talon && pnpm run populate-cursorless-nvim",
      -    "build:runner": "pnpm run build:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs",
      -    "build:main": "pnpm run build:base ./src/index.ts --outfile=out/index.cjs",
      -    "build:unit": "pnpm run build:base ./src/scripts/runUnitTestsOnly.ts --outfile=dist/runUnitTestsOnly.cjs",
      -    "build:talon": "pnpm run build:base ./src/scripts/runTalonTests.ts --outfile=dist/runTalonTests.cjs",
      -    "build:tests": "bash ./scripts/build-tests.sh",
      -    "compile": "tsc --build",
      -    "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh",
      -    "watch": "tsc --build --watch",
      -    "clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build ../../dist",
      -    "generate-test-subset-file": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --always-open",
      -    "generate-test-subset-file-strict": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists"
      -  },
      -  "keywords": [],
      -  "author": "",
      -  "license": "MIT",
      -  "dependencies": {
      -    "@cursorless/common": "workspace:*",
      -    "@cursorless/neovim-common": "workspace:*",
      -    "@cursorless/neovim-registry": "workspace:*",
      -    "glob": "^10.3.10",
      -    "neovim": "5.1.0"
      -  },
      -  "devDependencies": {
      -    "@types/glob": "^8.1.0",
      -    "@types/mocha": "^10.0.6",
      -    "@vscode/test-electron": "^2.3.9",
      -    "mocha": "^10.3.0"
      -  },
      -  "types": "./out/index.d.ts",
      -  "exports": {
      -    ".": {
      -      "cursorless:bundler": "./src/index.ts",
      -      "default": "./out/index.js"
      -    }
      -  },
      -  "type": "module"
      -}
      diff --git a/dist/cursorless.nvim/vim/cursorless.vim b/dist/cursorless.nvim/vim/cursorless.vim
      deleted file mode 100644
      index b7bce18aa6..0000000000
      --- a/dist/cursorless.nvim/vim/cursorless.vim
      +++ /dev/null
      @@ -1,15 +0,0 @@
      -" http://neovim.io/doc/user/remote_plugin.html
      -" similar to having the plugins into rplugin/node and running :UpdateRemotePlugins
      -" except here we don't need the user to run that command
      -function RegisterFunctions(cursorless_nvim_path)
      -     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . '/node/command-server', [
      -          \ {'sync': v:false, 'name': 'CommandServerLoadExtension', 'type': 'function', 'opts': {}},
      -          \ {'sync': v:false, 'name': 'CommandServerRunCommand', 'type': 'function', 'opts': {}},
      -          \ ])
      -     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/cursorless-neovim', [
      -          \ {'sync': v:false, 'name': 'CursorlessLoadExtension', 'type': 'function', 'opts': {}},
      -          \ ])
      -     call remote#host#RegisterPlugin('node', a:cursorless_nvim_path . 'node/test-harness', [
      -          \ {'sync': v:false, 'name': 'TestHarnessRun', 'type': 'function', 'opts': {}},
      -          \ ])
      -endfunction
      
      From bb36f71b96a0e263f8df418d914459ca2ecf703f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:19:24 +0100
      Subject: [PATCH 404/504] Update populate-cursorless-nvim.sh
      
      ---
       packages/test-harness/scripts/populate-cursorless-nvim.sh | 8 +++++---
       1 file changed, 5 insertions(+), 3 deletions(-)
      
      diff --git a/packages/test-harness/scripts/populate-cursorless-nvim.sh b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      index b131d345bd..beda587337 100644
      --- a/packages/test-harness/scripts/populate-cursorless-nvim.sh
      +++ b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      @@ -2,8 +2,10 @@
       set -euo pipefail
       
       out_dir=../../dist/cursorless.nvim
      -mkdir -p "$out_dir/node/test-harness/out"
      +#mkdir -p "$out_dir/node/test-harness/out"
       
       # copy the built .js file
      -cp package.json "$out_dir/node/test-harness/"
      -cp out/index.cjs "$out_dir/node/test-harness/out/"
      +#cp package.json "$out_dir/node/test-harness/"
      +#cp out/index.cjs "$out_dir/node/test-harness/out/"
      +
      +ln -s /home/runner/work/cursorless/cursorless/packages/test-harness "$out_dir/node/test-harness"
      
      From b2f6d5ffb552e818507f2c8f2584b1b2eabab607 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:23:06 +0100
      Subject: [PATCH 405/504] Update test.yml
      
      ---
       .github/workflows/test.yml | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 00eadd6f66..98342143a9 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -78,6 +78,7 @@ jobs:
             # Windows: D:\a\cursorless\cursorless
             # Linux: /home/runner/work/cursorless/cursorless
             - run: pwd
      +      - run: tree /home/runner/work/cursorless/cursorless/dist
             - run: dir
             #- run: dir C:\Users\runneradmin\AppData\Local
             #     Directory: C:\Users\runneradmin\AppData\Local
      
      From 898497788e2263d2022a9fec7f953097f504fb06 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:29:44 +0100
      Subject: [PATCH 406/504] Update test.yml
      
      ---
       .github/workflows/test.yml | 6 +++---
       1 file changed, 3 insertions(+), 3 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 98342143a9..6455f8f20d 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -64,9 +64,9 @@ jobs:
             #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
             #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
             # XXX: restore this once neovim tests work in CI
      -      # - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
      -      # - run: xvfb-run -a pnpm --color test
      -      #   if: runner.os == 'Linux'
      +      - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
      +      #- run: xvfb-run -a pnpm --color test
      +      #  if: runner.os == 'Linux'
             # - run: pnpm --color test
             #   if: runner.os != 'Linux'
             # XXX: delete this because it doesn't work
      
      From 8c05e0d2adae9a4c94b4bde519cbf2ca2aca271d Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:33:13 +0100
      Subject: [PATCH 407/504] Update populate-cursorless-nvim.sh
      
      ---
       packages/test-harness/scripts/populate-cursorless-nvim.sh | 8 ++++----
       1 file changed, 4 insertions(+), 4 deletions(-)
      
      diff --git a/packages/test-harness/scripts/populate-cursorless-nvim.sh b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      index beda587337..1a59a5c950 100644
      --- a/packages/test-harness/scripts/populate-cursorless-nvim.sh
      +++ b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      @@ -2,10 +2,10 @@
       set -euo pipefail
       
       out_dir=../../dist/cursorless.nvim
      -#mkdir -p "$out_dir/node/test-harness/out"
      +mkdir -p "$out_dir/node/test-harness/out"
       
       # copy the built .js file
      -#cp package.json "$out_dir/node/test-harness/"
      -#cp out/index.cjs "$out_dir/node/test-harness/out/"
      +cp package.json "$out_dir/node/test-harness/"
      +cp out/index.cjs "$out_dir/node/test-harness/out/"
       
      -ln -s /home/runner/work/cursorless/cursorless/packages/test-harness "$out_dir/node/test-harness"
      +#ln -s /home/runner/work/cursorless/cursorless/packages/test-harness "$out_dir/node/test-harness"
      
      From c27fa5c41d35a63b478bc6d5692ee630c8746991 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:41:06 +0100
      Subject: [PATCH 408/504] Update package.json
      
      ---
       packages/cursorless-neovim/package.json | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/packages/cursorless-neovim/package.json b/packages/cursorless-neovim/package.json
      index b6f7d76fb2..edab5a458c 100644
      --- a/packages/cursorless-neovim/package.json
      +++ b/packages/cursorless-neovim/package.json
      @@ -7,7 +7,8 @@
         "scripts": {
           "compile:tsc": "tsc --build",
           "compile:esbuild": "esbuild ./src/index.ts --sourcemap --format=cjs --conditions=cursorless:bundler --bundle --outfile=./out/index.cjs --platform=node",
      -    "compile": "pnpm compile:tsc && pnpm compile:esbuild && pnpm populate-cursorless-nvim",
      +    "build": "pnpm populate-cursorless-nvim",
      +    "compile": "pnpm compile:tsc && pnpm compile:esbuild",
           "populate-cursorless-nvim": "bash ./scripts/populate-cursorless-nvim.sh",
           "watch:tsc": "pnpm compile:tsc --watch",
           "watch:esbuild": "pnpm compile:esbuild --watch",
      
      From 68c7868ab6710bb7ecf4f55c59e5954f62f32073 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:44:16 +0100
      Subject: [PATCH 409/504] Update test.yml
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 6455f8f20d..b321b22270 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -22,8 +22,8 @@ jobs:
               # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
               # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
               # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
      -        app_version: [stable]
      -        # app_version: [v0.9.5]
      +        #app_version: [stable]
      +        app_version: [v0.9.5]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      
      From 5adce19f6150c8e1808f673ce99b810f68ee8815 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:58:05 +0100
      Subject: [PATCH 410/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 8c9c1eb09b..5a0cd14501 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -194,7 +194,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail started done");
       
      -    await delay(20000);
      +    await delay(200000);
       
           nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
      
      From 64631552c6f40094d8bfceed64d9a804c073be4d Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 01:59:12 +0100
      Subject: [PATCH 411/504] Update runAllTests.ts
      
      ---
       packages/test-harness/src/runAllTests.ts | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
      index 4368e94031..c23e4f48a3 100644
      --- a/packages/test-harness/src/runAllTests.ts
      +++ b/packages/test-harness/src/runAllTests.ts
      @@ -57,8 +57,8 @@ async function runTestsInDir(
         });
       
         const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
      -  console.log("test files:");
      -  console.log(files); // temp
      +  //console.log("test files:");
      +  //console.log(files); // temp
         
         // Add files to the test suite
         files.forEach((f) => mocha.addFile(path.resolve(testRoot, f)));
      
      From 33b2e3ac6356cec175e790dee83d74e62b0ee228 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 02:02:29 +0100
      Subject: [PATCH 412/504] Update init.lua
      
      ---
       cursorless.nvim/lua/cursorless/init.lua | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 0d74f39aa0..362a6b8394 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -17,7 +17,7 @@ local function load_extensions()
         if os.getenv('CURSORLESS_MODE') == 'test' then
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
      -    vim.cmd([[sleep 1]])
      +    vim.cmd([[sleep 5]])
           vim.api.nvim_call_function('TestHarnessRun', {})
         end
       end
      
      From 0254762a6a8e2498a56afc91b8107337061ed38f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 07:47:10 +0100
      Subject: [PATCH 413/504] Update index.ts
      
      ---
       packages/test-harness/src/index.ts | 8 ++++++++
       1 file changed, 8 insertions(+)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 003567aad8..fea855ed10 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -2,6 +2,11 @@ import { TestType, runAllTests } from "./runAllTests";
       
       import type { NeovimClient, NvimPlugin } from "neovim";
       
      +// https://stackoverflow.com/questions/37764665/how-to-implement-sleep-function-in-typescript
      +function delay(ms: number) {
      +  return new Promise((resolve) => setTimeout(resolve, ms));
      +}
      +
       /**
        * Runs all extension tests.  This function should only be called after attaching to the
        * "node" process, such as when testing cursorless in neovim.
      @@ -13,6 +18,9 @@ import type { NeovimClient, NvimPlugin } from "neovim";
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
         console.log("run()");
      +  delay(10000);
      +  console.log("run() after sleep");
      +  
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
         (global as any).additionalParameters = {
      
      From 8baa6d77d76df1df1a30882d8dac06f6c46b7024 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 07:48:32 +0100
      Subject: [PATCH 414/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 5a0cd14501..7071474cf3 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -194,7 +194,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail started done");
       
      -    await delay(200000);
      +    await delay(2000000);
       
           nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
      
      From 12631a1f93b4aec7e2ed2351c39ac60ef041ade8 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 07:52:40 +0100
      Subject: [PATCH 415/504] Update index.ts
      
      ---
       packages/test-harness/src/index.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index fea855ed10..564f8b52f6 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -18,7 +18,7 @@ function delay(ms: number) {
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
         console.log("run()");
      -  delay(10000);
      +  await delay(10000);
         console.log("run() after sleep");
         
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
      
      From f35c1572079b9471cabeff7388b85c22b669dbd5 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 08:19:37 +0100
      Subject: [PATCH 416/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 7071474cf3..e0db4db9cf 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -147,7 +147,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        NVIM_NODE_LOG_LEVEL: "info",
      +        NVIM_NODE_LOG_LEVEL: "debug",
               CURSORLESS_MODE: "test",
             },
           });
      
      From ce89371bba592bb8a669c885c1ff2a011f066fc5 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 08:26:06 +0100
      Subject: [PATCH 417/504] Update test.yml
      
      ---
       .github/workflows/test.yml | 5 +++--
       1 file changed, 3 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index b321b22270..6d47b10ba3 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -22,8 +22,9 @@ jobs:
               # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
               # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
               # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
      -        #app_version: [stable]
      -        app_version: [v0.9.5]
      +        app_version: [stable]
      +        # with 0.9.5, it hangs on first function call back into lua from node
      +        #app_version: [v0.9.5]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      
      From 5c2b76ed56c6493ddeb2cdbbec10c919b8db0d3f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 08:30:45 +0100
      Subject: [PATCH 418/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 10 +++++-----
       1 file changed, 5 insertions(+), 5 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index e0db4db9cf..e5de0360ff 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -154,7 +154,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      -    nvim_process.unref();
      +    //nvim_process.unref();
       
           console.log(`pid: ${nvim_process.pid}`);
       
      @@ -194,12 +194,12 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail started done");
       
      -    await delay(2000000);
      +    //await delay(2000000);
       
      -    nvim_process.kill("SIGTERM");
      +    //nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
       
      -    await delay(10000);
      +    //await delay(10000);
       
           // console.log("finished installing dependency extensions");
       
      @@ -223,5 +223,5 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.error(err);
         }
         console.log(`Returned code: ${code}`);
      -  process.exit(code);
      +  //process.exit(code);
       }
      
      From a9f0620808ad076677eb202987a6e46413514d7e Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 10:41:13 +0100
      Subject: [PATCH 419/504] Update init.lua
      
      ---
       cursorless.nvim/lua/cursorless/init.lua | 3 +++
       1 file changed, 3 insertions(+)
      
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 362a6b8394..4842e27df2 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -11,6 +11,7 @@ end
       -- in the cursorless-neovim, command-server and neovim-registry extensions
       -- in order to initialize them
       local function load_extensions()
      +  print('load_extensions()')
         vim.api.nvim_call_function('CursorlessLoadExtension', {})
         vim.api.nvim_call_function('CommandServerLoadExtension', {})
       
      @@ -18,7 +19,9 @@ local function load_extensions()
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
           vim.cmd([[sleep 5]])
      +    print('load_extensions() - before TestHarnessRun()')
           vim.api.nvim_call_function('TestHarnessRun', {})
      +    print('load_extensions() - after TestHarnessRun()')
         end
       end
       
      
      From 0de88ec72e8a6d521eb733d971af44b28382c37b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 10:45:18 +0100
      Subject: [PATCH 420/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 11 +++++++++--
       1 file changed, 9 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index e5de0360ff..37d28685ef 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -129,10 +129,17 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -    /*
      +    
           const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             encoding: "utf-8",
             stdio: "inherit",
      +      env: {
      +        ...process.env,
      +        // "NVIM_NODE_HOST_DEBUG": "1",
      +        NVIM_NODE_LOG_FILE: logName,
      +        NVIM_NODE_LOG_LEVEL: "debug",
      +        CURSORLESS_MODE: "test",
      +      },
           });
           console.log(`status: ${status}`);
           console.log(`signal: ${signal}`);
      @@ -140,7 +147,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`Exiting early`);
           process.exit(0);
      -*/
      +
           
           const nvim_process = cp.spawn(cli, [], {
             env: {
      
      From d40ee68f75cea0a7c6fa67c35710e0da2edf31de Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 10:54:48 +0100
      Subject: [PATCH 421/504] Update launchNeovimAndRunTests.ts
      
      ---
       .../src/launchNeovimAndRunTests.ts             | 18 +++++++++++++++---
       1 file changed, 15 insertions(+), 3 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 37d28685ef..6d4d3ce3a6 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -129,7 +129,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -    
      +    /*
           const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             encoding: "utf-8",
             stdio: "inherit",
      @@ -147,9 +147,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`Exiting early`);
           process.exit(0);
      -
      +*/
           
      -    const nvim_process = cp.spawn(cli, [], {
      +    const nvim_process = cp.spawn(cli, [ "-V9vim.log" ], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -165,6 +165,18 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`pid: ${nvim_process.pid}`);
       
      +    const tail2 = new Tail("vim.log", {
      +      // separator: "\n",
      +      fromBeginning: true,
      +    });
      +    tail2.on("line", function (data: string) {
      +      console.log(data);
      +    });
      +    tail2.on("error", function (error) {
      +      console.log("ERROR: ", error);
      +    });
      +    console.log("tail2 started done");
      +    
           await delay(10000);
       
           readdirSync(`${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`).forEach((file) => {
      
      From 122e48ae66655e94da9d52438e44da56e084eef4 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn <387346+saidelike@users.noreply.github.com>
      Date: Sat, 18 May 2024 10:58:15 +0100
      Subject: [PATCH 422/504] Update launchNeovimAndRunTests.ts
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 6d4d3ce3a6..d1035fd85d 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -165,6 +165,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`pid: ${nvim_process.pid}`);
       
      +    await delay(5000);
           const tail2 = new Tail("vim.log", {
             // separator: "\n",
             fromBeginning: true,
      
      From d6925e4056412c2f1c3d39494b1b51f97735f19b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Sat, 18 May 2024 11:10:15 +0100
      Subject: [PATCH 423/504] try other node version
      
      ---
       .github/workflows/test.yml | 6 ++++--
       1 file changed, 4 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 6d47b10ba3..91a9b8e2d1 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -40,7 +40,9 @@ jobs:
             - run: corepack enable
             - uses: actions/setup-node@v4
               with:
      -          node-version-file: .nvmrc
      +          # XXX - v20.12.1 taken from .nvmrc file?
      +          # node-version-file: .nvmrc
      +          node-version: v21.7.1
                 cache: pnpm
             # XXX testing only
             - run: dir ${{ github.workspace }}
      @@ -162,7 +164,7 @@ jobs:
             # -a---          12/30/2023  1:20 PM        8662160 Qt5Widgets.dll
             # -a---          12/30/2023  1:20 PM         131072 tee.exe
             # -a---          12/30/2023  1:20 PM        1137152 win32yank.exe
      -      # -a---          12/30/2023  1:20 PM         151040 
      +      # -a---          12/30/2023  1:20 PM         151040
             - name: Run neovim unit tests using test-harness
               run: pnpm -F @cursorless/test-harness testNeovim
               if: runner.os != 'Linux'
      
      From 711a2a05be6b47e4ef2f3ba70239ebd92ec1c571 Mon Sep 17 00:00:00 2001
      From: "pre-commit-ci-lite[bot]"
       <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
      Date: Sat, 18 May 2024 10:12:17 +0000
      Subject: [PATCH 424/504] [pre-commit.ci lite] apply automatic fixes
      
      ---
       packages/test-harness/src/index.ts             |  2 +-
       .../src/launchNeovimAndRunTests.ts             | 18 ++++++++++--------
       packages/test-harness/src/runAllTests.ts       |  2 +-
       3 files changed, 12 insertions(+), 10 deletions(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 564f8b52f6..42da537466 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -20,7 +20,7 @@ export async function run(plugin: NvimPlugin): Promise {
         console.log("run()");
         await delay(10000);
         console.log("run() after sleep");
      -  
      +
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
         (global as any).additionalParameters = {
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index d1035fd85d..62893561be 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -74,8 +74,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`cli: ${cli}`);
       
      -    mkdirSync('/home/runner/.config/nvim/lua', { recursive: true });
      -    
      +    mkdirSync("/home/runner/.config/nvim/lua", { recursive: true });
      +
           //~/.config/nvim/init.lua?
           // C:\Users\runneradmin\AppData\Local\nvim\init.lua
           // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
      @@ -93,7 +93,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             },
           );
           console.log("init.lua copying done");
      -    
      +
           copyFile(
             `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.vim`,
             "/home/runner/.config/nvim/init.vim",
      @@ -109,7 +109,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log(file);
           });
           console.log("listing /home/runner/.config/nvim/ dir done");
      -    
      +
           readdirSync("/home/runner/.config/nvim/lua/").forEach((file) => {
             console.log(file);
           });
      @@ -148,8 +148,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.log(`Exiting early`);
           process.exit(0);
       */
      -    
      -    const nvim_process = cp.spawn(cli, [ "-V9vim.log" ], {
      +
      +    const nvim_process = cp.spawn(cli, ["-V9vim.log"], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -177,10 +177,12 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log("ERROR: ", error);
           });
           console.log("tail2 started done");
      -    
      +
           await delay(10000);
       
      -    readdirSync(`${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`).forEach((file) => {
      +    readdirSync(
      +      `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`,
      +    ).forEach((file) => {
             console.log(file);
           });
           console.log("listing out/ dir done");
      diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
      index c23e4f48a3..88e79e77bf 100644
      --- a/packages/test-harness/src/runAllTests.ts
      +++ b/packages/test-harness/src/runAllTests.ts
      @@ -59,7 +59,7 @@ async function runTestsInDir(
         const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
         //console.log("test files:");
         //console.log(files); // temp
      -  
      +
         // Add files to the test suite
         files.forEach((f) => mocha.addFile(path.resolve(testRoot, f)));
       
      
      From b0e7d6c7b554df506edb04787869717ad8bd65d8 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 09:14:05 +0100
      Subject: [PATCH 425/504] temp: disable 10 min timeout for now for CI
      
      ---
       packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts | 7 +++++--
       1 file changed, 5 insertions(+), 2 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      index dfd2754daa..36e91f8b84 100644
      --- a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      @@ -17,8 +17,11 @@ let retryCount = -1;
       let previousTestTitle = "";
       
       export function endToEndTestSetup(suite: Mocha.Suite) {
      -  suite.timeout("100s");
      -  suite.retries(5);
      +  // XXX - disable that for now to avoid it to hang for 10 minutes on CI
      +  // suite.timeout("100s");
      +  // suite.retries(5);
      +  suite.timeout("10s");
      +  suite.retries(1);
       
         let ide: IDE;
         let injectIde: (ide: IDE) => void;
      
      From d1ac2a307bed6a83cd50ada326da55b48dbc6ce5 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 09:37:15 +0100
      Subject: [PATCH 426/504] test
      
      ---
       .github/workflows/test.yml                    |  71 +++++------
       .../src/config/{init.lua => init_linux.lua}   |   7 --
       packages/test-harness/src/config/init_win.lua |   9 ++
       .../src/launchNeovimAndRunTests.ts            | 113 +++++++-----------
       4 files changed, 90 insertions(+), 110 deletions(-)
       rename packages/test-harness/src/config/{init.lua => init_linux.lua} (52%)
       create mode 100644 packages/test-harness/src/config/init_win.lua
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 91a9b8e2d1..9ffb233f65 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,18 +17,20 @@ jobs:
             matrix:
               # XXX: restore this once neovim tests work in CI
               # os: [macos-latest, ubuntu-latest, windows-latest]
      -        #os: [windows-latest]
      -        os: [ubuntu-latest]
      +        os: [windows-latest]
      +        # os: [ubuntu-latest]
      +        # os: [ubuntu-latest, windows-latest]
               # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
               # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
               # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
      -        app_version: [stable]
      -        # with 0.9.5, it hangs on first function call back into lua from node
      +        # Linux: with 0.9.5 or stable, it hangs on first function call back into lua from node
      +        # app_version: [stable]
               #app_version: [v0.9.5]
      +        app_version: [stable, v0.9.5]
               # XXX: restore this once neovim tests work in CI
      -        # include:
      -        #   - os: ubuntu-latest
      -        #     app_version: legacy
      +        include:
      +          - os: ubuntu-latest
      +            app_version: legacy
           runs-on: ${{ matrix.os }}
           env:
             APP_VERSION: ${{ matrix.app_version }}
      @@ -45,9 +47,9 @@ jobs:
                 node-version: v21.7.1
                 cache: pnpm
             # XXX testing only
      -      - run: dir ${{ github.workspace }}
      -      - run: dir ${{ github.workspace }}/packages
      -      - run: dir ${{ github.workspace }}/packages/test-harness
      +      # - run: dir ${{ github.workspace }}
      +      # - run: dir ${{ github.workspace }}/packages
      +      # - run: dir ${{ github.workspace }}/packages/test-harness
             - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
               shell: bash
             # NB: we can't comment this for speeding up testing as we get this error when running test harness:
      @@ -61,28 +63,23 @@ jobs:
             #  WARN   Local package.json exists, but node_modules missing, did you mean to install?
             # Error: Process completed with exit code 1.
             - run: pnpm --color install
      -      # XXX: commenting for now because we added already built cursorless.nvim in this branch to speed things up in CI
      -      # XXX - if we don't run this, we might have to create packages\cursorless-neovim\out folder so the logs can be written
             - run: pnpm --color compile
      -      #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\
             #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
      -      # XXX: restore this once neovim tests work in CI
      +      # We need to run "build" in order to prepare the dist/cursorless.nvim folder
             - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
             #- run: xvfb-run -a pnpm --color test
             #  if: runner.os == 'Linux'
             # - run: pnpm --color test
             #   if: runner.os != 'Linux'
      -      # XXX: delete this because it doesn't work
      -      # - name: Checkout themis.vim
      -      #   uses: actions/checkout@v4
      -      #   with:
      -      #     repository: thinca/vim-themis
      -      #     path: vim-themis
      -      # Windows: D:\a\cursorless\cursorless
      -      # Linux: /home/runner/work/cursorless/cursorless
      -      - run: pwd
      +      # Current working directory:
      +      # - Windows: D:\a\cursorless\cursorless
      +      # - Linux: /home/runner/work/cursorless/cursorless
      +      # - run: pwd
             - run: tree /home/runner/work/cursorless/cursorless/dist
      -      - run: dir
      +        if: runner.os == 'Linux'
      +      - run: tree D:\a\cursorless\cursorless\dist
      +        if: runner.os == 'Windows'
      +      # - run: dir
             #- run: dir C:\Users\runneradmin\AppData\Local
             #     Directory: C:\Users\runneradmin\AppData\Local
             # Mode                 LastWriteTime         Length Name
      @@ -102,10 +99,14 @@ jobs:
             # d----           5/16/2024 11:21 AM                Temp
             - name: Install cursorless.nvim dependencies
               run: npm install -g neovim@5.1.0
      -      #- run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      -      #- run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      +      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      +        if: runner.os == 'Windows'
      +      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      +        if: runner.os == 'Windows'
             - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      +        if: runner.os == 'Linux'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      +        if: runner.os == 'Linux'
             # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
             # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
             # Line |
      @@ -122,15 +123,15 @@ jobs:
               with:
                 version: ${{ matrix.app_version }}
                 neovim: true
      -      - run: dir /home/runner/.local/share/ || true
      -      - run: dir /home/runner/.local/share/nvim/ || true
      -      - run: dir /home/runner/.config/ || true
      -      - run: dir /home/runner/.config/nvim/ || true
      -      - run: ${{ steps.vim.outputs.executable }} -l ${{ github.workspace }}/packages/test-harness/src/config/empty.lua
      -      - run: dir /home/runner/.local/share/ || true
      -      - run: dir /home/runner/.local/share/nvim/ || true
      -      - run: dir /home/runner/.config/ || true
      -      - run: dir /home/runner/.config/nvim/ || true
      +      # - run: dir /home/runner/.local/share/ || true
      +      # - run: dir /home/runner/.local/share/nvim/ || true
      +      # - run: dir /home/runner/.config/ || true
      +      # - run: dir /home/runner/.config/nvim/ || true
      +      # - run: ${{ steps.vim.outputs.executable }} -l ${{ github.workspace }}/packages/test-harness/src/config/empty.lua
      +      # - run: dir /home/runner/.local/share/ || true
      +      # - run: dir /home/runner/.local/share/nvim/ || true
      +      # - run: dir /home/runner/.config/ || true
      +      # - run: dir /home/runner/.config/nvim/ || true
             #- run: dir C:\Users\runneradmin\
             #- run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
             # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
      diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init_linux.lua
      similarity index 52%
      rename from packages/test-harness/src/config/init.lua
      rename to packages/test-harness/src/config/init_linux.lua
      index 9584d29f80..57507bb9bd 100644
      --- a/packages/test-harness/src/config/init.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,10 +1,3 @@
      --- vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
      -
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
      --- vim.o.runtimepath = vim.o.runtimepath
      ---   .. ','
      ---   .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
      -
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      new file mode 100644
      index 0000000000..96fde6a70d
      --- /dev/null
      +++ b/packages/test-harness/src/config/init_win.lua
      @@ -0,0 +1,9 @@
      +vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
      +
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
      +vim.o.runtimepath = vim.o.runtimepath
      +  .. ','
      +  .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
      +
      +require('talon').setup()
      +require('cursorless').setup()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 62893561be..63353a80ca 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -1,4 +1,5 @@
       import * as cp from "child_process";
      +import process from "node:process";
       // import * as path from "path";
       // import * as os from "os";
       import { exists, readdirSync, mkdirSync, unlinkSync, copyFile } from "fs";
      @@ -51,41 +52,30 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
           // nvim-qt.exe does not allow logging into file using -V9
           //cli = cli.replace("nvim.exe", "nvim-qt.exe");
      -    /*
      -      node:events:496
      -            throw er; // Unhandled 'error' event
      -            ^
      -      Error: spawn C:\Users\runneradmin\nvim-stable\bin\nvim-qt.exe ENOENT
      -          at ChildProcess._handle.onexit (node:internal/child_process:286:19)
      -          at onErrorNT (node:internal/child_process:484:16)
      -          at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
      -      Emitted 'error' event on ChildProcess instance at:
      -          at ChildProcess._handle.onexit (node:internal/child_process:292:12)
      -          at onErrorNT (node:internal/child_process:484:16)
      -          at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
      -        errno: -4058,
      -        code: 'ENOENT',
      -        syscall: 'spawn C:\\Users\\runneradmin\\nvim-stable\\bin\\nvim-qt.exe',
      -        path: 'C:\\Users\\runneradmin\\nvim-stable\\bin\\nvim-qt.exe',
      -        spawnargs: []
      -      }
      -      Node.js v20.12.1
      -    */
      +
      +    let nvimFolder = "";
      +    let initLuaFile = "";
      +    if (process.platform === "win32") {
      +      nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim\\";
      +      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_win.lua`;
      +    } else {
      +      //XXX: ~/.config/nvim/ does not work?
      +      nvimFolder = "/home/runner/.config/nvim/";
      +      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_linux.lua`;
      +    }
       
           console.log(`cli: ${cli}`);
       
      -    mkdirSync("/home/runner/.config/nvim/lua", { recursive: true });
      +    mkdirSync(`${nvimFolder}/lua`, { recursive: true });
       
      -    //~/.config/nvim/init.lua?
      -    // C:\Users\runneradmin\AppData\Local\nvim\init.lua
      -    // C:\Users\runneradmin\AppData\Local\nvim-data\lazy\{cursorless.nvim,lazy.nvim,talon.nvim}
      -    // C:\Users\runneradmin\AppData\Local\nvim-data\log
      -    //xxx commenting for now to avoid loading any config since nvim hangs anyway atm
      +    //xxx On Windows: commenting for now to avoid loading any config since nvim hangs anyway atm
           copyFile(
             //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
      -      `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
      +      // `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
      +      initLuaFile,
             //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
      -      "/home/runner/.config/nvim/lua/init.lua",
      +      // "/home/runner/.config/nvim/lua/init.lua",
      +      `${nvimFolder}/lua/init.lua`,
             (err: any) => {
               if (err) {
                 console.error(err);
      @@ -96,7 +86,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           copyFile(
             `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.vim`,
      -      "/home/runner/.config/nvim/init.vim",
      +      `${nvimFolder}/init.vim`,
             (err: any) => {
               if (err) {
                 console.error(err);
      @@ -105,17 +95,18 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           );
           console.log("init.vim copying done");
       
      -    readdirSync("/home/runner/.config/nvim/").forEach((file) => {
      +    readdirSync(nvimFolder).forEach((file) => {
             console.log(file);
           });
      -    console.log("listing /home/runner/.config/nvim/ dir done");
      +    console.log("listing nvim/ dir done");
       
      -    readdirSync("/home/runner/.config/nvim/lua/").forEach((file) => {
      +    readdirSync(`${nvimFolder}/lua/`).forEach((file) => {
             console.log(file);
           });
      -    console.log("listing /home/runner/.config/nvim/lua/ dir done");
      +    console.log("listing nvim/lua/ dir done");
       
           const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
      +    const vimLogName = `vim.log`;
       
           // temporary, to delete old log when testing
           exists(logName, function (exists) {
      @@ -149,7 +140,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           process.exit(0);
       */
       
      -    const nvim_process = cp.spawn(cli, ["-V9vim.log"], {
      +    const nvim_process = cp.spawn(cli, [`-V9${vimLogName}`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -166,19 +157,6 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.log(`pid: ${nvim_process.pid}`);
       
           await delay(5000);
      -    const tail2 = new Tail("vim.log", {
      -      // separator: "\n",
      -      fromBeginning: true,
      -    });
      -    tail2.on("line", function (data: string) {
      -      console.log(data);
      -    });
      -    tail2.on("error", function (error) {
      -      console.log("ERROR: ", error);
      -    });
      -    console.log("tail2 started done");
      -
      -    await delay(10000);
       
           readdirSync(
             `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`,
      @@ -187,34 +165,33 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("listing out/ dir done");
       
      +    const tailVim = new Tail(vimLogName, {
      +      // separator: "\n",
      +      fromBeginning: true,
      +    });
      +    tailVim.on("line", function (data: string) {
      +      console.log(`vim startup: ${data}`);
      +    });
      +    tailVim.on("error", function (error) {
      +      console.log("vim startup: ERROR: ", error);
      +    });
      +    console.log("tail vim startup started");
      +
      +    // await delay(10000);
      +
           // read log file live and print to console
           // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
      -    const tail = new Tail(logName, {
      +    const tailTest = new Tail(logName, {
             // separator: "\n",
             fromBeginning: true,
           });
      -    /*
      -      Test run threw exception:
      -      Error: ENOENT: no such file or directory, access 'D:\a\cursorless\cursorless\packages\cursorless-neovim\out\nvim_node.log'
      -          at Object.accessSync (node:fs:254:11)
      -          at Tail2 (D:\a\cursorless\cursorless\node_modules\.pnpm\tail@2.2.6\node_modules\tail\lib\tail.js:33:16)
      -      Returned code: 1
      -          at launchNeovimAndRunTests (D:\a\cursorless\cursorless\packages\test-harness\src\launchNeovimAndRunTests.ts:124:18)
      -          at  (D:\a\cursorless\cursorless\packages\test-harness\src\scripts\runNeovimTestsCI.ts:18:3) {
      -        errno: -4058,
      -        code: 'ENOENT',
      -        syscall: 'access',
      -        path: 'D:\\a\\cursorless\\cursorless\\packages\\cursorless-neovim\\out\\nvim_node.log'
      -      }
      -    */
      -
      -    tail.on("line", function (data: string) {
      -      console.log(data);
      +    tailTest.on("line", function (data: string) {
      +      console.log(`neovim test: ${data}`);
           });
      -    tail.on("error", function (error) {
      -      console.log("ERROR: ", error);
      +    tailTest.on("error", function (error) {
      +      console.log("neovim test: ERROR: ", error);
           });
      -    console.log("tail started done");
      +    console.log("tail neovim test started");
       
           //await delay(2000000);
       
      
      From f7247aedd984025324345041b95f640aee839450 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 09:50:11 +0100
      Subject: [PATCH 427/504] test
      
      ---
       .github/workflows/test.yml                    | 19 +++++++++++--------
       packages/test-harness/src/config/init_win.lua |  2 +-
       .../src/launchNeovimAndRunTests.ts            | 12 ++++++------
       3 files changed, 18 insertions(+), 15 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 9ffb233f65..e04e0eb44d 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,20 +17,21 @@ jobs:
             matrix:
               # XXX: restore this once neovim tests work in CI
               # os: [macos-latest, ubuntu-latest, windows-latest]
      -        os: [windows-latest]
      +        #os: [windows-latest]
               # os: [ubuntu-latest]
      -        # os: [ubuntu-latest, windows-latest]
      +        os: [macos-latest, ubuntu-latest, windows-latest]
               # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
               # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
               # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
               # Linux: with 0.9.5 or stable, it hangs on first function call back into lua from node
               # app_version: [stable]
               #app_version: [v0.9.5]
      -        app_version: [stable, v0.9.5]
      +        # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
      +        app_version: [v0.9.5, v0.10.0, stable, nightly]
               # XXX: restore this once neovim tests work in CI
      -        include:
      -          - os: ubuntu-latest
      -            app_version: legacy
      +        # include:
      +        #   - os: ubuntu-latest
      +        #     app_version: legacy
           runs-on: ${{ matrix.os }}
           env:
             APP_VERSION: ${{ matrix.app_version }}
      @@ -74,10 +75,10 @@ jobs:
             # Current working directory:
             # - Windows: D:\a\cursorless\cursorless
             # - Linux: /home/runner/work/cursorless/cursorless
      -      # - run: pwd
      +      - run: pwd
             - run: tree /home/runner/work/cursorless/cursorless/dist
               if: runner.os == 'Linux'
      -      - run: tree D:\a\cursorless\cursorless\dist
      +      - run: tree /f D:\a\cursorless\cursorless\dist
               if: runner.os == 'Windows'
             # - run: dir
             #- run: dir C:\Users\runneradmin\AppData\Local
      @@ -117,6 +118,8 @@ jobs:
             #      | path is correct and try again.
             # Error: Process completed with exit code 1.
             #- run: mkdir C:\Users\runneradmin\AppData\Local\nvim
      +      # Run rhysd/action-setup-vim@v1 fails with "app_version: legacy"
      +      # Error: 'version' input 'legacy' is not a format of Git tags in neovim/neovim repository. It should match to regex //^v\d+\.\d+\.\d+$//. NOTE: It requires 'v' prefix
             - name: Install Neovim
               uses: rhysd/action-setup-vim@v1
               id: vim
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      index 96fde6a70d..8b92eaa22f 100644
      --- a/packages/test-harness/src/config/init_win.lua
      +++ b/packages/test-harness/src/config/init_win.lua
      @@ -3,7 +3,7 @@ vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
      -  .. 'C:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
      +  .. 'D:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
       
       require('talon').setup()
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 63353a80ca..d5d5486218 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -95,15 +95,15 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           );
           console.log("init.vim copying done");
       
      +    console.log("listing nvim/:");
           readdirSync(nvimFolder).forEach((file) => {
      -      console.log(file);
      +      console.log(`\t${file}`);
           });
      -    console.log("listing nvim/ dir done");
       
      +    console.log("listing nvim/lua:");
           readdirSync(`${nvimFolder}/lua/`).forEach((file) => {
      -      console.log(file);
      +      console.log(`\t${file}`);
           });
      -    console.log("listing nvim/lua/ dir done");
       
           const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
           const vimLogName = `vim.log`;
      @@ -158,12 +158,12 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           await delay(5000);
       
      +    console.log("listing cursorless-neovim/out/:");
           readdirSync(
             `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`,
           ).forEach((file) => {
      -      console.log(file);
      +      console.log(`\t${file}`);
           });
      -    console.log("listing out/ dir done");
       
           const tailVim = new Tail(vimLogName, {
             // separator: "\n",
      
      From 08c6ed5b81f61d173115a4306cdbafa6e5471d94 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 10:10:11 +0100
      Subject: [PATCH 428/504] test
      
      ---
       .github/workflows/test.yml                            |  1 +
       cursorless.nvim/lua/cursorless/init.lua               | 11 ++++++++++-
       .../cursorless-neovim-e2e/src/endToEndTestSetup.ts    |  8 ++++----
       3 files changed, 15 insertions(+), 5 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index e04e0eb44d..1c6c78ae87 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -41,6 +41,7 @@ jobs:
           steps:
             - uses: actions/checkout@v4
             - run: corepack enable
      +      # XXX - run over different node versions: https://nodejs.org/en/about/previous-releases
             - uses: actions/setup-node@v4
               with:
                 # XXX - v20.12.1 taken from .nvmrc file?
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 4842e27df2..0a4cf407f0 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -11,11 +11,14 @@ end
       -- in the cursorless-neovim, command-server and neovim-registry extensions
       -- in order to initialize them
       local function load_extensions()
      -  print('load_extensions()')
      +  print('load_extensions() - before CursorlessLoadExtension')
         vim.api.nvim_call_function('CursorlessLoadExtension', {})
      +  print('load_extensions() - before CommandServerLoadExtension')
         vim.api.nvim_call_function('CommandServerLoadExtension', {})
      +  print('load_extensions() - after loading extensions')
       
         if os.getenv('CURSORLESS_MODE') == 'test' then
      +    print('load_extensions() - before sleep')
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
           vim.cmd([[sleep 5]])
      @@ -67,10 +70,16 @@ local function configure_command_server_shortcut()
       end
       
       local function setup()
      +  print('setup() - start')
      +  print('setup() - sourcing utils.lua')
         vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim')
      +  print('setup() - calling register_functions')
         register_functions()
      +  print('setup() - calling load_extensions')
         load_extensions()
      +  print('setup() - calling configure_command_server_shortcut')
         configure_command_server_shortcut()
      +  print('setup() - end')
       end
       
       local M = {
      diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      index 36e91f8b84..8d20a25901 100644
      --- a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      @@ -18,10 +18,10 @@ let previousTestTitle = "";
       
       export function endToEndTestSetup(suite: Mocha.Suite) {
         // XXX - disable that for now to avoid it to hang for 10 minutes on CI
      -  // suite.timeout("100s");
      -  // suite.retries(5);
      -  suite.timeout("10s");
      -  suite.retries(1);
      +  suite.timeout("100s");
      +  suite.retries(5);
      +  // suite.timeout("10s");
      +  // suite.retries(1);
       
         let ide: IDE;
         let injectIde: (ide: IDE) => void;
      
      From 4c70fda388e72b6aa65b59b7a432dc006234ade8 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 10:19:52 +0100
      Subject: [PATCH 429/504] test
      
      ---
       .github/workflows/test.yml                           | 10 +++++++++-
       packages/test-harness/src/config/init_mac.lua        |  9 +++++++++
       packages/test-harness/src/launchNeovimAndRunTests.ts |  8 +++++++-
       3 files changed, 25 insertions(+), 2 deletions(-)
       create mode 100644 packages/test-harness/src/config/init_mac.lua
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 1c6c78ae87..0c485d25b9 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,6 +28,7 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               app_version: [v0.9.5, v0.10.0, stable, nightly]
      +        node_version: [v20.12.1, v21.7.1]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      @@ -46,7 +47,7 @@ jobs:
               with:
                 # XXX - v20.12.1 taken from .nvmrc file?
                 # node-version-file: .nvmrc
      -          node-version: v21.7.1
      +          node-version: $${{ matrix.node_version }}
                 cache: pnpm
             # XXX testing only
             # - run: dir ${{ github.workspace }}
      @@ -76,7 +77,10 @@ jobs:
             # Current working directory:
             # - Windows: D:\a\cursorless\cursorless
             # - Linux: /home/runner/work/cursorless/cursorless
      +      # - OS X: /Users/runner/work/cursorless/cursorless
             - run: pwd
      +      - run: tree /Users/runner/work/cursorless/cursorless/dist
      +        if: runner.os == 'macOS'
             - run: tree /home/runner/work/cursorless/cursorless/dist
               if: runner.os == 'Linux'
             - run: tree /f D:\a\cursorless\cursorless\dist
      @@ -109,6 +113,10 @@ jobs:
               if: runner.os == 'Linux'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
               if: runner.os == 'Linux'
      +      - run: git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner//BufOnly.vim
      +        if: runner.os == 'Linux'
      +      - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner//talon.nvim
      +        if: runner.os == 'Linux'
             # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
             # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
             # Line |
      diff --git a/packages/test-harness/src/config/init_mac.lua b/packages/test-harness/src/config/init_mac.lua
      new file mode 100644
      index 0000000000..32182e6694
      --- /dev/null
      +++ b/packages/test-harness/src/config/init_mac.lua
      @@ -0,0 +1,9 @@
      +vim.cmd('source /Users/runner/BufOnly.vim/plugin/BufOnly.vim')
      +
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/Users/runner/talon.nvim'
      +vim.o.runtimepath = vim.o.runtimepath
      +  .. ','
      +  .. '/Users/runner/work/cursorless/cursorless/dist/cursorless.nvim'
      +
      +require('talon').setup()
      +require('cursorless').setup()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index d5d5486218..b51b3f0408 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -58,10 +58,16 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           if (process.platform === "win32") {
             nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim\\";
             initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_win.lua`;
      -    } else {
      +    } else if (process.platform === "linux") {
             //XXX: ~/.config/nvim/ does not work?
             nvimFolder = "/home/runner/.config/nvim/";
             initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_linux.lua`;
      +    } else if (process.platform === "darwin") {
      +      nvimFolder = "/Users/runner/.config/nvim/";
      +      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_mac.lua`;
      +    } else {
      +      console.error(`Unsupported platform: ${process.platform}`);
      +      process.exit(1);
           }
       
           console.log(`cli: ${cli}`);
      
      From 4348348a1d6f91f91a9ca4e0d4d5524c68d590b1 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 14:38:31 +0100
      Subject: [PATCH 430/504] test
      
      ---
       .../cursorless-neovim-e2e/src/endToEndTestSetup.ts     | 10 ++++++----
       .../src/suite/recorded.neovim.test.ts                  |  6 ++++++
       2 files changed, 12 insertions(+), 4 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      index 8d20a25901..ab359d980d 100644
      --- a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      @@ -18,10 +18,12 @@ let previousTestTitle = "";
       
       export function endToEndTestSetup(suite: Mocha.Suite) {
         // XXX - disable that for now to avoid it to hang for 10 minutes on CI
      -  suite.timeout("100s");
      -  suite.retries(5);
      -  // suite.timeout("10s");
      -  // suite.retries(1);
      +  // suite.timeout("100s");
      +  // suite.retries(5);
      +  suite.timeout("10s");
      +  suite.retries(0);
      +  // suite.timeout("500s");
      +  // suite.retries(0);
       
         let ide: IDE;
         let injectIde: (ide: IDE) => void;
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index 7e0c88f6b5..ef9dcb9d1e 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -88,10 +88,16 @@ async function runTest(
         const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy;
         const excludeFields: ExcludableSnapshotField[] = [];
       
      +  // XXX - restore this
         if (unsupportedFixture(name, fixture)) {
           return suite.ctx.skip();
         }
       
      +  // XXX - temp to avoid things to hang on CI
      +  if (name !== "recorded/actions/changeNextInstanceChar") {
      +    return;
      +  }
      +
         // Uncomment below for debugging
         // if (name === "recorded/implicitExpansion/chuckBoundingThat") {
         //   console.debug(`runTest(${name}) => let's analyze it`);
      
      From bc1b34f349c7afde4790fd00d3fe228f953525af Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 14:39:14 +0100
      Subject: [PATCH 431/504] test
      
      ---
       .../cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts | 6 +++---
       1 file changed, 3 insertions(+), 3 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index ef9dcb9d1e..d2026056ea 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -89,9 +89,9 @@ async function runTest(
         const excludeFields: ExcludableSnapshotField[] = [];
       
         // XXX - restore this
      -  if (unsupportedFixture(name, fixture)) {
      -    return suite.ctx.skip();
      -  }
      +  // if (unsupportedFixture(name, fixture)) {
      +  //   return suite.ctx.skip();
      +  // }
       
         // XXX - temp to avoid things to hang on CI
         if (name !== "recorded/actions/changeNextInstanceChar") {
      
      From fbec7f6e07223ddb613a3847276281a57c8d031c Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 14:43:07 +0100
      Subject: [PATCH 432/504] test
      
      ---
       .github/workflows/test.yml | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 0c485d25b9..12b3ed78ac 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,7 +28,7 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               app_version: [v0.9.5, v0.10.0, stable, nightly]
      -        node_version: [v20.12.1, v21.7.1]
      +        node_version: ["20.12.1", "21.7.1"]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      
      From 27a5b1960f39538beb136f48e3a122571098109c Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 14:46:54 +0100
      Subject: [PATCH 433/504] test
      
      ---
       .github/workflows/test.yml | 6 ++++--
       1 file changed, 4 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 12b3ed78ac..9128526627 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,7 +28,7 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               app_version: [v0.9.5, v0.10.0, stable, nightly]
      -        node_version: ["20.12.1", "21.7.1"]
      +        # node_version: ["20.12.1", "21.7.1"]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      @@ -47,7 +47,9 @@ jobs:
               with:
                 # XXX - v20.12.1 taken from .nvmrc file?
                 # node-version-file: .nvmrc
      -          node-version: $${{ matrix.node_version }}
      +          # XXX error "Unable to find Node version '$v21.7.1' for platform linux/win32/darwin and architecture x64."
      +          # node-version: $${{ matrix.node_version }}
      +          node-version: v21.7.1
                 cache: pnpm
             # XXX testing only
             # - run: dir ${{ github.workspace }}
      
      From 75603efb02f3c790bc25125793423b77f4c1055f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 14:51:55 +0100
      Subject: [PATCH 434/504] test
      
      ---
       .github/workflows/test.yml | 16 ++++++++--------
       1 file changed, 8 insertions(+), 8 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 9128526627..f72c0757d4 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -81,12 +81,12 @@ jobs:
             # - Linux: /home/runner/work/cursorless/cursorless
             # - OS X: /Users/runner/work/cursorless/cursorless
             - run: pwd
      -      - run: tree /Users/runner/work/cursorless/cursorless/dist
      -        if: runner.os == 'macOS'
             - run: tree /home/runner/work/cursorless/cursorless/dist
               if: runner.os == 'Linux'
             - run: tree /f D:\a\cursorless\cursorless\dist
               if: runner.os == 'Windows'
      +      - run: find /Users/runner/work/cursorless/cursorless/dist
      +        if: runner.os == 'macOS'
             # - run: dir
             #- run: dir C:\Users\runneradmin\AppData\Local
             #     Directory: C:\Users\runneradmin\AppData\Local
      @@ -107,18 +107,18 @@ jobs:
             # d----           5/16/2024 11:21 AM                Temp
             - name: Install cursorless.nvim dependencies
               run: npm install -g neovim@5.1.0
      -      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      -        if: runner.os == 'Windows'
      -      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      -        if: runner.os == 'Windows'
             - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
               if: runner.os == 'Linux'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
               if: runner.os == 'Linux'
      +      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      +        if: runner.os == 'Windows'
      +      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      +        if: runner.os == 'Windows'
             - run: git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner//BufOnly.vim
      -        if: runner.os == 'Linux'
      +        if: runner.os == 'macOS'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner//talon.nvim
      -        if: runner.os == 'Linux'
      +        if: runner.os == 'macOS'
             # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
             # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
             # Line |
      
      From 97969cee95e6fa4719f8aba9fd4cb864e11e31b3 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 15:17:21 +0100
      Subject: [PATCH 435/504] test
      
      ---
       .github/workflows/test.yml                    |  8 +++---
       .../src/suite/recorded.neovim.test.ts         | 25 ++++++++++---------
       packages/test-harness/src/config/init.vim     |  1 +
       .../test-harness/src/config/init_linux.lua    |  5 ++++
       packages/test-harness/src/config/init_mac.lua |  5 ++++
       packages/test-harness/src/config/init_win.lua |  5 ++++
       .../src/launchNeovimAndRunTests.ts            |  6 ++---
       7 files changed, 36 insertions(+), 19 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index f72c0757d4..e704eb76e1 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,7 +28,8 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               app_version: [v0.9.5, v0.10.0, stable, nightly]
      -        # node_version: ["20.12.1", "21.7.1"]
      +        node_version:
      +          [v16.20.2, v17.9.1, v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      @@ -47,9 +48,8 @@ jobs:
               with:
                 # XXX - v20.12.1 taken from .nvmrc file?
                 # node-version-file: .nvmrc
      -          # XXX error "Unable to find Node version '$v21.7.1' for platform linux/win32/darwin and architecture x64."
      -          # node-version: $${{ matrix.node_version }}
      -          node-version: v21.7.1
      +          node-version: ${{ matrix.node_version }}
      +          # node-version: v21.7.1
                 cache: pnpm
             # XXX testing only
             # - run: dir ${{ github.workspace }}
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index d2026056ea..0e6780a813 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -10,7 +10,8 @@ import {
         TestCaseFixtureLegacy,
         asyncSafety,
         clientSupportsFallback,
      -  getRecordedTestPaths,
      +  getFixturesPath,
      +  // getRecordedTestPaths,
         omitByDeep,
         serializeTestFixture,
         shouldUpdateFixtures,
      @@ -50,16 +51,16 @@ suite("recorded test cases", async function () {
         });
       
         // Run all tests
      -  const tests = getRecordedTestPaths();
      +  //const tests = getRecordedTestPaths();
       
         // Run some tests
      -  // const fixturePath = getFixturesPath();
      -  // const tests = [
      -  //   {
      -  //     name: "recorded/actions/insertEmptyLines/dropThis",
      -  //     path: `${fixturePath}/recorded/actions/insertEmptyLines/dropThis.yml`,
      -  //   },
      -  // ];
      +  const fixturePath = getFixturesPath();
      +  const tests = [
      +    {
      +      name: "recorded/actions/changeNextInstanceChar",
      +      path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      +    },
      +  ];
       
         for (const { name, path } of tests) {
           test(
      @@ -94,9 +95,9 @@ async function runTest(
         // }
       
         // XXX - temp to avoid things to hang on CI
      -  if (name !== "recorded/actions/changeNextInstanceChar") {
      -    return;
      -  }
      +  // if (name !== "recorded/actions/changeNextInstanceChar") {
      +  //   return suite.ctx.skip();
      +  // }
       
         // Uncomment below for debugging
         // if (name === "recorded/implicitExpansion/chuckBoundingThat") {
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index 36bd8724c3..2a242e2380 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1 +1,2 @@
      +echo "loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index 57507bb9bd..f8812c0d39 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,9 +1,14 @@
      +print('loading BufOnly.vim')
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      +print('modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      +print('loading talon.vim')
       require('talon').setup()
      +
      +print('loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_mac.lua b/packages/test-harness/src/config/init_mac.lua
      index 32182e6694..f731144864 100644
      --- a/packages/test-harness/src/config/init_mac.lua
      +++ b/packages/test-harness/src/config/init_mac.lua
      @@ -1,9 +1,14 @@
      +print('loading BufOnly.vim')
       vim.cmd('source /Users/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      +print('modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/Users/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/Users/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      +print('loading talon.vim')
       require('talon').setup()
      +
      +print('loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      index 8b92eaa22f..5eb925a85d 100644
      --- a/packages/test-harness/src/config/init_win.lua
      +++ b/packages/test-harness/src/config/init_win.lua
      @@ -1,9 +1,14 @@
      +print('loading BufOnly.vim')
       vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
       
      +print('modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'D:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
       
      +print('loading talon.vim')
       require('talon').setup()
      +
      +print('loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index b51b3f0408..155d0473e0 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -50,7 +50,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
           const cli = getEnvironmentVariableStrict("APP_PATH");
           // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
      -    // nvim-qt.exe does not allow logging into file using -V9
      +    // nvim-qt.exe does not allow logging into file using -V
           //cli = cli.replace("nvim.exe", "nvim-qt.exe");
       
           let nvimFolder = "";
      @@ -146,7 +146,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           process.exit(0);
       */
       
      -    const nvim_process = cp.spawn(cli, [`-V9${vimLogName}`], {
      +    const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -183,7 +183,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail vim startup started");
       
      -    // await delay(10000);
      +    await delay(10000);
       
           // read log file live and print to console
           // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
      
      From b5217f3d618462d00bf87a0ebe46677cfc20ecdc Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 15:27:58 +0100
      Subject: [PATCH 436/504] test
      
      ---
       .github/workflows/test.yml         | 4 ++--
       packages/test-harness/src/index.ts | 3 ++-
       2 files changed, 4 insertions(+), 3 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index e704eb76e1..2ec1ef9ff8 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,8 +28,8 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               app_version: [v0.9.5, v0.10.0, stable, nightly]
      -        node_version:
      -          [v16.20.2, v17.9.1, v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
      +        # XXX error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
      +        node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 42da537466..1d2eaacf1b 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -27,7 +27,8 @@ export async function run(plugin: NvimPlugin): Promise {
           client: plugin.nvim as NeovimClient,
         };
         try {
      -    await runAllTests(TestType.neovim, TestType.unit);
      +    //await runAllTests(TestType.neovim, TestType.unit);
      +    await runAllTests(TestType.neovim);
         } catch (error) {
           console.error("runAllTests failed (1)");
           console.error(error);
      
      From 52b4dd1b56987f90eff64a9e045ac5323e3fc2eb Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 15:32:09 +0100
      Subject: [PATCH 437/504] delete workflows to speed up testing for now
      
      ---
       .github/workflows/codeql.yml      | 100 ------------------------------
       .github/workflows/forbid-todo.yml |  15 -----
       .github/workflows/pre-commit.yml  |  29 ---------
       .github/workflows/test-docs.yml   |  21 -------
       4 files changed, 165 deletions(-)
       delete mode 100644 .github/workflows/codeql.yml
       delete mode 100644 .github/workflows/forbid-todo.yml
       delete mode 100644 .github/workflows/pre-commit.yml
       delete mode 100644 .github/workflows/test-docs.yml
      
      diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
      deleted file mode 100644
      index e333813880..0000000000
      --- a/.github/workflows/codeql.yml
      +++ /dev/null
      @@ -1,100 +0,0 @@
      -# For most projects, this workflow file will not need changing; you simply need
      -# to commit it to your repository.
      -#
      -# You may wish to alter this file to override the set of languages analyzed,
      -# or to provide custom queries or build logic.
      -#
      -# ******** NOTE ********
      -# We have attempted to detect the languages in your repository. Please check
      -# the `language` matrix defined below to confirm you have the correct set of
      -# supported CodeQL languages.
      -#
      -name: "CodeQL"
      -
      -on:
      -  push:
      -    branches: ["main", cursorless-talon-staging]
      -  pull_request:
      -    # The branches below must be a subset of the branches above
      -    branches: ["main"]
      -  merge_group:
      -    branches: [main]
      -  schedule:
      -    - cron: "34 12 * * 5"
      -
      -jobs:
      -  analyze:
      -    name: Analyze
      -    runs-on: ubuntu-latest
      -    if: ${{ github.event_name != 'merge_group' }}
      -    # only run job if workflow initiated by a pull request event
      -    # see https://github.com/cursorless-dev/cursorless/issues/1338
      -    permissions:
      -      actions: read
      -      contents: read
      -      security-events: write
      -
      -    strategy:
      -      fail-fast: false
      -      matrix:
      -        language: ["javascript", "python"]
      -        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
      -        # Use only 'java' to analyze code written in Java, Kotlin or both
      -        # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
      -        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
      -
      -    steps:
      -      - name: Checkout repository
      -        uses: actions/checkout@v4
      -
      -      # Initializes the CodeQL tools for scanning.
      -      - name: Initialize CodeQL
      -        uses: github/codeql-action/init@v2
      -        with:
      -          languages: ${{ matrix.language }}
      -          # If you wish to specify custom queries, you can do so here or in a config file.
      -          # By default, queries listed here will override any specified in a config file.
      -          # Prefix the list here with "+" to use these queries and those in the config file.
      -
      -          # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
      -          # queries: security-extended,security-and-quality
      -
      -      # Autobuild attempts to build any compiled languages  (C/C++, C#, Go, or Java).
      -      # If this step fails, then you should remove it and run the build manually (see below)
      -      - name: Autobuild
      -        uses: github/codeql-action/autobuild@v2
      -
      -      # ℹ️ Command-line programs to run using the OS shell.
      -      # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
      -
      -      #   If the Autobuild fails above, remove it and uncomment the following three lines.
      -      #   modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
      -
      -      # - run: |
      -      #   echo "Run, Build Application using script"
      -      #   ./location_of_script_within_repo/buildscript.sh
      -
      -      - name: Perform CodeQL Analysis
      -        uses: github/codeql-action/analyze@v2
      -        with:
      -          category: "/language:${{matrix.language}}"
      -
      -  analyze_merge_group:
      -    name: Analyze
      -    runs-on: ubuntu-latest
      -    if: ${{ github.event_name == 'merge_group' }}
      -    # If we're on a merge queue, we just force a pass, as it already ran on the PR
      -    # see https://github.com/cursorless-dev/cursorless/issues/1338
      -
      -    strategy:
      -      fail-fast: false
      -      matrix:
      -        language: ["javascript", "python"]
      -        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
      -        # Use only 'java' to analyze code written in Java, Kotlin or both
      -        # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
      -        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
      -
      -    steps:
      -      - name: Do nothing
      -        run: "true"
      diff --git a/.github/workflows/forbid-todo.yml b/.github/workflows/forbid-todo.yml
      deleted file mode 100644
      index 3b14135e71..0000000000
      --- a/.github/workflows/forbid-todo.yml
      +++ /dev/null
      @@ -1,15 +0,0 @@
      -name: Forbid TODO
      -
      -on:
      -  pull_request:
      -    types: [opened, synchronize, reopened]
      -  merge_group:
      -    branches: [main]
      -
      -jobs:
      -  forbid-todo:
      -    runs-on: ubuntu-latest
      -    steps:
      -      - uses: actions/checkout@v4
      -      - name: Forbid TODO
      -        run: ./scripts/forbid-todo.sh
      diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
      deleted file mode 100644
      index 8ab2696c91..0000000000
      --- a/.github/workflows/pre-commit.yml
      +++ /dev/null
      @@ -1,29 +0,0 @@
      -name: Pre-commit
      -permissions: read-all
      -on:
      -  push:
      -    branches:
      -      - main
      -  pull_request:
      -    types: [opened, synchronize, reopened]
      -  merge_group:
      -    branches: [main]
      -
      -jobs:
      -  pre-commit:
      -    name: Pre-commit
      -    runs-on: ubuntu-latest
      -    steps:
      -      - uses: actions/checkout@v4
      -      - uses: actions/setup-python@v4
      -        with:
      -          python-version: 3.x
      -      - run: corepack enable
      -      - uses: actions/setup-node@v4
      -        with:
      -          node-version-file: .nvmrc
      -          cache: pnpm
      -      - run: pnpm --color install
      -      - uses: pre-commit/action@v3.0.0
      -      - uses: pre-commit-ci/lite-action@v1.0.1
      -        if: always()
      diff --git a/.github/workflows/test-docs.yml b/.github/workflows/test-docs.yml
      deleted file mode 100644
      index 31a583abfc..0000000000
      --- a/.github/workflows/test-docs.yml
      +++ /dev/null
      @@ -1,21 +0,0 @@
      -name: Test docs
      -
      -on:
      -  pull_request:
      -    types: [opened, synchronize, reopened]
      -  merge_group:
      -    branches: [main]
      -
      -jobs:
      -  test-docs-build:
      -    runs-on: ubuntu-latest
      -    env:
      -      CURSORLESS_REPO_ROOT: ${{ github.workspace }}
      -    steps:
      -      - uses: actions/checkout@v4
      -      - run: corepack enable
      -      - uses: actions/setup-node@v4
      -        with:
      -          node-version-file: .nvmrc
      -          cache: pnpm
      -      - run: bash -x scripts/build-and-assemble-website.sh
      
      From 66cdcd73561f2daa4ffd69dd9da6758aed84b731 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 15:43:26 +0100
      Subject: [PATCH 438/504] test
      
      ---
       .github/workflows/test.yml                             | 10 ++++++----
       .../src/suite/recorded.neovim.test.ts                  |  8 ++++++++
       packages/test-harness/src/config/init.vim              |  2 +-
       packages/test-harness/src/config/init_linux.lua        |  8 ++++----
       packages/test-harness/src/config/init_mac.lua          |  8 ++++----
       packages/test-harness/src/config/init_win.lua          |  8 ++++----
       packages/test-harness/src/index.ts                     | 10 +++++-----
       packages/test-harness/src/runAllTests.ts               |  2 +-
       8 files changed, 33 insertions(+), 23 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 2ec1ef9ff8..a0f9f2fe32 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -18,8 +18,8 @@ jobs:
               # XXX: restore this once neovim tests work in CI
               # os: [macos-latest, ubuntu-latest, windows-latest]
               #os: [windows-latest]
      -        # os: [ubuntu-latest]
      -        os: [macos-latest, ubuntu-latest, windows-latest]
      +        os: [ubuntu-latest]
      +        # os: [macos-latest, ubuntu-latest, windows-latest]
               # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
               # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
               # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
      @@ -27,9 +27,11 @@ jobs:
               # app_version: [stable]
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
      -        app_version: [v0.9.5, v0.10.0, stable, nightly]
      +        # app_version: [v0.9.5, v0.10.0, stable, nightly]
      +        app_version: v0.10.0
               # XXX error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
      -        node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
      +        # node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
      +        node_version: v18.20.2
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index 0e6780a813..cedc9b1e19 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -117,6 +117,7 @@ async function runTest(
         const { takeSnapshot, setStoredTarget, commandServerApi } =
           cursorlessApi.testHelpers!;
       
      +  console.debug(`CED: before openNewEditor()`);
         const editor = await openNewEditor(
           client,
           neovimIDE,
      @@ -125,6 +126,7 @@ async function runTest(
             languageId: fixture.languageId,
           },
         );
      +  console.debug(`CED: after openNewEditor()`);
       
         // Override any user settings and make sure tests run with default tabs.
         //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST;
      @@ -133,9 +135,11 @@ async function runTest(
           await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs);
         }
       
      +  console.debug(`CED: before setSelections()`);
         await editor.setSelections(
           fixture.initialState.selections.map(createSelection),
         );
      +  console.debug(`CED: after setSelections()`);
       
         for (const storedTargetKey of storedTargetKeys) {
           const key = `${storedTargetKey}Mark` as const;
      @@ -146,11 +150,13 @@ async function runTest(
           spyIde.clipboard.writeText(fixture.initialState.clipboard);
         }
       
      +  console.debug(`CED: before setFocusedElementType()`);
         commandServerApi.setFocusedElementType(
           fixture.focusedElementType === "other"
             ? undefined
             : fixture.focusedElementType ?? "textEditor",
         );
      +  console.debug(`CED: after setFocusedElementType()`);
       
         // NOT NEEDED FOR NOW
         // Ensure that the expected hats are present
      @@ -160,10 +166,12 @@ async function runTest(
         let fallback: Fallback | undefined;
       
         try {
      +    console.debug(`CED: before runCursorlessCommand()`);
           returnValue = await runCursorlessCommand({
             ...fixture.command,
             usePrePhraseSnapshot,
           });
      +    console.debug(`CED: after runCursorlessCommand()`);
           if (clientSupportsFallback(fixture.command)) {
             const commandResponse = returnValue as CommandResponse;
             returnValue =
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index 2a242e2380..b592f81b15 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1,2 +1,2 @@
      -echo "loading init.lua"
      +echo "CED: loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index f8812c0d39..26fbd12bf3 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,14 +1,14 @@
      -print('loading BufOnly.vim')
      +print('CED: loading BufOnly.vim')
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      -print('modifying runtimepath')
      +print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      -print('loading talon.vim')
      +print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('loading cursorless.vim')
      +print('CED: loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_mac.lua b/packages/test-harness/src/config/init_mac.lua
      index f731144864..c819e0da9d 100644
      --- a/packages/test-harness/src/config/init_mac.lua
      +++ b/packages/test-harness/src/config/init_mac.lua
      @@ -1,14 +1,14 @@
      -print('loading BufOnly.vim')
      +print('CED: loading BufOnly.vim')
       vim.cmd('source /Users/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      -print('modifying runtimepath')
      +print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/Users/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/Users/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      -print('loading talon.vim')
      +print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('loading cursorless.vim')
      +print('CED: loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      index 5eb925a85d..2436b029ff 100644
      --- a/packages/test-harness/src/config/init_win.lua
      +++ b/packages/test-harness/src/config/init_win.lua
      @@ -1,14 +1,14 @@
      -print('loading BufOnly.vim')
      +print('CED: loading BufOnly.vim')
       vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
       
      -print('modifying runtimepath')
      +print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'D:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
       
      -print('loading talon.vim')
      +print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('loading cursorless.vim')
      +print('CED: loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 1d2eaacf1b..b4fa668a01 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -17,9 +17,9 @@ function delay(ms: number) {
       // FIXME: this is neovim specific atm so in the future we can support other apps here
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
      -  console.log("run()");
      +  console.log("CED: run()");
         await delay(10000);
      -  console.log("run() after sleep");
      +  console.log("CED: run() after sleep");
       
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
      @@ -30,13 +30,13 @@ export async function run(plugin: NvimPlugin): Promise {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
         } catch (error) {
      -    console.error("runAllTests failed (1)");
      +    console.error("CED: runAllTests failed (1)");
           console.error(error);
           // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
           // XXX: kill neovim with -1 code ":cq!" command?
           return;
         }
      -  console.log("runAllTests succeeded (1)");
      +  console.log("CED: runAllTests succeeded (1)");
         // XXX: kill neovim with 0 code ":q!" command?
       
         // XXX: launchNeovimAndRunTests.ts will catch that error code
      @@ -48,7 +48,7 @@ export async function run(plugin: NvimPlugin): Promise {
        *   Note that these function need to start with a capital letter to be callable from Neovim.
        */
       export default function entry(plugin: NvimPlugin) {
      -  plugin.registerFunction("TestHarnessRun", async () => await run(plugin), {
      +  plugin.registerFunction("TestHarnessRun", () => run(plugin), {
           sync: false,
         });
       }
      diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
      index 88e79e77bf..29a28ab6d4 100644
      --- a/packages/test-harness/src/runAllTests.ts
      +++ b/packages/test-harness/src/runAllTests.ts
      @@ -22,7 +22,7 @@ export enum TestType {
       }
       
       export function runAllTests(...types: TestType[]) {
      -  console.log("runAllTests()");
      +  console.log("CED: runAllTests()");
         return runTestsInDir(
           path.join(getCursorlessRepoRoot(), "packages"),
           (files) =>
      
      From 064be2483ee8961297db136ad2db6d8ad90a7a07 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 15:46:22 +0100
      Subject: [PATCH 439/504] test
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index a0f9f2fe32..6b18966d6d 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -28,10 +28,10 @@ jobs:
               #app_version: [v0.9.5]
               # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               # app_version: [v0.9.5, v0.10.0, stable, nightly]
      -        app_version: v0.10.0
      +        app_version: [v0.10.0]
               # XXX error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
               # node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
      -        node_version: v18.20.2
      +        node_version: [v18.20.2]
               # XXX: restore this once neovim tests work in CI
               # include:
               #   - os: ubuntu-latest
      
      From 814b5e5dbff9f7eb35bb60e122886859ea793a12 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 16:32:07 +0100
      Subject: [PATCH 440/504] test
      
      ---
       .gitignore                                         |  1 +
       .../src/suite/recorded.neovim.test.ts              |  2 ++
       .../neovim-common/src/testUtil/openNewEditor.ts    |  4 ++++
       packages/test-harness/src/config/init.vim          |  2 ++
       packages/test-harness/src/config/init_ced.lua      | 14 ++++++++++++++
       packages/test-harness/src/index.ts                 |  6 ++++--
       .../test-harness/src/launchNeovimAndRunTests.ts    | 10 ++++++++--
       7 files changed, 35 insertions(+), 4 deletions(-)
       create mode 100644 packages/test-harness/src/config/init_ced.lua
      
      diff --git a/.gitignore b/.gitignore
      index 010ba5eebf..61b3e013ff 100644
      --- a/.gitignore
      +++ b/.gitignore
      @@ -49,3 +49,4 @@ cursorless.nvim/node/cursorless-neovim
       cursorless.nvim/node/test-harness
       
       temp/
      +vim.log
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index cedc9b1e19..d6b3e00f34 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -84,6 +84,8 @@ async function runTest(
         neovimIDE: NeovimIDE,
       ) {
         const client = (global as any).additionalParameters.client;
      +  console.log("CED: runTest(): client:");
      +  console.log(client);
       
         const buffer = await fsp.readFile(file);
         const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy;
      diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts
      index 4edb046669..94699976af 100644
      --- a/packages/neovim-common/src/testUtil/openNewEditor.ts
      +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts
      @@ -19,12 +19,16 @@ export async function openNewEditor(
       ): Promise {
         // open a new buffer
         // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file
      +  console.debug(`CED: before :enew`);
         await client.command(":enew");
      +  console.debug(`CED: after :enew`);
       
         if (!openBeside) {
           // close all the other buffers
           // @see: https://stackoverflow.com/questions/4545275/vim-close-all-buffers-but-this-one
      +    console.debug(`CED: before :BufOnly!`);
           await client.command(":BufOnly!");
      +    console.debug(`CED: after :BufOnly!`);
         }
       
         // standardise newlines so we can easily split the lines
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index b592f81b15..70175fbad5 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1,2 +1,4 @@
      +" https://vi.stackexchange.com/questions/42366/if-i-set-cmdheight-0-i-get-the-press-enter-or-type-command-to-continue-message
      +set shortmess=csCFSW
       echo "CED: loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      new file mode 100644
      index 0000000000..b491c7417f
      --- /dev/null
      +++ b/packages/test-harness/src/config/init_ced.lua
      @@ -0,0 +1,14 @@
      +print('CED: loading BufOnly.vim')
      +vim.cmd('source C:\\Users\\Cedric\\Desktop\\test\\BufOnly.vim\\plugin\\BufOnly.vim')
      +
      +print('CED: modifying runtimepath')
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\talon.nvim'
      +vim.o.runtimepath = vim.o.runtimepath
      +  .. ','
      +  .. 'C:\\work\\tools\\voicecoding\\cursorless_fork\\dist\\cursorless.nvim'
      +
      +print('CED: loading talon.vim')
      +require('talon').setup()
      +
      +print('CED: loading cursorless.vim')
      +require('cursorless').setup()
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index b4fa668a01..565cf038e4 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -18,14 +18,16 @@ function delay(ms: number) {
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
         console.log("CED: run()");
      -  await delay(10000);
      -  console.log("CED: run() after sleep");
      +  // await delay(10000);
      +  // console.log("CED: run() after sleep");
       
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
         (global as any).additionalParameters = {
           client: plugin.nvim as NeovimClient,
         };
      +  console.log("CED: run(): client:");
      +  console.log(plugin.nvim as NeovimClient);
         try {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 155d0473e0..adff8bb226 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -1,5 +1,6 @@
       import * as cp from "child_process";
       import process from "node:process";
      +import { userInfo } from "os";
       // import * as path from "path";
       // import * as os from "os";
       import { exists, readdirSync, mkdirSync, unlinkSync, copyFile } from "fs";
      @@ -56,8 +57,13 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           let nvimFolder = "";
           let initLuaFile = "";
           if (process.platform === "win32") {
      -      nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim\\";
      -      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_win.lua`;
      +      if (userInfo().username === "Cedric") {
      +        nvimFolder = "C:/Users/Cedric/AppData/Local/nvim/";
      +        initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_ced.lua`;
      +      } else {
      +        nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim/";
      +        initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_win.lua`;
      +      }
           } else if (process.platform === "linux") {
             //XXX: ~/.config/nvim/ does not work?
             nvimFolder = "/home/runner/.config/nvim/";
      
      From 782ac83f7c7f34fa5e02038ea3cad8eea67d21bc Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 16:48:30 +0100
      Subject: [PATCH 441/504] comment prints
      
      ---
       cursorless.nvim/lua/cursorless/init.lua       | 24 +++++++++----------
       packages/test-harness/src/config/init.vim     |  4 ++--
       packages/test-harness/src/config/init_ced.lua |  8 +++----
       3 files changed, 18 insertions(+), 18 deletions(-)
      
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 0a4cf407f0..9a55a5b391 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -11,20 +11,20 @@ end
       -- in the cursorless-neovim, command-server and neovim-registry extensions
       -- in order to initialize them
       local function load_extensions()
      -  print('load_extensions() - before CursorlessLoadExtension')
      +  -- print('load_extensions() - before CursorlessLoadExtension')
         vim.api.nvim_call_function('CursorlessLoadExtension', {})
      -  print('load_extensions() - before CommandServerLoadExtension')
      +  -- print('load_extensions() - before CommandServerLoadExtension')
         vim.api.nvim_call_function('CommandServerLoadExtension', {})
      -  print('load_extensions() - after loading extensions')
      +  -- print('load_extensions() - after loading extensions')
       
         if os.getenv('CURSORLESS_MODE') == 'test' then
      -    print('load_extensions() - before sleep')
      +    -- print('load_extensions() - before sleep')
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
           vim.cmd([[sleep 5]])
      -    print('load_extensions() - before TestHarnessRun()')
      +    -- print('load_extensions() - before TestHarnessRun()')
           vim.api.nvim_call_function('TestHarnessRun', {})
      -    print('load_extensions() - after TestHarnessRun()')
      +    -- print('load_extensions() - after TestHarnessRun()')
         end
       end
       
      @@ -70,16 +70,16 @@ local function configure_command_server_shortcut()
       end
       
       local function setup()
      -  print('setup() - start')
      -  print('setup() - sourcing utils.lua')
      +  -- print('setup() - start')
      +  -- print('setup() - sourcing utils.lua')
         vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim')
      -  print('setup() - calling register_functions')
      +  -- print('setup() - calling register_functions')
         register_functions()
      -  print('setup() - calling load_extensions')
      +  -- print('setup() - calling load_extensions')
         load_extensions()
      -  print('setup() - calling configure_command_server_shortcut')
      +  -- print('setup() - calling configure_command_server_shortcut')
         configure_command_server_shortcut()
      -  print('setup() - end')
      +  -- print('setup() - end')
       end
       
       local M = {
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index 70175fbad5..e29acc57d8 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1,4 +1,4 @@
       " https://vi.stackexchange.com/questions/42366/if-i-set-cmdheight-0-i-get-the-press-enter-or-type-command-to-continue-message
      -set shortmess=csCFSW
      -echo "CED: loading init.lua"
      +" set shortmess=csCFSW
      +" echo "CED: loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      index b491c7417f..aae1d8934d 100644
      --- a/packages/test-harness/src/config/init_ced.lua
      +++ b/packages/test-harness/src/config/init_ced.lua
      @@ -1,14 +1,14 @@
      -print('CED: loading BufOnly.vim')
      +-- print('CED: loading BufOnly.vim')
       vim.cmd('source C:\\Users\\Cedric\\Desktop\\test\\BufOnly.vim\\plugin\\BufOnly.vim')
       
      -print('CED: modifying runtimepath')
      +-- print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'C:\\work\\tools\\voicecoding\\cursorless_fork\\dist\\cursorless.nvim'
       
      -print('CED: loading talon.vim')
      +-- print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('CED: loading cursorless.vim')
      +-- print('CED: loading cursorless.vim')
       require('cursorless').setup()
      
      From 68952ed1a1e8b9ca62482a47f8be1cdbba2c649e Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 17:02:01 +0100
      Subject: [PATCH 442/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index adff8bb226..c0e94d6534 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -157,7 +157,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        NVIM_NODE_LOG_LEVEL: "debug",
      +        // NVIM_NODE_LOG_LEVEL: "debug",
      +        NVIM_NODE_LOG_LEVEL: "error",
               CURSORLESS_MODE: "test",
             },
           });
      
      From 2dd6e213a8a83f700b84d940960701fd57d16d10 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 17:11:18 +0100
      Subject: [PATCH 443/504] test
      
      ---
       packages/test-harness/src/index.ts                   | 4 ++++
       packages/test-harness/src/launchNeovimAndRunTests.ts | 3 +++
       2 files changed, 7 insertions(+)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 565cf038e4..744d105c8b 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -17,6 +17,9 @@ function delay(ms: number) {
       // FIXME: this is neovim specific atm so in the future we can support other apps here
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
      +  console.error(
      +    "CED: run() (error to simulate always logging even if logging level is set to error)",
      +  );
         console.log("CED: run()");
         // await delay(10000);
         // console.log("CED: run() after sleep");
      @@ -39,6 +42,7 @@ export async function run(plugin: NvimPlugin): Promise {
           return;
         }
         console.log("CED: runAllTests succeeded (1)");
      +  // console.error("CED: random error message to make sure stuff is logged");
         // XXX: kill neovim with 0 code ":q!" command?
       
         // XXX: launchNeovimAndRunTests.ts will catch that error code
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index c0e94d6534..c25c7f08c9 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -28,6 +28,9 @@ function delay(ms: number) {
        * `--extensionTestsPath`
        */
       export async function launchNeovimAndRunTests(extensionTestsPath: string) {
      +  console.error(
      +    "CED: launchNeovimAndRunTests() (error to simulate always logging even if logging level is set to error)",
      +  );
         let code = 1; // failure
         try {
           // The folder containing the Extension Manifest package.json
      
      From 1184130756baf47e199ca476a17d17e1de638068 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 17:15:15 +0100
      Subject: [PATCH 444/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 5 +++--
       1 file changed, 3 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index c25c7f08c9..b91db8a0d5 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -160,8 +160,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        // NVIM_NODE_LOG_LEVEL: "debug",
      -        NVIM_NODE_LOG_LEVEL: "error",
      +        //NVIM_NODE_LOG_LEVEL: "debug", // print lots
      +        NVIM_NODE_LOG_LEVEL: "info", // print lots
      +        //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
               CURSORLESS_MODE: "test",
             },
           });
      
      From d6965443a66ce30eade5af045f657706c06e8012 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Mon, 20 May 2024 17:25:39 +0100
      Subject: [PATCH 445/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index b91db8a0d5..6569a22d58 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -160,8 +160,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        //NVIM_NODE_LOG_LEVEL: "debug", // print lots
      -        NVIM_NODE_LOG_LEVEL: "info", // print lots
      +        NVIM_NODE_LOG_LEVEL: "debug", // print max
      +        // NVIM_NODE_LOG_LEVEL: "info", // print average
               //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
               CURSORLESS_MODE: "test",
             },
      
      From 3af15e6d716ab895018f13a01661c8e509e72fe7 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:26:08 +0100
      Subject: [PATCH 446/504] test to skip ":enew" command
      
      ---
       packages/neovim-common/src/testUtil/openNewEditor.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts
      index 94699976af..3a43229d68 100644
      --- a/packages/neovim-common/src/testUtil/openNewEditor.ts
      +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts
      @@ -20,7 +20,7 @@ export async function openNewEditor(
         // open a new buffer
         // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file
         console.debug(`CED: before :enew`);
      -  await client.command(":enew");
      +  //await client.command(":enew");
         console.debug(`CED: after :enew`);
       
         if (!openBeside) {
      
      From f7d3660d2c08a6778000e12e97642ce038ecbb4a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:27:33 +0100
      Subject: [PATCH 447/504] commenting to test if this avoids hanging problem in
       CI?
      
      ---
       packages/neovim-common/src/neovimApi.ts | 5 +++--
       1 file changed, 3 insertions(+), 2 deletions(-)
      
      diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts
      index 08d3716999..54efe7939b 100644
      --- a/packages/neovim-common/src/neovimApi.ts
      +++ b/packages/neovim-common/src/neovimApi.ts
      @@ -166,6 +166,7 @@ export async function showErrorMessage(
         client: NeovimClient,
         message: string,
       ): Promise {
      -  const luaCode = `vim.notify("${message}")`;
      -  await client.executeLua(luaCode, []);
      +  // XXX - commenting to test if this avoids hanging problem in CI?
      +  // const luaCode = `vim.notify("${message}")`;
      +  // await client.executeLua(luaCode, []);
       }
      
      From fccfab5d3ba4af665e42c7e838a1b2663e8d4fb3 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:35:05 +0100
      Subject: [PATCH 448/504] test
      
      ---
       packages/neovim-common/src/neovimApi.ts              | 1 +
       packages/neovim-common/src/testUtil/openNewEditor.ts | 4 +++-
       packages/test-harness/src/config/init_linux.lua      | 4 ++++
       3 files changed, 8 insertions(+), 1 deletion(-)
      
      diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts
      index 54efe7939b..28f3369df8 100644
      --- a/packages/neovim-common/src/neovimApi.ts
      +++ b/packages/neovim-common/src/neovimApi.ts
      @@ -167,6 +167,7 @@ export async function showErrorMessage(
         message: string,
       ): Promise {
         // XXX - commenting to test if this avoids hanging problem in CI?
      +  // but does not seem to change anything and it still hangs after the ":enew" command
         // const luaCode = `vim.notify("${message}")`;
         // await client.executeLua(luaCode, []);
       }
      diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts
      index 3a43229d68..b0483f9eb3 100644
      --- a/packages/neovim-common/src/testUtil/openNewEditor.ts
      +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts
      @@ -20,7 +20,9 @@ export async function openNewEditor(
         // open a new buffer
         // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file
         console.debug(`CED: before :enew`);
      -  //await client.command(":enew");
      +  // XXX - this is where it hangs atm after the first command back into lua
      +  // NOTE: if I comment this, it hangs at the ":BufOnly!" command below
      +  await client.command(":enew");
         console.debug(`CED: after :enew`);
       
         if (!openBeside) {
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index 26fbd12bf3..e6b96b9107 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -12,3 +12,7 @@ require('talon').setup()
       
       print('CED: loading cursorless.vim')
       require('cursorless').setup()
      +
      +-- attempt to avoid the "Press ENTER or type command to continue" prompt
      +local key = vim.api.nvim_replace_termcodes('', true, false, true)
      +vim.api.nvim_feedkeys(key, 'n', false)
      
      From e3a861f505d7e0324c518d015626b7272ed03fad Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:37:51 +0100
      Subject: [PATCH 449/504] restore killing neovim at the end
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 6 +++---
       1 file changed, 3 insertions(+), 3 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 6569a22d58..e2a9ebc9fe 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -210,9 +210,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail neovim test started");
       
      -    //await delay(2000000);
      +    await delay(60000);
       
      -    //nvim_process.kill("SIGTERM");
      +    nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
       
           //await delay(10000);
      @@ -239,5 +239,5 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.error(err);
         }
         console.log(`Returned code: ${code}`);
      -  //process.exit(code);
      +  process.exit(code);
       }
      
      From 343d8a1793fabf9eb78aabf1ed4840572b663e74 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:48:15 +0100
      Subject: [PATCH 450/504] test
      
      ---
       packages/test-harness/src/config/init_linux.lua | 14 ++++++++------
       1 file changed, 8 insertions(+), 6 deletions(-)
      
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index e6b96b9107..33eecce575 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,18 +1,20 @@
      -print('CED: loading BufOnly.vim')
      +-- print('CED: loading BufOnly.vim')
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      -print('CED: modifying runtimepath')
      +-- print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      -print('CED: loading talon.vim')
      +-- print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('CED: loading cursorless.vim')
      +-- print('CED: loading cursorless.vim')
       require('cursorless').setup()
       
       -- attempt to avoid the "Press ENTER or type command to continue" prompt
      -local key = vim.api.nvim_replace_termcodes('', true, false, true)
      -vim.api.nvim_feedkeys(key, 'n', false)
      +-- local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      +-- vim.api.nvim_feedkeys(key, 'n', false)
      +local enter = vim.api.nvim_replace_termcodes('', true, true, true)
      +vim.fn.feedkeys(enter)
      
      From d2749db9ac2984ee637745bf9386a4ab8a12c63a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 09:55:35 +0100
      Subject: [PATCH 451/504] t
      
      ---
       packages/test-harness/src/config/init_linux.lua | 8 ++++----
       1 file changed, 4 insertions(+), 4 deletions(-)
      
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index 33eecce575..ba01f971fd 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -14,7 +14,7 @@ require('talon').setup()
       require('cursorless').setup()
       
       -- attempt to avoid the "Press ENTER or type command to continue" prompt
      --- local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      --- vim.api.nvim_feedkeys(key, 'n', false)
      -local enter = vim.api.nvim_replace_termcodes('', true, true, true)
      -vim.fn.feedkeys(enter)
      +local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      +vim.api.nvim_feedkeys(key, 'n', false)
      +-- local enter = vim.api.nvim_replace_termcodes('', true, true, true)
      +-- vim.fn.feedkeys(enter)
      
      From fbeb382b56f6b8254f6c29dae8a52c7f63afa12f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 10:24:43 +0100
      Subject: [PATCH 452/504] t
      
      ---
       .github/workflows/test.yml                    |  4 +++
       packages/test-harness/src/config/init.vim     |  6 +++-
       packages/test-harness/src/config/init_ced.lua | 29 ++++++++++++++++++-
       .../test-harness/src/config/init_linux.lua    | 28 ++++++++++++++++--
       4 files changed, 63 insertions(+), 4 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 6b18966d6d..782d88ec33 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -113,6 +113,10 @@ jobs:
               if: runner.os == 'Linux'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
               if: runner.os == 'Linux'
      +      - run: git clone https://github.com/MunifTanjim/nui.nvim /home/runner/nui.nvim
      +        if: runner.os == 'Linux'
      +      - run: git clone https://github.com/folke/noice.nvim /home/runner/noice.nvim
      +        if: runner.os == 'Linux'
             - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
               if: runner.os == 'Windows'
             - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index e29acc57d8..d23b699179 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1,4 +1,8 @@
       " https://vi.stackexchange.com/questions/42366/if-i-set-cmdheight-0-i-get-the-press-enter-or-type-command-to-continue-message
      -" set shortmess=csCFSW
      +set shortmess=csCFSW
      +" still hangs
      +" set cmdheight=
      +" still hangs and cmdheight is still 0???
      +" set cmdheight=1
       " echo "CED: loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      index aae1d8934d..5add6e08f1 100644
      --- a/packages/test-harness/src/config/init_ced.lua
      +++ b/packages/test-harness/src/config/init_ced.lua
      @@ -1,3 +1,5 @@
      +-- vim.o.cmdheight = 1000
      +
       -- print('CED: loading BufOnly.vim')
       vim.cmd('source C:\\Users\\Cedric\\Desktop\\test\\BufOnly.vim\\plugin\\BufOnly.vim')
       
      @@ -7,8 +9,33 @@ vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'C:\\work\\tools\\voicecoding\\cursorless_fork\\dist\\cursorless.nvim'
       
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\nui.nvim'
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\noice.nvim'
      +
       -- print('CED: loading talon.vim')
       require('talon').setup()
       
      --- print('CED: loading cursorless.vim')
      +print('CED: loading cursorless.vim')
       require('cursorless').setup()
      +
      +require('noice').setup({
      +  lsp = {
      +    -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      +    override = {
      +      ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      +      ['vim.lsp.util.stylize_markdown'] = true,
      +      ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      +    },
      +  },
      +  -- you can enable a preset for easier configuration
      +  presets = {
      +    bottom_search = true, -- use a classic bottom cmdline for search
      +    command_palette = true, -- position the cmdline and popupmenu together
      +    long_message_to_split = true, -- long messages will be sent to a split
      +    inc_rename = false, -- enables an input dialog for inc-rename.nvim
      +    lsp_doc_border = false, -- add a border to hover docs and signature help
      +  },
      +})
      +
      +-- this crashes nvim, when noice is loaded
      +-- print('CED: test print after loading noice')
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index ba01f971fd..30320ae692 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,3 +1,5 @@
      +-- vim.o.cmdheight = 1000
      +
       -- print('CED: loading BufOnly.vim')
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      @@ -7,6 +9,9 @@ vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/nui.nvim'
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/noice.nvim'
      +
       -- print('CED: loading talon.vim')
       require('talon').setup()
       
      @@ -14,7 +19,26 @@ require('talon').setup()
       require('cursorless').setup()
       
       -- attempt to avoid the "Press ENTER or type command to continue" prompt
      -local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      -vim.api.nvim_feedkeys(key, 'n', false)
      +-- local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      +-- vim.api.nvim_feedkeys(key, 'n', false)
       -- local enter = vim.api.nvim_replace_termcodes('', true, true, true)
       -- vim.fn.feedkeys(enter)
      +
      +require('noice').setup({
      +  lsp = {
      +    -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      +    override = {
      +      ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      +      ['vim.lsp.util.stylize_markdown'] = true,
      +      ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      +    },
      +  },
      +  -- you can enable a preset for easier configuration
      +  presets = {
      +    bottom_search = true, -- use a classic bottom cmdline for search
      +    command_palette = true, -- position the cmdline and popupmenu together
      +    long_message_to_split = true, -- long messages will be sent to a split
      +    inc_rename = false, -- enables an input dialog for inc-rename.nvim
      +    lsp_doc_border = false, -- add a border to hover docs and signature help
      +  },
      +})
      
      From e617bd41f462006e8fc5f01916f596150a5a0b11 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 10:34:03 +0100
      Subject: [PATCH 453/504] test
      
      ---
       .../cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts   | 4 ++--
       packages/test-harness/src/index.ts                            | 4 ++--
       2 files changed, 4 insertions(+), 4 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index d6b3e00f34..f90fec83aa 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -84,8 +84,8 @@ async function runTest(
         neovimIDE: NeovimIDE,
       ) {
         const client = (global as any).additionalParameters.client;
      -  console.log("CED: runTest(): client:");
      -  console.log(client);
      +  // console.log("CED: runTest(): client:");
      +  // console.log(client);
       
         const buffer = await fsp.readFile(file);
         const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy;
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 744d105c8b..1bf1832f26 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -29,8 +29,8 @@ export async function run(plugin: NvimPlugin): Promise {
         (global as any).additionalParameters = {
           client: plugin.nvim as NeovimClient,
         };
      -  console.log("CED: run(): client:");
      -  console.log(plugin.nvim as NeovimClient);
      +  // console.log("CED: run(): client:");
      +  // console.log(plugin.nvim as NeovimClient);
         try {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
      
      From 41168b0dad489671e2956ecaca4bdadfda43e62e Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 10:40:05 +0100
      Subject: [PATCH 454/504] disable cmd-server
      
      ---
       cursorless.nvim/lua/cursorless/init.lua | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 9a55a5b391..6dad5a04cd 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -14,7 +14,8 @@ local function load_extensions()
         -- print('load_extensions() - before CursorlessLoadExtension')
         vim.api.nvim_call_function('CursorlessLoadExtension', {})
         -- print('load_extensions() - before CommandServerLoadExtension')
      -  vim.api.nvim_call_function('CommandServerLoadExtension', {})
      +  -- XXX attempt to disable command-server since not needed in CI and may cause issues when loading?
      +  -- vim.api.nvim_call_function('CommandServerLoadExtension', {})
         -- print('load_extensions() - after loading extensions')
       
         if os.getenv('CURSORLESS_MODE') == 'test' then
      
      From fdff6f0a0f3ef2b50dd395d2d18398f4f21af93a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:10:48 +0100
      Subject: [PATCH 455/504] attempt from command line
      
      ---
       packages/test-harness/src/config/wait.lua     |  3 +++
       .../src/launchNeovimAndRunTests.ts            | 26 ++++++++++++-------
       2 files changed, 19 insertions(+), 10 deletions(-)
       create mode 100644 packages/test-harness/src/config/wait.lua
      
      diff --git a/packages/test-harness/src/config/wait.lua b/packages/test-harness/src/config/wait.lua
      new file mode 100644
      index 0000000000..558070f99f
      --- /dev/null
      +++ b/packages/test-harness/src/config/wait.lua
      @@ -0,0 +1,3 @@
      +-- print('before sleep')
      +vim.cmd([[sleep 20]])
      +-- print('after sleep')
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index e2a9ebc9fe..3e946a32ed 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -155,17 +155,23 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           process.exit(0);
       */
       
      -    const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      -      env: {
      -        ...process.env,
      -        // "NVIM_NODE_HOST_DEBUG": "1",
      -        NVIM_NODE_LOG_FILE: logName,
      -        NVIM_NODE_LOG_LEVEL: "debug", // print max
      -        // NVIM_NODE_LOG_LEVEL: "info", // print average
      -        //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
      -        CURSORLESS_MODE: "test",
      +    const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
      +    // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      +    const nvim_process = cp.spawn(
      +      cli,
      +      [`-S ${waitLuaFile} ${initLuaFile} -V25${vimLogName}`],
      +      {
      +        env: {
      +          ...process.env,
      +          // "NVIM_NODE_HOST_DEBUG": "1",
      +          NVIM_NODE_LOG_FILE: logName,
      +          NVIM_NODE_LOG_LEVEL: "debug", // print max
      +          // NVIM_NODE_LOG_LEVEL: "info", // print average
      +          //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
      +          CURSORLESS_MODE: "test",
      +        },
             },
      -    });
      +    );
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      
      From 30bfb2d785f042b63b8ce9fa862eb2e5232667df Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:24:01 +0100
      Subject: [PATCH 456/504] headless test
      
      ---
       packages/test-harness/src/config/init_ced.lua | 40 +++++++++----------
       .../src/launchNeovimAndRunTests.ts            | 24 +++++------
       2 files changed, 30 insertions(+), 34 deletions(-)
      
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      index 5add6e08f1..d240f3d193 100644
      --- a/packages/test-harness/src/config/init_ced.lua
      +++ b/packages/test-harness/src/config/init_ced.lua
      @@ -9,8 +9,8 @@ vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'C:\\work\\tools\\voicecoding\\cursorless_fork\\dist\\cursorless.nvim'
       
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\nui.nvim'
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\noice.nvim'
      +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\nui.nvim'
      +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\noice.nvim'
       
       -- print('CED: loading talon.vim')
       require('talon').setup()
      @@ -18,24 +18,24 @@ require('talon').setup()
       print('CED: loading cursorless.vim')
       require('cursorless').setup()
       
      -require('noice').setup({
      -  lsp = {
      -    -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      -    override = {
      -      ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      -      ['vim.lsp.util.stylize_markdown'] = true,
      -      ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      -    },
      -  },
      -  -- you can enable a preset for easier configuration
      -  presets = {
      -    bottom_search = true, -- use a classic bottom cmdline for search
      -    command_palette = true, -- position the cmdline and popupmenu together
      -    long_message_to_split = true, -- long messages will be sent to a split
      -    inc_rename = false, -- enables an input dialog for inc-rename.nvim
      -    lsp_doc_border = false, -- add a border to hover docs and signature help
      -  },
      -})
      +-- require('noice').setup({
      +--   lsp = {
      +--     -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      +--     override = {
      +--       ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      +--       ['vim.lsp.util.stylize_markdown'] = true,
      +--       ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      +--     },
      +--   },
      +--   -- you can enable a preset for easier configuration
      +--   presets = {
      +--     bottom_search = true, -- use a classic bottom cmdline for search
      +--     command_palette = true, -- position the cmdline and popupmenu together
      +--     long_message_to_split = true, -- long messages will be sent to a split
      +--     inc_rename = false, -- enables an input dialog for inc-rename.nvim
      +--     lsp_doc_border = false, -- add a border to hover docs and signature help
      +--   },
      +-- })
       
       -- this crashes nvim, when noice is loaded
       -- print('CED: test print after loading noice')
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 3e946a32ed..0b7e37e1df 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -157,21 +157,17 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      -    const nvim_process = cp.spawn(
      -      cli,
      -      [`-S ${waitLuaFile} ${initLuaFile} -V25${vimLogName}`],
      -      {
      -        env: {
      -          ...process.env,
      -          // "NVIM_NODE_HOST_DEBUG": "1",
      -          NVIM_NODE_LOG_FILE: logName,
      -          NVIM_NODE_LOG_LEVEL: "debug", // print max
      -          // NVIM_NODE_LOG_LEVEL: "info", // print average
      -          //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
      -          CURSORLESS_MODE: "test",
      -        },
      +    const nvim_process = cp.spawn(cli, [`--headless -V25${vimLogName}`], {
      +      env: {
      +        ...process.env,
      +        // "NVIM_NODE_HOST_DEBUG": "1",
      +        NVIM_NODE_LOG_FILE: logName,
      +        NVIM_NODE_LOG_LEVEL: "debug", // print max
      +        // NVIM_NODE_LOG_LEVEL: "info", // print average
      +        //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
      +        CURSORLESS_MODE: "test",
             },
      -    );
      +    });
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      
      From 81b0440da6045e431a72ac3cda79d52a737e087d Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:28:05 +0100
      Subject: [PATCH 457/504] t
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 5 ++++-
       1 file changed, 4 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 0b7e37e1df..b9a25b254a 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -157,7 +157,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      -    const nvim_process = cp.spawn(cli, [`--headless -V25${vimLogName}`], {
      +    const nvim_process = cp.spawn(cli, [`--headless`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -184,6 +184,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log(`\t${file}`);
           });
       
      +    /*
      +    // XXX - we can't use that if we use --headless above
           const tailVim = new Tail(vimLogName, {
             // separator: "\n",
             fromBeginning: true,
      @@ -195,6 +197,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log("vim startup: ERROR: ", error);
           });
           console.log("tail vim startup started");
      +    */
       
           await delay(10000);
       
      
      From 33a5f1d4de300bd152f9b3a7a1d1749090c15dd7 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:35:13 +0100
      Subject: [PATCH 458/504] silent
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 4 +++-
       1 file changed, 3 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index b9a25b254a..72fe4ae1d5 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -157,7 +157,9 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      -    const nvim_process = cp.spawn(cli, [`--headless`], {
      +    // XXX - this works and avoids hanging on CI but we can't see the nvim logs
      +    // const nvim_process = cp.spawn(cli, [`--headless`], {
      +    const nvim_process = cp.spawn(cli, [`-es`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      
      From ae3a54528ba00bbcd294f50c864b29c44f8a418b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:51:41 +0100
      Subject: [PATCH 459/504] revert
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 6 ++++--
       1 file changed, 4 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 72fe4ae1d5..e06c30726f 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -158,8 +158,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
      -    // const nvim_process = cp.spawn(cli, [`--headless`], {
      -    const nvim_process = cp.spawn(cli, [`-es`], {
      +    const nvim_process = cp.spawn(cli, [`--headless`], {
      +      // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
      +      // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
      +      // const nvim_process = cp.spawn(cli, [`-Es`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      
      From 77be066c2a60c5dff50953ea5c3b8e9d30c3cd56 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 11:56:59 +0100
      Subject: [PATCH 460/504] attempt to inherit stdio
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index e06c30726f..0085fd1f13 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -159,6 +159,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
           const nvim_process = cp.spawn(cli, [`--headless`], {
      +      stdio: "inherit",
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
             // const nvim_process = cp.spawn(cli, [`-Es`], {
      
      From 09011f08e81830c83c8b68098e527d7ed2446846 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:07:17 +0100
      Subject: [PATCH 461/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 8 +++++---
       1 file changed, 5 insertions(+), 3 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 0085fd1f13..0742c2cb3a 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -135,7 +135,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -    /*
      +
      +    //const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
           const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             encoding: "utf-8",
             stdio: "inherit",
      @@ -153,13 +154,14 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`Exiting early`);
           process.exit(0);
      -*/
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      +    // https://neovim.io/doc/user/starting.html#--headless
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
           const nvim_process = cp.spawn(cli, [`--headless`], {
      -      stdio: "inherit",
      +      // xxx on CI, this does not work and does not show any of the vim logs
      +      // stdio: "inherit",
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
             // const nvim_process = cp.spawn(cli, [`-Es`], {
      
      From 9d1363182b97cad2e1fdead5a80114611ba84223 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:11:34 +0100
      Subject: [PATCH 462/504] t
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 0742c2cb3a..d368c8bade 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -137,7 +137,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
       
           //const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      -    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      +    const { status, signal, error } = cp.spawnSync(cli, [`--headless -V9`], {
             encoding: "utf-8",
             stdio: "inherit",
             env: {
      @@ -162,6 +162,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           const nvim_process = cp.spawn(cli, [`--headless`], {
             // xxx on CI, this does not work and does not show any of the vim logs
             // stdio: "inherit",
      +      // shell: true,
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
             // const nvim_process = cp.spawn(cli, [`-Es`], {
      
      From a270185bb222bf41e8348b116f080e1d36178242 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:12:56 +0100
      Subject: [PATCH 463/504] t
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index d368c8bade..e6517b5014 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -137,7 +137,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
       
           //const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      -    const { status, signal, error } = cp.spawnSync(cli, [`--headless -V9`], {
      +    const { status, signal, error } = cp.spawnSync(cli, [`--headless`], {
             encoding: "utf-8",
             stdio: "inherit",
             env: {
      
      From 0d1d8d59f168a3ac76859ead280069819fe29929 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:19:00 +0100
      Subject: [PATCH 464/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 10 +++++-----
       1 file changed, 5 insertions(+), 5 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index e6517b5014..706ed87107 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -135,9 +135,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -
      -    //const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      -    const { status, signal, error } = cp.spawnSync(cli, [`--headless`], {
      +    /*
      +    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             encoding: "utf-8",
             stdio: "inherit",
             env: {
      @@ -154,6 +153,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           console.log(`Exiting early`);
           process.exit(0);
      +*/
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      @@ -161,8 +161,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
           const nvim_process = cp.spawn(cli, [`--headless`], {
             // xxx on CI, this does not work and does not show any of the vim logs
      -      // stdio: "inherit",
      -      // shell: true,
      +      stdio: "inherit",
      +      shell: true,
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
             // const nvim_process = cp.spawn(cli, [`-Es`], {
      
      From 8389826516f028b76ad644b033ab6dc92ade4b8d Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:30:27 +0100
      Subject: [PATCH 465/504] enable all tests
      
      ---
       .../src/suite/recorded.neovim.test.ts         | 39 +++++++------------
       .../src/launchNeovimAndRunTests.ts            |  4 +-
       2 files changed, 15 insertions(+), 28 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index f90fec83aa..aa591a5b6d 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -10,8 +10,8 @@ import {
         TestCaseFixtureLegacy,
         asyncSafety,
         clientSupportsFallback,
      -  getFixturesPath,
      -  // getRecordedTestPaths,
      +  // getFixturesPath,
      +  getRecordedTestPaths,
         omitByDeep,
         serializeTestFixture,
         shouldUpdateFixtures,
      @@ -51,16 +51,16 @@ suite("recorded test cases", async function () {
         });
       
         // Run all tests
      -  //const tests = getRecordedTestPaths();
      +  const tests = getRecordedTestPaths();
       
         // Run some tests
      -  const fixturePath = getFixturesPath();
      -  const tests = [
      -    {
      -      name: "recorded/actions/changeNextInstanceChar",
      -      path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      -    },
      -  ];
      +  // const fixturePath = getFixturesPath();
      +  // const tests = [
      +  //   {
      +  //     name: "recorded/actions/changeNextInstanceChar",
      +  //     path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      +  //   },
      +  // ];
       
         for (const { name, path } of tests) {
           test(
      @@ -84,22 +84,15 @@ async function runTest(
         neovimIDE: NeovimIDE,
       ) {
         const client = (global as any).additionalParameters.client;
      -  // console.log("CED: runTest(): client:");
      -  // console.log(client);
       
         const buffer = await fsp.readFile(file);
         const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy;
         const excludeFields: ExcludableSnapshotField[] = [];
       
         // XXX - restore this
      -  // if (unsupportedFixture(name, fixture)) {
      -  //   return suite.ctx.skip();
      -  // }
      -
      -  // XXX - temp to avoid things to hang on CI
      -  // if (name !== "recorded/actions/changeNextInstanceChar") {
      -  //   return suite.ctx.skip();
      -  // }
      +  if (unsupportedFixture(name, fixture)) {
      +    return suite.ctx.skip();
      +  }
       
         // Uncomment below for debugging
         // if (name === "recorded/implicitExpansion/chuckBoundingThat") {
      @@ -137,11 +130,9 @@ async function runTest(
           await sleepWithBackoff(fixture.postEditorOpenSleepTimeMs);
         }
       
      -  console.debug(`CED: before setSelections()`);
         await editor.setSelections(
           fixture.initialState.selections.map(createSelection),
         );
      -  console.debug(`CED: after setSelections()`);
       
         for (const storedTargetKey of storedTargetKeys) {
           const key = `${storedTargetKey}Mark` as const;
      @@ -152,13 +143,11 @@ async function runTest(
           spyIde.clipboard.writeText(fixture.initialState.clipboard);
         }
       
      -  console.debug(`CED: before setFocusedElementType()`);
         commandServerApi.setFocusedElementType(
           fixture.focusedElementType === "other"
             ? undefined
             : fixture.focusedElementType ?? "textEditor",
         );
      -  console.debug(`CED: after setFocusedElementType()`);
       
         // NOT NEEDED FOR NOW
         // Ensure that the expected hats are present
      @@ -168,12 +157,10 @@ async function runTest(
         let fallback: Fallback | undefined;
       
         try {
      -    console.debug(`CED: before runCursorlessCommand()`);
           returnValue = await runCursorlessCommand({
             ...fixture.command,
             usePrePhraseSnapshot,
           });
      -    console.debug(`CED: after runCursorlessCommand()`);
           if (clientSupportsFallback(fixture.command)) {
             const commandResponse = returnValue as CommandResponse;
             returnValue =
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 706ed87107..ab0915fc8e 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -170,8 +170,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        NVIM_NODE_LOG_LEVEL: "debug", // print max
      -        // NVIM_NODE_LOG_LEVEL: "info", // print average
      +        // NVIM_NODE_LOG_LEVEL: "debug", // for debugging
      +        NVIM_NODE_LOG_LEVEL: "info", // default for testing
               //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
               CURSORLESS_MODE: "test",
             },
      
      From 6e7b2ac521be245ba3a4083c39480d2c2b9c3943 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:47:38 +0100
      Subject: [PATCH 466/504] increase wait
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 8 +++++++-
       1 file changed, 7 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index ab0915fc8e..4d78878f5f 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -217,13 +217,19 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           tailTest.on("line", function (data: string) {
             console.log(`neovim test: ${data}`);
      +      if (data.includes("CED: runAllTests")) {
      +        console.log("found runAllTests in log");
      +      }
           });
           tailTest.on("error", function (error) {
             console.log("neovim test: ERROR: ", error);
      +      if (error.includes("CED: runAllTests")) {
      +        console.log("found runAllTests in log error");
      +      }
           });
           console.log("tail neovim test started");
       
      -    await delay(60000);
      +    await delay(600000);
       
           nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
      
      From e83f3427d162e76b559ed59a60c62b2516439523 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 12:59:38 +0100
      Subject: [PATCH 467/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 5 ++++-
       1 file changed, 4 insertions(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 4d78878f5f..2e234c6690 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -229,7 +229,10 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           console.log("tail neovim test started");
       
      -    await delay(600000);
      +    while (true) {
      +      await delay(10000);
      +    }
      +    // await delay(600000);
       
           nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
      
      From 601ade9bbd9fadda325aa7945984d634c100621d Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 13:02:35 +0100
      Subject: [PATCH 468/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 2e234c6690..5fa72d54c7 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -161,8 +161,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
           const nvim_process = cp.spawn(cli, [`--headless`], {
             // xxx on CI, this does not work and does not show any of the vim logs
      -      stdio: "inherit",
      -      shell: true,
      +      // stdio: "inherit",
      +      // shell: true,
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
             // const nvim_process = cp.spawn(cli, [`-Es`], {
      
      From 75984dcfe1026ae9e81b3da63fb5a12070c3ba31 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 14:35:54 +0100
      Subject: [PATCH 469/504] go back to one test to solve other problems
      
      ---
       .../src/suite/recorded.neovim.test.ts         | 20 +++++++++----------
       1 file changed, 10 insertions(+), 10 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index aa591a5b6d..025d7c6df3 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -10,8 +10,8 @@ import {
         TestCaseFixtureLegacy,
         asyncSafety,
         clientSupportsFallback,
      -  // getFixturesPath,
      -  getRecordedTestPaths,
      +  getFixturesPath,
      +  // getRecordedTestPaths,
         omitByDeep,
         serializeTestFixture,
         shouldUpdateFixtures,
      @@ -51,16 +51,16 @@ suite("recorded test cases", async function () {
         });
       
         // Run all tests
      -  const tests = getRecordedTestPaths();
      +  // const tests = getRecordedTestPaths();
       
         // Run some tests
      -  // const fixturePath = getFixturesPath();
      -  // const tests = [
      -  //   {
      -  //     name: "recorded/actions/changeNextInstanceChar",
      -  //     path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      -  //   },
      -  // ];
      +  const fixturePath = getFixturesPath();
      +  const tests = [
      +    {
      +      name: "recorded/actions/changeNextInstanceChar",
      +      path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      +    },
      +  ];
       
         for (const { name, path } of tests) {
           test(
      
      From 59677c12f1364e402a380554720dc6f0e2f6899b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 14:46:57 +0100
      Subject: [PATCH 470/504] end detection?
      
      ---
       .../test-harness/src/launchNeovimAndRunTests.ts     | 13 +++++++++++++
       1 file changed, 13 insertions(+)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 5fa72d54c7..211cb4ffcb 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -211,6 +211,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
       
           // read log file live and print to console
           // https://stackoverflow.com/questions/26788504/using-node-js-to-read-a-live-file-line-by-line
      +    let done = false;
           const tailTest = new Tail(logName, {
             // separator: "\n",
             fromBeginning: true,
      @@ -219,18 +220,30 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             console.log(`neovim test: ${data}`);
             if (data.includes("CED: runAllTests")) {
               console.log("found runAllTests in log");
      +        done = true;
             }
           });
           tailTest.on("error", function (error) {
             console.log("neovim test: ERROR: ", error);
             if (error.includes("CED: runAllTests")) {
               console.log("found runAllTests in log error");
      +        done = true;
             }
           });
           console.log("tail neovim test started");
       
      +    let count = 0;
           while (true) {
      +      count += 1;
             await delay(10000);
      +      if (done) {
      +        console.log("done here, exiting loop");
      +        break;
      +      }
      +      if (count > 2) {
      +        console.log("timeout, exiting loop");
      +        break;
      +      }
           }
           // await delay(600000);
       
      
      From 92177568065846bff432f07395502005eafb172f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 15:39:00 +0100
      Subject: [PATCH 471/504] test
      
      ---
       packages/test-harness/src/index.ts            | 25 ++++------------
       .../src/launchNeovimAndRunTests.ts            | 29 +++++++++++++------
       2 files changed, 26 insertions(+), 28 deletions(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 1bf1832f26..4ba1733938 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -2,11 +2,6 @@ import { TestType, runAllTests } from "./runAllTests";
       
       import type { NeovimClient, NvimPlugin } from "neovim";
       
      -// https://stackoverflow.com/questions/37764665/how-to-implement-sleep-function-in-typescript
      -function delay(ms: number) {
      -  return new Promise((resolve) => setTimeout(resolve, ms));
      -}
      -
       /**
        * Runs all extension tests.  This function should only be called after attaching to the
        * "node" process, such as when testing cursorless in neovim.
      @@ -17,31 +12,23 @@ function delay(ms: number) {
       // FIXME: this is neovim specific atm so in the future we can support other apps here
       // with an environment variable
       export async function run(plugin: NvimPlugin): Promise {
      -  console.error(
      -    "CED: run() (error to simulate always logging even if logging level is set to error)",
      -  );
      -  console.log("CED: run()");
      -  // await delay(10000);
      -  // console.log("CED: run() after sleep");
      -
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
         (global as any).additionalParameters = {
           client: plugin.nvim as NeovimClient,
         };
      -  // console.log("CED: run(): client:");
      -  // console.log(plugin.nvim as NeovimClient);
      +  let code = 0;
         try {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
         } catch (error) {
      -    console.error("CED: runAllTests failed (1)");
      +    console.log(`==== TESTS ERROR:`);
           console.error(error);
      -    // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
      -    // XXX: kill neovim with -1 code ":cq!" command?
      -    return;
      +    code = 1;
         }
      -  console.log("CED: runAllTests succeeded (1)");
      +  console.log(`==== TESTS FINISHED: code: ${code}`);
      +  // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
      +  // XXX: kill neovim with -1 code ":cq!" command?
         // console.error("CED: random error message to make sure stuff is logged");
         // XXX: kill neovim with 0 code ":q!" command?
       
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 211cb4ffcb..d9dd1de2f2 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -179,7 +179,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      -    //nvim_process.unref();
      +    nvim_process.unref();
       
           console.log(`pid: ${nvim_process.pid}`);
       
      @@ -218,29 +218,39 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           });
           tailTest.on("line", function (data: string) {
             console.log(`neovim test: ${data}`);
      -      if (data.includes("CED: runAllTests")) {
      -        console.log("found runAllTests in log");
      +      if (data.includes("==== TESTS FINISHED:")) {
               done = true;
      +        console.log(`done: ${done}`);
      +        const re = new RegExp("==== TESTS FINISHED: code: (d+)");
      +        console.log(`re: ${re}`);
      +        const found = data.match(re);
      +        console.log(`found: ${found}`);
      +        if (found !== null) {
      +          code = parseInt(found[0]);
      +          console.log(`code: ${code}`);
      +        }
             }
           });
           tailTest.on("error", function (error) {
             console.log("neovim test: ERROR: ", error);
      -      if (error.includes("CED: runAllTests")) {
      -        console.log("found runAllTests in log error");
      +      if (error.includes("==== TESTS FINISHED:")) {
               done = true;
      +        console.log(`done: ${done}`);
             }
           });
           console.log("tail neovim test started");
       
           let count = 0;
      +    const stepSeconds = 10;
           while (true) {
      -      count += 1;
      -      await delay(10000);
      +      count += stepSeconds;
      +      await delay(stepSeconds * 1000);
             if (done) {
               console.log("done here, exiting loop");
               break;
             }
      -      if (count > 2) {
      +      // exit if tests take more than 5 minutes
      +      if (count > 5 * 60) {
               console.log("timeout, exiting loop");
               break;
             }
      @@ -268,10 +278,11 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //       ? undefined
           //       : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`],
           // });
      -    code = 0; // success
      +    //code = 0; // success
         } catch (err) {
           console.error("Test run threw exception:");
           console.error(err);
      +    code = 2;
         }
         console.log(`Returned code: ${code}`);
         process.exit(code);
      
      From ae12718dd9ba58e29d7eb4f0875e87269ef4a637 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 15:56:31 +0100
      Subject: [PATCH 472/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 4 +---
       1 file changed, 1 insertion(+), 3 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index d9dd1de2f2..52bc1f6d15 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -221,9 +221,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
             if (data.includes("==== TESTS FINISHED:")) {
               done = true;
               console.log(`done: ${done}`);
      -        const re = new RegExp("==== TESTS FINISHED: code: (d+)");
      -        console.log(`re: ${re}`);
      -        const found = data.match(re);
      +        const found = data.match(/.*==== TESTS FINISHED: code: (\d+).*/);
               console.log(`found: ${found}`);
               if (found !== null) {
                 code = parseInt(found[0]);
      
      From 50e159cbefd778f8a2da6a1b8979eaa8f89b227b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:13:07 +0100
      Subject: [PATCH 473/504] test
      
      ---
       packages/test-harness/src/launchNeovimAndRunTests.ts | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 52bc1f6d15..0e898608e6 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -224,7 +224,7 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
               const found = data.match(/.*==== TESTS FINISHED: code: (\d+).*/);
               console.log(`found: ${found}`);
               if (found !== null) {
      -          code = parseInt(found[0]);
      +          code = parseInt(found[1]);
                 console.log(`code: ${code}`);
               }
             }
      
      From e061127578663060bc82c4778b2ad588e64f5034 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:25:46 +0100
      Subject: [PATCH 474/504] cleanup
      
      ---
       .github/workflows/test.yml                    | 65 ++++---------------
       .../src/launchNeovimAndRunTests.ts            |  5 ++
       2 files changed, 17 insertions(+), 53 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 782d88ec33..29154403fe 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -15,24 +15,19 @@ jobs:
           strategy:
             fail-fast: false
             matrix:
      -        # XXX: restore this once neovim tests work in CI
      +        # XXX: target all platforms?
               # os: [macos-latest, ubuntu-latest, windows-latest]
      -        #os: [windows-latest]
               os: [ubuntu-latest]
      -        # os: [macos-latest, ubuntu-latest, windows-latest]
      -        # XXX - stable is 0.10.0 and only has nvim.exe (no nvim-qt.exe). Also locally it hangs on unskipped test
      -        # and on CI, it fails on trying to tail the log and I don't know what is happening since didnt get a snapshot of CI yet
      -        # to understand the error in nvim.exe (though probably need the nvim-qt.exe since nvim.exe won't show anything)
      -        # Linux: with 0.9.5 or stable, it hangs on first function call back into lua from node
      -        # app_version: [stable]
      -        #app_version: [v0.9.5]
      -        # NB: Nightly is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
      +        # XXX: target all app versions?
      +        # NB: stable: is 0.10.0 and only has nvim.exe (no nvim-qt.exe)
      +        # NB: nightly: is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
               # app_version: [v0.9.5, v0.10.0, stable, nightly]
               app_version: [v0.10.0]
      -        # XXX error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
      +        # XXX: target all node versions?
      +        # NB: error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
               # node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
               node_version: [v18.20.2]
      -        # XXX: restore this once neovim tests work in CI
      +        # XXX: there is no concept of "legacy" in neovim but maybe "v0.9.5" would fit the bill?
               # include:
               #   - os: ubuntu-latest
               #     app_version: legacy
      @@ -48,65 +43,29 @@ jobs:
             # XXX - run over different node versions: https://nodejs.org/en/about/previous-releases
             - uses: actions/setup-node@v4
               with:
      -          # XXX - v20.12.1 taken from .nvmrc file?
      +          # XXX - use same v20.12.1 taken from .nvmrc file?
                 # node-version-file: .nvmrc
      -          node-version: ${{ matrix.node_version }}
                 # node-version: v21.7.1
      +          node-version: ${{ matrix.node_version }}
                 cache: pnpm
      -      # XXX testing only
      -      # - run: dir ${{ github.workspace }}
      -      # - run: dir ${{ github.workspace }}/packages
      -      # - run: dir ${{ github.workspace }}/packages/test-harness
             - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
               shell: bash
      -      # NB: we can't comment this for speeding up testing as we get this error when running test harness:
      -      # > @cursorless/test-harness@0.1.0 testNeovim D:\a\cursorless\cursorless\packages\test-harness
      -      # > env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts
      -
      -      # env: 'my-ts-node': No such file or directory
      -      # D:\a\cursorless\cursorless\packages\test-harness:
      -      #  ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @cursorless/test-harness@0.1.0 testNeovim: `env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts`
      -      # spawn ENOENT
      -      #  WARN   Local package.json exists, but node_modules missing, did you mean to install?
      -      # Error: Process completed with exit code 1.
             - run: pnpm --color install
             - run: pnpm --color compile
      -      #- run: dir D:\a\cursorless\cursorless\packages\cursorless-neovim\out\
      -      # We need to run "build" in order to prepare the dist/cursorless.nvim folder
             - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
      +      # XXX - restore this once neovim tests work in CI
             #- run: xvfb-run -a pnpm --color test
             #  if: runner.os == 'Linux'
             # - run: pnpm --color test
             #   if: runner.os != 'Linux'
      -      # Current working directory:
      -      # - Windows: D:\a\cursorless\cursorless
      -      # - Linux: /home/runner/work/cursorless/cursorless
      -      # - OS X: /Users/runner/work/cursorless/cursorless
      -      - run: pwd
      +      # XXX - debugging only, remove once tests work on all platforms
             - run: tree /home/runner/work/cursorless/cursorless/dist
               if: runner.os == 'Linux'
             - run: tree /f D:\a\cursorless\cursorless\dist
               if: runner.os == 'Windows'
             - run: find /Users/runner/work/cursorless/cursorless/dist
               if: runner.os == 'macOS'
      -      # - run: dir
      -      #- run: dir C:\Users\runneradmin\AppData\Local
      -      #     Directory: C:\Users\runneradmin\AppData\Local
      -      # Mode                 LastWriteTime         Length Name
      -      # ----                 -------------         ------ ----
      -      # d----           5/15/2024 11:25 PM                .IdentityService
      -      # d----           5/15/2024 11:24 PM                AzureFunctionsTools
      -      # d----           5/16/2024 11:19 AM                GitHub
      -      # d----           5/15/2024 11:13 PM                Google
      -      # d----           5/16/2024 11:13 AM                Microsoft
      -      # d----           5/15/2024 11:17 PM                Microsoft SDKs
      -      # d----           5/16/2024 11:14 AM                Mozilla
      -      # d----           5/16/2024 11:20 AM                node
      -      # d----           5/15/2024 11:13 PM                Packages
      -      # d----           5/15/2024 11:14 PM                PeerDistRepub
      -      # d----           5/16/2024 11:20 AM                pnpm
      -      # d----           5/15/2024 11:17 PM                ServiceHub
      -      # d----           5/16/2024 11:21 AM                Temp
      +      # XXX - is there a better way to execute all these commands?
             - name: Install cursorless.nvim dependencies
               run: npm install -g neovim@5.1.0
             - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 0e898608e6..d7ada9a24d 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -26,6 +26,11 @@ function delay(ms: number) {
        * specified in {@link extensionTestsPath}.
        * @param extensionTestsPath The path to test runner, passed to
        * `--extensionTestsPath`
      + *
      + * Current working directory:
      + *  - Windows: D:\a\cursorless\cursorless
      + *  - Linux: /home/runner/work/cursorless/cursorless
      + *  - OS X: /Users/runner/work/cursorless/cursorless
        */
       export async function launchNeovimAndRunTests(extensionTestsPath: string) {
         console.error(
      
      From 5c9fa2683e063714d4af99499ca5341c58b6eaea Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:30:25 +0100
      Subject: [PATCH 475/504] test
      
      ---
       .github/workflows/test.yml                    | 59 +------------------
       .../src/launchNeovimAndRunTests.ts            |  2 +
       2 files changed, 4 insertions(+), 57 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 29154403fe..88aff3faa1 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -84,67 +84,12 @@ jobs:
               if: runner.os == 'macOS'
             - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner//talon.nvim
               if: runner.os == 'macOS'
      -      # - run: C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l ${{ github.workspace }}\packages\test-harness\src\config\empty.lua
      -      # C:\Users\runneradmin\nvim-stable\bin\nvim.exe: D:\a\_temp\2658188c-43d2-4fce-9de9-299408299ebb.ps1:2
      -      # Line |
      -      #    2 |  C:\Users\runneradmin\nvim-stable\bin\nvim.exe -l D:\a\cursorless\curs …
      -      #      |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      -      #      | The term 'C:\Users\runneradmin\nvim-stable\bin\nvim.exe' is not recognized as a name of a cmdlet, function,
      -      #      | script file, or executable program. Check the spelling of the name, or if a path was included, verify that the
      -      #      | path is correct and try again.
      -      # Error: Process completed with exit code 1.
      -      #- run: mkdir C:\Users\runneradmin\AppData\Local\nvim
      -      # Run rhysd/action-setup-vim@v1 fails with "app_version: legacy"
      -      # Error: 'version' input 'legacy' is not a format of Git tags in neovim/neovim repository. It should match to regex //^v\d+\.\d+\.\d+$//. NOTE: It requires 'v' prefix
             - name: Install Neovim
               uses: rhysd/action-setup-vim@v1
               id: vim
               with:
                 version: ${{ matrix.app_version }}
                 neovim: true
      -      # - run: dir /home/runner/.local/share/ || true
      -      # - run: dir /home/runner/.local/share/nvim/ || true
      -      # - run: dir /home/runner/.config/ || true
      -      # - run: dir /home/runner/.config/nvim/ || true
      -      # - run: ${{ steps.vim.outputs.executable }} -l ${{ github.workspace }}/packages/test-harness/src/config/empty.lua
      -      # - run: dir /home/runner/.local/share/ || true
      -      # - run: dir /home/runner/.local/share/nvim/ || true
      -      # - run: dir /home/runner/.config/ || true
      -      # - run: dir /home/runner/.config/nvim/ || true
      -      #- run: dir C:\Users\runneradmin\
      -      #- run: dir C:\Users\runneradmin\nvim-${{ matrix.app_version }}\bin\
      -      # Run dir C:\Users\runneradmin\nvim-v0.9.5\bin\
      -      #     Directory: C:\Users\runneradmin\nvim-v0.9.5\bin
      -      # Mode                 LastWriteTime         Length Name
      -      # ----                 -------------         ------ ----
      -      # d----          12/30/2023  1:22 PM                bearer
      -      # d----          12/30/2023  1:22 PM                iconengines
      -      # d----          12/30/2023  1:22 PM                imageformats
      -      # d----          12/30/2023  1:22 PM                platforms
      -      # d----          12/30/2023  1:22 PM                styles
      -      # d----          12/30/2023  1:22 PM                translations
      -      # -a---          12/30/2023  1:20 PM          16384 cat.exe
      -      # -a---          12/30/2023  1:20 PM        4173928 D3Dcompiler_47.dll
      -      # -a---          12/30/2023  1:22 PM        1199296 dbghelp.dll
      -      # -a---          12/30/2023  1:20 PM          68096 diff.exe
      -      # -a---          12/30/2023  1:20 PM          69088 libEGL.dll
      -      # -a---          12/30/2023  1:20 PM          76288 libgcc_s_seh-1.dll
      -      # -a---          12/30/2023  1:20 PM        6298808 libGLESv2.dll
      -      # -a---          12/30/2023  1:20 PM        1417216 libstdc++-6.dll
      -      # -a---          12/30/2023  1:20 PM          52224 libwinpthread-1.dll
      -      # -a---          12/30/2023  1:22 PM         539648 lua51.dll
      -      # -a---          12/30/2023  1:20 PM        3757746 nvim-qt.exe
      -      # -a---          12/30/2023  1:22 PM        5214720 nvim.exe
      -      # -a---          12/30/2023  1:22 PM       13242368 nvim.pdb
      -      # -a---          12/30/2023  1:20 PM       20923392 opengl32sw.dll
      -      # -a---          12/30/2023  1:20 PM        8185968 Qt5Core.dll
      -      # -a---          12/30/2023  1:20 PM        9663232 Qt5Gui.dll
      -      # -a---          12/30/2023  1:20 PM        2699096 Qt5Network.dll
      -      # -a---          12/30/2023  1:20 PM         580088 Qt5Svg.dll
      -      # -a---          12/30/2023  1:20 PM        8662160 Qt5Widgets.dll
      -      # -a---          12/30/2023  1:20 PM         131072 tee.exe
      -      # -a---          12/30/2023  1:20 PM        1137152 win32yank.exe
      -      # -a---          12/30/2023  1:20 PM         151040
             - name: Run neovim unit tests using test-harness
               run: pnpm -F @cursorless/test-harness testNeovim
               if: runner.os != 'Linux'
      @@ -154,10 +99,10 @@ jobs:
               if: runner.os == 'Linux'
               env:
                 APP_PATH: ${{ steps.vim.outputs.executable }}
      -      #- name: Create vscode dist that can be installed locally
      +      # XXX: restore this once neovim tests work in CI
      +      # - name: Create vscode dist that can be installed locally
             #  run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
             #  if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      # XXX: restore this once neovim tests work in CI
             # - name: Test create vsix
             #   id: createVsix
             #   uses: HaaLeo/publish-vscode-extension@v1
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index d7ada9a24d..735e109818 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -263,6 +263,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           nvim_process.kill("SIGTERM");
           console.log(`killed: ${nvim_process.killed}`);
       
      +    tailTest.unwatch();
      +
           //await delay(10000);
       
           // console.log("finished installing dependency extensions");
      
      From c2030c3c608d203baffc90f94b5aa4939d44f607 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:35:00 +0100
      Subject: [PATCH 476/504] test
      
      ---
       .pre-commit-config.yaml | 14 +-------------
       .vscode/tasks.json      |  2 +-
       2 files changed, 2 insertions(+), 14 deletions(-)
      
      diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
      index e0e31d446f..b2b08155fe 100644
      --- a/.pre-commit-config.yaml
      +++ b/.pre-commit-config.yaml
      @@ -22,8 +22,6 @@ repos:
           rev: v4.4.0
           hooks:
             - id: check-added-large-files
      -        # temp - because of already built .js and .cjs files in dist/ while testing CI
      -        exclude: .cjs$
             - id: check-case-conflict
             - id: check-executables-have-shebangs
             - id: check-merge-conflict
      @@ -32,24 +30,16 @@ repos:
             - id: detect-private-key
             - id: end-of-file-fixer
               exclude_types: [svg]
      -        # XXX - restore that
      -        # exclude: ^patches/.*\.patch$|\.scope$
      -        # temp - because of already built .js and .cjs files in dist/ while testing CI
      -        exclude: .js$
             - id: fix-byte-order-marker
             - id: forbid-submodules
             - id: mixed-line-ending
      -        # temp - because of already built .js and .cjs files in dist/ while testing CI
      -        exclude: .js$
             - id: trailing-whitespace
      -        # temp - because of already built .js and .cjs files in dist/ while testing CI
      -        exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/|.js$
               # Trailing whitespace breaks yaml files if you use a multiline string
               # with a line that has trailing white space. Many of our recorded
               # tests use strings with trailing white space to represent the final
               # document contents. For example
               # data/fixtures/recorded/languages/ruby/changeCondition.yml
      -        # exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/
      +        exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/
         - repo: local
           hooks:
             - id: eslint
      @@ -66,8 +56,6 @@ repos:
               language: system
               entry: pnpm exec prettier
               args: [--write, --list-different, --ignore-unknown]
      -        # temp - because of already built .js and .cjs files in dist/ while testing CI
      -        exclude: .js$
         - repo: local
           hooks:
             - id: format-recorded-tests
      diff --git a/.vscode/tasks.json b/.vscode/tasks.json
      index d83ca0e97c..378d1fce56 100644
      --- a/.vscode/tasks.json
      +++ b/.vscode/tasks.json
      @@ -123,7 +123,7 @@
                 "CURSORLESS_REPO_ROOT": "${workspaceFolder}",
                 "NVIM_NODE_HOST_DEBUG": "1",
                 "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log",
      -          "NVIM_NODE_LOG_LEVEL": "debug",
      +          "NVIM_NODE_LOG_LEVEL": "info",
                 "CURSORLESS_MODE": "test"
               }
             }
      
      From 083cf6d6b9bba226a57b944ce574b7737d6ec3bb Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:36:35 +0100
      Subject: [PATCH 477/504] test
      
      ---
       .../src/suite/recorded.neovim.test.ts         | 20 +++++++++----------
       1 file changed, 10 insertions(+), 10 deletions(-)
      
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index 025d7c6df3..aa591a5b6d 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -10,8 +10,8 @@ import {
         TestCaseFixtureLegacy,
         asyncSafety,
         clientSupportsFallback,
      -  getFixturesPath,
      -  // getRecordedTestPaths,
      +  // getFixturesPath,
      +  getRecordedTestPaths,
         omitByDeep,
         serializeTestFixture,
         shouldUpdateFixtures,
      @@ -51,16 +51,16 @@ suite("recorded test cases", async function () {
         });
       
         // Run all tests
      -  // const tests = getRecordedTestPaths();
      +  const tests = getRecordedTestPaths();
       
         // Run some tests
      -  const fixturePath = getFixturesPath();
      -  const tests = [
      -    {
      -      name: "recorded/actions/changeNextInstanceChar",
      -      path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      -    },
      -  ];
      +  // const fixturePath = getFixturesPath();
      +  // const tests = [
      +  //   {
      +  //     name: "recorded/actions/changeNextInstanceChar",
      +  //     path: `${fixturePath}/recorded/actions/changeNextInstanceChar.yml`,
      +  //   },
      +  // ];
       
         for (const { name, path } of tests) {
           test(
      
      From 8228a5601a10e188608fe4438233a656d8cfea6f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 16:47:37 +0100
      Subject: [PATCH 478/504] disable noice.nvim
      
      ---
       packages/test-harness/src/config/init_ced.lua |  2 +-
       .../test-harness/src/config/init_linux.lua    | 42 +++++++++----------
       packages/test-harness/src/config/init_mac.lua |  8 ++--
       packages/test-harness/src/config/init_win.lua |  8 ++--
       4 files changed, 29 insertions(+), 31 deletions(-)
      
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      index d240f3d193..ab61bf7aa8 100644
      --- a/packages/test-harness/src/config/init_ced.lua
      +++ b/packages/test-harness/src/config/init_ced.lua
      @@ -15,7 +15,7 @@ vim.o.runtimepath = vim.o.runtimepath
       -- print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('CED: loading cursorless.vim')
      +-- print('CED: loading cursorless.vim')
       require('cursorless').setup()
       
       -- require('noice').setup({
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index 30320ae692..f8148108d3 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,5 +1,3 @@
      --- vim.o.cmdheight = 1000
      -
       -- print('CED: loading BufOnly.vim')
       vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      @@ -9,8 +7,8 @@ vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/nui.nvim'
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/noice.nvim'
      +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/nui.nvim'
      +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/noice.nvim'
       
       -- print('CED: loading talon.vim')
       require('talon').setup()
      @@ -24,21 +22,21 @@ require('cursorless').setup()
       -- local enter = vim.api.nvim_replace_termcodes('', true, true, true)
       -- vim.fn.feedkeys(enter)
       
      -require('noice').setup({
      -  lsp = {
      -    -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      -    override = {
      -      ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      -      ['vim.lsp.util.stylize_markdown'] = true,
      -      ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      -    },
      -  },
      -  -- you can enable a preset for easier configuration
      -  presets = {
      -    bottom_search = true, -- use a classic bottom cmdline for search
      -    command_palette = true, -- position the cmdline and popupmenu together
      -    long_message_to_split = true, -- long messages will be sent to a split
      -    inc_rename = false, -- enables an input dialog for inc-rename.nvim
      -    lsp_doc_border = false, -- add a border to hover docs and signature help
      -  },
      -})
      +-- require('noice').setup({
      +--   lsp = {
      +--     -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      +--     override = {
      +--       ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      +--       ['vim.lsp.util.stylize_markdown'] = true,
      +--       ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      +--     },
      +--   },
      +--   -- you can enable a preset for easier configuration
      +--   presets = {
      +--     bottom_search = true, -- use a classic bottom cmdline for search
      +--     command_palette = true, -- position the cmdline and popupmenu together
      +--     long_message_to_split = true, -- long messages will be sent to a split
      +--     inc_rename = false, -- enables an input dialog for inc-rename.nvim
      +--     lsp_doc_border = false, -- add a border to hover docs and signature help
      +--   },
      +-- })
      diff --git a/packages/test-harness/src/config/init_mac.lua b/packages/test-harness/src/config/init_mac.lua
      index c819e0da9d..2a16ef8e51 100644
      --- a/packages/test-harness/src/config/init_mac.lua
      +++ b/packages/test-harness/src/config/init_mac.lua
      @@ -1,14 +1,14 @@
      -print('CED: loading BufOnly.vim')
      +-- print('CED: loading BufOnly.vim')
       vim.cmd('source /Users/runner/BufOnly.vim/plugin/BufOnly.vim')
       
      -print('CED: modifying runtimepath')
      +-- print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/Users/runner/talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. '/Users/runner/work/cursorless/cursorless/dist/cursorless.nvim'
       
      -print('CED: loading talon.vim')
      +-- print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('CED: loading cursorless.vim')
      +-- print('CED: loading cursorless.vim')
       require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      index 2436b029ff..18ed65b3c6 100644
      --- a/packages/test-harness/src/config/init_win.lua
      +++ b/packages/test-harness/src/config/init_win.lua
      @@ -1,14 +1,14 @@
      -print('CED: loading BufOnly.vim')
      +-- print('CED: loading BufOnly.vim')
       vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
       
      -print('CED: modifying runtimepath')
      +-- print('CED: modifying runtimepath')
       vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
       vim.o.runtimepath = vim.o.runtimepath
         .. ','
         .. 'D:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
       
      -print('CED: loading talon.vim')
      +-- print('CED: loading talon.vim')
       require('talon').setup()
       
      -print('CED: loading cursorless.vim')
      +-- print('CED: loading cursorless.vim')
       require('cursorless').setup()
      
      From aa0b83abf55b47f11466b2d044f344a9c8a211a9 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 17:01:23 +0100
      Subject: [PATCH 479/504] pnpm install
      
      ---
       pnpm-lock.yaml   | 18900 +++++++++++++++++++--------------------------
       test/all.vimspec |    22 -
       2 files changed, 7827 insertions(+), 11095 deletions(-)
       delete mode 100644 test/all.vimspec
      
      diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
      index c6a4871c0a..70d6a387e0 100644
      --- a/pnpm-lock.yaml
      +++ b/pnpm-lock.yaml
      @@ -1,4 +1,4 @@
      -lockfileVersion: '9.0'
      +lockfileVersion: '6.0'
       
       settings:
         autoInstallPeers: true
      @@ -775,8917 +775,12 @@ importers:
       
       packages:
       
      -  '@aashutoshrathi/word-wrap@1.2.6':
      +  /@aashutoshrathi/word-wrap@1.2.6:
           resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
           engines: {node: '>=0.10.0'}
       
      -  '@algolia/autocomplete-core@1.9.3':
      +  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
           resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
      -
      -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
      -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
      -    peerDependencies:
      -      search-insights: '>= 1 < 3'
      -
      -  '@algolia/autocomplete-preset-algolia@1.9.3':
      -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
      -    peerDependencies:
      -      '@algolia/client-search': '>= 4.9.1 < 6'
      -      algoliasearch: '>= 4.9.1 < 6'
      -
      -  '@algolia/autocomplete-shared@1.9.3':
      -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
      -    peerDependencies:
      -      '@algolia/client-search': '>= 4.9.1 < 6'
      -      algoliasearch: '>= 4.9.1 < 6'
      -
      -  '@algolia/cache-browser-local-storage@4.22.1':
      -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
      -
      -  '@algolia/cache-common@4.22.1':
      -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
      -
      -  '@algolia/cache-in-memory@4.22.1':
      -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
      -
      -  '@algolia/client-account@4.22.1':
      -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
      -
      -  '@algolia/client-analytics@4.22.1':
      -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
      -
      -  '@algolia/client-common@4.22.1':
      -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
      -
      -  '@algolia/client-personalization@4.22.1':
      -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
      -
      -  '@algolia/client-search@4.22.1':
      -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
      -
      -  '@algolia/events@4.0.1':
      -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
      -
      -  '@algolia/logger-common@4.22.1':
      -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
      -
      -  '@algolia/logger-console@4.22.1':
      -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
      -
      -  '@algolia/requester-browser-xhr@4.22.1':
      -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
      -
      -  '@algolia/requester-common@4.22.1':
      -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
      -
      -  '@algolia/requester-node-http@4.22.1':
      -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
      -
      -  '@algolia/transporter@4.22.1':
      -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
      -
      -  '@alloc/quick-lru@5.2.0':
      -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
      -    engines: {node: '>=10'}
      -
      -  '@ampproject/remapping@2.3.0':
      -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
      -    engines: {node: '>=6.0.0'}
      -
      -  '@babel/code-frame@7.24.2':
      -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/compat-data@7.24.1':
      -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/core@7.24.3':
      -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/generator@7.24.1':
      -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-annotate-as-pure@7.22.5':
      -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
      -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-compilation-targets@7.23.6':
      -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-create-class-features-plugin@7.24.1':
      -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/helper-create-regexp-features-plugin@7.22.15':
      -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/helper-define-polyfill-provider@0.6.1':
      -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      -
      -  '@babel/helper-environment-visitor@7.22.20':
      -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-function-name@7.23.0':
      -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-hoist-variables@7.22.5':
      -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-member-expression-to-functions@7.23.0':
      -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-module-imports@7.24.3':
      -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-module-transforms@7.23.3':
      -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/helper-optimise-call-expression@7.22.5':
      -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-plugin-utils@7.24.0':
      -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-remap-async-to-generator@7.22.20':
      -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/helper-replace-supers@7.24.1':
      -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/helper-simple-access@7.22.5':
      -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
      -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-split-export-declaration@7.22.6':
      -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-string-parser@7.24.1':
      -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-validator-identifier@7.22.20':
      -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-validator-option@7.23.5':
      -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helper-wrap-function@7.22.20':
      -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/helpers@7.24.1':
      -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/highlight@7.24.2':
      -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/parser@7.24.1':
      -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
      -    engines: {node: '>=6.0.0'}
      -    hasBin: true
      -
      -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
      -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
      -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.13.0
      -
      -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
      -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
      -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-async-generators@7.8.4':
      -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-bigint@7.8.3':
      -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-class-properties@7.12.13':
      -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-class-static-block@7.14.5':
      -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-dynamic-import@7.8.3':
      -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-export-namespace-from@7.8.3':
      -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-import-assertions@7.24.1':
      -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-import-attributes@7.24.1':
      -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-import-meta@7.10.4':
      -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-json-strings@7.8.3':
      -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-jsx@7.24.1':
      -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
      -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
      -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-numeric-separator@7.10.4':
      -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-object-rest-spread@7.8.3':
      -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
      -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-optional-chaining@7.8.3':
      -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-private-property-in-object@7.14.5':
      -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-top-level-await@7.14.5':
      -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-typescript@7.24.1':
      -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
      -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/plugin-transform-arrow-functions@7.24.1':
      -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-async-generator-functions@7.24.3':
      -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-async-to-generator@7.24.1':
      -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-block-scoped-functions@7.24.1':
      -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-block-scoping@7.24.1':
      -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-class-properties@7.24.1':
      -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-class-static-block@7.24.1':
      -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.12.0
      -
      -  '@babel/plugin-transform-classes@7.24.1':
      -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-computed-properties@7.24.1':
      -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-destructuring@7.24.1':
      -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-dotall-regex@7.24.1':
      -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-duplicate-keys@7.24.1':
      -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-dynamic-import@7.24.1':
      -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-exponentiation-operator@7.24.1':
      -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-export-namespace-from@7.24.1':
      -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-for-of@7.24.1':
      -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-function-name@7.24.1':
      -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-json-strings@7.24.1':
      -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-literals@7.24.1':
      -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
      -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-member-expression-literals@7.24.1':
      -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-modules-amd@7.24.1':
      -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-modules-commonjs@7.24.1':
      -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-modules-systemjs@7.24.1':
      -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-modules-umd@7.24.1':
      -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
      -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/plugin-transform-new-target@7.24.1':
      -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
      -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-numeric-separator@7.24.1':
      -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-object-rest-spread@7.24.1':
      -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-object-super@7.24.1':
      -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-optional-catch-binding@7.24.1':
      -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-optional-chaining@7.24.1':
      -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-parameters@7.24.1':
      -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-private-methods@7.24.1':
      -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-private-property-in-object@7.24.1':
      -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-property-literals@7.24.1':
      -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-react-constant-elements@7.24.1':
      -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-react-display-name@7.24.1':
      -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-react-jsx-development@7.22.5':
      -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-react-jsx@7.23.4':
      -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-react-pure-annotations@7.24.1':
      -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-regenerator@7.24.1':
      -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-reserved-words@7.24.1':
      -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-runtime@7.24.3':
      -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-shorthand-properties@7.24.1':
      -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-spread@7.24.1':
      -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-sticky-regex@7.24.1':
      -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-template-literals@7.24.1':
      -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-typeof-symbol@7.24.1':
      -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-typescript@7.24.1':
      -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-unicode-escapes@7.24.1':
      -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-unicode-property-regex@7.24.1':
      -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-unicode-regex@7.24.1':
      -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
      -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  '@babel/preset-env@7.24.3':
      -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/preset-modules@0.1.6-no-external-plugins':
      -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
      -
      -  '@babel/preset-react@7.24.1':
      -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/preset-typescript@7.24.1':
      -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@babel/regjsgen@0.8.0':
      -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
      -
      -  '@babel/runtime-corejs3@7.24.1':
      -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/runtime@7.24.1':
      -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/template@7.24.0':
      -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/traverse@7.24.1':
      -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@babel/types@7.24.0':
      -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
      -    engines: {node: '>=6.9.0'}
      -
      -  '@bcoe/v8-coverage@0.2.3':
      -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
      -
      -  '@colors/colors@1.5.0':
      -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
      -    engines: {node: '>=0.1.90'}
      -
      -  '@colors/colors@1.6.0':
      -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
      -    engines: {node: '>=0.1.90'}
      -
      -  '@cspotcode/source-map-support@0.8.1':
      -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
      -    engines: {node: '>=12'}
      -
      -  '@dabh/diagnostics@2.0.3':
      -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
      -
      -  '@discoveryjs/json-ext@0.5.7':
      -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
      -    engines: {node: '>=10.0.0'}
      -
      -  '@docsearch/css@3.6.0':
      -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
      -
      -  '@docsearch/react@3.6.0':
      -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
      -    peerDependencies:
      -      '@types/react': '>= 16.8.0 < 19.0.0'
      -      react: '>= 16.8.0 < 19.0.0 || 18'
      -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
      -      search-insights: '>= 1 < 3'
      -    peerDependenciesMeta:
      -      '@types/react':
      -        optional: true
      -      react:
      -        optional: true
      -      react-dom:
      -        optional: true
      -      search-insights:
      -        optional: true
      -
      -  '@docusaurus/core@3.1.1':
      -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
      -    engines: {node: '>=18.0'}
      -    hasBin: true
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/cssnano-preset@3.1.1':
      -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
      -    engines: {node: '>=18.0'}
      -
      -  '@docusaurus/logger@3.1.1':
      -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
      -    engines: {node: '>=18.0'}
      -
      -  '@docusaurus/mdx-loader@3.1.1':
      -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/module-type-aliases@3.1.1':
      -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      -
      -  '@docusaurus/plugin-content-blog@3.1.1':
      -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-content-docs@3.1.1':
      -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-content-pages@3.1.1':
      -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-debug@3.1.1':
      -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-google-analytics@3.1.1':
      -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-google-gtag@3.1.1':
      -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-google-tag-manager@3.1.1':
      -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/plugin-sitemap@3.1.1':
      -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/preset-classic@3.1.1':
      -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/react-loadable@5.5.2':
      -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
      -    peerDependencies:
      -      react: '*'
      -
      -  '@docusaurus/theme-classic@3.1.1':
      -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/theme-common@3.1.1':
      -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/theme-search-algolia@3.1.1':
      -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/theme-translations@3.1.1':
      -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
      -    engines: {node: '>=18.0'}
      -
      -  '@docusaurus/types@3.1.1':
      -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@docusaurus/utils-common@3.1.1':
      -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      '@docusaurus/types': '*'
      -    peerDependenciesMeta:
      -      '@docusaurus/types':
      -        optional: true
      -
      -  '@docusaurus/utils-validation@3.1.1':
      -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
      -    engines: {node: '>=18.0'}
      -
      -  '@docusaurus/utils@3.1.1':
      -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      '@docusaurus/types': '*'
      -    peerDependenciesMeta:
      -      '@docusaurus/types':
      -        optional: true
      -
      -  '@effect/schema@0.56.1':
      -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
      -    peerDependencies:
      -      effect: 2.0.0-next.62
      -      fast-check: ^3.13.2
      -
      -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
      -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      html-webpack-plugin: '>=5'
      -      webpack: '>=5'
      -
      -  '@esbuild/aix-ppc64@0.20.2':
      -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
      -    engines: {node: '>=12'}
      -    cpu: [ppc64]
      -    os: [aix]
      -
      -  '@esbuild/android-arm64@0.20.2':
      -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [android]
      -
      -  '@esbuild/android-arm@0.20.2':
      -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
      -    engines: {node: '>=12'}
      -    cpu: [arm]
      -    os: [android]
      -
      -  '@esbuild/android-x64@0.20.2':
      -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [android]
      -
      -  '@esbuild/darwin-arm64@0.20.2':
      -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [darwin]
      -
      -  '@esbuild/darwin-x64@0.20.2':
      -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [darwin]
      -
      -  '@esbuild/freebsd-arm64@0.20.2':
      -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [freebsd]
      -
      -  '@esbuild/freebsd-x64@0.20.2':
      -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [freebsd]
      -
      -  '@esbuild/linux-arm64@0.20.2':
      -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [linux]
      -
      -  '@esbuild/linux-arm@0.20.2':
      -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
      -    engines: {node: '>=12'}
      -    cpu: [arm]
      -    os: [linux]
      -
      -  '@esbuild/linux-ia32@0.20.2':
      -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
      -    engines: {node: '>=12'}
      -    cpu: [ia32]
      -    os: [linux]
      -
      -  '@esbuild/linux-loong64@0.20.2':
      -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
      -    engines: {node: '>=12'}
      -    cpu: [loong64]
      -    os: [linux]
      -
      -  '@esbuild/linux-mips64el@0.20.2':
      -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
      -    engines: {node: '>=12'}
      -    cpu: [mips64el]
      -    os: [linux]
      -
      -  '@esbuild/linux-ppc64@0.20.2':
      -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
      -    engines: {node: '>=12'}
      -    cpu: [ppc64]
      -    os: [linux]
      -
      -  '@esbuild/linux-riscv64@0.20.2':
      -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
      -    engines: {node: '>=12'}
      -    cpu: [riscv64]
      -    os: [linux]
      -
      -  '@esbuild/linux-s390x@0.20.2':
      -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
      -    engines: {node: '>=12'}
      -    cpu: [s390x]
      -    os: [linux]
      -
      -  '@esbuild/linux-x64@0.20.2':
      -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [linux]
      -
      -  '@esbuild/netbsd-x64@0.20.2':
      -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [netbsd]
      -
      -  '@esbuild/openbsd-x64@0.20.2':
      -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [openbsd]
      -
      -  '@esbuild/sunos-x64@0.20.2':
      -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [sunos]
      -
      -  '@esbuild/win32-arm64@0.20.2':
      -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [win32]
      -
      -  '@esbuild/win32-ia32@0.20.2':
      -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
      -    engines: {node: '>=12'}
      -    cpu: [ia32]
      -    os: [win32]
      -
      -  '@esbuild/win32-x64@0.20.2':
      -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [win32]
      -
      -  '@eslint-community/eslint-utils@4.4.0':
      -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    peerDependencies:
      -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
      -
      -  '@eslint-community/regexpp@4.10.0':
      -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
      -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
      -
      -  '@eslint/eslintrc@2.1.4':
      -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  '@eslint/js@8.57.0':
      -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  '@fortawesome/fontawesome-common-types@6.5.1':
      -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
      -    engines: {node: '>=6'}
      -
      -  '@fortawesome/fontawesome-svg-core@6.5.1':
      -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
      -    engines: {node: '>=6'}
      -
      -  '@fortawesome/free-solid-svg-icons@6.5.1':
      -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
      -    engines: {node: '>=6'}
      -
      -  '@fortawesome/react-fontawesome@0.2.0':
      -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
      -    peerDependencies:
      -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
      -      react: '>=16.3 || 18'
      -
      -  '@gar/promisify@1.1.3':
      -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
      -
      -  '@gwhitney/detect-indent@7.0.1':
      -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
      -    engines: {node: '>=12.20'}
      -
      -  '@hapi/hoek@9.3.0':
      -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
      -
      -  '@hapi/topo@5.1.0':
      -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
      -
      -  '@humanwhocodes/config-array@0.11.14':
      -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
      -    engines: {node: '>=10.10.0'}
      -
      -  '@humanwhocodes/module-importer@1.0.1':
      -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
      -    engines: {node: '>=12.22'}
      -
      -  '@humanwhocodes/object-schema@2.0.2':
      -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
      -
      -  '@isaacs/cliui@8.0.2':
      -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
      -    engines: {node: '>=12'}
      -
      -  '@isaacs/string-locale-compare@1.1.0':
      -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
      -
      -  '@istanbuljs/load-nyc-config@1.1.0':
      -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
      -    engines: {node: '>=8'}
      -
      -  '@istanbuljs/schema@0.1.3':
      -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
      -    engines: {node: '>=8'}
      -
      -  '@jest/console@29.7.0':
      -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/core@29.7.0':
      -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      -
      -  '@jest/environment@29.7.0':
      -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/expect-utils@29.7.0':
      -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/expect@29.7.0':
      -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/fake-timers@29.7.0':
      -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/globals@29.7.0':
      -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/reporters@29.7.0':
      -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      -
      -  '@jest/schemas@29.6.3':
      -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/source-map@29.6.3':
      -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/test-result@29.7.0':
      -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/test-sequencer@29.7.0':
      -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/transform@29.7.0':
      -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jest/types@29.6.3':
      -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  '@jridgewell/gen-mapping@0.3.5':
      -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
      -    engines: {node: '>=6.0.0'}
      -
      -  '@jridgewell/resolve-uri@3.1.2':
      -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
      -    engines: {node: '>=6.0.0'}
      -
      -  '@jridgewell/set-array@1.2.1':
      -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
      -    engines: {node: '>=6.0.0'}
      -
      -  '@jridgewell/source-map@0.3.6':
      -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
      -
      -  '@jridgewell/sourcemap-codec@1.4.15':
      -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
      -
      -  '@jridgewell/trace-mapping@0.3.25':
      -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
      -
      -  '@jridgewell/trace-mapping@0.3.9':
      -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
      -
      -  '@leichtgewicht/ip-codec@2.0.4':
      -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
      -
      -  '@mdx-js/loader@3.0.1':
      -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
      -    peerDependencies:
      -      webpack: '>=5'
      -
      -  '@mdx-js/mdx@3.0.1':
      -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
      -
      -  '@mdx-js/react@3.0.1':
      -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
      -    peerDependencies:
      -      '@types/react': '>=16'
      -      react: '>=16 || 18'
      -
      -  '@msgpack/msgpack@2.8.0':
      -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
      -    engines: {node: '>= 10'}
      -
      -  '@next/env@14.1.4':
      -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
      -
      -  '@next/eslint-plugin-next@14.1.4':
      -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
      -
      -  '@next/mdx@14.1.4':
      -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
      -    peerDependencies:
      -      '@mdx-js/loader': '>=0.15.0'
      -      '@mdx-js/react': '>=0.15.0'
      -    peerDependenciesMeta:
      -      '@mdx-js/loader':
      -        optional: true
      -      '@mdx-js/react':
      -        optional: true
      -
      -  '@next/swc-darwin-arm64@14.1.4':
      -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [darwin]
      -
      -  '@next/swc-darwin-x64@14.1.4':
      -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [darwin]
      -
      -  '@next/swc-linux-arm64-gnu@14.1.4':
      -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [linux]
      -
      -  '@next/swc-linux-arm64-musl@14.1.4':
      -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [linux]
      -
      -  '@next/swc-linux-x64-gnu@14.1.4':
      -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [linux]
      -
      -  '@next/swc-linux-x64-musl@14.1.4':
      -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [linux]
      -
      -  '@next/swc-win32-arm64-msvc@14.1.4':
      -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [win32]
      -
      -  '@next/swc-win32-ia32-msvc@14.1.4':
      -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
      -    engines: {node: '>= 10'}
      -    cpu: [ia32]
      -    os: [win32]
      -
      -  '@next/swc-win32-x64-msvc@14.1.4':
      -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [win32]
      -
      -  '@nodelib/fs.scandir@2.1.5':
      -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
      -    engines: {node: '>= 8'}
      -
      -  '@nodelib/fs.stat@2.0.5':
      -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
      -    engines: {node: '>= 8'}
      -
      -  '@nodelib/fs.walk@1.2.8':
      -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
      -    engines: {node: '>= 8'}
      -
      -  '@npmcli/arborist@4.3.1':
      -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -    hasBin: true
      -
      -  '@npmcli/fs@1.1.1':
      -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
      -
      -  '@npmcli/fs@2.1.2':
      -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  '@npmcli/fs@3.1.0':
      -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@npmcli/git@2.1.0':
      -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
      -
      -  '@npmcli/git@4.1.0':
      -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@npmcli/installed-package-contents@1.0.7':
      -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
      -    engines: {node: '>= 10'}
      -    hasBin: true
      -
      -  '@npmcli/installed-package-contents@2.0.2':
      -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      -
      -  '@npmcli/map-workspaces@2.0.4':
      -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  '@npmcli/metavuln-calculator@2.0.0':
      -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -
      -  '@npmcli/move-file@1.1.2':
      -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
      -    engines: {node: '>=10'}
      -    deprecated: This functionality has been moved to @npmcli/fs
      -
      -  '@npmcli/move-file@2.0.1':
      -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -    deprecated: This functionality has been moved to @npmcli/fs
      -
      -  '@npmcli/name-from-folder@1.0.1':
      -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
      -
      -  '@npmcli/node-gyp@1.0.3':
      -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
      -
      -  '@npmcli/node-gyp@3.0.0':
      -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@npmcli/package-json@1.0.1':
      -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
      -
      -  '@npmcli/promise-spawn@1.3.2':
      -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
      -
      -  '@npmcli/promise-spawn@6.0.2':
      -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@npmcli/run-script@2.0.0':
      -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
      -
      -  '@npmcli/run-script@6.0.2':
      -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@octokit/auth-token@2.5.0':
      -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
      -
      -  '@octokit/core@3.6.0':
      -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
      -
      -  '@octokit/endpoint@6.0.12':
      -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
      -
      -  '@octokit/graphql@4.8.0':
      -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
      -
      -  '@octokit/openapi-types@12.11.0':
      -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
      -
      -  '@octokit/plugin-paginate-rest@2.21.3':
      -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
      -    peerDependencies:
      -      '@octokit/core': '>=2'
      -
      -  '@octokit/plugin-request-log@1.0.4':
      -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
      -    peerDependencies:
      -      '@octokit/core': '>=3'
      -
      -  '@octokit/plugin-rest-endpoint-methods@5.16.2':
      -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
      -    peerDependencies:
      -      '@octokit/core': '>=3'
      -
      -  '@octokit/request-error@2.1.0':
      -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
      -
      -  '@octokit/request@5.6.3':
      -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
      -
      -  '@octokit/rest@18.12.0':
      -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
      -
      -  '@octokit/types@6.41.0':
      -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
      -
      -  '@pkgjs/parseargs@0.11.0':
      -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
      -    engines: {node: '>=14'}
      -
      -  '@pnpm/cli-meta@5.0.1':
      -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/cli-utils@2.0.9':
      -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/config.env-replace@1.1.0':
      -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/config@18.4.0':
      -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/constants@6.2.0':
      -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
      -    engines: {node: '>=14.6'}
      -
      -  '@pnpm/constants@7.1.0':
      -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/constants@7.1.1':
      -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/constants@8.0.0':
      -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/core-loggers@10.0.0':
      -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/core-loggers@9.0.1':
      -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/crypto.base32-hash@3.0.0':
      -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/dedupe.issues-renderer@1.0.0':
      -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/dedupe.types@1.0.0':
      -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/default-reporter@12.2.3':
      -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/dependency-path@3.0.0':
      -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/error@4.0.1':
      -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
      -    engines: {node: '>=14.6'}
      -
      -  '@pnpm/error@5.0.1':
      -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/error@5.0.3':
      -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/error@6.0.0':
      -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/fetch@8.0.0':
      -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/fetcher-base@14.0.1':
      -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/fetching-types@6.0.0':
      -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/find-workspace-dir@6.0.3':
      -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/find-workspace-packages@6.0.9':
      -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/fs.find-packages@2.0.1':
      -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/git-resolver@9.0.1':
      -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/git-utils@1.0.0':
      -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/git-utils@2.0.0':
      -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/graceful-fs@3.0.0':
      -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/hooks.types@1.0.1':
      -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/hosted-git-info@1.0.0':
      -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
      -    engines: {node: '>=10'}
      -
      -  '@pnpm/lockfile-file@9.0.2':
      -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/lockfile-types@5.1.0':
      -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/lockfile-types@6.0.0':
      -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/lockfile-utils@10.0.0':
      -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/logger@5.0.0':
      -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
      -    engines: {node: '>=12.17'}
      -
      -  '@pnpm/manifest-utils@5.0.1':
      -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/matcher@5.0.0':
      -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/merge-lockfile-changes@6.0.0':
      -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/meta-updater@1.0.0':
      -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
      -    engines: {node: '>=10.12'}
      -    hasBin: true
      -
      -  '@pnpm/network.agent@1.0.1':
      -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/network.ca-file@1.0.2':
      -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/network.config@1.0.1':
      -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/network.proxy-agent@1.0.1':
      -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/node-fetch@1.0.0':
      -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
      -    engines: {node: ^10.17 || >=12.3}
      -
      -  '@pnpm/npm-conf@2.2.0':
      -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
      -    engines: {node: '>=12'}
      -
      -  '@pnpm/npm-conf@2.2.2':
      -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
      -    engines: {node: '>=12'}
      -
      -  '@pnpm/package-is-installable@8.0.2':
      -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/pick-fetcher@3.0.0':
      -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/pnpmfile@5.0.7':
      -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      -
      -  '@pnpm/ramda@0.28.1':
      -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
      -
      -  '@pnpm/read-project-manifest@5.0.1':
      -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/render-peer-issues@4.0.1':
      -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/resolver-base@10.0.1':
      -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/resolver-base@12.0.0':
      -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/store-controller-types@15.0.1':
      -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/text.comments-parser@2.0.0':
      -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/types@10.0.0':
      -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/types@9.1.0':
      -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/types@9.4.2':
      -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
      -    engines: {node: '>=16.14'}
      -
      -  '@pnpm/util.lex-comparator@1.0.0':
      -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
      -    engines: {node: '>=12.22.0'}
      -
      -  '@pnpm/util.lex-comparator@3.0.0':
      -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
      -    engines: {node: '>=18.12'}
      -
      -  '@pnpm/write-project-manifest@5.0.1':
      -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
      -    engines: {node: '>=16.14'}
      -
      -  '@polka/url@1.0.0-next.25':
      -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
      -
      -  '@rushstack/eslint-patch@1.8.0':
      -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
      -
      -  '@sideway/address@4.1.5':
      -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
      -
      -  '@sideway/formula@3.0.1':
      -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
      -
      -  '@sideway/pinpoint@2.0.0':
      -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
      -
      -  '@sigstore/bundle@1.1.0':
      -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@sigstore/protobuf-specs@0.2.1':
      -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@sigstore/sign@1.0.0':
      -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@sigstore/tuf@1.0.3':
      -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@sinclair/typebox@0.27.8':
      -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
      -
      -  '@sindresorhus/is@4.6.0':
      -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
      -    engines: {node: '>=10'}
      -
      -  '@sindresorhus/is@5.6.0':
      -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
      -    engines: {node: '>=14.16'}
      -
      -  '@sinonjs/commons@2.0.0':
      -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
      -
      -  '@sinonjs/commons@3.0.1':
      -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
      -
      -  '@sinonjs/fake-timers@10.3.0':
      -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
      -
      -  '@sinonjs/fake-timers@11.2.2':
      -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
      -
      -  '@sinonjs/samsam@8.0.0':
      -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
      -
      -  '@sinonjs/text-encoding@0.7.2':
      -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
      -
      -  '@slorber/remark-comment@1.0.0':
      -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
      -
      -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
      -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
      -    engines: {node: '>=14'}
      -
      -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
      -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
      -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
      -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
      -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
      -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
      -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
      -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
      -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
      -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
      -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
      -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
      -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-transform-svg-component@6.5.1':
      -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-plugin-transform-svg-component@8.0.0':
      -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-preset@6.5.1':
      -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/babel-preset@8.1.0':
      -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      -
      -  '@svgr/core@6.5.1':
      -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
      -    engines: {node: '>=10'}
      -
      -  '@svgr/core@8.1.0':
      -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
      -    engines: {node: '>=14'}
      -
      -  '@svgr/hast-util-to-babel-ast@6.5.1':
      -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
      -    engines: {node: '>=10'}
      -
      -  '@svgr/hast-util-to-babel-ast@8.0.0':
      -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
      -    engines: {node: '>=14'}
      -
      -  '@svgr/plugin-jsx@6.5.1':
      -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@svgr/core': ^6.0.0
      -
      -  '@svgr/plugin-jsx@8.1.0':
      -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      -
      -  '@svgr/plugin-svgo@6.5.1':
      -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      -
      -  '@svgr/plugin-svgo@8.1.0':
      -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      -
      -  '@svgr/webpack@6.5.1':
      -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
      -    engines: {node: '>=10'}
      -
      -  '@svgr/webpack@8.1.0':
      -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
      -    engines: {node: '>=14'}
      -
      -  '@swc/helpers@0.5.2':
      -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
      -
      -  '@szmarczak/http-timer@5.0.1':
      -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
      -    engines: {node: '>=14.16'}
      -
      -  '@testing-library/dom@9.3.4':
      -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
      -    engines: {node: '>=14'}
      -
      -  '@testing-library/react@14.2.2':
      -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      -
      -  '@tootallnate/once@1.1.2':
      -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
      -    engines: {node: '>= 6'}
      -
      -  '@tootallnate/once@2.0.0':
      -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
      -    engines: {node: '>= 10'}
      -
      -  '@trysound/sax@0.2.0':
      -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
      -    engines: {node: '>=10.13.0'}
      -
      -  '@tsconfig/docusaurus@2.0.2':
      -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
      -
      -  '@tsconfig/node10@1.0.10':
      -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
      -
      -  '@tsconfig/node12@1.0.11':
      -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
      -
      -  '@tsconfig/node14@1.0.3':
      -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
      -
      -  '@tsconfig/node16@1.0.4':
      -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
      -
      -  '@tufjs/canonical-json@1.0.0':
      -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@tufjs/models@1.0.4':
      -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  '@types/acorn@4.0.6':
      -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
      -
      -  '@types/aria-query@5.0.4':
      -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
      -
      -  '@types/babel__core@7.20.5':
      -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
      -
      -  '@types/babel__generator@7.6.8':
      -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
      -
      -  '@types/babel__template@7.4.4':
      -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
      -
      -  '@types/babel__traverse@7.20.5':
      -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
      -
      -  '@types/body-parser@1.19.5':
      -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
      -
      -  '@types/bonjour@3.5.13':
      -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
      -
      -  '@types/chai@4.3.14':
      -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
      -
      -  '@types/connect-history-api-fallback@1.5.4':
      -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
      -
      -  '@types/connect@3.4.38':
      -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
      -
      -  '@types/debug@4.1.12':
      -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
      -
      -  '@types/eslint-scope@3.7.7':
      -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
      -
      -  '@types/eslint@8.56.6':
      -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
      -
      -  '@types/estree-jsx@1.0.5':
      -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
      -
      -  '@types/estree@1.0.5':
      -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
      -
      -  '@types/expect@1.20.4':
      -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
      -
      -  '@types/express-serve-static-core@4.17.43':
      -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
      -
      -  '@types/express@4.17.21':
      -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
      -
      -  '@types/fs-extra@11.0.4':
      -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
      -
      -  '@types/glob@8.1.0':
      -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
      -
      -  '@types/graceful-fs@4.1.9':
      -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
      -
      -  '@types/gtag.js@0.0.12':
      -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
      -
      -  '@types/hast@3.0.4':
      -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
      -
      -  '@types/history@4.7.11':
      -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
      -
      -  '@types/html-minifier-terser@6.1.0':
      -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
      -
      -  '@types/http-cache-semantics@4.0.4':
      -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
      -
      -  '@types/http-errors@2.0.4':
      -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
      -
      -  '@types/http-proxy@1.17.14':
      -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
      -
      -  '@types/istanbul-lib-coverage@2.0.6':
      -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
      -
      -  '@types/istanbul-lib-report@3.0.3':
      -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
      -
      -  '@types/istanbul-reports@3.0.4':
      -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
      -
      -  '@types/jest@29.5.12':
      -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
      -
      -  '@types/js-cookie@2.2.7':
      -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
      -
      -  '@types/js-yaml@4.0.9':
      -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
      -
      -  '@types/jsdom@20.0.1':
      -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
      -
      -  '@types/json-schema@7.0.15':
      -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
      -
      -  '@types/json5@0.0.29':
      -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
      -
      -  '@types/jsonfile@6.1.4':
      -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
      -
      -  '@types/lodash@4.17.0':
      -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
      -
      -  '@types/mdast@4.0.3':
      -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
      -
      -  '@types/mdx-js__react@1.5.8':
      -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
      -
      -  '@types/mdx@2.0.12':
      -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
      -
      -  '@types/mime@1.3.5':
      -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
      -
      -  '@types/mime@3.0.4':
      -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
      -
      -  '@types/minimatch@3.0.5':
      -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
      -
      -  '@types/minimatch@5.1.2':
      -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
      -
      -  '@types/minimist@1.2.5':
      -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
      -
      -  '@types/mocha@10.0.6':
      -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
      -
      -  '@types/moo@0.5.9':
      -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
      -
      -  '@types/ms@0.7.34':
      -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
      -
      -  '@types/nearley@2.11.5':
      -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
      -
      -  '@types/node-forge@1.3.11':
      -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
      -
      -  '@types/node@15.14.9':
      -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
      -
      -  '@types/node@17.0.45':
      -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
      -
      -  '@types/node@18.18.2':
      -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
      -
      -  '@types/normalize-package-data@2.4.4':
      -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
      -
      -  '@types/normalize-path@3.0.2':
      -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
      -
      -  '@types/parse-json@4.0.2':
      -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
      -
      -  '@types/prismjs@1.26.3':
      -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
      -
      -  '@types/prop-types@15.7.12':
      -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
      -
      -  '@types/qs@6.9.14':
      -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
      -
      -  '@types/range-parser@1.2.7':
      -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
      -
      -  '@types/react-dom@18.2.22':
      -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
      -
      -  '@types/react-helmet@6.1.11':
      -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
      -
      -  '@types/react-router-config@5.0.11':
      -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
      -
      -  '@types/react-router-dom@5.3.3':
      -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
      -
      -  '@types/react-router@5.1.20':
      -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
      -
      -  '@types/react@18.2.71':
      -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
      -
      -  '@types/retry@0.12.0':
      -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
      -
      -  '@types/retry@0.12.2':
      -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
      -
      -  '@types/sax@1.2.7':
      -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
      -
      -  '@types/sbd@1.0.5':
      -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
      -
      -  '@types/scheduler@0.23.0':
      -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
      -
      -  '@types/semver@7.5.8':
      -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
      -
      -  '@types/send@0.17.4':
      -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
      -
      -  '@types/serve-index@1.9.4':
      -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
      -
      -  '@types/serve-static@1.15.5':
      -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
      -
      -  '@types/sinon@17.0.3':
      -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
      -
      -  '@types/sinonjs__fake-timers@8.1.5':
      -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
      -
      -  '@types/sockjs@0.3.36':
      -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
      -
      -  '@types/ssri@7.1.5':
      -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
      -
      -  '@types/stack-utils@2.0.3':
      -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
      -
      -  '@types/tail@2.2.3':
      -    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
      -
      -  '@types/tinycolor2@1.4.6':
      -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
      -
      -  '@types/tough-cookie@4.0.5':
      -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
      -
      -  '@types/triple-beam@1.3.5':
      -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
      -
      -  '@types/unist@2.0.10':
      -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
      -
      -  '@types/unist@3.0.2':
      -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
      -
      -  '@types/uuid@9.0.8':
      -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
      -
      -  '@types/vinyl@2.0.11':
      -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
      -
      -  '@types/vscode@1.75.1':
      -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
      -
      -  '@types/webpack@5.28.5':
      -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
      -
      -  '@types/ws@8.5.10':
      -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
      -
      -  '@types/yargs-parser@21.0.3':
      -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
      -
      -  '@types/yargs@17.0.32':
      -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
      -
      -  '@typescript-eslint/eslint-plugin@7.4.0':
      -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      '@typescript-eslint/parser': ^7.0.0
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/parser@6.21.0':
      -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -    peerDependencies:
      -      eslint: ^7.0.0 || ^8.0.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/parser@7.4.0':
      -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/scope-manager@6.21.0':
      -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -
      -  '@typescript-eslint/scope-manager@7.4.0':
      -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -
      -  '@typescript-eslint/type-utils@7.4.0':
      -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/types@6.21.0':
      -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -
      -  '@typescript-eslint/types@7.4.0':
      -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -
      -  '@typescript-eslint/typescript-estree@6.21.0':
      -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -    peerDependencies:
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/typescript-estree@7.4.0':
      -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  '@typescript-eslint/utils@7.4.0':
      -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      -
      -  '@typescript-eslint/visitor-keys@6.21.0':
      -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -
      -  '@typescript-eslint/visitor-keys@7.4.0':
      -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -
      -  '@ungap/structured-clone@1.2.0':
      -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
      -
      -  '@vscode/test-electron@2.3.9':
      -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
      -    engines: {node: '>=16'}
      -
      -  '@webassemblyjs/ast@1.12.1':
      -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
      -
      -  '@webassemblyjs/floating-point-hex-parser@1.11.6':
      -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
      -
      -  '@webassemblyjs/helper-api-error@1.11.6':
      -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
      -
      -  '@webassemblyjs/helper-buffer@1.12.1':
      -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
      -
      -  '@webassemblyjs/helper-numbers@1.11.6':
      -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
      -
      -  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
      -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
      -
      -  '@webassemblyjs/helper-wasm-section@1.12.1':
      -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
      -
      -  '@webassemblyjs/ieee754@1.11.6':
      -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
      -
      -  '@webassemblyjs/leb128@1.11.6':
      -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
      -
      -  '@webassemblyjs/utf8@1.11.6':
      -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
      -
      -  '@webassemblyjs/wasm-edit@1.12.1':
      -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
      -
      -  '@webassemblyjs/wasm-gen@1.12.1':
      -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
      -
      -  '@webassemblyjs/wasm-opt@1.12.1':
      -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
      -
      -  '@webassemblyjs/wasm-parser@1.12.1':
      -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
      -
      -  '@webassemblyjs/wast-printer@1.12.1':
      -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
      -
      -  '@webpack-cli/configtest@2.1.1':
      -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -
      -  '@webpack-cli/generators@3.0.7':
      -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      prettier: '*'
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -    peerDependenciesMeta:
      -      prettier:
      -        optional: true
      -
      -  '@webpack-cli/info@2.0.2':
      -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -
      -  '@webpack-cli/serve@2.0.5':
      -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -      webpack-dev-server: '*'
      -    peerDependenciesMeta:
      -      webpack-dev-server:
      -        optional: true
      -
      -  '@xobotyi/scrollbar-width@1.9.5':
      -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
      -
      -  '@xtuc/ieee754@1.2.0':
      -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
      -
      -  '@xtuc/long@4.2.2':
      -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
      -
      -  '@zkochan/js-yaml@0.0.7':
      -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
      -    hasBin: true
      -
      -  '@zkochan/retry@0.2.0':
      -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
      -    engines: {node: '>=10'}
      -
      -  '@zkochan/rimraf@2.1.3':
      -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
      -    engines: {node: '>=12.10'}
      -
      -  '@zkochan/which@2.0.3':
      -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
      -    engines: {node: '>= 8'}
      -    hasBin: true
      -
      -  abab@2.0.6:
      -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
      -    deprecated: Use your platform's native atob() and btoa() methods instead
      -
      -  abbrev@1.1.1:
      -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
      -
      -  abort-controller@3.0.0:
      -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
      -    engines: {node: '>=6.5'}
      -
      -  accepts@1.3.8:
      -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
      -    engines: {node: '>= 0.6'}
      -
      -  acorn-globals@7.0.1:
      -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
      -
      -  acorn-import-assertions@1.9.0:
      -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
      -    peerDependencies:
      -      acorn: ^8
      -
      -  acorn-jsx@5.3.2:
      -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
      -    peerDependencies:
      -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
      -
      -  acorn-walk@8.3.2:
      -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
      -    engines: {node: '>=0.4.0'}
      -
      -  acorn@8.11.3:
      -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
      -    engines: {node: '>=0.4.0'}
      -    hasBin: true
      -
      -  address@1.2.2:
      -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
      -    engines: {node: '>= 10.0.0'}
      -
      -  agent-base@6.0.2:
      -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
      -    engines: {node: '>= 6.0.0'}
      -
      -  agentkeepalive@4.2.1:
      -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
      -    engines: {node: '>= 8.0.0'}
      -
      -  agentkeepalive@4.5.0:
      -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
      -    engines: {node: '>= 8.0.0'}
      -
      -  aggregate-error@3.1.0:
      -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
      -    engines: {node: '>=8'}
      -
      -  ajv-formats@2.1.1:
      -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
      -    peerDependencies:
      -      ajv: ^8.0.0
      -    peerDependenciesMeta:
      -      ajv:
      -        optional: true
      -
      -  ajv-keywords@3.5.2:
      -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
      -    peerDependencies:
      -      ajv: ^6.9.1
      -
      -  ajv-keywords@5.1.0:
      -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
      -    peerDependencies:
      -      ajv: ^8.8.2
      -
      -  ajv@6.12.6:
      -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
      -
      -  ajv@8.12.0:
      -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
      -
      -  algoliasearch-helper@3.16.3:
      -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
      -    peerDependencies:
      -      algoliasearch: '>= 3.1 < 6'
      -
      -  algoliasearch@4.22.1:
      -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
      -
      -  ansi-align@3.0.1:
      -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
      -
      -  ansi-colors@4.1.1:
      -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
      -    engines: {node: '>=6'}
      -
      -  ansi-colors@4.1.3:
      -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
      -    engines: {node: '>=6'}
      -
      -  ansi-diff@1.1.1:
      -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
      -
      -  ansi-escapes@4.3.2:
      -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
      -    engines: {node: '>=8'}
      -
      -  ansi-html-community@0.0.8:
      -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
      -    engines: {'0': node >= 0.8.0}
      -    hasBin: true
      -
      -  ansi-regex@3.0.1:
      -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
      -    engines: {node: '>=4'}
      -
      -  ansi-regex@5.0.1:
      -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
      -    engines: {node: '>=8'}
      -
      -  ansi-regex@6.0.1:
      -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
      -    engines: {node: '>=12'}
      -
      -  ansi-split@1.0.1:
      -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
      -
      -  ansi-styles@3.2.1:
      -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
      -    engines: {node: '>=4'}
      -
      -  ansi-styles@4.3.0:
      -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
      -    engines: {node: '>=8'}
      -
      -  ansi-styles@5.2.0:
      -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
      -    engines: {node: '>=10'}
      -
      -  ansi-styles@6.2.1:
      -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
      -    engines: {node: '>=12'}
      -
      -  any-promise@1.3.0:
      -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
      -
      -  anymatch@3.1.3:
      -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
      -    engines: {node: '>= 8'}
      -
      -  aproba@2.0.0:
      -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
      -
      -  archy@1.0.0:
      -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
      -
      -  are-we-there-yet@2.0.0:
      -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
      -    engines: {node: '>=10'}
      -
      -  are-we-there-yet@3.0.1:
      -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  arg@4.1.3:
      -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
      -
      -  arg@5.0.2:
      -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
      -
      -  argparse@1.0.10:
      -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
      -
      -  argparse@2.0.1:
      -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
      -
      -  aria-query@5.1.3:
      -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
      -
      -  aria-query@5.3.0:
      -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
      -
      -  array-buffer-byte-length@1.0.1:
      -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
      -    engines: {node: '>= 0.4'}
      -
      -  array-differ@3.0.0:
      -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
      -    engines: {node: '>=8'}
      -
      -  array-flatten@1.1.1:
      -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
      -
      -  array-includes@3.1.8:
      -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  array-union@2.1.0:
      -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
      -    engines: {node: '>=8'}
      -
      -  array.prototype.findlast@1.2.5:
      -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  array.prototype.findlastindex@1.2.5:
      -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  array.prototype.flat@1.3.2:
      -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
      -    engines: {node: '>= 0.4'}
      -
      -  array.prototype.flatmap@1.3.2:
      -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  array.prototype.toreversed@1.1.2:
      -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
      -
      -  array.prototype.tosorted@1.1.3:
      -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
      -
      -  arraybuffer.prototype.slice@1.0.3:
      -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
      -    engines: {node: '>= 0.4'}
      -
      -  arrify@1.0.1:
      -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  arrify@2.0.1:
      -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
      -    engines: {node: '>=8'}
      -
      -  as-table@1.0.55:
      -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
      -
      -  asap@2.0.6:
      -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
      -
      -  assertion-error@2.0.1:
      -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
      -    engines: {node: '>=12'}
      -
      -  ast-types-flow@0.0.8:
      -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
      -
      -  astring@1.8.6:
      -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
      -    hasBin: true
      -
      -  async@2.6.4:
      -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
      -
      -  async@3.2.5:
      -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
      -
      -  asynckit@0.4.0:
      -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
      -
      -  at-least-node@1.0.0:
      -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
      -    engines: {node: '>= 4.0.0'}
      -
      -  autoprefixer@10.4.19:
      -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
      -    engines: {node: ^10 || ^12 || >=14}
      -    hasBin: true
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  available-typed-arrays@1.0.7:
      -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  axe-core@4.7.0:
      -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
      -    engines: {node: '>=4'}
      -
      -  axobject-query@3.2.1:
      -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
      -
      -  babel-jest@29.7.0:
      -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@babel/core': ^7.8.0
      -
      -  babel-loader@9.1.3:
      -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.12.0
      -      webpack: '>=5'
      -
      -  babel-plugin-dynamic-import-node@2.3.3:
      -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
      -
      -  babel-plugin-istanbul@6.1.1:
      -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
      -    engines: {node: '>=8'}
      -
      -  babel-plugin-jest-hoist@29.6.3:
      -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  babel-plugin-polyfill-corejs2@0.4.10:
      -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      -
      -  babel-plugin-polyfill-corejs3@0.10.4:
      -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      -
      -  babel-plugin-polyfill-regenerator@0.6.1:
      -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      -
      -  babel-preset-current-node-syntax@1.0.1:
      -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  babel-preset-jest@29.6.3:
      -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      -
      -  bail@2.0.2:
      -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
      -
      -  balanced-match@1.0.2:
      -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
      -
      -  base64-js@1.5.1:
      -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
      -
      -  basic-auth@2.0.1:
      -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
      -    engines: {node: '>= 0.8'}
      -
      -  batch@0.6.1:
      -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
      -
      -  before-after-hook@2.2.3:
      -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
      -
      -  better-path-resolve@1.0.0:
      -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
      -    engines: {node: '>=4'}
      -
      -  big.js@5.2.2:
      -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
      -
      -  bin-links@3.0.3:
      -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  binary-extensions@2.3.0:
      -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
      -    engines: {node: '>=8'}
      -
      -  binaryextensions@4.19.0:
      -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
      -    engines: {node: '>=0.8'}
      -
      -  bl@4.1.0:
      -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
      -
      -  body-parser@1.20.2:
      -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
      -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      -
      -  bole@5.0.11:
      -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
      -
      -  bonjour-service@1.2.1:
      -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
      -
      -  boolbase@1.0.0:
      -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
      -
      -  boxen@5.1.2:
      -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
      -    engines: {node: '>=10'}
      -
      -  boxen@6.2.1:
      -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  boxen@7.1.1:
      -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
      -    engines: {node: '>=14.16'}
      -
      -  brace-expansion@1.1.11:
      -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
      -
      -  brace-expansion@2.0.1:
      -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
      -
      -  braces@3.0.2:
      -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
      -    engines: {node: '>=8'}
      -
      -  browser-stdout@1.3.1:
      -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
      -
      -  browserslist@4.23.0:
      -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
      -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
      -    hasBin: true
      -
      -  bs-logger@0.2.6:
      -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
      -    engines: {node: '>= 6'}
      -
      -  bser@2.1.1:
      -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
      -
      -  buffer-from@1.1.2:
      -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
      -
      -  buffer@5.7.1:
      -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
      -
      -  buffer@6.0.3:
      -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
      -
      -  builtin-modules@3.3.0:
      -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
      -    engines: {node: '>=6'}
      -
      -  builtins@1.0.3:
      -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
      -
      -  builtins@5.0.1:
      -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
      -
      -  bundle-name@4.1.0:
      -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
      -    engines: {node: '>=18'}
      -
      -  busboy@1.6.0:
      -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
      -    engines: {node: '>=10.16.0'}
      -
      -  bytes@3.0.0:
      -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
      -    engines: {node: '>= 0.8'}
      -
      -  bytes@3.1.2:
      -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
      -    engines: {node: '>= 0.8'}
      -
      -  cacache@15.3.0:
      -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
      -    engines: {node: '>= 10'}
      -
      -  cacache@16.1.3:
      -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  cacache@17.1.4:
      -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  cacheable-lookup@7.0.0:
      -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
      -    engines: {node: '>=14.16'}
      -
      -  cacheable-request@10.2.14:
      -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
      -    engines: {node: '>=14.16'}
      -
      -  call-bind@1.0.7:
      -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
      -    engines: {node: '>= 0.4'}
      -
      -  callsites@3.1.0:
      -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
      -    engines: {node: '>=6'}
      -
      -  camel-case@4.1.2:
      -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
      -
      -  camelcase-css@2.0.1:
      -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
      -    engines: {node: '>= 6'}
      -
      -  camelcase-keys@6.2.2:
      -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
      -    engines: {node: '>=8'}
      -
      -  camelcase-keys@7.0.2:
      -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
      -    engines: {node: '>=12'}
      -
      -  camelcase@5.3.1:
      -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
      -    engines: {node: '>=6'}
      -
      -  camelcase@6.3.0:
      -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
      -    engines: {node: '>=10'}
      -
      -  camelcase@7.0.1:
      -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
      -    engines: {node: '>=14.16'}
      -
      -  can-write-to-dir@1.1.1:
      -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
      -    engines: {node: '>=10.13'}
      -
      -  caniuse-api@3.0.0:
      -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
      -
      -  caniuse-lite@1.0.30001600:
      -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
      -
      -  ccount@2.0.1:
      -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
      -
      -  chai@5.1.0:
      -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
      -    engines: {node: '>=12'}
      -
      -  chalk@2.4.2:
      -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
      -    engines: {node: '>=4'}
      -
      -  chalk@4.1.2:
      -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
      -    engines: {node: '>=10'}
      -
      -  chalk@5.3.0:
      -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
      -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
      -
      -  char-regex@1.0.2:
      -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
      -    engines: {node: '>=10'}
      -
      -  character-entities-html4@2.1.0:
      -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
      -
      -  character-entities-legacy@3.0.0:
      -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
      -
      -  character-entities@2.0.2:
      -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
      -
      -  character-reference-invalid@2.0.1:
      -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
      -
      -  chardet@0.7.0:
      -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
      -
      -  check-error@2.0.0:
      -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
      -    engines: {node: '>= 16'}
      -
      -  cheerio-select@2.1.0:
      -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
      -
      -  cheerio@1.0.0-rc.12:
      -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
      -    engines: {node: '>= 6'}
      -
      -  chokidar@3.5.3:
      -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
      -    engines: {node: '>= 8.10.0'}
      -
      -  chokidar@3.6.0:
      -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
      -    engines: {node: '>= 8.10.0'}
      -
      -  chownr@2.0.0:
      -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
      -    engines: {node: '>=10'}
      -
      -  chrome-trace-event@1.0.3:
      -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
      -    engines: {node: '>=6.0'}
      -
      -  ci-info@3.9.0:
      -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
      -    engines: {node: '>=8'}
      -
      -  ci-info@4.0.0:
      -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
      -    engines: {node: '>=8'}
      -
      -  cjs-module-lexer@1.2.3:
      -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
      -
      -  clean-css@5.3.3:
      -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
      -    engines: {node: '>= 10.0'}
      -
      -  clean-regexp@1.0.0:
      -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
      -    engines: {node: '>=4'}
      -
      -  clean-stack@2.2.0:
      -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
      -    engines: {node: '>=6'}
      -
      -  cli-boxes@2.2.1:
      -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
      -    engines: {node: '>=6'}
      -
      -  cli-boxes@3.0.0:
      -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
      -    engines: {node: '>=10'}
      -
      -  cli-columns@4.0.0:
      -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
      -    engines: {node: '>= 10'}
      -
      -  cli-cursor@3.1.0:
      -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
      -    engines: {node: '>=8'}
      -
      -  cli-spinners@2.9.2:
      -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
      -    engines: {node: '>=6'}
      -
      -  cli-table3@0.6.4:
      -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
      -    engines: {node: 10.* || >= 12.*}
      -
      -  cli-table@0.3.11:
      -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
      -    engines: {node: '>= 0.2.0'}
      -
      -  cli-width@3.0.0:
      -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
      -    engines: {node: '>= 10'}
      -
      -  client-only@0.0.1:
      -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
      -
      -  cliui@7.0.4:
      -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
      -
      -  cliui@8.0.1:
      -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
      -    engines: {node: '>=12'}
      -
      -  clone-buffer@1.0.0:
      -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
      -    engines: {node: '>= 0.10'}
      -
      -  clone-deep@4.0.1:
      -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
      -    engines: {node: '>=6'}
      -
      -  clone-stats@1.0.0:
      -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
      -
      -  clone@1.0.4:
      -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
      -    engines: {node: '>=0.8'}
      -
      -  clone@2.1.2:
      -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
      -    engines: {node: '>=0.8'}
      -
      -  cloneable-readable@1.1.3:
      -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
      -
      -  clsx@2.1.0:
      -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
      -    engines: {node: '>=6'}
      -
      -  cmd-shim@5.0.0:
      -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  co@4.6.0:
      -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
      -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
      -
      -  collapse-white-space@2.1.0:
      -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
      -
      -  collect-v8-coverage@1.0.2:
      -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
      -
      -  color-convert@1.9.3:
      -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
      -
      -  color-convert@2.0.1:
      -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
      -    engines: {node: '>=7.0.0'}
      -
      -  color-name@1.1.3:
      -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
      -
      -  color-name@1.1.4:
      -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
      -
      -  color-string@1.9.1:
      -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
      -
      -  color-support@1.1.3:
      -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
      -    hasBin: true
      -
      -  color@3.2.1:
      -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
      -
      -  colord@2.9.3:
      -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
      -
      -  colorette@2.0.20:
      -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
      -
      -  colors@1.0.3:
      -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
      -    engines: {node: '>=0.1.90'}
      -
      -  colorspace@1.1.4:
      -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
      -
      -  combine-promises@1.2.0:
      -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
      -    engines: {node: '>=10'}
      -
      -  combined-stream@1.0.8:
      -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
      -    engines: {node: '>= 0.8'}
      -
      -  comma-separated-tokens@2.0.3:
      -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
      -
      -  commander@10.0.1:
      -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
      -    engines: {node: '>=14'}
      -
      -  commander@11.1.0:
      -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
      -    engines: {node: '>=16'}
      -
      -  commander@2.20.3:
      -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
      -
      -  commander@4.1.1:
      -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
      -    engines: {node: '>= 6'}
      -
      -  commander@5.1.0:
      -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
      -    engines: {node: '>= 6'}
      -
      -  commander@7.1.0:
      -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
      -    engines: {node: '>= 10'}
      -
      -  commander@7.2.0:
      -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
      -    engines: {node: '>= 10'}
      -
      -  commander@8.3.0:
      -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
      -    engines: {node: '>= 12'}
      -
      -  common-ancestor-path@1.0.1:
      -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
      -
      -  common-path-prefix@3.0.0:
      -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
      -
      -  commondir@1.0.1:
      -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
      -
      -  compressible@2.0.18:
      -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
      -    engines: {node: '>= 0.6'}
      -
      -  compression@1.7.4:
      -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  comver-to-semver@1.0.0:
      -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
      -    engines: {node: '>=12.17'}
      -
      -  concat-map@0.0.1:
      -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
      -
      -  config-chain@1.1.13:
      -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
      -
      -  configstore@6.0.0:
      -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
      -    engines: {node: '>=12'}
      -
      -  connect-history-api-fallback@2.0.0:
      -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
      -    engines: {node: '>=0.8'}
      -
      -  consola@2.15.3:
      -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
      -
      -  console-control-strings@1.1.0:
      -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
      -
      -  content-disposition@0.5.2:
      -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
      -    engines: {node: '>= 0.6'}
      -
      -  content-disposition@0.5.4:
      -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
      -    engines: {node: '>= 0.6'}
      -
      -  content-type@1.0.5:
      -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
      -    engines: {node: '>= 0.6'}
      -
      -  convert-source-map@2.0.0:
      -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
      -
      -  cookie-signature@1.0.6:
      -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
      -
      -  cookie@0.6.0:
      -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
      -    engines: {node: '>= 0.6'}
      -
      -  copy-text-to-clipboard@3.2.0:
      -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
      -    engines: {node: '>=12'}
      -
      -  copy-to-clipboard@3.3.3:
      -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
      -
      -  copy-webpack-plugin@11.0.0:
      -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      webpack: ^5.1.0
      -
      -  core-js-compat@3.36.1:
      -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
      -
      -  core-js-pure@3.36.1:
      -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
      -
      -  core-js@3.36.1:
      -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
      -
      -  core-util-is@1.0.3:
      -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
      -
      -  corser@2.0.1:
      -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
      -    engines: {node: '>= 0.4.0'}
      -
      -  cosmiconfig@6.0.0:
      -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
      -    engines: {node: '>=8'}
      -
      -  cosmiconfig@7.1.0:
      -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
      -    engines: {node: '>=10'}
      -
      -  cosmiconfig@8.3.6:
      -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=4.9.5'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  cosmiconfig@9.0.0:
      -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=4.9.5'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  create-jest@29.7.0:
      -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      -
      -  create-require@1.1.1:
      -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
      -
      -  cross-spawn@7.0.3:
      -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
      -    engines: {node: '>= 8'}
      -
      -  crypto-random-string@2.0.0:
      -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
      -    engines: {node: '>=8'}
      -
      -  crypto-random-string@4.0.0:
      -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
      -    engines: {node: '>=12'}
      -
      -  css-declaration-sorter@6.4.1:
      -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
      -    engines: {node: ^10 || ^12 || >=14}
      -    peerDependencies:
      -      postcss: ^8.0.9
      -
      -  css-in-js-utils@3.1.0:
      -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
      -
      -  css-loader@6.10.0:
      -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      -
      -  css-minimizer-webpack-plugin@4.2.2:
      -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      '@parcel/css': '*'
      -      '@swc/css': '*'
      -      clean-css: '*'
      -      csso: '*'
      -      esbuild: '*'
      -      lightningcss: '*'
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@parcel/css':
      -        optional: true
      -      '@swc/css':
      -        optional: true
      -      clean-css:
      -        optional: true
      -      csso:
      -        optional: true
      -      esbuild:
      -        optional: true
      -      lightningcss:
      -        optional: true
      -
      -  css-select@4.3.0:
      -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
      -
      -  css-select@5.1.0:
      -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
      -
      -  css-tree@1.1.3:
      -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
      -    engines: {node: '>=8.0.0'}
      -
      -  css-tree@2.2.1:
      -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      -
      -  css-tree@2.3.1:
      -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
      -
      -  css-what@6.1.0:
      -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
      -    engines: {node: '>= 6'}
      -
      -  cssesc@3.0.0:
      -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  cssnano-preset-advanced@5.3.10:
      -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  cssnano-preset-default@5.2.14:
      -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  cssnano-utils@3.1.0:
      -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  cssnano@5.1.15:
      -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  csso@4.2.0:
      -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
      -    engines: {node: '>=8.0.0'}
      -
      -  csso@5.0.5:
      -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      -
      -  cssom@0.3.8:
      -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
      -
      -  cssom@0.5.0:
      -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
      -
      -  cssstyle@2.3.0:
      -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
      -    engines: {node: '>=8'}
      -
      -  csstype@3.1.3:
      -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
      -
      -  damerau-levenshtein@1.0.8:
      -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
      -
      -  dargs@7.0.0:
      -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
      -    engines: {node: '>=8'}
      -
      -  data-uri-to-buffer@2.0.2:
      -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
      -
      -  data-uri-to-buffer@3.0.1:
      -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
      -    engines: {node: '>= 6'}
      -
      -  data-urls@3.0.2:
      -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
      -    engines: {node: '>=12'}
      -
      -  data-view-buffer@1.0.1:
      -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
      -    engines: {node: '>= 0.4'}
      -
      -  data-view-byte-length@1.0.1:
      -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  data-view-byte-offset@1.0.0:
      -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
      -    engines: {node: '>= 0.4'}
      -
      -  dateformat@4.6.3:
      -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
      -
      -  debounce@1.2.1:
      -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
      -
      -  debug@2.6.9:
      -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      -
      -  debug@3.2.7:
      -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      -
      -  debug@4.3.4:
      -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
      -    engines: {node: '>=6.0'}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      -
      -  debuglog@1.0.1:
      -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
      -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
      -
      -  decamelize-keys@1.1.1:
      -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  decamelize@1.2.0:
      -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  decamelize@4.0.0:
      -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
      -    engines: {node: '>=10'}
      -
      -  decamelize@5.0.1:
      -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
      -    engines: {node: '>=10'}
      -
      -  decimal.js@10.4.3:
      -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
      -
      -  decode-named-character-reference@1.0.2:
      -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
      -
      -  decompress-response@6.0.0:
      -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
      -    engines: {node: '>=10'}
      -
      -  dedent@1.5.1:
      -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
      -    peerDependencies:
      -      babel-plugin-macros: ^3.1.0
      -    peerDependenciesMeta:
      -      babel-plugin-macros:
      -        optional: true
      -
      -  deep-eql@5.0.1:
      -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
      -    engines: {node: '>=6'}
      -
      -  deep-equal@2.2.3:
      -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
      -    engines: {node: '>= 0.4'}
      -
      -  deep-extend@0.6.0:
      -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
      -    engines: {node: '>=4.0.0'}
      -
      -  deep-is@0.1.4:
      -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
      -
      -  deepmerge@4.3.1:
      -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
      -    engines: {node: '>=0.10.0'}
      -
      -  default-browser-id@5.0.0:
      -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
      -    engines: {node: '>=18'}
      -
      -  default-browser@5.2.1:
      -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
      -    engines: {node: '>=18'}
      -
      -  default-gateway@6.0.3:
      -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
      -    engines: {node: '>= 10'}
      -
      -  defaults@1.0.4:
      -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
      -
      -  defer-to-connect@2.0.1:
      -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
      -    engines: {node: '>=10'}
      -
      -  define-data-property@1.1.4:
      -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
      -    engines: {node: '>= 0.4'}
      -
      -  define-lazy-prop@2.0.0:
      -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
      -    engines: {node: '>=8'}
      -
      -  define-lazy-prop@3.0.0:
      -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
      -    engines: {node: '>=12'}
      -
      -  define-properties@1.2.1:
      -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
      -    engines: {node: '>= 0.4'}
      -
      -  del@6.1.1:
      -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
      -    engines: {node: '>=10'}
      -
      -  delayed-stream@1.0.0:
      -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
      -    engines: {node: '>=0.4.0'}
      -
      -  delegates@1.0.0:
      -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
      -
      -  depd@1.1.2:
      -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
      -    engines: {node: '>= 0.6'}
      -
      -  depd@2.0.0:
      -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
      -    engines: {node: '>= 0.8'}
      -
      -  deprecation@2.3.1:
      -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
      -
      -  dequal@2.0.3:
      -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
      -    engines: {node: '>=6'}
      -
      -  destroy@1.2.0:
      -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
      -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      -
      -  detect-indent@7.0.1:
      -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
      -    engines: {node: '>=12.20'}
      -
      -  detect-libc@2.0.3:
      -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
      -    engines: {node: '>=8'}
      -
      -  detect-newline@3.1.0:
      -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
      -    engines: {node: '>=8'}
      -
      -  detect-node@2.1.0:
      -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
      -
      -  detect-port-alt@1.1.6:
      -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
      -    engines: {node: '>= 4.2.1'}
      -    hasBin: true
      -
      -  detect-port@1.5.1:
      -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
      -    hasBin: true
      -
      -  devlop@1.1.0:
      -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
      -
      -  dezalgo@1.0.4:
      -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
      -
      -  didyoumean@1.2.2:
      -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
      -
      -  diff-sequences@29.6.3:
      -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  diff@4.0.2:
      -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
      -    engines: {node: '>=0.3.1'}
      -
      -  diff@5.0.0:
      -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
      -    engines: {node: '>=0.3.1'}
      -
      -  diff@5.2.0:
      -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
      -    engines: {node: '>=0.3.1'}
      -
      -  dir-glob@3.0.1:
      -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
      -    engines: {node: '>=8'}
      -
      -  discontinuous-range@1.0.0:
      -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
      -
      -  dlv@1.1.3:
      -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
      -
      -  dns-packet@5.6.1:
      -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
      -    engines: {node: '>=6'}
      -
      -  doctrine@2.1.0:
      -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
      -    engines: {node: '>=0.10.0'}
      -
      -  doctrine@3.0.0:
      -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
      -    engines: {node: '>=6.0.0'}
      -
      -  dom-accessibility-api@0.5.16:
      -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
      -
      -  dom-converter@0.2.0:
      -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
      -
      -  dom-serializer@1.4.1:
      -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
      -
      -  dom-serializer@2.0.0:
      -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
      -
      -  domelementtype@2.3.0:
      -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
      -
      -  domexception@4.0.0:
      -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
      -    engines: {node: '>=12'}
      -    deprecated: Use your platform's native DOMException instead
      -
      -  domhandler@4.3.1:
      -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
      -    engines: {node: '>= 4'}
      -
      -  domhandler@5.0.3:
      -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
      -    engines: {node: '>= 4'}
      -
      -  domutils@2.8.0:
      -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
      -
      -  domutils@3.1.0:
      -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
      -
      -  dot-case@3.0.4:
      -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
      -
      -  dot-prop@6.0.1:
      -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
      -    engines: {node: '>=10'}
      -
      -  duplexer@0.1.2:
      -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
      -
      -  eastasianwidth@0.2.0:
      -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
      -
      -  ee-first@1.1.1:
      -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
      -
      -  effect@2.0.0-next.62:
      -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
      -
      -  ejs@3.1.9:
      -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
      -    engines: {node: '>=0.10.0'}
      -    hasBin: true
      -
      -  electron-to-chromium@1.4.717:
      -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
      -
      -  emittery@0.13.1:
      -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
      -    engines: {node: '>=12'}
      -
      -  emoji-regex@8.0.0:
      -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
      -
      -  emoji-regex@9.2.2:
      -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
      -
      -  emojilib@2.4.0:
      -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
      -
      -  emojis-list@3.0.0:
      -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
      -    engines: {node: '>= 4'}
      -
      -  emoticon@4.0.1:
      -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
      -
      -  enabled@2.0.0:
      -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
      -
      -  encodeurl@1.0.2:
      -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
      -    engines: {node: '>= 0.8'}
      -
      -  encoding@0.1.13:
      -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
      -
      -  enhanced-resolve@5.16.0:
      -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
      -    engines: {node: '>=10.13.0'}
      -
      -  enquirer@2.4.1:
      -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
      -    engines: {node: '>=8.6'}
      -
      -  entities@2.2.0:
      -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
      -
      -  entities@4.5.0:
      -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
      -    engines: {node: '>=0.12'}
      -
      -  env-paths@2.2.1:
      -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
      -    engines: {node: '>=6'}
      -
      -  envinfo@7.11.1:
      -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  err-code@2.0.3:
      -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
      -
      -  error-ex@1.3.2:
      -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
      -
      -  error-stack-parser@2.1.4:
      -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
      -
      -  error@10.4.0:
      -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
      -
      -  es-abstract@1.23.2:
      -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-define-property@1.0.0:
      -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-errors@1.3.0:
      -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-get-iterator@1.1.3:
      -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
      -
      -  es-iterator-helpers@1.0.18:
      -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-module-lexer@1.5.0:
      -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
      -
      -  es-object-atoms@1.0.0:
      -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-set-tostringtag@2.0.3:
      -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  es-shim-unscopables@1.0.2:
      -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
      -
      -  es-to-primitive@1.2.1:
      -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
      -    engines: {node: '>= 0.4'}
      -
      -  esbuild@0.20.2:
      -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      -
      -  escalade@3.1.2:
      -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
      -    engines: {node: '>=6'}
      -
      -  escape-goat@4.0.0:
      -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
      -    engines: {node: '>=12'}
      -
      -  escape-html@1.0.3:
      -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
      -
      -  escape-string-regexp@1.0.5:
      -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
      -    engines: {node: '>=0.8.0'}
      -
      -  escape-string-regexp@2.0.0:
      -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
      -    engines: {node: '>=8'}
      -
      -  escape-string-regexp@4.0.0:
      -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
      -    engines: {node: '>=10'}
      -
      -  escape-string-regexp@5.0.0:
      -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
      -    engines: {node: '>=12'}
      -
      -  escodegen@2.1.0:
      -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
      -    engines: {node: '>=6.0'}
      -    hasBin: true
      -
      -  eslint-config-next@14.1.4:
      -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
      -    peerDependencies:
      -      eslint: ^7.23.0 || ^8.0.0
      -      typescript: '>=3.3.1'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  eslint-config-prettier@9.1.0:
      -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
      -    hasBin: true
      -    peerDependencies:
      -      eslint: '>=7.0.0'
      -
      -  eslint-import-resolver-node@0.3.9:
      -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
      -
      -  eslint-import-resolver-typescript@3.6.1:
      -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      -    engines: {node: ^14.18.0 || >=16.0.0}
      -    peerDependencies:
      -      eslint: '*'
      -      eslint-plugin-import: '*'
      -
      -  eslint-module-utils@2.8.1:
      -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      '@typescript-eslint/parser': '*'
      -      eslint: '*'
      -      eslint-import-resolver-node: '*'
      -      eslint-import-resolver-typescript: '*'
      -      eslint-import-resolver-webpack: '*'
      -    peerDependenciesMeta:
      -      '@typescript-eslint/parser':
      -        optional: true
      -      eslint:
      -        optional: true
      -      eslint-import-resolver-node:
      -        optional: true
      -      eslint-import-resolver-typescript:
      -        optional: true
      -      eslint-import-resolver-webpack:
      -        optional: true
      -
      -  eslint-plugin-import@2.29.1:
      -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      '@typescript-eslint/parser': '*'
      -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
      -    peerDependenciesMeta:
      -      '@typescript-eslint/parser':
      -        optional: true
      -
      -  eslint-plugin-jsx-a11y@6.8.0:
      -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
      -    engines: {node: '>=4.0'}
      -    peerDependencies:
      -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      -
      -  eslint-plugin-mocha@10.4.1:
      -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
      -    engines: {node: '>=14.0.0'}
      -    peerDependencies:
      -      eslint: '>=7.0.0'
      -
      -  eslint-plugin-react-hooks@4.6.0:
      -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
      -
      -  eslint-plugin-react@7.34.1:
      -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      -
      -  eslint-plugin-unicorn@51.0.1:
      -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
      -    engines: {node: '>=16'}
      -    peerDependencies:
      -      eslint: '>=8.56.0'
      -
      -  eslint-plugin-unused-imports@3.1.0:
      -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    peerDependencies:
      -      '@typescript-eslint/eslint-plugin': 6 - 7
      -      eslint: '8'
      -    peerDependenciesMeta:
      -      '@typescript-eslint/eslint-plugin':
      -        optional: true
      -
      -  eslint-rule-composer@0.3.0:
      -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
      -    engines: {node: '>=4.0.0'}
      -
      -  eslint-scope@5.1.1:
      -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
      -    engines: {node: '>=8.0.0'}
      -
      -  eslint-scope@7.2.2:
      -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  eslint-utils@3.0.0:
      -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
      -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
      -    peerDependencies:
      -      eslint: '>=5'
      -
      -  eslint-visitor-keys@2.1.0:
      -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
      -    engines: {node: '>=10'}
      -
      -  eslint-visitor-keys@3.4.3:
      -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  eslint@8.57.0:
      -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    hasBin: true
      -
      -  espree@9.6.1:
      -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  esprima@4.0.1:
      -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  esquery@1.5.0:
      -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
      -    engines: {node: '>=0.10'}
      -
      -  esrecurse@4.3.0:
      -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
      -    engines: {node: '>=4.0'}
      -
      -  estraverse@4.3.0:
      -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
      -    engines: {node: '>=4.0'}
      -
      -  estraverse@5.3.0:
      -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
      -    engines: {node: '>=4.0'}
      -
      -  estree-util-attach-comments@3.0.0:
      -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
      -
      -  estree-util-build-jsx@3.0.1:
      -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
      -
      -  estree-util-is-identifier-name@3.0.0:
      -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
      -
      -  estree-util-to-js@2.0.0:
      -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
      -
      -  estree-util-value-to-estree@3.0.1:
      -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
      -    engines: {node: '>=16.0.0'}
      -
      -  estree-util-visit@2.0.0:
      -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
      -
      -  estree-walker@3.0.3:
      -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
      -
      -  esutils@2.0.3:
      -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
      -    engines: {node: '>=0.10.0'}
      -
      -  eta@2.2.0:
      -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
      -    engines: {node: '>=6.0.0'}
      -
      -  etag@1.8.1:
      -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
      -    engines: {node: '>= 0.6'}
      -
      -  eval@0.1.8:
      -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
      -    engines: {node: '>= 0.8'}
      -
      -  event-target-shim@5.0.1:
      -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
      -    engines: {node: '>=6'}
      -
      -  eventemitter3@4.0.7:
      -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
      -
      -  events@3.3.0:
      -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
      -    engines: {node: '>=0.8.x'}
      -
      -  execa@5.1.1:
      -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
      -    engines: {node: '>=10'}
      -
      -  exit@0.1.2:
      -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  expect@29.7.0:
      -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  exponential-backoff@3.1.1:
      -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
      -
      -  express@4.19.2:
      -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
      -    engines: {node: '>= 0.10.0'}
      -
      -  extend-shallow@2.0.1:
      -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
      -    engines: {node: '>=0.10.0'}
      -
      -  extend@3.0.2:
      -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
      -
      -  external-editor@3.1.0:
      -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
      -    engines: {node: '>=4'}
      -
      -  fast-check@3.15.0:
      -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
      -    engines: {node: '>=8.0.0'}
      -
      -  fast-check@3.17.0:
      -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
      -    engines: {node: '>=8.0.0'}
      -
      -  fast-deep-equal@3.1.3:
      -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
      -
      -  fast-glob@3.3.2:
      -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
      -    engines: {node: '>=8.6.0'}
      -
      -  fast-json-stable-stringify@2.1.0:
      -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
      -
      -  fast-levenshtein@2.0.6:
      -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
      -
      -  fast-loops@1.1.3:
      -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
      -
      -  fast-safe-stringify@2.1.1:
      -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
      -
      -  fast-shallow-equal@1.0.0:
      -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
      -
      -  fast-url-parser@1.1.3:
      -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
      -
      -  fast-xml-parser@4.3.6:
      -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
      -    hasBin: true
      -
      -  fastest-levenshtein@1.0.16:
      -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
      -    engines: {node: '>= 4.9.1'}
      -
      -  fastest-stable-stringify@2.0.2:
      -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
      -
      -  fastq@1.17.1:
      -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
      -
      -  fault@2.0.1:
      -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
      -
      -  faye-websocket@0.11.4:
      -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
      -    engines: {node: '>=0.8.0'}
      -
      -  fb-watchman@2.0.2:
      -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
      -
      -  fecha@4.2.3:
      -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
      -
      -  feed@4.2.2:
      -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
      -    engines: {node: '>=0.4.0'}
      -
      -  fetch-blob@2.1.2:
      -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
      -    engines: {node: ^10.17.0 || >=12.3.0}
      -    peerDependencies:
      -      domexception: '*'
      -    peerDependenciesMeta:
      -      domexception:
      -        optional: true
      -
      -  figures@3.2.0:
      -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
      -    engines: {node: '>=8'}
      -
      -  file-entry-cache@6.0.1:
      -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
      -    engines: {node: ^10.12.0 || >=12.0.0}
      -
      -  file-loader@6.2.0:
      -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      webpack: ^4.0.0 || ^5.0.0
      -
      -  filelist@1.0.4:
      -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
      -
      -  filesize@8.0.7:
      -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
      -    engines: {node: '>= 0.4.0'}
      -
      -  fill-range@7.0.1:
      -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
      -    engines: {node: '>=8'}
      -
      -  finalhandler@1.2.0:
      -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
      -    engines: {node: '>= 0.8'}
      -
      -  find-cache-dir@4.0.0:
      -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
      -    engines: {node: '>=14.16'}
      -
      -  find-up@3.0.0:
      -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
      -    engines: {node: '>=6'}
      -
      -  find-up@4.1.0:
      -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
      -    engines: {node: '>=8'}
      -
      -  find-up@5.0.0:
      -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
      -    engines: {node: '>=10'}
      -
      -  find-up@6.3.0:
      -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  find-yarn-workspace-root2@1.2.16:
      -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
      -
      -  first-chunk-stream@2.0.0:
      -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  flat-cache@3.2.0:
      -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
      -    engines: {node: ^10.12.0 || >=12.0.0}
      -
      -  flat@5.0.2:
      -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
      -    hasBin: true
      -
      -  flatted@3.3.1:
      -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
      -
      -  fn.name@1.1.0:
      -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
      -
      -  follow-redirects@1.15.6:
      -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
      -    engines: {node: '>=4.0'}
      -    peerDependencies:
      -      debug: '*'
      -    peerDependenciesMeta:
      -      debug:
      -        optional: true
      -
      -  for-each@0.3.3:
      -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
      -
      -  foreground-child@3.1.1:
      -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
      -    engines: {node: '>=14'}
      -
      -  fork-ts-checker-webpack-plugin@6.5.3:
      -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
      -    engines: {node: '>=10', yarn: '>=1.0.0'}
      -    peerDependencies:
      -      eslint: '>= 6'
      -      typescript: '>= 2.7'
      -      vue-template-compiler: '*'
      -      webpack: '>= 4'
      -    peerDependenciesMeta:
      -      eslint:
      -        optional: true
      -      vue-template-compiler:
      -        optional: true
      -
      -  form-data-encoder@2.1.4:
      -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
      -    engines: {node: '>= 14.17'}
      -
      -  form-data@4.0.0:
      -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
      -    engines: {node: '>= 6'}
      -
      -  format@0.2.2:
      -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
      -    engines: {node: '>=0.4.x'}
      -
      -  forwarded@0.2.0:
      -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
      -    engines: {node: '>= 0.6'}
      -
      -  fraction.js@4.3.7:
      -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
      -
      -  fresh@0.5.2:
      -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
      -    engines: {node: '>= 0.6'}
      -
      -  fs-extra@11.2.0:
      -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
      -    engines: {node: '>=14.14'}
      -
      -  fs-extra@9.1.0:
      -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
      -    engines: {node: '>=10'}
      -
      -  fs-minipass@2.1.0:
      -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
      -    engines: {node: '>= 8'}
      -
      -  fs-minipass@3.0.3:
      -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  fs-monkey@1.0.5:
      -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
      -
      -  fs.realpath@1.0.0:
      -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
      -
      -  fsevents@2.3.3:
      -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
      -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
      -    os: [darwin]
      -
      -  function-bind@1.1.2:
      -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
      -
      -  function.prototype.name@1.1.6:
      -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
      -    engines: {node: '>= 0.4'}
      -
      -  functions-have-names@1.2.3:
      -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
      -
      -  gauge@3.0.2:
      -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
      -    engines: {node: '>=10'}
      -
      -  gauge@4.0.4:
      -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  gensync@1.0.0-beta.2:
      -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
      -    engines: {node: '>=6.9.0'}
      -
      -  get-caller-file@2.0.5:
      -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
      -    engines: {node: 6.* || 8.* || >= 10.*}
      -
      -  get-func-name@2.0.2:
      -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
      -
      -  get-intrinsic@1.2.4:
      -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  get-npm-tarball-url@2.1.0:
      -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
      -    engines: {node: '>=12.17'}
      -
      -  get-own-enumerable-property-symbols@3.0.2:
      -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
      -
      -  get-package-type@0.1.0:
      -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
      -    engines: {node: '>=8.0.0'}
      -
      -  get-source@2.0.12:
      -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
      -
      -  get-stream@6.0.1:
      -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
      -    engines: {node: '>=10'}
      -
      -  get-symbol-description@1.0.2:
      -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
      -    engines: {node: '>= 0.4'}
      -
      -  get-tsconfig@4.7.3:
      -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
      -
      -  github-slugger@1.5.0:
      -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
      -
      -  github-username@6.0.0:
      -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
      -    engines: {node: '>=10'}
      -
      -  glob-parent@5.1.2:
      -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
      -    engines: {node: '>= 6'}
      -
      -  glob-parent@6.0.2:
      -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
      -    engines: {node: '>=10.13.0'}
      -
      -  glob-to-regexp@0.4.1:
      -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
      -
      -  glob@10.3.10:
      -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -    hasBin: true
      -
      -  glob@7.2.3:
      -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
      -
      -  glob@8.1.0:
      -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
      -    engines: {node: '>=12'}
      -
      -  global-dirs@3.0.1:
      -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
      -    engines: {node: '>=10'}
      -
      -  global-modules@2.0.0:
      -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
      -    engines: {node: '>=6'}
      -
      -  global-prefix@3.0.0:
      -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
      -    engines: {node: '>=6'}
      -
      -  globals@11.12.0:
      -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
      -    engines: {node: '>=4'}
      -
      -  globals@13.24.0:
      -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
      -    engines: {node: '>=8'}
      -
      -  globalthis@1.0.3:
      -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
      -    engines: {node: '>= 0.4'}
      -
      -  globby@11.1.0:
      -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
      -    engines: {node: '>=10'}
      -
      -  globby@13.2.2:
      -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  gopd@1.0.1:
      -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
      -
      -  got@12.6.1:
      -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
      -    engines: {node: '>=14.16'}
      -
      -  graceful-fs@4.2.10:
      -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
      -
      -  graceful-fs@4.2.11:
      -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
      -
      -  graceful-git@3.1.2:
      -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
      -    engines: {node: '>=10'}
      -
      -  graphemer@1.4.0:
      -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
      -
      -  gray-matter@4.0.3:
      -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
      -    engines: {node: '>=6.0'}
      -
      -  grouped-queue@2.0.0:
      -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
      -    engines: {node: '>=8.0.0'}
      -
      -  gzip-size@6.0.0:
      -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
      -    engines: {node: '>=10'}
      -
      -  handle-thing@2.0.1:
      -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
      -
      -  hard-rejection@2.1.0:
      -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
      -    engines: {node: '>=6'}
      -
      -  has-bigints@1.0.2:
      -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
      -
      -  has-flag@3.0.0:
      -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
      -    engines: {node: '>=4'}
      -
      -  has-flag@4.0.0:
      -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
      -    engines: {node: '>=8'}
      -
      -  has-property-descriptors@1.0.2:
      -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
      -
      -  has-proto@1.0.3:
      -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
      -    engines: {node: '>= 0.4'}
      -
      -  has-symbols@1.0.3:
      -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
      -    engines: {node: '>= 0.4'}
      -
      -  has-tostringtag@1.0.2:
      -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
      -    engines: {node: '>= 0.4'}
      -
      -  has-unicode@2.0.1:
      -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
      -
      -  has-yarn@3.0.0:
      -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  hasharray@1.1.2:
      -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
      -
      -  hasown@2.0.2:
      -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  hast-util-from-parse5@8.0.1:
      -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
      -
      -  hast-util-parse-selector@4.0.0:
      -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
      -
      -  hast-util-raw@9.0.2:
      -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
      -
      -  hast-util-to-estree@3.1.0:
      -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
      -
      -  hast-util-to-jsx-runtime@2.3.0:
      -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
      -
      -  hast-util-to-parse5@8.0.0:
      -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
      -
      -  hast-util-whitespace@3.0.0:
      -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
      -
      -  hastscript@8.0.0:
      -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
      -
      -  he@1.2.0:
      -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
      -    hasBin: true
      -
      -  history@4.10.1:
      -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
      -
      -  hoist-non-react-statics@3.3.2:
      -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
      -
      -  hosted-git-info@2.8.9:
      -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
      -
      -  hosted-git-info@4.1.0:
      -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
      -    engines: {node: '>=10'}
      -
      -  hosted-git-info@6.1.1:
      -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  hosted-git-info@7.0.1:
      -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
      -    engines: {node: ^16.14.0 || >=18.0.0}
      -
      -  hpack.js@2.1.6:
      -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
      -
      -  html-encoding-sniffer@3.0.0:
      -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
      -    engines: {node: '>=12'}
      -
      -  html-entities@2.5.2:
      -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
      -
      -  html-escaper@2.0.2:
      -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
      -
      -  html-minifier-terser@6.1.0:
      -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      -
      -  html-minifier-terser@7.2.0:
      -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
      -    engines: {node: ^14.13.1 || >=16.0.0}
      -    hasBin: true
      -
      -  html-tags@3.3.1:
      -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
      -    engines: {node: '>=8'}
      -
      -  html-void-elements@3.0.0:
      -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
      -
      -  html-webpack-plugin@5.6.0:
      -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      webpack: ^5.20.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      -
      -  htmlparser2@6.1.0:
      -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
      -
      -  htmlparser2@8.0.2:
      -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
      -
      -  http-cache-semantics@4.1.1:
      -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
      -
      -  http-deceiver@1.2.7:
      -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
      -
      -  http-errors@1.6.3:
      -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
      -    engines: {node: '>= 0.6'}
      -
      -  http-errors@2.0.0:
      -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
      -    engines: {node: '>= 0.8'}
      -
      -  http-parser-js@0.5.8:
      -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
      -
      -  http-proxy-agent@4.0.1:
      -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
      -    engines: {node: '>= 6'}
      -
      -  http-proxy-agent@5.0.0:
      -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
      -    engines: {node: '>= 6'}
      -
      -  http-proxy-middleware@2.0.6:
      -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
      -    engines: {node: '>=12.0.0'}
      -    peerDependencies:
      -      '@types/express': ^4.17.13
      -    peerDependenciesMeta:
      -      '@types/express':
      -        optional: true
      -
      -  http-proxy@1.18.1:
      -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
      -    engines: {node: '>=8.0.0'}
      -
      -  http-server@14.1.1:
      -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      -
      -  http2-wrapper@2.2.1:
      -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
      -    engines: {node: '>=10.19.0'}
      -
      -  https-proxy-agent@5.0.1:
      -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
      -    engines: {node: '>= 6'}
      -
      -  human-signals@2.1.0:
      -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
      -    engines: {node: '>=10.17.0'}
      -
      -  humanize-ms@1.2.1:
      -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
      -
      -  hyphenate-style-name@1.0.4:
      -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
      -
      -  iconv-lite@0.4.24:
      -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  iconv-lite@0.6.3:
      -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
      -    engines: {node: '>=0.10.0'}
      -
      -  icss-utils@5.1.0:
      -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  ieee754@1.2.1:
      -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
      -
      -  ignore-walk@4.0.1:
      -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
      -    engines: {node: '>=10'}
      -
      -  ignore-walk@6.0.4:
      -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  ignore@5.3.1:
      -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
      -    engines: {node: '>= 4'}
      -
      -  image-size@1.1.1:
      -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
      -    engines: {node: '>=16.x'}
      -    hasBin: true
      -
      -  immediate@3.0.6:
      -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
      -
      -  immer@10.0.4:
      -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
      -
      -  immer@9.0.21:
      -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
      -
      -  immutability-helper@3.1.1:
      -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
      -
      -  import-fresh@3.3.0:
      -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
      -    engines: {node: '>=6'}
      -
      -  import-lazy@4.0.0:
      -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
      -    engines: {node: '>=8'}
      -
      -  import-local@3.1.0:
      -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
      -    engines: {node: '>=8'}
      -    hasBin: true
      -
      -  imurmurhash@0.1.4:
      -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
      -    engines: {node: '>=0.8.19'}
      -
      -  indent-string@4.0.0:
      -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
      -    engines: {node: '>=8'}
      -
      -  indent-string@5.0.0:
      -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
      -    engines: {node: '>=12'}
      -
      -  individual@3.0.0:
      -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
      -
      -  infer-owner@1.0.4:
      -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
      -
      -  infima@0.2.0-alpha.43:
      -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
      -    engines: {node: '>=12'}
      -
      -  inflight@1.0.6:
      -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
      -
      -  inherits@2.0.3:
      -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
      -
      -  inherits@2.0.4:
      -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
      -
      -  ini@1.3.8:
      -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
      -
      -  ini@2.0.0:
      -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
      -    engines: {node: '>=10'}
      -
      -  ini@3.0.1:
      -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  inline-style-parser@0.1.1:
      -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
      -
      -  inline-style-parser@0.2.2:
      -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
      -
      -  inline-style-prefixer@7.0.0:
      -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
      -
      -  inquirer@8.2.6:
      -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
      -    engines: {node: '>=12.0.0'}
      -
      -  internal-slot@1.0.7:
      -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
      -    engines: {node: '>= 0.4'}
      -
      -  interpret@1.4.0:
      -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
      -    engines: {node: '>= 0.10'}
      -
      -  interpret@3.1.1:
      -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
      -    engines: {node: '>=10.13.0'}
      -
      -  invariant@2.2.4:
      -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
      -
      -  ip-address@9.0.5:
      -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
      -    engines: {node: '>= 12'}
      -
      -  ipaddr.js@1.9.1:
      -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
      -    engines: {node: '>= 0.10'}
      -
      -  ipaddr.js@2.1.0:
      -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
      -    engines: {node: '>= 10'}
      -
      -  is-alphabetical@2.0.1:
      -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
      -
      -  is-alphanumerical@2.0.1:
      -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
      -
      -  is-arguments@1.1.1:
      -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-array-buffer@3.0.4:
      -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-arrayish@0.2.1:
      -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
      -
      -  is-arrayish@0.3.2:
      -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
      -
      -  is-async-function@2.0.0:
      -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-bigint@1.0.4:
      -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
      -
      -  is-binary-path@2.1.0:
      -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
      -    engines: {node: '>=8'}
      -
      -  is-boolean-object@1.1.2:
      -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-builtin-module@3.2.1:
      -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
      -    engines: {node: '>=6'}
      -
      -  is-callable@1.2.7:
      -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-ci@3.0.1:
      -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
      -    hasBin: true
      -
      -  is-core-module@2.13.1:
      -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
      -
      -  is-data-view@1.0.1:
      -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-date-object@1.0.5:
      -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-decimal@2.0.1:
      -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
      -
      -  is-docker@2.2.1:
      -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
      -    engines: {node: '>=8'}
      -    hasBin: true
      -
      -  is-docker@3.0.0:
      -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    hasBin: true
      -
      -  is-extendable@0.1.1:
      -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-extglob@2.1.1:
      -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-finalizationregistry@1.0.2:
      -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
      -
      -  is-fullwidth-code-point@3.0.0:
      -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
      -    engines: {node: '>=8'}
      -
      -  is-generator-fn@2.1.0:
      -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
      -    engines: {node: '>=6'}
      -
      -  is-generator-function@1.0.10:
      -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-glob@4.0.3:
      -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-hexadecimal@2.0.1:
      -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
      -
      -  is-inside-container@1.0.0:
      -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
      -    engines: {node: '>=14.16'}
      -    hasBin: true
      -
      -  is-installed-globally@0.4.0:
      -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
      -    engines: {node: '>=10'}
      -
      -  is-interactive@1.0.0:
      -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
      -    engines: {node: '>=8'}
      -
      -  is-lambda@1.0.1:
      -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
      -
      -  is-map@2.0.3:
      -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-negative-zero@2.0.3:
      -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-network-error@1.1.0:
      -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
      -    engines: {node: '>=16'}
      -
      -  is-npm@6.0.0:
      -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  is-number-object@1.0.7:
      -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-number@7.0.0:
      -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
      -    engines: {node: '>=0.12.0'}
      -
      -  is-obj@1.0.1:
      -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-obj@2.0.0:
      -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
      -    engines: {node: '>=8'}
      -
      -  is-path-cwd@2.2.0:
      -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
      -    engines: {node: '>=6'}
      -
      -  is-path-inside@3.0.3:
      -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
      -    engines: {node: '>=8'}
      -
      -  is-plain-obj@1.1.0:
      -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-plain-obj@2.1.0:
      -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
      -    engines: {node: '>=8'}
      -
      -  is-plain-obj@3.0.0:
      -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
      -    engines: {node: '>=10'}
      -
      -  is-plain-obj@4.1.0:
      -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
      -    engines: {node: '>=12'}
      -
      -  is-plain-object@2.0.4:
      -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-plain-object@5.0.0:
      -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-potential-custom-element-name@1.0.1:
      -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
      -
      -  is-reference@3.0.2:
      -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
      -
      -  is-regex@1.1.4:
      -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-regexp@1.0.0:
      -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-root@2.1.0:
      -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
      -    engines: {node: '>=6'}
      -
      -  is-scoped@2.1.0:
      -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
      -    engines: {node: '>=8'}
      -
      -  is-set@2.0.3:
      -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-shared-array-buffer@1.0.3:
      -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-stream@2.0.1:
      -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
      -    engines: {node: '>=8'}
      -
      -  is-string@1.0.7:
      -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-subdir@1.2.0:
      -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
      -    engines: {node: '>=4'}
      -
      -  is-symbol@1.0.4:
      -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-typed-array@1.1.13:
      -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-typedarray@1.0.0:
      -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
      -
      -  is-unicode-supported@0.1.0:
      -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
      -    engines: {node: '>=10'}
      -
      -  is-utf8@0.2.1:
      -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
      -
      -  is-weakmap@2.0.2:
      -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-weakref@1.0.2:
      -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
      -
      -  is-weakset@2.0.3:
      -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  is-windows@1.0.2:
      -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  is-wsl@2.2.0:
      -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
      -    engines: {node: '>=8'}
      -
      -  is-wsl@3.1.0:
      -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
      -    engines: {node: '>=16'}
      -
      -  is-yarn-global@0.4.1:
      -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
      -    engines: {node: '>=12'}
      -
      -  isarray@0.0.1:
      -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
      -
      -  isarray@1.0.0:
      -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
      -
      -  isarray@2.0.5:
      -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
      -
      -  isbinaryfile@4.0.10:
      -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
      -    engines: {node: '>= 8.0.0'}
      -
      -  isbinaryfile@5.0.2:
      -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
      -    engines: {node: '>= 18.0.0'}
      -
      -  isexe@2.0.0:
      -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
      -
      -  isobject@3.0.1:
      -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  istanbul-lib-coverage@3.2.2:
      -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
      -    engines: {node: '>=8'}
      -
      -  istanbul-lib-instrument@5.2.1:
      -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
      -    engines: {node: '>=8'}
      -
      -  istanbul-lib-instrument@6.0.2:
      -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
      -    engines: {node: '>=10'}
      -
      -  istanbul-lib-report@3.0.1:
      -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
      -    engines: {node: '>=10'}
      -
      -  istanbul-lib-source-maps@4.0.1:
      -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
      -    engines: {node: '>=10'}
      -
      -  istanbul-reports@3.1.7:
      -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
      -    engines: {node: '>=8'}
      -
      -  iterator.prototype@1.1.2:
      -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
      -
      -  itertools@2.2.5:
      -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
      -
      -  jackspeak@2.3.6:
      -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
      -    engines: {node: '>=14'}
      -
      -  jake@10.8.7:
      -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  jclass@1.2.1:
      -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
      -    engines: {node: '>= 0.6'}
      -
      -  jest-changed-files@29.7.0:
      -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-circus@29.7.0:
      -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-cli@29.7.0:
      -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      -
      -  jest-config@29.7.0:
      -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@types/node': '*'
      -      ts-node: '>=9.0.0'
      -    peerDependenciesMeta:
      -      '@types/node':
      -        optional: true
      -      ts-node:
      -        optional: true
      -
      -  jest-diff@29.7.0:
      -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-docblock@29.7.0:
      -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-each@29.7.0:
      -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-environment-jsdom@29.7.0:
      -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      canvas: ^2.5.0
      -    peerDependenciesMeta:
      -      canvas:
      -        optional: true
      -
      -  jest-environment-node@29.7.0:
      -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-get-type@29.6.3:
      -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-haste-map@29.7.0:
      -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-leak-detector@29.7.0:
      -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-matcher-utils@29.7.0:
      -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-message-util@29.7.0:
      -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-mock@29.7.0:
      -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-pnp-resolver@1.2.3:
      -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
      -    engines: {node: '>=6'}
      -    peerDependencies:
      -      jest-resolve: '*'
      -    peerDependenciesMeta:
      -      jest-resolve:
      -        optional: true
      -
      -  jest-regex-util@29.6.3:
      -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-resolve-dependencies@29.7.0:
      -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-resolve@29.7.0:
      -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-runner@29.7.0:
      -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-runtime@29.7.0:
      -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-snapshot@29.7.0:
      -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-util@29.7.0:
      -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-validate@29.7.0:
      -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-watcher@29.7.0:
      -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest-worker@27.5.1:
      -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
      -    engines: {node: '>= 10.13.0'}
      -
      -  jest-worker@29.7.0:
      -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  jest@29.7.0:
      -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      -
      -  jiti@1.21.0:
      -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
      -    hasBin: true
      -
      -  joi@17.12.2:
      -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
      -
      -  js-cookie@2.2.1:
      -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
      -
      -  js-tokens@4.0.0:
      -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
      -
      -  js-yaml@3.14.1:
      -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
      -    hasBin: true
      -
      -  js-yaml@4.1.0:
      -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
      -    hasBin: true
      -
      -  jsbn@1.1.0:
      -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
      -
      -  jsdom@20.0.3:
      -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      canvas: ^2.5.0
      -    peerDependenciesMeta:
      -      canvas:
      -        optional: true
      -
      -  jsesc@0.5.0:
      -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
      -    hasBin: true
      -
      -  jsesc@2.5.2:
      -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  jsesc@3.0.2:
      -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      -
      -  json-buffer@3.0.1:
      -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
      -
      -  json-parse-even-better-errors@2.3.1:
      -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
      -
      -  json-parse-even-better-errors@3.0.1:
      -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  json-schema-traverse@0.4.1:
      -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
      -
      -  json-schema-traverse@1.0.0:
      -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
      -
      -  json-stable-stringify-without-jsonify@1.0.1:
      -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
      -
      -  json-stringify-nice@1.1.4:
      -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
      -
      -  json-stringify-safe@5.0.1:
      -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
      -
      -  json5@1.0.2:
      -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
      -    hasBin: true
      -
      -  json5@2.2.3:
      -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      -
      -  jsonfile@6.1.0:
      -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
      -
      -  jsonparse@1.3.1:
      -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
      -    engines: {'0': node >= 0.2.0}
      -
      -  jsx-ast-utils@3.3.5:
      -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
      -    engines: {node: '>=4.0'}
      -
      -  jszip@3.10.1:
      -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
      -
      -  just-diff-apply@5.5.0:
      -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
      -
      -  just-diff@5.2.0:
      -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
      -
      -  just-extend@6.2.0:
      -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
      -
      -  keyv@4.5.4:
      -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
      -
      -  kind-of@6.0.3:
      -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
      -    engines: {node: '>=0.10.0'}
      -
      -  kleur@3.0.3:
      -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
      -    engines: {node: '>=6'}
      -
      -  kuler@2.0.0:
      -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
      -
      -  language-subtag-registry@0.3.22:
      -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
      -
      -  language-tags@1.0.9:
      -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
      -    engines: {node: '>=0.10'}
      -
      -  latest-version@7.0.0:
      -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
      -    engines: {node: '>=14.16'}
      -
      -  launch-editor@2.6.1:
      -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
      -
      -  leven@3.1.0:
      -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
      -    engines: {node: '>=6'}
      -
      -  levn@0.4.1:
      -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  lie@3.3.0:
      -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
      -
      -  lilconfig@2.1.0:
      -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
      -    engines: {node: '>=10'}
      -
      -  lilconfig@3.1.1:
      -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
      -    engines: {node: '>=14'}
      -
      -  lines-and-columns@1.2.4:
      -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
      -
      -  load-json-file@6.2.0:
      -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
      -    engines: {node: '>=8'}
      -
      -  load-json-file@7.0.1:
      -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  load-script@1.0.0:
      -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
      -
      -  load-yaml-file@0.2.0:
      -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
      -    engines: {node: '>=6'}
      -
      -  loader-runner@4.3.0:
      -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
      -    engines: {node: '>=6.11.5'}
      -
      -  loader-utils@2.0.4:
      -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
      -    engines: {node: '>=8.9.0'}
      -
      -  loader-utils@3.2.1:
      -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
      -    engines: {node: '>= 12.13.0'}
      -
      -  locate-path@3.0.0:
      -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
      -    engines: {node: '>=6'}
      -
      -  locate-path@5.0.0:
      -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
      -    engines: {node: '>=8'}
      -
      -  locate-path@6.0.0:
      -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
      -    engines: {node: '>=10'}
      -
      -  locate-path@7.2.0:
      -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  lodash.debounce@4.0.8:
      -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
      -
      -  lodash.get@4.4.2:
      -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
      -
      -  lodash.memoize@4.1.2:
      -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
      -
      -  lodash.merge@4.6.2:
      -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
      -
      -  lodash.uniq@4.5.0:
      -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
      -
      -  lodash@4.17.21:
      -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
      -
      -  log-symbols@4.1.0:
      -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
      -    engines: {node: '>=10'}
      -
      -  logform@2.6.0:
      -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
      -    engines: {node: '>= 12.0.0'}
      -
      -  longest-streak@3.1.0:
      -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
      -
      -  loose-envify@1.4.0:
      -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
      -    hasBin: true
      -
      -  loupe@3.1.0:
      -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
      -
      -  lower-case@2.0.2:
      -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
      -
      -  lowercase-keys@3.0.0:
      -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  lru-cache@10.2.0:
      -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
      -    engines: {node: 14 || >=16.14}
      -
      -  lru-cache@5.1.1:
      -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
      -
      -  lru-cache@6.0.0:
      -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
      -    engines: {node: '>=10'}
      -
      -  lru-cache@7.10.1:
      -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
      -    engines: {node: '>=12'}
      -
      -  lru-cache@7.18.3:
      -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
      -    engines: {node: '>=12'}
      -
      -  lz-string@1.5.0:
      -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
      -    hasBin: true
      -
      -  make-dir@4.0.0:
      -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
      -    engines: {node: '>=10'}
      -
      -  make-error@1.3.6:
      -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
      -
      -  make-fetch-happen@10.2.1:
      -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  make-fetch-happen@11.1.1:
      -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  make-fetch-happen@9.1.0:
      -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
      -    engines: {node: '>= 10'}
      -
      -  makeerror@1.0.12:
      -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
      -
      -  map-age-cleaner@0.1.3:
      -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
      -    engines: {node: '>=6'}
      -
      -  map-obj@1.0.1:
      -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  map-obj@4.3.0:
      -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
      -    engines: {node: '>=8'}
      -
      -  markdown-extensions@2.0.0:
      -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
      -    engines: {node: '>=16'}
      -
      -  markdown-table@3.0.3:
      -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
      -
      -  mdast-util-directive@3.0.0:
      -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
      -
      -  mdast-util-find-and-replace@3.0.1:
      -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
      -
      -  mdast-util-from-markdown@2.0.0:
      -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
      -
      -  mdast-util-frontmatter@2.0.1:
      -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
      -
      -  mdast-util-gfm-autolink-literal@2.0.0:
      -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
      -
      -  mdast-util-gfm-footnote@2.0.0:
      -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
      -
      -  mdast-util-gfm-strikethrough@2.0.0:
      -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
      -
      -  mdast-util-gfm-table@2.0.0:
      -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
      -
      -  mdast-util-gfm-task-list-item@2.0.0:
      -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
      -
      -  mdast-util-gfm@3.0.0:
      -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
      -
      -  mdast-util-mdx-expression@2.0.0:
      -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
      -
      -  mdast-util-mdx-jsx@3.1.2:
      -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
      -
      -  mdast-util-mdx@3.0.0:
      -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
      -
      -  mdast-util-mdxjs-esm@2.0.1:
      -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
      -
      -  mdast-util-phrasing@4.1.0:
      -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
      -
      -  mdast-util-to-hast@13.1.0:
      -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
      -
      -  mdast-util-to-markdown@2.1.0:
      -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
      -
      -  mdast-util-to-string@4.0.0:
      -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
      -
      -  mdn-data@2.0.14:
      -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
      -
      -  mdn-data@2.0.28:
      -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
      -
      -  mdn-data@2.0.30:
      -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
      -
      -  media-typer@0.3.0:
      -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
      -    engines: {node: '>= 0.6'}
      -
      -  mem-fs-editor@9.7.0:
      -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
      -    engines: {node: '>=12.10.0'}
      -    peerDependencies:
      -      mem-fs: ^2.1.0
      -    peerDependenciesMeta:
      -      mem-fs:
      -        optional: true
      -
      -  mem-fs@2.3.0:
      -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
      -    engines: {node: '>=12'}
      -
      -  mem@8.1.1:
      -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
      -    engines: {node: '>=10'}
      -
      -  memfs@3.5.3:
      -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
      -    engines: {node: '>= 4.0.0'}
      -
      -  memfs@4.8.0:
      -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
      -    engines: {node: '>= 4.0.0'}
      -
      -  memoize-one@5.2.1:
      -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
      -
      -  meow@10.1.5:
      -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  merge-descriptors@1.0.1:
      -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
      -
      -  merge-stream@2.0.0:
      -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
      -
      -  merge2@1.4.1:
      -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
      -    engines: {node: '>= 8'}
      -
      -  methods@1.1.2:
      -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
      -    engines: {node: '>= 0.6'}
      -
      -  micromark-core-commonmark@2.0.0:
      -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
      -
      -  micromark-extension-directive@3.0.0:
      -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
      -
      -  micromark-extension-frontmatter@2.0.0:
      -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
      -
      -  micromark-extension-gfm-autolink-literal@2.0.0:
      -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
      -
      -  micromark-extension-gfm-footnote@2.0.0:
      -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
      -
      -  micromark-extension-gfm-strikethrough@2.0.0:
      -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
      -
      -  micromark-extension-gfm-table@2.0.0:
      -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
      -
      -  micromark-extension-gfm-tagfilter@2.0.0:
      -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
      -
      -  micromark-extension-gfm-task-list-item@2.0.1:
      -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
      -
      -  micromark-extension-gfm@3.0.0:
      -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
      -
      -  micromark-extension-mdx-expression@3.0.0:
      -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
      -
      -  micromark-extension-mdx-jsx@3.0.0:
      -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
      -
      -  micromark-extension-mdx-md@2.0.0:
      -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
      -
      -  micromark-extension-mdxjs-esm@3.0.0:
      -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
      -
      -  micromark-extension-mdxjs@3.0.0:
      -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
      -
      -  micromark-factory-destination@2.0.0:
      -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
      -
      -  micromark-factory-label@2.0.0:
      -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
      -
      -  micromark-factory-mdx-expression@2.0.1:
      -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
      -
      -  micromark-factory-space@1.1.0:
      -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
      -
      -  micromark-factory-space@2.0.0:
      -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
      -
      -  micromark-factory-title@2.0.0:
      -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
      -
      -  micromark-factory-whitespace@2.0.0:
      -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
      -
      -  micromark-util-character@1.2.0:
      -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
      -
      -  micromark-util-character@2.1.0:
      -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
      -
      -  micromark-util-chunked@2.0.0:
      -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
      -
      -  micromark-util-classify-character@2.0.0:
      -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
      -
      -  micromark-util-combine-extensions@2.0.0:
      -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
      -
      -  micromark-util-decode-numeric-character-reference@2.0.1:
      -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
      -
      -  micromark-util-decode-string@2.0.0:
      -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
      -
      -  micromark-util-encode@2.0.0:
      -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
      -
      -  micromark-util-events-to-acorn@2.0.2:
      -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
      -
      -  micromark-util-html-tag-name@2.0.0:
      -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
      -
      -  micromark-util-normalize-identifier@2.0.0:
      -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
      -
      -  micromark-util-resolve-all@2.0.0:
      -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
      -
      -  micromark-util-sanitize-uri@2.0.0:
      -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
      -
      -  micromark-util-subtokenize@2.0.0:
      -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
      -
      -  micromark-util-symbol@1.1.0:
      -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
      -
      -  micromark-util-symbol@2.0.0:
      -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
      -
      -  micromark-util-types@1.1.0:
      -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
      -
      -  micromark-util-types@2.0.0:
      -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
      -
      -  micromark@4.0.0:
      -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
      -
      -  micromatch@4.0.5:
      -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
      -    engines: {node: '>=8.6'}
      -
      -  mime-db@1.33.0:
      -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
      -    engines: {node: '>= 0.6'}
      -
      -  mime-db@1.52.0:
      -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
      -    engines: {node: '>= 0.6'}
      -
      -  mime-types@2.1.18:
      -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
      -    engines: {node: '>= 0.6'}
      -
      -  mime-types@2.1.35:
      -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
      -    engines: {node: '>= 0.6'}
      -
      -  mime@1.6.0:
      -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  mimic-fn@2.1.0:
      -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
      -    engines: {node: '>=6'}
      -
      -  mimic-fn@3.1.0:
      -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
      -    engines: {node: '>=8'}
      -
      -  mimic-response@3.1.0:
      -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
      -    engines: {node: '>=10'}
      -
      -  mimic-response@4.0.0:
      -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  min-indent@1.0.1:
      -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
      -    engines: {node: '>=4'}
      -
      -  mini-css-extract-plugin@2.8.1:
      -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      -
      -  minimalistic-assert@1.0.1:
      -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
      -
      -  minimatch@3.1.2:
      -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
      -
      -  minimatch@5.0.1:
      -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
      -    engines: {node: '>=10'}
      -
      -  minimatch@5.1.6:
      -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
      -    engines: {node: '>=10'}
      -
      -  minimatch@7.4.6:
      -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
      -    engines: {node: '>=10'}
      -
      -  minimatch@9.0.3:
      -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -
      -  minimist-options@4.1.0:
      -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
      -    engines: {node: '>= 6'}
      -
      -  minimist@1.2.8:
      -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
      -
      -  minipass-collect@1.0.2:
      -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
      -    engines: {node: '>= 8'}
      -
      -  minipass-fetch@1.4.1:
      -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
      -    engines: {node: '>=8'}
      -
      -  minipass-fetch@2.1.2:
      -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  minipass-fetch@3.0.4:
      -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  minipass-flush@1.0.5:
      -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
      -    engines: {node: '>= 8'}
      -
      -  minipass-json-stream@1.0.1:
      -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
      -
      -  minipass-pipeline@1.2.4:
      -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
      -    engines: {node: '>=8'}
      -
      -  minipass-sized@1.0.3:
      -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
      -    engines: {node: '>=8'}
      -
      -  minipass@3.3.6:
      -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
      -    engines: {node: '>=8'}
      -
      -  minipass@5.0.0:
      -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
      -    engines: {node: '>=8'}
      -
      -  minipass@7.0.4:
      -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -
      -  minizlib@2.1.2:
      -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
      -    engines: {node: '>= 8'}
      -
      -  mkdirp-infer-owner@2.0.0:
      -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
      -    engines: {node: '>=10'}
      -
      -  mkdirp@0.5.6:
      -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
      -    hasBin: true
      -
      -  mkdirp@1.0.4:
      -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  mocha@10.3.0:
      -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
      -    engines: {node: '>= 14.0.0'}
      -    hasBin: true
      -
      -  moo@0.5.2:
      -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
      -
      -  mrmime@2.0.0:
      -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
      -    engines: {node: '>=10'}
      -
      -  ms@2.0.0:
      -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
      -
      -  ms@2.1.2:
      -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
      -
      -  ms@2.1.3:
      -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
      -
      -  multicast-dns@7.2.5:
      -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
      -    hasBin: true
      -
      -  multimatch@5.0.0:
      -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
      -    engines: {node: '>=10'}
      -
      -  mute-stream@0.0.8:
      -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
      -
      -  mz@2.7.0:
      -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
      -
      -  nano-css@5.6.1:
      -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      -
      -  nanoid@3.3.7:
      -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
      -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
      -    hasBin: true
      -
      -  natural-compare@1.4.0:
      -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
      -
      -  ndjson@2.0.0:
      -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  nearley@2.20.1:
      -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
      -    hasBin: true
      -
      -  negotiator@0.6.3:
      -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
      -    engines: {node: '>= 0.6'}
      -
      -  neo-async@2.6.2:
      -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
      -
      -  neovim@5.1.0:
      -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  nerf-dart@1.0.0:
      -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
      -
      -  next@14.1.4:
      -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
      -    engines: {node: '>=18.17.0'}
      -    hasBin: true
      -    peerDependencies:
      -      '@opentelemetry/api': ^1.1.0
      -      react: ^18.2.0 || 18
      -      react-dom: ^18.2.0 || 18
      -      sass: ^1.3.0
      -    peerDependenciesMeta:
      -      '@opentelemetry/api':
      -        optional: true
      -      sass:
      -        optional: true
      -
      -  nise@5.1.9:
      -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
      -
      -  no-case@3.0.4:
      -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
      -
      -  node-emoji@2.1.3:
      -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
      -    engines: {node: '>=18'}
      -
      -  node-fetch@2.7.0:
      -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
      -    engines: {node: 4.x || >=6.0.0}
      -    peerDependencies:
      -      encoding: ^0.1.0
      -    peerDependenciesMeta:
      -      encoding:
      -        optional: true
      -
      -  node-forge@1.3.1:
      -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
      -    engines: {node: '>= 6.13.0'}
      -
      -  node-gyp@8.4.1:
      -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
      -    engines: {node: '>= 10.12.0'}
      -    hasBin: true
      -
      -  node-gyp@9.4.1:
      -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
      -    engines: {node: ^12.13 || ^14.13 || >=16}
      -    hasBin: true
      -
      -  node-html-parser@6.1.12:
      -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
      -
      -  node-int64@0.4.0:
      -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
      -
      -  node-releases@2.0.14:
      -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
      -
      -  nopt@5.0.0:
      -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      -
      -  nopt@6.0.0:
      -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -    hasBin: true
      -
      -  normalize-package-data@2.5.0:
      -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
      -
      -  normalize-package-data@3.0.3:
      -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
      -    engines: {node: '>=10'}
      -
      -  normalize-package-data@5.0.0:
      -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  normalize-path@3.0.0:
      -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  normalize-range@0.1.2:
      -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  normalize-registry-url@2.0.0:
      -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
      -
      -  normalize-url@6.1.0:
      -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
      -    engines: {node: '>=10'}
      -
      -  normalize-url@8.0.1:
      -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
      -    engines: {node: '>=14.16'}
      -
      -  npm-bundled@1.1.2:
      -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
      -
      -  npm-bundled@3.0.0:
      -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-install-checks@4.0.0:
      -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
      -    engines: {node: '>=10'}
      -
      -  npm-install-checks@6.3.0:
      -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-normalize-package-bin@1.0.1:
      -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
      -
      -  npm-normalize-package-bin@2.0.0:
      -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  npm-normalize-package-bin@3.0.1:
      -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-package-arg@10.1.0:
      -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-package-arg@11.0.1:
      -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
      -    engines: {node: ^16.14.0 || >=18.0.0}
      -
      -  npm-package-arg@8.1.5:
      -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
      -    engines: {node: '>=10'}
      -
      -  npm-packlist@3.0.0:
      -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  npm-packlist@7.0.4:
      -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-pick-manifest@6.1.1:
      -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
      -
      -  npm-pick-manifest@8.0.2:
      -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-registry-fetch@12.0.2:
      -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -
      -  npm-registry-fetch@14.0.5:
      -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  npm-run-path@4.0.1:
      -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
      -    engines: {node: '>=8'}
      -
      -  npmlog@5.0.1:
      -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
      -
      -  npmlog@6.0.2:
      -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  nprogress@0.2.0:
      -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
      -
      -  nth-check@2.1.1:
      -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
      -
      -  nwsapi@2.2.7:
      -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
      -
      -  object-assign@4.1.1:
      -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  object-hash@3.0.0:
      -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
      -    engines: {node: '>= 6'}
      -
      -  object-inspect@1.13.1:
      -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
      -
      -  object-is@1.1.6:
      -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
      -    engines: {node: '>= 0.4'}
      -
      -  object-keys@1.1.1:
      -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.assign@4.1.5:
      -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.entries@1.1.8:
      -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.fromentries@2.0.8:
      -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.groupby@1.0.3:
      -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.hasown@1.1.4:
      -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
      -    engines: {node: '>= 0.4'}
      -
      -  object.values@1.2.0:
      -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  obuf@1.1.2:
      -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
      -
      -  on-finished@2.4.1:
      -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
      -    engines: {node: '>= 0.8'}
      -
      -  on-headers@1.0.2:
      -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
      -    engines: {node: '>= 0.8'}
      -
      -  once@1.4.0:
      -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
      -
      -  one-time@1.0.0:
      -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
      -
      -  onetime@5.1.2:
      -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
      -    engines: {node: '>=6'}
      -
      -  open@10.1.0:
      -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
      -    engines: {node: '>=18'}
      -
      -  open@8.4.2:
      -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
      -    engines: {node: '>=12'}
      -
      -  opener@1.5.2:
      -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
      -    hasBin: true
      -
      -  optionator@0.9.3:
      -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  ora@5.4.1:
      -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
      -    engines: {node: '>=10'}
      -
      -  os-tmpdir@1.0.2:
      -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
      -    engines: {node: '>=0.10.0'}
      -
      -  p-cancelable@3.0.0:
      -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
      -    engines: {node: '>=12.20'}
      -
      -  p-defer@1.0.0:
      -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
      -    engines: {node: '>=4'}
      -
      -  p-filter@2.1.0:
      -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
      -    engines: {node: '>=8'}
      -
      -  p-finally@1.0.0:
      -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
      -    engines: {node: '>=4'}
      -
      -  p-limit@2.3.0:
      -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
      -    engines: {node: '>=6'}
      -
      -  p-limit@3.1.0:
      -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
      -    engines: {node: '>=10'}
      -
      -  p-limit@4.0.0:
      -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  p-locate@3.0.0:
      -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
      -    engines: {node: '>=6'}
      -
      -  p-locate@4.1.0:
      -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
      -    engines: {node: '>=8'}
      -
      -  p-locate@5.0.0:
      -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
      -    engines: {node: '>=10'}
      -
      -  p-locate@6.0.0:
      -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  p-map@2.1.0:
      -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
      -    engines: {node: '>=6'}
      -
      -  p-map@4.0.0:
      -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
      -    engines: {node: '>=10'}
      -
      -  p-queue@6.6.2:
      -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
      -    engines: {node: '>=8'}
      -
      -  p-retry@4.6.2:
      -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
      -    engines: {node: '>=8'}
      -
      -  p-retry@6.2.0:
      -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
      -    engines: {node: '>=16.17'}
      -
      -  p-timeout@3.2.0:
      -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
      -    engines: {node: '>=8'}
      -
      -  p-transform@1.3.0:
      -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
      -    engines: {node: '>=12.10.0'}
      -
      -  p-try@2.2.0:
      -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
      -    engines: {node: '>=6'}
      -
      -  package-json@8.1.1:
      -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
      -    engines: {node: '>=14.16'}
      -
      -  pacote@12.0.3:
      -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -    hasBin: true
      -
      -  pacote@15.2.0:
      -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      -
      -  pako@1.0.11:
      -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
      -
      -  param-case@3.0.4:
      -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
      -
      -  parent-module@1.0.1:
      -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
      -    engines: {node: '>=6'}
      -
      -  parse-conflict-json@2.0.2:
      -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  parse-entities@4.0.1:
      -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
      -
      -  parse-json@5.2.0:
      -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
      -    engines: {node: '>=8'}
      -
      -  parse-ms@2.1.0:
      -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
      -    engines: {node: '>=6'}
      -
      -  parse-numeric-range@1.3.0:
      -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
      -
      -  parse-srcset@1.0.2:
      -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
      -
      -  parse5-htmlparser2-tree-adapter@7.0.0:
      -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
      -
      -  parse5@7.1.2:
      -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
      -
      -  parseurl@1.3.3:
      -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
      -    engines: {node: '>= 0.8'}
      -
      -  pascal-case@3.1.2:
      -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
      -
      -  path-absolute@1.0.1:
      -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
      -    engines: {node: '>=4'}
      -
      -  path-exists@3.0.0:
      -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
      -    engines: {node: '>=4'}
      -
      -  path-exists@4.0.0:
      -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
      -    engines: {node: '>=8'}
      -
      -  path-exists@5.0.0:
      -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  path-is-absolute@1.0.1:
      -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  path-is-inside@1.0.2:
      -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
      -
      -  path-key@3.1.1:
      -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
      -    engines: {node: '>=8'}
      -
      -  path-name@1.0.0:
      -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
      -
      -  path-parse@1.0.7:
      -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
      -
      -  path-scurry@1.10.1:
      -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -
      -  path-temp@2.1.0:
      -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
      -    engines: {node: '>=8.15'}
      -
      -  path-to-regexp@0.1.7:
      -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
      -
      -  path-to-regexp@1.8.0:
      -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
      -
      -  path-to-regexp@2.2.1:
      -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
      -
      -  path-to-regexp@6.2.1:
      -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
      -
      -  path-type@4.0.0:
      -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
      -    engines: {node: '>=8'}
      -
      -  pathval@2.0.0:
      -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
      -    engines: {node: '>= 14.16'}
      -
      -  periscopic@3.1.0:
      -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
      -
      -  picocolors@1.0.0:
      -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
      -
      -  picomatch@2.3.1:
      -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
      -    engines: {node: '>=8.6'}
      -
      -  pify@2.3.0:
      -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
      -    engines: {node: '>=0.10.0'}
      -
      -  pify@4.0.1:
      -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
      -    engines: {node: '>=6'}
      -
      -  pirates@4.0.6:
      -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
      -    engines: {node: '>= 6'}
      -
      -  pkg-dir@4.2.0:
      -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
      -    engines: {node: '>=8'}
      -
      -  pkg-dir@7.0.0:
      -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
      -    engines: {node: '>=14.16'}
      -
      -  pkg-up@3.1.0:
      -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
      -    engines: {node: '>=8'}
      -
      -  pluralize@8.0.0:
      -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
      -    engines: {node: '>=4'}
      -
      -  portfinder@1.0.32:
      -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
      -    engines: {node: '>= 0.12.0'}
      -
      -  possible-typed-array-names@1.0.0:
      -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
      -    engines: {node: '>= 0.4'}
      -
      -  postcss-calc@8.2.4:
      -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
      -    peerDependencies:
      -      postcss: ^8.2.2
      -
      -  postcss-colormin@5.3.1:
      -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-convert-values@5.1.3:
      -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-discard-comments@5.1.2:
      -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-discard-duplicates@5.1.0:
      -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-discard-empty@5.1.1:
      -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-discard-overridden@5.1.0:
      -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-discard-unused@5.1.0:
      -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-import@15.1.0:
      -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
      -    engines: {node: '>=14.0.0'}
      -    peerDependencies:
      -      postcss: ^8.0.0
      -
      -  postcss-js@4.0.1:
      -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
      -    engines: {node: ^12 || ^14 || >= 16}
      -    peerDependencies:
      -      postcss: ^8.4.21
      -
      -  postcss-load-config@4.0.2:
      -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
      -    engines: {node: '>= 14'}
      -    peerDependencies:
      -      postcss: '>=8.0.9'
      -      ts-node: '>=9.0.0'
      -    peerDependenciesMeta:
      -      postcss:
      -        optional: true
      -      ts-node:
      -        optional: true
      -
      -  postcss-loader@7.3.4:
      -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      postcss: ^7.0.0 || ^8.0.1
      -      webpack: ^5.0.0
      -
      -  postcss-loader@8.1.1:
      -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
      -    engines: {node: '>= 18.12.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      postcss: ^7.0.0 || ^8.0.1
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      -
      -  postcss-merge-idents@5.1.1:
      -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-merge-longhand@5.1.7:
      -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-merge-rules@5.1.4:
      -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-minify-font-values@5.1.0:
      -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-minify-gradients@5.1.1:
      -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-minify-params@5.1.4:
      -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-minify-selectors@5.2.1:
      -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-modules-extract-imports@3.0.0:
      -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  postcss-modules-local-by-default@4.0.4:
      -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  postcss-modules-scope@3.1.1:
      -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  postcss-modules-values@4.0.0:
      -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      -
      -  postcss-nested@6.0.1:
      -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
      -    engines: {node: '>=12.0'}
      -    peerDependencies:
      -      postcss: ^8.2.14
      -
      -  postcss-normalize-charset@5.1.0:
      -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-display-values@5.1.0:
      -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-positions@5.1.1:
      -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-repeat-style@5.1.1:
      -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-string@5.1.0:
      -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-timing-functions@5.1.0:
      -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-unicode@5.1.1:
      -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-url@5.1.0:
      -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-normalize-whitespace@5.1.1:
      -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-ordered-values@5.1.3:
      -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-reduce-idents@5.2.0:
      -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-reduce-initial@5.1.2:
      -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-reduce-transforms@5.1.0:
      -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-selector-parser@6.0.16:
      -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
      -    engines: {node: '>=4'}
      -
      -  postcss-sort-media-queries@4.4.1:
      -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
      -    engines: {node: '>=10.0.0'}
      -    peerDependencies:
      -      postcss: ^8.4.16
      -
      -  postcss-svgo@5.1.0:
      -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-unique-selectors@5.1.1:
      -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss-value-parser@4.2.0:
      -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
      -
      -  postcss-zindex@5.1.0:
      -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  postcss@8.4.31:
      -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
      -    engines: {node: ^10 || ^12 || >=14}
      -
      -  postcss@8.4.38:
      -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
      -    engines: {node: ^10 || ^12 || >=14}
      -
      -  preferred-pm@3.1.3:
      -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
      -    engines: {node: '>=10'}
      -
      -  prelude-ls@1.2.1:
      -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  prettier-plugin-tailwindcss@0.5.12:
      -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
      -    engines: {node: '>=14.21.3'}
      -    peerDependencies:
      -      '@ianvs/prettier-plugin-sort-imports': '*'
      -      '@prettier/plugin-pug': '*'
      -      '@shopify/prettier-plugin-liquid': '*'
      -      '@trivago/prettier-plugin-sort-imports': '*'
      -      prettier: ^3.0
      -      prettier-plugin-astro: '*'
      -      prettier-plugin-css-order: '*'
      -      prettier-plugin-import-sort: '*'
      -      prettier-plugin-jsdoc: '*'
      -      prettier-plugin-marko: '*'
      -      prettier-plugin-organize-attributes: '*'
      -      prettier-plugin-organize-imports: '*'
      -      prettier-plugin-sort-imports: '*'
      -      prettier-plugin-style-order: '*'
      -      prettier-plugin-svelte: '*'
      -      prettier-plugin-twig-melody: '*'
      -    peerDependenciesMeta:
      -      '@ianvs/prettier-plugin-sort-imports':
      -        optional: true
      -      '@prettier/plugin-pug':
      -        optional: true
      -      '@shopify/prettier-plugin-liquid':
      -        optional: true
      -      '@trivago/prettier-plugin-sort-imports':
      -        optional: true
      -      prettier-plugin-astro:
      -        optional: true
      -      prettier-plugin-css-order:
      -        optional: true
      -      prettier-plugin-import-sort:
      -        optional: true
      -      prettier-plugin-jsdoc:
      -        optional: true
      -      prettier-plugin-marko:
      -        optional: true
      -      prettier-plugin-organize-attributes:
      -        optional: true
      -      prettier-plugin-organize-imports:
      -        optional: true
      -      prettier-plugin-sort-imports:
      -        optional: true
      -      prettier-plugin-style-order:
      -        optional: true
      -      prettier-plugin-svelte:
      -        optional: true
      -      prettier-plugin-twig-melody:
      -        optional: true
      -
      -  prettier@3.2.5:
      -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
      -    engines: {node: '>=14'}
      -    hasBin: true
      -
      -  pretty-bytes@5.6.0:
      -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
      -    engines: {node: '>=6'}
      -
      -  pretty-error@4.0.0:
      -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
      -
      -  pretty-format@27.5.1:
      -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
      -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
      -
      -  pretty-format@29.7.0:
      -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -
      -  pretty-ms@7.0.1:
      -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
      -    engines: {node: '>=10'}
      -
      -  pretty-time@1.1.0:
      -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
      -    engines: {node: '>=4'}
      -
      -  print-diff@1.0.0:
      -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
      -    engines: {node: '>=8.3'}
      -
      -  printable-characters@1.0.42:
      -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
      -
      -  prism-react-renderer@2.3.1:
      -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
      -    peerDependencies:
      -      react: '>=16.0.0 || 18'
      -
      -  prismjs@1.29.0:
      -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
      -    engines: {node: '>=6'}
      -
      -  proc-log@1.0.0:
      -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
      -
      -  proc-log@3.0.0:
      -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  process-nextick-args@2.0.1:
      -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
      -
      -  process@0.11.10:
      -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
      -    engines: {node: '>= 0.6.0'}
      -
      -  promise-all-reject-late@1.0.1:
      -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
      -
      -  promise-call-limit@1.0.2:
      -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
      -
      -  promise-inflight@1.0.1:
      -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
      -    peerDependencies:
      -      bluebird: '*'
      -    peerDependenciesMeta:
      -      bluebird:
      -        optional: true
      -
      -  promise-retry@2.0.1:
      -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
      -    engines: {node: '>=10'}
      -
      -  prompts@2.4.2:
      -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
      -    engines: {node: '>= 6'}
      -
      -  prop-types@15.8.1:
      -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
      -
      -  property-information@6.4.1:
      -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
      -
      -  proto-list@1.2.4:
      -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
      -
      -  proxy-addr@2.0.7:
      -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
      -    engines: {node: '>= 0.10'}
      -
      -  psl@1.9.0:
      -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
      -
      -  punycode@1.4.1:
      -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
      -
      -  punycode@2.3.1:
      -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
      -    engines: {node: '>=6'}
      -
      -  pupa@3.1.0:
      -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
      -    engines: {node: '>=12.20'}
      -
      -  pure-rand@6.1.0:
      -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
      -
      -  qs@6.11.0:
      -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
      -    engines: {node: '>=0.6'}
      -
      -  qs@6.12.0:
      -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
      -    engines: {node: '>=0.6'}
      -
      -  querystringify@2.2.0:
      -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
      -
      -  queue-microtask@1.2.3:
      -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
      -
      -  queue@6.0.2:
      -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
      -
      -  quick-lru@4.0.1:
      -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
      -    engines: {node: '>=8'}
      -
      -  quick-lru@5.1.1:
      -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
      -    engines: {node: '>=10'}
      -
      -  railroad-diagrams@1.0.0:
      -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
      -
      -  rambda@7.5.0:
      -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
      -
      -  ramda@0.29.1:
      -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
      -
      -  randexp@0.4.6:
      -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
      -    engines: {node: '>=0.12'}
      -
      -  randombytes@2.1.0:
      -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
      -
      -  range-parser@1.2.0:
      -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
      -    engines: {node: '>= 0.6'}
      -
      -  range-parser@1.2.1:
      -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
      -    engines: {node: '>= 0.6'}
      -
      -  raw-body@2.5.2:
      -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
      -    engines: {node: '>= 0.8'}
      -
      -  rc@1.2.8:
      -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
      -    hasBin: true
      -
      -  react-dev-utils@12.0.1:
      -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=2.7'
      -      webpack: '>=4'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      -
      -  react-dom@18.2.0:
      -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
      -    peerDependencies:
      -      react: ^18.2.0 || 18
      -
      -  react-error-overlay@6.0.11:
      -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
      -
      -  react-fast-compare@3.2.2:
      -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
      -
      -  react-helmet-async@1.3.0:
      -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
      -    peerDependencies:
      -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -
      -  react-helmet-async@2.0.4:
      -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
      -    peerDependencies:
      -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -
      -  react-is@16.13.1:
      -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
      -
      -  react-is@17.0.2:
      -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
      -
      -  react-is@18.2.0:
      -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
      -
      -  react-json-view-lite@1.3.0:
      -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
      -
      -  react-loadable-ssr-addon-v5-slorber@1.0.1:
      -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      react-loadable: '*'
      -      webpack: '>=4.41.1 || 5.x'
      -
      -  react-player@2.15.1:
      -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
      -    peerDependencies:
      -      react: '>=16.6.0 || 18'
      -
      -  react-router-config@5.1.1:
      -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      -      react-router: '>=5'
      -
      -  react-router-dom@5.3.4:
      -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      -
      -  react-router@5.3.4:
      -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      -
      -  react-string-replace@1.1.1:
      -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
      -    engines: {node: '>=0.12.0'}
      -
      -  react-universal-interface@0.6.2:
      -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
      -    peerDependencies:
      -      react: '*'
      -      tslib: '*'
      -
      -  react-use@17.5.0:
      -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      -
      -  react@18.2.0:
      -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
      -    engines: {node: '>=0.10.0'}
      -
      -  read-cache@1.0.0:
      -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
      -
      -  read-cmd-shim@3.0.1:
      -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  read-ini-file@4.0.0:
      -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
      -    engines: {node: '>=14.6'}
      -
      -  read-package-json-fast@2.0.3:
      -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
      -    engines: {node: '>=10'}
      -
      -  read-package-json-fast@3.0.2:
      -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  read-package-json@6.0.4:
      -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  read-pkg-up@7.0.1:
      -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
      -    engines: {node: '>=8'}
      -
      -  read-pkg-up@8.0.0:
      -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
      -    engines: {node: '>=12'}
      -
      -  read-pkg@5.2.0:
      -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
      -    engines: {node: '>=8'}
      -
      -  read-pkg@6.0.0:
      -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
      -    engines: {node: '>=12'}
      -
      -  read-yaml-file@2.1.0:
      -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
      -    engines: {node: '>=10.13'}
      -
      -  readable-stream@2.3.8:
      -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
      -
      -  readable-stream@3.6.2:
      -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
      -    engines: {node: '>= 6'}
      -
      -  readable-stream@4.5.2:
      -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -
      -  readdir-scoped-modules@1.1.0:
      -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
      -    deprecated: This functionality has been moved to @npmcli/fs
      -
      -  readdirp@3.6.0:
      -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
      -    engines: {node: '>=8.10.0'}
      -
      -  reading-time@1.5.0:
      -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
      -
      -  realpath-missing@1.1.0:
      -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
      -    engines: {node: '>=10'}
      -
      -  rechoir@0.6.2:
      -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
      -    engines: {node: '>= 0.10'}
      -
      -  rechoir@0.8.0:
      -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
      -    engines: {node: '>= 10.13.0'}
      -
      -  recursive-readdir@2.2.3:
      -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
      -    engines: {node: '>=6.0.0'}
      -
      -  redent@4.0.0:
      -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
      -    engines: {node: '>=12'}
      -
      -  reflect.getprototypeof@1.0.6:
      -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
      -    engines: {node: '>= 0.4'}
      -
      -  regenerate-unicode-properties@10.1.1:
      -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
      -    engines: {node: '>=4'}
      -
      -  regenerate@1.4.2:
      -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
      -
      -  regenerator-runtime@0.14.1:
      -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
      -
      -  regenerator-transform@0.15.2:
      -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
      -
      -  regexp-tree@0.1.27:
      -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
      -    hasBin: true
      -
      -  regexp.prototype.flags@1.5.2:
      -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
      -    engines: {node: '>= 0.4'}
      -
      -  regexpu-core@5.3.2:
      -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
      -    engines: {node: '>=4'}
      -
      -  registry-auth-token@5.0.2:
      -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
      -    engines: {node: '>=14'}
      -
      -  registry-url@6.0.1:
      -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
      -    engines: {node: '>=12'}
      -
      -  regjsparser@0.10.0:
      -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
      -    hasBin: true
      -
      -  regjsparser@0.9.1:
      -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
      -    hasBin: true
      -
      -  rehype-raw@7.0.0:
      -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
      -
      -  relateurl@0.2.7:
      -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
      -    engines: {node: '>= 0.10'}
      -
      -  remark-directive@3.0.0:
      -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
      -
      -  remark-emoji@4.0.1:
      -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  remark-frontmatter@5.0.0:
      -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
      -
      -  remark-gfm@4.0.0:
      -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
      -
      -  remark-mdx@3.0.1:
      -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
      -
      -  remark-parse@11.0.0:
      -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
      -
      -  remark-rehype@11.1.0:
      -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
      -
      -  remark-stringify@11.0.0:
      -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
      -
      -  remove-trailing-separator@1.1.0:
      -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
      -
      -  renderkid@3.0.0:
      -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
      -
      -  replace-ext@1.0.1:
      -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
      -    engines: {node: '>= 0.10'}
      -
      -  require-directory@2.1.1:
      -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
      -    engines: {node: '>=0.10.0'}
      -
      -  require-from-string@2.0.2:
      -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
      -    engines: {node: '>=0.10.0'}
      -
      -  require-like@0.1.2:
      -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
      -
      -  requires-port@1.0.0:
      -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
      -
      -  resize-observer-polyfill@1.5.1:
      -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
      -
      -  resolve-alpn@1.2.1:
      -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
      -
      -  resolve-cwd@3.0.0:
      -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
      -    engines: {node: '>=8'}
      -
      -  resolve-from@4.0.0:
      -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
      -    engines: {node: '>=4'}
      -
      -  resolve-from@5.0.0:
      -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
      -    engines: {node: '>=8'}
      -
      -  resolve-pathname@3.0.0:
      -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
      -
      -  resolve-pkg-maps@1.0.0:
      -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
      -
      -  resolve.exports@2.0.2:
      -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
      -    engines: {node: '>=10'}
      -
      -  resolve@1.22.8:
      -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
      -    hasBin: true
      -
      -  resolve@2.0.0-next.5:
      -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
      -    hasBin: true
      -
      -  responselike@3.0.0:
      -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
      -    engines: {node: '>=14.16'}
      -
      -  restore-cursor@3.1.0:
      -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
      -    engines: {node: '>=8'}
      -
      -  ret@0.1.15:
      -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
      -    engines: {node: '>=0.12'}
      -
      -  retry@0.12.0:
      -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
      -    engines: {node: '>= 4'}
      -
      -  retry@0.13.1:
      -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
      -    engines: {node: '>= 4'}
      -
      -  reusify@1.0.4:
      -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
      -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
      -
      -  rfc4648@1.5.3:
      -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
      -
      -  right-pad@1.0.1:
      -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
      -    engines: {node: '>= 0.10'}
      -
      -  rimraf@3.0.2:
      -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
      -    hasBin: true
      -
      -  rimraf@5.0.5:
      -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
      -    engines: {node: '>=14'}
      -    hasBin: true
      -
      -  rtl-css-js@1.16.1:
      -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
      -
      -  rtl-detect@1.1.2:
      -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
      -
      -  rtlcss@4.1.1:
      -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
      -    engines: {node: '>=12.0.0'}
      -    hasBin: true
      -
      -  run-applescript@7.0.0:
      -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
      -    engines: {node: '>=18'}
      -
      -  run-async@2.4.1:
      -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
      -    engines: {node: '>=0.12.0'}
      -
      -  run-parallel@1.2.0:
      -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
      -
      -  rxjs@7.8.1:
      -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
      -
      -  safe-array-concat@1.1.2:
      -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
      -    engines: {node: '>=0.4'}
      -
      -  safe-buffer@5.1.2:
      -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
      -
      -  safe-buffer@5.2.1:
      -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
      -
      -  safe-execa@0.1.2:
      -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
      -    engines: {node: '>=12'}
      -
      -  safe-regex-test@1.0.3:
      -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
      -    engines: {node: '>= 0.4'}
      -
      -  safe-stable-stringify@2.4.3:
      -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
      -    engines: {node: '>=10'}
      -
      -  safer-buffer@2.1.2:
      -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
      -
      -  sanitize-html@2.13.0:
      -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
      -
      -  sax@1.3.0:
      -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
      -
      -  saxes@6.0.0:
      -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
      -    engines: {node: '>=v12.22.7'}
      -
      -  sbd@1.0.19:
      -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
      -
      -  scheduler@0.23.0:
      -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
      -
      -  schema-utils@2.7.0:
      -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
      -    engines: {node: '>= 8.9.0'}
      -
      -  schema-utils@3.3.0:
      -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
      -    engines: {node: '>= 10.13.0'}
      -
      -  schema-utils@4.2.0:
      -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
      -    engines: {node: '>= 12.13.0'}
      -
      -  scoped-regex@2.1.0:
      -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
      -    engines: {node: '>=8'}
      -
      -  screenfull@5.2.0:
      -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  search-insights@2.13.0:
      -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
      -
      -  section-matter@1.0.0:
      -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
      -    engines: {node: '>=4'}
      -
      -  secure-compare@3.0.1:
      -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
      -
      -  select-hose@2.0.0:
      -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
      -
      -  selfsigned@2.4.1:
      -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
      -    engines: {node: '>=10'}
      -
      -  semver-diff@4.0.0:
      -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
      -    engines: {node: '>=12'}
      -
      -  semver@5.7.2:
      -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
      -    hasBin: true
      -
      -  semver@6.3.1:
      -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
      -    hasBin: true
      -
      -  semver@7.5.4:
      -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  semver@7.6.0:
      -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  send@0.18.0:
      -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  serialize-javascript@6.0.0:
      -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
      -
      -  serialize-javascript@6.0.2:
      -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
      -
      -  serve-handler@6.1.5:
      -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
      -
      -  serve-index@1.9.1:
      -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  serve-static@1.15.0:
      -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  set-blocking@2.0.0:
      -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
      -
      -  set-function-length@1.2.2:
      -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
      -    engines: {node: '>= 0.4'}
      -
      -  set-function-name@2.0.2:
      -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  set-harmonic-interval@1.0.1:
      -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
      -    engines: {node: '>=6.9'}
      -
      -  setimmediate@1.0.5:
      -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
      -
      -  setprototypeof@1.1.0:
      -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
      -
      -  setprototypeof@1.2.0:
      -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
      -
      -  shallow-clone@3.0.1:
      -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
      -    engines: {node: '>=8'}
      -
      -  shallowequal@1.1.0:
      -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
      -
      -  shebang-command@2.0.0:
      -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
      -    engines: {node: '>=8'}
      -
      -  shebang-regex@3.0.0:
      -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
      -    engines: {node: '>=8'}
      -
      -  shell-quote@1.8.1:
      -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
      -
      -  shelljs@0.8.5:
      -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      -
      -  side-channel@1.0.6:
      -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
      -    engines: {node: '>= 0.4'}
      -
      -  signal-exit@3.0.7:
      -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
      -
      -  signal-exit@4.1.0:
      -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
      -    engines: {node: '>=14'}
      -
      -  sigstore@1.9.0:
      -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      -
      -  simple-swizzle@0.2.2:
      -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
      -
      -  sinon@17.0.1:
      -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
      -
      -  sirv@2.0.4:
      -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
      -    engines: {node: '>= 10'}
      -
      -  sisteransi@1.0.5:
      -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
      -
      -  sitemap@7.1.1:
      -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
      -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
      -    hasBin: true
      -
      -  skin-tone@2.0.0:
      -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
      -    engines: {node: '>=8'}
      -
      -  slash@3.0.0:
      -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
      -    engines: {node: '>=8'}
      -
      -  slash@4.0.0:
      -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
      -    engines: {node: '>=12'}
      -
      -  smart-buffer@4.2.0:
      -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
      -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
      -
      -  snake-case@3.0.4:
      -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
      -
      -  sockjs@0.3.24:
      -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
      -
      -  socks-proxy-agent@6.1.1:
      -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
      -    engines: {node: '>= 10'}
      -
      -  socks-proxy-agent@6.2.1:
      -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
      -    engines: {node: '>= 10'}
      -
      -  socks-proxy-agent@7.0.0:
      -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
      -    engines: {node: '>= 10'}
      -
      -  socks@2.8.1:
      -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
      -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
      -
      -  sort-css-media-queries@2.1.0:
      -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
      -    engines: {node: '>= 6.3.0'}
      -
      -  sort-keys@4.2.0:
      -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
      -    engines: {node: '>=8'}
      -
      -  sort-keys@5.0.0:
      -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
      -    engines: {node: '>=12'}
      -
      -  source-map-js@1.2.0:
      -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
      -    engines: {node: '>=0.10.0'}
      -
      -  source-map-support@0.5.13:
      -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
      -
      -  source-map-support@0.5.21:
      -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
      -
      -  source-map-url@0.4.1:
      -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
      -    deprecated: See https://github.com/lydell/source-map-url#deprecated
      -
      -  source-map@0.5.6:
      -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
      -    engines: {node: '>=0.10.0'}
      -
      -  source-map@0.6.1:
      -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
      -    engines: {node: '>=0.10.0'}
      -
      -  source-map@0.7.4:
      -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
      -    engines: {node: '>= 8'}
      -
      -  space-separated-tokens@2.0.2:
      -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
      -
      -  spdx-correct@3.2.0:
      -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
      -
      -  spdx-exceptions@2.5.0:
      -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
      -
      -  spdx-expression-parse@3.0.1:
      -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
      -
      -  spdx-license-ids@3.0.17:
      -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
      -
      -  spdy-transport@3.0.0:
      -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
      -
      -  spdy@4.0.2:
      -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
      -    engines: {node: '>=6.0.0'}
      -
      -  split2@3.2.2:
      -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
      -
      -  sprintf-js@1.0.3:
      -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
      -
      -  sprintf-js@1.1.3:
      -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
      -
      -  srcset@4.0.0:
      -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
      -    engines: {node: '>=12'}
      -
      -  ssri@10.0.5:
      -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  ssri@8.0.1:
      -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
      -    engines: {node: '>= 8'}
      -
      -  ssri@9.0.1:
      -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  stable@0.1.8:
      -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
      -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
      -
      -  stack-generator@2.0.10:
      -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
      -
      -  stack-trace@0.0.10:
      -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
      -
      -  stack-utils@2.0.6:
      -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
      -    engines: {node: '>=10'}
      -
      -  stackframe@1.3.4:
      -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
      -
      -  stacktrace-gps@3.1.2:
      -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
      -
      -  stacktrace-js@2.0.2:
      -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
      -
      -  stacktracey@2.1.8:
      -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
      -
      -  statuses@1.5.0:
      -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
      -    engines: {node: '>= 0.6'}
      -
      -  statuses@2.0.1:
      -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
      -    engines: {node: '>= 0.8'}
      -
      -  std-env@3.7.0:
      -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
      -
      -  stop-iteration-iterator@1.0.0:
      -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  streamsearch@1.1.0:
      -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
      -    engines: {node: '>=10.0.0'}
      -
      -  string-length@4.0.2:
      -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
      -    engines: {node: '>=10'}
      -
      -  string-width@4.2.3:
      -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
      -    engines: {node: '>=8'}
      -
      -  string-width@5.1.2:
      -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
      -    engines: {node: '>=12'}
      -
      -  string.prototype.matchall@4.0.11:
      -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
      -    engines: {node: '>= 0.4'}
      -
      -  string.prototype.trim@1.2.9:
      -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
      -    engines: {node: '>= 0.4'}
      -
      -  string.prototype.trimend@1.0.8:
      -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
      -
      -  string.prototype.trimstart@1.0.8:
      -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
      -    engines: {node: '>= 0.4'}
      -
      -  string_decoder@1.1.1:
      -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
      -
      -  string_decoder@1.3.0:
      -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
      -
      -  stringify-entities@4.0.3:
      -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
      -
      -  stringify-object@3.3.0:
      -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
      -    engines: {node: '>=4'}
      -
      -  strip-ansi@6.0.1:
      -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
      -    engines: {node: '>=8'}
      -
      -  strip-ansi@7.1.0:
      -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
      -    engines: {node: '>=12'}
      -
      -  strip-bom-buf@1.0.0:
      -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
      -    engines: {node: '>=4'}
      -
      -  strip-bom-stream@2.0.0:
      -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
      -    engines: {node: '>=0.10.0'}
      -
      -  strip-bom-string@1.0.0:
      -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
      -    engines: {node: '>=0.10.0'}
      -
      -  strip-bom@2.0.0:
      -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
      -    engines: {node: '>=0.10.0'}
      -
      -  strip-bom@3.0.0:
      -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
      -    engines: {node: '>=4'}
      -
      -  strip-bom@4.0.0:
      -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
      -    engines: {node: '>=8'}
      -
      -  strip-comments-strings@1.2.0:
      -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
      -
      -  strip-final-newline@2.0.0:
      -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
      -    engines: {node: '>=6'}
      -
      -  strip-indent@3.0.0:
      -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
      -    engines: {node: '>=8'}
      -
      -  strip-indent@4.0.0:
      -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
      -    engines: {node: '>=12'}
      -
      -  strip-json-comments@2.0.1:
      -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
      -    engines: {node: '>=0.10.0'}
      -
      -  strip-json-comments@3.1.1:
      -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
      -    engines: {node: '>=8'}
      -
      -  strnum@1.0.5:
      -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
      -
      -  style-loader@3.3.4:
      -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      -
      -  style-to-object@0.4.4:
      -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
      -
      -  style-to-object@1.0.5:
      -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
      -
      -  styled-jsx@5.1.1:
      -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
      -    engines: {node: '>= 12.0.0'}
      -    peerDependencies:
      -      '@babel/core': '*'
      -      babel-plugin-macros: '*'
      -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
      -    peerDependenciesMeta:
      -      '@babel/core':
      -        optional: true
      -      babel-plugin-macros:
      -        optional: true
      -
      -  stylehacks@5.1.1:
      -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      -
      -  stylis@4.3.1:
      -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
      -
      -  sucrase@3.35.0:
      -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -    hasBin: true
      -
      -  supports-color@5.5.0:
      -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
      -    engines: {node: '>=4'}
      -
      -  supports-color@7.2.0:
      -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
      -    engines: {node: '>=8'}
      -
      -  supports-color@8.1.1:
      -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
      -    engines: {node: '>=10'}
      -
      -  supports-preserve-symlinks-flag@1.0.0:
      -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
      -    engines: {node: '>= 0.4'}
      -
      -  svg-parser@2.0.4:
      -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
      -
      -  svgo@2.8.0:
      -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
      -    engines: {node: '>=10.13.0'}
      -    hasBin: true
      -
      -  svgo@3.2.0:
      -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
      -    engines: {node: '>=14.0.0'}
      -    hasBin: true
      -
      -  symbol-tree@3.2.4:
      -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
      -
      -  syncpack@12.3.0:
      -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
      -    engines: {node: '>=16'}
      -    hasBin: true
      -
      -  tail@2.2.6:
      -    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
      -    engines: {node: '>= 6.0.0'}
      -
      -  tailwindcss@3.4.1:
      -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
      -    engines: {node: '>=14.0.0'}
      -    hasBin: true
      -
      -  tapable@1.1.3:
      -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
      -    engines: {node: '>=6'}
      -
      -  tapable@2.2.1:
      -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
      -    engines: {node: '>=6'}
      -
      -  tar@6.2.1:
      -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
      -    engines: {node: '>=10'}
      -
      -  terser-webpack-plugin@5.3.10:
      -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      '@swc/core': '*'
      -      esbuild: '*'
      -      uglify-js: '*'
      -      webpack: ^5.1.0
      -    peerDependenciesMeta:
      -      '@swc/core':
      -        optional: true
      -      esbuild:
      -        optional: true
      -      uglify-js:
      -        optional: true
      -
      -  terser@5.29.2:
      -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      -
      -  test-exclude@6.0.0:
      -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
      -    engines: {node: '>=8'}
      -
      -  text-hex@1.0.0:
      -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
      -
      -  text-table@0.2.0:
      -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
      -
      -  textextensions@5.16.0:
      -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
      -    engines: {node: '>=0.8'}
      -
      -  thenify-all@1.6.0:
      -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
      -    engines: {node: '>=0.8'}
      -
      -  thenify@3.3.1:
      -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
      -
      -  throttle-debounce@3.0.1:
      -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
      -    engines: {node: '>=10'}
      -
      -  through2@4.0.2:
      -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
      -
      -  through@2.3.8:
      -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
      -
      -  thunky@1.1.0:
      -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
      -
      -  tightrope@0.1.0:
      -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
      -    engines: {node: '>=14'}
      -
      -  tiny-invariant@1.3.3:
      -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
      -
      -  tiny-warning@1.0.3:
      -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
      -
      -  tinycolor2@1.6.0:
      -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
      -
      -  tmp@0.0.33:
      -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
      -    engines: {node: '>=0.6.0'}
      -
      -  tmpl@1.0.5:
      -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
      -
      -  to-fast-properties@2.0.0:
      -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
      -    engines: {node: '>=4'}
      -
      -  to-regex-range@5.0.1:
      -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
      -    engines: {node: '>=8.0'}
      -
      -  toggle-selection@1.0.6:
      -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
      -
      -  toidentifier@1.0.1:
      -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
      -    engines: {node: '>=0.6'}
      -
      -  totalist@3.0.1:
      -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
      -    engines: {node: '>=6'}
      -
      -  tough-cookie@4.1.3:
      -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
      -    engines: {node: '>=6'}
      -
      -  tr46@0.0.3:
      -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
      -
      -  tr46@3.0.0:
      -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
      -    engines: {node: '>=12'}
      -
      -  treeverse@1.0.4:
      -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
      -
      -  trie-search@2.0.0:
      -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
      -
      -  trim-lines@3.0.1:
      -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
      -
      -  trim-newlines@4.1.1:
      -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
      -    engines: {node: '>=12'}
      -
      -  triple-beam@1.4.1:
      -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
      -    engines: {node: '>= 14.0.0'}
      -
      -  trough@2.2.0:
      -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
      -
      -  ts-api-utils@1.3.0:
      -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
      -    engines: {node: '>=16'}
      -    peerDependencies:
      -      typescript: '>=4.2.0'
      -
      -  ts-easing@0.2.0:
      -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
      -
      -  ts-interface-checker@0.1.13:
      -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
      -
      -  ts-jest@29.1.2:
      -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
      -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      '@babel/core': '>=7.0.0-beta.0 <8'
      -      '@jest/types': ^29.0.0
      -      babel-jest: ^29.0.0
      -      esbuild: '*'
      -      jest: ^29.0.0
      -      typescript: '>=4.3 <6'
      -    peerDependenciesMeta:
      -      '@babel/core':
      -        optional: true
      -      '@jest/types':
      -        optional: true
      -      babel-jest:
      -        optional: true
      -      esbuild:
      -        optional: true
      -
      -  ts-loader@9.5.1:
      -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
      -    engines: {node: '>=12.0.0'}
      -    peerDependencies:
      -      typescript: '*'
      -      webpack: ^5.0.0
      -
      -  ts-node@10.9.2:
      -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
      -    hasBin: true
      -    peerDependencies:
      -      '@swc/core': '>=1.2.50'
      -      '@swc/wasm': '>=1.2.50'
      -      '@types/node': '*'
      -      typescript: '>=2.7'
      -    peerDependenciesMeta:
      -      '@swc/core':
      -        optional: true
      -      '@swc/wasm':
      -        optional: true
      -
      -  ts-toolbelt@9.6.0:
      -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
      -
      -  tsconfig-paths@3.15.0:
      -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
      -
      -  tslib@2.6.2:
      -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
      -
      -  tuf-js@1.1.7:
      -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  type-check@0.4.0:
      -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  type-detect@4.0.8:
      -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
      -    engines: {node: '>=4'}
      -
      -  type-fest@0.20.2:
      -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
      -    engines: {node: '>=10'}
      -
      -  type-fest@0.21.3:
      -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
      -    engines: {node: '>=10'}
      -
      -  type-fest@0.6.0:
      -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
      -    engines: {node: '>=8'}
      -
      -  type-fest@0.8.1:
      -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
      -    engines: {node: '>=8'}
      -
      -  type-fest@1.4.0:
      -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
      -    engines: {node: '>=10'}
      -
      -  type-fest@2.19.0:
      -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
      -    engines: {node: '>=12.20'}
      -
      -  type-fest@4.14.0:
      -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
      -    engines: {node: '>=16'}
      -
      -  type-is@1.6.18:
      -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
      -    engines: {node: '>= 0.6'}
      -
      -  typed-array-buffer@1.0.2:
      -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
      -    engines: {node: '>= 0.4'}
      -
      -  typed-array-byte-length@1.0.1:
      -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
      -    engines: {node: '>= 0.4'}
      -
      -  typed-array-byte-offset@1.0.2:
      -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
      -    engines: {node: '>= 0.4'}
      -
      -  typed-array-length@1.0.6:
      -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
      -    engines: {node: '>= 0.4'}
      -
      -  typedarray-to-buffer@3.1.5:
      -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
      -
      -  typescript@5.4.3:
      -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
      -    engines: {node: '>=14.17'}
      -    hasBin: true
      -
      -  unbox-primitive@1.0.2:
      -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
      -
      -  unicode-canonical-property-names-ecmascript@2.0.0:
      -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
      -    engines: {node: '>=4'}
      -
      -  unicode-emoji-modifier-base@1.0.0:
      -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
      -    engines: {node: '>=4'}
      -
      -  unicode-match-property-ecmascript@2.0.0:
      -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
      -    engines: {node: '>=4'}
      -
      -  unicode-match-property-value-ecmascript@2.1.0:
      -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
      -    engines: {node: '>=4'}
      -
      -  unicode-property-aliases-ecmascript@2.1.0:
      -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
      -    engines: {node: '>=4'}
      -
      -  unified@11.0.4:
      -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
      -
      -  union@0.5.0:
      -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
      -    engines: {node: '>= 0.8.0'}
      -
      -  unique-filename@1.1.1:
      -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
      -
      -  unique-filename@2.0.1:
      -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  unique-filename@3.0.0:
      -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  unique-slug@2.0.2:
      -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
      -
      -  unique-slug@3.0.0:
      -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  unique-slug@4.0.0:
      -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  unique-string@2.0.0:
      -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
      -    engines: {node: '>=8'}
      -
      -  unique-string@3.0.0:
      -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
      -    engines: {node: '>=12'}
      -
      -  unist-util-is@6.0.0:
      -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
      -
      -  unist-util-position-from-estree@2.0.0:
      -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
      -
      -  unist-util-position@5.0.0:
      -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
      -
      -  unist-util-remove-position@5.0.0:
      -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
      -
      -  unist-util-stringify-position@4.0.0:
      -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
      -
      -  unist-util-visit-parents@6.0.1:
      -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
      -
      -  unist-util-visit@5.0.0:
      -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
      -
      -  universal-user-agent@6.0.1:
      -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
      -
      -  universalify@0.2.0:
      -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
      -    engines: {node: '>= 4.0.0'}
      -
      -  universalify@2.0.1:
      -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
      -    engines: {node: '>= 10.0.0'}
      -
      -  unpipe@1.0.0:
      -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
      -    engines: {node: '>= 0.8'}
      -
      -  untildify@4.0.0:
      -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
      -    engines: {node: '>=8'}
      -
      -  update-browserslist-db@1.0.13:
      -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
      -    hasBin: true
      -    peerDependencies:
      -      browserslist: '>= 4.21.0'
      -
      -  update-notifier@6.0.2:
      -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
      -    engines: {node: '>=14.16'}
      -
      -  uri-js@4.4.1:
      -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
      -
      -  url-join@4.0.1:
      -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
      -
      -  url-loader@4.1.1:
      -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      file-loader: '*'
      -      webpack: ^4.0.0 || ^5.0.0
      -    peerDependenciesMeta:
      -      file-loader:
      -        optional: true
      -
      -  url-parse@1.5.10:
      -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
      -
      -  util-deprecate@1.0.2:
      -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
      -
      -  utila@0.4.0:
      -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
      -
      -  utility-types@3.11.0:
      -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
      -    engines: {node: '>= 4'}
      -
      -  utils-merge@1.0.1:
      -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
      -    engines: {node: '>= 0.4.0'}
      -
      -  uuid@8.3.2:
      -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
      -    hasBin: true
      -
      -  uuid@9.0.1:
      -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
      -    hasBin: true
      -
      -  v8-compile-cache-lib@3.0.1:
      -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
      -
      -  v8-to-istanbul@9.2.0:
      -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
      -    engines: {node: '>=10.12.0'}
      -
      -  validate-npm-package-license@3.0.4:
      -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
      -
      -  validate-npm-package-name@3.0.0:
      -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
      -
      -  validate-npm-package-name@5.0.0:
      -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  value-equal@1.0.1:
      -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
      -
      -  vary@1.1.2:
      -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
      -    engines: {node: '>= 0.8'}
      -
      -  vfile-location@5.0.2:
      -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
      -
      -  vfile-message@4.0.2:
      -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
      -
      -  vfile@6.0.1:
      -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
      -
      -  vinyl-file@3.0.0:
      -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
      -    engines: {node: '>=4'}
      -
      -  vinyl@2.2.1:
      -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
      -    engines: {node: '>= 0.10'}
      -
      -  vscode-uri@3.0.8:
      -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
      -
      -  w3c-xmlserializer@4.0.0:
      -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
      -    engines: {node: '>=14'}
      -
      -  walk-up-path@1.0.0:
      -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
      -
      -  walker@1.0.8:
      -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
      -
      -  watchpack@2.4.1:
      -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
      -    engines: {node: '>=10.13.0'}
      -
      -  wbuf@1.7.3:
      -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
      -
      -  wcwidth@1.0.1:
      -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
      -
      -  web-namespaces@2.0.1:
      -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
      -
      -  webidl-conversions@3.0.1:
      -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
      -
      -  webidl-conversions@7.0.0:
      -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
      -    engines: {node: '>=12'}
      -
      -  webpack-bundle-analyzer@4.10.1:
      -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
      -    engines: {node: '>= 10.13.0'}
      -    hasBin: true
      -
      -  webpack-cli@5.1.4:
      -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
      -    engines: {node: '>=14.15.0'}
      -    hasBin: true
      -    peerDependencies:
      -      '@webpack-cli/generators': '*'
      -      webpack: 5.x.x
      -      webpack-bundle-analyzer: '*'
      -      webpack-dev-server: '*'
      -    peerDependenciesMeta:
      -      '@webpack-cli/generators':
      -        optional: true
      -      webpack-bundle-analyzer:
      -        optional: true
      -      webpack-dev-server:
      -        optional: true
      -
      -  webpack-dev-middleware@5.3.4:
      -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^4.0.0 || ^5.0.0
      -
      -  webpack-dev-middleware@7.1.1:
      -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
      -    engines: {node: '>= 18.12.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      -
      -  webpack-dev-server@4.15.2:
      -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
      -    engines: {node: '>= 12.13.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack: ^4.37.0 || ^5.0.0
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      -      webpack-cli:
      -        optional: true
      -
      -  webpack-dev-server@5.0.4:
      -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
      -    engines: {node: '>= 18.12.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack: ^5.0.0
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      -      webpack-cli:
      -        optional: true
      -
      -  webpack-merge@5.10.0:
      -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
      -    engines: {node: '>=10.0.0'}
      -
      -  webpack-sources@3.2.3:
      -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
      -    engines: {node: '>=10.13.0'}
      -
      -  webpack@5.91.0:
      -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
      -    engines: {node: '>=10.13.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack-cli:
      -        optional: true
      -
      -  webpackbar@5.0.2:
      -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      webpack: 3 || 4 || 5
      -
      -  websocket-driver@0.7.4:
      -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
      -    engines: {node: '>=0.8.0'}
      -
      -  websocket-extensions@0.1.4:
      -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
      -    engines: {node: '>=0.8.0'}
      -
      -  whatwg-encoding@2.0.0:
      -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
      -    engines: {node: '>=12'}
      -
      -  whatwg-mimetype@3.0.0:
      -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
      -    engines: {node: '>=12'}
      -
      -  whatwg-url@11.0.0:
      -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
      -    engines: {node: '>=12'}
      -
      -  whatwg-url@5.0.0:
      -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
      -
      -  which-boxed-primitive@1.0.2:
      -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
      -
      -  which-builtin-type@1.1.3:
      -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
      -    engines: {node: '>= 0.4'}
      -
      -  which-collection@1.0.2:
      -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
      -    engines: {node: '>= 0.4'}
      -
      -  which-pm@2.0.0:
      -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
      -    engines: {node: '>=8.15'}
      -
      -  which-typed-array@1.1.15:
      -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
      -    engines: {node: '>= 0.4'}
      -
      -  which@1.3.1:
      -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
      -    hasBin: true
      -
      -  which@2.0.2:
      -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
      -    engines: {node: '>= 8'}
      -    hasBin: true
      -
      -  which@3.0.1:
      -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      -
      -  wide-align@1.1.5:
      -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
      -
      -  widest-line@3.1.0:
      -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
      -    engines: {node: '>=8'}
      -
      -  widest-line@4.0.1:
      -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
      -    engines: {node: '>=12'}
      -
      -  wildcard@2.0.1:
      -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
      -
      -  winston-transport@4.7.0:
      -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
      -    engines: {node: '>= 12.0.0'}
      -
      -  winston@3.11.0:
      -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
      -    engines: {node: '>= 12.0.0'}
      -
      -  workerpool@6.2.1:
      -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
      -
      -  wrap-ansi@6.2.0:
      -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
      -    engines: {node: '>=8'}
      -
      -  wrap-ansi@7.0.0:
      -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
      -    engines: {node: '>=10'}
      -
      -  wrap-ansi@8.1.0:
      -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
      -    engines: {node: '>=12'}
      -
      -  wrappy@1.0.2:
      -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
      -
      -  write-file-atomic@3.0.3:
      -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
      -
      -  write-file-atomic@4.0.2:
      -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -
      -  write-file-atomic@5.0.1:
      -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -
      -  write-json-file@5.0.0:
      -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -
      -  write-yaml-file@5.0.0:
      -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
      -    engines: {node: '>=16.14'}
      -
      -  ws@7.5.9:
      -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
      -    engines: {node: '>=8.3.0'}
      -    peerDependencies:
      -      bufferutil: ^4.0.1
      -      utf-8-validate: ^5.0.2
      -    peerDependenciesMeta:
      -      bufferutil:
      -        optional: true
      -      utf-8-validate:
      -        optional: true
      -
      -  ws@8.16.0:
      -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
      -    engines: {node: '>=10.0.0'}
      -    peerDependencies:
      -      bufferutil: ^4.0.1
      -      utf-8-validate: '>=5.0.2'
      -    peerDependenciesMeta:
      -      bufferutil:
      -        optional: true
      -      utf-8-validate:
      -        optional: true
      -
      -  xdg-basedir@5.1.0:
      -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
      -    engines: {node: '>=12'}
      -
      -  xml-js@1.6.11:
      -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
      -    hasBin: true
      -
      -  xml-name-validator@4.0.0:
      -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
      -    engines: {node: '>=12'}
      -
      -  xmlchars@2.2.0:
      -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
      -
      -  y18n@5.0.8:
      -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
      -    engines: {node: '>=10'}
      -
      -  yallist@3.1.1:
      -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
      -
      -  yallist@4.0.0:
      -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
      -
      -  yaml@1.10.2:
      -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
      -    engines: {node: '>= 6'}
      -
      -  yaml@2.4.1:
      -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
      -    engines: {node: '>= 14'}
      -    hasBin: true
      -
      -  yargs-parser@20.2.4:
      -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
      -    engines: {node: '>=10'}
      -
      -  yargs-parser@20.2.9:
      -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
      -    engines: {node: '>=10'}
      -
      -  yargs-parser@21.1.1:
      -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
      -    engines: {node: '>=12'}
      -
      -  yargs-unparser@2.0.0:
      -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
      -    engines: {node: '>=10'}
      -
      -  yargs@16.2.0:
      -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
      -    engines: {node: '>=10'}
      -
      -  yargs@17.7.2:
      -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
      -    engines: {node: '>=12'}
      -
      -  yeoman-environment@3.19.3:
      -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
      -    engines: {node: '>=12.10.0'}
      -    hasBin: true
      -
      -  yeoman-generator@5.10.0:
      -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
      -    engines: {node: '>=12.10.0'}
      -    peerDependencies:
      -      yeoman-environment: ^3.2.0
      -    peerDependenciesMeta:
      -      yeoman-environment:
      -        optional: true
      -
      -  yn@3.1.1:
      -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
      -    engines: {node: '>=6'}
      -
      -  yocto-queue@0.1.0:
      -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
      -    engines: {node: '>=10'}
      -
      -  yocto-queue@1.0.0:
      -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
      -    engines: {node: '>=12.20'}
      -
      -  zod@3.22.4:
      -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
      -
      -  zwitch@2.0.4:
      -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
      -
      -snapshots:
      -
      -  '@aashutoshrathi/word-wrap@1.2.6': {}
      -
      -  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
           dependencies:
             '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
      @@ -9693,105 +788,161 @@ snapshots:
             - '@algolia/client-search'
             - algoliasearch
             - search-insights
      +    dev: false
       
      -  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
      +  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
      +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
      +    peerDependencies:
      +      search-insights: '>= 1 < 3'
           dependencies:
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
             search-insights: 2.13.0
           transitivePeerDependencies:
             - '@algolia/client-search'
             - algoliasearch
      +    dev: false
       
      -  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
      +  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
      +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
      +    peerDependencies:
      +      '@algolia/client-search': '>= 4.9.1 < 6'
      +      algoliasearch: '>= 4.9.1 < 6'
           dependencies:
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
             '@algolia/client-search': 4.22.1
             algoliasearch: 4.22.1
      +    dev: false
       
      -  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
      +  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
      +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
      +    peerDependencies:
      +      '@algolia/client-search': '>= 4.9.1 < 6'
      +      algoliasearch: '>= 4.9.1 < 6'
           dependencies:
             '@algolia/client-search': 4.22.1
             algoliasearch: 4.22.1
      +    dev: false
       
      -  '@algolia/cache-browser-local-storage@4.22.1':
      +  /@algolia/cache-browser-local-storage@4.22.1:
      +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
           dependencies:
             '@algolia/cache-common': 4.22.1
      +    dev: false
       
      -  '@algolia/cache-common@4.22.1': {}
      +  /@algolia/cache-common@4.22.1:
      +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
      +    dev: false
       
      -  '@algolia/cache-in-memory@4.22.1':
      +  /@algolia/cache-in-memory@4.22.1:
      +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
           dependencies:
             '@algolia/cache-common': 4.22.1
      +    dev: false
       
      -  '@algolia/client-account@4.22.1':
      +  /@algolia/client-account@4.22.1:
      +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/client-search': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  '@algolia/client-analytics@4.22.1':
      +  /@algolia/client-analytics@4.22.1:
      +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/client-search': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  '@algolia/client-common@4.22.1':
      +  /@algolia/client-common@4.22.1:
      +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
           dependencies:
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  '@algolia/client-personalization@4.22.1':
      +  /@algolia/client-personalization@4.22.1:
      +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  '@algolia/client-search@4.22.1':
      +  /@algolia/client-search@4.22.1:
      +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  '@algolia/events@4.0.1': {}
      +  /@algolia/events@4.0.1:
      +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
      +    dev: false
       
      -  '@algolia/logger-common@4.22.1': {}
      +  /@algolia/logger-common@4.22.1:
      +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
      +    dev: false
       
      -  '@algolia/logger-console@4.22.1':
      +  /@algolia/logger-console@4.22.1:
      +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
           dependencies:
             '@algolia/logger-common': 4.22.1
      +    dev: false
       
      -  '@algolia/requester-browser-xhr@4.22.1':
      +  /@algolia/requester-browser-xhr@4.22.1:
      +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
           dependencies:
             '@algolia/requester-common': 4.22.1
      +    dev: false
       
      -  '@algolia/requester-common@4.22.1': {}
      +  /@algolia/requester-common@4.22.1:
      +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
      +    dev: false
       
      -  '@algolia/requester-node-http@4.22.1':
      +  /@algolia/requester-node-http@4.22.1:
      +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
           dependencies:
             '@algolia/requester-common': 4.22.1
      +    dev: false
       
      -  '@algolia/transporter@4.22.1':
      +  /@algolia/transporter@4.22.1:
      +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
           dependencies:
             '@algolia/cache-common': 4.22.1
             '@algolia/logger-common': 4.22.1
             '@algolia/requester-common': 4.22.1
      +    dev: false
       
      -  '@alloc/quick-lru@5.2.0': {}
      +  /@alloc/quick-lru@5.2.0:
      +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  '@ampproject/remapping@2.3.0':
      +  /@ampproject/remapping@2.3.0:
      +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
      +    engines: {node: '>=6.0.0'}
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
       
      -  '@babel/code-frame@7.24.2':
      +  /@babel/code-frame@7.24.2:
      +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/highlight': 7.24.2
             picocolors: 1.0.0
       
      -  '@babel/compat-data@7.24.1': {}
      +  /@babel/compat-data@7.24.1:
      +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/core@7.24.3':
      +  /@babel/core@7.24.3:
      +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@ampproject/remapping': 2.3.0
             '@babel/code-frame': 7.24.2
      @@ -9811,22 +962,30 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@babel/generator@7.24.1':
      +  /@babel/generator@7.24.1:
      +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
             jsesc: 2.5.2
       
      -  '@babel/helper-annotate-as-pure@7.22.5':
      +  /@babel/helper-annotate-as-pure@7.22.5:
      +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
      +  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
      +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-compilation-targets@7.23.6':
      +  /@babel/helper-compilation-targets@7.23.6:
      +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/helper-validator-option': 7.23.5
      @@ -9834,7 +993,11 @@ snapshots:
             lru-cache: 5.1.1
             semver: 6.3.1
       
      -  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
      +  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -9847,14 +1010,21 @@ snapshots:
             '@babel/helper-split-export-declaration': 7.22.6
             semver: 6.3.1
       
      -  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
      +  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             regexpu-core: 5.3.2
             semver: 6.3.1
       
      -  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
      +  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
      @@ -9865,26 +1035,40 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@babel/helper-environment-visitor@7.22.20': {}
      +  /@babel/helper-environment-visitor@7.22.20:
      +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/helper-function-name@7.23.0':
      +  /@babel/helper-function-name@7.23.0:
      +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
       
      -  '@babel/helper-hoist-variables@7.22.5':
      +  /@babel/helper-hoist-variables@7.22.5:
      +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-member-expression-to-functions@7.23.0':
      +  /@babel/helper-member-expression-to-functions@7.23.0:
      +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-module-imports@7.24.3':
      +  /@babel/helper-module-imports@7.24.3:
      +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
      +  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
      @@ -9893,51 +1077,79 @@ snapshots:
             '@babel/helper-split-export-declaration': 7.22.6
             '@babel/helper-validator-identifier': 7.22.20
       
      -  '@babel/helper-optimise-call-expression@7.22.5':
      +  /@babel/helper-optimise-call-expression@7.22.5:
      +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-plugin-utils@7.24.0': {}
      +  /@babel/helper-plugin-utils@7.24.0:
      +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
      +  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-wrap-function': 7.22.20
       
      -  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
      +  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-member-expression-to-functions': 7.23.0
             '@babel/helper-optimise-call-expression': 7.22.5
       
      -  '@babel/helper-simple-access@7.22.5':
      +  /@babel/helper-simple-access@7.22.5:
      +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
      +  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
      +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-split-export-declaration@7.22.6':
      +  /@babel/helper-split-export-declaration@7.22.6:
      +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/helper-string-parser@7.24.1': {}
      +  /@babel/helper-string-parser@7.24.1:
      +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/helper-validator-identifier@7.22.20': {}
      +  /@babel/helper-validator-identifier@7.22.20:
      +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/helper-validator-option@7.23.5': {}
      +  /@babel/helper-validator-option@7.23.5:
      +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
      +    engines: {node: '>=6.9.0'}
       
      -  '@babel/helper-wrap-function@7.22.20':
      +  /@babel/helper-wrap-function@7.22.20:
      +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/helper-function-name': 7.23.0
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
       
      -  '@babel/helpers@7.24.1':
      +  /@babel/helpers@7.24.1:
      +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/template': 7.24.0
             '@babel/traverse': 7.24.1
      @@ -9945,151 +1157,252 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@babel/highlight@7.24.2':
      +  /@babel/highlight@7.24.2:
      +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/helper-validator-identifier': 7.22.20
             chalk: 2.4.2
             js-tokens: 4.0.0
             picocolors: 1.0.0
       
      -  '@babel/parser@7.24.1':
      +  /@babel/parser@7.24.1:
      +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
      +    engines: {node: '>=6.0.0'}
      +    hasBin: true
           dependencies:
             '@babel/types': 7.24.0
       
      -  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.13.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
             '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
      +  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
       
      -  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      +    dev: true
       
      -  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
      +  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
      @@ -10097,37 +1410,61 @@ snapshots:
             '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
             '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-imports': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.12.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -10139,95 +1476,159 @@ snapshots:
             '@babel/helper-split-export-declaration': 7.22.6
             globals: 11.12.0
       
      -  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/template': 7.24.0
       
      -  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
       
      -  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
             '@babel/helper-function-name': 7.23.0
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-simple-access': 7.22.5
       
      -  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-hoist-variables': 7.22.5
      @@ -10235,36 +1636,60 @@ snapshots:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-validator-identifier': 7.22.20
       
      -  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
      @@ -10272,37 +1697,61 @@ snapshots:
             '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
             '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -10310,27 +1759,47 @@ snapshots:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -10339,24 +1808,40 @@ snapshots:
             '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
             '@babel/types': 7.24.0
       
      -  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             regenerator-transform: 0.15.2
       
      -  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-imports': 7.24.3
      @@ -10367,34 +1852,59 @@ snapshots:
             semver: 6.3.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
       
      -  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -10402,30 +1912,50 @@ snapshots:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
      +  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
      +  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/core': 7.24.3
      @@ -10511,14 +2041,21 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
      +  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/types': 7.24.0
             esutils: 2.0.3
       
      -  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
      +  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      @@ -10528,7 +2065,11 @@ snapshots:
             '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
             '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
      +  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      @@ -10537,24 +2078,34 @@ snapshots:
             '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
             '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
       
      -  '@babel/regjsgen@0.8.0': {}
      +  /@babel/regjsgen@0.8.0:
      +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
       
      -  '@babel/runtime-corejs3@7.24.1':
      +  /@babel/runtime-corejs3@7.24.1:
      +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             core-js-pure: 3.36.1
             regenerator-runtime: 0.14.1
      +    dev: false
       
      -  '@babel/runtime@7.24.1':
      +  /@babel/runtime@7.24.1:
      +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             regenerator-runtime: 0.14.1
       
      -  '@babel/template@7.24.0':
      +  /@babel/template@7.24.0:
      +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
       
      -  '@babel/traverse@7.24.1':
      +  /@babel/traverse@7.24.1:
      +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/generator': 7.24.1
      @@ -10569,34 +2120,67 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@babel/types@7.24.0':
      +  /@babel/types@7.24.0:
      +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
      +    engines: {node: '>=6.9.0'}
           dependencies:
             '@babel/helper-string-parser': 7.24.1
             '@babel/helper-validator-identifier': 7.22.20
             to-fast-properties: 2.0.0
       
      -  '@bcoe/v8-coverage@0.2.3': {}
      +  /@bcoe/v8-coverage@0.2.3:
      +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
      +    dev: true
       
      -  '@colors/colors@1.5.0':
      +  /@colors/colors@1.5.0:
      +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
      +    engines: {node: '>=0.1.90'}
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@colors/colors@1.6.0': {}
      +  /@colors/colors@1.6.0:
      +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
      +    engines: {node: '>=0.1.90'}
       
      -  '@cspotcode/source-map-support@0.8.1':
      +  /@cspotcode/source-map-support@0.8.1:
      +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
      +    engines: {node: '>=12'}
           dependencies:
             '@jridgewell/trace-mapping': 0.3.9
      +    dev: true
       
      -  '@dabh/diagnostics@2.0.3':
      +  /@dabh/diagnostics@2.0.3:
      +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
           dependencies:
             colorspace: 1.1.4
             enabled: 2.0.0
             kuler: 2.0.0
       
      -  '@discoveryjs/json-ext@0.5.7': {}
      +  /@discoveryjs/json-ext@0.5.7:
      +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
      +    engines: {node: '>=10.0.0'}
       
      -  '@docsearch/css@3.6.0': {}
      +  /@docsearch/css@3.6.0:
      +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
      +    dev: false
       
      -  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
      +  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
      +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
      +    peerDependencies:
      +      '@types/react': '>= 16.8.0 < 19.0.0'
      +      react: '>= 16.8.0 < 19.0.0 || 18'
      +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
      +      search-insights: '>= 1 < 3'
      +    peerDependenciesMeta:
      +      '@types/react':
      +        optional: true
      +      react:
      +        optional: true
      +      react-dom:
      +        optional: true
      +      search-insights:
      +        optional: true
           dependencies:
             '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
             '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
      @@ -10608,8 +2192,15 @@ snapshots:
             search-insights: 2.13.0
           transitivePeerDependencies:
             - '@algolia/client-search'
      +    dev: false
       
      -  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
      +    engines: {node: '>=18.0'}
      +    hasBin: true
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@babel/core': 7.24.3
             '@babel/generator': 7.24.1
      @@ -10664,7 +2255,7 @@ snapshots:
             react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
             react-dom: 18.2.0(react@18.2.0)
             react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
      -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
      +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
             react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
             react-router: 5.3.4(react@18.2.0)
             react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
      @@ -10700,20 +2291,32 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/cssnano-preset@3.1.1':
      +  /@docusaurus/cssnano-preset@3.1.1:
      +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
      +    engines: {node: '>=18.0'}
           dependencies:
             cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
             postcss: 8.4.38
             postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
             tslib: 2.6.2
      +    dev: false
       
      -  '@docusaurus/logger@3.1.1':
      +  /@docusaurus/logger@3.1.1:
      +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
      +    engines: {node: '>=18.0'}
           dependencies:
             chalk: 4.1.2
             tslib: 2.6.2
      +    dev: false
       
      -  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
      +  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/traverse': 7.24.1
      @@ -10750,8 +2353,13 @@ snapshots:
             - supports-color
             - uglify-js
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
      +  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
           dependencies:
             '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10762,7 +2370,7 @@ snapshots:
             react: 18.2.0
             react-dom: 18.2.0(react@18.2.0)
             react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
      -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
      +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
           transitivePeerDependencies:
             - '@swc/core'
             - esbuild
      @@ -10770,7 +2378,12 @@ snapshots:
             - uglify-js
             - webpack-cli
       
      -  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -10808,8 +2421,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -10845,8 +2464,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10875,8 +2500,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10903,8 +2534,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10929,8 +2566,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10956,8 +2599,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -10982,8 +2631,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -11013,8 +2668,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
      +  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
      @@ -11051,14 +2712,23 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
      +  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
      +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
      +    peerDependencies:
      +      react: '*'
           dependencies:
             '@types/react': 18.2.71
             prop-types: 15.8.1
             react: 18.2.0
       
      -  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -11105,8 +2775,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
      +  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
             '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -11143,8 +2819,14 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
      +  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
      @@ -11185,13 +2867,22 @@ snapshots:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      +    dev: false
      +    patched: true
       
      -  '@docusaurus/theme-translations@3.1.1':
      +  /@docusaurus/theme-translations@3.1.1:
      +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
      +    engines: {node: '>=18.0'}
           dependencies:
             fs-extra: 11.2.0
             tslib: 2.6.2
      +    dev: false
       
      -  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
      +  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@mdx-js/mdx': 3.0.1
             '@types/history': 4.7.11
      @@ -11211,12 +2902,22 @@ snapshots:
             - uglify-js
             - webpack-cli
       
      -  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
      +  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
      +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      '@docusaurus/types': '*'
      +    peerDependenciesMeta:
      +      '@docusaurus/types':
      +        optional: true
           dependencies:
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
             tslib: 2.6.2
      +    dev: false
       
      -  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
      +  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
      +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
      +    engines: {node: '>=18.0'}
           dependencies:
             '@docusaurus/logger': 3.1.1
             '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
      @@ -11230,8 +2931,16 @@ snapshots:
             - supports-color
             - uglify-js
             - webpack-cli
      +    dev: false
       
      -  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
      +  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
      +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      '@docusaurus/types': '*'
      +    peerDependenciesMeta:
      +      '@docusaurus/types':
      +        optional: true
           dependencies:
             '@docusaurus/logger': 3.1.1
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -11257,97 +2966,232 @@ snapshots:
             - supports-color
             - uglify-js
             - webpack-cli
      +    dev: false
       
      -  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
      +  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
      +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
      +    peerDependencies:
      +      effect: 2.0.0-next.62
      +      fast-check: ^3.13.2
           dependencies:
             effect: 2.0.0-next.62
             fast-check: 3.15.0
      +    dev: true
       
      -  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
      +  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
      +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      html-webpack-plugin: '>=5'
      +      webpack: '>=5'
           dependencies:
             escape-string-regexp: 4.0.0
             html-webpack-plugin: 5.6.0(webpack@5.91.0)
             slash: 3.0.0
             source-map-url: 0.4.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: true
       
      -  '@esbuild/aix-ppc64@0.20.2':
      +  /@esbuild/aix-ppc64@0.20.2:
      +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
      +    engines: {node: '>=12'}
      +    cpu: [ppc64]
      +    os: [aix]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/android-arm64@0.20.2':
      +  /@esbuild/android-arm64@0.20.2:
      +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [android]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/android-arm@0.20.2':
      +  /@esbuild/android-arm@0.20.2:
      +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
      +    engines: {node: '>=12'}
      +    cpu: [arm]
      +    os: [android]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/android-x64@0.20.2':
      +  /@esbuild/android-x64@0.20.2:
      +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [android]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/darwin-arm64@0.20.2':
      +  /@esbuild/darwin-arm64@0.20.2:
      +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [darwin]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/darwin-x64@0.20.2':
      +  /@esbuild/darwin-x64@0.20.2:
      +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [darwin]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/freebsd-arm64@0.20.2':
      +  /@esbuild/freebsd-arm64@0.20.2:
      +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [freebsd]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/freebsd-x64@0.20.2':
      +  /@esbuild/freebsd-x64@0.20.2:
      +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [freebsd]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-arm64@0.20.2':
      +  /@esbuild/linux-arm64@0.20.2:
      +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-arm@0.20.2':
      +  /@esbuild/linux-arm@0.20.2:
      +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
      +    engines: {node: '>=12'}
      +    cpu: [arm]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-ia32@0.20.2':
      +  /@esbuild/linux-ia32@0.20.2:
      +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
      +    engines: {node: '>=12'}
      +    cpu: [ia32]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-loong64@0.20.2':
      +  /@esbuild/linux-loong64@0.20.2:
      +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
      +    engines: {node: '>=12'}
      +    cpu: [loong64]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-mips64el@0.20.2':
      +  /@esbuild/linux-mips64el@0.20.2:
      +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
      +    engines: {node: '>=12'}
      +    cpu: [mips64el]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-ppc64@0.20.2':
      +  /@esbuild/linux-ppc64@0.20.2:
      +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
      +    engines: {node: '>=12'}
      +    cpu: [ppc64]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-riscv64@0.20.2':
      +  /@esbuild/linux-riscv64@0.20.2:
      +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
      +    engines: {node: '>=12'}
      +    cpu: [riscv64]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-s390x@0.20.2':
      +  /@esbuild/linux-s390x@0.20.2:
      +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
      +    engines: {node: '>=12'}
      +    cpu: [s390x]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/linux-x64@0.20.2':
      +  /@esbuild/linux-x64@0.20.2:
      +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [linux]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/netbsd-x64@0.20.2':
      +  /@esbuild/netbsd-x64@0.20.2:
      +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [netbsd]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/openbsd-x64@0.20.2':
      +  /@esbuild/openbsd-x64@0.20.2:
      +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [openbsd]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/sunos-x64@0.20.2':
      +  /@esbuild/sunos-x64@0.20.2:
      +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [sunos]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/win32-arm64@0.20.2':
      +  /@esbuild/win32-arm64@0.20.2:
      +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [win32]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/win32-ia32@0.20.2':
      +  /@esbuild/win32-ia32@0.20.2:
      +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
      +    engines: {node: '>=12'}
      +    cpu: [ia32]
      +    os: [win32]
      +    requiresBuild: true
           optional: true
       
      -  '@esbuild/win32-x64@0.20.2':
      +  /@esbuild/win32-x64@0.20.2:
      +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [win32]
      +    requiresBuild: true
           optional: true
       
      -  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
      +  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
      +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    peerDependencies:
      +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
           dependencies:
             eslint: 8.57.0
             eslint-visitor-keys: 3.4.3
       
      -  '@eslint-community/regexpp@4.10.0': {}
      +  /@eslint-community/regexpp@4.10.0:
      +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
      +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
       
      -  '@eslint/eslintrc@2.1.4':
      +  /@eslint/eslintrc@2.1.4:
      +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
           dependencies:
             ajv: 6.12.6
             debug: 4.3.4(supports-color@8.1.1)
      @@ -11361,35 +3205,62 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@eslint/js@8.57.0': {}
      +  /@eslint/js@8.57.0:
      +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
       
      -  '@fortawesome/fontawesome-common-types@6.5.1': {}
      +  /@fortawesome/fontawesome-common-types@6.5.1:
      +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
      +    engines: {node: '>=6'}
      +    requiresBuild: true
      +    dev: false
       
      -  '@fortawesome/fontawesome-svg-core@6.5.1':
      +  /@fortawesome/fontawesome-svg-core@6.5.1:
      +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
      +    engines: {node: '>=6'}
      +    requiresBuild: true
           dependencies:
             '@fortawesome/fontawesome-common-types': 6.5.1
      +    dev: false
       
      -  '@fortawesome/free-solid-svg-icons@6.5.1':
      +  /@fortawesome/free-solid-svg-icons@6.5.1:
      +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
      +    engines: {node: '>=6'}
      +    requiresBuild: true
           dependencies:
             '@fortawesome/fontawesome-common-types': 6.5.1
      +    dev: false
       
      -  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
      +  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
      +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
      +    peerDependencies:
      +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
      +      react: '>=16.3 || 18'
           dependencies:
             '@fortawesome/fontawesome-svg-core': 6.5.1
             prop-types: 15.8.1
             react: 18.2.0
      +    dev: false
       
      -  '@gar/promisify@1.1.3': {}
      +  /@gar/promisify@1.1.3:
      +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
       
      -  '@gwhitney/detect-indent@7.0.1': {}
      +  /@gwhitney/detect-indent@7.0.1:
      +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
      +    engines: {node: '>=12.20'}
      +    dev: true
       
      -  '@hapi/hoek@9.3.0': {}
      +  /@hapi/hoek@9.3.0:
      +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
       
      -  '@hapi/topo@5.1.0':
      +  /@hapi/topo@5.1.0:
      +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
           dependencies:
             '@hapi/hoek': 9.3.0
       
      -  '@humanwhocodes/config-array@0.11.14':
      +  /@humanwhocodes/config-array@0.11.14:
      +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
      +    engines: {node: '>=10.10.0'}
           dependencies:
             '@humanwhocodes/object-schema': 2.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -11397,32 +3268,46 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@humanwhocodes/module-importer@1.0.1': {}
      +  /@humanwhocodes/module-importer@1.0.1:
      +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
      +    engines: {node: '>=12.22'}
       
      -  '@humanwhocodes/object-schema@2.0.2': {}
      +  /@humanwhocodes/object-schema@2.0.2:
      +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
       
      -  '@isaacs/cliui@8.0.2':
      +  /@isaacs/cliui@8.0.2:
      +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
      +    engines: {node: '>=12'}
           dependencies:
             string-width: 5.1.2
      -      string-width-cjs: string-width@4.2.3
      +      string-width-cjs: /string-width@4.2.3
             strip-ansi: 7.1.0
      -      strip-ansi-cjs: strip-ansi@6.0.1
      +      strip-ansi-cjs: /strip-ansi@6.0.1
             wrap-ansi: 8.1.0
      -      wrap-ansi-cjs: wrap-ansi@7.0.0
      +      wrap-ansi-cjs: /wrap-ansi@7.0.0
       
      -  '@isaacs/string-locale-compare@1.1.0': {}
      +  /@isaacs/string-locale-compare@1.1.0:
      +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
       
      -  '@istanbuljs/load-nyc-config@1.1.0':
      +  /@istanbuljs/load-nyc-config@1.1.0:
      +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
      +    engines: {node: '>=8'}
           dependencies:
             camelcase: 5.3.1
             find-up: 4.1.0
             get-package-type: 0.1.0
             js-yaml: 3.14.1
             resolve-from: 5.0.0
      +    dev: true
       
      -  '@istanbuljs/schema@0.1.3': {}
      +  /@istanbuljs/schema@0.1.3:
      +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  '@jest/console@29.7.0':
      +  /@jest/console@29.7.0:
      +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
      @@ -11430,8 +3315,16 @@ snapshots:
             jest-message-util: 29.7.0
             jest-util: 29.7.0
             slash: 3.0.0
      +    dev: true
       
      -  '@jest/core@29.7.0(ts-node@10.9.2)':
      +  /@jest/core@29.7.0(ts-node@10.9.2):
      +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
           dependencies:
             '@jest/console': 29.7.0
             '@jest/reporters': 29.7.0
      @@ -11465,26 +3358,38 @@ snapshots:
             - babel-plugin-macros
             - supports-color
             - ts-node
      +    dev: true
       
      -  '@jest/environment@29.7.0':
      +  /@jest/environment@29.7.0:
      +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/fake-timers': 29.7.0
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
             jest-mock: 29.7.0
      +    dev: true
       
      -  '@jest/expect-utils@29.7.0':
      +  /@jest/expect-utils@29.7.0:
      +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             jest-get-type: 29.6.3
      +    dev: true
       
      -  '@jest/expect@29.7.0':
      +  /@jest/expect@29.7.0:
      +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             expect: 29.7.0
             jest-snapshot: 29.7.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@jest/fake-timers@29.7.0':
      +  /@jest/fake-timers@29.7.0:
      +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             '@sinonjs/fake-timers': 10.3.0
      @@ -11492,8 +3397,11 @@ snapshots:
             jest-message-util: 29.7.0
             jest-mock: 29.7.0
             jest-util: 29.7.0
      +    dev: true
       
      -  '@jest/globals@29.7.0':
      +  /@jest/globals@29.7.0:
      +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/expect': 29.7.0
      @@ -11501,8 +3409,16 @@ snapshots:
             jest-mock: 29.7.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@jest/reporters@29.7.0':
      +  /@jest/reporters@29.7.0:
      +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
           dependencies:
             '@bcoe/v8-coverage': 0.2.3
             '@jest/console': 29.7.0
      @@ -11530,32 +3446,46 @@ snapshots:
             v8-to-istanbul: 9.2.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@jest/schemas@29.6.3':
      +  /@jest/schemas@29.6.3:
      +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@sinclair/typebox': 0.27.8
       
      -  '@jest/source-map@29.6.3':
      +  /@jest/source-map@29.6.3:
      +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             callsites: 3.1.0
             graceful-fs: 4.2.11
      +    dev: true
       
      -  '@jest/test-result@29.7.0':
      +  /@jest/test-result@29.7.0:
      +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/console': 29.7.0
             '@jest/types': 29.6.3
             '@types/istanbul-lib-coverage': 2.0.6
             collect-v8-coverage: 1.0.2
      +    dev: true
       
      -  '@jest/test-sequencer@29.7.0':
      +  /@jest/test-sequencer@29.7.0:
      +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/test-result': 29.7.0
             graceful-fs: 4.2.11
             jest-haste-map: 29.7.0
             slash: 3.0.0
      +    dev: true
       
      -  '@jest/transform@29.7.0':
      +  /@jest/transform@29.7.0:
      +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@babel/core': 7.24.3
             '@jest/types': 29.6.3
      @@ -11574,8 +3504,11 @@ snapshots:
             write-file-atomic: 4.0.2
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@jest/types@29.6.3':
      +  /@jest/types@29.6.3:
      +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/schemas': 29.6.3
             '@types/istanbul-lib-coverage': 2.0.6
      @@ -11584,44 +3517,61 @@ snapshots:
             '@types/yargs': 17.0.32
             chalk: 4.1.2
       
      -  '@jridgewell/gen-mapping@0.3.5':
      +  /@jridgewell/gen-mapping@0.3.5:
      +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
      +    engines: {node: '>=6.0.0'}
           dependencies:
             '@jridgewell/set-array': 1.2.1
             '@jridgewell/sourcemap-codec': 1.4.15
             '@jridgewell/trace-mapping': 0.3.25
       
      -  '@jridgewell/resolve-uri@3.1.2': {}
      +  /@jridgewell/resolve-uri@3.1.2:
      +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
      +    engines: {node: '>=6.0.0'}
       
      -  '@jridgewell/set-array@1.2.1': {}
      +  /@jridgewell/set-array@1.2.1:
      +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
      +    engines: {node: '>=6.0.0'}
       
      -  '@jridgewell/source-map@0.3.6':
      +  /@jridgewell/source-map@0.3.6:
      +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
       
      -  '@jridgewell/sourcemap-codec@1.4.15': {}
      +  /@jridgewell/sourcemap-codec@1.4.15:
      +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
       
      -  '@jridgewell/trace-mapping@0.3.25':
      +  /@jridgewell/trace-mapping@0.3.25:
      +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
           dependencies:
             '@jridgewell/resolve-uri': 3.1.2
             '@jridgewell/sourcemap-codec': 1.4.15
       
      -  '@jridgewell/trace-mapping@0.3.9':
      +  /@jridgewell/trace-mapping@0.3.9:
      +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
           dependencies:
             '@jridgewell/resolve-uri': 3.1.2
             '@jridgewell/sourcemap-codec': 1.4.15
      +    dev: true
       
      -  '@leichtgewicht/ip-codec@2.0.4': {}
      +  /@leichtgewicht/ip-codec@2.0.4:
      +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
       
      -  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
      +  /@mdx-js/loader@3.0.1(webpack@5.91.0):
      +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
      +    peerDependencies:
      +      webpack: '>=5'
           dependencies:
             '@mdx-js/mdx': 3.0.1
             source-map: 0.7.4
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@mdx-js/mdx@3.0.1':
      +  /@mdx-js/mdx@3.0.1:
      +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
           dependencies:
             '@types/estree': 1.0.5
             '@types/estree-jsx': 1.0.5
      @@ -11649,66 +3599,150 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
      +  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
      +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
      +    peerDependencies:
      +      '@types/react': '>=16'
      +      react: '>=16 || 18'
           dependencies:
             '@types/mdx': 2.0.12
             '@types/react': 18.2.71
             react: 18.2.0
      +    dev: false
       
      -  '@msgpack/msgpack@2.8.0': {}
      +  /@msgpack/msgpack@2.8.0:
      +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
      +    engines: {node: '>= 10'}
       
      -  '@next/env@14.1.4': {}
      +  /@next/env@14.1.4:
      +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
      +    dev: false
       
      -  '@next/eslint-plugin-next@14.1.4':
      +  /@next/eslint-plugin-next@14.1.4:
      +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
           dependencies:
             glob: 10.3.10
      +    dev: true
       
      -  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
      +  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
      +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
      +    peerDependencies:
      +      '@mdx-js/loader': '>=0.15.0'
      +      '@mdx-js/react': '>=0.15.0'
      +    peerDependenciesMeta:
      +      '@mdx-js/loader':
      +        optional: true
      +      '@mdx-js/react':
      +        optional: true
           dependencies:
             '@mdx-js/loader': 3.0.1(webpack@5.91.0)
             '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
             source-map: 0.7.4
      +    dev: false
       
      -  '@next/swc-darwin-arm64@14.1.4':
      +  /@next/swc-darwin-arm64@14.1.4:
      +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [darwin]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-darwin-x64@14.1.4':
      +  /@next/swc-darwin-x64@14.1.4:
      +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [darwin]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-linux-arm64-gnu@14.1.4':
      +  /@next/swc-linux-arm64-gnu@14.1.4:
      +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [linux]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-linux-arm64-musl@14.1.4':
      +  /@next/swc-linux-arm64-musl@14.1.4:
      +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [linux]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-linux-x64-gnu@14.1.4':
      +  /@next/swc-linux-x64-gnu@14.1.4:
      +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [linux]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-linux-x64-musl@14.1.4':
      +  /@next/swc-linux-x64-musl@14.1.4:
      +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [linux]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-win32-arm64-msvc@14.1.4':
      +  /@next/swc-win32-arm64-msvc@14.1.4:
      +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [win32]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-win32-ia32-msvc@14.1.4':
      +  /@next/swc-win32-ia32-msvc@14.1.4:
      +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
      +    engines: {node: '>= 10'}
      +    cpu: [ia32]
      +    os: [win32]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@next/swc-win32-x64-msvc@14.1.4':
      +  /@next/swc-win32-x64-msvc@14.1.4:
      +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [win32]
      +    requiresBuild: true
      +    dev: false
           optional: true
       
      -  '@nodelib/fs.scandir@2.1.5':
      +  /@nodelib/fs.scandir@2.1.5:
      +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
      +    engines: {node: '>= 8'}
           dependencies:
             '@nodelib/fs.stat': 2.0.5
             run-parallel: 1.2.0
       
      -  '@nodelib/fs.stat@2.0.5': {}
      +  /@nodelib/fs.stat@2.0.5:
      +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
      +    engines: {node: '>= 8'}
       
      -  '@nodelib/fs.walk@1.2.8':
      +  /@nodelib/fs.walk@1.2.8:
      +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
      +    engines: {node: '>= 8'}
           dependencies:
             '@nodelib/fs.scandir': 2.1.5
             fastq: 1.17.1
       
      -  '@npmcli/arborist@4.3.1':
      +  /@npmcli/arborist@4.3.1:
      +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +    hasBin: true
           dependencies:
             '@isaacs/string-locale-compare': 1.1.0
             '@npmcli/installed-package-contents': 1.0.7
      @@ -11746,21 +3780,27 @@ snapshots:
             - bluebird
             - supports-color
       
      -  '@npmcli/fs@1.1.1':
      +  /@npmcli/fs@1.1.1:
      +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
           dependencies:
             '@gar/promisify': 1.1.3
             semver: 7.6.0
       
      -  '@npmcli/fs@2.1.2':
      +  /@npmcli/fs@2.1.2:
      +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             '@gar/promisify': 1.1.3
             semver: 7.6.0
       
      -  '@npmcli/fs@3.1.0':
      +  /@npmcli/fs@3.1.0:
      +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             semver: 7.6.0
       
      -  '@npmcli/git@2.1.0':
      +  /@npmcli/git@2.1.0:
      +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
           dependencies:
             '@npmcli/promise-spawn': 1.3.2
             lru-cache: 6.0.0
      @@ -11773,7 +3813,9 @@ snapshots:
           transitivePeerDependencies:
             - bluebird
       
      -  '@npmcli/git@4.1.0':
      +  /@npmcli/git@4.1.0:
      +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@npmcli/promise-spawn': 6.0.2
             lru-cache: 7.18.3
      @@ -11786,24 +3828,34 @@ snapshots:
           transitivePeerDependencies:
             - bluebird
       
      -  '@npmcli/installed-package-contents@1.0.7':
      +  /@npmcli/installed-package-contents@1.0.7:
      +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
      +    engines: {node: '>= 10'}
      +    hasBin: true
           dependencies:
             npm-bundled: 1.1.2
             npm-normalize-package-bin: 1.0.1
       
      -  '@npmcli/installed-package-contents@2.0.2':
      +  /@npmcli/installed-package-contents@2.0.2:
      +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
           dependencies:
             npm-bundled: 3.0.0
             npm-normalize-package-bin: 3.0.1
       
      -  '@npmcli/map-workspaces@2.0.4':
      +  /@npmcli/map-workspaces@2.0.4:
      +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             '@npmcli/name-from-folder': 1.0.1
             glob: 8.1.0
             minimatch: 5.1.6
             read-package-json-fast: 2.0.3
       
      -  '@npmcli/metavuln-calculator@2.0.0':
      +  /@npmcli/metavuln-calculator@2.0.0:
      +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
           dependencies:
             cacache: 15.3.0
             json-parse-even-better-errors: 2.3.1
      @@ -11813,35 +3865,50 @@ snapshots:
             - bluebird
             - supports-color
       
      -  '@npmcli/move-file@1.1.2':
      +  /@npmcli/move-file@1.1.2:
      +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
      +    engines: {node: '>=10'}
      +    deprecated: This functionality has been moved to @npmcli/fs
           dependencies:
             mkdirp: 1.0.4
             rimraf: 3.0.2
       
      -  '@npmcli/move-file@2.0.1':
      +  /@npmcli/move-file@2.0.1:
      +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +    deprecated: This functionality has been moved to @npmcli/fs
           dependencies:
             mkdirp: 1.0.4
             rimraf: 3.0.2
       
      -  '@npmcli/name-from-folder@1.0.1': {}
      +  /@npmcli/name-from-folder@1.0.1:
      +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
       
      -  '@npmcli/node-gyp@1.0.3': {}
      +  /@npmcli/node-gyp@1.0.3:
      +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
       
      -  '@npmcli/node-gyp@3.0.0': {}
      +  /@npmcli/node-gyp@3.0.0:
      +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  '@npmcli/package-json@1.0.1':
      +  /@npmcli/package-json@1.0.1:
      +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
           dependencies:
             json-parse-even-better-errors: 2.3.1
       
      -  '@npmcli/promise-spawn@1.3.2':
      +  /@npmcli/promise-spawn@1.3.2:
      +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
           dependencies:
             infer-owner: 1.0.4
       
      -  '@npmcli/promise-spawn@6.0.2':
      +  /@npmcli/promise-spawn@6.0.2:
      +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             which: 3.0.1
       
      -  '@npmcli/run-script@2.0.0':
      +  /@npmcli/run-script@2.0.0:
      +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
           dependencies:
             '@npmcli/node-gyp': 1.0.3
             '@npmcli/promise-spawn': 1.3.2
      @@ -11851,7 +3918,9 @@ snapshots:
             - bluebird
             - supports-color
       
      -  '@npmcli/run-script@6.0.2':
      +  /@npmcli/run-script@6.0.2:
      +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@npmcli/node-gyp': 3.0.0
             '@npmcli/promise-spawn': 6.0.2
      @@ -11862,11 +3931,13 @@ snapshots:
             - bluebird
             - supports-color
       
      -  '@octokit/auth-token@2.5.0':
      +  /@octokit/auth-token@2.5.0:
      +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
           dependencies:
             '@octokit/types': 6.41.0
       
      -  '@octokit/core@3.6.0':
      +  /@octokit/core@3.6.0:
      +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
           dependencies:
             '@octokit/auth-token': 2.5.0
             '@octokit/graphql': 4.8.0
      @@ -11878,13 +3949,15 @@ snapshots:
           transitivePeerDependencies:
             - encoding
       
      -  '@octokit/endpoint@6.0.12':
      +  /@octokit/endpoint@6.0.12:
      +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
           dependencies:
             '@octokit/types': 6.41.0
             is-plain-object: 5.0.0
             universal-user-agent: 6.0.1
       
      -  '@octokit/graphql@4.8.0':
      +  /@octokit/graphql@4.8.0:
      +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
           dependencies:
             '@octokit/request': 5.6.3
             '@octokit/types': 6.41.0
      @@ -11892,30 +3965,42 @@ snapshots:
           transitivePeerDependencies:
             - encoding
       
      -  '@octokit/openapi-types@12.11.0': {}
      +  /@octokit/openapi-types@12.11.0:
      +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
       
      -  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
      +  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
      +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
      +    peerDependencies:
      +      '@octokit/core': '>=2'
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/types': 6.41.0
       
      -  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
      +  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
      +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
      +    peerDependencies:
      +      '@octokit/core': '>=3'
           dependencies:
             '@octokit/core': 3.6.0
       
      -  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
      +  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
      +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
      +    peerDependencies:
      +      '@octokit/core': '>=3'
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/types': 6.41.0
             deprecation: 2.3.1
       
      -  '@octokit/request-error@2.1.0':
      +  /@octokit/request-error@2.1.0:
      +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
           dependencies:
             '@octokit/types': 6.41.0
             deprecation: 2.3.1
             once: 1.4.0
       
      -  '@octokit/request@5.6.3':
      +  /@octokit/request@5.6.3:
      +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
           dependencies:
             '@octokit/endpoint': 6.0.12
             '@octokit/request-error': 2.1.0
      @@ -11926,7 +4011,8 @@ snapshots:
           transitivePeerDependencies:
             - encoding
       
      -  '@octokit/rest@18.12.0':
      +  /@octokit/rest@18.12.0:
      +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
      @@ -11935,19 +4021,30 @@ snapshots:
           transitivePeerDependencies:
             - encoding
       
      -  '@octokit/types@6.41.0':
      +  /@octokit/types@6.41.0:
      +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
           dependencies:
             '@octokit/openapi-types': 12.11.0
       
      -  '@pkgjs/parseargs@0.11.0':
      +  /@pkgjs/parseargs@0.11.0:
      +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
      +    engines: {node: '>=14'}
      +    requiresBuild: true
           optional: true
       
      -  '@pnpm/cli-meta@5.0.1':
      +  /@pnpm/cli-meta@5.0.1:
      +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/types': 9.1.0
             load-json-file: 6.2.0
      +    dev: true
       
      -  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
      +  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/cli-meta': 5.0.1
             '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
      @@ -11960,10 +4057,15 @@ snapshots:
             '@pnpm/types': 9.1.0
             chalk: 4.1.2
             load-json-file: 6.2.0
      +    dev: true
       
      -  '@pnpm/config.env-replace@1.1.0': {}
      +  /@pnpm/config.env-replace@1.1.0:
      +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
      +    engines: {node: '>=12.22.0'}
       
      -  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
      +  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/constants': 7.1.0
      @@ -11983,44 +4085,80 @@ snapshots:
             normalize-registry-url: 2.0.0
             path-absolute: 1.0.1
             path-name: 1.0.0
      -      ramda: '@pnpm/ramda@0.28.1'
      +      ramda: /@pnpm/ramda@0.28.1
             read-ini-file: 4.0.0
             realpath-missing: 1.1.0
             which: 3.0.1
           transitivePeerDependencies:
             - '@pnpm/logger'
      +    dev: true
       
      -  '@pnpm/constants@6.2.0': {}
      +  /@pnpm/constants@6.2.0:
      +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
      +    engines: {node: '>=14.6'}
      +    dev: false
       
      -  '@pnpm/constants@7.1.0': {}
      +  /@pnpm/constants@7.1.0:
      +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
      +    engines: {node: '>=16.14'}
      +    dev: true
       
      -  '@pnpm/constants@7.1.1': {}
      +  /@pnpm/constants@7.1.1:
      +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
      +    engines: {node: '>=16.14'}
      +    dev: true
       
      -  '@pnpm/constants@8.0.0': {}
      +  /@pnpm/constants@8.0.0:
      +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
      +    engines: {node: '>=18.12'}
      +    dev: false
       
      -  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
      +  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 10.0.0
      +    dev: false
       
      -  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
      +  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 9.1.0
      +    dev: true
       
      -  '@pnpm/crypto.base32-hash@3.0.0':
      +  /@pnpm/crypto.base32-hash@3.0.0:
      +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
      +    engines: {node: '>=18.12'}
           dependencies:
             rfc4648: 1.5.3
      +    dev: false
       
      -  '@pnpm/dedupe.issues-renderer@1.0.0':
      +  /@pnpm/dedupe.issues-renderer@1.0.0:
      +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/dedupe.types': 1.0.0
             archy: 1.0.0
             chalk: 4.1.2
      +    dev: true
       
      -  '@pnpm/dedupe.types@1.0.0': {}
      +  /@pnpm/dedupe.types@1.0.0:
      +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
      +    engines: {node: '>=16.14'}
      +    dev: true
       
      -  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
      +  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
      @@ -12036,37 +4174,57 @@ snapshots:
             normalize-path: 3.0.0
             pretty-bytes: 5.6.0
             pretty-ms: 7.0.1
      -      ramda: '@pnpm/ramda@0.28.1'
      +      ramda: /@pnpm/ramda@0.28.1
             right-pad: 1.0.1
             rxjs: 7.8.1
             semver: 7.6.0
             stacktracey: 2.1.8
             string-length: 4.0.2
             strip-ansi: 6.0.1
      +    dev: true
       
      -  '@pnpm/dependency-path@3.0.0':
      +  /@pnpm/dependency-path@3.0.0:
      +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/crypto.base32-hash': 3.0.0
             '@pnpm/types': 10.0.0
             semver: 7.6.0
      +    dev: false
       
      -  '@pnpm/error@4.0.1':
      +  /@pnpm/error@4.0.1:
      +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
      +    engines: {node: '>=14.6'}
           dependencies:
             '@pnpm/constants': 6.2.0
      +    dev: false
       
      -  '@pnpm/error@5.0.1':
      +  /@pnpm/error@5.0.1:
      +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/constants': 7.1.0
      +    dev: true
       
      -  '@pnpm/error@5.0.3':
      +  /@pnpm/error@5.0.3:
      +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/constants': 7.1.1
      +    dev: true
       
      -  '@pnpm/error@6.0.0':
      +  /@pnpm/error@6.0.0:
      +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/constants': 8.0.0
      +    dev: false
       
      -  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
      +  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
             '@pnpm/fetching-types': 6.0.0
      @@ -12074,30 +4232,42 @@ snapshots:
             '@pnpm/network.agent': 1.0.1
             '@pnpm/types': 10.0.0
             '@zkochan/retry': 0.2.0
      -      node-fetch: '@pnpm/node-fetch@1.0.0'
      +      node-fetch: /@pnpm/node-fetch@1.0.0
           transitivePeerDependencies:
             - domexception
             - supports-color
      +    dev: false
       
      -  '@pnpm/fetcher-base@14.0.1':
      +  /@pnpm/fetcher-base@14.0.1:
      +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/resolver-base': 10.0.1
             '@pnpm/types': 9.1.0
             '@types/ssri': 7.1.5
      +    dev: true
       
      -  '@pnpm/fetching-types@6.0.0':
      +  /@pnpm/fetching-types@6.0.0:
      +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@zkochan/retry': 0.2.0
      -      node-fetch: '@pnpm/node-fetch@1.0.0'
      +      node-fetch: /@pnpm/node-fetch@1.0.0
           transitivePeerDependencies:
             - domexception
      +    dev: false
       
      -  '@pnpm/find-workspace-dir@6.0.3':
      +  /@pnpm/find-workspace-dir@6.0.3:
      +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/error': 5.0.3
             find-up: 5.0.0
      +    dev: true
       
      -  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
      +  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
             '@pnpm/constants': 7.1.0
      @@ -12107,49 +4277,75 @@ snapshots:
             read-yaml-file: 2.1.0
           transitivePeerDependencies:
             - '@pnpm/logger'
      +    dev: true
       
      -  '@pnpm/fs.find-packages@2.0.1':
      +  /@pnpm/fs.find-packages@2.0.1:
      +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/read-project-manifest': 5.0.1
             '@pnpm/types': 9.1.0
             '@pnpm/util.lex-comparator': 1.0.0
             fast-glob: 3.3.2
             p-filter: 2.1.0
      +    dev: true
       
      -  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
      +  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
             '@pnpm/resolver-base': 12.0.0
             graceful-git: 3.1.2
      -      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
      +      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
             semver: 7.6.0
           transitivePeerDependencies:
             - '@pnpm/logger'
             - domexception
             - supports-color
      +    dev: false
       
      -  '@pnpm/git-utils@1.0.0':
      +  /@pnpm/git-utils@1.0.0:
      +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
      +    engines: {node: '>=16.14'}
           dependencies:
      -      execa: safe-execa@0.1.2
      +      execa: /safe-execa@0.1.2
      +    dev: true
       
      -  '@pnpm/git-utils@2.0.0':
      +  /@pnpm/git-utils@2.0.0:
      +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
      +    engines: {node: '>=18.12'}
           dependencies:
      -      execa: safe-execa@0.1.2
      +      execa: /safe-execa@0.1.2
      +    dev: false
       
      -  '@pnpm/graceful-fs@3.0.0':
      +  /@pnpm/graceful-fs@3.0.0:
      +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
      +    engines: {node: '>=16.14'}
           dependencies:
             graceful-fs: 4.2.11
      +    dev: true
       
      -  '@pnpm/hooks.types@1.0.1':
      +  /@pnpm/hooks.types@1.0.1:
      +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/lockfile-types': 5.1.0
             '@pnpm/types': 9.1.0
      +    dev: true
       
      -  '@pnpm/hosted-git-info@1.0.0':
      +  /@pnpm/hosted-git-info@1.0.0:
      +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
      +    engines: {node: '>=10'}
           dependencies:
             lru-cache: 6.0.0
      +    dev: false
       
      -  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
      +  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/constants': 8.0.0
             '@pnpm/dependency-path': 3.0.0
      @@ -12164,9 +4360,9 @@ snapshots:
             '@pnpm/util.lex-comparator': 3.0.0
             '@zkochan/rimraf': 2.1.3
             comver-to-semver: 1.0.0
      -      js-yaml: '@zkochan/js-yaml@0.0.7'
      +      js-yaml: /@zkochan/js-yaml@0.0.7
             normalize-path: 3.0.0
      -      ramda: '@pnpm/ramda@0.28.1'
      +      ramda: /@pnpm/ramda@0.28.1
             semver: 7.6.0
             sort-keys: 4.2.0
             strip-bom: 4.0.0
      @@ -12174,16 +4370,25 @@ snapshots:
           transitivePeerDependencies:
             - domexception
             - supports-color
      +    dev: false
       
      -  '@pnpm/lockfile-types@5.1.0':
      +  /@pnpm/lockfile-types@5.1.0:
      +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/types': 9.1.0
      +    dev: true
       
      -  '@pnpm/lockfile-types@6.0.0':
      +  /@pnpm/lockfile-types@6.0.0:
      +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/types': 10.0.0
      +    dev: false
       
      -  '@pnpm/lockfile-utils@10.0.0':
      +  /@pnpm/lockfile-utils@10.0.0:
      +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/dependency-path': 3.0.0
             '@pnpm/lockfile-types': 6.0.0
      @@ -12191,33 +4396,48 @@ snapshots:
             '@pnpm/resolver-base': 12.0.0
             '@pnpm/types': 10.0.0
             get-npm-tarball-url: 2.1.0
      -      ramda: '@pnpm/ramda@0.28.1'
      +      ramda: /@pnpm/ramda@0.28.1
      +    dev: false
       
      -  '@pnpm/logger@5.0.0':
      +  /@pnpm/logger@5.0.0:
      +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
      +    engines: {node: '>=12.17'}
           dependencies:
             bole: 5.0.11
             ndjson: 2.0.0
       
      -  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
      +  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
             '@pnpm/types': 9.1.0
           transitivePeerDependencies:
             - '@pnpm/logger'
      +    dev: true
       
      -  '@pnpm/matcher@5.0.0':
      +  /@pnpm/matcher@5.0.0:
      +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
      +    engines: {node: '>=16.14'}
           dependencies:
             escape-string-regexp: 4.0.0
      +    dev: true
       
      -  '@pnpm/merge-lockfile-changes@6.0.0':
      +  /@pnpm/merge-lockfile-changes@6.0.0:
      +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/lockfile-types': 6.0.0
             comver-to-semver: 1.0.0
      -      ramda: '@pnpm/ramda@0.28.1'
      +      ramda: /@pnpm/ramda@0.28.1
             semver: 7.6.0
      +    dev: false
       
      -  '@pnpm/meta-updater@1.0.0':
      +  /@pnpm/meta-updater@1.0.0:
      +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
      +    engines: {node: '>=10.12'}
      +    hasBin: true
           dependencies:
             '@pnpm/find-workspace-dir': 6.0.3
             '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
      @@ -12228,8 +4448,11 @@ snapshots:
             print-diff: 1.0.0
             ramda: 0.29.1
             write-json-file: 5.0.0
      +    dev: true
       
      -  '@pnpm/network.agent@1.0.1':
      +  /@pnpm/network.agent@1.0.1:
      +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
      +    engines: {node: '>=12.22.0'}
           dependencies:
             '@pnpm/network.config': 1.0.1
             '@pnpm/network.proxy-agent': 1.0.1
      @@ -12237,16 +4460,24 @@ snapshots:
             lru-cache: 7.10.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@pnpm/network.ca-file@1.0.2':
      +  /@pnpm/network.ca-file@1.0.2:
      +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
      +    engines: {node: '>=12.22.0'}
           dependencies:
             graceful-fs: 4.2.10
       
      -  '@pnpm/network.config@1.0.1':
      +  /@pnpm/network.config@1.0.1:
      +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
      +    engines: {node: '>=12.22.0'}
           dependencies:
             nerf-dart: 1.0.0
      +    dev: false
       
      -  '@pnpm/network.proxy-agent@1.0.1':
      +  /@pnpm/network.proxy-agent@1.0.1:
      +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
      +    engines: {node: '>=12.22.0'}
           dependencies:
             '@pnpm/error': 4.0.1
             http-proxy-agent: 5.0.0
      @@ -12255,40 +4486,62 @@ snapshots:
             socks-proxy-agent: 6.1.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@pnpm/node-fetch@1.0.0':
      +  /@pnpm/node-fetch@1.0.0:
      +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
      +    engines: {node: ^10.17 || >=12.3}
           dependencies:
             data-uri-to-buffer: 3.0.1
             fetch-blob: 2.1.2
           transitivePeerDependencies:
             - domexception
      +    dev: false
       
      -  '@pnpm/npm-conf@2.2.0':
      +  /@pnpm/npm-conf@2.2.0:
      +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
      +    engines: {node: '>=12'}
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/network.ca-file': 1.0.2
             config-chain: 1.1.13
      +    dev: true
       
      -  '@pnpm/npm-conf@2.2.2':
      +  /@pnpm/npm-conf@2.2.2:
      +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
      +    engines: {node: '>=12'}
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/network.ca-file': 1.0.2
             config-chain: 1.1.13
      +    dev: false
       
      -  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
      +  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 9.1.0
             detect-libc: 2.0.3
      -      execa: safe-execa@0.1.2
      +      execa: /safe-execa@0.1.2
             mem: 8.1.1
             semver: 7.6.0
      +    dev: true
       
      -  '@pnpm/pick-fetcher@3.0.0': {}
      +  /@pnpm/pick-fetcher@3.0.0:
      +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
      +    engines: {node: '>=18.12'}
      +    dev: false
       
      -  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
      +  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
      +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
      @@ -12299,10 +4552,14 @@ snapshots:
             '@pnpm/types': 9.1.0
             chalk: 4.1.2
             path-absolute: 1.0.1
      +    dev: true
       
      -  '@pnpm/ramda@0.28.1': {}
      +  /@pnpm/ramda@0.28.1:
      +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
       
      -  '@pnpm/read-project-manifest@5.0.1':
      +  /@pnpm/read-project-manifest@5.0.1:
      +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@gwhitney/detect-indent': 7.0.1
             '@pnpm/error': 5.0.1
      @@ -12317,69 +4574,116 @@ snapshots:
             read-yaml-file: 2.1.0
             sort-keys: 4.2.0
             strip-bom: 4.0.0
      +    dev: true
       
      -  '@pnpm/render-peer-issues@4.0.1':
      +  /@pnpm/render-peer-issues@4.0.1:
      +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/types': 9.1.0
             archy: 1.0.0
             chalk: 4.1.2
             cli-columns: 4.0.0
      +    dev: true
       
      -  '@pnpm/resolver-base@10.0.1':
      +  /@pnpm/resolver-base@10.0.1:
      +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/types': 9.1.0
      +    dev: true
       
      -  '@pnpm/resolver-base@12.0.0':
      +  /@pnpm/resolver-base@12.0.0:
      +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
      +    engines: {node: '>=18.12'}
           dependencies:
             '@pnpm/types': 10.0.0
      +    dev: false
       
      -  '@pnpm/store-controller-types@15.0.1':
      +  /@pnpm/store-controller-types@15.0.1:
      +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/fetcher-base': 14.0.1
             '@pnpm/resolver-base': 10.0.1
             '@pnpm/types': 9.1.0
      +    dev: true
       
      -  '@pnpm/text.comments-parser@2.0.0':
      +  /@pnpm/text.comments-parser@2.0.0:
      +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
      +    engines: {node: '>=16.14'}
           dependencies:
             strip-comments-strings: 1.2.0
      +    dev: true
       
      -  '@pnpm/types@10.0.0': {}
      +  /@pnpm/types@10.0.0:
      +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
      +    engines: {node: '>=18.12'}
      +    dev: false
       
      -  '@pnpm/types@9.1.0': {}
      +  /@pnpm/types@9.1.0:
      +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
      +    engines: {node: '>=16.14'}
      +    dev: true
       
      -  '@pnpm/types@9.4.2': {}
      +  /@pnpm/types@9.4.2:
      +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
      +    engines: {node: '>=16.14'}
      +    dev: true
       
      -  '@pnpm/util.lex-comparator@1.0.0': {}
      +  /@pnpm/util.lex-comparator@1.0.0:
      +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
      +    engines: {node: '>=12.22.0'}
      +    dev: true
       
      -  '@pnpm/util.lex-comparator@3.0.0': {}
      +  /@pnpm/util.lex-comparator@3.0.0:
      +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
      +    engines: {node: '>=18.12'}
      +    dev: false
       
      -  '@pnpm/write-project-manifest@5.0.1':
      +  /@pnpm/write-project-manifest@5.0.1:
      +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
      +    engines: {node: '>=16.14'}
           dependencies:
             '@pnpm/text.comments-parser': 2.0.0
             '@pnpm/types': 9.1.0
             json5: 2.2.3
             write-file-atomic: 5.0.1
             write-yaml-file: 5.0.0
      +    dev: true
       
      -  '@polka/url@1.0.0-next.25': {}
      +  /@polka/url@1.0.0-next.25:
      +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
      +    dev: false
       
      -  '@rushstack/eslint-patch@1.8.0': {}
      +  /@rushstack/eslint-patch@1.8.0:
      +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
      +    dev: true
       
      -  '@sideway/address@4.1.5':
      +  /@sideway/address@4.1.5:
      +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
           dependencies:
             '@hapi/hoek': 9.3.0
       
      -  '@sideway/formula@3.0.1': {}
      +  /@sideway/formula@3.0.1:
      +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
       
      -  '@sideway/pinpoint@2.0.0': {}
      +  /@sideway/pinpoint@2.0.0:
      +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
       
      -  '@sigstore/bundle@1.1.0':
      +  /@sigstore/bundle@1.1.0:
      +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@sigstore/protobuf-specs': 0.2.1
       
      -  '@sigstore/protobuf-specs@0.2.1': {}
      +  /@sigstore/protobuf-specs@0.2.1:
      +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  '@sigstore/sign@1.0.0':
      +  /@sigstore/sign@1.0.0:
      +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@sigstore/bundle': 1.1.0
             '@sigstore/protobuf-specs': 0.2.1
      @@ -12387,112 +4691,210 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  '@sigstore/tuf@1.0.3':
      +  /@sigstore/tuf@1.0.3:
      +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@sigstore/protobuf-specs': 0.2.1
             tuf-js: 1.1.7
           transitivePeerDependencies:
             - supports-color
       
      -  '@sinclair/typebox@0.27.8': {}
      +  /@sinclair/typebox@0.27.8:
      +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
       
      -  '@sindresorhus/is@4.6.0': {}
      +  /@sindresorhus/is@4.6.0:
      +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  '@sindresorhus/is@5.6.0': {}
      +  /@sindresorhus/is@5.6.0:
      +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
      +    engines: {node: '>=14.16'}
      +    dev: false
       
      -  '@sinonjs/commons@2.0.0':
      +  /@sinonjs/commons@2.0.0:
      +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
           dependencies:
             type-detect: 4.0.8
      +    dev: true
       
      -  '@sinonjs/commons@3.0.1':
      +  /@sinonjs/commons@3.0.1:
      +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
           dependencies:
             type-detect: 4.0.8
      +    dev: true
       
      -  '@sinonjs/fake-timers@10.3.0':
      +  /@sinonjs/fake-timers@10.3.0:
      +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
           dependencies:
             '@sinonjs/commons': 3.0.1
      +    dev: true
       
      -  '@sinonjs/fake-timers@11.2.2':
      +  /@sinonjs/fake-timers@11.2.2:
      +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
           dependencies:
             '@sinonjs/commons': 3.0.1
      +    dev: true
       
      -  '@sinonjs/samsam@8.0.0':
      +  /@sinonjs/samsam@8.0.0:
      +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
           dependencies:
             '@sinonjs/commons': 2.0.0
             lodash.get: 4.4.2
             type-detect: 4.0.8
      +    dev: true
       
      -  '@sinonjs/text-encoding@0.7.2': {}
      +  /@sinonjs/text-encoding@0.7.2:
      +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
      +    dev: true
       
      -  '@slorber/remark-comment@1.0.0':
      +  /@slorber/remark-comment@1.0.0:
      +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
           dependencies:
             micromark-factory-space: 1.1.0
             micromark-util-character: 1.2.0
             micromark-util-symbol: 1.1.0
      +    dev: false
       
      -  '@slorber/static-site-generator-webpack-plugin@4.0.7':
      +  /@slorber/static-site-generator-webpack-plugin@4.0.7:
      +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
      +    engines: {node: '>=14'}
           dependencies:
             eval: 0.1.8
             p-map: 4.0.0
             webpack-sources: 3.2.3
      +    dev: false
       
      -  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
       
      -  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
       
      -  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: false
       
      -  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
      +  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
      +    dev: true
       
      -  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
      +  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
      @@ -12503,8 +4905,13 @@ snapshots:
             '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
      +    dev: false
       
      -  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
      +  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
      @@ -12515,8 +4922,11 @@ snapshots:
             '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
      +    dev: true
       
      -  '@svgr/core@6.5.1':
      +  /@svgr/core@6.5.1:
      +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
      +    engines: {node: '>=10'}
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
      @@ -12525,8 +4935,11 @@ snapshots:
             cosmiconfig: 7.1.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@svgr/core@8.1.0(typescript@5.4.3)':
      +  /@svgr/core@8.1.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
      +    engines: {node: '>=14'}
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
      @@ -12536,18 +4949,29 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
             - typescript
      +    dev: true
       
      -  '@svgr/hast-util-to-babel-ast@6.5.1':
      +  /@svgr/hast-util-to-babel-ast@6.5.1:
      +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
      +    engines: {node: '>=10'}
           dependencies:
             '@babel/types': 7.24.0
             entities: 4.5.0
      +    dev: false
       
      -  '@svgr/hast-util-to-babel-ast@8.0.0':
      +  /@svgr/hast-util-to-babel-ast@8.0.0:
      +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
      +    engines: {node: '>=14'}
           dependencies:
             '@babel/types': 7.24.0
             entities: 4.5.0
      +    dev: true
       
      -  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
      +  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
      +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@svgr/core': ^6.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
      @@ -12556,8 +4980,13 @@ snapshots:
             svg-parser: 2.0.4
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
      +  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
      +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@svgr/core': '*'
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
      @@ -12566,15 +4995,25 @@ snapshots:
             svg-parser: 2.0.4
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
      +  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
      +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@svgr/core': '*'
           dependencies:
             '@svgr/core': 6.5.1
             cosmiconfig: 7.1.0
             deepmerge: 4.3.1
             svgo: 2.8.0
      +    dev: false
       
      -  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
      +  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@svgr/core': '*'
           dependencies:
             '@svgr/core': 8.1.0(typescript@5.4.3)
             cosmiconfig: 8.3.6(typescript@5.4.3)
      @@ -12582,8 +5021,11 @@ snapshots:
             svgo: 3.2.0
           transitivePeerDependencies:
             - typescript
      +    dev: true
       
      -  '@svgr/webpack@6.5.1':
      +  /@svgr/webpack@6.5.1:
      +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
      +    engines: {node: '>=10'}
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
      @@ -12595,8 +5037,11 @@ snapshots:
             '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  '@svgr/webpack@8.1.0(typescript@5.4.3)':
      +  /@svgr/webpack@8.1.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
      +    engines: {node: '>=14'}
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
      @@ -12609,16 +5054,24 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
             - typescript
      +    dev: true
       
      -  '@swc/helpers@0.5.2':
      +  /@swc/helpers@0.5.2:
      +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
           dependencies:
             tslib: 2.6.2
      +    dev: false
       
      -  '@szmarczak/http-timer@5.0.1':
      +  /@szmarczak/http-timer@5.0.1:
      +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
      +    engines: {node: '>=14.16'}
           dependencies:
             defer-to-connect: 2.0.1
      +    dev: false
       
      -  '@testing-library/dom@9.3.4':
      +  /@testing-library/dom@9.3.4:
      +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
      +    engines: {node: '>=14'}
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/runtime': 7.24.1
      @@ -12628,338 +5081,495 @@ snapshots:
             dom-accessibility-api: 0.5.16
             lz-string: 1.5.0
             pretty-format: 27.5.1
      +    dev: true
       
      -  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
      +  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
           dependencies:
             '@babel/runtime': 7.24.1
             '@testing-library/dom': 9.3.4
             '@types/react-dom': 18.2.22
             react: 18.2.0
             react-dom: 18.2.0(react@18.2.0)
      +    dev: true
       
      -  '@tootallnate/once@1.1.2': {}
      +  /@tootallnate/once@1.1.2:
      +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
      +    engines: {node: '>= 6'}
       
      -  '@tootallnate/once@2.0.0': {}
      +  /@tootallnate/once@2.0.0:
      +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
      +    engines: {node: '>= 10'}
       
      -  '@trysound/sax@0.2.0': {}
      +  /@trysound/sax@0.2.0:
      +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
      +    engines: {node: '>=10.13.0'}
       
      -  '@tsconfig/docusaurus@2.0.2': {}
      +  /@tsconfig/docusaurus@2.0.2:
      +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
      +    dev: true
       
      -  '@tsconfig/node10@1.0.10': {}
      +  /@tsconfig/node10@1.0.10:
      +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
      +    dev: true
       
      -  '@tsconfig/node12@1.0.11': {}
      +  /@tsconfig/node12@1.0.11:
      +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
      +    dev: true
       
      -  '@tsconfig/node14@1.0.3': {}
      +  /@tsconfig/node14@1.0.3:
      +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
      +    dev: true
       
      -  '@tsconfig/node16@1.0.4': {}
      +  /@tsconfig/node16@1.0.4:
      +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
      +    dev: true
       
      -  '@tufjs/canonical-json@1.0.0': {}
      +  /@tufjs/canonical-json@1.0.0:
      +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  '@tufjs/models@1.0.4':
      +  /@tufjs/models@1.0.4:
      +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@tufjs/canonical-json': 1.0.0
             minimatch: 9.0.3
       
      -  '@types/acorn@4.0.6':
      +  /@types/acorn@4.0.6:
      +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
           dependencies:
             '@types/estree': 1.0.5
       
      -  '@types/aria-query@5.0.4': {}
      +  /@types/aria-query@5.0.4:
      +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
      +    dev: true
       
      -  '@types/babel__core@7.20.5':
      +  /@types/babel__core@7.20.5:
      +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
             '@types/babel__generator': 7.6.8
             '@types/babel__template': 7.4.4
             '@types/babel__traverse': 7.20.5
      +    dev: true
       
      -  '@types/babel__generator@7.6.8':
      +  /@types/babel__generator@7.6.8:
      +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
           dependencies:
             '@babel/types': 7.24.0
      +    dev: true
       
      -  '@types/babel__template@7.4.4':
      +  /@types/babel__template@7.4.4:
      +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
      +    dev: true
       
      -  '@types/babel__traverse@7.20.5':
      +  /@types/babel__traverse@7.20.5:
      +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
           dependencies:
             '@babel/types': 7.24.0
      +    dev: true
       
      -  '@types/body-parser@1.19.5':
      +  /@types/body-parser@1.19.5:
      +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
           dependencies:
             '@types/connect': 3.4.38
             '@types/node': 18.18.2
       
      -  '@types/bonjour@3.5.13':
      +  /@types/bonjour@3.5.13:
      +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/chai@4.3.14': {}
      +  /@types/chai@4.3.14:
      +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
       
      -  '@types/connect-history-api-fallback@1.5.4':
      +  /@types/connect-history-api-fallback@1.5.4:
      +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
           dependencies:
             '@types/express-serve-static-core': 4.17.43
             '@types/node': 18.18.2
       
      -  '@types/connect@3.4.38':
      +  /@types/connect@3.4.38:
      +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/debug@4.1.12':
      +  /@types/debug@4.1.12:
      +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
           dependencies:
             '@types/ms': 0.7.34
       
      -  '@types/eslint-scope@3.7.7':
      +  /@types/eslint-scope@3.7.7:
      +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
           dependencies:
             '@types/eslint': 8.56.6
             '@types/estree': 1.0.5
       
      -  '@types/eslint@8.56.6':
      +  /@types/eslint@8.56.6:
      +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
           dependencies:
             '@types/estree': 1.0.5
             '@types/json-schema': 7.0.15
       
      -  '@types/estree-jsx@1.0.5':
      +  /@types/estree-jsx@1.0.5:
      +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
           dependencies:
             '@types/estree': 1.0.5
       
      -  '@types/estree@1.0.5': {}
      +  /@types/estree@1.0.5:
      +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
       
      -  '@types/expect@1.20.4': {}
      +  /@types/expect@1.20.4:
      +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
       
      -  '@types/express-serve-static-core@4.17.43':
      +  /@types/express-serve-static-core@4.17.43:
      +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
           dependencies:
             '@types/node': 18.18.2
             '@types/qs': 6.9.14
             '@types/range-parser': 1.2.7
             '@types/send': 0.17.4
       
      -  '@types/express@4.17.21':
      +  /@types/express@4.17.21:
      +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
           dependencies:
             '@types/body-parser': 1.19.5
             '@types/express-serve-static-core': 4.17.43
             '@types/qs': 6.9.14
             '@types/serve-static': 1.15.5
       
      -  '@types/fs-extra@11.0.4':
      +  /@types/fs-extra@11.0.4:
      +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
           dependencies:
             '@types/jsonfile': 6.1.4
             '@types/node': 18.18.2
      +    dev: true
       
      -  '@types/glob@8.1.0':
      +  /@types/glob@8.1.0:
      +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
           dependencies:
             '@types/minimatch': 5.1.2
             '@types/node': 18.18.2
      +    dev: true
       
      -  '@types/graceful-fs@4.1.9':
      +  /@types/graceful-fs@4.1.9:
      +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
           dependencies:
             '@types/node': 18.18.2
      +    dev: true
       
      -  '@types/gtag.js@0.0.12': {}
      +  /@types/gtag.js@0.0.12:
      +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
      +    dev: false
       
      -  '@types/hast@3.0.4':
      +  /@types/hast@3.0.4:
      +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  '@types/history@4.7.11': {}
      +  /@types/history@4.7.11:
      +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
       
      -  '@types/html-minifier-terser@6.1.0': {}
      +  /@types/html-minifier-terser@6.1.0:
      +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
       
      -  '@types/http-cache-semantics@4.0.4': {}
      +  /@types/http-cache-semantics@4.0.4:
      +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
      +    dev: false
       
      -  '@types/http-errors@2.0.4': {}
      +  /@types/http-errors@2.0.4:
      +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
       
      -  '@types/http-proxy@1.17.14':
      +  /@types/http-proxy@1.17.14:
      +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/istanbul-lib-coverage@2.0.6': {}
      +  /@types/istanbul-lib-coverage@2.0.6:
      +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
       
      -  '@types/istanbul-lib-report@3.0.3':
      +  /@types/istanbul-lib-report@3.0.3:
      +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
           dependencies:
             '@types/istanbul-lib-coverage': 2.0.6
       
      -  '@types/istanbul-reports@3.0.4':
      +  /@types/istanbul-reports@3.0.4:
      +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
           dependencies:
             '@types/istanbul-lib-report': 3.0.3
       
      -  '@types/jest@29.5.12':
      +  /@types/jest@29.5.12:
      +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
           dependencies:
             expect: 29.7.0
             pretty-format: 29.7.0
      +    dev: true
       
      -  '@types/js-cookie@2.2.7': {}
      +  /@types/js-cookie@2.2.7:
      +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
      +    dev: false
       
      -  '@types/js-yaml@4.0.9': {}
      +  /@types/js-yaml@4.0.9:
      +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
       
      -  '@types/jsdom@20.0.1':
      +  /@types/jsdom@20.0.1:
      +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
           dependencies:
             '@types/node': 18.18.2
             '@types/tough-cookie': 4.0.5
             parse5: 7.1.2
      +    dev: true
       
      -  '@types/json-schema@7.0.15': {}
      +  /@types/json-schema@7.0.15:
      +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
       
      -  '@types/json5@0.0.29': {}
      +  /@types/json5@0.0.29:
      +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
      +    dev: true
       
      -  '@types/jsonfile@6.1.4':
      +  /@types/jsonfile@6.1.4:
      +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
           dependencies:
             '@types/node': 18.18.2
      +    dev: true
       
      -  '@types/lodash@4.17.0': {}
      +  /@types/lodash@4.17.0:
      +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
       
      -  '@types/mdast@4.0.3':
      +  /@types/mdast@4.0.3:
      +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  '@types/mdx-js__react@1.5.8':
      +  /@types/mdx-js__react@1.5.8:
      +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
           dependencies:
             '@types/react': 18.2.71
      +    dev: true
       
      -  '@types/mdx@2.0.12': {}
      +  /@types/mdx@2.0.12:
      +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
       
      -  '@types/mime@1.3.5': {}
      +  /@types/mime@1.3.5:
      +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
       
      -  '@types/mime@3.0.4': {}
      +  /@types/mime@3.0.4:
      +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
       
      -  '@types/minimatch@3.0.5': {}
      +  /@types/minimatch@3.0.5:
      +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
       
      -  '@types/minimatch@5.1.2': {}
      +  /@types/minimatch@5.1.2:
      +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
      +    dev: true
       
      -  '@types/minimist@1.2.5': {}
      +  /@types/minimist@1.2.5:
      +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
      +    dev: true
       
      -  '@types/mocha@10.0.6': {}
      +  /@types/mocha@10.0.6:
      +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
      +    dev: true
       
      -  '@types/moo@0.5.9': {}
      +  /@types/moo@0.5.9:
      +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
      +    dev: true
       
      -  '@types/ms@0.7.34': {}
      +  /@types/ms@0.7.34:
      +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
       
      -  '@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)': {}
      +  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
      +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
      +    dev: true
      +    patched: true
       
      -  '@types/node-forge@1.3.11':
      +  /@types/node-forge@1.3.11:
      +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/node@15.14.9': {}
      +  /@types/node@15.14.9:
      +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
       
      -  '@types/node@17.0.45': {}
      +  /@types/node@17.0.45:
      +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
      +    dev: false
       
      -  '@types/node@18.18.2': {}
      +  /@types/node@18.18.2:
      +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
       
      -  '@types/normalize-package-data@2.4.4': {}
      +  /@types/normalize-package-data@2.4.4:
      +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
       
      -  '@types/normalize-path@3.0.2': {}
      +  /@types/normalize-path@3.0.2:
      +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
      +    dev: false
       
      -  '@types/parse-json@4.0.2': {}
      +  /@types/parse-json@4.0.2:
      +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
      +    dev: false
       
      -  '@types/prismjs@1.26.3': {}
      +  /@types/prismjs@1.26.3:
      +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
      +    dev: false
       
      -  '@types/prop-types@15.7.12': {}
      +  /@types/prop-types@15.7.12:
      +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
       
      -  '@types/qs@6.9.14': {}
      +  /@types/qs@6.9.14:
      +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
       
      -  '@types/range-parser@1.2.7': {}
      +  /@types/range-parser@1.2.7:
      +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
       
      -  '@types/react-dom@18.2.22':
      +  /@types/react-dom@18.2.22:
      +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
           dependencies:
             '@types/react': 18.2.71
      +    dev: true
       
      -  '@types/react-helmet@6.1.11':
      +  /@types/react-helmet@6.1.11:
      +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
           dependencies:
             '@types/react': 18.2.71
      +    dev: true
       
      -  '@types/react-router-config@5.0.11':
      +  /@types/react-router-config@5.0.11:
      +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
             '@types/react-router': 5.1.20
       
      -  '@types/react-router-dom@5.3.3':
      +  /@types/react-router-dom@5.3.3:
      +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
             '@types/react-router': 5.1.20
       
      -  '@types/react-router@5.1.20':
      +  /@types/react-router@5.1.20:
      +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
       
      -  '@types/react@18.2.71':
      +  /@types/react@18.2.71:
      +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
           dependencies:
             '@types/prop-types': 15.7.12
             '@types/scheduler': 0.23.0
             csstype: 3.1.3
       
      -  '@types/retry@0.12.0': {}
      +  /@types/retry@0.12.0:
      +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
      +    dev: false
       
      -  '@types/retry@0.12.2': {}
      +  /@types/retry@0.12.2:
      +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
       
      -  '@types/sax@1.2.7':
      +  /@types/sax@1.2.7:
      +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
           dependencies:
             '@types/node': 18.18.2
      +    dev: false
       
      -  '@types/sbd@1.0.5': {}
      +  /@types/sbd@1.0.5:
      +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
      +    dev: true
       
      -  '@types/scheduler@0.23.0': {}
      +  /@types/scheduler@0.23.0:
      +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
       
      -  '@types/semver@7.5.8': {}
      +  /@types/semver@7.5.8:
      +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
      +    dev: true
       
      -  '@types/send@0.17.4':
      +  /@types/send@0.17.4:
      +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
           dependencies:
             '@types/mime': 1.3.5
             '@types/node': 18.18.2
       
      -  '@types/serve-index@1.9.4':
      +  /@types/serve-index@1.9.4:
      +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
           dependencies:
             '@types/express': 4.17.21
       
      -  '@types/serve-static@1.15.5':
      +  /@types/serve-static@1.15.5:
      +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
           dependencies:
             '@types/http-errors': 2.0.4
             '@types/mime': 3.0.4
             '@types/node': 18.18.2
       
      -  '@types/sinon@17.0.3':
      +  /@types/sinon@17.0.3:
      +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
           dependencies:
             '@types/sinonjs__fake-timers': 8.1.5
       
      -  '@types/sinonjs__fake-timers@8.1.5': {}
      +  /@types/sinonjs__fake-timers@8.1.5:
      +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
       
      -  '@types/sockjs@0.3.36':
      +  /@types/sockjs@0.3.36:
      +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/ssri@7.1.5':
      +  /@types/ssri@7.1.5:
      +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
           dependencies:
             '@types/node': 18.18.2
      +    dev: true
       
      -  '@types/stack-utils@2.0.3': {}
      +  /@types/stack-utils@2.0.3:
      +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
      +    dev: true
       
      -  '@types/tail@2.2.3': {}
      +  /@types/tail@2.2.3:
      +    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
      +    dev: true
       
      -  '@types/tinycolor2@1.4.6': {}
      +  /@types/tinycolor2@1.4.6:
      +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
      +    dev: true
       
      -  '@types/tough-cookie@4.0.5': {}
      +  /@types/tough-cookie@4.0.5:
      +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
      +    dev: true
       
      -  '@types/triple-beam@1.3.5': {}
      +  /@types/triple-beam@1.3.5:
      +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
       
      -  '@types/unist@2.0.10': {}
      +  /@types/unist@2.0.10:
      +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
       
      -  '@types/unist@3.0.2': {}
      +  /@types/unist@3.0.2:
      +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
       
      -  '@types/uuid@9.0.8': {}
      +  /@types/uuid@9.0.8:
      +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
       
      -  '@types/vinyl@2.0.11':
      +  /@types/vinyl@2.0.11:
      +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
           dependencies:
             '@types/expect': 1.20.4
             '@types/node': 18.18.2
       
      -  '@types/vscode@1.75.1': {}
      +  /@types/vscode@1.75.1:
      +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
       
      -  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
      +  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
      +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
           dependencies:
             '@types/node': 18.18.2
             tapable: 2.2.1
      @@ -12969,18 +5579,31 @@ snapshots:
             - esbuild
             - uglify-js
             - webpack-cli
      +    dev: true
       
      -  '@types/ws@8.5.10':
      +  /@types/ws@8.5.10:
      +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
           dependencies:
             '@types/node': 18.18.2
       
      -  '@types/yargs-parser@21.0.3': {}
      +  /@types/yargs-parser@21.0.3:
      +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
       
      -  '@types/yargs@17.0.32':
      +  /@types/yargs@17.0.32:
      +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
           dependencies:
             '@types/yargs-parser': 21.0.3
       
      -  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
      +  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      '@typescript-eslint/parser': ^7.0.0
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@eslint-community/regexpp': 4.10.0
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
      @@ -12998,8 +5621,17 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
      +  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +    peerDependencies:
      +      eslint: ^7.0.0 || ^8.0.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@typescript-eslint/scope-manager': 6.21.0
             '@typescript-eslint/types': 6.21.0
      @@ -13010,8 +5642,17 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
      +  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@typescript-eslint/scope-manager': 7.4.0
             '@typescript-eslint/types': 7.4.0
      @@ -13022,18 +5663,33 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/scope-manager@6.21.0':
      +  /@typescript-eslint/scope-manager@6.21.0:
      +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
           dependencies:
             '@typescript-eslint/types': 6.21.0
             '@typescript-eslint/visitor-keys': 6.21.0
      +    dev: true
       
      -  '@typescript-eslint/scope-manager@7.4.0':
      +  /@typescript-eslint/scope-manager@7.4.0:
      +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
           dependencies:
             '@typescript-eslint/types': 7.4.0
             '@typescript-eslint/visitor-keys': 7.4.0
      +    dev: true
       
      -  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
      +  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
             '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
      @@ -13043,12 +5699,26 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/types@6.21.0': {}
      +  /@typescript-eslint/types@6.21.0:
      +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +    dev: true
       
      -  '@typescript-eslint/types@7.4.0': {}
      +  /@typescript-eslint/types@7.4.0:
      +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    dev: true
       
      -  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
      +  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +    peerDependencies:
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@typescript-eslint/types': 6.21.0
             '@typescript-eslint/visitor-keys': 6.21.0
      @@ -13061,8 +5731,16 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
      +  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@typescript-eslint/types': 7.4.0
             '@typescript-eslint/visitor-keys': 7.4.0
      @@ -13075,8 +5753,13 @@ snapshots:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
      +  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
           dependencies:
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
             '@types/json-schema': 7.0.15
      @@ -13089,20 +5772,30 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
             - typescript
      +    dev: true
       
      -  '@typescript-eslint/visitor-keys@6.21.0':
      +  /@typescript-eslint/visitor-keys@6.21.0:
      +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
           dependencies:
             '@typescript-eslint/types': 6.21.0
             eslint-visitor-keys: 3.4.3
      +    dev: true
       
      -  '@typescript-eslint/visitor-keys@7.4.0':
      +  /@typescript-eslint/visitor-keys@7.4.0:
      +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
           dependencies:
             '@typescript-eslint/types': 7.4.0
             eslint-visitor-keys: 3.4.3
      +    dev: true
       
      -  '@ungap/structured-clone@1.2.0': {}
      +  /@ungap/structured-clone@1.2.0:
      +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
       
      -  '@vscode/test-electron@2.3.9':
      +  /@vscode/test-electron@2.3.9:
      +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
      +    engines: {node: '>=16'}
           dependencies:
             http-proxy-agent: 4.0.1
             https-proxy-agent: 5.0.1
      @@ -13110,44 +5803,56 @@ snapshots:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  '@webassemblyjs/ast@1.12.1':
      +  /@webassemblyjs/ast@1.12.1:
      +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
           dependencies:
             '@webassemblyjs/helper-numbers': 1.11.6
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
       
      -  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
      +  /@webassemblyjs/floating-point-hex-parser@1.11.6:
      +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
       
      -  '@webassemblyjs/helper-api-error@1.11.6': {}
      +  /@webassemblyjs/helper-api-error@1.11.6:
      +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
       
      -  '@webassemblyjs/helper-buffer@1.12.1': {}
      +  /@webassemblyjs/helper-buffer@1.12.1:
      +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
       
      -  '@webassemblyjs/helper-numbers@1.11.6':
      +  /@webassemblyjs/helper-numbers@1.11.6:
      +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
           dependencies:
             '@webassemblyjs/floating-point-hex-parser': 1.11.6
             '@webassemblyjs/helper-api-error': 1.11.6
             '@xtuc/long': 4.2.2
       
      -  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
      +  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
      +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
       
      -  '@webassemblyjs/helper-wasm-section@1.12.1':
      +  /@webassemblyjs/helper-wasm-section@1.12.1:
      +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
             '@webassemblyjs/wasm-gen': 1.12.1
       
      -  '@webassemblyjs/ieee754@1.11.6':
      +  /@webassemblyjs/ieee754@1.11.6:
      +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
           dependencies:
             '@xtuc/ieee754': 1.2.0
       
      -  '@webassemblyjs/leb128@1.11.6':
      +  /@webassemblyjs/leb128@1.11.6:
      +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
           dependencies:
             '@xtuc/long': 4.2.2
       
      -  '@webassemblyjs/utf8@1.11.6': {}
      +  /@webassemblyjs/utf8@1.11.6:
      +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
       
      -  '@webassemblyjs/wasm-edit@1.12.1':
      +  /@webassemblyjs/wasm-edit@1.12.1:
      +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
      @@ -13158,7 +5863,8 @@ snapshots:
             '@webassemblyjs/wasm-parser': 1.12.1
             '@webassemblyjs/wast-printer': 1.12.1
       
      -  '@webassemblyjs/wasm-gen@1.12.1':
      +  /@webassemblyjs/wasm-gen@1.12.1:
      +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
      @@ -13166,14 +5872,16 @@ snapshots:
             '@webassemblyjs/leb128': 1.11.6
             '@webassemblyjs/utf8': 1.11.6
       
      -  '@webassemblyjs/wasm-opt@1.12.1':
      +  /@webassemblyjs/wasm-opt@1.12.1:
      +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
             '@webassemblyjs/wasm-gen': 1.12.1
             '@webassemblyjs/wasm-parser': 1.12.1
       
      -  '@webassemblyjs/wasm-parser@1.12.1':
      +  /@webassemblyjs/wasm-parser@1.12.1:
      +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-api-error': 1.11.6
      @@ -13182,17 +5890,32 @@ snapshots:
             '@webassemblyjs/leb128': 1.11.6
             '@webassemblyjs/utf8': 1.11.6
       
      -  '@webassemblyjs/wast-printer@1.12.1':
      +  /@webassemblyjs/wast-printer@1.12.1:
      +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@xtuc/long': 4.2.2
       
      -  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
      +  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
       
      -  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
      +  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      prettier: '*'
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +    peerDependenciesMeta:
      +      prettier:
      +        optional: true
           dependencies:
             prettier: 3.2.5
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      @@ -13205,125 +5928,207 @@ snapshots:
             - mem-fs
             - supports-color
       
      -  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
      +  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
       
      -  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
      +  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +      webpack-dev-server: '*'
      +    peerDependenciesMeta:
      +      webpack-dev-server:
      +        optional: true
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
             webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
       
      -  '@xobotyi/scrollbar-width@1.9.5': {}
      +  /@xobotyi/scrollbar-width@1.9.5:
      +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
      +    dev: false
       
      -  '@xtuc/ieee754@1.2.0': {}
      +  /@xtuc/ieee754@1.2.0:
      +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
       
      -  '@xtuc/long@4.2.2': {}
      +  /@xtuc/long@4.2.2:
      +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
       
      -  '@zkochan/js-yaml@0.0.7':
      +  /@zkochan/js-yaml@0.0.7:
      +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
      +    hasBin: true
           dependencies:
             argparse: 2.0.1
      +    dev: false
       
      -  '@zkochan/retry@0.2.0': {}
      +  /@zkochan/retry@0.2.0:
      +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  '@zkochan/rimraf@2.1.3':
      +  /@zkochan/rimraf@2.1.3:
      +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
      +    engines: {node: '>=12.10'}
           dependencies:
             rimraf: 3.0.2
      +    dev: false
       
      -  '@zkochan/which@2.0.3':
      +  /@zkochan/which@2.0.3:
      +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
      +    engines: {node: '>= 8'}
      +    hasBin: true
           dependencies:
             isexe: 2.0.0
       
      -  abab@2.0.6: {}
      +  /abab@2.0.6:
      +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
      +    deprecated: Use your platform's native atob() and btoa() methods instead
      +    dev: true
       
      -  abbrev@1.1.1: {}
      +  /abbrev@1.1.1:
      +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
       
      -  abort-controller@3.0.0:
      +  /abort-controller@3.0.0:
      +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
      +    engines: {node: '>=6.5'}
           dependencies:
             event-target-shim: 5.0.1
       
      -  accepts@1.3.8:
      +  /accepts@1.3.8:
      +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             mime-types: 2.1.35
             negotiator: 0.6.3
       
      -  acorn-globals@7.0.1:
      +  /acorn-globals@7.0.1:
      +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
           dependencies:
             acorn: 8.11.3
             acorn-walk: 8.3.2
      +    dev: true
       
      -  acorn-import-assertions@1.9.0(acorn@8.11.3):
      +  /acorn-import-assertions@1.9.0(acorn@8.11.3):
      +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
      +    peerDependencies:
      +      acorn: ^8
           dependencies:
             acorn: 8.11.3
       
      -  acorn-jsx@5.3.2(acorn@8.11.3):
      +  /acorn-jsx@5.3.2(acorn@8.11.3):
      +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
      +    peerDependencies:
      +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
           dependencies:
             acorn: 8.11.3
       
      -  acorn-walk@8.3.2: {}
      +  /acorn-walk@8.3.2:
      +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
      +    engines: {node: '>=0.4.0'}
       
      -  acorn@8.11.3: {}
      +  /acorn@8.11.3:
      +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
      +    engines: {node: '>=0.4.0'}
      +    hasBin: true
       
      -  address@1.2.2: {}
      +  /address@1.2.2:
      +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
      +    engines: {node: '>= 10.0.0'}
      +    dev: false
       
      -  agent-base@6.0.2:
      +  /agent-base@6.0.2:
      +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
      +    engines: {node: '>= 6.0.0'}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
       
      -  agentkeepalive@4.2.1:
      +  /agentkeepalive@4.2.1:
      +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
      +    engines: {node: '>= 8.0.0'}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             depd: 1.1.2
             humanize-ms: 1.2.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  agentkeepalive@4.5.0:
      +  /agentkeepalive@4.5.0:
      +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
      +    engines: {node: '>= 8.0.0'}
           dependencies:
             humanize-ms: 1.2.1
       
      -  aggregate-error@3.1.0:
      +  /aggregate-error@3.1.0:
      +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
      +    engines: {node: '>=8'}
           dependencies:
             clean-stack: 2.2.0
             indent-string: 4.0.0
       
      -  ajv-formats@2.1.1(ajv@8.12.0):
      +  /ajv-formats@2.1.1(ajv@8.12.0):
      +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
      +    peerDependencies:
      +      ajv: ^8.0.0
      +    peerDependenciesMeta:
      +      ajv:
      +        optional: true
           dependencies:
             ajv: 8.12.0
       
      -  ajv-keywords@3.5.2(ajv@6.12.6):
      +  /ajv-keywords@3.5.2(ajv@6.12.6):
      +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
      +    peerDependencies:
      +      ajv: ^6.9.1
           dependencies:
             ajv: 6.12.6
       
      -  ajv-keywords@5.1.0(ajv@8.12.0):
      +  /ajv-keywords@5.1.0(ajv@8.12.0):
      +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
      +    peerDependencies:
      +      ajv: ^8.8.2
           dependencies:
             ajv: 8.12.0
             fast-deep-equal: 3.1.3
       
      -  ajv@6.12.6:
      +  /ajv@6.12.6:
      +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
           dependencies:
             fast-deep-equal: 3.1.3
             fast-json-stable-stringify: 2.1.0
             json-schema-traverse: 0.4.1
             uri-js: 4.4.1
       
      -  ajv@8.12.0:
      +  /ajv@8.12.0:
      +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
           dependencies:
             fast-deep-equal: 3.1.3
             json-schema-traverse: 1.0.0
             require-from-string: 2.0.2
             uri-js: 4.4.1
       
      -  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
      +  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
      +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
      +    peerDependencies:
      +      algoliasearch: '>= 3.1 < 6'
           dependencies:
             '@algolia/events': 4.0.1
             algoliasearch: 4.22.1
      +    dev: false
       
      -  algoliasearch@4.22.1:
      +  /algoliasearch@4.22.1:
      +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
           dependencies:
             '@algolia/cache-browser-local-storage': 4.22.1
             '@algolia/cache-common': 4.22.1
      @@ -13339,96 +6144,157 @@ snapshots:
             '@algolia/requester-common': 4.22.1
             '@algolia/requester-node-http': 4.22.1
             '@algolia/transporter': 4.22.1
      +    dev: false
       
      -  ansi-align@3.0.1:
      +  /ansi-align@3.0.1:
      +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
           dependencies:
             string-width: 4.2.3
       
      -  ansi-colors@4.1.1: {}
      +  /ansi-colors@4.1.1:
      +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  ansi-colors@4.1.3: {}
      +  /ansi-colors@4.1.3:
      +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  ansi-diff@1.1.1:
      +  /ansi-diff@1.1.1:
      +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
           dependencies:
             ansi-split: 1.0.1
      +    dev: true
       
      -  ansi-escapes@4.3.2:
      +  /ansi-escapes@4.3.2:
      +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
      +    engines: {node: '>=8'}
           dependencies:
             type-fest: 0.21.3
       
      -  ansi-html-community@0.0.8: {}
      +  /ansi-html-community@0.0.8:
      +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
      +    engines: {'0': node >= 0.8.0}
      +    hasBin: true
       
      -  ansi-regex@3.0.1: {}
      +  /ansi-regex@3.0.1:
      +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  ansi-regex@5.0.1: {}
      +  /ansi-regex@5.0.1:
      +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
      +    engines: {node: '>=8'}
       
      -  ansi-regex@6.0.1: {}
      +  /ansi-regex@6.0.1:
      +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
      +    engines: {node: '>=12'}
       
      -  ansi-split@1.0.1:
      +  /ansi-split@1.0.1:
      +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
           dependencies:
             ansi-regex: 3.0.1
      +    dev: true
       
      -  ansi-styles@3.2.1:
      +  /ansi-styles@3.2.1:
      +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
      +    engines: {node: '>=4'}
           dependencies:
             color-convert: 1.9.3
       
      -  ansi-styles@4.3.0:
      +  /ansi-styles@4.3.0:
      +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
      +    engines: {node: '>=8'}
           dependencies:
             color-convert: 2.0.1
       
      -  ansi-styles@5.2.0: {}
      +  /ansi-styles@5.2.0:
      +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  ansi-styles@6.2.1: {}
      +  /ansi-styles@6.2.1:
      +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
      +    engines: {node: '>=12'}
       
      -  any-promise@1.3.0: {}
      +  /any-promise@1.3.0:
      +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
      +    dev: true
       
      -  anymatch@3.1.3:
      +  /anymatch@3.1.3:
      +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
      +    engines: {node: '>= 8'}
           dependencies:
             normalize-path: 3.0.0
             picomatch: 2.3.1
       
      -  aproba@2.0.0: {}
      +  /aproba@2.0.0:
      +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
       
      -  archy@1.0.0: {}
      +  /archy@1.0.0:
      +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
      +    dev: true
       
      -  are-we-there-yet@2.0.0:
      +  /are-we-there-yet@2.0.0:
      +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
      +    engines: {node: '>=10'}
           dependencies:
             delegates: 1.0.0
             readable-stream: 3.6.2
       
      -  are-we-there-yet@3.0.1:
      +  /are-we-there-yet@3.0.1:
      +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             delegates: 1.0.0
             readable-stream: 3.6.2
       
      -  arg@4.1.3: {}
      +  /arg@4.1.3:
      +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
      +    dev: true
       
      -  arg@5.0.2: {}
      +  /arg@5.0.2:
      +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
       
      -  argparse@1.0.10:
      +  /argparse@1.0.10:
      +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
           dependencies:
             sprintf-js: 1.0.3
       
      -  argparse@2.0.1: {}
      +  /argparse@2.0.1:
      +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
       
      -  aria-query@5.1.3:
      +  /aria-query@5.1.3:
      +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
           dependencies:
             deep-equal: 2.2.3
      +    dev: true
       
      -  aria-query@5.3.0:
      +  /aria-query@5.3.0:
      +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
           dependencies:
             dequal: 2.0.3
      +    dev: true
       
      -  array-buffer-byte-length@1.0.1:
      +  /array-buffer-byte-length@1.0.1:
      +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             is-array-buffer: 3.0.4
      +    dev: true
       
      -  array-differ@3.0.0: {}
      +  /array-differ@3.0.0:
      +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
      +    engines: {node: '>=8'}
       
      -  array-flatten@1.1.1: {}
      +  /array-flatten@1.1.1:
      +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
       
      -  array-includes@3.1.8:
      +  /array-includes@3.1.8:
      +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -13436,10 +6302,15 @@ snapshots:
             es-object-atoms: 1.0.0
             get-intrinsic: 1.2.4
             is-string: 1.0.7
      +    dev: true
       
      -  array-union@2.1.0: {}
      +  /array-union@2.1.0:
      +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
      +    engines: {node: '>=8'}
       
      -  array.prototype.findlast@1.2.5:
      +  /array.prototype.findlast@1.2.5:
      +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -13447,8 +6318,11 @@ snapshots:
             es-errors: 1.3.0
             es-object-atoms: 1.0.0
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  array.prototype.findlastindex@1.2.5:
      +  /array.prototype.findlastindex@1.2.5:
      +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -13456,37 +6330,50 @@ snapshots:
             es-errors: 1.3.0
             es-object-atoms: 1.0.0
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  array.prototype.flat@1.3.2:
      +  /array.prototype.flat@1.3.2:
      +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  array.prototype.flatmap@1.3.2:
      +  /array.prototype.flatmap@1.3.2:
      +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  array.prototype.toreversed@1.1.2:
      +  /array.prototype.toreversed@1.1.2:
      +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  array.prototype.tosorted@1.1.3:
      +  /array.prototype.tosorted@1.1.3:
      +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-errors: 1.3.0
             es-shim-unscopables: 1.0.2
      +    dev: true
       
      -  arraybuffer.prototype.slice@1.0.3:
      +  /arraybuffer.prototype.slice@1.0.3:
      +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             array-buffer-byte-length: 1.0.1
             call-bind: 1.0.7
      @@ -13496,34 +6383,63 @@ snapshots:
             get-intrinsic: 1.2.4
             is-array-buffer: 3.0.4
             is-shared-array-buffer: 1.0.3
      +    dev: true
       
      -  arrify@1.0.1: {}
      +  /arrify@1.0.1:
      +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  arrify@2.0.1: {}
      +  /arrify@2.0.1:
      +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
      +    engines: {node: '>=8'}
       
      -  as-table@1.0.55:
      +  /as-table@1.0.55:
      +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
           dependencies:
             printable-characters: 1.0.42
      +    dev: true
       
      -  asap@2.0.6: {}
      +  /asap@2.0.6:
      +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
       
      -  assertion-error@2.0.1: {}
      +  /assertion-error@2.0.1:
      +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  ast-types-flow@0.0.8: {}
      +  /ast-types-flow@0.0.8:
      +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
      +    dev: true
       
      -  astring@1.8.6: {}
      +  /astring@1.8.6:
      +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
      +    hasBin: true
       
      -  async@2.6.4:
      +  /async@2.6.4:
      +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
           dependencies:
             lodash: 4.17.21
      +    dev: true
       
      -  async@3.2.5: {}
      +  /async@3.2.5:
      +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
       
      -  asynckit@0.4.0: {}
      +  /asynckit@0.4.0:
      +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
      +    dev: true
       
      -  at-least-node@1.0.0: {}
      +  /at-least-node@1.0.0:
      +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
      +    engines: {node: '>= 4.0.0'}
      +    dev: false
       
      -  autoprefixer@10.4.19(postcss@8.4.38):
      +  /autoprefixer@10.4.19(postcss@8.4.38):
      +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
      +    engines: {node: ^10 || ^12 || >=14}
      +    hasBin: true
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             browserslist: 4.23.0
             caniuse-lite: 1.0.30001600
      @@ -13533,17 +6449,29 @@ snapshots:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
       
      -  available-typed-arrays@1.0.7:
      +  /available-typed-arrays@1.0.7:
      +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             possible-typed-array-names: 1.0.0
      +    dev: true
       
      -  axe-core@4.7.0: {}
      +  /axe-core@4.7.0:
      +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  axobject-query@3.2.1:
      +  /axobject-query@3.2.1:
      +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
           dependencies:
             dequal: 2.0.3
      +    dev: true
       
      -  babel-jest@29.7.0(@babel/core@7.24.3):
      +  /babel-jest@29.7.0(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@babel/core': ^7.8.0
           dependencies:
             '@babel/core': 7.24.3
             '@jest/transform': 29.7.0
      @@ -13555,19 +6483,30 @@ snapshots:
             slash: 3.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
      +  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.12.0
      +      webpack: '>=5'
           dependencies:
             '@babel/core': 7.24.3
             find-cache-dir: 4.0.0
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  babel-plugin-dynamic-import-node@2.3.3:
      +  /babel-plugin-dynamic-import-node@2.3.3:
      +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
           dependencies:
             object.assign: 4.1.5
      +    dev: false
       
      -  babel-plugin-istanbul@6.1.1:
      +  /babel-plugin-istanbul@6.1.1:
      +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
      +    engines: {node: '>=8'}
           dependencies:
             '@babel/helper-plugin-utils': 7.24.0
             '@istanbuljs/load-nyc-config': 1.1.0
      @@ -13576,15 +6515,22 @@ snapshots:
             test-exclude: 6.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  babel-plugin-jest-hoist@29.6.3:
      +  /babel-plugin-jest-hoist@29.6.3:
      +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
             '@types/babel__core': 7.20.5
             '@types/babel__traverse': 7.20.5
      +    dev: true
       
      -  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
      +  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/core': 7.24.3
      @@ -13593,7 +6539,10 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
      +  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
      @@ -13601,14 +6550,20 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
      +  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
           transitivePeerDependencies:
             - supports-color
       
      -  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
      +  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
      @@ -13623,34 +6578,55 @@ snapshots:
             '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
      +    dev: true
       
      -  babel-preset-jest@29.6.3(@babel/core@7.24.3):
      +  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
      +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
           dependencies:
             '@babel/core': 7.24.3
             babel-plugin-jest-hoist: 29.6.3
             babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
      +    dev: true
       
      -  bail@2.0.2: {}
      +  /bail@2.0.2:
      +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
       
      -  balanced-match@1.0.2: {}
      +  /balanced-match@1.0.2:
      +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
       
      -  base64-js@1.5.1: {}
      +  /base64-js@1.5.1:
      +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
       
      -  basic-auth@2.0.1:
      +  /basic-auth@2.0.1:
      +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             safe-buffer: 5.1.2
      +    dev: true
       
      -  batch@0.6.1: {}
      +  /batch@0.6.1:
      +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
       
      -  before-after-hook@2.2.3: {}
      +  /before-after-hook@2.2.3:
      +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
       
      -  better-path-resolve@1.0.0:
      +  /better-path-resolve@1.0.0:
      +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
      +    engines: {node: '>=4'}
           dependencies:
             is-windows: 1.0.2
      +    dev: true
       
      -  big.js@5.2.2: {}
      +  /big.js@5.2.2:
      +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
      +    dev: false
       
      -  bin-links@3.0.3:
      +  /bin-links@3.0.3:
      +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             cmd-shim: 5.0.0
             mkdirp-infer-owner: 2.0.0
      @@ -13659,17 +6635,24 @@ snapshots:
             rimraf: 3.0.2
             write-file-atomic: 4.0.2
       
      -  binary-extensions@2.3.0: {}
      +  /binary-extensions@2.3.0:
      +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
      +    engines: {node: '>=8'}
       
      -  binaryextensions@4.19.0: {}
      +  /binaryextensions@4.19.0:
      +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
      +    engines: {node: '>=0.8'}
       
      -  bl@4.1.0:
      +  /bl@4.1.0:
      +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
           dependencies:
             buffer: 5.7.1
             inherits: 2.0.4
             readable-stream: 3.6.2
       
      -  body-parser@1.20.2:
      +  /body-parser@1.20.2:
      +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
      +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
           dependencies:
             bytes: 3.1.2
             content-type: 1.0.5
      @@ -13686,19 +6669,24 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  bole@5.0.11:
      +  /bole@5.0.11:
      +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
           dependencies:
             fast-safe-stringify: 2.1.1
             individual: 3.0.0
       
      -  bonjour-service@1.2.1:
      +  /bonjour-service@1.2.1:
      +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
           dependencies:
             fast-deep-equal: 3.1.3
             multicast-dns: 7.2.5
       
      -  boolbase@1.0.0: {}
      +  /boolbase@1.0.0:
      +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
       
      -  boxen@5.1.2:
      +  /boxen@5.1.2:
      +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
      +    engines: {node: '>=10'}
           dependencies:
             ansi-align: 3.0.1
             camelcase: 6.3.0
      @@ -13708,8 +6696,11 @@ snapshots:
             type-fest: 0.20.2
             widest-line: 3.1.0
             wrap-ansi: 7.0.0
      +    dev: true
       
      -  boxen@6.2.1:
      +  /boxen@6.2.1:
      +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             ansi-align: 3.0.1
             camelcase: 6.3.0
      @@ -13719,8 +6710,11 @@ snapshots:
             type-fest: 2.19.0
             widest-line: 4.0.1
             wrap-ansi: 8.1.0
      +    dev: false
       
      -  boxen@7.1.1:
      +  /boxen@7.1.1:
      +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
      +    engines: {node: '>=14.16'}
           dependencies:
             ansi-align: 3.0.1
             camelcase: 7.0.1
      @@ -13730,70 +6724,104 @@ snapshots:
             type-fest: 2.19.0
             widest-line: 4.0.1
             wrap-ansi: 8.1.0
      +    dev: false
       
      -  brace-expansion@1.1.11:
      +  /brace-expansion@1.1.11:
      +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
           dependencies:
             balanced-match: 1.0.2
             concat-map: 0.0.1
       
      -  brace-expansion@2.0.1:
      +  /brace-expansion@2.0.1:
      +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
           dependencies:
             balanced-match: 1.0.2
       
      -  braces@3.0.2:
      +  /braces@3.0.2:
      +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
      +    engines: {node: '>=8'}
           dependencies:
             fill-range: 7.0.1
       
      -  browser-stdout@1.3.1: {}
      +  /browser-stdout@1.3.1:
      +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
      +    dev: true
       
      -  browserslist@4.23.0:
      +  /browserslist@4.23.0:
      +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
      +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
      +    hasBin: true
           dependencies:
             caniuse-lite: 1.0.30001600
             electron-to-chromium: 1.4.717
             node-releases: 2.0.14
             update-browserslist-db: 1.0.13(browserslist@4.23.0)
       
      -  bs-logger@0.2.6:
      +  /bs-logger@0.2.6:
      +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
      +    engines: {node: '>= 6'}
           dependencies:
             fast-json-stable-stringify: 2.1.0
      +    dev: true
       
      -  bser@2.1.1:
      +  /bser@2.1.1:
      +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
           dependencies:
             node-int64: 0.4.0
      +    dev: true
       
      -  buffer-from@1.1.2: {}
      +  /buffer-from@1.1.2:
      +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
       
      -  buffer@5.7.1:
      +  /buffer@5.7.1:
      +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
           dependencies:
             base64-js: 1.5.1
             ieee754: 1.2.1
       
      -  buffer@6.0.3:
      +  /buffer@6.0.3:
      +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
           dependencies:
             base64-js: 1.5.1
             ieee754: 1.2.1
       
      -  builtin-modules@3.3.0: {}
      +  /builtin-modules@3.3.0:
      +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  builtins@1.0.3: {}
      +  /builtins@1.0.3:
      +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
       
      -  builtins@5.0.1:
      +  /builtins@5.0.1:
      +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
           dependencies:
             semver: 7.6.0
       
      -  bundle-name@4.1.0:
      +  /bundle-name@4.1.0:
      +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
      +    engines: {node: '>=18'}
           dependencies:
             run-applescript: 7.0.0
       
      -  busboy@1.6.0:
      +  /busboy@1.6.0:
      +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
      +    engines: {node: '>=10.16.0'}
           dependencies:
             streamsearch: 1.1.0
      +    dev: false
       
      -  bytes@3.0.0: {}
      +  /bytes@3.0.0:
      +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
      +    engines: {node: '>= 0.8'}
       
      -  bytes@3.1.2: {}
      +  /bytes@3.1.2:
      +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
      +    engines: {node: '>= 0.8'}
       
      -  cacache@15.3.0:
      +  /cacache@15.3.0:
      +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
      +    engines: {node: '>= 10'}
           dependencies:
             '@npmcli/fs': 1.1.1
             '@npmcli/move-file': 1.1.2
      @@ -13816,7 +6844,9 @@ snapshots:
           transitivePeerDependencies:
             - bluebird
       
      -  cacache@16.1.3:
      +  /cacache@16.1.3:
      +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             '@npmcli/fs': 2.1.2
             '@npmcli/move-file': 2.0.1
      @@ -13839,7 +6869,9 @@ snapshots:
           transitivePeerDependencies:
             - bluebird
       
      -  cacache@17.1.4:
      +  /cacache@17.1.4:
      +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@npmcli/fs': 3.1.0
             fs-minipass: 3.0.3
      @@ -13854,9 +6886,14 @@ snapshots:
             tar: 6.2.1
             unique-filename: 3.0.0
       
      -  cacheable-lookup@7.0.0: {}
      +  /cacheable-lookup@7.0.0:
      +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
      +    engines: {node: '>=14.16'}
      +    dev: false
       
      -  cacheable-request@10.2.14:
      +  /cacheable-request@10.2.14:
      +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
      +    engines: {node: '>=14.16'}
           dependencies:
             '@types/http-cache-semantics': 4.0.4
             get-stream: 6.0.1
      @@ -13865,8 +6902,11 @@ snapshots:
             mimic-response: 4.0.0
             normalize-url: 8.0.1
             responselike: 3.0.0
      +    dev: false
       
      -  call-bind@1.0.7:
      +  /call-bind@1.0.7:
      +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             es-define-property: 1.0.0
             es-errors: 1.3.0
      @@ -13874,85 +6914,133 @@ snapshots:
             get-intrinsic: 1.2.4
             set-function-length: 1.2.2
       
      -  callsites@3.1.0: {}
      +  /callsites@3.1.0:
      +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
      +    engines: {node: '>=6'}
       
      -  camel-case@4.1.2:
      +  /camel-case@4.1.2:
      +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
           dependencies:
             pascal-case: 3.1.2
             tslib: 2.6.2
       
      -  camelcase-css@2.0.1: {}
      +  /camelcase-css@2.0.1:
      +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
      +    engines: {node: '>= 6'}
      +    dev: true
       
      -  camelcase-keys@6.2.2:
      +  /camelcase-keys@6.2.2:
      +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
      +    engines: {node: '>=8'}
           dependencies:
             camelcase: 5.3.1
             map-obj: 4.3.0
             quick-lru: 4.0.1
      +    dev: true
       
      -  camelcase-keys@7.0.2:
      +  /camelcase-keys@7.0.2:
      +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
      +    engines: {node: '>=12'}
           dependencies:
             camelcase: 6.3.0
             map-obj: 4.3.0
             quick-lru: 5.1.1
             type-fest: 1.4.0
      +    dev: true
       
      -  camelcase@5.3.1: {}
      +  /camelcase@5.3.1:
      +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  camelcase@6.3.0: {}
      +  /camelcase@6.3.0:
      +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
      +    engines: {node: '>=10'}
       
      -  camelcase@7.0.1: {}
      +  /camelcase@7.0.1:
      +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
      +    engines: {node: '>=14.16'}
      +    dev: false
       
      -  can-write-to-dir@1.1.1:
      +  /can-write-to-dir@1.1.1:
      +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
      +    engines: {node: '>=10.13'}
           dependencies:
             path-temp: 2.1.0
      +    dev: true
       
      -  caniuse-api@3.0.0:
      +  /caniuse-api@3.0.0:
      +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
           dependencies:
             browserslist: 4.23.0
             caniuse-lite: 1.0.30001600
             lodash.memoize: 4.1.2
             lodash.uniq: 4.5.0
      +    dev: false
       
      -  caniuse-lite@1.0.30001600: {}
      +  /caniuse-lite@1.0.30001600:
      +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
       
      -  ccount@2.0.1: {}
      +  /ccount@2.0.1:
      +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
       
      -  chai@5.1.0:
      +  /chai@5.1.0:
      +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
      +    engines: {node: '>=12'}
           dependencies:
             assertion-error: 2.0.1
             check-error: 2.0.0
             deep-eql: 5.0.1
             loupe: 3.1.0
             pathval: 2.0.0
      +    dev: true
       
      -  chalk@2.4.2:
      +  /chalk@2.4.2:
      +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
      +    engines: {node: '>=4'}
           dependencies:
             ansi-styles: 3.2.1
             escape-string-regexp: 1.0.5
             supports-color: 5.5.0
       
      -  chalk@4.1.2:
      +  /chalk@4.1.2:
      +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
      +    engines: {node: '>=10'}
           dependencies:
             ansi-styles: 4.3.0
             supports-color: 7.2.0
       
      -  chalk@5.3.0: {}
      +  /chalk@5.3.0:
      +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
      +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
      +    dev: false
       
      -  char-regex@1.0.2: {}
      +  /char-regex@1.0.2:
      +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
      +    engines: {node: '>=10'}
       
      -  character-entities-html4@2.1.0: {}
      +  /character-entities-html4@2.1.0:
      +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
       
      -  character-entities-legacy@3.0.0: {}
      +  /character-entities-legacy@3.0.0:
      +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
       
      -  character-entities@2.0.2: {}
      +  /character-entities@2.0.2:
      +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
       
      -  character-reference-invalid@2.0.1: {}
      +  /character-reference-invalid@2.0.1:
      +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
       
      -  chardet@0.7.0: {}
      +  /chardet@0.7.0:
      +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
       
      -  check-error@2.0.0: {}
      +  /check-error@2.0.0:
      +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
      +    engines: {node: '>= 16'}
      +    dev: true
       
      -  cheerio-select@2.1.0:
      +  /cheerio-select@2.1.0:
      +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
           dependencies:
             boolbase: 1.0.0
             css-select: 5.1.0
      @@ -13960,8 +7048,11 @@ snapshots:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             domutils: 3.1.0
      +    dev: false
       
      -  cheerio@1.0.0-rc.12:
      +  /cheerio@1.0.0-rc.12:
      +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
      +    engines: {node: '>= 6'}
           dependencies:
             cheerio-select: 2.1.0
             dom-serializer: 2.0.0
      @@ -13970,8 +7061,11 @@ snapshots:
             htmlparser2: 8.0.2
             parse5: 7.1.2
             parse5-htmlparser2-tree-adapter: 7.0.0
      +    dev: false
       
      -  chokidar@3.5.3:
      +  /chokidar@3.5.3:
      +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
      +    engines: {node: '>= 8.10.0'}
           dependencies:
             anymatch: 3.1.3
             braces: 3.0.2
      @@ -13982,8 +7076,11 @@ snapshots:
             readdirp: 3.6.0
           optionalDependencies:
             fsevents: 2.3.3
      +    dev: true
       
      -  chokidar@3.6.0:
      +  /chokidar@3.6.0:
      +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
      +    engines: {node: '>= 8.10.0'}
           dependencies:
             anymatch: 3.1.3
             braces: 3.0.2
      @@ -13995,169 +7092,282 @@ snapshots:
           optionalDependencies:
             fsevents: 2.3.3
       
      -  chownr@2.0.0: {}
      +  /chownr@2.0.0:
      +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
      +    engines: {node: '>=10'}
       
      -  chrome-trace-event@1.0.3: {}
      +  /chrome-trace-event@1.0.3:
      +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
      +    engines: {node: '>=6.0'}
       
      -  ci-info@3.9.0: {}
      +  /ci-info@3.9.0:
      +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
      +    engines: {node: '>=8'}
       
      -  ci-info@4.0.0: {}
      +  /ci-info@4.0.0:
      +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  cjs-module-lexer@1.2.3: {}
      +  /cjs-module-lexer@1.2.3:
      +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
      +    dev: true
       
      -  clean-css@5.3.3:
      +  /clean-css@5.3.3:
      +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
      +    engines: {node: '>= 10.0'}
           dependencies:
             source-map: 0.6.1
       
      -  clean-regexp@1.0.0:
      +  /clean-regexp@1.0.0:
      +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
      +    engines: {node: '>=4'}
           dependencies:
             escape-string-regexp: 1.0.5
      +    dev: true
       
      -  clean-stack@2.2.0: {}
      +  /clean-stack@2.2.0:
      +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
      +    engines: {node: '>=6'}
       
      -  cli-boxes@2.2.1: {}
      +  /cli-boxes@2.2.1:
      +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  cli-boxes@3.0.0: {}
      +  /cli-boxes@3.0.0:
      +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  cli-columns@4.0.0:
      +  /cli-columns@4.0.0:
      +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
      +    engines: {node: '>= 10'}
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
      +    dev: true
       
      -  cli-cursor@3.1.0:
      +  /cli-cursor@3.1.0:
      +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
      +    engines: {node: '>=8'}
           dependencies:
             restore-cursor: 3.1.0
       
      -  cli-spinners@2.9.2: {}
      +  /cli-spinners@2.9.2:
      +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
      +    engines: {node: '>=6'}
       
      -  cli-table3@0.6.4:
      +  /cli-table3@0.6.4:
      +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
      +    engines: {node: 10.* || >= 12.*}
           dependencies:
             string-width: 4.2.3
           optionalDependencies:
             '@colors/colors': 1.5.0
      +    dev: false
       
      -  cli-table@0.3.11:
      +  /cli-table@0.3.11:
      +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
      +    engines: {node: '>= 0.2.0'}
           dependencies:
             colors: 1.0.3
       
      -  cli-width@3.0.0: {}
      +  /cli-width@3.0.0:
      +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
      +    engines: {node: '>= 10'}
       
      -  client-only@0.0.1: {}
      +  /client-only@0.0.1:
      +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
      +    dev: false
       
      -  cliui@7.0.4:
      +  /cliui@7.0.4:
      +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
             wrap-ansi: 7.0.0
      +    dev: true
       
      -  cliui@8.0.1:
      +  /cliui@8.0.1:
      +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
      +    engines: {node: '>=12'}
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
             wrap-ansi: 7.0.0
      +    dev: true
       
      -  clone-buffer@1.0.0: {}
      +  /clone-buffer@1.0.0:
      +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
      +    engines: {node: '>= 0.10'}
       
      -  clone-deep@4.0.1:
      +  /clone-deep@4.0.1:
      +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
      +    engines: {node: '>=6'}
           dependencies:
             is-plain-object: 2.0.4
             kind-of: 6.0.3
             shallow-clone: 3.0.1
       
      -  clone-stats@1.0.0: {}
      +  /clone-stats@1.0.0:
      +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
       
      -  clone@1.0.4: {}
      +  /clone@1.0.4:
      +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
      +    engines: {node: '>=0.8'}
       
      -  clone@2.1.2: {}
      +  /clone@2.1.2:
      +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
      +    engines: {node: '>=0.8'}
       
      -  cloneable-readable@1.1.3:
      +  /cloneable-readable@1.1.3:
      +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
           dependencies:
             inherits: 2.0.4
             process-nextick-args: 2.0.1
             readable-stream: 2.3.8
       
      -  clsx@2.1.0: {}
      +  /clsx@2.1.0:
      +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  cmd-shim@5.0.0:
      +  /cmd-shim@5.0.0:
      +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             mkdirp-infer-owner: 2.0.0
       
      -  co@4.6.0: {}
      +  /co@4.6.0:
      +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
      +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
      +    dev: true
       
      -  collapse-white-space@2.1.0: {}
      +  /collapse-white-space@2.1.0:
      +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
       
      -  collect-v8-coverage@1.0.2: {}
      +  /collect-v8-coverage@1.0.2:
      +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
      +    dev: true
       
      -  color-convert@1.9.3:
      +  /color-convert@1.9.3:
      +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
           dependencies:
             color-name: 1.1.3
       
      -  color-convert@2.0.1:
      +  /color-convert@2.0.1:
      +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
      +    engines: {node: '>=7.0.0'}
           dependencies:
             color-name: 1.1.4
       
      -  color-name@1.1.3: {}
      +  /color-name@1.1.3:
      +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
       
      -  color-name@1.1.4: {}
      +  /color-name@1.1.4:
      +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
       
      -  color-string@1.9.1:
      +  /color-string@1.9.1:
      +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
           dependencies:
             color-name: 1.1.4
             simple-swizzle: 0.2.2
       
      -  color-support@1.1.3: {}
      +  /color-support@1.1.3:
      +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
      +    hasBin: true
       
      -  color@3.2.1:
      +  /color@3.2.1:
      +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
           dependencies:
             color-convert: 1.9.3
             color-string: 1.9.1
       
      -  colord@2.9.3: {}
      +  /colord@2.9.3:
      +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
      +    dev: false
       
      -  colorette@2.0.20: {}
      +  /colorette@2.0.20:
      +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
       
      -  colors@1.0.3: {}
      +  /colors@1.0.3:
      +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
      +    engines: {node: '>=0.1.90'}
       
      -  colorspace@1.1.4:
      +  /colorspace@1.1.4:
      +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
           dependencies:
             color: 3.2.1
             text-hex: 1.0.0
       
      -  combine-promises@1.2.0: {}
      +  /combine-promises@1.2.0:
      +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  combined-stream@1.0.8:
      +  /combined-stream@1.0.8:
      +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             delayed-stream: 1.0.0
      +    dev: true
       
      -  comma-separated-tokens@2.0.3: {}
      +  /comma-separated-tokens@2.0.3:
      +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
       
      -  commander@10.0.1: {}
      +  /commander@10.0.1:
      +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
      +    engines: {node: '>=14'}
       
      -  commander@11.1.0: {}
      +  /commander@11.1.0:
      +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
      +    engines: {node: '>=16'}
      +    dev: true
       
      -  commander@2.20.3: {}
      +  /commander@2.20.3:
      +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
       
      -  commander@4.1.1: {}
      +  /commander@4.1.1:
      +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
      +    engines: {node: '>= 6'}
      +    dev: true
       
      -  commander@5.1.0: {}
      +  /commander@5.1.0:
      +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
      +    engines: {node: '>= 6'}
       
      -  commander@7.1.0: {}
      +  /commander@7.1.0:
      +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
      +    engines: {node: '>= 10'}
       
      -  commander@7.2.0: {}
      +  /commander@7.2.0:
      +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
      +    engines: {node: '>= 10'}
       
      -  commander@8.3.0: {}
      +  /commander@8.3.0:
      +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
      +    engines: {node: '>= 12'}
       
      -  common-ancestor-path@1.0.1: {}
      +  /common-ancestor-path@1.0.1:
      +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
       
      -  common-path-prefix@3.0.0: {}
      +  /common-path-prefix@3.0.0:
      +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
      +    dev: false
       
      -  commondir@1.0.1: {}
      +  /commondir@1.0.1:
      +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
       
      -  compressible@2.0.18:
      +  /compressible@2.0.18:
      +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             mime-db: 1.52.0
       
      -  compression@1.7.4:
      +  /compression@1.7.4:
      +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             accepts: 1.3.8
             bytes: 3.0.0
      @@ -14169,50 +7379,83 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  comver-to-semver@1.0.0: {}
      +  /comver-to-semver@1.0.0:
      +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
      +    engines: {node: '>=12.17'}
      +    dev: false
       
      -  concat-map@0.0.1: {}
      +  /concat-map@0.0.1:
      +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
       
      -  config-chain@1.1.13:
      +  /config-chain@1.1.13:
      +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
           dependencies:
             ini: 1.3.8
             proto-list: 1.2.4
       
      -  configstore@6.0.0:
      +  /configstore@6.0.0:
      +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
      +    engines: {node: '>=12'}
           dependencies:
             dot-prop: 6.0.1
             graceful-fs: 4.2.11
             unique-string: 3.0.0
             write-file-atomic: 3.0.3
             xdg-basedir: 5.1.0
      +    dev: false
       
      -  connect-history-api-fallback@2.0.0: {}
      +  /connect-history-api-fallback@2.0.0:
      +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
      +    engines: {node: '>=0.8'}
       
      -  consola@2.15.3: {}
      +  /consola@2.15.3:
      +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
      +    dev: false
       
      -  console-control-strings@1.1.0: {}
      +  /console-control-strings@1.1.0:
      +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
       
      -  content-disposition@0.5.2: {}
      +  /content-disposition@0.5.2:
      +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
      +    engines: {node: '>= 0.6'}
      +    dev: false
       
      -  content-disposition@0.5.4:
      +  /content-disposition@0.5.4:
      +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             safe-buffer: 5.2.1
       
      -  content-type@1.0.5: {}
      +  /content-type@1.0.5:
      +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
      +    engines: {node: '>= 0.6'}
       
      -  convert-source-map@2.0.0: {}
      +  /convert-source-map@2.0.0:
      +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
       
      -  cookie-signature@1.0.6: {}
      +  /cookie-signature@1.0.6:
      +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
       
      -  cookie@0.6.0: {}
      +  /cookie@0.6.0:
      +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
      +    engines: {node: '>= 0.6'}
       
      -  copy-text-to-clipboard@3.2.0: {}
      +  /copy-text-to-clipboard@3.2.0:
      +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  copy-to-clipboard@3.3.3:
      +  /copy-to-clipboard@3.3.3:
      +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
           dependencies:
             toggle-selection: 1.0.6
      +    dev: false
       
      -  copy-webpack-plugin@11.0.0(webpack@5.91.0):
      +  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
      +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      webpack: ^5.1.0
           dependencies:
             fast-glob: 3.3.2
             glob-parent: 6.0.2
      @@ -14221,36 +7464,61 @@ snapshots:
             schema-utils: 4.2.0
             serialize-javascript: 6.0.2
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  core-js-compat@3.36.1:
      +  /core-js-compat@3.36.1:
      +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
           dependencies:
             browserslist: 4.23.0
       
      -  core-js-pure@3.36.1: {}
      +  /core-js-pure@3.36.1:
      +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
      +    requiresBuild: true
      +    dev: false
       
      -  core-js@3.36.1: {}
      +  /core-js@3.36.1:
      +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
      +    requiresBuild: true
      +    dev: false
       
      -  core-util-is@1.0.3: {}
      +  /core-util-is@1.0.3:
      +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
       
      -  corser@2.0.1: {}
      +  /corser@2.0.1:
      +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
      +    engines: {node: '>= 0.4.0'}
      +    dev: true
       
      -  cosmiconfig@6.0.0:
      +  /cosmiconfig@6.0.0:
      +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
      +    engines: {node: '>=8'}
           dependencies:
             '@types/parse-json': 4.0.2
             import-fresh: 3.3.0
             parse-json: 5.2.0
             path-type: 4.0.0
             yaml: 1.10.2
      +    dev: false
       
      -  cosmiconfig@7.1.0:
      +  /cosmiconfig@7.1.0:
      +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
      +    engines: {node: '>=10'}
           dependencies:
             '@types/parse-json': 4.0.2
             import-fresh: 3.3.0
             parse-json: 5.2.0
             path-type: 4.0.0
             yaml: 1.10.2
      +    dev: false
       
      -  cosmiconfig@8.3.6(typescript@5.4.3):
      +  /cosmiconfig@8.3.6(typescript@5.4.3):
      +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=4.9.5'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             import-fresh: 3.3.0
             js-yaml: 4.1.0
      @@ -14258,15 +7526,26 @@ snapshots:
             path-type: 4.0.0
             typescript: 5.4.3
       
      -  cosmiconfig@9.0.0(typescript@5.4.3):
      +  /cosmiconfig@9.0.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=4.9.5'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             env-paths: 2.2.1
             import-fresh: 3.3.0
             js-yaml: 4.1.0
             parse-json: 5.2.0
             typescript: 5.4.3
      +    dev: true
       
      -  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
           dependencies:
             '@jest/types': 29.6.3
             chalk: 4.1.2
      @@ -14280,30 +7559,58 @@ snapshots:
             - babel-plugin-macros
             - supports-color
             - ts-node
      +    dev: true
       
      -  create-require@1.1.1: {}
      +  /create-require@1.1.1:
      +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
      +    dev: true
       
      -  cross-spawn@7.0.3:
      +  /cross-spawn@7.0.3:
      +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
      +    engines: {node: '>= 8'}
           dependencies:
             path-key: 3.1.1
             shebang-command: 2.0.0
             which: 2.0.2
       
      -  crypto-random-string@2.0.0: {}
      +  /crypto-random-string@2.0.0:
      +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  crypto-random-string@4.0.0:
      +  /crypto-random-string@4.0.0:
      +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
      +    engines: {node: '>=12'}
           dependencies:
             type-fest: 1.4.0
      +    dev: false
       
      -  css-declaration-sorter@6.4.1(postcss@8.4.38):
      +  /css-declaration-sorter@6.4.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
      +    engines: {node: ^10 || ^12 || >=14}
      +    peerDependencies:
      +      postcss: ^8.0.9
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  css-in-js-utils@3.1.0:
      +  /css-in-js-utils@3.1.0:
      +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
           dependencies:
             hyphenate-style-name: 1.0.4
      +    dev: false
       
      -  css-loader@6.10.0(webpack@5.91.0):
      +  /css-loader@6.10.0(webpack@5.91.0):
      +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
      @@ -14315,7 +7622,30 @@ snapshots:
             semver: 7.6.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
      +  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
      +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      '@parcel/css': '*'
      +      '@swc/css': '*'
      +      clean-css: '*'
      +      csso: '*'
      +      esbuild: '*'
      +      lightningcss: '*'
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@parcel/css':
      +        optional: true
      +      '@swc/css':
      +        optional: true
      +      clean-css:
      +        optional: true
      +      csso:
      +        optional: true
      +      esbuild:
      +        optional: true
      +      lightningcss:
      +        optional: true
           dependencies:
             clean-css: 5.3.3
             cssnano: 5.1.15(postcss@8.4.38)
      @@ -14326,8 +7656,10 @@ snapshots:
             serialize-javascript: 6.0.2
             source-map: 0.6.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  css-select@4.3.0:
      +  /css-select@4.3.0:
      +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
           dependencies:
             boolbase: 1.0.0
             css-what: 6.1.0
      @@ -14335,7 +7667,8 @@ snapshots:
             domutils: 2.8.0
             nth-check: 2.1.1
       
      -  css-select@5.1.0:
      +  /css-select@5.1.0:
      +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
           dependencies:
             boolbase: 1.0.0
             css-what: 6.1.0
      @@ -14343,26 +7676,44 @@ snapshots:
             domutils: 3.1.0
             nth-check: 2.1.1
       
      -  css-tree@1.1.3:
      +  /css-tree@1.1.3:
      +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             mdn-data: 2.0.14
             source-map: 0.6.1
      +    dev: false
       
      -  css-tree@2.2.1:
      +  /css-tree@2.2.1:
      +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
           dependencies:
             mdn-data: 2.0.28
             source-map-js: 1.2.0
      +    dev: true
       
      -  css-tree@2.3.1:
      +  /css-tree@2.3.1:
      +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
           dependencies:
             mdn-data: 2.0.30
             source-map-js: 1.2.0
      +    dev: true
       
      -  css-what@6.1.0: {}
      +  /css-what@6.1.0:
      +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
      +    engines: {node: '>= 6'}
       
      -  cssesc@3.0.0: {}
      +  /cssesc@3.0.0:
      +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
       
      -  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
      +  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
      +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             autoprefixer: 10.4.19(postcss@8.4.38)
             cssnano-preset-default: 5.2.14(postcss@8.4.38)
      @@ -14371,8 +7722,13 @@ snapshots:
             postcss-merge-idents: 5.1.1(postcss@8.4.38)
             postcss-reduce-idents: 5.2.0(postcss@8.4.38)
             postcss-zindex: 5.1.0(postcss@8.4.38)
      +    dev: false
       
      -  cssnano-preset-default@5.2.14(postcss@8.4.38):
      +  /cssnano-preset-default@5.2.14(postcss@8.4.38):
      +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             css-declaration-sorter: 6.4.1(postcss@8.4.38)
             cssnano-utils: 3.1.0(postcss@8.4.38)
      @@ -14404,113 +7760,214 @@ snapshots:
             postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
             postcss-svgo: 5.1.0(postcss@8.4.38)
             postcss-unique-selectors: 5.1.1(postcss@8.4.38)
      +    dev: false
       
      -  cssnano-utils@3.1.0(postcss@8.4.38):
      +  /cssnano-utils@3.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  cssnano@5.1.15(postcss@8.4.38):
      +  /cssnano@5.1.15(postcss@8.4.38):
      +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             cssnano-preset-default: 5.2.14(postcss@8.4.38)
             lilconfig: 2.1.0
             postcss: 8.4.38
             yaml: 1.10.2
      +    dev: false
       
      -  csso@4.2.0:
      +  /csso@4.2.0:
      +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             css-tree: 1.1.3
      +    dev: false
       
      -  csso@5.0.5:
      +  /csso@5.0.5:
      +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
           dependencies:
             css-tree: 2.2.1
      +    dev: true
       
      -  cssom@0.3.8: {}
      +  /cssom@0.3.8:
      +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
      +    dev: true
       
      -  cssom@0.5.0: {}
      +  /cssom@0.5.0:
      +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
      +    dev: true
       
      -  cssstyle@2.3.0:
      +  /cssstyle@2.3.0:
      +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
      +    engines: {node: '>=8'}
           dependencies:
             cssom: 0.3.8
      +    dev: true
       
      -  csstype@3.1.3: {}
      +  /csstype@3.1.3:
      +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
       
      -  damerau-levenshtein@1.0.8: {}
      +  /damerau-levenshtein@1.0.8:
      +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
      +    dev: true
       
      -  dargs@7.0.0: {}
      +  /dargs@7.0.0:
      +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
      +    engines: {node: '>=8'}
       
      -  data-uri-to-buffer@2.0.2: {}
      +  /data-uri-to-buffer@2.0.2:
      +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
      +    dev: true
       
      -  data-uri-to-buffer@3.0.1: {}
      +  /data-uri-to-buffer@3.0.1:
      +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
      +    engines: {node: '>= 6'}
      +    dev: false
       
      -  data-urls@3.0.2:
      +  /data-urls@3.0.2:
      +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
      +    engines: {node: '>=12'}
           dependencies:
             abab: 2.0.6
             whatwg-mimetype: 3.0.0
             whatwg-url: 11.0.0
      +    dev: true
       
      -  data-view-buffer@1.0.1:
      +  /data-view-buffer@1.0.1:
      +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      +    dev: true
       
      -  data-view-byte-length@1.0.1:
      +  /data-view-byte-length@1.0.1:
      +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      +    dev: true
       
      -  data-view-byte-offset@1.0.0:
      +  /data-view-byte-offset@1.0.0:
      +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      +    dev: true
       
      -  dateformat@4.6.3: {}
      +  /dateformat@4.6.3:
      +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
       
      -  debounce@1.2.1: {}
      +  /debounce@1.2.1:
      +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
      +    dev: false
       
      -  debug@2.6.9:
      +  /debug@2.6.9:
      +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
           dependencies:
             ms: 2.0.0
       
      -  debug@3.2.7:
      +  /debug@3.2.7:
      +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
           dependencies:
             ms: 2.1.3
      +    dev: true
       
      -  debug@4.3.4(supports-color@8.1.1):
      +  /debug@4.3.4(supports-color@8.1.1):
      +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
      +    engines: {node: '>=6.0'}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
           dependencies:
             ms: 2.1.2
             supports-color: 8.1.1
       
      -  debuglog@1.0.1: {}
      +  /debuglog@1.0.1:
      +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
      +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
       
      -  decamelize-keys@1.1.1:
      +  /decamelize-keys@1.1.1:
      +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             decamelize: 1.2.0
             map-obj: 1.0.1
      +    dev: true
       
      -  decamelize@1.2.0: {}
      +  /decamelize@1.2.0:
      +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  decamelize@4.0.0: {}
      +  /decamelize@4.0.0:
      +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  decamelize@5.0.1: {}
      +  /decamelize@5.0.1:
      +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  decimal.js@10.4.3: {}
      +  /decimal.js@10.4.3:
      +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
      +    dev: true
       
      -  decode-named-character-reference@1.0.2:
      +  /decode-named-character-reference@1.0.2:
      +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
           dependencies:
             character-entities: 2.0.2
       
      -  decompress-response@6.0.0:
      +  /decompress-response@6.0.0:
      +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
      +    engines: {node: '>=10'}
           dependencies:
             mimic-response: 3.1.0
      +    dev: false
       
      -  dedent@1.5.1: {}
      +  /dedent@1.5.1:
      +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
      +    peerDependencies:
      +      babel-plugin-macros: ^3.1.0
      +    peerDependenciesMeta:
      +      babel-plugin-macros:
      +        optional: true
      +    dev: true
       
      -  deep-eql@5.0.1: {}
      +  /deep-eql@5.0.1:
      +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  deep-equal@2.2.3:
      +  /deep-equal@2.2.3:
      +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             array-buffer-byte-length: 1.0.1
             call-bind: 1.0.7
      @@ -14530,47 +7987,74 @@ snapshots:
             which-boxed-primitive: 1.0.2
             which-collection: 1.0.2
             which-typed-array: 1.1.15
      +    dev: true
       
      -  deep-extend@0.6.0: {}
      +  /deep-extend@0.6.0:
      +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
      +    engines: {node: '>=4.0.0'}
       
      -  deep-is@0.1.4: {}
      +  /deep-is@0.1.4:
      +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
       
      -  deepmerge@4.3.1: {}
      +  /deepmerge@4.3.1:
      +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
      +    engines: {node: '>=0.10.0'}
       
      -  default-browser-id@5.0.0: {}
      +  /default-browser-id@5.0.0:
      +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
      +    engines: {node: '>=18'}
       
      -  default-browser@5.2.1:
      +  /default-browser@5.2.1:
      +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
      +    engines: {node: '>=18'}
           dependencies:
             bundle-name: 4.1.0
             default-browser-id: 5.0.0
       
      -  default-gateway@6.0.3:
      +  /default-gateway@6.0.3:
      +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
      +    engines: {node: '>= 10'}
           dependencies:
             execa: 5.1.1
       
      -  defaults@1.0.4:
      +  /defaults@1.0.4:
      +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
           dependencies:
             clone: 1.0.4
       
      -  defer-to-connect@2.0.1: {}
      +  /defer-to-connect@2.0.1:
      +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  define-data-property@1.1.4:
      +  /define-data-property@1.1.4:
      +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             es-define-property: 1.0.0
             es-errors: 1.3.0
             gopd: 1.0.1
       
      -  define-lazy-prop@2.0.0: {}
      +  /define-lazy-prop@2.0.0:
      +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
      +    engines: {node: '>=8'}
      +    dev: false
       
      -  define-lazy-prop@3.0.0: {}
      +  /define-lazy-prop@3.0.0:
      +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
      +    engines: {node: '>=12'}
       
      -  define-properties@1.2.1:
      +  /define-properties@1.2.1:
      +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             define-data-property: 1.1.4
             has-property-descriptors: 1.0.2
             object-keys: 1.1.1
       
      -  del@6.1.1:
      +  /del@6.1.1:
      +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
      +    engines: {node: '>=10'}
           dependencies:
             globby: 11.1.0
             graceful-fs: 4.2.11
      @@ -14580,201 +8064,327 @@ snapshots:
             p-map: 4.0.0
             rimraf: 3.0.2
             slash: 3.0.0
      +    dev: false
       
      -  delayed-stream@1.0.0: {}
      +  /delayed-stream@1.0.0:
      +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
      +    engines: {node: '>=0.4.0'}
      +    dev: true
       
      -  delegates@1.0.0: {}
      +  /delegates@1.0.0:
      +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
       
      -  depd@1.1.2: {}
      +  /depd@1.1.2:
      +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
      +    engines: {node: '>= 0.6'}
       
      -  depd@2.0.0: {}
      +  /depd@2.0.0:
      +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
      +    engines: {node: '>= 0.8'}
       
      -  deprecation@2.3.1: {}
      +  /deprecation@2.3.1:
      +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
       
      -  dequal@2.0.3: {}
      +  /dequal@2.0.3:
      +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
      +    engines: {node: '>=6'}
       
      -  destroy@1.2.0: {}
      +  /destroy@1.2.0:
      +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
      +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
       
      -  detect-indent@7.0.1: {}
      +  /detect-indent@7.0.1:
      +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
      +    engines: {node: '>=12.20'}
      +    dev: true
       
      -  detect-libc@2.0.3: {}
      +  /detect-libc@2.0.3:
      +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  detect-newline@3.1.0: {}
      +  /detect-newline@3.1.0:
      +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  detect-node@2.1.0: {}
      +  /detect-node@2.1.0:
      +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
       
      -  detect-port-alt@1.1.6:
      +  /detect-port-alt@1.1.6:
      +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
      +    engines: {node: '>= 4.2.1'}
      +    hasBin: true
           dependencies:
             address: 1.2.2
             debug: 2.6.9
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  detect-port@1.5.1:
      +  /detect-port@1.5.1:
      +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
      +    hasBin: true
           dependencies:
             address: 1.2.2
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  devlop@1.1.0:
      +  /devlop@1.1.0:
      +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
           dependencies:
             dequal: 2.0.3
       
      -  dezalgo@1.0.4:
      +  /dezalgo@1.0.4:
      +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
           dependencies:
             asap: 2.0.6
             wrappy: 1.0.2
       
      -  didyoumean@1.2.2: {}
      +  /didyoumean@1.2.2:
      +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
      +    dev: true
       
      -  diff-sequences@29.6.3: {}
      +  /diff-sequences@29.6.3:
      +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    dev: true
       
      -  diff@4.0.2: {}
      +  /diff@4.0.2:
      +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
      +    engines: {node: '>=0.3.1'}
      +    dev: true
       
      -  diff@5.0.0: {}
      +  /diff@5.0.0:
      +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
      +    engines: {node: '>=0.3.1'}
      +    dev: true
       
      -  diff@5.2.0: {}
      +  /diff@5.2.0:
      +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
      +    engines: {node: '>=0.3.1'}
       
      -  dir-glob@3.0.1:
      +  /dir-glob@3.0.1:
      +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
      +    engines: {node: '>=8'}
           dependencies:
             path-type: 4.0.0
       
      -  discontinuous-range@1.0.0: {}
      +  /discontinuous-range@1.0.0:
      +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
      +    dev: false
       
      -  dlv@1.1.3: {}
      +  /dlv@1.1.3:
      +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
      +    dev: true
       
      -  dns-packet@5.6.1:
      +  /dns-packet@5.6.1:
      +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
      +    engines: {node: '>=6'}
           dependencies:
             '@leichtgewicht/ip-codec': 2.0.4
       
      -  doctrine@2.1.0:
      +  /doctrine@2.1.0:
      +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             esutils: 2.0.3
      +    dev: true
       
      -  doctrine@3.0.0:
      +  /doctrine@3.0.0:
      +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
      +    engines: {node: '>=6.0.0'}
           dependencies:
             esutils: 2.0.3
       
      -  dom-accessibility-api@0.5.16: {}
      +  /dom-accessibility-api@0.5.16:
      +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
      +    dev: true
       
      -  dom-converter@0.2.0:
      +  /dom-converter@0.2.0:
      +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
           dependencies:
             utila: 0.4.0
       
      -  dom-serializer@1.4.1:
      +  /dom-serializer@1.4.1:
      +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
           dependencies:
             domelementtype: 2.3.0
             domhandler: 4.3.1
             entities: 2.2.0
       
      -  dom-serializer@2.0.0:
      +  /dom-serializer@2.0.0:
      +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
           dependencies:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             entities: 4.5.0
       
      -  domelementtype@2.3.0: {}
      +  /domelementtype@2.3.0:
      +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
       
      -  domexception@4.0.0:
      +  /domexception@4.0.0:
      +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
      +    engines: {node: '>=12'}
      +    deprecated: Use your platform's native DOMException instead
           dependencies:
             webidl-conversions: 7.0.0
      +    dev: true
       
      -  domhandler@4.3.1:
      +  /domhandler@4.3.1:
      +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
      +    engines: {node: '>= 4'}
           dependencies:
             domelementtype: 2.3.0
       
      -  domhandler@5.0.3:
      +  /domhandler@5.0.3:
      +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
      +    engines: {node: '>= 4'}
           dependencies:
             domelementtype: 2.3.0
       
      -  domutils@2.8.0:
      +  /domutils@2.8.0:
      +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
           dependencies:
             dom-serializer: 1.4.1
             domelementtype: 2.3.0
             domhandler: 4.3.1
       
      -  domutils@3.1.0:
      +  /domutils@3.1.0:
      +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
           dependencies:
             dom-serializer: 2.0.0
             domelementtype: 2.3.0
             domhandler: 5.0.3
       
      -  dot-case@3.0.4:
      +  /dot-case@3.0.4:
      +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
           dependencies:
             no-case: 3.0.4
             tslib: 2.6.2
       
      -  dot-prop@6.0.1:
      +  /dot-prop@6.0.1:
      +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
      +    engines: {node: '>=10'}
           dependencies:
             is-obj: 2.0.0
      +    dev: false
       
      -  duplexer@0.1.2: {}
      +  /duplexer@0.1.2:
      +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
      +    dev: false
       
      -  eastasianwidth@0.2.0: {}
      +  /eastasianwidth@0.2.0:
      +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
       
      -  ee-first@1.1.1: {}
      +  /ee-first@1.1.1:
      +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
       
      -  effect@2.0.0-next.62: {}
      +  /effect@2.0.0-next.62:
      +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
      +    dev: true
       
      -  ejs@3.1.9:
      +  /ejs@3.1.9:
      +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
      +    engines: {node: '>=0.10.0'}
      +    hasBin: true
           dependencies:
             jake: 10.8.7
       
      -  electron-to-chromium@1.4.717: {}
      +  /electron-to-chromium@1.4.717:
      +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
       
      -  emittery@0.13.1: {}
      +  /emittery@0.13.1:
      +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  emoji-regex@8.0.0: {}
      +  /emoji-regex@8.0.0:
      +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
       
      -  emoji-regex@9.2.2: {}
      +  /emoji-regex@9.2.2:
      +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
       
      -  emojilib@2.4.0: {}
      +  /emojilib@2.4.0:
      +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
      +    dev: false
       
      -  emojis-list@3.0.0: {}
      +  /emojis-list@3.0.0:
      +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
      +    engines: {node: '>= 4'}
      +    dev: false
       
      -  emoticon@4.0.1: {}
      +  /emoticon@4.0.1:
      +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
      +    dev: false
       
      -  enabled@2.0.0: {}
      +  /enabled@2.0.0:
      +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
       
      -  encodeurl@1.0.2: {}
      +  /encodeurl@1.0.2:
      +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
      +    engines: {node: '>= 0.8'}
       
      -  encoding@0.1.13:
      +  /encoding@0.1.13:
      +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
      +    requiresBuild: true
           dependencies:
             iconv-lite: 0.6.3
           optional: true
       
      -  enhanced-resolve@5.16.0:
      +  /enhanced-resolve@5.16.0:
      +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
      +    engines: {node: '>=10.13.0'}
           dependencies:
             graceful-fs: 4.2.11
             tapable: 2.2.1
       
      -  enquirer@2.4.1:
      +  /enquirer@2.4.1:
      +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
      +    engines: {node: '>=8.6'}
           dependencies:
             ansi-colors: 4.1.3
             strip-ansi: 6.0.1
      +    dev: true
       
      -  entities@2.2.0: {}
      +  /entities@2.2.0:
      +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
       
      -  entities@4.5.0: {}
      +  /entities@4.5.0:
      +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
      +    engines: {node: '>=0.12'}
       
      -  env-paths@2.2.1: {}
      +  /env-paths@2.2.1:
      +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
      +    engines: {node: '>=6'}
       
      -  envinfo@7.11.1: {}
      +  /envinfo@7.11.1:
      +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
       
      -  err-code@2.0.3: {}
      +  /err-code@2.0.3:
      +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
       
      -  error-ex@1.3.2:
      +  /error-ex@1.3.2:
      +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
           dependencies:
             is-arrayish: 0.2.1
       
      -  error-stack-parser@2.1.4:
      +  /error-stack-parser@2.1.4:
      +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
           dependencies:
             stackframe: 1.3.4
      +    dev: false
       
      -  error@10.4.0: {}
      +  /error@10.4.0:
      +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
       
      -  es-abstract@1.23.2:
      +  /es-abstract@1.23.2:
      +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             array-buffer-byte-length: 1.0.1
             arraybuffer.prototype.slice: 1.0.3
      @@ -14822,14 +8432,20 @@ snapshots:
             typed-array-length: 1.0.6
             unbox-primitive: 1.0.2
             which-typed-array: 1.1.15
      +    dev: true
       
      -  es-define-property@1.0.0:
      +  /es-define-property@1.0.0:
      +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             get-intrinsic: 1.2.4
       
      -  es-errors@1.3.0: {}
      +  /es-errors@1.3.0:
      +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
      +    engines: {node: '>= 0.4'}
       
      -  es-get-iterator@1.1.3:
      +  /es-get-iterator@1.1.3:
      +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      @@ -14840,8 +8456,11 @@ snapshots:
             is-string: 1.0.7
             isarray: 2.0.5
             stop-iteration-iterator: 1.0.0
      +    dev: true
       
      -  es-iterator-helpers@1.0.18:
      +  /es-iterator-helpers@1.0.18:
      +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -14857,30 +8476,47 @@ snapshots:
             internal-slot: 1.0.7
             iterator.prototype: 1.1.2
             safe-array-concat: 1.1.2
      +    dev: true
       
      -  es-module-lexer@1.5.0: {}
      +  /es-module-lexer@1.5.0:
      +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
       
      -  es-object-atoms@1.0.0:
      +  /es-object-atoms@1.0.0:
      +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             es-errors: 1.3.0
      +    dev: true
       
      -  es-set-tostringtag@2.0.3:
      +  /es-set-tostringtag@2.0.3:
      +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             get-intrinsic: 1.2.4
             has-tostringtag: 1.0.2
             hasown: 2.0.2
      +    dev: true
       
      -  es-shim-unscopables@1.0.2:
      +  /es-shim-unscopables@1.0.2:
      +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
           dependencies:
             hasown: 2.0.2
      +    dev: true
       
      -  es-to-primitive@1.2.1:
      +  /es-to-primitive@1.2.1:
      +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             is-callable: 1.2.7
             is-date-object: 1.0.5
             is-symbol: 1.0.4
      +    dev: true
       
      -  esbuild@0.20.2:
      +  /esbuild@0.20.2:
      +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
      +    engines: {node: '>=12'}
      +    hasBin: true
      +    requiresBuild: true
           optionalDependencies:
             '@esbuild/aix-ppc64': 0.20.2
             '@esbuild/android-arm': 0.20.2
      @@ -14906,29 +8542,56 @@ snapshots:
             '@esbuild/win32-ia32': 0.20.2
             '@esbuild/win32-x64': 0.20.2
       
      -  escalade@3.1.2: {}
      +  /escalade@3.1.2:
      +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
      +    engines: {node: '>=6'}
       
      -  escape-goat@4.0.0: {}
      +  /escape-goat@4.0.0:
      +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  escape-html@1.0.3: {}
      +  /escape-html@1.0.3:
      +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
       
      -  escape-string-regexp@1.0.5: {}
      +  /escape-string-regexp@1.0.5:
      +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
      +    engines: {node: '>=0.8.0'}
       
      -  escape-string-regexp@2.0.0: {}
      +  /escape-string-regexp@2.0.0:
      +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  escape-string-regexp@4.0.0: {}
      +  /escape-string-regexp@4.0.0:
      +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
      +    engines: {node: '>=10'}
       
      -  escape-string-regexp@5.0.0: {}
      +  /escape-string-regexp@5.0.0:
      +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  escodegen@2.1.0:
      +  /escodegen@2.1.0:
      +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
      +    engines: {node: '>=6.0'}
      +    hasBin: true
           dependencies:
             esprima: 4.0.1
             estraverse: 5.3.0
             esutils: 2.0.3
           optionalDependencies:
             source-map: 0.6.1
      +    dev: true
       
      -  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
      +  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
      +    peerDependencies:
      +      eslint: ^7.23.0 || ^8.0.0
      +      typescript: '>=3.3.1'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@next/eslint-plugin-next': 14.1.4
             '@rushstack/eslint-patch': 1.8.0
      @@ -14944,20 +8607,33 @@ snapshots:
           transitivePeerDependencies:
             - eslint-import-resolver-webpack
             - supports-color
      +    dev: true
       
      -  eslint-config-prettier@9.1.0(eslint@8.57.0):
      +  /eslint-config-prettier@9.1.0(eslint@8.57.0):
      +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
      +    hasBin: true
      +    peerDependencies:
      +      eslint: '>=7.0.0'
           dependencies:
             eslint: 8.57.0
      +    dev: true
       
      -  eslint-import-resolver-node@0.3.9:
      +  /eslint-import-resolver-node@0.3.9:
      +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
           dependencies:
             debug: 3.2.7
             is-core-module: 2.13.1
             resolve: 1.22.8
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      +    engines: {node: ^14.18.0 || >=16.0.0}
      +    peerDependencies:
      +      eslint: '*'
      +      eslint-plugin-import: '*'
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             enhanced-resolve: 5.16.0
      @@ -14973,8 +8649,14 @@ snapshots:
             - eslint-import-resolver-node
             - eslint-import-resolver-webpack
             - supports-color
      +    dev: true
       
      -  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      +  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      +    engines: {node: ^14.18.0 || >=16.0.0}
      +    peerDependencies:
      +      eslint: '*'
      +      eslint-plugin-import: '*'
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             enhanced-resolve: 5.16.0
      @@ -14990,8 +8672,28 @@ snapshots:
             - eslint-import-resolver-node
             - eslint-import-resolver-webpack
             - supports-color
      +    dev: true
       
      -  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      '@typescript-eslint/parser': '*'
      +      eslint: '*'
      +      eslint-import-resolver-node: '*'
      +      eslint-import-resolver-typescript: '*'
      +      eslint-import-resolver-webpack: '*'
      +    peerDependenciesMeta:
      +      '@typescript-eslint/parser':
      +        optional: true
      +      eslint:
      +        optional: true
      +      eslint-import-resolver-node:
      +        optional: true
      +      eslint-import-resolver-typescript:
      +        optional: true
      +      eslint-import-resolver-webpack:
      +        optional: true
           dependencies:
             '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
             debug: 3.2.7
      @@ -15000,8 +8702,28 @@ snapshots:
             eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      '@typescript-eslint/parser': '*'
      +      eslint: '*'
      +      eslint-import-resolver-node: '*'
      +      eslint-import-resolver-typescript: '*'
      +      eslint-import-resolver-webpack: '*'
      +    peerDependenciesMeta:
      +      '@typescript-eslint/parser':
      +        optional: true
      +      eslint:
      +        optional: true
      +      eslint-import-resolver-node:
      +        optional: true
      +      eslint-import-resolver-typescript:
      +        optional: true
      +      eslint-import-resolver-webpack:
      +        optional: true
           dependencies:
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
             debug: 3.2.7
      @@ -15010,8 +8732,17 @@ snapshots:
             eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      '@typescript-eslint/parser': '*'
      +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
      +    peerDependenciesMeta:
      +      '@typescript-eslint/parser':
      +        optional: true
           dependencies:
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
             array-includes: 3.1.8
      @@ -15036,8 +8767,13 @@ snapshots:
             - eslint-import-resolver-typescript
             - eslint-import-resolver-webpack
             - supports-color
      +    dev: true
       
      -  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
      +  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
      +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
      +    engines: {node: '>=4.0'}
      +    peerDependencies:
      +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
           dependencies:
             '@babel/runtime': 7.24.1
             aria-query: 5.3.0
      @@ -15056,19 +8792,34 @@ snapshots:
             minimatch: 3.1.2
             object.entries: 1.1.8
             object.fromentries: 2.0.8
      +    dev: true
       
      -  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
      +  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
      +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
      +    engines: {node: '>=14.0.0'}
      +    peerDependencies:
      +      eslint: '>=7.0.0'
           dependencies:
             eslint: 8.57.0
             eslint-utils: 3.0.0(eslint@8.57.0)
             globals: 13.24.0
             rambda: 7.5.0
      +    dev: true
       
      -  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
      +  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
      +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
           dependencies:
             eslint: 8.57.0
      +    dev: true
       
      -  eslint-plugin-react@7.34.1(eslint@8.57.0):
      +  /eslint-plugin-react@7.34.1(eslint@8.57.0):
      +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
           dependencies:
             array-includes: 3.1.8
             array.prototype.findlast: 1.2.5
      @@ -15089,8 +8840,13 @@ snapshots:
             resolve: 2.0.0-next.5
             semver: 6.3.1
             string.prototype.matchall: 4.0.11
      +    dev: true
       
      -  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
      +  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
      +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
      +    engines: {node: '>=16'}
      +    peerDependencies:
      +      eslint: '>=8.56.0'
           dependencies:
             '@babel/helper-validator-identifier': 7.22.20
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
      @@ -15111,35 +8867,65 @@ snapshots:
             strip-indent: 3.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
      +  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
      +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    peerDependencies:
      +      '@typescript-eslint/eslint-plugin': 6 - 7
      +      eslint: '8'
      +    peerDependenciesMeta:
      +      '@typescript-eslint/eslint-plugin':
      +        optional: true
           dependencies:
             '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
             eslint: 8.57.0
             eslint-rule-composer: 0.3.0
      +    dev: true
       
      -  eslint-rule-composer@0.3.0: {}
      +  /eslint-rule-composer@0.3.0:
      +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
      +    engines: {node: '>=4.0.0'}
      +    dev: true
       
      -  eslint-scope@5.1.1:
      +  /eslint-scope@5.1.1:
      +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             esrecurse: 4.3.0
             estraverse: 4.3.0
       
      -  eslint-scope@7.2.2:
      +  /eslint-scope@7.2.2:
      +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
           dependencies:
             esrecurse: 4.3.0
             estraverse: 5.3.0
       
      -  eslint-utils@3.0.0(eslint@8.57.0):
      +  /eslint-utils@3.0.0(eslint@8.57.0):
      +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
      +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
      +    peerDependencies:
      +      eslint: '>=5'
           dependencies:
             eslint: 8.57.0
             eslint-visitor-keys: 2.1.0
      +    dev: true
       
      -  eslint-visitor-keys@2.1.0: {}
      +  /eslint-visitor-keys@2.1.0:
      +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  eslint-visitor-keys@3.4.3: {}
      +  /eslint-visitor-keys@3.4.3:
      +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
       
      -  eslint@8.57.0:
      +  /eslint@8.57.0:
      +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    hasBin: true
           dependencies:
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
             '@eslint-community/regexpp': 4.10.0
      @@ -15182,77 +8968,116 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  espree@9.6.1:
      +  /espree@9.6.1:
      +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
           dependencies:
             acorn: 8.11.3
             acorn-jsx: 5.3.2(acorn@8.11.3)
             eslint-visitor-keys: 3.4.3
       
      -  esprima@4.0.1: {}
      +  /esprima@4.0.1:
      +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
      +    engines: {node: '>=4'}
      +    hasBin: true
       
      -  esquery@1.5.0:
      +  /esquery@1.5.0:
      +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
      +    engines: {node: '>=0.10'}
           dependencies:
             estraverse: 5.3.0
       
      -  esrecurse@4.3.0:
      +  /esrecurse@4.3.0:
      +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
      +    engines: {node: '>=4.0'}
           dependencies:
             estraverse: 5.3.0
       
      -  estraverse@4.3.0: {}
      +  /estraverse@4.3.0:
      +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
      +    engines: {node: '>=4.0'}
       
      -  estraverse@5.3.0: {}
      +  /estraverse@5.3.0:
      +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
      +    engines: {node: '>=4.0'}
       
      -  estree-util-attach-comments@3.0.0:
      +  /estree-util-attach-comments@3.0.0:
      +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
           dependencies:
             '@types/estree': 1.0.5
       
      -  estree-util-build-jsx@3.0.1:
      +  /estree-util-build-jsx@3.0.1:
      +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             devlop: 1.1.0
             estree-util-is-identifier-name: 3.0.0
             estree-walker: 3.0.3
       
      -  estree-util-is-identifier-name@3.0.0: {}
      +  /estree-util-is-identifier-name@3.0.0:
      +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
       
      -  estree-util-to-js@2.0.0:
      +  /estree-util-to-js@2.0.0:
      +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             astring: 1.8.6
             source-map: 0.7.4
       
      -  estree-util-value-to-estree@3.0.1:
      +  /estree-util-value-to-estree@3.0.1:
      +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
      +    engines: {node: '>=16.0.0'}
           dependencies:
             '@types/estree': 1.0.5
             is-plain-obj: 4.1.0
      +    dev: false
       
      -  estree-util-visit@2.0.0:
      +  /estree-util-visit@2.0.0:
      +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/unist': 3.0.2
       
      -  estree-walker@3.0.3:
      +  /estree-walker@3.0.3:
      +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
           dependencies:
             '@types/estree': 1.0.5
       
      -  esutils@2.0.3: {}
      +  /esutils@2.0.3:
      +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
      +    engines: {node: '>=0.10.0'}
       
      -  eta@2.2.0: {}
      +  /eta@2.2.0:
      +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
      +    engines: {node: '>=6.0.0'}
      +    dev: false
       
      -  etag@1.8.1: {}
      +  /etag@1.8.1:
      +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
      +    engines: {node: '>= 0.6'}
       
      -  eval@0.1.8:
      +  /eval@0.1.8:
      +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             '@types/node': 18.18.2
             require-like: 0.1.2
      +    dev: false
       
      -  event-target-shim@5.0.1: {}
      +  /event-target-shim@5.0.1:
      +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
      +    engines: {node: '>=6'}
       
      -  eventemitter3@4.0.7: {}
      +  /eventemitter3@4.0.7:
      +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
       
      -  events@3.3.0: {}
      +  /events@3.3.0:
      +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
      +    engines: {node: '>=0.8.x'}
       
      -  execa@5.1.1:
      +  /execa@5.1.1:
      +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
      +    engines: {node: '>=10'}
           dependencies:
             cross-spawn: 7.0.3
             get-stream: 6.0.1
      @@ -15264,19 +9089,28 @@ snapshots:
             signal-exit: 3.0.7
             strip-final-newline: 2.0.0
       
      -  exit@0.1.2: {}
      +  /exit@0.1.2:
      +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
      +    engines: {node: '>= 0.8.0'}
      +    dev: true
       
      -  expect@29.7.0:
      +  /expect@29.7.0:
      +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/expect-utils': 29.7.0
             jest-get-type: 29.6.3
             jest-matcher-utils: 29.7.0
             jest-message-util: 29.7.0
             jest-util: 29.7.0
      +    dev: true
       
      -  exponential-backoff@3.1.1: {}
      +  /exponential-backoff@3.1.1:
      +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
       
      -  express@4.19.2:
      +  /express@4.19.2:
      +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
      +    engines: {node: '>= 0.10.0'}
           dependencies:
             accepts: 1.3.8
             array-flatten: 1.1.1
      @@ -15312,29 +9146,44 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  extend-shallow@2.0.1:
      +  /extend-shallow@2.0.1:
      +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             is-extendable: 0.1.1
      +    dev: false
       
      -  extend@3.0.2: {}
      +  /extend@3.0.2:
      +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
       
      -  external-editor@3.1.0:
      +  /external-editor@3.1.0:
      +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
      +    engines: {node: '>=4'}
           dependencies:
             chardet: 0.7.0
             iconv-lite: 0.4.24
             tmp: 0.0.33
       
      -  fast-check@3.15.0:
      +  /fast-check@3.15.0:
      +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             pure-rand: 6.1.0
      +    dev: true
       
      -  fast-check@3.17.0:
      +  /fast-check@3.17.0:
      +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             pure-rand: 6.1.0
      +    dev: true
       
      -  fast-deep-equal@3.1.3: {}
      +  /fast-deep-equal@3.1.3:
      +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
       
      -  fast-glob@3.3.2:
      +  /fast-glob@3.3.2:
      +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
      +    engines: {node: '>=8.6.0'}
           dependencies:
             '@nodelib/fs.stat': 2.0.5
             '@nodelib/fs.walk': 1.2.8
      @@ -15342,77 +9191,129 @@ snapshots:
             merge2: 1.4.1
             micromatch: 4.0.5
       
      -  fast-json-stable-stringify@2.1.0: {}
      +  /fast-json-stable-stringify@2.1.0:
      +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
       
      -  fast-levenshtein@2.0.6: {}
      +  /fast-levenshtein@2.0.6:
      +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
       
      -  fast-loops@1.1.3: {}
      +  /fast-loops@1.1.3:
      +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
      +    dev: false
       
      -  fast-safe-stringify@2.1.1: {}
      +  /fast-safe-stringify@2.1.1:
      +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
       
      -  fast-shallow-equal@1.0.0: {}
      +  /fast-shallow-equal@1.0.0:
      +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
      +    dev: false
       
      -  fast-url-parser@1.1.3:
      +  /fast-url-parser@1.1.3:
      +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
           dependencies:
             punycode: 1.4.1
      +    dev: false
       
      -  fast-xml-parser@4.3.6:
      +  /fast-xml-parser@4.3.6:
      +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
      +    hasBin: true
           dependencies:
             strnum: 1.0.5
      +    dev: true
       
      -  fastest-levenshtein@1.0.16: {}
      +  /fastest-levenshtein@1.0.16:
      +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
      +    engines: {node: '>= 4.9.1'}
       
      -  fastest-stable-stringify@2.0.2: {}
      +  /fastest-stable-stringify@2.0.2:
      +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
      +    dev: false
       
      -  fastq@1.17.1:
      +  /fastq@1.17.1:
      +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
           dependencies:
             reusify: 1.0.4
       
      -  fault@2.0.1:
      +  /fault@2.0.1:
      +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
           dependencies:
             format: 0.2.2
      +    dev: false
       
      -  faye-websocket@0.11.4:
      +  /faye-websocket@0.11.4:
      +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
      +    engines: {node: '>=0.8.0'}
           dependencies:
             websocket-driver: 0.7.4
       
      -  fb-watchman@2.0.2:
      +  /fb-watchman@2.0.2:
      +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
           dependencies:
             bser: 2.1.1
      +    dev: true
       
      -  fecha@4.2.3: {}
      +  /fecha@4.2.3:
      +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
       
      -  feed@4.2.2:
      +  /feed@4.2.2:
      +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
      +    engines: {node: '>=0.4.0'}
           dependencies:
             xml-js: 1.6.11
      +    dev: false
       
      -  fetch-blob@2.1.2: {}
      +  /fetch-blob@2.1.2:
      +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
      +    engines: {node: ^10.17.0 || >=12.3.0}
      +    peerDependencies:
      +      domexception: '*'
      +    peerDependenciesMeta:
      +      domexception:
      +        optional: true
      +    dev: false
       
      -  figures@3.2.0:
      +  /figures@3.2.0:
      +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
      +    engines: {node: '>=8'}
           dependencies:
             escape-string-regexp: 1.0.5
       
      -  file-entry-cache@6.0.1:
      +  /file-entry-cache@6.0.1:
      +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
      +    engines: {node: ^10.12.0 || >=12.0.0}
           dependencies:
             flat-cache: 3.2.0
       
      -  file-loader@6.2.0(webpack@5.91.0):
      +  /file-loader@6.2.0(webpack@5.91.0):
      +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      webpack: ^4.0.0 || ^5.0.0
           dependencies:
             loader-utils: 2.0.4
             schema-utils: 3.3.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  filelist@1.0.4:
      +  /filelist@1.0.4:
      +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
           dependencies:
             minimatch: 5.1.6
       
      -  filesize@8.0.7: {}
      +  /filesize@8.0.7:
      +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
      +    engines: {node: '>= 0.4.0'}
      +    dev: false
       
      -  fill-range@7.0.1:
      +  /fill-range@7.0.1:
      +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
      +    engines: {node: '>=8'}
           dependencies:
             to-regex-range: 5.0.1
       
      -  finalhandler@1.2.0:
      +  /finalhandler@1.2.0:
      +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             debug: 2.6.9
             encodeurl: 1.0.2
      @@ -15424,63 +9325,108 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  find-cache-dir@4.0.0:
      +  /find-cache-dir@4.0.0:
      +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
      +    engines: {node: '>=14.16'}
           dependencies:
             common-path-prefix: 3.0.0
             pkg-dir: 7.0.0
      +    dev: false
       
      -  find-up@3.0.0:
      +  /find-up@3.0.0:
      +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
      +    engines: {node: '>=6'}
           dependencies:
             locate-path: 3.0.0
      +    dev: false
       
      -  find-up@4.1.0:
      +  /find-up@4.1.0:
      +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
      +    engines: {node: '>=8'}
           dependencies:
             locate-path: 5.0.0
             path-exists: 4.0.0
       
      -  find-up@5.0.0:
      +  /find-up@5.0.0:
      +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
      +    engines: {node: '>=10'}
           dependencies:
             locate-path: 6.0.0
             path-exists: 4.0.0
       
      -  find-up@6.3.0:
      +  /find-up@6.3.0:
      +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             locate-path: 7.2.0
             path-exists: 5.0.0
      +    dev: false
       
      -  find-yarn-workspace-root2@1.2.16:
      +  /find-yarn-workspace-root2@1.2.16:
      +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
           dependencies:
             micromatch: 4.0.5
             pkg-dir: 4.2.0
       
      -  first-chunk-stream@2.0.0:
      +  /first-chunk-stream@2.0.0:
      +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             readable-stream: 2.3.8
       
      -  flat-cache@3.2.0:
      +  /flat-cache@3.2.0:
      +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
      +    engines: {node: ^10.12.0 || >=12.0.0}
           dependencies:
             flatted: 3.3.1
             keyv: 4.5.4
             rimraf: 3.0.2
       
      -  flat@5.0.2: {}
      +  /flat@5.0.2:
      +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
      +    hasBin: true
       
      -  flatted@3.3.1: {}
      +  /flatted@3.3.1:
      +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
       
      -  fn.name@1.1.0: {}
      +  /fn.name@1.1.0:
      +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
       
      -  follow-redirects@1.15.6: {}
      +  /follow-redirects@1.15.6:
      +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
      +    engines: {node: '>=4.0'}
      +    peerDependencies:
      +      debug: '*'
      +    peerDependenciesMeta:
      +      debug:
      +        optional: true
       
      -  for-each@0.3.3:
      +  /for-each@0.3.3:
      +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
           dependencies:
             is-callable: 1.2.7
      +    dev: true
       
      -  foreground-child@3.1.1:
      +  /foreground-child@3.1.1:
      +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
      +    engines: {node: '>=14'}
           dependencies:
             cross-spawn: 7.0.3
             signal-exit: 4.1.0
       
      -  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      +  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
      +    engines: {node: '>=10', yarn: '>=1.0.0'}
      +    peerDependencies:
      +      eslint: '>= 6'
      +      typescript: '>= 2.7'
      +      vue-template-compiler: '*'
      +      webpack: '>= 4'
      +    peerDependenciesMeta:
      +      eslint:
      +        optional: true
      +      vue-template-compiler:
      +        optional: true
           dependencies:
             '@babel/code-frame': 7.24.2
             '@types/json-schema': 7.0.15
      @@ -15498,63 +9444,102 @@ snapshots:
             tapable: 1.1.3
             typescript: 5.4.3
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  form-data-encoder@2.1.4: {}
      +  /form-data-encoder@2.1.4:
      +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
      +    engines: {node: '>= 14.17'}
      +    dev: false
       
      -  form-data@4.0.0:
      +  /form-data@4.0.0:
      +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
      +    engines: {node: '>= 6'}
           dependencies:
             asynckit: 0.4.0
             combined-stream: 1.0.8
             mime-types: 2.1.35
      +    dev: true
       
      -  format@0.2.2: {}
      +  /format@0.2.2:
      +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
      +    engines: {node: '>=0.4.x'}
      +    dev: false
       
      -  forwarded@0.2.0: {}
      +  /forwarded@0.2.0:
      +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
      +    engines: {node: '>= 0.6'}
       
      -  fraction.js@4.3.7: {}
      +  /fraction.js@4.3.7:
      +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
       
      -  fresh@0.5.2: {}
      +  /fresh@0.5.2:
      +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
      +    engines: {node: '>= 0.6'}
       
      -  fs-extra@11.2.0:
      +  /fs-extra@11.2.0:
      +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
      +    engines: {node: '>=14.14'}
           dependencies:
             graceful-fs: 4.2.11
             jsonfile: 6.1.0
             universalify: 2.0.1
       
      -  fs-extra@9.1.0:
      +  /fs-extra@9.1.0:
      +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
      +    engines: {node: '>=10'}
           dependencies:
             at-least-node: 1.0.0
             graceful-fs: 4.2.11
             jsonfile: 6.1.0
             universalify: 2.0.1
      +    dev: false
       
      -  fs-minipass@2.1.0:
      +  /fs-minipass@2.1.0:
      +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
      +    engines: {node: '>= 8'}
           dependencies:
             minipass: 3.3.6
       
      -  fs-minipass@3.0.3:
      +  /fs-minipass@3.0.3:
      +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             minipass: 7.0.4
       
      -  fs-monkey@1.0.5: {}
      +  /fs-monkey@1.0.5:
      +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
      +    dev: false
       
      -  fs.realpath@1.0.0: {}
      +  /fs.realpath@1.0.0:
      +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
       
      -  fsevents@2.3.3:
      +  /fsevents@2.3.3:
      +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
      +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
      +    os: [darwin]
      +    requiresBuild: true
           optional: true
       
      -  function-bind@1.1.2: {}
      +  /function-bind@1.1.2:
      +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
       
      -  function.prototype.name@1.1.6:
      +  /function.prototype.name@1.1.6:
      +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             functions-have-names: 1.2.3
      +    dev: true
       
      -  functions-have-names@1.2.3: {}
      +  /functions-have-names@1.2.3:
      +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
      +    dev: true
       
      -  gauge@3.0.2:
      +  /gauge@3.0.2:
      +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
      +    engines: {node: '>=10'}
           dependencies:
             aproba: 2.0.0
             color-support: 1.1.3
      @@ -15566,7 +9551,9 @@ snapshots:
             strip-ansi: 6.0.1
             wide-align: 1.1.5
       
      -  gauge@4.0.4:
      +  /gauge@4.0.4:
      +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             aproba: 2.0.0
             color-support: 1.1.3
      @@ -15577,13 +9564,22 @@ snapshots:
             strip-ansi: 6.0.1
             wide-align: 1.1.5
       
      -  gensync@1.0.0-beta.2: {}
      +  /gensync@1.0.0-beta.2:
      +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
      +    engines: {node: '>=6.9.0'}
       
      -  get-caller-file@2.0.5: {}
      +  /get-caller-file@2.0.5:
      +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
      +    engines: {node: 6.* || 8.* || >= 10.*}
      +    dev: true
       
      -  get-func-name@2.0.2: {}
      +  /get-func-name@2.0.2:
      +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
      +    dev: true
       
      -  get-intrinsic@1.2.4:
      +  /get-intrinsic@1.2.4:
      +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             es-errors: 1.3.0
             function-bind: 1.1.2
      @@ -15591,48 +9587,77 @@ snapshots:
             has-symbols: 1.0.3
             hasown: 2.0.2
       
      -  get-npm-tarball-url@2.1.0: {}
      +  /get-npm-tarball-url@2.1.0:
      +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
      +    engines: {node: '>=12.17'}
      +    dev: false
       
      -  get-own-enumerable-property-symbols@3.0.2: {}
      +  /get-own-enumerable-property-symbols@3.0.2:
      +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
      +    dev: false
       
      -  get-package-type@0.1.0: {}
      +  /get-package-type@0.1.0:
      +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
      +    engines: {node: '>=8.0.0'}
      +    dev: true
       
      -  get-source@2.0.12:
      +  /get-source@2.0.12:
      +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
           dependencies:
             data-uri-to-buffer: 2.0.2
             source-map: 0.6.1
      +    dev: true
       
      -  get-stream@6.0.1: {}
      +  /get-stream@6.0.1:
      +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
      +    engines: {node: '>=10'}
       
      -  get-symbol-description@1.0.2:
      +  /get-symbol-description@1.0.2:
      +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             get-intrinsic: 1.2.4
      +    dev: true
       
      -  get-tsconfig@4.7.3:
      +  /get-tsconfig@4.7.3:
      +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
           dependencies:
             resolve-pkg-maps: 1.0.0
      +    dev: true
       
      -  github-slugger@1.5.0: {}
      +  /github-slugger@1.5.0:
      +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
      +    dev: false
       
      -  github-username@6.0.0:
      +  /github-username@6.0.0:
      +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
      +    engines: {node: '>=10'}
           dependencies:
             '@octokit/rest': 18.12.0
           transitivePeerDependencies:
             - encoding
       
      -  glob-parent@5.1.2:
      +  /glob-parent@5.1.2:
      +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
      +    engines: {node: '>= 6'}
           dependencies:
             is-glob: 4.0.3
       
      -  glob-parent@6.0.2:
      +  /glob-parent@6.0.2:
      +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
      +    engines: {node: '>=10.13.0'}
           dependencies:
             is-glob: 4.0.3
       
      -  glob-to-regexp@0.4.1: {}
      +  /glob-to-regexp@0.4.1:
      +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
       
      -  glob@10.3.10:
      +  /glob@10.3.10:
      +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +    hasBin: true
           dependencies:
             foreground-child: 3.1.1
             jackspeak: 2.3.6
      @@ -15640,7 +9665,8 @@ snapshots:
             minipass: 7.0.4
             path-scurry: 1.10.1
       
      -  glob@7.2.3:
      +  /glob@7.2.3:
      +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
           dependencies:
             fs.realpath: 1.0.0
             inflight: 1.0.6
      @@ -15649,7 +9675,9 @@ snapshots:
             once: 1.4.0
             path-is-absolute: 1.0.1
       
      -  glob@8.1.0:
      +  /glob@8.1.0:
      +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
      +    engines: {node: '>=12'}
           dependencies:
             fs.realpath: 1.0.0
             inflight: 1.0.6
      @@ -15657,31 +9685,49 @@ snapshots:
             minimatch: 5.1.6
             once: 1.4.0
       
      -  global-dirs@3.0.1:
      +  /global-dirs@3.0.1:
      +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
      +    engines: {node: '>=10'}
           dependencies:
             ini: 2.0.0
      +    dev: false
       
      -  global-modules@2.0.0:
      +  /global-modules@2.0.0:
      +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
      +    engines: {node: '>=6'}
           dependencies:
             global-prefix: 3.0.0
      +    dev: false
       
      -  global-prefix@3.0.0:
      +  /global-prefix@3.0.0:
      +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
      +    engines: {node: '>=6'}
           dependencies:
             ini: 1.3.8
             kind-of: 6.0.3
             which: 1.3.1
      +    dev: false
       
      -  globals@11.12.0: {}
      +  /globals@11.12.0:
      +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
      +    engines: {node: '>=4'}
       
      -  globals@13.24.0:
      +  /globals@13.24.0:
      +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
      +    engines: {node: '>=8'}
           dependencies:
             type-fest: 0.20.2
       
      -  globalthis@1.0.3:
      +  /globalthis@1.0.3:
      +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             define-properties: 1.2.1
      +    dev: true
       
      -  globby@11.1.0:
      +  /globby@11.1.0:
      +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
      +    engines: {node: '>=10'}
           dependencies:
             array-union: 2.1.0
             dir-glob: 3.0.1
      @@ -15690,19 +9736,25 @@ snapshots:
             merge2: 1.4.1
             slash: 3.0.0
       
      -  globby@13.2.2:
      +  /globby@13.2.2:
      +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             dir-glob: 3.0.1
             fast-glob: 3.3.2
             ignore: 5.3.1
             merge2: 1.4.1
             slash: 4.0.0
      +    dev: false
       
      -  gopd@1.0.1:
      +  /gopd@1.0.1:
      +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
           dependencies:
             get-intrinsic: 1.2.4
       
      -  got@12.6.1:
      +  /got@12.6.1:
      +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
      +    engines: {node: '>=14.16'}
           dependencies:
             '@sindresorhus/is': 5.6.0
             '@szmarczak/http-timer': 5.0.1
      @@ -15715,66 +9767,108 @@ snapshots:
             lowercase-keys: 3.0.0
             p-cancelable: 3.0.0
             responselike: 3.0.0
      +    dev: false
       
      -  graceful-fs@4.2.10: {}
      +  /graceful-fs@4.2.10:
      +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
       
      -  graceful-fs@4.2.11: {}
      +  /graceful-fs@4.2.11:
      +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
       
      -  graceful-git@3.1.2:
      +  /graceful-git@3.1.2:
      +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
      +    engines: {node: '>=10'}
           dependencies:
             retry: 0.12.0
             safe-execa: 0.1.2
      +    dev: false
       
      -  graphemer@1.4.0: {}
      +  /graphemer@1.4.0:
      +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
       
      -  gray-matter@4.0.3:
      +  /gray-matter@4.0.3:
      +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
      +    engines: {node: '>=6.0'}
           dependencies:
             js-yaml: 3.14.1
             kind-of: 6.0.3
             section-matter: 1.0.0
             strip-bom-string: 1.0.0
      +    dev: false
       
      -  grouped-queue@2.0.0: {}
      +  /grouped-queue@2.0.0:
      +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
      +    engines: {node: '>=8.0.0'}
       
      -  gzip-size@6.0.0:
      +  /gzip-size@6.0.0:
      +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
      +    engines: {node: '>=10'}
           dependencies:
             duplexer: 0.1.2
      +    dev: false
       
      -  handle-thing@2.0.1: {}
      +  /handle-thing@2.0.1:
      +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
       
      -  hard-rejection@2.1.0: {}
      +  /hard-rejection@2.1.0:
      +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  has-bigints@1.0.2: {}
      +  /has-bigints@1.0.2:
      +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
      +    dev: true
       
      -  has-flag@3.0.0: {}
      +  /has-flag@3.0.0:
      +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
      +    engines: {node: '>=4'}
       
      -  has-flag@4.0.0: {}
      +  /has-flag@4.0.0:
      +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
      +    engines: {node: '>=8'}
       
      -  has-property-descriptors@1.0.2:
      +  /has-property-descriptors@1.0.2:
      +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
           dependencies:
             es-define-property: 1.0.0
       
      -  has-proto@1.0.3: {}
      +  /has-proto@1.0.3:
      +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
      +    engines: {node: '>= 0.4'}
       
      -  has-symbols@1.0.3: {}
      +  /has-symbols@1.0.3:
      +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
      +    engines: {node: '>= 0.4'}
       
      -  has-tostringtag@1.0.2:
      +  /has-tostringtag@1.0.2:
      +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-symbols: 1.0.3
      +    dev: true
       
      -  has-unicode@2.0.1: {}
      +  /has-unicode@2.0.1:
      +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
       
      -  has-yarn@3.0.0: {}
      +  /has-yarn@3.0.0:
      +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: false
       
      -  hasharray@1.1.2:
      +  /hasharray@1.1.2:
      +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
           dependencies:
             jclass: 1.2.1
      +    dev: false
       
      -  hasown@2.0.2:
      +  /hasown@2.0.2:
      +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             function-bind: 1.1.2
       
      -  hast-util-from-parse5@8.0.1:
      +  /hast-util-from-parse5@8.0.1:
      +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
           dependencies:
             '@types/hast': 3.0.4
             '@types/unist': 3.0.2
      @@ -15784,12 +9878,16 @@ snapshots:
             vfile: 6.0.1
             vfile-location: 5.0.2
             web-namespaces: 2.0.1
      +    dev: false
       
      -  hast-util-parse-selector@4.0.0:
      +  /hast-util-parse-selector@4.0.0:
      +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
           dependencies:
             '@types/hast': 3.0.4
      +    dev: false
       
      -  hast-util-raw@9.0.2:
      +  /hast-util-raw@9.0.2:
      +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
           dependencies:
             '@types/hast': 3.0.4
             '@types/unist': 3.0.2
      @@ -15804,8 +9902,10 @@ snapshots:
             vfile: 6.0.1
             web-namespaces: 2.0.1
             zwitch: 2.0.4
      +    dev: false
       
      -  hast-util-to-estree@3.1.0:
      +  /hast-util-to-estree@3.1.0:
      +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
           dependencies:
             '@types/estree': 1.0.5
             '@types/estree-jsx': 1.0.5
      @@ -15826,7 +9926,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  hast-util-to-jsx-runtime@2.3.0:
      +  /hast-util-to-jsx-runtime@2.3.0:
      +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
           dependencies:
             '@types/estree': 1.0.5
             '@types/hast': 3.0.4
      @@ -15846,7 +9947,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  hast-util-to-parse5@8.0.0:
      +  /hast-util-to-parse5@8.0.0:
      +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
           dependencies:
             '@types/hast': 3.0.4
             comma-separated-tokens: 2.0.3
      @@ -15855,22 +9957,29 @@ snapshots:
             space-separated-tokens: 2.0.2
             web-namespaces: 2.0.1
             zwitch: 2.0.4
      +    dev: false
       
      -  hast-util-whitespace@3.0.0:
      +  /hast-util-whitespace@3.0.0:
      +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
           dependencies:
             '@types/hast': 3.0.4
       
      -  hastscript@8.0.0:
      +  /hastscript@8.0.0:
      +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
           dependencies:
             '@types/hast': 3.0.4
             comma-separated-tokens: 2.0.3
             hast-util-parse-selector: 4.0.0
             property-information: 6.4.1
             space-separated-tokens: 2.0.2
      +    dev: false
       
      -  he@1.2.0: {}
      +  /he@1.2.0:
      +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
      +    hasBin: true
       
      -  history@4.10.1:
      +  /history@4.10.1:
      +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
           dependencies:
             '@babel/runtime': 7.24.1
             loose-envify: 1.4.0
      @@ -15878,41 +9987,61 @@ snapshots:
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
             value-equal: 1.0.1
      +    dev: false
       
      -  hoist-non-react-statics@3.3.2:
      +  /hoist-non-react-statics@3.3.2:
      +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
           dependencies:
             react-is: 16.13.1
      +    dev: false
       
      -  hosted-git-info@2.8.9: {}
      +  /hosted-git-info@2.8.9:
      +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
       
      -  hosted-git-info@4.1.0:
      +  /hosted-git-info@4.1.0:
      +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
      +    engines: {node: '>=10'}
           dependencies:
             lru-cache: 6.0.0
       
      -  hosted-git-info@6.1.1:
      +  /hosted-git-info@6.1.1:
      +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             lru-cache: 7.18.3
       
      -  hosted-git-info@7.0.1:
      +  /hosted-git-info@7.0.1:
      +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
      +    engines: {node: ^16.14.0 || >=18.0.0}
           dependencies:
             lru-cache: 10.2.0
      +    dev: true
       
      -  hpack.js@2.1.6:
      +  /hpack.js@2.1.6:
      +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
           dependencies:
             inherits: 2.0.4
             obuf: 1.1.2
             readable-stream: 2.3.8
             wbuf: 1.7.3
       
      -  html-encoding-sniffer@3.0.0:
      +  /html-encoding-sniffer@3.0.0:
      +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
      +    engines: {node: '>=12'}
           dependencies:
             whatwg-encoding: 2.0.0
      +    dev: true
       
      -  html-entities@2.5.2: {}
      +  /html-entities@2.5.2:
      +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
       
      -  html-escaper@2.0.2: {}
      +  /html-escaper@2.0.2:
      +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
       
      -  html-minifier-terser@6.1.0:
      +  /html-minifier-terser@6.1.0:
      +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
      +    engines: {node: '>=12'}
      +    hasBin: true
           dependencies:
             camel-case: 4.1.2
             clean-css: 5.3.3
      @@ -15922,7 +10051,10 @@ snapshots:
             relateurl: 0.2.7
             terser: 5.29.2
       
      -  html-minifier-terser@7.2.0:
      +  /html-minifier-terser@7.2.0:
      +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
      +    engines: {node: ^14.13.1 || >=16.0.0}
      +    hasBin: true
           dependencies:
             camel-case: 4.1.2
             clean-css: 5.3.3
      @@ -15931,12 +10063,28 @@ snapshots:
             param-case: 3.0.4
             relateurl: 0.2.7
             terser: 5.29.2
      +    dev: false
       
      -  html-tags@3.3.1: {}
      +  /html-tags@3.3.1:
      +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
      +    engines: {node: '>=8'}
      +    dev: false
       
      -  html-void-elements@3.0.0: {}
      +  /html-void-elements@3.0.0:
      +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
      +    dev: false
       
      -  html-webpack-plugin@5.6.0(webpack@5.91.0):
      +  /html-webpack-plugin@5.6.0(webpack@5.91.0):
      +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      webpack: ^5.20.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
           dependencies:
             '@types/html-minifier-terser': 6.1.0
             html-minifier-terser: 6.1.0
      @@ -15945,32 +10093,41 @@ snapshots:
             tapable: 2.2.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  htmlparser2@6.1.0:
      +  /htmlparser2@6.1.0:
      +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
           dependencies:
             domelementtype: 2.3.0
             domhandler: 4.3.1
             domutils: 2.8.0
             entities: 2.2.0
       
      -  htmlparser2@8.0.2:
      +  /htmlparser2@8.0.2:
      +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
           dependencies:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             domutils: 3.1.0
             entities: 4.5.0
      +    dev: false
       
      -  http-cache-semantics@4.1.1: {}
      +  /http-cache-semantics@4.1.1:
      +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
       
      -  http-deceiver@1.2.7: {}
      +  /http-deceiver@1.2.7:
      +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
       
      -  http-errors@1.6.3:
      +  /http-errors@1.6.3:
      +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             depd: 1.1.2
             inherits: 2.0.3
             setprototypeof: 1.1.0
             statuses: 1.5.0
       
      -  http-errors@2.0.0:
      +  /http-errors@2.0.0:
      +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             depd: 2.0.0
             inherits: 2.0.4
      @@ -15978,9 +10135,12 @@ snapshots:
             statuses: 2.0.1
             toidentifier: 1.0.1
       
      -  http-parser-js@0.5.8: {}
      +  /http-parser-js@0.5.8:
      +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
       
      -  http-proxy-agent@4.0.1:
      +  /http-proxy-agent@4.0.1:
      +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
      +    engines: {node: '>= 6'}
           dependencies:
             '@tootallnate/once': 1.1.2
             agent-base: 6.0.2
      @@ -15988,7 +10148,9 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  http-proxy-agent@5.0.0:
      +  /http-proxy-agent@5.0.0:
      +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
      +    engines: {node: '>= 6'}
           dependencies:
             '@tootallnate/once': 2.0.0
             agent-base: 6.0.2
      @@ -15996,7 +10158,14 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  http-proxy-middleware@2.0.6(@types/express@4.17.21):
      +  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
      +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
      +    engines: {node: '>=12.0.0'}
      +    peerDependencies:
      +      '@types/express': ^4.17.13
      +    peerDependenciesMeta:
      +      '@types/express':
      +        optional: true
           dependencies:
             '@types/express': 4.17.21
             '@types/http-proxy': 1.17.14
      @@ -16007,7 +10176,9 @@ snapshots:
           transitivePeerDependencies:
             - debug
       
      -  http-proxy@1.18.1:
      +  /http-proxy@1.18.1:
      +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
      +    engines: {node: '>=8.0.0'}
           dependencies:
             eventemitter3: 4.0.7
             follow-redirects: 1.15.6
      @@ -16015,7 +10186,10 @@ snapshots:
           transitivePeerDependencies:
             - debug
       
      -  http-server@14.1.1:
      +  /http-server@14.1.1:
      +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
      +    engines: {node: '>=12'}
      +    hasBin: true
           dependencies:
             basic-auth: 2.0.1
             chalk: 4.1.2
      @@ -16033,112 +10207,187 @@ snapshots:
           transitivePeerDependencies:
             - debug
             - supports-color
      +    dev: true
       
      -  http2-wrapper@2.2.1:
      +  /http2-wrapper@2.2.1:
      +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
      +    engines: {node: '>=10.19.0'}
           dependencies:
             quick-lru: 5.1.1
             resolve-alpn: 1.2.1
      +    dev: false
       
      -  https-proxy-agent@5.0.1:
      +  /https-proxy-agent@5.0.1:
      +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
      +    engines: {node: '>= 6'}
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
       
      -  human-signals@2.1.0: {}
      +  /human-signals@2.1.0:
      +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
      +    engines: {node: '>=10.17.0'}
       
      -  humanize-ms@1.2.1:
      +  /humanize-ms@1.2.1:
      +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
           dependencies:
             ms: 2.1.3
       
      -  hyphenate-style-name@1.0.4: {}
      +  /hyphenate-style-name@1.0.4:
      +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
      +    dev: false
       
      -  iconv-lite@0.4.24:
      +  /iconv-lite@0.4.24:
      +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             safer-buffer: 2.1.2
       
      -  iconv-lite@0.6.3:
      +  /iconv-lite@0.6.3:
      +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
      +    engines: {node: '>=0.10.0'}
      +    requiresBuild: true
           dependencies:
             safer-buffer: 2.1.2
       
      -  icss-utils@5.1.0(postcss@8.4.38):
      +  /icss-utils@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             postcss: 8.4.38
       
      -  ieee754@1.2.1: {}
      +  /ieee754@1.2.1:
      +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
       
      -  ignore-walk@4.0.1:
      +  /ignore-walk@4.0.1:
      +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
      +    engines: {node: '>=10'}
           dependencies:
             minimatch: 3.1.2
       
      -  ignore-walk@6.0.4:
      +  /ignore-walk@6.0.4:
      +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             minimatch: 9.0.3
       
      -  ignore@5.3.1: {}
      +  /ignore@5.3.1:
      +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
      +    engines: {node: '>= 4'}
       
      -  image-size@1.1.1:
      +  /image-size@1.1.1:
      +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
      +    engines: {node: '>=16.x'}
      +    hasBin: true
           dependencies:
             queue: 6.0.2
      +    dev: false
       
      -  immediate@3.0.6: {}
      +  /immediate@3.0.6:
      +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
      +    dev: true
       
      -  immer@10.0.4: {}
      +  /immer@10.0.4:
      +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
      +    dev: false
       
      -  immer@9.0.21: {}
      +  /immer@9.0.21:
      +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
      +    dev: false
       
      -  immutability-helper@3.1.1: {}
      +  /immutability-helper@3.1.1:
      +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
      +    dev: false
       
      -  import-fresh@3.3.0:
      +  /import-fresh@3.3.0:
      +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
      +    engines: {node: '>=6'}
           dependencies:
             parent-module: 1.0.1
             resolve-from: 4.0.0
       
      -  import-lazy@4.0.0: {}
      +  /import-lazy@4.0.0:
      +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
      +    engines: {node: '>=8'}
      +    dev: false
       
      -  import-local@3.1.0:
      +  /import-local@3.1.0:
      +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
      +    engines: {node: '>=8'}
      +    hasBin: true
           dependencies:
             pkg-dir: 4.2.0
             resolve-cwd: 3.0.0
       
      -  imurmurhash@0.1.4: {}
      +  /imurmurhash@0.1.4:
      +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
      +    engines: {node: '>=0.8.19'}
       
      -  indent-string@4.0.0: {}
      +  /indent-string@4.0.0:
      +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
      +    engines: {node: '>=8'}
       
      -  indent-string@5.0.0: {}
      +  /indent-string@5.0.0:
      +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  individual@3.0.0: {}
      +  /individual@3.0.0:
      +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
       
      -  infer-owner@1.0.4: {}
      +  /infer-owner@1.0.4:
      +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
       
      -  infima@0.2.0-alpha.43: {}
      +  /infima@0.2.0-alpha.43:
      +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  inflight@1.0.6:
      +  /inflight@1.0.6:
      +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
           dependencies:
             once: 1.4.0
             wrappy: 1.0.2
       
      -  inherits@2.0.3: {}
      +  /inherits@2.0.3:
      +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
       
      -  inherits@2.0.4: {}
      +  /inherits@2.0.4:
      +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
       
      -  ini@1.3.8: {}
      +  /ini@1.3.8:
      +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
       
      -  ini@2.0.0: {}
      +  /ini@2.0.0:
      +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  ini@3.0.1: {}
      +  /ini@3.0.1:
      +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +    dev: true
       
      -  inline-style-parser@0.1.1: {}
      +  /inline-style-parser@0.1.1:
      +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
       
      -  inline-style-parser@0.2.2: {}
      +  /inline-style-parser@0.2.2:
      +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
       
      -  inline-style-prefixer@7.0.0:
      +  /inline-style-prefixer@7.0.0:
      +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
           dependencies:
             css-in-js-utils: 3.1.0
             fast-loops: 1.1.3
      +    dev: false
       
      -  inquirer@8.2.6:
      +  /inquirer@8.2.6:
      +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
      +    engines: {node: '>=12.0.0'}
           dependencies:
             ansi-escapes: 4.3.2
             chalk: 4.1.2
      @@ -16156,255 +10405,454 @@ snapshots:
             through: 2.3.8
             wrap-ansi: 6.2.0
       
      -  internal-slot@1.0.7:
      +  /internal-slot@1.0.7:
      +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             es-errors: 1.3.0
             hasown: 2.0.2
             side-channel: 1.0.6
      +    dev: true
       
      -  interpret@1.4.0: {}
      +  /interpret@1.4.0:
      +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
      +    engines: {node: '>= 0.10'}
       
      -  interpret@3.1.1: {}
      +  /interpret@3.1.1:
      +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
      +    engines: {node: '>=10.13.0'}
       
      -  invariant@2.2.4:
      +  /invariant@2.2.4:
      +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
           dependencies:
             loose-envify: 1.4.0
       
      -  ip-address@9.0.5:
      +  /ip-address@9.0.5:
      +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
      +    engines: {node: '>= 12'}
           dependencies:
             jsbn: 1.1.0
             sprintf-js: 1.1.3
       
      -  ipaddr.js@1.9.1: {}
      +  /ipaddr.js@1.9.1:
      +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
      +    engines: {node: '>= 0.10'}
       
      -  ipaddr.js@2.1.0: {}
      +  /ipaddr.js@2.1.0:
      +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
      +    engines: {node: '>= 10'}
       
      -  is-alphabetical@2.0.1: {}
      +  /is-alphabetical@2.0.1:
      +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
       
      -  is-alphanumerical@2.0.1:
      +  /is-alphanumerical@2.0.1:
      +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
           dependencies:
             is-alphabetical: 2.0.1
             is-decimal: 2.0.1
       
      -  is-arguments@1.1.1:
      +  /is-arguments@1.1.1:
      +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-array-buffer@3.0.4:
      +  /is-array-buffer@3.0.4:
      +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      +    dev: true
       
      -  is-arrayish@0.2.1: {}
      +  /is-arrayish@0.2.1:
      +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
       
      -  is-arrayish@0.3.2: {}
      +  /is-arrayish@0.3.2:
      +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
       
      -  is-async-function@2.0.0:
      +  /is-async-function@2.0.0:
      +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-bigint@1.0.4:
      +  /is-bigint@1.0.4:
      +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
           dependencies:
             has-bigints: 1.0.2
      +    dev: true
       
      -  is-binary-path@2.1.0:
      +  /is-binary-path@2.1.0:
      +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
      +    engines: {node: '>=8'}
           dependencies:
             binary-extensions: 2.3.0
       
      -  is-boolean-object@1.1.2:
      +  /is-boolean-object@1.1.2:
      +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-builtin-module@3.2.1:
      +  /is-builtin-module@3.2.1:
      +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
      +    engines: {node: '>=6'}
           dependencies:
             builtin-modules: 3.3.0
      +    dev: true
       
      -  is-callable@1.2.7: {}
      +  /is-callable@1.2.7:
      +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  is-ci@3.0.1:
      +  /is-ci@3.0.1:
      +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
      +    hasBin: true
           dependencies:
             ci-info: 3.9.0
      +    dev: false
       
      -  is-core-module@2.13.1:
      +  /is-core-module@2.13.1:
      +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
           dependencies:
             hasown: 2.0.2
       
      -  is-data-view@1.0.1:
      +  /is-data-view@1.0.1:
      +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             is-typed-array: 1.1.13
      +    dev: true
       
      -  is-date-object@1.0.5:
      +  /is-date-object@1.0.5:
      +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-decimal@2.0.1: {}
      +  /is-decimal@2.0.1:
      +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
       
      -  is-docker@2.2.1: {}
      +  /is-docker@2.2.1:
      +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
      +    engines: {node: '>=8'}
      +    hasBin: true
      +    dev: false
       
      -  is-docker@3.0.0: {}
      +  /is-docker@3.0.0:
      +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    hasBin: true
       
      -  is-extendable@0.1.1: {}
      +  /is-extendable@0.1.1:
      +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  is-extglob@2.1.1: {}
      +  /is-extglob@2.1.1:
      +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
      +    engines: {node: '>=0.10.0'}
       
      -  is-finalizationregistry@1.0.2:
      +  /is-finalizationregistry@1.0.2:
      +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
           dependencies:
             call-bind: 1.0.7
      +    dev: true
       
      -  is-fullwidth-code-point@3.0.0: {}
      +  /is-fullwidth-code-point@3.0.0:
      +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
      +    engines: {node: '>=8'}
       
      -  is-generator-fn@2.1.0: {}
      +  /is-generator-fn@2.1.0:
      +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  is-generator-function@1.0.10:
      +  /is-generator-function@1.0.10:
      +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-glob@4.0.3:
      +  /is-glob@4.0.3:
      +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             is-extglob: 2.1.1
       
      -  is-hexadecimal@2.0.1: {}
      +  /is-hexadecimal@2.0.1:
      +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
       
      -  is-inside-container@1.0.0:
      +  /is-inside-container@1.0.0:
      +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
      +    engines: {node: '>=14.16'}
      +    hasBin: true
           dependencies:
             is-docker: 3.0.0
       
      -  is-installed-globally@0.4.0:
      +  /is-installed-globally@0.4.0:
      +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
      +    engines: {node: '>=10'}
           dependencies:
             global-dirs: 3.0.1
             is-path-inside: 3.0.3
      +    dev: false
       
      -  is-interactive@1.0.0: {}
      +  /is-interactive@1.0.0:
      +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
      +    engines: {node: '>=8'}
       
      -  is-lambda@1.0.1: {}
      +  /is-lambda@1.0.1:
      +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
       
      -  is-map@2.0.3: {}
      +  /is-map@2.0.3:
      +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  is-negative-zero@2.0.3: {}
      +  /is-negative-zero@2.0.3:
      +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  is-network-error@1.1.0: {}
      +  /is-network-error@1.1.0:
      +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
      +    engines: {node: '>=16'}
       
      -  is-npm@6.0.0: {}
      +  /is-npm@6.0.0:
      +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: false
       
      -  is-number-object@1.0.7:
      +  /is-number-object@1.0.7:
      +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-number@7.0.0: {}
      +  /is-number@7.0.0:
      +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
      +    engines: {node: '>=0.12.0'}
       
      -  is-obj@1.0.1: {}
      +  /is-obj@1.0.1:
      +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  is-obj@2.0.0: {}
      +  /is-obj@2.0.0:
      +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
      +    engines: {node: '>=8'}
      +    dev: false
       
      -  is-path-cwd@2.2.0: {}
      +  /is-path-cwd@2.2.0:
      +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  is-path-inside@3.0.3: {}
      +  /is-path-inside@3.0.3:
      +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
      +    engines: {node: '>=8'}
       
      -  is-plain-obj@1.1.0: {}
      +  /is-plain-obj@1.1.0:
      +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  is-plain-obj@2.1.0: {}
      +  /is-plain-obj@2.1.0:
      +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
      +    engines: {node: '>=8'}
       
      -  is-plain-obj@3.0.0: {}
      +  /is-plain-obj@3.0.0:
      +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
      +    engines: {node: '>=10'}
       
      -  is-plain-obj@4.1.0: {}
      +  /is-plain-obj@4.1.0:
      +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
      +    engines: {node: '>=12'}
       
      -  is-plain-object@2.0.4:
      +  /is-plain-object@2.0.4:
      +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             isobject: 3.0.1
       
      -  is-plain-object@5.0.0: {}
      +  /is-plain-object@5.0.0:
      +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
      +    engines: {node: '>=0.10.0'}
       
      -  is-potential-custom-element-name@1.0.1: {}
      +  /is-potential-custom-element-name@1.0.1:
      +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
      +    dev: true
       
      -  is-reference@3.0.2:
      +  /is-reference@3.0.2:
      +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
           dependencies:
             '@types/estree': 1.0.5
       
      -  is-regex@1.1.4:
      +  /is-regex@1.1.4:
      +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-regexp@1.0.0: {}
      +  /is-regexp@1.0.0:
      +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  is-root@2.1.0: {}
      +  /is-root@2.1.0:
      +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  is-scoped@2.1.0:
      +  /is-scoped@2.1.0:
      +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
      +    engines: {node: '>=8'}
           dependencies:
             scoped-regex: 2.1.0
       
      -  is-set@2.0.3: {}
      +  /is-set@2.0.3:
      +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  is-shared-array-buffer@1.0.3:
      +  /is-shared-array-buffer@1.0.3:
      +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
      +    dev: true
       
      -  is-stream@2.0.1: {}
      +  /is-stream@2.0.1:
      +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
      +    engines: {node: '>=8'}
       
      -  is-string@1.0.7:
      +  /is-string@1.0.7:
      +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  is-subdir@1.2.0:
      +  /is-subdir@1.2.0:
      +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
      +    engines: {node: '>=4'}
           dependencies:
             better-path-resolve: 1.0.0
      +    dev: true
       
      -  is-symbol@1.0.4:
      +  /is-symbol@1.0.4:
      +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             has-symbols: 1.0.3
      +    dev: true
       
      -  is-typed-array@1.1.13:
      +  /is-typed-array@1.1.13:
      +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             which-typed-array: 1.1.15
      +    dev: true
       
      -  is-typedarray@1.0.0: {}
      +  /is-typedarray@1.0.0:
      +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
       
      -  is-unicode-supported@0.1.0: {}
      +  /is-unicode-supported@0.1.0:
      +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
      +    engines: {node: '>=10'}
       
      -  is-utf8@0.2.1: {}
      +  /is-utf8@0.2.1:
      +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
       
      -  is-weakmap@2.0.2: {}
      +  /is-weakmap@2.0.2:
      +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  is-weakref@1.0.2:
      +  /is-weakref@1.0.2:
      +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
           dependencies:
             call-bind: 1.0.7
      +    dev: true
       
      -  is-weakset@2.0.3:
      +  /is-weakset@2.0.3:
      +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      +    dev: true
       
      -  is-windows@1.0.2: {}
      +  /is-windows@1.0.2:
      +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  is-wsl@2.2.0:
      +  /is-wsl@2.2.0:
      +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
      +    engines: {node: '>=8'}
           dependencies:
             is-docker: 2.2.1
      +    dev: false
       
      -  is-wsl@3.1.0:
      +  /is-wsl@3.1.0:
      +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
      +    engines: {node: '>=16'}
           dependencies:
             is-inside-container: 1.0.0
       
      -  is-yarn-global@0.4.1: {}
      +  /is-yarn-global@0.4.1:
      +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  isarray@0.0.1: {}
      +  /isarray@0.0.1:
      +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
      +    dev: false
       
      -  isarray@1.0.0: {}
      +  /isarray@1.0.0:
      +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
       
      -  isarray@2.0.5: {}
      +  /isarray@2.0.5:
      +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
      +    dev: true
       
      -  isbinaryfile@4.0.10: {}
      +  /isbinaryfile@4.0.10:
      +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
      +    engines: {node: '>= 8.0.0'}
       
      -  isbinaryfile@5.0.2: {}
      +  /isbinaryfile@5.0.2:
      +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
      +    engines: {node: '>= 18.0.0'}
       
      -  isexe@2.0.0: {}
      +  /isexe@2.0.0:
      +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
       
      -  isobject@3.0.1: {}
      +  /isobject@3.0.1:
      +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
      +    engines: {node: '>=0.10.0'}
       
      -  istanbul-lib-coverage@3.2.2: {}
      +  /istanbul-lib-coverage@3.2.2:
      +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  istanbul-lib-instrument@5.2.1:
      +  /istanbul-lib-instrument@5.2.1:
      +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
      +    engines: {node: '>=8'}
           dependencies:
             '@babel/core': 7.24.3
             '@babel/parser': 7.24.1
      @@ -16413,8 +10861,11 @@ snapshots:
             semver: 6.3.1
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  istanbul-lib-instrument@6.0.2:
      +  /istanbul-lib-instrument@6.0.2:
      +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
      +    engines: {node: '>=10'}
           dependencies:
             '@babel/core': 7.24.3
             '@babel/parser': 7.24.1
      @@ -16423,58 +10874,85 @@ snapshots:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  istanbul-lib-report@3.0.1:
      +  /istanbul-lib-report@3.0.1:
      +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
      +    engines: {node: '>=10'}
           dependencies:
             istanbul-lib-coverage: 3.2.2
             make-dir: 4.0.0
             supports-color: 7.2.0
      +    dev: true
       
      -  istanbul-lib-source-maps@4.0.1:
      +  /istanbul-lib-source-maps@4.0.1:
      +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
      +    engines: {node: '>=10'}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             istanbul-lib-coverage: 3.2.2
             source-map: 0.6.1
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  istanbul-reports@3.1.7:
      +  /istanbul-reports@3.1.7:
      +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
      +    engines: {node: '>=8'}
           dependencies:
             html-escaper: 2.0.2
             istanbul-lib-report: 3.0.1
      +    dev: true
       
      -  iterator.prototype@1.1.2:
      +  /iterator.prototype@1.1.2:
      +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
           dependencies:
             define-properties: 1.2.1
             get-intrinsic: 1.2.4
             has-symbols: 1.0.3
             reflect.getprototypeof: 1.0.6
             set-function-name: 2.0.2
      +    dev: true
       
      -  itertools@2.2.5: {}
      +  /itertools@2.2.5:
      +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
      +    dev: false
       
      -  jackspeak@2.3.6:
      +  /jackspeak@2.3.6:
      +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
      +    engines: {node: '>=14'}
           dependencies:
             '@isaacs/cliui': 8.0.2
           optionalDependencies:
             '@pkgjs/parseargs': 0.11.0
       
      -  jake@10.8.7:
      +  /jake@10.8.7:
      +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             async: 3.2.5
             chalk: 4.1.2
             filelist: 1.0.4
             minimatch: 3.1.2
       
      -  jclass@1.2.1: {}
      +  /jclass@1.2.1:
      +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
      +    engines: {node: '>= 0.6'}
      +    dev: false
       
      -  jest-changed-files@29.7.0:
      +  /jest-changed-files@29.7.0:
      +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             execa: 5.1.1
             jest-util: 29.7.0
             p-limit: 3.1.0
      +    dev: true
       
      -  jest-circus@29.7.0:
      +  /jest-circus@29.7.0:
      +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/expect': 29.7.0
      @@ -16499,8 +10977,17 @@ snapshots:
           transitivePeerDependencies:
             - babel-plugin-macros
             - supports-color
      +    dev: true
       
      -  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
           dependencies:
             '@jest/core': 29.7.0(ts-node@10.9.2)
             '@jest/test-result': 29.7.0
      @@ -16518,8 +11005,19 @@ snapshots:
             - babel-plugin-macros
             - supports-color
             - ts-node
      +    dev: true
       
      -  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@types/node': '*'
      +      ts-node: '>=9.0.0'
      +    peerDependenciesMeta:
      +      '@types/node':
      +        optional: true
      +      ts-node:
      +        optional: true
           dependencies:
             '@babel/core': 7.24.3
             '@jest/test-sequencer': 29.7.0
      @@ -16548,27 +11046,44 @@ snapshots:
           transitivePeerDependencies:
             - babel-plugin-macros
             - supports-color
      +    dev: true
       
      -  jest-diff@29.7.0:
      +  /jest-diff@29.7.0:
      +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             chalk: 4.1.2
             diff-sequences: 29.6.3
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      +    dev: true
       
      -  jest-docblock@29.7.0:
      +  /jest-docblock@29.7.0:
      +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             detect-newline: 3.1.0
      +    dev: true
       
      -  jest-each@29.7.0:
      +  /jest-each@29.7.0:
      +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             chalk: 4.1.2
             jest-get-type: 29.6.3
             jest-util: 29.7.0
             pretty-format: 29.7.0
      +    dev: true
       
      -  jest-environment-jsdom@29.7.0:
      +  /jest-environment-jsdom@29.7.0:
      +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      canvas: ^2.5.0
      +    peerDependenciesMeta:
      +      canvas:
      +        optional: true
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -16582,8 +11097,11 @@ snapshots:
             - bufferutil
             - supports-color
             - utf-8-validate
      +    dev: true
       
      -  jest-environment-node@29.7.0:
      +  /jest-environment-node@29.7.0:
      +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -16591,10 +11109,16 @@ snapshots:
             '@types/node': 18.18.2
             jest-mock: 29.7.0
             jest-util: 29.7.0
      +    dev: true
       
      -  jest-get-type@29.6.3: {}
      +  /jest-get-type@29.6.3:
      +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    dev: true
       
      -  jest-haste-map@29.7.0:
      +  /jest-haste-map@29.7.0:
      +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             '@types/graceful-fs': 4.1.9
      @@ -16609,20 +11133,29 @@ snapshots:
             walker: 1.0.8
           optionalDependencies:
             fsevents: 2.3.3
      +    dev: true
       
      -  jest-leak-detector@29.7.0:
      +  /jest-leak-detector@29.7.0:
      +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      +    dev: true
       
      -  jest-matcher-utils@29.7.0:
      +  /jest-matcher-utils@29.7.0:
      +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             chalk: 4.1.2
             jest-diff: 29.7.0
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      +    dev: true
       
      -  jest-message-util@29.7.0:
      +  /jest-message-util@29.7.0:
      +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@babel/code-frame': 7.24.2
             '@jest/types': 29.6.3
      @@ -16633,27 +11166,47 @@ snapshots:
             pretty-format: 29.7.0
             slash: 3.0.0
             stack-utils: 2.0.6
      +    dev: true
       
      -  jest-mock@29.7.0:
      +  /jest-mock@29.7.0:
      +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
             jest-util: 29.7.0
      +    dev: true
       
      -  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
      +  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
      +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
      +    engines: {node: '>=6'}
      +    peerDependencies:
      +      jest-resolve: '*'
      +    peerDependenciesMeta:
      +      jest-resolve:
      +        optional: true
           dependencies:
             jest-resolve: 29.7.0
      +    dev: true
       
      -  jest-regex-util@29.6.3: {}
      +  /jest-regex-util@29.6.3:
      +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    dev: true
       
      -  jest-resolve-dependencies@29.7.0:
      +  /jest-resolve-dependencies@29.7.0:
      +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             jest-regex-util: 29.6.3
             jest-snapshot: 29.7.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  jest-resolve@29.7.0:
      +  /jest-resolve@29.7.0:
      +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             chalk: 4.1.2
             graceful-fs: 4.2.11
      @@ -16664,8 +11217,11 @@ snapshots:
             resolve: 1.22.8
             resolve.exports: 2.0.2
             slash: 3.0.0
      +    dev: true
       
      -  jest-runner@29.7.0:
      +  /jest-runner@29.7.0:
      +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/console': 29.7.0
             '@jest/environment': 29.7.0
      @@ -16690,8 +11246,11 @@ snapshots:
             source-map-support: 0.5.13
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  jest-runtime@29.7.0:
      +  /jest-runtime@29.7.0:
      +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -16717,8 +11276,11 @@ snapshots:
             strip-bom: 4.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  jest-snapshot@29.7.0:
      +  /jest-snapshot@29.7.0:
      +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@babel/core': 7.24.3
             '@babel/generator': 7.24.1
      @@ -16742,8 +11304,11 @@ snapshots:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  jest-util@29.7.0:
      +  /jest-util@29.7.0:
      +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
      @@ -16752,7 +11317,9 @@ snapshots:
             graceful-fs: 4.2.11
             picomatch: 2.3.1
       
      -  jest-validate@29.7.0:
      +  /jest-validate@29.7.0:
      +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/types': 29.6.3
             camelcase: 6.3.0
      @@ -16760,8 +11327,11 @@ snapshots:
             jest-get-type: 29.6.3
             leven: 3.1.0
             pretty-format: 29.7.0
      +    dev: true
       
      -  jest-watcher@29.7.0:
      +  /jest-watcher@29.7.0:
      +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/test-result': 29.7.0
             '@jest/types': 29.6.3
      @@ -16771,21 +11341,34 @@ snapshots:
             emittery: 0.13.1
             jest-util: 29.7.0
             string-length: 4.0.2
      +    dev: true
       
      -  jest-worker@27.5.1:
      +  /jest-worker@27.5.1:
      +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
      +    engines: {node: '>= 10.13.0'}
           dependencies:
             '@types/node': 18.18.2
             merge-stream: 2.0.0
             supports-color: 8.1.1
       
      -  jest-worker@29.7.0:
      +  /jest-worker@29.7.0:
      +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@types/node': 18.18.2
             jest-util: 29.7.0
             merge-stream: 2.0.0
             supports-color: 8.1.1
       
      -  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
           dependencies:
             '@jest/core': 29.7.0(ts-node@10.9.2)
             '@jest/types': 29.6.3
      @@ -16796,10 +11379,14 @@ snapshots:
             - babel-plugin-macros
             - supports-color
             - ts-node
      +    dev: true
       
      -  jiti@1.21.0: {}
      +  /jiti@1.21.0:
      +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
      +    hasBin: true
       
      -  joi@17.12.2:
      +  /joi@17.12.2:
      +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
           dependencies:
             '@hapi/hoek': 9.3.0
             '@hapi/topo': 5.1.0
      @@ -16807,22 +11394,37 @@ snapshots:
             '@sideway/formula': 3.0.1
             '@sideway/pinpoint': 2.0.0
       
      -  js-cookie@2.2.1: {}
      +  /js-cookie@2.2.1:
      +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
      +    dev: false
       
      -  js-tokens@4.0.0: {}
      +  /js-tokens@4.0.0:
      +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
       
      -  js-yaml@3.14.1:
      +  /js-yaml@3.14.1:
      +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
      +    hasBin: true
           dependencies:
             argparse: 1.0.10
             esprima: 4.0.1
       
      -  js-yaml@4.1.0:
      +  /js-yaml@4.1.0:
      +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
      +    hasBin: true
           dependencies:
             argparse: 2.0.1
       
      -  jsbn@1.1.0: {}
      +  /jsbn@1.1.0:
      +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
       
      -  jsdom@20.0.3:
      +  /jsdom@20.0.3:
      +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      canvas: ^2.5.0
      +    peerDependenciesMeta:
      +      canvas:
      +        optional: true
           dependencies:
             abab: 2.0.6
             acorn: 8.11.3
      @@ -16854,168 +11456,272 @@ snapshots:
             - bufferutil
             - supports-color
             - utf-8-validate
      +    dev: true
       
      -  jsesc@0.5.0: {}
      +  /jsesc@0.5.0:
      +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
      +    hasBin: true
       
      -  jsesc@2.5.2: {}
      +  /jsesc@2.5.2:
      +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
      +    engines: {node: '>=4'}
      +    hasBin: true
       
      -  jsesc@3.0.2: {}
      +  /jsesc@3.0.2:
      +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
      +    engines: {node: '>=6'}
      +    hasBin: true
      +    dev: true
       
      -  json-buffer@3.0.1: {}
      +  /json-buffer@3.0.1:
      +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
       
      -  json-parse-even-better-errors@2.3.1: {}
      +  /json-parse-even-better-errors@2.3.1:
      +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
       
      -  json-parse-even-better-errors@3.0.1: {}
      +  /json-parse-even-better-errors@3.0.1:
      +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  json-schema-traverse@0.4.1: {}
      +  /json-schema-traverse@0.4.1:
      +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
       
      -  json-schema-traverse@1.0.0: {}
      +  /json-schema-traverse@1.0.0:
      +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
       
      -  json-stable-stringify-without-jsonify@1.0.1: {}
      +  /json-stable-stringify-without-jsonify@1.0.1:
      +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
       
      -  json-stringify-nice@1.1.4: {}
      +  /json-stringify-nice@1.1.4:
      +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
       
      -  json-stringify-safe@5.0.1: {}
      +  /json-stringify-safe@5.0.1:
      +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
       
      -  json5@1.0.2:
      +  /json5@1.0.2:
      +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
      +    hasBin: true
           dependencies:
             minimist: 1.2.8
      +    dev: true
       
      -  json5@2.2.3: {}
      +  /json5@2.2.3:
      +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
      +    engines: {node: '>=6'}
      +    hasBin: true
       
      -  jsonfile@6.1.0:
      +  /jsonfile@6.1.0:
      +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
           dependencies:
             universalify: 2.0.1
           optionalDependencies:
             graceful-fs: 4.2.11
       
      -  jsonparse@1.3.1: {}
      +  /jsonparse@1.3.1:
      +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
      +    engines: {'0': node >= 0.2.0}
       
      -  jsx-ast-utils@3.3.5:
      +  /jsx-ast-utils@3.3.5:
      +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
      +    engines: {node: '>=4.0'}
           dependencies:
             array-includes: 3.1.8
             array.prototype.flat: 1.3.2
             object.assign: 4.1.5
             object.values: 1.2.0
      +    dev: true
       
      -  jszip@3.10.1:
      +  /jszip@3.10.1:
      +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
           dependencies:
             lie: 3.3.0
             pako: 1.0.11
             readable-stream: 2.3.8
             setimmediate: 1.0.5
      +    dev: true
       
      -  just-diff-apply@5.5.0: {}
      +  /just-diff-apply@5.5.0:
      +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
       
      -  just-diff@5.2.0: {}
      +  /just-diff@5.2.0:
      +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
       
      -  just-extend@6.2.0: {}
      +  /just-extend@6.2.0:
      +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
      +    dev: true
       
      -  keyv@4.5.4:
      +  /keyv@4.5.4:
      +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
           dependencies:
             json-buffer: 3.0.1
       
      -  kind-of@6.0.3: {}
      +  /kind-of@6.0.3:
      +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
      +    engines: {node: '>=0.10.0'}
       
      -  kleur@3.0.3: {}
      +  /kleur@3.0.3:
      +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
      +    engines: {node: '>=6'}
       
      -  kuler@2.0.0: {}
      +  /kuler@2.0.0:
      +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
       
      -  language-subtag-registry@0.3.22: {}
      +  /language-subtag-registry@0.3.22:
      +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
      +    dev: true
       
      -  language-tags@1.0.9:
      +  /language-tags@1.0.9:
      +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
      +    engines: {node: '>=0.10'}
           dependencies:
             language-subtag-registry: 0.3.22
      +    dev: true
       
      -  latest-version@7.0.0:
      +  /latest-version@7.0.0:
      +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
      +    engines: {node: '>=14.16'}
           dependencies:
             package-json: 8.1.1
      +    dev: false
       
      -  launch-editor@2.6.1:
      +  /launch-editor@2.6.1:
      +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
           dependencies:
             picocolors: 1.0.0
             shell-quote: 1.8.1
       
      -  leven@3.1.0: {}
      +  /leven@3.1.0:
      +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
      +    engines: {node: '>=6'}
       
      -  levn@0.4.1:
      +  /levn@0.4.1:
      +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             prelude-ls: 1.2.1
             type-check: 0.4.0
       
      -  lie@3.3.0:
      +  /lie@3.3.0:
      +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
           dependencies:
             immediate: 3.0.6
      +    dev: true
       
      -  lilconfig@2.1.0: {}
      +  /lilconfig@2.1.0:
      +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
      +    engines: {node: '>=10'}
       
      -  lilconfig@3.1.1: {}
      +  /lilconfig@3.1.1:
      +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
      +    engines: {node: '>=14'}
      +    dev: true
       
      -  lines-and-columns@1.2.4: {}
      +  /lines-and-columns@1.2.4:
      +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
       
      -  load-json-file@6.2.0:
      +  /load-json-file@6.2.0:
      +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
      +    engines: {node: '>=8'}
           dependencies:
             graceful-fs: 4.2.11
             parse-json: 5.2.0
             strip-bom: 4.0.0
             type-fest: 0.6.0
      +    dev: true
       
      -  load-json-file@7.0.1: {}
      +  /load-json-file@7.0.1:
      +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: true
       
      -  load-script@1.0.0: {}
      +  /load-script@1.0.0:
      +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
      +    dev: false
       
      -  load-yaml-file@0.2.0:
      +  /load-yaml-file@0.2.0:
      +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
      +    engines: {node: '>=6'}
           dependencies:
             graceful-fs: 4.2.11
             js-yaml: 3.14.1
             pify: 4.0.1
             strip-bom: 3.0.0
       
      -  loader-runner@4.3.0: {}
      +  /loader-runner@4.3.0:
      +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
      +    engines: {node: '>=6.11.5'}
       
      -  loader-utils@2.0.4:
      +  /loader-utils@2.0.4:
      +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
      +    engines: {node: '>=8.9.0'}
           dependencies:
             big.js: 5.2.2
             emojis-list: 3.0.0
             json5: 2.2.3
      +    dev: false
       
      -  loader-utils@3.2.1: {}
      +  /loader-utils@3.2.1:
      +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
      +    engines: {node: '>= 12.13.0'}
      +    dev: false
       
      -  locate-path@3.0.0:
      +  /locate-path@3.0.0:
      +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
      +    engines: {node: '>=6'}
           dependencies:
             p-locate: 3.0.0
             path-exists: 3.0.0
      +    dev: false
       
      -  locate-path@5.0.0:
      +  /locate-path@5.0.0:
      +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
      +    engines: {node: '>=8'}
           dependencies:
             p-locate: 4.1.0
       
      -  locate-path@6.0.0:
      +  /locate-path@6.0.0:
      +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
      +    engines: {node: '>=10'}
           dependencies:
             p-locate: 5.0.0
       
      -  locate-path@7.2.0:
      +  /locate-path@7.2.0:
      +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             p-locate: 6.0.0
      +    dev: false
       
      -  lodash.debounce@4.0.8: {}
      +  /lodash.debounce@4.0.8:
      +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
       
      -  lodash.get@4.4.2: {}
      +  /lodash.get@4.4.2:
      +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
      +    dev: true
       
      -  lodash.memoize@4.1.2: {}
      +  /lodash.memoize@4.1.2:
      +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
       
      -  lodash.merge@4.6.2: {}
      +  /lodash.merge@4.6.2:
      +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
       
      -  lodash.uniq@4.5.0: {}
      +  /lodash.uniq@4.5.0:
      +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
      +    dev: false
       
      -  lodash@4.17.21: {}
      +  /lodash@4.17.21:
      +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
       
      -  log-symbols@4.1.0:
      +  /log-symbols@4.1.0:
      +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
      +    engines: {node: '>=10'}
           dependencies:
             chalk: 4.1.2
             is-unicode-supported: 0.1.0
       
      -  logform@2.6.0:
      +  /logform@2.6.0:
      +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
      +    engines: {node: '>= 12.0.0'}
           dependencies:
             '@colors/colors': 1.6.0
             '@types/triple-beam': 1.3.5
      @@ -17024,45 +11730,74 @@ snapshots:
             safe-stable-stringify: 2.4.3
             triple-beam: 1.4.1
       
      -  longest-streak@3.1.0: {}
      +  /longest-streak@3.1.0:
      +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
       
      -  loose-envify@1.4.0:
      +  /loose-envify@1.4.0:
      +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
      +    hasBin: true
           dependencies:
             js-tokens: 4.0.0
       
      -  loupe@3.1.0:
      +  /loupe@3.1.0:
      +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
           dependencies:
             get-func-name: 2.0.2
      +    dev: true
       
      -  lower-case@2.0.2:
      +  /lower-case@2.0.2:
      +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
           dependencies:
             tslib: 2.6.2
       
      -  lowercase-keys@3.0.0: {}
      +  /lowercase-keys@3.0.0:
      +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: false
       
      -  lru-cache@10.2.0: {}
      +  /lru-cache@10.2.0:
      +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
      +    engines: {node: 14 || >=16.14}
       
      -  lru-cache@5.1.1:
      +  /lru-cache@5.1.1:
      +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
           dependencies:
             yallist: 3.1.1
       
      -  lru-cache@6.0.0:
      +  /lru-cache@6.0.0:
      +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
      +    engines: {node: '>=10'}
           dependencies:
             yallist: 4.0.0
       
      -  lru-cache@7.10.1: {}
      +  /lru-cache@7.10.1:
      +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  lru-cache@7.18.3: {}
      +  /lru-cache@7.18.3:
      +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
      +    engines: {node: '>=12'}
       
      -  lz-string@1.5.0: {}
      +  /lz-string@1.5.0:
      +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
      +    hasBin: true
      +    dev: true
       
      -  make-dir@4.0.0:
      +  /make-dir@4.0.0:
      +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
      +    engines: {node: '>=10'}
           dependencies:
             semver: 7.6.0
      +    dev: true
       
      -  make-error@1.3.6: {}
      +  /make-error@1.3.6:
      +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
      +    dev: true
       
      -  make-fetch-happen@10.2.1:
      +  /make-fetch-happen@10.2.1:
      +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 16.1.3
      @@ -17084,7 +11819,9 @@ snapshots:
             - bluebird
             - supports-color
       
      -  make-fetch-happen@11.1.1:
      +  /make-fetch-happen@11.1.1:
      +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 17.1.4
      @@ -17104,7 +11841,9 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  make-fetch-happen@9.1.0:
      +  /make-fetch-happen@9.1.0:
      +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
      +    engines: {node: '>= 10'}
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 15.3.0
      @@ -17126,23 +11865,39 @@ snapshots:
             - bluebird
             - supports-color
       
      -  makeerror@1.0.12:
      +  /makeerror@1.0.12:
      +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
           dependencies:
             tmpl: 1.0.5
      +    dev: true
       
      -  map-age-cleaner@0.1.3:
      +  /map-age-cleaner@0.1.3:
      +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
      +    engines: {node: '>=6'}
           dependencies:
             p-defer: 1.0.0
      +    dev: true
       
      -  map-obj@1.0.1: {}
      +  /map-obj@1.0.1:
      +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  map-obj@4.3.0: {}
      +  /map-obj@4.3.0:
      +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  markdown-extensions@2.0.0: {}
      +  /markdown-extensions@2.0.0:
      +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
      +    engines: {node: '>=16'}
       
      -  markdown-table@3.0.3: {}
      +  /markdown-table@3.0.3:
      +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
      +    dev: false
       
      -  mdast-util-directive@3.0.0:
      +  /mdast-util-directive@3.0.0:
      +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -17154,15 +11909,19 @@ snapshots:
             unist-util-visit-parents: 6.0.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-find-and-replace@3.0.1:
      +  /mdast-util-find-and-replace@3.0.1:
      +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
           dependencies:
             '@types/mdast': 4.0.3
             escape-string-regexp: 5.0.0
             unist-util-is: 6.0.0
             unist-util-visit-parents: 6.0.1
      +    dev: false
       
      -  mdast-util-from-markdown@2.0.0:
      +  /mdast-util-from-markdown@2.0.0:
      +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -17179,7 +11938,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  mdast-util-frontmatter@2.0.1:
      +  /mdast-util-frontmatter@2.0.1:
      +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -17189,16 +11949,20 @@ snapshots:
             micromark-extension-frontmatter: 2.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-gfm-autolink-literal@2.0.0:
      +  /mdast-util-gfm-autolink-literal@2.0.0:
      +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
           dependencies:
             '@types/mdast': 4.0.3
             ccount: 2.0.1
             devlop: 1.1.0
             mdast-util-find-and-replace: 3.0.1
             micromark-util-character: 2.1.0
      +    dev: false
       
      -  mdast-util-gfm-footnote@2.0.0:
      +  /mdast-util-gfm-footnote@2.0.0:
      +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -17207,16 +11971,20 @@ snapshots:
             micromark-util-normalize-identifier: 2.0.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-gfm-strikethrough@2.0.0:
      +  /mdast-util-gfm-strikethrough@2.0.0:
      +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-from-markdown: 2.0.0
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-gfm-table@2.0.0:
      +  /mdast-util-gfm-table@2.0.0:
      +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -17225,8 +11993,10 @@ snapshots:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-gfm-task-list-item@2.0.0:
      +  /mdast-util-gfm-task-list-item@2.0.0:
      +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -17234,8 +12004,10 @@ snapshots:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-gfm@3.0.0:
      +  /mdast-util-gfm@3.0.0:
      +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
           dependencies:
             mdast-util-from-markdown: 2.0.0
             mdast-util-gfm-autolink-literal: 2.0.0
      @@ -17246,8 +12018,10 @@ snapshots:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  mdast-util-mdx-expression@2.0.0:
      +  /mdast-util-mdx-expression@2.0.0:
      +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -17258,7 +12032,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  mdast-util-mdx-jsx@3.1.2:
      +  /mdast-util-mdx-jsx@3.1.2:
      +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -17276,7 +12051,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  mdast-util-mdx@3.0.0:
      +  /mdast-util-mdx@3.0.0:
      +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
           dependencies:
             mdast-util-from-markdown: 2.0.0
             mdast-util-mdx-expression: 2.0.0
      @@ -17286,7 +12062,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  mdast-util-mdxjs-esm@2.0.1:
      +  /mdast-util-mdxjs-esm@2.0.1:
      +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -17297,12 +12074,14 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  mdast-util-phrasing@4.1.0:
      +  /mdast-util-phrasing@4.1.0:
      +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
           dependencies:
             '@types/mdast': 4.0.3
             unist-util-is: 6.0.0
       
      -  mdast-util-to-hast@13.1.0:
      +  /mdast-util-to-hast@13.1.0:
      +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
           dependencies:
             '@types/hast': 3.0.4
             '@types/mdast': 4.0.3
      @@ -17314,7 +12093,8 @@ snapshots:
             unist-util-visit: 5.0.0
             vfile: 6.0.1
       
      -  mdast-util-to-markdown@2.1.0:
      +  /mdast-util-to-markdown@2.1.0:
      +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -17325,19 +12105,35 @@ snapshots:
             unist-util-visit: 5.0.0
             zwitch: 2.0.4
       
      -  mdast-util-to-string@4.0.0:
      +  /mdast-util-to-string@4.0.0:
      +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
           dependencies:
             '@types/mdast': 4.0.3
       
      -  mdn-data@2.0.14: {}
      +  /mdn-data@2.0.14:
      +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
      +    dev: false
       
      -  mdn-data@2.0.28: {}
      +  /mdn-data@2.0.28:
      +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
      +    dev: true
       
      -  mdn-data@2.0.30: {}
      +  /mdn-data@2.0.30:
      +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
      +    dev: true
       
      -  media-typer@0.3.0: {}
      +  /media-typer@0.3.0:
      +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
      +    engines: {node: '>= 0.6'}
       
      -  mem-fs-editor@9.7.0(mem-fs@2.3.0):
      +  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
      +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
      +    engines: {node: '>=12.10.0'}
      +    peerDependencies:
      +      mem-fs: ^2.1.0
      +    peerDependenciesMeta:
      +      mem-fs:
      +        optional: true
           dependencies:
             binaryextensions: 4.19.0
             commondir: 1.0.1
      @@ -17351,29 +12147,43 @@ snapshots:
             normalize-path: 3.0.0
             textextensions: 5.16.0
       
      -  mem-fs@2.3.0:
      +  /mem-fs@2.3.0:
      +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
      +    engines: {node: '>=12'}
           dependencies:
             '@types/node': 15.14.9
             '@types/vinyl': 2.0.11
             vinyl: 2.2.1
             vinyl-file: 3.0.0
       
      -  mem@8.1.1:
      +  /mem@8.1.1:
      +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
      +    engines: {node: '>=10'}
           dependencies:
             map-age-cleaner: 0.1.3
             mimic-fn: 3.1.0
      +    dev: true
       
      -  memfs@3.5.3:
      +  /memfs@3.5.3:
      +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
      +    engines: {node: '>= 4.0.0'}
           dependencies:
             fs-monkey: 1.0.5
      +    dev: false
       
      -  memfs@4.8.0:
      +  /memfs@4.8.0:
      +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
      +    engines: {node: '>= 4.0.0'}
           dependencies:
             tslib: 2.6.2
       
      -  memoize-one@5.2.1: {}
      +  /memoize-one@5.2.1:
      +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
      +    dev: false
       
      -  meow@10.1.5:
      +  /meow@10.1.5:
      +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             '@types/minimist': 1.2.5
             camelcase-keys: 7.0.2
      @@ -17387,16 +12197,24 @@ snapshots:
             trim-newlines: 4.1.1
             type-fest: 1.4.0
             yargs-parser: 20.2.9
      +    dev: true
       
      -  merge-descriptors@1.0.1: {}
      +  /merge-descriptors@1.0.1:
      +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
       
      -  merge-stream@2.0.0: {}
      +  /merge-stream@2.0.0:
      +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
       
      -  merge2@1.4.1: {}
      +  /merge2@1.4.1:
      +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
      +    engines: {node: '>= 8'}
       
      -  methods@1.1.2: {}
      +  /methods@1.1.2:
      +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
      +    engines: {node: '>= 0.6'}
       
      -  micromark-core-commonmark@2.0.0:
      +  /micromark-core-commonmark@2.0.0:
      +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
           dependencies:
             decode-named-character-reference: 1.0.2
             devlop: 1.1.0
      @@ -17415,7 +12233,8 @@ snapshots:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-extension-directive@3.0.0:
      +  /micromark-extension-directive@3.0.0:
      +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
      @@ -17424,22 +12243,28 @@ snapshots:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
             parse-entities: 4.0.1
      +    dev: false
       
      -  micromark-extension-frontmatter@2.0.0:
      +  /micromark-extension-frontmatter@2.0.0:
      +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
           dependencies:
             fault: 2.0.1
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-autolink-literal@2.0.0:
      +  /micromark-extension-gfm-autolink-literal@2.0.0:
      +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-sanitize-uri: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-footnote@2.0.0:
      +  /micromark-extension-gfm-footnote@2.0.0:
      +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
           dependencies:
             devlop: 1.1.0
             micromark-core-commonmark: 2.0.0
      @@ -17449,8 +12274,10 @@ snapshots:
             micromark-util-sanitize-uri: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-strikethrough@2.0.0:
      +  /micromark-extension-gfm-strikethrough@2.0.0:
      +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
           dependencies:
             devlop: 1.1.0
             micromark-util-chunked: 2.0.0
      @@ -17458,28 +12285,36 @@ snapshots:
             micromark-util-resolve-all: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-table@2.0.0:
      +  /micromark-extension-gfm-table@2.0.0:
      +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-tagfilter@2.0.0:
      +  /micromark-extension-gfm-tagfilter@2.0.0:
      +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
           dependencies:
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm-task-list-item@2.0.1:
      +  /micromark-extension-gfm-task-list-item@2.0.1:
      +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-gfm@3.0.0:
      +  /micromark-extension-gfm@3.0.0:
      +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
           dependencies:
             micromark-extension-gfm-autolink-literal: 2.0.0
             micromark-extension-gfm-footnote: 2.0.0
      @@ -17489,8 +12324,10 @@ snapshots:
             micromark-extension-gfm-task-list-item: 2.0.1
             micromark-util-combine-extensions: 2.0.0
             micromark-util-types: 2.0.0
      +    dev: false
       
      -  micromark-extension-mdx-expression@3.0.0:
      +  /micromark-extension-mdx-expression@3.0.0:
      +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -17501,7 +12338,8 @@ snapshots:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-extension-mdx-jsx@3.0.0:
      +  /micromark-extension-mdx-jsx@3.0.0:
      +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
           dependencies:
             '@types/acorn': 4.0.6
             '@types/estree': 1.0.5
      @@ -17514,11 +12352,13 @@ snapshots:
             micromark-util-types: 2.0.0
             vfile-message: 4.0.2
       
      -  micromark-extension-mdx-md@2.0.0:
      +  /micromark-extension-mdx-md@2.0.0:
      +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
           dependencies:
             micromark-util-types: 2.0.0
       
      -  micromark-extension-mdxjs-esm@3.0.0:
      +  /micromark-extension-mdxjs-esm@3.0.0:
      +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -17530,7 +12370,8 @@ snapshots:
             unist-util-position-from-estree: 2.0.0
             vfile-message: 4.0.2
       
      -  micromark-extension-mdxjs@3.0.0:
      +  /micromark-extension-mdxjs@3.0.0:
      +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
           dependencies:
             acorn: 8.11.3
             acorn-jsx: 5.3.2(acorn@8.11.3)
      @@ -17541,20 +12382,23 @@ snapshots:
             micromark-util-combine-extensions: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-factory-destination@2.0.0:
      +  /micromark-factory-destination@2.0.0:
      +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-factory-label@2.0.0:
      +  /micromark-factory-label@2.0.0:
      +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
           dependencies:
             devlop: 1.1.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-factory-mdx-expression@2.0.1:
      +  /micromark-factory-mdx-expression@2.0.1:
      +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -17565,69 +12409,84 @@ snapshots:
             unist-util-position-from-estree: 2.0.0
             vfile-message: 4.0.2
       
      -  micromark-factory-space@1.1.0:
      +  /micromark-factory-space@1.1.0:
      +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
           dependencies:
             micromark-util-character: 1.2.0
             micromark-util-types: 1.1.0
      +    dev: false
       
      -  micromark-factory-space@2.0.0:
      +  /micromark-factory-space@2.0.0:
      +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-types: 2.0.0
       
      -  micromark-factory-title@2.0.0:
      +  /micromark-factory-title@2.0.0:
      +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
           dependencies:
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-factory-whitespace@2.0.0:
      +  /micromark-factory-whitespace@2.0.0:
      +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
           dependencies:
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-util-character@1.2.0:
      +  /micromark-util-character@1.2.0:
      +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
           dependencies:
             micromark-util-symbol: 1.1.0
             micromark-util-types: 1.1.0
      +    dev: false
       
      -  micromark-util-character@2.1.0:
      +  /micromark-util-character@2.1.0:
      +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
           dependencies:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-util-chunked@2.0.0:
      +  /micromark-util-chunked@2.0.0:
      +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  micromark-util-classify-character@2.0.0:
      +  /micromark-util-classify-character@2.0.0:
      +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-util-combine-extensions@2.0.0:
      +  /micromark-util-combine-extensions@2.0.0:
      +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
           dependencies:
             micromark-util-chunked: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-util-decode-numeric-character-reference@2.0.1:
      +  /micromark-util-decode-numeric-character-reference@2.0.1:
      +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  micromark-util-decode-string@2.0.0:
      +  /micromark-util-decode-string@2.0.0:
      +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
           dependencies:
             decode-named-character-reference: 1.0.2
             micromark-util-character: 2.1.0
             micromark-util-decode-numeric-character-reference: 2.0.1
             micromark-util-symbol: 2.0.0
       
      -  micromark-util-encode@2.0.0: {}
      +  /micromark-util-encode@2.0.0:
      +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
       
      -  micromark-util-events-to-acorn@2.0.2:
      +  /micromark-util-events-to-acorn@2.0.2:
      +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
           dependencies:
             '@types/acorn': 4.0.6
             '@types/estree': 1.0.5
      @@ -17638,38 +12497,50 @@ snapshots:
             micromark-util-types: 2.0.0
             vfile-message: 4.0.2
       
      -  micromark-util-html-tag-name@2.0.0: {}
      +  /micromark-util-html-tag-name@2.0.0:
      +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
       
      -  micromark-util-normalize-identifier@2.0.0:
      +  /micromark-util-normalize-identifier@2.0.0:
      +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  micromark-util-resolve-all@2.0.0:
      +  /micromark-util-resolve-all@2.0.0:
      +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
           dependencies:
             micromark-util-types: 2.0.0
       
      -  micromark-util-sanitize-uri@2.0.0:
      +  /micromark-util-sanitize-uri@2.0.0:
      +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-encode: 2.0.0
             micromark-util-symbol: 2.0.0
       
      -  micromark-util-subtokenize@2.0.0:
      +  /micromark-util-subtokenize@2.0.0:
      +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
           dependencies:
             devlop: 1.1.0
             micromark-util-chunked: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  micromark-util-symbol@1.1.0: {}
      +  /micromark-util-symbol@1.1.0:
      +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
      +    dev: false
       
      -  micromark-util-symbol@2.0.0: {}
      +  /micromark-util-symbol@2.0.0:
      +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
       
      -  micromark-util-types@1.1.0: {}
      +  /micromark-util-types@1.1.0:
      +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
      +    dev: false
       
      -  micromark-util-types@2.0.0: {}
      +  /micromark-util-types@2.0.0:
      +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
       
      -  micromark@4.0.0:
      +  /micromark@4.0.0:
      +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
           dependencies:
             '@types/debug': 4.1.12
             debug: 4.3.4(supports-color@8.1.1)
      @@ -17691,76 +12562,129 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  micromatch@4.0.5:
      +  /micromatch@4.0.5:
      +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
      +    engines: {node: '>=8.6'}
           dependencies:
             braces: 3.0.2
             picomatch: 2.3.1
       
      -  mime-db@1.33.0: {}
      +  /mime-db@1.33.0:
      +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
      +    engines: {node: '>= 0.6'}
      +    dev: false
       
      -  mime-db@1.52.0: {}
      +  /mime-db@1.52.0:
      +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
      +    engines: {node: '>= 0.6'}
       
      -  mime-types@2.1.18:
      +  /mime-types@2.1.18:
      +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             mime-db: 1.33.0
      +    dev: false
       
      -  mime-types@2.1.35:
      +  /mime-types@2.1.35:
      +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             mime-db: 1.52.0
       
      -  mime@1.6.0: {}
      +  /mime@1.6.0:
      +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
       
      -  mimic-fn@2.1.0: {}
      +  /mimic-fn@2.1.0:
      +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
      +    engines: {node: '>=6'}
       
      -  mimic-fn@3.1.0: {}
      +  /mimic-fn@3.1.0:
      +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  mimic-response@3.1.0: {}
      +  /mimic-response@3.1.0:
      +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  mimic-response@4.0.0: {}
      +  /mimic-response@4.0.0:
      +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: false
       
      -  min-indent@1.0.1: {}
      +  /min-indent@1.0.1:
      +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
      +  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
      +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
           dependencies:
             schema-utils: 4.2.0
             tapable: 2.2.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  minimalistic-assert@1.0.1: {}
      +  /minimalistic-assert@1.0.1:
      +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
       
      -  minimatch@3.1.2:
      +  /minimatch@3.1.2:
      +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
           dependencies:
             brace-expansion: 1.1.11
       
      -  minimatch@5.0.1:
      +  /minimatch@5.0.1:
      +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
      +    engines: {node: '>=10'}
           dependencies:
             brace-expansion: 2.0.1
      +    dev: true
       
      -  minimatch@5.1.6:
      +  /minimatch@5.1.6:
      +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
      +    engines: {node: '>=10'}
           dependencies:
             brace-expansion: 2.0.1
       
      -  minimatch@7.4.6:
      +  /minimatch@7.4.6:
      +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
      +    engines: {node: '>=10'}
           dependencies:
             brace-expansion: 2.0.1
       
      -  minimatch@9.0.3:
      +  /minimatch@9.0.3:
      +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
      +    engines: {node: '>=16 || 14 >=14.17'}
           dependencies:
             brace-expansion: 2.0.1
       
      -  minimist-options@4.1.0:
      +  /minimist-options@4.1.0:
      +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
      +    engines: {node: '>= 6'}
           dependencies:
             arrify: 1.0.1
             is-plain-obj: 1.1.0
             kind-of: 6.0.3
      +    dev: true
       
      -  minimist@1.2.8: {}
      +  /minimist@1.2.8:
      +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
       
      -  minipass-collect@1.0.2:
      +  /minipass-collect@1.0.2:
      +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
      +    engines: {node: '>= 8'}
           dependencies:
             minipass: 3.3.6
       
      -  minipass-fetch@1.4.1:
      +  /minipass-fetch@1.4.1:
      +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
      +    engines: {node: '>=8'}
           dependencies:
             minipass: 3.3.6
             minipass-sized: 1.0.3
      @@ -17768,7 +12692,9 @@ snapshots:
           optionalDependencies:
             encoding: 0.1.13
       
      -  minipass-fetch@2.1.2:
      +  /minipass-fetch@2.1.2:
      +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             minipass: 3.3.6
             minipass-sized: 1.0.3
      @@ -17776,7 +12702,9 @@ snapshots:
           optionalDependencies:
             encoding: 0.1.13
       
      -  minipass-fetch@3.0.4:
      +  /minipass-fetch@3.0.4:
      +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             minipass: 7.0.4
             minipass-sized: 1.0.3
      @@ -17784,49 +12712,75 @@ snapshots:
           optionalDependencies:
             encoding: 0.1.13
       
      -  minipass-flush@1.0.5:
      +  /minipass-flush@1.0.5:
      +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
      +    engines: {node: '>= 8'}
           dependencies:
             minipass: 3.3.6
       
      -  minipass-json-stream@1.0.1:
      +  /minipass-json-stream@1.0.1:
      +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
           dependencies:
             jsonparse: 1.3.1
             minipass: 3.3.6
       
      -  minipass-pipeline@1.2.4:
      +  /minipass-pipeline@1.2.4:
      +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
      +    engines: {node: '>=8'}
           dependencies:
             minipass: 3.3.6
       
      -  minipass-sized@1.0.3:
      +  /minipass-sized@1.0.3:
      +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
      +    engines: {node: '>=8'}
           dependencies:
             minipass: 3.3.6
       
      -  minipass@3.3.6:
      +  /minipass@3.3.6:
      +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
      +    engines: {node: '>=8'}
           dependencies:
             yallist: 4.0.0
       
      -  minipass@5.0.0: {}
      +  /minipass@5.0.0:
      +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
      +    engines: {node: '>=8'}
       
      -  minipass@7.0.4: {}
      +  /minipass@7.0.4:
      +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
      +    engines: {node: '>=16 || 14 >=14.17'}
       
      -  minizlib@2.1.2:
      +  /minizlib@2.1.2:
      +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
      +    engines: {node: '>= 8'}
           dependencies:
             minipass: 3.3.6
             yallist: 4.0.0
       
      -  mkdirp-infer-owner@2.0.0:
      +  /mkdirp-infer-owner@2.0.0:
      +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
      +    engines: {node: '>=10'}
           dependencies:
             chownr: 2.0.0
             infer-owner: 1.0.4
             mkdirp: 1.0.4
       
      -  mkdirp@0.5.6:
      +  /mkdirp@0.5.6:
      +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
      +    hasBin: true
           dependencies:
             minimist: 1.2.8
      +    dev: true
       
      -  mkdirp@1.0.4: {}
      +  /mkdirp@1.0.4:
      +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
      +    engines: {node: '>=10'}
      +    hasBin: true
       
      -  mocha@10.3.0:
      +  /mocha@10.3.0:
      +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
      +    engines: {node: '>= 14.0.0'}
      +    hasBin: true
           dependencies:
             ansi-colors: 4.1.1
             browser-stdout: 1.3.1
      @@ -17848,23 +12802,36 @@ snapshots:
             yargs: 16.2.0
             yargs-parser: 20.2.4
             yargs-unparser: 2.0.0
      +    dev: true
       
      -  moo@0.5.2: {}
      +  /moo@0.5.2:
      +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
      +    dev: false
       
      -  mrmime@2.0.0: {}
      +  /mrmime@2.0.0:
      +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  ms@2.0.0: {}
      +  /ms@2.0.0:
      +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
       
      -  ms@2.1.2: {}
      +  /ms@2.1.2:
      +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
       
      -  ms@2.1.3: {}
      +  /ms@2.1.3:
      +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
       
      -  multicast-dns@7.2.5:
      +  /multicast-dns@7.2.5:
      +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
      +    hasBin: true
           dependencies:
             dns-packet: 5.6.1
             thunky: 1.1.0
       
      -  multimatch@5.0.0:
      +  /multimatch@5.0.0:
      +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
      +    engines: {node: '>=10'}
           dependencies:
             '@types/minimatch': 3.0.5
             array-differ: 3.0.0
      @@ -17872,15 +12839,22 @@ snapshots:
             arrify: 2.0.1
             minimatch: 3.1.2
       
      -  mute-stream@0.0.8: {}
      +  /mute-stream@0.0.8:
      +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
       
      -  mz@2.7.0:
      +  /mz@2.7.0:
      +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
           dependencies:
             any-promise: 1.3.0
             object-assign: 4.1.1
             thenify-all: 1.6.0
      +    dev: true
       
      -  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
      +  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
           dependencies:
             '@jridgewell/sourcemap-codec': 1.4.15
             css-tree: 1.1.3
      @@ -17892,12 +12866,20 @@ snapshots:
             rtl-css-js: 1.16.1
             stacktrace-js: 2.0.2
             stylis: 4.3.1
      +    dev: false
       
      -  nanoid@3.3.7: {}
      +  /nanoid@3.3.7:
      +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
      +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
      +    hasBin: true
       
      -  natural-compare@1.4.0: {}
      +  /natural-compare@1.4.0:
      +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
       
      -  ndjson@2.0.0:
      +  /ndjson@2.0.0:
      +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             json-stringify-safe: 5.0.1
             minimist: 1.2.8
      @@ -17905,25 +12887,50 @@ snapshots:
             split2: 3.2.2
             through2: 4.0.2
       
      -  nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
      +  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
      +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
      +    hasBin: true
           dependencies:
             commander: 2.20.3
             moo: 0.5.2
             railroad-diagrams: 1.0.0
             randexp: 0.4.6
      +    dev: false
      +    patched: true
       
      -  negotiator@0.6.3: {}
      +  /negotiator@0.6.3:
      +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
      +    engines: {node: '>= 0.6'}
       
      -  neo-async@2.6.2: {}
      +  /neo-async@2.6.2:
      +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
       
      -  neovim@5.1.0:
      +  /neovim@5.1.0:
      +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             '@msgpack/msgpack': 2.8.0
             winston: 3.11.0
       
      -  nerf-dart@1.0.0: {}
      +  /nerf-dart@1.0.0:
      +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
      +    dev: false
       
      -  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
      +  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
      +    engines: {node: '>=18.17.0'}
      +    hasBin: true
      +    peerDependencies:
      +      '@opentelemetry/api': ^1.1.0
      +      react: ^18.2.0 || 18
      +      react-dom: ^18.2.0 || 18
      +      sass: ^1.3.0
      +    peerDependenciesMeta:
      +      '@opentelemetry/api':
      +        optional: true
      +      sass:
      +        optional: true
           dependencies:
             '@next/env': 14.1.4
             '@swc/helpers': 0.5.2
      @@ -17947,34 +12954,53 @@ snapshots:
           transitivePeerDependencies:
             - '@babel/core'
             - babel-plugin-macros
      +    dev: false
       
      -  nise@5.1.9:
      +  /nise@5.1.9:
      +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
           dependencies:
             '@sinonjs/commons': 3.0.1
             '@sinonjs/fake-timers': 11.2.2
             '@sinonjs/text-encoding': 0.7.2
             just-extend: 6.2.0
             path-to-regexp: 6.2.1
      +    dev: true
       
      -  no-case@3.0.4:
      +  /no-case@3.0.4:
      +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
           dependencies:
             lower-case: 2.0.2
             tslib: 2.6.2
       
      -  node-emoji@2.1.3:
      +  /node-emoji@2.1.3:
      +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
      +    engines: {node: '>=18'}
           dependencies:
             '@sindresorhus/is': 4.6.0
             char-regex: 1.0.2
             emojilib: 2.4.0
             skin-tone: 2.0.0
      +    dev: false
       
      -  node-fetch@2.7.0:
      +  /node-fetch@2.7.0:
      +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
      +    engines: {node: 4.x || >=6.0.0}
      +    peerDependencies:
      +      encoding: ^0.1.0
      +    peerDependenciesMeta:
      +      encoding:
      +        optional: true
           dependencies:
             whatwg-url: 5.0.0
       
      -  node-forge@1.3.1: {}
      +  /node-forge@1.3.1:
      +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
      +    engines: {node: '>= 6.13.0'}
       
      -  node-gyp@8.4.1:
      +  /node-gyp@8.4.1:
      +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
      +    engines: {node: '>= 10.12.0'}
      +    hasBin: true
           dependencies:
             env-paths: 2.2.1
             glob: 7.2.3
      @@ -17990,7 +13016,10 @@ snapshots:
             - bluebird
             - supports-color
       
      -  node-gyp@9.4.1:
      +  /node-gyp@9.4.1:
      +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
      +    engines: {node: ^12.13 || ^14.13 || >=16}
      +    hasBin: true
           dependencies:
             env-paths: 2.2.1
             exponential-backoff: 3.1.1
      @@ -18007,122 +13036,180 @@ snapshots:
             - bluebird
             - supports-color
       
      -  node-html-parser@6.1.12:
      +  /node-html-parser@6.1.12:
      +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
           dependencies:
             css-select: 5.1.0
             he: 1.2.0
      +    dev: false
       
      -  node-int64@0.4.0: {}
      +  /node-int64@0.4.0:
      +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
      +    dev: true
       
      -  node-releases@2.0.14: {}
      +  /node-releases@2.0.14:
      +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
       
      -  nopt@5.0.0:
      +  /nopt@5.0.0:
      +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
      +    engines: {node: '>=6'}
      +    hasBin: true
           dependencies:
             abbrev: 1.1.1
       
      -  nopt@6.0.0:
      +  /nopt@6.0.0:
      +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +    hasBin: true
           dependencies:
             abbrev: 1.1.1
       
      -  normalize-package-data@2.5.0:
      +  /normalize-package-data@2.5.0:
      +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
           dependencies:
             hosted-git-info: 2.8.9
             resolve: 1.22.8
             semver: 5.7.2
             validate-npm-package-license: 3.0.4
       
      -  normalize-package-data@3.0.3:
      +  /normalize-package-data@3.0.3:
      +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
      +    engines: {node: '>=10'}
           dependencies:
             hosted-git-info: 4.1.0
             is-core-module: 2.13.1
             semver: 7.6.0
             validate-npm-package-license: 3.0.4
      +    dev: true
       
      -  normalize-package-data@5.0.0:
      +  /normalize-package-data@5.0.0:
      +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             hosted-git-info: 6.1.1
             is-core-module: 2.13.1
             semver: 7.6.0
             validate-npm-package-license: 3.0.4
       
      -  normalize-path@3.0.0: {}
      +  /normalize-path@3.0.0:
      +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
      +    engines: {node: '>=0.10.0'}
       
      -  normalize-range@0.1.2: {}
      +  /normalize-range@0.1.2:
      +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
      +    engines: {node: '>=0.10.0'}
       
      -  normalize-registry-url@2.0.0: {}
      +  /normalize-registry-url@2.0.0:
      +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
      +    dev: true
       
      -  normalize-url@6.1.0: {}
      +  /normalize-url@6.1.0:
      +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  normalize-url@8.0.1: {}
      +  /normalize-url@8.0.1:
      +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
      +    engines: {node: '>=14.16'}
      +    dev: false
       
      -  npm-bundled@1.1.2:
      +  /npm-bundled@1.1.2:
      +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
           dependencies:
             npm-normalize-package-bin: 1.0.1
       
      -  npm-bundled@3.0.0:
      +  /npm-bundled@3.0.0:
      +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             npm-normalize-package-bin: 3.0.1
       
      -  npm-install-checks@4.0.0:
      +  /npm-install-checks@4.0.0:
      +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
      +    engines: {node: '>=10'}
           dependencies:
             semver: 7.6.0
       
      -  npm-install-checks@6.3.0:
      +  /npm-install-checks@6.3.0:
      +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             semver: 7.6.0
       
      -  npm-normalize-package-bin@1.0.1: {}
      +  /npm-normalize-package-bin@1.0.1:
      +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
       
      -  npm-normalize-package-bin@2.0.0: {}
      +  /npm-normalize-package-bin@2.0.0:
      +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
       
      -  npm-normalize-package-bin@3.0.1: {}
      +  /npm-normalize-package-bin@3.0.1:
      +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  npm-package-arg@10.1.0:
      +  /npm-package-arg@10.1.0:
      +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             hosted-git-info: 6.1.1
             proc-log: 3.0.0
             semver: 7.6.0
             validate-npm-package-name: 5.0.0
       
      -  npm-package-arg@11.0.1:
      +  /npm-package-arg@11.0.1:
      +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
      +    engines: {node: ^16.14.0 || >=18.0.0}
           dependencies:
             hosted-git-info: 7.0.1
             proc-log: 3.0.0
             semver: 7.6.0
             validate-npm-package-name: 5.0.0
      +    dev: true
       
      -  npm-package-arg@8.1.5:
      +  /npm-package-arg@8.1.5:
      +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
      +    engines: {node: '>=10'}
           dependencies:
             hosted-git-info: 4.1.0
             semver: 7.6.0
             validate-npm-package-name: 3.0.0
       
      -  npm-packlist@3.0.0:
      +  /npm-packlist@3.0.0:
      +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             glob: 7.2.3
             ignore-walk: 4.0.1
             npm-bundled: 1.1.2
             npm-normalize-package-bin: 1.0.1
       
      -  npm-packlist@7.0.4:
      +  /npm-packlist@7.0.4:
      +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             ignore-walk: 6.0.4
       
      -  npm-pick-manifest@6.1.1:
      +  /npm-pick-manifest@6.1.1:
      +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
           dependencies:
             npm-install-checks: 4.0.0
             npm-normalize-package-bin: 1.0.1
             npm-package-arg: 8.1.5
             semver: 7.6.0
       
      -  npm-pick-manifest@8.0.2:
      +  /npm-pick-manifest@8.0.2:
      +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             npm-install-checks: 6.3.0
             npm-normalize-package-bin: 3.0.1
             npm-package-arg: 10.1.0
             semver: 7.6.0
       
      -  npm-registry-fetch@12.0.2:
      +  /npm-registry-fetch@12.0.2:
      +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
           dependencies:
             make-fetch-happen: 10.2.1
             minipass: 3.3.6
      @@ -18134,7 +13221,9 @@ snapshots:
             - bluebird
             - supports-color
       
      -  npm-registry-fetch@14.0.5:
      +  /npm-registry-fetch@14.0.5:
      +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             make-fetch-happen: 11.1.1
             minipass: 5.0.0
      @@ -18146,119 +13235,175 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  npm-run-path@4.0.1:
      +  /npm-run-path@4.0.1:
      +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
      +    engines: {node: '>=8'}
           dependencies:
             path-key: 3.1.1
       
      -  npmlog@5.0.1:
      +  /npmlog@5.0.1:
      +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
           dependencies:
             are-we-there-yet: 2.0.0
             console-control-strings: 1.1.0
             gauge: 3.0.2
             set-blocking: 2.0.0
       
      -  npmlog@6.0.2:
      +  /npmlog@6.0.2:
      +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             are-we-there-yet: 3.0.1
             console-control-strings: 1.1.0
             gauge: 4.0.4
             set-blocking: 2.0.0
       
      -  nprogress@0.2.0: {}
      +  /nprogress@0.2.0:
      +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
      +    dev: false
       
      -  nth-check@2.1.1:
      +  /nth-check@2.1.1:
      +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
           dependencies:
             boolbase: 1.0.0
       
      -  nwsapi@2.2.7: {}
      +  /nwsapi@2.2.7:
      +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
      +    dev: true
       
      -  object-assign@4.1.1: {}
      +  /object-assign@4.1.1:
      +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
      +    engines: {node: '>=0.10.0'}
       
      -  object-hash@3.0.0: {}
      +  /object-hash@3.0.0:
      +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
      +    engines: {node: '>= 6'}
      +    dev: true
       
      -  object-inspect@1.13.1: {}
      +  /object-inspect@1.13.1:
      +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
       
      -  object-is@1.1.6:
      +  /object-is@1.1.6:
      +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      +    dev: true
       
      -  object-keys@1.1.1: {}
      +  /object-keys@1.1.1:
      +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
      +    engines: {node: '>= 0.4'}
       
      -  object.assign@4.1.5:
      +  /object.assign@4.1.5:
      +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             has-symbols: 1.0.3
             object-keys: 1.1.1
       
      -  object.entries@1.1.8:
      +  /object.entries@1.1.8:
      +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  object.fromentries@2.0.8:
      +  /object.fromentries@2.0.8:
      +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  object.groupby@1.0.3:
      +  /object.groupby@1.0.3:
      +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
      +    dev: true
       
      -  object.hasown@1.1.4:
      +  /object.hasown@1.1.4:
      +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  object.values@1.2.0:
      +  /object.values@1.2.0:
      +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  obuf@1.1.2: {}
      +  /obuf@1.1.2:
      +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
       
      -  on-finished@2.4.1:
      +  /on-finished@2.4.1:
      +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             ee-first: 1.1.1
       
      -  on-headers@1.0.2: {}
      +  /on-headers@1.0.2:
      +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
      +    engines: {node: '>= 0.8'}
       
      -  once@1.4.0:
      +  /once@1.4.0:
      +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
           dependencies:
             wrappy: 1.0.2
       
      -  one-time@1.0.0:
      +  /one-time@1.0.0:
      +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
           dependencies:
             fn.name: 1.1.0
       
      -  onetime@5.1.2:
      +  /onetime@5.1.2:
      +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
      +    engines: {node: '>=6'}
           dependencies:
             mimic-fn: 2.1.0
       
      -  open@10.1.0:
      +  /open@10.1.0:
      +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
      +    engines: {node: '>=18'}
           dependencies:
             default-browser: 5.2.1
             define-lazy-prop: 3.0.0
             is-inside-container: 1.0.0
             is-wsl: 3.1.0
       
      -  open@8.4.2:
      +  /open@8.4.2:
      +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
      +    engines: {node: '>=12'}
           dependencies:
             define-lazy-prop: 2.0.0
             is-docker: 2.2.1
             is-wsl: 2.2.0
      +    dev: false
       
      -  opener@1.5.2: {}
      +  /opener@1.5.2:
      +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
      +    hasBin: true
       
      -  optionator@0.9.3:
      +  /optionator@0.9.3:
      +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             '@aashutoshrathi/word-wrap': 1.2.6
             deep-is: 0.1.4
      @@ -18267,7 +13412,9 @@ snapshots:
             prelude-ls: 1.2.1
             type-check: 0.4.0
       
      -  ora@5.4.1:
      +  /ora@5.4.1:
      +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
      +    engines: {node: '>=10'}
           dependencies:
             bl: 4.1.0
             chalk: 4.1.2
      @@ -18279,89 +13426,143 @@ snapshots:
             strip-ansi: 6.0.1
             wcwidth: 1.0.1
       
      -  os-tmpdir@1.0.2: {}
      +  /os-tmpdir@1.0.2:
      +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
      +    engines: {node: '>=0.10.0'}
       
      -  p-cancelable@3.0.0: {}
      +  /p-cancelable@3.0.0:
      +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
      +    engines: {node: '>=12.20'}
      +    dev: false
       
      -  p-defer@1.0.0: {}
      +  /p-defer@1.0.0:
      +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  p-filter@2.1.0:
      +  /p-filter@2.1.0:
      +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
      +    engines: {node: '>=8'}
           dependencies:
             p-map: 2.1.0
      +    dev: true
       
      -  p-finally@1.0.0: {}
      +  /p-finally@1.0.0:
      +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
      +    engines: {node: '>=4'}
       
      -  p-limit@2.3.0:
      +  /p-limit@2.3.0:
      +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
      +    engines: {node: '>=6'}
           dependencies:
             p-try: 2.2.0
       
      -  p-limit@3.1.0:
      +  /p-limit@3.1.0:
      +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
      +    engines: {node: '>=10'}
           dependencies:
             yocto-queue: 0.1.0
       
      -  p-limit@4.0.0:
      +  /p-limit@4.0.0:
      +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             yocto-queue: 1.0.0
      +    dev: false
       
      -  p-locate@3.0.0:
      +  /p-locate@3.0.0:
      +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
      +    engines: {node: '>=6'}
           dependencies:
             p-limit: 2.3.0
      +    dev: false
       
      -  p-locate@4.1.0:
      +  /p-locate@4.1.0:
      +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
      +    engines: {node: '>=8'}
           dependencies:
             p-limit: 2.3.0
       
      -  p-locate@5.0.0:
      +  /p-locate@5.0.0:
      +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
      +    engines: {node: '>=10'}
           dependencies:
             p-limit: 3.1.0
       
      -  p-locate@6.0.0:
      +  /p-locate@6.0.0:
      +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             p-limit: 4.0.0
      +    dev: false
       
      -  p-map@2.1.0: {}
      +  /p-map@2.1.0:
      +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  p-map@4.0.0:
      +  /p-map@4.0.0:
      +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
      +    engines: {node: '>=10'}
           dependencies:
             aggregate-error: 3.1.0
       
      -  p-queue@6.6.2:
      +  /p-queue@6.6.2:
      +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
      +    engines: {node: '>=8'}
           dependencies:
             eventemitter3: 4.0.7
             p-timeout: 3.2.0
       
      -  p-retry@4.6.2:
      +  /p-retry@4.6.2:
      +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
      +    engines: {node: '>=8'}
           dependencies:
             '@types/retry': 0.12.0
             retry: 0.13.1
      +    dev: false
       
      -  p-retry@6.2.0:
      +  /p-retry@6.2.0:
      +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
      +    engines: {node: '>=16.17'}
           dependencies:
             '@types/retry': 0.12.2
             is-network-error: 1.1.0
             retry: 0.13.1
       
      -  p-timeout@3.2.0:
      +  /p-timeout@3.2.0:
      +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
      +    engines: {node: '>=8'}
           dependencies:
             p-finally: 1.0.0
       
      -  p-transform@1.3.0:
      +  /p-transform@1.3.0:
      +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
      +    engines: {node: '>=12.10.0'}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             p-queue: 6.6.2
           transitivePeerDependencies:
             - supports-color
       
      -  p-try@2.2.0: {}
      +  /p-try@2.2.0:
      +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
      +    engines: {node: '>=6'}
       
      -  package-json@8.1.1:
      +  /package-json@8.1.1:
      +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
      +    engines: {node: '>=14.16'}
           dependencies:
             got: 12.6.1
             registry-auth-token: 5.0.2
             registry-url: 6.0.1
             semver: 7.6.0
      +    dev: false
       
      -  pacote@12.0.3:
      +  /pacote@12.0.3:
      +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +    hasBin: true
           dependencies:
             '@npmcli/git': 2.1.0
             '@npmcli/installed-package-contents': 1.0.7
      @@ -18386,7 +13587,10 @@ snapshots:
             - bluebird
             - supports-color
       
      -  pacote@15.2.0:
      +  /pacote@15.2.0:
      +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
           dependencies:
             '@npmcli/git': 4.1.0
             '@npmcli/installed-package-contents': 2.0.2
      @@ -18410,24 +13614,32 @@ snapshots:
             - bluebird
             - supports-color
       
      -  pako@1.0.11: {}
      +  /pako@1.0.11:
      +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
      +    dev: true
       
      -  param-case@3.0.4:
      +  /param-case@3.0.4:
      +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
           dependencies:
             dot-case: 3.0.4
             tslib: 2.6.2
       
      -  parent-module@1.0.1:
      +  /parent-module@1.0.1:
      +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
      +    engines: {node: '>=6'}
           dependencies:
             callsites: 3.1.0
       
      -  parse-conflict-json@2.0.2:
      +  /parse-conflict-json@2.0.2:
      +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             json-parse-even-better-errors: 2.3.1
             just-diff: 5.2.0
             just-diff-apply: 5.5.0
       
      -  parse-entities@4.0.1:
      +  /parse-entities@4.0.1:
      +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
           dependencies:
             '@types/unist': 2.0.10
             character-entities: 2.0.2
      @@ -18438,177 +13650,321 @@ snapshots:
             is-decimal: 2.0.1
             is-hexadecimal: 2.0.1
       
      -  parse-json@5.2.0:
      +  /parse-json@5.2.0:
      +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
      +    engines: {node: '>=8'}
           dependencies:
             '@babel/code-frame': 7.24.2
             error-ex: 1.3.2
             json-parse-even-better-errors: 2.3.1
             lines-and-columns: 1.2.4
       
      -  parse-ms@2.1.0: {}
      +  /parse-ms@2.1.0:
      +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  parse-numeric-range@1.3.0: {}
      +  /parse-numeric-range@1.3.0:
      +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
      +    dev: false
       
      -  parse-srcset@1.0.2: {}
      +  /parse-srcset@1.0.2:
      +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
      +    dev: false
       
      -  parse5-htmlparser2-tree-adapter@7.0.0:
      +  /parse5-htmlparser2-tree-adapter@7.0.0:
      +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
           dependencies:
             domhandler: 5.0.3
             parse5: 7.1.2
      +    dev: false
       
      -  parse5@7.1.2:
      +  /parse5@7.1.2:
      +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
           dependencies:
             entities: 4.5.0
       
      -  parseurl@1.3.3: {}
      +  /parseurl@1.3.3:
      +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
      +    engines: {node: '>= 0.8'}
       
      -  pascal-case@3.1.2:
      +  /pascal-case@3.1.2:
      +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
           dependencies:
             no-case: 3.0.4
             tslib: 2.6.2
       
      -  path-absolute@1.0.1: {}
      +  /path-absolute@1.0.1:
      +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  path-exists@3.0.0: {}
      +  /path-exists@3.0.0:
      +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
      +    engines: {node: '>=4'}
      +    dev: false
       
      -  path-exists@4.0.0: {}
      +  /path-exists@4.0.0:
      +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
      +    engines: {node: '>=8'}
       
      -  path-exists@5.0.0: {}
      +  /path-exists@5.0.0:
      +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    dev: false
       
      -  path-is-absolute@1.0.1: {}
      +  /path-is-absolute@1.0.1:
      +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
      +    engines: {node: '>=0.10.0'}
       
      -  path-is-inside@1.0.2: {}
      +  /path-is-inside@1.0.2:
      +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
      +    dev: false
       
      -  path-key@3.1.1: {}
      +  /path-key@3.1.1:
      +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
      +    engines: {node: '>=8'}
       
      -  path-name@1.0.0: {}
      +  /path-name@1.0.0:
      +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
       
      -  path-parse@1.0.7: {}
      +  /path-parse@1.0.7:
      +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
       
      -  path-scurry@1.10.1:
      +  /path-scurry@1.10.1:
      +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
      +    engines: {node: '>=16 || 14 >=14.17'}
           dependencies:
             lru-cache: 10.2.0
             minipass: 7.0.4
       
      -  path-temp@2.1.0:
      +  /path-temp@2.1.0:
      +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
      +    engines: {node: '>=8.15'}
           dependencies:
             unique-string: 2.0.0
      +    dev: true
       
      -  path-to-regexp@0.1.7: {}
      +  /path-to-regexp@0.1.7:
      +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
       
      -  path-to-regexp@1.8.0:
      +  /path-to-regexp@1.8.0:
      +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
           dependencies:
             isarray: 0.0.1
      +    dev: false
       
      -  path-to-regexp@2.2.1: {}
      +  /path-to-regexp@2.2.1:
      +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
      +    dev: false
       
      -  path-to-regexp@6.2.1: {}
      +  /path-to-regexp@6.2.1:
      +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
      +    dev: true
       
      -  path-type@4.0.0: {}
      +  /path-type@4.0.0:
      +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
      +    engines: {node: '>=8'}
       
      -  pathval@2.0.0: {}
      +  /pathval@2.0.0:
      +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
      +    engines: {node: '>= 14.16'}
      +    dev: true
       
      -  periscopic@3.1.0:
      +  /periscopic@3.1.0:
      +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
           dependencies:
             '@types/estree': 1.0.5
             estree-walker: 3.0.3
             is-reference: 3.0.2
       
      -  picocolors@1.0.0: {}
      +  /picocolors@1.0.0:
      +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
       
      -  picomatch@2.3.1: {}
      +  /picomatch@2.3.1:
      +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
      +    engines: {node: '>=8.6'}
       
      -  pify@2.3.0: {}
      +  /pify@2.3.0:
      +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
      +    engines: {node: '>=0.10.0'}
       
      -  pify@4.0.1: {}
      +  /pify@4.0.1:
      +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
      +    engines: {node: '>=6'}
       
      -  pirates@4.0.6: {}
      +  /pirates@4.0.6:
      +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
      +    engines: {node: '>= 6'}
      +    dev: true
       
      -  pkg-dir@4.2.0:
      +  /pkg-dir@4.2.0:
      +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
      +    engines: {node: '>=8'}
           dependencies:
             find-up: 4.1.0
       
      -  pkg-dir@7.0.0:
      +  /pkg-dir@7.0.0:
      +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
      +    engines: {node: '>=14.16'}
           dependencies:
             find-up: 6.3.0
      +    dev: false
       
      -  pkg-up@3.1.0:
      +  /pkg-up@3.1.0:
      +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
      +    engines: {node: '>=8'}
           dependencies:
             find-up: 3.0.0
      +    dev: false
       
      -  pluralize@8.0.0: {}
      +  /pluralize@8.0.0:
      +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  portfinder@1.0.32:
      +  /portfinder@1.0.32:
      +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
      +    engines: {node: '>= 0.12.0'}
           dependencies:
             async: 2.6.4
             debug: 3.2.7
             mkdirp: 0.5.6
           transitivePeerDependencies:
             - supports-color
      +    dev: true
       
      -  possible-typed-array-names@1.0.0: {}
      +  /possible-typed-array-names@1.0.0:
      +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
      +    engines: {node: '>= 0.4'}
      +    dev: true
       
      -  postcss-calc@8.2.4(postcss@8.4.38):
      +  /postcss-calc@8.2.4(postcss@8.4.38):
      +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
      +    peerDependencies:
      +      postcss: ^8.2.2
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-colormin@5.3.1(postcss@8.4.38):
      +  /postcss-colormin@5.3.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             colord: 2.9.3
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-convert-values@5.1.3(postcss@8.4.38):
      +  /postcss-convert-values@5.1.3(postcss@8.4.38):
      +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-discard-comments@5.1.2(postcss@8.4.38):
      +  /postcss-discard-comments@5.1.2(postcss@8.4.38):
      +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
      +  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-discard-empty@5.1.1(postcss@8.4.38):
      +  /postcss-discard-empty@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-discard-overridden@5.1.0(postcss@8.4.38):
      +  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-discard-unused@5.1.0(postcss@8.4.38):
      +  /postcss-discard-unused@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: false
       
      -  postcss-import@15.1.0(postcss@8.4.38):
      +  /postcss-import@15.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
      +    engines: {node: '>=14.0.0'}
      +    peerDependencies:
      +      postcss: ^8.0.0
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             read-cache: 1.0.0
             resolve: 1.22.8
      +    dev: true
       
      -  postcss-js@4.0.1(postcss@8.4.38):
      +  /postcss-js@4.0.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
      +    engines: {node: ^12 || ^14 || >= 16}
      +    peerDependencies:
      +      postcss: ^8.4.21
           dependencies:
             camelcase-css: 2.0.1
             postcss: 8.4.38
      +    dev: true
       
      -  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
      +  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
      +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
      +    engines: {node: '>= 14'}
      +    peerDependencies:
      +      postcss: '>=8.0.9'
      +      ts-node: '>=9.0.0'
      +    peerDependenciesMeta:
      +      postcss:
      +        optional: true
      +      ts-node:
      +        optional: true
           dependencies:
             lilconfig: 3.1.1
             postcss: 8.4.38
             ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
             yaml: 2.4.1
      +    dev: true
       
      -  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      +  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      postcss: ^7.0.0 || ^8.0.1
      +      webpack: ^5.0.0
           dependencies:
             cosmiconfig: 8.3.6(typescript@5.4.3)
             jiti: 1.21.0
      @@ -18617,8 +13973,20 @@ snapshots:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - typescript
      +    dev: false
       
      -  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      +  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
      +    engines: {node: '>= 18.12.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      postcss: ^7.0.0 || ^8.0.1
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
           dependencies:
             cosmiconfig: 9.0.0(typescript@5.4.3)
             jiti: 1.21.0
      @@ -18627,343 +13995,655 @@ snapshots:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - typescript
      +    dev: true
       
      -  postcss-merge-idents@5.1.1(postcss@8.4.38):
      +  /postcss-merge-idents@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-merge-longhand@5.1.7(postcss@8.4.38):
      +  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
      +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             stylehacks: 5.1.1(postcss@8.4.38)
      +    dev: false
       
      -  postcss-merge-rules@5.1.4(postcss@8.4.38):
      +  /postcss-merge-rules@5.1.4(postcss@8.4.38):
      +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: false
       
      -  postcss-minify-font-values@5.1.0(postcss@8.4.38):
      +  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-minify-gradients@5.1.1(postcss@8.4.38):
      +  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             colord: 2.9.3
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-minify-params@5.1.4(postcss@8.4.38):
      +  /postcss-minify-params@5.1.4(postcss@8.4.38):
      +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-minify-selectors@5.2.1(postcss@8.4.38):
      +  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: false
       
      -  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
      +  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             postcss: 8.4.38
       
      -  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
      +  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
      +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
             postcss-value-parser: 4.2.0
       
      -  postcss-modules-scope@3.1.1(postcss@8.4.38):
      +  /postcss-modules-scope@3.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
       
      -  postcss-modules-values@4.0.0(postcss@8.4.38):
      +  /postcss-modules-values@4.0.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
       
      -  postcss-nested@6.0.1(postcss@8.4.38):
      +  /postcss-nested@6.0.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
      +    engines: {node: '>=12.0'}
      +    peerDependencies:
      +      postcss: ^8.2.14
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: true
       
      -  postcss-normalize-charset@5.1.0(postcss@8.4.38):
      +  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
      +  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-positions@5.1.1(postcss@8.4.38):
      +  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
      +  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-string@5.1.0(postcss@8.4.38):
      +  /postcss-normalize-string@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
      +  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
      +  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-url@5.1.0(postcss@8.4.38):
      +  /postcss-normalize-url@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             normalize-url: 6.1.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
      +  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-ordered-values@5.1.3(postcss@8.4.38):
      +  /postcss-ordered-values@5.1.3(postcss@8.4.38):
      +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-reduce-idents@5.2.0(postcss@8.4.38):
      +  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-reduce-initial@5.1.2(postcss@8.4.38):
      +  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
      +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             postcss: 8.4.38
      +    dev: false
       
      -  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
      +  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      +    dev: false
       
      -  postcss-selector-parser@6.0.16:
      +  /postcss-selector-parser@6.0.16:
      +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
      +    engines: {node: '>=4'}
           dependencies:
             cssesc: 3.0.0
             util-deprecate: 1.0.2
       
      -  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
      +  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
      +    engines: {node: '>=10.0.0'}
      +    peerDependencies:
      +      postcss: ^8.4.16
           dependencies:
             postcss: 8.4.38
             sort-css-media-queries: 2.1.0
      +    dev: false
       
      -  postcss-svgo@5.1.0(postcss@8.4.38):
      +  /postcss-svgo@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             svgo: 2.8.0
      +    dev: false
       
      -  postcss-unique-selectors@5.1.1(postcss@8.4.38):
      +  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: false
       
      -  postcss-value-parser@4.2.0: {}
      +  /postcss-value-parser@4.2.0:
      +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
       
      -  postcss-zindex@5.1.0(postcss@8.4.38):
      +  /postcss-zindex@5.1.0(postcss@8.4.38):
      +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             postcss: 8.4.38
      +    dev: false
       
      -  postcss@8.4.31:
      +  /postcss@8.4.31:
      +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
      +    engines: {node: ^10 || ^12 || >=14}
           dependencies:
             nanoid: 3.3.7
             picocolors: 1.0.0
             source-map-js: 1.2.0
      +    dev: false
       
      -  postcss@8.4.38:
      +  /postcss@8.4.38:
      +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
      +    engines: {node: ^10 || ^12 || >=14}
           dependencies:
             nanoid: 3.3.7
             picocolors: 1.0.0
             source-map-js: 1.2.0
       
      -  preferred-pm@3.1.3:
      +  /preferred-pm@3.1.3:
      +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
      +    engines: {node: '>=10'}
           dependencies:
             find-up: 5.0.0
             find-yarn-workspace-root2: 1.2.16
             path-exists: 4.0.0
             which-pm: 2.0.0
       
      -  prelude-ls@1.2.1: {}
      +  /prelude-ls@1.2.1:
      +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
      +    engines: {node: '>= 0.8.0'}
       
      -  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
      +  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
      +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
      +    engines: {node: '>=14.21.3'}
      +    peerDependencies:
      +      '@ianvs/prettier-plugin-sort-imports': '*'
      +      '@prettier/plugin-pug': '*'
      +      '@shopify/prettier-plugin-liquid': '*'
      +      '@trivago/prettier-plugin-sort-imports': '*'
      +      prettier: ^3.0
      +      prettier-plugin-astro: '*'
      +      prettier-plugin-css-order: '*'
      +      prettier-plugin-import-sort: '*'
      +      prettier-plugin-jsdoc: '*'
      +      prettier-plugin-marko: '*'
      +      prettier-plugin-organize-attributes: '*'
      +      prettier-plugin-organize-imports: '*'
      +      prettier-plugin-sort-imports: '*'
      +      prettier-plugin-style-order: '*'
      +      prettier-plugin-svelte: '*'
      +      prettier-plugin-twig-melody: '*'
      +    peerDependenciesMeta:
      +      '@ianvs/prettier-plugin-sort-imports':
      +        optional: true
      +      '@prettier/plugin-pug':
      +        optional: true
      +      '@shopify/prettier-plugin-liquid':
      +        optional: true
      +      '@trivago/prettier-plugin-sort-imports':
      +        optional: true
      +      prettier-plugin-astro:
      +        optional: true
      +      prettier-plugin-css-order:
      +        optional: true
      +      prettier-plugin-import-sort:
      +        optional: true
      +      prettier-plugin-jsdoc:
      +        optional: true
      +      prettier-plugin-marko:
      +        optional: true
      +      prettier-plugin-organize-attributes:
      +        optional: true
      +      prettier-plugin-organize-imports:
      +        optional: true
      +      prettier-plugin-sort-imports:
      +        optional: true
      +      prettier-plugin-style-order:
      +        optional: true
      +      prettier-plugin-svelte:
      +        optional: true
      +      prettier-plugin-twig-melody:
      +        optional: true
           dependencies:
             prettier: 3.2.5
      +    dev: true
       
      -  prettier@3.2.5: {}
      +  /prettier@3.2.5:
      +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
      +    engines: {node: '>=14'}
      +    hasBin: true
       
      -  pretty-bytes@5.6.0: {}
      +  /pretty-bytes@5.6.0:
      +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
      +    engines: {node: '>=6'}
       
      -  pretty-error@4.0.0:
      +  /pretty-error@4.0.0:
      +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
           dependencies:
             lodash: 4.17.21
             renderkid: 3.0.0
       
      -  pretty-format@27.5.1:
      +  /pretty-format@27.5.1:
      +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
      +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
           dependencies:
             ansi-regex: 5.0.1
             ansi-styles: 5.2.0
             react-is: 17.0.2
      +    dev: true
       
      -  pretty-format@29.7.0:
      +  /pretty-format@29.7.0:
      +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
           dependencies:
             '@jest/schemas': 29.6.3
             ansi-styles: 5.2.0
             react-is: 18.2.0
      +    dev: true
       
      -  pretty-ms@7.0.1:
      +  /pretty-ms@7.0.1:
      +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
      +    engines: {node: '>=10'}
           dependencies:
             parse-ms: 2.1.0
      +    dev: true
       
      -  pretty-time@1.1.0: {}
      +  /pretty-time@1.1.0:
      +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
      +    engines: {node: '>=4'}
      +    dev: false
       
      -  print-diff@1.0.0:
      +  /print-diff@1.0.0:
      +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
      +    engines: {node: '>=8.3'}
           dependencies:
             diff: 4.0.2
      +    dev: true
       
      -  printable-characters@1.0.42: {}
      +  /printable-characters@1.0.42:
      +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
      +    dev: true
       
      -  prism-react-renderer@2.3.1(react@18.2.0):
      +  /prism-react-renderer@2.3.1(react@18.2.0):
      +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
      +    peerDependencies:
      +      react: '>=16.0.0 || 18'
           dependencies:
             '@types/prismjs': 1.26.3
             clsx: 2.1.0
             react: 18.2.0
      +    dev: false
       
      -  prismjs@1.29.0: {}
      +  /prismjs@1.29.0:
      +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  proc-log@1.0.0: {}
      +  /proc-log@1.0.0:
      +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
       
      -  proc-log@3.0.0: {}
      +  /proc-log@3.0.0:
      +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
       
      -  process-nextick-args@2.0.1: {}
      +  /process-nextick-args@2.0.1:
      +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
       
      -  process@0.11.10: {}
      +  /process@0.11.10:
      +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
      +    engines: {node: '>= 0.6.0'}
       
      -  promise-all-reject-late@1.0.1: {}
      +  /promise-all-reject-late@1.0.1:
      +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
       
      -  promise-call-limit@1.0.2: {}
      +  /promise-call-limit@1.0.2:
      +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
       
      -  promise-inflight@1.0.1: {}
      +  /promise-inflight@1.0.1:
      +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
      +    peerDependencies:
      +      bluebird: '*'
      +    peerDependenciesMeta:
      +      bluebird:
      +        optional: true
       
      -  promise-retry@2.0.1:
      +  /promise-retry@2.0.1:
      +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
      +    engines: {node: '>=10'}
           dependencies:
             err-code: 2.0.3
             retry: 0.12.0
       
      -  prompts@2.4.2:
      +  /prompts@2.4.2:
      +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
      +    engines: {node: '>= 6'}
           dependencies:
             kleur: 3.0.3
             sisteransi: 1.0.5
       
      -  prop-types@15.8.1:
      +  /prop-types@15.8.1:
      +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
           dependencies:
             loose-envify: 1.4.0
             object-assign: 4.1.1
             react-is: 16.13.1
       
      -  property-information@6.4.1: {}
      +  /property-information@6.4.1:
      +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
       
      -  proto-list@1.2.4: {}
      +  /proto-list@1.2.4:
      +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
       
      -  proxy-addr@2.0.7:
      +  /proxy-addr@2.0.7:
      +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
      +    engines: {node: '>= 0.10'}
           dependencies:
             forwarded: 0.2.0
             ipaddr.js: 1.9.1
       
      -  psl@1.9.0: {}
      +  /psl@1.9.0:
      +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
      +    dev: true
       
      -  punycode@1.4.1: {}
      +  /punycode@1.4.1:
      +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
      +    dev: false
       
      -  punycode@2.3.1: {}
      +  /punycode@2.3.1:
      +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
      +    engines: {node: '>=6'}
       
      -  pupa@3.1.0:
      +  /pupa@3.1.0:
      +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
      +    engines: {node: '>=12.20'}
           dependencies:
             escape-goat: 4.0.0
      +    dev: false
       
      -  pure-rand@6.1.0: {}
      +  /pure-rand@6.1.0:
      +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
      +    dev: true
       
      -  qs@6.11.0:
      +  /qs@6.11.0:
      +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
      +    engines: {node: '>=0.6'}
           dependencies:
             side-channel: 1.0.6
       
      -  qs@6.12.0:
      +  /qs@6.12.0:
      +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
      +    engines: {node: '>=0.6'}
           dependencies:
             side-channel: 1.0.6
      +    dev: true
       
      -  querystringify@2.2.0: {}
      +  /querystringify@2.2.0:
      +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
      +    dev: true
       
      -  queue-microtask@1.2.3: {}
      +  /queue-microtask@1.2.3:
      +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
       
      -  queue@6.0.2:
      +  /queue@6.0.2:
      +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
           dependencies:
             inherits: 2.0.4
      +    dev: false
       
      -  quick-lru@4.0.1: {}
      +  /quick-lru@4.0.1:
      +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
      +    engines: {node: '>=8'}
      +    dev: true
       
      -  quick-lru@5.1.1: {}
      +  /quick-lru@5.1.1:
      +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
      +    engines: {node: '>=10'}
       
      -  railroad-diagrams@1.0.0: {}
      +  /railroad-diagrams@1.0.0:
      +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
      +    dev: false
       
      -  rambda@7.5.0: {}
      +  /rambda@7.5.0:
      +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
      +    dev: true
       
      -  ramda@0.29.1: {}
      +  /ramda@0.29.1:
      +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
      +    dev: true
       
      -  randexp@0.4.6:
      +  /randexp@0.4.6:
      +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
      +    engines: {node: '>=0.12'}
           dependencies:
             discontinuous-range: 1.0.0
             ret: 0.1.15
      +    dev: false
       
      -  randombytes@2.1.0:
      +  /randombytes@2.1.0:
      +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
           dependencies:
             safe-buffer: 5.2.1
       
      -  range-parser@1.2.0: {}
      +  /range-parser@1.2.0:
      +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
      +    engines: {node: '>= 0.6'}
      +    dev: false
       
      -  range-parser@1.2.1: {}
      +  /range-parser@1.2.1:
      +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
      +    engines: {node: '>= 0.6'}
       
      -  raw-body@2.5.2:
      +  /raw-body@2.5.2:
      +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
      +    engines: {node: '>= 0.8'}
           dependencies:
             bytes: 3.1.2
             http-errors: 2.0.0
             iconv-lite: 0.4.24
             unpipe: 1.0.0
       
      -  rc@1.2.8:
      +  /rc@1.2.8:
      +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
      +    hasBin: true
           dependencies:
             deep-extend: 0.6.0
             ini: 1.3.8
             minimist: 1.2.8
             strip-json-comments: 2.0.1
      +    dev: false
       
      -  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      +  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=2.7'
      +      webpack: '>=4'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
           dependencies:
             '@babel/code-frame': 7.24.2
             address: 1.2.2
      @@ -18995,18 +14675,29 @@ snapshots:
             - eslint
             - supports-color
             - vue-template-compiler
      +    dev: false
       
      -  react-dom@18.2.0(react@18.2.0):
      +  /react-dom@18.2.0(react@18.2.0):
      +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
      +    peerDependencies:
      +      react: ^18.2.0 || 18
           dependencies:
             loose-envify: 1.4.0
             react: 18.2.0
             scheduler: 0.23.0
       
      -  react-error-overlay@6.0.11: {}
      +  /react-error-overlay@6.0.11:
      +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
      +    dev: false
       
      -  react-fast-compare@3.2.2: {}
      +  /react-fast-compare@3.2.2:
      +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
       
      -  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
      +  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
      +    peerDependencies:
      +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
           dependencies:
             '@babel/runtime': 7.24.1
             invariant: 2.2.4
      @@ -19016,7 +14707,11 @@ snapshots:
             react-fast-compare: 3.2.2
             shallowequal: 1.1.0
       
      -  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
      +  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
      +    peerDependencies:
      +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
           dependencies:
             invariant: 2.2.4
             react: 18.2.0
      @@ -19024,23 +14719,42 @@ snapshots:
             react-fast-compare: 3.2.2
             shallowequal: 1.1.0
       
      -  react-is@16.13.1: {}
      +  /react-is@16.13.1:
      +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
       
      -  react-is@17.0.2: {}
      +  /react-is@17.0.2:
      +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
      +    dev: true
       
      -  react-is@18.2.0: {}
      +  /react-is@18.2.0:
      +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
      +    dev: true
       
      -  react-json-view-lite@1.3.0(react@18.2.0):
      +  /react-json-view-lite@1.3.0(react@18.2.0):
      +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
           dependencies:
             react: 18.2.0
      +    dev: false
       
      -  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
      +  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
      +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      react-loadable: '*'
      +      webpack: '>=4.41.1 || 5.x'
           dependencies:
             '@babel/runtime': 7.24.1
      -      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
      +      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  react-player@2.15.1(react@18.2.0):
      +  /react-player@2.15.1(react@18.2.0):
      +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
      +    peerDependencies:
      +      react: '>=16.6.0 || 18'
           dependencies:
             deepmerge: 4.3.1
             load-script: 1.0.0
      @@ -19048,14 +14762,23 @@ snapshots:
             prop-types: 15.8.1
             react: 18.2.0
             react-fast-compare: 3.2.2
      +    dev: false
       
      -  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
      +  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
      +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
      +    peerDependencies:
      +      react: '>=15 || 18'
      +      react-router: '>=5'
           dependencies:
             '@babel/runtime': 7.24.1
             react: 18.2.0
             react-router: 5.3.4(react@18.2.0)
      +    dev: false
       
      -  react-router-dom@5.3.4(react@18.2.0):
      +  /react-router-dom@5.3.4(react@18.2.0):
      +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
      +    peerDependencies:
      +      react: '>=15 || 18'
           dependencies:
             '@babel/runtime': 7.24.1
             history: 4.10.1
      @@ -19065,8 +14788,12 @@ snapshots:
             react-router: 5.3.4(react@18.2.0)
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
      +    dev: false
       
      -  react-router@5.3.4(react@18.2.0):
      +  /react-router@5.3.4(react@18.2.0):
      +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
      +    peerDependencies:
      +      react: '>=15 || 18'
           dependencies:
             '@babel/runtime': 7.24.1
             history: 4.10.1
      @@ -19078,15 +14805,28 @@ snapshots:
             react-is: 16.13.1
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
      +    dev: false
       
      -  react-string-replace@1.1.1: {}
      +  /react-string-replace@1.1.1:
      +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
      +    engines: {node: '>=0.12.0'}
      +    dev: false
       
      -  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
      +  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
      +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
      +    peerDependencies:
      +      react: '*'
      +      tslib: '*'
           dependencies:
             react: 18.2.0
             tslib: 2.6.2
      +    dev: false
       
      -  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
      +  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
      +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
           dependencies:
             '@types/js-cookie': 2.2.7
             '@xobotyi/scrollbar-width': 1.9.5
      @@ -19104,71 +14844,101 @@ snapshots:
             throttle-debounce: 3.0.1
             ts-easing: 0.2.0
             tslib: 2.6.2
      +    dev: false
       
      -  react@18.2.0:
      +  /react@18.2.0:
      +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             loose-envify: 1.4.0
       
      -  read-cache@1.0.0:
      +  /read-cache@1.0.0:
      +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
           dependencies:
             pify: 2.3.0
      +    dev: true
       
      -  read-cmd-shim@3.0.1: {}
      +  /read-cmd-shim@3.0.1:
      +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
       
      -  read-ini-file@4.0.0:
      +  /read-ini-file@4.0.0:
      +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
      +    engines: {node: '>=14.6'}
           dependencies:
             ini: 3.0.1
             strip-bom: 4.0.0
      +    dev: true
       
      -  read-package-json-fast@2.0.3:
      +  /read-package-json-fast@2.0.3:
      +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
      +    engines: {node: '>=10'}
           dependencies:
             json-parse-even-better-errors: 2.3.1
             npm-normalize-package-bin: 1.0.1
       
      -  read-package-json-fast@3.0.2:
      +  /read-package-json-fast@3.0.2:
      +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             json-parse-even-better-errors: 3.0.1
             npm-normalize-package-bin: 3.0.1
       
      -  read-package-json@6.0.4:
      +  /read-package-json@6.0.4:
      +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             glob: 10.3.10
             json-parse-even-better-errors: 3.0.1
             normalize-package-data: 5.0.0
             npm-normalize-package-bin: 3.0.1
       
      -  read-pkg-up@7.0.1:
      +  /read-pkg-up@7.0.1:
      +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
      +    engines: {node: '>=8'}
           dependencies:
             find-up: 4.1.0
             read-pkg: 5.2.0
             type-fest: 0.8.1
       
      -  read-pkg-up@8.0.0:
      +  /read-pkg-up@8.0.0:
      +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
      +    engines: {node: '>=12'}
           dependencies:
             find-up: 5.0.0
             read-pkg: 6.0.0
             type-fest: 1.4.0
      +    dev: true
       
      -  read-pkg@5.2.0:
      +  /read-pkg@5.2.0:
      +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
      +    engines: {node: '>=8'}
           dependencies:
             '@types/normalize-package-data': 2.4.4
             normalize-package-data: 2.5.0
             parse-json: 5.2.0
             type-fest: 0.6.0
       
      -  read-pkg@6.0.0:
      +  /read-pkg@6.0.0:
      +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
      +    engines: {node: '>=12'}
           dependencies:
             '@types/normalize-package-data': 2.4.4
             normalize-package-data: 3.0.3
             parse-json: 5.2.0
             type-fest: 1.4.0
      +    dev: true
       
      -  read-yaml-file@2.1.0:
      +  /read-yaml-file@2.1.0:
      +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
      +    engines: {node: '>=10.13'}
           dependencies:
             js-yaml: 4.1.0
             strip-bom: 4.0.0
      +    dev: true
       
      -  readable-stream@2.3.8:
      +  /readable-stream@2.3.8:
      +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
           dependencies:
             core-util-is: 1.0.3
             inherits: 2.0.4
      @@ -19178,13 +14948,17 @@ snapshots:
             string_decoder: 1.1.1
             util-deprecate: 1.0.2
       
      -  readable-stream@3.6.2:
      +  /readable-stream@3.6.2:
      +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
      +    engines: {node: '>= 6'}
           dependencies:
             inherits: 2.0.4
             string_decoder: 1.3.0
             util-deprecate: 1.0.2
       
      -  readable-stream@4.5.2:
      +  /readable-stream@4.5.2:
      +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
           dependencies:
             abort-controller: 3.0.0
             buffer: 6.0.3
      @@ -19192,39 +14966,60 @@ snapshots:
             process: 0.11.10
             string_decoder: 1.3.0
       
      -  readdir-scoped-modules@1.1.0:
      +  /readdir-scoped-modules@1.1.0:
      +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
      +    deprecated: This functionality has been moved to @npmcli/fs
           dependencies:
             debuglog: 1.0.1
             dezalgo: 1.0.4
             graceful-fs: 4.2.11
             once: 1.4.0
       
      -  readdirp@3.6.0:
      +  /readdirp@3.6.0:
      +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
      +    engines: {node: '>=8.10.0'}
           dependencies:
             picomatch: 2.3.1
       
      -  reading-time@1.5.0: {}
      +  /reading-time@1.5.0:
      +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
      +    dev: false
       
      -  realpath-missing@1.1.0: {}
      +  /realpath-missing@1.1.0:
      +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  rechoir@0.6.2:
      +  /rechoir@0.6.2:
      +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
      +    engines: {node: '>= 0.10'}
           dependencies:
             resolve: 1.22.8
       
      -  rechoir@0.8.0:
      +  /rechoir@0.8.0:
      +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
      +    engines: {node: '>= 10.13.0'}
           dependencies:
             resolve: 1.22.8
       
      -  recursive-readdir@2.2.3:
      +  /recursive-readdir@2.2.3:
      +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
      +    engines: {node: '>=6.0.0'}
           dependencies:
             minimatch: 3.1.2
      +    dev: false
       
      -  redent@4.0.0:
      +  /redent@4.0.0:
      +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
      +    engines: {node: '>=12'}
           dependencies:
             indent-string: 5.0.0
             strip-indent: 4.0.0
      +    dev: true
       
      -  reflect.getprototypeof@1.0.6:
      +  /reflect.getprototypeof@1.0.6:
      +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -19233,29 +15028,43 @@ snapshots:
             get-intrinsic: 1.2.4
             globalthis: 1.0.3
             which-builtin-type: 1.1.3
      +    dev: true
       
      -  regenerate-unicode-properties@10.1.1:
      +  /regenerate-unicode-properties@10.1.1:
      +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
      +    engines: {node: '>=4'}
           dependencies:
             regenerate: 1.4.2
       
      -  regenerate@1.4.2: {}
      +  /regenerate@1.4.2:
      +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
       
      -  regenerator-runtime@0.14.1: {}
      +  /regenerator-runtime@0.14.1:
      +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
       
      -  regenerator-transform@0.15.2:
      +  /regenerator-transform@0.15.2:
      +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
           dependencies:
             '@babel/runtime': 7.24.1
       
      -  regexp-tree@0.1.27: {}
      +  /regexp-tree@0.1.27:
      +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
      +    hasBin: true
      +    dev: true
       
      -  regexp.prototype.flags@1.5.2:
      +  /regexp.prototype.flags@1.5.2:
      +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-errors: 1.3.0
             set-function-name: 2.0.2
      +    dev: true
       
      -  regexpu-core@5.3.2:
      +  /regexpu-core@5.3.2:
      +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
      +    engines: {node: '>=4'}
           dependencies:
             '@babel/regjsgen': 0.8.0
             regenerate: 1.4.2
      @@ -19264,31 +15073,47 @@ snapshots:
             unicode-match-property-ecmascript: 2.0.0
             unicode-match-property-value-ecmascript: 2.1.0
       
      -  registry-auth-token@5.0.2:
      +  /registry-auth-token@5.0.2:
      +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
      +    engines: {node: '>=14'}
           dependencies:
             '@pnpm/npm-conf': 2.2.2
      +    dev: false
       
      -  registry-url@6.0.1:
      +  /registry-url@6.0.1:
      +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
      +    engines: {node: '>=12'}
           dependencies:
             rc: 1.2.8
      +    dev: false
       
      -  regjsparser@0.10.0:
      +  /regjsparser@0.10.0:
      +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
      +    hasBin: true
           dependencies:
             jsesc: 0.5.0
      +    dev: true
       
      -  regjsparser@0.9.1:
      +  /regjsparser@0.9.1:
      +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
      +    hasBin: true
           dependencies:
             jsesc: 0.5.0
       
      -  rehype-raw@7.0.0:
      +  /rehype-raw@7.0.0:
      +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
           dependencies:
             '@types/hast': 3.0.4
             hast-util-raw: 9.0.2
             vfile: 6.0.1
      +    dev: false
       
      -  relateurl@0.2.7: {}
      +  /relateurl@0.2.7:
      +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
      +    engines: {node: '>= 0.10'}
       
      -  remark-directive@3.0.0:
      +  /remark-directive@3.0.0:
      +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-directive: 3.0.0
      @@ -19296,16 +15121,21 @@ snapshots:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  remark-emoji@4.0.1:
      +  /remark-emoji@4.0.1:
      +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             '@types/mdast': 4.0.3
             emoticon: 4.0.1
             mdast-util-find-and-replace: 3.0.1
             node-emoji: 2.1.3
             unified: 11.0.4
      +    dev: false
       
      -  remark-frontmatter@5.0.0:
      +  /remark-frontmatter@5.0.0:
      +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-frontmatter: 2.0.1
      @@ -19313,8 +15143,10 @@ snapshots:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  remark-gfm@4.0.0:
      +  /remark-gfm@4.0.0:
      +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-gfm: 3.0.0
      @@ -19324,15 +15156,18 @@ snapshots:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  remark-mdx@3.0.1:
      +  /remark-mdx@3.0.1:
      +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
           dependencies:
             mdast-util-mdx: 3.0.0
             micromark-extension-mdxjs: 3.0.0
           transitivePeerDependencies:
             - supports-color
       
      -  remark-parse@11.0.0:
      +  /remark-parse@11.0.0:
      +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-from-markdown: 2.0.0
      @@ -19341,7 +15176,8 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  remark-rehype@11.1.0:
      +  /remark-rehype@11.1.0:
      +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
           dependencies:
             '@types/hast': 3.0.4
             '@types/mdast': 4.0.3
      @@ -19349,15 +15185,19 @@ snapshots:
             unified: 11.0.4
             vfile: 6.0.1
       
      -  remark-stringify@11.0.0:
      +  /remark-stringify@11.0.0:
      +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-to-markdown: 2.1.0
             unified: 11.0.4
      +    dev: false
       
      -  remove-trailing-separator@1.1.0: {}
      +  /remove-trailing-separator@1.1.0:
      +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
       
      -  renderkid@3.0.0:
      +  /renderkid@3.0.0:
      +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
           dependencies:
             css-select: 4.3.0
             dom-converter: 0.2.0
      @@ -19365,128 +15205,212 @@ snapshots:
             lodash: 4.17.21
             strip-ansi: 6.0.1
       
      -  replace-ext@1.0.1: {}
      +  /replace-ext@1.0.1:
      +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
      +    engines: {node: '>= 0.10'}
       
      -  require-directory@2.1.1: {}
      +  /require-directory@2.1.1:
      +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
      +    engines: {node: '>=0.10.0'}
      +    dev: true
       
      -  require-from-string@2.0.2: {}
      +  /require-from-string@2.0.2:
      +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
      +    engines: {node: '>=0.10.0'}
       
      -  require-like@0.1.2: {}
      +  /require-like@0.1.2:
      +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
      +    dev: false
       
      -  requires-port@1.0.0: {}
      +  /requires-port@1.0.0:
      +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
       
      -  resize-observer-polyfill@1.5.1: {}
      +  /resize-observer-polyfill@1.5.1:
      +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
      +    dev: false
       
      -  resolve-alpn@1.2.1: {}
      +  /resolve-alpn@1.2.1:
      +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
      +    dev: false
       
      -  resolve-cwd@3.0.0:
      +  /resolve-cwd@3.0.0:
      +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
      +    engines: {node: '>=8'}
           dependencies:
             resolve-from: 5.0.0
       
      -  resolve-from@4.0.0: {}
      +  /resolve-from@4.0.0:
      +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
      +    engines: {node: '>=4'}
       
      -  resolve-from@5.0.0: {}
      +  /resolve-from@5.0.0:
      +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
      +    engines: {node: '>=8'}
       
      -  resolve-pathname@3.0.0: {}
      +  /resolve-pathname@3.0.0:
      +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
      +    dev: false
       
      -  resolve-pkg-maps@1.0.0: {}
      +  /resolve-pkg-maps@1.0.0:
      +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
      +    dev: true
       
      -  resolve.exports@2.0.2: {}
      +  /resolve.exports@2.0.2:
      +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  resolve@1.22.8:
      +  /resolve@1.22.8:
      +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
      +    hasBin: true
           dependencies:
             is-core-module: 2.13.1
             path-parse: 1.0.7
             supports-preserve-symlinks-flag: 1.0.0
       
      -  resolve@2.0.0-next.5:
      +  /resolve@2.0.0-next.5:
      +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
      +    hasBin: true
           dependencies:
             is-core-module: 2.13.1
             path-parse: 1.0.7
             supports-preserve-symlinks-flag: 1.0.0
      +    dev: true
       
      -  responselike@3.0.0:
      +  /responselike@3.0.0:
      +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
      +    engines: {node: '>=14.16'}
           dependencies:
             lowercase-keys: 3.0.0
      +    dev: false
       
      -  restore-cursor@3.1.0:
      +  /restore-cursor@3.1.0:
      +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
      +    engines: {node: '>=8'}
           dependencies:
             onetime: 5.1.2
             signal-exit: 3.0.7
       
      -  ret@0.1.15: {}
      +  /ret@0.1.15:
      +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
      +    engines: {node: '>=0.12'}
      +    dev: false
       
      -  retry@0.12.0: {}
      +  /retry@0.12.0:
      +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
      +    engines: {node: '>= 4'}
       
      -  retry@0.13.1: {}
      +  /retry@0.13.1:
      +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
      +    engines: {node: '>= 4'}
       
      -  reusify@1.0.4: {}
      +  /reusify@1.0.4:
      +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
      +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
       
      -  rfc4648@1.5.3: {}
      +  /rfc4648@1.5.3:
      +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
      +    dev: false
       
      -  right-pad@1.0.1: {}
      +  /right-pad@1.0.1:
      +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
      +    engines: {node: '>= 0.10'}
      +    dev: true
       
      -  rimraf@3.0.2:
      +  /rimraf@3.0.2:
      +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
      +    hasBin: true
           dependencies:
             glob: 7.2.3
       
      -  rimraf@5.0.5:
      +  /rimraf@5.0.5:
      +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
      +    engines: {node: '>=14'}
      +    hasBin: true
           dependencies:
             glob: 10.3.10
       
      -  rtl-css-js@1.16.1:
      +  /rtl-css-js@1.16.1:
      +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
           dependencies:
             '@babel/runtime': 7.24.1
      +    dev: false
       
      -  rtl-detect@1.1.2: {}
      +  /rtl-detect@1.1.2:
      +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
      +    dev: false
       
      -  rtlcss@4.1.1:
      +  /rtlcss@4.1.1:
      +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
      +    engines: {node: '>=12.0.0'}
      +    hasBin: true
           dependencies:
             escalade: 3.1.2
             picocolors: 1.0.0
             postcss: 8.4.38
             strip-json-comments: 3.1.1
      +    dev: false
       
      -  run-applescript@7.0.0: {}
      +  /run-applescript@7.0.0:
      +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
      +    engines: {node: '>=18'}
       
      -  run-async@2.4.1: {}
      +  /run-async@2.4.1:
      +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
      +    engines: {node: '>=0.12.0'}
       
      -  run-parallel@1.2.0:
      +  /run-parallel@1.2.0:
      +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
           dependencies:
             queue-microtask: 1.2.3
       
      -  rxjs@7.8.1:
      +  /rxjs@7.8.1:
      +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
           dependencies:
             tslib: 2.6.2
       
      -  safe-array-concat@1.1.2:
      +  /safe-array-concat@1.1.2:
      +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
      +    engines: {node: '>=0.4'}
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
             has-symbols: 1.0.3
             isarray: 2.0.5
      +    dev: true
       
      -  safe-buffer@5.1.2: {}
      +  /safe-buffer@5.1.2:
      +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
       
      -  safe-buffer@5.2.1: {}
      +  /safe-buffer@5.2.1:
      +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
       
      -  safe-execa@0.1.2:
      +  /safe-execa@0.1.2:
      +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
      +    engines: {node: '>=12'}
           dependencies:
             '@zkochan/which': 2.0.3
             execa: 5.1.1
             path-name: 1.0.0
       
      -  safe-regex-test@1.0.3:
      +  /safe-regex-test@1.0.3:
      +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-regex: 1.1.4
      +    dev: true
       
      -  safe-stable-stringify@2.4.3: {}
      +  /safe-stable-stringify@2.4.3:
      +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
      +    engines: {node: '>=10'}
       
      -  safer-buffer@2.1.2: {}
      +  /safer-buffer@2.1.2:
      +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
       
      -  sanitize-html@2.13.0:
      +  /sanitize-html@2.13.0:
      +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
           dependencies:
             deepmerge: 4.3.1
             escape-string-regexp: 4.0.0
      @@ -19494,77 +15418,124 @@ snapshots:
             is-plain-object: 5.0.0
             parse-srcset: 1.0.2
             postcss: 8.4.38
      +    dev: false
       
      -  sax@1.3.0: {}
      +  /sax@1.3.0:
      +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
      +    dev: false
       
      -  saxes@6.0.0:
      +  /saxes@6.0.0:
      +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
      +    engines: {node: '>=v12.22.7'}
           dependencies:
             xmlchars: 2.2.0
      +    dev: true
       
      -  sbd@1.0.19:
      +  /sbd@1.0.19:
      +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
           dependencies:
             sanitize-html: 2.13.0
      +    dev: false
       
      -  scheduler@0.23.0:
      +  /scheduler@0.23.0:
      +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
           dependencies:
             loose-envify: 1.4.0
       
      -  schema-utils@2.7.0:
      +  /schema-utils@2.7.0:
      +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
      +    engines: {node: '>= 8.9.0'}
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 6.12.6
             ajv-keywords: 3.5.2(ajv@6.12.6)
      +    dev: false
       
      -  schema-utils@3.3.0:
      +  /schema-utils@3.3.0:
      +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
      +    engines: {node: '>= 10.13.0'}
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 6.12.6
             ajv-keywords: 3.5.2(ajv@6.12.6)
       
      -  schema-utils@4.2.0:
      +  /schema-utils@4.2.0:
      +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
      +    engines: {node: '>= 12.13.0'}
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 8.12.0
             ajv-formats: 2.1.1(ajv@8.12.0)
             ajv-keywords: 5.1.0(ajv@8.12.0)
       
      -  scoped-regex@2.1.0: {}
      +  /scoped-regex@2.1.0:
      +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
      +    engines: {node: '>=8'}
       
      -  screenfull@5.2.0: {}
      +  /screenfull@5.2.0:
      +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  search-insights@2.13.0: {}
      +  /search-insights@2.13.0:
      +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
      +    dev: false
       
      -  section-matter@1.0.0:
      +  /section-matter@1.0.0:
      +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
      +    engines: {node: '>=4'}
           dependencies:
             extend-shallow: 2.0.1
             kind-of: 6.0.3
      +    dev: false
       
      -  secure-compare@3.0.1: {}
      +  /secure-compare@3.0.1:
      +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
      +    dev: true
       
      -  select-hose@2.0.0: {}
      +  /select-hose@2.0.0:
      +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
       
      -  selfsigned@2.4.1:
      +  /selfsigned@2.4.1:
      +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
      +    engines: {node: '>=10'}
           dependencies:
             '@types/node-forge': 1.3.11
             node-forge: 1.3.1
       
      -  semver-diff@4.0.0:
      +  /semver-diff@4.0.0:
      +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
      +    engines: {node: '>=12'}
           dependencies:
             semver: 7.6.0
      +    dev: false
       
      -  semver@5.7.2: {}
      +  /semver@5.7.2:
      +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
      +    hasBin: true
       
      -  semver@6.3.1: {}
      +  /semver@6.3.1:
      +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
      +    hasBin: true
       
      -  semver@7.5.4:
      +  /semver@7.5.4:
      +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             lru-cache: 6.0.0
      +    dev: true
       
      -  semver@7.6.0:
      +  /semver@7.6.0:
      +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             lru-cache: 6.0.0
       
      -  send@0.18.0:
      +  /send@0.18.0:
      +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             debug: 2.6.9
             depd: 2.0.0
      @@ -19582,15 +15553,19 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  serialize-javascript@6.0.0:
      +  /serialize-javascript@6.0.0:
      +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
           dependencies:
             randombytes: 2.1.0
      +    dev: true
       
      -  serialize-javascript@6.0.2:
      +  /serialize-javascript@6.0.2:
      +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
           dependencies:
             randombytes: 2.1.0
       
      -  serve-handler@6.1.5:
      +  /serve-handler@6.1.5:
      +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
           dependencies:
             bytes: 3.0.0
             content-disposition: 0.5.2
      @@ -19600,8 +15575,11 @@ snapshots:
             path-is-inside: 1.0.2
             path-to-regexp: 2.2.1
             range-parser: 1.2.0
      +    dev: false
       
      -  serve-index@1.9.1:
      +  /serve-index@1.9.1:
      +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             accepts: 1.3.8
             batch: 0.6.1
      @@ -19613,7 +15591,9 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  serve-static@1.15.0:
      +  /serve-static@1.15.0:
      +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             encodeurl: 1.0.2
             escape-html: 1.0.3
      @@ -19622,9 +15602,12 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  set-blocking@2.0.0: {}
      +  /set-blocking@2.0.0:
      +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
       
      -  set-function-length@1.2.2:
      +  /set-function-length@1.2.2:
      +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             define-data-property: 1.1.4
             es-errors: 1.3.0
      @@ -19633,53 +15616,82 @@ snapshots:
             gopd: 1.0.1
             has-property-descriptors: 1.0.2
       
      -  set-function-name@2.0.2:
      +  /set-function-name@2.0.2:
      +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             define-data-property: 1.1.4
             es-errors: 1.3.0
             functions-have-names: 1.2.3
             has-property-descriptors: 1.0.2
      +    dev: true
       
      -  set-harmonic-interval@1.0.1: {}
      +  /set-harmonic-interval@1.0.1:
      +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
      +    engines: {node: '>=6.9'}
      +    dev: false
       
      -  setimmediate@1.0.5: {}
      +  /setimmediate@1.0.5:
      +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
      +    dev: true
       
      -  setprototypeof@1.1.0: {}
      +  /setprototypeof@1.1.0:
      +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
       
      -  setprototypeof@1.2.0: {}
      +  /setprototypeof@1.2.0:
      +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
       
      -  shallow-clone@3.0.1:
      +  /shallow-clone@3.0.1:
      +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
      +    engines: {node: '>=8'}
           dependencies:
             kind-of: 6.0.3
       
      -  shallowequal@1.1.0: {}
      +  /shallowequal@1.1.0:
      +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
       
      -  shebang-command@2.0.0:
      +  /shebang-command@2.0.0:
      +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
      +    engines: {node: '>=8'}
           dependencies:
             shebang-regex: 3.0.0
       
      -  shebang-regex@3.0.0: {}
      +  /shebang-regex@3.0.0:
      +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
      +    engines: {node: '>=8'}
       
      -  shell-quote@1.8.1: {}
      +  /shell-quote@1.8.1:
      +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
       
      -  shelljs@0.8.5:
      +  /shelljs@0.8.5:
      +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
      +    engines: {node: '>=4'}
      +    hasBin: true
           dependencies:
             glob: 7.2.3
             interpret: 1.4.0
             rechoir: 0.6.2
       
      -  side-channel@1.0.6:
      +  /side-channel@1.0.6:
      +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             get-intrinsic: 1.2.4
             object-inspect: 1.13.1
       
      -  signal-exit@3.0.7: {}
      +  /signal-exit@3.0.7:
      +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
       
      -  signal-exit@4.1.0: {}
      +  /signal-exit@4.1.0:
      +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
      +    engines: {node: '>=14'}
       
      -  sigstore@1.9.0:
      +  /sigstore@1.9.0:
      +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
           dependencies:
             '@sigstore/bundle': 1.1.0
             '@sigstore/protobuf-specs': 0.2.1
      @@ -19689,11 +15701,13 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  simple-swizzle@0.2.2:
      +  /simple-swizzle@0.2.2:
      +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
           dependencies:
             is-arrayish: 0.3.2
       
      -  sinon@17.0.1:
      +  /sinon@17.0.1:
      +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
           dependencies:
             '@sinonjs/commons': 3.0.1
             '@sinonjs/fake-timers': 11.2.2
      @@ -19701,52 +15715,79 @@ snapshots:
             diff: 5.2.0
             nise: 5.1.9
             supports-color: 7.2.0
      +    dev: true
       
      -  sirv@2.0.4:
      +  /sirv@2.0.4:
      +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
      +    engines: {node: '>= 10'}
           dependencies:
             '@polka/url': 1.0.0-next.25
             mrmime: 2.0.0
             totalist: 3.0.1
      +    dev: false
       
      -  sisteransi@1.0.5: {}
      +  /sisteransi@1.0.5:
      +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
       
      -  sitemap@7.1.1:
      +  /sitemap@7.1.1:
      +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
      +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
      +    hasBin: true
           dependencies:
             '@types/node': 17.0.45
             '@types/sax': 1.2.7
             arg: 5.0.2
             sax: 1.3.0
      +    dev: false
       
      -  skin-tone@2.0.0:
      +  /skin-tone@2.0.0:
      +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
      +    engines: {node: '>=8'}
           dependencies:
             unicode-emoji-modifier-base: 1.0.0
      +    dev: false
       
      -  slash@3.0.0: {}
      +  /slash@3.0.0:
      +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
      +    engines: {node: '>=8'}
       
      -  slash@4.0.0: {}
      +  /slash@4.0.0:
      +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  smart-buffer@4.2.0: {}
      +  /smart-buffer@4.2.0:
      +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
      +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
       
      -  snake-case@3.0.4:
      +  /snake-case@3.0.4:
      +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
           dependencies:
             dot-case: 3.0.4
             tslib: 2.6.2
      +    dev: true
       
      -  sockjs@0.3.24:
      +  /sockjs@0.3.24:
      +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
           dependencies:
             faye-websocket: 0.11.4
             uuid: 8.3.2
             websocket-driver: 0.7.4
       
      -  socks-proxy-agent@6.1.1:
      +  /socks-proxy-agent@6.1.1:
      +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
      +    engines: {node: '>= 10'}
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
             socks: 2.8.1
           transitivePeerDependencies:
             - supports-color
      +    dev: false
       
      -  socks-proxy-agent@6.2.1:
      +  /socks-proxy-agent@6.2.1:
      +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
      +    engines: {node: '>= 10'}
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -19754,7 +15795,9 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  socks-proxy-agent@7.0.0:
      +  /socks-proxy-agent@7.0.0:
      +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
      +    engines: {node: '>= 10'}
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -19762,58 +15805,89 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  socks@2.8.1:
      +  /socks@2.8.1:
      +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
      +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
           dependencies:
             ip-address: 9.0.5
             smart-buffer: 4.2.0
       
      -  sort-css-media-queries@2.1.0: {}
      +  /sort-css-media-queries@2.1.0:
      +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
      +    engines: {node: '>= 6.3.0'}
      +    dev: false
       
      -  sort-keys@4.2.0:
      +  /sort-keys@4.2.0:
      +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
      +    engines: {node: '>=8'}
           dependencies:
             is-plain-obj: 2.1.0
       
      -  sort-keys@5.0.0:
      +  /sort-keys@5.0.0:
      +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
      +    engines: {node: '>=12'}
           dependencies:
             is-plain-obj: 4.1.0
      +    dev: true
       
      -  source-map-js@1.2.0: {}
      +  /source-map-js@1.2.0:
      +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
      +    engines: {node: '>=0.10.0'}
       
      -  source-map-support@0.5.13:
      +  /source-map-support@0.5.13:
      +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
           dependencies:
             buffer-from: 1.1.2
             source-map: 0.6.1
      +    dev: true
       
      -  source-map-support@0.5.21:
      +  /source-map-support@0.5.21:
      +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
           dependencies:
             buffer-from: 1.1.2
             source-map: 0.6.1
       
      -  source-map-url@0.4.1: {}
      +  /source-map-url@0.4.1:
      +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
      +    deprecated: See https://github.com/lydell/source-map-url#deprecated
      +    dev: true
       
      -  source-map@0.5.6: {}
      +  /source-map@0.5.6:
      +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  source-map@0.6.1: {}
      +  /source-map@0.6.1:
      +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
      +    engines: {node: '>=0.10.0'}
       
      -  source-map@0.7.4: {}
      +  /source-map@0.7.4:
      +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
      +    engines: {node: '>= 8'}
       
      -  space-separated-tokens@2.0.2: {}
      +  /space-separated-tokens@2.0.2:
      +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
       
      -  spdx-correct@3.2.0:
      +  /spdx-correct@3.2.0:
      +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
           dependencies:
             spdx-expression-parse: 3.0.1
             spdx-license-ids: 3.0.17
       
      -  spdx-exceptions@2.5.0: {}
      +  /spdx-exceptions@2.5.0:
      +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
       
      -  spdx-expression-parse@3.0.1:
      +  /spdx-expression-parse@3.0.1:
      +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
           dependencies:
             spdx-exceptions: 2.5.0
             spdx-license-ids: 3.0.17
       
      -  spdx-license-ids@3.0.17: {}
      +  /spdx-license-ids@3.0.17:
      +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
       
      -  spdy-transport@3.0.0:
      +  /spdy-transport@3.0.0:
      +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             detect-node: 2.1.0
      @@ -19824,7 +15898,9 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  spdy@4.0.2:
      +  /spdy@4.0.2:
      +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
      +    engines: {node: '>=6.0.0'}
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             handle-thing: 2.0.1
      @@ -19834,88 +15910,138 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  split2@3.2.2:
      +  /split2@3.2.2:
      +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
           dependencies:
             readable-stream: 3.6.2
       
      -  sprintf-js@1.0.3: {}
      +  /sprintf-js@1.0.3:
      +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
       
      -  sprintf-js@1.1.3: {}
      +  /sprintf-js@1.1.3:
      +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
       
      -  srcset@4.0.0: {}
      +  /srcset@4.0.0:
      +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  ssri@10.0.5:
      +  /ssri@10.0.5:
      +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             minipass: 7.0.4
       
      -  ssri@8.0.1:
      +  /ssri@8.0.1:
      +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
      +    engines: {node: '>= 8'}
           dependencies:
             minipass: 3.3.6
       
      -  ssri@9.0.1:
      +  /ssri@9.0.1:
      +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             minipass: 3.3.6
       
      -  stable@0.1.8: {}
      +  /stable@0.1.8:
      +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
      +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
      +    dev: false
       
      -  stack-generator@2.0.10:
      +  /stack-generator@2.0.10:
      +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
           dependencies:
             stackframe: 1.3.4
      +    dev: false
       
      -  stack-trace@0.0.10: {}
      +  /stack-trace@0.0.10:
      +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
       
      -  stack-utils@2.0.6:
      +  /stack-utils@2.0.6:
      +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
      +    engines: {node: '>=10'}
           dependencies:
             escape-string-regexp: 2.0.0
      +    dev: true
       
      -  stackframe@1.3.4: {}
      +  /stackframe@1.3.4:
      +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
      +    dev: false
       
      -  stacktrace-gps@3.1.2:
      +  /stacktrace-gps@3.1.2:
      +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
           dependencies:
             source-map: 0.5.6
             stackframe: 1.3.4
      +    dev: false
       
      -  stacktrace-js@2.0.2:
      +  /stacktrace-js@2.0.2:
      +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
           dependencies:
             error-stack-parser: 2.1.4
             stack-generator: 2.0.10
             stacktrace-gps: 3.1.2
      +    dev: false
       
      -  stacktracey@2.1.8:
      +  /stacktracey@2.1.8:
      +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
           dependencies:
             as-table: 1.0.55
             get-source: 2.0.12
      +    dev: true
       
      -  statuses@1.5.0: {}
      +  /statuses@1.5.0:
      +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
      +    engines: {node: '>= 0.6'}
       
      -  statuses@2.0.1: {}
      +  /statuses@2.0.1:
      +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
      +    engines: {node: '>= 0.8'}
       
      -  std-env@3.7.0: {}
      +  /std-env@3.7.0:
      +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
      +    dev: false
       
      -  stop-iteration-iterator@1.0.0:
      +  /stop-iteration-iterator@1.0.0:
      +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             internal-slot: 1.0.7
      +    dev: true
       
      -  streamsearch@1.1.0: {}
      +  /streamsearch@1.1.0:
      +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
      +    engines: {node: '>=10.0.0'}
      +    dev: false
       
      -  string-length@4.0.2:
      +  /string-length@4.0.2:
      +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
      +    engines: {node: '>=10'}
           dependencies:
             char-regex: 1.0.2
             strip-ansi: 6.0.1
      +    dev: true
       
      -  string-width@4.2.3:
      +  /string-width@4.2.3:
      +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
      +    engines: {node: '>=8'}
           dependencies:
             emoji-regex: 8.0.0
             is-fullwidth-code-point: 3.0.0
             strip-ansi: 6.0.1
       
      -  string-width@5.1.2:
      +  /string-width@5.1.2:
      +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
      +    engines: {node: '>=12'}
           dependencies:
             eastasianwidth: 0.2.0
             emoji-regex: 9.2.2
             strip-ansi: 7.1.0
       
      -  string.prototype.matchall@4.0.11:
      +  /string.prototype.matchall@4.0.11:
      +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -19929,117 +16055,195 @@ snapshots:
             regexp.prototype.flags: 1.5.2
             set-function-name: 2.0.2
             side-channel: 1.0.6
      +    dev: true
       
      -  string.prototype.trim@1.2.9:
      +  /string.prototype.trim@1.2.9:
      +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  string.prototype.trimend@1.0.8:
      +  /string.prototype.trimend@1.0.8:
      +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  string.prototype.trimstart@1.0.8:
      +  /string.prototype.trimstart@1.0.8:
      +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      +    dev: true
       
      -  string_decoder@1.1.1:
      +  /string_decoder@1.1.1:
      +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
           dependencies:
             safe-buffer: 5.1.2
       
      -  string_decoder@1.3.0:
      +  /string_decoder@1.3.0:
      +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
           dependencies:
             safe-buffer: 5.2.1
       
      -  stringify-entities@4.0.3:
      +  /stringify-entities@4.0.3:
      +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
           dependencies:
             character-entities-html4: 2.1.0
             character-entities-legacy: 3.0.0
       
      -  stringify-object@3.3.0:
      +  /stringify-object@3.3.0:
      +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
      +    engines: {node: '>=4'}
           dependencies:
             get-own-enumerable-property-symbols: 3.0.2
             is-obj: 1.0.1
             is-regexp: 1.0.0
      +    dev: false
       
      -  strip-ansi@6.0.1:
      +  /strip-ansi@6.0.1:
      +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
      +    engines: {node: '>=8'}
           dependencies:
             ansi-regex: 5.0.1
       
      -  strip-ansi@7.1.0:
      +  /strip-ansi@7.1.0:
      +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
      +    engines: {node: '>=12'}
           dependencies:
             ansi-regex: 6.0.1
       
      -  strip-bom-buf@1.0.0:
      +  /strip-bom-buf@1.0.0:
      +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
      +    engines: {node: '>=4'}
           dependencies:
             is-utf8: 0.2.1
       
      -  strip-bom-stream@2.0.0:
      +  /strip-bom-stream@2.0.0:
      +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             first-chunk-stream: 2.0.0
             strip-bom: 2.0.0
       
      -  strip-bom-string@1.0.0: {}
      +  /strip-bom-string@1.0.0:
      +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  strip-bom@2.0.0:
      +  /strip-bom@2.0.0:
      +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
      +    engines: {node: '>=0.10.0'}
           dependencies:
             is-utf8: 0.2.1
       
      -  strip-bom@3.0.0: {}
      +  /strip-bom@3.0.0:
      +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
      +    engines: {node: '>=4'}
       
      -  strip-bom@4.0.0: {}
      +  /strip-bom@4.0.0:
      +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
      +    engines: {node: '>=8'}
       
      -  strip-comments-strings@1.2.0: {}
      +  /strip-comments-strings@1.2.0:
      +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
      +    dev: true
       
      -  strip-final-newline@2.0.0: {}
      +  /strip-final-newline@2.0.0:
      +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
      +    engines: {node: '>=6'}
       
      -  strip-indent@3.0.0:
      +  /strip-indent@3.0.0:
      +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
      +    engines: {node: '>=8'}
           dependencies:
             min-indent: 1.0.1
      +    dev: true
       
      -  strip-indent@4.0.0:
      +  /strip-indent@4.0.0:
      +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
      +    engines: {node: '>=12'}
           dependencies:
             min-indent: 1.0.1
      +    dev: true
       
      -  strip-json-comments@2.0.1: {}
      +  /strip-json-comments@2.0.1:
      +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
      +    engines: {node: '>=0.10.0'}
      +    dev: false
       
      -  strip-json-comments@3.1.1: {}
      +  /strip-json-comments@3.1.1:
      +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
      +    engines: {node: '>=8'}
       
      -  strnum@1.0.5: {}
      +  /strnum@1.0.5:
      +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
      +    dev: true
       
      -  style-loader@3.3.4(webpack@5.91.0):
      +  /style-loader@3.3.4(webpack@5.91.0):
      +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: true
       
      -  style-to-object@0.4.4:
      +  /style-to-object@0.4.4:
      +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
           dependencies:
             inline-style-parser: 0.1.1
       
      -  style-to-object@1.0.5:
      +  /style-to-object@1.0.5:
      +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
           dependencies:
             inline-style-parser: 0.2.2
       
      -  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
      +  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
      +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
      +    engines: {node: '>= 12.0.0'}
      +    peerDependencies:
      +      '@babel/core': '*'
      +      babel-plugin-macros: '*'
      +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
      +    peerDependenciesMeta:
      +      '@babel/core':
      +        optional: true
      +      babel-plugin-macros:
      +        optional: true
           dependencies:
             '@babel/core': 7.24.3
             client-only: 0.0.1
             react: 18.2.0
      +    dev: false
       
      -  stylehacks@5.1.1(postcss@8.4.38):
      +  /stylehacks@5.1.1(postcss@8.4.38):
      +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      +    dev: false
       
      -  stylis@4.3.1: {}
      +  /stylis@4.3.1:
      +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
      +    dev: false
       
      -  sucrase@3.35.0:
      +  /sucrase@3.35.0:
      +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +    hasBin: true
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             commander: 4.1.1
      @@ -20048,24 +16252,37 @@ snapshots:
             mz: 2.7.0
             pirates: 4.0.6
             ts-interface-checker: 0.1.13
      +    dev: true
       
      -  supports-color@5.5.0:
      +  /supports-color@5.5.0:
      +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
      +    engines: {node: '>=4'}
           dependencies:
             has-flag: 3.0.0
       
      -  supports-color@7.2.0:
      +  /supports-color@7.2.0:
      +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
      +    engines: {node: '>=8'}
           dependencies:
             has-flag: 4.0.0
       
      -  supports-color@8.1.1:
      +  /supports-color@8.1.1:
      +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
      +    engines: {node: '>=10'}
           dependencies:
             has-flag: 4.0.0
       
      -  supports-preserve-symlinks-flag@1.0.0: {}
      +  /supports-preserve-symlinks-flag@1.0.0:
      +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
      +    engines: {node: '>= 0.4'}
       
      -  svg-parser@2.0.4: {}
      +  /svg-parser@2.0.4:
      +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
       
      -  svgo@2.8.0:
      +  /svgo@2.8.0:
      +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
      +    engines: {node: '>=10.13.0'}
      +    hasBin: true
           dependencies:
             '@trysound/sax': 0.2.0
             commander: 7.2.0
      @@ -20074,8 +16291,12 @@ snapshots:
             csso: 4.2.0
             picocolors: 1.0.0
             stable: 0.1.8
      +    dev: false
       
      -  svgo@3.2.0:
      +  /svgo@3.2.0:
      +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
      +    engines: {node: '>=14.0.0'}
      +    hasBin: true
           dependencies:
             '@trysound/sax': 0.2.0
             commander: 7.2.0
      @@ -20084,10 +16305,16 @@ snapshots:
             css-what: 6.1.0
             csso: 5.0.5
             picocolors: 1.0.0
      +    dev: true
       
      -  symbol-tree@3.2.4: {}
      +  /symbol-tree@3.2.4:
      +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
      +    dev: true
       
      -  syncpack@12.3.0(typescript@5.4.3):
      +  /syncpack@12.3.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
      +    engines: {node: '>=16'}
      +    hasBin: true
           dependencies:
             '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
             chalk: 4.1.2
      @@ -20107,10 +16334,17 @@ snapshots:
             ts-toolbelt: 9.6.0
           transitivePeerDependencies:
             - typescript
      +    dev: true
       
      -  tail@2.2.6: {}
      +  /tail@2.2.6:
      +    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
      +    engines: {node: '>= 6.0.0'}
      +    dev: false
       
      -  tailwindcss@3.4.1(ts-node@10.9.2):
      +  /tailwindcss@3.4.1(ts-node@10.9.2):
      +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
      +    engines: {node: '>=14.0.0'}
      +    hasBin: true
           dependencies:
             '@alloc/quick-lru': 5.2.0
             arg: 5.0.2
      @@ -20136,12 +16370,20 @@ snapshots:
             sucrase: 3.35.0
           transitivePeerDependencies:
             - ts-node
      +    dev: true
       
      -  tapable@1.1.3: {}
      +  /tapable@1.1.3:
      +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  tapable@2.2.1: {}
      +  /tapable@2.2.1:
      +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
      +    engines: {node: '>=6'}
       
      -  tar@6.2.1:
      +  /tar@6.2.1:
      +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
      +    engines: {node: '>=10'}
           dependencies:
             chownr: 2.0.0
             fs-minipass: 2.1.0
      @@ -20150,7 +16392,21 @@ snapshots:
             mkdirp: 1.0.4
             yallist: 4.0.0
       
      -  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
      +  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
      +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      '@swc/core': '*'
      +      esbuild: '*'
      +      uglify-js: '*'
      +      webpack: ^5.1.0
      +    peerDependenciesMeta:
      +      '@swc/core':
      +        optional: true
      +      esbuild:
      +        optional: true
      +      uglify-js:
      +        optional: true
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             esbuild: 0.20.2
      @@ -20160,105 +16416,195 @@ snapshots:
             terser: 5.29.2
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  terser@5.29.2:
      +  /terser@5.29.2:
      +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
      +    engines: {node: '>=10'}
      +    hasBin: true
           dependencies:
             '@jridgewell/source-map': 0.3.6
             acorn: 8.11.3
             commander: 2.20.3
             source-map-support: 0.5.21
       
      -  test-exclude@6.0.0:
      +  /test-exclude@6.0.0:
      +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
      +    engines: {node: '>=8'}
           dependencies:
             '@istanbuljs/schema': 0.1.3
             glob: 7.2.3
             minimatch: 3.1.2
      +    dev: true
       
      -  text-hex@1.0.0: {}
      +  /text-hex@1.0.0:
      +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
       
      -  text-table@0.2.0: {}
      +  /text-table@0.2.0:
      +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
       
      -  textextensions@5.16.0: {}
      +  /textextensions@5.16.0:
      +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
      +    engines: {node: '>=0.8'}
       
      -  thenify-all@1.6.0:
      +  /thenify-all@1.6.0:
      +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
      +    engines: {node: '>=0.8'}
           dependencies:
             thenify: 3.3.1
      +    dev: true
       
      -  thenify@3.3.1:
      +  /thenify@3.3.1:
      +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
           dependencies:
             any-promise: 1.3.0
      +    dev: true
       
      -  throttle-debounce@3.0.1: {}
      +  /throttle-debounce@3.0.1:
      +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
      +    engines: {node: '>=10'}
      +    dev: false
       
      -  through2@4.0.2:
      +  /through2@4.0.2:
      +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
           dependencies:
             readable-stream: 3.6.2
       
      -  through@2.3.8: {}
      +  /through@2.3.8:
      +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
       
      -  thunky@1.1.0: {}
      +  /thunky@1.1.0:
      +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
       
      -  tightrope@0.1.0: {}
      +  /tightrope@0.1.0:
      +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
      +    engines: {node: '>=14'}
      +    dev: true
       
      -  tiny-invariant@1.3.3: {}
      +  /tiny-invariant@1.3.3:
      +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
      +    dev: false
       
      -  tiny-warning@1.0.3: {}
      +  /tiny-warning@1.0.3:
      +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
      +    dev: false
       
      -  tinycolor2@1.6.0: {}
      +  /tinycolor2@1.6.0:
      +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
      +    dev: false
       
      -  tmp@0.0.33:
      +  /tmp@0.0.33:
      +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
      +    engines: {node: '>=0.6.0'}
           dependencies:
             os-tmpdir: 1.0.2
       
      -  tmpl@1.0.5: {}
      +  /tmpl@1.0.5:
      +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
      +    dev: true
       
      -  to-fast-properties@2.0.0: {}
      +  /to-fast-properties@2.0.0:
      +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
      +    engines: {node: '>=4'}
       
      -  to-regex-range@5.0.1:
      +  /to-regex-range@5.0.1:
      +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
      +    engines: {node: '>=8.0'}
           dependencies:
             is-number: 7.0.0
       
      -  toggle-selection@1.0.6: {}
      +  /toggle-selection@1.0.6:
      +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
      +    dev: false
       
      -  toidentifier@1.0.1: {}
      +  /toidentifier@1.0.1:
      +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
      +    engines: {node: '>=0.6'}
       
      -  totalist@3.0.1: {}
      +  /totalist@3.0.1:
      +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
      +    engines: {node: '>=6'}
      +    dev: false
       
      -  tough-cookie@4.1.3:
      +  /tough-cookie@4.1.3:
      +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
      +    engines: {node: '>=6'}
           dependencies:
             psl: 1.9.0
             punycode: 2.3.1
             universalify: 0.2.0
             url-parse: 1.5.10
      +    dev: true
       
      -  tr46@0.0.3: {}
      +  /tr46@0.0.3:
      +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
       
      -  tr46@3.0.0:
      +  /tr46@3.0.0:
      +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
      +    engines: {node: '>=12'}
           dependencies:
             punycode: 2.3.1
      +    dev: true
       
      -  treeverse@1.0.4: {}
      +  /treeverse@1.0.4:
      +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
       
      -  trie-search@2.0.0:
      +  /trie-search@2.0.0:
      +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
           dependencies:
             hasharray: 1.1.2
      +    dev: false
       
      -  trim-lines@3.0.1: {}
      +  /trim-lines@3.0.1:
      +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
       
      -  trim-newlines@4.1.1: {}
      +  /trim-newlines@4.1.1:
      +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  triple-beam@1.4.1: {}
      +  /triple-beam@1.4.1:
      +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
      +    engines: {node: '>= 14.0.0'}
       
      -  trough@2.2.0: {}
      +  /trough@2.2.0:
      +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
       
      -  ts-api-utils@1.3.0(typescript@5.4.3):
      +  /ts-api-utils@1.3.0(typescript@5.4.3):
      +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
      +    engines: {node: '>=16'}
      +    peerDependencies:
      +      typescript: '>=4.2.0'
           dependencies:
             typescript: 5.4.3
      +    dev: true
       
      -  ts-easing@0.2.0: {}
      +  /ts-easing@0.2.0:
      +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
      +    dev: false
       
      -  ts-interface-checker@0.1.13: {}
      +  /ts-interface-checker@0.1.13:
      +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
      +    dev: true
       
      -  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
      +  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
      +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
      +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      '@babel/core': '>=7.0.0-beta.0 <8'
      +      '@jest/types': ^29.0.0
      +      babel-jest: ^29.0.0
      +      esbuild: '*'
      +      jest: ^29.0.0
      +      typescript: '>=4.3 <6'
      +    peerDependenciesMeta:
      +      '@babel/core':
      +        optional: true
      +      '@jest/types':
      +        optional: true
      +      babel-jest:
      +        optional: true
      +      esbuild:
      +        optional: true
           dependencies:
             '@babel/core': 7.24.3
             bs-logger: 0.2.6
      @@ -20272,8 +16618,14 @@ snapshots:
             semver: 7.6.0
             typescript: 5.4.3
             yargs-parser: 21.1.1
      +    dev: true
       
      -  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
      +  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
      +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
      +    engines: {node: '>=12.0.0'}
      +    peerDependencies:
      +      typescript: '*'
      +      webpack: ^5.0.0
           dependencies:
             chalk: 4.1.2
             enhanced-resolve: 5.16.0
      @@ -20282,8 +16634,21 @@ snapshots:
             source-map: 0.7.4
             typescript: 5.4.3
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: true
       
      -  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
      +  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
      +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
      +    hasBin: true
      +    peerDependencies:
      +      '@swc/core': '>=1.2.50'
      +      '@swc/wasm': '>=1.2.50'
      +      '@types/node': '*'
      +      typescript: '>=2.7'
      +    peerDependenciesMeta:
      +      '@swc/core':
      +        optional: true
      +      '@swc/wasm':
      +        optional: true
           dependencies:
             '@cspotcode/source-map-support': 0.8.1
             '@tsconfig/node10': 1.0.10
      @@ -20300,19 +16665,27 @@ snapshots:
             typescript: 5.4.3
             v8-compile-cache-lib: 3.0.1
             yn: 3.1.1
      +    dev: true
       
      -  ts-toolbelt@9.6.0: {}
      +  /ts-toolbelt@9.6.0:
      +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
      +    dev: true
       
      -  tsconfig-paths@3.15.0:
      +  /tsconfig-paths@3.15.0:
      +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
           dependencies:
             '@types/json5': 0.0.29
             json5: 1.0.2
             minimist: 1.2.8
             strip-bom: 3.0.0
      +    dev: true
       
      -  tslib@2.6.2: {}
      +  /tslib@2.6.2:
      +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
       
      -  tuf-js@1.1.7:
      +  /tuf-js@1.1.7:
      +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             '@tufjs/models': 1.0.4
             debug: 4.3.4(supports-color@8.1.1)
      @@ -20320,46 +16693,77 @@ snapshots:
           transitivePeerDependencies:
             - supports-color
       
      -  type-check@0.4.0:
      +  /type-check@0.4.0:
      +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             prelude-ls: 1.2.1
       
      -  type-detect@4.0.8: {}
      +  /type-detect@4.0.8:
      +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
      +    engines: {node: '>=4'}
      +    dev: true
       
      -  type-fest@0.20.2: {}
      +  /type-fest@0.20.2:
      +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
      +    engines: {node: '>=10'}
       
      -  type-fest@0.21.3: {}
      +  /type-fest@0.21.3:
      +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
      +    engines: {node: '>=10'}
       
      -  type-fest@0.6.0: {}
      +  /type-fest@0.6.0:
      +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
      +    engines: {node: '>=8'}
       
      -  type-fest@0.8.1: {}
      +  /type-fest@0.8.1:
      +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
      +    engines: {node: '>=8'}
       
      -  type-fest@1.4.0: {}
      +  /type-fest@1.4.0:
      +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
      +    engines: {node: '>=10'}
       
      -  type-fest@2.19.0: {}
      +  /type-fest@2.19.0:
      +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
      +    engines: {node: '>=12.20'}
      +    dev: false
       
      -  type-fest@4.14.0: {}
      +  /type-fest@4.14.0:
      +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
      +    engines: {node: '>=16'}
      +    dev: false
       
      -  type-is@1.6.18:
      +  /type-is@1.6.18:
      +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
      +    engines: {node: '>= 0.6'}
           dependencies:
             media-typer: 0.3.0
             mime-types: 2.1.35
       
      -  typed-array-buffer@1.0.2:
      +  /typed-array-buffer@1.0.2:
      +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-typed-array: 1.1.13
      +    dev: true
       
      -  typed-array-byte-length@1.0.1:
      +  /typed-array-byte-length@1.0.1:
      +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             for-each: 0.3.3
             gopd: 1.0.1
             has-proto: 1.0.3
             is-typed-array: 1.1.13
      +    dev: true
       
      -  typed-array-byte-offset@1.0.2:
      +  /typed-array-byte-offset@1.0.2:
      +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             available-typed-arrays: 1.0.7
             call-bind: 1.0.7
      @@ -20367,8 +16771,11 @@ snapshots:
             gopd: 1.0.1
             has-proto: 1.0.3
             is-typed-array: 1.1.13
      +    dev: true
       
      -  typed-array-length@1.0.6:
      +  /typed-array-length@1.0.6:
      +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             call-bind: 1.0.7
             for-each: 0.3.3
      @@ -20376,34 +16783,53 @@ snapshots:
             has-proto: 1.0.3
             is-typed-array: 1.1.13
             possible-typed-array-names: 1.0.0
      +    dev: true
       
      -  typedarray-to-buffer@3.1.5:
      +  /typedarray-to-buffer@3.1.5:
      +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
           dependencies:
             is-typedarray: 1.0.0
       
      -  typescript@5.4.3: {}
      +  /typescript@5.4.3:
      +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
      +    engines: {node: '>=14.17'}
      +    hasBin: true
       
      -  unbox-primitive@1.0.2:
      +  /unbox-primitive@1.0.2:
      +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
           dependencies:
             call-bind: 1.0.7
             has-bigints: 1.0.2
             has-symbols: 1.0.3
             which-boxed-primitive: 1.0.2
      +    dev: true
       
      -  unicode-canonical-property-names-ecmascript@2.0.0: {}
      +  /unicode-canonical-property-names-ecmascript@2.0.0:
      +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
      +    engines: {node: '>=4'}
       
      -  unicode-emoji-modifier-base@1.0.0: {}
      +  /unicode-emoji-modifier-base@1.0.0:
      +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
      +    engines: {node: '>=4'}
      +    dev: false
       
      -  unicode-match-property-ecmascript@2.0.0:
      +  /unicode-match-property-ecmascript@2.0.0:
      +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
      +    engines: {node: '>=4'}
           dependencies:
             unicode-canonical-property-names-ecmascript: 2.0.0
             unicode-property-aliases-ecmascript: 2.1.0
       
      -  unicode-match-property-value-ecmascript@2.1.0: {}
      +  /unicode-match-property-value-ecmascript@2.1.0:
      +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
      +    engines: {node: '>=4'}
       
      -  unicode-property-aliases-ecmascript@2.1.0: {}
      +  /unicode-property-aliases-ecmascript@2.1.0:
      +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
      +    engines: {node: '>=4'}
       
      -  unified@11.0.4:
      +  /unified@11.0.4:
      +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
           dependencies:
             '@types/unist': 3.0.2
             bail: 2.0.2
      @@ -20413,91 +16839,133 @@ snapshots:
             trough: 2.2.0
             vfile: 6.0.1
       
      -  union@0.5.0:
      +  /union@0.5.0:
      +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
      +    engines: {node: '>= 0.8.0'}
           dependencies:
             qs: 6.12.0
      +    dev: true
       
      -  unique-filename@1.1.1:
      +  /unique-filename@1.1.1:
      +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
           dependencies:
             unique-slug: 2.0.2
       
      -  unique-filename@2.0.1:
      +  /unique-filename@2.0.1:
      +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             unique-slug: 3.0.0
       
      -  unique-filename@3.0.0:
      +  /unique-filename@3.0.0:
      +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             unique-slug: 4.0.0
       
      -  unique-slug@2.0.2:
      +  /unique-slug@2.0.2:
      +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
           dependencies:
             imurmurhash: 0.1.4
       
      -  unique-slug@3.0.0:
      +  /unique-slug@3.0.0:
      +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             imurmurhash: 0.1.4
       
      -  unique-slug@4.0.0:
      +  /unique-slug@4.0.0:
      +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             imurmurhash: 0.1.4
       
      -  unique-string@2.0.0:
      +  /unique-string@2.0.0:
      +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
      +    engines: {node: '>=8'}
           dependencies:
             crypto-random-string: 2.0.0
      +    dev: true
       
      -  unique-string@3.0.0:
      +  /unique-string@3.0.0:
      +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
      +    engines: {node: '>=12'}
           dependencies:
             crypto-random-string: 4.0.0
      +    dev: false
       
      -  unist-util-is@6.0.0:
      +  /unist-util-is@6.0.0:
      +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  unist-util-position-from-estree@2.0.0:
      +  /unist-util-position-from-estree@2.0.0:
      +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  unist-util-position@5.0.0:
      +  /unist-util-position@5.0.0:
      +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  unist-util-remove-position@5.0.0:
      +  /unist-util-remove-position@5.0.0:
      +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
           dependencies:
             '@types/unist': 3.0.2
             unist-util-visit: 5.0.0
       
      -  unist-util-stringify-position@4.0.0:
      +  /unist-util-stringify-position@4.0.0:
      +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
           dependencies:
             '@types/unist': 3.0.2
       
      -  unist-util-visit-parents@6.0.1:
      +  /unist-util-visit-parents@6.0.1:
      +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
           dependencies:
             '@types/unist': 3.0.2
             unist-util-is: 6.0.0
       
      -  unist-util-visit@5.0.0:
      +  /unist-util-visit@5.0.0:
      +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
           dependencies:
             '@types/unist': 3.0.2
             unist-util-is: 6.0.0
             unist-util-visit-parents: 6.0.1
       
      -  universal-user-agent@6.0.1: {}
      +  /universal-user-agent@6.0.1:
      +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
       
      -  universalify@0.2.0: {}
      +  /universalify@0.2.0:
      +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
      +    engines: {node: '>= 4.0.0'}
      +    dev: true
       
      -  universalify@2.0.1: {}
      +  /universalify@2.0.1:
      +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
      +    engines: {node: '>= 10.0.0'}
       
      -  unpipe@1.0.0: {}
      +  /unpipe@1.0.0:
      +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
      +    engines: {node: '>= 0.8'}
       
      -  untildify@4.0.0: {}
      +  /untildify@4.0.0:
      +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
      +    engines: {node: '>=8'}
       
      -  update-browserslist-db@1.0.13(browserslist@4.23.0):
      +  /update-browserslist-db@1.0.13(browserslist@4.23.0):
      +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
      +    hasBin: true
      +    peerDependencies:
      +      browserslist: '>= 4.21.0'
           dependencies:
             browserslist: 4.23.0
             escalade: 3.1.2
             picocolors: 1.0.0
       
      -  update-notifier@6.0.2:
      +  /update-notifier@6.0.2:
      +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
      +    engines: {node: '>=14.16'}
           dependencies:
             boxen: 7.1.1
             chalk: 5.3.0
      @@ -20513,80 +16981,125 @@ snapshots:
             semver: 7.6.0
             semver-diff: 4.0.0
             xdg-basedir: 5.1.0
      +    dev: false
       
      -  uri-js@4.4.1:
      +  /uri-js@4.4.1:
      +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
           dependencies:
             punycode: 2.3.1
       
      -  url-join@4.0.1: {}
      +  /url-join@4.0.1:
      +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
      +    dev: true
       
      -  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
      +  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
      +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      file-loader: '*'
      +      webpack: ^4.0.0 || ^5.0.0
      +    peerDependenciesMeta:
      +      file-loader:
      +        optional: true
           dependencies:
             file-loader: 6.2.0(webpack@5.91.0)
             loader-utils: 2.0.4
             mime-types: 2.1.35
             schema-utils: 3.3.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  url-parse@1.5.10:
      +  /url-parse@1.5.10:
      +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
           dependencies:
             querystringify: 2.2.0
             requires-port: 1.0.0
      +    dev: true
       
      -  util-deprecate@1.0.2: {}
      +  /util-deprecate@1.0.2:
      +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
       
      -  utila@0.4.0: {}
      +  /utila@0.4.0:
      +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
       
      -  utility-types@3.11.0: {}
      +  /utility-types@3.11.0:
      +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
      +    engines: {node: '>= 4'}
       
      -  utils-merge@1.0.1: {}
      +  /utils-merge@1.0.1:
      +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
      +    engines: {node: '>= 0.4.0'}
       
      -  uuid@8.3.2: {}
      +  /uuid@8.3.2:
      +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
      +    hasBin: true
       
      -  uuid@9.0.1: {}
      +  /uuid@9.0.1:
      +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
      +    hasBin: true
      +    dev: false
       
      -  v8-compile-cache-lib@3.0.1: {}
      +  /v8-compile-cache-lib@3.0.1:
      +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
      +    dev: true
       
      -  v8-to-istanbul@9.2.0:
      +  /v8-to-istanbul@9.2.0:
      +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
      +    engines: {node: '>=10.12.0'}
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             '@types/istanbul-lib-coverage': 2.0.6
             convert-source-map: 2.0.0
      +    dev: true
       
      -  validate-npm-package-license@3.0.4:
      +  /validate-npm-package-license@3.0.4:
      +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
           dependencies:
             spdx-correct: 3.2.0
             spdx-expression-parse: 3.0.1
       
      -  validate-npm-package-name@3.0.0:
      +  /validate-npm-package-name@3.0.0:
      +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
           dependencies:
             builtins: 1.0.3
       
      -  validate-npm-package-name@5.0.0:
      +  /validate-npm-package-name@5.0.0:
      +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             builtins: 5.0.1
       
      -  value-equal@1.0.1: {}
      +  /value-equal@1.0.1:
      +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
      +    dev: false
       
      -  vary@1.1.2: {}
      +  /vary@1.1.2:
      +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
      +    engines: {node: '>= 0.8'}
       
      -  vfile-location@5.0.2:
      +  /vfile-location@5.0.2:
      +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
           dependencies:
             '@types/unist': 3.0.2
             vfile: 6.0.1
      +    dev: false
       
      -  vfile-message@4.0.2:
      +  /vfile-message@4.0.2:
      +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
           dependencies:
             '@types/unist': 3.0.2
             unist-util-stringify-position: 4.0.0
       
      -  vfile@6.0.1:
      +  /vfile@6.0.1:
      +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
           dependencies:
             '@types/unist': 3.0.2
             unist-util-stringify-position: 4.0.0
             vfile-message: 4.0.2
       
      -  vinyl-file@3.0.0:
      +  /vinyl-file@3.0.0:
      +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
      +    engines: {node: '>=4'}
           dependencies:
             graceful-fs: 4.2.11
             pify: 2.3.0
      @@ -20594,7 +17107,9 @@ snapshots:
             strip-bom-stream: 2.0.0
             vinyl: 2.2.1
       
      -  vinyl@2.2.1:
      +  /vinyl@2.2.1:
      +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
      +    engines: {node: '>= 0.10'}
           dependencies:
             clone: 2.1.2
             clone-buffer: 1.0.0
      @@ -20603,38 +17118,58 @@ snapshots:
             remove-trailing-separator: 1.1.0
             replace-ext: 1.0.1
       
      -  vscode-uri@3.0.8: {}
      +  /vscode-uri@3.0.8:
      +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
       
      -  w3c-xmlserializer@4.0.0:
      +  /w3c-xmlserializer@4.0.0:
      +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
      +    engines: {node: '>=14'}
           dependencies:
             xml-name-validator: 4.0.0
      +    dev: true
       
      -  walk-up-path@1.0.0: {}
      +  /walk-up-path@1.0.0:
      +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
       
      -  walker@1.0.8:
      +  /walker@1.0.8:
      +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
           dependencies:
             makeerror: 1.0.12
      +    dev: true
       
      -  watchpack@2.4.1:
      +  /watchpack@2.4.1:
      +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
      +    engines: {node: '>=10.13.0'}
           dependencies:
             glob-to-regexp: 0.4.1
             graceful-fs: 4.2.11
       
      -  wbuf@1.7.3:
      +  /wbuf@1.7.3:
      +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
           dependencies:
             minimalistic-assert: 1.0.1
       
      -  wcwidth@1.0.1:
      +  /wcwidth@1.0.1:
      +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
           dependencies:
             defaults: 1.0.4
       
      -  web-namespaces@2.0.1: {}
      +  /web-namespaces@2.0.1:
      +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
      +    dev: false
       
      -  webidl-conversions@3.0.1: {}
      +  /webidl-conversions@3.0.1:
      +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
       
      -  webidl-conversions@7.0.0: {}
      +  /webidl-conversions@7.0.0:
      +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  webpack-bundle-analyzer@4.10.1:
      +  /webpack-bundle-analyzer@4.10.1:
      +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
      +    engines: {node: '>= 10.13.0'}
      +    hasBin: true
           dependencies:
             '@discoveryjs/json-ext': 0.5.7
             acorn: 8.11.3
      @@ -20652,8 +17187,24 @@ snapshots:
           transitivePeerDependencies:
             - bufferutil
             - utf-8-validate
      +    dev: false
       
      -  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
      +  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
      +    engines: {node: '>=14.15.0'}
      +    hasBin: true
      +    peerDependencies:
      +      '@webpack-cli/generators': '*'
      +      webpack: 5.x.x
      +      webpack-bundle-analyzer: '*'
      +      webpack-dev-server: '*'
      +    peerDependenciesMeta:
      +      '@webpack-cli/generators':
      +        optional: true
      +      webpack-bundle-analyzer:
      +        optional: true
      +      webpack-dev-server:
      +        optional: true
           dependencies:
             '@discoveryjs/json-ext': 0.5.7
             '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
      @@ -20672,7 +17223,11 @@ snapshots:
             webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
             webpack-merge: 5.10.0
       
      -  webpack-dev-middleware@5.3.4(webpack@5.91.0):
      +  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
      +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^4.0.0 || ^5.0.0
           dependencies:
             colorette: 2.0.20
             memfs: 3.5.3
      @@ -20680,8 +17235,16 @@ snapshots:
             range-parser: 1.2.1
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  webpack-dev-middleware@7.1.1(webpack@5.91.0):
      +  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
      +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
      +    engines: {node: '>= 18.12.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
           dependencies:
             colorette: 2.0.20
             memfs: 4.8.0
      @@ -20691,7 +17254,18 @@ snapshots:
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  webpack-dev-server@4.15.2(webpack@5.91.0):
      +  /webpack-dev-server@4.15.2(webpack@5.91.0):
      +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
      +    engines: {node: '>= 12.13.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack: ^4.37.0 || ^5.0.0
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
      +      webpack-cli:
      +        optional: true
           dependencies:
             '@types/bonjour': 3.5.13
             '@types/connect-history-api-fallback': 1.5.4
      @@ -20729,8 +17303,20 @@ snapshots:
             - debug
             - supports-color
             - utf-8-validate
      +    dev: false
       
      -  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
      +  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
      +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
      +    engines: {node: '>= 18.12.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack: ^5.0.0
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
      +      webpack-cli:
      +        optional: true
           dependencies:
             '@types/bonjour': 3.5.13
             '@types/connect-history-api-fallback': 1.5.4
      @@ -20770,15 +17356,27 @@ snapshots:
             - supports-color
             - utf-8-validate
       
      -  webpack-merge@5.10.0:
      +  /webpack-merge@5.10.0:
      +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
      +    engines: {node: '>=10.0.0'}
           dependencies:
             clone-deep: 4.0.1
             flat: 5.0.2
             wildcard: 2.0.1
       
      -  webpack-sources@3.2.3: {}
      +  /webpack-sources@3.2.3:
      +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
      +    engines: {node: '>=10.13.0'}
       
      -  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
      +  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
      +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
      +    engines: {node: '>=10.13.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack-cli:
      +        optional: true
           dependencies:
             '@types/eslint-scope': 3.7.7
             '@types/estree': 1.0.5
      @@ -20810,47 +17408,70 @@ snapshots:
             - esbuild
             - uglify-js
       
      -  webpackbar@5.0.2(webpack@5.91.0):
      +  /webpackbar@5.0.2(webpack@5.91.0):
      +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      webpack: 3 || 4 || 5
           dependencies:
             chalk: 4.1.2
             consola: 2.15.3
             pretty-time: 1.1.0
             std-env: 3.7.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      +    dev: false
       
      -  websocket-driver@0.7.4:
      +  /websocket-driver@0.7.4:
      +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
      +    engines: {node: '>=0.8.0'}
           dependencies:
             http-parser-js: 0.5.8
             safe-buffer: 5.2.1
             websocket-extensions: 0.1.4
       
      -  websocket-extensions@0.1.4: {}
      +  /websocket-extensions@0.1.4:
      +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
      +    engines: {node: '>=0.8.0'}
       
      -  whatwg-encoding@2.0.0:
      +  /whatwg-encoding@2.0.0:
      +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
      +    engines: {node: '>=12'}
           dependencies:
             iconv-lite: 0.6.3
      +    dev: true
       
      -  whatwg-mimetype@3.0.0: {}
      +  /whatwg-mimetype@3.0.0:
      +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  whatwg-url@11.0.0:
      +  /whatwg-url@11.0.0:
      +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
      +    engines: {node: '>=12'}
           dependencies:
             tr46: 3.0.0
             webidl-conversions: 7.0.0
      +    dev: true
       
      -  whatwg-url@5.0.0:
      +  /whatwg-url@5.0.0:
      +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
           dependencies:
             tr46: 0.0.3
             webidl-conversions: 3.0.1
       
      -  which-boxed-primitive@1.0.2:
      +  /which-boxed-primitive@1.0.2:
      +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
           dependencies:
             is-bigint: 1.0.4
             is-boolean-object: 1.1.2
             is-number-object: 1.0.7
             is-string: 1.0.7
             is-symbol: 1.0.4
      +    dev: true
       
      -  which-builtin-type@1.1.3:
      +  /which-builtin-type@1.1.3:
      +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             function.prototype.name: 1.1.6
             has-tostringtag: 1.0.2
      @@ -20864,60 +17485,90 @@ snapshots:
             which-boxed-primitive: 1.0.2
             which-collection: 1.0.2
             which-typed-array: 1.1.15
      +    dev: true
       
      -  which-collection@1.0.2:
      +  /which-collection@1.0.2:
      +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             is-map: 2.0.3
             is-set: 2.0.3
             is-weakmap: 2.0.2
             is-weakset: 2.0.3
      +    dev: true
       
      -  which-pm@2.0.0:
      +  /which-pm@2.0.0:
      +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
      +    engines: {node: '>=8.15'}
           dependencies:
             load-yaml-file: 0.2.0
             path-exists: 4.0.0
       
      -  which-typed-array@1.1.15:
      +  /which-typed-array@1.1.15:
      +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
      +    engines: {node: '>= 0.4'}
           dependencies:
             available-typed-arrays: 1.0.7
             call-bind: 1.0.7
             for-each: 0.3.3
             gopd: 1.0.1
             has-tostringtag: 1.0.2
      +    dev: true
       
      -  which@1.3.1:
      +  /which@1.3.1:
      +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
      +    hasBin: true
           dependencies:
             isexe: 2.0.0
      +    dev: false
       
      -  which@2.0.2:
      +  /which@2.0.2:
      +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
      +    engines: {node: '>= 8'}
      +    hasBin: true
           dependencies:
             isexe: 2.0.0
       
      -  which@3.0.1:
      +  /which@3.0.1:
      +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
           dependencies:
             isexe: 2.0.0
       
      -  wide-align@1.1.5:
      +  /wide-align@1.1.5:
      +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
           dependencies:
             string-width: 4.2.3
       
      -  widest-line@3.1.0:
      +  /widest-line@3.1.0:
      +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
      +    engines: {node: '>=8'}
           dependencies:
             string-width: 4.2.3
      +    dev: true
       
      -  widest-line@4.0.1:
      +  /widest-line@4.0.1:
      +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
      +    engines: {node: '>=12'}
           dependencies:
             string-width: 5.1.2
      +    dev: false
       
      -  wildcard@2.0.1: {}
      +  /wildcard@2.0.1:
      +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
       
      -  winston-transport@4.7.0:
      +  /winston-transport@4.7.0:
      +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
      +    engines: {node: '>= 12.0.0'}
           dependencies:
             logform: 2.6.0
             readable-stream: 3.6.2
             triple-beam: 1.4.1
       
      -  winston@3.11.0:
      +  /winston@3.11.0:
      +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
      +    engines: {node: '>= 12.0.0'}
           dependencies:
             '@colors/colors': 1.6.0
             '@dabh/diagnostics': 2.0.3
      @@ -20931,95 +17582,173 @@ snapshots:
             triple-beam: 1.4.1
             winston-transport: 4.7.0
       
      -  workerpool@6.2.1: {}
      +  /workerpool@6.2.1:
      +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
      +    dev: true
       
      -  wrap-ansi@6.2.0:
      +  /wrap-ansi@6.2.0:
      +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
      +    engines: {node: '>=8'}
           dependencies:
             ansi-styles: 4.3.0
             string-width: 4.2.3
             strip-ansi: 6.0.1
       
      -  wrap-ansi@7.0.0:
      +  /wrap-ansi@7.0.0:
      +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
      +    engines: {node: '>=10'}
           dependencies:
             ansi-styles: 4.3.0
             string-width: 4.2.3
             strip-ansi: 6.0.1
       
      -  wrap-ansi@8.1.0:
      +  /wrap-ansi@8.1.0:
      +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
      +    engines: {node: '>=12'}
           dependencies:
             ansi-styles: 6.2.1
             string-width: 5.1.2
             strip-ansi: 7.1.0
       
      -  wrappy@1.0.2: {}
      +  /wrappy@1.0.2:
      +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
       
      -  write-file-atomic@3.0.3:
      +  /write-file-atomic@3.0.3:
      +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
           dependencies:
             imurmurhash: 0.1.4
             is-typedarray: 1.0.0
             signal-exit: 3.0.7
             typedarray-to-buffer: 3.1.5
       
      -  write-file-atomic@4.0.2:
      +  /write-file-atomic@4.0.2:
      +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
           dependencies:
             imurmurhash: 0.1.4
             signal-exit: 3.0.7
       
      -  write-file-atomic@5.0.1:
      +  /write-file-atomic@5.0.1:
      +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
           dependencies:
             imurmurhash: 0.1.4
             signal-exit: 4.1.0
       
      -  write-json-file@5.0.0:
      +  /write-json-file@5.0.0:
      +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
           dependencies:
             detect-indent: 7.0.1
             is-plain-obj: 4.1.0
             sort-keys: 5.0.0
             write-file-atomic: 3.0.3
      +    dev: true
       
      -  write-yaml-file@5.0.0:
      +  /write-yaml-file@5.0.0:
      +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
      +    engines: {node: '>=16.14'}
           dependencies:
             js-yaml: 4.1.0
             write-file-atomic: 5.0.1
      +    dev: true
       
      -  ws@7.5.9: {}
      +  /ws@7.5.9:
      +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
      +    engines: {node: '>=8.3.0'}
      +    peerDependencies:
      +      bufferutil: ^4.0.1
      +      utf-8-validate: ^5.0.2
      +    peerDependenciesMeta:
      +      bufferutil:
      +        optional: true
      +      utf-8-validate:
      +        optional: true
      +    dev: false
       
      -  ws@8.16.0: {}
      +  /ws@8.16.0:
      +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
      +    engines: {node: '>=10.0.0'}
      +    peerDependencies:
      +      bufferutil: ^4.0.1
      +      utf-8-validate: '>=5.0.2'
      +    peerDependenciesMeta:
      +      bufferutil:
      +        optional: true
      +      utf-8-validate:
      +        optional: true
       
      -  xdg-basedir@5.1.0: {}
      +  /xdg-basedir@5.1.0:
      +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
      +    engines: {node: '>=12'}
      +    dev: false
       
      -  xml-js@1.6.11:
      +  /xml-js@1.6.11:
      +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
      +    hasBin: true
           dependencies:
             sax: 1.3.0
      +    dev: false
       
      -  xml-name-validator@4.0.0: {}
      +  /xml-name-validator@4.0.0:
      +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  xmlchars@2.2.0: {}
      +  /xmlchars@2.2.0:
      +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
      +    dev: true
       
      -  y18n@5.0.8: {}
      +  /y18n@5.0.8:
      +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  yallist@3.1.1: {}
      +  /yallist@3.1.1:
      +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
       
      -  yallist@4.0.0: {}
      +  /yallist@4.0.0:
      +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
       
      -  yaml@1.10.2: {}
      +  /yaml@1.10.2:
      +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
      +    engines: {node: '>= 6'}
      +    dev: false
       
      -  yaml@2.4.1: {}
      +  /yaml@2.4.1:
      +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
      +    engines: {node: '>= 14'}
      +    hasBin: true
      +    dev: true
       
      -  yargs-parser@20.2.4: {}
      +  /yargs-parser@20.2.4:
      +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  yargs-parser@20.2.9: {}
      +  /yargs-parser@20.2.9:
      +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
      +    engines: {node: '>=10'}
      +    dev: true
       
      -  yargs-parser@21.1.1: {}
      +  /yargs-parser@21.1.1:
      +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
      +    engines: {node: '>=12'}
      +    dev: true
       
      -  yargs-unparser@2.0.0:
      +  /yargs-unparser@2.0.0:
      +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
      +    engines: {node: '>=10'}
           dependencies:
             camelcase: 6.3.0
             decamelize: 4.0.0
             flat: 5.0.2
             is-plain-obj: 2.1.0
      +    dev: true
       
      -  yargs@16.2.0:
      +  /yargs@16.2.0:
      +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
      +    engines: {node: '>=10'}
           dependencies:
             cliui: 7.0.4
             escalade: 3.1.2
      @@ -21028,8 +17757,11 @@ snapshots:
             string-width: 4.2.3
             y18n: 5.0.8
             yargs-parser: 20.2.9
      +    dev: true
       
      -  yargs@17.7.2:
      +  /yargs@17.7.2:
      +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
      +    engines: {node: '>=12'}
           dependencies:
             cliui: 8.0.1
             escalade: 3.1.2
      @@ -21038,8 +17770,12 @@ snapshots:
             string-width: 4.2.3
             y18n: 5.0.8
             yargs-parser: 21.1.1
      +    dev: true
       
      -  yeoman-environment@3.19.3:
      +  /yeoman-environment@3.19.3:
      +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
      +    engines: {node: '>=12.10.0'}
      +    hasBin: true
           dependencies:
             '@npmcli/arborist': 4.3.1
             are-we-there-yet: 2.0.0
      @@ -21082,7 +17818,14 @@ snapshots:
             - bluebird
             - supports-color
       
      -  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
      +  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
      +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
      +    engines: {node: '>=12.10.0'}
      +    peerDependencies:
      +      yeoman-environment: ^3.2.0
      +    peerDependenciesMeta:
      +      yeoman-environment:
      +        optional: true
           dependencies:
             chalk: 4.1.2
             dargs: 7.0.0
      @@ -21106,12 +17849,23 @@ snapshots:
             - mem-fs
             - supports-color
       
      -  yn@3.1.1: {}
      +  /yn@3.1.1:
      +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
      +    engines: {node: '>=6'}
      +    dev: true
       
      -  yocto-queue@0.1.0: {}
      +  /yocto-queue@0.1.0:
      +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
      +    engines: {node: '>=10'}
       
      -  yocto-queue@1.0.0: {}
      +  /yocto-queue@1.0.0:
      +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
      +    engines: {node: '>=12.20'}
      +    dev: false
       
      -  zod@3.22.4: {}
      +  /zod@3.22.4:
      +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
      +    dev: false
       
      -  zwitch@2.0.4: {}
      +  /zwitch@2.0.4:
      +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
      diff --git a/test/all.vimspec b/test/all.vimspec
      deleted file mode 100644
      index 9ab1b07d44..0000000000
      --- a/test/all.vimspec
      +++ /dev/null
      @@ -1,22 +0,0 @@
      -" delete this file because it's not needed anymore
      -
      -let s:suite = themis#suite('Test for my plugin')
      -let s:assert = themis#helper('assert')
      -
      -" The function name(my_test_1) will be a test name.
      -function s:suite.my_test_1()
      -    call s:assert.equals(3, 1 + 2)
      -endfunction
      -
      -function s:suite.my_test_2()
      -    call s:assert.equals(8, 2 * 4)
      -endfunction
      -
      -"function s:suite.cursorless_test()
      -"    let s:result = TestHarnessRun()
      -"    call s:assert.equals(s:result, 0)
      -"endfunction
      -
      -"function s:suite.my_fail_test()
      -"    call s:assert.fail('this will fail')
      -"endfunction
      
      From 39b0bd9f8aa35bdbb18c4f0fcb8d9dccec34c2bb Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:06:38 +0100
      Subject: [PATCH 480/504] test
      
      ---
       .github/workflows/test.yml                    | 58 ++++++++-----------
       .../src/launchNeovimAndRunTests.ts            |  6 +-
       .../src/launchVscodeAndRunTests.ts            |  4 +-
       .../src/scripts/runNeovimTestsCI.ts           | 16 ++---
       scripts/install-neovim-dependencies.sh        |  7 +++
       5 files changed, 43 insertions(+), 48 deletions(-)
       create mode 100755 scripts/install-neovim-dependencies.sh
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 88aff3faa1..6a57c7adb9 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -15,27 +15,19 @@ jobs:
           strategy:
             fail-fast: false
             matrix:
      -        # XXX: target all platforms?
               # os: [macos-latest, ubuntu-latest, windows-latest]
               os: [ubuntu-latest]
      -        # XXX: target all app versions?
      -        # NB: stable: is 0.10.0 and only has nvim.exe (no nvim-qt.exe)
      -        # NB: nightly: is NVIM v0.11.0-dev-25+g0e187fe03 in May 2024
      -        # app_version: [v0.9.5, v0.10.0, stable, nightly]
      +        # app_version: [stable]
               app_version: [v0.10.0]
      -        # XXX: target all node versions?
      -        # NB: error while downloading v16.20.2, v17.9.1 on macos/ubuntu at least
      -        # node_version: [v18.20.2, v19.9.0, v20.13.1, v21.7.3, v22.2.0]
      -        node_version: [v18.20.2]
      -        # XXX: there is no concept of "legacy" in neovim but maybe "v0.9.5" would fit the bill?
               # include:
               #   - os: ubuntu-latest
      +        #     # app_version: v0.9.5
               #     app_version: legacy
           runs-on: ${{ matrix.os }}
           env:
             APP_VERSION: ${{ matrix.app_version }}
      -      APP_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps
      -      APP_LOGS_DIR: ${{ github.workspace }}/artifacts/logs
      +      VSCODE_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps
      +      VSCODE_LOGS_DIR: ${{ github.workspace }}/artifacts/logs
             CURSORLESS_REPO_ROOT: ${{ github.workspace }}
           steps:
             - uses: actions/checkout@v4
      @@ -43,12 +35,10 @@ jobs:
             # XXX - run over different node versions: https://nodejs.org/en/about/previous-releases
             - uses: actions/setup-node@v4
               with:
      -          # XXX - use same v20.12.1 taken from .nvmrc file?
                 # node-version-file: .nvmrc
      -          # node-version: v21.7.1
      -          node-version: ${{ matrix.node_version }}
      +          node-version: v18.20.2
                 cache: pnpm
      -      - run: mkdir -p "${{ env.APP_CRASH_DIR }}" "${{ env.APP_LOGS_DIR }}"
      +      - run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}"
               shell: bash
             - run: pnpm --color install
             - run: pnpm --color compile
      @@ -65,25 +55,23 @@ jobs:
               if: runner.os == 'Windows'
             - run: find /Users/runner/work/cursorless/cursorless/dist
               if: runner.os == 'macOS'
      -      # XXX - is there a better way to execute all these commands?
             - name: Install cursorless.nvim dependencies
               run: npm install -g neovim@5.1.0
      -      - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      -        if: runner.os == 'Linux'
      -      - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      -        if: runner.os == 'Linux'
      -      - run: git clone https://github.com/MunifTanjim/nui.nvim /home/runner/nui.nvim
      -        if: runner.os == 'Linux'
      -      - run: git clone https://github.com/folke/noice.nvim /home/runner/noice.nvim
      -        if: runner.os == 'Linux'
      -      - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      -        if: runner.os == 'Windows'
      -      - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      -        if: runner.os == 'Windows'
      -      - run: git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner//BufOnly.vim
      -        if: runner.os == 'macOS'
      -      - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner//talon.nvim
      -        if: runner.os == 'macOS'
      +      - run: bash -x scripts/install-neovim-dependencies.sh
      +      # XXX - is there a better way to execute all these commands?
      +      # put them into a install-neovim-dependencies.sh script and rely on the HOME env variable
      +      # - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      +      #   if: runner.os == 'Linux'
      +      # - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      +      #   if: runner.os == 'Linux'
      +      # - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      +      #   if: runner.os == 'Windows'
      +      # - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      +      #   if: runner.os == 'Windows'
      +      # - run: git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner/BufOnly.vim
      +      #   if: runner.os == 'macOS'
      +      # - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner/talon.nvim
      +      #   if: runner.os == 'macOS'
             - name: Install Neovim
               uses: rhysd/action-setup-vim@v1
               id: vim
      @@ -122,11 +110,11 @@ jobs:
               uses: actions/upload-artifact@v4
               with:
                 name: logs
      -          path: ${{ env.APP_LOGS_DIR }}
      +          path: ${{ env.VSCODE_LOGS_DIR }}
               if: failure()
             - name: Archive dumps
               uses: actions/upload-artifact@v4
               with:
                 name: dumps
      -          path: ${{ env.APP_CRASH_DIR }}
      +          path: ${{ env.VSCODE_CRASH_DIR }}
               if: failure()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 735e109818..214b43cfbc 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -32,7 +32,7 @@ function delay(ms: number) {
        *  - Linux: /home/runner/work/cursorless/cursorless
        *  - OS X: /Users/runner/work/cursorless/cursorless
        */
      -export async function launchNeovimAndRunTests(extensionTestsPath: string) {
      +export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
         console.error(
           "CED: launchNeovimAndRunTests() (error to simulate always logging even if logging level is set to error)",
         );
      @@ -45,8 +45,8 @@ export async function launchNeovimAndRunTests(extensionTestsPath: string) {
           //   "packages/cursorless-vscode/dist",
           // );
       
      -    const crashDir = getEnvironmentVariableStrict("APP_CRASH_DIR");
      -    const logsDir = getEnvironmentVariableStrict("APP_LOGS_DIR");
      +    const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR");
      +    const logsDir = getEnvironmentVariableStrict("VSCODE_LOGS_DIR");
           const useLegacyVscode =
             getEnvironmentVariableStrict("APP_VERSION") === "legacy";
       
      diff --git a/packages/test-harness/src/launchVscodeAndRunTests.ts b/packages/test-harness/src/launchVscodeAndRunTests.ts
      index e03d7eb9e5..651fcb3728 100644
      --- a/packages/test-harness/src/launchVscodeAndRunTests.ts
      +++ b/packages/test-harness/src/launchVscodeAndRunTests.ts
      @@ -27,8 +27,8 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) {
             "packages/cursorless-vscode/dist",
           );
       
      -    const crashDir = getEnvironmentVariableStrict("APP_CRASH_DIR");
      -    const logsDir = getEnvironmentVariableStrict("APP_LOGS_DIR");
      +    const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR");
      +    const logsDir = getEnvironmentVariableStrict("VSCODE_LOGS_DIR");
           const useLegacyVscode =
             getEnvironmentVariableStrict("APP_VERSION") === "legacy";
       
      diff --git a/packages/test-harness/src/scripts/runNeovimTestsCI.ts b/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      index 0e9ab6747a..a82ef56b16 100644
      --- a/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      +++ b/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      @@ -2,18 +2,18 @@
        * This file can be run from node to run neovim tests in CI
        */
       
      -import { getCursorlessRepoRoot } from "@cursorless/common";
      -import * as path from "path";
      +// import { getCursorlessRepoRoot } from "@cursorless/common";
      +// import * as path from "path";
       import { launchNeovimAndRunTests } from "../launchNeovimAndRunTests";
       
       (async () => {
         // Note that we run all extension tests, including unit tests, in neovim, even though
         // unit tests could be run separately.
      -  const extensionTestsPath = path.resolve(
      -    getCursorlessRepoRoot(),
      -    // "packages/test-harness/dist/extensionTestsNeovim.cjs",
      -    "packages/test-harness/out/index.cjs",
      -  );
      +  // const extensionTestsPath = path.resolve(
      +  //   getCursorlessRepoRoot(),
      +  //   // "packages/test-harness/dist/extensionTestsNeovim.cjs",
      +  //   "packages/test-harness/out/index.cjs",
      +  // );
       
      -  await launchNeovimAndRunTests(extensionTestsPath);
      +  await launchNeovimAndRunTests(/*extensionTestsPath*/);
       })();
      diff --git a/scripts/install-neovim-dependencies.sh b/scripts/install-neovim-dependencies.sh
      new file mode 100755
      index 0000000000..15e712c5db
      --- /dev/null
      +++ b/scripts/install-neovim-dependencies.sh
      @@ -0,0 +1,7 @@
      +#!/usr/bin/env bash
      +set -euo pipefail
      +
      +echo CURSORLESS_REPO_ROOT=${CURSORLESS_REPO_ROOT}
      +
      +git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      +git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      
      From 6e2054375ebc41f95cfec3d19b5a29c317dfb07c Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:13:38 +0100
      Subject: [PATCH 481/504] test
      
      ---
       .github/workflows/test.yml             | 2 +-
       scripts/install-neovim-dependencies.sh | 8 +++++---
       2 files changed, 6 insertions(+), 4 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 6a57c7adb9..d525febd58 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -29,10 +29,10 @@ jobs:
             VSCODE_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps
             VSCODE_LOGS_DIR: ${{ github.workspace }}/artifacts/logs
             CURSORLESS_REPO_ROOT: ${{ github.workspace }}
      +      HOME_ROOT: ${{ github.workspace }}/../../../
           steps:
             - uses: actions/checkout@v4
             - run: corepack enable
      -      # XXX - run over different node versions: https://nodejs.org/en/about/previous-releases
             - uses: actions/setup-node@v4
               with:
                 # node-version-file: .nvmrc
      diff --git a/scripts/install-neovim-dependencies.sh b/scripts/install-neovim-dependencies.sh
      index 15e712c5db..0ed7948fc1 100755
      --- a/scripts/install-neovim-dependencies.sh
      +++ b/scripts/install-neovim-dependencies.sh
      @@ -1,7 +1,9 @@
       #!/usr/bin/env bash
       set -euo pipefail
       
      -echo CURSORLESS_REPO_ROOT=${CURSORLESS_REPO_ROOT}
      +echo HOME_ROOT=${HOME_ROOT}
       
      -git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      -git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      +# git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      +# git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      +git clone https://github.com/vim-scripts/BufOnly.vim ${HOME_ROOT}/BufOnly.vim
      +git clone https://github.com/hands-free-vim/talon.nvim ${HOME_ROOT}/talon.nvim
      
      From 148f0a4bd3a369b662fe156372f63bf19917532b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:19:27 +0100
      Subject: [PATCH 482/504] test
      
      ---
       .../test-harness/src/config/init_linux.lua    | 51 ++++++-------------
       1 file changed, 15 insertions(+), 36 deletions(-)
      
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      index f8148108d3..7b19dd5f16 100644
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ b/packages/test-harness/src/config/init_linux.lua
      @@ -1,42 +1,21 @@
       -- print('CED: loading BufOnly.vim')
      -vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
      +-- read paths from the environment variable?
      +-- XXX - so I only have one config file for all platforms
      +-- HOME and append the relative paths
       
      --- print('CED: modifying runtimepath')
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
      -vim.o.runtimepath = vim.o.runtimepath
      -  .. ','
      -  .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
      +local home_root = os.getenv('HOME_ROOT')
      +local repo_root = os.getenv('CURSORLESS_REPO_ROOT')
       
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/nui.nvim'
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/noice.nvim'
      +-- vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
      +vim.cmd('source ' .. home_root .. '/BufOnly.vim/plugin/BufOnly.vim')
       
      --- print('CED: loading talon.vim')
      -require('talon').setup()
      +-- print('CED: modifying runtimepath')
      +-- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
      +-- vim.o.runtimepath = vim.o.runtimepath
      +--   .. ','
      +--   .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. home_root .. '/talon.nvim'
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. repo_root .. '/dist/cursorless.nvim'
       
      --- print('CED: loading cursorless.vim')
      +require('talon').setup()
       require('cursorless').setup()
      -
      --- attempt to avoid the "Press ENTER or type command to continue" prompt
      --- local key = vim.api.nvim_replace_termcodes('\\', true, false, true)
      --- vim.api.nvim_feedkeys(key, 'n', false)
      --- local enter = vim.api.nvim_replace_termcodes('', true, true, true)
      --- vim.fn.feedkeys(enter)
      -
      --- require('noice').setup({
      ---   lsp = {
      ---     -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      ---     override = {
      ---       ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      ---       ['vim.lsp.util.stylize_markdown'] = true,
      ---       ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      ---     },
      ---   },
      ---   -- you can enable a preset for easier configuration
      ---   presets = {
      ---     bottom_search = true, -- use a classic bottom cmdline for search
      ---     command_palette = true, -- position the cmdline and popupmenu together
      ---     long_message_to_split = true, -- long messages will be sent to a split
      ---     inc_rename = false, -- enables an input dialog for inc-rename.nvim
      ---     lsp_doc_border = false, -- add a border to hover docs and signature help
      ---   },
      --- })
      
      From 72b2382f4df33d281363b5a4843c0ccce7544186 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:34:03 +0100
      Subject: [PATCH 483/504] test
      
      ---
       packages/test-harness/src/index.ts            | 17 ++++-
       .../src/launchNeovimAndRunTests.ts            | 62 ++++++++++++-------
       2 files changed, 53 insertions(+), 26 deletions(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index 4ba1733938..fc7b1bb764 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -14,25 +14,36 @@ import type { NeovimClient, NvimPlugin } from "neovim";
       export async function run(plugin: NvimPlugin): Promise {
         // https://github.com/mochajs/mocha/issues/3780#issuecomment-583064196
         // https://stackoverflow.com/questions/69427050/how-to-extend-globalthis-global-type
      +  const client = plugin.nvim as NeovimClient;
         (global as any).additionalParameters = {
      -    client: plugin.nvim as NeovimClient,
      +    client: client,
         };
         let code = 0;
         try {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
      +    code = 0;
      +    console.log(`==== TESTS FINISHED: code: ${code}`);
      +    console.log(`index.ts: killing neovim with q!`);
      +    await client.command(":q!");
         } catch (error) {
           console.log(`==== TESTS ERROR:`);
           console.error(error);
           code = 1;
      +    console.log(`==== TESTS FINISHED: code: ${code}`);
      +    console.log(`index.ts: killing neovim with q!`);
      +    // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
      +    await client.command(":cq!");
         }
      -  console.log(`==== TESTS FINISHED: code: ${code}`);
      -  // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
         // XXX: kill neovim with -1 code ":cq!" command?
         // console.error("CED: random error message to make sure stuff is logged");
         // XXX: kill neovim with 0 code ":q!" command?
       
         // XXX: launchNeovimAndRunTests.ts will catch that error code
      +
      +  // kill nvim for both CI and local tests
      +  // console.log(`index.ts: killing neovim with code ${code}`);
      +  // process.exit(code);
       }
       
       /**
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 214b43cfbc..1f5b319c2c 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -53,7 +53,7 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
           // NB: We include the exact version here instead of in `test.yml` so that
           // we don't have to update the branch protection rules every time we bump
           // the legacy VSCode version.
      -    // const vscodeVersion = useLegacyVscode ? "1.75.1" : "stable";
      +    //const neovimVersion = useLegacyVscode ? "v0.9.5" : "stable";
           // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
           // const [cli, ...args] =
           //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
      @@ -161,16 +161,16 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
       */
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
      -    // const nvim_process = cp.spawn(cli, [`-V25${vimLogName}`], {
      +    // const subprocess = cp.spawn(cli, [`-V25${vimLogName}`], {
           // https://neovim.io/doc/user/starting.html#--headless
           // XXX - this works and avoids hanging on CI but we can't see the nvim logs
      -    const nvim_process = cp.spawn(cli, [`--headless`], {
      +    const subprocess = cp.spawn(cli, [`--headless`], {
             // xxx on CI, this does not work and does not show any of the vim logs
             // stdio: "inherit",
             // shell: true,
             // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
             // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
      -      // const nvim_process = cp.spawn(cli, [`-Es`], {
      +      // const subprocess = cp.spawn(cli, [`-Es`], {
             env: {
               ...process.env,
               // "NVIM_NODE_HOST_DEBUG": "1",
      @@ -184,9 +184,9 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      -    nvim_process.unref();
      +    // subprocess.unref();
       
      -    console.log(`pid: ${nvim_process.pid}`);
      +    console.log(`pid: ${subprocess.pid}`);
       
           await delay(5000);
       
      @@ -243,25 +243,41 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
           });
           console.log("tail neovim test started");
       
      -    let count = 0;
      -    const stepSeconds = 10;
      -    while (true) {
      -      count += stepSeconds;
      -      await delay(stepSeconds * 1000);
      -      if (done) {
      -        console.log("done here, exiting loop");
      -        break;
      -      }
      -      // exit if tests take more than 5 minutes
      -      if (count > 5 * 60) {
      -        console.log("timeout, exiting loop");
      -        break;
      -      }
      -    }
      +    // let count = 0;
      +    // const stepSeconds = 10;
      +    // while (true) {
      +    //   count += stepSeconds;
      +    //   await delay(stepSeconds * 1000);
      +    //   if (done) {
      +    //     console.log("done here, exiting loop");
      +    //     break;
      +    //   }
      +    //   // exit if tests take more than 5 minutes
      +    //   if (count > 5 * 60) {
      +    //     console.log("timeout, exiting loop");
      +    //     break;
      +    //   }
      +    // }
           // await delay(600000);
       
      -    nvim_process.kill("SIGTERM");
      -    console.log(`killed: ${nvim_process.killed}`);
      +    console.log("waiting for tests to finish ...");
      +    await new Promise((resolve, reject) => {
      +      subprocess.on("error", reject);
      +      subprocess.on("exit", (code) => {
      +        console.log(`exit: Process returned code ${code}`);
      +        if (code === 0) {
      +          resolve();
      +        } else {
      +          reject(new Error(`Process returned code ${code}`));
      +        }
      +      });
      +    });
      +    console.log("tests finished");
      +
      +    // subprocess.kill("SIGTERM");
      +    console.log(`killed: ${subprocess.killed}`);
      +
      +    // steal code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
       
           tailTest.unwatch();
       
      
      From 40524e01d3ee34faf0da718e235f93257bd19438 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:43:33 +0100
      Subject: [PATCH 484/504] fix?
      
      ---
       .../src/launchNeovimAndRunTests.ts            | 62 +++++++++----------
       1 file changed, 30 insertions(+), 32 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 1f5b319c2c..1a6f738837 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -184,7 +184,7 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
           console.log("nvim started done");
       
           // do not wait for nvim to exit to avoid any blocking
      -    // subprocess.unref();
      +    subprocess.unref();
       
           console.log(`pid: ${subprocess.pid}`);
       
      @@ -243,42 +243,40 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
           });
           console.log("tail neovim test started");
       
      -    // let count = 0;
      -    // const stepSeconds = 10;
      -    // while (true) {
      -    //   count += stepSeconds;
      -    //   await delay(stepSeconds * 1000);
      -    //   if (done) {
      -    //     console.log("done here, exiting loop");
      -    //     break;
      -    //   }
      -    //   // exit if tests take more than 5 minutes
      -    //   if (count > 5 * 60) {
      -    //     console.log("timeout, exiting loop");
      -    //     break;
      -    //   }
      -    // }
      -    // await delay(600000);
      -
           console.log("waiting for tests to finish ...");
      -    await new Promise((resolve, reject) => {
      -      subprocess.on("error", reject);
      -      subprocess.on("exit", (code) => {
      -        console.log(`exit: Process returned code ${code}`);
      -        if (code === 0) {
      -          resolve();
      -        } else {
      -          reject(new Error(`Process returned code ${code}`));
      -        }
      -      });
      -    });
      +    let count = 0;
      +    const stepSeconds = 10;
      +    while (true) {
      +      count += stepSeconds;
      +      await delay(stepSeconds * 1000);
      +      if (done) {
      +        console.log("done here, exiting loop");
      +        break;
      +      }
      +      // exit if tests take more than 5 minutes
      +      if (count > 5 * 60) {
      +        console.log("timeout, exiting loop");
      +        break;
      +      }
      +    }
      +
      +    // code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
      +    // await new Promise((resolve, reject) => {
      +    //   subprocess.on("error", reject);
      +    //   subprocess.on("exit", (code) => {
      +    //     console.log(`exit: Process returned code ${code}`);
      +    //     if (code === 0) {
      +    //       resolve();
      +    //     } else {
      +    //       reject(new Error(`Process returned code ${code}`));
      +    //     }
      +    //   });
      +    // });
           console.log("tests finished");
       
      -    // subprocess.kill("SIGTERM");
      +    subprocess.kill("SIGTERM");
           console.log(`killed: ${subprocess.killed}`);
       
      -    // steal code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
      -
           tailTest.unwatch();
       
           //await delay(10000);
      
      From 8026f8f1374bf65e92cdd5d8cc8607ac1e5ce7fd Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 21:50:33 +0100
      Subject: [PATCH 485/504] revert
      
      ---
       packages/test-harness/src/index.ts | 17 +++++------------
       1 file changed, 5 insertions(+), 12 deletions(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index fc7b1bb764..cea9c0ca74 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -22,28 +22,21 @@ export async function run(plugin: NvimPlugin): Promise {
         try {
           //await runAllTests(TestType.neovim, TestType.unit);
           await runAllTests(TestType.neovim);
      -    code = 0;
           console.log(`==== TESTS FINISHED: code: ${code}`);
      -    console.log(`index.ts: killing neovim with q!`);
      -    await client.command(":q!");
      +    // console.log(`index.ts: killing neovim with q!`);
      +    // await client.command(":q!");
         } catch (error) {
           console.log(`==== TESTS ERROR:`);
           console.error(error);
           code = 1;
           console.log(`==== TESTS FINISHED: code: ${code}`);
      -    console.log(`index.ts: killing neovim with q!`);
           // https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
      -    await client.command(":cq!");
      +    // console.log(`index.ts: killing neovim with cq!`);
      +    // await client.command(":cq!");
         }
      -  // XXX: kill neovim with -1 code ":cq!" command?
      -  // console.error("CED: random error message to make sure stuff is logged");
      -  // XXX: kill neovim with 0 code ":q!" command?
      +  // XXX: launchNeovimAndRunTests.ts will catch neovim exit code on CI
       
      -  // XXX: launchNeovimAndRunTests.ts will catch that error code
      -
      -  // kill nvim for both CI and local tests
         // console.log(`index.ts: killing neovim with code ${code}`);
      -  // process.exit(code);
       }
       
       /**
      
      From eb05dcfabeb718569acd93e32333b7dcad8c35a2 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 22:02:48 +0100
      Subject: [PATCH 486/504] t
      
      ---
       .github/workflows/test.yml                          |  4 ++--
       .../test-harness/src/launchNeovimAndRunTests.ts     | 13 ++-----------
       packages/test-harness/src/runAllTests.ts            |  1 -
       .../test-harness/src/scripts/runNeovimTestsCI.ts    | 10 +---------
       4 files changed, 5 insertions(+), 23 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index d525febd58..ac985ce4ab 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,8 +17,8 @@ jobs:
             matrix:
               # os: [macos-latest, ubuntu-latest, windows-latest]
               os: [ubuntu-latest]
      -        # app_version: [stable]
      -        app_version: [v0.10.0]
      +        app_version: [stable]
      +        # app_version: [v0.10.0]
               # include:
               #   - os: ubuntu-latest
               #     # app_version: v0.9.5
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 1a6f738837..eec4484f9a 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -32,19 +32,9 @@ function delay(ms: number) {
        *  - Linux: /home/runner/work/cursorless/cursorless
        *  - OS X: /Users/runner/work/cursorless/cursorless
        */
      -export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
      -  console.error(
      -    "CED: launchNeovimAndRunTests() (error to simulate always logging even if logging level is set to error)",
      -  );
      +export async function launchNeovimAndRunTests() {
         let code = 1; // failure
         try {
      -    // The folder containing the Extension Manifest package.json
      -    // Passed to `--extensionDevelopmentPath`
      -    // const extensionDevelopmentPath = path.resolve(
      -    //   getCursorlessRepoRoot(),
      -    //   "packages/cursorless-vscode/dist",
      -    // );
      -
           const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR");
           const logsDir = getEnvironmentVariableStrict("VSCODE_LOGS_DIR");
           const useLegacyVscode =
      @@ -260,6 +250,7 @@ export async function launchNeovimAndRunTests(/*extensionTestsPath: string*/) {
             }
           }
       
      +    // XXX - code to replace above code, needs more testing
           // code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
           // await new Promise((resolve, reject) => {
           //   subprocess.on("error", reject);
      diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
      index 29a28ab6d4..c812253118 100644
      --- a/packages/test-harness/src/runAllTests.ts
      +++ b/packages/test-harness/src/runAllTests.ts
      @@ -22,7 +22,6 @@ export enum TestType {
       }
       
       export function runAllTests(...types: TestType[]) {
      -  console.log("CED: runAllTests()");
         return runTestsInDir(
           path.join(getCursorlessRepoRoot(), "packages"),
           (files) =>
      diff --git a/packages/test-harness/src/scripts/runNeovimTestsCI.ts b/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      index a82ef56b16..3d2bbb5359 100644
      --- a/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      +++ b/packages/test-harness/src/scripts/runNeovimTestsCI.ts
      @@ -2,18 +2,10 @@
        * This file can be run from node to run neovim tests in CI
        */
       
      -// import { getCursorlessRepoRoot } from "@cursorless/common";
      -// import * as path from "path";
       import { launchNeovimAndRunTests } from "../launchNeovimAndRunTests";
       
       (async () => {
         // Note that we run all extension tests, including unit tests, in neovim, even though
         // unit tests could be run separately.
      -  // const extensionTestsPath = path.resolve(
      -  //   getCursorlessRepoRoot(),
      -  //   // "packages/test-harness/dist/extensionTestsNeovim.cjs",
      -  //   "packages/test-harness/out/index.cjs",
      -  // );
      -
      -  await launchNeovimAndRunTests(/*extensionTestsPath*/);
      +  await launchNeovimAndRunTests();
       })();
      
      From 696dd8c4ed20efd285f59cc4e7ebcd6837743720 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 22:05:31 +0100
      Subject: [PATCH 487/504] t
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index ac985ce4ab..0d01642a05 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -15,8 +15,8 @@ jobs:
           strategy:
             fail-fast: false
             matrix:
      -        # os: [macos-latest, ubuntu-latest, windows-latest]
      -        os: [ubuntu-latest]
      +        os: [macos-latest, ubuntu-latest, windows-latest]
      +        # os: [ubuntu-latest]
               app_version: [stable]
               # app_version: [v0.10.0]
               # include:
      
      From 5dd27c7bf356f335bdb8dabaab34831d8da92931 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Tue, 21 May 2024 22:12:19 +0100
      Subject: [PATCH 488/504] test
      
      ---
       .../src/launchNeovimAndRunTests.ts            | 37 ++++++++++---------
       1 file changed, 19 insertions(+), 18 deletions(-)
      
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index eec4484f9a..7fbfaa8c45 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -130,25 +130,26 @@ export async function launchNeovimAndRunTests() {
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -    /*
      -    const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      -      encoding: "utf-8",
      -      stdio: "inherit",
      -      env: {
      -        ...process.env,
      -        // "NVIM_NODE_HOST_DEBUG": "1",
      -        NVIM_NODE_LOG_FILE: logName,
      -        NVIM_NODE_LOG_LEVEL: "debug",
      -        CURSORLESS_MODE: "test",
      -      },
      -    });
      -    console.log(`status: ${status}`);
      -    console.log(`signal: ${signal}`);
      -    console.log(`error: ${error}`);
       
      -    console.log(`Exiting early`);
      -    process.exit(0);
      -*/
      +    if (process.platform === "darwin" || process.platform === "win32") {
      +      const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      +        encoding: "utf-8",
      +        stdio: "inherit",
      +        env: {
      +          ...process.env,
      +          // "NVIM_NODE_HOST_DEBUG": "1",
      +          NVIM_NODE_LOG_FILE: logName,
      +          NVIM_NODE_LOG_LEVEL: "debug",
      +          CURSORLESS_MODE: "test",
      +        },
      +      });
      +      console.log(`status: ${status}`);
      +      console.log(`signal: ${signal}`);
      +      console.log(`error: ${error}`);
      +
      +      console.log(`Exiting early`);
      +      process.exit(0);
      +    }
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
           // const subprocess = cp.spawn(cli, [`-V25${vimLogName}`], {
      
      From f90864c227ff8457389ec2406726eb5ad566b678 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 05:54:18 +0100
      Subject: [PATCH 489/504] test
      
      ---
       .github/workflows/test.yml             | 5 ++---
       scripts/install-neovim-dependencies.sh | 2 ++
       2 files changed, 4 insertions(+), 3 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 0d01642a05..6c158c19fa 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,7 +17,8 @@ jobs:
             matrix:
               os: [macos-latest, ubuntu-latest, windows-latest]
               # os: [ubuntu-latest]
      -        app_version: [stable]
      +        # app_version: [stable]
      +        app_version: [v0.9.5]
               # app_version: [v0.10.0]
               # include:
               #   - os: ubuntu-latest
      @@ -55,8 +56,6 @@ jobs:
               if: runner.os == 'Windows'
             - run: find /Users/runner/work/cursorless/cursorless/dist
               if: runner.os == 'macOS'
      -      - name: Install cursorless.nvim dependencies
      -        run: npm install -g neovim@5.1.0
             - run: bash -x scripts/install-neovim-dependencies.sh
             # XXX - is there a better way to execute all these commands?
             # put them into a install-neovim-dependencies.sh script and rely on the HOME env variable
      diff --git a/scripts/install-neovim-dependencies.sh b/scripts/install-neovim-dependencies.sh
      index 0ed7948fc1..cbbe024b80 100755
      --- a/scripts/install-neovim-dependencies.sh
      +++ b/scripts/install-neovim-dependencies.sh
      @@ -1,6 +1,8 @@
       #!/usr/bin/env bash
       set -euo pipefail
       
      +npm install -g neovim@5.1.0
      +
       echo HOME_ROOT=${HOME_ROOT}
       
       # git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      
      From 2c1c8881a07ce5dad923bbfcd0e67adb8e0d49c4 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:09:45 +0100
      Subject: [PATCH 490/504] t
      
      ---
       .github/workflows/test.yml                         | 14 --------------
       .../test-harness/src/launchNeovimAndRunTests.ts    |  6 ++++--
       scripts/install-neovim-dependencies.sh             |  7 +++++++
       3 files changed, 11 insertions(+), 16 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 6c158c19fa..ad926a1334 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -57,20 +57,6 @@ jobs:
             - run: find /Users/runner/work/cursorless/cursorless/dist
               if: runner.os == 'macOS'
             - run: bash -x scripts/install-neovim-dependencies.sh
      -      # XXX - is there a better way to execute all these commands?
      -      # put them into a install-neovim-dependencies.sh script and rely on the HOME env variable
      -      # - run: git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
      -      #   if: runner.os == 'Linux'
      -      # - run: git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      -      #   if: runner.os == 'Linux'
      -      # - run: git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      -      #   if: runner.os == 'Windows'
      -      # - run: git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      -      #   if: runner.os == 'Windows'
      -      # - run: git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner/BufOnly.vim
      -      #   if: runner.os == 'macOS'
      -      # - run: git clone https://github.com/hands-free-vim/talon.nvim /Users/runner/talon.nvim
      -      #   if: runner.os == 'macOS'
             - name: Install Neovim
               uses: rhysd/action-setup-vim@v1
               id: vim
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 7fbfaa8c45..a4b68d2988 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -131,8 +131,10 @@ export async function launchNeovimAndRunTests() {
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
       
      -    if (process.platform === "darwin" || process.platform === "win32") {
      -      const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      +    // if (process.platform === "darwin" || process.platform === "win32") {
      +    if (process.platform === "win32") {
      +      // const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      +      const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
               encoding: "utf-8",
               stdio: "inherit",
               env: {
      diff --git a/scripts/install-neovim-dependencies.sh b/scripts/install-neovim-dependencies.sh
      index cbbe024b80..9fcaf1466c 100755
      --- a/scripts/install-neovim-dependencies.sh
      +++ b/scripts/install-neovim-dependencies.sh
      @@ -7,5 +7,12 @@ echo HOME_ROOT=${HOME_ROOT}
       
       # git clone https://github.com/vim-scripts/BufOnly.vim /home/runner/BufOnly.vim
       # git clone https://github.com/hands-free-vim/talon.nvim /home/runner/talon.nvim
      +
      +# git clone https://github.com/vim-scripts/BufOnly.vim C:\Users\runneradmin\BufOnly.vim
      +# git clone https://github.com/hands-free-vim/talon.nvim C:\Users\runneradmin\talon.nvim
      +
      +# git clone https://github.com/vim-scripts/BufOnly.vim /Users/runner/BufOnly.vim
      +# git clone https://github.com/hands-free-vim/talon.nvim /Users/runner/talon.nvim
      +
       git clone https://github.com/vim-scripts/BufOnly.vim ${HOME_ROOT}/BufOnly.vim
       git clone https://github.com/hands-free-vim/talon.nvim ${HOME_ROOT}/talon.nvim
      
      From 21aeb65582931afb33d9776ba44e0a0e169dacdb Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:20:22 +0100
      Subject: [PATCH 491/504] test
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index ad926a1334..3b7cf8cbd7 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -18,8 +18,8 @@ jobs:
               os: [macos-latest, ubuntu-latest, windows-latest]
               # os: [ubuntu-latest]
               # app_version: [stable]
      -        app_version: [v0.9.5]
      -        # app_version: [v0.10.0]
      +        # app_version: [v0.9.5]
      +        app_version: [v0.10.0]
               # include:
               #   - os: ubuntu-latest
               #     # app_version: v0.9.5
      
      From 488ed519ea893b797de8da3a7dd33de989124d6b Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:25:20 +0100
      Subject: [PATCH 492/504] t
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 3b7cf8cbd7..57294194e2 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -36,8 +36,8 @@ jobs:
             - run: corepack enable
             - uses: actions/setup-node@v4
               with:
      -          # node-version-file: .nvmrc
      -          node-version: v18.20.2
      +          node-version-file: .nvmrc
      +          # node-version: v18.20.2
                 cache: pnpm
             - run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}"
               shell: bash
      
      From 4e56933c63a081e971c880a07911216eae3fde0a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:32:39 +0100
      Subject: [PATCH 493/504] t
      
      ---
       .github/workflows/test.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 57294194e2..37ab4d6669 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,9 +17,9 @@ jobs:
             matrix:
               os: [macos-latest, ubuntu-latest, windows-latest]
               # os: [ubuntu-latest]
      -        # app_version: [stable]
      +        app_version: [stable]
               # app_version: [v0.9.5]
      -        app_version: [v0.10.0]
      +        # app_version: [v0.10.0]
               # include:
               #   - os: ubuntu-latest
               #     # app_version: v0.9.5
      
      From 7a9128f95805c50b8128df52479c380bac329701 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:37:54 +0100
      Subject: [PATCH 494/504] t
      
      ---
       .github/workflows/test.yml                           | 4 +---
       .pre-commit-config.yaml                              | 1 +
       packages/test-harness/src/launchNeovimAndRunTests.ts | 4 ++--
       3 files changed, 4 insertions(+), 5 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 37ab4d6669..ff8ffe4ce5 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -37,7 +37,6 @@ jobs:
             - uses: actions/setup-node@v4
               with:
                 node-version-file: .nvmrc
      -          # node-version: v18.20.2
                 cache: pnpm
             - run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}"
               shell: bash
      @@ -57,8 +56,7 @@ jobs:
             - run: find /Users/runner/work/cursorless/cursorless/dist
               if: runner.os == 'macOS'
             - run: bash -x scripts/install-neovim-dependencies.sh
      -      - name: Install Neovim
      -        uses: rhysd/action-setup-vim@v1
      +      - uses: rhysd/action-setup-vim@v1
               id: vim
               with:
                 version: ${{ matrix.app_version }}
      diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
      index b2b08155fe..7a4026fb5b 100644
      --- a/.pre-commit-config.yaml
      +++ b/.pre-commit-config.yaml
      @@ -30,6 +30,7 @@ repos:
             - id: detect-private-key
             - id: end-of-file-fixer
               exclude_types: [svg]
      +        exclude: ^patches/.*\.patch$|\.scope$
             - id: fix-byte-order-marker
             - id: forbid-submodules
             - id: mixed-line-ending
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index a4b68d2988..b5ae3af592 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -131,8 +131,8 @@ export async function launchNeovimAndRunTests() {
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
       
      -    // if (process.platform === "darwin" || process.platform === "win32") {
      -    if (process.platform === "win32") {
      +    if (process.platform === "darwin" || process.platform === "win32") {
      +      // if (process.platform === "win32") {
             // const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
               encoding: "utf-8",
      
      From 734f7c31bbc63a04aae10b04bdbb4a690c684c0c Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 06:51:10 +0100
      Subject: [PATCH 495/504] t
      
      ---
       .github/workflows/test.yml                     |  4 ++--
       cursorless.nvim/lua/cursorless/init.lua        | 18 ++++--------------
       .../src/launchNeovimAndRunTests.ts             |  4 ++--
       3 files changed, 8 insertions(+), 18 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index ff8ffe4ce5..076ab69321 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -17,8 +17,8 @@ jobs:
             matrix:
               os: [macos-latest, ubuntu-latest, windows-latest]
               # os: [ubuntu-latest]
      -        app_version: [stable]
      -        # app_version: [v0.9.5]
      +        # app_version: [stable]
      +        app_version: [v0.9.5]
               # app_version: [v0.10.0]
               # include:
               #   - os: ubuntu-latest
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 6dad5a04cd..310daf03ef 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -11,21 +11,17 @@ end
       -- in the cursorless-neovim, command-server and neovim-registry extensions
       -- in order to initialize them
       local function load_extensions()
      -  -- print('load_extensions() - before CursorlessLoadExtension')
         vim.api.nvim_call_function('CursorlessLoadExtension', {})
      -  -- print('load_extensions() - before CommandServerLoadExtension')
      -  -- XXX attempt to disable command-server since not needed in CI and may cause issues when loading?
      -  -- vim.api.nvim_call_function('CommandServerLoadExtension', {})
      -  -- print('load_extensions() - after loading extensions')
      +
      +  if os.getenv('CURSORLESS_MODE') ~= 'test' then
      +    vim.api.nvim_call_function('CommandServerLoadExtension', {})
      +  end
       
         if os.getenv('CURSORLESS_MODE') == 'test' then
      -    -- print('load_extensions() - before sleep')
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
           vim.cmd([[sleep 5]])
      -    -- print('load_extensions() - before TestHarnessRun()')
           vim.api.nvim_call_function('TestHarnessRun', {})
      -    -- print('load_extensions() - after TestHarnessRun()')
         end
       end
       
      @@ -71,16 +67,10 @@ local function configure_command_server_shortcut()
       end
       
       local function setup()
      -  -- print('setup() - start')
      -  -- print('setup() - sourcing utils.lua')
         vim.cmd('source ' .. require('cursorless.utils').cursorless_nvim_path() .. '/vim/cursorless.vim')
      -  -- print('setup() - calling register_functions')
         register_functions()
      -  -- print('setup() - calling load_extensions')
         load_extensions()
      -  -- print('setup() - calling configure_command_server_shortcut')
         configure_command_server_shortcut()
      -  -- print('setup() - end')
       end
       
       local M = {
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index b5ae3af592..a4b68d2988 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -131,8 +131,8 @@ export async function launchNeovimAndRunTests() {
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
       
      -    if (process.platform === "darwin" || process.platform === "win32") {
      -      // if (process.platform === "win32") {
      +    // if (process.platform === "darwin" || process.platform === "win32") {
      +    if (process.platform === "win32") {
             // const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
             const { status, signal, error } = cp.spawnSync(cli, [`-V25`], {
               encoding: "utf-8",
      
      From 9ecc33f78f8d647384c18fb94d56403d3f08d90a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:17:28 +0100
      Subject: [PATCH 496/504] t
      
      ---
       .github/workflows/test.yml | 69 ++++++++++++++------------------------
       .gitignore                 |  3 --
       2 files changed, 26 insertions(+), 46 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 076ab69321..da631cc2fc 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -16,14 +16,10 @@ jobs:
             fail-fast: false
             matrix:
               os: [macos-latest, ubuntu-latest, windows-latest]
      -        # os: [ubuntu-latest]
      -        # app_version: [stable]
      -        app_version: [v0.9.5]
      -        # app_version: [v0.10.0]
      -        # include:
      -        #   - os: ubuntu-latest
      -        #     # app_version: v0.9.5
      -        #     app_version: legacy
      +        app_version: [stable]
      +        include:
      +          - os: ubuntu-latest
      +            app_version: legacy
           runs-on: ${{ matrix.os }}
           env:
             APP_VERSION: ${{ matrix.app_version }}
      @@ -43,18 +39,10 @@ jobs:
             - run: pnpm --color install
             - run: pnpm --color compile
             - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
      -      # XXX - restore this once neovim tests work in CI
      -      #- run: xvfb-run -a pnpm --color test
      -      #  if: runner.os == 'Linux'
      -      # - run: pnpm --color test
      -      #   if: runner.os != 'Linux'
      -      # XXX - debugging only, remove once tests work on all platforms
      -      - run: tree /home/runner/work/cursorless/cursorless/dist
      +      - run: xvfb-run -a pnpm --color test
               if: runner.os == 'Linux'
      -      - run: tree /f D:\a\cursorless\cursorless\dist
      -        if: runner.os == 'Windows'
      -      - run: find /Users/runner/work/cursorless/cursorless/dist
      -        if: runner.os == 'macOS'
      +      - run: pnpm --color test
      +        if: runner.os != 'Linux'
             - run: bash -x scripts/install-neovim-dependencies.sh
             - uses: rhysd/action-setup-vim@v1
               id: vim
      @@ -62,33 +50,28 @@ jobs:
                 version: ${{ matrix.app_version }}
                 neovim: true
             - name: Run neovim unit tests using test-harness
      -        run: pnpm -F @cursorless/test-harness testNeovim
      -        if: runner.os != 'Linux'
      -        env:
      -          APP_PATH: ${{ steps.vim.outputs.executable }}
             - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
      -        if: runner.os == 'Linux'
      +        if: runner.os == 'Linux' && matrix.app_version == 'stable'
               env:
                 APP_PATH: ${{ steps.vim.outputs.executable }}
      -      # XXX: restore this once neovim tests work in CI
      -      # - name: Create vscode dist that can be installed locally
      -      #  run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
      -      #  if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      # - name: Test create vsix
      -      #   id: createVsix
      -      #   uses: HaaLeo/publish-vscode-extension@v1
      -      #   with:
      -      #     pat: none
      -      #     packagePath: packages/cursorless-vscode/dist
      -      #     dryRun: true
      -      # - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
      -      #   if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      # - name: Upload vsix
      -      #   uses: actions/upload-artifact@v4
      -      #   if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      #   with:
      -      #     name: vsix
      -      #     path: cursorless-development.vsix
      +      - name: Create vscode dist that can be installed locally
      +        run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
      +        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +      - name: Test create vsix
      +        id: createVsix
      +        uses: HaaLeo/publish-vscode-extension@v1
      +        with:
      +          pat: none
      +          packagePath: packages/cursorless-vscode/dist
      +          dryRun: true
      +      - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
      +        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +      - name: Upload vsix
      +        uses: actions/upload-artifact@v4
      +        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +        with:
      +          name: vsix
      +          path: cursorless-development.vsix
             - name: Archive logs
               uses: actions/upload-artifact@v4
               with:
      diff --git a/.gitignore b/.gitignore
      index 61b3e013ff..df54c22f59 100644
      --- a/.gitignore
      +++ b/.gitignore
      @@ -47,6 +47,3 @@ packages/test-harness/testSubsetGrep.properties
       # neovim symlinks
       cursorless.nvim/node/cursorless-neovim
       cursorless.nvim/node/test-harness
      -
      -temp/
      -vim.log
      
      From afe293b28e71a67e137d591655181e53ee4dec60 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:21:41 +0100
      Subject: [PATCH 497/504] t
      
      ---
       .github/workflows/test.yml                                    | 2 +-
       packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts       | 4 +---
       .../cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts   | 4 ----
       packages/neovim-common/src/testUtil/openNewEditor.ts          | 4 ----
       4 files changed, 2 insertions(+), 12 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index da631cc2fc..bd5b81f966 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -50,7 +50,7 @@ jobs:
                 version: ${{ matrix.app_version }}
                 neovim: true
             - name: Run neovim unit tests using test-harness
      -      - run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
      +        run: xvfb-run -a pnpm -F @cursorless/test-harness testNeovim
               if: runner.os == 'Linux' && matrix.app_version == 'stable'
               env:
                 APP_PATH: ${{ steps.vim.outputs.executable }}
      diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      index ab359d980d..5dbd3b8d8b 100644
      --- a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      +++ b/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
      @@ -17,13 +17,11 @@ let retryCount = -1;
       let previousTestTitle = "";
       
       export function endToEndTestSetup(suite: Mocha.Suite) {
      -  // XXX - disable that for now to avoid it to hang for 10 minutes on CI
      +  // Disable multiple attempts for now to avoid it to hang for 10 minutes on CI
         // suite.timeout("100s");
         // suite.retries(5);
         suite.timeout("10s");
         suite.retries(0);
      -  // suite.timeout("500s");
      -  // suite.retries(0);
       
         let ide: IDE;
         let injectIde: (ide: IDE) => void;
      diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      index aa591a5b6d..f0c3924c14 100644
      --- a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      +++ b/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
      @@ -10,7 +10,6 @@ import {
         TestCaseFixtureLegacy,
         asyncSafety,
         clientSupportsFallback,
      -  // getFixturesPath,
         getRecordedTestPaths,
         omitByDeep,
         serializeTestFixture,
      @@ -89,7 +88,6 @@ async function runTest(
         const fixture = yaml.load(buffer.toString()) as TestCaseFixtureLegacy;
         const excludeFields: ExcludableSnapshotField[] = [];
       
      -  // XXX - restore this
         if (unsupportedFixture(name, fixture)) {
           return suite.ctx.skip();
         }
      @@ -112,7 +110,6 @@ async function runTest(
         const { takeSnapshot, setStoredTarget, commandServerApi } =
           cursorlessApi.testHelpers!;
       
      -  console.debug(`CED: before openNewEditor()`);
         const editor = await openNewEditor(
           client,
           neovimIDE,
      @@ -121,7 +118,6 @@ async function runTest(
             languageId: fixture.languageId,
           },
         );
      -  console.debug(`CED: after openNewEditor()`);
       
         // Override any user settings and make sure tests run with default tabs.
         //editor.options = DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST;
      diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts
      index b0483f9eb3..e3f29e1bf4 100644
      --- a/packages/neovim-common/src/testUtil/openNewEditor.ts
      +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts
      @@ -19,18 +19,14 @@ export async function openNewEditor(
       ): Promise {
         // open a new buffer
         // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file
      -  console.debug(`CED: before :enew`);
         // XXX - this is where it hangs atm after the first command back into lua
         // NOTE: if I comment this, it hangs at the ":BufOnly!" command below
         await client.command(":enew");
      -  console.debug(`CED: after :enew`);
       
         if (!openBeside) {
           // close all the other buffers
           // @see: https://stackoverflow.com/questions/4545275/vim-close-all-buffers-but-this-one
      -    console.debug(`CED: before :BufOnly!`);
           await client.command(":BufOnly!");
      -    console.debug(`CED: after :BufOnly!`);
         }
       
         // standardise newlines so we can easily split the lines
      
      From 88084fd74587d1d3e9ae513c01a55cb4c78a410e Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:27:35 +0100
      Subject: [PATCH 498/504] t
      
      ---
       .github/workflows/test.yml              | 44 ++++++++++++-------------
       packages/neovim-common/src/neovimApi.ts |  4 +--
       2 files changed, 24 insertions(+), 24 deletions(-)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index bd5b81f966..075982bd50 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -39,10 +39,10 @@ jobs:
             - run: pnpm --color install
             - run: pnpm --color compile
             - run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
      -      - run: xvfb-run -a pnpm --color test
      -        if: runner.os == 'Linux'
      -      - run: pnpm --color test
      -        if: runner.os != 'Linux'
      +      # - run: xvfb-run -a pnpm --color test
      +      #   if: runner.os == 'Linux'
      +      # - run: pnpm --color test
      +      #   if: runner.os != 'Linux'
             - run: bash -x scripts/install-neovim-dependencies.sh
             - uses: rhysd/action-setup-vim@v1
               id: vim
      @@ -54,24 +54,24 @@ jobs:
               if: runner.os == 'Linux' && matrix.app_version == 'stable'
               env:
                 APP_PATH: ${{ steps.vim.outputs.executable }}
      -      - name: Create vscode dist that can be installed locally
      -        run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
      -        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      - name: Test create vsix
      -        id: createVsix
      -        uses: HaaLeo/publish-vscode-extension@v1
      -        with:
      -          pat: none
      -          packagePath: packages/cursorless-vscode/dist
      -          dryRun: true
      -      - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
      -        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -      - name: Upload vsix
      -        uses: actions/upload-artifact@v4
      -        if: runner.os == 'Linux' && matrix.app_version == 'stable'
      -        with:
      -          name: vsix
      -          path: cursorless-development.vsix
      +      # - name: Create vscode dist that can be installed locally
      +      #   run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
      +      #   if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +      # - name: Test create vsix
      +      #   id: createVsix
      +      #   uses: HaaLeo/publish-vscode-extension@v1
      +      #   with:
      +      #     pat: none
      +      #     packagePath: packages/cursorless-vscode/dist
      +      #     dryRun: true
      +      # - run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
      +      #   if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +      # - name: Upload vsix
      +      #   uses: actions/upload-artifact@v4
      +      #   if: runner.os == 'Linux' && matrix.app_version == 'stable'
      +      #   with:
      +      #     name: vsix
      +      #     path: cursorless-development.vsix
             - name: Archive logs
               uses: actions/upload-artifact@v4
               with:
      diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts
      index 28f3369df8..26aecb3b07 100644
      --- a/packages/neovim-common/src/neovimApi.ts
      +++ b/packages/neovim-common/src/neovimApi.ts
      @@ -168,6 +168,6 @@ export async function showErrorMessage(
       ): Promise {
         // XXX - commenting to test if this avoids hanging problem in CI?
         // but does not seem to change anything and it still hangs after the ":enew" command
      -  // const luaCode = `vim.notify("${message}")`;
      -  // await client.executeLua(luaCode, []);
      +  const luaCode = `vim.notify("${message}")`;
      +  await client.executeLua(luaCode, []);
       }
      
      From 622b7eb21581ef0a056f241e08411d37f66a416c Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:32:50 +0100
      Subject: [PATCH 499/504] t
      
      ---
       .github/workflows/test.yml | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
      index 075982bd50..d876ffe83d 100644
      --- a/.github/workflows/test.yml
      +++ b/.github/workflows/test.yml
      @@ -45,6 +45,7 @@ jobs:
             #   if: runner.os != 'Linux'
             - run: bash -x scripts/install-neovim-dependencies.sh
             - uses: rhysd/action-setup-vim@v1
      +        if: matrix.app_version != 'legacy'
               id: vim
               with:
                 version: ${{ matrix.app_version }}
      
      From eeb7f3fe968d7dffeb21a3d0df6406863b2f593a Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:42:21 +0100
      Subject: [PATCH 500/504] t
      
      ---
       cursorless.nvim/lua/cursorless/init.lua       |  2 +-
       packages/neovim-common/src/neovimApi.ts       |  2 -
       .../src/testUtil/openNewEditor.ts             |  2 -
       packages/test-harness/src/config/empty.lua    |  0
       packages/test-harness/src/config/init.lua     | 10 +++++
       packages/test-harness/src/config/init.vim     |  7 ----
       packages/test-harness/src/config/init_ced.lua | 41 -------------------
       .../test-harness/src/config/init_linux.lua    | 21 ----------
       packages/test-harness/src/config/init_mac.lua | 14 -------
       packages/test-harness/src/config/init_win.lua | 14 -------
       .../src/launchNeovimAndRunTests.ts            | 15 ++-----
       11 files changed, 14 insertions(+), 114 deletions(-)
       delete mode 100644 packages/test-harness/src/config/empty.lua
       create mode 100644 packages/test-harness/src/config/init.lua
       delete mode 100644 packages/test-harness/src/config/init_ced.lua
       delete mode 100644 packages/test-harness/src/config/init_linux.lua
       delete mode 100644 packages/test-harness/src/config/init_mac.lua
       delete mode 100644 packages/test-harness/src/config/init_win.lua
      
      diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
      index 310daf03ef..01a2811f1e 100644
      --- a/cursorless.nvim/lua/cursorless/init.lua
      +++ b/cursorless.nvim/lua/cursorless/init.lua
      @@ -20,7 +20,7 @@ local function load_extensions()
         if os.getenv('CURSORLESS_MODE') == 'test' then
           -- make sure cursorless is loaded before starting the tests
           -- see https://neovim.io/doc/user/various.html#%3Asleep
      -    vim.cmd([[sleep 5]])
      +    vim.cmd([[sleep 1]])
           vim.api.nvim_call_function('TestHarnessRun', {})
         end
       end
      diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/neovim-common/src/neovimApi.ts
      index 26aecb3b07..08d3716999 100644
      --- a/packages/neovim-common/src/neovimApi.ts
      +++ b/packages/neovim-common/src/neovimApi.ts
      @@ -166,8 +166,6 @@ export async function showErrorMessage(
         client: NeovimClient,
         message: string,
       ): Promise {
      -  // XXX - commenting to test if this avoids hanging problem in CI?
      -  // but does not seem to change anything and it still hangs after the ":enew" command
         const luaCode = `vim.notify("${message}")`;
         await client.executeLua(luaCode, []);
       }
      diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/neovim-common/src/testUtil/openNewEditor.ts
      index e3f29e1bf4..4edb046669 100644
      --- a/packages/neovim-common/src/testUtil/openNewEditor.ts
      +++ b/packages/neovim-common/src/testUtil/openNewEditor.ts
      @@ -19,8 +19,6 @@ export async function openNewEditor(
       ): Promise {
         // open a new buffer
         // @see: https://vi.stackexchange.com/questions/8345/a-built-in-way-to-make-vim-open-a-new-buffer-with-file
      -  // XXX - this is where it hangs atm after the first command back into lua
      -  // NOTE: if I comment this, it hangs at the ":BufOnly!" command below
         await client.command(":enew");
       
         if (!openBeside) {
      diff --git a/packages/test-harness/src/config/empty.lua b/packages/test-harness/src/config/empty.lua
      deleted file mode 100644
      index e69de29bb2..0000000000
      diff --git a/packages/test-harness/src/config/init.lua b/packages/test-harness/src/config/init.lua
      new file mode 100644
      index 0000000000..c770424605
      --- /dev/null
      +++ b/packages/test-harness/src/config/init.lua
      @@ -0,0 +1,10 @@
      +local home_root = os.getenv('HOME_ROOT')
      +local repo_root = os.getenv('CURSORLESS_REPO_ROOT')
      +
      +vim.cmd('source ' .. home_root .. '/BufOnly.vim/plugin/BufOnly.vim')
      +
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. home_root .. '/talon.nvim'
      +vim.o.runtimepath = vim.o.runtimepath .. ',' .. repo_root .. '/dist/cursorless.nvim'
      +
      +require('talon').setup()
      +require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init.vim b/packages/test-harness/src/config/init.vim
      index d23b699179..36bd8724c3 100644
      --- a/packages/test-harness/src/config/init.vim
      +++ b/packages/test-harness/src/config/init.vim
      @@ -1,8 +1 @@
      -" https://vi.stackexchange.com/questions/42366/if-i-set-cmdheight-0-i-get-the-press-enter-or-type-command-to-continue-message
      -set shortmess=csCFSW
      -" still hangs
      -" set cmdheight=
      -" still hangs and cmdheight is still 0???
      -" set cmdheight=1
      -" echo "CED: loading init.lua"
       lua require("init")
      diff --git a/packages/test-harness/src/config/init_ced.lua b/packages/test-harness/src/config/init_ced.lua
      deleted file mode 100644
      index ab61bf7aa8..0000000000
      --- a/packages/test-harness/src/config/init_ced.lua
      +++ /dev/null
      @@ -1,41 +0,0 @@
      --- vim.o.cmdheight = 1000
      -
      --- print('CED: loading BufOnly.vim')
      -vim.cmd('source C:\\Users\\Cedric\\Desktop\\test\\BufOnly.vim\\plugin\\BufOnly.vim')
      -
      --- print('CED: modifying runtimepath')
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\talon.nvim'
      -vim.o.runtimepath = vim.o.runtimepath
      -  .. ','
      -  .. 'C:\\work\\tools\\voicecoding\\cursorless_fork\\dist\\cursorless.nvim'
      -
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\nui.nvim'
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\Cedric\\Desktop\\test\\noice.nvim'
      -
      --- print('CED: loading talon.vim')
      -require('talon').setup()
      -
      --- print('CED: loading cursorless.vim')
      -require('cursorless').setup()
      -
      --- require('noice').setup({
      ---   lsp = {
      ---     -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
      ---     override = {
      ---       ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
      ---       ['vim.lsp.util.stylize_markdown'] = true,
      ---       ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
      ---     },
      ---   },
      ---   -- you can enable a preset for easier configuration
      ---   presets = {
      ---     bottom_search = true, -- use a classic bottom cmdline for search
      ---     command_palette = true, -- position the cmdline and popupmenu together
      ---     long_message_to_split = true, -- long messages will be sent to a split
      ---     inc_rename = false, -- enables an input dialog for inc-rename.nvim
      ---     lsp_doc_border = false, -- add a border to hover docs and signature help
      ---   },
      --- })
      -
      --- this crashes nvim, when noice is loaded
      --- print('CED: test print after loading noice')
      diff --git a/packages/test-harness/src/config/init_linux.lua b/packages/test-harness/src/config/init_linux.lua
      deleted file mode 100644
      index 7b19dd5f16..0000000000
      --- a/packages/test-harness/src/config/init_linux.lua
      +++ /dev/null
      @@ -1,21 +0,0 @@
      --- print('CED: loading BufOnly.vim')
      --- read paths from the environment variable?
      --- XXX - so I only have one config file for all platforms
      --- HOME and append the relative paths
      -
      -local home_root = os.getenv('HOME_ROOT')
      -local repo_root = os.getenv('CURSORLESS_REPO_ROOT')
      -
      --- vim.cmd('source /home/runner/BufOnly.vim/plugin/BufOnly.vim')
      -vim.cmd('source ' .. home_root .. '/BufOnly.vim/plugin/BufOnly.vim')
      -
      --- print('CED: modifying runtimepath')
      --- vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/home/runner/talon.nvim'
      --- vim.o.runtimepath = vim.o.runtimepath
      ---   .. ','
      ---   .. '/home/runner/work/cursorless/cursorless/dist/cursorless.nvim'
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. home_root .. '/talon.nvim'
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. repo_root .. '/dist/cursorless.nvim'
      -
      -require('talon').setup()
      -require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_mac.lua b/packages/test-harness/src/config/init_mac.lua
      deleted file mode 100644
      index 2a16ef8e51..0000000000
      --- a/packages/test-harness/src/config/init_mac.lua
      +++ /dev/null
      @@ -1,14 +0,0 @@
      --- print('CED: loading BufOnly.vim')
      -vim.cmd('source /Users/runner/BufOnly.vim/plugin/BufOnly.vim')
      -
      --- print('CED: modifying runtimepath')
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. '/Users/runner/talon.nvim'
      -vim.o.runtimepath = vim.o.runtimepath
      -  .. ','
      -  .. '/Users/runner/work/cursorless/cursorless/dist/cursorless.nvim'
      -
      --- print('CED: loading talon.vim')
      -require('talon').setup()
      -
      --- print('CED: loading cursorless.vim')
      -require('cursorless').setup()
      diff --git a/packages/test-harness/src/config/init_win.lua b/packages/test-harness/src/config/init_win.lua
      deleted file mode 100644
      index 18ed65b3c6..0000000000
      --- a/packages/test-harness/src/config/init_win.lua
      +++ /dev/null
      @@ -1,14 +0,0 @@
      --- print('CED: loading BufOnly.vim')
      -vim.cmd('source C:\\Users\\runneradmin\\BufOnly.vim\\plugin\\BufOnly.vim')
      -
      --- print('CED: modifying runtimepath')
      -vim.o.runtimepath = vim.o.runtimepath .. ',' .. 'C:\\Users\\runneradmin\\talon.nvim'
      -vim.o.runtimepath = vim.o.runtimepath
      -  .. ','
      -  .. 'D:\\a\\cursorless\\cursorless\\dist\\cursorless.nvim'
      -
      --- print('CED: loading talon.vim')
      -require('talon').setup()
      -
      --- print('CED: loading cursorless.vim')
      -require('cursorless').setup()
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index a4b68d2988..54326b4fb2 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -1,6 +1,5 @@
       import * as cp from "child_process";
       import process from "node:process";
      -import { userInfo } from "os";
       // import * as path from "path";
       // import * as os from "os";
       import { exists, readdirSync, mkdirSync, unlinkSync, copyFile } from "fs";
      @@ -50,25 +49,17 @@ export async function launchNeovimAndRunTests() {
           const cli = getEnvironmentVariableStrict("APP_PATH");
           // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
           // nvim-qt.exe does not allow logging into file using -V
      +    // XXX - try using nvim-qt.exe on Windows but --headless may not work then?
           //cli = cli.replace("nvim.exe", "nvim-qt.exe");
       
           let nvimFolder = "";
      -    let initLuaFile = "";
      +    const initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`;
           if (process.platform === "win32") {
      -      if (userInfo().username === "Cedric") {
      -        nvimFolder = "C:/Users/Cedric/AppData/Local/nvim/";
      -        initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_ced.lua`;
      -      } else {
      -        nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim/";
      -        initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_win.lua`;
      -      }
      +      nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim/";
           } else if (process.platform === "linux") {
      -      //XXX: ~/.config/nvim/ does not work?
             nvimFolder = "/home/runner/.config/nvim/";
      -      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_linux.lua`;
           } else if (process.platform === "darwin") {
             nvimFolder = "/Users/runner/.config/nvim/";
      -      initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init_mac.lua`;
           } else {
             console.error(`Unsupported platform: ${process.platform}`);
             process.exit(1);
      
      From 119885093b5a60f10505accc91d31c22550f3d2f Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:56:38 +0100
      Subject: [PATCH 501/504] t
      
      ---
       .../scripts/populate-cursorless-nvim.sh       |   2 -
       packages/test-harness/src/config/wait.lua     |   3 -
       .../src/launchNeovimAndRunTests.ts            | 109 ++----------------
       packages/test-harness/src/runAllTests.ts      |   3 -
       4 files changed, 11 insertions(+), 106 deletions(-)
       mode change 100644 => 100755 packages/test-harness/scripts/populate-cursorless-nvim.sh
       delete mode 100644 packages/test-harness/src/config/wait.lua
      
      diff --git a/packages/test-harness/scripts/populate-cursorless-nvim.sh b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      old mode 100644
      new mode 100755
      index 1a59a5c950..b131d345bd
      --- a/packages/test-harness/scripts/populate-cursorless-nvim.sh
      +++ b/packages/test-harness/scripts/populate-cursorless-nvim.sh
      @@ -7,5 +7,3 @@ mkdir -p "$out_dir/node/test-harness/out"
       # copy the built .js file
       cp package.json "$out_dir/node/test-harness/"
       cp out/index.cjs "$out_dir/node/test-harness/out/"
      -
      -#ln -s /home/runner/work/cursorless/cursorless/packages/test-harness "$out_dir/node/test-harness"
      diff --git a/packages/test-harness/src/config/wait.lua b/packages/test-harness/src/config/wait.lua
      deleted file mode 100644
      index 558070f99f..0000000000
      --- a/packages/test-harness/src/config/wait.lua
      +++ /dev/null
      @@ -1,3 +0,0 @@
      --- print('before sleep')
      -vim.cmd([[sleep 20]])
      --- print('after sleep')
      diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-harness/src/launchNeovimAndRunTests.ts
      index 54326b4fb2..9195d125f1 100644
      --- a/packages/test-harness/src/launchNeovimAndRunTests.ts
      +++ b/packages/test-harness/src/launchNeovimAndRunTests.ts
      @@ -1,18 +1,8 @@
       import * as cp from "child_process";
       import process from "node:process";
      -// import * as path from "path";
      -// import * as os from "os";
      -import { exists, readdirSync, mkdirSync, unlinkSync, copyFile } from "fs";
      +import { readdirSync, mkdirSync, copyFile } from "fs";
       import { Tail } from "tail";
      -// import {
      -//   downloadAndUnzipVSCode,
      -//   resolveCliArgsFromVSCodeExecutablePath,
      -//   runTests,
      -// } from "@vscode/test-electron";
      -import {
      -  //   extensionDependencies,
      -  getCursorlessRepoRoot,
      -} from "@cursorless/common";
      +import { getCursorlessRepoRoot } from "@cursorless/common";
       import { getEnvironmentVariableStrict } from "@cursorless/common";
       
       // https://stackoverflow.com/questions/37764665/how-to-implement-sleep-function-in-typescript
      @@ -39,18 +29,7 @@ export async function launchNeovimAndRunTests() {
           const useLegacyVscode =
             getEnvironmentVariableStrict("APP_VERSION") === "legacy";
       
      -    // NB: We include the exact version here instead of in `test.yml` so that
      -    // we don't have to update the branch protection rules every time we bump
      -    // the legacy VSCode version.
      -    //const neovimVersion = useLegacyVscode ? "v0.9.5" : "stable";
      -    // const vscodeExecutablePath = await downloadAndUnzipVSCode(vscodeVersion);
      -    // const [cli, ...args] =
      -    //   resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
           const cli = getEnvironmentVariableStrict("APP_PATH");
      -    // Installed executable: C:\Users\runneradmin\nvim-stable\bin\nvim.exe
      -    // nvim-qt.exe does not allow logging into file using -V
      -    // XXX - try using nvim-qt.exe on Windows but --headless may not work then?
      -    //cli = cli.replace("nvim.exe", "nvim-qt.exe");
       
           let nvimFolder = "";
           const initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`;
      @@ -69,20 +48,11 @@ export async function launchNeovimAndRunTests() {
       
           mkdirSync(`${nvimFolder}/lua`, { recursive: true });
       
      -    //xxx On Windows: commenting for now to avoid loading any config since nvim hangs anyway atm
      -    copyFile(
      -      //`${getCursorlessRepoRoot()}\\packages\\test-harness\\src\\config\\init.lua`,
      -      // `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`,
      -      initLuaFile,
      -      //"C:\\Users\\runneradmin\\AppData\\Local\\nvim\\init.lua",
      -      // "/home/runner/.config/nvim/lua/init.lua",
      -      `${nvimFolder}/lua/init.lua`,
      -      (err: any) => {
      -        if (err) {
      -          console.error(err);
      -        }
      -      },
      -    );
      +    copyFile(initLuaFile, `${nvimFolder}/lua/init.lua`, (err: any) => {
      +      if (err) {
      +        console.error(err);
      +      }
      +    });
           console.log("init.lua copying done");
       
           copyFile(
      @@ -107,21 +77,9 @@ export async function launchNeovimAndRunTests() {
           });
       
           const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
      -    const vimLogName = `vim.log`;
      -
      -    // temporary, to delete old log when testing
      -    exists(logName, function (exists) {
      -      if (exists) {
      -        console.log("nvim_node.log exists. Deleting now ...");
      -        unlinkSync(logName);
      -      } else {
      -        console.log("nvim_node.log not found, so not deleting.");
      -      }
      -    });
       
           // testing normal nvim startup
           //https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
      -
           // if (process.platform === "darwin" || process.platform === "win32") {
           if (process.platform === "win32") {
             // const { status, signal, error } = cp.spawnSync(cli, [`-V9`], {
      @@ -145,23 +103,12 @@ export async function launchNeovimAndRunTests() {
           }
       
           const waitLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/wait.lua`;
      -    // const subprocess = cp.spawn(cli, [`-V25${vimLogName}`], {
           // https://neovim.io/doc/user/starting.html#--headless
      -    // XXX - this works and avoids hanging on CI but we can't see the nvim logs
           const subprocess = cp.spawn(cli, [`--headless`], {
      -      // xxx on CI, this does not work and does not show any of the vim logs
      -      // stdio: "inherit",
      -      // shell: true,
      -      // XXX = testing -Es locally seems to exit nvim after running the script and it exits too fast so won't work on CI either
      -      // "C:\Program Files\Neovim\bin\nvim.exe" -Es -u C:\path\to\cursorless\packages\test-harness\src\config\init_ced.lua
      -      // const subprocess = cp.spawn(cli, [`-Es`], {
             env: {
               ...process.env,
      -        // "NVIM_NODE_HOST_DEBUG": "1",
               NVIM_NODE_LOG_FILE: logName,
      -        // NVIM_NODE_LOG_LEVEL: "debug", // for debugging
               NVIM_NODE_LOG_LEVEL: "info", // default for testing
      -        //NVIM_NODE_LOG_LEVEL: "error", // print less hoping it won't hang but not working yet
               CURSORLESS_MODE: "test",
             },
           });
      @@ -172,6 +119,7 @@ export async function launchNeovimAndRunTests() {
       
           console.log(`pid: ${subprocess.pid}`);
       
      +    // Make sure the node log file exists
           await delay(5000);
       
           console.log("listing cursorless-neovim/out/:");
      @@ -181,21 +129,6 @@ export async function launchNeovimAndRunTests() {
             console.log(`\t${file}`);
           });
       
      -    /*
      -    // XXX - we can't use that if we use --headless above
      -    const tailVim = new Tail(vimLogName, {
      -      // separator: "\n",
      -      fromBeginning: true,
      -    });
      -    tailVim.on("line", function (data: string) {
      -      console.log(`vim startup: ${data}`);
      -    });
      -    tailVim.on("error", function (error) {
      -      console.log("vim startup: ERROR: ", error);
      -    });
      -    console.log("tail vim startup started");
      -    */
      -
           await delay(10000);
       
           // read log file live and print to console
      @@ -228,6 +161,7 @@ export async function launchNeovimAndRunTests() {
           console.log("tail neovim test started");
       
           console.log("waiting for tests to finish ...");
      +
           let count = 0;
           const stepSeconds = 10;
           while (true) {
      @@ -243,6 +177,8 @@ export async function launchNeovimAndRunTests() {
               break;
             }
           }
      +    subprocess.kill("SIGTERM");
      +    console.log(`killed: ${subprocess.killed}`);
       
           // XXX - code to replace above code, needs more testing
           // code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
      @@ -259,30 +195,7 @@ export async function launchNeovimAndRunTests() {
           // });
           console.log("tests finished");
       
      -    subprocess.kill("SIGTERM");
      -    console.log(`killed: ${subprocess.killed}`);
      -
           tailTest.unwatch();
      -
      -    //await delay(10000);
      -
      -    // console.log("finished installing dependency extensions");
      -
      -    // Run the integration test
      -    // const code = await runTests({
      -    //   vscodeExecutablePath,
      -    //   extensionDevelopmentPath,
      -    //   extensionTestsPath,
      -    //   // Note: Crash dump causes legacy VSCode and Windows to hang, so we just
      -    //   // don't bother.  Can be re-enabled if we ever need it; on windows it only
      -    //   // hangs some of the time, so might be enough to get a crash dump when you
      -    //   // need it.
      -    //   launchArgs:
      -    //     useLegacyVscode || os.platform() === "win32"
      -    //       ? undefined
      -    //       : [`--crash-reporter-directory=${crashDir}`, `--logsPath=${logsDir}`],
      -    // });
      -    //code = 0; // success
         } catch (err) {
           console.error("Test run threw exception:");
           console.error(err);
      diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-harness/src/runAllTests.ts
      index c812253118..b41f320a75 100644
      --- a/packages/test-harness/src/runAllTests.ts
      +++ b/packages/test-harness/src/runAllTests.ts
      @@ -47,7 +47,6 @@ async function runTestsInDir(
         testRoot: string,
         filterFiles: (files: string[]) => string[],
       ): Promise {
      -  console.log("runTestsInDir()");
         // Create the mocha test
         const mocha = new Mocha({
           ui: "tdd",
      @@ -56,8 +55,6 @@ async function runTestsInDir(
         });
       
         const files = filterFiles(await glob("**/**.test.cjs", { cwd: testRoot }));
      -  //console.log("test files:");
      -  //console.log(files); // temp
       
         // Add files to the test suite
         files.forEach((f) => mocha.addFile(path.resolve(testRoot, f)));
      
      From d7c5d00a0fe5f23cef43e2d79f2a0eded8d49262 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 07:59:55 +0100
      Subject: [PATCH 502/504] restore files
      
      ---
       .github/workflows/codeql.yml      | 100 ++++++++++++++++++++++++++++++
       .github/workflows/forbid-todo.yml |  15 +++++
       .github/workflows/pre-commit.yml  |  29 +++++++++
       .github/workflows/test-docs.yml   |  21 +++++++
       4 files changed, 165 insertions(+)
       create mode 100644 .github/workflows/codeql.yml
       create mode 100644 .github/workflows/forbid-todo.yml
       create mode 100644 .github/workflows/pre-commit.yml
       create mode 100644 .github/workflows/test-docs.yml
      
      diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
      new file mode 100644
      index 0000000000..e333813880
      --- /dev/null
      +++ b/.github/workflows/codeql.yml
      @@ -0,0 +1,100 @@
      +# For most projects, this workflow file will not need changing; you simply need
      +# to commit it to your repository.
      +#
      +# You may wish to alter this file to override the set of languages analyzed,
      +# or to provide custom queries or build logic.
      +#
      +# ******** NOTE ********
      +# We have attempted to detect the languages in your repository. Please check
      +# the `language` matrix defined below to confirm you have the correct set of
      +# supported CodeQL languages.
      +#
      +name: "CodeQL"
      +
      +on:
      +  push:
      +    branches: ["main", cursorless-talon-staging]
      +  pull_request:
      +    # The branches below must be a subset of the branches above
      +    branches: ["main"]
      +  merge_group:
      +    branches: [main]
      +  schedule:
      +    - cron: "34 12 * * 5"
      +
      +jobs:
      +  analyze:
      +    name: Analyze
      +    runs-on: ubuntu-latest
      +    if: ${{ github.event_name != 'merge_group' }}
      +    # only run job if workflow initiated by a pull request event
      +    # see https://github.com/cursorless-dev/cursorless/issues/1338
      +    permissions:
      +      actions: read
      +      contents: read
      +      security-events: write
      +
      +    strategy:
      +      fail-fast: false
      +      matrix:
      +        language: ["javascript", "python"]
      +        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
      +        # Use only 'java' to analyze code written in Java, Kotlin or both
      +        # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
      +        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
      +
      +    steps:
      +      - name: Checkout repository
      +        uses: actions/checkout@v4
      +
      +      # Initializes the CodeQL tools for scanning.
      +      - name: Initialize CodeQL
      +        uses: github/codeql-action/init@v2
      +        with:
      +          languages: ${{ matrix.language }}
      +          # If you wish to specify custom queries, you can do so here or in a config file.
      +          # By default, queries listed here will override any specified in a config file.
      +          # Prefix the list here with "+" to use these queries and those in the config file.
      +
      +          # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
      +          # queries: security-extended,security-and-quality
      +
      +      # Autobuild attempts to build any compiled languages  (C/C++, C#, Go, or Java).
      +      # If this step fails, then you should remove it and run the build manually (see below)
      +      - name: Autobuild
      +        uses: github/codeql-action/autobuild@v2
      +
      +      # ℹ️ Command-line programs to run using the OS shell.
      +      # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
      +
      +      #   If the Autobuild fails above, remove it and uncomment the following three lines.
      +      #   modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
      +
      +      # - run: |
      +      #   echo "Run, Build Application using script"
      +      #   ./location_of_script_within_repo/buildscript.sh
      +
      +      - name: Perform CodeQL Analysis
      +        uses: github/codeql-action/analyze@v2
      +        with:
      +          category: "/language:${{matrix.language}}"
      +
      +  analyze_merge_group:
      +    name: Analyze
      +    runs-on: ubuntu-latest
      +    if: ${{ github.event_name == 'merge_group' }}
      +    # If we're on a merge queue, we just force a pass, as it already ran on the PR
      +    # see https://github.com/cursorless-dev/cursorless/issues/1338
      +
      +    strategy:
      +      fail-fast: false
      +      matrix:
      +        language: ["javascript", "python"]
      +        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
      +        # Use only 'java' to analyze code written in Java, Kotlin or both
      +        # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
      +        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
      +
      +    steps:
      +      - name: Do nothing
      +        run: "true"
      diff --git a/.github/workflows/forbid-todo.yml b/.github/workflows/forbid-todo.yml
      new file mode 100644
      index 0000000000..3b14135e71
      --- /dev/null
      +++ b/.github/workflows/forbid-todo.yml
      @@ -0,0 +1,15 @@
      +name: Forbid TODO
      +
      +on:
      +  pull_request:
      +    types: [opened, synchronize, reopened]
      +  merge_group:
      +    branches: [main]
      +
      +jobs:
      +  forbid-todo:
      +    runs-on: ubuntu-latest
      +    steps:
      +      - uses: actions/checkout@v4
      +      - name: Forbid TODO
      +        run: ./scripts/forbid-todo.sh
      diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
      new file mode 100644
      index 0000000000..8ab2696c91
      --- /dev/null
      +++ b/.github/workflows/pre-commit.yml
      @@ -0,0 +1,29 @@
      +name: Pre-commit
      +permissions: read-all
      +on:
      +  push:
      +    branches:
      +      - main
      +  pull_request:
      +    types: [opened, synchronize, reopened]
      +  merge_group:
      +    branches: [main]
      +
      +jobs:
      +  pre-commit:
      +    name: Pre-commit
      +    runs-on: ubuntu-latest
      +    steps:
      +      - uses: actions/checkout@v4
      +      - uses: actions/setup-python@v4
      +        with:
      +          python-version: 3.x
      +      - run: corepack enable
      +      - uses: actions/setup-node@v4
      +        with:
      +          node-version-file: .nvmrc
      +          cache: pnpm
      +      - run: pnpm --color install
      +      - uses: pre-commit/action@v3.0.0
      +      - uses: pre-commit-ci/lite-action@v1.0.1
      +        if: always()
      diff --git a/.github/workflows/test-docs.yml b/.github/workflows/test-docs.yml
      new file mode 100644
      index 0000000000..31a583abfc
      --- /dev/null
      +++ b/.github/workflows/test-docs.yml
      @@ -0,0 +1,21 @@
      +name: Test docs
      +
      +on:
      +  pull_request:
      +    types: [opened, synchronize, reopened]
      +  merge_group:
      +    branches: [main]
      +
      +jobs:
      +  test-docs-build:
      +    runs-on: ubuntu-latest
      +    env:
      +      CURSORLESS_REPO_ROOT: ${{ github.workspace }}
      +    steps:
      +      - uses: actions/checkout@v4
      +      - run: corepack enable
      +      - uses: actions/setup-node@v4
      +        with:
      +          node-version-file: .nvmrc
      +          cache: pnpm
      +      - run: bash -x scripts/build-and-assemble-website.sh
      
      From 538f1e82a9ad7ae2e70ce7bd1f1a76f8f71b95ac Mon Sep 17 00:00:00 2001
      From: "pre-commit-ci-lite[bot]"
       <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
      Date: Wed, 22 May 2024 07:02:01 +0000
      Subject: [PATCH 503/504] [pre-commit.ci lite] apply automatic fixes
      
      ---
       pnpm-lock.yaml | 18938 +++++++++++++++++++++++++++--------------------
       1 file changed, 11092 insertions(+), 7846 deletions(-)
      
      diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
      index 70d6a387e0..c6a4871c0a 100644
      --- a/pnpm-lock.yaml
      +++ b/pnpm-lock.yaml
      @@ -1,4 +1,4 @@
      -lockfileVersion: '6.0'
      +lockfileVersion: '9.0'
       
       settings:
         autoInstallPeers: true
      @@ -775,12 +775,8917 @@ importers:
       
       packages:
       
      -  /@aashutoshrathi/word-wrap@1.2.6:
      +  '@aashutoshrathi/word-wrap@1.2.6':
           resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
           engines: {node: '>=0.10.0'}
       
      -  /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
      +  '@algolia/autocomplete-core@1.9.3':
           resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
      +
      +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3':
      +    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
      +    peerDependencies:
      +      search-insights: '>= 1 < 3'
      +
      +  '@algolia/autocomplete-preset-algolia@1.9.3':
      +    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
      +    peerDependencies:
      +      '@algolia/client-search': '>= 4.9.1 < 6'
      +      algoliasearch: '>= 4.9.1 < 6'
      +
      +  '@algolia/autocomplete-shared@1.9.3':
      +    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
      +    peerDependencies:
      +      '@algolia/client-search': '>= 4.9.1 < 6'
      +      algoliasearch: '>= 4.9.1 < 6'
      +
      +  '@algolia/cache-browser-local-storage@4.22.1':
      +    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
      +
      +  '@algolia/cache-common@4.22.1':
      +    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
      +
      +  '@algolia/cache-in-memory@4.22.1':
      +    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
      +
      +  '@algolia/client-account@4.22.1':
      +    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
      +
      +  '@algolia/client-analytics@4.22.1':
      +    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
      +
      +  '@algolia/client-common@4.22.1':
      +    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
      +
      +  '@algolia/client-personalization@4.22.1':
      +    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
      +
      +  '@algolia/client-search@4.22.1':
      +    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
      +
      +  '@algolia/events@4.0.1':
      +    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
      +
      +  '@algolia/logger-common@4.22.1':
      +    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
      +
      +  '@algolia/logger-console@4.22.1':
      +    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
      +
      +  '@algolia/requester-browser-xhr@4.22.1':
      +    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
      +
      +  '@algolia/requester-common@4.22.1':
      +    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
      +
      +  '@algolia/requester-node-http@4.22.1':
      +    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
      +
      +  '@algolia/transporter@4.22.1':
      +    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
      +
      +  '@alloc/quick-lru@5.2.0':
      +    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
      +    engines: {node: '>=10'}
      +
      +  '@ampproject/remapping@2.3.0':
      +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
      +    engines: {node: '>=6.0.0'}
      +
      +  '@babel/code-frame@7.24.2':
      +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/compat-data@7.24.1':
      +    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/core@7.24.3':
      +    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/generator@7.24.1':
      +    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-annotate-as-pure@7.22.5':
      +    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
      +    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-compilation-targets@7.23.6':
      +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-create-class-features-plugin@7.24.1':
      +    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/helper-create-regexp-features-plugin@7.22.15':
      +    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/helper-define-polyfill-provider@0.6.1':
      +    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +
      +  '@babel/helper-environment-visitor@7.22.20':
      +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-function-name@7.23.0':
      +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-hoist-variables@7.22.5':
      +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-member-expression-to-functions@7.23.0':
      +    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-module-imports@7.24.3':
      +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-module-transforms@7.23.3':
      +    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/helper-optimise-call-expression@7.22.5':
      +    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-plugin-utils@7.24.0':
      +    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-remap-async-to-generator@7.22.20':
      +    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/helper-replace-supers@7.24.1':
      +    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/helper-simple-access@7.22.5':
      +    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
      +    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-split-export-declaration@7.22.6':
      +    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-string-parser@7.24.1':
      +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-validator-identifier@7.22.20':
      +    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-validator-option@7.23.5':
      +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helper-wrap-function@7.22.20':
      +    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/helpers@7.24.1':
      +    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/highlight@7.24.2':
      +    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/parser@7.24.1':
      +    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
      +    engines: {node: '>=6.0.0'}
      +    hasBin: true
      +
      +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
      +    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
      +    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.13.0
      +
      +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
      +    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
      +    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-async-generators@7.8.4':
      +    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-bigint@7.8.3':
      +    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-class-properties@7.12.13':
      +    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-class-static-block@7.14.5':
      +    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-dynamic-import@7.8.3':
      +    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-export-namespace-from@7.8.3':
      +    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-import-assertions@7.24.1':
      +    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-import-attributes@7.24.1':
      +    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-import-meta@7.10.4':
      +    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-json-strings@7.8.3':
      +    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-jsx@7.24.1':
      +    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
      +    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
      +    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-numeric-separator@7.10.4':
      +    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-object-rest-spread@7.8.3':
      +    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-optional-catch-binding@7.8.3':
      +    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-optional-chaining@7.8.3':
      +    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-private-property-in-object@7.14.5':
      +    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-top-level-await@7.14.5':
      +    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-typescript@7.24.1':
      +    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
      +    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/plugin-transform-arrow-functions@7.24.1':
      +    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-async-generator-functions@7.24.3':
      +    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-async-to-generator@7.24.1':
      +    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-block-scoped-functions@7.24.1':
      +    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-block-scoping@7.24.1':
      +    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-class-properties@7.24.1':
      +    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-class-static-block@7.24.1':
      +    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.12.0
      +
      +  '@babel/plugin-transform-classes@7.24.1':
      +    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-computed-properties@7.24.1':
      +    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-destructuring@7.24.1':
      +    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-dotall-regex@7.24.1':
      +    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-duplicate-keys@7.24.1':
      +    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-dynamic-import@7.24.1':
      +    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-exponentiation-operator@7.24.1':
      +    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-export-namespace-from@7.24.1':
      +    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-for-of@7.24.1':
      +    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-function-name@7.24.1':
      +    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-json-strings@7.24.1':
      +    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-literals@7.24.1':
      +    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-logical-assignment-operators@7.24.1':
      +    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-member-expression-literals@7.24.1':
      +    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-modules-amd@7.24.1':
      +    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-modules-commonjs@7.24.1':
      +    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-modules-systemjs@7.24.1':
      +    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-modules-umd@7.24.1':
      +    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
      +    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/plugin-transform-new-target@7.24.1':
      +    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
      +    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-numeric-separator@7.24.1':
      +    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-object-rest-spread@7.24.1':
      +    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-object-super@7.24.1':
      +    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-optional-catch-binding@7.24.1':
      +    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-optional-chaining@7.24.1':
      +    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-parameters@7.24.1':
      +    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-private-methods@7.24.1':
      +    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-private-property-in-object@7.24.1':
      +    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-property-literals@7.24.1':
      +    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-react-constant-elements@7.24.1':
      +    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-react-display-name@7.24.1':
      +    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-react-jsx-development@7.22.5':
      +    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-react-jsx@7.23.4':
      +    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-react-pure-annotations@7.24.1':
      +    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-regenerator@7.24.1':
      +    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-reserved-words@7.24.1':
      +    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-runtime@7.24.3':
      +    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-shorthand-properties@7.24.1':
      +    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-spread@7.24.1':
      +    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-sticky-regex@7.24.1':
      +    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-template-literals@7.24.1':
      +    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-typeof-symbol@7.24.1':
      +    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-typescript@7.24.1':
      +    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-unicode-escapes@7.24.1':
      +    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-unicode-property-regex@7.24.1':
      +    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-unicode-regex@7.24.1':
      +    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/plugin-transform-unicode-sets-regex@7.24.1':
      +    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  '@babel/preset-env@7.24.3':
      +    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/preset-modules@0.1.6-no-external-plugins':
      +    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
      +
      +  '@babel/preset-react@7.24.1':
      +    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/preset-typescript@7.24.1':
      +    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
      +    engines: {node: '>=6.9.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@babel/regjsgen@0.8.0':
      +    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
      +
      +  '@babel/runtime-corejs3@7.24.1':
      +    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/runtime@7.24.1':
      +    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/template@7.24.0':
      +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/traverse@7.24.1':
      +    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@babel/types@7.24.0':
      +    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
      +    engines: {node: '>=6.9.0'}
      +
      +  '@bcoe/v8-coverage@0.2.3':
      +    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
      +
      +  '@colors/colors@1.5.0':
      +    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
      +    engines: {node: '>=0.1.90'}
      +
      +  '@colors/colors@1.6.0':
      +    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
      +    engines: {node: '>=0.1.90'}
      +
      +  '@cspotcode/source-map-support@0.8.1':
      +    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
      +    engines: {node: '>=12'}
      +
      +  '@dabh/diagnostics@2.0.3':
      +    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
      +
      +  '@discoveryjs/json-ext@0.5.7':
      +    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
      +    engines: {node: '>=10.0.0'}
      +
      +  '@docsearch/css@3.6.0':
      +    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
      +
      +  '@docsearch/react@3.6.0':
      +    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
      +    peerDependencies:
      +      '@types/react': '>= 16.8.0 < 19.0.0'
      +      react: '>= 16.8.0 < 19.0.0 || 18'
      +      react-dom: '>= 16.8.0 < 19.0.0 || 18'
      +      search-insights: '>= 1 < 3'
      +    peerDependenciesMeta:
      +      '@types/react':
      +        optional: true
      +      react:
      +        optional: true
      +      react-dom:
      +        optional: true
      +      search-insights:
      +        optional: true
      +
      +  '@docusaurus/core@3.1.1':
      +    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
      +    engines: {node: '>=18.0'}
      +    hasBin: true
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/cssnano-preset@3.1.1':
      +    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
      +    engines: {node: '>=18.0'}
      +
      +  '@docusaurus/logger@3.1.1':
      +    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
      +    engines: {node: '>=18.0'}
      +
      +  '@docusaurus/mdx-loader@3.1.1':
      +    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/module-type-aliases@3.1.1':
      +    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
      +
      +  '@docusaurus/plugin-content-blog@3.1.1':
      +    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-content-docs@3.1.1':
      +    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-content-pages@3.1.1':
      +    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-debug@3.1.1':
      +    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-google-analytics@3.1.1':
      +    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-google-gtag@3.1.1':
      +    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-google-tag-manager@3.1.1':
      +    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/plugin-sitemap@3.1.1':
      +    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/preset-classic@3.1.1':
      +    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/react-loadable@5.5.2':
      +    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
      +    peerDependencies:
      +      react: '*'
      +
      +  '@docusaurus/theme-classic@3.1.1':
      +    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/theme-common@3.1.1':
      +    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/theme-search-algolia@3.1.1':
      +    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/theme-translations@3.1.1':
      +    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
      +    engines: {node: '>=18.0'}
      +
      +  '@docusaurus/types@3.1.1':
      +    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@docusaurus/utils-common@3.1.1':
      +    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      '@docusaurus/types': '*'
      +    peerDependenciesMeta:
      +      '@docusaurus/types':
      +        optional: true
      +
      +  '@docusaurus/utils-validation@3.1.1':
      +    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
      +    engines: {node: '>=18.0'}
      +
      +  '@docusaurus/utils@3.1.1':
      +    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
      +    engines: {node: '>=18.0'}
      +    peerDependencies:
      +      '@docusaurus/types': '*'
      +    peerDependenciesMeta:
      +      '@docusaurus/types':
      +        optional: true
      +
      +  '@effect/schema@0.56.1':
      +    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
      +    peerDependencies:
      +      effect: 2.0.0-next.62
      +      fast-check: ^3.13.2
      +
      +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3':
      +    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      html-webpack-plugin: '>=5'
      +      webpack: '>=5'
      +
      +  '@esbuild/aix-ppc64@0.20.2':
      +    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
      +    engines: {node: '>=12'}
      +    cpu: [ppc64]
      +    os: [aix]
      +
      +  '@esbuild/android-arm64@0.20.2':
      +    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [android]
      +
      +  '@esbuild/android-arm@0.20.2':
      +    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
      +    engines: {node: '>=12'}
      +    cpu: [arm]
      +    os: [android]
      +
      +  '@esbuild/android-x64@0.20.2':
      +    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [android]
      +
      +  '@esbuild/darwin-arm64@0.20.2':
      +    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [darwin]
      +
      +  '@esbuild/darwin-x64@0.20.2':
      +    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [darwin]
      +
      +  '@esbuild/freebsd-arm64@0.20.2':
      +    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [freebsd]
      +
      +  '@esbuild/freebsd-x64@0.20.2':
      +    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [freebsd]
      +
      +  '@esbuild/linux-arm64@0.20.2':
      +    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [linux]
      +
      +  '@esbuild/linux-arm@0.20.2':
      +    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
      +    engines: {node: '>=12'}
      +    cpu: [arm]
      +    os: [linux]
      +
      +  '@esbuild/linux-ia32@0.20.2':
      +    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
      +    engines: {node: '>=12'}
      +    cpu: [ia32]
      +    os: [linux]
      +
      +  '@esbuild/linux-loong64@0.20.2':
      +    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
      +    engines: {node: '>=12'}
      +    cpu: [loong64]
      +    os: [linux]
      +
      +  '@esbuild/linux-mips64el@0.20.2':
      +    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
      +    engines: {node: '>=12'}
      +    cpu: [mips64el]
      +    os: [linux]
      +
      +  '@esbuild/linux-ppc64@0.20.2':
      +    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
      +    engines: {node: '>=12'}
      +    cpu: [ppc64]
      +    os: [linux]
      +
      +  '@esbuild/linux-riscv64@0.20.2':
      +    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
      +    engines: {node: '>=12'}
      +    cpu: [riscv64]
      +    os: [linux]
      +
      +  '@esbuild/linux-s390x@0.20.2':
      +    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
      +    engines: {node: '>=12'}
      +    cpu: [s390x]
      +    os: [linux]
      +
      +  '@esbuild/linux-x64@0.20.2':
      +    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [linux]
      +
      +  '@esbuild/netbsd-x64@0.20.2':
      +    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [netbsd]
      +
      +  '@esbuild/openbsd-x64@0.20.2':
      +    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [openbsd]
      +
      +  '@esbuild/sunos-x64@0.20.2':
      +    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [sunos]
      +
      +  '@esbuild/win32-arm64@0.20.2':
      +    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
      +    engines: {node: '>=12'}
      +    cpu: [arm64]
      +    os: [win32]
      +
      +  '@esbuild/win32-ia32@0.20.2':
      +    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
      +    engines: {node: '>=12'}
      +    cpu: [ia32]
      +    os: [win32]
      +
      +  '@esbuild/win32-x64@0.20.2':
      +    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
      +    engines: {node: '>=12'}
      +    cpu: [x64]
      +    os: [win32]
      +
      +  '@eslint-community/eslint-utils@4.4.0':
      +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    peerDependencies:
      +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
      +
      +  '@eslint-community/regexpp@4.10.0':
      +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
      +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
      +
      +  '@eslint/eslintrc@2.1.4':
      +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  '@eslint/js@8.57.0':
      +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  '@fortawesome/fontawesome-common-types@6.5.1':
      +    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
      +    engines: {node: '>=6'}
      +
      +  '@fortawesome/fontawesome-svg-core@6.5.1':
      +    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
      +    engines: {node: '>=6'}
      +
      +  '@fortawesome/free-solid-svg-icons@6.5.1':
      +    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
      +    engines: {node: '>=6'}
      +
      +  '@fortawesome/react-fontawesome@0.2.0':
      +    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
      +    peerDependencies:
      +      '@fortawesome/fontawesome-svg-core': ~1 || ~6
      +      react: '>=16.3 || 18'
      +
      +  '@gar/promisify@1.1.3':
      +    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
      +
      +  '@gwhitney/detect-indent@7.0.1':
      +    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
      +    engines: {node: '>=12.20'}
      +
      +  '@hapi/hoek@9.3.0':
      +    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
      +
      +  '@hapi/topo@5.1.0':
      +    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
      +
      +  '@humanwhocodes/config-array@0.11.14':
      +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
      +    engines: {node: '>=10.10.0'}
      +
      +  '@humanwhocodes/module-importer@1.0.1':
      +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
      +    engines: {node: '>=12.22'}
      +
      +  '@humanwhocodes/object-schema@2.0.2':
      +    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
      +
      +  '@isaacs/cliui@8.0.2':
      +    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
      +    engines: {node: '>=12'}
      +
      +  '@isaacs/string-locale-compare@1.1.0':
      +    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
      +
      +  '@istanbuljs/load-nyc-config@1.1.0':
      +    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
      +    engines: {node: '>=8'}
      +
      +  '@istanbuljs/schema@0.1.3':
      +    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
      +    engines: {node: '>=8'}
      +
      +  '@jest/console@29.7.0':
      +    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/core@29.7.0':
      +    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
      +
      +  '@jest/environment@29.7.0':
      +    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/expect-utils@29.7.0':
      +    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/expect@29.7.0':
      +    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/fake-timers@29.7.0':
      +    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/globals@29.7.0':
      +    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/reporters@29.7.0':
      +    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
      +
      +  '@jest/schemas@29.6.3':
      +    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/source-map@29.6.3':
      +    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/test-result@29.7.0':
      +    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/test-sequencer@29.7.0':
      +    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/transform@29.7.0':
      +    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jest/types@29.6.3':
      +    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  '@jridgewell/gen-mapping@0.3.5':
      +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
      +    engines: {node: '>=6.0.0'}
      +
      +  '@jridgewell/resolve-uri@3.1.2':
      +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
      +    engines: {node: '>=6.0.0'}
      +
      +  '@jridgewell/set-array@1.2.1':
      +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
      +    engines: {node: '>=6.0.0'}
      +
      +  '@jridgewell/source-map@0.3.6':
      +    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
      +
      +  '@jridgewell/sourcemap-codec@1.4.15':
      +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
      +
      +  '@jridgewell/trace-mapping@0.3.25':
      +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
      +
      +  '@jridgewell/trace-mapping@0.3.9':
      +    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
      +
      +  '@leichtgewicht/ip-codec@2.0.4':
      +    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
      +
      +  '@mdx-js/loader@3.0.1':
      +    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
      +    peerDependencies:
      +      webpack: '>=5'
      +
      +  '@mdx-js/mdx@3.0.1':
      +    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
      +
      +  '@mdx-js/react@3.0.1':
      +    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
      +    peerDependencies:
      +      '@types/react': '>=16'
      +      react: '>=16 || 18'
      +
      +  '@msgpack/msgpack@2.8.0':
      +    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
      +    engines: {node: '>= 10'}
      +
      +  '@next/env@14.1.4':
      +    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
      +
      +  '@next/eslint-plugin-next@14.1.4':
      +    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
      +
      +  '@next/mdx@14.1.4':
      +    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
      +    peerDependencies:
      +      '@mdx-js/loader': '>=0.15.0'
      +      '@mdx-js/react': '>=0.15.0'
      +    peerDependenciesMeta:
      +      '@mdx-js/loader':
      +        optional: true
      +      '@mdx-js/react':
      +        optional: true
      +
      +  '@next/swc-darwin-arm64@14.1.4':
      +    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [darwin]
      +
      +  '@next/swc-darwin-x64@14.1.4':
      +    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [darwin]
      +
      +  '@next/swc-linux-arm64-gnu@14.1.4':
      +    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [linux]
      +
      +  '@next/swc-linux-arm64-musl@14.1.4':
      +    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [linux]
      +
      +  '@next/swc-linux-x64-gnu@14.1.4':
      +    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [linux]
      +
      +  '@next/swc-linux-x64-musl@14.1.4':
      +    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [linux]
      +
      +  '@next/swc-win32-arm64-msvc@14.1.4':
      +    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
      +    engines: {node: '>= 10'}
      +    cpu: [arm64]
      +    os: [win32]
      +
      +  '@next/swc-win32-ia32-msvc@14.1.4':
      +    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
      +    engines: {node: '>= 10'}
      +    cpu: [ia32]
      +    os: [win32]
      +
      +  '@next/swc-win32-x64-msvc@14.1.4':
      +    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
      +    engines: {node: '>= 10'}
      +    cpu: [x64]
      +    os: [win32]
      +
      +  '@nodelib/fs.scandir@2.1.5':
      +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
      +    engines: {node: '>= 8'}
      +
      +  '@nodelib/fs.stat@2.0.5':
      +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
      +    engines: {node: '>= 8'}
      +
      +  '@nodelib/fs.walk@1.2.8':
      +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
      +    engines: {node: '>= 8'}
      +
      +  '@npmcli/arborist@4.3.1':
      +    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +    hasBin: true
      +
      +  '@npmcli/fs@1.1.1':
      +    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
      +
      +  '@npmcli/fs@2.1.2':
      +    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  '@npmcli/fs@3.1.0':
      +    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@npmcli/git@2.1.0':
      +    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
      +
      +  '@npmcli/git@4.1.0':
      +    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@npmcli/installed-package-contents@1.0.7':
      +    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
      +    engines: {node: '>= 10'}
      +    hasBin: true
      +
      +  '@npmcli/installed-package-contents@2.0.2':
      +    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
      +
      +  '@npmcli/map-workspaces@2.0.4':
      +    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  '@npmcli/metavuln-calculator@2.0.0':
      +    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +
      +  '@npmcli/move-file@1.1.2':
      +    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
      +    engines: {node: '>=10'}
      +    deprecated: This functionality has been moved to @npmcli/fs
      +
      +  '@npmcli/move-file@2.0.1':
      +    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +    deprecated: This functionality has been moved to @npmcli/fs
      +
      +  '@npmcli/name-from-folder@1.0.1':
      +    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
      +
      +  '@npmcli/node-gyp@1.0.3':
      +    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
      +
      +  '@npmcli/node-gyp@3.0.0':
      +    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@npmcli/package-json@1.0.1':
      +    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
      +
      +  '@npmcli/promise-spawn@1.3.2':
      +    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
      +
      +  '@npmcli/promise-spawn@6.0.2':
      +    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@npmcli/run-script@2.0.0':
      +    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
      +
      +  '@npmcli/run-script@6.0.2':
      +    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@octokit/auth-token@2.5.0':
      +    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
      +
      +  '@octokit/core@3.6.0':
      +    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
      +
      +  '@octokit/endpoint@6.0.12':
      +    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
      +
      +  '@octokit/graphql@4.8.0':
      +    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
      +
      +  '@octokit/openapi-types@12.11.0':
      +    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
      +
      +  '@octokit/plugin-paginate-rest@2.21.3':
      +    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
      +    peerDependencies:
      +      '@octokit/core': '>=2'
      +
      +  '@octokit/plugin-request-log@1.0.4':
      +    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
      +    peerDependencies:
      +      '@octokit/core': '>=3'
      +
      +  '@octokit/plugin-rest-endpoint-methods@5.16.2':
      +    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
      +    peerDependencies:
      +      '@octokit/core': '>=3'
      +
      +  '@octokit/request-error@2.1.0':
      +    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
      +
      +  '@octokit/request@5.6.3':
      +    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
      +
      +  '@octokit/rest@18.12.0':
      +    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
      +
      +  '@octokit/types@6.41.0':
      +    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
      +
      +  '@pkgjs/parseargs@0.11.0':
      +    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
      +    engines: {node: '>=14'}
      +
      +  '@pnpm/cli-meta@5.0.1':
      +    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/cli-utils@2.0.9':
      +    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/config.env-replace@1.1.0':
      +    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/config@18.4.0':
      +    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/constants@6.2.0':
      +    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
      +    engines: {node: '>=14.6'}
      +
      +  '@pnpm/constants@7.1.0':
      +    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/constants@7.1.1':
      +    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/constants@8.0.0':
      +    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/core-loggers@10.0.0':
      +    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/core-loggers@9.0.1':
      +    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/crypto.base32-hash@3.0.0':
      +    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/dedupe.issues-renderer@1.0.0':
      +    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/dedupe.types@1.0.0':
      +    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/default-reporter@12.2.3':
      +    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/dependency-path@3.0.0':
      +    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/error@4.0.1':
      +    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
      +    engines: {node: '>=14.6'}
      +
      +  '@pnpm/error@5.0.1':
      +    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/error@5.0.3':
      +    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/error@6.0.0':
      +    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/fetch@8.0.0':
      +    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/fetcher-base@14.0.1':
      +    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/fetching-types@6.0.0':
      +    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/find-workspace-dir@6.0.3':
      +    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/find-workspace-packages@6.0.9':
      +    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/fs.find-packages@2.0.1':
      +    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/git-resolver@9.0.1':
      +    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/git-utils@1.0.0':
      +    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/git-utils@2.0.0':
      +    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/graceful-fs@3.0.0':
      +    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/hooks.types@1.0.1':
      +    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/hosted-git-info@1.0.0':
      +    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
      +    engines: {node: '>=10'}
      +
      +  '@pnpm/lockfile-file@9.0.2':
      +    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
      +    engines: {node: '>=18.12'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/lockfile-types@5.1.0':
      +    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/lockfile-types@6.0.0':
      +    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/lockfile-utils@10.0.0':
      +    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/logger@5.0.0':
      +    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
      +    engines: {node: '>=12.17'}
      +
      +  '@pnpm/manifest-utils@5.0.1':
      +    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/matcher@5.0.0':
      +    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/merge-lockfile-changes@6.0.0':
      +    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/meta-updater@1.0.0':
      +    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
      +    engines: {node: '>=10.12'}
      +    hasBin: true
      +
      +  '@pnpm/network.agent@1.0.1':
      +    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/network.ca-file@1.0.2':
      +    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/network.config@1.0.1':
      +    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/network.proxy-agent@1.0.1':
      +    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/node-fetch@1.0.0':
      +    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
      +    engines: {node: ^10.17 || >=12.3}
      +
      +  '@pnpm/npm-conf@2.2.0':
      +    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
      +    engines: {node: '>=12'}
      +
      +  '@pnpm/npm-conf@2.2.2':
      +    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
      +    engines: {node: '>=12'}
      +
      +  '@pnpm/package-is-installable@8.0.2':
      +    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/pick-fetcher@3.0.0':
      +    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/pnpmfile@5.0.7':
      +    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
      +    engines: {node: '>=16.14'}
      +    peerDependencies:
      +      '@pnpm/logger': ^5.0.0
      +
      +  '@pnpm/ramda@0.28.1':
      +    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
      +
      +  '@pnpm/read-project-manifest@5.0.1':
      +    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/render-peer-issues@4.0.1':
      +    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/resolver-base@10.0.1':
      +    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/resolver-base@12.0.0':
      +    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/store-controller-types@15.0.1':
      +    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/text.comments-parser@2.0.0':
      +    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/types@10.0.0':
      +    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/types@9.1.0':
      +    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/types@9.4.2':
      +    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
      +    engines: {node: '>=16.14'}
      +
      +  '@pnpm/util.lex-comparator@1.0.0':
      +    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
      +    engines: {node: '>=12.22.0'}
      +
      +  '@pnpm/util.lex-comparator@3.0.0':
      +    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
      +    engines: {node: '>=18.12'}
      +
      +  '@pnpm/write-project-manifest@5.0.1':
      +    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
      +    engines: {node: '>=16.14'}
      +
      +  '@polka/url@1.0.0-next.25':
      +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
      +
      +  '@rushstack/eslint-patch@1.8.0':
      +    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
      +
      +  '@sideway/address@4.1.5':
      +    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
      +
      +  '@sideway/formula@3.0.1':
      +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
      +
      +  '@sideway/pinpoint@2.0.0':
      +    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
      +
      +  '@sigstore/bundle@1.1.0':
      +    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@sigstore/protobuf-specs@0.2.1':
      +    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@sigstore/sign@1.0.0':
      +    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@sigstore/tuf@1.0.3':
      +    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@sinclair/typebox@0.27.8':
      +    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
      +
      +  '@sindresorhus/is@4.6.0':
      +    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
      +    engines: {node: '>=10'}
      +
      +  '@sindresorhus/is@5.6.0':
      +    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
      +    engines: {node: '>=14.16'}
      +
      +  '@sinonjs/commons@2.0.0':
      +    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
      +
      +  '@sinonjs/commons@3.0.1':
      +    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
      +
      +  '@sinonjs/fake-timers@10.3.0':
      +    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
      +
      +  '@sinonjs/fake-timers@11.2.2':
      +    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
      +
      +  '@sinonjs/samsam@8.0.0':
      +    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
      +
      +  '@sinonjs/text-encoding@0.7.2':
      +    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
      +
      +  '@slorber/remark-comment@1.0.0':
      +    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
      +
      +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
      +    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
      +    engines: {node: '>=14'}
      +
      +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1':
      +    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
      +    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
      +    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
      +    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1':
      +    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
      +    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1':
      +    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
      +    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1':
      +    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
      +    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1':
      +    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
      +    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-transform-svg-component@6.5.1':
      +    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-transform-svg-component@8.0.0':
      +    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-preset@6.5.1':
      +    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-preset@8.1.0':
      +    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/core@6.5.1':
      +    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
      +    engines: {node: '>=10'}
      +
      +  '@svgr/core@8.1.0':
      +    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
      +    engines: {node: '>=14'}
      +
      +  '@svgr/hast-util-to-babel-ast@6.5.1':
      +    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
      +    engines: {node: '>=10'}
      +
      +  '@svgr/hast-util-to-babel-ast@8.0.0':
      +    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
      +    engines: {node: '>=14'}
      +
      +  '@svgr/plugin-jsx@6.5.1':
      +    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@svgr/core': ^6.0.0
      +
      +  '@svgr/plugin-jsx@8.1.0':
      +    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@svgr/core': '*'
      +
      +  '@svgr/plugin-svgo@6.5.1':
      +    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      '@svgr/core': '*'
      +
      +  '@svgr/plugin-svgo@8.1.0':
      +    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      '@svgr/core': '*'
      +
      +  '@svgr/webpack@6.5.1':
      +    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
      +    engines: {node: '>=10'}
      +
      +  '@svgr/webpack@8.1.0':
      +    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
      +    engines: {node: '>=14'}
      +
      +  '@swc/helpers@0.5.2':
      +    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
      +
      +  '@szmarczak/http-timer@5.0.1':
      +    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
      +    engines: {node: '>=14.16'}
      +
      +  '@testing-library/dom@9.3.4':
      +    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
      +    engines: {node: '>=14'}
      +
      +  '@testing-library/react@14.2.2':
      +    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      react: ^18.0.0 || 18
      +      react-dom: ^18.0.0 || 18
      +
      +  '@tootallnate/once@1.1.2':
      +    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
      +    engines: {node: '>= 6'}
      +
      +  '@tootallnate/once@2.0.0':
      +    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
      +    engines: {node: '>= 10'}
      +
      +  '@trysound/sax@0.2.0':
      +    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
      +    engines: {node: '>=10.13.0'}
      +
      +  '@tsconfig/docusaurus@2.0.2':
      +    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
      +
      +  '@tsconfig/node10@1.0.10':
      +    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
      +
      +  '@tsconfig/node12@1.0.11':
      +    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
      +
      +  '@tsconfig/node14@1.0.3':
      +    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
      +
      +  '@tsconfig/node16@1.0.4':
      +    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
      +
      +  '@tufjs/canonical-json@1.0.0':
      +    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@tufjs/models@1.0.4':
      +    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  '@types/acorn@4.0.6':
      +    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
      +
      +  '@types/aria-query@5.0.4':
      +    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
      +
      +  '@types/babel__core@7.20.5':
      +    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
      +
      +  '@types/babel__generator@7.6.8':
      +    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
      +
      +  '@types/babel__template@7.4.4':
      +    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
      +
      +  '@types/babel__traverse@7.20.5':
      +    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
      +
      +  '@types/body-parser@1.19.5':
      +    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
      +
      +  '@types/bonjour@3.5.13':
      +    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
      +
      +  '@types/chai@4.3.14':
      +    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
      +
      +  '@types/connect-history-api-fallback@1.5.4':
      +    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
      +
      +  '@types/connect@3.4.38':
      +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
      +
      +  '@types/debug@4.1.12':
      +    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
      +
      +  '@types/eslint-scope@3.7.7':
      +    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
      +
      +  '@types/eslint@8.56.6':
      +    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
      +
      +  '@types/estree-jsx@1.0.5':
      +    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
      +
      +  '@types/estree@1.0.5':
      +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
      +
      +  '@types/expect@1.20.4':
      +    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
      +
      +  '@types/express-serve-static-core@4.17.43':
      +    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
      +
      +  '@types/express@4.17.21':
      +    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
      +
      +  '@types/fs-extra@11.0.4':
      +    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
      +
      +  '@types/glob@8.1.0':
      +    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
      +
      +  '@types/graceful-fs@4.1.9':
      +    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
      +
      +  '@types/gtag.js@0.0.12':
      +    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
      +
      +  '@types/hast@3.0.4':
      +    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
      +
      +  '@types/history@4.7.11':
      +    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
      +
      +  '@types/html-minifier-terser@6.1.0':
      +    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
      +
      +  '@types/http-cache-semantics@4.0.4':
      +    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
      +
      +  '@types/http-errors@2.0.4':
      +    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
      +
      +  '@types/http-proxy@1.17.14':
      +    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
      +
      +  '@types/istanbul-lib-coverage@2.0.6':
      +    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
      +
      +  '@types/istanbul-lib-report@3.0.3':
      +    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
      +
      +  '@types/istanbul-reports@3.0.4':
      +    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
      +
      +  '@types/jest@29.5.12':
      +    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
      +
      +  '@types/js-cookie@2.2.7':
      +    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
      +
      +  '@types/js-yaml@4.0.9':
      +    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
      +
      +  '@types/jsdom@20.0.1':
      +    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
      +
      +  '@types/json-schema@7.0.15':
      +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
      +
      +  '@types/json5@0.0.29':
      +    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
      +
      +  '@types/jsonfile@6.1.4':
      +    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
      +
      +  '@types/lodash@4.17.0':
      +    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
      +
      +  '@types/mdast@4.0.3':
      +    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
      +
      +  '@types/mdx-js__react@1.5.8':
      +    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
      +
      +  '@types/mdx@2.0.12':
      +    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
      +
      +  '@types/mime@1.3.5':
      +    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
      +
      +  '@types/mime@3.0.4':
      +    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
      +
      +  '@types/minimatch@3.0.5':
      +    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
      +
      +  '@types/minimatch@5.1.2':
      +    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
      +
      +  '@types/minimist@1.2.5':
      +    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
      +
      +  '@types/mocha@10.0.6':
      +    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
      +
      +  '@types/moo@0.5.9':
      +    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
      +
      +  '@types/ms@0.7.34':
      +    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
      +
      +  '@types/nearley@2.11.5':
      +    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
      +
      +  '@types/node-forge@1.3.11':
      +    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
      +
      +  '@types/node@15.14.9':
      +    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
      +
      +  '@types/node@17.0.45':
      +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
      +
      +  '@types/node@18.18.2':
      +    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
      +
      +  '@types/normalize-package-data@2.4.4':
      +    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
      +
      +  '@types/normalize-path@3.0.2':
      +    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
      +
      +  '@types/parse-json@4.0.2':
      +    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
      +
      +  '@types/prismjs@1.26.3':
      +    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
      +
      +  '@types/prop-types@15.7.12':
      +    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
      +
      +  '@types/qs@6.9.14':
      +    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
      +
      +  '@types/range-parser@1.2.7':
      +    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
      +
      +  '@types/react-dom@18.2.22':
      +    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
      +
      +  '@types/react-helmet@6.1.11':
      +    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
      +
      +  '@types/react-router-config@5.0.11':
      +    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
      +
      +  '@types/react-router-dom@5.3.3':
      +    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
      +
      +  '@types/react-router@5.1.20':
      +    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
      +
      +  '@types/react@18.2.71':
      +    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
      +
      +  '@types/retry@0.12.0':
      +    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
      +
      +  '@types/retry@0.12.2':
      +    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
      +
      +  '@types/sax@1.2.7':
      +    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
      +
      +  '@types/sbd@1.0.5':
      +    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
      +
      +  '@types/scheduler@0.23.0':
      +    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
      +
      +  '@types/semver@7.5.8':
      +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
      +
      +  '@types/send@0.17.4':
      +    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
      +
      +  '@types/serve-index@1.9.4':
      +    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
      +
      +  '@types/serve-static@1.15.5':
      +    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
      +
      +  '@types/sinon@17.0.3':
      +    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
      +
      +  '@types/sinonjs__fake-timers@8.1.5':
      +    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
      +
      +  '@types/sockjs@0.3.36':
      +    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
      +
      +  '@types/ssri@7.1.5':
      +    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
      +
      +  '@types/stack-utils@2.0.3':
      +    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
      +
      +  '@types/tail@2.2.3':
      +    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
      +
      +  '@types/tinycolor2@1.4.6':
      +    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
      +
      +  '@types/tough-cookie@4.0.5':
      +    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
      +
      +  '@types/triple-beam@1.3.5':
      +    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
      +
      +  '@types/unist@2.0.10':
      +    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
      +
      +  '@types/unist@3.0.2':
      +    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
      +
      +  '@types/uuid@9.0.8':
      +    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
      +
      +  '@types/vinyl@2.0.11':
      +    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
      +
      +  '@types/vscode@1.75.1':
      +    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
      +
      +  '@types/webpack@5.28.5':
      +    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
      +
      +  '@types/ws@8.5.10':
      +    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
      +
      +  '@types/yargs-parser@21.0.3':
      +    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
      +
      +  '@types/yargs@17.0.32':
      +    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
      +
      +  '@typescript-eslint/eslint-plugin@7.4.0':
      +    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      '@typescript-eslint/parser': ^7.0.0
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/parser@6.21.0':
      +    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +    peerDependencies:
      +      eslint: ^7.0.0 || ^8.0.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/parser@7.4.0':
      +    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/scope-manager@6.21.0':
      +    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +
      +  '@typescript-eslint/scope-manager@7.4.0':
      +    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +
      +  '@typescript-eslint/type-utils@7.4.0':
      +    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/types@6.21.0':
      +    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +
      +  '@typescript-eslint/types@7.4.0':
      +    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +
      +  '@typescript-eslint/typescript-estree@6.21.0':
      +    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +    peerDependencies:
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/typescript-estree@7.4.0':
      +    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      typescript: '*'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  '@typescript-eslint/utils@7.4.0':
      +    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +    peerDependencies:
      +      eslint: ^8.56.0
      +
      +  '@typescript-eslint/visitor-keys@6.21.0':
      +    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
      +    engines: {node: ^16.0.0 || >=18.0.0}
      +
      +  '@typescript-eslint/visitor-keys@7.4.0':
      +    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
      +    engines: {node: ^18.18.0 || >=20.0.0}
      +
      +  '@ungap/structured-clone@1.2.0':
      +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
      +
      +  '@vscode/test-electron@2.3.9':
      +    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
      +    engines: {node: '>=16'}
      +
      +  '@webassemblyjs/ast@1.12.1':
      +    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
      +
      +  '@webassemblyjs/floating-point-hex-parser@1.11.6':
      +    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
      +
      +  '@webassemblyjs/helper-api-error@1.11.6':
      +    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
      +
      +  '@webassemblyjs/helper-buffer@1.12.1':
      +    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
      +
      +  '@webassemblyjs/helper-numbers@1.11.6':
      +    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
      +
      +  '@webassemblyjs/helper-wasm-bytecode@1.11.6':
      +    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
      +
      +  '@webassemblyjs/helper-wasm-section@1.12.1':
      +    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
      +
      +  '@webassemblyjs/ieee754@1.11.6':
      +    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
      +
      +  '@webassemblyjs/leb128@1.11.6':
      +    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
      +
      +  '@webassemblyjs/utf8@1.11.6':
      +    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
      +
      +  '@webassemblyjs/wasm-edit@1.12.1':
      +    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
      +
      +  '@webassemblyjs/wasm-gen@1.12.1':
      +    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
      +
      +  '@webassemblyjs/wasm-opt@1.12.1':
      +    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
      +
      +  '@webassemblyjs/wasm-parser@1.12.1':
      +    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
      +
      +  '@webassemblyjs/wast-printer@1.12.1':
      +    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
      +
      +  '@webpack-cli/configtest@2.1.1':
      +    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +
      +  '@webpack-cli/generators@3.0.7':
      +    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      prettier: '*'
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +    peerDependenciesMeta:
      +      prettier:
      +        optional: true
      +
      +  '@webpack-cli/info@2.0.2':
      +    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +
      +  '@webpack-cli/serve@2.0.5':
      +    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
      +    engines: {node: '>=14.15.0'}
      +    peerDependencies:
      +      webpack: 5.x.x
      +      webpack-cli: 5.x.x
      +      webpack-dev-server: '*'
      +    peerDependenciesMeta:
      +      webpack-dev-server:
      +        optional: true
      +
      +  '@xobotyi/scrollbar-width@1.9.5':
      +    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
      +
      +  '@xtuc/ieee754@1.2.0':
      +    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
      +
      +  '@xtuc/long@4.2.2':
      +    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
      +
      +  '@zkochan/js-yaml@0.0.7':
      +    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
      +    hasBin: true
      +
      +  '@zkochan/retry@0.2.0':
      +    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
      +    engines: {node: '>=10'}
      +
      +  '@zkochan/rimraf@2.1.3':
      +    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
      +    engines: {node: '>=12.10'}
      +
      +  '@zkochan/which@2.0.3':
      +    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
      +    engines: {node: '>= 8'}
      +    hasBin: true
      +
      +  abab@2.0.6:
      +    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
      +    deprecated: Use your platform's native atob() and btoa() methods instead
      +
      +  abbrev@1.1.1:
      +    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
      +
      +  abort-controller@3.0.0:
      +    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
      +    engines: {node: '>=6.5'}
      +
      +  accepts@1.3.8:
      +    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
      +    engines: {node: '>= 0.6'}
      +
      +  acorn-globals@7.0.1:
      +    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
      +
      +  acorn-import-assertions@1.9.0:
      +    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
      +    peerDependencies:
      +      acorn: ^8
      +
      +  acorn-jsx@5.3.2:
      +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
      +    peerDependencies:
      +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
      +
      +  acorn-walk@8.3.2:
      +    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
      +    engines: {node: '>=0.4.0'}
      +
      +  acorn@8.11.3:
      +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
      +    engines: {node: '>=0.4.0'}
      +    hasBin: true
      +
      +  address@1.2.2:
      +    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
      +    engines: {node: '>= 10.0.0'}
      +
      +  agent-base@6.0.2:
      +    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
      +    engines: {node: '>= 6.0.0'}
      +
      +  agentkeepalive@4.2.1:
      +    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
      +    engines: {node: '>= 8.0.0'}
      +
      +  agentkeepalive@4.5.0:
      +    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
      +    engines: {node: '>= 8.0.0'}
      +
      +  aggregate-error@3.1.0:
      +    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
      +    engines: {node: '>=8'}
      +
      +  ajv-formats@2.1.1:
      +    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
      +    peerDependencies:
      +      ajv: ^8.0.0
      +    peerDependenciesMeta:
      +      ajv:
      +        optional: true
      +
      +  ajv-keywords@3.5.2:
      +    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
      +    peerDependencies:
      +      ajv: ^6.9.1
      +
      +  ajv-keywords@5.1.0:
      +    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
      +    peerDependencies:
      +      ajv: ^8.8.2
      +
      +  ajv@6.12.6:
      +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
      +
      +  ajv@8.12.0:
      +    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
      +
      +  algoliasearch-helper@3.16.3:
      +    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
      +    peerDependencies:
      +      algoliasearch: '>= 3.1 < 6'
      +
      +  algoliasearch@4.22.1:
      +    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
      +
      +  ansi-align@3.0.1:
      +    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
      +
      +  ansi-colors@4.1.1:
      +    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
      +    engines: {node: '>=6'}
      +
      +  ansi-colors@4.1.3:
      +    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
      +    engines: {node: '>=6'}
      +
      +  ansi-diff@1.1.1:
      +    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
      +
      +  ansi-escapes@4.3.2:
      +    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
      +    engines: {node: '>=8'}
      +
      +  ansi-html-community@0.0.8:
      +    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
      +    engines: {'0': node >= 0.8.0}
      +    hasBin: true
      +
      +  ansi-regex@3.0.1:
      +    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
      +    engines: {node: '>=4'}
      +
      +  ansi-regex@5.0.1:
      +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
      +    engines: {node: '>=8'}
      +
      +  ansi-regex@6.0.1:
      +    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
      +    engines: {node: '>=12'}
      +
      +  ansi-split@1.0.1:
      +    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
      +
      +  ansi-styles@3.2.1:
      +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
      +    engines: {node: '>=4'}
      +
      +  ansi-styles@4.3.0:
      +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
      +    engines: {node: '>=8'}
      +
      +  ansi-styles@5.2.0:
      +    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
      +    engines: {node: '>=10'}
      +
      +  ansi-styles@6.2.1:
      +    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
      +    engines: {node: '>=12'}
      +
      +  any-promise@1.3.0:
      +    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
      +
      +  anymatch@3.1.3:
      +    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
      +    engines: {node: '>= 8'}
      +
      +  aproba@2.0.0:
      +    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
      +
      +  archy@1.0.0:
      +    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
      +
      +  are-we-there-yet@2.0.0:
      +    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
      +    engines: {node: '>=10'}
      +
      +  are-we-there-yet@3.0.1:
      +    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  arg@4.1.3:
      +    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
      +
      +  arg@5.0.2:
      +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
      +
      +  argparse@1.0.10:
      +    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
      +
      +  argparse@2.0.1:
      +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
      +
      +  aria-query@5.1.3:
      +    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
      +
      +  aria-query@5.3.0:
      +    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
      +
      +  array-buffer-byte-length@1.0.1:
      +    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
      +    engines: {node: '>= 0.4'}
      +
      +  array-differ@3.0.0:
      +    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
      +    engines: {node: '>=8'}
      +
      +  array-flatten@1.1.1:
      +    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
      +
      +  array-includes@3.1.8:
      +    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  array-union@2.1.0:
      +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
      +    engines: {node: '>=8'}
      +
      +  array.prototype.findlast@1.2.5:
      +    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  array.prototype.findlastindex@1.2.5:
      +    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  array.prototype.flat@1.3.2:
      +    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
      +    engines: {node: '>= 0.4'}
      +
      +  array.prototype.flatmap@1.3.2:
      +    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  array.prototype.toreversed@1.1.2:
      +    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
      +
      +  array.prototype.tosorted@1.1.3:
      +    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
      +
      +  arraybuffer.prototype.slice@1.0.3:
      +    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
      +    engines: {node: '>= 0.4'}
      +
      +  arrify@1.0.1:
      +    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  arrify@2.0.1:
      +    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
      +    engines: {node: '>=8'}
      +
      +  as-table@1.0.55:
      +    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
      +
      +  asap@2.0.6:
      +    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
      +
      +  assertion-error@2.0.1:
      +    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
      +    engines: {node: '>=12'}
      +
      +  ast-types-flow@0.0.8:
      +    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
      +
      +  astring@1.8.6:
      +    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
      +    hasBin: true
      +
      +  async@2.6.4:
      +    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
      +
      +  async@3.2.5:
      +    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
      +
      +  asynckit@0.4.0:
      +    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
      +
      +  at-least-node@1.0.0:
      +    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
      +    engines: {node: '>= 4.0.0'}
      +
      +  autoprefixer@10.4.19:
      +    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
      +    engines: {node: ^10 || ^12 || >=14}
      +    hasBin: true
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  available-typed-arrays@1.0.7:
      +    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  axe-core@4.7.0:
      +    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
      +    engines: {node: '>=4'}
      +
      +  axobject-query@3.2.1:
      +    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
      +
      +  babel-jest@29.7.0:
      +    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@babel/core': ^7.8.0
      +
      +  babel-loader@9.1.3:
      +    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      '@babel/core': ^7.12.0
      +      webpack: '>=5'
      +
      +  babel-plugin-dynamic-import-node@2.3.3:
      +    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
      +
      +  babel-plugin-istanbul@6.1.1:
      +    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
      +    engines: {node: '>=8'}
      +
      +  babel-plugin-jest-hoist@29.6.3:
      +    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  babel-plugin-polyfill-corejs2@0.4.10:
      +    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +
      +  babel-plugin-polyfill-corejs3@0.10.4:
      +    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +
      +  babel-plugin-polyfill-regenerator@0.6.1:
      +    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
      +    peerDependencies:
      +      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +
      +  babel-preset-current-node-syntax@1.0.1:
      +    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  babel-preset-jest@29.6.3:
      +    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@babel/core': ^7.0.0
      +
      +  bail@2.0.2:
      +    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
      +
      +  balanced-match@1.0.2:
      +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
      +
      +  base64-js@1.5.1:
      +    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
      +
      +  basic-auth@2.0.1:
      +    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
      +    engines: {node: '>= 0.8'}
      +
      +  batch@0.6.1:
      +    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
      +
      +  before-after-hook@2.2.3:
      +    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
      +
      +  better-path-resolve@1.0.0:
      +    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
      +    engines: {node: '>=4'}
      +
      +  big.js@5.2.2:
      +    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
      +
      +  bin-links@3.0.3:
      +    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  binary-extensions@2.3.0:
      +    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
      +    engines: {node: '>=8'}
      +
      +  binaryextensions@4.19.0:
      +    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
      +    engines: {node: '>=0.8'}
      +
      +  bl@4.1.0:
      +    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
      +
      +  body-parser@1.20.2:
      +    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
      +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      +
      +  bole@5.0.11:
      +    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
      +
      +  bonjour-service@1.2.1:
      +    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
      +
      +  boolbase@1.0.0:
      +    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
      +
      +  boxen@5.1.2:
      +    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
      +    engines: {node: '>=10'}
      +
      +  boxen@6.2.1:
      +    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  boxen@7.1.1:
      +    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
      +    engines: {node: '>=14.16'}
      +
      +  brace-expansion@1.1.11:
      +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
      +
      +  brace-expansion@2.0.1:
      +    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
      +
      +  braces@3.0.2:
      +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
      +    engines: {node: '>=8'}
      +
      +  browser-stdout@1.3.1:
      +    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
      +
      +  browserslist@4.23.0:
      +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
      +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
      +    hasBin: true
      +
      +  bs-logger@0.2.6:
      +    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
      +    engines: {node: '>= 6'}
      +
      +  bser@2.1.1:
      +    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
      +
      +  buffer-from@1.1.2:
      +    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
      +
      +  buffer@5.7.1:
      +    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
      +
      +  buffer@6.0.3:
      +    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
      +
      +  builtin-modules@3.3.0:
      +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
      +    engines: {node: '>=6'}
      +
      +  builtins@1.0.3:
      +    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
      +
      +  builtins@5.0.1:
      +    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
      +
      +  bundle-name@4.1.0:
      +    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
      +    engines: {node: '>=18'}
      +
      +  busboy@1.6.0:
      +    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
      +    engines: {node: '>=10.16.0'}
      +
      +  bytes@3.0.0:
      +    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
      +    engines: {node: '>= 0.8'}
      +
      +  bytes@3.1.2:
      +    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
      +    engines: {node: '>= 0.8'}
      +
      +  cacache@15.3.0:
      +    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
      +    engines: {node: '>= 10'}
      +
      +  cacache@16.1.3:
      +    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  cacache@17.1.4:
      +    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  cacheable-lookup@7.0.0:
      +    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
      +    engines: {node: '>=14.16'}
      +
      +  cacheable-request@10.2.14:
      +    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
      +    engines: {node: '>=14.16'}
      +
      +  call-bind@1.0.7:
      +    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
      +    engines: {node: '>= 0.4'}
      +
      +  callsites@3.1.0:
      +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
      +    engines: {node: '>=6'}
      +
      +  camel-case@4.1.2:
      +    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
      +
      +  camelcase-css@2.0.1:
      +    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
      +    engines: {node: '>= 6'}
      +
      +  camelcase-keys@6.2.2:
      +    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
      +    engines: {node: '>=8'}
      +
      +  camelcase-keys@7.0.2:
      +    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
      +    engines: {node: '>=12'}
      +
      +  camelcase@5.3.1:
      +    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
      +    engines: {node: '>=6'}
      +
      +  camelcase@6.3.0:
      +    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
      +    engines: {node: '>=10'}
      +
      +  camelcase@7.0.1:
      +    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
      +    engines: {node: '>=14.16'}
      +
      +  can-write-to-dir@1.1.1:
      +    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
      +    engines: {node: '>=10.13'}
      +
      +  caniuse-api@3.0.0:
      +    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
      +
      +  caniuse-lite@1.0.30001600:
      +    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
      +
      +  ccount@2.0.1:
      +    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
      +
      +  chai@5.1.0:
      +    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
      +    engines: {node: '>=12'}
      +
      +  chalk@2.4.2:
      +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
      +    engines: {node: '>=4'}
      +
      +  chalk@4.1.2:
      +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
      +    engines: {node: '>=10'}
      +
      +  chalk@5.3.0:
      +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
      +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
      +
      +  char-regex@1.0.2:
      +    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
      +    engines: {node: '>=10'}
      +
      +  character-entities-html4@2.1.0:
      +    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
      +
      +  character-entities-legacy@3.0.0:
      +    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
      +
      +  character-entities@2.0.2:
      +    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
      +
      +  character-reference-invalid@2.0.1:
      +    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
      +
      +  chardet@0.7.0:
      +    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
      +
      +  check-error@2.0.0:
      +    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
      +    engines: {node: '>= 16'}
      +
      +  cheerio-select@2.1.0:
      +    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
      +
      +  cheerio@1.0.0-rc.12:
      +    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
      +    engines: {node: '>= 6'}
      +
      +  chokidar@3.5.3:
      +    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
      +    engines: {node: '>= 8.10.0'}
      +
      +  chokidar@3.6.0:
      +    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
      +    engines: {node: '>= 8.10.0'}
      +
      +  chownr@2.0.0:
      +    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
      +    engines: {node: '>=10'}
      +
      +  chrome-trace-event@1.0.3:
      +    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
      +    engines: {node: '>=6.0'}
      +
      +  ci-info@3.9.0:
      +    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
      +    engines: {node: '>=8'}
      +
      +  ci-info@4.0.0:
      +    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
      +    engines: {node: '>=8'}
      +
      +  cjs-module-lexer@1.2.3:
      +    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
      +
      +  clean-css@5.3.3:
      +    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
      +    engines: {node: '>= 10.0'}
      +
      +  clean-regexp@1.0.0:
      +    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
      +    engines: {node: '>=4'}
      +
      +  clean-stack@2.2.0:
      +    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
      +    engines: {node: '>=6'}
      +
      +  cli-boxes@2.2.1:
      +    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
      +    engines: {node: '>=6'}
      +
      +  cli-boxes@3.0.0:
      +    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
      +    engines: {node: '>=10'}
      +
      +  cli-columns@4.0.0:
      +    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
      +    engines: {node: '>= 10'}
      +
      +  cli-cursor@3.1.0:
      +    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
      +    engines: {node: '>=8'}
      +
      +  cli-spinners@2.9.2:
      +    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
      +    engines: {node: '>=6'}
      +
      +  cli-table3@0.6.4:
      +    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
      +    engines: {node: 10.* || >= 12.*}
      +
      +  cli-table@0.3.11:
      +    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
      +    engines: {node: '>= 0.2.0'}
      +
      +  cli-width@3.0.0:
      +    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
      +    engines: {node: '>= 10'}
      +
      +  client-only@0.0.1:
      +    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
      +
      +  cliui@7.0.4:
      +    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
      +
      +  cliui@8.0.1:
      +    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
      +    engines: {node: '>=12'}
      +
      +  clone-buffer@1.0.0:
      +    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
      +    engines: {node: '>= 0.10'}
      +
      +  clone-deep@4.0.1:
      +    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
      +    engines: {node: '>=6'}
      +
      +  clone-stats@1.0.0:
      +    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
      +
      +  clone@1.0.4:
      +    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
      +    engines: {node: '>=0.8'}
      +
      +  clone@2.1.2:
      +    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
      +    engines: {node: '>=0.8'}
      +
      +  cloneable-readable@1.1.3:
      +    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
      +
      +  clsx@2.1.0:
      +    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
      +    engines: {node: '>=6'}
      +
      +  cmd-shim@5.0.0:
      +    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  co@4.6.0:
      +    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
      +    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
      +
      +  collapse-white-space@2.1.0:
      +    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
      +
      +  collect-v8-coverage@1.0.2:
      +    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
      +
      +  color-convert@1.9.3:
      +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
      +
      +  color-convert@2.0.1:
      +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
      +    engines: {node: '>=7.0.0'}
      +
      +  color-name@1.1.3:
      +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
      +
      +  color-name@1.1.4:
      +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
      +
      +  color-string@1.9.1:
      +    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
      +
      +  color-support@1.1.3:
      +    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
      +    hasBin: true
      +
      +  color@3.2.1:
      +    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
      +
      +  colord@2.9.3:
      +    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
      +
      +  colorette@2.0.20:
      +    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
      +
      +  colors@1.0.3:
      +    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
      +    engines: {node: '>=0.1.90'}
      +
      +  colorspace@1.1.4:
      +    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
      +
      +  combine-promises@1.2.0:
      +    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
      +    engines: {node: '>=10'}
      +
      +  combined-stream@1.0.8:
      +    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
      +    engines: {node: '>= 0.8'}
      +
      +  comma-separated-tokens@2.0.3:
      +    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
      +
      +  commander@10.0.1:
      +    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
      +    engines: {node: '>=14'}
      +
      +  commander@11.1.0:
      +    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
      +    engines: {node: '>=16'}
      +
      +  commander@2.20.3:
      +    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
      +
      +  commander@4.1.1:
      +    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
      +    engines: {node: '>= 6'}
      +
      +  commander@5.1.0:
      +    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
      +    engines: {node: '>= 6'}
      +
      +  commander@7.1.0:
      +    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
      +    engines: {node: '>= 10'}
      +
      +  commander@7.2.0:
      +    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
      +    engines: {node: '>= 10'}
      +
      +  commander@8.3.0:
      +    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
      +    engines: {node: '>= 12'}
      +
      +  common-ancestor-path@1.0.1:
      +    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
      +
      +  common-path-prefix@3.0.0:
      +    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
      +
      +  commondir@1.0.1:
      +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
      +
      +  compressible@2.0.18:
      +    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
      +    engines: {node: '>= 0.6'}
      +
      +  compression@1.7.4:
      +    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  comver-to-semver@1.0.0:
      +    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
      +    engines: {node: '>=12.17'}
      +
      +  concat-map@0.0.1:
      +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
      +
      +  config-chain@1.1.13:
      +    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
      +
      +  configstore@6.0.0:
      +    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
      +    engines: {node: '>=12'}
      +
      +  connect-history-api-fallback@2.0.0:
      +    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
      +    engines: {node: '>=0.8'}
      +
      +  consola@2.15.3:
      +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
      +
      +  console-control-strings@1.1.0:
      +    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
      +
      +  content-disposition@0.5.2:
      +    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
      +    engines: {node: '>= 0.6'}
      +
      +  content-disposition@0.5.4:
      +    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
      +    engines: {node: '>= 0.6'}
      +
      +  content-type@1.0.5:
      +    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
      +    engines: {node: '>= 0.6'}
      +
      +  convert-source-map@2.0.0:
      +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
      +
      +  cookie-signature@1.0.6:
      +    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
      +
      +  cookie@0.6.0:
      +    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
      +    engines: {node: '>= 0.6'}
      +
      +  copy-text-to-clipboard@3.2.0:
      +    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
      +    engines: {node: '>=12'}
      +
      +  copy-to-clipboard@3.3.3:
      +    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
      +
      +  copy-webpack-plugin@11.0.0:
      +    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      webpack: ^5.1.0
      +
      +  core-js-compat@3.36.1:
      +    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
      +
      +  core-js-pure@3.36.1:
      +    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
      +
      +  core-js@3.36.1:
      +    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
      +
      +  core-util-is@1.0.3:
      +    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
      +
      +  corser@2.0.1:
      +    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
      +    engines: {node: '>= 0.4.0'}
      +
      +  cosmiconfig@6.0.0:
      +    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
      +    engines: {node: '>=8'}
      +
      +  cosmiconfig@7.1.0:
      +    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
      +    engines: {node: '>=10'}
      +
      +  cosmiconfig@8.3.6:
      +    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=4.9.5'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  cosmiconfig@9.0.0:
      +    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=4.9.5'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  create-jest@29.7.0:
      +    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
      +
      +  create-require@1.1.1:
      +    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
      +
      +  cross-spawn@7.0.3:
      +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
      +    engines: {node: '>= 8'}
      +
      +  crypto-random-string@2.0.0:
      +    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
      +    engines: {node: '>=8'}
      +
      +  crypto-random-string@4.0.0:
      +    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
      +    engines: {node: '>=12'}
      +
      +  css-declaration-sorter@6.4.1:
      +    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
      +    engines: {node: ^10 || ^12 || >=14}
      +    peerDependencies:
      +      postcss: ^8.0.9
      +
      +  css-in-js-utils@3.1.0:
      +    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
      +
      +  css-loader@6.10.0:
      +    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
      +
      +  css-minimizer-webpack-plugin@4.2.2:
      +    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      '@parcel/css': '*'
      +      '@swc/css': '*'
      +      clean-css: '*'
      +      csso: '*'
      +      esbuild: '*'
      +      lightningcss: '*'
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@parcel/css':
      +        optional: true
      +      '@swc/css':
      +        optional: true
      +      clean-css:
      +        optional: true
      +      csso:
      +        optional: true
      +      esbuild:
      +        optional: true
      +      lightningcss:
      +        optional: true
      +
      +  css-select@4.3.0:
      +    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
      +
      +  css-select@5.1.0:
      +    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
      +
      +  css-tree@1.1.3:
      +    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
      +    engines: {node: '>=8.0.0'}
      +
      +  css-tree@2.2.1:
      +    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      +
      +  css-tree@2.3.1:
      +    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
      +
      +  css-what@6.1.0:
      +    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
      +    engines: {node: '>= 6'}
      +
      +  cssesc@3.0.0:
      +    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  cssnano-preset-advanced@5.3.10:
      +    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  cssnano-preset-default@5.2.14:
      +    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  cssnano-utils@3.1.0:
      +    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  cssnano@5.1.15:
      +    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  csso@4.2.0:
      +    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
      +    engines: {node: '>=8.0.0'}
      +
      +  csso@5.0.5:
      +    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
      +    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      +
      +  cssom@0.3.8:
      +    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
      +
      +  cssom@0.5.0:
      +    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
      +
      +  cssstyle@2.3.0:
      +    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
      +    engines: {node: '>=8'}
      +
      +  csstype@3.1.3:
      +    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
      +
      +  damerau-levenshtein@1.0.8:
      +    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
      +
      +  dargs@7.0.0:
      +    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
      +    engines: {node: '>=8'}
      +
      +  data-uri-to-buffer@2.0.2:
      +    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
      +
      +  data-uri-to-buffer@3.0.1:
      +    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
      +    engines: {node: '>= 6'}
      +
      +  data-urls@3.0.2:
      +    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
      +    engines: {node: '>=12'}
      +
      +  data-view-buffer@1.0.1:
      +    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
      +    engines: {node: '>= 0.4'}
      +
      +  data-view-byte-length@1.0.1:
      +    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  data-view-byte-offset@1.0.0:
      +    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
      +    engines: {node: '>= 0.4'}
      +
      +  dateformat@4.6.3:
      +    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
      +
      +  debounce@1.2.1:
      +    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
      +
      +  debug@2.6.9:
      +    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
      +
      +  debug@3.2.7:
      +    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
      +
      +  debug@4.3.4:
      +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
      +    engines: {node: '>=6.0'}
      +    peerDependencies:
      +      supports-color: '*'
      +    peerDependenciesMeta:
      +      supports-color:
      +        optional: true
      +
      +  debuglog@1.0.1:
      +    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
      +    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
      +
      +  decamelize-keys@1.1.1:
      +    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  decamelize@1.2.0:
      +    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  decamelize@4.0.0:
      +    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
      +    engines: {node: '>=10'}
      +
      +  decamelize@5.0.1:
      +    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
      +    engines: {node: '>=10'}
      +
      +  decimal.js@10.4.3:
      +    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
      +
      +  decode-named-character-reference@1.0.2:
      +    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
      +
      +  decompress-response@6.0.0:
      +    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
      +    engines: {node: '>=10'}
      +
      +  dedent@1.5.1:
      +    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
      +    peerDependencies:
      +      babel-plugin-macros: ^3.1.0
      +    peerDependenciesMeta:
      +      babel-plugin-macros:
      +        optional: true
      +
      +  deep-eql@5.0.1:
      +    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
      +    engines: {node: '>=6'}
      +
      +  deep-equal@2.2.3:
      +    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
      +    engines: {node: '>= 0.4'}
      +
      +  deep-extend@0.6.0:
      +    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
      +    engines: {node: '>=4.0.0'}
      +
      +  deep-is@0.1.4:
      +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
      +
      +  deepmerge@4.3.1:
      +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
      +    engines: {node: '>=0.10.0'}
      +
      +  default-browser-id@5.0.0:
      +    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
      +    engines: {node: '>=18'}
      +
      +  default-browser@5.2.1:
      +    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
      +    engines: {node: '>=18'}
      +
      +  default-gateway@6.0.3:
      +    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
      +    engines: {node: '>= 10'}
      +
      +  defaults@1.0.4:
      +    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
      +
      +  defer-to-connect@2.0.1:
      +    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
      +    engines: {node: '>=10'}
      +
      +  define-data-property@1.1.4:
      +    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
      +    engines: {node: '>= 0.4'}
      +
      +  define-lazy-prop@2.0.0:
      +    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
      +    engines: {node: '>=8'}
      +
      +  define-lazy-prop@3.0.0:
      +    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
      +    engines: {node: '>=12'}
      +
      +  define-properties@1.2.1:
      +    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
      +    engines: {node: '>= 0.4'}
      +
      +  del@6.1.1:
      +    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
      +    engines: {node: '>=10'}
      +
      +  delayed-stream@1.0.0:
      +    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
      +    engines: {node: '>=0.4.0'}
      +
      +  delegates@1.0.0:
      +    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
      +
      +  depd@1.1.2:
      +    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
      +    engines: {node: '>= 0.6'}
      +
      +  depd@2.0.0:
      +    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
      +    engines: {node: '>= 0.8'}
      +
      +  deprecation@2.3.1:
      +    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
      +
      +  dequal@2.0.3:
      +    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
      +    engines: {node: '>=6'}
      +
      +  destroy@1.2.0:
      +    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
      +    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      +
      +  detect-indent@7.0.1:
      +    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
      +    engines: {node: '>=12.20'}
      +
      +  detect-libc@2.0.3:
      +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
      +    engines: {node: '>=8'}
      +
      +  detect-newline@3.1.0:
      +    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
      +    engines: {node: '>=8'}
      +
      +  detect-node@2.1.0:
      +    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
      +
      +  detect-port-alt@1.1.6:
      +    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
      +    engines: {node: '>= 4.2.1'}
      +    hasBin: true
      +
      +  detect-port@1.5.1:
      +    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
      +    hasBin: true
      +
      +  devlop@1.1.0:
      +    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
      +
      +  dezalgo@1.0.4:
      +    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
      +
      +  didyoumean@1.2.2:
      +    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
      +
      +  diff-sequences@29.6.3:
      +    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  diff@4.0.2:
      +    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
      +    engines: {node: '>=0.3.1'}
      +
      +  diff@5.0.0:
      +    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
      +    engines: {node: '>=0.3.1'}
      +
      +  diff@5.2.0:
      +    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
      +    engines: {node: '>=0.3.1'}
      +
      +  dir-glob@3.0.1:
      +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
      +    engines: {node: '>=8'}
      +
      +  discontinuous-range@1.0.0:
      +    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
      +
      +  dlv@1.1.3:
      +    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
      +
      +  dns-packet@5.6.1:
      +    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
      +    engines: {node: '>=6'}
      +
      +  doctrine@2.1.0:
      +    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
      +    engines: {node: '>=0.10.0'}
      +
      +  doctrine@3.0.0:
      +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
      +    engines: {node: '>=6.0.0'}
      +
      +  dom-accessibility-api@0.5.16:
      +    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
      +
      +  dom-converter@0.2.0:
      +    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
      +
      +  dom-serializer@1.4.1:
      +    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
      +
      +  dom-serializer@2.0.0:
      +    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
      +
      +  domelementtype@2.3.0:
      +    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
      +
      +  domexception@4.0.0:
      +    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
      +    engines: {node: '>=12'}
      +    deprecated: Use your platform's native DOMException instead
      +
      +  domhandler@4.3.1:
      +    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
      +    engines: {node: '>= 4'}
      +
      +  domhandler@5.0.3:
      +    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
      +    engines: {node: '>= 4'}
      +
      +  domutils@2.8.0:
      +    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
      +
      +  domutils@3.1.0:
      +    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
      +
      +  dot-case@3.0.4:
      +    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
      +
      +  dot-prop@6.0.1:
      +    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
      +    engines: {node: '>=10'}
      +
      +  duplexer@0.1.2:
      +    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
      +
      +  eastasianwidth@0.2.0:
      +    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
      +
      +  ee-first@1.1.1:
      +    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
      +
      +  effect@2.0.0-next.62:
      +    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
      +
      +  ejs@3.1.9:
      +    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
      +    engines: {node: '>=0.10.0'}
      +    hasBin: true
      +
      +  electron-to-chromium@1.4.717:
      +    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
      +
      +  emittery@0.13.1:
      +    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
      +    engines: {node: '>=12'}
      +
      +  emoji-regex@8.0.0:
      +    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
      +
      +  emoji-regex@9.2.2:
      +    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
      +
      +  emojilib@2.4.0:
      +    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
      +
      +  emojis-list@3.0.0:
      +    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
      +    engines: {node: '>= 4'}
      +
      +  emoticon@4.0.1:
      +    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
      +
      +  enabled@2.0.0:
      +    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
      +
      +  encodeurl@1.0.2:
      +    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
      +    engines: {node: '>= 0.8'}
      +
      +  encoding@0.1.13:
      +    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
      +
      +  enhanced-resolve@5.16.0:
      +    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
      +    engines: {node: '>=10.13.0'}
      +
      +  enquirer@2.4.1:
      +    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
      +    engines: {node: '>=8.6'}
      +
      +  entities@2.2.0:
      +    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
      +
      +  entities@4.5.0:
      +    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
      +    engines: {node: '>=0.12'}
      +
      +  env-paths@2.2.1:
      +    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
      +    engines: {node: '>=6'}
      +
      +  envinfo@7.11.1:
      +    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  err-code@2.0.3:
      +    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
      +
      +  error-ex@1.3.2:
      +    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
      +
      +  error-stack-parser@2.1.4:
      +    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
      +
      +  error@10.4.0:
      +    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
      +
      +  es-abstract@1.23.2:
      +    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-define-property@1.0.0:
      +    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-errors@1.3.0:
      +    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-get-iterator@1.1.3:
      +    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
      +
      +  es-iterator-helpers@1.0.18:
      +    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-module-lexer@1.5.0:
      +    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
      +
      +  es-object-atoms@1.0.0:
      +    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-set-tostringtag@2.0.3:
      +    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  es-shim-unscopables@1.0.2:
      +    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
      +
      +  es-to-primitive@1.2.1:
      +    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
      +    engines: {node: '>= 0.4'}
      +
      +  esbuild@0.20.2:
      +    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
      +    engines: {node: '>=12'}
      +    hasBin: true
      +
      +  escalade@3.1.2:
      +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
      +    engines: {node: '>=6'}
      +
      +  escape-goat@4.0.0:
      +    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
      +    engines: {node: '>=12'}
      +
      +  escape-html@1.0.3:
      +    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
      +
      +  escape-string-regexp@1.0.5:
      +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
      +    engines: {node: '>=0.8.0'}
      +
      +  escape-string-regexp@2.0.0:
      +    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
      +    engines: {node: '>=8'}
      +
      +  escape-string-regexp@4.0.0:
      +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
      +    engines: {node: '>=10'}
      +
      +  escape-string-regexp@5.0.0:
      +    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
      +    engines: {node: '>=12'}
      +
      +  escodegen@2.1.0:
      +    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
      +    engines: {node: '>=6.0'}
      +    hasBin: true
      +
      +  eslint-config-next@14.1.4:
      +    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
      +    peerDependencies:
      +      eslint: ^7.23.0 || ^8.0.0
      +      typescript: '>=3.3.1'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  eslint-config-prettier@9.1.0:
      +    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
      +    hasBin: true
      +    peerDependencies:
      +      eslint: '>=7.0.0'
      +
      +  eslint-import-resolver-node@0.3.9:
      +    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
      +
      +  eslint-import-resolver-typescript@3.6.1:
      +    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      +    engines: {node: ^14.18.0 || >=16.0.0}
      +    peerDependencies:
      +      eslint: '*'
      +      eslint-plugin-import: '*'
      +
      +  eslint-module-utils@2.8.1:
      +    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      '@typescript-eslint/parser': '*'
      +      eslint: '*'
      +      eslint-import-resolver-node: '*'
      +      eslint-import-resolver-typescript: '*'
      +      eslint-import-resolver-webpack: '*'
      +    peerDependenciesMeta:
      +      '@typescript-eslint/parser':
      +        optional: true
      +      eslint:
      +        optional: true
      +      eslint-import-resolver-node:
      +        optional: true
      +      eslint-import-resolver-typescript:
      +        optional: true
      +      eslint-import-resolver-webpack:
      +        optional: true
      +
      +  eslint-plugin-import@2.29.1:
      +    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      '@typescript-eslint/parser': '*'
      +      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
      +    peerDependenciesMeta:
      +      '@typescript-eslint/parser':
      +        optional: true
      +
      +  eslint-plugin-jsx-a11y@6.8.0:
      +    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
      +    engines: {node: '>=4.0'}
      +    peerDependencies:
      +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      +
      +  eslint-plugin-mocha@10.4.1:
      +    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
      +    engines: {node: '>=14.0.0'}
      +    peerDependencies:
      +      eslint: '>=7.0.0'
      +
      +  eslint-plugin-react-hooks@4.6.0:
      +    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
      +    engines: {node: '>=10'}
      +    peerDependencies:
      +      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
      +
      +  eslint-plugin-react@7.34.1:
      +    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
      +    engines: {node: '>=4'}
      +    peerDependencies:
      +      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      +
      +  eslint-plugin-unicorn@51.0.1:
      +    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
      +    engines: {node: '>=16'}
      +    peerDependencies:
      +      eslint: '>=8.56.0'
      +
      +  eslint-plugin-unused-imports@3.1.0:
      +    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    peerDependencies:
      +      '@typescript-eslint/eslint-plugin': 6 - 7
      +      eslint: '8'
      +    peerDependenciesMeta:
      +      '@typescript-eslint/eslint-plugin':
      +        optional: true
      +
      +  eslint-rule-composer@0.3.0:
      +    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
      +    engines: {node: '>=4.0.0'}
      +
      +  eslint-scope@5.1.1:
      +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
      +    engines: {node: '>=8.0.0'}
      +
      +  eslint-scope@7.2.2:
      +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  eslint-utils@3.0.0:
      +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
      +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
      +    peerDependencies:
      +      eslint: '>=5'
      +
      +  eslint-visitor-keys@2.1.0:
      +    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
      +    engines: {node: '>=10'}
      +
      +  eslint-visitor-keys@3.4.3:
      +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  eslint@8.57.0:
      +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +    hasBin: true
      +
      +  espree@9.6.1:
      +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  esprima@4.0.1:
      +    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  esquery@1.5.0:
      +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
      +    engines: {node: '>=0.10'}
      +
      +  esrecurse@4.3.0:
      +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
      +    engines: {node: '>=4.0'}
      +
      +  estraverse@4.3.0:
      +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
      +    engines: {node: '>=4.0'}
      +
      +  estraverse@5.3.0:
      +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
      +    engines: {node: '>=4.0'}
      +
      +  estree-util-attach-comments@3.0.0:
      +    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
      +
      +  estree-util-build-jsx@3.0.1:
      +    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
      +
      +  estree-util-is-identifier-name@3.0.0:
      +    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
      +
      +  estree-util-to-js@2.0.0:
      +    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
      +
      +  estree-util-value-to-estree@3.0.1:
      +    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
      +    engines: {node: '>=16.0.0'}
      +
      +  estree-util-visit@2.0.0:
      +    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
      +
      +  estree-walker@3.0.3:
      +    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
      +
      +  esutils@2.0.3:
      +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
      +    engines: {node: '>=0.10.0'}
      +
      +  eta@2.2.0:
      +    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
      +    engines: {node: '>=6.0.0'}
      +
      +  etag@1.8.1:
      +    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
      +    engines: {node: '>= 0.6'}
      +
      +  eval@0.1.8:
      +    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
      +    engines: {node: '>= 0.8'}
      +
      +  event-target-shim@5.0.1:
      +    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
      +    engines: {node: '>=6'}
      +
      +  eventemitter3@4.0.7:
      +    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
      +
      +  events@3.3.0:
      +    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
      +    engines: {node: '>=0.8.x'}
      +
      +  execa@5.1.1:
      +    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
      +    engines: {node: '>=10'}
      +
      +  exit@0.1.2:
      +    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  expect@29.7.0:
      +    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  exponential-backoff@3.1.1:
      +    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
      +
      +  express@4.19.2:
      +    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
      +    engines: {node: '>= 0.10.0'}
      +
      +  extend-shallow@2.0.1:
      +    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
      +    engines: {node: '>=0.10.0'}
      +
      +  extend@3.0.2:
      +    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
      +
      +  external-editor@3.1.0:
      +    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
      +    engines: {node: '>=4'}
      +
      +  fast-check@3.15.0:
      +    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
      +    engines: {node: '>=8.0.0'}
      +
      +  fast-check@3.17.0:
      +    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
      +    engines: {node: '>=8.0.0'}
      +
      +  fast-deep-equal@3.1.3:
      +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
      +
      +  fast-glob@3.3.2:
      +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
      +    engines: {node: '>=8.6.0'}
      +
      +  fast-json-stable-stringify@2.1.0:
      +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
      +
      +  fast-levenshtein@2.0.6:
      +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
      +
      +  fast-loops@1.1.3:
      +    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
      +
      +  fast-safe-stringify@2.1.1:
      +    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
      +
      +  fast-shallow-equal@1.0.0:
      +    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
      +
      +  fast-url-parser@1.1.3:
      +    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
      +
      +  fast-xml-parser@4.3.6:
      +    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
      +    hasBin: true
      +
      +  fastest-levenshtein@1.0.16:
      +    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
      +    engines: {node: '>= 4.9.1'}
      +
      +  fastest-stable-stringify@2.0.2:
      +    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
      +
      +  fastq@1.17.1:
      +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
      +
      +  fault@2.0.1:
      +    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
      +
      +  faye-websocket@0.11.4:
      +    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
      +    engines: {node: '>=0.8.0'}
      +
      +  fb-watchman@2.0.2:
      +    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
      +
      +  fecha@4.2.3:
      +    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
      +
      +  feed@4.2.2:
      +    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
      +    engines: {node: '>=0.4.0'}
      +
      +  fetch-blob@2.1.2:
      +    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
      +    engines: {node: ^10.17.0 || >=12.3.0}
      +    peerDependencies:
      +      domexception: '*'
      +    peerDependenciesMeta:
      +      domexception:
      +        optional: true
      +
      +  figures@3.2.0:
      +    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
      +    engines: {node: '>=8'}
      +
      +  file-entry-cache@6.0.1:
      +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
      +    engines: {node: ^10.12.0 || >=12.0.0}
      +
      +  file-loader@6.2.0:
      +    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      webpack: ^4.0.0 || ^5.0.0
      +
      +  filelist@1.0.4:
      +    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
      +
      +  filesize@8.0.7:
      +    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
      +    engines: {node: '>= 0.4.0'}
      +
      +  fill-range@7.0.1:
      +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
      +    engines: {node: '>=8'}
      +
      +  finalhandler@1.2.0:
      +    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
      +    engines: {node: '>= 0.8'}
      +
      +  find-cache-dir@4.0.0:
      +    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
      +    engines: {node: '>=14.16'}
      +
      +  find-up@3.0.0:
      +    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
      +    engines: {node: '>=6'}
      +
      +  find-up@4.1.0:
      +    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
      +    engines: {node: '>=8'}
      +
      +  find-up@5.0.0:
      +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
      +    engines: {node: '>=10'}
      +
      +  find-up@6.3.0:
      +    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  find-yarn-workspace-root2@1.2.16:
      +    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
      +
      +  first-chunk-stream@2.0.0:
      +    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  flat-cache@3.2.0:
      +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
      +    engines: {node: ^10.12.0 || >=12.0.0}
      +
      +  flat@5.0.2:
      +    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
      +    hasBin: true
      +
      +  flatted@3.3.1:
      +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
      +
      +  fn.name@1.1.0:
      +    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
      +
      +  follow-redirects@1.15.6:
      +    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
      +    engines: {node: '>=4.0'}
      +    peerDependencies:
      +      debug: '*'
      +    peerDependenciesMeta:
      +      debug:
      +        optional: true
      +
      +  for-each@0.3.3:
      +    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
      +
      +  foreground-child@3.1.1:
      +    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
      +    engines: {node: '>=14'}
      +
      +  fork-ts-checker-webpack-plugin@6.5.3:
      +    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
      +    engines: {node: '>=10', yarn: '>=1.0.0'}
      +    peerDependencies:
      +      eslint: '>= 6'
      +      typescript: '>= 2.7'
      +      vue-template-compiler: '*'
      +      webpack: '>= 4'
      +    peerDependenciesMeta:
      +      eslint:
      +        optional: true
      +      vue-template-compiler:
      +        optional: true
      +
      +  form-data-encoder@2.1.4:
      +    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
      +    engines: {node: '>= 14.17'}
      +
      +  form-data@4.0.0:
      +    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
      +    engines: {node: '>= 6'}
      +
      +  format@0.2.2:
      +    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
      +    engines: {node: '>=0.4.x'}
      +
      +  forwarded@0.2.0:
      +    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
      +    engines: {node: '>= 0.6'}
      +
      +  fraction.js@4.3.7:
      +    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
      +
      +  fresh@0.5.2:
      +    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
      +    engines: {node: '>= 0.6'}
      +
      +  fs-extra@11.2.0:
      +    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
      +    engines: {node: '>=14.14'}
      +
      +  fs-extra@9.1.0:
      +    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
      +    engines: {node: '>=10'}
      +
      +  fs-minipass@2.1.0:
      +    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
      +    engines: {node: '>= 8'}
      +
      +  fs-minipass@3.0.3:
      +    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  fs-monkey@1.0.5:
      +    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
      +
      +  fs.realpath@1.0.0:
      +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
      +
      +  fsevents@2.3.3:
      +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
      +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
      +    os: [darwin]
      +
      +  function-bind@1.1.2:
      +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
      +
      +  function.prototype.name@1.1.6:
      +    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
      +    engines: {node: '>= 0.4'}
      +
      +  functions-have-names@1.2.3:
      +    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
      +
      +  gauge@3.0.2:
      +    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
      +    engines: {node: '>=10'}
      +
      +  gauge@4.0.4:
      +    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  gensync@1.0.0-beta.2:
      +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
      +    engines: {node: '>=6.9.0'}
      +
      +  get-caller-file@2.0.5:
      +    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
      +    engines: {node: 6.* || 8.* || >= 10.*}
      +
      +  get-func-name@2.0.2:
      +    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
      +
      +  get-intrinsic@1.2.4:
      +    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  get-npm-tarball-url@2.1.0:
      +    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
      +    engines: {node: '>=12.17'}
      +
      +  get-own-enumerable-property-symbols@3.0.2:
      +    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
      +
      +  get-package-type@0.1.0:
      +    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
      +    engines: {node: '>=8.0.0'}
      +
      +  get-source@2.0.12:
      +    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
      +
      +  get-stream@6.0.1:
      +    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
      +    engines: {node: '>=10'}
      +
      +  get-symbol-description@1.0.2:
      +    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
      +    engines: {node: '>= 0.4'}
      +
      +  get-tsconfig@4.7.3:
      +    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
      +
      +  github-slugger@1.5.0:
      +    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
      +
      +  github-username@6.0.0:
      +    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
      +    engines: {node: '>=10'}
      +
      +  glob-parent@5.1.2:
      +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
      +    engines: {node: '>= 6'}
      +
      +  glob-parent@6.0.2:
      +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
      +    engines: {node: '>=10.13.0'}
      +
      +  glob-to-regexp@0.4.1:
      +    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
      +
      +  glob@10.3.10:
      +    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +    hasBin: true
      +
      +  glob@7.2.3:
      +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
      +
      +  glob@8.1.0:
      +    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
      +    engines: {node: '>=12'}
      +
      +  global-dirs@3.0.1:
      +    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
      +    engines: {node: '>=10'}
      +
      +  global-modules@2.0.0:
      +    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
      +    engines: {node: '>=6'}
      +
      +  global-prefix@3.0.0:
      +    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
      +    engines: {node: '>=6'}
      +
      +  globals@11.12.0:
      +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
      +    engines: {node: '>=4'}
      +
      +  globals@13.24.0:
      +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
      +    engines: {node: '>=8'}
      +
      +  globalthis@1.0.3:
      +    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
      +    engines: {node: '>= 0.4'}
      +
      +  globby@11.1.0:
      +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
      +    engines: {node: '>=10'}
      +
      +  globby@13.2.2:
      +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  gopd@1.0.1:
      +    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
      +
      +  got@12.6.1:
      +    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
      +    engines: {node: '>=14.16'}
      +
      +  graceful-fs@4.2.10:
      +    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
      +
      +  graceful-fs@4.2.11:
      +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
      +
      +  graceful-git@3.1.2:
      +    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
      +    engines: {node: '>=10'}
      +
      +  graphemer@1.4.0:
      +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
      +
      +  gray-matter@4.0.3:
      +    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
      +    engines: {node: '>=6.0'}
      +
      +  grouped-queue@2.0.0:
      +    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
      +    engines: {node: '>=8.0.0'}
      +
      +  gzip-size@6.0.0:
      +    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
      +    engines: {node: '>=10'}
      +
      +  handle-thing@2.0.1:
      +    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
      +
      +  hard-rejection@2.1.0:
      +    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
      +    engines: {node: '>=6'}
      +
      +  has-bigints@1.0.2:
      +    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
      +
      +  has-flag@3.0.0:
      +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
      +    engines: {node: '>=4'}
      +
      +  has-flag@4.0.0:
      +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
      +    engines: {node: '>=8'}
      +
      +  has-property-descriptors@1.0.2:
      +    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
      +
      +  has-proto@1.0.3:
      +    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
      +    engines: {node: '>= 0.4'}
      +
      +  has-symbols@1.0.3:
      +    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
      +    engines: {node: '>= 0.4'}
      +
      +  has-tostringtag@1.0.2:
      +    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
      +    engines: {node: '>= 0.4'}
      +
      +  has-unicode@2.0.1:
      +    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
      +
      +  has-yarn@3.0.0:
      +    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  hasharray@1.1.2:
      +    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
      +
      +  hasown@2.0.2:
      +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  hast-util-from-parse5@8.0.1:
      +    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
      +
      +  hast-util-parse-selector@4.0.0:
      +    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
      +
      +  hast-util-raw@9.0.2:
      +    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
      +
      +  hast-util-to-estree@3.1.0:
      +    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
      +
      +  hast-util-to-jsx-runtime@2.3.0:
      +    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
      +
      +  hast-util-to-parse5@8.0.0:
      +    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
      +
      +  hast-util-whitespace@3.0.0:
      +    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
      +
      +  hastscript@8.0.0:
      +    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
      +
      +  he@1.2.0:
      +    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
      +    hasBin: true
      +
      +  history@4.10.1:
      +    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
      +
      +  hoist-non-react-statics@3.3.2:
      +    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
      +
      +  hosted-git-info@2.8.9:
      +    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
      +
      +  hosted-git-info@4.1.0:
      +    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
      +    engines: {node: '>=10'}
      +
      +  hosted-git-info@6.1.1:
      +    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  hosted-git-info@7.0.1:
      +    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
      +    engines: {node: ^16.14.0 || >=18.0.0}
      +
      +  hpack.js@2.1.6:
      +    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
      +
      +  html-encoding-sniffer@3.0.0:
      +    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
      +    engines: {node: '>=12'}
      +
      +  html-entities@2.5.2:
      +    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
      +
      +  html-escaper@2.0.2:
      +    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
      +
      +  html-minifier-terser@6.1.0:
      +    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
      +    engines: {node: '>=12'}
      +    hasBin: true
      +
      +  html-minifier-terser@7.2.0:
      +    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
      +    engines: {node: ^14.13.1 || >=16.0.0}
      +    hasBin: true
      +
      +  html-tags@3.3.1:
      +    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
      +    engines: {node: '>=8'}
      +
      +  html-void-elements@3.0.0:
      +    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
      +
      +  html-webpack-plugin@5.6.0:
      +    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      webpack: ^5.20.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
      +
      +  htmlparser2@6.1.0:
      +    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
      +
      +  htmlparser2@8.0.2:
      +    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
      +
      +  http-cache-semantics@4.1.1:
      +    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
      +
      +  http-deceiver@1.2.7:
      +    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
      +
      +  http-errors@1.6.3:
      +    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
      +    engines: {node: '>= 0.6'}
      +
      +  http-errors@2.0.0:
      +    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
      +    engines: {node: '>= 0.8'}
      +
      +  http-parser-js@0.5.8:
      +    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
      +
      +  http-proxy-agent@4.0.1:
      +    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
      +    engines: {node: '>= 6'}
      +
      +  http-proxy-agent@5.0.0:
      +    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
      +    engines: {node: '>= 6'}
      +
      +  http-proxy-middleware@2.0.6:
      +    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
      +    engines: {node: '>=12.0.0'}
      +    peerDependencies:
      +      '@types/express': ^4.17.13
      +    peerDependenciesMeta:
      +      '@types/express':
      +        optional: true
      +
      +  http-proxy@1.18.1:
      +    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
      +    engines: {node: '>=8.0.0'}
      +
      +  http-server@14.1.1:
      +    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
      +    engines: {node: '>=12'}
      +    hasBin: true
      +
      +  http2-wrapper@2.2.1:
      +    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
      +    engines: {node: '>=10.19.0'}
      +
      +  https-proxy-agent@5.0.1:
      +    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
      +    engines: {node: '>= 6'}
      +
      +  human-signals@2.1.0:
      +    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
      +    engines: {node: '>=10.17.0'}
      +
      +  humanize-ms@1.2.1:
      +    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
      +
      +  hyphenate-style-name@1.0.4:
      +    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
      +
      +  iconv-lite@0.4.24:
      +    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  iconv-lite@0.6.3:
      +    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
      +    engines: {node: '>=0.10.0'}
      +
      +  icss-utils@5.1.0:
      +    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  ieee754@1.2.1:
      +    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
      +
      +  ignore-walk@4.0.1:
      +    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
      +    engines: {node: '>=10'}
      +
      +  ignore-walk@6.0.4:
      +    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  ignore@5.3.1:
      +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
      +    engines: {node: '>= 4'}
      +
      +  image-size@1.1.1:
      +    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
      +    engines: {node: '>=16.x'}
      +    hasBin: true
      +
      +  immediate@3.0.6:
      +    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
      +
      +  immer@10.0.4:
      +    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
      +
      +  immer@9.0.21:
      +    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
      +
      +  immutability-helper@3.1.1:
      +    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
      +
      +  import-fresh@3.3.0:
      +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
      +    engines: {node: '>=6'}
      +
      +  import-lazy@4.0.0:
      +    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
      +    engines: {node: '>=8'}
      +
      +  import-local@3.1.0:
      +    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
      +    engines: {node: '>=8'}
      +    hasBin: true
      +
      +  imurmurhash@0.1.4:
      +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
      +    engines: {node: '>=0.8.19'}
      +
      +  indent-string@4.0.0:
      +    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
      +    engines: {node: '>=8'}
      +
      +  indent-string@5.0.0:
      +    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
      +    engines: {node: '>=12'}
      +
      +  individual@3.0.0:
      +    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
      +
      +  infer-owner@1.0.4:
      +    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
      +
      +  infima@0.2.0-alpha.43:
      +    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
      +    engines: {node: '>=12'}
      +
      +  inflight@1.0.6:
      +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
      +
      +  inherits@2.0.3:
      +    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
      +
      +  inherits@2.0.4:
      +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
      +
      +  ini@1.3.8:
      +    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
      +
      +  ini@2.0.0:
      +    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
      +    engines: {node: '>=10'}
      +
      +  ini@3.0.1:
      +    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  inline-style-parser@0.1.1:
      +    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
      +
      +  inline-style-parser@0.2.2:
      +    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
      +
      +  inline-style-prefixer@7.0.0:
      +    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
      +
      +  inquirer@8.2.6:
      +    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
      +    engines: {node: '>=12.0.0'}
      +
      +  internal-slot@1.0.7:
      +    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
      +    engines: {node: '>= 0.4'}
      +
      +  interpret@1.4.0:
      +    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
      +    engines: {node: '>= 0.10'}
      +
      +  interpret@3.1.1:
      +    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
      +    engines: {node: '>=10.13.0'}
      +
      +  invariant@2.2.4:
      +    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
      +
      +  ip-address@9.0.5:
      +    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
      +    engines: {node: '>= 12'}
      +
      +  ipaddr.js@1.9.1:
      +    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
      +    engines: {node: '>= 0.10'}
      +
      +  ipaddr.js@2.1.0:
      +    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
      +    engines: {node: '>= 10'}
      +
      +  is-alphabetical@2.0.1:
      +    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
      +
      +  is-alphanumerical@2.0.1:
      +    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
      +
      +  is-arguments@1.1.1:
      +    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-array-buffer@3.0.4:
      +    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-arrayish@0.2.1:
      +    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
      +
      +  is-arrayish@0.3.2:
      +    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
      +
      +  is-async-function@2.0.0:
      +    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-bigint@1.0.4:
      +    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
      +
      +  is-binary-path@2.1.0:
      +    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
      +    engines: {node: '>=8'}
      +
      +  is-boolean-object@1.1.2:
      +    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-builtin-module@3.2.1:
      +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
      +    engines: {node: '>=6'}
      +
      +  is-callable@1.2.7:
      +    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-ci@3.0.1:
      +    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
      +    hasBin: true
      +
      +  is-core-module@2.13.1:
      +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
      +
      +  is-data-view@1.0.1:
      +    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-date-object@1.0.5:
      +    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-decimal@2.0.1:
      +    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
      +
      +  is-docker@2.2.1:
      +    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
      +    engines: {node: '>=8'}
      +    hasBin: true
      +
      +  is-docker@3.0.0:
      +    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +    hasBin: true
      +
      +  is-extendable@0.1.1:
      +    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-extglob@2.1.1:
      +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-finalizationregistry@1.0.2:
      +    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
      +
      +  is-fullwidth-code-point@3.0.0:
      +    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
      +    engines: {node: '>=8'}
      +
      +  is-generator-fn@2.1.0:
      +    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
      +    engines: {node: '>=6'}
      +
      +  is-generator-function@1.0.10:
      +    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-glob@4.0.3:
      +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-hexadecimal@2.0.1:
      +    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
      +
      +  is-inside-container@1.0.0:
      +    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
      +    engines: {node: '>=14.16'}
      +    hasBin: true
      +
      +  is-installed-globally@0.4.0:
      +    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
      +    engines: {node: '>=10'}
      +
      +  is-interactive@1.0.0:
      +    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
      +    engines: {node: '>=8'}
      +
      +  is-lambda@1.0.1:
      +    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
      +
      +  is-map@2.0.3:
      +    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-negative-zero@2.0.3:
      +    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-network-error@1.1.0:
      +    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
      +    engines: {node: '>=16'}
      +
      +  is-npm@6.0.0:
      +    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  is-number-object@1.0.7:
      +    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-number@7.0.0:
      +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
      +    engines: {node: '>=0.12.0'}
      +
      +  is-obj@1.0.1:
      +    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-obj@2.0.0:
      +    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
      +    engines: {node: '>=8'}
      +
      +  is-path-cwd@2.2.0:
      +    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
      +    engines: {node: '>=6'}
      +
      +  is-path-inside@3.0.3:
      +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
      +    engines: {node: '>=8'}
      +
      +  is-plain-obj@1.1.0:
      +    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-plain-obj@2.1.0:
      +    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
      +    engines: {node: '>=8'}
      +
      +  is-plain-obj@3.0.0:
      +    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
      +    engines: {node: '>=10'}
      +
      +  is-plain-obj@4.1.0:
      +    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
      +    engines: {node: '>=12'}
      +
      +  is-plain-object@2.0.4:
      +    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-plain-object@5.0.0:
      +    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-potential-custom-element-name@1.0.1:
      +    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
      +
      +  is-reference@3.0.2:
      +    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
      +
      +  is-regex@1.1.4:
      +    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-regexp@1.0.0:
      +    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-root@2.1.0:
      +    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
      +    engines: {node: '>=6'}
      +
      +  is-scoped@2.1.0:
      +    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
      +    engines: {node: '>=8'}
      +
      +  is-set@2.0.3:
      +    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-shared-array-buffer@1.0.3:
      +    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-stream@2.0.1:
      +    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
      +    engines: {node: '>=8'}
      +
      +  is-string@1.0.7:
      +    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-subdir@1.2.0:
      +    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
      +    engines: {node: '>=4'}
      +
      +  is-symbol@1.0.4:
      +    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-typed-array@1.1.13:
      +    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-typedarray@1.0.0:
      +    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
      +
      +  is-unicode-supported@0.1.0:
      +    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
      +    engines: {node: '>=10'}
      +
      +  is-utf8@0.2.1:
      +    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
      +
      +  is-weakmap@2.0.2:
      +    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-weakref@1.0.2:
      +    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
      +
      +  is-weakset@2.0.3:
      +    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  is-windows@1.0.2:
      +    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  is-wsl@2.2.0:
      +    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
      +    engines: {node: '>=8'}
      +
      +  is-wsl@3.1.0:
      +    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
      +    engines: {node: '>=16'}
      +
      +  is-yarn-global@0.4.1:
      +    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
      +    engines: {node: '>=12'}
      +
      +  isarray@0.0.1:
      +    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
      +
      +  isarray@1.0.0:
      +    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
      +
      +  isarray@2.0.5:
      +    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
      +
      +  isbinaryfile@4.0.10:
      +    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
      +    engines: {node: '>= 8.0.0'}
      +
      +  isbinaryfile@5.0.2:
      +    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
      +    engines: {node: '>= 18.0.0'}
      +
      +  isexe@2.0.0:
      +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
      +
      +  isobject@3.0.1:
      +    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  istanbul-lib-coverage@3.2.2:
      +    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
      +    engines: {node: '>=8'}
      +
      +  istanbul-lib-instrument@5.2.1:
      +    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
      +    engines: {node: '>=8'}
      +
      +  istanbul-lib-instrument@6.0.2:
      +    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
      +    engines: {node: '>=10'}
      +
      +  istanbul-lib-report@3.0.1:
      +    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
      +    engines: {node: '>=10'}
      +
      +  istanbul-lib-source-maps@4.0.1:
      +    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
      +    engines: {node: '>=10'}
      +
      +  istanbul-reports@3.1.7:
      +    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
      +    engines: {node: '>=8'}
      +
      +  iterator.prototype@1.1.2:
      +    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
      +
      +  itertools@2.2.5:
      +    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
      +
      +  jackspeak@2.3.6:
      +    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
      +    engines: {node: '>=14'}
      +
      +  jake@10.8.7:
      +    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  jclass@1.2.1:
      +    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
      +    engines: {node: '>= 0.6'}
      +
      +  jest-changed-files@29.7.0:
      +    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-circus@29.7.0:
      +    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-cli@29.7.0:
      +    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
      +
      +  jest-config@29.7.0:
      +    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      '@types/node': '*'
      +      ts-node: '>=9.0.0'
      +    peerDependenciesMeta:
      +      '@types/node':
      +        optional: true
      +      ts-node:
      +        optional: true
      +
      +  jest-diff@29.7.0:
      +    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-docblock@29.7.0:
      +    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-each@29.7.0:
      +    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-environment-jsdom@29.7.0:
      +    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    peerDependencies:
      +      canvas: ^2.5.0
      +    peerDependenciesMeta:
      +      canvas:
      +        optional: true
      +
      +  jest-environment-node@29.7.0:
      +    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-get-type@29.6.3:
      +    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-haste-map@29.7.0:
      +    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-leak-detector@29.7.0:
      +    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-matcher-utils@29.7.0:
      +    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-message-util@29.7.0:
      +    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-mock@29.7.0:
      +    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-pnp-resolver@1.2.3:
      +    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
      +    engines: {node: '>=6'}
      +    peerDependencies:
      +      jest-resolve: '*'
      +    peerDependenciesMeta:
      +      jest-resolve:
      +        optional: true
      +
      +  jest-regex-util@29.6.3:
      +    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-resolve-dependencies@29.7.0:
      +    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-resolve@29.7.0:
      +    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-runner@29.7.0:
      +    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-runtime@29.7.0:
      +    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-snapshot@29.7.0:
      +    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-util@29.7.0:
      +    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-validate@29.7.0:
      +    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-watcher@29.7.0:
      +    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest-worker@27.5.1:
      +    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
      +    engines: {node: '>= 10.13.0'}
      +
      +  jest-worker@29.7.0:
      +    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  jest@29.7.0:
      +    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      +    peerDependenciesMeta:
      +      node-notifier:
      +        optional: true
      +
      +  jiti@1.21.0:
      +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
      +    hasBin: true
      +
      +  joi@17.12.2:
      +    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
      +
      +  js-cookie@2.2.1:
      +    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
      +
      +  js-tokens@4.0.0:
      +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
      +
      +  js-yaml@3.14.1:
      +    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
      +    hasBin: true
      +
      +  js-yaml@4.1.0:
      +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
      +    hasBin: true
      +
      +  jsbn@1.1.0:
      +    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
      +
      +  jsdom@20.0.3:
      +    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      canvas: ^2.5.0
      +    peerDependenciesMeta:
      +      canvas:
      +        optional: true
      +
      +  jsesc@0.5.0:
      +    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
      +    hasBin: true
      +
      +  jsesc@2.5.2:
      +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  jsesc@3.0.2:
      +    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
      +    engines: {node: '>=6'}
      +    hasBin: true
      +
      +  json-buffer@3.0.1:
      +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
      +
      +  json-parse-even-better-errors@2.3.1:
      +    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
      +
      +  json-parse-even-better-errors@3.0.1:
      +    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  json-schema-traverse@0.4.1:
      +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
      +
      +  json-schema-traverse@1.0.0:
      +    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
      +
      +  json-stable-stringify-without-jsonify@1.0.1:
      +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
      +
      +  json-stringify-nice@1.1.4:
      +    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
      +
      +  json-stringify-safe@5.0.1:
      +    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
      +
      +  json5@1.0.2:
      +    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
      +    hasBin: true
      +
      +  json5@2.2.3:
      +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
      +    engines: {node: '>=6'}
      +    hasBin: true
      +
      +  jsonfile@6.1.0:
      +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
      +
      +  jsonparse@1.3.1:
      +    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
      +    engines: {'0': node >= 0.2.0}
      +
      +  jsx-ast-utils@3.3.5:
      +    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
      +    engines: {node: '>=4.0'}
      +
      +  jszip@3.10.1:
      +    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
      +
      +  just-diff-apply@5.5.0:
      +    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
      +
      +  just-diff@5.2.0:
      +    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
      +
      +  just-extend@6.2.0:
      +    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
      +
      +  keyv@4.5.4:
      +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
      +
      +  kind-of@6.0.3:
      +    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
      +    engines: {node: '>=0.10.0'}
      +
      +  kleur@3.0.3:
      +    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
      +    engines: {node: '>=6'}
      +
      +  kuler@2.0.0:
      +    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
      +
      +  language-subtag-registry@0.3.22:
      +    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
      +
      +  language-tags@1.0.9:
      +    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
      +    engines: {node: '>=0.10'}
      +
      +  latest-version@7.0.0:
      +    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
      +    engines: {node: '>=14.16'}
      +
      +  launch-editor@2.6.1:
      +    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
      +
      +  leven@3.1.0:
      +    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
      +    engines: {node: '>=6'}
      +
      +  levn@0.4.1:
      +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  lie@3.3.0:
      +    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
      +
      +  lilconfig@2.1.0:
      +    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
      +    engines: {node: '>=10'}
      +
      +  lilconfig@3.1.1:
      +    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
      +    engines: {node: '>=14'}
      +
      +  lines-and-columns@1.2.4:
      +    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
      +
      +  load-json-file@6.2.0:
      +    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
      +    engines: {node: '>=8'}
      +
      +  load-json-file@7.0.1:
      +    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  load-script@1.0.0:
      +    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
      +
      +  load-yaml-file@0.2.0:
      +    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
      +    engines: {node: '>=6'}
      +
      +  loader-runner@4.3.0:
      +    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
      +    engines: {node: '>=6.11.5'}
      +
      +  loader-utils@2.0.4:
      +    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
      +    engines: {node: '>=8.9.0'}
      +
      +  loader-utils@3.2.1:
      +    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
      +    engines: {node: '>= 12.13.0'}
      +
      +  locate-path@3.0.0:
      +    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
      +    engines: {node: '>=6'}
      +
      +  locate-path@5.0.0:
      +    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
      +    engines: {node: '>=8'}
      +
      +  locate-path@6.0.0:
      +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
      +    engines: {node: '>=10'}
      +
      +  locate-path@7.2.0:
      +    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  lodash.debounce@4.0.8:
      +    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
      +
      +  lodash.get@4.4.2:
      +    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
      +
      +  lodash.memoize@4.1.2:
      +    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
      +
      +  lodash.merge@4.6.2:
      +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
      +
      +  lodash.uniq@4.5.0:
      +    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
      +
      +  lodash@4.17.21:
      +    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
      +
      +  log-symbols@4.1.0:
      +    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
      +    engines: {node: '>=10'}
      +
      +  logform@2.6.0:
      +    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
      +    engines: {node: '>= 12.0.0'}
      +
      +  longest-streak@3.1.0:
      +    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
      +
      +  loose-envify@1.4.0:
      +    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
      +    hasBin: true
      +
      +  loupe@3.1.0:
      +    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
      +
      +  lower-case@2.0.2:
      +    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
      +
      +  lowercase-keys@3.0.0:
      +    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  lru-cache@10.2.0:
      +    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
      +    engines: {node: 14 || >=16.14}
      +
      +  lru-cache@5.1.1:
      +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
      +
      +  lru-cache@6.0.0:
      +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
      +    engines: {node: '>=10'}
      +
      +  lru-cache@7.10.1:
      +    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
      +    engines: {node: '>=12'}
      +
      +  lru-cache@7.18.3:
      +    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
      +    engines: {node: '>=12'}
      +
      +  lz-string@1.5.0:
      +    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
      +    hasBin: true
      +
      +  make-dir@4.0.0:
      +    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
      +    engines: {node: '>=10'}
      +
      +  make-error@1.3.6:
      +    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
      +
      +  make-fetch-happen@10.2.1:
      +    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  make-fetch-happen@11.1.1:
      +    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  make-fetch-happen@9.1.0:
      +    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
      +    engines: {node: '>= 10'}
      +
      +  makeerror@1.0.12:
      +    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
      +
      +  map-age-cleaner@0.1.3:
      +    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
      +    engines: {node: '>=6'}
      +
      +  map-obj@1.0.1:
      +    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  map-obj@4.3.0:
      +    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
      +    engines: {node: '>=8'}
      +
      +  markdown-extensions@2.0.0:
      +    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
      +    engines: {node: '>=16'}
      +
      +  markdown-table@3.0.3:
      +    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
      +
      +  mdast-util-directive@3.0.0:
      +    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
      +
      +  mdast-util-find-and-replace@3.0.1:
      +    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
      +
      +  mdast-util-from-markdown@2.0.0:
      +    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
      +
      +  mdast-util-frontmatter@2.0.1:
      +    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
      +
      +  mdast-util-gfm-autolink-literal@2.0.0:
      +    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
      +
      +  mdast-util-gfm-footnote@2.0.0:
      +    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
      +
      +  mdast-util-gfm-strikethrough@2.0.0:
      +    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
      +
      +  mdast-util-gfm-table@2.0.0:
      +    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
      +
      +  mdast-util-gfm-task-list-item@2.0.0:
      +    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
      +
      +  mdast-util-gfm@3.0.0:
      +    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
      +
      +  mdast-util-mdx-expression@2.0.0:
      +    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
      +
      +  mdast-util-mdx-jsx@3.1.2:
      +    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
      +
      +  mdast-util-mdx@3.0.0:
      +    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
      +
      +  mdast-util-mdxjs-esm@2.0.1:
      +    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
      +
      +  mdast-util-phrasing@4.1.0:
      +    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
      +
      +  mdast-util-to-hast@13.1.0:
      +    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
      +
      +  mdast-util-to-markdown@2.1.0:
      +    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
      +
      +  mdast-util-to-string@4.0.0:
      +    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
      +
      +  mdn-data@2.0.14:
      +    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
      +
      +  mdn-data@2.0.28:
      +    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
      +
      +  mdn-data@2.0.30:
      +    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
      +
      +  media-typer@0.3.0:
      +    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
      +    engines: {node: '>= 0.6'}
      +
      +  mem-fs-editor@9.7.0:
      +    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
      +    engines: {node: '>=12.10.0'}
      +    peerDependencies:
      +      mem-fs: ^2.1.0
      +    peerDependenciesMeta:
      +      mem-fs:
      +        optional: true
      +
      +  mem-fs@2.3.0:
      +    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
      +    engines: {node: '>=12'}
      +
      +  mem@8.1.1:
      +    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
      +    engines: {node: '>=10'}
      +
      +  memfs@3.5.3:
      +    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
      +    engines: {node: '>= 4.0.0'}
      +
      +  memfs@4.8.0:
      +    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
      +    engines: {node: '>= 4.0.0'}
      +
      +  memoize-one@5.2.1:
      +    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
      +
      +  meow@10.1.5:
      +    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  merge-descriptors@1.0.1:
      +    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
      +
      +  merge-stream@2.0.0:
      +    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
      +
      +  merge2@1.4.1:
      +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
      +    engines: {node: '>= 8'}
      +
      +  methods@1.1.2:
      +    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
      +    engines: {node: '>= 0.6'}
      +
      +  micromark-core-commonmark@2.0.0:
      +    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
      +
      +  micromark-extension-directive@3.0.0:
      +    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
      +
      +  micromark-extension-frontmatter@2.0.0:
      +    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
      +
      +  micromark-extension-gfm-autolink-literal@2.0.0:
      +    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
      +
      +  micromark-extension-gfm-footnote@2.0.0:
      +    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
      +
      +  micromark-extension-gfm-strikethrough@2.0.0:
      +    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
      +
      +  micromark-extension-gfm-table@2.0.0:
      +    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
      +
      +  micromark-extension-gfm-tagfilter@2.0.0:
      +    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
      +
      +  micromark-extension-gfm-task-list-item@2.0.1:
      +    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
      +
      +  micromark-extension-gfm@3.0.0:
      +    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
      +
      +  micromark-extension-mdx-expression@3.0.0:
      +    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
      +
      +  micromark-extension-mdx-jsx@3.0.0:
      +    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
      +
      +  micromark-extension-mdx-md@2.0.0:
      +    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
      +
      +  micromark-extension-mdxjs-esm@3.0.0:
      +    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
      +
      +  micromark-extension-mdxjs@3.0.0:
      +    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
      +
      +  micromark-factory-destination@2.0.0:
      +    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
      +
      +  micromark-factory-label@2.0.0:
      +    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
      +
      +  micromark-factory-mdx-expression@2.0.1:
      +    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
      +
      +  micromark-factory-space@1.1.0:
      +    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
      +
      +  micromark-factory-space@2.0.0:
      +    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
      +
      +  micromark-factory-title@2.0.0:
      +    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
      +
      +  micromark-factory-whitespace@2.0.0:
      +    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
      +
      +  micromark-util-character@1.2.0:
      +    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
      +
      +  micromark-util-character@2.1.0:
      +    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
      +
      +  micromark-util-chunked@2.0.0:
      +    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
      +
      +  micromark-util-classify-character@2.0.0:
      +    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
      +
      +  micromark-util-combine-extensions@2.0.0:
      +    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
      +
      +  micromark-util-decode-numeric-character-reference@2.0.1:
      +    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
      +
      +  micromark-util-decode-string@2.0.0:
      +    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
      +
      +  micromark-util-encode@2.0.0:
      +    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
      +
      +  micromark-util-events-to-acorn@2.0.2:
      +    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
      +
      +  micromark-util-html-tag-name@2.0.0:
      +    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
      +
      +  micromark-util-normalize-identifier@2.0.0:
      +    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
      +
      +  micromark-util-resolve-all@2.0.0:
      +    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
      +
      +  micromark-util-sanitize-uri@2.0.0:
      +    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
      +
      +  micromark-util-subtokenize@2.0.0:
      +    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
      +
      +  micromark-util-symbol@1.1.0:
      +    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
      +
      +  micromark-util-symbol@2.0.0:
      +    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
      +
      +  micromark-util-types@1.1.0:
      +    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
      +
      +  micromark-util-types@2.0.0:
      +    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
      +
      +  micromark@4.0.0:
      +    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
      +
      +  micromatch@4.0.5:
      +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
      +    engines: {node: '>=8.6'}
      +
      +  mime-db@1.33.0:
      +    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
      +    engines: {node: '>= 0.6'}
      +
      +  mime-db@1.52.0:
      +    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
      +    engines: {node: '>= 0.6'}
      +
      +  mime-types@2.1.18:
      +    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
      +    engines: {node: '>= 0.6'}
      +
      +  mime-types@2.1.35:
      +    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
      +    engines: {node: '>= 0.6'}
      +
      +  mime@1.6.0:
      +    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  mimic-fn@2.1.0:
      +    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
      +    engines: {node: '>=6'}
      +
      +  mimic-fn@3.1.0:
      +    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
      +    engines: {node: '>=8'}
      +
      +  mimic-response@3.1.0:
      +    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
      +    engines: {node: '>=10'}
      +
      +  mimic-response@4.0.0:
      +    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  min-indent@1.0.1:
      +    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
      +    engines: {node: '>=4'}
      +
      +  mini-css-extract-plugin@2.8.1:
      +    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
      +
      +  minimalistic-assert@1.0.1:
      +    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
      +
      +  minimatch@3.1.2:
      +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
      +
      +  minimatch@5.0.1:
      +    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
      +    engines: {node: '>=10'}
      +
      +  minimatch@5.1.6:
      +    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
      +    engines: {node: '>=10'}
      +
      +  minimatch@7.4.6:
      +    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
      +    engines: {node: '>=10'}
      +
      +  minimatch@9.0.3:
      +    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +
      +  minimist-options@4.1.0:
      +    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
      +    engines: {node: '>= 6'}
      +
      +  minimist@1.2.8:
      +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
      +
      +  minipass-collect@1.0.2:
      +    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
      +    engines: {node: '>= 8'}
      +
      +  minipass-fetch@1.4.1:
      +    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
      +    engines: {node: '>=8'}
      +
      +  minipass-fetch@2.1.2:
      +    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  minipass-fetch@3.0.4:
      +    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  minipass-flush@1.0.5:
      +    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
      +    engines: {node: '>= 8'}
      +
      +  minipass-json-stream@1.0.1:
      +    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
      +
      +  minipass-pipeline@1.2.4:
      +    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
      +    engines: {node: '>=8'}
      +
      +  minipass-sized@1.0.3:
      +    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
      +    engines: {node: '>=8'}
      +
      +  minipass@3.3.6:
      +    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
      +    engines: {node: '>=8'}
      +
      +  minipass@5.0.0:
      +    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
      +    engines: {node: '>=8'}
      +
      +  minipass@7.0.4:
      +    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +
      +  minizlib@2.1.2:
      +    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
      +    engines: {node: '>= 8'}
      +
      +  mkdirp-infer-owner@2.0.0:
      +    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
      +    engines: {node: '>=10'}
      +
      +  mkdirp@0.5.6:
      +    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
      +    hasBin: true
      +
      +  mkdirp@1.0.4:
      +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  mocha@10.3.0:
      +    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
      +    engines: {node: '>= 14.0.0'}
      +    hasBin: true
      +
      +  moo@0.5.2:
      +    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
      +
      +  mrmime@2.0.0:
      +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
      +    engines: {node: '>=10'}
      +
      +  ms@2.0.0:
      +    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
      +
      +  ms@2.1.2:
      +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
      +
      +  ms@2.1.3:
      +    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
      +
      +  multicast-dns@7.2.5:
      +    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
      +    hasBin: true
      +
      +  multimatch@5.0.0:
      +    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
      +    engines: {node: '>=10'}
      +
      +  mute-stream@0.0.8:
      +    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
      +
      +  mz@2.7.0:
      +    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
      +
      +  nano-css@5.6.1:
      +    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
      +
      +  nanoid@3.3.7:
      +    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
      +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
      +    hasBin: true
      +
      +  natural-compare@1.4.0:
      +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
      +
      +  ndjson@2.0.0:
      +    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  nearley@2.20.1:
      +    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
      +    hasBin: true
      +
      +  negotiator@0.6.3:
      +    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
      +    engines: {node: '>= 0.6'}
      +
      +  neo-async@2.6.2:
      +    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
      +
      +  neovim@5.1.0:
      +    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  nerf-dart@1.0.0:
      +    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
      +
      +  next@14.1.4:
      +    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
      +    engines: {node: '>=18.17.0'}
      +    hasBin: true
      +    peerDependencies:
      +      '@opentelemetry/api': ^1.1.0
      +      react: ^18.2.0 || 18
      +      react-dom: ^18.2.0 || 18
      +      sass: ^1.3.0
      +    peerDependenciesMeta:
      +      '@opentelemetry/api':
      +        optional: true
      +      sass:
      +        optional: true
      +
      +  nise@5.1.9:
      +    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
      +
      +  no-case@3.0.4:
      +    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
      +
      +  node-emoji@2.1.3:
      +    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
      +    engines: {node: '>=18'}
      +
      +  node-fetch@2.7.0:
      +    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
      +    engines: {node: 4.x || >=6.0.0}
      +    peerDependencies:
      +      encoding: ^0.1.0
      +    peerDependenciesMeta:
      +      encoding:
      +        optional: true
      +
      +  node-forge@1.3.1:
      +    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
      +    engines: {node: '>= 6.13.0'}
      +
      +  node-gyp@8.4.1:
      +    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
      +    engines: {node: '>= 10.12.0'}
      +    hasBin: true
      +
      +  node-gyp@9.4.1:
      +    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
      +    engines: {node: ^12.13 || ^14.13 || >=16}
      +    hasBin: true
      +
      +  node-html-parser@6.1.12:
      +    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
      +
      +  node-int64@0.4.0:
      +    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
      +
      +  node-releases@2.0.14:
      +    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
      +
      +  nopt@5.0.0:
      +    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
      +    engines: {node: '>=6'}
      +    hasBin: true
      +
      +  nopt@6.0.0:
      +    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +    hasBin: true
      +
      +  normalize-package-data@2.5.0:
      +    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
      +
      +  normalize-package-data@3.0.3:
      +    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
      +    engines: {node: '>=10'}
      +
      +  normalize-package-data@5.0.0:
      +    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  normalize-path@3.0.0:
      +    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  normalize-range@0.1.2:
      +    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  normalize-registry-url@2.0.0:
      +    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
      +
      +  normalize-url@6.1.0:
      +    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
      +    engines: {node: '>=10'}
      +
      +  normalize-url@8.0.1:
      +    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
      +    engines: {node: '>=14.16'}
      +
      +  npm-bundled@1.1.2:
      +    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
      +
      +  npm-bundled@3.0.0:
      +    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-install-checks@4.0.0:
      +    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
      +    engines: {node: '>=10'}
      +
      +  npm-install-checks@6.3.0:
      +    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-normalize-package-bin@1.0.1:
      +    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
      +
      +  npm-normalize-package-bin@2.0.0:
      +    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  npm-normalize-package-bin@3.0.1:
      +    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-package-arg@10.1.0:
      +    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-package-arg@11.0.1:
      +    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
      +    engines: {node: ^16.14.0 || >=18.0.0}
      +
      +  npm-package-arg@8.1.5:
      +    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
      +    engines: {node: '>=10'}
      +
      +  npm-packlist@3.0.0:
      +    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  npm-packlist@7.0.4:
      +    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-pick-manifest@6.1.1:
      +    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
      +
      +  npm-pick-manifest@8.0.2:
      +    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-registry-fetch@12.0.2:
      +    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +
      +  npm-registry-fetch@14.0.5:
      +    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  npm-run-path@4.0.1:
      +    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
      +    engines: {node: '>=8'}
      +
      +  npmlog@5.0.1:
      +    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
      +
      +  npmlog@6.0.2:
      +    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  nprogress@0.2.0:
      +    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
      +
      +  nth-check@2.1.1:
      +    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
      +
      +  nwsapi@2.2.7:
      +    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
      +
      +  object-assign@4.1.1:
      +    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  object-hash@3.0.0:
      +    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
      +    engines: {node: '>= 6'}
      +
      +  object-inspect@1.13.1:
      +    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
      +
      +  object-is@1.1.6:
      +    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
      +    engines: {node: '>= 0.4'}
      +
      +  object-keys@1.1.1:
      +    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.assign@4.1.5:
      +    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.entries@1.1.8:
      +    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.fromentries@2.0.8:
      +    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.groupby@1.0.3:
      +    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.hasown@1.1.4:
      +    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
      +    engines: {node: '>= 0.4'}
      +
      +  object.values@1.2.0:
      +    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  obuf@1.1.2:
      +    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
      +
      +  on-finished@2.4.1:
      +    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
      +    engines: {node: '>= 0.8'}
      +
      +  on-headers@1.0.2:
      +    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
      +    engines: {node: '>= 0.8'}
      +
      +  once@1.4.0:
      +    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
      +
      +  one-time@1.0.0:
      +    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
      +
      +  onetime@5.1.2:
      +    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
      +    engines: {node: '>=6'}
      +
      +  open@10.1.0:
      +    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
      +    engines: {node: '>=18'}
      +
      +  open@8.4.2:
      +    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
      +    engines: {node: '>=12'}
      +
      +  opener@1.5.2:
      +    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
      +    hasBin: true
      +
      +  optionator@0.9.3:
      +    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  ora@5.4.1:
      +    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
      +    engines: {node: '>=10'}
      +
      +  os-tmpdir@1.0.2:
      +    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
      +    engines: {node: '>=0.10.0'}
      +
      +  p-cancelable@3.0.0:
      +    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
      +    engines: {node: '>=12.20'}
      +
      +  p-defer@1.0.0:
      +    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
      +    engines: {node: '>=4'}
      +
      +  p-filter@2.1.0:
      +    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
      +    engines: {node: '>=8'}
      +
      +  p-finally@1.0.0:
      +    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
      +    engines: {node: '>=4'}
      +
      +  p-limit@2.3.0:
      +    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
      +    engines: {node: '>=6'}
      +
      +  p-limit@3.1.0:
      +    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
      +    engines: {node: '>=10'}
      +
      +  p-limit@4.0.0:
      +    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  p-locate@3.0.0:
      +    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
      +    engines: {node: '>=6'}
      +
      +  p-locate@4.1.0:
      +    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
      +    engines: {node: '>=8'}
      +
      +  p-locate@5.0.0:
      +    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
      +    engines: {node: '>=10'}
      +
      +  p-locate@6.0.0:
      +    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  p-map@2.1.0:
      +    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
      +    engines: {node: '>=6'}
      +
      +  p-map@4.0.0:
      +    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
      +    engines: {node: '>=10'}
      +
      +  p-queue@6.6.2:
      +    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
      +    engines: {node: '>=8'}
      +
      +  p-retry@4.6.2:
      +    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
      +    engines: {node: '>=8'}
      +
      +  p-retry@6.2.0:
      +    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
      +    engines: {node: '>=16.17'}
      +
      +  p-timeout@3.2.0:
      +    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
      +    engines: {node: '>=8'}
      +
      +  p-transform@1.3.0:
      +    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
      +    engines: {node: '>=12.10.0'}
      +
      +  p-try@2.2.0:
      +    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
      +    engines: {node: '>=6'}
      +
      +  package-json@8.1.1:
      +    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
      +    engines: {node: '>=14.16'}
      +
      +  pacote@12.0.3:
      +    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +    hasBin: true
      +
      +  pacote@15.2.0:
      +    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
      +
      +  pako@1.0.11:
      +    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
      +
      +  param-case@3.0.4:
      +    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
      +
      +  parent-module@1.0.1:
      +    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
      +    engines: {node: '>=6'}
      +
      +  parse-conflict-json@2.0.2:
      +    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  parse-entities@4.0.1:
      +    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
      +
      +  parse-json@5.2.0:
      +    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
      +    engines: {node: '>=8'}
      +
      +  parse-ms@2.1.0:
      +    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
      +    engines: {node: '>=6'}
      +
      +  parse-numeric-range@1.3.0:
      +    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
      +
      +  parse-srcset@1.0.2:
      +    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
      +
      +  parse5-htmlparser2-tree-adapter@7.0.0:
      +    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
      +
      +  parse5@7.1.2:
      +    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
      +
      +  parseurl@1.3.3:
      +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
      +    engines: {node: '>= 0.8'}
      +
      +  pascal-case@3.1.2:
      +    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
      +
      +  path-absolute@1.0.1:
      +    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
      +    engines: {node: '>=4'}
      +
      +  path-exists@3.0.0:
      +    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
      +    engines: {node: '>=4'}
      +
      +  path-exists@4.0.0:
      +    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
      +    engines: {node: '>=8'}
      +
      +  path-exists@5.0.0:
      +    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  path-is-absolute@1.0.1:
      +    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  path-is-inside@1.0.2:
      +    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
      +
      +  path-key@3.1.1:
      +    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
      +    engines: {node: '>=8'}
      +
      +  path-name@1.0.0:
      +    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
      +
      +  path-parse@1.0.7:
      +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
      +
      +  path-scurry@1.10.1:
      +    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +
      +  path-temp@2.1.0:
      +    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
      +    engines: {node: '>=8.15'}
      +
      +  path-to-regexp@0.1.7:
      +    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
      +
      +  path-to-regexp@1.8.0:
      +    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
      +
      +  path-to-regexp@2.2.1:
      +    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
      +
      +  path-to-regexp@6.2.1:
      +    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
      +
      +  path-type@4.0.0:
      +    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
      +    engines: {node: '>=8'}
      +
      +  pathval@2.0.0:
      +    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
      +    engines: {node: '>= 14.16'}
      +
      +  periscopic@3.1.0:
      +    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
      +
      +  picocolors@1.0.0:
      +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
      +
      +  picomatch@2.3.1:
      +    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
      +    engines: {node: '>=8.6'}
      +
      +  pify@2.3.0:
      +    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
      +    engines: {node: '>=0.10.0'}
      +
      +  pify@4.0.1:
      +    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
      +    engines: {node: '>=6'}
      +
      +  pirates@4.0.6:
      +    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
      +    engines: {node: '>= 6'}
      +
      +  pkg-dir@4.2.0:
      +    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
      +    engines: {node: '>=8'}
      +
      +  pkg-dir@7.0.0:
      +    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
      +    engines: {node: '>=14.16'}
      +
      +  pkg-up@3.1.0:
      +    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
      +    engines: {node: '>=8'}
      +
      +  pluralize@8.0.0:
      +    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
      +    engines: {node: '>=4'}
      +
      +  portfinder@1.0.32:
      +    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
      +    engines: {node: '>= 0.12.0'}
      +
      +  possible-typed-array-names@1.0.0:
      +    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
      +    engines: {node: '>= 0.4'}
      +
      +  postcss-calc@8.2.4:
      +    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
      +    peerDependencies:
      +      postcss: ^8.2.2
      +
      +  postcss-colormin@5.3.1:
      +    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-convert-values@5.1.3:
      +    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-discard-comments@5.1.2:
      +    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-discard-duplicates@5.1.0:
      +    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-discard-empty@5.1.1:
      +    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-discard-overridden@5.1.0:
      +    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-discard-unused@5.1.0:
      +    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-import@15.1.0:
      +    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
      +    engines: {node: '>=14.0.0'}
      +    peerDependencies:
      +      postcss: ^8.0.0
      +
      +  postcss-js@4.0.1:
      +    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
      +    engines: {node: ^12 || ^14 || >= 16}
      +    peerDependencies:
      +      postcss: ^8.4.21
      +
      +  postcss-load-config@4.0.2:
      +    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
      +    engines: {node: '>= 14'}
      +    peerDependencies:
      +      postcss: '>=8.0.9'
      +      ts-node: '>=9.0.0'
      +    peerDependenciesMeta:
      +      postcss:
      +        optional: true
      +      ts-node:
      +        optional: true
      +
      +  postcss-loader@7.3.4:
      +    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
      +    engines: {node: '>= 14.15.0'}
      +    peerDependencies:
      +      postcss: ^7.0.0 || ^8.0.1
      +      webpack: ^5.0.0
      +
      +  postcss-loader@8.1.1:
      +    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
      +    engines: {node: '>= 18.12.0'}
      +    peerDependencies:
      +      '@rspack/core': 0.x || 1.x
      +      postcss: ^7.0.0 || ^8.0.1
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      '@rspack/core':
      +        optional: true
      +      webpack:
      +        optional: true
      +
      +  postcss-merge-idents@5.1.1:
      +    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-merge-longhand@5.1.7:
      +    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-merge-rules@5.1.4:
      +    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-minify-font-values@5.1.0:
      +    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-minify-gradients@5.1.1:
      +    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-minify-params@5.1.4:
      +    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-minify-selectors@5.2.1:
      +    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-modules-extract-imports@3.0.0:
      +    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  postcss-modules-local-by-default@4.0.4:
      +    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  postcss-modules-scope@3.1.1:
      +    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  postcss-modules-values@4.0.0:
      +    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
      +    engines: {node: ^10 || ^12 || >= 14}
      +    peerDependencies:
      +      postcss: ^8.1.0
      +
      +  postcss-nested@6.0.1:
      +    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
      +    engines: {node: '>=12.0'}
      +    peerDependencies:
      +      postcss: ^8.2.14
      +
      +  postcss-normalize-charset@5.1.0:
      +    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-display-values@5.1.0:
      +    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-positions@5.1.1:
      +    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-repeat-style@5.1.1:
      +    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-string@5.1.0:
      +    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-timing-functions@5.1.0:
      +    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-unicode@5.1.1:
      +    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-url@5.1.0:
      +    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-normalize-whitespace@5.1.1:
      +    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-ordered-values@5.1.3:
      +    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-reduce-idents@5.2.0:
      +    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-reduce-initial@5.1.2:
      +    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-reduce-transforms@5.1.0:
      +    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-selector-parser@6.0.16:
      +    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
      +    engines: {node: '>=4'}
      +
      +  postcss-sort-media-queries@4.4.1:
      +    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
      +    engines: {node: '>=10.0.0'}
      +    peerDependencies:
      +      postcss: ^8.4.16
      +
      +  postcss-svgo@5.1.0:
      +    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-unique-selectors@5.1.1:
      +    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss-value-parser@4.2.0:
      +    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
      +
      +  postcss-zindex@5.1.0:
      +    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  postcss@8.4.31:
      +    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
      +    engines: {node: ^10 || ^12 || >=14}
      +
      +  postcss@8.4.38:
      +    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
      +    engines: {node: ^10 || ^12 || >=14}
      +
      +  preferred-pm@3.1.3:
      +    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
      +    engines: {node: '>=10'}
      +
      +  prelude-ls@1.2.1:
      +    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  prettier-plugin-tailwindcss@0.5.12:
      +    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
      +    engines: {node: '>=14.21.3'}
      +    peerDependencies:
      +      '@ianvs/prettier-plugin-sort-imports': '*'
      +      '@prettier/plugin-pug': '*'
      +      '@shopify/prettier-plugin-liquid': '*'
      +      '@trivago/prettier-plugin-sort-imports': '*'
      +      prettier: ^3.0
      +      prettier-plugin-astro: '*'
      +      prettier-plugin-css-order: '*'
      +      prettier-plugin-import-sort: '*'
      +      prettier-plugin-jsdoc: '*'
      +      prettier-plugin-marko: '*'
      +      prettier-plugin-organize-attributes: '*'
      +      prettier-plugin-organize-imports: '*'
      +      prettier-plugin-sort-imports: '*'
      +      prettier-plugin-style-order: '*'
      +      prettier-plugin-svelte: '*'
      +      prettier-plugin-twig-melody: '*'
      +    peerDependenciesMeta:
      +      '@ianvs/prettier-plugin-sort-imports':
      +        optional: true
      +      '@prettier/plugin-pug':
      +        optional: true
      +      '@shopify/prettier-plugin-liquid':
      +        optional: true
      +      '@trivago/prettier-plugin-sort-imports':
      +        optional: true
      +      prettier-plugin-astro:
      +        optional: true
      +      prettier-plugin-css-order:
      +        optional: true
      +      prettier-plugin-import-sort:
      +        optional: true
      +      prettier-plugin-jsdoc:
      +        optional: true
      +      prettier-plugin-marko:
      +        optional: true
      +      prettier-plugin-organize-attributes:
      +        optional: true
      +      prettier-plugin-organize-imports:
      +        optional: true
      +      prettier-plugin-sort-imports:
      +        optional: true
      +      prettier-plugin-style-order:
      +        optional: true
      +      prettier-plugin-svelte:
      +        optional: true
      +      prettier-plugin-twig-melody:
      +        optional: true
      +
      +  prettier@3.2.5:
      +    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
      +    engines: {node: '>=14'}
      +    hasBin: true
      +
      +  pretty-bytes@5.6.0:
      +    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
      +    engines: {node: '>=6'}
      +
      +  pretty-error@4.0.0:
      +    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
      +
      +  pretty-format@27.5.1:
      +    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
      +    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
      +
      +  pretty-format@29.7.0:
      +    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
      +    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +
      +  pretty-ms@7.0.1:
      +    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
      +    engines: {node: '>=10'}
      +
      +  pretty-time@1.1.0:
      +    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
      +    engines: {node: '>=4'}
      +
      +  print-diff@1.0.0:
      +    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
      +    engines: {node: '>=8.3'}
      +
      +  printable-characters@1.0.42:
      +    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
      +
      +  prism-react-renderer@2.3.1:
      +    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
      +    peerDependencies:
      +      react: '>=16.0.0 || 18'
      +
      +  prismjs@1.29.0:
      +    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
      +    engines: {node: '>=6'}
      +
      +  proc-log@1.0.0:
      +    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
      +
      +  proc-log@3.0.0:
      +    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  process-nextick-args@2.0.1:
      +    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
      +
      +  process@0.11.10:
      +    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
      +    engines: {node: '>= 0.6.0'}
      +
      +  promise-all-reject-late@1.0.1:
      +    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
      +
      +  promise-call-limit@1.0.2:
      +    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
      +
      +  promise-inflight@1.0.1:
      +    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
      +    peerDependencies:
      +      bluebird: '*'
      +    peerDependenciesMeta:
      +      bluebird:
      +        optional: true
      +
      +  promise-retry@2.0.1:
      +    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
      +    engines: {node: '>=10'}
      +
      +  prompts@2.4.2:
      +    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
      +    engines: {node: '>= 6'}
      +
      +  prop-types@15.8.1:
      +    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
      +
      +  property-information@6.4.1:
      +    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
      +
      +  proto-list@1.2.4:
      +    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
      +
      +  proxy-addr@2.0.7:
      +    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
      +    engines: {node: '>= 0.10'}
      +
      +  psl@1.9.0:
      +    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
      +
      +  punycode@1.4.1:
      +    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
      +
      +  punycode@2.3.1:
      +    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
      +    engines: {node: '>=6'}
      +
      +  pupa@3.1.0:
      +    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
      +    engines: {node: '>=12.20'}
      +
      +  pure-rand@6.1.0:
      +    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
      +
      +  qs@6.11.0:
      +    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
      +    engines: {node: '>=0.6'}
      +
      +  qs@6.12.0:
      +    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
      +    engines: {node: '>=0.6'}
      +
      +  querystringify@2.2.0:
      +    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
      +
      +  queue-microtask@1.2.3:
      +    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
      +
      +  queue@6.0.2:
      +    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
      +
      +  quick-lru@4.0.1:
      +    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
      +    engines: {node: '>=8'}
      +
      +  quick-lru@5.1.1:
      +    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
      +    engines: {node: '>=10'}
      +
      +  railroad-diagrams@1.0.0:
      +    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
      +
      +  rambda@7.5.0:
      +    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
      +
      +  ramda@0.29.1:
      +    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
      +
      +  randexp@0.4.6:
      +    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
      +    engines: {node: '>=0.12'}
      +
      +  randombytes@2.1.0:
      +    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
      +
      +  range-parser@1.2.0:
      +    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
      +    engines: {node: '>= 0.6'}
      +
      +  range-parser@1.2.1:
      +    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
      +    engines: {node: '>= 0.6'}
      +
      +  raw-body@2.5.2:
      +    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
      +    engines: {node: '>= 0.8'}
      +
      +  rc@1.2.8:
      +    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
      +    hasBin: true
      +
      +  react-dev-utils@12.0.1:
      +    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      typescript: '>=2.7'
      +      webpack: '>=4'
      +    peerDependenciesMeta:
      +      typescript:
      +        optional: true
      +
      +  react-dom@18.2.0:
      +    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
      +    peerDependencies:
      +      react: ^18.2.0 || 18
      +
      +  react-error-overlay@6.0.11:
      +    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
      +
      +  react-fast-compare@3.2.2:
      +    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
      +
      +  react-helmet-async@1.3.0:
      +    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
      +    peerDependencies:
      +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +
      +  react-helmet-async@2.0.4:
      +    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
      +    peerDependencies:
      +      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +
      +  react-is@16.13.1:
      +    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
      +
      +  react-is@17.0.2:
      +    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
      +
      +  react-is@18.2.0:
      +    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
      +
      +  react-json-view-lite@1.3.0:
      +    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
      +    engines: {node: '>=14'}
      +    peerDependencies:
      +      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
      +
      +  react-loadable-ssr-addon-v5-slorber@1.0.1:
      +    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
      +    engines: {node: '>=10.13.0'}
      +    peerDependencies:
      +      react-loadable: '*'
      +      webpack: '>=4.41.1 || 5.x'
      +
      +  react-player@2.15.1:
      +    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
      +    peerDependencies:
      +      react: '>=16.6.0 || 18'
      +
      +  react-router-config@5.1.1:
      +    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
      +    peerDependencies:
      +      react: '>=15 || 18'
      +      react-router: '>=5'
      +
      +  react-router-dom@5.3.4:
      +    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
      +    peerDependencies:
      +      react: '>=15 || 18'
      +
      +  react-router@5.3.4:
      +    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
      +    peerDependencies:
      +      react: '>=15 || 18'
      +
      +  react-string-replace@1.1.1:
      +    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
      +    engines: {node: '>=0.12.0'}
      +
      +  react-universal-interface@0.6.2:
      +    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
      +    peerDependencies:
      +      react: '*'
      +      tslib: '*'
      +
      +  react-use@17.5.0:
      +    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
      +    peerDependencies:
      +      react: '*'
      +      react-dom: '*'
      +
      +  react@18.2.0:
      +    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
      +    engines: {node: '>=0.10.0'}
      +
      +  read-cache@1.0.0:
      +    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
      +
      +  read-cmd-shim@3.0.1:
      +    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  read-ini-file@4.0.0:
      +    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
      +    engines: {node: '>=14.6'}
      +
      +  read-package-json-fast@2.0.3:
      +    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
      +    engines: {node: '>=10'}
      +
      +  read-package-json-fast@3.0.2:
      +    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  read-package-json@6.0.4:
      +    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  read-pkg-up@7.0.1:
      +    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
      +    engines: {node: '>=8'}
      +
      +  read-pkg-up@8.0.0:
      +    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
      +    engines: {node: '>=12'}
      +
      +  read-pkg@5.2.0:
      +    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
      +    engines: {node: '>=8'}
      +
      +  read-pkg@6.0.0:
      +    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
      +    engines: {node: '>=12'}
      +
      +  read-yaml-file@2.1.0:
      +    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
      +    engines: {node: '>=10.13'}
      +
      +  readable-stream@2.3.8:
      +    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
      +
      +  readable-stream@3.6.2:
      +    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
      +    engines: {node: '>= 6'}
      +
      +  readable-stream@4.5.2:
      +    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
      +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +
      +  readdir-scoped-modules@1.1.0:
      +    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
      +    deprecated: This functionality has been moved to @npmcli/fs
      +
      +  readdirp@3.6.0:
      +    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
      +    engines: {node: '>=8.10.0'}
      +
      +  reading-time@1.5.0:
      +    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
      +
      +  realpath-missing@1.1.0:
      +    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
      +    engines: {node: '>=10'}
      +
      +  rechoir@0.6.2:
      +    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
      +    engines: {node: '>= 0.10'}
      +
      +  rechoir@0.8.0:
      +    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
      +    engines: {node: '>= 10.13.0'}
      +
      +  recursive-readdir@2.2.3:
      +    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
      +    engines: {node: '>=6.0.0'}
      +
      +  redent@4.0.0:
      +    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
      +    engines: {node: '>=12'}
      +
      +  reflect.getprototypeof@1.0.6:
      +    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
      +    engines: {node: '>= 0.4'}
      +
      +  regenerate-unicode-properties@10.1.1:
      +    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
      +    engines: {node: '>=4'}
      +
      +  regenerate@1.4.2:
      +    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
      +
      +  regenerator-runtime@0.14.1:
      +    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
      +
      +  regenerator-transform@0.15.2:
      +    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
      +
      +  regexp-tree@0.1.27:
      +    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
      +    hasBin: true
      +
      +  regexp.prototype.flags@1.5.2:
      +    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
      +    engines: {node: '>= 0.4'}
      +
      +  regexpu-core@5.3.2:
      +    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
      +    engines: {node: '>=4'}
      +
      +  registry-auth-token@5.0.2:
      +    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
      +    engines: {node: '>=14'}
      +
      +  registry-url@6.0.1:
      +    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
      +    engines: {node: '>=12'}
      +
      +  regjsparser@0.10.0:
      +    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
      +    hasBin: true
      +
      +  regjsparser@0.9.1:
      +    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
      +    hasBin: true
      +
      +  rehype-raw@7.0.0:
      +    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
      +
      +  relateurl@0.2.7:
      +    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
      +    engines: {node: '>= 0.10'}
      +
      +  remark-directive@3.0.0:
      +    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
      +
      +  remark-emoji@4.0.1:
      +    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  remark-frontmatter@5.0.0:
      +    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
      +
      +  remark-gfm@4.0.0:
      +    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
      +
      +  remark-mdx@3.0.1:
      +    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
      +
      +  remark-parse@11.0.0:
      +    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
      +
      +  remark-rehype@11.1.0:
      +    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
      +
      +  remark-stringify@11.0.0:
      +    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
      +
      +  remove-trailing-separator@1.1.0:
      +    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
      +
      +  renderkid@3.0.0:
      +    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
      +
      +  replace-ext@1.0.1:
      +    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
      +    engines: {node: '>= 0.10'}
      +
      +  require-directory@2.1.1:
      +    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
      +    engines: {node: '>=0.10.0'}
      +
      +  require-from-string@2.0.2:
      +    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
      +    engines: {node: '>=0.10.0'}
      +
      +  require-like@0.1.2:
      +    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
      +
      +  requires-port@1.0.0:
      +    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
      +
      +  resize-observer-polyfill@1.5.1:
      +    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
      +
      +  resolve-alpn@1.2.1:
      +    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
      +
      +  resolve-cwd@3.0.0:
      +    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
      +    engines: {node: '>=8'}
      +
      +  resolve-from@4.0.0:
      +    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
      +    engines: {node: '>=4'}
      +
      +  resolve-from@5.0.0:
      +    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
      +    engines: {node: '>=8'}
      +
      +  resolve-pathname@3.0.0:
      +    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
      +
      +  resolve-pkg-maps@1.0.0:
      +    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
      +
      +  resolve.exports@2.0.2:
      +    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
      +    engines: {node: '>=10'}
      +
      +  resolve@1.22.8:
      +    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
      +    hasBin: true
      +
      +  resolve@2.0.0-next.5:
      +    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
      +    hasBin: true
      +
      +  responselike@3.0.0:
      +    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
      +    engines: {node: '>=14.16'}
      +
      +  restore-cursor@3.1.0:
      +    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
      +    engines: {node: '>=8'}
      +
      +  ret@0.1.15:
      +    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
      +    engines: {node: '>=0.12'}
      +
      +  retry@0.12.0:
      +    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
      +    engines: {node: '>= 4'}
      +
      +  retry@0.13.1:
      +    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
      +    engines: {node: '>= 4'}
      +
      +  reusify@1.0.4:
      +    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
      +    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
      +
      +  rfc4648@1.5.3:
      +    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
      +
      +  right-pad@1.0.1:
      +    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
      +    engines: {node: '>= 0.10'}
      +
      +  rimraf@3.0.2:
      +    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
      +    hasBin: true
      +
      +  rimraf@5.0.5:
      +    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
      +    engines: {node: '>=14'}
      +    hasBin: true
      +
      +  rtl-css-js@1.16.1:
      +    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
      +
      +  rtl-detect@1.1.2:
      +    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
      +
      +  rtlcss@4.1.1:
      +    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
      +    engines: {node: '>=12.0.0'}
      +    hasBin: true
      +
      +  run-applescript@7.0.0:
      +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
      +    engines: {node: '>=18'}
      +
      +  run-async@2.4.1:
      +    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
      +    engines: {node: '>=0.12.0'}
      +
      +  run-parallel@1.2.0:
      +    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
      +
      +  rxjs@7.8.1:
      +    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
      +
      +  safe-array-concat@1.1.2:
      +    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
      +    engines: {node: '>=0.4'}
      +
      +  safe-buffer@5.1.2:
      +    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
      +
      +  safe-buffer@5.2.1:
      +    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
      +
      +  safe-execa@0.1.2:
      +    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
      +    engines: {node: '>=12'}
      +
      +  safe-regex-test@1.0.3:
      +    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
      +    engines: {node: '>= 0.4'}
      +
      +  safe-stable-stringify@2.4.3:
      +    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
      +    engines: {node: '>=10'}
      +
      +  safer-buffer@2.1.2:
      +    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
      +
      +  sanitize-html@2.13.0:
      +    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
      +
      +  sax@1.3.0:
      +    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
      +
      +  saxes@6.0.0:
      +    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
      +    engines: {node: '>=v12.22.7'}
      +
      +  sbd@1.0.19:
      +    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
      +
      +  scheduler@0.23.0:
      +    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
      +
      +  schema-utils@2.7.0:
      +    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
      +    engines: {node: '>= 8.9.0'}
      +
      +  schema-utils@3.3.0:
      +    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
      +    engines: {node: '>= 10.13.0'}
      +
      +  schema-utils@4.2.0:
      +    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
      +    engines: {node: '>= 12.13.0'}
      +
      +  scoped-regex@2.1.0:
      +    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
      +    engines: {node: '>=8'}
      +
      +  screenfull@5.2.0:
      +    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  search-insights@2.13.0:
      +    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
      +
      +  section-matter@1.0.0:
      +    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
      +    engines: {node: '>=4'}
      +
      +  secure-compare@3.0.1:
      +    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
      +
      +  select-hose@2.0.0:
      +    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
      +
      +  selfsigned@2.4.1:
      +    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
      +    engines: {node: '>=10'}
      +
      +  semver-diff@4.0.0:
      +    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
      +    engines: {node: '>=12'}
      +
      +  semver@5.7.2:
      +    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
      +    hasBin: true
      +
      +  semver@6.3.1:
      +    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
      +    hasBin: true
      +
      +  semver@7.5.4:
      +    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  semver@7.6.0:
      +    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  send@0.18.0:
      +    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  serialize-javascript@6.0.0:
      +    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
      +
      +  serialize-javascript@6.0.2:
      +    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
      +
      +  serve-handler@6.1.5:
      +    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
      +
      +  serve-index@1.9.1:
      +    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  serve-static@1.15.0:
      +    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  set-blocking@2.0.0:
      +    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
      +
      +  set-function-length@1.2.2:
      +    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
      +    engines: {node: '>= 0.4'}
      +
      +  set-function-name@2.0.2:
      +    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  set-harmonic-interval@1.0.1:
      +    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
      +    engines: {node: '>=6.9'}
      +
      +  setimmediate@1.0.5:
      +    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
      +
      +  setprototypeof@1.1.0:
      +    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
      +
      +  setprototypeof@1.2.0:
      +    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
      +
      +  shallow-clone@3.0.1:
      +    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
      +    engines: {node: '>=8'}
      +
      +  shallowequal@1.1.0:
      +    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
      +
      +  shebang-command@2.0.0:
      +    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
      +    engines: {node: '>=8'}
      +
      +  shebang-regex@3.0.0:
      +    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
      +    engines: {node: '>=8'}
      +
      +  shell-quote@1.8.1:
      +    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
      +
      +  shelljs@0.8.5:
      +    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
      +    engines: {node: '>=4'}
      +    hasBin: true
      +
      +  side-channel@1.0.6:
      +    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
      +    engines: {node: '>= 0.4'}
      +
      +  signal-exit@3.0.7:
      +    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
      +
      +  signal-exit@4.1.0:
      +    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
      +    engines: {node: '>=14'}
      +
      +  sigstore@1.9.0:
      +    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
      +
      +  simple-swizzle@0.2.2:
      +    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
      +
      +  sinon@17.0.1:
      +    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
      +
      +  sirv@2.0.4:
      +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
      +    engines: {node: '>= 10'}
      +
      +  sisteransi@1.0.5:
      +    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
      +
      +  sitemap@7.1.1:
      +    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
      +    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
      +    hasBin: true
      +
      +  skin-tone@2.0.0:
      +    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
      +    engines: {node: '>=8'}
      +
      +  slash@3.0.0:
      +    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
      +    engines: {node: '>=8'}
      +
      +  slash@4.0.0:
      +    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
      +    engines: {node: '>=12'}
      +
      +  smart-buffer@4.2.0:
      +    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
      +    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
      +
      +  snake-case@3.0.4:
      +    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
      +
      +  sockjs@0.3.24:
      +    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
      +
      +  socks-proxy-agent@6.1.1:
      +    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
      +    engines: {node: '>= 10'}
      +
      +  socks-proxy-agent@6.2.1:
      +    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
      +    engines: {node: '>= 10'}
      +
      +  socks-proxy-agent@7.0.0:
      +    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
      +    engines: {node: '>= 10'}
      +
      +  socks@2.8.1:
      +    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
      +    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
      +
      +  sort-css-media-queries@2.1.0:
      +    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
      +    engines: {node: '>= 6.3.0'}
      +
      +  sort-keys@4.2.0:
      +    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
      +    engines: {node: '>=8'}
      +
      +  sort-keys@5.0.0:
      +    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
      +    engines: {node: '>=12'}
      +
      +  source-map-js@1.2.0:
      +    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
      +    engines: {node: '>=0.10.0'}
      +
      +  source-map-support@0.5.13:
      +    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
      +
      +  source-map-support@0.5.21:
      +    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
      +
      +  source-map-url@0.4.1:
      +    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
      +    deprecated: See https://github.com/lydell/source-map-url#deprecated
      +
      +  source-map@0.5.6:
      +    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
      +    engines: {node: '>=0.10.0'}
      +
      +  source-map@0.6.1:
      +    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
      +    engines: {node: '>=0.10.0'}
      +
      +  source-map@0.7.4:
      +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
      +    engines: {node: '>= 8'}
      +
      +  space-separated-tokens@2.0.2:
      +    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
      +
      +  spdx-correct@3.2.0:
      +    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
      +
      +  spdx-exceptions@2.5.0:
      +    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
      +
      +  spdx-expression-parse@3.0.1:
      +    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
      +
      +  spdx-license-ids@3.0.17:
      +    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
      +
      +  spdy-transport@3.0.0:
      +    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
      +
      +  spdy@4.0.2:
      +    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
      +    engines: {node: '>=6.0.0'}
      +
      +  split2@3.2.2:
      +    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
      +
      +  sprintf-js@1.0.3:
      +    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
      +
      +  sprintf-js@1.1.3:
      +    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
      +
      +  srcset@4.0.0:
      +    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
      +    engines: {node: '>=12'}
      +
      +  ssri@10.0.5:
      +    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  ssri@8.0.1:
      +    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
      +    engines: {node: '>= 8'}
      +
      +  ssri@9.0.1:
      +    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  stable@0.1.8:
      +    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
      +    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
      +
      +  stack-generator@2.0.10:
      +    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
      +
      +  stack-trace@0.0.10:
      +    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
      +
      +  stack-utils@2.0.6:
      +    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
      +    engines: {node: '>=10'}
      +
      +  stackframe@1.3.4:
      +    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
      +
      +  stacktrace-gps@3.1.2:
      +    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
      +
      +  stacktrace-js@2.0.2:
      +    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
      +
      +  stacktracey@2.1.8:
      +    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
      +
      +  statuses@1.5.0:
      +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
      +    engines: {node: '>= 0.6'}
      +
      +  statuses@2.0.1:
      +    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
      +    engines: {node: '>= 0.8'}
      +
      +  std-env@3.7.0:
      +    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
      +
      +  stop-iteration-iterator@1.0.0:
      +    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  streamsearch@1.1.0:
      +    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
      +    engines: {node: '>=10.0.0'}
      +
      +  string-length@4.0.2:
      +    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
      +    engines: {node: '>=10'}
      +
      +  string-width@4.2.3:
      +    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
      +    engines: {node: '>=8'}
      +
      +  string-width@5.1.2:
      +    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
      +    engines: {node: '>=12'}
      +
      +  string.prototype.matchall@4.0.11:
      +    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
      +    engines: {node: '>= 0.4'}
      +
      +  string.prototype.trim@1.2.9:
      +    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
      +    engines: {node: '>= 0.4'}
      +
      +  string.prototype.trimend@1.0.8:
      +    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
      +
      +  string.prototype.trimstart@1.0.8:
      +    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
      +    engines: {node: '>= 0.4'}
      +
      +  string_decoder@1.1.1:
      +    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
      +
      +  string_decoder@1.3.0:
      +    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
      +
      +  stringify-entities@4.0.3:
      +    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
      +
      +  stringify-object@3.3.0:
      +    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
      +    engines: {node: '>=4'}
      +
      +  strip-ansi@6.0.1:
      +    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
      +    engines: {node: '>=8'}
      +
      +  strip-ansi@7.1.0:
      +    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
      +    engines: {node: '>=12'}
      +
      +  strip-bom-buf@1.0.0:
      +    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
      +    engines: {node: '>=4'}
      +
      +  strip-bom-stream@2.0.0:
      +    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
      +    engines: {node: '>=0.10.0'}
      +
      +  strip-bom-string@1.0.0:
      +    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
      +    engines: {node: '>=0.10.0'}
      +
      +  strip-bom@2.0.0:
      +    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
      +    engines: {node: '>=0.10.0'}
      +
      +  strip-bom@3.0.0:
      +    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
      +    engines: {node: '>=4'}
      +
      +  strip-bom@4.0.0:
      +    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
      +    engines: {node: '>=8'}
      +
      +  strip-comments-strings@1.2.0:
      +    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
      +
      +  strip-final-newline@2.0.0:
      +    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
      +    engines: {node: '>=6'}
      +
      +  strip-indent@3.0.0:
      +    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
      +    engines: {node: '>=8'}
      +
      +  strip-indent@4.0.0:
      +    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
      +    engines: {node: '>=12'}
      +
      +  strip-json-comments@2.0.1:
      +    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
      +    engines: {node: '>=0.10.0'}
      +
      +  strip-json-comments@3.1.1:
      +    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
      +    engines: {node: '>=8'}
      +
      +  strnum@1.0.5:
      +    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
      +
      +  style-loader@3.3.4:
      +    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
      +
      +  style-to-object@0.4.4:
      +    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
      +
      +  style-to-object@1.0.5:
      +    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
      +
      +  styled-jsx@5.1.1:
      +    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
      +    engines: {node: '>= 12.0.0'}
      +    peerDependencies:
      +      '@babel/core': '*'
      +      babel-plugin-macros: '*'
      +      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
      +    peerDependenciesMeta:
      +      '@babel/core':
      +        optional: true
      +      babel-plugin-macros:
      +        optional: true
      +
      +  stylehacks@5.1.1:
      +    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
      +    engines: {node: ^10 || ^12 || >=14.0}
      +    peerDependencies:
      +      postcss: ^8.2.15
      +
      +  stylis@4.3.1:
      +    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
      +
      +  sucrase@3.35.0:
      +    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
      +    engines: {node: '>=16 || 14 >=14.17'}
      +    hasBin: true
      +
      +  supports-color@5.5.0:
      +    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
      +    engines: {node: '>=4'}
      +
      +  supports-color@7.2.0:
      +    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
      +    engines: {node: '>=8'}
      +
      +  supports-color@8.1.1:
      +    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
      +    engines: {node: '>=10'}
      +
      +  supports-preserve-symlinks-flag@1.0.0:
      +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
      +    engines: {node: '>= 0.4'}
      +
      +  svg-parser@2.0.4:
      +    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
      +
      +  svgo@2.8.0:
      +    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
      +    engines: {node: '>=10.13.0'}
      +    hasBin: true
      +
      +  svgo@3.2.0:
      +    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
      +    engines: {node: '>=14.0.0'}
      +    hasBin: true
      +
      +  symbol-tree@3.2.4:
      +    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
      +
      +  syncpack@12.3.0:
      +    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
      +    engines: {node: '>=16'}
      +    hasBin: true
      +
      +  tail@2.2.6:
      +    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
      +    engines: {node: '>= 6.0.0'}
      +
      +  tailwindcss@3.4.1:
      +    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
      +    engines: {node: '>=14.0.0'}
      +    hasBin: true
      +
      +  tapable@1.1.3:
      +    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
      +    engines: {node: '>=6'}
      +
      +  tapable@2.2.1:
      +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
      +    engines: {node: '>=6'}
      +
      +  tar@6.2.1:
      +    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
      +    engines: {node: '>=10'}
      +
      +  terser-webpack-plugin@5.3.10:
      +    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      '@swc/core': '*'
      +      esbuild: '*'
      +      uglify-js: '*'
      +      webpack: ^5.1.0
      +    peerDependenciesMeta:
      +      '@swc/core':
      +        optional: true
      +      esbuild:
      +        optional: true
      +      uglify-js:
      +        optional: true
      +
      +  terser@5.29.2:
      +    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
      +    engines: {node: '>=10'}
      +    hasBin: true
      +
      +  test-exclude@6.0.0:
      +    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
      +    engines: {node: '>=8'}
      +
      +  text-hex@1.0.0:
      +    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
      +
      +  text-table@0.2.0:
      +    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
      +
      +  textextensions@5.16.0:
      +    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
      +    engines: {node: '>=0.8'}
      +
      +  thenify-all@1.6.0:
      +    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
      +    engines: {node: '>=0.8'}
      +
      +  thenify@3.3.1:
      +    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
      +
      +  throttle-debounce@3.0.1:
      +    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
      +    engines: {node: '>=10'}
      +
      +  through2@4.0.2:
      +    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
      +
      +  through@2.3.8:
      +    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
      +
      +  thunky@1.1.0:
      +    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
      +
      +  tightrope@0.1.0:
      +    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
      +    engines: {node: '>=14'}
      +
      +  tiny-invariant@1.3.3:
      +    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
      +
      +  tiny-warning@1.0.3:
      +    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
      +
      +  tinycolor2@1.6.0:
      +    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
      +
      +  tmp@0.0.33:
      +    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
      +    engines: {node: '>=0.6.0'}
      +
      +  tmpl@1.0.5:
      +    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
      +
      +  to-fast-properties@2.0.0:
      +    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
      +    engines: {node: '>=4'}
      +
      +  to-regex-range@5.0.1:
      +    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
      +    engines: {node: '>=8.0'}
      +
      +  toggle-selection@1.0.6:
      +    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
      +
      +  toidentifier@1.0.1:
      +    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
      +    engines: {node: '>=0.6'}
      +
      +  totalist@3.0.1:
      +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
      +    engines: {node: '>=6'}
      +
      +  tough-cookie@4.1.3:
      +    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
      +    engines: {node: '>=6'}
      +
      +  tr46@0.0.3:
      +    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
      +
      +  tr46@3.0.0:
      +    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
      +    engines: {node: '>=12'}
      +
      +  treeverse@1.0.4:
      +    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
      +
      +  trie-search@2.0.0:
      +    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
      +
      +  trim-lines@3.0.1:
      +    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
      +
      +  trim-newlines@4.1.1:
      +    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
      +    engines: {node: '>=12'}
      +
      +  triple-beam@1.4.1:
      +    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
      +    engines: {node: '>= 14.0.0'}
      +
      +  trough@2.2.0:
      +    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
      +
      +  ts-api-utils@1.3.0:
      +    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
      +    engines: {node: '>=16'}
      +    peerDependencies:
      +      typescript: '>=4.2.0'
      +
      +  ts-easing@0.2.0:
      +    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
      +
      +  ts-interface-checker@0.1.13:
      +    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
      +
      +  ts-jest@29.1.2:
      +    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
      +    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
      +    hasBin: true
      +    peerDependencies:
      +      '@babel/core': '>=7.0.0-beta.0 <8'
      +      '@jest/types': ^29.0.0
      +      babel-jest: ^29.0.0
      +      esbuild: '*'
      +      jest: ^29.0.0
      +      typescript: '>=4.3 <6'
      +    peerDependenciesMeta:
      +      '@babel/core':
      +        optional: true
      +      '@jest/types':
      +        optional: true
      +      babel-jest:
      +        optional: true
      +      esbuild:
      +        optional: true
      +
      +  ts-loader@9.5.1:
      +    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
      +    engines: {node: '>=12.0.0'}
      +    peerDependencies:
      +      typescript: '*'
      +      webpack: ^5.0.0
      +
      +  ts-node@10.9.2:
      +    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
      +    hasBin: true
      +    peerDependencies:
      +      '@swc/core': '>=1.2.50'
      +      '@swc/wasm': '>=1.2.50'
      +      '@types/node': '*'
      +      typescript: '>=2.7'
      +    peerDependenciesMeta:
      +      '@swc/core':
      +        optional: true
      +      '@swc/wasm':
      +        optional: true
      +
      +  ts-toolbelt@9.6.0:
      +    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
      +
      +  tsconfig-paths@3.15.0:
      +    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
      +
      +  tslib@2.6.2:
      +    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
      +
      +  tuf-js@1.1.7:
      +    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  type-check@0.4.0:
      +    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  type-detect@4.0.8:
      +    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
      +    engines: {node: '>=4'}
      +
      +  type-fest@0.20.2:
      +    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
      +    engines: {node: '>=10'}
      +
      +  type-fest@0.21.3:
      +    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
      +    engines: {node: '>=10'}
      +
      +  type-fest@0.6.0:
      +    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
      +    engines: {node: '>=8'}
      +
      +  type-fest@0.8.1:
      +    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
      +    engines: {node: '>=8'}
      +
      +  type-fest@1.4.0:
      +    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
      +    engines: {node: '>=10'}
      +
      +  type-fest@2.19.0:
      +    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
      +    engines: {node: '>=12.20'}
      +
      +  type-fest@4.14.0:
      +    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
      +    engines: {node: '>=16'}
      +
      +  type-is@1.6.18:
      +    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
      +    engines: {node: '>= 0.6'}
      +
      +  typed-array-buffer@1.0.2:
      +    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
      +    engines: {node: '>= 0.4'}
      +
      +  typed-array-byte-length@1.0.1:
      +    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
      +    engines: {node: '>= 0.4'}
      +
      +  typed-array-byte-offset@1.0.2:
      +    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
      +    engines: {node: '>= 0.4'}
      +
      +  typed-array-length@1.0.6:
      +    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
      +    engines: {node: '>= 0.4'}
      +
      +  typedarray-to-buffer@3.1.5:
      +    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
      +
      +  typescript@5.4.3:
      +    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
      +    engines: {node: '>=14.17'}
      +    hasBin: true
      +
      +  unbox-primitive@1.0.2:
      +    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
      +
      +  unicode-canonical-property-names-ecmascript@2.0.0:
      +    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
      +    engines: {node: '>=4'}
      +
      +  unicode-emoji-modifier-base@1.0.0:
      +    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
      +    engines: {node: '>=4'}
      +
      +  unicode-match-property-ecmascript@2.0.0:
      +    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
      +    engines: {node: '>=4'}
      +
      +  unicode-match-property-value-ecmascript@2.1.0:
      +    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
      +    engines: {node: '>=4'}
      +
      +  unicode-property-aliases-ecmascript@2.1.0:
      +    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
      +    engines: {node: '>=4'}
      +
      +  unified@11.0.4:
      +    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
      +
      +  union@0.5.0:
      +    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
      +    engines: {node: '>= 0.8.0'}
      +
      +  unique-filename@1.1.1:
      +    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
      +
      +  unique-filename@2.0.1:
      +    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  unique-filename@3.0.0:
      +    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  unique-slug@2.0.2:
      +    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
      +
      +  unique-slug@3.0.0:
      +    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  unique-slug@4.0.0:
      +    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  unique-string@2.0.0:
      +    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
      +    engines: {node: '>=8'}
      +
      +  unique-string@3.0.0:
      +    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
      +    engines: {node: '>=12'}
      +
      +  unist-util-is@6.0.0:
      +    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
      +
      +  unist-util-position-from-estree@2.0.0:
      +    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
      +
      +  unist-util-position@5.0.0:
      +    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
      +
      +  unist-util-remove-position@5.0.0:
      +    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
      +
      +  unist-util-stringify-position@4.0.0:
      +    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
      +
      +  unist-util-visit-parents@6.0.1:
      +    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
      +
      +  unist-util-visit@5.0.0:
      +    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
      +
      +  universal-user-agent@6.0.1:
      +    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
      +
      +  universalify@0.2.0:
      +    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
      +    engines: {node: '>= 4.0.0'}
      +
      +  universalify@2.0.1:
      +    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
      +    engines: {node: '>= 10.0.0'}
      +
      +  unpipe@1.0.0:
      +    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
      +    engines: {node: '>= 0.8'}
      +
      +  untildify@4.0.0:
      +    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
      +    engines: {node: '>=8'}
      +
      +  update-browserslist-db@1.0.13:
      +    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
      +    hasBin: true
      +    peerDependencies:
      +      browserslist: '>= 4.21.0'
      +
      +  update-notifier@6.0.2:
      +    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
      +    engines: {node: '>=14.16'}
      +
      +  uri-js@4.4.1:
      +    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
      +
      +  url-join@4.0.1:
      +    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
      +
      +  url-loader@4.1.1:
      +    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
      +    engines: {node: '>= 10.13.0'}
      +    peerDependencies:
      +      file-loader: '*'
      +      webpack: ^4.0.0 || ^5.0.0
      +    peerDependenciesMeta:
      +      file-loader:
      +        optional: true
      +
      +  url-parse@1.5.10:
      +    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
      +
      +  util-deprecate@1.0.2:
      +    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
      +
      +  utila@0.4.0:
      +    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
      +
      +  utility-types@3.11.0:
      +    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
      +    engines: {node: '>= 4'}
      +
      +  utils-merge@1.0.1:
      +    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
      +    engines: {node: '>= 0.4.0'}
      +
      +  uuid@8.3.2:
      +    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
      +    hasBin: true
      +
      +  uuid@9.0.1:
      +    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
      +    hasBin: true
      +
      +  v8-compile-cache-lib@3.0.1:
      +    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
      +
      +  v8-to-istanbul@9.2.0:
      +    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
      +    engines: {node: '>=10.12.0'}
      +
      +  validate-npm-package-license@3.0.4:
      +    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
      +
      +  validate-npm-package-name@3.0.0:
      +    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
      +
      +  validate-npm-package-name@5.0.0:
      +    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  value-equal@1.0.1:
      +    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
      +
      +  vary@1.1.2:
      +    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
      +    engines: {node: '>= 0.8'}
      +
      +  vfile-location@5.0.2:
      +    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
      +
      +  vfile-message@4.0.2:
      +    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
      +
      +  vfile@6.0.1:
      +    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
      +
      +  vinyl-file@3.0.0:
      +    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
      +    engines: {node: '>=4'}
      +
      +  vinyl@2.2.1:
      +    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
      +    engines: {node: '>= 0.10'}
      +
      +  vscode-uri@3.0.8:
      +    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
      +
      +  w3c-xmlserializer@4.0.0:
      +    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
      +    engines: {node: '>=14'}
      +
      +  walk-up-path@1.0.0:
      +    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
      +
      +  walker@1.0.8:
      +    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
      +
      +  watchpack@2.4.1:
      +    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
      +    engines: {node: '>=10.13.0'}
      +
      +  wbuf@1.7.3:
      +    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
      +
      +  wcwidth@1.0.1:
      +    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
      +
      +  web-namespaces@2.0.1:
      +    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
      +
      +  webidl-conversions@3.0.1:
      +    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
      +
      +  webidl-conversions@7.0.0:
      +    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
      +    engines: {node: '>=12'}
      +
      +  webpack-bundle-analyzer@4.10.1:
      +    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
      +    engines: {node: '>= 10.13.0'}
      +    hasBin: true
      +
      +  webpack-cli@5.1.4:
      +    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
      +    engines: {node: '>=14.15.0'}
      +    hasBin: true
      +    peerDependencies:
      +      '@webpack-cli/generators': '*'
      +      webpack: 5.x.x
      +      webpack-bundle-analyzer: '*'
      +      webpack-dev-server: '*'
      +    peerDependenciesMeta:
      +      '@webpack-cli/generators':
      +        optional: true
      +      webpack-bundle-analyzer:
      +        optional: true
      +      webpack-dev-server:
      +        optional: true
      +
      +  webpack-dev-middleware@5.3.4:
      +    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
      +    engines: {node: '>= 12.13.0'}
      +    peerDependencies:
      +      webpack: ^4.0.0 || ^5.0.0
      +
      +  webpack-dev-middleware@7.1.1:
      +    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
      +    engines: {node: '>= 18.12.0'}
      +    peerDependencies:
      +      webpack: ^5.0.0
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
      +
      +  webpack-dev-server@4.15.2:
      +    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
      +    engines: {node: '>= 12.13.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack: ^4.37.0 || ^5.0.0
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
      +      webpack-cli:
      +        optional: true
      +
      +  webpack-dev-server@5.0.4:
      +    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
      +    engines: {node: '>= 18.12.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack: ^5.0.0
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack:
      +        optional: true
      +      webpack-cli:
      +        optional: true
      +
      +  webpack-merge@5.10.0:
      +    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
      +    engines: {node: '>=10.0.0'}
      +
      +  webpack-sources@3.2.3:
      +    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
      +    engines: {node: '>=10.13.0'}
      +
      +  webpack@5.91.0:
      +    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
      +    engines: {node: '>=10.13.0'}
      +    hasBin: true
      +    peerDependencies:
      +      webpack-cli: '*'
      +    peerDependenciesMeta:
      +      webpack-cli:
      +        optional: true
      +
      +  webpackbar@5.0.2:
      +    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
      +    engines: {node: '>=12'}
      +    peerDependencies:
      +      webpack: 3 || 4 || 5
      +
      +  websocket-driver@0.7.4:
      +    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
      +    engines: {node: '>=0.8.0'}
      +
      +  websocket-extensions@0.1.4:
      +    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
      +    engines: {node: '>=0.8.0'}
      +
      +  whatwg-encoding@2.0.0:
      +    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
      +    engines: {node: '>=12'}
      +
      +  whatwg-mimetype@3.0.0:
      +    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
      +    engines: {node: '>=12'}
      +
      +  whatwg-url@11.0.0:
      +    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
      +    engines: {node: '>=12'}
      +
      +  whatwg-url@5.0.0:
      +    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
      +
      +  which-boxed-primitive@1.0.2:
      +    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
      +
      +  which-builtin-type@1.1.3:
      +    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
      +    engines: {node: '>= 0.4'}
      +
      +  which-collection@1.0.2:
      +    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
      +    engines: {node: '>= 0.4'}
      +
      +  which-pm@2.0.0:
      +    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
      +    engines: {node: '>=8.15'}
      +
      +  which-typed-array@1.1.15:
      +    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
      +    engines: {node: '>= 0.4'}
      +
      +  which@1.3.1:
      +    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
      +    hasBin: true
      +
      +  which@2.0.2:
      +    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
      +    engines: {node: '>= 8'}
      +    hasBin: true
      +
      +  which@3.0.1:
      +    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +    hasBin: true
      +
      +  wide-align@1.1.5:
      +    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
      +
      +  widest-line@3.1.0:
      +    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
      +    engines: {node: '>=8'}
      +
      +  widest-line@4.0.1:
      +    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
      +    engines: {node: '>=12'}
      +
      +  wildcard@2.0.1:
      +    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
      +
      +  winston-transport@4.7.0:
      +    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
      +    engines: {node: '>= 12.0.0'}
      +
      +  winston@3.11.0:
      +    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
      +    engines: {node: '>= 12.0.0'}
      +
      +  workerpool@6.2.1:
      +    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
      +
      +  wrap-ansi@6.2.0:
      +    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
      +    engines: {node: '>=8'}
      +
      +  wrap-ansi@7.0.0:
      +    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
      +    engines: {node: '>=10'}
      +
      +  wrap-ansi@8.1.0:
      +    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
      +    engines: {node: '>=12'}
      +
      +  wrappy@1.0.2:
      +    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
      +
      +  write-file-atomic@3.0.3:
      +    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
      +
      +  write-file-atomic@4.0.2:
      +    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
      +    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +
      +  write-file-atomic@5.0.1:
      +    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
      +    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +
      +  write-json-file@5.0.0:
      +    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
      +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +
      +  write-yaml-file@5.0.0:
      +    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
      +    engines: {node: '>=16.14'}
      +
      +  ws@7.5.9:
      +    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
      +    engines: {node: '>=8.3.0'}
      +    peerDependencies:
      +      bufferutil: ^4.0.1
      +      utf-8-validate: ^5.0.2
      +    peerDependenciesMeta:
      +      bufferutil:
      +        optional: true
      +      utf-8-validate:
      +        optional: true
      +
      +  ws@8.16.0:
      +    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
      +    engines: {node: '>=10.0.0'}
      +    peerDependencies:
      +      bufferutil: ^4.0.1
      +      utf-8-validate: '>=5.0.2'
      +    peerDependenciesMeta:
      +      bufferutil:
      +        optional: true
      +      utf-8-validate:
      +        optional: true
      +
      +  xdg-basedir@5.1.0:
      +    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
      +    engines: {node: '>=12'}
      +
      +  xml-js@1.6.11:
      +    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
      +    hasBin: true
      +
      +  xml-name-validator@4.0.0:
      +    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
      +    engines: {node: '>=12'}
      +
      +  xmlchars@2.2.0:
      +    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
      +
      +  y18n@5.0.8:
      +    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
      +    engines: {node: '>=10'}
      +
      +  yallist@3.1.1:
      +    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
      +
      +  yallist@4.0.0:
      +    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
      +
      +  yaml@1.10.2:
      +    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
      +    engines: {node: '>= 6'}
      +
      +  yaml@2.4.1:
      +    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
      +    engines: {node: '>= 14'}
      +    hasBin: true
      +
      +  yargs-parser@20.2.4:
      +    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
      +    engines: {node: '>=10'}
      +
      +  yargs-parser@20.2.9:
      +    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
      +    engines: {node: '>=10'}
      +
      +  yargs-parser@21.1.1:
      +    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
      +    engines: {node: '>=12'}
      +
      +  yargs-unparser@2.0.0:
      +    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
      +    engines: {node: '>=10'}
      +
      +  yargs@16.2.0:
      +    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
      +    engines: {node: '>=10'}
      +
      +  yargs@17.7.2:
      +    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
      +    engines: {node: '>=12'}
      +
      +  yeoman-environment@3.19.3:
      +    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
      +    engines: {node: '>=12.10.0'}
      +    hasBin: true
      +
      +  yeoman-generator@5.10.0:
      +    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
      +    engines: {node: '>=12.10.0'}
      +    peerDependencies:
      +      yeoman-environment: ^3.2.0
      +    peerDependenciesMeta:
      +      yeoman-environment:
      +        optional: true
      +
      +  yn@3.1.1:
      +    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
      +    engines: {node: '>=6'}
      +
      +  yocto-queue@0.1.0:
      +    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
      +    engines: {node: '>=10'}
      +
      +  yocto-queue@1.0.0:
      +    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
      +    engines: {node: '>=12.20'}
      +
      +  zod@3.22.4:
      +    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
      +
      +  zwitch@2.0.4:
      +    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
      +
      +snapshots:
      +
      +  '@aashutoshrathi/word-wrap@1.2.6': {}
      +
      +  '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
           dependencies:
             '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
      @@ -788,161 +9693,105 @@ packages:
             - '@algolia/client-search'
             - algoliasearch
             - search-insights
      -    dev: false
       
      -  /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0):
      -    resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
      -    peerDependencies:
      -      search-insights: '>= 1 < 3'
      +  '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)':
           dependencies:
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
             search-insights: 2.13.0
           transitivePeerDependencies:
             - '@algolia/client-search'
             - algoliasearch
      -    dev: false
       
      -  /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
      -    resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
      -    peerDependencies:
      -      '@algolia/client-search': '>= 4.9.1 < 6'
      -      algoliasearch: '>= 4.9.1 < 6'
      +  '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
           dependencies:
             '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
             '@algolia/client-search': 4.22.1
             algoliasearch: 4.22.1
      -    dev: false
       
      -  /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1):
      -    resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
      -    peerDependencies:
      -      '@algolia/client-search': '>= 4.9.1 < 6'
      -      algoliasearch: '>= 4.9.1 < 6'
      +  '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)':
           dependencies:
             '@algolia/client-search': 4.22.1
             algoliasearch: 4.22.1
      -    dev: false
       
      -  /@algolia/cache-browser-local-storage@4.22.1:
      -    resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==}
      +  '@algolia/cache-browser-local-storage@4.22.1':
           dependencies:
             '@algolia/cache-common': 4.22.1
      -    dev: false
       
      -  /@algolia/cache-common@4.22.1:
      -    resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==}
      -    dev: false
      +  '@algolia/cache-common@4.22.1': {}
       
      -  /@algolia/cache-in-memory@4.22.1:
      -    resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==}
      +  '@algolia/cache-in-memory@4.22.1':
           dependencies:
             '@algolia/cache-common': 4.22.1
      -    dev: false
       
      -  /@algolia/client-account@4.22.1:
      -    resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==}
      +  '@algolia/client-account@4.22.1':
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/client-search': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /@algolia/client-analytics@4.22.1:
      -    resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==}
      +  '@algolia/client-analytics@4.22.1':
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/client-search': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /@algolia/client-common@4.22.1:
      -    resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==}
      +  '@algolia/client-common@4.22.1':
           dependencies:
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /@algolia/client-personalization@4.22.1:
      -    resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==}
      +  '@algolia/client-personalization@4.22.1':
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /@algolia/client-search@4.22.1:
      -    resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==}
      +  '@algolia/client-search@4.22.1':
           dependencies:
             '@algolia/client-common': 4.22.1
             '@algolia/requester-common': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /@algolia/events@4.0.1:
      -    resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
      -    dev: false
      +  '@algolia/events@4.0.1': {}
       
      -  /@algolia/logger-common@4.22.1:
      -    resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==}
      -    dev: false
      +  '@algolia/logger-common@4.22.1': {}
       
      -  /@algolia/logger-console@4.22.1:
      -    resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==}
      +  '@algolia/logger-console@4.22.1':
           dependencies:
             '@algolia/logger-common': 4.22.1
      -    dev: false
       
      -  /@algolia/requester-browser-xhr@4.22.1:
      -    resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==}
      +  '@algolia/requester-browser-xhr@4.22.1':
           dependencies:
             '@algolia/requester-common': 4.22.1
      -    dev: false
       
      -  /@algolia/requester-common@4.22.1:
      -    resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==}
      -    dev: false
      +  '@algolia/requester-common@4.22.1': {}
       
      -  /@algolia/requester-node-http@4.22.1:
      -    resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==}
      +  '@algolia/requester-node-http@4.22.1':
           dependencies:
             '@algolia/requester-common': 4.22.1
      -    dev: false
       
      -  /@algolia/transporter@4.22.1:
      -    resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==}
      +  '@algolia/transporter@4.22.1':
           dependencies:
             '@algolia/cache-common': 4.22.1
             '@algolia/logger-common': 4.22.1
             '@algolia/requester-common': 4.22.1
      -    dev: false
       
      -  /@alloc/quick-lru@5.2.0:
      -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  '@alloc/quick-lru@5.2.0': {}
       
      -  /@ampproject/remapping@2.3.0:
      -    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
      -    engines: {node: '>=6.0.0'}
      +  '@ampproject/remapping@2.3.0':
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
       
      -  /@babel/code-frame@7.24.2:
      -    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/code-frame@7.24.2':
           dependencies:
             '@babel/highlight': 7.24.2
             picocolors: 1.0.0
       
      -  /@babel/compat-data@7.24.1:
      -    resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/compat-data@7.24.1': {}
       
      -  /@babel/core@7.24.3:
      -    resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/core@7.24.3':
           dependencies:
             '@ampproject/remapping': 2.3.0
             '@babel/code-frame': 7.24.2
      @@ -962,30 +9811,22 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@babel/generator@7.24.1:
      -    resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/generator@7.24.1':
           dependencies:
             '@babel/types': 7.24.0
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
             jsesc: 2.5.2
       
      -  /@babel/helper-annotate-as-pure@7.22.5:
      -    resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-annotate-as-pure@7.22.5':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
      -    resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-compilation-targets@7.23.6:
      -    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-compilation-targets@7.23.6':
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/helper-validator-option': 7.23.5
      @@ -993,11 +9834,7 @@ packages:
             lru-cache: 5.1.1
             semver: 6.3.1
       
      -  /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -1010,21 +9847,14 @@ packages:
             '@babel/helper-split-export-declaration': 7.22.6
             semver: 6.3.1
       
      -  /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             regexpu-core: 5.3.2
             semver: 6.3.1
       
      -  /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +  '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
      @@ -1035,40 +9865,26 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@babel/helper-environment-visitor@7.22.20:
      -    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-environment-visitor@7.22.20': {}
       
      -  /@babel/helper-function-name@7.23.0:
      -    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-function-name@7.23.0':
           dependencies:
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
       
      -  /@babel/helper-hoist-variables@7.22.5:
      -    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-hoist-variables@7.22.5':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-member-expression-to-functions@7.23.0:
      -    resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-member-expression-to-functions@7.23.0':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-module-imports@7.24.3:
      -    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-module-imports@7.24.3':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
      @@ -1077,79 +9893,51 @@ packages:
             '@babel/helper-split-export-declaration': 7.22.6
             '@babel/helper-validator-identifier': 7.22.20
       
      -  /@babel/helper-optimise-call-expression@7.22.5:
      -    resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-optimise-call-expression@7.22.5':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-plugin-utils@7.24.0:
      -    resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-plugin-utils@7.24.0': {}
       
      -  /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-wrap-function': 7.22.20
       
      -  /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-member-expression-to-functions': 7.23.0
             '@babel/helper-optimise-call-expression': 7.22.5
       
      -  /@babel/helper-simple-access@7.22.5:
      -    resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-simple-access@7.22.5':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
      -    resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-split-export-declaration@7.22.6:
      -    resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-split-export-declaration@7.22.6':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/helper-string-parser@7.24.1:
      -    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-string-parser@7.24.1': {}
       
      -  /@babel/helper-validator-identifier@7.22.20:
      -    resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-validator-identifier@7.22.20': {}
       
      -  /@babel/helper-validator-option@7.23.5:
      -    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-validator-option@7.23.5': {}
       
      -  /@babel/helper-wrap-function@7.22.20:
      -    resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helper-wrap-function@7.22.20':
           dependencies:
             '@babel/helper-function-name': 7.23.0
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
       
      -  /@babel/helpers@7.24.1:
      -    resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/helpers@7.24.1':
           dependencies:
             '@babel/template': 7.24.0
             '@babel/traverse': 7.24.1
      @@ -1157,252 +9945,151 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@babel/highlight@7.24.2:
      -    resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/highlight@7.24.2':
           dependencies:
             '@babel/helper-validator-identifier': 7.22.20
             chalk: 2.4.2
             js-tokens: 4.0.0
             picocolors: 1.0.0
       
      -  /@babel/parser@7.24.1:
      -    resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
      -    engines: {node: '>=6.0.0'}
      -    hasBin: true
      +  '@babel/parser@7.24.1':
           dependencies:
             '@babel/types': 7.24.0
       
      -  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.13.0
      +  '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
             '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
       
      -  /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
       
      -  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      -    dev: true
       
      -  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-environment-visitor': 7.22.20
      @@ -1410,61 +10097,37 @@ packages:
             '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
             '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-imports': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.12.0
      +  '@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -1476,159 +10139,95 @@ packages:
             '@babel/helper-split-export-declaration': 7.22.6
             globals: 11.12.0
       
      -  /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/template': 7.24.0
       
      -  /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
       
      -  /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
             '@babel/helper-function-name': 7.23.0
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-simple-access': 7.22.5
       
      -  /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-hoist-variables': 7.22.5
      @@ -1636,60 +10235,36 @@ packages:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-validator-identifier': 7.22.20
       
      -  /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-compilation-targets': 7.23.6
      @@ -1697,61 +10272,37 @@ packages:
             '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      -      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
      -
      -  /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +      '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
      +
      +  '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
             '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -1759,47 +10310,27 @@ packages:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -1808,40 +10339,24 @@ packages:
             '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
             '@babel/types': 7.24.0
       
      -  /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             regenerator-transform: 0.15.2
       
      -  /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-module-imports': 7.24.3
      @@ -1852,59 +10367,34 @@ packages:
             semver: 6.3.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
       
      -  /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-annotate-as-pure': 7.22.5
      @@ -1912,50 +10402,30 @@ packages:
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
       
      -  /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
             '@babel/helper-plugin-utils': 7.24.0
       
      -  /@babel/preset-env@7.24.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/preset-env@7.24.3(@babel/core@7.24.3)':
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/core': 7.24.3
      @@ -2041,21 +10511,14 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
      +  '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
             '@babel/types': 7.24.0
             esutils: 2.0.3
       
      -  /@babel/preset-react@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/preset-react@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      @@ -2065,11 +10528,7 @@ packages:
             '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
             '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3)
       
      -  /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
      -    engines: {node: '>=6.9.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-plugin-utils': 7.24.0
      @@ -2078,34 +10537,24 @@ packages:
             '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
             '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
       
      -  /@babel/regjsgen@0.8.0:
      -    resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
      +  '@babel/regjsgen@0.8.0': {}
       
      -  /@babel/runtime-corejs3@7.24.1:
      -    resolution: {integrity: sha512-T9ko/35G+Bkl+win48GduaPlhSlOjjE5s1TeiEcD+QpxlLQnoEfb/nO/T+TQqkm+ipFwORn+rB8w14iJ/uD0bg==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/runtime-corejs3@7.24.1':
           dependencies:
             core-js-pure: 3.36.1
             regenerator-runtime: 0.14.1
      -    dev: false
       
      -  /@babel/runtime@7.24.1:
      -    resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/runtime@7.24.1':
           dependencies:
             regenerator-runtime: 0.14.1
       
      -  /@babel/template@7.24.0:
      -    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/template@7.24.0':
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
       
      -  /@babel/traverse@7.24.1:
      -    resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/traverse@7.24.1':
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/generator': 7.24.1
      @@ -2120,67 +10569,34 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@babel/types@7.24.0:
      -    resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
      -    engines: {node: '>=6.9.0'}
      +  '@babel/types@7.24.0':
           dependencies:
             '@babel/helper-string-parser': 7.24.1
             '@babel/helper-validator-identifier': 7.22.20
             to-fast-properties: 2.0.0
       
      -  /@bcoe/v8-coverage@0.2.3:
      -    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
      -    dev: true
      +  '@bcoe/v8-coverage@0.2.3': {}
       
      -  /@colors/colors@1.5.0:
      -    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
      -    engines: {node: '>=0.1.90'}
      -    requiresBuild: true
      -    dev: false
      +  '@colors/colors@1.5.0':
           optional: true
       
      -  /@colors/colors@1.6.0:
      -    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
      -    engines: {node: '>=0.1.90'}
      +  '@colors/colors@1.6.0': {}
       
      -  /@cspotcode/source-map-support@0.8.1:
      -    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
      -    engines: {node: '>=12'}
      +  '@cspotcode/source-map-support@0.8.1':
           dependencies:
             '@jridgewell/trace-mapping': 0.3.9
      -    dev: true
       
      -  /@dabh/diagnostics@2.0.3:
      -    resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
      +  '@dabh/diagnostics@2.0.3':
           dependencies:
             colorspace: 1.1.4
             enabled: 2.0.0
             kuler: 2.0.0
       
      -  /@discoveryjs/json-ext@0.5.7:
      -    resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
      -    engines: {node: '>=10.0.0'}
      +  '@discoveryjs/json-ext@0.5.7': {}
       
      -  /@docsearch/css@3.6.0:
      -    resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
      -    dev: false
      +  '@docsearch/css@3.6.0': {}
       
      -  /@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
      -    resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
      -    peerDependencies:
      -      '@types/react': '>= 16.8.0 < 19.0.0'
      -      react: '>= 16.8.0 < 19.0.0 || 18'
      -      react-dom: '>= 16.8.0 < 19.0.0 || 18'
      -      search-insights: '>= 1 < 3'
      -    peerDependenciesMeta:
      -      '@types/react':
      -        optional: true
      -      react:
      -        optional: true
      -      react-dom:
      -        optional: true
      -      search-insights:
      -        optional: true
      +  '@docsearch/react@3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)':
           dependencies:
             '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0)
             '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)
      @@ -2192,15 +10608,8 @@ packages:
             search-insights: 2.13.0
           transitivePeerDependencies:
             - '@algolia/client-search'
      -    dev: false
       
      -  /@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==}
      -    engines: {node: '>=18.0'}
      -    hasBin: true
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/core@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/generator': 7.24.1
      @@ -2255,7 +10664,7 @@ packages:
             react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0)
             react-dom: 18.2.0(react@18.2.0)
             react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
      -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
      +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
             react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0)
             react-router: 5.3.4(react@18.2.0)
             react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
      @@ -2291,32 +10700,20 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/cssnano-preset@3.1.1:
      -    resolution: {integrity: sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==}
      -    engines: {node: '>=18.0'}
      +  '@docusaurus/cssnano-preset@3.1.1':
           dependencies:
             cssnano-preset-advanced: 5.3.10(postcss@8.4.38)
             postcss: 8.4.38
             postcss-sort-media-queries: 4.4.1(postcss@8.4.38)
             tslib: 2.6.2
      -    dev: false
       
      -  /@docusaurus/logger@3.1.1:
      -    resolution: {integrity: sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==}
      -    engines: {node: '>=18.0'}
      +  '@docusaurus/logger@3.1.1':
           dependencies:
             chalk: 4.1.2
             tslib: 2.6.2
      -    dev: false
       
      -  /@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/mdx-loader@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/traverse': 7.24.1
      @@ -2353,13 +10750,8 @@ packages:
             - supports-color
             - uglify-js
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      +  '@docusaurus/module-type-aliases@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
           dependencies:
             '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2370,7 +10762,7 @@ packages:
             react: 18.2.0
             react-dom: 18.2.0(react@18.2.0)
             react-helmet-async: 2.0.4(react-dom@18.2.0)(react@18.2.0)
      -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
      +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
           transitivePeerDependencies:
             - '@swc/core'
             - esbuild
      @@ -2378,12 +10770,7 @@ packages:
             - uglify-js
             - webpack-cli
       
      -  /@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-content-blog@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -2421,14 +10808,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-content-docs@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -2464,14 +10845,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-content-pages@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2500,14 +10875,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-debug@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2534,14 +10903,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-google-analytics@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2566,14 +10929,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-google-gtag@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2599,14 +10956,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-google-tag-manager@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2631,14 +10982,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/plugin-sitemap@3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/logger': 3.1.1
      @@ -2668,14 +11013,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/preset-classic@3.1.1(@algolia/client-search@4.22.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/plugin-content-blog': 3.1.1(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
      @@ -2712,23 +11051,14 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/react-loadable@5.5.2(react@18.2.0):
      -    resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
      -    peerDependencies:
      -      react: '*'
      +  '@docusaurus/react-loadable@5.5.2(react@18.2.0)':
           dependencies:
             '@types/react': 18.2.71
             prop-types: 15.8.1
             react: 18.2.0
       
      -  /@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/theme-classic@3.1.1(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2775,14 +11105,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/theme-common@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)':
           dependencies:
             '@docusaurus/mdx-loader': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
             '@docusaurus/module-type-aliases': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2819,14 +11143,8 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/theme-search-algolia@3.1.1(patch_hash=lazxwgumd4o5a3ibe55vftei5e)(@algolia/client-search@4.22.1)(@docusaurus/types@3.1.1)(@types/react@18.2.71)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.4.3)':
           dependencies:
             '@docsearch/react': 3.6.0(@algolia/client-search@4.22.1)(@types/react@18.2.71)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
             '@docusaurus/core': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)(eslint@8.57.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.3)
      @@ -2867,22 +11185,13 @@ packages:
             - utf-8-validate
             - vue-template-compiler
             - webpack-cli
      -    dev: false
      -    patched: true
       
      -  /@docusaurus/theme-translations@3.1.1:
      -    resolution: {integrity: sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==}
      -    engines: {node: '>=18.0'}
      +  '@docusaurus/theme-translations@3.1.1':
           dependencies:
             fs-extra: 11.2.0
             tslib: 2.6.2
      -    dev: false
       
      -  /@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@docusaurus/types@3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)':
           dependencies:
             '@mdx-js/mdx': 3.0.1
             '@types/history': 4.7.11
      @@ -2902,22 +11211,12 @@ packages:
             - uglify-js
             - webpack-cli
       
      -  /@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1):
      -    resolution: {integrity: sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      '@docusaurus/types': '*'
      -    peerDependenciesMeta:
      -      '@docusaurus/types':
      -        optional: true
      +  '@docusaurus/utils-common@3.1.1(@docusaurus/types@3.1.1)':
           dependencies:
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
             tslib: 2.6.2
      -    dev: false
       
      -  /@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
      -    resolution: {integrity: sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==}
      -    engines: {node: '>=18.0'}
      +  '@docusaurus/utils-validation@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
           dependencies:
             '@docusaurus/logger': 3.1.1
             '@docusaurus/utils': 3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)
      @@ -2931,16 +11230,8 @@ packages:
             - supports-color
             - uglify-js
             - webpack-cli
      -    dev: false
       
      -  /@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2):
      -    resolution: {integrity: sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==}
      -    engines: {node: '>=18.0'}
      -    peerDependencies:
      -      '@docusaurus/types': '*'
      -    peerDependenciesMeta:
      -      '@docusaurus/types':
      -        optional: true
      +  '@docusaurus/utils@3.1.1(@docusaurus/types@3.1.1)(esbuild@0.20.2)':
           dependencies:
             '@docusaurus/logger': 3.1.1
             '@docusaurus/types': 3.1.1(esbuild@0.20.2)(react-dom@18.2.0)(react@18.2.0)
      @@ -2965,233 +11256,98 @@ packages:
             - esbuild
             - supports-color
             - uglify-js
      -      - webpack-cli
      -    dev: false
      -
      -  /@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0):
      -    resolution: {integrity: sha512-cfEyHLXPdzSKzJU/yYrPjFd0iVHPydh+NT0sgTe4bzXbcvOsKZuvQ86cAAwXN7lxY0N5cPes9ACxUxTdkEaNlw==}
      -    peerDependencies:
      -      effect: 2.0.0-next.62
      -      fast-check: ^3.13.2
      +      - webpack-cli
      +
      +  '@effect/schema@0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)':
           dependencies:
             effect: 2.0.0-next.62
             fast-check: 3.15.0
      -    dev: true
       
      -  /@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0):
      -    resolution: {integrity: sha512-erpdT6H/PvtO4iTz30ORlyc8xpGWkW9ijLbSmRVuYAaLlGrYhkAUd0pKXGwQ7asIj34ySpacwYch+Zqss2mzdA==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      html-webpack-plugin: '>=5'
      -      webpack: '>=5'
      +  '@effortlessmotion/html-webpack-inline-source-plugin@1.0.3(html-webpack-plugin@5.6.0)(webpack@5.91.0)':
           dependencies:
             escape-string-regexp: 4.0.0
             html-webpack-plugin: 5.6.0(webpack@5.91.0)
             slash: 3.0.0
             source-map-url: 0.4.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: true
       
      -  /@esbuild/aix-ppc64@0.20.2:
      -    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
      -    engines: {node: '>=12'}
      -    cpu: [ppc64]
      -    os: [aix]
      -    requiresBuild: true
      +  '@esbuild/aix-ppc64@0.20.2':
           optional: true
       
      -  /@esbuild/android-arm64@0.20.2:
      -    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [android]
      -    requiresBuild: true
      +  '@esbuild/android-arm64@0.20.2':
           optional: true
       
      -  /@esbuild/android-arm@0.20.2:
      -    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
      -    engines: {node: '>=12'}
      -    cpu: [arm]
      -    os: [android]
      -    requiresBuild: true
      +  '@esbuild/android-arm@0.20.2':
           optional: true
       
      -  /@esbuild/android-x64@0.20.2:
      -    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [android]
      -    requiresBuild: true
      +  '@esbuild/android-x64@0.20.2':
           optional: true
       
      -  /@esbuild/darwin-arm64@0.20.2:
      -    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [darwin]
      -    requiresBuild: true
      +  '@esbuild/darwin-arm64@0.20.2':
           optional: true
       
      -  /@esbuild/darwin-x64@0.20.2:
      -    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [darwin]
      -    requiresBuild: true
      +  '@esbuild/darwin-x64@0.20.2':
           optional: true
       
      -  /@esbuild/freebsd-arm64@0.20.2:
      -    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [freebsd]
      -    requiresBuild: true
      +  '@esbuild/freebsd-arm64@0.20.2':
           optional: true
       
      -  /@esbuild/freebsd-x64@0.20.2:
      -    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [freebsd]
      -    requiresBuild: true
      +  '@esbuild/freebsd-x64@0.20.2':
           optional: true
       
      -  /@esbuild/linux-arm64@0.20.2:
      -    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-arm64@0.20.2':
           optional: true
       
      -  /@esbuild/linux-arm@0.20.2:
      -    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
      -    engines: {node: '>=12'}
      -    cpu: [arm]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-arm@0.20.2':
           optional: true
       
      -  /@esbuild/linux-ia32@0.20.2:
      -    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
      -    engines: {node: '>=12'}
      -    cpu: [ia32]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-ia32@0.20.2':
           optional: true
       
      -  /@esbuild/linux-loong64@0.20.2:
      -    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
      -    engines: {node: '>=12'}
      -    cpu: [loong64]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-loong64@0.20.2':
           optional: true
       
      -  /@esbuild/linux-mips64el@0.20.2:
      -    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
      -    engines: {node: '>=12'}
      -    cpu: [mips64el]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-mips64el@0.20.2':
           optional: true
       
      -  /@esbuild/linux-ppc64@0.20.2:
      -    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
      -    engines: {node: '>=12'}
      -    cpu: [ppc64]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-ppc64@0.20.2':
           optional: true
       
      -  /@esbuild/linux-riscv64@0.20.2:
      -    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
      -    engines: {node: '>=12'}
      -    cpu: [riscv64]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-riscv64@0.20.2':
           optional: true
       
      -  /@esbuild/linux-s390x@0.20.2:
      -    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
      -    engines: {node: '>=12'}
      -    cpu: [s390x]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-s390x@0.20.2':
           optional: true
       
      -  /@esbuild/linux-x64@0.20.2:
      -    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [linux]
      -    requiresBuild: true
      +  '@esbuild/linux-x64@0.20.2':
           optional: true
       
      -  /@esbuild/netbsd-x64@0.20.2:
      -    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [netbsd]
      -    requiresBuild: true
      +  '@esbuild/netbsd-x64@0.20.2':
           optional: true
       
      -  /@esbuild/openbsd-x64@0.20.2:
      -    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [openbsd]
      -    requiresBuild: true
      +  '@esbuild/openbsd-x64@0.20.2':
           optional: true
       
      -  /@esbuild/sunos-x64@0.20.2:
      -    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [sunos]
      -    requiresBuild: true
      +  '@esbuild/sunos-x64@0.20.2':
           optional: true
       
      -  /@esbuild/win32-arm64@0.20.2:
      -    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
      -    engines: {node: '>=12'}
      -    cpu: [arm64]
      -    os: [win32]
      -    requiresBuild: true
      +  '@esbuild/win32-arm64@0.20.2':
           optional: true
       
      -  /@esbuild/win32-ia32@0.20.2:
      -    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
      -    engines: {node: '>=12'}
      -    cpu: [ia32]
      -    os: [win32]
      -    requiresBuild: true
      +  '@esbuild/win32-ia32@0.20.2':
           optional: true
       
      -  /@esbuild/win32-x64@0.20.2:
      -    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
      -    engines: {node: '>=12'}
      -    cpu: [x64]
      -    os: [win32]
      -    requiresBuild: true
      +  '@esbuild/win32-x64@0.20.2':
           optional: true
       
      -  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
      -    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    peerDependencies:
      -      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
      +  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
           dependencies:
             eslint: 8.57.0
             eslint-visitor-keys: 3.4.3
       
      -  /@eslint-community/regexpp@4.10.0:
      -    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
      -    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
      +  '@eslint-community/regexpp@4.10.0': {}
       
      -  /@eslint/eslintrc@2.1.4:
      -    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  '@eslint/eslintrc@2.1.4':
           dependencies:
             ajv: 6.12.6
             debug: 4.3.4(supports-color@8.1.1)
      @@ -3205,62 +11361,35 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@eslint/js@8.57.0:
      -    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  '@eslint/js@8.57.0': {}
       
      -  /@fortawesome/fontawesome-common-types@6.5.1:
      -    resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
      -    engines: {node: '>=6'}
      -    requiresBuild: true
      -    dev: false
      +  '@fortawesome/fontawesome-common-types@6.5.1': {}
       
      -  /@fortawesome/fontawesome-svg-core@6.5.1:
      -    resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
      -    engines: {node: '>=6'}
      -    requiresBuild: true
      +  '@fortawesome/fontawesome-svg-core@6.5.1':
           dependencies:
             '@fortawesome/fontawesome-common-types': 6.5.1
      -    dev: false
       
      -  /@fortawesome/free-solid-svg-icons@6.5.1:
      -    resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
      -    engines: {node: '>=6'}
      -    requiresBuild: true
      +  '@fortawesome/free-solid-svg-icons@6.5.1':
           dependencies:
             '@fortawesome/fontawesome-common-types': 6.5.1
      -    dev: false
       
      -  /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
      -    resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
      -    peerDependencies:
      -      '@fortawesome/fontawesome-svg-core': ~1 || ~6
      -      react: '>=16.3 || 18'
      +  '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)':
           dependencies:
             '@fortawesome/fontawesome-svg-core': 6.5.1
             prop-types: 15.8.1
             react: 18.2.0
      -    dev: false
       
      -  /@gar/promisify@1.1.3:
      -    resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
      +  '@gar/promisify@1.1.3': {}
       
      -  /@gwhitney/detect-indent@7.0.1:
      -    resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==}
      -    engines: {node: '>=12.20'}
      -    dev: true
      +  '@gwhitney/detect-indent@7.0.1': {}
       
      -  /@hapi/hoek@9.3.0:
      -    resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
      +  '@hapi/hoek@9.3.0': {}
       
      -  /@hapi/topo@5.1.0:
      -    resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
      +  '@hapi/topo@5.1.0':
           dependencies:
             '@hapi/hoek': 9.3.0
       
      -  /@humanwhocodes/config-array@0.11.14:
      -    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
      -    engines: {node: '>=10.10.0'}
      +  '@humanwhocodes/config-array@0.11.14':
           dependencies:
             '@humanwhocodes/object-schema': 2.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -3268,46 +11397,32 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@humanwhocodes/module-importer@1.0.1:
      -    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
      -    engines: {node: '>=12.22'}
      +  '@humanwhocodes/module-importer@1.0.1': {}
       
      -  /@humanwhocodes/object-schema@2.0.2:
      -    resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
      +  '@humanwhocodes/object-schema@2.0.2': {}
       
      -  /@isaacs/cliui@8.0.2:
      -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
      -    engines: {node: '>=12'}
      +  '@isaacs/cliui@8.0.2':
           dependencies:
             string-width: 5.1.2
      -      string-width-cjs: /string-width@4.2.3
      +      string-width-cjs: string-width@4.2.3
             strip-ansi: 7.1.0
      -      strip-ansi-cjs: /strip-ansi@6.0.1
      +      strip-ansi-cjs: strip-ansi@6.0.1
             wrap-ansi: 8.1.0
      -      wrap-ansi-cjs: /wrap-ansi@7.0.0
      +      wrap-ansi-cjs: wrap-ansi@7.0.0
       
      -  /@isaacs/string-locale-compare@1.1.0:
      -    resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
      +  '@isaacs/string-locale-compare@1.1.0': {}
       
      -  /@istanbuljs/load-nyc-config@1.1.0:
      -    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
      -    engines: {node: '>=8'}
      +  '@istanbuljs/load-nyc-config@1.1.0':
           dependencies:
             camelcase: 5.3.1
             find-up: 4.1.0
             get-package-type: 0.1.0
             js-yaml: 3.14.1
             resolve-from: 5.0.0
      -    dev: true
       
      -  /@istanbuljs/schema@0.1.3:
      -    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  '@istanbuljs/schema@0.1.3': {}
       
      -  /@jest/console@29.7.0:
      -    resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/console@29.7.0':
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
      @@ -3315,16 +11430,8 @@ packages:
             jest-message-util: 29.7.0
             jest-util: 29.7.0
             slash: 3.0.0
      -    dev: true
       
      -  /@jest/core@29.7.0(ts-node@10.9.2):
      -    resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      +  '@jest/core@29.7.0(ts-node@10.9.2)':
           dependencies:
             '@jest/console': 29.7.0
             '@jest/reporters': 29.7.0
      @@ -3358,38 +11465,26 @@ packages:
             - babel-plugin-macros
             - supports-color
             - ts-node
      -    dev: true
       
      -  /@jest/environment@29.7.0:
      -    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/environment@29.7.0':
           dependencies:
             '@jest/fake-timers': 29.7.0
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
             jest-mock: 29.7.0
      -    dev: true
       
      -  /@jest/expect-utils@29.7.0:
      -    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/expect-utils@29.7.0':
           dependencies:
             jest-get-type: 29.6.3
      -    dev: true
       
      -  /@jest/expect@29.7.0:
      -    resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/expect@29.7.0':
           dependencies:
             expect: 29.7.0
             jest-snapshot: 29.7.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@jest/fake-timers@29.7.0:
      -    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/fake-timers@29.7.0':
           dependencies:
             '@jest/types': 29.6.3
             '@sinonjs/fake-timers': 10.3.0
      @@ -3397,11 +11492,8 @@ packages:
             jest-message-util: 29.7.0
             jest-mock: 29.7.0
             jest-util: 29.7.0
      -    dev: true
       
      -  /@jest/globals@29.7.0:
      -    resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/globals@29.7.0':
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/expect': 29.7.0
      @@ -3409,16 +11501,8 @@ packages:
             jest-mock: 29.7.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@jest/reporters@29.7.0:
      -    resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      +  '@jest/reporters@29.7.0':
           dependencies:
             '@bcoe/v8-coverage': 0.2.3
             '@jest/console': 29.7.0
      @@ -3446,46 +11530,32 @@ packages:
             v8-to-istanbul: 9.2.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@jest/schemas@29.6.3:
      -    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/schemas@29.6.3':
           dependencies:
             '@sinclair/typebox': 0.27.8
       
      -  /@jest/source-map@29.6.3:
      -    resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/source-map@29.6.3':
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             callsites: 3.1.0
             graceful-fs: 4.2.11
      -    dev: true
       
      -  /@jest/test-result@29.7.0:
      -    resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/test-result@29.7.0':
           dependencies:
             '@jest/console': 29.7.0
             '@jest/types': 29.6.3
             '@types/istanbul-lib-coverage': 2.0.6
             collect-v8-coverage: 1.0.2
      -    dev: true
       
      -  /@jest/test-sequencer@29.7.0:
      -    resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/test-sequencer@29.7.0':
           dependencies:
             '@jest/test-result': 29.7.0
             graceful-fs: 4.2.11
             jest-haste-map: 29.7.0
             slash: 3.0.0
      -    dev: true
       
      -  /@jest/transform@29.7.0:
      -    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/transform@29.7.0':
           dependencies:
             '@babel/core': 7.24.3
             '@jest/types': 29.6.3
      @@ -3504,11 +11574,8 @@ packages:
             write-file-atomic: 4.0.2
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@jest/types@29.6.3:
      -    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  '@jest/types@29.6.3':
           dependencies:
             '@jest/schemas': 29.6.3
             '@types/istanbul-lib-coverage': 2.0.6
      @@ -3517,61 +11584,44 @@ packages:
             '@types/yargs': 17.0.32
             chalk: 4.1.2
       
      -  /@jridgewell/gen-mapping@0.3.5:
      -    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
      -    engines: {node: '>=6.0.0'}
      +  '@jridgewell/gen-mapping@0.3.5':
           dependencies:
             '@jridgewell/set-array': 1.2.1
             '@jridgewell/sourcemap-codec': 1.4.15
             '@jridgewell/trace-mapping': 0.3.25
       
      -  /@jridgewell/resolve-uri@3.1.2:
      -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
      -    engines: {node: '>=6.0.0'}
      +  '@jridgewell/resolve-uri@3.1.2': {}
       
      -  /@jridgewell/set-array@1.2.1:
      -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
      -    engines: {node: '>=6.0.0'}
      +  '@jridgewell/set-array@1.2.1': {}
       
      -  /@jridgewell/source-map@0.3.6:
      -    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
      +  '@jridgewell/source-map@0.3.6':
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             '@jridgewell/trace-mapping': 0.3.25
       
      -  /@jridgewell/sourcemap-codec@1.4.15:
      -    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
      +  '@jridgewell/sourcemap-codec@1.4.15': {}
       
      -  /@jridgewell/trace-mapping@0.3.25:
      -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
      +  '@jridgewell/trace-mapping@0.3.25':
           dependencies:
             '@jridgewell/resolve-uri': 3.1.2
             '@jridgewell/sourcemap-codec': 1.4.15
       
      -  /@jridgewell/trace-mapping@0.3.9:
      -    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
      +  '@jridgewell/trace-mapping@0.3.9':
           dependencies:
             '@jridgewell/resolve-uri': 3.1.2
             '@jridgewell/sourcemap-codec': 1.4.15
      -    dev: true
       
      -  /@leichtgewicht/ip-codec@2.0.4:
      -    resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
      +  '@leichtgewicht/ip-codec@2.0.4': {}
       
      -  /@mdx-js/loader@3.0.1(webpack@5.91.0):
      -    resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==}
      -    peerDependencies:
      -      webpack: '>=5'
      +  '@mdx-js/loader@3.0.1(webpack@5.91.0)':
           dependencies:
             '@mdx-js/mdx': 3.0.1
             source-map: 0.7.4
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@mdx-js/mdx@3.0.1:
      -    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
      +  '@mdx-js/mdx@3.0.1':
           dependencies:
             '@types/estree': 1.0.5
             '@types/estree-jsx': 1.0.5
      @@ -3599,150 +11649,66 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0):
      -    resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==}
      -    peerDependencies:
      -      '@types/react': '>=16'
      -      react: '>=16 || 18'
      +  '@mdx-js/react@3.0.1(@types/react@18.2.71)(react@18.2.0)':
           dependencies:
             '@types/mdx': 2.0.12
             '@types/react': 18.2.71
             react: 18.2.0
      -    dev: false
       
      -  /@msgpack/msgpack@2.8.0:
      -    resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
      -    engines: {node: '>= 10'}
      +  '@msgpack/msgpack@2.8.0': {}
       
      -  /@next/env@14.1.4:
      -    resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
      -    dev: false
      +  '@next/env@14.1.4': {}
       
      -  /@next/eslint-plugin-next@14.1.4:
      -    resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
      +  '@next/eslint-plugin-next@14.1.4':
           dependencies:
             glob: 10.3.10
      -    dev: true
       
      -  /@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1):
      -    resolution: {integrity: sha512-FyuDXPTEmuIqtj/AxaKLvwiEZb6hDviq6Ywn8ZlsZOlvYSWpcZGuQrYrDulrdIm/I48hHXANor7EiJzTbVig8Q==}
      -    peerDependencies:
      -      '@mdx-js/loader': '>=0.15.0'
      -      '@mdx-js/react': '>=0.15.0'
      -    peerDependenciesMeta:
      -      '@mdx-js/loader':
      -        optional: true
      -      '@mdx-js/react':
      -        optional: true
      +  '@next/mdx@14.1.4(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1)':
           dependencies:
             '@mdx-js/loader': 3.0.1(webpack@5.91.0)
             '@mdx-js/react': 3.0.1(@types/react@18.2.71)(react@18.2.0)
             source-map: 0.7.4
      -    dev: false
       
      -  /@next/swc-darwin-arm64@14.1.4:
      -    resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [darwin]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-darwin-arm64@14.1.4':
           optional: true
       
      -  /@next/swc-darwin-x64@14.1.4:
      -    resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [darwin]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-darwin-x64@14.1.4':
           optional: true
       
      -  /@next/swc-linux-arm64-gnu@14.1.4:
      -    resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [linux]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-linux-arm64-gnu@14.1.4':
           optional: true
       
      -  /@next/swc-linux-arm64-musl@14.1.4:
      -    resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [linux]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-linux-arm64-musl@14.1.4':
           optional: true
       
      -  /@next/swc-linux-x64-gnu@14.1.4:
      -    resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [linux]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-linux-x64-gnu@14.1.4':
           optional: true
       
      -  /@next/swc-linux-x64-musl@14.1.4:
      -    resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [linux]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-linux-x64-musl@14.1.4':
           optional: true
       
      -  /@next/swc-win32-arm64-msvc@14.1.4:
      -    resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
      -    engines: {node: '>= 10'}
      -    cpu: [arm64]
      -    os: [win32]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-win32-arm64-msvc@14.1.4':
           optional: true
       
      -  /@next/swc-win32-ia32-msvc@14.1.4:
      -    resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
      -    engines: {node: '>= 10'}
      -    cpu: [ia32]
      -    os: [win32]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-win32-ia32-msvc@14.1.4':
           optional: true
       
      -  /@next/swc-win32-x64-msvc@14.1.4:
      -    resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
      -    engines: {node: '>= 10'}
      -    cpu: [x64]
      -    os: [win32]
      -    requiresBuild: true
      -    dev: false
      +  '@next/swc-win32-x64-msvc@14.1.4':
           optional: true
       
      -  /@nodelib/fs.scandir@2.1.5:
      -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
      -    engines: {node: '>= 8'}
      +  '@nodelib/fs.scandir@2.1.5':
           dependencies:
             '@nodelib/fs.stat': 2.0.5
             run-parallel: 1.2.0
       
      -  /@nodelib/fs.stat@2.0.5:
      -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
      -    engines: {node: '>= 8'}
      +  '@nodelib/fs.stat@2.0.5': {}
       
      -  /@nodelib/fs.walk@1.2.8:
      -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
      -    engines: {node: '>= 8'}
      +  '@nodelib/fs.walk@1.2.8':
           dependencies:
             '@nodelib/fs.scandir': 2.1.5
             fastq: 1.17.1
       
      -  /@npmcli/arborist@4.3.1:
      -    resolution: {integrity: sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -    hasBin: true
      +  '@npmcli/arborist@4.3.1':
           dependencies:
             '@isaacs/string-locale-compare': 1.1.0
             '@npmcli/installed-package-contents': 1.0.7
      @@ -3780,27 +11746,21 @@ packages:
             - bluebird
             - supports-color
       
      -  /@npmcli/fs@1.1.1:
      -    resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
      +  '@npmcli/fs@1.1.1':
           dependencies:
             '@gar/promisify': 1.1.3
             semver: 7.6.0
       
      -  /@npmcli/fs@2.1.2:
      -    resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  '@npmcli/fs@2.1.2':
           dependencies:
             '@gar/promisify': 1.1.3
             semver: 7.6.0
       
      -  /@npmcli/fs@3.1.0:
      -    resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@npmcli/fs@3.1.0':
           dependencies:
             semver: 7.6.0
       
      -  /@npmcli/git@2.1.0:
      -    resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==}
      +  '@npmcli/git@2.1.0':
           dependencies:
             '@npmcli/promise-spawn': 1.3.2
             lru-cache: 6.0.0
      @@ -3813,9 +11773,7 @@ packages:
           transitivePeerDependencies:
             - bluebird
       
      -  /@npmcli/git@4.1.0:
      -    resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@npmcli/git@4.1.0':
           dependencies:
             '@npmcli/promise-spawn': 6.0.2
             lru-cache: 7.18.3
      @@ -3828,34 +11786,24 @@ packages:
           transitivePeerDependencies:
             - bluebird
       
      -  /@npmcli/installed-package-contents@1.0.7:
      -    resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==}
      -    engines: {node: '>= 10'}
      -    hasBin: true
      +  '@npmcli/installed-package-contents@1.0.7':
           dependencies:
             npm-bundled: 1.1.2
             npm-normalize-package-bin: 1.0.1
       
      -  /@npmcli/installed-package-contents@2.0.2:
      -    resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      +  '@npmcli/installed-package-contents@2.0.2':
           dependencies:
             npm-bundled: 3.0.0
             npm-normalize-package-bin: 3.0.1
       
      -  /@npmcli/map-workspaces@2.0.4:
      -    resolution: {integrity: sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  '@npmcli/map-workspaces@2.0.4':
           dependencies:
             '@npmcli/name-from-folder': 1.0.1
             glob: 8.1.0
             minimatch: 5.1.6
             read-package-json-fast: 2.0.3
       
      -  /@npmcli/metavuln-calculator@2.0.0:
      -    resolution: {integrity: sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +  '@npmcli/metavuln-calculator@2.0.0':
           dependencies:
             cacache: 15.3.0
             json-parse-even-better-errors: 2.3.1
      @@ -3865,50 +11813,35 @@ packages:
             - bluebird
             - supports-color
       
      -  /@npmcli/move-file@1.1.2:
      -    resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
      -    engines: {node: '>=10'}
      -    deprecated: This functionality has been moved to @npmcli/fs
      +  '@npmcli/move-file@1.1.2':
           dependencies:
             mkdirp: 1.0.4
             rimraf: 3.0.2
       
      -  /@npmcli/move-file@2.0.1:
      -    resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -    deprecated: This functionality has been moved to @npmcli/fs
      +  '@npmcli/move-file@2.0.1':
           dependencies:
             mkdirp: 1.0.4
             rimraf: 3.0.2
       
      -  /@npmcli/name-from-folder@1.0.1:
      -    resolution: {integrity: sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==}
      +  '@npmcli/name-from-folder@1.0.1': {}
       
      -  /@npmcli/node-gyp@1.0.3:
      -    resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==}
      +  '@npmcli/node-gyp@1.0.3': {}
       
      -  /@npmcli/node-gyp@3.0.0:
      -    resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@npmcli/node-gyp@3.0.0': {}
       
      -  /@npmcli/package-json@1.0.1:
      -    resolution: {integrity: sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==}
      +  '@npmcli/package-json@1.0.1':
           dependencies:
             json-parse-even-better-errors: 2.3.1
       
      -  /@npmcli/promise-spawn@1.3.2:
      -    resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==}
      +  '@npmcli/promise-spawn@1.3.2':
           dependencies:
             infer-owner: 1.0.4
       
      -  /@npmcli/promise-spawn@6.0.2:
      -    resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@npmcli/promise-spawn@6.0.2':
           dependencies:
             which: 3.0.1
       
      -  /@npmcli/run-script@2.0.0:
      -    resolution: {integrity: sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==}
      +  '@npmcli/run-script@2.0.0':
           dependencies:
             '@npmcli/node-gyp': 1.0.3
             '@npmcli/promise-spawn': 1.3.2
      @@ -3918,9 +11851,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /@npmcli/run-script@6.0.2:
      -    resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@npmcli/run-script@6.0.2':
           dependencies:
             '@npmcli/node-gyp': 3.0.0
             '@npmcli/promise-spawn': 6.0.2
      @@ -3931,13 +11862,11 @@ packages:
             - bluebird
             - supports-color
       
      -  /@octokit/auth-token@2.5.0:
      -    resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==}
      +  '@octokit/auth-token@2.5.0':
           dependencies:
             '@octokit/types': 6.41.0
       
      -  /@octokit/core@3.6.0:
      -    resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==}
      +  '@octokit/core@3.6.0':
           dependencies:
             '@octokit/auth-token': 2.5.0
             '@octokit/graphql': 4.8.0
      @@ -3949,15 +11878,13 @@ packages:
           transitivePeerDependencies:
             - encoding
       
      -  /@octokit/endpoint@6.0.12:
      -    resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==}
      +  '@octokit/endpoint@6.0.12':
           dependencies:
             '@octokit/types': 6.41.0
             is-plain-object: 5.0.0
             universal-user-agent: 6.0.1
       
      -  /@octokit/graphql@4.8.0:
      -    resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
      +  '@octokit/graphql@4.8.0':
           dependencies:
             '@octokit/request': 5.6.3
             '@octokit/types': 6.41.0
      @@ -3965,42 +11892,30 @@ packages:
           transitivePeerDependencies:
             - encoding
       
      -  /@octokit/openapi-types@12.11.0:
      -    resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==}
      +  '@octokit/openapi-types@12.11.0': {}
       
      -  /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0):
      -    resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==}
      -    peerDependencies:
      -      '@octokit/core': '>=2'
      +  '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0)':
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/types': 6.41.0
       
      -  /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
      -    resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==}
      -    peerDependencies:
      -      '@octokit/core': '>=3'
      +  '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0)':
           dependencies:
             '@octokit/core': 3.6.0
       
      -  /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
      -    resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==}
      -    peerDependencies:
      -      '@octokit/core': '>=3'
      +  '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0)':
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/types': 6.41.0
             deprecation: 2.3.1
       
      -  /@octokit/request-error@2.1.0:
      -    resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
      +  '@octokit/request-error@2.1.0':
           dependencies:
             '@octokit/types': 6.41.0
             deprecation: 2.3.1
             once: 1.4.0
       
      -  /@octokit/request@5.6.3:
      -    resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==}
      +  '@octokit/request@5.6.3':
           dependencies:
             '@octokit/endpoint': 6.0.12
             '@octokit/request-error': 2.1.0
      @@ -4011,8 +11926,7 @@ packages:
           transitivePeerDependencies:
             - encoding
       
      -  /@octokit/rest@18.12.0:
      -    resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==}
      +  '@octokit/rest@18.12.0':
           dependencies:
             '@octokit/core': 3.6.0
             '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0)
      @@ -4021,30 +11935,19 @@ packages:
           transitivePeerDependencies:
             - encoding
       
      -  /@octokit/types@6.41.0:
      -    resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
      +  '@octokit/types@6.41.0':
           dependencies:
             '@octokit/openapi-types': 12.11.0
       
      -  /@pkgjs/parseargs@0.11.0:
      -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
      -    engines: {node: '>=14'}
      -    requiresBuild: true
      +  '@pkgjs/parseargs@0.11.0':
           optional: true
       
      -  /@pnpm/cli-meta@5.0.1:
      -    resolution: {integrity: sha512-s7rVArn3s78w2ZDWC2/NzMaYBzq39QBmo1BQ4+qq1liX+ltSErDyAx3M/wvvJQgc+Ur3dZJYuc9t96roPnW3XQ==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/cli-meta@5.0.1':
           dependencies:
             '@pnpm/types': 9.1.0
             load-json-file: 6.2.0
      -    dev: true
       
      -  /@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-mNujOPCopIi4r7D2HJ96hHKPEr/UPuZGruQvPVvjoc/pCP0l+y38xZAT72W2WhEM4Fo/zP8L+6g/zf88qUSbbg==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/cli-utils@2.0.9(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/cli-meta': 5.0.1
             '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
      @@ -4057,15 +11960,10 @@ packages:
             '@pnpm/types': 9.1.0
             chalk: 4.1.2
             load-json-file: 6.2.0
      -    dev: true
       
      -  /@pnpm/config.env-replace@1.1.0:
      -    resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
      -    engines: {node: '>=12.22.0'}
      +  '@pnpm/config.env-replace@1.1.0': {}
       
      -  /@pnpm/config@18.4.0(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-8B4Pw7cnMvO3kYUBZYYIjg6BcGhHwxEEkmBAcqAeF9NM6LmG6F0lFNsOf6XPfHZMx2vUTpZxaWo0FQo1uU2AAw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/config@18.4.0(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/constants': 7.1.0
      @@ -4085,80 +11983,44 @@ packages:
             normalize-registry-url: 2.0.0
             path-absolute: 1.0.1
             path-name: 1.0.0
      -      ramda: /@pnpm/ramda@0.28.1
      +      ramda: '@pnpm/ramda@0.28.1'
             read-ini-file: 4.0.0
             realpath-missing: 1.1.0
             which: 3.0.1
           transitivePeerDependencies:
             - '@pnpm/logger'
      -    dev: true
       
      -  /@pnpm/constants@6.2.0:
      -    resolution: {integrity: sha512-GlDVUkeTR2WK0oZAM+wtDY6RBMLw6b0Z/5qKgBbDszx4e+R7CHyfG7JofyypogRCfeWXeAXp2C2FkFTh+sNgIg==}
      -    engines: {node: '>=14.6'}
      -    dev: false
      +  '@pnpm/constants@6.2.0': {}
       
      -  /@pnpm/constants@7.1.0:
      -    resolution: {integrity: sha512-PzpiPtGF+bIrmkNaHgOIfBZw669+rkUtt/5UFzHukiETwI4/+BTYz8FAr+m5Dfuns531Y+fYRFOpB0PdbAU0+w==}
      -    engines: {node: '>=16.14'}
      -    dev: true
      +  '@pnpm/constants@7.1.0': {}
       
      -  /@pnpm/constants@7.1.1:
      -    resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
      -    engines: {node: '>=16.14'}
      -    dev: true
      +  '@pnpm/constants@7.1.1': {}
       
      -  /@pnpm/constants@8.0.0:
      -    resolution: {integrity: sha512-yQosGUvYPpAjb1jOFcdbwekRjZRVxN6C0hHzfRCZrMKbxGjt/E0g0RcFlEDNVZ95tm4oMMcr7nEPa7H7LX3emw==}
      -    engines: {node: '>=18.12'}
      -    dev: false
      +  '@pnpm/constants@8.0.0': {}
       
      -  /@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-nf6DWO+75llaOxZ4Wb5xIzC86jb9PEeD8y7E4bbkLCJUvv/vRVgaPO3+Fo2GFTw5ZY7cip60rTF6dUzbP9dOVw==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/core-loggers@10.0.0(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 10.0.0
      -    dev: false
       
      -  /@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-qP/kk6OeLSxqhvA4n6u4XB6evqD9h1w9p4qtdBOVbkZloCK7L9btkSmKNolBoQ3wrOz7WRFfjRekYUSKphMMCg==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/core-loggers@9.0.1(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 9.1.0
      -    dev: true
       
      -  /@pnpm/crypto.base32-hash@3.0.0:
      -    resolution: {integrity: sha512-iGKP6rRKng5Tcad1+S+j3UoY5wVZN+z0ZgemlGp69jNgn6EaM4N0Q3mvnDNJ7UZFmL2ClXZZYLNuCk9pUYV3Xg==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/crypto.base32-hash@3.0.0':
           dependencies:
             rfc4648: 1.5.3
      -    dev: false
       
      -  /@pnpm/dedupe.issues-renderer@1.0.0:
      -    resolution: {integrity: sha512-vlo2t1ERLH3vsL1PtlCue6qfpWofN2Pt2bvGIPtN6Y4siCZVwjy9GU3yXJk1wS2+a7qj9plPiobebadJgV/VHw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/dedupe.issues-renderer@1.0.0':
           dependencies:
             '@pnpm/dedupe.types': 1.0.0
             archy: 1.0.0
             chalk: 4.1.2
      -    dev: true
       
      -  /@pnpm/dedupe.types@1.0.0:
      -    resolution: {integrity: sha512-WGZ5E7aMPwaM+WMFYszTCP3Sms/gE0nLgI37gFnNbaKgAh5R7GojSHCxLgXqjiz0Jwx+Qi9BmdDgN1cJs5XBsg==}
      -    engines: {node: '>=16.14'}
      -    dev: true
      +  '@pnpm/dedupe.types@1.0.0': {}
       
      -  /@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-ALV6AQOcRPJ5bZlcCHDFQ4cEqH2B/2Luu0VYoAoofINgbhNDOKCrV6PkqLvnMQps98k1f7mtn4w/u4r99+qr7g==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/default-reporter@12.2.3(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/config': 18.4.0(@pnpm/logger@5.0.0)
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
      @@ -4174,57 +12036,37 @@ packages:
             normalize-path: 3.0.0
             pretty-bytes: 5.6.0
             pretty-ms: 7.0.1
      -      ramda: /@pnpm/ramda@0.28.1
      +      ramda: '@pnpm/ramda@0.28.1'
             right-pad: 1.0.1
             rxjs: 7.8.1
             semver: 7.6.0
             stacktracey: 2.1.8
             string-length: 4.0.2
             strip-ansi: 6.0.1
      -    dev: true
       
      -  /@pnpm/dependency-path@3.0.0:
      -    resolution: {integrity: sha512-7n6pwEN/BiqUQEEBct62kXU0SB0gSgt2b+1RObAD7aEo4kvHbqgRy5ZXn4/DPStUy6YlccZJ8veI5ne+GQ9hKA==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/dependency-path@3.0.0':
           dependencies:
             '@pnpm/crypto.base32-hash': 3.0.0
             '@pnpm/types': 10.0.0
             semver: 7.6.0
      -    dev: false
       
      -  /@pnpm/error@4.0.1:
      -    resolution: {integrity: sha512-6UFakGqUDhnZVzYCfN+QaG1epxtBVS1M9mb9RzoBuvWxcimBYTT04fdYuyk1Nay8y/TvAVl3AVB/lCziWG0+2w==}
      -    engines: {node: '>=14.6'}
      +  '@pnpm/error@4.0.1':
           dependencies:
             '@pnpm/constants': 6.2.0
      -    dev: false
       
      -  /@pnpm/error@5.0.1:
      -    resolution: {integrity: sha512-JQSOeSEqrV6k6+kKgrlSJ7gddJRcjxtNCxSVJRIqwckkGSdSTNpXmKEdGgLlaDuEwElPAZUmLDGSqk5InJ5pMA==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/error@5.0.1':
           dependencies:
             '@pnpm/constants': 7.1.0
      -    dev: true
       
      -  /@pnpm/error@5.0.3:
      -    resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/error@5.0.3':
           dependencies:
             '@pnpm/constants': 7.1.1
      -    dev: true
       
      -  /@pnpm/error@6.0.0:
      -    resolution: {integrity: sha512-SKtHdV09k9+6jkohv9YuYmKMKNpxknoGjo0c6eN8x2Z3MHW2cuSt1OD/L16eCqdKQL+FUbvULxig0b9X9VK2/g==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/error@6.0.0':
           dependencies:
             '@pnpm/constants': 8.0.0
      -    dev: false
       
      -  /@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-V9khLYMUmadH45A5zZnrt1nUsZ0NokWkw0QjjgSdiBCgRyQnf1SvFjVcj4sVWxK0ZaijZQnIhIcKvlV3/zB0Ig==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/fetch@8.0.0(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/core-loggers': 10.0.0(@pnpm/logger@5.0.0)
             '@pnpm/fetching-types': 6.0.0
      @@ -4232,42 +12074,30 @@ packages:
             '@pnpm/network.agent': 1.0.1
             '@pnpm/types': 10.0.0
             '@zkochan/retry': 0.2.0
      -      node-fetch: /@pnpm/node-fetch@1.0.0
      +      node-fetch: '@pnpm/node-fetch@1.0.0'
           transitivePeerDependencies:
             - domexception
             - supports-color
      -    dev: false
       
      -  /@pnpm/fetcher-base@14.0.1:
      -    resolution: {integrity: sha512-DXPZ33CrmDQXnYzwvqyP7I0BF0MQELo4ah2JGpXhLhgOdzU+vj7zdKFo2x82L8anrK861IRi01V8o14oATq1vA==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/fetcher-base@14.0.1':
           dependencies:
             '@pnpm/resolver-base': 10.0.1
             '@pnpm/types': 9.1.0
             '@types/ssri': 7.1.5
      -    dev: true
       
      -  /@pnpm/fetching-types@6.0.0:
      -    resolution: {integrity: sha512-fnsaegb+0q7Ku6AyCmoVtBeCuO8ytB7YMEaGHC+0MGoRsxxa6EVLgi2H4abKr8LLslf5tHJBnOH24DjST3UNfQ==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/fetching-types@6.0.0':
           dependencies:
             '@zkochan/retry': 0.2.0
      -      node-fetch: /@pnpm/node-fetch@1.0.0
      +      node-fetch: '@pnpm/node-fetch@1.0.0'
           transitivePeerDependencies:
             - domexception
      -    dev: false
       
      -  /@pnpm/find-workspace-dir@6.0.3:
      -    resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/find-workspace-dir@6.0.3':
           dependencies:
             '@pnpm/error': 5.0.3
             find-up: 5.0.0
      -    dev: true
       
      -  /@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-80t6m6w3EfOg5k88CR8Eya6aOJi2uXyYGFSv2Y+3DqGAWD2x6CFLM3kop2Zi1nL9THMYpYF3hLnBRbqcJ8rmRg==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/find-workspace-packages@6.0.9(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/cli-utils': 2.0.9(@pnpm/logger@5.0.0)
             '@pnpm/constants': 7.1.0
      @@ -4277,75 +12107,49 @@ packages:
             read-yaml-file: 2.1.0
           transitivePeerDependencies:
             - '@pnpm/logger'
      -    dev: true
       
      -  /@pnpm/fs.find-packages@2.0.1:
      -    resolution: {integrity: sha512-QxG4YrnqnFdi9zmGxzUUH7YF6hgFqtPjDmiMlUvPbASSFRIr6mIT1rTynos2cbg0bRGXpLpp+0XtyOMdDGnBnQ==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/fs.find-packages@2.0.1':
           dependencies:
             '@pnpm/read-project-manifest': 5.0.1
             '@pnpm/types': 9.1.0
             '@pnpm/util.lex-comparator': 1.0.0
             fast-glob: 3.3.2
             p-filter: 2.1.0
      -    dev: true
       
      -  /@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-B1FtKwEEUm8130XqmX7eqgMhqdBxJ5gPrWssOLnpIlp/rvmJFsfD2P//80OjORPNFWnpfqdfBF34c/+ZCzAxZg==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/git-resolver@9.0.1(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/fetch': 8.0.0(@pnpm/logger@5.0.0)
             '@pnpm/resolver-base': 12.0.0
             graceful-git: 3.1.2
      -      hosted-git-info: /@pnpm/hosted-git-info@1.0.0
      +      hosted-git-info: '@pnpm/hosted-git-info@1.0.0'
             semver: 7.6.0
           transitivePeerDependencies:
             - '@pnpm/logger'
             - domexception
             - supports-color
      -    dev: false
       
      -  /@pnpm/git-utils@1.0.0:
      -    resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/git-utils@1.0.0':
           dependencies:
      -      execa: /safe-execa@0.1.2
      -    dev: true
      +      execa: safe-execa@0.1.2
       
      -  /@pnpm/git-utils@2.0.0:
      -    resolution: {integrity: sha512-k1rv4Zvno/5zJAqE/Mh9V0ehlm14NsYwpXTdaGMtyhkoHvlSckRfr23OIOIM7Q/TRX+LhqyJ2kep50SY2TsZ+g==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/git-utils@2.0.0':
           dependencies:
      -      execa: /safe-execa@0.1.2
      -    dev: false
      +      execa: safe-execa@0.1.2
       
      -  /@pnpm/graceful-fs@3.0.0:
      -    resolution: {integrity: sha512-72kkqIL2sacOVr6Y6B6xDGjRC4QgTLeIGkw/5XYyeMgMeL9mDE0lonZEOL9JuLS0XPOXQoyDtRCSmUrzAA57LQ==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/graceful-fs@3.0.0':
           dependencies:
             graceful-fs: 4.2.11
      -    dev: true
       
      -  /@pnpm/hooks.types@1.0.1:
      -    resolution: {integrity: sha512-Zx2hzwxBKv1RmFzyu4pEVY7QeIGUb54smSSYt8GcJgByn+uMXgwJ7ydv9t2Koc90QTqk8J3P2J+RDrZVIQpVQw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/hooks.types@1.0.1':
           dependencies:
             '@pnpm/lockfile-types': 5.1.0
             '@pnpm/types': 9.1.0
      -    dev: true
       
      -  /@pnpm/hosted-git-info@1.0.0:
      -    resolution: {integrity: sha512-QzmNiLShTnNyeTHr+cykG5hYjwph0+v49KHV36Dh8uA2rRMWw30qoZMARuxd00SYdoTwT8bIouqqmzi6TWfJHQ==}
      -    engines: {node: '>=10'}
      +  '@pnpm/hosted-git-info@1.0.0':
           dependencies:
             lru-cache: 6.0.0
      -    dev: false
       
      -  /@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-lgrVC3pkAKKLfLnQIotQ6zeiZgRypblZ/v5fat1eaK4e4KJmjSvkiqlqzC+RXj0njxB7O7a9XCnb6XzTe+63hQ==}
      -    engines: {node: '>=18.12'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/lockfile-file@9.0.2(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/constants': 8.0.0
             '@pnpm/dependency-path': 3.0.0
      @@ -4360,9 +12164,9 @@ packages:
             '@pnpm/util.lex-comparator': 3.0.0
             '@zkochan/rimraf': 2.1.3
             comver-to-semver: 1.0.0
      -      js-yaml: /@zkochan/js-yaml@0.0.7
      +      js-yaml: '@zkochan/js-yaml@0.0.7'
             normalize-path: 3.0.0
      -      ramda: /@pnpm/ramda@0.28.1
      +      ramda: '@pnpm/ramda@0.28.1'
             semver: 7.6.0
             sort-keys: 4.2.0
             strip-bom: 4.0.0
      @@ -4370,25 +12174,16 @@ packages:
           transitivePeerDependencies:
             - domexception
             - supports-color
      -    dev: false
       
      -  /@pnpm/lockfile-types@5.1.0:
      -    resolution: {integrity: sha512-14eYp9iOdJ7SyOIVXomXhbVnc14DEhzMLS3eKqxYxi9LkANUfxx1/pwRiRY/lTiP9RFS+OkIcTm2QiLsmNEctw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/lockfile-types@5.1.0':
           dependencies:
             '@pnpm/types': 9.1.0
      -    dev: true
       
      -  /@pnpm/lockfile-types@6.0.0:
      -    resolution: {integrity: sha512-a4/ULIPLZIIq8Qmi2HEoFgRTtEouGU5RNhuGDxnSmkxu1BjlNMNjLJeEI5jzMZCGOjBoML+AirY/XOO3bcEQ/w==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/lockfile-types@6.0.0':
           dependencies:
             '@pnpm/types': 10.0.0
      -    dev: false
       
      -  /@pnpm/lockfile-utils@10.0.0:
      -    resolution: {integrity: sha512-R2JXeAVdtXwu7NxfA4936Og6JHMGZCjOJ+45DUVP9SR7k2WS1bfOSeD5NRuuwqqdw+gYjsTvaYMYXhH6Sr0k2Q==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/lockfile-utils@10.0.0':
           dependencies:
             '@pnpm/dependency-path': 3.0.0
             '@pnpm/lockfile-types': 6.0.0
      @@ -4396,48 +12191,33 @@ packages:
             '@pnpm/resolver-base': 12.0.0
             '@pnpm/types': 10.0.0
             get-npm-tarball-url: 2.1.0
      -      ramda: /@pnpm/ramda@0.28.1
      -    dev: false
      +      ramda: '@pnpm/ramda@0.28.1'
       
      -  /@pnpm/logger@5.0.0:
      -    resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==}
      -    engines: {node: '>=12.17'}
      +  '@pnpm/logger@5.0.0':
           dependencies:
             bole: 5.0.11
             ndjson: 2.0.0
       
      -  /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-vQUmd0NQNv1yWEeFA4pjuBCs4AqhaHW4bVpuaD19lHE5J9SCs7iNRDpjnxjTm/qgDgO/hqu/spuAXEbPxR8u0A==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
             '@pnpm/types': 9.1.0
           transitivePeerDependencies:
             - '@pnpm/logger'
      -    dev: true
       
      -  /@pnpm/matcher@5.0.0:
      -    resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/matcher@5.0.0':
           dependencies:
             escape-string-regexp: 4.0.0
      -    dev: true
       
      -  /@pnpm/merge-lockfile-changes@6.0.0:
      -    resolution: {integrity: sha512-K9ARTZ+o/EZ10RPZY4dftlSnvPgJrVeOG0QwZLNTb9Z9q8D6EqSVwEh7CxDobGFe5FAj2lkDK6DY7EgPI4hhdw==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/merge-lockfile-changes@6.0.0':
           dependencies:
             '@pnpm/lockfile-types': 6.0.0
             comver-to-semver: 1.0.0
      -      ramda: /@pnpm/ramda@0.28.1
      +      ramda: '@pnpm/ramda@0.28.1'
             semver: 7.6.0
      -    dev: false
       
      -  /@pnpm/meta-updater@1.0.0:
      -    resolution: {integrity: sha512-ifhDDFPGgM7OCVqX+XlpvLJzGzQVIjWyBcHTGTOR2q/b2rjxfIl9GDcfETkTjKOe8EotbXwMo2EAmbtXbjJ1Kg==}
      -    engines: {node: '>=10.12'}
      -    hasBin: true
      +  '@pnpm/meta-updater@1.0.0':
           dependencies:
             '@pnpm/find-workspace-dir': 6.0.3
             '@pnpm/find-workspace-packages': 6.0.9(@pnpm/logger@5.0.0)
      @@ -4448,11 +12228,8 @@ packages:
             print-diff: 1.0.0
             ramda: 0.29.1
             write-json-file: 5.0.0
      -    dev: true
       
      -  /@pnpm/network.agent@1.0.1:
      -    resolution: {integrity: sha512-yRm8MzpZvst5IYF5IUgK7q5SvcncCUWOVBqpl527Pz6BafmDlcxAYyFy7lV4AiQr+VZ9VWudQsaHQeaYikyDGw==}
      -    engines: {node: '>=12.22.0'}
      +  '@pnpm/network.agent@1.0.1':
           dependencies:
             '@pnpm/network.config': 1.0.1
             '@pnpm/network.proxy-agent': 1.0.1
      @@ -4460,24 +12237,16 @@ packages:
             lru-cache: 7.10.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@pnpm/network.ca-file@1.0.2:
      -    resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
      -    engines: {node: '>=12.22.0'}
      +  '@pnpm/network.ca-file@1.0.2':
           dependencies:
             graceful-fs: 4.2.10
       
      -  /@pnpm/network.config@1.0.1:
      -    resolution: {integrity: sha512-ZmTsSFxd4QT5+IZvwHtQjzSlkB7OXAty6MfSenRyHOvR1f8j3l1VDWVXJiNaiLrKeidiZH6ADfsMTr2N0CGDeA==}
      -    engines: {node: '>=12.22.0'}
      +  '@pnpm/network.config@1.0.1':
           dependencies:
             nerf-dart: 1.0.0
      -    dev: false
       
      -  /@pnpm/network.proxy-agent@1.0.1:
      -    resolution: {integrity: sha512-0q9Btpw43aTPzEJJmQY1TNBrwNlPINRae8EpO7VpqbmFflBRO6u6qady6XFfbi+wwPxpcpVOYr6rCDBzALXYHA==}
      -    engines: {node: '>=12.22.0'}
      +  '@pnpm/network.proxy-agent@1.0.1':
           dependencies:
             '@pnpm/error': 4.0.1
             http-proxy-agent: 5.0.0
      @@ -4486,62 +12255,40 @@ packages:
             socks-proxy-agent: 6.1.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@pnpm/node-fetch@1.0.0:
      -    resolution: {integrity: sha512-eYwrzhKUBGFdq78rJStGjaHTUHA2VH+Avr//CVx/T+EJkI7hnFmOy6YghvcB2clj8HpO4V8tXRNuFNfRX08ayw==}
      -    engines: {node: ^10.17 || >=12.3}
      +  '@pnpm/node-fetch@1.0.0':
           dependencies:
             data-uri-to-buffer: 3.0.1
             fetch-blob: 2.1.2
           transitivePeerDependencies:
             - domexception
      -    dev: false
       
      -  /@pnpm/npm-conf@2.2.0:
      -    resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==}
      -    engines: {node: '>=12'}
      +  '@pnpm/npm-conf@2.2.0':
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/network.ca-file': 1.0.2
             config-chain: 1.1.13
      -    dev: true
       
      -  /@pnpm/npm-conf@2.2.2:
      -    resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
      -    engines: {node: '>=12'}
      +  '@pnpm/npm-conf@2.2.2':
           dependencies:
             '@pnpm/config.env-replace': 1.1.0
             '@pnpm/network.ca-file': 1.0.2
             config-chain: 1.1.13
      -    dev: false
       
      -  /@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-eYuqNBjzYf5wXbD4Xm6ZupRPjYxn2sp6mtYL9+bMntx1+yoUlCJABrYcSvbTM7kheoHyHRf+gEQDFKdn5trQ6w==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/package-is-installable@8.0.2(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
             '@pnpm/logger': 5.0.0
             '@pnpm/types': 9.1.0
             detect-libc: 2.0.3
      -      execa: /safe-execa@0.1.2
      +      execa: safe-execa@0.1.2
             mem: 8.1.1
             semver: 7.6.0
      -    dev: true
       
      -  /@pnpm/pick-fetcher@3.0.0:
      -    resolution: {integrity: sha512-2eisylRAU/jeuxFEPnS1gjLZKJGbYc4QEtEW6MVUYjO4Xi+2ttkSm7825S0J5IPpUIvln8HYPCUS0eQWSfpOaQ==}
      -    engines: {node: '>=18.12'}
      -    dev: false
      +  '@pnpm/pick-fetcher@3.0.0': {}
       
      -  /@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0):
      -    resolution: {integrity: sha512-A8uwamvs9jhf3DYLuGHCngWW8WXEDgcm3nwOeRTWJOOgButgXueIRHcEZPiKgQwy6t116ntimNeW5H3/hjim6w==}
      -    engines: {node: '>=16.14'}
      -    peerDependencies:
      -      '@pnpm/logger': ^5.0.0
      +  '@pnpm/pnpmfile@5.0.7(@pnpm/logger@5.0.0)':
           dependencies:
             '@pnpm/core-loggers': 9.0.1(@pnpm/logger@5.0.0)
             '@pnpm/error': 5.0.1
      @@ -4552,14 +12299,10 @@ packages:
             '@pnpm/types': 9.1.0
             chalk: 4.1.2
             path-absolute: 1.0.1
      -    dev: true
       
      -  /@pnpm/ramda@0.28.1:
      -    resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==}
      +  '@pnpm/ramda@0.28.1': {}
       
      -  /@pnpm/read-project-manifest@5.0.1:
      -    resolution: {integrity: sha512-MDXuQpYFbabSXzAnqP7VIQqBx5Z1fzOhzB/3YmIXJ+tE7Wue//IR3itMSYlWeaFLo1G5PCJklM2zBdvggRw1nw==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/read-project-manifest@5.0.1':
           dependencies:
             '@gwhitney/detect-indent': 7.0.1
             '@pnpm/error': 5.0.1
      @@ -4574,116 +12317,69 @@ packages:
             read-yaml-file: 2.1.0
             sort-keys: 4.2.0
             strip-bom: 4.0.0
      -    dev: true
       
      -  /@pnpm/render-peer-issues@4.0.1:
      -    resolution: {integrity: sha512-+SsNmbBHH7lBsFrs6dQCEWRtT+Bmq9MYxu+xgkXRplyvjSEQmM0h/UduIw5s8ZAlUuQcxNVTvl0b7ul6OPEIwg==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/render-peer-issues@4.0.1':
           dependencies:
             '@pnpm/types': 9.1.0
             archy: 1.0.0
             chalk: 4.1.2
             cli-columns: 4.0.0
      -    dev: true
       
      -  /@pnpm/resolver-base@10.0.1:
      -    resolution: {integrity: sha512-2yufLOpiPKQyNVLbL3dgoytkDuuURB5yBOrFtafiuZieGZJid2AeHmFfPhU9hNc/ZM1+wqH3EuVHe/1DdEgm4Q==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/resolver-base@10.0.1':
           dependencies:
             '@pnpm/types': 9.1.0
      -    dev: true
       
      -  /@pnpm/resolver-base@12.0.0:
      -    resolution: {integrity: sha512-R5FmojIoHRIC8hZDyr6a9SM6TkpAQXQXgq5QrycUwknRvGjTnrOFD5JaTzMZohcfFg6TWdA3sp3B0w/mhj98Rg==}
      -    engines: {node: '>=18.12'}
      +  '@pnpm/resolver-base@12.0.0':
           dependencies:
             '@pnpm/types': 10.0.0
      -    dev: false
       
      -  /@pnpm/store-controller-types@15.0.1:
      -    resolution: {integrity: sha512-S88sR6xhQ1ZDhMRIjhaRBA11N2OIDU2W+60szQLU8e2bw+KgGU60LbcXMunTdRnJskuB9UfDyoN6YuRtETBqYA==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/store-controller-types@15.0.1':
           dependencies:
             '@pnpm/fetcher-base': 14.0.1
             '@pnpm/resolver-base': 10.0.1
             '@pnpm/types': 9.1.0
      -    dev: true
       
      -  /@pnpm/text.comments-parser@2.0.0:
      -    resolution: {integrity: sha512-DRWtTmmxQQtuWHf1xPt9bqzCSq8d0MQF5x1kdpCDMLd7xk3nP4To2/OGkPrb8MKbrWsgCNDwXyKCFlEKrAg7fg==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/text.comments-parser@2.0.0':
           dependencies:
             strip-comments-strings: 1.2.0
      -    dev: true
       
      -  /@pnpm/types@10.0.0:
      -    resolution: {integrity: sha512-P608MRTOExt5BkIN2hsrb/ycEchwaPW/x80ujJUAqxKZSXNVAOrlEu3KJ+2+jTCunyWmo/EcE01ZdwCw8jgVrQ==}
      -    engines: {node: '>=18.12'}
      -    dev: false
      +  '@pnpm/types@10.0.0': {}
       
      -  /@pnpm/types@9.1.0:
      -    resolution: {integrity: sha512-MMPDMLOY17bfNhLhR9Qmq6/2keoocnR5DWXZfZDC4dKXugrMsE1jB6RnuU8swJIo4zyCsMT/iVSAtl/XK+9Z+A==}
      -    engines: {node: '>=16.14'}
      -    dev: true
      +  '@pnpm/types@9.1.0': {}
       
      -  /@pnpm/types@9.4.2:
      -    resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==}
      -    engines: {node: '>=16.14'}
      -    dev: true
      +  '@pnpm/types@9.4.2': {}
       
      -  /@pnpm/util.lex-comparator@1.0.0:
      -    resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}
      -    engines: {node: '>=12.22.0'}
      -    dev: true
      +  '@pnpm/util.lex-comparator@1.0.0': {}
       
      -  /@pnpm/util.lex-comparator@3.0.0:
      -    resolution: {integrity: sha512-ead+l3IiuVXwKDf/QJPX6G93cwhXki3yOVEA/VdAO7AhZ5vUuSBxHe6gQKEbB0QacJ4H5VsYxeM1xUgwjjOO/Q==}
      -    engines: {node: '>=18.12'}
      -    dev: false
      +  '@pnpm/util.lex-comparator@3.0.0': {}
       
      -  /@pnpm/write-project-manifest@5.0.1:
      -    resolution: {integrity: sha512-zU4vDfBUx/jUBPmR4CzCqPDOPObb/7iLT3UZvhXSJ8ZXDo9214V6agnJvxQ6bYBcypdiKva0hnb3tmo1chQBYg==}
      -    engines: {node: '>=16.14'}
      +  '@pnpm/write-project-manifest@5.0.1':
           dependencies:
             '@pnpm/text.comments-parser': 2.0.0
             '@pnpm/types': 9.1.0
             json5: 2.2.3
             write-file-atomic: 5.0.1
             write-yaml-file: 5.0.0
      -    dev: true
       
      -  /@polka/url@1.0.0-next.25:
      -    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
      -    dev: false
      +  '@polka/url@1.0.0-next.25': {}
       
      -  /@rushstack/eslint-patch@1.8.0:
      -    resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==}
      -    dev: true
      +  '@rushstack/eslint-patch@1.8.0': {}
       
      -  /@sideway/address@4.1.5:
      -    resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
      +  '@sideway/address@4.1.5':
           dependencies:
             '@hapi/hoek': 9.3.0
       
      -  /@sideway/formula@3.0.1:
      -    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
      +  '@sideway/formula@3.0.1': {}
       
      -  /@sideway/pinpoint@2.0.0:
      -    resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
      +  '@sideway/pinpoint@2.0.0': {}
       
      -  /@sigstore/bundle@1.1.0:
      -    resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@sigstore/bundle@1.1.0':
           dependencies:
             '@sigstore/protobuf-specs': 0.2.1
       
      -  /@sigstore/protobuf-specs@0.2.1:
      -    resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@sigstore/protobuf-specs@0.2.1': {}
       
      -  /@sigstore/sign@1.0.0:
      -    resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@sigstore/sign@1.0.0':
           dependencies:
             '@sigstore/bundle': 1.1.0
             '@sigstore/protobuf-specs': 0.2.1
      @@ -4691,210 +12387,112 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /@sigstore/tuf@1.0.3:
      -    resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@sigstore/tuf@1.0.3':
           dependencies:
             '@sigstore/protobuf-specs': 0.2.1
             tuf-js: 1.1.7
           transitivePeerDependencies:
             - supports-color
       
      -  /@sinclair/typebox@0.27.8:
      -    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
      +  '@sinclair/typebox@0.27.8': {}
       
      -  /@sindresorhus/is@4.6.0:
      -    resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  '@sindresorhus/is@4.6.0': {}
       
      -  /@sindresorhus/is@5.6.0:
      -    resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
      -    engines: {node: '>=14.16'}
      -    dev: false
      +  '@sindresorhus/is@5.6.0': {}
       
      -  /@sinonjs/commons@2.0.0:
      -    resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
      +  '@sinonjs/commons@2.0.0':
           dependencies:
             type-detect: 4.0.8
      -    dev: true
       
      -  /@sinonjs/commons@3.0.1:
      -    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
      +  '@sinonjs/commons@3.0.1':
           dependencies:
             type-detect: 4.0.8
      -    dev: true
       
      -  /@sinonjs/fake-timers@10.3.0:
      -    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
      +  '@sinonjs/fake-timers@10.3.0':
           dependencies:
             '@sinonjs/commons': 3.0.1
      -    dev: true
       
      -  /@sinonjs/fake-timers@11.2.2:
      -    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
      +  '@sinonjs/fake-timers@11.2.2':
           dependencies:
             '@sinonjs/commons': 3.0.1
      -    dev: true
       
      -  /@sinonjs/samsam@8.0.0:
      -    resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==}
      +  '@sinonjs/samsam@8.0.0':
           dependencies:
             '@sinonjs/commons': 2.0.0
             lodash.get: 4.4.2
             type-detect: 4.0.8
      -    dev: true
       
      -  /@sinonjs/text-encoding@0.7.2:
      -    resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
      -    dev: true
      +  '@sinonjs/text-encoding@0.7.2': {}
       
      -  /@slorber/remark-comment@1.0.0:
      -    resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
      +  '@slorber/remark-comment@1.0.0':
           dependencies:
             micromark-factory-space: 1.1.0
             micromark-util-character: 1.2.0
             micromark-util-symbol: 1.1.0
      -    dev: false
       
      -  /@slorber/static-site-generator-webpack-plugin@4.0.7:
      -    resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
      -    engines: {node: '>=14'}
      +  '@slorber/static-site-generator-webpack-plugin@4.0.7':
           dependencies:
             eval: 0.1.8
             p-map: 4.0.0
             webpack-sources: 3.2.3
      -    dev: false
       
      -  /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
       
      -  /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
       
      -  /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
       
      -  /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
       
      -  /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
      -
      -  /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +
      +  '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
       
      -  /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
       
      -  /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: false
       
      -  /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
      -    dev: true
       
      -  /@svgr/babel-preset@6.5.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-preset@6.5.1(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.24.3)
      @@ -4905,13 +12503,8 @@ packages:
             '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.24.3)
      -    dev: false
       
      -  /@svgr/babel-preset@8.1.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0-0
      +  '@svgr/babel-preset@8.1.0(@babel/core@7.24.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.3)
      @@ -4922,11 +12515,8 @@ packages:
             '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.3)
             '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3)
      -    dev: true
       
      -  /@svgr/core@6.5.1:
      -    resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
      -    engines: {node: '>=10'}
      +  '@svgr/core@6.5.1':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
      @@ -4935,11 +12525,8 @@ packages:
             cosmiconfig: 7.1.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@svgr/core@8.1.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
      -    engines: {node: '>=14'}
      +  '@svgr/core@8.1.0(typescript@5.4.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
      @@ -4949,29 +12536,18 @@ packages:
           transitivePeerDependencies:
             - supports-color
             - typescript
      -    dev: true
       
      -  /@svgr/hast-util-to-babel-ast@6.5.1:
      -    resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
      -    engines: {node: '>=10'}
      +  '@svgr/hast-util-to-babel-ast@6.5.1':
           dependencies:
             '@babel/types': 7.24.0
             entities: 4.5.0
      -    dev: false
       
      -  /@svgr/hast-util-to-babel-ast@8.0.0:
      -    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
      -    engines: {node: '>=14'}
      +  '@svgr/hast-util-to-babel-ast@8.0.0':
           dependencies:
             '@babel/types': 7.24.0
             entities: 4.5.0
      -    dev: true
       
      -  /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1):
      -    resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@svgr/core': ^6.0.0
      +  '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 6.5.1(@babel/core@7.24.3)
      @@ -4980,13 +12556,8 @@ packages:
             svg-parser: 2.0.4
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
      -    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      +  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0)':
           dependencies:
             '@babel/core': 7.24.3
             '@svgr/babel-preset': 8.1.0(@babel/core@7.24.3)
      @@ -4995,25 +12566,15 @@ packages:
             svg-parser: 2.0.4
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1):
      -    resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      +  '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)':
           dependencies:
             '@svgr/core': 6.5.1
             cosmiconfig: 7.1.0
             deepmerge: 4.3.1
             svgo: 2.8.0
      -    dev: false
       
      -  /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      '@svgr/core': '*'
      +  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.3)':
           dependencies:
             '@svgr/core': 8.1.0(typescript@5.4.3)
             cosmiconfig: 8.3.6(typescript@5.4.3)
      @@ -5021,11 +12582,8 @@ packages:
             svgo: 3.2.0
           transitivePeerDependencies:
             - typescript
      -    dev: true
       
      -  /@svgr/webpack@6.5.1:
      -    resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==}
      -    engines: {node: '>=10'}
      +  '@svgr/webpack@6.5.1':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
      @@ -5037,11 +12595,8 @@ packages:
             '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1)
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /@svgr/webpack@8.1.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
      -    engines: {node: '>=14'}
      +  '@svgr/webpack@8.1.0(typescript@5.4.3)':
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.3)
      @@ -5054,24 +12609,16 @@ packages:
           transitivePeerDependencies:
             - supports-color
             - typescript
      -    dev: true
       
      -  /@swc/helpers@0.5.2:
      -    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
      +  '@swc/helpers@0.5.2':
           dependencies:
             tslib: 2.6.2
      -    dev: false
       
      -  /@szmarczak/http-timer@5.0.1:
      -    resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
      -    engines: {node: '>=14.16'}
      +  '@szmarczak/http-timer@5.0.1':
           dependencies:
             defer-to-connect: 2.0.1
      -    dev: false
       
      -  /@testing-library/dom@9.3.4:
      -    resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
      -    engines: {node: '>=14'}
      +  '@testing-library/dom@9.3.4':
           dependencies:
             '@babel/code-frame': 7.24.2
             '@babel/runtime': 7.24.1
      @@ -5081,495 +12628,338 @@ packages:
             dom-accessibility-api: 0.5.16
             lz-string: 1.5.0
             pretty-format: 27.5.1
      -    dev: true
       
      -  /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      react: ^18.0.0 || 18
      -      react-dom: ^18.0.0 || 18
      +  '@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0)':
           dependencies:
             '@babel/runtime': 7.24.1
             '@testing-library/dom': 9.3.4
             '@types/react-dom': 18.2.22
             react: 18.2.0
             react-dom: 18.2.0(react@18.2.0)
      -    dev: true
       
      -  /@tootallnate/once@1.1.2:
      -    resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
      -    engines: {node: '>= 6'}
      +  '@tootallnate/once@1.1.2': {}
       
      -  /@tootallnate/once@2.0.0:
      -    resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
      -    engines: {node: '>= 10'}
      +  '@tootallnate/once@2.0.0': {}
       
      -  /@trysound/sax@0.2.0:
      -    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
      -    engines: {node: '>=10.13.0'}
      +  '@trysound/sax@0.2.0': {}
       
      -  /@tsconfig/docusaurus@2.0.2:
      -    resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==}
      -    dev: true
      +  '@tsconfig/docusaurus@2.0.2': {}
       
      -  /@tsconfig/node10@1.0.10:
      -    resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
      -    dev: true
      +  '@tsconfig/node10@1.0.10': {}
       
      -  /@tsconfig/node12@1.0.11:
      -    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
      -    dev: true
      +  '@tsconfig/node12@1.0.11': {}
       
      -  /@tsconfig/node14@1.0.3:
      -    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
      -    dev: true
      +  '@tsconfig/node14@1.0.3': {}
       
      -  /@tsconfig/node16@1.0.4:
      -    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
      -    dev: true
      +  '@tsconfig/node16@1.0.4': {}
       
      -  /@tufjs/canonical-json@1.0.0:
      -    resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@tufjs/canonical-json@1.0.0': {}
       
      -  /@tufjs/models@1.0.4:
      -    resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  '@tufjs/models@1.0.4':
           dependencies:
             '@tufjs/canonical-json': 1.0.0
             minimatch: 9.0.3
       
      -  /@types/acorn@4.0.6:
      -    resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
      +  '@types/acorn@4.0.6':
           dependencies:
             '@types/estree': 1.0.5
       
      -  /@types/aria-query@5.0.4:
      -    resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
      -    dev: true
      +  '@types/aria-query@5.0.4': {}
       
      -  /@types/babel__core@7.20.5:
      -    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
      +  '@types/babel__core@7.20.5':
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
             '@types/babel__generator': 7.6.8
             '@types/babel__template': 7.4.4
             '@types/babel__traverse': 7.20.5
      -    dev: true
       
      -  /@types/babel__generator@7.6.8:
      -    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
      +  '@types/babel__generator@7.6.8':
           dependencies:
             '@babel/types': 7.24.0
      -    dev: true
       
      -  /@types/babel__template@7.4.4:
      -    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
      +  '@types/babel__template@7.4.4':
           dependencies:
             '@babel/parser': 7.24.1
             '@babel/types': 7.24.0
      -    dev: true
       
      -  /@types/babel__traverse@7.20.5:
      -    resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
      +  '@types/babel__traverse@7.20.5':
           dependencies:
             '@babel/types': 7.24.0
      -    dev: true
       
      -  /@types/body-parser@1.19.5:
      -    resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
      +  '@types/body-parser@1.19.5':
           dependencies:
             '@types/connect': 3.4.38
             '@types/node': 18.18.2
       
      -  /@types/bonjour@3.5.13:
      -    resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
      +  '@types/bonjour@3.5.13':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/chai@4.3.14:
      -    resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
      +  '@types/chai@4.3.14': {}
       
      -  /@types/connect-history-api-fallback@1.5.4:
      -    resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
      +  '@types/connect-history-api-fallback@1.5.4':
           dependencies:
             '@types/express-serve-static-core': 4.17.43
             '@types/node': 18.18.2
       
      -  /@types/connect@3.4.38:
      -    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
      +  '@types/connect@3.4.38':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/debug@4.1.12:
      -    resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
      +  '@types/debug@4.1.12':
           dependencies:
             '@types/ms': 0.7.34
       
      -  /@types/eslint-scope@3.7.7:
      -    resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
      +  '@types/eslint-scope@3.7.7':
           dependencies:
             '@types/eslint': 8.56.6
             '@types/estree': 1.0.5
       
      -  /@types/eslint@8.56.6:
      -    resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
      +  '@types/eslint@8.56.6':
           dependencies:
             '@types/estree': 1.0.5
             '@types/json-schema': 7.0.15
       
      -  /@types/estree-jsx@1.0.5:
      -    resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
      +  '@types/estree-jsx@1.0.5':
           dependencies:
             '@types/estree': 1.0.5
       
      -  /@types/estree@1.0.5:
      -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
      +  '@types/estree@1.0.5': {}
       
      -  /@types/expect@1.20.4:
      -    resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
      +  '@types/expect@1.20.4': {}
       
      -  /@types/express-serve-static-core@4.17.43:
      -    resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
      +  '@types/express-serve-static-core@4.17.43':
           dependencies:
             '@types/node': 18.18.2
             '@types/qs': 6.9.14
             '@types/range-parser': 1.2.7
             '@types/send': 0.17.4
       
      -  /@types/express@4.17.21:
      -    resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
      +  '@types/express@4.17.21':
           dependencies:
             '@types/body-parser': 1.19.5
             '@types/express-serve-static-core': 4.17.43
             '@types/qs': 6.9.14
             '@types/serve-static': 1.15.5
       
      -  /@types/fs-extra@11.0.4:
      -    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
      +  '@types/fs-extra@11.0.4':
           dependencies:
             '@types/jsonfile': 6.1.4
             '@types/node': 18.18.2
      -    dev: true
       
      -  /@types/glob@8.1.0:
      -    resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
      +  '@types/glob@8.1.0':
           dependencies:
             '@types/minimatch': 5.1.2
             '@types/node': 18.18.2
      -    dev: true
       
      -  /@types/graceful-fs@4.1.9:
      -    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
      +  '@types/graceful-fs@4.1.9':
           dependencies:
             '@types/node': 18.18.2
      -    dev: true
       
      -  /@types/gtag.js@0.0.12:
      -    resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==}
      -    dev: false
      +  '@types/gtag.js@0.0.12': {}
       
      -  /@types/hast@3.0.4:
      -    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
      +  '@types/hast@3.0.4':
           dependencies:
             '@types/unist': 3.0.2
       
      -  /@types/history@4.7.11:
      -    resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
      +  '@types/history@4.7.11': {}
       
      -  /@types/html-minifier-terser@6.1.0:
      -    resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
      +  '@types/html-minifier-terser@6.1.0': {}
       
      -  /@types/http-cache-semantics@4.0.4:
      -    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
      -    dev: false
      +  '@types/http-cache-semantics@4.0.4': {}
       
      -  /@types/http-errors@2.0.4:
      -    resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
      +  '@types/http-errors@2.0.4': {}
       
      -  /@types/http-proxy@1.17.14:
      -    resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
      +  '@types/http-proxy@1.17.14':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/istanbul-lib-coverage@2.0.6:
      -    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
      +  '@types/istanbul-lib-coverage@2.0.6': {}
       
      -  /@types/istanbul-lib-report@3.0.3:
      -    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
      +  '@types/istanbul-lib-report@3.0.3':
           dependencies:
             '@types/istanbul-lib-coverage': 2.0.6
       
      -  /@types/istanbul-reports@3.0.4:
      -    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
      +  '@types/istanbul-reports@3.0.4':
           dependencies:
             '@types/istanbul-lib-report': 3.0.3
       
      -  /@types/jest@29.5.12:
      -    resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
      +  '@types/jest@29.5.12':
           dependencies:
             expect: 29.7.0
             pretty-format: 29.7.0
      -    dev: true
       
      -  /@types/js-cookie@2.2.7:
      -    resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
      -    dev: false
      +  '@types/js-cookie@2.2.7': {}
       
      -  /@types/js-yaml@4.0.9:
      -    resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
      +  '@types/js-yaml@4.0.9': {}
       
      -  /@types/jsdom@20.0.1:
      -    resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
      +  '@types/jsdom@20.0.1':
           dependencies:
             '@types/node': 18.18.2
             '@types/tough-cookie': 4.0.5
             parse5: 7.1.2
      -    dev: true
       
      -  /@types/json-schema@7.0.15:
      -    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
      +  '@types/json-schema@7.0.15': {}
       
      -  /@types/json5@0.0.29:
      -    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
      -    dev: true
      +  '@types/json5@0.0.29': {}
       
      -  /@types/jsonfile@6.1.4:
      -    resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
      +  '@types/jsonfile@6.1.4':
           dependencies:
             '@types/node': 18.18.2
      -    dev: true
       
      -  /@types/lodash@4.17.0:
      -    resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==}
      +  '@types/lodash@4.17.0': {}
       
      -  /@types/mdast@4.0.3:
      -    resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
      +  '@types/mdast@4.0.3':
           dependencies:
             '@types/unist': 3.0.2
       
      -  /@types/mdx-js__react@1.5.8:
      -    resolution: {integrity: sha512-iLQL8JZ4AZ+rpZvGUsQwENffpsSCMLYB8kE6OhGasLmdYn7aSLq53uOvZrKx5FM+hymE2nm08HDfq7tFx02ElA==}
      +  '@types/mdx-js__react@1.5.8':
           dependencies:
             '@types/react': 18.2.71
      -    dev: true
       
      -  /@types/mdx@2.0.12:
      -    resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==}
      +  '@types/mdx@2.0.12': {}
       
      -  /@types/mime@1.3.5:
      -    resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
      +  '@types/mime@1.3.5': {}
       
      -  /@types/mime@3.0.4:
      -    resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
      +  '@types/mime@3.0.4': {}
       
      -  /@types/minimatch@3.0.5:
      -    resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
      +  '@types/minimatch@3.0.5': {}
       
      -  /@types/minimatch@5.1.2:
      -    resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
      -    dev: true
      +  '@types/minimatch@5.1.2': {}
       
      -  /@types/minimist@1.2.5:
      -    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
      -    dev: true
      +  '@types/minimist@1.2.5': {}
       
      -  /@types/mocha@10.0.6:
      -    resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
      -    dev: true
      +  '@types/mocha@10.0.6': {}
       
      -  /@types/moo@0.5.9:
      -    resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==}
      -    dev: true
      +  '@types/moo@0.5.9': {}
       
      -  /@types/ms@0.7.34:
      -    resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
      +  '@types/ms@0.7.34': {}
       
      -  /@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q):
      -    resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==}
      -    dev: true
      -    patched: true
      +  '@types/nearley@2.11.5(patch_hash=m6lvvh3c4y7yrjlmqdyj74zp2q)': {}
       
      -  /@types/node-forge@1.3.11:
      -    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
      +  '@types/node-forge@1.3.11':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/node@15.14.9:
      -    resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
      +  '@types/node@15.14.9': {}
       
      -  /@types/node@17.0.45:
      -    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
      -    dev: false
      +  '@types/node@17.0.45': {}
       
      -  /@types/node@18.18.2:
      -    resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==}
      +  '@types/node@18.18.2': {}
       
      -  /@types/normalize-package-data@2.4.4:
      -    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
      +  '@types/normalize-package-data@2.4.4': {}
       
      -  /@types/normalize-path@3.0.2:
      -    resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==}
      -    dev: false
      +  '@types/normalize-path@3.0.2': {}
       
      -  /@types/parse-json@4.0.2:
      -    resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
      -    dev: false
      +  '@types/parse-json@4.0.2': {}
       
      -  /@types/prismjs@1.26.3:
      -    resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==}
      -    dev: false
      +  '@types/prismjs@1.26.3': {}
       
      -  /@types/prop-types@15.7.12:
      -    resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
      +  '@types/prop-types@15.7.12': {}
       
      -  /@types/qs@6.9.14:
      -    resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
      +  '@types/qs@6.9.14': {}
       
      -  /@types/range-parser@1.2.7:
      -    resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
      +  '@types/range-parser@1.2.7': {}
       
      -  /@types/react-dom@18.2.22:
      -    resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==}
      +  '@types/react-dom@18.2.22':
           dependencies:
             '@types/react': 18.2.71
      -    dev: true
       
      -  /@types/react-helmet@6.1.11:
      -    resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
      +  '@types/react-helmet@6.1.11':
           dependencies:
             '@types/react': 18.2.71
      -    dev: true
       
      -  /@types/react-router-config@5.0.11:
      -    resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
      +  '@types/react-router-config@5.0.11':
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
             '@types/react-router': 5.1.20
       
      -  /@types/react-router-dom@5.3.3:
      -    resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
      +  '@types/react-router-dom@5.3.3':
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
             '@types/react-router': 5.1.20
       
      -  /@types/react-router@5.1.20:
      -    resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
      +  '@types/react-router@5.1.20':
           dependencies:
             '@types/history': 4.7.11
             '@types/react': 18.2.71
       
      -  /@types/react@18.2.71:
      -    resolution: {integrity: sha512-PxEsB9OjmQeYGffoWnYAd/r5FiJuUw2niFQHPc2v2idwh8wGPkkYzOHuinNJJY6NZqfoTCiOIizDOz38gYNsyw==}
      +  '@types/react@18.2.71':
           dependencies:
             '@types/prop-types': 15.7.12
             '@types/scheduler': 0.23.0
             csstype: 3.1.3
       
      -  /@types/retry@0.12.0:
      -    resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
      -    dev: false
      +  '@types/retry@0.12.0': {}
       
      -  /@types/retry@0.12.2:
      -    resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
      +  '@types/retry@0.12.2': {}
       
      -  /@types/sax@1.2.7:
      -    resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
      +  '@types/sax@1.2.7':
           dependencies:
             '@types/node': 18.18.2
      -    dev: false
       
      -  /@types/sbd@1.0.5:
      -    resolution: {integrity: sha512-60PxBBWhg0C3yb5bTP+wwWYGTKMcuB0S6mTEa1sedMC79tYY0Ei7YjU4qsWzGn++lWscLQde16SnElJrf5/aTw==}
      -    dev: true
      +  '@types/sbd@1.0.5': {}
       
      -  /@types/scheduler@0.23.0:
      -    resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
      +  '@types/scheduler@0.23.0': {}
       
      -  /@types/semver@7.5.8:
      -    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
      -    dev: true
      +  '@types/semver@7.5.8': {}
       
      -  /@types/send@0.17.4:
      -    resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
      +  '@types/send@0.17.4':
           dependencies:
             '@types/mime': 1.3.5
             '@types/node': 18.18.2
       
      -  /@types/serve-index@1.9.4:
      -    resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
      +  '@types/serve-index@1.9.4':
           dependencies:
             '@types/express': 4.17.21
       
      -  /@types/serve-static@1.15.5:
      -    resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
      +  '@types/serve-static@1.15.5':
           dependencies:
             '@types/http-errors': 2.0.4
             '@types/mime': 3.0.4
             '@types/node': 18.18.2
       
      -  /@types/sinon@17.0.3:
      -    resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
      +  '@types/sinon@17.0.3':
           dependencies:
             '@types/sinonjs__fake-timers': 8.1.5
       
      -  /@types/sinonjs__fake-timers@8.1.5:
      -    resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
      +  '@types/sinonjs__fake-timers@8.1.5': {}
       
      -  /@types/sockjs@0.3.36:
      -    resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
      +  '@types/sockjs@0.3.36':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/ssri@7.1.5:
      -    resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==}
      +  '@types/ssri@7.1.5':
           dependencies:
             '@types/node': 18.18.2
      -    dev: true
       
      -  /@types/stack-utils@2.0.3:
      -    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
      -    dev: true
      +  '@types/stack-utils@2.0.3': {}
       
      -  /@types/tail@2.2.3:
      -    resolution: {integrity: sha512-Hnf352egOlDR4nVTaGX0t/kmTNXHMdovF2C7PVDFtHTHJPFmIspOI1b86vEOxU7SfCq/dADS7ptbqgG/WGGxnA==}
      -    dev: true
      +  '@types/tail@2.2.3': {}
       
      -  /@types/tinycolor2@1.4.6:
      -    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
      -    dev: true
      +  '@types/tinycolor2@1.4.6': {}
       
      -  /@types/tough-cookie@4.0.5:
      -    resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
      -    dev: true
      +  '@types/tough-cookie@4.0.5': {}
       
      -  /@types/triple-beam@1.3.5:
      -    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
      +  '@types/triple-beam@1.3.5': {}
       
      -  /@types/unist@2.0.10:
      -    resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
      +  '@types/unist@2.0.10': {}
       
      -  /@types/unist@3.0.2:
      -    resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
      +  '@types/unist@3.0.2': {}
       
      -  /@types/uuid@9.0.8:
      -    resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
      +  '@types/uuid@9.0.8': {}
       
      -  /@types/vinyl@2.0.11:
      -    resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==}
      +  '@types/vinyl@2.0.11':
           dependencies:
             '@types/expect': 1.20.4
             '@types/node': 18.18.2
       
      -  /@types/vscode@1.75.1:
      -    resolution: {integrity: sha512-emg7wdsTFzdi+elvoyoA+Q8keEautdQHyY5LNmHVM4PTpY8JgOTVADrGVyXGepJ6dVW2OS5/xnLUWh+nZxvdiA==}
      +  '@types/vscode@1.75.1': {}
       
      -  /@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4):
      -    resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
      +  '@types/webpack@5.28.5(esbuild@0.20.2)(webpack-cli@5.1.4)':
           dependencies:
             '@types/node': 18.18.2
             tapable: 2.2.1
      @@ -5579,31 +12969,18 @@ packages:
             - esbuild
             - uglify-js
             - webpack-cli
      -    dev: true
       
      -  /@types/ws@8.5.10:
      -    resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
      +  '@types/ws@8.5.10':
           dependencies:
             '@types/node': 18.18.2
       
      -  /@types/yargs-parser@21.0.3:
      -    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
      +  '@types/yargs-parser@21.0.3': {}
       
      -  /@types/yargs@17.0.32:
      -    resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
      +  '@types/yargs@17.0.32':
           dependencies:
             '@types/yargs-parser': 21.0.3
       
      -  /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      '@typescript-eslint/parser': ^7.0.0
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)':
           dependencies:
             '@eslint-community/regexpp': 4.10.0
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
      @@ -5621,17 +12998,8 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -    peerDependencies:
      -      eslint: ^7.0.0 || ^8.0.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3)':
           dependencies:
             '@typescript-eslint/scope-manager': 6.21.0
             '@typescript-eslint/types': 6.21.0
      @@ -5642,17 +13010,8 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
           dependencies:
             '@typescript-eslint/scope-manager': 7.4.0
             '@typescript-eslint/types': 7.4.0
      @@ -5663,33 +13022,18 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/scope-manager@6.21.0:
      -    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      +  '@typescript-eslint/scope-manager@6.21.0':
           dependencies:
             '@typescript-eslint/types': 6.21.0
             '@typescript-eslint/visitor-keys': 6.21.0
      -    dev: true
       
      -  /@typescript-eslint/scope-manager@7.4.0:
      -    resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      +  '@typescript-eslint/scope-manager@7.4.0':
           dependencies:
             '@typescript-eslint/types': 7.4.0
             '@typescript-eslint/visitor-keys': 7.4.0
      -    dev: true
       
      -  /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
           dependencies:
             '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
             '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
      @@ -5699,26 +13043,12 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/types@6.21.0:
      -    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -    dev: true
      +  '@typescript-eslint/types@6.21.0': {}
       
      -  /@typescript-eslint/types@7.4.0:
      -    resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    dev: true
      +  '@typescript-eslint/types@7.4.0': {}
       
      -  /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      -    peerDependencies:
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3)':
           dependencies:
             '@typescript-eslint/types': 6.21.0
             '@typescript-eslint/visitor-keys': 6.21.0
      @@ -5731,16 +13061,8 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      typescript: '*'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)':
           dependencies:
             '@typescript-eslint/types': 7.4.0
             '@typescript-eslint/visitor-keys': 7.4.0
      @@ -5753,13 +13075,8 @@ packages:
             typescript: 5.4.3
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      -    peerDependencies:
      -      eslint: ^8.56.0
      +  '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)':
           dependencies:
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
             '@types/json-schema': 7.0.15
      @@ -5772,30 +13089,20 @@ packages:
           transitivePeerDependencies:
             - supports-color
             - typescript
      -    dev: true
       
      -  /@typescript-eslint/visitor-keys@6.21.0:
      -    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
      -    engines: {node: ^16.0.0 || >=18.0.0}
      +  '@typescript-eslint/visitor-keys@6.21.0':
           dependencies:
             '@typescript-eslint/types': 6.21.0
             eslint-visitor-keys: 3.4.3
      -    dev: true
       
      -  /@typescript-eslint/visitor-keys@7.4.0:
      -    resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==}
      -    engines: {node: ^18.18.0 || >=20.0.0}
      +  '@typescript-eslint/visitor-keys@7.4.0':
           dependencies:
             '@typescript-eslint/types': 7.4.0
             eslint-visitor-keys: 3.4.3
      -    dev: true
       
      -  /@ungap/structured-clone@1.2.0:
      -    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
      +  '@ungap/structured-clone@1.2.0': {}
       
      -  /@vscode/test-electron@2.3.9:
      -    resolution: {integrity: sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==}
      -    engines: {node: '>=16'}
      +  '@vscode/test-electron@2.3.9':
           dependencies:
             http-proxy-agent: 4.0.1
             https-proxy-agent: 5.0.1
      @@ -5803,56 +13110,44 @@ packages:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /@webassemblyjs/ast@1.12.1:
      -    resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
      +  '@webassemblyjs/ast@1.12.1':
           dependencies:
             '@webassemblyjs/helper-numbers': 1.11.6
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
       
      -  /@webassemblyjs/floating-point-hex-parser@1.11.6:
      -    resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
      +  '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
       
      -  /@webassemblyjs/helper-api-error@1.11.6:
      -    resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
      +  '@webassemblyjs/helper-api-error@1.11.6': {}
       
      -  /@webassemblyjs/helper-buffer@1.12.1:
      -    resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==}
      +  '@webassemblyjs/helper-buffer@1.12.1': {}
       
      -  /@webassemblyjs/helper-numbers@1.11.6:
      -    resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
      +  '@webassemblyjs/helper-numbers@1.11.6':
           dependencies:
             '@webassemblyjs/floating-point-hex-parser': 1.11.6
             '@webassemblyjs/helper-api-error': 1.11.6
             '@xtuc/long': 4.2.2
       
      -  /@webassemblyjs/helper-wasm-bytecode@1.11.6:
      -    resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
      +  '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
       
      -  /@webassemblyjs/helper-wasm-section@1.12.1:
      -    resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==}
      +  '@webassemblyjs/helper-wasm-section@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
             '@webassemblyjs/wasm-gen': 1.12.1
       
      -  /@webassemblyjs/ieee754@1.11.6:
      -    resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
      +  '@webassemblyjs/ieee754@1.11.6':
           dependencies:
             '@xtuc/ieee754': 1.2.0
       
      -  /@webassemblyjs/leb128@1.11.6:
      -    resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
      +  '@webassemblyjs/leb128@1.11.6':
           dependencies:
             '@xtuc/long': 4.2.2
       
      -  /@webassemblyjs/utf8@1.11.6:
      -    resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
      +  '@webassemblyjs/utf8@1.11.6': {}
       
      -  /@webassemblyjs/wasm-edit@1.12.1:
      -    resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==}
      +  '@webassemblyjs/wasm-edit@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
      @@ -5863,8 +13158,7 @@ packages:
             '@webassemblyjs/wasm-parser': 1.12.1
             '@webassemblyjs/wast-printer': 1.12.1
       
      -  /@webassemblyjs/wasm-gen@1.12.1:
      -    resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==}
      +  '@webassemblyjs/wasm-gen@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-wasm-bytecode': 1.11.6
      @@ -5872,16 +13166,14 @@ packages:
             '@webassemblyjs/leb128': 1.11.6
             '@webassemblyjs/utf8': 1.11.6
       
      -  /@webassemblyjs/wasm-opt@1.12.1:
      -    resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==}
      +  '@webassemblyjs/wasm-opt@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-buffer': 1.12.1
             '@webassemblyjs/wasm-gen': 1.12.1
             '@webassemblyjs/wasm-parser': 1.12.1
       
      -  /@webassemblyjs/wasm-parser@1.12.1:
      -    resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==}
      +  '@webassemblyjs/wasm-parser@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@webassemblyjs/helper-api-error': 1.11.6
      @@ -5890,32 +13182,17 @@ packages:
             '@webassemblyjs/leb128': 1.11.6
             '@webassemblyjs/utf8': 1.11.6
       
      -  /@webassemblyjs/wast-printer@1.12.1:
      -    resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==}
      +  '@webassemblyjs/wast-printer@1.12.1':
           dependencies:
             '@webassemblyjs/ast': 1.12.1
             '@xtuc/long': 4.2.2
       
      -  /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      +  '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)':
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
       
      -  /@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      prettier: '*'
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -    peerDependenciesMeta:
      -      prettier:
      -        optional: true
      +  '@webpack-cli/generators@3.0.7(prettier@3.2.5)(webpack-cli@5.1.4)(webpack@5.91.0)':
           dependencies:
             prettier: 3.2.5
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      @@ -5928,207 +13205,125 @@ packages:
             - mem-fs
             - supports-color
       
      -  /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      +  '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0)':
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
       
      -  /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
      -    engines: {node: '>=14.15.0'}
      -    peerDependencies:
      -      webpack: 5.x.x
      -      webpack-cli: 5.x.x
      -      webpack-dev-server: '*'
      -    peerDependenciesMeta:
      -      webpack-dev-server:
      -        optional: true
      +  '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0)':
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
             webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0)
             webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
       
      -  /@xobotyi/scrollbar-width@1.9.5:
      -    resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
      -    dev: false
      +  '@xobotyi/scrollbar-width@1.9.5': {}
       
      -  /@xtuc/ieee754@1.2.0:
      -    resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
      +  '@xtuc/ieee754@1.2.0': {}
       
      -  /@xtuc/long@4.2.2:
      -    resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
      +  '@xtuc/long@4.2.2': {}
       
      -  /@zkochan/js-yaml@0.0.7:
      -    resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
      -    hasBin: true
      +  '@zkochan/js-yaml@0.0.7':
           dependencies:
             argparse: 2.0.1
      -    dev: false
       
      -  /@zkochan/retry@0.2.0:
      -    resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  '@zkochan/retry@0.2.0': {}
       
      -  /@zkochan/rimraf@2.1.3:
      -    resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==}
      -    engines: {node: '>=12.10'}
      +  '@zkochan/rimraf@2.1.3':
           dependencies:
             rimraf: 3.0.2
      -    dev: false
       
      -  /@zkochan/which@2.0.3:
      -    resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==}
      -    engines: {node: '>= 8'}
      -    hasBin: true
      +  '@zkochan/which@2.0.3':
           dependencies:
             isexe: 2.0.0
       
      -  /abab@2.0.6:
      -    resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
      -    deprecated: Use your platform's native atob() and btoa() methods instead
      -    dev: true
      +  abab@2.0.6: {}
       
      -  /abbrev@1.1.1:
      -    resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
      +  abbrev@1.1.1: {}
       
      -  /abort-controller@3.0.0:
      -    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
      -    engines: {node: '>=6.5'}
      +  abort-controller@3.0.0:
           dependencies:
             event-target-shim: 5.0.1
       
      -  /accepts@1.3.8:
      -    resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
      -    engines: {node: '>= 0.6'}
      +  accepts@1.3.8:
           dependencies:
             mime-types: 2.1.35
             negotiator: 0.6.3
       
      -  /acorn-globals@7.0.1:
      -    resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
      +  acorn-globals@7.0.1:
           dependencies:
             acorn: 8.11.3
             acorn-walk: 8.3.2
      -    dev: true
       
      -  /acorn-import-assertions@1.9.0(acorn@8.11.3):
      -    resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
      -    peerDependencies:
      -      acorn: ^8
      +  acorn-import-assertions@1.9.0(acorn@8.11.3):
           dependencies:
             acorn: 8.11.3
       
      -  /acorn-jsx@5.3.2(acorn@8.11.3):
      -    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
      -    peerDependencies:
      -      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
      +  acorn-jsx@5.3.2(acorn@8.11.3):
           dependencies:
             acorn: 8.11.3
       
      -  /acorn-walk@8.3.2:
      -    resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
      -    engines: {node: '>=0.4.0'}
      +  acorn-walk@8.3.2: {}
       
      -  /acorn@8.11.3:
      -    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
      -    engines: {node: '>=0.4.0'}
      -    hasBin: true
      +  acorn@8.11.3: {}
       
      -  /address@1.2.2:
      -    resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
      -    engines: {node: '>= 10.0.0'}
      -    dev: false
      +  address@1.2.2: {}
       
      -  /agent-base@6.0.2:
      -    resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
      -    engines: {node: '>= 6.0.0'}
      +  agent-base@6.0.2:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
       
      -  /agentkeepalive@4.2.1:
      -    resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==}
      -    engines: {node: '>= 8.0.0'}
      +  agentkeepalive@4.2.1:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             depd: 1.1.2
             humanize-ms: 1.2.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /agentkeepalive@4.5.0:
      -    resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
      -    engines: {node: '>= 8.0.0'}
      +  agentkeepalive@4.5.0:
           dependencies:
             humanize-ms: 1.2.1
       
      -  /aggregate-error@3.1.0:
      -    resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
      -    engines: {node: '>=8'}
      +  aggregate-error@3.1.0:
           dependencies:
             clean-stack: 2.2.0
             indent-string: 4.0.0
       
      -  /ajv-formats@2.1.1(ajv@8.12.0):
      -    resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
      -    peerDependencies:
      -      ajv: ^8.0.0
      -    peerDependenciesMeta:
      -      ajv:
      -        optional: true
      +  ajv-formats@2.1.1(ajv@8.12.0):
           dependencies:
             ajv: 8.12.0
       
      -  /ajv-keywords@3.5.2(ajv@6.12.6):
      -    resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
      -    peerDependencies:
      -      ajv: ^6.9.1
      +  ajv-keywords@3.5.2(ajv@6.12.6):
           dependencies:
             ajv: 6.12.6
       
      -  /ajv-keywords@5.1.0(ajv@8.12.0):
      -    resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
      -    peerDependencies:
      -      ajv: ^8.8.2
      +  ajv-keywords@5.1.0(ajv@8.12.0):
           dependencies:
             ajv: 8.12.0
             fast-deep-equal: 3.1.3
       
      -  /ajv@6.12.6:
      -    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
      +  ajv@6.12.6:
           dependencies:
             fast-deep-equal: 3.1.3
             fast-json-stable-stringify: 2.1.0
             json-schema-traverse: 0.4.1
             uri-js: 4.4.1
       
      -  /ajv@8.12.0:
      -    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
      +  ajv@8.12.0:
           dependencies:
             fast-deep-equal: 3.1.3
             json-schema-traverse: 1.0.0
             require-from-string: 2.0.2
             uri-js: 4.4.1
       
      -  /algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
      -    resolution: {integrity: sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==}
      -    peerDependencies:
      -      algoliasearch: '>= 3.1 < 6'
      +  algoliasearch-helper@3.16.3(algoliasearch@4.22.1):
           dependencies:
             '@algolia/events': 4.0.1
             algoliasearch: 4.22.1
      -    dev: false
       
      -  /algoliasearch@4.22.1:
      -    resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==}
      +  algoliasearch@4.22.1:
           dependencies:
             '@algolia/cache-browser-local-storage': 4.22.1
             '@algolia/cache-common': 4.22.1
      @@ -6144,157 +13339,96 @@ packages:
             '@algolia/requester-common': 4.22.1
             '@algolia/requester-node-http': 4.22.1
             '@algolia/transporter': 4.22.1
      -    dev: false
       
      -  /ansi-align@3.0.1:
      -    resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
      +  ansi-align@3.0.1:
           dependencies:
             string-width: 4.2.3
       
      -  /ansi-colors@4.1.1:
      -    resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  ansi-colors@4.1.1: {}
       
      -  /ansi-colors@4.1.3:
      -    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  ansi-colors@4.1.3: {}
       
      -  /ansi-diff@1.1.1:
      -    resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
      +  ansi-diff@1.1.1:
           dependencies:
             ansi-split: 1.0.1
      -    dev: true
       
      -  /ansi-escapes@4.3.2:
      -    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
      -    engines: {node: '>=8'}
      +  ansi-escapes@4.3.2:
           dependencies:
             type-fest: 0.21.3
       
      -  /ansi-html-community@0.0.8:
      -    resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
      -    engines: {'0': node >= 0.8.0}
      -    hasBin: true
      +  ansi-html-community@0.0.8: {}
       
      -  /ansi-regex@3.0.1:
      -    resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  ansi-regex@3.0.1: {}
       
      -  /ansi-regex@5.0.1:
      -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
      -    engines: {node: '>=8'}
      +  ansi-regex@5.0.1: {}
       
      -  /ansi-regex@6.0.1:
      -    resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
      -    engines: {node: '>=12'}
      +  ansi-regex@6.0.1: {}
       
      -  /ansi-split@1.0.1:
      -    resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
      +  ansi-split@1.0.1:
           dependencies:
             ansi-regex: 3.0.1
      -    dev: true
       
      -  /ansi-styles@3.2.1:
      -    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
      -    engines: {node: '>=4'}
      +  ansi-styles@3.2.1:
           dependencies:
             color-convert: 1.9.3
       
      -  /ansi-styles@4.3.0:
      -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
      -    engines: {node: '>=8'}
      +  ansi-styles@4.3.0:
           dependencies:
             color-convert: 2.0.1
       
      -  /ansi-styles@5.2.0:
      -    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  ansi-styles@5.2.0: {}
       
      -  /ansi-styles@6.2.1:
      -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
      -    engines: {node: '>=12'}
      +  ansi-styles@6.2.1: {}
       
      -  /any-promise@1.3.0:
      -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
      -    dev: true
      +  any-promise@1.3.0: {}
       
      -  /anymatch@3.1.3:
      -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
      -    engines: {node: '>= 8'}
      +  anymatch@3.1.3:
           dependencies:
             normalize-path: 3.0.0
             picomatch: 2.3.1
       
      -  /aproba@2.0.0:
      -    resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
      +  aproba@2.0.0: {}
       
      -  /archy@1.0.0:
      -    resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
      -    dev: true
      +  archy@1.0.0: {}
       
      -  /are-we-there-yet@2.0.0:
      -    resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
      -    engines: {node: '>=10'}
      +  are-we-there-yet@2.0.0:
           dependencies:
             delegates: 1.0.0
             readable-stream: 3.6.2
       
      -  /are-we-there-yet@3.0.1:
      -    resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  are-we-there-yet@3.0.1:
           dependencies:
             delegates: 1.0.0
             readable-stream: 3.6.2
       
      -  /arg@4.1.3:
      -    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
      -    dev: true
      +  arg@4.1.3: {}
       
      -  /arg@5.0.2:
      -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
      +  arg@5.0.2: {}
       
      -  /argparse@1.0.10:
      -    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
      +  argparse@1.0.10:
           dependencies:
             sprintf-js: 1.0.3
       
      -  /argparse@2.0.1:
      -    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
      +  argparse@2.0.1: {}
       
      -  /aria-query@5.1.3:
      -    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
      +  aria-query@5.1.3:
           dependencies:
             deep-equal: 2.2.3
      -    dev: true
       
      -  /aria-query@5.3.0:
      -    resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
      +  aria-query@5.3.0:
           dependencies:
             dequal: 2.0.3
      -    dev: true
       
      -  /array-buffer-byte-length@1.0.1:
      -    resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
      -    engines: {node: '>= 0.4'}
      +  array-buffer-byte-length@1.0.1:
           dependencies:
             call-bind: 1.0.7
             is-array-buffer: 3.0.4
      -    dev: true
       
      -  /array-differ@3.0.0:
      -    resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
      -    engines: {node: '>=8'}
      +  array-differ@3.0.0: {}
       
      -  /array-flatten@1.1.1:
      -    resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
      +  array-flatten@1.1.1: {}
       
      -  /array-includes@3.1.8:
      -    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
      -    engines: {node: '>= 0.4'}
      +  array-includes@3.1.8:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -6302,15 +13436,10 @@ packages:
             es-object-atoms: 1.0.0
             get-intrinsic: 1.2.4
             is-string: 1.0.7
      -    dev: true
       
      -  /array-union@2.1.0:
      -    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
      -    engines: {node: '>=8'}
      +  array-union@2.1.0: {}
       
      -  /array.prototype.findlast@1.2.5:
      -    resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
      -    engines: {node: '>= 0.4'}
      +  array.prototype.findlast@1.2.5:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -6318,11 +13447,8 @@ packages:
             es-errors: 1.3.0
             es-object-atoms: 1.0.0
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /array.prototype.findlastindex@1.2.5:
      -    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
      -    engines: {node: '>= 0.4'}
      +  array.prototype.findlastindex@1.2.5:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -6330,50 +13456,37 @@ packages:
             es-errors: 1.3.0
             es-object-atoms: 1.0.0
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /array.prototype.flat@1.3.2:
      -    resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
      -    engines: {node: '>= 0.4'}
      +  array.prototype.flat@1.3.2:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /array.prototype.flatmap@1.3.2:
      -    resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
      -    engines: {node: '>= 0.4'}
      +  array.prototype.flatmap@1.3.2:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /array.prototype.toreversed@1.1.2:
      -    resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
      +  array.prototype.toreversed@1.1.2:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /array.prototype.tosorted@1.1.3:
      -    resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
      +  array.prototype.tosorted@1.1.3:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-errors: 1.3.0
             es-shim-unscopables: 1.0.2
      -    dev: true
       
      -  /arraybuffer.prototype.slice@1.0.3:
      -    resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
      -    engines: {node: '>= 0.4'}
      +  arraybuffer.prototype.slice@1.0.3:
           dependencies:
             array-buffer-byte-length: 1.0.1
             call-bind: 1.0.7
      @@ -6383,63 +13496,34 @@ packages:
             get-intrinsic: 1.2.4
             is-array-buffer: 3.0.4
             is-shared-array-buffer: 1.0.3
      -    dev: true
       
      -  /arrify@1.0.1:
      -    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  arrify@1.0.1: {}
       
      -  /arrify@2.0.1:
      -    resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
      -    engines: {node: '>=8'}
      +  arrify@2.0.1: {}
       
      -  /as-table@1.0.55:
      -    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
      +  as-table@1.0.55:
           dependencies:
             printable-characters: 1.0.42
      -    dev: true
       
      -  /asap@2.0.6:
      -    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
      +  asap@2.0.6: {}
       
      -  /assertion-error@2.0.1:
      -    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  assertion-error@2.0.1: {}
       
      -  /ast-types-flow@0.0.8:
      -    resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
      -    dev: true
      +  ast-types-flow@0.0.8: {}
       
      -  /astring@1.8.6:
      -    resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
      -    hasBin: true
      +  astring@1.8.6: {}
       
      -  /async@2.6.4:
      -    resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
      +  async@2.6.4:
           dependencies:
             lodash: 4.17.21
      -    dev: true
       
      -  /async@3.2.5:
      -    resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
      +  async@3.2.5: {}
       
      -  /asynckit@0.4.0:
      -    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
      -    dev: true
      +  asynckit@0.4.0: {}
       
      -  /at-least-node@1.0.0:
      -    resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
      -    engines: {node: '>= 4.0.0'}
      -    dev: false
      +  at-least-node@1.0.0: {}
       
      -  /autoprefixer@10.4.19(postcss@8.4.38):
      -    resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
      -    engines: {node: ^10 || ^12 || >=14}
      -    hasBin: true
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  autoprefixer@10.4.19(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             caniuse-lite: 1.0.30001600
      @@ -6449,29 +13533,17 @@ packages:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
       
      -  /available-typed-arrays@1.0.7:
      -    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
      -    engines: {node: '>= 0.4'}
      +  available-typed-arrays@1.0.7:
           dependencies:
             possible-typed-array-names: 1.0.0
      -    dev: true
       
      -  /axe-core@4.7.0:
      -    resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  axe-core@4.7.0: {}
       
      -  /axobject-query@3.2.1:
      -    resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
      +  axobject-query@3.2.1:
           dependencies:
             dequal: 2.0.3
      -    dev: true
       
      -  /babel-jest@29.7.0(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@babel/core': ^7.8.0
      +  babel-jest@29.7.0(@babel/core@7.24.3):
           dependencies:
             '@babel/core': 7.24.3
             '@jest/transform': 29.7.0
      @@ -6483,30 +13555,19 @@ packages:
             slash: 3.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      '@babel/core': ^7.12.0
      -      webpack: '>=5'
      +  babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.91.0):
           dependencies:
             '@babel/core': 7.24.3
             find-cache-dir: 4.0.0
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /babel-plugin-dynamic-import-node@2.3.3:
      -    resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
      +  babel-plugin-dynamic-import-node@2.3.3:
           dependencies:
             object.assign: 4.1.5
      -    dev: false
       
      -  /babel-plugin-istanbul@6.1.1:
      -    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
      -    engines: {node: '>=8'}
      +  babel-plugin-istanbul@6.1.1:
           dependencies:
             '@babel/helper-plugin-utils': 7.24.0
             '@istanbuljs/load-nyc-config': 1.1.0
      @@ -6515,22 +13576,15 @@ packages:
             test-exclude: 6.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /babel-plugin-jest-hoist@29.6.3:
      -    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  babel-plugin-jest-hoist@29.6.3:
           dependencies:
             '@babel/template': 7.24.0
             '@babel/types': 7.24.0
             '@types/babel__core': 7.20.5
             '@types/babel__traverse': 7.20.5
      -    dev: true
       
      -  /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +  babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
           dependencies:
             '@babel/compat-data': 7.24.1
             '@babel/core': 7.24.3
      @@ -6539,10 +13593,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +  babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
      @@ -6550,20 +13601,14 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
      -    peerDependencies:
      -      '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
      +  babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
           dependencies:
             '@babel/core': 7.24.3
             '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
           transitivePeerDependencies:
             - supports-color
       
      -  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3):
           dependencies:
             '@babel/core': 7.24.3
             '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
      @@ -6578,55 +13623,34 @@ packages:
             '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
             '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
      -    dev: true
       
      -  /babel-preset-jest@29.6.3(@babel/core@7.24.3):
      -    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@babel/core': ^7.0.0
      +  babel-preset-jest@29.6.3(@babel/core@7.24.3):
           dependencies:
             '@babel/core': 7.24.3
             babel-plugin-jest-hoist: 29.6.3
             babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.3)
      -    dev: true
       
      -  /bail@2.0.2:
      -    resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
      +  bail@2.0.2: {}
       
      -  /balanced-match@1.0.2:
      -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
      +  balanced-match@1.0.2: {}
       
      -  /base64-js@1.5.1:
      -    resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
      +  base64-js@1.5.1: {}
       
      -  /basic-auth@2.0.1:
      -    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
      -    engines: {node: '>= 0.8'}
      +  basic-auth@2.0.1:
           dependencies:
             safe-buffer: 5.1.2
      -    dev: true
       
      -  /batch@0.6.1:
      -    resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
      +  batch@0.6.1: {}
       
      -  /before-after-hook@2.2.3:
      -    resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
      +  before-after-hook@2.2.3: {}
       
      -  /better-path-resolve@1.0.0:
      -    resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
      -    engines: {node: '>=4'}
      +  better-path-resolve@1.0.0:
           dependencies:
             is-windows: 1.0.2
      -    dev: true
       
      -  /big.js@5.2.2:
      -    resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
      -    dev: false
      +  big.js@5.2.2: {}
       
      -  /bin-links@3.0.3:
      -    resolution: {integrity: sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  bin-links@3.0.3:
           dependencies:
             cmd-shim: 5.0.0
             mkdirp-infer-owner: 2.0.0
      @@ -6635,24 +13659,17 @@ packages:
             rimraf: 3.0.2
             write-file-atomic: 4.0.2
       
      -  /binary-extensions@2.3.0:
      -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
      -    engines: {node: '>=8'}
      +  binary-extensions@2.3.0: {}
       
      -  /binaryextensions@4.19.0:
      -    resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==}
      -    engines: {node: '>=0.8'}
      +  binaryextensions@4.19.0: {}
       
      -  /bl@4.1.0:
      -    resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
      +  bl@4.1.0:
           dependencies:
             buffer: 5.7.1
             inherits: 2.0.4
             readable-stream: 3.6.2
       
      -  /body-parser@1.20.2:
      -    resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
      -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      +  body-parser@1.20.2:
           dependencies:
             bytes: 3.1.2
             content-type: 1.0.5
      @@ -6669,24 +13686,19 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /bole@5.0.11:
      -    resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==}
      +  bole@5.0.11:
           dependencies:
             fast-safe-stringify: 2.1.1
             individual: 3.0.0
       
      -  /bonjour-service@1.2.1:
      -    resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==}
      +  bonjour-service@1.2.1:
           dependencies:
             fast-deep-equal: 3.1.3
             multicast-dns: 7.2.5
       
      -  /boolbase@1.0.0:
      -    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
      +  boolbase@1.0.0: {}
       
      -  /boxen@5.1.2:
      -    resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
      -    engines: {node: '>=10'}
      +  boxen@5.1.2:
           dependencies:
             ansi-align: 3.0.1
             camelcase: 6.3.0
      @@ -6696,11 +13708,8 @@ packages:
             type-fest: 0.20.2
             widest-line: 3.1.0
             wrap-ansi: 7.0.0
      -    dev: true
       
      -  /boxen@6.2.1:
      -    resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  boxen@6.2.1:
           dependencies:
             ansi-align: 3.0.1
             camelcase: 6.3.0
      @@ -6710,11 +13719,8 @@ packages:
             type-fest: 2.19.0
             widest-line: 4.0.1
             wrap-ansi: 8.1.0
      -    dev: false
       
      -  /boxen@7.1.1:
      -    resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
      -    engines: {node: '>=14.16'}
      +  boxen@7.1.1:
           dependencies:
             ansi-align: 3.0.1
             camelcase: 7.0.1
      @@ -6724,104 +13730,70 @@ packages:
             type-fest: 2.19.0
             widest-line: 4.0.1
             wrap-ansi: 8.1.0
      -    dev: false
       
      -  /brace-expansion@1.1.11:
      -    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
      +  brace-expansion@1.1.11:
           dependencies:
             balanced-match: 1.0.2
             concat-map: 0.0.1
       
      -  /brace-expansion@2.0.1:
      -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
      +  brace-expansion@2.0.1:
           dependencies:
             balanced-match: 1.0.2
       
      -  /braces@3.0.2:
      -    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
      -    engines: {node: '>=8'}
      +  braces@3.0.2:
           dependencies:
             fill-range: 7.0.1
       
      -  /browser-stdout@1.3.1:
      -    resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
      -    dev: true
      +  browser-stdout@1.3.1: {}
       
      -  /browserslist@4.23.0:
      -    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
      -    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
      -    hasBin: true
      +  browserslist@4.23.0:
           dependencies:
             caniuse-lite: 1.0.30001600
             electron-to-chromium: 1.4.717
             node-releases: 2.0.14
             update-browserslist-db: 1.0.13(browserslist@4.23.0)
       
      -  /bs-logger@0.2.6:
      -    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
      -    engines: {node: '>= 6'}
      +  bs-logger@0.2.6:
           dependencies:
             fast-json-stable-stringify: 2.1.0
      -    dev: true
       
      -  /bser@2.1.1:
      -    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
      +  bser@2.1.1:
           dependencies:
             node-int64: 0.4.0
      -    dev: true
       
      -  /buffer-from@1.1.2:
      -    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
      +  buffer-from@1.1.2: {}
       
      -  /buffer@5.7.1:
      -    resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
      +  buffer@5.7.1:
           dependencies:
             base64-js: 1.5.1
             ieee754: 1.2.1
       
      -  /buffer@6.0.3:
      -    resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
      +  buffer@6.0.3:
           dependencies:
             base64-js: 1.5.1
             ieee754: 1.2.1
       
      -  /builtin-modules@3.3.0:
      -    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  builtin-modules@3.3.0: {}
       
      -  /builtins@1.0.3:
      -    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
      +  builtins@1.0.3: {}
       
      -  /builtins@5.0.1:
      -    resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
      +  builtins@5.0.1:
           dependencies:
             semver: 7.6.0
       
      -  /bundle-name@4.1.0:
      -    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
      -    engines: {node: '>=18'}
      +  bundle-name@4.1.0:
           dependencies:
             run-applescript: 7.0.0
       
      -  /busboy@1.6.0:
      -    resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
      -    engines: {node: '>=10.16.0'}
      +  busboy@1.6.0:
           dependencies:
             streamsearch: 1.1.0
      -    dev: false
       
      -  /bytes@3.0.0:
      -    resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
      -    engines: {node: '>= 0.8'}
      +  bytes@3.0.0: {}
       
      -  /bytes@3.1.2:
      -    resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
      -    engines: {node: '>= 0.8'}
      +  bytes@3.1.2: {}
       
      -  /cacache@15.3.0:
      -    resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
      -    engines: {node: '>= 10'}
      +  cacache@15.3.0:
           dependencies:
             '@npmcli/fs': 1.1.1
             '@npmcli/move-file': 1.1.2
      @@ -6844,9 +13816,7 @@ packages:
           transitivePeerDependencies:
             - bluebird
       
      -  /cacache@16.1.3:
      -    resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  cacache@16.1.3:
           dependencies:
             '@npmcli/fs': 2.1.2
             '@npmcli/move-file': 2.0.1
      @@ -6869,9 +13839,7 @@ packages:
           transitivePeerDependencies:
             - bluebird
       
      -  /cacache@17.1.4:
      -    resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  cacache@17.1.4:
           dependencies:
             '@npmcli/fs': 3.1.0
             fs-minipass: 3.0.3
      @@ -6886,14 +13854,9 @@ packages:
             tar: 6.2.1
             unique-filename: 3.0.0
       
      -  /cacheable-lookup@7.0.0:
      -    resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
      -    engines: {node: '>=14.16'}
      -    dev: false
      +  cacheable-lookup@7.0.0: {}
       
      -  /cacheable-request@10.2.14:
      -    resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
      -    engines: {node: '>=14.16'}
      +  cacheable-request@10.2.14:
           dependencies:
             '@types/http-cache-semantics': 4.0.4
             get-stream: 6.0.1
      @@ -6902,11 +13865,8 @@ packages:
             mimic-response: 4.0.0
             normalize-url: 8.0.1
             responselike: 3.0.0
      -    dev: false
       
      -  /call-bind@1.0.7:
      -    resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
      -    engines: {node: '>= 0.4'}
      +  call-bind@1.0.7:
           dependencies:
             es-define-property: 1.0.0
             es-errors: 1.3.0
      @@ -6914,133 +13874,85 @@ packages:
             get-intrinsic: 1.2.4
             set-function-length: 1.2.2
       
      -  /callsites@3.1.0:
      -    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
      -    engines: {node: '>=6'}
      +  callsites@3.1.0: {}
       
      -  /camel-case@4.1.2:
      -    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
      +  camel-case@4.1.2:
           dependencies:
             pascal-case: 3.1.2
             tslib: 2.6.2
       
      -  /camelcase-css@2.0.1:
      -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
      -    engines: {node: '>= 6'}
      -    dev: true
      +  camelcase-css@2.0.1: {}
       
      -  /camelcase-keys@6.2.2:
      -    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
      -    engines: {node: '>=8'}
      +  camelcase-keys@6.2.2:
           dependencies:
             camelcase: 5.3.1
             map-obj: 4.3.0
             quick-lru: 4.0.1
      -    dev: true
       
      -  /camelcase-keys@7.0.2:
      -    resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
      -    engines: {node: '>=12'}
      +  camelcase-keys@7.0.2:
           dependencies:
             camelcase: 6.3.0
             map-obj: 4.3.0
             quick-lru: 5.1.1
             type-fest: 1.4.0
      -    dev: true
       
      -  /camelcase@5.3.1:
      -    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  camelcase@5.3.1: {}
       
      -  /camelcase@6.3.0:
      -    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
      -    engines: {node: '>=10'}
      +  camelcase@6.3.0: {}
       
      -  /camelcase@7.0.1:
      -    resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
      -    engines: {node: '>=14.16'}
      -    dev: false
      +  camelcase@7.0.1: {}
       
      -  /can-write-to-dir@1.1.1:
      -    resolution: {integrity: sha512-eOgiEWqjppB+3DN/5E82EQ8dTINus8d9GXMCbEsUnp2hcUIcXmBvzWmD3tXMk3CuBK0v+ddK9qw0EAF+JVRMjQ==}
      -    engines: {node: '>=10.13'}
      +  can-write-to-dir@1.1.1:
           dependencies:
             path-temp: 2.1.0
      -    dev: true
       
      -  /caniuse-api@3.0.0:
      -    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
      +  caniuse-api@3.0.0:
           dependencies:
             browserslist: 4.23.0
             caniuse-lite: 1.0.30001600
             lodash.memoize: 4.1.2
             lodash.uniq: 4.5.0
      -    dev: false
       
      -  /caniuse-lite@1.0.30001600:
      -    resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
      +  caniuse-lite@1.0.30001600: {}
       
      -  /ccount@2.0.1:
      -    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
      +  ccount@2.0.1: {}
       
      -  /chai@5.1.0:
      -    resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==}
      -    engines: {node: '>=12'}
      +  chai@5.1.0:
           dependencies:
             assertion-error: 2.0.1
             check-error: 2.0.0
             deep-eql: 5.0.1
             loupe: 3.1.0
             pathval: 2.0.0
      -    dev: true
       
      -  /chalk@2.4.2:
      -    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
      -    engines: {node: '>=4'}
      +  chalk@2.4.2:
           dependencies:
             ansi-styles: 3.2.1
             escape-string-regexp: 1.0.5
             supports-color: 5.5.0
       
      -  /chalk@4.1.2:
      -    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
      -    engines: {node: '>=10'}
      +  chalk@4.1.2:
           dependencies:
             ansi-styles: 4.3.0
             supports-color: 7.2.0
       
      -  /chalk@5.3.0:
      -    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
      -    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
      -    dev: false
      +  chalk@5.3.0: {}
       
      -  /char-regex@1.0.2:
      -    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
      -    engines: {node: '>=10'}
      +  char-regex@1.0.2: {}
       
      -  /character-entities-html4@2.1.0:
      -    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
      +  character-entities-html4@2.1.0: {}
       
      -  /character-entities-legacy@3.0.0:
      -    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
      +  character-entities-legacy@3.0.0: {}
       
      -  /character-entities@2.0.2:
      -    resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
      +  character-entities@2.0.2: {}
       
      -  /character-reference-invalid@2.0.1:
      -    resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
      +  character-reference-invalid@2.0.1: {}
       
      -  /chardet@0.7.0:
      -    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
      +  chardet@0.7.0: {}
       
      -  /check-error@2.0.0:
      -    resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==}
      -    engines: {node: '>= 16'}
      -    dev: true
      +  check-error@2.0.0: {}
       
      -  /cheerio-select@2.1.0:
      -    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
      +  cheerio-select@2.1.0:
           dependencies:
             boolbase: 1.0.0
             css-select: 5.1.0
      @@ -7048,11 +13960,8 @@ packages:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             domutils: 3.1.0
      -    dev: false
       
      -  /cheerio@1.0.0-rc.12:
      -    resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
      -    engines: {node: '>= 6'}
      +  cheerio@1.0.0-rc.12:
           dependencies:
             cheerio-select: 2.1.0
             dom-serializer: 2.0.0
      @@ -7061,11 +13970,8 @@ packages:
             htmlparser2: 8.0.2
             parse5: 7.1.2
             parse5-htmlparser2-tree-adapter: 7.0.0
      -    dev: false
       
      -  /chokidar@3.5.3:
      -    resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
      -    engines: {node: '>= 8.10.0'}
      +  chokidar@3.5.3:
           dependencies:
             anymatch: 3.1.3
             braces: 3.0.2
      @@ -7076,11 +13982,8 @@ packages:
             readdirp: 3.6.0
           optionalDependencies:
             fsevents: 2.3.3
      -    dev: true
       
      -  /chokidar@3.6.0:
      -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
      -    engines: {node: '>= 8.10.0'}
      +  chokidar@3.6.0:
           dependencies:
             anymatch: 3.1.3
             braces: 3.0.2
      @@ -7092,282 +13995,169 @@ packages:
           optionalDependencies:
             fsevents: 2.3.3
       
      -  /chownr@2.0.0:
      -    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
      -    engines: {node: '>=10'}
      +  chownr@2.0.0: {}
       
      -  /chrome-trace-event@1.0.3:
      -    resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
      -    engines: {node: '>=6.0'}
      +  chrome-trace-event@1.0.3: {}
       
      -  /ci-info@3.9.0:
      -    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
      -    engines: {node: '>=8'}
      +  ci-info@3.9.0: {}
       
      -  /ci-info@4.0.0:
      -    resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  ci-info@4.0.0: {}
       
      -  /cjs-module-lexer@1.2.3:
      -    resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
      -    dev: true
      +  cjs-module-lexer@1.2.3: {}
       
      -  /clean-css@5.3.3:
      -    resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
      -    engines: {node: '>= 10.0'}
      +  clean-css@5.3.3:
           dependencies:
             source-map: 0.6.1
       
      -  /clean-regexp@1.0.0:
      -    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
      -    engines: {node: '>=4'}
      +  clean-regexp@1.0.0:
           dependencies:
             escape-string-regexp: 1.0.5
      -    dev: true
       
      -  /clean-stack@2.2.0:
      -    resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
      -    engines: {node: '>=6'}
      +  clean-stack@2.2.0: {}
       
      -  /cli-boxes@2.2.1:
      -    resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  cli-boxes@2.2.1: {}
       
      -  /cli-boxes@3.0.0:
      -    resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  cli-boxes@3.0.0: {}
       
      -  /cli-columns@4.0.0:
      -    resolution: {integrity: sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==}
      -    engines: {node: '>= 10'}
      +  cli-columns@4.0.0:
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
      -    dev: true
       
      -  /cli-cursor@3.1.0:
      -    resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
      -    engines: {node: '>=8'}
      +  cli-cursor@3.1.0:
           dependencies:
             restore-cursor: 3.1.0
       
      -  /cli-spinners@2.9.2:
      -    resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
      -    engines: {node: '>=6'}
      +  cli-spinners@2.9.2: {}
       
      -  /cli-table3@0.6.4:
      -    resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==}
      -    engines: {node: 10.* || >= 12.*}
      +  cli-table3@0.6.4:
           dependencies:
             string-width: 4.2.3
           optionalDependencies:
             '@colors/colors': 1.5.0
      -    dev: false
       
      -  /cli-table@0.3.11:
      -    resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
      -    engines: {node: '>= 0.2.0'}
      +  cli-table@0.3.11:
           dependencies:
             colors: 1.0.3
       
      -  /cli-width@3.0.0:
      -    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
      -    engines: {node: '>= 10'}
      +  cli-width@3.0.0: {}
       
      -  /client-only@0.0.1:
      -    resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
      -    dev: false
      +  client-only@0.0.1: {}
       
      -  /cliui@7.0.4:
      -    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
      +  cliui@7.0.4:
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
             wrap-ansi: 7.0.0
      -    dev: true
       
      -  /cliui@8.0.1:
      -    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
      -    engines: {node: '>=12'}
      +  cliui@8.0.1:
           dependencies:
             string-width: 4.2.3
             strip-ansi: 6.0.1
             wrap-ansi: 7.0.0
      -    dev: true
       
      -  /clone-buffer@1.0.0:
      -    resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
      -    engines: {node: '>= 0.10'}
      +  clone-buffer@1.0.0: {}
       
      -  /clone-deep@4.0.1:
      -    resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
      -    engines: {node: '>=6'}
      +  clone-deep@4.0.1:
           dependencies:
             is-plain-object: 2.0.4
             kind-of: 6.0.3
             shallow-clone: 3.0.1
       
      -  /clone-stats@1.0.0:
      -    resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}
      +  clone-stats@1.0.0: {}
       
      -  /clone@1.0.4:
      -    resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
      -    engines: {node: '>=0.8'}
      +  clone@1.0.4: {}
       
      -  /clone@2.1.2:
      -    resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
      -    engines: {node: '>=0.8'}
      +  clone@2.1.2: {}
       
      -  /cloneable-readable@1.1.3:
      -    resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
      +  cloneable-readable@1.1.3:
           dependencies:
             inherits: 2.0.4
             process-nextick-args: 2.0.1
             readable-stream: 2.3.8
       
      -  /clsx@2.1.0:
      -    resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  clsx@2.1.0: {}
       
      -  /cmd-shim@5.0.0:
      -    resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  cmd-shim@5.0.0:
           dependencies:
             mkdirp-infer-owner: 2.0.0
       
      -  /co@4.6.0:
      -    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
      -    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
      -    dev: true
      +  co@4.6.0: {}
       
      -  /collapse-white-space@2.1.0:
      -    resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
      +  collapse-white-space@2.1.0: {}
       
      -  /collect-v8-coverage@1.0.2:
      -    resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
      -    dev: true
      +  collect-v8-coverage@1.0.2: {}
       
      -  /color-convert@1.9.3:
      -    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
      +  color-convert@1.9.3:
           dependencies:
             color-name: 1.1.3
       
      -  /color-convert@2.0.1:
      -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
      -    engines: {node: '>=7.0.0'}
      +  color-convert@2.0.1:
           dependencies:
             color-name: 1.1.4
       
      -  /color-name@1.1.3:
      -    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
      +  color-name@1.1.3: {}
       
      -  /color-name@1.1.4:
      -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
      +  color-name@1.1.4: {}
       
      -  /color-string@1.9.1:
      -    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
      +  color-string@1.9.1:
           dependencies:
             color-name: 1.1.4
             simple-swizzle: 0.2.2
       
      -  /color-support@1.1.3:
      -    resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
      -    hasBin: true
      +  color-support@1.1.3: {}
       
      -  /color@3.2.1:
      -    resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
      +  color@3.2.1:
           dependencies:
             color-convert: 1.9.3
             color-string: 1.9.1
       
      -  /colord@2.9.3:
      -    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
      -    dev: false
      +  colord@2.9.3: {}
       
      -  /colorette@2.0.20:
      -    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
      +  colorette@2.0.20: {}
       
      -  /colors@1.0.3:
      -    resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
      -    engines: {node: '>=0.1.90'}
      +  colors@1.0.3: {}
       
      -  /colorspace@1.1.4:
      -    resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
      +  colorspace@1.1.4:
           dependencies:
             color: 3.2.1
             text-hex: 1.0.0
       
      -  /combine-promises@1.2.0:
      -    resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  combine-promises@1.2.0: {}
       
      -  /combined-stream@1.0.8:
      -    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
      -    engines: {node: '>= 0.8'}
      +  combined-stream@1.0.8:
           dependencies:
             delayed-stream: 1.0.0
      -    dev: true
       
      -  /comma-separated-tokens@2.0.3:
      -    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
      +  comma-separated-tokens@2.0.3: {}
       
      -  /commander@10.0.1:
      -    resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
      -    engines: {node: '>=14'}
      +  commander@10.0.1: {}
       
      -  /commander@11.1.0:
      -    resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
      -    engines: {node: '>=16'}
      -    dev: true
      +  commander@11.1.0: {}
       
      -  /commander@2.20.3:
      -    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
      +  commander@2.20.3: {}
       
      -  /commander@4.1.1:
      -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
      -    engines: {node: '>= 6'}
      -    dev: true
      +  commander@4.1.1: {}
       
      -  /commander@5.1.0:
      -    resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
      -    engines: {node: '>= 6'}
      +  commander@5.1.0: {}
       
      -  /commander@7.1.0:
      -    resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==}
      -    engines: {node: '>= 10'}
      +  commander@7.1.0: {}
       
      -  /commander@7.2.0:
      -    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
      -    engines: {node: '>= 10'}
      +  commander@7.2.0: {}
       
      -  /commander@8.3.0:
      -    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
      -    engines: {node: '>= 12'}
      +  commander@8.3.0: {}
       
      -  /common-ancestor-path@1.0.1:
      -    resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
      +  common-ancestor-path@1.0.1: {}
       
      -  /common-path-prefix@3.0.0:
      -    resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
      -    dev: false
      +  common-path-prefix@3.0.0: {}
       
      -  /commondir@1.0.1:
      -    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
      +  commondir@1.0.1: {}
       
      -  /compressible@2.0.18:
      -    resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
      -    engines: {node: '>= 0.6'}
      +  compressible@2.0.18:
           dependencies:
             mime-db: 1.52.0
       
      -  /compression@1.7.4:
      -    resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
      -    engines: {node: '>= 0.8.0'}
      +  compression@1.7.4:
           dependencies:
             accepts: 1.3.8
             bytes: 3.0.0
      @@ -7379,83 +14169,50 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /comver-to-semver@1.0.0:
      -    resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==}
      -    engines: {node: '>=12.17'}
      -    dev: false
      +  comver-to-semver@1.0.0: {}
       
      -  /concat-map@0.0.1:
      -    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
      +  concat-map@0.0.1: {}
       
      -  /config-chain@1.1.13:
      -    resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
      +  config-chain@1.1.13:
           dependencies:
             ini: 1.3.8
             proto-list: 1.2.4
       
      -  /configstore@6.0.0:
      -    resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
      -    engines: {node: '>=12'}
      +  configstore@6.0.0:
           dependencies:
             dot-prop: 6.0.1
             graceful-fs: 4.2.11
             unique-string: 3.0.0
             write-file-atomic: 3.0.3
             xdg-basedir: 5.1.0
      -    dev: false
       
      -  /connect-history-api-fallback@2.0.0:
      -    resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
      -    engines: {node: '>=0.8'}
      +  connect-history-api-fallback@2.0.0: {}
       
      -  /consola@2.15.3:
      -    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
      -    dev: false
      +  consola@2.15.3: {}
       
      -  /console-control-strings@1.1.0:
      -    resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
      +  console-control-strings@1.1.0: {}
       
      -  /content-disposition@0.5.2:
      -    resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
      -    engines: {node: '>= 0.6'}
      -    dev: false
      +  content-disposition@0.5.2: {}
       
      -  /content-disposition@0.5.4:
      -    resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
      -    engines: {node: '>= 0.6'}
      +  content-disposition@0.5.4:
           dependencies:
             safe-buffer: 5.2.1
       
      -  /content-type@1.0.5:
      -    resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
      -    engines: {node: '>= 0.6'}
      +  content-type@1.0.5: {}
       
      -  /convert-source-map@2.0.0:
      -    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
      +  convert-source-map@2.0.0: {}
       
      -  /cookie-signature@1.0.6:
      -    resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
      +  cookie-signature@1.0.6: {}
       
      -  /cookie@0.6.0:
      -    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
      -    engines: {node: '>= 0.6'}
      +  cookie@0.6.0: {}
       
      -  /copy-text-to-clipboard@3.2.0:
      -    resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  copy-text-to-clipboard@3.2.0: {}
       
      -  /copy-to-clipboard@3.3.3:
      -    resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
      +  copy-to-clipboard@3.3.3:
           dependencies:
             toggle-selection: 1.0.6
      -    dev: false
       
      -  /copy-webpack-plugin@11.0.0(webpack@5.91.0):
      -    resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      webpack: ^5.1.0
      +  copy-webpack-plugin@11.0.0(webpack@5.91.0):
           dependencies:
             fast-glob: 3.3.2
             glob-parent: 6.0.2
      @@ -7464,61 +14221,36 @@ packages:
             schema-utils: 4.2.0
             serialize-javascript: 6.0.2
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /core-js-compat@3.36.1:
      -    resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
      +  core-js-compat@3.36.1:
           dependencies:
             browserslist: 4.23.0
       
      -  /core-js-pure@3.36.1:
      -    resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==}
      -    requiresBuild: true
      -    dev: false
      +  core-js-pure@3.36.1: {}
       
      -  /core-js@3.36.1:
      -    resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==}
      -    requiresBuild: true
      -    dev: false
      +  core-js@3.36.1: {}
       
      -  /core-util-is@1.0.3:
      -    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
      +  core-util-is@1.0.3: {}
       
      -  /corser@2.0.1:
      -    resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
      -    engines: {node: '>= 0.4.0'}
      -    dev: true
      +  corser@2.0.1: {}
       
      -  /cosmiconfig@6.0.0:
      -    resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
      -    engines: {node: '>=8'}
      +  cosmiconfig@6.0.0:
           dependencies:
             '@types/parse-json': 4.0.2
             import-fresh: 3.3.0
             parse-json: 5.2.0
             path-type: 4.0.0
             yaml: 1.10.2
      -    dev: false
       
      -  /cosmiconfig@7.1.0:
      -    resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
      -    engines: {node: '>=10'}
      +  cosmiconfig@7.1.0:
           dependencies:
             '@types/parse-json': 4.0.2
             import-fresh: 3.3.0
             parse-json: 5.2.0
             path-type: 4.0.0
             yaml: 1.10.2
      -    dev: false
       
      -  /cosmiconfig@8.3.6(typescript@5.4.3):
      -    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=4.9.5'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  cosmiconfig@8.3.6(typescript@5.4.3):
           dependencies:
             import-fresh: 3.3.0
             js-yaml: 4.1.0
      @@ -7526,26 +14258,15 @@ packages:
             path-type: 4.0.0
             typescript: 5.4.3
       
      -  /cosmiconfig@9.0.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=4.9.5'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  cosmiconfig@9.0.0(typescript@5.4.3):
           dependencies:
             env-paths: 2.2.1
             import-fresh: 3.3.0
             js-yaml: 4.1.0
             parse-json: 5.2.0
             typescript: 5.4.3
      -    dev: true
       
      -  /create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      -    resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      +  create-jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
           dependencies:
             '@jest/types': 29.6.3
             chalk: 4.1.2
      @@ -7559,58 +14280,30 @@ packages:
             - babel-plugin-macros
             - supports-color
             - ts-node
      -    dev: true
       
      -  /create-require@1.1.1:
      -    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
      -    dev: true
      +  create-require@1.1.1: {}
       
      -  /cross-spawn@7.0.3:
      -    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
      -    engines: {node: '>= 8'}
      +  cross-spawn@7.0.3:
           dependencies:
             path-key: 3.1.1
             shebang-command: 2.0.0
             which: 2.0.2
       
      -  /crypto-random-string@2.0.0:
      -    resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  crypto-random-string@2.0.0: {}
       
      -  /crypto-random-string@4.0.0:
      -    resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
      -    engines: {node: '>=12'}
      +  crypto-random-string@4.0.0:
           dependencies:
             type-fest: 1.4.0
      -    dev: false
       
      -  /css-declaration-sorter@6.4.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
      -    engines: {node: ^10 || ^12 || >=14}
      -    peerDependencies:
      -      postcss: ^8.0.9
      +  css-declaration-sorter@6.4.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /css-in-js-utils@3.1.0:
      -    resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
      +  css-in-js-utils@3.1.0:
           dependencies:
             hyphenate-style-name: 1.0.4
      -    dev: false
       
      -  /css-loader@6.10.0(webpack@5.91.0):
      -    resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      +  css-loader@6.10.0(webpack@5.91.0):
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
      @@ -7621,31 +14314,8 @@ packages:
             postcss-value-parser: 4.2.0
             semver: 7.6.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -
      -  /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
      -    resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      '@parcel/css': '*'
      -      '@swc/css': '*'
      -      clean-css: '*'
      -      csso: '*'
      -      esbuild: '*'
      -      lightningcss: '*'
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@parcel/css':
      -        optional: true
      -      '@swc/css':
      -        optional: true
      -      clean-css:
      -        optional: true
      -      csso:
      -        optional: true
      -      esbuild:
      -        optional: true
      -      lightningcss:
      -        optional: true
      +
      +  css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(esbuild@0.20.2)(webpack@5.91.0):
           dependencies:
             clean-css: 5.3.3
             cssnano: 5.1.15(postcss@8.4.38)
      @@ -7656,10 +14326,8 @@ packages:
             serialize-javascript: 6.0.2
             source-map: 0.6.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /css-select@4.3.0:
      -    resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
      +  css-select@4.3.0:
           dependencies:
             boolbase: 1.0.0
             css-what: 6.1.0
      @@ -7667,8 +14335,7 @@ packages:
             domutils: 2.8.0
             nth-check: 2.1.1
       
      -  /css-select@5.1.0:
      -    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
      +  css-select@5.1.0:
           dependencies:
             boolbase: 1.0.0
             css-what: 6.1.0
      @@ -7676,44 +14343,26 @@ packages:
             domutils: 3.1.0
             nth-check: 2.1.1
       
      -  /css-tree@1.1.3:
      -    resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
      -    engines: {node: '>=8.0.0'}
      +  css-tree@1.1.3:
           dependencies:
             mdn-data: 2.0.14
             source-map: 0.6.1
      -    dev: false
       
      -  /css-tree@2.2.1:
      -    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      +  css-tree@2.2.1:
           dependencies:
             mdn-data: 2.0.28
             source-map-js: 1.2.0
      -    dev: true
       
      -  /css-tree@2.3.1:
      -    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
      +  css-tree@2.3.1:
           dependencies:
             mdn-data: 2.0.30
             source-map-js: 1.2.0
      -    dev: true
       
      -  /css-what@6.1.0:
      -    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
      -    engines: {node: '>= 6'}
      +  css-what@6.1.0: {}
       
      -  /cssesc@3.0.0:
      -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  cssesc@3.0.0: {}
       
      -  /cssnano-preset-advanced@5.3.10(postcss@8.4.38):
      -    resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  cssnano-preset-advanced@5.3.10(postcss@8.4.38):
           dependencies:
             autoprefixer: 10.4.19(postcss@8.4.38)
             cssnano-preset-default: 5.2.14(postcss@8.4.38)
      @@ -7722,13 +14371,8 @@ packages:
             postcss-merge-idents: 5.1.1(postcss@8.4.38)
             postcss-reduce-idents: 5.2.0(postcss@8.4.38)
             postcss-zindex: 5.1.0(postcss@8.4.38)
      -    dev: false
       
      -  /cssnano-preset-default@5.2.14(postcss@8.4.38):
      -    resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  cssnano-preset-default@5.2.14(postcss@8.4.38):
           dependencies:
             css-declaration-sorter: 6.4.1(postcss@8.4.38)
             cssnano-utils: 3.1.0(postcss@8.4.38)
      @@ -7760,214 +14404,113 @@ packages:
             postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
             postcss-svgo: 5.1.0(postcss@8.4.38)
             postcss-unique-selectors: 5.1.1(postcss@8.4.38)
      -    dev: false
       
      -  /cssnano-utils@3.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  cssnano-utils@3.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /cssnano@5.1.15(postcss@8.4.38):
      -    resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  cssnano@5.1.15(postcss@8.4.38):
           dependencies:
             cssnano-preset-default: 5.2.14(postcss@8.4.38)
             lilconfig: 2.1.0
             postcss: 8.4.38
             yaml: 1.10.2
      -    dev: false
       
      -  /csso@4.2.0:
      -    resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
      -    engines: {node: '>=8.0.0'}
      +  csso@4.2.0:
           dependencies:
             css-tree: 1.1.3
      -    dev: false
       
      -  /csso@5.0.5:
      -    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
      -    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
      +  csso@5.0.5:
           dependencies:
             css-tree: 2.2.1
      -    dev: true
       
      -  /cssom@0.3.8:
      -    resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
      -    dev: true
      +  cssom@0.3.8: {}
       
      -  /cssom@0.5.0:
      -    resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
      -    dev: true
      +  cssom@0.5.0: {}
       
      -  /cssstyle@2.3.0:
      -    resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
      -    engines: {node: '>=8'}
      +  cssstyle@2.3.0:
           dependencies:
             cssom: 0.3.8
      -    dev: true
       
      -  /csstype@3.1.3:
      -    resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
      +  csstype@3.1.3: {}
       
      -  /damerau-levenshtein@1.0.8:
      -    resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
      -    dev: true
      +  damerau-levenshtein@1.0.8: {}
       
      -  /dargs@7.0.0:
      -    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
      -    engines: {node: '>=8'}
      +  dargs@7.0.0: {}
       
      -  /data-uri-to-buffer@2.0.2:
      -    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
      -    dev: true
      +  data-uri-to-buffer@2.0.2: {}
       
      -  /data-uri-to-buffer@3.0.1:
      -    resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
      -    engines: {node: '>= 6'}
      -    dev: false
      +  data-uri-to-buffer@3.0.1: {}
       
      -  /data-urls@3.0.2:
      -    resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
      -    engines: {node: '>=12'}
      +  data-urls@3.0.2:
           dependencies:
             abab: 2.0.6
             whatwg-mimetype: 3.0.0
             whatwg-url: 11.0.0
      -    dev: true
       
      -  /data-view-buffer@1.0.1:
      -    resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
      -    engines: {node: '>= 0.4'}
      +  data-view-buffer@1.0.1:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      -    dev: true
       
      -  /data-view-byte-length@1.0.1:
      -    resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
      -    engines: {node: '>= 0.4'}
      +  data-view-byte-length@1.0.1:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      -    dev: true
       
      -  /data-view-byte-offset@1.0.0:
      -    resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
      -    engines: {node: '>= 0.4'}
      +  data-view-byte-offset@1.0.0:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-data-view: 1.0.1
      -    dev: true
       
      -  /dateformat@4.6.3:
      -    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
      +  dateformat@4.6.3: {}
       
      -  /debounce@1.2.1:
      -    resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
      -    dev: false
      +  debounce@1.2.1: {}
       
      -  /debug@2.6.9:
      -    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      +  debug@2.6.9:
           dependencies:
             ms: 2.0.0
       
      -  /debug@3.2.7:
      -    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      +  debug@3.2.7:
           dependencies:
             ms: 2.1.3
      -    dev: true
       
      -  /debug@4.3.4(supports-color@8.1.1):
      -    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
      -    engines: {node: '>=6.0'}
      -    peerDependencies:
      -      supports-color: '*'
      -    peerDependenciesMeta:
      -      supports-color:
      -        optional: true
      +  debug@4.3.4(supports-color@8.1.1):
           dependencies:
             ms: 2.1.2
             supports-color: 8.1.1
       
      -  /debuglog@1.0.1:
      -    resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==}
      -    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
      +  debuglog@1.0.1: {}
       
      -  /decamelize-keys@1.1.1:
      -    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
      -    engines: {node: '>=0.10.0'}
      +  decamelize-keys@1.1.1:
           dependencies:
             decamelize: 1.2.0
             map-obj: 1.0.1
      -    dev: true
       
      -  /decamelize@1.2.0:
      -    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  decamelize@1.2.0: {}
       
      -  /decamelize@4.0.0:
      -    resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  decamelize@4.0.0: {}
       
      -  /decamelize@5.0.1:
      -    resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  decamelize@5.0.1: {}
       
      -  /decimal.js@10.4.3:
      -    resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
      -    dev: true
      +  decimal.js@10.4.3: {}
       
      -  /decode-named-character-reference@1.0.2:
      -    resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
      +  decode-named-character-reference@1.0.2:
           dependencies:
             character-entities: 2.0.2
       
      -  /decompress-response@6.0.0:
      -    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
      -    engines: {node: '>=10'}
      +  decompress-response@6.0.0:
           dependencies:
             mimic-response: 3.1.0
      -    dev: false
       
      -  /dedent@1.5.1:
      -    resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
      -    peerDependencies:
      -      babel-plugin-macros: ^3.1.0
      -    peerDependenciesMeta:
      -      babel-plugin-macros:
      -        optional: true
      -    dev: true
      +  dedent@1.5.1: {}
       
      -  /deep-eql@5.0.1:
      -    resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  deep-eql@5.0.1: {}
       
      -  /deep-equal@2.2.3:
      -    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
      -    engines: {node: '>= 0.4'}
      +  deep-equal@2.2.3:
           dependencies:
             array-buffer-byte-length: 1.0.1
             call-bind: 1.0.7
      @@ -7987,74 +14530,47 @@ packages:
             which-boxed-primitive: 1.0.2
             which-collection: 1.0.2
             which-typed-array: 1.1.15
      -    dev: true
       
      -  /deep-extend@0.6.0:
      -    resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
      -    engines: {node: '>=4.0.0'}
      +  deep-extend@0.6.0: {}
       
      -  /deep-is@0.1.4:
      -    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
      +  deep-is@0.1.4: {}
       
      -  /deepmerge@4.3.1:
      -    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
      -    engines: {node: '>=0.10.0'}
      +  deepmerge@4.3.1: {}
       
      -  /default-browser-id@5.0.0:
      -    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
      -    engines: {node: '>=18'}
      +  default-browser-id@5.0.0: {}
       
      -  /default-browser@5.2.1:
      -    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
      -    engines: {node: '>=18'}
      +  default-browser@5.2.1:
           dependencies:
             bundle-name: 4.1.0
             default-browser-id: 5.0.0
       
      -  /default-gateway@6.0.3:
      -    resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
      -    engines: {node: '>= 10'}
      +  default-gateway@6.0.3:
           dependencies:
             execa: 5.1.1
       
      -  /defaults@1.0.4:
      -    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
      +  defaults@1.0.4:
           dependencies:
             clone: 1.0.4
       
      -  /defer-to-connect@2.0.1:
      -    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  defer-to-connect@2.0.1: {}
       
      -  /define-data-property@1.1.4:
      -    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
      -    engines: {node: '>= 0.4'}
      +  define-data-property@1.1.4:
           dependencies:
             es-define-property: 1.0.0
             es-errors: 1.3.0
             gopd: 1.0.1
       
      -  /define-lazy-prop@2.0.0:
      -    resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
      -    engines: {node: '>=8'}
      -    dev: false
      +  define-lazy-prop@2.0.0: {}
       
      -  /define-lazy-prop@3.0.0:
      -    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
      -    engines: {node: '>=12'}
      +  define-lazy-prop@3.0.0: {}
       
      -  /define-properties@1.2.1:
      -    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
      -    engines: {node: '>= 0.4'}
      +  define-properties@1.2.1:
           dependencies:
             define-data-property: 1.1.4
             has-property-descriptors: 1.0.2
             object-keys: 1.1.1
       
      -  /del@6.1.1:
      -    resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
      -    engines: {node: '>=10'}
      +  del@6.1.1:
           dependencies:
             globby: 11.1.0
             graceful-fs: 4.2.11
      @@ -8064,327 +14580,201 @@ packages:
             p-map: 4.0.0
             rimraf: 3.0.2
             slash: 3.0.0
      -    dev: false
       
      -  /delayed-stream@1.0.0:
      -    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
      -    engines: {node: '>=0.4.0'}
      -    dev: true
      +  delayed-stream@1.0.0: {}
       
      -  /delegates@1.0.0:
      -    resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
      +  delegates@1.0.0: {}
       
      -  /depd@1.1.2:
      -    resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
      -    engines: {node: '>= 0.6'}
      +  depd@1.1.2: {}
       
      -  /depd@2.0.0:
      -    resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
      -    engines: {node: '>= 0.8'}
      +  depd@2.0.0: {}
       
      -  /deprecation@2.3.1:
      -    resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
      +  deprecation@2.3.1: {}
       
      -  /dequal@2.0.3:
      -    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
      -    engines: {node: '>=6'}
      +  dequal@2.0.3: {}
       
      -  /destroy@1.2.0:
      -    resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
      -    engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
      +  destroy@1.2.0: {}
       
      -  /detect-indent@7.0.1:
      -    resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
      -    engines: {node: '>=12.20'}
      -    dev: true
      +  detect-indent@7.0.1: {}
       
      -  /detect-libc@2.0.3:
      -    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  detect-libc@2.0.3: {}
       
      -  /detect-newline@3.1.0:
      -    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  detect-newline@3.1.0: {}
       
      -  /detect-node@2.1.0:
      -    resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
      +  detect-node@2.1.0: {}
       
      -  /detect-port-alt@1.1.6:
      -    resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
      -    engines: {node: '>= 4.2.1'}
      -    hasBin: true
      +  detect-port-alt@1.1.6:
           dependencies:
             address: 1.2.2
             debug: 2.6.9
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /detect-port@1.5.1:
      -    resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
      -    hasBin: true
      +  detect-port@1.5.1:
           dependencies:
             address: 1.2.2
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /devlop@1.1.0:
      -    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
      +  devlop@1.1.0:
           dependencies:
             dequal: 2.0.3
       
      -  /dezalgo@1.0.4:
      -    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
      +  dezalgo@1.0.4:
           dependencies:
             asap: 2.0.6
             wrappy: 1.0.2
       
      -  /didyoumean@1.2.2:
      -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
      -    dev: true
      +  didyoumean@1.2.2: {}
       
      -  /diff-sequences@29.6.3:
      -    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    dev: true
      +  diff-sequences@29.6.3: {}
       
      -  /diff@4.0.2:
      -    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
      -    engines: {node: '>=0.3.1'}
      -    dev: true
      +  diff@4.0.2: {}
       
      -  /diff@5.0.0:
      -    resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
      -    engines: {node: '>=0.3.1'}
      -    dev: true
      +  diff@5.0.0: {}
       
      -  /diff@5.2.0:
      -    resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
      -    engines: {node: '>=0.3.1'}
      +  diff@5.2.0: {}
       
      -  /dir-glob@3.0.1:
      -    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
      -    engines: {node: '>=8'}
      +  dir-glob@3.0.1:
           dependencies:
             path-type: 4.0.0
       
      -  /discontinuous-range@1.0.0:
      -    resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
      -    dev: false
      +  discontinuous-range@1.0.0: {}
       
      -  /dlv@1.1.3:
      -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
      -    dev: true
      +  dlv@1.1.3: {}
       
      -  /dns-packet@5.6.1:
      -    resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
      -    engines: {node: '>=6'}
      +  dns-packet@5.6.1:
           dependencies:
             '@leichtgewicht/ip-codec': 2.0.4
       
      -  /doctrine@2.1.0:
      -    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
      -    engines: {node: '>=0.10.0'}
      +  doctrine@2.1.0:
           dependencies:
             esutils: 2.0.3
      -    dev: true
       
      -  /doctrine@3.0.0:
      -    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
      -    engines: {node: '>=6.0.0'}
      +  doctrine@3.0.0:
           dependencies:
             esutils: 2.0.3
       
      -  /dom-accessibility-api@0.5.16:
      -    resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
      -    dev: true
      +  dom-accessibility-api@0.5.16: {}
       
      -  /dom-converter@0.2.0:
      -    resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
      +  dom-converter@0.2.0:
           dependencies:
             utila: 0.4.0
       
      -  /dom-serializer@1.4.1:
      -    resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
      +  dom-serializer@1.4.1:
           dependencies:
             domelementtype: 2.3.0
             domhandler: 4.3.1
             entities: 2.2.0
       
      -  /dom-serializer@2.0.0:
      -    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
      +  dom-serializer@2.0.0:
           dependencies:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             entities: 4.5.0
       
      -  /domelementtype@2.3.0:
      -    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
      +  domelementtype@2.3.0: {}
       
      -  /domexception@4.0.0:
      -    resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
      -    engines: {node: '>=12'}
      -    deprecated: Use your platform's native DOMException instead
      +  domexception@4.0.0:
           dependencies:
             webidl-conversions: 7.0.0
      -    dev: true
       
      -  /domhandler@4.3.1:
      -    resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
      -    engines: {node: '>= 4'}
      +  domhandler@4.3.1:
           dependencies:
             domelementtype: 2.3.0
       
      -  /domhandler@5.0.3:
      -    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
      -    engines: {node: '>= 4'}
      +  domhandler@5.0.3:
           dependencies:
             domelementtype: 2.3.0
       
      -  /domutils@2.8.0:
      -    resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
      +  domutils@2.8.0:
           dependencies:
             dom-serializer: 1.4.1
             domelementtype: 2.3.0
             domhandler: 4.3.1
       
      -  /domutils@3.1.0:
      -    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
      +  domutils@3.1.0:
           dependencies:
             dom-serializer: 2.0.0
             domelementtype: 2.3.0
             domhandler: 5.0.3
       
      -  /dot-case@3.0.4:
      -    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
      +  dot-case@3.0.4:
           dependencies:
             no-case: 3.0.4
             tslib: 2.6.2
       
      -  /dot-prop@6.0.1:
      -    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
      -    engines: {node: '>=10'}
      +  dot-prop@6.0.1:
           dependencies:
             is-obj: 2.0.0
      -    dev: false
       
      -  /duplexer@0.1.2:
      -    resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
      -    dev: false
      +  duplexer@0.1.2: {}
       
      -  /eastasianwidth@0.2.0:
      -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
      +  eastasianwidth@0.2.0: {}
       
      -  /ee-first@1.1.1:
      -    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
      +  ee-first@1.1.1: {}
       
      -  /effect@2.0.0-next.62:
      -    resolution: {integrity: sha512-fJhLzf5oouL4WZP314ZJgZz5Bel7OHTY+YFxO06sW1mSvqJz0s28y7jDHr5zhtTNM1YRvzbeLYUYfNaJYKqx1A==}
      -    dev: true
      +  effect@2.0.0-next.62: {}
       
      -  /ejs@3.1.9:
      -    resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
      -    engines: {node: '>=0.10.0'}
      -    hasBin: true
      +  ejs@3.1.9:
           dependencies:
             jake: 10.8.7
       
      -  /electron-to-chromium@1.4.717:
      -    resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==}
      +  electron-to-chromium@1.4.717: {}
       
      -  /emittery@0.13.1:
      -    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  emittery@0.13.1: {}
       
      -  /emoji-regex@8.0.0:
      -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
      +  emoji-regex@8.0.0: {}
       
      -  /emoji-regex@9.2.2:
      -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
      +  emoji-regex@9.2.2: {}
       
      -  /emojilib@2.4.0:
      -    resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
      -    dev: false
      +  emojilib@2.4.0: {}
       
      -  /emojis-list@3.0.0:
      -    resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
      -    engines: {node: '>= 4'}
      -    dev: false
      +  emojis-list@3.0.0: {}
       
      -  /emoticon@4.0.1:
      -    resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==}
      -    dev: false
      +  emoticon@4.0.1: {}
       
      -  /enabled@2.0.0:
      -    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
      +  enabled@2.0.0: {}
       
      -  /encodeurl@1.0.2:
      -    resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
      -    engines: {node: '>= 0.8'}
      +  encodeurl@1.0.2: {}
       
      -  /encoding@0.1.13:
      -    resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
      -    requiresBuild: true
      +  encoding@0.1.13:
           dependencies:
             iconv-lite: 0.6.3
           optional: true
       
      -  /enhanced-resolve@5.16.0:
      -    resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
      -    engines: {node: '>=10.13.0'}
      +  enhanced-resolve@5.16.0:
           dependencies:
             graceful-fs: 4.2.11
             tapable: 2.2.1
       
      -  /enquirer@2.4.1:
      -    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
      -    engines: {node: '>=8.6'}
      +  enquirer@2.4.1:
           dependencies:
             ansi-colors: 4.1.3
             strip-ansi: 6.0.1
      -    dev: true
       
      -  /entities@2.2.0:
      -    resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
      +  entities@2.2.0: {}
       
      -  /entities@4.5.0:
      -    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
      -    engines: {node: '>=0.12'}
      +  entities@4.5.0: {}
       
      -  /env-paths@2.2.1:
      -    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
      -    engines: {node: '>=6'}
      +  env-paths@2.2.1: {}
       
      -  /envinfo@7.11.1:
      -    resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  envinfo@7.11.1: {}
       
      -  /err-code@2.0.3:
      -    resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
      +  err-code@2.0.3: {}
       
      -  /error-ex@1.3.2:
      -    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
      +  error-ex@1.3.2:
           dependencies:
             is-arrayish: 0.2.1
       
      -  /error-stack-parser@2.1.4:
      -    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
      +  error-stack-parser@2.1.4:
           dependencies:
             stackframe: 1.3.4
      -    dev: false
       
      -  /error@10.4.0:
      -    resolution: {integrity: sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==}
      +  error@10.4.0: {}
       
      -  /es-abstract@1.23.2:
      -    resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==}
      -    engines: {node: '>= 0.4'}
      +  es-abstract@1.23.2:
           dependencies:
             array-buffer-byte-length: 1.0.1
             arraybuffer.prototype.slice: 1.0.3
      @@ -8432,20 +14822,14 @@ packages:
             typed-array-length: 1.0.6
             unbox-primitive: 1.0.2
             which-typed-array: 1.1.15
      -    dev: true
       
      -  /es-define-property@1.0.0:
      -    resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
      -    engines: {node: '>= 0.4'}
      +  es-define-property@1.0.0:
           dependencies:
             get-intrinsic: 1.2.4
       
      -  /es-errors@1.3.0:
      -    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
      -    engines: {node: '>= 0.4'}
      +  es-errors@1.3.0: {}
       
      -  /es-get-iterator@1.1.3:
      -    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
      +  es-get-iterator@1.1.3:
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      @@ -8456,11 +14840,8 @@ packages:
             is-string: 1.0.7
             isarray: 2.0.5
             stop-iteration-iterator: 1.0.0
      -    dev: true
       
      -  /es-iterator-helpers@1.0.18:
      -    resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==}
      -    engines: {node: '>= 0.4'}
      +  es-iterator-helpers@1.0.18:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -8476,47 +14857,30 @@ packages:
             internal-slot: 1.0.7
             iterator.prototype: 1.1.2
             safe-array-concat: 1.1.2
      -    dev: true
       
      -  /es-module-lexer@1.5.0:
      -    resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
      +  es-module-lexer@1.5.0: {}
       
      -  /es-object-atoms@1.0.0:
      -    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
      -    engines: {node: '>= 0.4'}
      +  es-object-atoms@1.0.0:
           dependencies:
             es-errors: 1.3.0
      -    dev: true
       
      -  /es-set-tostringtag@2.0.3:
      -    resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
      -    engines: {node: '>= 0.4'}
      +  es-set-tostringtag@2.0.3:
           dependencies:
             get-intrinsic: 1.2.4
             has-tostringtag: 1.0.2
             hasown: 2.0.2
      -    dev: true
       
      -  /es-shim-unscopables@1.0.2:
      -    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
      +  es-shim-unscopables@1.0.2:
           dependencies:
             hasown: 2.0.2
      -    dev: true
       
      -  /es-to-primitive@1.2.1:
      -    resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
      -    engines: {node: '>= 0.4'}
      +  es-to-primitive@1.2.1:
           dependencies:
             is-callable: 1.2.7
             is-date-object: 1.0.5
             is-symbol: 1.0.4
      -    dev: true
       
      -  /esbuild@0.20.2:
      -    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      -    requiresBuild: true
      +  esbuild@0.20.2:
           optionalDependencies:
             '@esbuild/aix-ppc64': 0.20.2
             '@esbuild/android-arm': 0.20.2
      @@ -8542,56 +14906,29 @@ packages:
             '@esbuild/win32-ia32': 0.20.2
             '@esbuild/win32-x64': 0.20.2
       
      -  /escalade@3.1.2:
      -    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
      -    engines: {node: '>=6'}
      +  escalade@3.1.2: {}
       
      -  /escape-goat@4.0.0:
      -    resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  escape-goat@4.0.0: {}
       
      -  /escape-html@1.0.3:
      -    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
      +  escape-html@1.0.3: {}
       
      -  /escape-string-regexp@1.0.5:
      -    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
      -    engines: {node: '>=0.8.0'}
      +  escape-string-regexp@1.0.5: {}
       
      -  /escape-string-regexp@2.0.0:
      -    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  escape-string-regexp@2.0.0: {}
       
      -  /escape-string-regexp@4.0.0:
      -    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
      -    engines: {node: '>=10'}
      +  escape-string-regexp@4.0.0: {}
       
      -  /escape-string-regexp@5.0.0:
      -    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  escape-string-regexp@5.0.0: {}
       
      -  /escodegen@2.1.0:
      -    resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
      -    engines: {node: '>=6.0'}
      -    hasBin: true
      +  escodegen@2.1.0:
           dependencies:
             esprima: 4.0.1
             estraverse: 5.3.0
             esutils: 2.0.3
           optionalDependencies:
             source-map: 0.6.1
      -    dev: true
       
      -  /eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-cihIahbhYAWwXJwZkAaRPpUi5t9aOi/HdfWXOjZeUOqNWXHD8X22kd1KG58Dc3MVaRx3HoR/oMGk2ltcrqDn8g==}
      -    peerDependencies:
      -      eslint: ^7.23.0 || ^8.0.0
      -      typescript: '>=3.3.1'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  eslint-config-next@14.1.4(eslint@8.57.0)(typescript@5.4.3):
           dependencies:
             '@next/eslint-plugin-next': 14.1.4
             '@rushstack/eslint-patch': 1.8.0
      @@ -8607,33 +14944,20 @@ packages:
           transitivePeerDependencies:
             - eslint-import-resolver-webpack
             - supports-color
      -    dev: true
       
      -  /eslint-config-prettier@9.1.0(eslint@8.57.0):
      -    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
      -    hasBin: true
      -    peerDependencies:
      -      eslint: '>=7.0.0'
      +  eslint-config-prettier@9.1.0(eslint@8.57.0):
           dependencies:
             eslint: 8.57.0
      -    dev: true
       
      -  /eslint-import-resolver-node@0.3.9:
      -    resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
      +  eslint-import-resolver-node@0.3.9:
           dependencies:
             debug: 3.2.7
             is-core-module: 2.13.1
             resolve: 1.22.8
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      -    engines: {node: ^14.18.0 || >=16.0.0}
      -    peerDependencies:
      -      eslint: '*'
      -      eslint-plugin-import: '*'
      +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             enhanced-resolve: 5.16.0
      @@ -8649,14 +14973,8 @@ packages:
             - eslint-import-resolver-node
             - eslint-import-resolver-webpack
             - supports-color
      -    dev: true
       
      -  /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
      -    resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
      -    engines: {node: ^14.18.0 || >=16.0.0}
      -    peerDependencies:
      -      eslint: '*'
      -      eslint-plugin-import: '*'
      +  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             enhanced-resolve: 5.16.0
      @@ -8672,28 +14990,8 @@ packages:
             - eslint-import-resolver-node
             - eslint-import-resolver-webpack
             - supports-color
      -    dev: true
       
      -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      '@typescript-eslint/parser': '*'
      -      eslint: '*'
      -      eslint-import-resolver-node: '*'
      -      eslint-import-resolver-typescript: '*'
      -      eslint-import-resolver-webpack: '*'
      -    peerDependenciesMeta:
      -      '@typescript-eslint/parser':
      -        optional: true
      -      eslint:
      -        optional: true
      -      eslint-import-resolver-node:
      -        optional: true
      -      eslint-import-resolver-typescript:
      -        optional: true
      -      eslint-import-resolver-webpack:
      -        optional: true
      +  eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
           dependencies:
             '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3)
             debug: 3.2.7
      @@ -8702,28 +15000,8 @@ packages:
             eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      -    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      '@typescript-eslint/parser': '*'
      -      eslint: '*'
      -      eslint-import-resolver-node: '*'
      -      eslint-import-resolver-typescript: '*'
      -      eslint-import-resolver-webpack: '*'
      -    peerDependenciesMeta:
      -      '@typescript-eslint/parser':
      -        optional: true
      -      eslint:
      -        optional: true
      -      eslint-import-resolver-node:
      -        optional: true
      -      eslint-import-resolver-typescript:
      -        optional: true
      -      eslint-import-resolver-webpack:
      -        optional: true
      +  eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
           dependencies:
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
             debug: 3.2.7
      @@ -8732,17 +15010,8 @@ packages:
             eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
      -    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      '@typescript-eslint/parser': '*'
      -      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
      -    peerDependenciesMeta:
      -      '@typescript-eslint/parser':
      -        optional: true
      +  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
           dependencies:
             '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
             array-includes: 3.1.8
      @@ -8767,13 +15036,8 @@ packages:
             - eslint-import-resolver-typescript
             - eslint-import-resolver-webpack
             - supports-color
      -    dev: true
       
      -  /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
      -    resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
      -    engines: {node: '>=4.0'}
      -    peerDependencies:
      -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      +  eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
           dependencies:
             '@babel/runtime': 7.24.1
             aria-query: 5.3.0
      @@ -8792,34 +15056,19 @@ packages:
             minimatch: 3.1.2
             object.entries: 1.1.8
             object.fromentries: 2.0.8
      -    dev: true
       
      -  /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
      -    resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
      -    engines: {node: '>=14.0.0'}
      -    peerDependencies:
      -      eslint: '>=7.0.0'
      +  eslint-plugin-mocha@10.4.1(eslint@8.57.0):
           dependencies:
             eslint: 8.57.0
             eslint-utils: 3.0.0(eslint@8.57.0)
             globals: 13.24.0
             rambda: 7.5.0
      -    dev: true
       
      -  /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
      -    resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
      -    engines: {node: '>=10'}
      -    peerDependencies:
      -      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
      +  eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
           dependencies:
             eslint: 8.57.0
      -    dev: true
       
      -  /eslint-plugin-react@7.34.1(eslint@8.57.0):
      -    resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
      -    engines: {node: '>=4'}
      -    peerDependencies:
      -      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
      +  eslint-plugin-react@7.34.1(eslint@8.57.0):
           dependencies:
             array-includes: 3.1.8
             array.prototype.findlast: 1.2.5
      @@ -8840,13 +15089,8 @@ packages:
             resolve: 2.0.0-next.5
             semver: 6.3.1
             string.prototype.matchall: 4.0.11
      -    dev: true
       
      -  /eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
      -    resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
      -    engines: {node: '>=16'}
      -    peerDependencies:
      -      eslint: '>=8.56.0'
      +  eslint-plugin-unicorn@51.0.1(eslint@8.57.0):
           dependencies:
             '@babel/helper-validator-identifier': 7.22.20
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
      @@ -8867,65 +15111,35 @@ packages:
             strip-indent: 3.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
      -    resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    peerDependencies:
      -      '@typescript-eslint/eslint-plugin': 6 - 7
      -      eslint: '8'
      -    peerDependenciesMeta:
      -      '@typescript-eslint/eslint-plugin':
      -        optional: true
      +  eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0):
           dependencies:
             '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)
             eslint: 8.57.0
             eslint-rule-composer: 0.3.0
      -    dev: true
       
      -  /eslint-rule-composer@0.3.0:
      -    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
      -    engines: {node: '>=4.0.0'}
      -    dev: true
      +  eslint-rule-composer@0.3.0: {}
       
      -  /eslint-scope@5.1.1:
      -    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
      -    engines: {node: '>=8.0.0'}
      +  eslint-scope@5.1.1:
           dependencies:
             esrecurse: 4.3.0
             estraverse: 4.3.0
       
      -  /eslint-scope@7.2.2:
      -    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  eslint-scope@7.2.2:
           dependencies:
             esrecurse: 4.3.0
             estraverse: 5.3.0
       
      -  /eslint-utils@3.0.0(eslint@8.57.0):
      -    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
      -    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
      -    peerDependencies:
      -      eslint: '>=5'
      +  eslint-utils@3.0.0(eslint@8.57.0):
           dependencies:
             eslint: 8.57.0
             eslint-visitor-keys: 2.1.0
      -    dev: true
       
      -  /eslint-visitor-keys@2.1.0:
      -    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  eslint-visitor-keys@2.1.0: {}
       
      -  /eslint-visitor-keys@3.4.3:
      -    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  eslint-visitor-keys@3.4.3: {}
       
      -  /eslint@8.57.0:
      -    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      -    hasBin: true
      +  eslint@8.57.0:
           dependencies:
             '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
             '@eslint-community/regexpp': 4.10.0
      @@ -8968,116 +15182,77 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /espree@9.6.1:
      -    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  espree@9.6.1:
           dependencies:
             acorn: 8.11.3
             acorn-jsx: 5.3.2(acorn@8.11.3)
             eslint-visitor-keys: 3.4.3
       
      -  /esprima@4.0.1:
      -    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  esprima@4.0.1: {}
       
      -  /esquery@1.5.0:
      -    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
      -    engines: {node: '>=0.10'}
      +  esquery@1.5.0:
           dependencies:
             estraverse: 5.3.0
       
      -  /esrecurse@4.3.0:
      -    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
      -    engines: {node: '>=4.0'}
      +  esrecurse@4.3.0:
           dependencies:
             estraverse: 5.3.0
       
      -  /estraverse@4.3.0:
      -    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
      -    engines: {node: '>=4.0'}
      +  estraverse@4.3.0: {}
       
      -  /estraverse@5.3.0:
      -    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
      -    engines: {node: '>=4.0'}
      +  estraverse@5.3.0: {}
       
      -  /estree-util-attach-comments@3.0.0:
      -    resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
      +  estree-util-attach-comments@3.0.0:
           dependencies:
             '@types/estree': 1.0.5
       
      -  /estree-util-build-jsx@3.0.1:
      -    resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
      +  estree-util-build-jsx@3.0.1:
           dependencies:
             '@types/estree-jsx': 1.0.5
             devlop: 1.1.0
             estree-util-is-identifier-name: 3.0.0
             estree-walker: 3.0.3
       
      -  /estree-util-is-identifier-name@3.0.0:
      -    resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
      +  estree-util-is-identifier-name@3.0.0: {}
       
      -  /estree-util-to-js@2.0.0:
      -    resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
      +  estree-util-to-js@2.0.0:
           dependencies:
             '@types/estree-jsx': 1.0.5
             astring: 1.8.6
             source-map: 0.7.4
       
      -  /estree-util-value-to-estree@3.0.1:
      -    resolution: {integrity: sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==}
      -    engines: {node: '>=16.0.0'}
      +  estree-util-value-to-estree@3.0.1:
           dependencies:
             '@types/estree': 1.0.5
             is-plain-obj: 4.1.0
      -    dev: false
       
      -  /estree-util-visit@2.0.0:
      -    resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
      +  estree-util-visit@2.0.0:
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/unist': 3.0.2
       
      -  /estree-walker@3.0.3:
      -    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
      +  estree-walker@3.0.3:
           dependencies:
             '@types/estree': 1.0.5
       
      -  /esutils@2.0.3:
      -    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
      -    engines: {node: '>=0.10.0'}
      +  esutils@2.0.3: {}
       
      -  /eta@2.2.0:
      -    resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==}
      -    engines: {node: '>=6.0.0'}
      -    dev: false
      +  eta@2.2.0: {}
       
      -  /etag@1.8.1:
      -    resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
      -    engines: {node: '>= 0.6'}
      +  etag@1.8.1: {}
       
      -  /eval@0.1.8:
      -    resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
      -    engines: {node: '>= 0.8'}
      +  eval@0.1.8:
           dependencies:
             '@types/node': 18.18.2
             require-like: 0.1.2
      -    dev: false
       
      -  /event-target-shim@5.0.1:
      -    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
      -    engines: {node: '>=6'}
      +  event-target-shim@5.0.1: {}
       
      -  /eventemitter3@4.0.7:
      -    resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
      +  eventemitter3@4.0.7: {}
       
      -  /events@3.3.0:
      -    resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
      -    engines: {node: '>=0.8.x'}
      +  events@3.3.0: {}
       
      -  /execa@5.1.1:
      -    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
      -    engines: {node: '>=10'}
      +  execa@5.1.1:
           dependencies:
             cross-spawn: 7.0.3
             get-stream: 6.0.1
      @@ -9089,28 +15264,19 @@ packages:
             signal-exit: 3.0.7
             strip-final-newline: 2.0.0
       
      -  /exit@0.1.2:
      -    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
      -    engines: {node: '>= 0.8.0'}
      -    dev: true
      +  exit@0.1.2: {}
       
      -  /expect@29.7.0:
      -    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  expect@29.7.0:
           dependencies:
             '@jest/expect-utils': 29.7.0
             jest-get-type: 29.6.3
             jest-matcher-utils: 29.7.0
             jest-message-util: 29.7.0
             jest-util: 29.7.0
      -    dev: true
       
      -  /exponential-backoff@3.1.1:
      -    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
      +  exponential-backoff@3.1.1: {}
       
      -  /express@4.19.2:
      -    resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
      -    engines: {node: '>= 0.10.0'}
      +  express@4.19.2:
           dependencies:
             accepts: 1.3.8
             array-flatten: 1.1.1
      @@ -9146,44 +15312,29 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /extend-shallow@2.0.1:
      -    resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
      -    engines: {node: '>=0.10.0'}
      +  extend-shallow@2.0.1:
           dependencies:
             is-extendable: 0.1.1
      -    dev: false
       
      -  /extend@3.0.2:
      -    resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
      +  extend@3.0.2: {}
       
      -  /external-editor@3.1.0:
      -    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
      -    engines: {node: '>=4'}
      +  external-editor@3.1.0:
           dependencies:
             chardet: 0.7.0
             iconv-lite: 0.4.24
             tmp: 0.0.33
       
      -  /fast-check@3.15.0:
      -    resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==}
      -    engines: {node: '>=8.0.0'}
      +  fast-check@3.15.0:
           dependencies:
             pure-rand: 6.1.0
      -    dev: true
       
      -  /fast-check@3.17.0:
      -    resolution: {integrity: sha512-9A7UiBENXxMBb40qY+xOcIcGdxF5CYbXJOU4b+omh773RIFcIQRejHEjjrzIHQFLIQXWgWQu3dl6FrWR9VpYRQ==}
      -    engines: {node: '>=8.0.0'}
      +  fast-check@3.17.0:
           dependencies:
             pure-rand: 6.1.0
      -    dev: true
       
      -  /fast-deep-equal@3.1.3:
      -    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
      +  fast-deep-equal@3.1.3: {}
       
      -  /fast-glob@3.3.2:
      -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
      -    engines: {node: '>=8.6.0'}
      +  fast-glob@3.3.2:
           dependencies:
             '@nodelib/fs.stat': 2.0.5
             '@nodelib/fs.walk': 1.2.8
      @@ -9191,129 +15342,77 @@ packages:
             merge2: 1.4.1
             micromatch: 4.0.5
       
      -  /fast-json-stable-stringify@2.1.0:
      -    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
      +  fast-json-stable-stringify@2.1.0: {}
       
      -  /fast-levenshtein@2.0.6:
      -    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
      +  fast-levenshtein@2.0.6: {}
       
      -  /fast-loops@1.1.3:
      -    resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
      -    dev: false
      +  fast-loops@1.1.3: {}
       
      -  /fast-safe-stringify@2.1.1:
      -    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
      +  fast-safe-stringify@2.1.1: {}
       
      -  /fast-shallow-equal@1.0.0:
      -    resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
      -    dev: false
      +  fast-shallow-equal@1.0.0: {}
       
      -  /fast-url-parser@1.1.3:
      -    resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
      +  fast-url-parser@1.1.3:
           dependencies:
             punycode: 1.4.1
      -    dev: false
       
      -  /fast-xml-parser@4.3.6:
      -    resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==}
      -    hasBin: true
      +  fast-xml-parser@4.3.6:
           dependencies:
             strnum: 1.0.5
      -    dev: true
       
      -  /fastest-levenshtein@1.0.16:
      -    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
      -    engines: {node: '>= 4.9.1'}
      +  fastest-levenshtein@1.0.16: {}
       
      -  /fastest-stable-stringify@2.0.2:
      -    resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
      -    dev: false
      +  fastest-stable-stringify@2.0.2: {}
       
      -  /fastq@1.17.1:
      -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
      +  fastq@1.17.1:
           dependencies:
             reusify: 1.0.4
       
      -  /fault@2.0.1:
      -    resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
      +  fault@2.0.1:
           dependencies:
             format: 0.2.2
      -    dev: false
       
      -  /faye-websocket@0.11.4:
      -    resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
      -    engines: {node: '>=0.8.0'}
      +  faye-websocket@0.11.4:
           dependencies:
             websocket-driver: 0.7.4
       
      -  /fb-watchman@2.0.2:
      -    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
      +  fb-watchman@2.0.2:
           dependencies:
             bser: 2.1.1
      -    dev: true
       
      -  /fecha@4.2.3:
      -    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
      +  fecha@4.2.3: {}
       
      -  /feed@4.2.2:
      -    resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
      -    engines: {node: '>=0.4.0'}
      +  feed@4.2.2:
           dependencies:
             xml-js: 1.6.11
      -    dev: false
       
      -  /fetch-blob@2.1.2:
      -    resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==}
      -    engines: {node: ^10.17.0 || >=12.3.0}
      -    peerDependencies:
      -      domexception: '*'
      -    peerDependenciesMeta:
      -      domexception:
      -        optional: true
      -    dev: false
      +  fetch-blob@2.1.2: {}
       
      -  /figures@3.2.0:
      -    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
      -    engines: {node: '>=8'}
      +  figures@3.2.0:
           dependencies:
             escape-string-regexp: 1.0.5
       
      -  /file-entry-cache@6.0.1:
      -    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
      -    engines: {node: ^10.12.0 || >=12.0.0}
      +  file-entry-cache@6.0.1:
           dependencies:
             flat-cache: 3.2.0
       
      -  /file-loader@6.2.0(webpack@5.91.0):
      -    resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      webpack: ^4.0.0 || ^5.0.0
      +  file-loader@6.2.0(webpack@5.91.0):
           dependencies:
             loader-utils: 2.0.4
             schema-utils: 3.3.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /filelist@1.0.4:
      -    resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
      +  filelist@1.0.4:
           dependencies:
             minimatch: 5.1.6
       
      -  /filesize@8.0.7:
      -    resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
      -    engines: {node: '>= 0.4.0'}
      -    dev: false
      +  filesize@8.0.7: {}
       
      -  /fill-range@7.0.1:
      -    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
      -    engines: {node: '>=8'}
      +  fill-range@7.0.1:
           dependencies:
             to-regex-range: 5.0.1
       
      -  /finalhandler@1.2.0:
      -    resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
      -    engines: {node: '>= 0.8'}
      +  finalhandler@1.2.0:
           dependencies:
             debug: 2.6.9
             encodeurl: 1.0.2
      @@ -9325,108 +15424,63 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /find-cache-dir@4.0.0:
      -    resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==}
      -    engines: {node: '>=14.16'}
      +  find-cache-dir@4.0.0:
           dependencies:
             common-path-prefix: 3.0.0
             pkg-dir: 7.0.0
      -    dev: false
       
      -  /find-up@3.0.0:
      -    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
      -    engines: {node: '>=6'}
      +  find-up@3.0.0:
           dependencies:
             locate-path: 3.0.0
      -    dev: false
       
      -  /find-up@4.1.0:
      -    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
      -    engines: {node: '>=8'}
      +  find-up@4.1.0:
           dependencies:
             locate-path: 5.0.0
             path-exists: 4.0.0
       
      -  /find-up@5.0.0:
      -    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
      -    engines: {node: '>=10'}
      +  find-up@5.0.0:
           dependencies:
             locate-path: 6.0.0
             path-exists: 4.0.0
       
      -  /find-up@6.3.0:
      -    resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  find-up@6.3.0:
           dependencies:
             locate-path: 7.2.0
             path-exists: 5.0.0
      -    dev: false
       
      -  /find-yarn-workspace-root2@1.2.16:
      -    resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
      +  find-yarn-workspace-root2@1.2.16:
           dependencies:
             micromatch: 4.0.5
             pkg-dir: 4.2.0
       
      -  /first-chunk-stream@2.0.0:
      -    resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==}
      -    engines: {node: '>=0.10.0'}
      +  first-chunk-stream@2.0.0:
           dependencies:
             readable-stream: 2.3.8
       
      -  /flat-cache@3.2.0:
      -    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
      -    engines: {node: ^10.12.0 || >=12.0.0}
      +  flat-cache@3.2.0:
           dependencies:
             flatted: 3.3.1
             keyv: 4.5.4
             rimraf: 3.0.2
       
      -  /flat@5.0.2:
      -    resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
      -    hasBin: true
      -
      -  /flatted@3.3.1:
      -    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
      +  flat@5.0.2: {}
       
      -  /fn.name@1.1.0:
      -    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
      +  flatted@3.3.1: {}
       
      -  /follow-redirects@1.15.6:
      -    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
      -    engines: {node: '>=4.0'}
      -    peerDependencies:
      -      debug: '*'
      -    peerDependenciesMeta:
      -      debug:
      -        optional: true
      +  fn.name@1.1.0: {}
       
      -  /for-each@0.3.3:
      -    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
      -    dependencies:
      -      is-callable: 1.2.7
      -    dev: true
      +  follow-redirects@1.15.6: {}
       
      -  /foreground-child@3.1.1:
      -    resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
      -    engines: {node: '>=14'}
      +  for-each@0.3.3:
           dependencies:
      -      cross-spawn: 7.0.3
      -      signal-exit: 4.1.0
      -
      -  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
      -    engines: {node: '>=10', yarn: '>=1.0.0'}
      -    peerDependencies:
      -      eslint: '>= 6'
      -      typescript: '>= 2.7'
      -      vue-template-compiler: '*'
      -      webpack: '>= 4'
      -    peerDependenciesMeta:
      -      eslint:
      -        optional: true
      -      vue-template-compiler:
      -        optional: true
      +      is-callable: 1.2.7
      +
      +  foreground-child@3.1.1:
      +    dependencies:
      +      cross-spawn: 7.0.3
      +      signal-exit: 4.1.0
      +
      +  fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
           dependencies:
             '@babel/code-frame': 7.24.2
             '@types/json-schema': 7.0.15
      @@ -9444,102 +15498,63 @@ packages:
             tapable: 1.1.3
             typescript: 5.4.3
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /form-data-encoder@2.1.4:
      -    resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
      -    engines: {node: '>= 14.17'}
      -    dev: false
      +  form-data-encoder@2.1.4: {}
       
      -  /form-data@4.0.0:
      -    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
      -    engines: {node: '>= 6'}
      +  form-data@4.0.0:
           dependencies:
             asynckit: 0.4.0
             combined-stream: 1.0.8
             mime-types: 2.1.35
      -    dev: true
       
      -  /format@0.2.2:
      -    resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
      -    engines: {node: '>=0.4.x'}
      -    dev: false
      +  format@0.2.2: {}
       
      -  /forwarded@0.2.0:
      -    resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
      -    engines: {node: '>= 0.6'}
      +  forwarded@0.2.0: {}
       
      -  /fraction.js@4.3.7:
      -    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
      +  fraction.js@4.3.7: {}
       
      -  /fresh@0.5.2:
      -    resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
      -    engines: {node: '>= 0.6'}
      +  fresh@0.5.2: {}
       
      -  /fs-extra@11.2.0:
      -    resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
      -    engines: {node: '>=14.14'}
      +  fs-extra@11.2.0:
           dependencies:
             graceful-fs: 4.2.11
             jsonfile: 6.1.0
             universalify: 2.0.1
       
      -  /fs-extra@9.1.0:
      -    resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
      -    engines: {node: '>=10'}
      +  fs-extra@9.1.0:
           dependencies:
             at-least-node: 1.0.0
             graceful-fs: 4.2.11
             jsonfile: 6.1.0
             universalify: 2.0.1
      -    dev: false
       
      -  /fs-minipass@2.1.0:
      -    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
      -    engines: {node: '>= 8'}
      +  fs-minipass@2.1.0:
           dependencies:
             minipass: 3.3.6
       
      -  /fs-minipass@3.0.3:
      -    resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  fs-minipass@3.0.3:
           dependencies:
             minipass: 7.0.4
       
      -  /fs-monkey@1.0.5:
      -    resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
      -    dev: false
      +  fs-monkey@1.0.5: {}
       
      -  /fs.realpath@1.0.0:
      -    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
      +  fs.realpath@1.0.0: {}
       
      -  /fsevents@2.3.3:
      -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
      -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
      -    os: [darwin]
      -    requiresBuild: true
      +  fsevents@2.3.3:
           optional: true
       
      -  /function-bind@1.1.2:
      -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
      +  function-bind@1.1.2: {}
       
      -  /function.prototype.name@1.1.6:
      -    resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
      -    engines: {node: '>= 0.4'}
      +  function.prototype.name@1.1.6:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             functions-have-names: 1.2.3
      -    dev: true
       
      -  /functions-have-names@1.2.3:
      -    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
      -    dev: true
      +  functions-have-names@1.2.3: {}
       
      -  /gauge@3.0.2:
      -    resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
      -    engines: {node: '>=10'}
      +  gauge@3.0.2:
           dependencies:
             aproba: 2.0.0
             color-support: 1.1.3
      @@ -9551,9 +15566,7 @@ packages:
             strip-ansi: 6.0.1
             wide-align: 1.1.5
       
      -  /gauge@4.0.4:
      -    resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  gauge@4.0.4:
           dependencies:
             aproba: 2.0.0
             color-support: 1.1.3
      @@ -9564,22 +15577,13 @@ packages:
             strip-ansi: 6.0.1
             wide-align: 1.1.5
       
      -  /gensync@1.0.0-beta.2:
      -    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
      -    engines: {node: '>=6.9.0'}
      +  gensync@1.0.0-beta.2: {}
       
      -  /get-caller-file@2.0.5:
      -    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
      -    engines: {node: 6.* || 8.* || >= 10.*}
      -    dev: true
      +  get-caller-file@2.0.5: {}
       
      -  /get-func-name@2.0.2:
      -    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
      -    dev: true
      +  get-func-name@2.0.2: {}
       
      -  /get-intrinsic@1.2.4:
      -    resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
      -    engines: {node: '>= 0.4'}
      +  get-intrinsic@1.2.4:
           dependencies:
             es-errors: 1.3.0
             function-bind: 1.1.2
      @@ -9587,77 +15591,48 @@ packages:
             has-symbols: 1.0.3
             hasown: 2.0.2
       
      -  /get-npm-tarball-url@2.1.0:
      -    resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==}
      -    engines: {node: '>=12.17'}
      -    dev: false
      +  get-npm-tarball-url@2.1.0: {}
       
      -  /get-own-enumerable-property-symbols@3.0.2:
      -    resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
      -    dev: false
      +  get-own-enumerable-property-symbols@3.0.2: {}
       
      -  /get-package-type@0.1.0:
      -    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
      -    engines: {node: '>=8.0.0'}
      -    dev: true
      +  get-package-type@0.1.0: {}
       
      -  /get-source@2.0.12:
      -    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
      +  get-source@2.0.12:
           dependencies:
             data-uri-to-buffer: 2.0.2
             source-map: 0.6.1
      -    dev: true
       
      -  /get-stream@6.0.1:
      -    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
      -    engines: {node: '>=10'}
      +  get-stream@6.0.1: {}
       
      -  /get-symbol-description@1.0.2:
      -    resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
      -    engines: {node: '>= 0.4'}
      +  get-symbol-description@1.0.2:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             get-intrinsic: 1.2.4
      -    dev: true
       
      -  /get-tsconfig@4.7.3:
      -    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
      +  get-tsconfig@4.7.3:
           dependencies:
             resolve-pkg-maps: 1.0.0
      -    dev: true
       
      -  /github-slugger@1.5.0:
      -    resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
      -    dev: false
      +  github-slugger@1.5.0: {}
       
      -  /github-username@6.0.0:
      -    resolution: {integrity: sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==}
      -    engines: {node: '>=10'}
      +  github-username@6.0.0:
           dependencies:
             '@octokit/rest': 18.12.0
           transitivePeerDependencies:
             - encoding
       
      -  /glob-parent@5.1.2:
      -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
      -    engines: {node: '>= 6'}
      +  glob-parent@5.1.2:
           dependencies:
             is-glob: 4.0.3
       
      -  /glob-parent@6.0.2:
      -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
      -    engines: {node: '>=10.13.0'}
      +  glob-parent@6.0.2:
           dependencies:
             is-glob: 4.0.3
       
      -  /glob-to-regexp@0.4.1:
      -    resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
      +  glob-to-regexp@0.4.1: {}
       
      -  /glob@10.3.10:
      -    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -    hasBin: true
      +  glob@10.3.10:
           dependencies:
             foreground-child: 3.1.1
             jackspeak: 2.3.6
      @@ -9665,8 +15640,7 @@ packages:
             minipass: 7.0.4
             path-scurry: 1.10.1
       
      -  /glob@7.2.3:
      -    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
      +  glob@7.2.3:
           dependencies:
             fs.realpath: 1.0.0
             inflight: 1.0.6
      @@ -9675,9 +15649,7 @@ packages:
             once: 1.4.0
             path-is-absolute: 1.0.1
       
      -  /glob@8.1.0:
      -    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
      -    engines: {node: '>=12'}
      +  glob@8.1.0:
           dependencies:
             fs.realpath: 1.0.0
             inflight: 1.0.6
      @@ -9685,49 +15657,31 @@ packages:
             minimatch: 5.1.6
             once: 1.4.0
       
      -  /global-dirs@3.0.1:
      -    resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
      -    engines: {node: '>=10'}
      +  global-dirs@3.0.1:
           dependencies:
             ini: 2.0.0
      -    dev: false
       
      -  /global-modules@2.0.0:
      -    resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
      -    engines: {node: '>=6'}
      +  global-modules@2.0.0:
           dependencies:
             global-prefix: 3.0.0
      -    dev: false
       
      -  /global-prefix@3.0.0:
      -    resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
      -    engines: {node: '>=6'}
      +  global-prefix@3.0.0:
           dependencies:
             ini: 1.3.8
             kind-of: 6.0.3
             which: 1.3.1
      -    dev: false
       
      -  /globals@11.12.0:
      -    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
      -    engines: {node: '>=4'}
      +  globals@11.12.0: {}
       
      -  /globals@13.24.0:
      -    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
      -    engines: {node: '>=8'}
      +  globals@13.24.0:
           dependencies:
             type-fest: 0.20.2
       
      -  /globalthis@1.0.3:
      -    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
      -    engines: {node: '>= 0.4'}
      +  globalthis@1.0.3:
           dependencies:
             define-properties: 1.2.1
      -    dev: true
       
      -  /globby@11.1.0:
      -    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
      -    engines: {node: '>=10'}
      +  globby@11.1.0:
           dependencies:
             array-union: 2.1.0
             dir-glob: 3.0.1
      @@ -9736,25 +15690,19 @@ packages:
             merge2: 1.4.1
             slash: 3.0.0
       
      -  /globby@13.2.2:
      -    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  globby@13.2.2:
           dependencies:
             dir-glob: 3.0.1
             fast-glob: 3.3.2
             ignore: 5.3.1
             merge2: 1.4.1
             slash: 4.0.0
      -    dev: false
       
      -  /gopd@1.0.1:
      -    resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
      +  gopd@1.0.1:
           dependencies:
             get-intrinsic: 1.2.4
       
      -  /got@12.6.1:
      -    resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
      -    engines: {node: '>=14.16'}
      +  got@12.6.1:
           dependencies:
             '@sindresorhus/is': 5.6.0
             '@szmarczak/http-timer': 5.0.1
      @@ -9767,108 +15715,66 @@ packages:
             lowercase-keys: 3.0.0
             p-cancelable: 3.0.0
             responselike: 3.0.0
      -    dev: false
       
      -  /graceful-fs@4.2.10:
      -    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
      +  graceful-fs@4.2.10: {}
       
      -  /graceful-fs@4.2.11:
      -    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
      +  graceful-fs@4.2.11: {}
       
      -  /graceful-git@3.1.2:
      -    resolution: {integrity: sha512-Xyh9Y43yA23/KQ16mpwO4zkzVGUAXyzuSVZQxw9ddQklssIYIY0el24VYfJBFhyCWGriZPRAB2nCgsDizqna9g==}
      -    engines: {node: '>=10'}
      +  graceful-git@3.1.2:
           dependencies:
             retry: 0.12.0
             safe-execa: 0.1.2
      -    dev: false
       
      -  /graphemer@1.4.0:
      -    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
      +  graphemer@1.4.0: {}
       
      -  /gray-matter@4.0.3:
      -    resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
      -    engines: {node: '>=6.0'}
      +  gray-matter@4.0.3:
           dependencies:
             js-yaml: 3.14.1
             kind-of: 6.0.3
             section-matter: 1.0.0
             strip-bom-string: 1.0.0
      -    dev: false
       
      -  /grouped-queue@2.0.0:
      -    resolution: {integrity: sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==}
      -    engines: {node: '>=8.0.0'}
      +  grouped-queue@2.0.0: {}
       
      -  /gzip-size@6.0.0:
      -    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
      -    engines: {node: '>=10'}
      +  gzip-size@6.0.0:
           dependencies:
             duplexer: 0.1.2
      -    dev: false
       
      -  /handle-thing@2.0.1:
      -    resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
      +  handle-thing@2.0.1: {}
       
      -  /hard-rejection@2.1.0:
      -    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  hard-rejection@2.1.0: {}
       
      -  /has-bigints@1.0.2:
      -    resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
      -    dev: true
      +  has-bigints@1.0.2: {}
       
      -  /has-flag@3.0.0:
      -    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
      -    engines: {node: '>=4'}
      +  has-flag@3.0.0: {}
       
      -  /has-flag@4.0.0:
      -    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
      -    engines: {node: '>=8'}
      +  has-flag@4.0.0: {}
       
      -  /has-property-descriptors@1.0.2:
      -    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
      +  has-property-descriptors@1.0.2:
           dependencies:
             es-define-property: 1.0.0
       
      -  /has-proto@1.0.3:
      -    resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
      -    engines: {node: '>= 0.4'}
      +  has-proto@1.0.3: {}
       
      -  /has-symbols@1.0.3:
      -    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
      -    engines: {node: '>= 0.4'}
      +  has-symbols@1.0.3: {}
       
      -  /has-tostringtag@1.0.2:
      -    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
      -    engines: {node: '>= 0.4'}
      +  has-tostringtag@1.0.2:
           dependencies:
             has-symbols: 1.0.3
      -    dev: true
       
      -  /has-unicode@2.0.1:
      -    resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
      +  has-unicode@2.0.1: {}
       
      -  /has-yarn@3.0.0:
      -    resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: false
      +  has-yarn@3.0.0: {}
       
      -  /hasharray@1.1.2:
      -    resolution: {integrity: sha512-7w3idwaVXX9gL9LiTCBSNKRGTBcp2WI/kf13UYeZ9+trOGBHVYHei6qtMY6DVnwGOouVUSRg0+L2xf4Q2/CmzA==}
      +  hasharray@1.1.2:
           dependencies:
             jclass: 1.2.1
      -    dev: false
       
      -  /hasown@2.0.2:
      -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
      -    engines: {node: '>= 0.4'}
      +  hasown@2.0.2:
           dependencies:
             function-bind: 1.1.2
       
      -  /hast-util-from-parse5@8.0.1:
      -    resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
      +  hast-util-from-parse5@8.0.1:
           dependencies:
             '@types/hast': 3.0.4
             '@types/unist': 3.0.2
      @@ -9878,16 +15784,12 @@ packages:
             vfile: 6.0.1
             vfile-location: 5.0.2
             web-namespaces: 2.0.1
      -    dev: false
       
      -  /hast-util-parse-selector@4.0.0:
      -    resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
      +  hast-util-parse-selector@4.0.0:
           dependencies:
             '@types/hast': 3.0.4
      -    dev: false
       
      -  /hast-util-raw@9.0.2:
      -    resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==}
      +  hast-util-raw@9.0.2:
           dependencies:
             '@types/hast': 3.0.4
             '@types/unist': 3.0.2
      @@ -9902,10 +15804,8 @@ packages:
             vfile: 6.0.1
             web-namespaces: 2.0.1
             zwitch: 2.0.4
      -    dev: false
       
      -  /hast-util-to-estree@3.1.0:
      -    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
      +  hast-util-to-estree@3.1.0:
           dependencies:
             '@types/estree': 1.0.5
             '@types/estree-jsx': 1.0.5
      @@ -9926,8 +15826,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /hast-util-to-jsx-runtime@2.3.0:
      -    resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
      +  hast-util-to-jsx-runtime@2.3.0:
           dependencies:
             '@types/estree': 1.0.5
             '@types/hast': 3.0.4
      @@ -9947,8 +15846,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /hast-util-to-parse5@8.0.0:
      -    resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
      +  hast-util-to-parse5@8.0.0:
           dependencies:
             '@types/hast': 3.0.4
             comma-separated-tokens: 2.0.3
      @@ -9957,29 +15855,22 @@ packages:
             space-separated-tokens: 2.0.2
             web-namespaces: 2.0.1
             zwitch: 2.0.4
      -    dev: false
       
      -  /hast-util-whitespace@3.0.0:
      -    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
      +  hast-util-whitespace@3.0.0:
           dependencies:
             '@types/hast': 3.0.4
       
      -  /hastscript@8.0.0:
      -    resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
      +  hastscript@8.0.0:
           dependencies:
             '@types/hast': 3.0.4
             comma-separated-tokens: 2.0.3
             hast-util-parse-selector: 4.0.0
             property-information: 6.4.1
             space-separated-tokens: 2.0.2
      -    dev: false
       
      -  /he@1.2.0:
      -    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
      -    hasBin: true
      +  he@1.2.0: {}
       
      -  /history@4.10.1:
      -    resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
      +  history@4.10.1:
           dependencies:
             '@babel/runtime': 7.24.1
             loose-envify: 1.4.0
      @@ -9987,61 +15878,41 @@ packages:
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
             value-equal: 1.0.1
      -    dev: false
       
      -  /hoist-non-react-statics@3.3.2:
      -    resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
      +  hoist-non-react-statics@3.3.2:
           dependencies:
             react-is: 16.13.1
      -    dev: false
       
      -  /hosted-git-info@2.8.9:
      -    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
      +  hosted-git-info@2.8.9: {}
       
      -  /hosted-git-info@4.1.0:
      -    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
      -    engines: {node: '>=10'}
      +  hosted-git-info@4.1.0:
           dependencies:
             lru-cache: 6.0.0
       
      -  /hosted-git-info@6.1.1:
      -    resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  hosted-git-info@6.1.1:
           dependencies:
             lru-cache: 7.18.3
       
      -  /hosted-git-info@7.0.1:
      -    resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
      -    engines: {node: ^16.14.0 || >=18.0.0}
      +  hosted-git-info@7.0.1:
           dependencies:
             lru-cache: 10.2.0
      -    dev: true
       
      -  /hpack.js@2.1.6:
      -    resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
      +  hpack.js@2.1.6:
           dependencies:
             inherits: 2.0.4
             obuf: 1.1.2
             readable-stream: 2.3.8
             wbuf: 1.7.3
       
      -  /html-encoding-sniffer@3.0.0:
      -    resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
      -    engines: {node: '>=12'}
      +  html-encoding-sniffer@3.0.0:
           dependencies:
             whatwg-encoding: 2.0.0
      -    dev: true
       
      -  /html-entities@2.5.2:
      -    resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
      +  html-entities@2.5.2: {}
       
      -  /html-escaper@2.0.2:
      -    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
      +  html-escaper@2.0.2: {}
       
      -  /html-minifier-terser@6.1.0:
      -    resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      +  html-minifier-terser@6.1.0:
           dependencies:
             camel-case: 4.1.2
             clean-css: 5.3.3
      @@ -10051,10 +15922,7 @@ packages:
             relateurl: 0.2.7
             terser: 5.29.2
       
      -  /html-minifier-terser@7.2.0:
      -    resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
      -    engines: {node: ^14.13.1 || >=16.0.0}
      -    hasBin: true
      +  html-minifier-terser@7.2.0:
           dependencies:
             camel-case: 4.1.2
             clean-css: 5.3.3
      @@ -10063,28 +15931,12 @@ packages:
             param-case: 3.0.4
             relateurl: 0.2.7
             terser: 5.29.2
      -    dev: false
       
      -  /html-tags@3.3.1:
      -    resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
      -    engines: {node: '>=8'}
      -    dev: false
      +  html-tags@3.3.1: {}
       
      -  /html-void-elements@3.0.0:
      -    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
      -    dev: false
      +  html-void-elements@3.0.0: {}
       
      -  /html-webpack-plugin@5.6.0(webpack@5.91.0):
      -    resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      webpack: ^5.20.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      +  html-webpack-plugin@5.6.0(webpack@5.91.0):
           dependencies:
             '@types/html-minifier-terser': 6.1.0
             html-minifier-terser: 6.1.0
      @@ -10093,41 +15945,32 @@ packages:
             tapable: 2.2.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  /htmlparser2@6.1.0:
      -    resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
      +  htmlparser2@6.1.0:
           dependencies:
             domelementtype: 2.3.0
             domhandler: 4.3.1
             domutils: 2.8.0
             entities: 2.2.0
       
      -  /htmlparser2@8.0.2:
      -    resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
      +  htmlparser2@8.0.2:
           dependencies:
             domelementtype: 2.3.0
             domhandler: 5.0.3
             domutils: 3.1.0
             entities: 4.5.0
      -    dev: false
       
      -  /http-cache-semantics@4.1.1:
      -    resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
      +  http-cache-semantics@4.1.1: {}
       
      -  /http-deceiver@1.2.7:
      -    resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
      +  http-deceiver@1.2.7: {}
       
      -  /http-errors@1.6.3:
      -    resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
      -    engines: {node: '>= 0.6'}
      +  http-errors@1.6.3:
           dependencies:
             depd: 1.1.2
             inherits: 2.0.3
             setprototypeof: 1.1.0
             statuses: 1.5.0
       
      -  /http-errors@2.0.0:
      -    resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
      -    engines: {node: '>= 0.8'}
      +  http-errors@2.0.0:
           dependencies:
             depd: 2.0.0
             inherits: 2.0.4
      @@ -10135,12 +15978,9 @@ packages:
             statuses: 2.0.1
             toidentifier: 1.0.1
       
      -  /http-parser-js@0.5.8:
      -    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
      +  http-parser-js@0.5.8: {}
       
      -  /http-proxy-agent@4.0.1:
      -    resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
      -    engines: {node: '>= 6'}
      +  http-proxy-agent@4.0.1:
           dependencies:
             '@tootallnate/once': 1.1.2
             agent-base: 6.0.2
      @@ -10148,9 +15988,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /http-proxy-agent@5.0.0:
      -    resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
      -    engines: {node: '>= 6'}
      +  http-proxy-agent@5.0.0:
           dependencies:
             '@tootallnate/once': 2.0.0
             agent-base: 6.0.2
      @@ -10158,14 +15996,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /http-proxy-middleware@2.0.6(@types/express@4.17.21):
      -    resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
      -    engines: {node: '>=12.0.0'}
      -    peerDependencies:
      -      '@types/express': ^4.17.13
      -    peerDependenciesMeta:
      -      '@types/express':
      -        optional: true
      +  http-proxy-middleware@2.0.6(@types/express@4.17.21):
           dependencies:
             '@types/express': 4.17.21
             '@types/http-proxy': 1.17.14
      @@ -10176,9 +16007,7 @@ packages:
           transitivePeerDependencies:
             - debug
       
      -  /http-proxy@1.18.1:
      -    resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
      -    engines: {node: '>=8.0.0'}
      +  http-proxy@1.18.1:
           dependencies:
             eventemitter3: 4.0.7
             follow-redirects: 1.15.6
      @@ -10186,10 +16015,7 @@ packages:
           transitivePeerDependencies:
             - debug
       
      -  /http-server@14.1.1:
      -    resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
      -    engines: {node: '>=12'}
      -    hasBin: true
      +  http-server@14.1.1:
           dependencies:
             basic-auth: 2.0.1
             chalk: 4.1.2
      @@ -10207,187 +16033,112 @@ packages:
           transitivePeerDependencies:
             - debug
             - supports-color
      -    dev: true
       
      -  /http2-wrapper@2.2.1:
      -    resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
      -    engines: {node: '>=10.19.0'}
      +  http2-wrapper@2.2.1:
           dependencies:
             quick-lru: 5.1.1
             resolve-alpn: 1.2.1
      -    dev: false
       
      -  /https-proxy-agent@5.0.1:
      -    resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
      -    engines: {node: '>= 6'}
      +  https-proxy-agent@5.0.1:
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
           transitivePeerDependencies:
             - supports-color
       
      -  /human-signals@2.1.0:
      -    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
      -    engines: {node: '>=10.17.0'}
      +  human-signals@2.1.0: {}
       
      -  /humanize-ms@1.2.1:
      -    resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
      +  humanize-ms@1.2.1:
           dependencies:
             ms: 2.1.3
       
      -  /hyphenate-style-name@1.0.4:
      -    resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
      -    dev: false
      +  hyphenate-style-name@1.0.4: {}
       
      -  /iconv-lite@0.4.24:
      -    resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
      -    engines: {node: '>=0.10.0'}
      +  iconv-lite@0.4.24:
           dependencies:
             safer-buffer: 2.1.2
       
      -  /iconv-lite@0.6.3:
      -    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
      -    engines: {node: '>=0.10.0'}
      -    requiresBuild: true
      +  iconv-lite@0.6.3:
           dependencies:
             safer-buffer: 2.1.2
       
      -  /icss-utils@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  icss-utils@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
       
      -  /ieee754@1.2.1:
      -    resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
      +  ieee754@1.2.1: {}
       
      -  /ignore-walk@4.0.1:
      -    resolution: {integrity: sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==}
      -    engines: {node: '>=10'}
      +  ignore-walk@4.0.1:
           dependencies:
             minimatch: 3.1.2
       
      -  /ignore-walk@6.0.4:
      -    resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  ignore-walk@6.0.4:
           dependencies:
             minimatch: 9.0.3
       
      -  /ignore@5.3.1:
      -    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
      -    engines: {node: '>= 4'}
      +  ignore@5.3.1: {}
       
      -  /image-size@1.1.1:
      -    resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
      -    engines: {node: '>=16.x'}
      -    hasBin: true
      +  image-size@1.1.1:
           dependencies:
             queue: 6.0.2
      -    dev: false
       
      -  /immediate@3.0.6:
      -    resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
      -    dev: true
      +  immediate@3.0.6: {}
       
      -  /immer@10.0.4:
      -    resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==}
      -    dev: false
      +  immer@10.0.4: {}
       
      -  /immer@9.0.21:
      -    resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
      -    dev: false
      +  immer@9.0.21: {}
       
      -  /immutability-helper@3.1.1:
      -    resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==}
      -    dev: false
      +  immutability-helper@3.1.1: {}
       
      -  /import-fresh@3.3.0:
      -    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
      -    engines: {node: '>=6'}
      +  import-fresh@3.3.0:
           dependencies:
             parent-module: 1.0.1
             resolve-from: 4.0.0
       
      -  /import-lazy@4.0.0:
      -    resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
      -    engines: {node: '>=8'}
      -    dev: false
      +  import-lazy@4.0.0: {}
       
      -  /import-local@3.1.0:
      -    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
      -    engines: {node: '>=8'}
      -    hasBin: true
      +  import-local@3.1.0:
           dependencies:
             pkg-dir: 4.2.0
             resolve-cwd: 3.0.0
       
      -  /imurmurhash@0.1.4:
      -    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
      -    engines: {node: '>=0.8.19'}
      +  imurmurhash@0.1.4: {}
       
      -  /indent-string@4.0.0:
      -    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
      -    engines: {node: '>=8'}
      +  indent-string@4.0.0: {}
       
      -  /indent-string@5.0.0:
      -    resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  indent-string@5.0.0: {}
       
      -  /individual@3.0.0:
      -    resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==}
      +  individual@3.0.0: {}
       
      -  /infer-owner@1.0.4:
      -    resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
      +  infer-owner@1.0.4: {}
       
      -  /infima@0.2.0-alpha.43:
      -    resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  infima@0.2.0-alpha.43: {}
       
      -  /inflight@1.0.6:
      -    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
      +  inflight@1.0.6:
           dependencies:
             once: 1.4.0
             wrappy: 1.0.2
       
      -  /inherits@2.0.3:
      -    resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
      +  inherits@2.0.3: {}
       
      -  /inherits@2.0.4:
      -    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
      +  inherits@2.0.4: {}
       
      -  /ini@1.3.8:
      -    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
      +  ini@1.3.8: {}
       
      -  /ini@2.0.0:
      -    resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  ini@2.0.0: {}
       
      -  /ini@3.0.1:
      -    resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -    dev: true
      +  ini@3.0.1: {}
       
      -  /inline-style-parser@0.1.1:
      -    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
      +  inline-style-parser@0.1.1: {}
       
      -  /inline-style-parser@0.2.2:
      -    resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==}
      +  inline-style-parser@0.2.2: {}
       
      -  /inline-style-prefixer@7.0.0:
      -    resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
      +  inline-style-prefixer@7.0.0:
           dependencies:
             css-in-js-utils: 3.1.0
             fast-loops: 1.1.3
      -    dev: false
       
      -  /inquirer@8.2.6:
      -    resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
      -    engines: {node: '>=12.0.0'}
      +  inquirer@8.2.6:
           dependencies:
             ansi-escapes: 4.3.2
             chalk: 4.1.2
      @@ -10405,454 +16156,255 @@ packages:
             through: 2.3.8
             wrap-ansi: 6.2.0
       
      -  /internal-slot@1.0.7:
      -    resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
      -    engines: {node: '>= 0.4'}
      +  internal-slot@1.0.7:
           dependencies:
             es-errors: 1.3.0
             hasown: 2.0.2
             side-channel: 1.0.6
      -    dev: true
      -
      -  /interpret@1.4.0:
      -    resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
      -    engines: {node: '>= 0.10'}
       
      -  /interpret@3.1.1:
      -    resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
      -    engines: {node: '>=10.13.0'}
      +  interpret@1.4.0: {}
       
      -  /invariant@2.2.4:
      -    resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
      +  interpret@3.1.1: {}
      +
      +  invariant@2.2.4:
           dependencies:
             loose-envify: 1.4.0
       
      -  /ip-address@9.0.5:
      -    resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
      -    engines: {node: '>= 12'}
      +  ip-address@9.0.5:
           dependencies:
             jsbn: 1.1.0
             sprintf-js: 1.1.3
       
      -  /ipaddr.js@1.9.1:
      -    resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
      -    engines: {node: '>= 0.10'}
      +  ipaddr.js@1.9.1: {}
       
      -  /ipaddr.js@2.1.0:
      -    resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
      -    engines: {node: '>= 10'}
      +  ipaddr.js@2.1.0: {}
       
      -  /is-alphabetical@2.0.1:
      -    resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
      +  is-alphabetical@2.0.1: {}
       
      -  /is-alphanumerical@2.0.1:
      -    resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
      +  is-alphanumerical@2.0.1:
           dependencies:
             is-alphabetical: 2.0.1
             is-decimal: 2.0.1
       
      -  /is-arguments@1.1.1:
      -    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
      -    engines: {node: '>= 0.4'}
      +  is-arguments@1.1.1:
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-array-buffer@3.0.4:
      -    resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
      -    engines: {node: '>= 0.4'}
      +  is-array-buffer@3.0.4:
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      -    dev: true
       
      -  /is-arrayish@0.2.1:
      -    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
      +  is-arrayish@0.2.1: {}
       
      -  /is-arrayish@0.3.2:
      -    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
      +  is-arrayish@0.3.2: {}
       
      -  /is-async-function@2.0.0:
      -    resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
      -    engines: {node: '>= 0.4'}
      +  is-async-function@2.0.0:
           dependencies:
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-bigint@1.0.4:
      -    resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
      +  is-bigint@1.0.4:
           dependencies:
             has-bigints: 1.0.2
      -    dev: true
       
      -  /is-binary-path@2.1.0:
      -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
      -    engines: {node: '>=8'}
      +  is-binary-path@2.1.0:
           dependencies:
             binary-extensions: 2.3.0
       
      -  /is-boolean-object@1.1.2:
      -    resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
      -    engines: {node: '>= 0.4'}
      +  is-boolean-object@1.1.2:
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-builtin-module@3.2.1:
      -    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
      -    engines: {node: '>=6'}
      +  is-builtin-module@3.2.1:
           dependencies:
             builtin-modules: 3.3.0
      -    dev: true
       
      -  /is-callable@1.2.7:
      -    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  is-callable@1.2.7: {}
       
      -  /is-ci@3.0.1:
      -    resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
      -    hasBin: true
      +  is-ci@3.0.1:
           dependencies:
             ci-info: 3.9.0
      -    dev: false
       
      -  /is-core-module@2.13.1:
      -    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
      +  is-core-module@2.13.1:
           dependencies:
             hasown: 2.0.2
       
      -  /is-data-view@1.0.1:
      -    resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
      -    engines: {node: '>= 0.4'}
      +  is-data-view@1.0.1:
           dependencies:
             is-typed-array: 1.1.13
      -    dev: true
       
      -  /is-date-object@1.0.5:
      -    resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
      -    engines: {node: '>= 0.4'}
      +  is-date-object@1.0.5:
           dependencies:
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-decimal@2.0.1:
      -    resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
      +  is-decimal@2.0.1: {}
       
      -  /is-docker@2.2.1:
      -    resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
      -    engines: {node: '>=8'}
      -    hasBin: true
      -    dev: false
      +  is-docker@2.2.1: {}
       
      -  /is-docker@3.0.0:
      -    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    hasBin: true
      +  is-docker@3.0.0: {}
       
      -  /is-extendable@0.1.1:
      -    resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  is-extendable@0.1.1: {}
       
      -  /is-extglob@2.1.1:
      -    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
      -    engines: {node: '>=0.10.0'}
      +  is-extglob@2.1.1: {}
       
      -  /is-finalizationregistry@1.0.2:
      -    resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
      +  is-finalizationregistry@1.0.2:
           dependencies:
             call-bind: 1.0.7
      -    dev: true
       
      -  /is-fullwidth-code-point@3.0.0:
      -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
      -    engines: {node: '>=8'}
      +  is-fullwidth-code-point@3.0.0: {}
       
      -  /is-generator-fn@2.1.0:
      -    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  is-generator-fn@2.1.0: {}
       
      -  /is-generator-function@1.0.10:
      -    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
      -    engines: {node: '>= 0.4'}
      +  is-generator-function@1.0.10:
           dependencies:
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-glob@4.0.3:
      -    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
      -    engines: {node: '>=0.10.0'}
      +  is-glob@4.0.3:
           dependencies:
             is-extglob: 2.1.1
       
      -  /is-hexadecimal@2.0.1:
      -    resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
      +  is-hexadecimal@2.0.1: {}
       
      -  /is-inside-container@1.0.0:
      -    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
      -    engines: {node: '>=14.16'}
      -    hasBin: true
      +  is-inside-container@1.0.0:
           dependencies:
             is-docker: 3.0.0
       
      -  /is-installed-globally@0.4.0:
      -    resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
      -    engines: {node: '>=10'}
      +  is-installed-globally@0.4.0:
           dependencies:
             global-dirs: 3.0.1
             is-path-inside: 3.0.3
      -    dev: false
       
      -  /is-interactive@1.0.0:
      -    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
      -    engines: {node: '>=8'}
      +  is-interactive@1.0.0: {}
       
      -  /is-lambda@1.0.1:
      -    resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
      +  is-lambda@1.0.1: {}
       
      -  /is-map@2.0.3:
      -    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  is-map@2.0.3: {}
       
      -  /is-negative-zero@2.0.3:
      -    resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  is-negative-zero@2.0.3: {}
       
      -  /is-network-error@1.1.0:
      -    resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==}
      -    engines: {node: '>=16'}
      +  is-network-error@1.1.0: {}
       
      -  /is-npm@6.0.0:
      -    resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: false
      +  is-npm@6.0.0: {}
       
      -  /is-number-object@1.0.7:
      -    resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
      -    engines: {node: '>= 0.4'}
      +  is-number-object@1.0.7:
           dependencies:
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-number@7.0.0:
      -    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
      -    engines: {node: '>=0.12.0'}
      +  is-number@7.0.0: {}
       
      -  /is-obj@1.0.1:
      -    resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  is-obj@1.0.1: {}
       
      -  /is-obj@2.0.0:
      -    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
      -    engines: {node: '>=8'}
      -    dev: false
      +  is-obj@2.0.0: {}
       
      -  /is-path-cwd@2.2.0:
      -    resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  is-path-cwd@2.2.0: {}
       
      -  /is-path-inside@3.0.3:
      -    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
      -    engines: {node: '>=8'}
      +  is-path-inside@3.0.3: {}
       
      -  /is-plain-obj@1.1.0:
      -    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  is-plain-obj@1.1.0: {}
       
      -  /is-plain-obj@2.1.0:
      -    resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
      -    engines: {node: '>=8'}
      +  is-plain-obj@2.1.0: {}
       
      -  /is-plain-obj@3.0.0:
      -    resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
      -    engines: {node: '>=10'}
      +  is-plain-obj@3.0.0: {}
       
      -  /is-plain-obj@4.1.0:
      -    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
      -    engines: {node: '>=12'}
      +  is-plain-obj@4.1.0: {}
       
      -  /is-plain-object@2.0.4:
      -    resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
      -    engines: {node: '>=0.10.0'}
      +  is-plain-object@2.0.4:
           dependencies:
             isobject: 3.0.1
       
      -  /is-plain-object@5.0.0:
      -    resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
      -    engines: {node: '>=0.10.0'}
      +  is-plain-object@5.0.0: {}
       
      -  /is-potential-custom-element-name@1.0.1:
      -    resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
      -    dev: true
      +  is-potential-custom-element-name@1.0.1: {}
       
      -  /is-reference@3.0.2:
      -    resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
      +  is-reference@3.0.2:
           dependencies:
             '@types/estree': 1.0.5
       
      -  /is-regex@1.1.4:
      -    resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
      -    engines: {node: '>= 0.4'}
      +  is-regex@1.1.4:
           dependencies:
             call-bind: 1.0.7
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-regexp@1.0.0:
      -    resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  is-regexp@1.0.0: {}
       
      -  /is-root@2.1.0:
      -    resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  is-root@2.1.0: {}
       
      -  /is-scoped@2.1.0:
      -    resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
      -    engines: {node: '>=8'}
      +  is-scoped@2.1.0:
           dependencies:
             scoped-regex: 2.1.0
       
      -  /is-set@2.0.3:
      -    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  is-set@2.0.3: {}
       
      -  /is-shared-array-buffer@1.0.3:
      -    resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
      -    engines: {node: '>= 0.4'}
      +  is-shared-array-buffer@1.0.3:
           dependencies:
             call-bind: 1.0.7
      -    dev: true
       
      -  /is-stream@2.0.1:
      -    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
      -    engines: {node: '>=8'}
      +  is-stream@2.0.1: {}
       
      -  /is-string@1.0.7:
      -    resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
      -    engines: {node: '>= 0.4'}
      +  is-string@1.0.7:
           dependencies:
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /is-subdir@1.2.0:
      -    resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
      -    engines: {node: '>=4'}
      +  is-subdir@1.2.0:
           dependencies:
             better-path-resolve: 1.0.0
      -    dev: true
       
      -  /is-symbol@1.0.4:
      -    resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
      -    engines: {node: '>= 0.4'}
      +  is-symbol@1.0.4:
           dependencies:
             has-symbols: 1.0.3
      -    dev: true
       
      -  /is-typed-array@1.1.13:
      -    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
      -    engines: {node: '>= 0.4'}
      +  is-typed-array@1.1.13:
           dependencies:
             which-typed-array: 1.1.15
      -    dev: true
       
      -  /is-typedarray@1.0.0:
      -    resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
      +  is-typedarray@1.0.0: {}
       
      -  /is-unicode-supported@0.1.0:
      -    resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
      -    engines: {node: '>=10'}
      +  is-unicode-supported@0.1.0: {}
       
      -  /is-utf8@0.2.1:
      -    resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
      +  is-utf8@0.2.1: {}
       
      -  /is-weakmap@2.0.2:
      -    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  is-weakmap@2.0.2: {}
       
      -  /is-weakref@1.0.2:
      -    resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
      +  is-weakref@1.0.2:
           dependencies:
             call-bind: 1.0.7
      -    dev: true
       
      -  /is-weakset@2.0.3:
      -    resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
      -    engines: {node: '>= 0.4'}
      +  is-weakset@2.0.3:
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
      -    dev: true
       
      -  /is-windows@1.0.2:
      -    resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  is-windows@1.0.2: {}
       
      -  /is-wsl@2.2.0:
      -    resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
      -    engines: {node: '>=8'}
      +  is-wsl@2.2.0:
           dependencies:
             is-docker: 2.2.1
      -    dev: false
       
      -  /is-wsl@3.1.0:
      -    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
      -    engines: {node: '>=16'}
      +  is-wsl@3.1.0:
           dependencies:
             is-inside-container: 1.0.0
       
      -  /is-yarn-global@0.4.1:
      -    resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  is-yarn-global@0.4.1: {}
       
      -  /isarray@0.0.1:
      -    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
      -    dev: false
      +  isarray@0.0.1: {}
       
      -  /isarray@1.0.0:
      -    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
      +  isarray@1.0.0: {}
       
      -  /isarray@2.0.5:
      -    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
      -    dev: true
      +  isarray@2.0.5: {}
       
      -  /isbinaryfile@4.0.10:
      -    resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
      -    engines: {node: '>= 8.0.0'}
      +  isbinaryfile@4.0.10: {}
       
      -  /isbinaryfile@5.0.2:
      -    resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
      -    engines: {node: '>= 18.0.0'}
      +  isbinaryfile@5.0.2: {}
       
      -  /isexe@2.0.0:
      -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
      +  isexe@2.0.0: {}
       
      -  /isobject@3.0.1:
      -    resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
      -    engines: {node: '>=0.10.0'}
      +  isobject@3.0.1: {}
       
      -  /istanbul-lib-coverage@3.2.2:
      -    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  istanbul-lib-coverage@3.2.2: {}
       
      -  /istanbul-lib-instrument@5.2.1:
      -    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
      -    engines: {node: '>=8'}
      +  istanbul-lib-instrument@5.2.1:
           dependencies:
             '@babel/core': 7.24.3
             '@babel/parser': 7.24.1
      @@ -10861,11 +16413,8 @@ packages:
             semver: 6.3.1
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /istanbul-lib-instrument@6.0.2:
      -    resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
      -    engines: {node: '>=10'}
      +  istanbul-lib-instrument@6.0.2:
           dependencies:
             '@babel/core': 7.24.3
             '@babel/parser': 7.24.1
      @@ -10874,85 +16423,58 @@ packages:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /istanbul-lib-report@3.0.1:
      -    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
      -    engines: {node: '>=10'}
      +  istanbul-lib-report@3.0.1:
           dependencies:
             istanbul-lib-coverage: 3.2.2
             make-dir: 4.0.0
             supports-color: 7.2.0
      -    dev: true
       
      -  /istanbul-lib-source-maps@4.0.1:
      -    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
      -    engines: {node: '>=10'}
      +  istanbul-lib-source-maps@4.0.1:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             istanbul-lib-coverage: 3.2.2
             source-map: 0.6.1
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /istanbul-reports@3.1.7:
      -    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
      -    engines: {node: '>=8'}
      +  istanbul-reports@3.1.7:
           dependencies:
             html-escaper: 2.0.2
             istanbul-lib-report: 3.0.1
      -    dev: true
       
      -  /iterator.prototype@1.1.2:
      -    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
      +  iterator.prototype@1.1.2:
           dependencies:
             define-properties: 1.2.1
             get-intrinsic: 1.2.4
             has-symbols: 1.0.3
             reflect.getprototypeof: 1.0.6
             set-function-name: 2.0.2
      -    dev: true
       
      -  /itertools@2.2.5:
      -    resolution: {integrity: sha512-ZbvrbzfKYBfsa2B1zLfWNmo19oIcI7ybRAaHhiNWXImu3Xho54Mi1k/YSd6wW68xHiUmTQXsQOSvVOs1uCM3/Q==}
      -    dev: false
      +  itertools@2.2.5: {}
       
      -  /jackspeak@2.3.6:
      -    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
      -    engines: {node: '>=14'}
      +  jackspeak@2.3.6:
           dependencies:
             '@isaacs/cliui': 8.0.2
           optionalDependencies:
             '@pkgjs/parseargs': 0.11.0
       
      -  /jake@10.8.7:
      -    resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  jake@10.8.7:
           dependencies:
             async: 3.2.5
             chalk: 4.1.2
             filelist: 1.0.4
             minimatch: 3.1.2
       
      -  /jclass@1.2.1:
      -    resolution: {integrity: sha512-mRx8uv1qJLOtxbRf3IWOQIH2ro7VIPn6ZkhbTcUJvJEslLzYA7BSATXDi/GR1yKYV9DASsjTZL+0YJPdqSMznw==}
      -    engines: {node: '>= 0.6'}
      -    dev: false
      +  jclass@1.2.1: {}
       
      -  /jest-changed-files@29.7.0:
      -    resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-changed-files@29.7.0:
           dependencies:
             execa: 5.1.1
             jest-util: 29.7.0
             p-limit: 3.1.0
      -    dev: true
       
      -  /jest-circus@29.7.0:
      -    resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-circus@29.7.0:
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/expect': 29.7.0
      @@ -10977,17 +16499,8 @@ packages:
           transitivePeerDependencies:
             - babel-plugin-macros
             - supports-color
      -    dev: true
       
      -  /jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      -    resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      +  jest-cli@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
           dependencies:
             '@jest/core': 29.7.0(ts-node@10.9.2)
             '@jest/test-result': 29.7.0
      @@ -11005,19 +16518,8 @@ packages:
             - babel-plugin-macros
             - supports-color
             - ts-node
      -    dev: true
       
      -  /jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      -    resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      '@types/node': '*'
      -      ts-node: '>=9.0.0'
      -    peerDependenciesMeta:
      -      '@types/node':
      -        optional: true
      -      ts-node:
      -        optional: true
      +  jest-config@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
           dependencies:
             '@babel/core': 7.24.3
             '@jest/test-sequencer': 29.7.0
      @@ -11046,44 +16548,27 @@ packages:
           transitivePeerDependencies:
             - babel-plugin-macros
             - supports-color
      -    dev: true
       
      -  /jest-diff@29.7.0:
      -    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-diff@29.7.0:
           dependencies:
             chalk: 4.1.2
             diff-sequences: 29.6.3
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      -    dev: true
       
      -  /jest-docblock@29.7.0:
      -    resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-docblock@29.7.0:
           dependencies:
             detect-newline: 3.1.0
      -    dev: true
       
      -  /jest-each@29.7.0:
      -    resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-each@29.7.0:
           dependencies:
             '@jest/types': 29.6.3
             chalk: 4.1.2
             jest-get-type: 29.6.3
             jest-util: 29.7.0
             pretty-format: 29.7.0
      -    dev: true
       
      -  /jest-environment-jsdom@29.7.0:
      -    resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    peerDependencies:
      -      canvas: ^2.5.0
      -    peerDependenciesMeta:
      -      canvas:
      -        optional: true
      +  jest-environment-jsdom@29.7.0:
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -11097,11 +16582,8 @@ packages:
             - bufferutil
             - supports-color
             - utf-8-validate
      -    dev: true
       
      -  /jest-environment-node@29.7.0:
      -    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-environment-node@29.7.0:
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -11109,16 +16591,10 @@ packages:
             '@types/node': 18.18.2
             jest-mock: 29.7.0
             jest-util: 29.7.0
      -    dev: true
       
      -  /jest-get-type@29.6.3:
      -    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    dev: true
      +  jest-get-type@29.6.3: {}
       
      -  /jest-haste-map@29.7.0:
      -    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-haste-map@29.7.0:
           dependencies:
             '@jest/types': 29.6.3
             '@types/graceful-fs': 4.1.9
      @@ -11133,29 +16609,20 @@ packages:
             walker: 1.0.8
           optionalDependencies:
             fsevents: 2.3.3
      -    dev: true
       
      -  /jest-leak-detector@29.7.0:
      -    resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-leak-detector@29.7.0:
           dependencies:
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      -    dev: true
       
      -  /jest-matcher-utils@29.7.0:
      -    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-matcher-utils@29.7.0:
           dependencies:
             chalk: 4.1.2
             jest-diff: 29.7.0
             jest-get-type: 29.6.3
             pretty-format: 29.7.0
      -    dev: true
       
      -  /jest-message-util@29.7.0:
      -    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-message-util@29.7.0:
           dependencies:
             '@babel/code-frame': 7.24.2
             '@jest/types': 29.6.3
      @@ -11166,47 +16633,27 @@ packages:
             pretty-format: 29.7.0
             slash: 3.0.0
             stack-utils: 2.0.6
      -    dev: true
       
      -  /jest-mock@29.7.0:
      -    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-mock@29.7.0:
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
             jest-util: 29.7.0
      -    dev: true
       
      -  /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
      -    resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
      -    engines: {node: '>=6'}
      -    peerDependencies:
      -      jest-resolve: '*'
      -    peerDependenciesMeta:
      -      jest-resolve:
      -        optional: true
      +  jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
           dependencies:
             jest-resolve: 29.7.0
      -    dev: true
       
      -  /jest-regex-util@29.6.3:
      -    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    dev: true
      +  jest-regex-util@29.6.3: {}
       
      -  /jest-resolve-dependencies@29.7.0:
      -    resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-resolve-dependencies@29.7.0:
           dependencies:
             jest-regex-util: 29.6.3
             jest-snapshot: 29.7.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /jest-resolve@29.7.0:
      -    resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-resolve@29.7.0:
           dependencies:
             chalk: 4.1.2
             graceful-fs: 4.2.11
      @@ -11217,11 +16664,8 @@ packages:
             resolve: 1.22.8
             resolve.exports: 2.0.2
             slash: 3.0.0
      -    dev: true
       
      -  /jest-runner@29.7.0:
      -    resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-runner@29.7.0:
           dependencies:
             '@jest/console': 29.7.0
             '@jest/environment': 29.7.0
      @@ -11246,11 +16690,8 @@ packages:
             source-map-support: 0.5.13
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /jest-runtime@29.7.0:
      -    resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-runtime@29.7.0:
           dependencies:
             '@jest/environment': 29.7.0
             '@jest/fake-timers': 29.7.0
      @@ -11276,11 +16717,8 @@ packages:
             strip-bom: 4.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /jest-snapshot@29.7.0:
      -    resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-snapshot@29.7.0:
           dependencies:
             '@babel/core': 7.24.3
             '@babel/generator': 7.24.1
      @@ -11304,11 +16742,8 @@ packages:
             semver: 7.6.0
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /jest-util@29.7.0:
      -    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-util@29.7.0:
           dependencies:
             '@jest/types': 29.6.3
             '@types/node': 18.18.2
      @@ -11317,9 +16752,7 @@ packages:
             graceful-fs: 4.2.11
             picomatch: 2.3.1
       
      -  /jest-validate@29.7.0:
      -    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-validate@29.7.0:
           dependencies:
             '@jest/types': 29.6.3
             camelcase: 6.3.0
      @@ -11327,11 +16760,8 @@ packages:
             jest-get-type: 29.6.3
             leven: 3.1.0
             pretty-format: 29.7.0
      -    dev: true
       
      -  /jest-watcher@29.7.0:
      -    resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-watcher@29.7.0:
           dependencies:
             '@jest/test-result': 29.7.0
             '@jest/types': 29.6.3
      @@ -11341,34 +16771,21 @@ packages:
             emittery: 0.13.1
             jest-util: 29.7.0
             string-length: 4.0.2
      -    dev: true
       
      -  /jest-worker@27.5.1:
      -    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
      -    engines: {node: '>= 10.13.0'}
      +  jest-worker@27.5.1:
           dependencies:
             '@types/node': 18.18.2
             merge-stream: 2.0.0
             supports-color: 8.1.1
       
      -  /jest-worker@29.7.0:
      -    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  jest-worker@29.7.0:
           dependencies:
             '@types/node': 18.18.2
             jest-util: 29.7.0
      -      merge-stream: 2.0.0
      -      supports-color: 8.1.1
      -
      -  /jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
      -    resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
      -    peerDependenciesMeta:
      -      node-notifier:
      -        optional: true
      +      merge-stream: 2.0.0
      +      supports-color: 8.1.1
      +
      +  jest@29.7.0(@types/node@18.18.2)(ts-node@10.9.2):
           dependencies:
             '@jest/core': 29.7.0(ts-node@10.9.2)
             '@jest/types': 29.6.3
      @@ -11379,14 +16796,10 @@ packages:
             - babel-plugin-macros
             - supports-color
             - ts-node
      -    dev: true
       
      -  /jiti@1.21.0:
      -    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
      -    hasBin: true
      +  jiti@1.21.0: {}
       
      -  /joi@17.12.2:
      -    resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
      +  joi@17.12.2:
           dependencies:
             '@hapi/hoek': 9.3.0
             '@hapi/topo': 5.1.0
      @@ -11394,37 +16807,22 @@ packages:
             '@sideway/formula': 3.0.1
             '@sideway/pinpoint': 2.0.0
       
      -  /js-cookie@2.2.1:
      -    resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
      -    dev: false
      +  js-cookie@2.2.1: {}
       
      -  /js-tokens@4.0.0:
      -    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
      +  js-tokens@4.0.0: {}
       
      -  /js-yaml@3.14.1:
      -    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
      -    hasBin: true
      +  js-yaml@3.14.1:
           dependencies:
             argparse: 1.0.10
             esprima: 4.0.1
       
      -  /js-yaml@4.1.0:
      -    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
      -    hasBin: true
      +  js-yaml@4.1.0:
           dependencies:
             argparse: 2.0.1
       
      -  /jsbn@1.1.0:
      -    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
      +  jsbn@1.1.0: {}
       
      -  /jsdom@20.0.3:
      -    resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      canvas: ^2.5.0
      -    peerDependenciesMeta:
      -      canvas:
      -        optional: true
      +  jsdom@20.0.3:
           dependencies:
             abab: 2.0.6
             acorn: 8.11.3
      @@ -11456,272 +16854,168 @@ packages:
             - bufferutil
             - supports-color
             - utf-8-validate
      -    dev: true
       
      -  /jsesc@0.5.0:
      -    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
      -    hasBin: true
      +  jsesc@0.5.0: {}
       
      -  /jsesc@2.5.2:
      -    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  jsesc@2.5.2: {}
       
      -  /jsesc@3.0.2:
      -    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      -    dev: true
      +  jsesc@3.0.2: {}
       
      -  /json-buffer@3.0.1:
      -    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
      +  json-buffer@3.0.1: {}
       
      -  /json-parse-even-better-errors@2.3.1:
      -    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
      +  json-parse-even-better-errors@2.3.1: {}
       
      -  /json-parse-even-better-errors@3.0.1:
      -    resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  json-parse-even-better-errors@3.0.1: {}
       
      -  /json-schema-traverse@0.4.1:
      -    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
      +  json-schema-traverse@0.4.1: {}
       
      -  /json-schema-traverse@1.0.0:
      -    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
      +  json-schema-traverse@1.0.0: {}
       
      -  /json-stable-stringify-without-jsonify@1.0.1:
      -    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
      +  json-stable-stringify-without-jsonify@1.0.1: {}
       
      -  /json-stringify-nice@1.1.4:
      -    resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
      +  json-stringify-nice@1.1.4: {}
       
      -  /json-stringify-safe@5.0.1:
      -    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
      +  json-stringify-safe@5.0.1: {}
       
      -  /json5@1.0.2:
      -    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
      -    hasBin: true
      +  json5@1.0.2:
           dependencies:
             minimist: 1.2.8
      -    dev: true
       
      -  /json5@2.2.3:
      -    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      +  json5@2.2.3: {}
       
      -  /jsonfile@6.1.0:
      -    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
      +  jsonfile@6.1.0:
           dependencies:
             universalify: 2.0.1
           optionalDependencies:
             graceful-fs: 4.2.11
       
      -  /jsonparse@1.3.1:
      -    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
      -    engines: {'0': node >= 0.2.0}
      +  jsonparse@1.3.1: {}
       
      -  /jsx-ast-utils@3.3.5:
      -    resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
      -    engines: {node: '>=4.0'}
      +  jsx-ast-utils@3.3.5:
           dependencies:
             array-includes: 3.1.8
             array.prototype.flat: 1.3.2
             object.assign: 4.1.5
             object.values: 1.2.0
      -    dev: true
       
      -  /jszip@3.10.1:
      -    resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
      +  jszip@3.10.1:
           dependencies:
             lie: 3.3.0
             pako: 1.0.11
             readable-stream: 2.3.8
             setimmediate: 1.0.5
      -    dev: true
       
      -  /just-diff-apply@5.5.0:
      -    resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
      +  just-diff-apply@5.5.0: {}
       
      -  /just-diff@5.2.0:
      -    resolution: {integrity: sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==}
      +  just-diff@5.2.0: {}
       
      -  /just-extend@6.2.0:
      -    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
      -    dev: true
      +  just-extend@6.2.0: {}
       
      -  /keyv@4.5.4:
      -    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
      +  keyv@4.5.4:
           dependencies:
             json-buffer: 3.0.1
       
      -  /kind-of@6.0.3:
      -    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
      -    engines: {node: '>=0.10.0'}
      +  kind-of@6.0.3: {}
       
      -  /kleur@3.0.3:
      -    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
      -    engines: {node: '>=6'}
      +  kleur@3.0.3: {}
       
      -  /kuler@2.0.0:
      -    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
      +  kuler@2.0.0: {}
       
      -  /language-subtag-registry@0.3.22:
      -    resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
      -    dev: true
      +  language-subtag-registry@0.3.22: {}
       
      -  /language-tags@1.0.9:
      -    resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
      -    engines: {node: '>=0.10'}
      +  language-tags@1.0.9:
           dependencies:
             language-subtag-registry: 0.3.22
      -    dev: true
       
      -  /latest-version@7.0.0:
      -    resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
      -    engines: {node: '>=14.16'}
      +  latest-version@7.0.0:
           dependencies:
             package-json: 8.1.1
      -    dev: false
       
      -  /launch-editor@2.6.1:
      -    resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
      +  launch-editor@2.6.1:
           dependencies:
             picocolors: 1.0.0
             shell-quote: 1.8.1
       
      -  /leven@3.1.0:
      -    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
      -    engines: {node: '>=6'}
      +  leven@3.1.0: {}
       
      -  /levn@0.4.1:
      -    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
      -    engines: {node: '>= 0.8.0'}
      +  levn@0.4.1:
           dependencies:
             prelude-ls: 1.2.1
             type-check: 0.4.0
       
      -  /lie@3.3.0:
      -    resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
      +  lie@3.3.0:
           dependencies:
             immediate: 3.0.6
      -    dev: true
       
      -  /lilconfig@2.1.0:
      -    resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
      -    engines: {node: '>=10'}
      +  lilconfig@2.1.0: {}
       
      -  /lilconfig@3.1.1:
      -    resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
      -    engines: {node: '>=14'}
      -    dev: true
      +  lilconfig@3.1.1: {}
       
      -  /lines-and-columns@1.2.4:
      -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
      +  lines-and-columns@1.2.4: {}
       
      -  /load-json-file@6.2.0:
      -    resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==}
      -    engines: {node: '>=8'}
      +  load-json-file@6.2.0:
           dependencies:
             graceful-fs: 4.2.11
             parse-json: 5.2.0
             strip-bom: 4.0.0
             type-fest: 0.6.0
      -    dev: true
       
      -  /load-json-file@7.0.1:
      -    resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: true
      +  load-json-file@7.0.1: {}
       
      -  /load-script@1.0.0:
      -    resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
      -    dev: false
      +  load-script@1.0.0: {}
       
      -  /load-yaml-file@0.2.0:
      -    resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
      -    engines: {node: '>=6'}
      +  load-yaml-file@0.2.0:
           dependencies:
             graceful-fs: 4.2.11
             js-yaml: 3.14.1
             pify: 4.0.1
             strip-bom: 3.0.0
       
      -  /loader-runner@4.3.0:
      -    resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
      -    engines: {node: '>=6.11.5'}
      +  loader-runner@4.3.0: {}
       
      -  /loader-utils@2.0.4:
      -    resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
      -    engines: {node: '>=8.9.0'}
      +  loader-utils@2.0.4:
           dependencies:
             big.js: 5.2.2
             emojis-list: 3.0.0
             json5: 2.2.3
      -    dev: false
       
      -  /loader-utils@3.2.1:
      -    resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
      -    engines: {node: '>= 12.13.0'}
      -    dev: false
      +  loader-utils@3.2.1: {}
       
      -  /locate-path@3.0.0:
      -    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
      -    engines: {node: '>=6'}
      +  locate-path@3.0.0:
           dependencies:
             p-locate: 3.0.0
             path-exists: 3.0.0
      -    dev: false
       
      -  /locate-path@5.0.0:
      -    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
      -    engines: {node: '>=8'}
      +  locate-path@5.0.0:
           dependencies:
             p-locate: 4.1.0
       
      -  /locate-path@6.0.0:
      -    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
      -    engines: {node: '>=10'}
      +  locate-path@6.0.0:
           dependencies:
             p-locate: 5.0.0
       
      -  /locate-path@7.2.0:
      -    resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  locate-path@7.2.0:
           dependencies:
             p-locate: 6.0.0
      -    dev: false
       
      -  /lodash.debounce@4.0.8:
      -    resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
      +  lodash.debounce@4.0.8: {}
       
      -  /lodash.get@4.4.2:
      -    resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
      -    dev: true
      +  lodash.get@4.4.2: {}
       
      -  /lodash.memoize@4.1.2:
      -    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
      +  lodash.memoize@4.1.2: {}
       
      -  /lodash.merge@4.6.2:
      -    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
      +  lodash.merge@4.6.2: {}
       
      -  /lodash.uniq@4.5.0:
      -    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
      -    dev: false
      +  lodash.uniq@4.5.0: {}
       
      -  /lodash@4.17.21:
      -    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
      +  lodash@4.17.21: {}
       
      -  /log-symbols@4.1.0:
      -    resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
      -    engines: {node: '>=10'}
      +  log-symbols@4.1.0:
           dependencies:
             chalk: 4.1.2
             is-unicode-supported: 0.1.0
       
      -  /logform@2.6.0:
      -    resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==}
      -    engines: {node: '>= 12.0.0'}
      +  logform@2.6.0:
           dependencies:
             '@colors/colors': 1.6.0
             '@types/triple-beam': 1.3.5
      @@ -11730,74 +17024,45 @@ packages:
             safe-stable-stringify: 2.4.3
             triple-beam: 1.4.1
       
      -  /longest-streak@3.1.0:
      -    resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
      +  longest-streak@3.1.0: {}
       
      -  /loose-envify@1.4.0:
      -    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
      -    hasBin: true
      +  loose-envify@1.4.0:
           dependencies:
             js-tokens: 4.0.0
       
      -  /loupe@3.1.0:
      -    resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==}
      +  loupe@3.1.0:
           dependencies:
             get-func-name: 2.0.2
      -    dev: true
       
      -  /lower-case@2.0.2:
      -    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
      +  lower-case@2.0.2:
           dependencies:
             tslib: 2.6.2
       
      -  /lowercase-keys@3.0.0:
      -    resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: false
      +  lowercase-keys@3.0.0: {}
       
      -  /lru-cache@10.2.0:
      -    resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
      -    engines: {node: 14 || >=16.14}
      +  lru-cache@10.2.0: {}
       
      -  /lru-cache@5.1.1:
      -    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
      +  lru-cache@5.1.1:
           dependencies:
             yallist: 3.1.1
       
      -  /lru-cache@6.0.0:
      -    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
      -    engines: {node: '>=10'}
      +  lru-cache@6.0.0:
           dependencies:
             yallist: 4.0.0
       
      -  /lru-cache@7.10.1:
      -    resolution: {integrity: sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  lru-cache@7.10.1: {}
       
      -  /lru-cache@7.18.3:
      -    resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
      -    engines: {node: '>=12'}
      +  lru-cache@7.18.3: {}
       
      -  /lz-string@1.5.0:
      -    resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
      -    hasBin: true
      -    dev: true
      +  lz-string@1.5.0: {}
       
      -  /make-dir@4.0.0:
      -    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
      -    engines: {node: '>=10'}
      +  make-dir@4.0.0:
           dependencies:
             semver: 7.6.0
      -    dev: true
       
      -  /make-error@1.3.6:
      -    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
      -    dev: true
      +  make-error@1.3.6: {}
       
      -  /make-fetch-happen@10.2.1:
      -    resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  make-fetch-happen@10.2.1:
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 16.1.3
      @@ -11819,9 +17084,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /make-fetch-happen@11.1.1:
      -    resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  make-fetch-happen@11.1.1:
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 17.1.4
      @@ -11841,9 +17104,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /make-fetch-happen@9.1.0:
      -    resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
      -    engines: {node: '>= 10'}
      +  make-fetch-happen@9.1.0:
           dependencies:
             agentkeepalive: 4.5.0
             cacache: 15.3.0
      @@ -11865,39 +17126,23 @@ packages:
             - bluebird
             - supports-color
       
      -  /makeerror@1.0.12:
      -    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
      +  makeerror@1.0.12:
           dependencies:
             tmpl: 1.0.5
      -    dev: true
       
      -  /map-age-cleaner@0.1.3:
      -    resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
      -    engines: {node: '>=6'}
      +  map-age-cleaner@0.1.3:
           dependencies:
             p-defer: 1.0.0
      -    dev: true
       
      -  /map-obj@1.0.1:
      -    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  map-obj@1.0.1: {}
       
      -  /map-obj@4.3.0:
      -    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  map-obj@4.3.0: {}
       
      -  /markdown-extensions@2.0.0:
      -    resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
      -    engines: {node: '>=16'}
      +  markdown-extensions@2.0.0: {}
       
      -  /markdown-table@3.0.3:
      -    resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
      -    dev: false
      +  markdown-table@3.0.3: {}
       
      -  /mdast-util-directive@3.0.0:
      -    resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
      +  mdast-util-directive@3.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -11909,19 +17154,15 @@ packages:
             unist-util-visit-parents: 6.0.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-find-and-replace@3.0.1:
      -    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
      +  mdast-util-find-and-replace@3.0.1:
           dependencies:
             '@types/mdast': 4.0.3
             escape-string-regexp: 5.0.0
             unist-util-is: 6.0.0
             unist-util-visit-parents: 6.0.1
      -    dev: false
       
      -  /mdast-util-from-markdown@2.0.0:
      -    resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
      +  mdast-util-from-markdown@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -11938,8 +17179,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /mdast-util-frontmatter@2.0.1:
      -    resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
      +  mdast-util-frontmatter@2.0.1:
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -11949,20 +17189,16 @@ packages:
             micromark-extension-frontmatter: 2.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-gfm-autolink-literal@2.0.0:
      -    resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
      +  mdast-util-gfm-autolink-literal@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             ccount: 2.0.1
             devlop: 1.1.0
             mdast-util-find-and-replace: 3.0.1
             micromark-util-character: 2.1.0
      -    dev: false
       
      -  /mdast-util-gfm-footnote@2.0.0:
      -    resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
      +  mdast-util-gfm-footnote@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -11971,20 +17207,16 @@ packages:
             micromark-util-normalize-identifier: 2.0.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-gfm-strikethrough@2.0.0:
      -    resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
      +  mdast-util-gfm-strikethrough@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-from-markdown: 2.0.0
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-gfm-table@2.0.0:
      -    resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
      +  mdast-util-gfm-table@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -11993,10 +17225,8 @@ packages:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-gfm-task-list-item@2.0.0:
      -    resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
      +  mdast-util-gfm-task-list-item@2.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             devlop: 1.1.0
      @@ -12004,10 +17234,8 @@ packages:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-gfm@3.0.0:
      -    resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
      +  mdast-util-gfm@3.0.0:
           dependencies:
             mdast-util-from-markdown: 2.0.0
             mdast-util-gfm-autolink-literal: 2.0.0
      @@ -12018,10 +17246,8 @@ packages:
             mdast-util-to-markdown: 2.1.0
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /mdast-util-mdx-expression@2.0.0:
      -    resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
      +  mdast-util-mdx-expression@2.0.0:
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -12032,8 +17258,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /mdast-util-mdx-jsx@3.1.2:
      -    resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
      +  mdast-util-mdx-jsx@3.1.2:
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -12051,8 +17276,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /mdast-util-mdx@3.0.0:
      -    resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
      +  mdast-util-mdx@3.0.0:
           dependencies:
             mdast-util-from-markdown: 2.0.0
             mdast-util-mdx-expression: 2.0.0
      @@ -12062,8 +17286,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /mdast-util-mdxjs-esm@2.0.1:
      -    resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
      +  mdast-util-mdxjs-esm@2.0.1:
           dependencies:
             '@types/estree-jsx': 1.0.5
             '@types/hast': 3.0.4
      @@ -12074,14 +17297,12 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /mdast-util-phrasing@4.1.0:
      -    resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
      +  mdast-util-phrasing@4.1.0:
           dependencies:
             '@types/mdast': 4.0.3
             unist-util-is: 6.0.0
       
      -  /mdast-util-to-hast@13.1.0:
      -    resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
      +  mdast-util-to-hast@13.1.0:
           dependencies:
             '@types/hast': 3.0.4
             '@types/mdast': 4.0.3
      @@ -12093,8 +17314,7 @@ packages:
             unist-util-visit: 5.0.0
             vfile: 6.0.1
       
      -  /mdast-util-to-markdown@2.1.0:
      -    resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
      +  mdast-util-to-markdown@2.1.0:
           dependencies:
             '@types/mdast': 4.0.3
             '@types/unist': 3.0.2
      @@ -12105,35 +17325,19 @@ packages:
             unist-util-visit: 5.0.0
             zwitch: 2.0.4
       
      -  /mdast-util-to-string@4.0.0:
      -    resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
      +  mdast-util-to-string@4.0.0:
           dependencies:
             '@types/mdast': 4.0.3
       
      -  /mdn-data@2.0.14:
      -    resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
      -    dev: false
      +  mdn-data@2.0.14: {}
       
      -  /mdn-data@2.0.28:
      -    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
      -    dev: true
      +  mdn-data@2.0.28: {}
       
      -  /mdn-data@2.0.30:
      -    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
      -    dev: true
      +  mdn-data@2.0.30: {}
       
      -  /media-typer@0.3.0:
      -    resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
      -    engines: {node: '>= 0.6'}
      +  media-typer@0.3.0: {}
       
      -  /mem-fs-editor@9.7.0(mem-fs@2.3.0):
      -    resolution: {integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==}
      -    engines: {node: '>=12.10.0'}
      -    peerDependencies:
      -      mem-fs: ^2.1.0
      -    peerDependenciesMeta:
      -      mem-fs:
      -        optional: true
      +  mem-fs-editor@9.7.0(mem-fs@2.3.0):
           dependencies:
             binaryextensions: 4.19.0
             commondir: 1.0.1
      @@ -12147,43 +17351,29 @@ packages:
             normalize-path: 3.0.0
             textextensions: 5.16.0
       
      -  /mem-fs@2.3.0:
      -    resolution: {integrity: sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==}
      -    engines: {node: '>=12'}
      +  mem-fs@2.3.0:
           dependencies:
             '@types/node': 15.14.9
             '@types/vinyl': 2.0.11
             vinyl: 2.2.1
             vinyl-file: 3.0.0
       
      -  /mem@8.1.1:
      -    resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
      -    engines: {node: '>=10'}
      +  mem@8.1.1:
           dependencies:
             map-age-cleaner: 0.1.3
             mimic-fn: 3.1.0
      -    dev: true
       
      -  /memfs@3.5.3:
      -    resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
      -    engines: {node: '>= 4.0.0'}
      +  memfs@3.5.3:
           dependencies:
             fs-monkey: 1.0.5
      -    dev: false
       
      -  /memfs@4.8.0:
      -    resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==}
      -    engines: {node: '>= 4.0.0'}
      +  memfs@4.8.0:
           dependencies:
             tslib: 2.6.2
       
      -  /memoize-one@5.2.1:
      -    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
      -    dev: false
      +  memoize-one@5.2.1: {}
       
      -  /meow@10.1.5:
      -    resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  meow@10.1.5:
           dependencies:
             '@types/minimist': 1.2.5
             camelcase-keys: 7.0.2
      @@ -12197,24 +17387,16 @@ packages:
             trim-newlines: 4.1.1
             type-fest: 1.4.0
             yargs-parser: 20.2.9
      -    dev: true
       
      -  /merge-descriptors@1.0.1:
      -    resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
      +  merge-descriptors@1.0.1: {}
       
      -  /merge-stream@2.0.0:
      -    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
      +  merge-stream@2.0.0: {}
       
      -  /merge2@1.4.1:
      -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
      -    engines: {node: '>= 8'}
      +  merge2@1.4.1: {}
       
      -  /methods@1.1.2:
      -    resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
      -    engines: {node: '>= 0.6'}
      +  methods@1.1.2: {}
       
      -  /micromark-core-commonmark@2.0.0:
      -    resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
      +  micromark-core-commonmark@2.0.0:
           dependencies:
             decode-named-character-reference: 1.0.2
             devlop: 1.1.0
      @@ -12233,8 +17415,7 @@ packages:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-extension-directive@3.0.0:
      -    resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==}
      +  micromark-extension-directive@3.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
      @@ -12243,28 +17424,22 @@ packages:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
             parse-entities: 4.0.1
      -    dev: false
       
      -  /micromark-extension-frontmatter@2.0.0:
      -    resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
      +  micromark-extension-frontmatter@2.0.0:
           dependencies:
             fault: 2.0.1
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-autolink-literal@2.0.0:
      -    resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==}
      +  micromark-extension-gfm-autolink-literal@2.0.0:
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-sanitize-uri: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-footnote@2.0.0:
      -    resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==}
      +  micromark-extension-gfm-footnote@2.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-core-commonmark: 2.0.0
      @@ -12274,10 +17449,8 @@ packages:
             micromark-util-sanitize-uri: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-strikethrough@2.0.0:
      -    resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==}
      +  micromark-extension-gfm-strikethrough@2.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-util-chunked: 2.0.0
      @@ -12285,36 +17458,28 @@ packages:
             micromark-util-resolve-all: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-table@2.0.0:
      -    resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==}
      +  micromark-extension-gfm-table@2.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-tagfilter@2.0.0:
      -    resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
      +  micromark-extension-gfm-tagfilter@2.0.0:
           dependencies:
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm-task-list-item@2.0.1:
      -    resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==}
      +  micromark-extension-gfm-task-list-item@2.0.1:
           dependencies:
             devlop: 1.1.0
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-gfm@3.0.0:
      -    resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
      +  micromark-extension-gfm@3.0.0:
           dependencies:
             micromark-extension-gfm-autolink-literal: 2.0.0
             micromark-extension-gfm-footnote: 2.0.0
      @@ -12324,10 +17489,8 @@ packages:
             micromark-extension-gfm-task-list-item: 2.0.1
             micromark-util-combine-extensions: 2.0.0
             micromark-util-types: 2.0.0
      -    dev: false
       
      -  /micromark-extension-mdx-expression@3.0.0:
      -    resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
      +  micromark-extension-mdx-expression@3.0.0:
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -12338,8 +17501,7 @@ packages:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-extension-mdx-jsx@3.0.0:
      -    resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==}
      +  micromark-extension-mdx-jsx@3.0.0:
           dependencies:
             '@types/acorn': 4.0.6
             '@types/estree': 1.0.5
      @@ -12352,13 +17514,11 @@ packages:
             micromark-util-types: 2.0.0
             vfile-message: 4.0.2
       
      -  /micromark-extension-mdx-md@2.0.0:
      -    resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
      +  micromark-extension-mdx-md@2.0.0:
           dependencies:
             micromark-util-types: 2.0.0
       
      -  /micromark-extension-mdxjs-esm@3.0.0:
      -    resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
      +  micromark-extension-mdxjs-esm@3.0.0:
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -12370,8 +17530,7 @@ packages:
             unist-util-position-from-estree: 2.0.0
             vfile-message: 4.0.2
       
      -  /micromark-extension-mdxjs@3.0.0:
      -    resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
      +  micromark-extension-mdxjs@3.0.0:
           dependencies:
             acorn: 8.11.3
             acorn-jsx: 5.3.2(acorn@8.11.3)
      @@ -12382,23 +17541,20 @@ packages:
             micromark-util-combine-extensions: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-factory-destination@2.0.0:
      -    resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
      +  micromark-factory-destination@2.0.0:
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-factory-label@2.0.0:
      -    resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
      +  micromark-factory-label@2.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-factory-mdx-expression@2.0.1:
      -    resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==}
      +  micromark-factory-mdx-expression@2.0.1:
           dependencies:
             '@types/estree': 1.0.5
             devlop: 1.1.0
      @@ -12409,84 +17565,69 @@ packages:
             unist-util-position-from-estree: 2.0.0
             vfile-message: 4.0.2
       
      -  /micromark-factory-space@1.1.0:
      -    resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
      +  micromark-factory-space@1.1.0:
           dependencies:
             micromark-util-character: 1.2.0
             micromark-util-types: 1.1.0
      -    dev: false
       
      -  /micromark-factory-space@2.0.0:
      -    resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
      +  micromark-factory-space@2.0.0:
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-types: 2.0.0
       
      -  /micromark-factory-title@2.0.0:
      -    resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
      +  micromark-factory-title@2.0.0:
           dependencies:
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-factory-whitespace@2.0.0:
      -    resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
      +  micromark-factory-whitespace@2.0.0:
           dependencies:
             micromark-factory-space: 2.0.0
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-util-character@1.2.0:
      -    resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
      +  micromark-util-character@1.2.0:
           dependencies:
             micromark-util-symbol: 1.1.0
             micromark-util-types: 1.1.0
      -    dev: false
       
      -  /micromark-util-character@2.1.0:
      -    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
      +  micromark-util-character@2.1.0:
           dependencies:
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-util-chunked@2.0.0:
      -    resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
      +  micromark-util-chunked@2.0.0:
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  /micromark-util-classify-character@2.0.0:
      -    resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
      +  micromark-util-classify-character@2.0.0:
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-util-combine-extensions@2.0.0:
      -    resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
      +  micromark-util-combine-extensions@2.0.0:
           dependencies:
             micromark-util-chunked: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-util-decode-numeric-character-reference@2.0.1:
      -    resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
      +  micromark-util-decode-numeric-character-reference@2.0.1:
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  /micromark-util-decode-string@2.0.0:
      -    resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
      +  micromark-util-decode-string@2.0.0:
           dependencies:
             decode-named-character-reference: 1.0.2
             micromark-util-character: 2.1.0
             micromark-util-decode-numeric-character-reference: 2.0.1
             micromark-util-symbol: 2.0.0
       
      -  /micromark-util-encode@2.0.0:
      -    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
      +  micromark-util-encode@2.0.0: {}
       
      -  /micromark-util-events-to-acorn@2.0.2:
      -    resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
      +  micromark-util-events-to-acorn@2.0.2:
           dependencies:
             '@types/acorn': 4.0.6
             '@types/estree': 1.0.5
      @@ -12497,50 +17638,38 @@ packages:
             micromark-util-types: 2.0.0
             vfile-message: 4.0.2
       
      -  /micromark-util-html-tag-name@2.0.0:
      -    resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
      +  micromark-util-html-tag-name@2.0.0: {}
       
      -  /micromark-util-normalize-identifier@2.0.0:
      -    resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
      +  micromark-util-normalize-identifier@2.0.0:
           dependencies:
             micromark-util-symbol: 2.0.0
       
      -  /micromark-util-resolve-all@2.0.0:
      -    resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
      +  micromark-util-resolve-all@2.0.0:
           dependencies:
             micromark-util-types: 2.0.0
       
      -  /micromark-util-sanitize-uri@2.0.0:
      -    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
      +  micromark-util-sanitize-uri@2.0.0:
           dependencies:
             micromark-util-character: 2.1.0
             micromark-util-encode: 2.0.0
             micromark-util-symbol: 2.0.0
       
      -  /micromark-util-subtokenize@2.0.0:
      -    resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
      +  micromark-util-subtokenize@2.0.0:
           dependencies:
             devlop: 1.1.0
             micromark-util-chunked: 2.0.0
             micromark-util-symbol: 2.0.0
             micromark-util-types: 2.0.0
       
      -  /micromark-util-symbol@1.1.0:
      -    resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
      -    dev: false
      +  micromark-util-symbol@1.1.0: {}
       
      -  /micromark-util-symbol@2.0.0:
      -    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
      +  micromark-util-symbol@2.0.0: {}
       
      -  /micromark-util-types@1.1.0:
      -    resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
      -    dev: false
      +  micromark-util-types@1.1.0: {}
       
      -  /micromark-util-types@2.0.0:
      -    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
      +  micromark-util-types@2.0.0: {}
       
      -  /micromark@4.0.0:
      -    resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
      +  micromark@4.0.0:
           dependencies:
             '@types/debug': 4.1.12
             debug: 4.3.4(supports-color@8.1.1)
      @@ -12562,129 +17691,76 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /micromatch@4.0.5:
      -    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
      -    engines: {node: '>=8.6'}
      +  micromatch@4.0.5:
           dependencies:
             braces: 3.0.2
             picomatch: 2.3.1
       
      -  /mime-db@1.33.0:
      -    resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
      -    engines: {node: '>= 0.6'}
      -    dev: false
      +  mime-db@1.33.0: {}
       
      -  /mime-db@1.52.0:
      -    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
      -    engines: {node: '>= 0.6'}
      +  mime-db@1.52.0: {}
       
      -  /mime-types@2.1.18:
      -    resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
      -    engines: {node: '>= 0.6'}
      +  mime-types@2.1.18:
           dependencies:
             mime-db: 1.33.0
      -    dev: false
       
      -  /mime-types@2.1.35:
      -    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
      -    engines: {node: '>= 0.6'}
      +  mime-types@2.1.35:
           dependencies:
             mime-db: 1.52.0
       
      -  /mime@1.6.0:
      -    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  mime@1.6.0: {}
       
      -  /mimic-fn@2.1.0:
      -    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
      -    engines: {node: '>=6'}
      +  mimic-fn@2.1.0: {}
       
      -  /mimic-fn@3.1.0:
      -    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  mimic-fn@3.1.0: {}
       
      -  /mimic-response@3.1.0:
      -    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  mimic-response@3.1.0: {}
       
      -  /mimic-response@4.0.0:
      -    resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: false
      +  mimic-response@4.0.0: {}
       
      -  /min-indent@1.0.1:
      -    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  min-indent@1.0.1: {}
       
      -  /mini-css-extract-plugin@2.8.1(webpack@5.91.0):
      -    resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      +  mini-css-extract-plugin@2.8.1(webpack@5.91.0):
           dependencies:
             schema-utils: 4.2.0
             tapable: 2.2.1
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /minimalistic-assert@1.0.1:
      -    resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
      +  minimalistic-assert@1.0.1: {}
       
      -  /minimatch@3.1.2:
      -    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
      +  minimatch@3.1.2:
           dependencies:
             brace-expansion: 1.1.11
       
      -  /minimatch@5.0.1:
      -    resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
      -    engines: {node: '>=10'}
      +  minimatch@5.0.1:
           dependencies:
             brace-expansion: 2.0.1
      -    dev: true
       
      -  /minimatch@5.1.6:
      -    resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
      -    engines: {node: '>=10'}
      +  minimatch@5.1.6:
           dependencies:
             brace-expansion: 2.0.1
       
      -  /minimatch@7.4.6:
      -    resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
      -    engines: {node: '>=10'}
      +  minimatch@7.4.6:
           dependencies:
             brace-expansion: 2.0.1
       
      -  /minimatch@9.0.3:
      -    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      +  minimatch@9.0.3:
           dependencies:
             brace-expansion: 2.0.1
       
      -  /minimist-options@4.1.0:
      -    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
      -    engines: {node: '>= 6'}
      +  minimist-options@4.1.0:
           dependencies:
             arrify: 1.0.1
             is-plain-obj: 1.1.0
             kind-of: 6.0.3
      -    dev: true
       
      -  /minimist@1.2.8:
      -    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
      +  minimist@1.2.8: {}
       
      -  /minipass-collect@1.0.2:
      -    resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
      -    engines: {node: '>= 8'}
      +  minipass-collect@1.0.2:
           dependencies:
             minipass: 3.3.6
       
      -  /minipass-fetch@1.4.1:
      -    resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==}
      -    engines: {node: '>=8'}
      +  minipass-fetch@1.4.1:
           dependencies:
             minipass: 3.3.6
             minipass-sized: 1.0.3
      @@ -12692,9 +17768,7 @@ packages:
           optionalDependencies:
             encoding: 0.1.13
       
      -  /minipass-fetch@2.1.2:
      -    resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  minipass-fetch@2.1.2:
           dependencies:
             minipass: 3.3.6
             minipass-sized: 1.0.3
      @@ -12702,9 +17776,7 @@ packages:
           optionalDependencies:
             encoding: 0.1.13
       
      -  /minipass-fetch@3.0.4:
      -    resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  minipass-fetch@3.0.4:
           dependencies:
             minipass: 7.0.4
             minipass-sized: 1.0.3
      @@ -12712,75 +17784,49 @@ packages:
           optionalDependencies:
             encoding: 0.1.13
       
      -  /minipass-flush@1.0.5:
      -    resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
      -    engines: {node: '>= 8'}
      +  minipass-flush@1.0.5:
           dependencies:
             minipass: 3.3.6
       
      -  /minipass-json-stream@1.0.1:
      -    resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
      +  minipass-json-stream@1.0.1:
           dependencies:
             jsonparse: 1.3.1
             minipass: 3.3.6
       
      -  /minipass-pipeline@1.2.4:
      -    resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
      -    engines: {node: '>=8'}
      +  minipass-pipeline@1.2.4:
           dependencies:
             minipass: 3.3.6
       
      -  /minipass-sized@1.0.3:
      -    resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
      -    engines: {node: '>=8'}
      +  minipass-sized@1.0.3:
           dependencies:
             minipass: 3.3.6
       
      -  /minipass@3.3.6:
      -    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
      -    engines: {node: '>=8'}
      +  minipass@3.3.6:
           dependencies:
             yallist: 4.0.0
       
      -  /minipass@5.0.0:
      -    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
      -    engines: {node: '>=8'}
      +  minipass@5.0.0: {}
       
      -  /minipass@7.0.4:
      -    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      +  minipass@7.0.4: {}
       
      -  /minizlib@2.1.2:
      -    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
      -    engines: {node: '>= 8'}
      +  minizlib@2.1.2:
           dependencies:
             minipass: 3.3.6
             yallist: 4.0.0
       
      -  /mkdirp-infer-owner@2.0.0:
      -    resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==}
      -    engines: {node: '>=10'}
      +  mkdirp-infer-owner@2.0.0:
           dependencies:
             chownr: 2.0.0
             infer-owner: 1.0.4
             mkdirp: 1.0.4
       
      -  /mkdirp@0.5.6:
      -    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
      -    hasBin: true
      +  mkdirp@0.5.6:
           dependencies:
             minimist: 1.2.8
      -    dev: true
       
      -  /mkdirp@1.0.4:
      -    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  mkdirp@1.0.4: {}
       
      -  /mocha@10.3.0:
      -    resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
      -    engines: {node: '>= 14.0.0'}
      -    hasBin: true
      +  mocha@10.3.0:
           dependencies:
             ansi-colors: 4.1.1
             browser-stdout: 1.3.1
      @@ -12802,36 +17848,23 @@ packages:
             yargs: 16.2.0
             yargs-parser: 20.2.4
             yargs-unparser: 2.0.0
      -    dev: true
       
      -  /moo@0.5.2:
      -    resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
      -    dev: false
      +  moo@0.5.2: {}
       
      -  /mrmime@2.0.0:
      -    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  mrmime@2.0.0: {}
       
      -  /ms@2.0.0:
      -    resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
      +  ms@2.0.0: {}
       
      -  /ms@2.1.2:
      -    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
      +  ms@2.1.2: {}
       
      -  /ms@2.1.3:
      -    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
      +  ms@2.1.3: {}
       
      -  /multicast-dns@7.2.5:
      -    resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
      -    hasBin: true
      +  multicast-dns@7.2.5:
           dependencies:
             dns-packet: 5.6.1
             thunky: 1.1.0
       
      -  /multimatch@5.0.0:
      -    resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
      -    engines: {node: '>=10'}
      +  multimatch@5.0.0:
           dependencies:
             '@types/minimatch': 3.0.5
             array-differ: 3.0.0
      @@ -12839,22 +17872,15 @@ packages:
             arrify: 2.0.1
             minimatch: 3.1.2
       
      -  /mute-stream@0.0.8:
      -    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
      +  mute-stream@0.0.8: {}
       
      -  /mz@2.7.0:
      -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
      +  mz@2.7.0:
           dependencies:
             any-promise: 1.3.0
             object-assign: 4.1.1
             thenify-all: 1.6.0
      -    dev: true
       
      -  /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      +  nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
           dependencies:
             '@jridgewell/sourcemap-codec': 1.4.15
             css-tree: 1.1.3
      @@ -12866,20 +17892,12 @@ packages:
             rtl-css-js: 1.16.1
             stacktrace-js: 2.0.2
             stylis: 4.3.1
      -    dev: false
       
      -  /nanoid@3.3.7:
      -    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
      -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
      -    hasBin: true
      +  nanoid@3.3.7: {}
       
      -  /natural-compare@1.4.0:
      -    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
      +  natural-compare@1.4.0: {}
       
      -  /ndjson@2.0.0:
      -    resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  ndjson@2.0.0:
           dependencies:
             json-stringify-safe: 5.0.1
             minimist: 1.2.8
      @@ -12887,50 +17905,25 @@ packages:
             split2: 3.2.2
             through2: 4.0.2
       
      -  /nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
      -    resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
      -    hasBin: true
      +  nearley@2.20.1(patch_hash=yc7aistj2i2qcwysldsvv2yuk4):
           dependencies:
             commander: 2.20.3
             moo: 0.5.2
             railroad-diagrams: 1.0.0
             randexp: 0.4.6
      -    dev: false
      -    patched: true
       
      -  /negotiator@0.6.3:
      -    resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
      -    engines: {node: '>= 0.6'}
      +  negotiator@0.6.3: {}
       
      -  /neo-async@2.6.2:
      -    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
      +  neo-async@2.6.2: {}
       
      -  /neovim@5.1.0:
      -    resolution: {integrity: sha512-9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  neovim@5.1.0:
           dependencies:
             '@msgpack/msgpack': 2.8.0
             winston: 3.11.0
       
      -  /nerf-dart@1.0.0:
      -    resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==}
      -    dev: false
      +  nerf-dart@1.0.0: {}
       
      -  /next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
      -    engines: {node: '>=18.17.0'}
      -    hasBin: true
      -    peerDependencies:
      -      '@opentelemetry/api': ^1.1.0
      -      react: ^18.2.0 || 18
      -      react-dom: ^18.2.0 || 18
      -      sass: ^1.3.0
      -    peerDependenciesMeta:
      -      '@opentelemetry/api':
      -        optional: true
      -      sass:
      -        optional: true
      +  next@14.1.4(@babel/core@7.24.3)(react-dom@18.2.0)(react@18.2.0):
           dependencies:
             '@next/env': 14.1.4
             '@swc/helpers': 0.5.2
      @@ -12954,53 +17947,34 @@ packages:
           transitivePeerDependencies:
             - '@babel/core'
             - babel-plugin-macros
      -    dev: false
       
      -  /nise@5.1.9:
      -    resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==}
      +  nise@5.1.9:
           dependencies:
             '@sinonjs/commons': 3.0.1
             '@sinonjs/fake-timers': 11.2.2
             '@sinonjs/text-encoding': 0.7.2
             just-extend: 6.2.0
             path-to-regexp: 6.2.1
      -    dev: true
       
      -  /no-case@3.0.4:
      -    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
      +  no-case@3.0.4:
           dependencies:
             lower-case: 2.0.2
             tslib: 2.6.2
       
      -  /node-emoji@2.1.3:
      -    resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
      -    engines: {node: '>=18'}
      +  node-emoji@2.1.3:
           dependencies:
             '@sindresorhus/is': 4.6.0
             char-regex: 1.0.2
             emojilib: 2.4.0
             skin-tone: 2.0.0
      -    dev: false
       
      -  /node-fetch@2.7.0:
      -    resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
      -    engines: {node: 4.x || >=6.0.0}
      -    peerDependencies:
      -      encoding: ^0.1.0
      -    peerDependenciesMeta:
      -      encoding:
      -        optional: true
      +  node-fetch@2.7.0:
           dependencies:
             whatwg-url: 5.0.0
       
      -  /node-forge@1.3.1:
      -    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
      -    engines: {node: '>= 6.13.0'}
      +  node-forge@1.3.1: {}
       
      -  /node-gyp@8.4.1:
      -    resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
      -    engines: {node: '>= 10.12.0'}
      -    hasBin: true
      +  node-gyp@8.4.1:
           dependencies:
             env-paths: 2.2.1
             glob: 7.2.3
      @@ -13016,10 +17990,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /node-gyp@9.4.1:
      -    resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
      -    engines: {node: ^12.13 || ^14.13 || >=16}
      -    hasBin: true
      +  node-gyp@9.4.1:
           dependencies:
             env-paths: 2.2.1
             exponential-backoff: 3.1.1
      @@ -13036,180 +18007,122 @@ packages:
             - bluebird
             - supports-color
       
      -  /node-html-parser@6.1.12:
      -    resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==}
      +  node-html-parser@6.1.12:
           dependencies:
             css-select: 5.1.0
             he: 1.2.0
      -    dev: false
       
      -  /node-int64@0.4.0:
      -    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
      -    dev: true
      +  node-int64@0.4.0: {}
       
      -  /node-releases@2.0.14:
      -    resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
      +  node-releases@2.0.14: {}
       
      -  /nopt@5.0.0:
      -    resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
      -    engines: {node: '>=6'}
      -    hasBin: true
      +  nopt@5.0.0:
           dependencies:
             abbrev: 1.1.1
       
      -  /nopt@6.0.0:
      -    resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      -    hasBin: true
      +  nopt@6.0.0:
           dependencies:
             abbrev: 1.1.1
       
      -  /normalize-package-data@2.5.0:
      -    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
      +  normalize-package-data@2.5.0:
           dependencies:
             hosted-git-info: 2.8.9
             resolve: 1.22.8
             semver: 5.7.2
             validate-npm-package-license: 3.0.4
       
      -  /normalize-package-data@3.0.3:
      -    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
      -    engines: {node: '>=10'}
      +  normalize-package-data@3.0.3:
           dependencies:
             hosted-git-info: 4.1.0
             is-core-module: 2.13.1
             semver: 7.6.0
             validate-npm-package-license: 3.0.4
      -    dev: true
       
      -  /normalize-package-data@5.0.0:
      -    resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  normalize-package-data@5.0.0:
           dependencies:
             hosted-git-info: 6.1.1
             is-core-module: 2.13.1
             semver: 7.6.0
             validate-npm-package-license: 3.0.4
       
      -  /normalize-path@3.0.0:
      -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
      -    engines: {node: '>=0.10.0'}
      +  normalize-path@3.0.0: {}
       
      -  /normalize-range@0.1.2:
      -    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
      -    engines: {node: '>=0.10.0'}
      +  normalize-range@0.1.2: {}
       
      -  /normalize-registry-url@2.0.0:
      -    resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
      -    dev: true
      +  normalize-registry-url@2.0.0: {}
       
      -  /normalize-url@6.1.0:
      -    resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  normalize-url@6.1.0: {}
       
      -  /normalize-url@8.0.1:
      -    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
      -    engines: {node: '>=14.16'}
      -    dev: false
      +  normalize-url@8.0.1: {}
       
      -  /npm-bundled@1.1.2:
      -    resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
      +  npm-bundled@1.1.2:
           dependencies:
             npm-normalize-package-bin: 1.0.1
       
      -  /npm-bundled@3.0.0:
      -    resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-bundled@3.0.0:
           dependencies:
             npm-normalize-package-bin: 3.0.1
       
      -  /npm-install-checks@4.0.0:
      -    resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
      -    engines: {node: '>=10'}
      +  npm-install-checks@4.0.0:
           dependencies:
             semver: 7.6.0
       
      -  /npm-install-checks@6.3.0:
      -    resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-install-checks@6.3.0:
           dependencies:
             semver: 7.6.0
       
      -  /npm-normalize-package-bin@1.0.1:
      -    resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
      +  npm-normalize-package-bin@1.0.1: {}
       
      -  /npm-normalize-package-bin@2.0.0:
      -    resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  npm-normalize-package-bin@2.0.0: {}
       
      -  /npm-normalize-package-bin@3.0.1:
      -    resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-normalize-package-bin@3.0.1: {}
       
      -  /npm-package-arg@10.1.0:
      -    resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-package-arg@10.1.0:
           dependencies:
             hosted-git-info: 6.1.1
             proc-log: 3.0.0
             semver: 7.6.0
             validate-npm-package-name: 5.0.0
       
      -  /npm-package-arg@11.0.1:
      -    resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==}
      -    engines: {node: ^16.14.0 || >=18.0.0}
      +  npm-package-arg@11.0.1:
           dependencies:
             hosted-git-info: 7.0.1
             proc-log: 3.0.0
             semver: 7.6.0
             validate-npm-package-name: 5.0.0
      -    dev: true
       
      -  /npm-package-arg@8.1.5:
      -    resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==}
      -    engines: {node: '>=10'}
      +  npm-package-arg@8.1.5:
           dependencies:
             hosted-git-info: 4.1.0
             semver: 7.6.0
             validate-npm-package-name: 3.0.0
       
      -  /npm-packlist@3.0.0:
      -    resolution: {integrity: sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  npm-packlist@3.0.0:
           dependencies:
             glob: 7.2.3
             ignore-walk: 4.0.1
             npm-bundled: 1.1.2
             npm-normalize-package-bin: 1.0.1
       
      -  /npm-packlist@7.0.4:
      -    resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-packlist@7.0.4:
           dependencies:
             ignore-walk: 6.0.4
       
      -  /npm-pick-manifest@6.1.1:
      -    resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==}
      +  npm-pick-manifest@6.1.1:
           dependencies:
             npm-install-checks: 4.0.0
             npm-normalize-package-bin: 1.0.1
             npm-package-arg: 8.1.5
             semver: 7.6.0
       
      -  /npm-pick-manifest@8.0.2:
      -    resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-pick-manifest@8.0.2:
           dependencies:
             npm-install-checks: 6.3.0
             npm-normalize-package-bin: 3.0.1
             npm-package-arg: 10.1.0
             semver: 7.6.0
       
      -  /npm-registry-fetch@12.0.2:
      -    resolution: {integrity: sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      +  npm-registry-fetch@12.0.2:
           dependencies:
             make-fetch-happen: 10.2.1
             minipass: 3.3.6
      @@ -13221,9 +18134,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /npm-registry-fetch@14.0.5:
      -    resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  npm-registry-fetch@14.0.5:
           dependencies:
             make-fetch-happen: 11.1.1
             minipass: 5.0.0
      @@ -13235,175 +18146,119 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /npm-run-path@4.0.1:
      -    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
      -    engines: {node: '>=8'}
      +  npm-run-path@4.0.1:
           dependencies:
             path-key: 3.1.1
       
      -  /npmlog@5.0.1:
      -    resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
      +  npmlog@5.0.1:
           dependencies:
             are-we-there-yet: 2.0.0
             console-control-strings: 1.1.0
             gauge: 3.0.2
             set-blocking: 2.0.0
       
      -  /npmlog@6.0.2:
      -    resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  npmlog@6.0.2:
           dependencies:
             are-we-there-yet: 3.0.1
             console-control-strings: 1.1.0
             gauge: 4.0.4
             set-blocking: 2.0.0
       
      -  /nprogress@0.2.0:
      -    resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
      -    dev: false
      +  nprogress@0.2.0: {}
       
      -  /nth-check@2.1.1:
      -    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
      +  nth-check@2.1.1:
           dependencies:
             boolbase: 1.0.0
       
      -  /nwsapi@2.2.7:
      -    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
      -    dev: true
      +  nwsapi@2.2.7: {}
       
      -  /object-assign@4.1.1:
      -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
      -    engines: {node: '>=0.10.0'}
      +  object-assign@4.1.1: {}
       
      -  /object-hash@3.0.0:
      -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
      -    engines: {node: '>= 6'}
      -    dev: true
      +  object-hash@3.0.0: {}
       
      -  /object-inspect@1.13.1:
      -    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
      +  object-inspect@1.13.1: {}
       
      -  /object-is@1.1.6:
      -    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
      -    engines: {node: '>= 0.4'}
      +  object-is@1.1.6:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      -    dev: true
       
      -  /object-keys@1.1.1:
      -    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
      -    engines: {node: '>= 0.4'}
      +  object-keys@1.1.1: {}
       
      -  /object.assign@4.1.5:
      -    resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
      -    engines: {node: '>= 0.4'}
      +  object.assign@4.1.5:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             has-symbols: 1.0.3
             object-keys: 1.1.1
       
      -  /object.entries@1.1.8:
      -    resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
      -    engines: {node: '>= 0.4'}
      +  object.entries@1.1.8:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /object.fromentries@2.0.8:
      -    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
      -    engines: {node: '>= 0.4'}
      +  object.fromentries@2.0.8:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /object.groupby@1.0.3:
      -    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
      -    engines: {node: '>= 0.4'}
      +  object.groupby@1.0.3:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
      -    dev: true
       
      -  /object.hasown@1.1.4:
      -    resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
      -    engines: {node: '>= 0.4'}
      +  object.hasown@1.1.4:
           dependencies:
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /object.values@1.2.0:
      -    resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
      -    engines: {node: '>= 0.4'}
      +  object.values@1.2.0:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /obuf@1.1.2:
      -    resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
      +  obuf@1.1.2: {}
       
      -  /on-finished@2.4.1:
      -    resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
      -    engines: {node: '>= 0.8'}
      +  on-finished@2.4.1:
           dependencies:
             ee-first: 1.1.1
       
      -  /on-headers@1.0.2:
      -    resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
      -    engines: {node: '>= 0.8'}
      +  on-headers@1.0.2: {}
       
      -  /once@1.4.0:
      -    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
      +  once@1.4.0:
           dependencies:
             wrappy: 1.0.2
       
      -  /one-time@1.0.0:
      -    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
      +  one-time@1.0.0:
           dependencies:
             fn.name: 1.1.0
       
      -  /onetime@5.1.2:
      -    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
      -    engines: {node: '>=6'}
      +  onetime@5.1.2:
           dependencies:
             mimic-fn: 2.1.0
       
      -  /open@10.1.0:
      -    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
      -    engines: {node: '>=18'}
      +  open@10.1.0:
           dependencies:
             default-browser: 5.2.1
             define-lazy-prop: 3.0.0
             is-inside-container: 1.0.0
             is-wsl: 3.1.0
       
      -  /open@8.4.2:
      -    resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
      -    engines: {node: '>=12'}
      +  open@8.4.2:
           dependencies:
             define-lazy-prop: 2.0.0
             is-docker: 2.2.1
             is-wsl: 2.2.0
      -    dev: false
       
      -  /opener@1.5.2:
      -    resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
      -    hasBin: true
      +  opener@1.5.2: {}
       
      -  /optionator@0.9.3:
      -    resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
      -    engines: {node: '>= 0.8.0'}
      +  optionator@0.9.3:
           dependencies:
             '@aashutoshrathi/word-wrap': 1.2.6
             deep-is: 0.1.4
      @@ -13412,9 +18267,7 @@ packages:
             prelude-ls: 1.2.1
             type-check: 0.4.0
       
      -  /ora@5.4.1:
      -    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
      -    engines: {node: '>=10'}
      +  ora@5.4.1:
           dependencies:
             bl: 4.1.0
             chalk: 4.1.2
      @@ -13426,143 +18279,89 @@ packages:
             strip-ansi: 6.0.1
             wcwidth: 1.0.1
       
      -  /os-tmpdir@1.0.2:
      -    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
      -    engines: {node: '>=0.10.0'}
      +  os-tmpdir@1.0.2: {}
       
      -  /p-cancelable@3.0.0:
      -    resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
      -    engines: {node: '>=12.20'}
      -    dev: false
      +  p-cancelable@3.0.0: {}
       
      -  /p-defer@1.0.0:
      -    resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  p-defer@1.0.0: {}
       
      -  /p-filter@2.1.0:
      -    resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
      -    engines: {node: '>=8'}
      +  p-filter@2.1.0:
           dependencies:
             p-map: 2.1.0
      -    dev: true
       
      -  /p-finally@1.0.0:
      -    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
      -    engines: {node: '>=4'}
      +  p-finally@1.0.0: {}
       
      -  /p-limit@2.3.0:
      -    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
      -    engines: {node: '>=6'}
      +  p-limit@2.3.0:
           dependencies:
             p-try: 2.2.0
       
      -  /p-limit@3.1.0:
      -    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
      -    engines: {node: '>=10'}
      +  p-limit@3.1.0:
           dependencies:
             yocto-queue: 0.1.0
       
      -  /p-limit@4.0.0:
      -    resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  p-limit@4.0.0:
           dependencies:
             yocto-queue: 1.0.0
      -    dev: false
       
      -  /p-locate@3.0.0:
      -    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
      -    engines: {node: '>=6'}
      +  p-locate@3.0.0:
           dependencies:
             p-limit: 2.3.0
      -    dev: false
       
      -  /p-locate@4.1.0:
      -    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
      -    engines: {node: '>=8'}
      +  p-locate@4.1.0:
           dependencies:
             p-limit: 2.3.0
       
      -  /p-locate@5.0.0:
      -    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
      -    engines: {node: '>=10'}
      +  p-locate@5.0.0:
           dependencies:
             p-limit: 3.1.0
       
      -  /p-locate@6.0.0:
      -    resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  p-locate@6.0.0:
           dependencies:
             p-limit: 4.0.0
      -    dev: false
       
      -  /p-map@2.1.0:
      -    resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  p-map@2.1.0: {}
       
      -  /p-map@4.0.0:
      -    resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
      -    engines: {node: '>=10'}
      +  p-map@4.0.0:
           dependencies:
             aggregate-error: 3.1.0
       
      -  /p-queue@6.6.2:
      -    resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
      -    engines: {node: '>=8'}
      +  p-queue@6.6.2:
           dependencies:
             eventemitter3: 4.0.7
             p-timeout: 3.2.0
       
      -  /p-retry@4.6.2:
      -    resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
      -    engines: {node: '>=8'}
      +  p-retry@4.6.2:
           dependencies:
             '@types/retry': 0.12.0
             retry: 0.13.1
      -    dev: false
       
      -  /p-retry@6.2.0:
      -    resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==}
      -    engines: {node: '>=16.17'}
      +  p-retry@6.2.0:
           dependencies:
             '@types/retry': 0.12.2
             is-network-error: 1.1.0
             retry: 0.13.1
       
      -  /p-timeout@3.2.0:
      -    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
      -    engines: {node: '>=8'}
      +  p-timeout@3.2.0:
           dependencies:
             p-finally: 1.0.0
       
      -  /p-transform@1.3.0:
      -    resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==}
      -    engines: {node: '>=12.10.0'}
      +  p-transform@1.3.0:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             p-queue: 6.6.2
           transitivePeerDependencies:
             - supports-color
       
      -  /p-try@2.2.0:
      -    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
      -    engines: {node: '>=6'}
      +  p-try@2.2.0: {}
       
      -  /package-json@8.1.1:
      -    resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
      -    engines: {node: '>=14.16'}
      +  package-json@8.1.1:
           dependencies:
             got: 12.6.1
             registry-auth-token: 5.0.2
             registry-url: 6.0.1
             semver: 7.6.0
      -    dev: false
       
      -  /pacote@12.0.3:
      -    resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16}
      -    hasBin: true
      +  pacote@12.0.3:
           dependencies:
             '@npmcli/git': 2.1.0
             '@npmcli/installed-package-contents': 1.0.7
      @@ -13587,10 +18386,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /pacote@15.2.0:
      -    resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      +  pacote@15.2.0:
           dependencies:
             '@npmcli/git': 4.1.0
             '@npmcli/installed-package-contents': 2.0.2
      @@ -13614,32 +18410,24 @@ packages:
             - bluebird
             - supports-color
       
      -  /pako@1.0.11:
      -    resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
      -    dev: true
      +  pako@1.0.11: {}
       
      -  /param-case@3.0.4:
      -    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
      +  param-case@3.0.4:
           dependencies:
             dot-case: 3.0.4
             tslib: 2.6.2
       
      -  /parent-module@1.0.1:
      -    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
      -    engines: {node: '>=6'}
      +  parent-module@1.0.1:
           dependencies:
             callsites: 3.1.0
       
      -  /parse-conflict-json@2.0.2:
      -    resolution: {integrity: sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  parse-conflict-json@2.0.2:
           dependencies:
             json-parse-even-better-errors: 2.3.1
             just-diff: 5.2.0
             just-diff-apply: 5.5.0
       
      -  /parse-entities@4.0.1:
      -    resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
      +  parse-entities@4.0.1:
           dependencies:
             '@types/unist': 2.0.10
             character-entities: 2.0.2
      @@ -13650,321 +18438,177 @@ packages:
             is-decimal: 2.0.1
             is-hexadecimal: 2.0.1
       
      -  /parse-json@5.2.0:
      -    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
      -    engines: {node: '>=8'}
      +  parse-json@5.2.0:
           dependencies:
             '@babel/code-frame': 7.24.2
             error-ex: 1.3.2
             json-parse-even-better-errors: 2.3.1
             lines-and-columns: 1.2.4
       
      -  /parse-ms@2.1.0:
      -    resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  parse-ms@2.1.0: {}
       
      -  /parse-numeric-range@1.3.0:
      -    resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
      -    dev: false
      +  parse-numeric-range@1.3.0: {}
       
      -  /parse-srcset@1.0.2:
      -    resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
      -    dev: false
      +  parse-srcset@1.0.2: {}
       
      -  /parse5-htmlparser2-tree-adapter@7.0.0:
      -    resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
      +  parse5-htmlparser2-tree-adapter@7.0.0:
           dependencies:
             domhandler: 5.0.3
             parse5: 7.1.2
      -    dev: false
       
      -  /parse5@7.1.2:
      -    resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
      +  parse5@7.1.2:
           dependencies:
             entities: 4.5.0
       
      -  /parseurl@1.3.3:
      -    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
      -    engines: {node: '>= 0.8'}
      +  parseurl@1.3.3: {}
       
      -  /pascal-case@3.1.2:
      -    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
      +  pascal-case@3.1.2:
           dependencies:
             no-case: 3.0.4
             tslib: 2.6.2
       
      -  /path-absolute@1.0.1:
      -    resolution: {integrity: sha512-gds5iRhSeOcDtj8gfWkRHLtZKTPsFVuh7utbjYtvnclw4XM+ffRzJrwqMhOD1PVqef7nBLmgsu1vIujjvAJrAw==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  path-absolute@1.0.1: {}
       
      -  /path-exists@3.0.0:
      -    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
      -    engines: {node: '>=4'}
      -    dev: false
      +  path-exists@3.0.0: {}
       
      -  /path-exists@4.0.0:
      -    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
      -    engines: {node: '>=8'}
      +  path-exists@4.0.0: {}
       
      -  /path-exists@5.0.0:
      -    resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      -    dev: false
      +  path-exists@5.0.0: {}
       
      -  /path-is-absolute@1.0.1:
      -    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
      -    engines: {node: '>=0.10.0'}
      +  path-is-absolute@1.0.1: {}
       
      -  /path-is-inside@1.0.2:
      -    resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
      -    dev: false
      +  path-is-inside@1.0.2: {}
       
      -  /path-key@3.1.1:
      -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
      -    engines: {node: '>=8'}
      +  path-key@3.1.1: {}
       
      -  /path-name@1.0.0:
      -    resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==}
      +  path-name@1.0.0: {}
       
      -  /path-parse@1.0.7:
      -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
      +  path-parse@1.0.7: {}
       
      -  /path-scurry@1.10.1:
      -    resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      +  path-scurry@1.10.1:
           dependencies:
             lru-cache: 10.2.0
             minipass: 7.0.4
       
      -  /path-temp@2.1.0:
      -    resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==}
      -    engines: {node: '>=8.15'}
      +  path-temp@2.1.0:
           dependencies:
             unique-string: 2.0.0
      -    dev: true
       
      -  /path-to-regexp@0.1.7:
      -    resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
      +  path-to-regexp@0.1.7: {}
       
      -  /path-to-regexp@1.8.0:
      -    resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
      +  path-to-regexp@1.8.0:
           dependencies:
             isarray: 0.0.1
      -    dev: false
       
      -  /path-to-regexp@2.2.1:
      -    resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
      -    dev: false
      +  path-to-regexp@2.2.1: {}
       
      -  /path-to-regexp@6.2.1:
      -    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
      -    dev: true
      +  path-to-regexp@6.2.1: {}
       
      -  /path-type@4.0.0:
      -    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
      -    engines: {node: '>=8'}
      +  path-type@4.0.0: {}
       
      -  /pathval@2.0.0:
      -    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
      -    engines: {node: '>= 14.16'}
      -    dev: true
      +  pathval@2.0.0: {}
       
      -  /periscopic@3.1.0:
      -    resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
      +  periscopic@3.1.0:
           dependencies:
             '@types/estree': 1.0.5
             estree-walker: 3.0.3
             is-reference: 3.0.2
       
      -  /picocolors@1.0.0:
      -    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
      +  picocolors@1.0.0: {}
       
      -  /picomatch@2.3.1:
      -    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
      -    engines: {node: '>=8.6'}
      +  picomatch@2.3.1: {}
       
      -  /pify@2.3.0:
      -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
      -    engines: {node: '>=0.10.0'}
      +  pify@2.3.0: {}
       
      -  /pify@4.0.1:
      -    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
      -    engines: {node: '>=6'}
      +  pify@4.0.1: {}
       
      -  /pirates@4.0.6:
      -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
      -    engines: {node: '>= 6'}
      -    dev: true
      +  pirates@4.0.6: {}
       
      -  /pkg-dir@4.2.0:
      -    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
      -    engines: {node: '>=8'}
      +  pkg-dir@4.2.0:
           dependencies:
             find-up: 4.1.0
       
      -  /pkg-dir@7.0.0:
      -    resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
      -    engines: {node: '>=14.16'}
      +  pkg-dir@7.0.0:
           dependencies:
             find-up: 6.3.0
      -    dev: false
       
      -  /pkg-up@3.1.0:
      -    resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
      -    engines: {node: '>=8'}
      +  pkg-up@3.1.0:
           dependencies:
             find-up: 3.0.0
      -    dev: false
       
      -  /pluralize@8.0.0:
      -    resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  pluralize@8.0.0: {}
       
      -  /portfinder@1.0.32:
      -    resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
      -    engines: {node: '>= 0.12.0'}
      +  portfinder@1.0.32:
           dependencies:
             async: 2.6.4
             debug: 3.2.7
             mkdirp: 0.5.6
           transitivePeerDependencies:
             - supports-color
      -    dev: true
       
      -  /possible-typed-array-names@1.0.0:
      -    resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
      -    engines: {node: '>= 0.4'}
      -    dev: true
      +  possible-typed-array-names@1.0.0: {}
       
      -  /postcss-calc@8.2.4(postcss@8.4.38):
      -    resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
      -    peerDependencies:
      -      postcss: ^8.2.2
      +  postcss-calc@8.2.4(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-colormin@5.3.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-colormin@5.3.1(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             colord: 2.9.3
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-convert-values@5.1.3(postcss@8.4.38):
      -    resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-convert-values@5.1.3(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-discard-comments@5.1.2(postcss@8.4.38):
      -    resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-discard-comments@5.1.2(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-discard-duplicates@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-discard-duplicates@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-discard-empty@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-discard-empty@5.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-discard-overridden@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-discard-overridden@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-discard-unused@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-discard-unused@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: false
       
      -  /postcss-import@15.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
      -    engines: {node: '>=14.0.0'}
      -    peerDependencies:
      -      postcss: ^8.0.0
      +  postcss-import@15.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             read-cache: 1.0.0
             resolve: 1.22.8
      -    dev: true
       
      -  /postcss-js@4.0.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
      -    engines: {node: ^12 || ^14 || >= 16}
      -    peerDependencies:
      -      postcss: ^8.4.21
      +  postcss-js@4.0.1(postcss@8.4.38):
           dependencies:
             camelcase-css: 2.0.1
             postcss: 8.4.38
      -    dev: true
       
      -  /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
      -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
      -    engines: {node: '>= 14'}
      -    peerDependencies:
      -      postcss: '>=8.0.9'
      -      ts-node: '>=9.0.0'
      -    peerDependenciesMeta:
      -      postcss:
      -        optional: true
      -      ts-node:
      -        optional: true
      +  postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
           dependencies:
             lilconfig: 3.1.1
             postcss: 8.4.38
             ts-node: 10.9.2(@types/node@18.18.2)(typescript@5.4.3)
             yaml: 2.4.1
      -    dev: true
       
      -  /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
      -    engines: {node: '>= 14.15.0'}
      -    peerDependencies:
      -      postcss: ^7.0.0 || ^8.0.1
      -      webpack: ^5.0.0
      +  postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
           dependencies:
             cosmiconfig: 8.3.6(typescript@5.4.3)
             jiti: 1.21.0
      @@ -13973,20 +18617,8 @@ packages:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - typescript
      -    dev: false
       
      -  /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
      -    engines: {node: '>= 18.12.0'}
      -    peerDependencies:
      -      '@rspack/core': 0.x || 1.x
      -      postcss: ^7.0.0 || ^8.0.1
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      '@rspack/core':
      -        optional: true
      -      webpack:
      -        optional: true
      +  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0):
           dependencies:
             cosmiconfig: 9.0.0(typescript@5.4.3)
             jiti: 1.21.0
      @@ -13995,655 +18627,343 @@ packages:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
           transitivePeerDependencies:
             - typescript
      -    dev: true
       
      -  /postcss-merge-idents@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-merge-idents@5.1.1(postcss@8.4.38):
           dependencies:
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-merge-longhand@5.1.7(postcss@8.4.38):
      -    resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-merge-longhand@5.1.7(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             stylehacks: 5.1.1(postcss@8.4.38)
      -    dev: false
       
      -  /postcss-merge-rules@5.1.4(postcss@8.4.38):
      -    resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-merge-rules@5.1.4(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: false
       
      -  /postcss-minify-font-values@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-minify-font-values@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-minify-gradients@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-minify-gradients@5.1.1(postcss@8.4.38):
           dependencies:
             colord: 2.9.3
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-minify-params@5.1.4(postcss@8.4.38):
      -    resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-minify-params@5.1.4(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-minify-selectors@5.2.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-minify-selectors@5.2.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: false
       
      -  /postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
       
      -  /postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
      -    resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
             postcss-value-parser: 4.2.0
       
      -  /postcss-modules-scope@3.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  postcss-modules-scope@3.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
       
      -  /postcss-modules-values@4.0.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
      -    engines: {node: ^10 || ^12 || >= 14}
      -    peerDependencies:
      -      postcss: ^8.1.0
      +  postcss-modules-values@4.0.0(postcss@8.4.38):
           dependencies:
             icss-utils: 5.1.0(postcss@8.4.38)
             postcss: 8.4.38
       
      -  /postcss-nested@6.0.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
      -    engines: {node: '>=12.0'}
      -    peerDependencies:
      -      postcss: ^8.2.14
      +  postcss-nested@6.0.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: true
       
      -  /postcss-normalize-charset@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-charset@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-normalize-display-values@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-display-values@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-positions@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-positions@5.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-string@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-string@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-unicode@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-unicode@5.1.1(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-url@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-url@5.1.0(postcss@8.4.38):
           dependencies:
             normalize-url: 6.1.0
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-ordered-values@5.1.3(postcss@8.4.38):
      -    resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-ordered-values@5.1.3(postcss@8.4.38):
           dependencies:
             cssnano-utils: 3.1.0(postcss@8.4.38)
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-reduce-idents@5.2.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-reduce-idents@5.2.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-reduce-initial@5.1.2(postcss@8.4.38):
      -    resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-reduce-initial@5.1.2(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             caniuse-api: 3.0.0
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss-reduce-transforms@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-reduce-transforms@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
      -    dev: false
       
      -  /postcss-selector-parser@6.0.16:
      -    resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
      -    engines: {node: '>=4'}
      +  postcss-selector-parser@6.0.16:
           dependencies:
             cssesc: 3.0.0
             util-deprecate: 1.0.2
       
      -  /postcss-sort-media-queries@4.4.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==}
      -    engines: {node: '>=10.0.0'}
      -    peerDependencies:
      -      postcss: ^8.4.16
      +  postcss-sort-media-queries@4.4.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             sort-css-media-queries: 2.1.0
      -    dev: false
       
      -  /postcss-svgo@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-svgo@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-value-parser: 4.2.0
             svgo: 2.8.0
      -    dev: false
       
      -  /postcss-unique-selectors@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  postcss-unique-selectors@5.1.1(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: false
      -
      -  /postcss-value-parser@4.2.0:
      -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
      -
      -  /postcss-zindex@5.1.0(postcss@8.4.38):
      -    resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +
      +  postcss-value-parser@4.2.0: {}
      +
      +  postcss-zindex@5.1.0(postcss@8.4.38):
           dependencies:
             postcss: 8.4.38
      -    dev: false
       
      -  /postcss@8.4.31:
      -    resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
      -    engines: {node: ^10 || ^12 || >=14}
      +  postcss@8.4.31:
           dependencies:
             nanoid: 3.3.7
             picocolors: 1.0.0
             source-map-js: 1.2.0
      -    dev: false
       
      -  /postcss@8.4.38:
      -    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
      -    engines: {node: ^10 || ^12 || >=14}
      +  postcss@8.4.38:
           dependencies:
             nanoid: 3.3.7
             picocolors: 1.0.0
             source-map-js: 1.2.0
       
      -  /preferred-pm@3.1.3:
      -    resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==}
      -    engines: {node: '>=10'}
      +  preferred-pm@3.1.3:
           dependencies:
             find-up: 5.0.0
             find-yarn-workspace-root2: 1.2.16
             path-exists: 4.0.0
             which-pm: 2.0.0
       
      -  /prelude-ls@1.2.1:
      -    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
      -    engines: {node: '>= 0.8.0'}
      +  prelude-ls@1.2.1: {}
       
      -  /prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
      -    resolution: {integrity: sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==}
      -    engines: {node: '>=14.21.3'}
      -    peerDependencies:
      -      '@ianvs/prettier-plugin-sort-imports': '*'
      -      '@prettier/plugin-pug': '*'
      -      '@shopify/prettier-plugin-liquid': '*'
      -      '@trivago/prettier-plugin-sort-imports': '*'
      -      prettier: ^3.0
      -      prettier-plugin-astro: '*'
      -      prettier-plugin-css-order: '*'
      -      prettier-plugin-import-sort: '*'
      -      prettier-plugin-jsdoc: '*'
      -      prettier-plugin-marko: '*'
      -      prettier-plugin-organize-attributes: '*'
      -      prettier-plugin-organize-imports: '*'
      -      prettier-plugin-sort-imports: '*'
      -      prettier-plugin-style-order: '*'
      -      prettier-plugin-svelte: '*'
      -      prettier-plugin-twig-melody: '*'
      -    peerDependenciesMeta:
      -      '@ianvs/prettier-plugin-sort-imports':
      -        optional: true
      -      '@prettier/plugin-pug':
      -        optional: true
      -      '@shopify/prettier-plugin-liquid':
      -        optional: true
      -      '@trivago/prettier-plugin-sort-imports':
      -        optional: true
      -      prettier-plugin-astro:
      -        optional: true
      -      prettier-plugin-css-order:
      -        optional: true
      -      prettier-plugin-import-sort:
      -        optional: true
      -      prettier-plugin-jsdoc:
      -        optional: true
      -      prettier-plugin-marko:
      -        optional: true
      -      prettier-plugin-organize-attributes:
      -        optional: true
      -      prettier-plugin-organize-imports:
      -        optional: true
      -      prettier-plugin-sort-imports:
      -        optional: true
      -      prettier-plugin-style-order:
      -        optional: true
      -      prettier-plugin-svelte:
      -        optional: true
      -      prettier-plugin-twig-melody:
      -        optional: true
      +  prettier-plugin-tailwindcss@0.5.12(prettier@3.2.5):
           dependencies:
             prettier: 3.2.5
      -    dev: true
       
      -  /prettier@3.2.5:
      -    resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
      -    engines: {node: '>=14'}
      -    hasBin: true
      +  prettier@3.2.5: {}
       
      -  /pretty-bytes@5.6.0:
      -    resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
      -    engines: {node: '>=6'}
      +  pretty-bytes@5.6.0: {}
       
      -  /pretty-error@4.0.0:
      -    resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
      +  pretty-error@4.0.0:
           dependencies:
             lodash: 4.17.21
             renderkid: 3.0.0
       
      -  /pretty-format@27.5.1:
      -    resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
      -    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
      +  pretty-format@27.5.1:
           dependencies:
             ansi-regex: 5.0.1
             ansi-styles: 5.2.0
             react-is: 17.0.2
      -    dev: true
       
      -  /pretty-format@29.7.0:
      -    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
      -    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
      +  pretty-format@29.7.0:
           dependencies:
             '@jest/schemas': 29.6.3
             ansi-styles: 5.2.0
             react-is: 18.2.0
      -    dev: true
       
      -  /pretty-ms@7.0.1:
      -    resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
      -    engines: {node: '>=10'}
      +  pretty-ms@7.0.1:
           dependencies:
             parse-ms: 2.1.0
      -    dev: true
       
      -  /pretty-time@1.1.0:
      -    resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
      -    engines: {node: '>=4'}
      -    dev: false
      +  pretty-time@1.1.0: {}
       
      -  /print-diff@1.0.0:
      -    resolution: {integrity: sha512-tvYT1pVzXxTOMLDRyu6ncaF2LL69d0EAchmGGGJoLc/2GOcnRKcO4PV89l7/s3Er1CpXTgFv7jB4XDgd+yxBjA==}
      -    engines: {node: '>=8.3'}
      +  print-diff@1.0.0:
           dependencies:
             diff: 4.0.2
      -    dev: true
       
      -  /printable-characters@1.0.42:
      -    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
      -    dev: true
      +  printable-characters@1.0.42: {}
       
      -  /prism-react-renderer@2.3.1(react@18.2.0):
      -    resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
      -    peerDependencies:
      -      react: '>=16.0.0 || 18'
      +  prism-react-renderer@2.3.1(react@18.2.0):
           dependencies:
             '@types/prismjs': 1.26.3
             clsx: 2.1.0
             react: 18.2.0
      -    dev: false
       
      -  /prismjs@1.29.0:
      -    resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  prismjs@1.29.0: {}
       
      -  /proc-log@1.0.0:
      -    resolution: {integrity: sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==}
      +  proc-log@1.0.0: {}
       
      -  /proc-log@3.0.0:
      -    resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  proc-log@3.0.0: {}
       
      -  /process-nextick-args@2.0.1:
      -    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
      +  process-nextick-args@2.0.1: {}
       
      -  /process@0.11.10:
      -    resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
      -    engines: {node: '>= 0.6.0'}
      +  process@0.11.10: {}
       
      -  /promise-all-reject-late@1.0.1:
      -    resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
      +  promise-all-reject-late@1.0.1: {}
       
      -  /promise-call-limit@1.0.2:
      -    resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==}
      +  promise-call-limit@1.0.2: {}
       
      -  /promise-inflight@1.0.1:
      -    resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
      -    peerDependencies:
      -      bluebird: '*'
      -    peerDependenciesMeta:
      -      bluebird:
      -        optional: true
      +  promise-inflight@1.0.1: {}
       
      -  /promise-retry@2.0.1:
      -    resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
      -    engines: {node: '>=10'}
      +  promise-retry@2.0.1:
           dependencies:
             err-code: 2.0.3
             retry: 0.12.0
       
      -  /prompts@2.4.2:
      -    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
      -    engines: {node: '>= 6'}
      +  prompts@2.4.2:
           dependencies:
             kleur: 3.0.3
             sisteransi: 1.0.5
       
      -  /prop-types@15.8.1:
      -    resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
      +  prop-types@15.8.1:
           dependencies:
             loose-envify: 1.4.0
             object-assign: 4.1.1
             react-is: 16.13.1
       
      -  /property-information@6.4.1:
      -    resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
      +  property-information@6.4.1: {}
       
      -  /proto-list@1.2.4:
      -    resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
      +  proto-list@1.2.4: {}
       
      -  /proxy-addr@2.0.7:
      -    resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
      -    engines: {node: '>= 0.10'}
      +  proxy-addr@2.0.7:
           dependencies:
             forwarded: 0.2.0
             ipaddr.js: 1.9.1
       
      -  /psl@1.9.0:
      -    resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
      -    dev: true
      +  psl@1.9.0: {}
       
      -  /punycode@1.4.1:
      -    resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
      -    dev: false
      +  punycode@1.4.1: {}
       
      -  /punycode@2.3.1:
      -    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
      -    engines: {node: '>=6'}
      +  punycode@2.3.1: {}
       
      -  /pupa@3.1.0:
      -    resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
      -    engines: {node: '>=12.20'}
      +  pupa@3.1.0:
           dependencies:
             escape-goat: 4.0.0
      -    dev: false
       
      -  /pure-rand@6.1.0:
      -    resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
      -    dev: true
      +  pure-rand@6.1.0: {}
       
      -  /qs@6.11.0:
      -    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
      -    engines: {node: '>=0.6'}
      +  qs@6.11.0:
           dependencies:
             side-channel: 1.0.6
       
      -  /qs@6.12.0:
      -    resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
      -    engines: {node: '>=0.6'}
      +  qs@6.12.0:
           dependencies:
             side-channel: 1.0.6
      -    dev: true
       
      -  /querystringify@2.2.0:
      -    resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
      -    dev: true
      +  querystringify@2.2.0: {}
       
      -  /queue-microtask@1.2.3:
      -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
      +  queue-microtask@1.2.3: {}
       
      -  /queue@6.0.2:
      -    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
      +  queue@6.0.2:
           dependencies:
             inherits: 2.0.4
      -    dev: false
       
      -  /quick-lru@4.0.1:
      -    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
      -    engines: {node: '>=8'}
      -    dev: true
      +  quick-lru@4.0.1: {}
       
      -  /quick-lru@5.1.1:
      -    resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
      -    engines: {node: '>=10'}
      +  quick-lru@5.1.1: {}
       
      -  /railroad-diagrams@1.0.0:
      -    resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
      -    dev: false
      +  railroad-diagrams@1.0.0: {}
       
      -  /rambda@7.5.0:
      -    resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==}
      -    dev: true
      +  rambda@7.5.0: {}
       
      -  /ramda@0.29.1:
      -    resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==}
      -    dev: true
      +  ramda@0.29.1: {}
       
      -  /randexp@0.4.6:
      -    resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
      -    engines: {node: '>=0.12'}
      +  randexp@0.4.6:
           dependencies:
             discontinuous-range: 1.0.0
             ret: 0.1.15
      -    dev: false
       
      -  /randombytes@2.1.0:
      -    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
      +  randombytes@2.1.0:
           dependencies:
             safe-buffer: 5.2.1
       
      -  /range-parser@1.2.0:
      -    resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
      -    engines: {node: '>= 0.6'}
      -    dev: false
      +  range-parser@1.2.0: {}
       
      -  /range-parser@1.2.1:
      -    resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
      -    engines: {node: '>= 0.6'}
      +  range-parser@1.2.1: {}
       
      -  /raw-body@2.5.2:
      -    resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
      -    engines: {node: '>= 0.8'}
      +  raw-body@2.5.2:
           dependencies:
             bytes: 3.1.2
             http-errors: 2.0.0
             iconv-lite: 0.4.24
             unpipe: 1.0.0
       
      -  /rc@1.2.8:
      -    resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
      -    hasBin: true
      +  rc@1.2.8:
           dependencies:
             deep-extend: 0.6.0
             ini: 1.3.8
             minimist: 1.2.8
             strip-json-comments: 2.0.1
      -    dev: false
       
      -  /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      typescript: '>=2.7'
      -      webpack: '>=4'
      -    peerDependenciesMeta:
      -      typescript:
      -        optional: true
      +  react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.3)(webpack@5.91.0):
           dependencies:
             '@babel/code-frame': 7.24.2
             address: 1.2.2
      @@ -14675,29 +18995,18 @@ packages:
             - eslint
             - supports-color
             - vue-template-compiler
      -    dev: false
       
      -  /react-dom@18.2.0(react@18.2.0):
      -    resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
      -    peerDependencies:
      -      react: ^18.2.0 || 18
      +  react-dom@18.2.0(react@18.2.0):
           dependencies:
             loose-envify: 1.4.0
             react: 18.2.0
             scheduler: 0.23.0
       
      -  /react-error-overlay@6.0.11:
      -    resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
      -    dev: false
      +  react-error-overlay@6.0.11: {}
       
      -  /react-fast-compare@3.2.2:
      -    resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
      +  react-fast-compare@3.2.2: {}
       
      -  /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
      -    peerDependencies:
      -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +  react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
           dependencies:
             '@babel/runtime': 7.24.1
             invariant: 2.2.4
      @@ -14707,11 +19016,7 @@ packages:
             react-fast-compare: 3.2.2
             shallowequal: 1.1.0
       
      -  /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==}
      -    peerDependencies:
      -      react: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      -      react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || 18
      +  react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0):
           dependencies:
             invariant: 2.2.4
             react: 18.2.0
      @@ -14719,42 +19024,23 @@ packages:
             react-fast-compare: 3.2.2
             shallowequal: 1.1.0
       
      -  /react-is@16.13.1:
      -    resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
      +  react-is@16.13.1: {}
       
      -  /react-is@17.0.2:
      -    resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
      -    dev: true
      +  react-is@17.0.2: {}
       
      -  /react-is@18.2.0:
      -    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
      -    dev: true
      +  react-is@18.2.0: {}
       
      -  /react-json-view-lite@1.3.0(react@18.2.0):
      -    resolution: {integrity: sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ==}
      -    engines: {node: '>=14'}
      -    peerDependencies:
      -      react: ^16.13.1 || ^17.0.0 || ^18.0.0 || 18
      +  react-json-view-lite@1.3.0(react@18.2.0):
           dependencies:
             react: 18.2.0
      -    dev: false
       
      -  /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
      -    resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
      -    engines: {node: '>=10.13.0'}
      -    peerDependencies:
      -      react-loadable: '*'
      -      webpack: '>=4.41.1 || 5.x'
      +  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.91.0):
           dependencies:
             '@babel/runtime': 7.24.1
      -      react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
      +      react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)'
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /react-player@2.15.1(react@18.2.0):
      -    resolution: {integrity: sha512-ni1XFuYZuhIKKdeFII+KRLmIPcvCYlyXvtSMhNOgssdfnSovmakBtBTW2bxowPvmpKy5BTR4jC4CF79ucgHT+g==}
      -    peerDependencies:
      -      react: '>=16.6.0 || 18'
      +  react-player@2.15.1(react@18.2.0):
           dependencies:
             deepmerge: 4.3.1
             load-script: 1.0.0
      @@ -14762,23 +19048,14 @@ packages:
             prop-types: 15.8.1
             react: 18.2.0
             react-fast-compare: 3.2.2
      -    dev: false
       
      -  /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
      -    resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      -      react-router: '>=5'
      +  react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
           dependencies:
             '@babel/runtime': 7.24.1
             react: 18.2.0
             react-router: 5.3.4(react@18.2.0)
      -    dev: false
       
      -  /react-router-dom@5.3.4(react@18.2.0):
      -    resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      +  react-router-dom@5.3.4(react@18.2.0):
           dependencies:
             '@babel/runtime': 7.24.1
             history: 4.10.1
      @@ -14788,12 +19065,8 @@ packages:
             react-router: 5.3.4(react@18.2.0)
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
      -    dev: false
       
      -  /react-router@5.3.4(react@18.2.0):
      -    resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
      -    peerDependencies:
      -      react: '>=15 || 18'
      +  react-router@5.3.4(react@18.2.0):
           dependencies:
             '@babel/runtime': 7.24.1
             history: 4.10.1
      @@ -14805,28 +19078,15 @@ packages:
             react-is: 16.13.1
             tiny-invariant: 1.3.3
             tiny-warning: 1.0.3
      -    dev: false
       
      -  /react-string-replace@1.1.1:
      -    resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==}
      -    engines: {node: '>=0.12.0'}
      -    dev: false
      +  react-string-replace@1.1.1: {}
       
      -  /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
      -    resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
      -    peerDependencies:
      -      react: '*'
      -      tslib: '*'
      +  react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
           dependencies:
             react: 18.2.0
             tslib: 2.6.2
      -    dev: false
       
      -  /react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
      -    resolution: {integrity: sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==}
      -    peerDependencies:
      -      react: '*'
      -      react-dom: '*'
      +  react-use@17.5.0(react-dom@18.2.0)(react@18.2.0):
           dependencies:
             '@types/js-cookie': 2.2.7
             '@xobotyi/scrollbar-width': 1.9.5
      @@ -14844,101 +19104,71 @@ packages:
             throttle-debounce: 3.0.1
             ts-easing: 0.2.0
             tslib: 2.6.2
      -    dev: false
       
      -  /react@18.2.0:
      -    resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
      -    engines: {node: '>=0.10.0'}
      +  react@18.2.0:
           dependencies:
             loose-envify: 1.4.0
       
      -  /read-cache@1.0.0:
      -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
      +  read-cache@1.0.0:
           dependencies:
             pify: 2.3.0
      -    dev: true
       
      -  /read-cmd-shim@3.0.1:
      -    resolution: {integrity: sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  read-cmd-shim@3.0.1: {}
       
      -  /read-ini-file@4.0.0:
      -    resolution: {integrity: sha512-zz4qv/sKETv7nAkATqSJ9YMbKD8NXRPuA8d17VdYCuNYrVstB1S6UAMU6aytf5vRa9MESbZN7jLZdcmrOxz4gg==}
      -    engines: {node: '>=14.6'}
      +  read-ini-file@4.0.0:
           dependencies:
             ini: 3.0.1
             strip-bom: 4.0.0
      -    dev: true
       
      -  /read-package-json-fast@2.0.3:
      -    resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==}
      -    engines: {node: '>=10'}
      +  read-package-json-fast@2.0.3:
           dependencies:
             json-parse-even-better-errors: 2.3.1
             npm-normalize-package-bin: 1.0.1
       
      -  /read-package-json-fast@3.0.2:
      -    resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  read-package-json-fast@3.0.2:
           dependencies:
             json-parse-even-better-errors: 3.0.1
             npm-normalize-package-bin: 3.0.1
       
      -  /read-package-json@6.0.4:
      -    resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  read-package-json@6.0.4:
           dependencies:
             glob: 10.3.10
             json-parse-even-better-errors: 3.0.1
             normalize-package-data: 5.0.0
             npm-normalize-package-bin: 3.0.1
       
      -  /read-pkg-up@7.0.1:
      -    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
      -    engines: {node: '>=8'}
      +  read-pkg-up@7.0.1:
           dependencies:
             find-up: 4.1.0
             read-pkg: 5.2.0
             type-fest: 0.8.1
       
      -  /read-pkg-up@8.0.0:
      -    resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
      -    engines: {node: '>=12'}
      +  read-pkg-up@8.0.0:
           dependencies:
             find-up: 5.0.0
             read-pkg: 6.0.0
             type-fest: 1.4.0
      -    dev: true
       
      -  /read-pkg@5.2.0:
      -    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
      -    engines: {node: '>=8'}
      +  read-pkg@5.2.0:
           dependencies:
             '@types/normalize-package-data': 2.4.4
             normalize-package-data: 2.5.0
             parse-json: 5.2.0
             type-fest: 0.6.0
       
      -  /read-pkg@6.0.0:
      -    resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
      -    engines: {node: '>=12'}
      +  read-pkg@6.0.0:
           dependencies:
             '@types/normalize-package-data': 2.4.4
             normalize-package-data: 3.0.3
             parse-json: 5.2.0
             type-fest: 1.4.0
      -    dev: true
       
      -  /read-yaml-file@2.1.0:
      -    resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==}
      -    engines: {node: '>=10.13'}
      +  read-yaml-file@2.1.0:
           dependencies:
             js-yaml: 4.1.0
             strip-bom: 4.0.0
      -    dev: true
       
      -  /readable-stream@2.3.8:
      -    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
      +  readable-stream@2.3.8:
           dependencies:
             core-util-is: 1.0.3
             inherits: 2.0.4
      @@ -14948,17 +19178,13 @@ packages:
             string_decoder: 1.1.1
             util-deprecate: 1.0.2
       
      -  /readable-stream@3.6.2:
      -    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
      -    engines: {node: '>= 6'}
      +  readable-stream@3.6.2:
           dependencies:
             inherits: 2.0.4
             string_decoder: 1.3.0
             util-deprecate: 1.0.2
       
      -  /readable-stream@4.5.2:
      -    resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
      -    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      +  readable-stream@4.5.2:
           dependencies:
             abort-controller: 3.0.0
             buffer: 6.0.3
      @@ -14966,60 +19192,39 @@ packages:
             process: 0.11.10
             string_decoder: 1.3.0
       
      -  /readdir-scoped-modules@1.1.0:
      -    resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==}
      -    deprecated: This functionality has been moved to @npmcli/fs
      +  readdir-scoped-modules@1.1.0:
           dependencies:
             debuglog: 1.0.1
             dezalgo: 1.0.4
             graceful-fs: 4.2.11
             once: 1.4.0
       
      -  /readdirp@3.6.0:
      -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
      -    engines: {node: '>=8.10.0'}
      +  readdirp@3.6.0:
           dependencies:
             picomatch: 2.3.1
       
      -  /reading-time@1.5.0:
      -    resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
      -    dev: false
      +  reading-time@1.5.0: {}
       
      -  /realpath-missing@1.1.0:
      -    resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  realpath-missing@1.1.0: {}
       
      -  /rechoir@0.6.2:
      -    resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
      -    engines: {node: '>= 0.10'}
      +  rechoir@0.6.2:
           dependencies:
             resolve: 1.22.8
       
      -  /rechoir@0.8.0:
      -    resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
      -    engines: {node: '>= 10.13.0'}
      +  rechoir@0.8.0:
           dependencies:
             resolve: 1.22.8
       
      -  /recursive-readdir@2.2.3:
      -    resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==}
      -    engines: {node: '>=6.0.0'}
      +  recursive-readdir@2.2.3:
           dependencies:
             minimatch: 3.1.2
      -    dev: false
       
      -  /redent@4.0.0:
      -    resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
      -    engines: {node: '>=12'}
      +  redent@4.0.0:
           dependencies:
             indent-string: 5.0.0
             strip-indent: 4.0.0
      -    dev: true
       
      -  /reflect.getprototypeof@1.0.6:
      -    resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
      -    engines: {node: '>= 0.4'}
      +  reflect.getprototypeof@1.0.6:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -15028,43 +19233,29 @@ packages:
             get-intrinsic: 1.2.4
             globalthis: 1.0.3
             which-builtin-type: 1.1.3
      -    dev: true
       
      -  /regenerate-unicode-properties@10.1.1:
      -    resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
      -    engines: {node: '>=4'}
      +  regenerate-unicode-properties@10.1.1:
           dependencies:
             regenerate: 1.4.2
       
      -  /regenerate@1.4.2:
      -    resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
      +  regenerate@1.4.2: {}
       
      -  /regenerator-runtime@0.14.1:
      -    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
      +  regenerator-runtime@0.14.1: {}
       
      -  /regenerator-transform@0.15.2:
      -    resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
      +  regenerator-transform@0.15.2:
           dependencies:
             '@babel/runtime': 7.24.1
       
      -  /regexp-tree@0.1.27:
      -    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
      -    hasBin: true
      -    dev: true
      +  regexp-tree@0.1.27: {}
       
      -  /regexp.prototype.flags@1.5.2:
      -    resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
      -    engines: {node: '>= 0.4'}
      +  regexp.prototype.flags@1.5.2:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-errors: 1.3.0
             set-function-name: 2.0.2
      -    dev: true
       
      -  /regexpu-core@5.3.2:
      -    resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
      -    engines: {node: '>=4'}
      +  regexpu-core@5.3.2:
           dependencies:
             '@babel/regjsgen': 0.8.0
             regenerate: 1.4.2
      @@ -15073,47 +19264,31 @@ packages:
             unicode-match-property-ecmascript: 2.0.0
             unicode-match-property-value-ecmascript: 2.1.0
       
      -  /registry-auth-token@5.0.2:
      -    resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
      -    engines: {node: '>=14'}
      +  registry-auth-token@5.0.2:
           dependencies:
             '@pnpm/npm-conf': 2.2.2
      -    dev: false
       
      -  /registry-url@6.0.1:
      -    resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
      -    engines: {node: '>=12'}
      +  registry-url@6.0.1:
           dependencies:
             rc: 1.2.8
      -    dev: false
      -
      -  /regjsparser@0.10.0:
      -    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
      -    hasBin: true
      +
      +  regjsparser@0.10.0:
           dependencies:
             jsesc: 0.5.0
      -    dev: true
       
      -  /regjsparser@0.9.1:
      -    resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
      -    hasBin: true
      +  regjsparser@0.9.1:
           dependencies:
             jsesc: 0.5.0
       
      -  /rehype-raw@7.0.0:
      -    resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
      +  rehype-raw@7.0.0:
           dependencies:
             '@types/hast': 3.0.4
             hast-util-raw: 9.0.2
             vfile: 6.0.1
      -    dev: false
       
      -  /relateurl@0.2.7:
      -    resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
      -    engines: {node: '>= 0.10'}
      +  relateurl@0.2.7: {}
       
      -  /remark-directive@3.0.0:
      -    resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
      +  remark-directive@3.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-directive: 3.0.0
      @@ -15121,21 +19296,16 @@ packages:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /remark-emoji@4.0.1:
      -    resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  remark-emoji@4.0.1:
           dependencies:
             '@types/mdast': 4.0.3
             emoticon: 4.0.1
             mdast-util-find-and-replace: 3.0.1
             node-emoji: 2.1.3
             unified: 11.0.4
      -    dev: false
       
      -  /remark-frontmatter@5.0.0:
      -    resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
      +  remark-frontmatter@5.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-frontmatter: 2.0.1
      @@ -15143,10 +19313,8 @@ packages:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /remark-gfm@4.0.0:
      -    resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
      +  remark-gfm@4.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-gfm: 3.0.0
      @@ -15156,18 +19324,15 @@ packages:
             unified: 11.0.4
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /remark-mdx@3.0.1:
      -    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
      +  remark-mdx@3.0.1:
           dependencies:
             mdast-util-mdx: 3.0.0
             micromark-extension-mdxjs: 3.0.0
           transitivePeerDependencies:
             - supports-color
       
      -  /remark-parse@11.0.0:
      -    resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
      +  remark-parse@11.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-from-markdown: 2.0.0
      @@ -15176,8 +19341,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /remark-rehype@11.1.0:
      -    resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==}
      +  remark-rehype@11.1.0:
           dependencies:
             '@types/hast': 3.0.4
             '@types/mdast': 4.0.3
      @@ -15185,19 +19349,15 @@ packages:
             unified: 11.0.4
             vfile: 6.0.1
       
      -  /remark-stringify@11.0.0:
      -    resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
      +  remark-stringify@11.0.0:
           dependencies:
             '@types/mdast': 4.0.3
             mdast-util-to-markdown: 2.1.0
             unified: 11.0.4
      -    dev: false
       
      -  /remove-trailing-separator@1.1.0:
      -    resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
      +  remove-trailing-separator@1.1.0: {}
       
      -  /renderkid@3.0.0:
      -    resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
      +  renderkid@3.0.0:
           dependencies:
             css-select: 4.3.0
             dom-converter: 0.2.0
      @@ -15205,212 +19365,128 @@ packages:
             lodash: 4.17.21
             strip-ansi: 6.0.1
       
      -  /replace-ext@1.0.1:
      -    resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
      -    engines: {node: '>= 0.10'}
      +  replace-ext@1.0.1: {}
       
      -  /require-directory@2.1.1:
      -    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
      -    engines: {node: '>=0.10.0'}
      -    dev: true
      +  require-directory@2.1.1: {}
       
      -  /require-from-string@2.0.2:
      -    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
      -    engines: {node: '>=0.10.0'}
      +  require-from-string@2.0.2: {}
       
      -  /require-like@0.1.2:
      -    resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
      -    dev: false
      +  require-like@0.1.2: {}
       
      -  /requires-port@1.0.0:
      -    resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
      +  requires-port@1.0.0: {}
       
      -  /resize-observer-polyfill@1.5.1:
      -    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
      -    dev: false
      +  resize-observer-polyfill@1.5.1: {}
       
      -  /resolve-alpn@1.2.1:
      -    resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
      -    dev: false
      +  resolve-alpn@1.2.1: {}
       
      -  /resolve-cwd@3.0.0:
      -    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
      -    engines: {node: '>=8'}
      +  resolve-cwd@3.0.0:
           dependencies:
             resolve-from: 5.0.0
       
      -  /resolve-from@4.0.0:
      -    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
      -    engines: {node: '>=4'}
      +  resolve-from@4.0.0: {}
       
      -  /resolve-from@5.0.0:
      -    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
      -    engines: {node: '>=8'}
      +  resolve-from@5.0.0: {}
       
      -  /resolve-pathname@3.0.0:
      -    resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
      -    dev: false
      +  resolve-pathname@3.0.0: {}
       
      -  /resolve-pkg-maps@1.0.0:
      -    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
      -    dev: true
      +  resolve-pkg-maps@1.0.0: {}
       
      -  /resolve.exports@2.0.2:
      -    resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  resolve.exports@2.0.2: {}
       
      -  /resolve@1.22.8:
      -    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
      -    hasBin: true
      +  resolve@1.22.8:
           dependencies:
             is-core-module: 2.13.1
             path-parse: 1.0.7
             supports-preserve-symlinks-flag: 1.0.0
       
      -  /resolve@2.0.0-next.5:
      -    resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
      -    hasBin: true
      +  resolve@2.0.0-next.5:
           dependencies:
             is-core-module: 2.13.1
             path-parse: 1.0.7
             supports-preserve-symlinks-flag: 1.0.0
      -    dev: true
       
      -  /responselike@3.0.0:
      -    resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
      -    engines: {node: '>=14.16'}
      +  responselike@3.0.0:
           dependencies:
             lowercase-keys: 3.0.0
      -    dev: false
       
      -  /restore-cursor@3.1.0:
      -    resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
      -    engines: {node: '>=8'}
      +  restore-cursor@3.1.0:
           dependencies:
             onetime: 5.1.2
             signal-exit: 3.0.7
       
      -  /ret@0.1.15:
      -    resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
      -    engines: {node: '>=0.12'}
      -    dev: false
      +  ret@0.1.15: {}
       
      -  /retry@0.12.0:
      -    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
      -    engines: {node: '>= 4'}
      +  retry@0.12.0: {}
       
      -  /retry@0.13.1:
      -    resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
      -    engines: {node: '>= 4'}
      +  retry@0.13.1: {}
       
      -  /reusify@1.0.4:
      -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
      -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
      +  reusify@1.0.4: {}
       
      -  /rfc4648@1.5.3:
      -    resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==}
      -    dev: false
      +  rfc4648@1.5.3: {}
       
      -  /right-pad@1.0.1:
      -    resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==}
      -    engines: {node: '>= 0.10'}
      -    dev: true
      +  right-pad@1.0.1: {}
       
      -  /rimraf@3.0.2:
      -    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
      -    hasBin: true
      +  rimraf@3.0.2:
           dependencies:
             glob: 7.2.3
       
      -  /rimraf@5.0.5:
      -    resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
      -    engines: {node: '>=14'}
      -    hasBin: true
      +  rimraf@5.0.5:
           dependencies:
             glob: 10.3.10
       
      -  /rtl-css-js@1.16.1:
      -    resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
      +  rtl-css-js@1.16.1:
           dependencies:
             '@babel/runtime': 7.24.1
      -    dev: false
       
      -  /rtl-detect@1.1.2:
      -    resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
      -    dev: false
      +  rtl-detect@1.1.2: {}
       
      -  /rtlcss@4.1.1:
      -    resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==}
      -    engines: {node: '>=12.0.0'}
      -    hasBin: true
      +  rtlcss@4.1.1:
           dependencies:
             escalade: 3.1.2
             picocolors: 1.0.0
             postcss: 8.4.38
             strip-json-comments: 3.1.1
      -    dev: false
       
      -  /run-applescript@7.0.0:
      -    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
      -    engines: {node: '>=18'}
      +  run-applescript@7.0.0: {}
       
      -  /run-async@2.4.1:
      -    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
      -    engines: {node: '>=0.12.0'}
      +  run-async@2.4.1: {}
       
      -  /run-parallel@1.2.0:
      -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
      +  run-parallel@1.2.0:
           dependencies:
             queue-microtask: 1.2.3
       
      -  /rxjs@7.8.1:
      -    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
      +  rxjs@7.8.1:
           dependencies:
             tslib: 2.6.2
       
      -  /safe-array-concat@1.1.2:
      -    resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
      -    engines: {node: '>=0.4'}
      +  safe-array-concat@1.1.2:
           dependencies:
             call-bind: 1.0.7
             get-intrinsic: 1.2.4
             has-symbols: 1.0.3
             isarray: 2.0.5
      -    dev: true
       
      -  /safe-buffer@5.1.2:
      -    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
      +  safe-buffer@5.1.2: {}
       
      -  /safe-buffer@5.2.1:
      -    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
      +  safe-buffer@5.2.1: {}
       
      -  /safe-execa@0.1.2:
      -    resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==}
      -    engines: {node: '>=12'}
      +  safe-execa@0.1.2:
           dependencies:
             '@zkochan/which': 2.0.3
             execa: 5.1.1
             path-name: 1.0.0
       
      -  /safe-regex-test@1.0.3:
      -    resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
      -    engines: {node: '>= 0.4'}
      +  safe-regex-test@1.0.3:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-regex: 1.1.4
      -    dev: true
       
      -  /safe-stable-stringify@2.4.3:
      -    resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
      -    engines: {node: '>=10'}
      +  safe-stable-stringify@2.4.3: {}
       
      -  /safer-buffer@2.1.2:
      -    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
      +  safer-buffer@2.1.2: {}
       
      -  /sanitize-html@2.13.0:
      -    resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
      +  sanitize-html@2.13.0:
           dependencies:
             deepmerge: 4.3.1
             escape-string-regexp: 4.0.0
      @@ -15418,124 +19494,77 @@ packages:
             is-plain-object: 5.0.0
             parse-srcset: 1.0.2
             postcss: 8.4.38
      -    dev: false
       
      -  /sax@1.3.0:
      -    resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
      -    dev: false
      +  sax@1.3.0: {}
       
      -  /saxes@6.0.0:
      -    resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
      -    engines: {node: '>=v12.22.7'}
      +  saxes@6.0.0:
           dependencies:
             xmlchars: 2.2.0
      -    dev: true
       
      -  /sbd@1.0.19:
      -    resolution: {integrity: sha512-b5RyZMGSrFuIB4AHdbv12uYHS8YGEJ36gtuvG3RflbJGY+T0dXmAL0E4vZjQqT2RsX0v+ZwVqhV2zsGr5aFK9w==}
      +  sbd@1.0.19:
           dependencies:
             sanitize-html: 2.13.0
      -    dev: false
       
      -  /scheduler@0.23.0:
      -    resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
      +  scheduler@0.23.0:
           dependencies:
             loose-envify: 1.4.0
       
      -  /schema-utils@2.7.0:
      -    resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
      -    engines: {node: '>= 8.9.0'}
      +  schema-utils@2.7.0:
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 6.12.6
             ajv-keywords: 3.5.2(ajv@6.12.6)
      -    dev: false
       
      -  /schema-utils@3.3.0:
      -    resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
      -    engines: {node: '>= 10.13.0'}
      +  schema-utils@3.3.0:
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 6.12.6
             ajv-keywords: 3.5.2(ajv@6.12.6)
       
      -  /schema-utils@4.2.0:
      -    resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
      -    engines: {node: '>= 12.13.0'}
      +  schema-utils@4.2.0:
           dependencies:
             '@types/json-schema': 7.0.15
             ajv: 8.12.0
             ajv-formats: 2.1.1(ajv@8.12.0)
             ajv-keywords: 5.1.0(ajv@8.12.0)
       
      -  /scoped-regex@2.1.0:
      -    resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
      -    engines: {node: '>=8'}
      +  scoped-regex@2.1.0: {}
       
      -  /screenfull@5.2.0:
      -    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  screenfull@5.2.0: {}
       
      -  /search-insights@2.13.0:
      -    resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==}
      -    dev: false
      +  search-insights@2.13.0: {}
       
      -  /section-matter@1.0.0:
      -    resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
      -    engines: {node: '>=4'}
      +  section-matter@1.0.0:
           dependencies:
             extend-shallow: 2.0.1
             kind-of: 6.0.3
      -    dev: false
       
      -  /secure-compare@3.0.1:
      -    resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
      -    dev: true
      +  secure-compare@3.0.1: {}
       
      -  /select-hose@2.0.0:
      -    resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
      +  select-hose@2.0.0: {}
       
      -  /selfsigned@2.4.1:
      -    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
      -    engines: {node: '>=10'}
      +  selfsigned@2.4.1:
           dependencies:
             '@types/node-forge': 1.3.11
             node-forge: 1.3.1
       
      -  /semver-diff@4.0.0:
      -    resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
      -    engines: {node: '>=12'}
      +  semver-diff@4.0.0:
           dependencies:
             semver: 7.6.0
      -    dev: false
       
      -  /semver@5.7.2:
      -    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
      -    hasBin: true
      +  semver@5.7.2: {}
       
      -  /semver@6.3.1:
      -    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
      -    hasBin: true
      +  semver@6.3.1: {}
       
      -  /semver@7.5.4:
      -    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  semver@7.5.4:
           dependencies:
             lru-cache: 6.0.0
      -    dev: true
       
      -  /semver@7.6.0:
      -    resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  semver@7.6.0:
           dependencies:
             lru-cache: 6.0.0
       
      -  /send@0.18.0:
      -    resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
      -    engines: {node: '>= 0.8.0'}
      +  send@0.18.0:
           dependencies:
             debug: 2.6.9
             depd: 2.0.0
      @@ -15553,19 +19582,15 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /serialize-javascript@6.0.0:
      -    resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
      +  serialize-javascript@6.0.0:
           dependencies:
             randombytes: 2.1.0
      -    dev: true
       
      -  /serialize-javascript@6.0.2:
      -    resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
      +  serialize-javascript@6.0.2:
           dependencies:
             randombytes: 2.1.0
       
      -  /serve-handler@6.1.5:
      -    resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
      +  serve-handler@6.1.5:
           dependencies:
             bytes: 3.0.0
             content-disposition: 0.5.2
      @@ -15575,11 +19600,8 @@ packages:
             path-is-inside: 1.0.2
             path-to-regexp: 2.2.1
             range-parser: 1.2.0
      -    dev: false
       
      -  /serve-index@1.9.1:
      -    resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
      -    engines: {node: '>= 0.8.0'}
      +  serve-index@1.9.1:
           dependencies:
             accepts: 1.3.8
             batch: 0.6.1
      @@ -15591,9 +19613,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /serve-static@1.15.0:
      -    resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
      -    engines: {node: '>= 0.8.0'}
      +  serve-static@1.15.0:
           dependencies:
             encodeurl: 1.0.2
             escape-html: 1.0.3
      @@ -15602,12 +19622,9 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /set-blocking@2.0.0:
      -    resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
      +  set-blocking@2.0.0: {}
       
      -  /set-function-length@1.2.2:
      -    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
      -    engines: {node: '>= 0.4'}
      +  set-function-length@1.2.2:
           dependencies:
             define-data-property: 1.1.4
             es-errors: 1.3.0
      @@ -15616,82 +19633,53 @@ packages:
             gopd: 1.0.1
             has-property-descriptors: 1.0.2
       
      -  /set-function-name@2.0.2:
      -    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
      -    engines: {node: '>= 0.4'}
      +  set-function-name@2.0.2:
           dependencies:
             define-data-property: 1.1.4
             es-errors: 1.3.0
             functions-have-names: 1.2.3
             has-property-descriptors: 1.0.2
      -    dev: true
       
      -  /set-harmonic-interval@1.0.1:
      -    resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
      -    engines: {node: '>=6.9'}
      -    dev: false
      +  set-harmonic-interval@1.0.1: {}
       
      -  /setimmediate@1.0.5:
      -    resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
      -    dev: true
      +  setimmediate@1.0.5: {}
       
      -  /setprototypeof@1.1.0:
      -    resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
      +  setprototypeof@1.1.0: {}
       
      -  /setprototypeof@1.2.0:
      -    resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
      +  setprototypeof@1.2.0: {}
       
      -  /shallow-clone@3.0.1:
      -    resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
      -    engines: {node: '>=8'}
      +  shallow-clone@3.0.1:
           dependencies:
             kind-of: 6.0.3
       
      -  /shallowequal@1.1.0:
      -    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
      +  shallowequal@1.1.0: {}
       
      -  /shebang-command@2.0.0:
      -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
      -    engines: {node: '>=8'}
      +  shebang-command@2.0.0:
           dependencies:
             shebang-regex: 3.0.0
       
      -  /shebang-regex@3.0.0:
      -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
      -    engines: {node: '>=8'}
      +  shebang-regex@3.0.0: {}
       
      -  /shell-quote@1.8.1:
      -    resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
      +  shell-quote@1.8.1: {}
       
      -  /shelljs@0.8.5:
      -    resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
      -    engines: {node: '>=4'}
      -    hasBin: true
      +  shelljs@0.8.5:
           dependencies:
             glob: 7.2.3
             interpret: 1.4.0
             rechoir: 0.6.2
       
      -  /side-channel@1.0.6:
      -    resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
      -    engines: {node: '>= 0.4'}
      +  side-channel@1.0.6:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             get-intrinsic: 1.2.4
             object-inspect: 1.13.1
       
      -  /signal-exit@3.0.7:
      -    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
      +  signal-exit@3.0.7: {}
       
      -  /signal-exit@4.1.0:
      -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
      -    engines: {node: '>=14'}
      +  signal-exit@4.1.0: {}
       
      -  /sigstore@1.9.0:
      -    resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      +  sigstore@1.9.0:
           dependencies:
             '@sigstore/bundle': 1.1.0
             '@sigstore/protobuf-specs': 0.2.1
      @@ -15701,13 +19689,11 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /simple-swizzle@0.2.2:
      -    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
      +  simple-swizzle@0.2.2:
           dependencies:
             is-arrayish: 0.3.2
       
      -  /sinon@17.0.1:
      -    resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==}
      +  sinon@17.0.1:
           dependencies:
             '@sinonjs/commons': 3.0.1
             '@sinonjs/fake-timers': 11.2.2
      @@ -15715,79 +19701,52 @@ packages:
             diff: 5.2.0
             nise: 5.1.9
             supports-color: 7.2.0
      -    dev: true
       
      -  /sirv@2.0.4:
      -    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
      -    engines: {node: '>= 10'}
      +  sirv@2.0.4:
           dependencies:
             '@polka/url': 1.0.0-next.25
             mrmime: 2.0.0
             totalist: 3.0.1
      -    dev: false
       
      -  /sisteransi@1.0.5:
      -    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
      +  sisteransi@1.0.5: {}
       
      -  /sitemap@7.1.1:
      -    resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
      -    engines: {node: '>=12.0.0', npm: '>=5.6.0'}
      -    hasBin: true
      +  sitemap@7.1.1:
           dependencies:
             '@types/node': 17.0.45
             '@types/sax': 1.2.7
             arg: 5.0.2
             sax: 1.3.0
      -    dev: false
       
      -  /skin-tone@2.0.0:
      -    resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
      -    engines: {node: '>=8'}
      +  skin-tone@2.0.0:
           dependencies:
             unicode-emoji-modifier-base: 1.0.0
      -    dev: false
       
      -  /slash@3.0.0:
      -    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
      -    engines: {node: '>=8'}
      +  slash@3.0.0: {}
       
      -  /slash@4.0.0:
      -    resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  slash@4.0.0: {}
       
      -  /smart-buffer@4.2.0:
      -    resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
      -    engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
      +  smart-buffer@4.2.0: {}
       
      -  /snake-case@3.0.4:
      -    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
      +  snake-case@3.0.4:
           dependencies:
             dot-case: 3.0.4
             tslib: 2.6.2
      -    dev: true
       
      -  /sockjs@0.3.24:
      -    resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
      +  sockjs@0.3.24:
           dependencies:
             faye-websocket: 0.11.4
             uuid: 8.3.2
             websocket-driver: 0.7.4
       
      -  /socks-proxy-agent@6.1.1:
      -    resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
      -    engines: {node: '>= 10'}
      +  socks-proxy-agent@6.1.1:
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
             socks: 2.8.1
           transitivePeerDependencies:
             - supports-color
      -    dev: false
       
      -  /socks-proxy-agent@6.2.1:
      -    resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
      -    engines: {node: '>= 10'}
      +  socks-proxy-agent@6.2.1:
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -15795,9 +19754,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /socks-proxy-agent@7.0.0:
      -    resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
      -    engines: {node: '>= 10'}
      +  socks-proxy-agent@7.0.0:
           dependencies:
             agent-base: 6.0.2
             debug: 4.3.4(supports-color@8.1.1)
      @@ -15805,89 +19762,58 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /socks@2.8.1:
      -    resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
      -    engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
      +  socks@2.8.1:
           dependencies:
             ip-address: 9.0.5
             smart-buffer: 4.2.0
       
      -  /sort-css-media-queries@2.1.0:
      -    resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==}
      -    engines: {node: '>= 6.3.0'}
      -    dev: false
      +  sort-css-media-queries@2.1.0: {}
       
      -  /sort-keys@4.2.0:
      -    resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==}
      -    engines: {node: '>=8'}
      +  sort-keys@4.2.0:
           dependencies:
             is-plain-obj: 2.1.0
       
      -  /sort-keys@5.0.0:
      -    resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==}
      -    engines: {node: '>=12'}
      +  sort-keys@5.0.0:
           dependencies:
             is-plain-obj: 4.1.0
      -    dev: true
       
      -  /source-map-js@1.2.0:
      -    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
      -    engines: {node: '>=0.10.0'}
      +  source-map-js@1.2.0: {}
       
      -  /source-map-support@0.5.13:
      -    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
      +  source-map-support@0.5.13:
           dependencies:
             buffer-from: 1.1.2
             source-map: 0.6.1
      -    dev: true
       
      -  /source-map-support@0.5.21:
      -    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
      +  source-map-support@0.5.21:
           dependencies:
             buffer-from: 1.1.2
             source-map: 0.6.1
       
      -  /source-map-url@0.4.1:
      -    resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
      -    deprecated: See https://github.com/lydell/source-map-url#deprecated
      -    dev: true
      +  source-map-url@0.4.1: {}
       
      -  /source-map@0.5.6:
      -    resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  source-map@0.5.6: {}
       
      -  /source-map@0.6.1:
      -    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
      -    engines: {node: '>=0.10.0'}
      +  source-map@0.6.1: {}
       
      -  /source-map@0.7.4:
      -    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
      -    engines: {node: '>= 8'}
      +  source-map@0.7.4: {}
       
      -  /space-separated-tokens@2.0.2:
      -    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
      +  space-separated-tokens@2.0.2: {}
       
      -  /spdx-correct@3.2.0:
      -    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
      +  spdx-correct@3.2.0:
           dependencies:
             spdx-expression-parse: 3.0.1
             spdx-license-ids: 3.0.17
       
      -  /spdx-exceptions@2.5.0:
      -    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
      +  spdx-exceptions@2.5.0: {}
       
      -  /spdx-expression-parse@3.0.1:
      -    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
      +  spdx-expression-parse@3.0.1:
           dependencies:
             spdx-exceptions: 2.5.0
             spdx-license-ids: 3.0.17
       
      -  /spdx-license-ids@3.0.17:
      -    resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
      +  spdx-license-ids@3.0.17: {}
       
      -  /spdy-transport@3.0.0:
      -    resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
      +  spdy-transport@3.0.0:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             detect-node: 2.1.0
      @@ -15898,9 +19824,7 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /spdy@4.0.2:
      -    resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
      -    engines: {node: '>=6.0.0'}
      +  spdy@4.0.2:
           dependencies:
             debug: 4.3.4(supports-color@8.1.1)
             handle-thing: 2.0.1
      @@ -15910,138 +19834,88 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /split2@3.2.2:
      -    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
      +  split2@3.2.2:
           dependencies:
             readable-stream: 3.6.2
       
      -  /sprintf-js@1.0.3:
      -    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
      +  sprintf-js@1.0.3: {}
       
      -  /sprintf-js@1.1.3:
      -    resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
      +  sprintf-js@1.1.3: {}
       
      -  /srcset@4.0.0:
      -    resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  srcset@4.0.0: {}
       
      -  /ssri@10.0.5:
      -    resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  ssri@10.0.5:
           dependencies:
             minipass: 7.0.4
       
      -  /ssri@8.0.1:
      -    resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
      -    engines: {node: '>= 8'}
      +  ssri@8.0.1:
           dependencies:
             minipass: 3.3.6
       
      -  /ssri@9.0.1:
      -    resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  ssri@9.0.1:
           dependencies:
             minipass: 3.3.6
       
      -  /stable@0.1.8:
      -    resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
      -    deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
      -    dev: false
      +  stable@0.1.8: {}
       
      -  /stack-generator@2.0.10:
      -    resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
      +  stack-generator@2.0.10:
           dependencies:
             stackframe: 1.3.4
      -    dev: false
       
      -  /stack-trace@0.0.10:
      -    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
      +  stack-trace@0.0.10: {}
       
      -  /stack-utils@2.0.6:
      -    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
      -    engines: {node: '>=10'}
      +  stack-utils@2.0.6:
           dependencies:
             escape-string-regexp: 2.0.0
      -    dev: true
       
      -  /stackframe@1.3.4:
      -    resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
      -    dev: false
      +  stackframe@1.3.4: {}
       
      -  /stacktrace-gps@3.1.2:
      -    resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
      +  stacktrace-gps@3.1.2:
           dependencies:
             source-map: 0.5.6
             stackframe: 1.3.4
      -    dev: false
       
      -  /stacktrace-js@2.0.2:
      -    resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
      +  stacktrace-js@2.0.2:
           dependencies:
             error-stack-parser: 2.1.4
             stack-generator: 2.0.10
             stacktrace-gps: 3.1.2
      -    dev: false
       
      -  /stacktracey@2.1.8:
      -    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
      +  stacktracey@2.1.8:
           dependencies:
             as-table: 1.0.55
             get-source: 2.0.12
      -    dev: true
       
      -  /statuses@1.5.0:
      -    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
      -    engines: {node: '>= 0.6'}
      +  statuses@1.5.0: {}
       
      -  /statuses@2.0.1:
      -    resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
      -    engines: {node: '>= 0.8'}
      +  statuses@2.0.1: {}
       
      -  /std-env@3.7.0:
      -    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
      -    dev: false
      +  std-env@3.7.0: {}
       
      -  /stop-iteration-iterator@1.0.0:
      -    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
      -    engines: {node: '>= 0.4'}
      +  stop-iteration-iterator@1.0.0:
           dependencies:
             internal-slot: 1.0.7
      -    dev: true
       
      -  /streamsearch@1.1.0:
      -    resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
      -    engines: {node: '>=10.0.0'}
      -    dev: false
      +  streamsearch@1.1.0: {}
       
      -  /string-length@4.0.2:
      -    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
      -    engines: {node: '>=10'}
      +  string-length@4.0.2:
           dependencies:
             char-regex: 1.0.2
             strip-ansi: 6.0.1
      -    dev: true
       
      -  /string-width@4.2.3:
      -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
      -    engines: {node: '>=8'}
      +  string-width@4.2.3:
           dependencies:
             emoji-regex: 8.0.0
             is-fullwidth-code-point: 3.0.0
             strip-ansi: 6.0.1
       
      -  /string-width@5.1.2:
      -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
      -    engines: {node: '>=12'}
      +  string-width@5.1.2:
           dependencies:
             eastasianwidth: 0.2.0
             emoji-regex: 9.2.2
             strip-ansi: 7.1.0
       
      -  /string.prototype.matchall@4.0.11:
      -    resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
      -    engines: {node: '>= 0.4'}
      +  string.prototype.matchall@4.0.11:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
      @@ -16055,195 +19929,117 @@ packages:
             regexp.prototype.flags: 1.5.2
             set-function-name: 2.0.2
             side-channel: 1.0.6
      -    dev: true
       
      -  /string.prototype.trim@1.2.9:
      -    resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
      -    engines: {node: '>= 0.4'}
      +  string.prototype.trim@1.2.9:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-abstract: 1.23.2
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /string.prototype.trimend@1.0.8:
      -    resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
      +  string.prototype.trimend@1.0.8:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /string.prototype.trimstart@1.0.8:
      -    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
      -    engines: {node: '>= 0.4'}
      +  string.prototype.trimstart@1.0.8:
           dependencies:
             call-bind: 1.0.7
             define-properties: 1.2.1
             es-object-atoms: 1.0.0
      -    dev: true
       
      -  /string_decoder@1.1.1:
      -    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
      +  string_decoder@1.1.1:
           dependencies:
             safe-buffer: 5.1.2
       
      -  /string_decoder@1.3.0:
      -    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
      +  string_decoder@1.3.0:
           dependencies:
             safe-buffer: 5.2.1
       
      -  /stringify-entities@4.0.3:
      -    resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
      +  stringify-entities@4.0.3:
           dependencies:
             character-entities-html4: 2.1.0
             character-entities-legacy: 3.0.0
       
      -  /stringify-object@3.3.0:
      -    resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
      -    engines: {node: '>=4'}
      +  stringify-object@3.3.0:
           dependencies:
             get-own-enumerable-property-symbols: 3.0.2
             is-obj: 1.0.1
             is-regexp: 1.0.0
      -    dev: false
       
      -  /strip-ansi@6.0.1:
      -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
      -    engines: {node: '>=8'}
      +  strip-ansi@6.0.1:
           dependencies:
             ansi-regex: 5.0.1
       
      -  /strip-ansi@7.1.0:
      -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
      -    engines: {node: '>=12'}
      +  strip-ansi@7.1.0:
           dependencies:
             ansi-regex: 6.0.1
       
      -  /strip-bom-buf@1.0.0:
      -    resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==}
      -    engines: {node: '>=4'}
      +  strip-bom-buf@1.0.0:
           dependencies:
             is-utf8: 0.2.1
       
      -  /strip-bom-stream@2.0.0:
      -    resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==}
      -    engines: {node: '>=0.10.0'}
      +  strip-bom-stream@2.0.0:
           dependencies:
             first-chunk-stream: 2.0.0
             strip-bom: 2.0.0
       
      -  /strip-bom-string@1.0.0:
      -    resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  strip-bom-string@1.0.0: {}
       
      -  /strip-bom@2.0.0:
      -    resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
      -    engines: {node: '>=0.10.0'}
      +  strip-bom@2.0.0:
           dependencies:
             is-utf8: 0.2.1
       
      -  /strip-bom@3.0.0:
      -    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
      -    engines: {node: '>=4'}
      +  strip-bom@3.0.0: {}
       
      -  /strip-bom@4.0.0:
      -    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
      -    engines: {node: '>=8'}
      +  strip-bom@4.0.0: {}
       
      -  /strip-comments-strings@1.2.0:
      -    resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==}
      -    dev: true
      +  strip-comments-strings@1.2.0: {}
       
      -  /strip-final-newline@2.0.0:
      -    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
      -    engines: {node: '>=6'}
      +  strip-final-newline@2.0.0: {}
       
      -  /strip-indent@3.0.0:
      -    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
      -    engines: {node: '>=8'}
      +  strip-indent@3.0.0:
           dependencies:
             min-indent: 1.0.1
      -    dev: true
       
      -  /strip-indent@4.0.0:
      -    resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
      -    engines: {node: '>=12'}
      +  strip-indent@4.0.0:
           dependencies:
             min-indent: 1.0.1
      -    dev: true
       
      -  /strip-json-comments@2.0.1:
      -    resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
      -    engines: {node: '>=0.10.0'}
      -    dev: false
      +  strip-json-comments@2.0.1: {}
       
      -  /strip-json-comments@3.1.1:
      -    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
      -    engines: {node: '>=8'}
      +  strip-json-comments@3.1.1: {}
       
      -  /strnum@1.0.5:
      -    resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
      -    dev: true
      +  strnum@1.0.5: {}
       
      -  /style-loader@3.3.4(webpack@5.91.0):
      -    resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      +  style-loader@3.3.4(webpack@5.91.0):
           dependencies:
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: true
       
      -  /style-to-object@0.4.4:
      -    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
      +  style-to-object@0.4.4:
           dependencies:
             inline-style-parser: 0.1.1
       
      -  /style-to-object@1.0.5:
      -    resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==}
      +  style-to-object@1.0.5:
           dependencies:
             inline-style-parser: 0.2.2
       
      -  /styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
      -    resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
      -    engines: {node: '>= 12.0.0'}
      -    peerDependencies:
      -      '@babel/core': '*'
      -      babel-plugin-macros: '*'
      -      react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || 18'
      -    peerDependenciesMeta:
      -      '@babel/core':
      -        optional: true
      -      babel-plugin-macros:
      -        optional: true
      +  styled-jsx@5.1.1(@babel/core@7.24.3)(react@18.2.0):
           dependencies:
             '@babel/core': 7.24.3
             client-only: 0.0.1
             react: 18.2.0
      -    dev: false
       
      -  /stylehacks@5.1.1(postcss@8.4.38):
      -    resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
      -    engines: {node: ^10 || ^12 || >=14.0}
      -    peerDependencies:
      -      postcss: ^8.2.15
      +  stylehacks@5.1.1(postcss@8.4.38):
           dependencies:
             browserslist: 4.23.0
             postcss: 8.4.38
             postcss-selector-parser: 6.0.16
      -    dev: false
       
      -  /stylis@4.3.1:
      -    resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
      -    dev: false
      +  stylis@4.3.1: {}
       
      -  /sucrase@3.35.0:
      -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
      -    engines: {node: '>=16 || 14 >=14.17'}
      -    hasBin: true
      +  sucrase@3.35.0:
           dependencies:
             '@jridgewell/gen-mapping': 0.3.5
             commander: 4.1.1
      @@ -16252,37 +20048,24 @@ packages:
             mz: 2.7.0
             pirates: 4.0.6
             ts-interface-checker: 0.1.13
      -    dev: true
       
      -  /supports-color@5.5.0:
      -    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
      -    engines: {node: '>=4'}
      +  supports-color@5.5.0:
           dependencies:
             has-flag: 3.0.0
       
      -  /supports-color@7.2.0:
      -    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
      -    engines: {node: '>=8'}
      +  supports-color@7.2.0:
           dependencies:
             has-flag: 4.0.0
       
      -  /supports-color@8.1.1:
      -    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
      -    engines: {node: '>=10'}
      +  supports-color@8.1.1:
           dependencies:
             has-flag: 4.0.0
       
      -  /supports-preserve-symlinks-flag@1.0.0:
      -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
      -    engines: {node: '>= 0.4'}
      +  supports-preserve-symlinks-flag@1.0.0: {}
       
      -  /svg-parser@2.0.4:
      -    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
      +  svg-parser@2.0.4: {}
       
      -  /svgo@2.8.0:
      -    resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
      -    engines: {node: '>=10.13.0'}
      -    hasBin: true
      +  svgo@2.8.0:
           dependencies:
             '@trysound/sax': 0.2.0
             commander: 7.2.0
      @@ -16291,12 +20074,8 @@ packages:
             csso: 4.2.0
             picocolors: 1.0.0
             stable: 0.1.8
      -    dev: false
       
      -  /svgo@3.2.0:
      -    resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==}
      -    engines: {node: '>=14.0.0'}
      -    hasBin: true
      +  svgo@3.2.0:
           dependencies:
             '@trysound/sax': 0.2.0
             commander: 7.2.0
      @@ -16305,16 +20084,10 @@ packages:
             css-what: 6.1.0
             csso: 5.0.5
             picocolors: 1.0.0
      -    dev: true
       
      -  /symbol-tree@3.2.4:
      -    resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
      -    dev: true
      +  symbol-tree@3.2.4: {}
       
      -  /syncpack@12.3.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-Gz2uGn96OmGfVVlKztvFac1EJYjP+WptQ2ohA6Uf48C6qLkhSayhkdujKQ6q7bGOTy8HSGI0iDfwfCJu6wvRig==}
      -    engines: {node: '>=16'}
      -    hasBin: true
      +  syncpack@12.3.0(typescript@5.4.3):
           dependencies:
             '@effect/schema': 0.56.1(effect@2.0.0-next.62)(fast-check@3.15.0)
             chalk: 4.1.2
      @@ -16334,17 +20107,10 @@ packages:
             ts-toolbelt: 9.6.0
           transitivePeerDependencies:
             - typescript
      -    dev: true
       
      -  /tail@2.2.6:
      -    resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
      -    engines: {node: '>= 6.0.0'}
      -    dev: false
      +  tail@2.2.6: {}
       
      -  /tailwindcss@3.4.1(ts-node@10.9.2):
      -    resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
      -    engines: {node: '>=14.0.0'}
      -    hasBin: true
      +  tailwindcss@3.4.1(ts-node@10.9.2):
           dependencies:
             '@alloc/quick-lru': 5.2.0
             arg: 5.0.2
      @@ -16370,20 +20136,12 @@ packages:
             sucrase: 3.35.0
           transitivePeerDependencies:
             - ts-node
      -    dev: true
       
      -  /tapable@1.1.3:
      -    resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  tapable@1.1.3: {}
       
      -  /tapable@2.2.1:
      -    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
      -    engines: {node: '>=6'}
      +  tapable@2.2.1: {}
       
      -  /tar@6.2.1:
      -    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
      -    engines: {node: '>=10'}
      +  tar@6.2.1:
           dependencies:
             chownr: 2.0.0
             fs-minipass: 2.1.0
      @@ -16392,21 +20150,7 @@ packages:
             mkdirp: 1.0.4
             yallist: 4.0.0
       
      -  /terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
      -    resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      '@swc/core': '*'
      -      esbuild: '*'
      -      uglify-js: '*'
      -      webpack: ^5.1.0
      -    peerDependenciesMeta:
      -      '@swc/core':
      -        optional: true
      -      esbuild:
      -        optional: true
      -      uglify-js:
      -        optional: true
      +  terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             esbuild: 0.20.2
      @@ -16416,195 +20160,105 @@ packages:
             terser: 5.29.2
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  /terser@5.29.2:
      -    resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
      -    engines: {node: '>=10'}
      -    hasBin: true
      +  terser@5.29.2:
           dependencies:
             '@jridgewell/source-map': 0.3.6
             acorn: 8.11.3
             commander: 2.20.3
             source-map-support: 0.5.21
       
      -  /test-exclude@6.0.0:
      -    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
      -    engines: {node: '>=8'}
      +  test-exclude@6.0.0:
           dependencies:
             '@istanbuljs/schema': 0.1.3
             glob: 7.2.3
             minimatch: 3.1.2
      -    dev: true
       
      -  /text-hex@1.0.0:
      -    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
      +  text-hex@1.0.0: {}
       
      -  /text-table@0.2.0:
      -    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
      +  text-table@0.2.0: {}
       
      -  /textextensions@5.16.0:
      -    resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==}
      -    engines: {node: '>=0.8'}
      +  textextensions@5.16.0: {}
       
      -  /thenify-all@1.6.0:
      -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
      -    engines: {node: '>=0.8'}
      +  thenify-all@1.6.0:
           dependencies:
             thenify: 3.3.1
      -    dev: true
       
      -  /thenify@3.3.1:
      -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
      +  thenify@3.3.1:
           dependencies:
             any-promise: 1.3.0
      -    dev: true
       
      -  /throttle-debounce@3.0.1:
      -    resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
      -    engines: {node: '>=10'}
      -    dev: false
      +  throttle-debounce@3.0.1: {}
       
      -  /through2@4.0.2:
      -    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
      +  through2@4.0.2:
           dependencies:
             readable-stream: 3.6.2
       
      -  /through@2.3.8:
      -    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
      +  through@2.3.8: {}
       
      -  /thunky@1.1.0:
      -    resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
      +  thunky@1.1.0: {}
       
      -  /tightrope@0.1.0:
      -    resolution: {integrity: sha512-HHHNYdCAIYwl1jOslQBT455zQpdeSo8/A346xpIb/uuqhSg+tCvYNsP5f11QW+z9VZ3vSX8YIfzTApjjuGH63w==}
      -    engines: {node: '>=14'}
      -    dev: true
      +  tightrope@0.1.0: {}
       
      -  /tiny-invariant@1.3.3:
      -    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
      -    dev: false
      +  tiny-invariant@1.3.3: {}
       
      -  /tiny-warning@1.0.3:
      -    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
      -    dev: false
      +  tiny-warning@1.0.3: {}
       
      -  /tinycolor2@1.6.0:
      -    resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
      -    dev: false
      +  tinycolor2@1.6.0: {}
       
      -  /tmp@0.0.33:
      -    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
      -    engines: {node: '>=0.6.0'}
      +  tmp@0.0.33:
           dependencies:
             os-tmpdir: 1.0.2
       
      -  /tmpl@1.0.5:
      -    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
      -    dev: true
      +  tmpl@1.0.5: {}
       
      -  /to-fast-properties@2.0.0:
      -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
      -    engines: {node: '>=4'}
      +  to-fast-properties@2.0.0: {}
       
      -  /to-regex-range@5.0.1:
      -    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
      -    engines: {node: '>=8.0'}
      +  to-regex-range@5.0.1:
           dependencies:
             is-number: 7.0.0
       
      -  /toggle-selection@1.0.6:
      -    resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
      -    dev: false
      +  toggle-selection@1.0.6: {}
       
      -  /toidentifier@1.0.1:
      -    resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
      -    engines: {node: '>=0.6'}
      +  toidentifier@1.0.1: {}
       
      -  /totalist@3.0.1:
      -    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
      -    engines: {node: '>=6'}
      -    dev: false
      +  totalist@3.0.1: {}
       
      -  /tough-cookie@4.1.3:
      -    resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
      -    engines: {node: '>=6'}
      +  tough-cookie@4.1.3:
           dependencies:
             psl: 1.9.0
             punycode: 2.3.1
             universalify: 0.2.0
             url-parse: 1.5.10
      -    dev: true
       
      -  /tr46@0.0.3:
      -    resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
      +  tr46@0.0.3: {}
       
      -  /tr46@3.0.0:
      -    resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
      -    engines: {node: '>=12'}
      +  tr46@3.0.0:
           dependencies:
             punycode: 2.3.1
      -    dev: true
       
      -  /treeverse@1.0.4:
      -    resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
      +  treeverse@1.0.4: {}
       
      -  /trie-search@2.0.0:
      -    resolution: {integrity: sha512-AJMlAQ/6E5+K45SAOqzeqr0qXWqSREclp3mAWss0PvB9ifBL+QXn2LeZBgUBUifjj5ZtTpo4uKplqUnt9VZcdQ==}
      +  trie-search@2.0.0:
           dependencies:
             hasharray: 1.1.2
      -    dev: false
       
      -  /trim-lines@3.0.1:
      -    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
      +  trim-lines@3.0.1: {}
       
      -  /trim-newlines@4.1.1:
      -    resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  trim-newlines@4.1.1: {}
       
      -  /triple-beam@1.4.1:
      -    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
      -    engines: {node: '>= 14.0.0'}
      +  triple-beam@1.4.1: {}
       
      -  /trough@2.2.0:
      -    resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
      +  trough@2.2.0: {}
       
      -  /ts-api-utils@1.3.0(typescript@5.4.3):
      -    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
      -    engines: {node: '>=16'}
      -    peerDependencies:
      -      typescript: '>=4.2.0'
      +  ts-api-utils@1.3.0(typescript@5.4.3):
           dependencies:
             typescript: 5.4.3
      -    dev: true
       
      -  /ts-easing@0.2.0:
      -    resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
      -    dev: false
      +  ts-easing@0.2.0: {}
       
      -  /ts-interface-checker@0.1.13:
      -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
      -    dev: true
      +  ts-interface-checker@0.1.13: {}
       
      -  /ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
      -    resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
      -    engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
      -    hasBin: true
      -    peerDependencies:
      -      '@babel/core': '>=7.0.0-beta.0 <8'
      -      '@jest/types': ^29.0.0
      -      babel-jest: ^29.0.0
      -      esbuild: '*'
      -      jest: ^29.0.0
      -      typescript: '>=4.3 <6'
      -    peerDependenciesMeta:
      -      '@babel/core':
      -        optional: true
      -      '@jest/types':
      -        optional: true
      -      babel-jest:
      -        optional: true
      -      esbuild:
      -        optional: true
      +  ts-jest@29.1.2(@babel/core@7.24.3)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.4.3):
           dependencies:
             '@babel/core': 7.24.3
             bs-logger: 0.2.6
      @@ -16618,14 +20272,8 @@ packages:
             semver: 7.6.0
             typescript: 5.4.3
             yargs-parser: 21.1.1
      -    dev: true
       
      -  /ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
      -    resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
      -    engines: {node: '>=12.0.0'}
      -    peerDependencies:
      -      typescript: '*'
      -      webpack: ^5.0.0
      +  ts-loader@9.5.1(typescript@5.4.3)(webpack@5.91.0):
           dependencies:
             chalk: 4.1.2
             enhanced-resolve: 5.16.0
      @@ -16634,21 +20282,8 @@ packages:
             source-map: 0.7.4
             typescript: 5.4.3
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: true
       
      -  /ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
      -    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
      -    hasBin: true
      -    peerDependencies:
      -      '@swc/core': '>=1.2.50'
      -      '@swc/wasm': '>=1.2.50'
      -      '@types/node': '*'
      -      typescript: '>=2.7'
      -    peerDependenciesMeta:
      -      '@swc/core':
      -        optional: true
      -      '@swc/wasm':
      -        optional: true
      +  ts-node@10.9.2(@types/node@18.18.2)(typescript@5.4.3):
           dependencies:
             '@cspotcode/source-map-support': 0.8.1
             '@tsconfig/node10': 1.0.10
      @@ -16665,27 +20300,19 @@ packages:
             typescript: 5.4.3
             v8-compile-cache-lib: 3.0.1
             yn: 3.1.1
      -    dev: true
       
      -  /ts-toolbelt@9.6.0:
      -    resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
      -    dev: true
      +  ts-toolbelt@9.6.0: {}
       
      -  /tsconfig-paths@3.15.0:
      -    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
      +  tsconfig-paths@3.15.0:
           dependencies:
             '@types/json5': 0.0.29
             json5: 1.0.2
             minimist: 1.2.8
             strip-bom: 3.0.0
      -    dev: true
       
      -  /tslib@2.6.2:
      -    resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
      +  tslib@2.6.2: {}
       
      -  /tuf-js@1.1.7:
      -    resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  tuf-js@1.1.7:
           dependencies:
             '@tufjs/models': 1.0.4
             debug: 4.3.4(supports-color@8.1.1)
      @@ -16693,77 +20320,46 @@ packages:
           transitivePeerDependencies:
             - supports-color
       
      -  /type-check@0.4.0:
      -    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
      -    engines: {node: '>= 0.8.0'}
      +  type-check@0.4.0:
           dependencies:
             prelude-ls: 1.2.1
       
      -  /type-detect@4.0.8:
      -    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
      -    engines: {node: '>=4'}
      -    dev: true
      +  type-detect@4.0.8: {}
       
      -  /type-fest@0.20.2:
      -    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
      -    engines: {node: '>=10'}
      +  type-fest@0.20.2: {}
       
      -  /type-fest@0.21.3:
      -    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
      -    engines: {node: '>=10'}
      +  type-fest@0.21.3: {}
       
      -  /type-fest@0.6.0:
      -    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
      -    engines: {node: '>=8'}
      +  type-fest@0.6.0: {}
       
      -  /type-fest@0.8.1:
      -    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
      -    engines: {node: '>=8'}
      +  type-fest@0.8.1: {}
       
      -  /type-fest@1.4.0:
      -    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
      -    engines: {node: '>=10'}
      +  type-fest@1.4.0: {}
       
      -  /type-fest@2.19.0:
      -    resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
      -    engines: {node: '>=12.20'}
      -    dev: false
      +  type-fest@2.19.0: {}
       
      -  /type-fest@4.14.0:
      -    resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==}
      -    engines: {node: '>=16'}
      -    dev: false
      +  type-fest@4.14.0: {}
       
      -  /type-is@1.6.18:
      -    resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
      -    engines: {node: '>= 0.6'}
      +  type-is@1.6.18:
           dependencies:
             media-typer: 0.3.0
             mime-types: 2.1.35
       
      -  /typed-array-buffer@1.0.2:
      -    resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
      -    engines: {node: '>= 0.4'}
      +  typed-array-buffer@1.0.2:
           dependencies:
             call-bind: 1.0.7
             es-errors: 1.3.0
             is-typed-array: 1.1.13
      -    dev: true
       
      -  /typed-array-byte-length@1.0.1:
      -    resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
      -    engines: {node: '>= 0.4'}
      +  typed-array-byte-length@1.0.1:
           dependencies:
             call-bind: 1.0.7
             for-each: 0.3.3
             gopd: 1.0.1
             has-proto: 1.0.3
             is-typed-array: 1.1.13
      -    dev: true
       
      -  /typed-array-byte-offset@1.0.2:
      -    resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
      -    engines: {node: '>= 0.4'}
      +  typed-array-byte-offset@1.0.2:
           dependencies:
             available-typed-arrays: 1.0.7
             call-bind: 1.0.7
      @@ -16771,11 +20367,8 @@ packages:
             gopd: 1.0.1
             has-proto: 1.0.3
             is-typed-array: 1.1.13
      -    dev: true
       
      -  /typed-array-length@1.0.6:
      -    resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
      -    engines: {node: '>= 0.4'}
      +  typed-array-length@1.0.6:
           dependencies:
             call-bind: 1.0.7
             for-each: 0.3.3
      @@ -16783,53 +20376,34 @@ packages:
             has-proto: 1.0.3
             is-typed-array: 1.1.13
             possible-typed-array-names: 1.0.0
      -    dev: true
       
      -  /typedarray-to-buffer@3.1.5:
      -    resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
      +  typedarray-to-buffer@3.1.5:
           dependencies:
             is-typedarray: 1.0.0
       
      -  /typescript@5.4.3:
      -    resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
      -    engines: {node: '>=14.17'}
      -    hasBin: true
      +  typescript@5.4.3: {}
       
      -  /unbox-primitive@1.0.2:
      -    resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
      +  unbox-primitive@1.0.2:
           dependencies:
             call-bind: 1.0.7
             has-bigints: 1.0.2
             has-symbols: 1.0.3
             which-boxed-primitive: 1.0.2
      -    dev: true
       
      -  /unicode-canonical-property-names-ecmascript@2.0.0:
      -    resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
      -    engines: {node: '>=4'}
      +  unicode-canonical-property-names-ecmascript@2.0.0: {}
       
      -  /unicode-emoji-modifier-base@1.0.0:
      -    resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
      -    engines: {node: '>=4'}
      -    dev: false
      +  unicode-emoji-modifier-base@1.0.0: {}
       
      -  /unicode-match-property-ecmascript@2.0.0:
      -    resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
      -    engines: {node: '>=4'}
      +  unicode-match-property-ecmascript@2.0.0:
           dependencies:
             unicode-canonical-property-names-ecmascript: 2.0.0
             unicode-property-aliases-ecmascript: 2.1.0
       
      -  /unicode-match-property-value-ecmascript@2.1.0:
      -    resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
      -    engines: {node: '>=4'}
      +  unicode-match-property-value-ecmascript@2.1.0: {}
       
      -  /unicode-property-aliases-ecmascript@2.1.0:
      -    resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
      -    engines: {node: '>=4'}
      +  unicode-property-aliases-ecmascript@2.1.0: {}
       
      -  /unified@11.0.4:
      -    resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
      +  unified@11.0.4:
           dependencies:
             '@types/unist': 3.0.2
             bail: 2.0.2
      @@ -16839,133 +20413,91 @@ packages:
             trough: 2.2.0
             vfile: 6.0.1
       
      -  /union@0.5.0:
      -    resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
      -    engines: {node: '>= 0.8.0'}
      +  union@0.5.0:
           dependencies:
             qs: 6.12.0
      -    dev: true
       
      -  /unique-filename@1.1.1:
      -    resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
      +  unique-filename@1.1.1:
           dependencies:
             unique-slug: 2.0.2
       
      -  /unique-filename@2.0.1:
      -    resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  unique-filename@2.0.1:
           dependencies:
             unique-slug: 3.0.0
       
      -  /unique-filename@3.0.0:
      -    resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  unique-filename@3.0.0:
           dependencies:
             unique-slug: 4.0.0
       
      -  /unique-slug@2.0.2:
      -    resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
      +  unique-slug@2.0.2:
           dependencies:
             imurmurhash: 0.1.4
       
      -  /unique-slug@3.0.0:
      -    resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  unique-slug@3.0.0:
           dependencies:
             imurmurhash: 0.1.4
       
      -  /unique-slug@4.0.0:
      -    resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  unique-slug@4.0.0:
           dependencies:
             imurmurhash: 0.1.4
       
      -  /unique-string@2.0.0:
      -    resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
      -    engines: {node: '>=8'}
      +  unique-string@2.0.0:
           dependencies:
             crypto-random-string: 2.0.0
      -    dev: true
       
      -  /unique-string@3.0.0:
      -    resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
      -    engines: {node: '>=12'}
      +  unique-string@3.0.0:
           dependencies:
             crypto-random-string: 4.0.0
      -    dev: false
       
      -  /unist-util-is@6.0.0:
      -    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
      +  unist-util-is@6.0.0:
           dependencies:
             '@types/unist': 3.0.2
       
      -  /unist-util-position-from-estree@2.0.0:
      -    resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
      +  unist-util-position-from-estree@2.0.0:
           dependencies:
             '@types/unist': 3.0.2
       
      -  /unist-util-position@5.0.0:
      -    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
      +  unist-util-position@5.0.0:
           dependencies:
             '@types/unist': 3.0.2
       
      -  /unist-util-remove-position@5.0.0:
      -    resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
      +  unist-util-remove-position@5.0.0:
           dependencies:
             '@types/unist': 3.0.2
             unist-util-visit: 5.0.0
       
      -  /unist-util-stringify-position@4.0.0:
      -    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
      +  unist-util-stringify-position@4.0.0:
           dependencies:
             '@types/unist': 3.0.2
       
      -  /unist-util-visit-parents@6.0.1:
      -    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
      +  unist-util-visit-parents@6.0.1:
           dependencies:
             '@types/unist': 3.0.2
             unist-util-is: 6.0.0
       
      -  /unist-util-visit@5.0.0:
      -    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
      +  unist-util-visit@5.0.0:
           dependencies:
             '@types/unist': 3.0.2
             unist-util-is: 6.0.0
             unist-util-visit-parents: 6.0.1
       
      -  /universal-user-agent@6.0.1:
      -    resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
      +  universal-user-agent@6.0.1: {}
       
      -  /universalify@0.2.0:
      -    resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
      -    engines: {node: '>= 4.0.0'}
      -    dev: true
      +  universalify@0.2.0: {}
       
      -  /universalify@2.0.1:
      -    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
      -    engines: {node: '>= 10.0.0'}
      +  universalify@2.0.1: {}
       
      -  /unpipe@1.0.0:
      -    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
      -    engines: {node: '>= 0.8'}
      +  unpipe@1.0.0: {}
       
      -  /untildify@4.0.0:
      -    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
      -    engines: {node: '>=8'}
      +  untildify@4.0.0: {}
       
      -  /update-browserslist-db@1.0.13(browserslist@4.23.0):
      -    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
      -    hasBin: true
      -    peerDependencies:
      -      browserslist: '>= 4.21.0'
      +  update-browserslist-db@1.0.13(browserslist@4.23.0):
           dependencies:
             browserslist: 4.23.0
             escalade: 3.1.2
             picocolors: 1.0.0
       
      -  /update-notifier@6.0.2:
      -    resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
      -    engines: {node: '>=14.16'}
      +  update-notifier@6.0.2:
           dependencies:
             boxen: 7.1.1
             chalk: 5.3.0
      @@ -16981,125 +20513,80 @@ packages:
             semver: 7.6.0
             semver-diff: 4.0.0
             xdg-basedir: 5.1.0
      -    dev: false
       
      -  /uri-js@4.4.1:
      -    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
      +  uri-js@4.4.1:
           dependencies:
             punycode: 2.3.1
       
      -  /url-join@4.0.1:
      -    resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
      -    dev: true
      +  url-join@4.0.1: {}
       
      -  /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
      -    resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
      -    engines: {node: '>= 10.13.0'}
      -    peerDependencies:
      -      file-loader: '*'
      -      webpack: ^4.0.0 || ^5.0.0
      -    peerDependenciesMeta:
      -      file-loader:
      -        optional: true
      +  url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0):
           dependencies:
             file-loader: 6.2.0(webpack@5.91.0)
             loader-utils: 2.0.4
             mime-types: 2.1.35
             schema-utils: 3.3.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /url-parse@1.5.10:
      -    resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
      +  url-parse@1.5.10:
           dependencies:
             querystringify: 2.2.0
             requires-port: 1.0.0
      -    dev: true
       
      -  /util-deprecate@1.0.2:
      -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
      +  util-deprecate@1.0.2: {}
       
      -  /utila@0.4.0:
      -    resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
      +  utila@0.4.0: {}
       
      -  /utility-types@3.11.0:
      -    resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
      -    engines: {node: '>= 4'}
      +  utility-types@3.11.0: {}
       
      -  /utils-merge@1.0.1:
      -    resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
      -    engines: {node: '>= 0.4.0'}
      +  utils-merge@1.0.1: {}
       
      -  /uuid@8.3.2:
      -    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
      -    hasBin: true
      +  uuid@8.3.2: {}
       
      -  /uuid@9.0.1:
      -    resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
      -    hasBin: true
      -    dev: false
      +  uuid@9.0.1: {}
       
      -  /v8-compile-cache-lib@3.0.1:
      -    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
      -    dev: true
      +  v8-compile-cache-lib@3.0.1: {}
       
      -  /v8-to-istanbul@9.2.0:
      -    resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
      -    engines: {node: '>=10.12.0'}
      +  v8-to-istanbul@9.2.0:
           dependencies:
             '@jridgewell/trace-mapping': 0.3.25
             '@types/istanbul-lib-coverage': 2.0.6
             convert-source-map: 2.0.0
      -    dev: true
       
      -  /validate-npm-package-license@3.0.4:
      -    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
      +  validate-npm-package-license@3.0.4:
           dependencies:
             spdx-correct: 3.2.0
             spdx-expression-parse: 3.0.1
       
      -  /validate-npm-package-name@3.0.0:
      -    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
      +  validate-npm-package-name@3.0.0:
           dependencies:
             builtins: 1.0.3
       
      -  /validate-npm-package-name@5.0.0:
      -    resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  validate-npm-package-name@5.0.0:
           dependencies:
             builtins: 5.0.1
       
      -  /value-equal@1.0.1:
      -    resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
      -    dev: false
      +  value-equal@1.0.1: {}
       
      -  /vary@1.1.2:
      -    resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
      -    engines: {node: '>= 0.8'}
      +  vary@1.1.2: {}
       
      -  /vfile-location@5.0.2:
      -    resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
      +  vfile-location@5.0.2:
           dependencies:
             '@types/unist': 3.0.2
             vfile: 6.0.1
      -    dev: false
       
      -  /vfile-message@4.0.2:
      -    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
      +  vfile-message@4.0.2:
           dependencies:
             '@types/unist': 3.0.2
             unist-util-stringify-position: 4.0.0
       
      -  /vfile@6.0.1:
      -    resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
      +  vfile@6.0.1:
           dependencies:
             '@types/unist': 3.0.2
             unist-util-stringify-position: 4.0.0
             vfile-message: 4.0.2
       
      -  /vinyl-file@3.0.0:
      -    resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==}
      -    engines: {node: '>=4'}
      +  vinyl-file@3.0.0:
           dependencies:
             graceful-fs: 4.2.11
             pify: 2.3.0
      @@ -17107,9 +20594,7 @@ packages:
             strip-bom-stream: 2.0.0
             vinyl: 2.2.1
       
      -  /vinyl@2.2.1:
      -    resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
      -    engines: {node: '>= 0.10'}
      +  vinyl@2.2.1:
           dependencies:
             clone: 2.1.2
             clone-buffer: 1.0.0
      @@ -17118,58 +20603,38 @@ packages:
             remove-trailing-separator: 1.1.0
             replace-ext: 1.0.1
       
      -  /vscode-uri@3.0.8:
      -    resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
      +  vscode-uri@3.0.8: {}
       
      -  /w3c-xmlserializer@4.0.0:
      -    resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
      -    engines: {node: '>=14'}
      +  w3c-xmlserializer@4.0.0:
           dependencies:
             xml-name-validator: 4.0.0
      -    dev: true
       
      -  /walk-up-path@1.0.0:
      -    resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==}
      +  walk-up-path@1.0.0: {}
       
      -  /walker@1.0.8:
      -    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
      +  walker@1.0.8:
           dependencies:
             makeerror: 1.0.12
      -    dev: true
       
      -  /watchpack@2.4.1:
      -    resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
      -    engines: {node: '>=10.13.0'}
      +  watchpack@2.4.1:
           dependencies:
             glob-to-regexp: 0.4.1
             graceful-fs: 4.2.11
       
      -  /wbuf@1.7.3:
      -    resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
      +  wbuf@1.7.3:
           dependencies:
             minimalistic-assert: 1.0.1
       
      -  /wcwidth@1.0.1:
      -    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
      +  wcwidth@1.0.1:
           dependencies:
             defaults: 1.0.4
       
      -  /web-namespaces@2.0.1:
      -    resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
      -    dev: false
      +  web-namespaces@2.0.1: {}
       
      -  /webidl-conversions@3.0.1:
      -    resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
      +  webidl-conversions@3.0.1: {}
       
      -  /webidl-conversions@7.0.0:
      -    resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  webidl-conversions@7.0.0: {}
       
      -  /webpack-bundle-analyzer@4.10.1:
      -    resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
      -    engines: {node: '>= 10.13.0'}
      -    hasBin: true
      +  webpack-bundle-analyzer@4.10.1:
           dependencies:
             '@discoveryjs/json-ext': 0.5.7
             acorn: 8.11.3
      @@ -17187,24 +20652,8 @@ packages:
           transitivePeerDependencies:
             - bufferutil
             - utf-8-validate
      -    dev: false
       
      -  /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
      -    engines: {node: '>=14.15.0'}
      -    hasBin: true
      -    peerDependencies:
      -      '@webpack-cli/generators': '*'
      -      webpack: 5.x.x
      -      webpack-bundle-analyzer: '*'
      -      webpack-dev-server: '*'
      -    peerDependenciesMeta:
      -      '@webpack-cli/generators':
      -        optional: true
      -      webpack-bundle-analyzer:
      -        optional: true
      -      webpack-dev-server:
      -        optional: true
      +  webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@5.0.4)(webpack@5.91.0):
           dependencies:
             '@discoveryjs/json-ext': 0.5.7
             '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0)
      @@ -17223,11 +20672,7 @@ packages:
             webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
             webpack-merge: 5.10.0
       
      -  /webpack-dev-middleware@5.3.4(webpack@5.91.0):
      -    resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
      -    engines: {node: '>= 12.13.0'}
      -    peerDependencies:
      -      webpack: ^4.0.0 || ^5.0.0
      +  webpack-dev-middleware@5.3.4(webpack@5.91.0):
           dependencies:
             colorette: 2.0.20
             memfs: 3.5.3
      @@ -17235,16 +20680,8 @@ packages:
             range-parser: 1.2.1
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /webpack-dev-middleware@7.1.1(webpack@5.91.0):
      -    resolution: {integrity: sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==}
      -    engines: {node: '>= 18.12.0'}
      -    peerDependencies:
      -      webpack: ^5.0.0
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      +  webpack-dev-middleware@7.1.1(webpack@5.91.0):
           dependencies:
             colorette: 2.0.20
             memfs: 4.8.0
      @@ -17254,18 +20691,7 @@ packages:
             schema-utils: 4.2.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
       
      -  /webpack-dev-server@4.15.2(webpack@5.91.0):
      -    resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
      -    engines: {node: '>= 12.13.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack: ^4.37.0 || ^5.0.0
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      -      webpack-cli:
      -        optional: true
      +  webpack-dev-server@4.15.2(webpack@5.91.0):
           dependencies:
             '@types/bonjour': 3.5.13
             '@types/connect-history-api-fallback': 1.5.4
      @@ -17303,20 +20729,8 @@ packages:
             - debug
             - supports-color
             - utf-8-validate
      -    dev: false
       
      -  /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
      -    resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==}
      -    engines: {node: '>= 18.12.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack: ^5.0.0
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack:
      -        optional: true
      -      webpack-cli:
      -        optional: true
      +  webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
           dependencies:
             '@types/bonjour': 3.5.13
             '@types/connect-history-api-fallback': 1.5.4
      @@ -17356,27 +20770,15 @@ packages:
             - supports-color
             - utf-8-validate
       
      -  /webpack-merge@5.10.0:
      -    resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
      -    engines: {node: '>=10.0.0'}
      +  webpack-merge@5.10.0:
           dependencies:
             clone-deep: 4.0.1
             flat: 5.0.2
             wildcard: 2.0.1
       
      -  /webpack-sources@3.2.3:
      -    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
      -    engines: {node: '>=10.13.0'}
      +  webpack-sources@3.2.3: {}
       
      -  /webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
      -    resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
      -    engines: {node: '>=10.13.0'}
      -    hasBin: true
      -    peerDependencies:
      -      webpack-cli: '*'
      -    peerDependenciesMeta:
      -      webpack-cli:
      -        optional: true
      +  webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
           dependencies:
             '@types/eslint-scope': 3.7.7
             '@types/estree': 1.0.5
      @@ -17408,70 +20810,47 @@ packages:
             - esbuild
             - uglify-js
       
      -  /webpackbar@5.0.2(webpack@5.91.0):
      -    resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
      -    engines: {node: '>=12'}
      -    peerDependencies:
      -      webpack: 3 || 4 || 5
      +  webpackbar@5.0.2(webpack@5.91.0):
           dependencies:
             chalk: 4.1.2
             consola: 2.15.3
             pretty-time: 1.1.0
             std-env: 3.7.0
             webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
      -    dev: false
       
      -  /websocket-driver@0.7.4:
      -    resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
      -    engines: {node: '>=0.8.0'}
      +  websocket-driver@0.7.4:
           dependencies:
             http-parser-js: 0.5.8
             safe-buffer: 5.2.1
             websocket-extensions: 0.1.4
       
      -  /websocket-extensions@0.1.4:
      -    resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
      -    engines: {node: '>=0.8.0'}
      +  websocket-extensions@0.1.4: {}
       
      -  /whatwg-encoding@2.0.0:
      -    resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
      -    engines: {node: '>=12'}
      +  whatwg-encoding@2.0.0:
           dependencies:
             iconv-lite: 0.6.3
      -    dev: true
       
      -  /whatwg-mimetype@3.0.0:
      -    resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  whatwg-mimetype@3.0.0: {}
       
      -  /whatwg-url@11.0.0:
      -    resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
      -    engines: {node: '>=12'}
      +  whatwg-url@11.0.0:
           dependencies:
             tr46: 3.0.0
             webidl-conversions: 7.0.0
      -    dev: true
       
      -  /whatwg-url@5.0.0:
      -    resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
      +  whatwg-url@5.0.0:
           dependencies:
             tr46: 0.0.3
             webidl-conversions: 3.0.1
       
      -  /which-boxed-primitive@1.0.2:
      -    resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
      +  which-boxed-primitive@1.0.2:
           dependencies:
             is-bigint: 1.0.4
             is-boolean-object: 1.1.2
             is-number-object: 1.0.7
             is-string: 1.0.7
             is-symbol: 1.0.4
      -    dev: true
       
      -  /which-builtin-type@1.1.3:
      -    resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
      -    engines: {node: '>= 0.4'}
      +  which-builtin-type@1.1.3:
           dependencies:
             function.prototype.name: 1.1.6
             has-tostringtag: 1.0.2
      @@ -17485,90 +20864,60 @@ packages:
             which-boxed-primitive: 1.0.2
             which-collection: 1.0.2
             which-typed-array: 1.1.15
      -    dev: true
       
      -  /which-collection@1.0.2:
      -    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
      -    engines: {node: '>= 0.4'}
      +  which-collection@1.0.2:
           dependencies:
             is-map: 2.0.3
             is-set: 2.0.3
             is-weakmap: 2.0.2
             is-weakset: 2.0.3
      -    dev: true
       
      -  /which-pm@2.0.0:
      -    resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
      -    engines: {node: '>=8.15'}
      +  which-pm@2.0.0:
           dependencies:
             load-yaml-file: 0.2.0
             path-exists: 4.0.0
       
      -  /which-typed-array@1.1.15:
      -    resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
      -    engines: {node: '>= 0.4'}
      +  which-typed-array@1.1.15:
           dependencies:
             available-typed-arrays: 1.0.7
             call-bind: 1.0.7
             for-each: 0.3.3
             gopd: 1.0.1
             has-tostringtag: 1.0.2
      -    dev: true
       
      -  /which@1.3.1:
      -    resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
      -    hasBin: true
      +  which@1.3.1:
           dependencies:
             isexe: 2.0.0
      -    dev: false
       
      -  /which@2.0.2:
      -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
      -    engines: {node: '>= 8'}
      -    hasBin: true
      +  which@2.0.2:
           dependencies:
             isexe: 2.0.0
       
      -  /which@3.0.1:
      -    resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      -    hasBin: true
      +  which@3.0.1:
           dependencies:
             isexe: 2.0.0
       
      -  /wide-align@1.1.5:
      -    resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
      +  wide-align@1.1.5:
           dependencies:
             string-width: 4.2.3
       
      -  /widest-line@3.1.0:
      -    resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
      -    engines: {node: '>=8'}
      +  widest-line@3.1.0:
           dependencies:
             string-width: 4.2.3
      -    dev: true
       
      -  /widest-line@4.0.1:
      -    resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
      -    engines: {node: '>=12'}
      +  widest-line@4.0.1:
           dependencies:
             string-width: 5.1.2
      -    dev: false
       
      -  /wildcard@2.0.1:
      -    resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
      +  wildcard@2.0.1: {}
       
      -  /winston-transport@4.7.0:
      -    resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==}
      -    engines: {node: '>= 12.0.0'}
      +  winston-transport@4.7.0:
           dependencies:
             logform: 2.6.0
             readable-stream: 3.6.2
             triple-beam: 1.4.1
       
      -  /winston@3.11.0:
      -    resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==}
      -    engines: {node: '>= 12.0.0'}
      +  winston@3.11.0:
           dependencies:
             '@colors/colors': 1.6.0
             '@dabh/diagnostics': 2.0.3
      @@ -17582,173 +20931,95 @@ packages:
             triple-beam: 1.4.1
             winston-transport: 4.7.0
       
      -  /workerpool@6.2.1:
      -    resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
      -    dev: true
      +  workerpool@6.2.1: {}
       
      -  /wrap-ansi@6.2.0:
      -    resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
      -    engines: {node: '>=8'}
      +  wrap-ansi@6.2.0:
           dependencies:
             ansi-styles: 4.3.0
             string-width: 4.2.3
             strip-ansi: 6.0.1
       
      -  /wrap-ansi@7.0.0:
      -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
      -    engines: {node: '>=10'}
      +  wrap-ansi@7.0.0:
           dependencies:
             ansi-styles: 4.3.0
             string-width: 4.2.3
             strip-ansi: 6.0.1
       
      -  /wrap-ansi@8.1.0:
      -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
      -    engines: {node: '>=12'}
      +  wrap-ansi@8.1.0:
           dependencies:
             ansi-styles: 6.2.1
             string-width: 5.1.2
             strip-ansi: 7.1.0
       
      -  /wrappy@1.0.2:
      -    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
      +  wrappy@1.0.2: {}
       
      -  /write-file-atomic@3.0.3:
      -    resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
      +  write-file-atomic@3.0.3:
           dependencies:
             imurmurhash: 0.1.4
             is-typedarray: 1.0.0
             signal-exit: 3.0.7
             typedarray-to-buffer: 3.1.5
       
      -  /write-file-atomic@4.0.2:
      -    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
      -    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
      +  write-file-atomic@4.0.2:
           dependencies:
             imurmurhash: 0.1.4
             signal-exit: 3.0.7
       
      -  /write-file-atomic@5.0.1:
      -    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
      -    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
      +  write-file-atomic@5.0.1:
           dependencies:
             imurmurhash: 0.1.4
             signal-exit: 4.1.0
       
      -  /write-json-file@5.0.0:
      -    resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==}
      -    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
      +  write-json-file@5.0.0:
           dependencies:
             detect-indent: 7.0.1
             is-plain-obj: 4.1.0
             sort-keys: 5.0.0
             write-file-atomic: 3.0.3
      -    dev: true
       
      -  /write-yaml-file@5.0.0:
      -    resolution: {integrity: sha512-FdNA4RyH1L43TlvGG8qOMIfcEczwA5ij+zLXUy3Z83CjxhLvcV7/Q/8pk22wnCgYw7PJhtK+7lhO+qqyT4NdvQ==}
      -    engines: {node: '>=16.14'}
      +  write-yaml-file@5.0.0:
           dependencies:
             js-yaml: 4.1.0
             write-file-atomic: 5.0.1
      -    dev: true
       
      -  /ws@7.5.9:
      -    resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
      -    engines: {node: '>=8.3.0'}
      -    peerDependencies:
      -      bufferutil: ^4.0.1
      -      utf-8-validate: ^5.0.2
      -    peerDependenciesMeta:
      -      bufferutil:
      -        optional: true
      -      utf-8-validate:
      -        optional: true
      -    dev: false
      +  ws@7.5.9: {}
       
      -  /ws@8.16.0:
      -    resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
      -    engines: {node: '>=10.0.0'}
      -    peerDependencies:
      -      bufferutil: ^4.0.1
      -      utf-8-validate: '>=5.0.2'
      -    peerDependenciesMeta:
      -      bufferutil:
      -        optional: true
      -      utf-8-validate:
      -        optional: true
      +  ws@8.16.0: {}
       
      -  /xdg-basedir@5.1.0:
      -    resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
      -    engines: {node: '>=12'}
      -    dev: false
      +  xdg-basedir@5.1.0: {}
       
      -  /xml-js@1.6.11:
      -    resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
      -    hasBin: true
      +  xml-js@1.6.11:
           dependencies:
             sax: 1.3.0
      -    dev: false
       
      -  /xml-name-validator@4.0.0:
      -    resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  xml-name-validator@4.0.0: {}
       
      -  /xmlchars@2.2.0:
      -    resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
      -    dev: true
      +  xmlchars@2.2.0: {}
       
      -  /y18n@5.0.8:
      -    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  y18n@5.0.8: {}
       
      -  /yallist@3.1.1:
      -    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
      +  yallist@3.1.1: {}
       
      -  /yallist@4.0.0:
      -    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
      +  yallist@4.0.0: {}
       
      -  /yaml@1.10.2:
      -    resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
      -    engines: {node: '>= 6'}
      -    dev: false
      +  yaml@1.10.2: {}
       
      -  /yaml@2.4.1:
      -    resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
      -    engines: {node: '>= 14'}
      -    hasBin: true
      -    dev: true
      +  yaml@2.4.1: {}
       
      -  /yargs-parser@20.2.4:
      -    resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  yargs-parser@20.2.4: {}
       
      -  /yargs-parser@20.2.9:
      -    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
      -    engines: {node: '>=10'}
      -    dev: true
      +  yargs-parser@20.2.9: {}
       
      -  /yargs-parser@21.1.1:
      -    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
      -    engines: {node: '>=12'}
      -    dev: true
      +  yargs-parser@21.1.1: {}
       
      -  /yargs-unparser@2.0.0:
      -    resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
      -    engines: {node: '>=10'}
      +  yargs-unparser@2.0.0:
           dependencies:
             camelcase: 6.3.0
             decamelize: 4.0.0
             flat: 5.0.2
             is-plain-obj: 2.1.0
      -    dev: true
       
      -  /yargs@16.2.0:
      -    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
      -    engines: {node: '>=10'}
      +  yargs@16.2.0:
           dependencies:
             cliui: 7.0.4
             escalade: 3.1.2
      @@ -17757,11 +21028,8 @@ packages:
             string-width: 4.2.3
             y18n: 5.0.8
             yargs-parser: 20.2.9
      -    dev: true
       
      -  /yargs@17.7.2:
      -    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
      -    engines: {node: '>=12'}
      +  yargs@17.7.2:
           dependencies:
             cliui: 8.0.1
             escalade: 3.1.2
      @@ -17770,12 +21038,8 @@ packages:
             string-width: 4.2.3
             y18n: 5.0.8
             yargs-parser: 21.1.1
      -    dev: true
       
      -  /yeoman-environment@3.19.3:
      -    resolution: {integrity: sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==}
      -    engines: {node: '>=12.10.0'}
      -    hasBin: true
      +  yeoman-environment@3.19.3:
           dependencies:
             '@npmcli/arborist': 4.3.1
             are-we-there-yet: 2.0.0
      @@ -17818,14 +21082,7 @@ packages:
             - bluebird
             - supports-color
       
      -  /yeoman-generator@5.10.0(yeoman-environment@3.19.3):
      -    resolution: {integrity: sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==}
      -    engines: {node: '>=12.10.0'}
      -    peerDependencies:
      -      yeoman-environment: ^3.2.0
      -    peerDependenciesMeta:
      -      yeoman-environment:
      -        optional: true
      +  yeoman-generator@5.10.0(yeoman-environment@3.19.3):
           dependencies:
             chalk: 4.1.2
             dargs: 7.0.0
      @@ -17849,23 +21106,12 @@ packages:
             - mem-fs
             - supports-color
       
      -  /yn@3.1.1:
      -    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
      -    engines: {node: '>=6'}
      -    dev: true
      +  yn@3.1.1: {}
       
      -  /yocto-queue@0.1.0:
      -    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
      -    engines: {node: '>=10'}
      +  yocto-queue@0.1.0: {}
       
      -  /yocto-queue@1.0.0:
      -    resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
      -    engines: {node: '>=12.20'}
      -    dev: false
      +  yocto-queue@1.0.0: {}
       
      -  /zod@3.22.4:
      -    resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
      -    dev: false
      +  zod@3.22.4: {}
       
      -  /zwitch@2.0.4:
      -    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
      +  zwitch@2.0.4: {}
      
      From f4b601b6a9d163b49fafe9cacd7e88cbf5bd0c27 Mon Sep 17 00:00:00 2001
      From: Cedric Halbronn 
      Date: Wed, 22 May 2024 08:06:58 +0100
      Subject: [PATCH 504/504] t
      
      ---
       packages/test-harness/src/index.ts | 3 +--
       1 file changed, 1 insertion(+), 2 deletions(-)
      
      diff --git a/packages/test-harness/src/index.ts b/packages/test-harness/src/index.ts
      index cea9c0ca74..d78d5b2bb8 100644
      --- a/packages/test-harness/src/index.ts
      +++ b/packages/test-harness/src/index.ts
      @@ -20,8 +20,7 @@ export async function run(plugin: NvimPlugin): Promise {
         };
         let code = 0;
         try {
      -    //await runAllTests(TestType.neovim, TestType.unit);
      -    await runAllTests(TestType.neovim);
      +    await runAllTests(TestType.neovim, TestType.unit);
           console.log(`==== TESTS FINISHED: code: ${code}`);
           // console.log(`index.ts: killing neovim with q!`);
           // await client.command(":q!");